Guile-Emacs Relaunched
emacsconf.org
emacsconf.org
Gypsum https://emacsconf.org/2024/talks/gypsum/ started from guile-emacs afresh, but is way behind. And with Andrea's elispjit the guile port is probably not needed at all.
Performance aside, there's more to Guile Emacs: possibility of true concurrency, incremental garbage collection, cleaner separation of the interpreter and UI components, better maintained in the long run...
But unless you rewrite everyone else's code you may still have to acknowledge the languages you don't like.
Perhaps you'd prefer Lem? https://github.com/lem-project/lem
using mainstream more structured language is good point go into emacs.
it also will lead to rewrite of some plugins. for example many rust rewrites just better c versions, but more consistent and structured. there was not reason not to rewrite these in c but better. very good for newcomers to unix world.
another point is async. i have heard that is one of problems of no async. if emacs has plan it could be intresting either doing async or properly avoiding. for me it is prove point emacs will not die with its creators.
Are you really trying to tell use that Guile Scheme is more mainstream than Emacs Lisp?
Cmon, I'm pretty sure all schemes combined don't have a fraction of programmers or libraries as elisp alone.
emacs lisp is not standard, while guile R7RS. so even more sharing.
so for me emacs with guile, were people during rewrites improved emacs extetensions, and i can do all in guile, music taxes money debugging productivity all in guile. is very attractive.
https://www.gnu.org/software/guile/#apps-using-guile
''Guile is used in many programs under the GNU project umbrella (GDB, Make, Guix, GNU TeXmacs, GnuCash, LilyPond, Lepton-EDA...)[8] but it also sees use outside of that, for example in Google's schism.''
also seems guile is jit, emacs lisp interpreted.
and guile favors immutable, unlike emacs lisp. which i favor too.
there is also guile hoot giving me option for browser.
And VSCode is still strongly reliant on Microsoft’s resources.
VSCode isn't the only option, indeed.
I am hoping Guile the language (scheme) also will be supported alongside elisp.
My understanding is that this is very far from being usable. But I mention it here because I suspect that some people on HN would be interested in the possibility of eventually running JS inside of Emacs.
Another interesting use-case for the compiler tower is writing a language that compiles a machine readable specification to another language. guile-xcb compiles XCB's XML spec to Scheme:
https://github.com/mwitmer/guile-xcb/blob/master/language/xm...
With native compilation i'd rather keep a sub-optimal but fast lisp (emacs lisp) than get a slow but (allegedly) better lisp (guile).
will this make emacs fast , i understand guile is a nicer language than elisp, but if its not significantly faster, this i think will go nowhere
(the second but minor flaw, it need better graphics, nicer ways to represent directory trees or git branches, other than ascii, but if emacs becomes fast, i can live with that)
Also as a significant change since the last attempt, elisp got a proper native compiler.
In my experience with Magit, the slowness usually comes from a large number of subprocess calls that are made to render some aggregated piece of information. Eg. some table that has a bunch of commit hashes, but then the way it's rendered, the hashes are links that need to have, as part of the link, some information embedded in them that's only available through a separate subprocess call, one per commit hash... Emacs Lisp obviously adds some overhead, but the larger problem is the need to make these dozens of subprocess calls.
I don't think there's an immediate solution to this problem though. Most likely, in specific cases where this amplification of subprocess calls Tartius (or whoever mans the project today) needs to rethink the buffer layout, make things load lazily, maybe add some caching... but this isn't going to happen quickly. On the bright side, these changes do happen every now and then. In the end of the day, I use Magit almost exclusively today, I even have my extensions to Magit (specifically for Git grep command), and I wouldn't trade it for any other Git interface. I wish it was better, but I haven't found anything that would've been better in practical terms.
So, using the library will remove the overhead of exec() and friends, and will definitely make the situation better, but the ultimate solution is either for Git to be more like SQL database, or for Magit to extract information directly from the Git database, rather than go through the API (but the choice of Emacs Lisp for this functionality would be highly questionable).