Submitted via IRC for TheMightyBuzzard
I am delighted to announce Remacs, a project to port Emacs to Rust!
Emacs, at its heart, is a lisp interpreter written in C. In Remacs, we're replacing this C code with Rust, and all the elisp you know and love will just work.
If you've ever fancied contributing to core Emacs, this is a great opportunity to learn the internals. There's tons of low hanging fruit, we have a list of good first bugs and even a walkthrough of writing your first elisp function using Rust.
Rust is perfect for this because we can port incrementally. If you want to replace the entire regular expression engine, you can do that. If you just want to replace this function here, you can do that and the C code won't even notice. You will have a full-blown Emacs every step of the way.
[...] Remacs is based on Emacs 25.2. We've got enough type definitions that you can write interesting built-in functions, but the project is still at a very early stage. Using these, we've got a few built-in elisp functions written entirely in Rust: some arithmetic, some type checks, and even some basic list functionality.
I'll stick to MrPlow for now, thanks. He's Rust enough for me until his code stops looking like a noob wrote it.
Source: http://www.wilfred.me.uk/blog/2017/01/11/announcing-remacs-porting-emacs-to-rust/
(Score: 2) by FatPhil on Friday January 13 2017, @11:49PM
That makes no sense - you write elisp functions in elisp, otherwise, they're *not elisp functions*?!?!?
Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
(Score: 2) by Marand on Saturday January 14 2017, @12:25AM
That makes no sense - you write elisp functions in elisp, otherwise, they're *not elisp functions*?!?!?
It's an elisp function in the sense that it's created to be used from elisp, but created in the underlying langauge (normally C, or Rust in this thing's case). For another example of this, look at Lua, which is frequently embedded in software such as games, which results in a similar situation: Lua functions that were implemented in whatever language it was embedded into. So, it sounds like they're requesting help converting elisp-callable functions that were implemented in C.
One interesting thing about lisps is, once you have a few primitives, you can implement the rest of the language with the lisp itself... however, they always seem to implement more than the minimum necessary in the "parent" language, presumably for performance reasons. With a codebase as old as emacs, there's probably a lot of code like that lying around.
(Score: 2) by FatPhil on Sunday January 15 2017, @01:14PM
Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
(Score: 2) by Marand on Sunday January 15 2017, @09:02PM
Seriously? I'm aware they're primitives -- I called them that in my comment in fact -- but it's usually not worth making the distinction explicitly. I made a good-faith attempt to explain what they likely meant because I thought it might be a legitimate question instead of smart-assed pedantry, but your follow-up indicates I was mistaken. Now you're just nitpicking in a desperate attempt to correct me.
(Score: 2) by FatPhil on Monday January 16 2017, @01:00AM
Great minds discuss ideas; average minds discuss events; small minds discuss people; the smallest discuss themselves
(Score: 2) by rufty on Saturday January 14 2017, @01:11PM