The namespace is called SCHEME.ĬL-USER 8 > (scheme::define (scheme::foo1 x) (+ x 22)) Here I have loaded SCHEME into Common Lisp. > You also can't do that kind of thing between Scheme and Common Lisp for what that's worth. That's basically also what was imagined for a GUILE-based GNU Emacs: it would run all of Emacs Lisp, but would also additionally understand Scheme. I can have two REPLs for different Lisps running side by side in one Lisp world, where I can call all operators from all other dialects. I can tell what dialect to use and it reads and evals code from that dialect. The Lisp Machine I use has several different dialects of Lisp in one image. Just go into a different namespace and load the code. > I've never even imagined copy-pasting straight Common Lisp code into an Emacs Lisp file. Though it seems things will be improving there, hopefully this'll get upstreamed soon. However, lots of packages simply don't use these affordances.Īlso, for LSP, there's additional challenges since lots of json needs parsing for each request, but IIUC Emacs can't currently process the messages to/from the server while the UI thread is busy (the LSP server can do lots of work while UI is busy, but the communication is stalled until UI is done). sending emails, compiling elisp), there is John Wiegley's `async` library. For tasks that need to be run via emacs-lisp (e.g. For network io, there is `url-retrieve` with callbacks. For things that end up calling an external command like that, the code will typically use `start-process` or `make-process`. If you've ever compiled or run git push or run an external command like M-! sleep 10 & RET from Emacs, that's using async io. It actually does support for async io has been there for ages.
0 Comments
Leave a Reply. |