[rust-dev] how is Rust bootstrapped?

Benjamin Striegel ben.striegel at gmail.com
Mon Jun 9 11:15:32 PDT 2014


This does raise a good question though: post-1.0, will we continue the
current procedure of snapshotting whenever we feel like it, or will we
restrict snapshots to stable releases, as Go plans to do?

https://docs.google.com/document/d/1P3BLR31VA8cvLJLfMibSuTdwTuF7WWLux71CYD0eeD8/preview?sle=true

"The rule we plan to adopt is that the Go 1.3 compiler must compile using
Go 1.2, Go 1.4 must compile using Go 1.3, and so on."




On Mon, Jun 9, 2014 at 1:00 PM, Brian Anderson <banderson at mozilla.com>
wrote:

> This is an interesting idea, but I don't see it happening for a long time
> if ever:
>
> * The current process is working fine
> * rustc depends on many of the standard libraries, so restricting rustc
> means figuring out how to stick to a fixed subset of those libraries
> * It's a lot of work to make the bootstrap process even *more* complicated
> * For some minor benefits
>
>
> On 06/09/2014 06:34 AM, James Cassidy wrote:
>
>> On Mon, Jun 09, 2014 at 12:55:00PM +0000, Sanghyeon Seo wrote:
>>
>>> Do you plan to create a cleaner full-bootstrap process?
>>>> By "cleaner" I mean dividing stage-0 to more [sub-]stages,
>>>> which would be well-defined and documented in terms of
>>>> the set of language features it implements. Currently these
>>>> sub-stages are defined by a team member's mood to instruct
>>>> the build-bots to make a snapshot. This kind of bootstrap
>>>> seems to be a black-box.
>>>>
>>> As I understand, there is no plan to do this. "Bootstrap" you are talking
>>> about is purely theoretical, and I don't think anyone actually performed
>>> it.
>>> In practice, Rust is bootstrapped from the downloaded binary.
>>>
>>>  I understand you do not spend resource on such tasks before 1.0,
>>>> but do you think this is a legitimate|sensible request at all?
>>>> Would it be worth the work?
>>>>
>>> Personally, I don't see any value in doing this work. C compilers are
>>> bootstrapped from C compiler binaries. Analogously, the Rust compiler
>>> is bootstrapped from the Rust compiler binary.
>>>
>>> Trying to bootstrap from rustboot would be akin to trying to bootstrap
>>> GCC from last1120c (the oldest C compiler with surviving source code).
>>> An interesting feat of computer archaeology, but not really useful for
>>> anything.
>>>
>>>  I think he was more referring to what language features will be allowed
>> in the
>> rust compiler itself where earlier stages would be more restricted so
>> they can
>> be compiled with older rust compilers, for example hopefully rustc 2.0
>> can be
>> compiled by rustc 1.0.  Then later stages could use more features since
>> it will
>> be compiled with the more up to date earlier stage.
>>
>> Currently what features can be used in the compiler itself are just
>> limited to
>> whenever someone decides to compiler a newer stage0 compiler.
>>
>>
>> -- Jim
>> _______________________________________________
>> Rust-dev mailing list
>> Rust-dev at mozilla.org
>> https://mail.mozilla.org/listinfo/rust-dev
>>
>
> _______________________________________________
> Rust-dev mailing list
> Rust-dev at mozilla.org
> https://mail.mozilla.org/listinfo/rust-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/rust-dev/attachments/20140609/36aabfcb/attachment.html>


More information about the Rust-dev mailing list