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

I see there is a `TypeError` defined in core/error.rs. However, the Emacs C code often has something like: ``` return wrong_type_argument (Qchar_or_string_p, obj); ``` Does that mean the `Type` enum...

Emacs already offers AOT compilation via native compilation. By doing so you can remove the overhead of the bytecode interpreter and optimizing the code as a single compilation unit (which...

design needed

This uses the same principle as the `root_struct!` macro. So if this is sound I expect that will be as well. https://github.com/CeleritasCelery/rune/blob/7136b74386a4586537ffa59c3be4849cb76354fe/src/arena/mod.rs#L78-L83 We create a new `StackRoot` using an unsafe...

unsound?

Currently all allocation are part [of a big enum](https://github.com/CeleritasCelery/rune/blob/master/src/core/gc/alloc.rs#L10-L18). This is very space inefficient, since each enum instance has to be the size of the largest variant. We need to...

design needed

There is some discussion of my thoughts on multi-threaded Emacs [here](https://coredumped.dev/2022/05/19/a-vision-of-a-multi-threaded-emacs/). Read that first. This project gives us a unique opportunity to make the interpreter thread safe. I am generally...

design needed

It's unfortunate that allocation must go through refcell. Perhaps we can do better by using some sort of ghosttoken? ```rust fn alloc(cx: &'a mut Context, token: &'b Token) -> Object

In our wrapper code around native functions we something that looks similar to this ```rust let val = native_func(objects[0], objects[1], &mut arena)?; Ok(crate::object::IntoObject::into_obj(val, arena)) ``` we are calling some native...

unsound?

There is conflict between the Rust world and the elisp world. Rust expects types to have explicit compile time alias checking, and elisp says you can alias anything you want....

design needed

In order to map between the Rust and Lisp worlds, we have to handle aliasing. Data structures must be both mutable and aliasable. The "simple" solution to this is to...

design needed

[Emacs docs](https://www.gnu.org/software/emacs/manual/html_node/elisp/Text-Representations.html) [github comment with explanation](https://github.com/remacs/remacs/issues/499#issuecomment-373981399) Emacs uses an extended UTF-8 internally. It uses code points beyond the extended plane and can therefore use up to 5 bytes instead of...

design needed