Since I work in R alot, I value a repl session with state very highly.  Bad
scenario: suppose I'm working at rusti, and then I make one mistake in
syntax, or do an index into a vector that is out-of-bounds and thus cause
an assert!() to fire and my current task to fail. If I'm working at a repl
without transactional rollback and recovery, suddenly rusti deletes all my
data and code and work and starts over? Yikes.  See Alex's comments earlier
in this discussion thread.

To me, casual data loss is simply unacceptable. The repl state must survive
mistakes by the user, or else it isn't usable at all. Period.

Progress update:  we have a name!  Meet Rustxi

Progress update:  and, we have code!

I've implemented transactional code evaluation using three processes and
ping-pong forking.  This was done in a prototype spike of Rust code that I
posted to the repo below, and it works well. It doesn't loose state. It
provides transactions with commit-on-success and rollback-on-failure.  Of
course, nothing is hooked up to rustc yet.

Code, design, and RFC (Request For Comments) here:

https://github.com/glycerine/rustxi
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to