Join GitHub today
GitHub is home to over 31 million developers working together to host and review code, manage projects, and build software together.
Sign upInitial import of the Aster syntax::ast builder library #28006
Conversation
rust-highfive
assigned
brson
Aug 26, 2015
This comment has been minimized.
This comment has been minimized.
|
r? @brson (rust_highfive has picked a reviewer for you, use r? to override) |
This comment has been minimized.
This comment has been minimized.
|
IMO we should let this bake on master for a while without an RfC and then make one when we plan to stabilize it. I don't see the point for an RfC in the more unstable parts of the compiler unless you want more feedback on it. I'll do some reviewing of this PR later, no time now |
erickt
force-pushed the
erickt:aster
branch
2 times, most recently
from
de0d962
to
2d35409
Aug 26, 2015
brson
reviewed
Aug 26, 2015
| @@ -1 +1 @@ | |||
| Subproject commit 874dc4ee4cb782056469f003831bcda3e4cdf0df | |||
| Subproject commit bff69076975642c64e76dbeaa53476bfa7212086 | |||
This comment has been minimized.
This comment has been minimized.
brson
reviewed
Aug 26, 2015
| @@ -1 +1 @@ | |||
| Subproject commit c37d3747da75c280237dc2d6b925078e69555499 | |||
| Subproject commit e54d4823d26cdb3f98e5a1b17e1c257cd329aa61 | |||
This comment has been minimized.
This comment has been minimized.
brson
reviewed
Aug 26, 2015
| s | ||
| } | ||
| } | ||
|
|
This comment has been minimized.
This comment has been minimized.
brson
Aug 26, 2015
Contributor
This seems to be introducing a stable implementation. Needs discussion.
erickt
force-pushed the
erickt:aster
branch
from
2d35409
to
bf5efee
Aug 26, 2015
This comment has been minimized.
This comment has been minimized.
|
@brson: thanks for catching that! I removed those changes. |
This comment has been minimized.
This comment has been minimized.
|
r? @nrc |
rust-highfive
assigned
nrc
and unassigned
brson
Aug 26, 2015
This comment has been minimized.
This comment has been minimized.
|
For my part I don't think I should make this decision. I can understand why we might want this in-tree to keep it from breaking, but I'm wary: we don't import entire crates into the compiler often; the prime motivation here is for Servo, not general improvement; there may be ways to offer the stability Servo needs out of tree (with more work perhaps); this forces our hand on compiler interfaces, positioning this as the way to build ASTs without a lot of premeditation on our end. Just listing downsides. Don't feel strongly. |
This comment has been minimized.
This comment has been minimized.
While that is the immediate motivation, I see lots of value in having a more stable libsyntax in-tree for people to use. Aster has already proven its public interface to be pretty stable, and this might pave the way for eventual libsyntax stabilization. If we don't like it, we can always remove it -- we're not proposing to mark aster as stable, but having a practically stable (even if officially unstable) library sounds better than a practically and officially unstable library. (Also, serde isn't just used by Servo, it seems to be a rather popular library |
This comment has been minimized.
This comment has been minimized.
I don’t believe this is inevitable. With http://nightli.es/ or something like it we can be notified of breakage within a day or so, and with more people who can publish new releases Aster can be kept closely up-to-date with Nightly. |
This comment has been minimized.
This comment has been minimized.
|
@SimonSapin: Did the aster breakage from earlier today cause you any problems? |
This comment has been minimized.
This comment has been minimized.
|
No, I just got notified from https://github.com/SimonSapin/run-nightly |
This comment has been minimized.
This comment has been minimized.
|
fwiw, I would much rather have a mechanism for keeping crates like this up to date without importing it into the distro. I think other projects could benefit (I know rustfmt would) and otherwise we will end up getting a bloated distro. This should also be discussed somewhere more visible. I'll start an internals thread, it probably doesn't need an RFC. The libs team have a path to stable which involves first being a 'blessed' crate as part of the rust-lang GH org, then possibly being added to the distro. We should probably follow that path here. I'll postpone a proper review until we decide what to do. |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
|
This comment has been minimized.
This comment has been minimized.
|
I'm gonna close this due to inactivity (and I think the internals thread was a bit up in the air), but feel free to reopen! |
erickt commentedAug 26, 2015
This imports the aster library into the Rust repository as an unstable library. Aster is a
syntax::astbuilder, that simplifies the generation of rust AST. It abstracts away many of the default options, and shields the user from fields being added, removed, or restructured in many circumstances. This allows a library like Serde to be much more reliably compiled on nightly, which has not been broken by aster in the past couple months.This is specifically being done for the Servo project, which has started to use Serde and has gotten broken a few times because of the lag between libsyntax changes and the requisite changes needed to be made in Aster.
I realize that while this is an unstable library this still might need to go through the RFC process, so please let me know and I'll write one up.
cc @nrc, @pcwalton, @SimonSapin, @Manishearth