rune icon indicating copy to clipboard operation
rune copied to clipboard

Rust VM for Emacs

Results 41 rune issues
Sort by recently updated
recently updated
newest added

The two main options for a buffer struct is a gap buffer, or a [rope](https://docs.rs/ropey/latest/ropey/). They both come with different tradeoffs. I really like this [comment](https://github.com/emacs-ng/emacs-ng/issues/378#issuecomment-907680382) from the author of...

design needed

The plan for the garbage collector is to be generational, copying collector. The old generation will use Immix style mark region collector, which Jon Harrop calls a [breakthrough in gc...

design needed

Executive Summary: I propose that it would be worth while to have Rune dump it's serialized state into a binary file that could be reloaded at a later time to...

design needed

Hey, this is a nice project. I had also thought before about creating an elisp runtime from scratch. One idea I had was to move as much as possible to...

design needed

The soundness of the code heavily relies on the fact that only one `Arena` exists in a thread at a time. Otherwise you might have code that borrows from an...

unsound?

This is similar to #2. We have `bind` function for `Arena`. https://github.com/CeleritasCelery/rune/blob/7136b74386a4586537ffa59c3be4849cb76354fe/src/arena/mod.rs#L346-L351 This relies on a safe trait `ConstrainLifetime` which let's us take object and "bind" it's lifetime to the...

unsound?

Normally an object has a lifetime parameter like `object

unsound?

The rebind macro has this definition: https://github.com/CeleritasCelery/rune/blob/7136b74386a4586537ffa59c3be4849cb76354fe/src/arena/mod.rs#L96-L102 We are casting the object into a raw form that removes the lifetime. Then we call an unsafe function to create a new...

unsound?

This really needs to be proc macro to auto derive since implementing is unsafe, but that is not yet implemented. We get a `RootRef` by using `RootOwner` on `Root`. Root...

unsound?

This one is a beast. https://github.com/CeleritasCelery/rune/blob/7136b74386a4586537ffa59c3be4849cb76354fe/src/cons/iter.rs#L166-L189 Essentially what we need to do here is create a iterator where the returned value is rooted on each iteration and can only live...

unsound?