On 09/19/2013 11:24 AM, Jason E. Aten wrote:
Minh Do and I are looking into how to improve rusti -the- repl, so
that is fast, efficient, and stable. Minh is undertaking this as a
final year project in his CS undergraduate program, and I am mentoring
that project and plan to work on it my spare time. We had a first
conference call this week.
I'm very excited about this!
I've spoken with Alex Crichton and started a few conversations on IRC
#rust to discuss how rusti might ideally work. I'm posting to
rust-dev to solicit additional feedback, guidance, and input.
Goals (and an important non-goal) for an improved rusti experience:
As an application developer in rust, I want to evaluate the effect of
a small Rust statement or expression, so that I can quickly learn the
impact of that statement and immediately verify or correct its syntax
based on instant feedback.
As a developer, I want to be able to change one variable or function
definition without a full recompile, so that I can quickly and
immediately see the result of, and evaluate the impact of, the
change. [I'm impatient! I don't want to wait for a full recompile of
everything.]
Yes. One of the major flaws in the current rusti is that it maintains no
state, instead just accumulating a bunch of statements and recompiling
the entire history every time the user presses enter.
The important example that is present in my mind, from discussions on
the #rust channel, is that it appears that tasks/coroutines may be
difficult or needlessly complex for a repl (if written in rust itself,
which lacks exceptions) to handle. In other words, it may be very
arduous (given current encodable/decodable constraints) to implement
in a rusti repl that supports task and fail! semantics. While we are
open to clever suggestions about how to make that happen if it is
indeed possible, this may still be undesirable and out-of-scope for a
resource-constrained project. The classic tradeoff of 80% of the
benefit for 20% of the effort should be observed.
I don't know why tasks and failure are special in the context of rusti.
It seems like they should just work as long as the JIT works.
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev