Live data from Hacker News

Guile-Emacs Relaunched

emacsconf.org

11–20 of 43 posts

Re: Guile-Emacs Relaunched

#11
post #7
post #4

Earlier quoted context omitted.

i am not user of emacs, but looking into as next switch. 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 probl…

> using mainstream more structured language is good point go into emacs. 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.

Possibly all lisp combined!

Re: Guile-Emacs Relaunched

#12
post #6

> integrates Emacs and Guile by providing a new Elisp implementation based on Guile's Lisp-oriented compiler tower and runtime environment I am hoping Guile the language (scheme) also will be supported alongside elisp.

It would allow using any language that runs on the Guile VM. Guile has a compiler tower model where you define languages and their path towards being lowered to bytecode. The main language, Scheme, lowers to the Tree-IL language (high-level intermediate representation), then to the CPS language (low-level IR), and finally to bytecode. Elisp lowers to Tree-IL, which means from there it takes the same path as Scheme does to reach bytecode, so it gets to benefit from all the performance optimizations happening in Tree-IL (like partial evaluation) and CPS (which are numerous, like common subexpression elimination, contification, dead code elimination, etc.) It's a pretty neat system where all these different languages can intermingle in a pleasing way.

Re: Guile-Emacs Relaunched

#13
post #9

i have one question, for me emacs have only 1 major flaw (or you can call it drawback) , its slow, some extensions are very very slow , magit for me is the prime example , json-navigator is another 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…

Previous attempts at guile-emacs weren't faster: fixing the impedance mismatch between elisp and guile ate all the speedup that guile would bring. Also as a significant change since the last attempt, elisp got a proper native compiler.

That's not really accurate. The previous attempt proved that it worked, but we all know that getting something working and making something performant are two different things. If there were some buy-in to this initiative, the performance issues of the "MVP" can be addressed. Guile also advanced its compiler during the same time, gaining more optimizations and a JIT compiler.

Re: Guile-Emacs Relaunched

#14
post #9

i have one question, for me emacs have only 1 major flaw (or you can call it drawback) , its slow, some extensions are very very slow , magit for me is the prime example , json-navigator is another 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…

I cannot speak to nice graphics (I don't want a different way to represent directory trees or git branches, I'm happy with how it's done today), but on the count of Magit's speed... it's not really the problem of the language. It's the problem of how the program is written. Well, maybe in a way it is also the language. With some languages you have more room to be sloppy, with Emacs Lisp, when used in this way, you have to be very careful.

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.

Re: Guile-Emacs Relaunched

#15

One of those "Never Ever" projects. The idea appeals to me, but most of the emacs user community seems uninterested so I don't think it will ever succeed. Nonetheless, Godspeed.

In a kind of tragic irony of sorts, we now have VSCode (Electron based, similar in resource consumption as when Emacs was new, hence the "eight megabytes and constantly swapping" joke), using JavaScript as extension language, which was supposed to be originally based on Scheme.

Re: Guile-Emacs Relaunched

#16
post #9

i have one question, for me emacs have only 1 major flaw (or you can call it drawback) , its slow, some extensions are very very slow , magit for me is the prime example , json-navigator is another 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…

I cannot speak to nice graphics (I don't want a different way to represent directory trees or git branches, I'm happy with how it's done today), but on the count of Magit's speed... it's not really the problem of the language. It's the problem of how the program is written. Well, maybe in a way it is also the language. With some languages you have more room to be sloppy, with Emacs Lisp, when used in this way, you ha…

Does this mean rewriting Magit to use libgit2 FFI bindings[0] rather than subprocess calls would lead to significant speedups?

[0]: https://github.com/emacsorphanage/libegit2

Re: Guile-Emacs Relaunched

#17
post #9

i have one question, for me emacs have only 1 major flaw (or you can call it drawback) , its slow, some extensions are very very slow , magit for me is the prime example , json-navigator is another 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…

emacs is a lot faster now that it uses a JIT elisp compiler by default. I don’t really think switching to a different runtime will make much of a difference there.

Re: Guile-Emacs Relaunched

#18
post #7
post #4

Earlier quoted context omitted.

i am not user of emacs, but looking into as next switch. 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 probl…

> using mainstream more structured language is good point go into emacs. 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.

I never really thought about this angle, but it’s still worth pointing out that elisp is not used outside of emacs, while other lispen are.

Re: Guile-Emacs Relaunched

#19
post #15

One of those "Never Ever" projects. The idea appeals to me, but most of the emacs user community seems uninterested so I don't think it will ever succeed. Nonetheless, Godspeed.

In a kind of tragic irony of sorts, we now have VSCode (Electron based, similar in resource consumption as when Emacs was new, hence the "eight megabytes and constantly swapping" joke), using JavaScript as extension language, which was supposed to be originally based on Scheme.

VSCode is very different from Emacs in terms of philosophy. VSCode is notepad with extensions bolted on (like every other common editors). Emacs defines a more purposeful environment for working with text. And that is why you can get features like Compilation Mode, Occur Mode, systems like Org-Mode, and whole applications like magit, ebib, emms.
Post reply on HN