On 2013-05-29, at 07:17 , Alex Crichton wrote:
> 
>> In my opinion, rusti gets the job done. Yes, having in-memory compiled state
>> would work a lot better. But I don't know how viable that is. I know for a
>> fact that a big feature plan is to have the compiler only partially compile
>> when applicable, i.e. only compile things are actually important. That would
>> help drastically here.
> 
> For me, if I use rusti I expect to get all of rust and everything that
> entails.

Although I don't think rusti works well enough now (I don't think many
would disagree), I think this expectation is essentially crazy, Rust
not being a language where everything happens at runtime, it seems
only logical that there will be limitations on what an interpreter
can do, just as there are limitations on what ghci[0] does compared to
ghc, or the erlang shell compared to an actual erlang module[1].

That said, I'd also expect additional features (not available in a
normal program) for observing and investigating the current available
environment as Rust doesn't (as far as I know) provide these in the
core language/library (for obvious reasons already mentioned):
where one can use standard ruby or python objects and methods to
introspect the interpreter's namespace[2], ghci has to provide a number
of dedicated command[5] to introspect the interpreter's state and
interact with the external environment sensibly.

[0] Talking about ghci, how does it work? Haskell is also a
    "compile-heavy" language but ghci has very little issues, could
    rusti work the same way?

[1] Part of these limitations stem from eshell being a console, a
    shell, an interface for interacting with a running erlang node
    before being a REPL. Which makes me wonder if Rust will provide
    a basis for such things, providing arguments to the runtime
    itself à la GHC[3] and allowing external tools to connect to
    a running Rust program and inspect/interact with it à la
    Erlang[4]?

[2] And even then, "augmented REPLs" such as ipython or bpython
    have added REPL commands separate from Python's own.

[3] 
http://www.haskell.org/ghc/docs/7.6.2/html/users_guide/runtime-control.html#rts-opts-cmdline

[4] http://www.erlang.org/doc/apps/webtool/webtool_chapter.html
    http://www.erlang.org/doc/apps/appmon/appmon_chapter.html
    http://www.erlang.org/doc/apps/observer/observer_ug.html
    http://www.metabrew.com/article/bigwig-erlang-webtool-spawnfest

[5] http://www.haskell.org/ghc/docs/7.6.2/html/users_guide/ghci-commands.html
_______________________________________________
Rust-dev mailing list
Rust-dev@mozilla.org
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to