----- Original Message -----
> From: "Niko Matsakis" <[email protected]>
> To: [email protected]
> Sent: Wednesday, December 14, 2011 7:00:33 PM
> Subject: [rust-dev] runtime libraries and stage1
> So, if I am not mistaken, we currently execute the stage1 compiler
> using
> the runtime sources that we compile out of the user's directory. As
> the
> stage1 binary is built using the snapshot, this doesn't seem quite
> right: we ought to be executing it using the snapshot runtime. The
> stage2 and stage3 binaries, then, ought to execute using the runtime
> from the user's directory.

With Rust having to bootstrap itself there will always be some situations that 
are difficult to make incompatible changes. The current arrangement is 
definitely the best we've had so far (in the past things have been 
occassionally truly frustrating), so I'm ambivalent about this. And I like that 
the current snapshot only requires the bare minimum of host artifacts, no 
target artifacts.

With this change it will be easy to modify upcalls. On the other hand, any time 
std or core need to modify a runtime interface it will require creating 
temporary runtime methods, snapshotting, etc. So maybe we also snapshot core & 
std for each target. Now you promote the stage0 target snapshots to stage1. At 
this point we've reproduced the existing stage0 problems, but are calling them 
stage1.

Intrinsics and libmorestack have similar dependencies on the runtime as std and 
core, though they change rarely.

I'm totally fine with trying, but I don't think there's anything we can do that 
will be definitively 'right'.

-Brian
_______________________________________________
Rust-dev mailing list
[email protected]
https://mail.mozilla.org/listinfo/rust-dev

Reply via email to