rune

Rust VM for Emacs (by CeleritasCelery)

Rune Alternatives

Similar projects and alternatives to rune

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a better rune alternative or higher similarity.

rune reviews and mentions

Posts with mentions or reviews of rune. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-02-16.
  • The Emacsen family, the design of an Emacs and the importance of Lisp (2023)
    6 projects | news.ycombinator.com | 16 Feb 2024
    Two projects that may be of interest, related to this topic:

    - Rune (https://github.com/CeleritasCelery/rune) - A re-implementation of Emacs but in Rust (like Remacs, but actively developed)

    - Pimacs (https://github.com/federicotdn/pimacs) - Same, but using Go (created by me, but developed in a very slow pace)

  • Text Editor Data Structures
    6 projects | news.ycombinator.com | 13 Jun 2023
    [2] https://github.com/CeleritasCelery/rune/issues/17#issuecomme...
  • rune: Rust VM for Emacs
    1 project | /r/planetemacs | 13 Feb 2023
  • Design of Emacs in Rust
    1 project | /r/emacs | 19 Jan 2023
    I second this ! I had trouble finding the github link, but here is is https://github.com/CeleritasCelery/rune
  • Rune: An experimental Emacs Lisp interpreter written in Rust
    1 project | news.ycombinator.com | 17 Jan 2023
  • Implementing a safe garbage collector in Rust
    4 projects | news.ycombinator.com | 29 Apr 2022
    > How is anything rooted here? The lifetime changed from 'arena to 'root but I don't see a root being created.

    In this example, the Vec has been rooted previously. So pushing an object into the Vec will make it "transitively" rooted (accessible from the root). You would root a struct with the root_struct![1] macro, which works very similar to the root! macro shown in the post.

    However you made you realize one error; The rooted `Vec` in the example you pointed is a by value type, but in the implementation you can only get references to rooted structs, so that example needs to be updated.

    > But later we see roots not obeying a LIFO order, under "Preventing escapes" where roots are dynamically created and destroyed in an arbitrary order.

    Objects are just a copyable wrapper around a pointer, so they are not the part that has the LIFO semantics. inside the root! macro[2] there is a `StackRoot` type that is the actual "root". The object just borrows from that so that is has a 'root lifetime and is valid post gc. The actual root struct is not exposed outside of the macro.

    I hope this makes the distinction between "roots" and "objects" clearer. Objects are just pointers to heap data. When we root an object we store the data it points to on the root stack and create a new `StackRoot`. Then we say this object is rooted. But the struct that "does the rooting" is inside the macro and not exposed. Rooting a struct works similarly.

    [1] https://github.com/CeleritasCelery/rune/blob/5a616efbed763b9...

    2 projects | /r/rust | 12 Apr 2022
  • I came to the conclusion that I wont learn Elisp...unless...
    3 projects | /r/emacs | 24 Apr 2022
    Hack on Rune
  • A note from our sponsor - SaaSHub
    www.saashub.com | 28 Apr 2024
    SaaSHub helps you find the best software and product alternatives Learn more →

Stats

Basic rune repo stats
8
380
9.6
4 days ago

CeleritasCelery/rune is an open source project licensed under GNU General Public License v3.0 only which is an OSI approved license.

The primary programming language of rune is Emacs Lisp.


Sponsored
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com