Daniel Kraft <d...@domob.eu> writes: > Hi all, > > as already discussed briefly with the Guile guys behind the new VM > thing, I got the idea to implement Emacs Lisp as supported language > for the Guile VM system. > > Below is a proposal for a GSoC project I submitted to GNU as mentoring > organization; Karl Berry replied that it sounds interesting but they > needed to find a mentor / mentors for this project; what do you (Emacs > and Guile people) think about it?
This is an excellent plan! There is already a working elisp->scheme translator for the interpeter in lang/elisp. I've poked about in it and it would be fairly straightfoward to port it to the VM by retargetting it to GHIL and replacing the @fop and @bind operators in the interpeter with a bit of GHIL implementing the same behavior. As a general implemention order I suggest: - Replace @fop and @bind with a GHIL fragment implementing the same behavior - Integrate the elisp->scheme translator into the VM compiler framework - Retarget the elisp translator from Scheme to GHIL If there is time left (the above tasks should take maybe a month, perhaps more) then a few more tasks would be useful as far as cleaning up the implementation of Guile: - Remove handling of NIL in Scheme. This special casing is, in my opinion, distressingly unclean. This would require adding a new ELISP-IF form that accepts #f/nil as false values - Reimplement the basic elisp list operators in elisp/ghil rather than using the existing Scheme implementations - [Potentially] Remove value/function slots from Guile's symbol type and implement the Lisp-2ness of elisp in another way - [Assuming the above is done; if not ((fref SYMBOL) ...) works already] Implement a convenient way to call elisp functions from Scheme. Something like (funcall SYMBOL ...) And then use any remaining time to fill in any useful bits lang/elisp/primitives/*. -- <captain_krunk> ntk is currently using "telnet fyodor 25" to send email