-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Make the macro system more modular. #451
Commits on Jun 3, 2011
-
Configuration menu - View commit details
-
Copy full SHA for 2e4f7a2 - Browse repository at this point
Copy the full SHA 2e4f7a2View commit details
Commits on Jun 4, 2011
-
Configuration menu - View commit details
-
Copy full SHA for 72e11fd - Browse repository at this point
Copy the full SHA 72e11fdView commit details
Commits on Jun 9, 2011
-
Configuration menu - View commit details
-
Copy full SHA for 9a65c16 - Browse repository at this point
Copy the full SHA 9a65c16View commit details -
Configuration menu - View commit details
-
Copy full SHA for c974cc3 - Browse repository at this point
Copy the full SHA c974cc3View commit details -
Temporarily xfail compile-fail/pattern-tyvar
So that the tinderboxes can go green again. Patrick, please look into this at some point.
Configuration menu - View commit details
-
Copy full SHA for c94c9e8 - Browse repository at this point
Copy the full SHA c94c9e8View commit details -
Accept *foo as a pointer to foo.
This is accepted everywhere, since just passing a pointer is safe.
Configuration menu - View commit details
-
Copy full SHA for b3d6ead - Browse repository at this point
Copy the full SHA b3d6eadView commit details -
Configuration menu - View commit details
-
Copy full SHA for d258852 - Browse repository at this point
Copy the full SHA d258852View commit details -
Configuration menu - View commit details
-
Copy full SHA for 92e246a - Browse repository at this point
Copy the full SHA 92e246aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 99ccd02 - Browse repository at this point
Copy the full SHA 99ccd02View commit details -
Configuration menu - View commit details
-
Copy full SHA for 60d730f - Browse repository at this point
Copy the full SHA 60d730fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 884acab - Browse repository at this point
Copy the full SHA 884acabView commit details -
Configuration menu - View commit details
-
Copy full SHA for 86c3e16 - Browse repository at this point
Copy the full SHA 86c3e16View commit details -
Configuration menu - View commit details
-
Copy full SHA for c66ffa0 - Browse repository at this point
Copy the full SHA c66ffa0View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d02fb4 - Browse repository at this point
Copy the full SHA 7d02fb4View commit details -
Configuration menu - View commit details
-
Copy full SHA for c41eada - Browse repository at this point
Copy the full SHA c41eadaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1c5f6c9 - Browse repository at this point
Copy the full SHA 1c5f6c9View commit details -
rustc: Introduce ext module. Move some things from parser to ext.
Introduce an ext_ctxt record to provide a span_err method for use while expanding syntax extensions. Hopefully it will be useful for other things.
Configuration menu - View commit details
-
Copy full SHA for b55a99c - Browse repository at this point
Copy the full SHA b55a99cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 462e47e - Browse repository at this point
Copy the full SHA 462e47eView commit details -
Configuration menu - View commit details
-
Copy full SHA for cd88b51 - Browse repository at this point
Copy the full SHA cd88b51View commit details -
Configuration menu - View commit details
-
Copy full SHA for 3e72b23 - Browse repository at this point
Copy the full SHA 3e72b23View commit details -
Configuration menu - View commit details
-
Copy full SHA for fe51cee - Browse repository at this point
Copy the full SHA fe51ceeView commit details -
Configuration menu - View commit details
-
Copy full SHA for 457b6ba - Browse repository at this point
Copy the full SHA 457b6baView commit details -
Configuration menu - View commit details
-
Copy full SHA for dac75ff - Browse repository at this point
Copy the full SHA dac75ffView commit details -
rustc: Add a next_ann method to ext_ctxt
After this we can remove the parser from the syntax extensions, at least for now.
Configuration menu - View commit details
-
Copy full SHA for a77cc7f - Browse repository at this point
Copy the full SHA a77cc7fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 81899ce - Browse repository at this point
Copy the full SHA 81899ceView commit details -
rustc: Hide the parser from syntax extensions
Eventually extensions will probably need access to the parser again, but it'll be in a different form.
Configuration menu - View commit details
-
Copy full SHA for 6b2a8cd - Browse repository at this point
Copy the full SHA 6b2a8cdView commit details -
rustc: Reenable debug logging in extfmt
This is not obnoxious now that logging is off by default
Configuration menu - View commit details
-
Copy full SHA for 6689e57 - Browse repository at this point
Copy the full SHA 6689e57View commit details -
Configuration menu - View commit details
-
Copy full SHA for 5a9aa5f - Browse repository at this point
Copy the full SHA 5a9aa5fView commit details -
Remove redundant 'fail' exprs and dead code; use sess.bug or
sess.span_err instead of 'fail'. (issue rust-lang#444)
Configuration menu - View commit details
-
Copy full SHA for ba0044a - Browse repository at this point
Copy the full SHA ba0044aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 103317d - Browse repository at this point
Copy the full SHA 103317dView commit details -
Configuration menu - View commit details
-
Copy full SHA for bcfa0d1 - Browse repository at this point
Copy the full SHA bcfa0d1View commit details -
This litters aberrations like 'alt({foo.bar}) { ... }' and f({*baz}) though the code (mostly in trans.rs). These are a way to explicitly copy the given value so that it can be safely aliased. At some point we'll probably want a more explicit copy operator.
Configuration menu - View commit details
-
Copy full SHA for 3d165ba - Browse repository at this point
Copy the full SHA 3d165baView commit details -
First take on an alias-safety checker
The alias checker works by ensuring that any value to which an alias is created is rooted in some way that ensures it outlives the alias. It is now disallowed to create an alias to the content of a mutable box, or to a box hanging off a mutable field. There is also machinery in place to prevent assignment to local variables whenever they are the root of a live alias.
Configuration menu - View commit details
-
Copy full SHA for bc8fcf1 - Browse repository at this point
Copy the full SHA bc8fcf1View commit details -
Configuration menu - View commit details
-
Copy full SHA for 543717e - Browse repository at this point
Copy the full SHA 543717eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 70b1d6e - Browse repository at this point
Copy the full SHA 70b1d6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for 7458a07 - Browse repository at this point
Copy the full SHA 7458a07View commit details -
Don't put a copy of main (the C one) in each binary we produce. This …
…is a step in getting a driver that works on all linux systems. Sorry for the linker hacks, I will remove them after snapshotting a new compiler.
Configuration menu - View commit details
-
Copy full SHA for 5251ea5 - Browse repository at this point
Copy the full SHA 5251ea5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1d2f0e5 - Browse repository at this point
Copy the full SHA 1d2f0e5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 9a2546f - Browse repository at this point
Copy the full SHA 9a2546fView commit details -
Configuration menu - View commit details
-
Copy full SHA for bc0ea91 - Browse repository at this point
Copy the full SHA bc0ea91View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7d47d93 - Browse repository at this point
Copy the full SHA 7d47d93View commit details -
rustc: Use a set-based approach to unification; remove ty_bound_param…
… and ty_local. Sorry, big perf regression; will fix soon.
Configuration menu - View commit details
-
Copy full SHA for 4b3755b - Browse repository at this point
Copy the full SHA 4b3755bView commit details -
rustc: Print out a real error message on unresolved types. Puts out b…
…urning tinderbox.
Configuration menu - View commit details
-
Copy full SHA for 2200d6e - Browse repository at this point
Copy the full SHA 2200d6eView commit details -
Configuration menu - View commit details
-
Copy full SHA for fa306d7 - Browse repository at this point
Copy the full SHA fa306d7View commit details -
Configuration menu - View commit details
-
Copy full SHA for 64c0631 - Browse repository at this point
Copy the full SHA 64c0631View commit details -
Configuration menu - View commit details
-
Copy full SHA for 04ffefb - Browse repository at this point
Copy the full SHA 04ffefbView commit details -
Configuration menu - View commit details
-
Copy full SHA for 9bedc39 - Browse repository at this point
Copy the full SHA 9bedc39View commit details -
Configuration menu - View commit details
-
Copy full SHA for dc39dd4 - Browse repository at this point
Copy the full SHA dc39dd4View commit details -
Configuration menu - View commit details
-
Copy full SHA for b33bf32 - Browse repository at this point
Copy the full SHA b33bf32View commit details -
Configuration menu - View commit details
-
Copy full SHA for ba6f670 - Browse repository at this point
Copy the full SHA ba6f670View commit details -
Configuration menu - View commit details
-
Copy full SHA for 0dafbf6 - Browse repository at this point
Copy the full SHA 0dafbf6View commit details -
Configuration menu - View commit details
-
Copy full SHA for 1a880df - Browse repository at this point
Copy the full SHA 1a880dfView commit details -
rustc: Add some miscellaneous demands that pushdown had previously ca…
…ught; put out burning tinderbox
Configuration menu - View commit details
-
Copy full SHA for bc59dfa - Browse repository at this point
Copy the full SHA bc59dfaView commit details -
Configuration menu - View commit details
-
Copy full SHA for 1689650 - Browse repository at this point
Copy the full SHA 1689650View commit details -
Configuration menu - View commit details
-
Copy full SHA for 53248ce - Browse repository at this point
Copy the full SHA 53248ceView commit details -
rustc: Don't generate so many variables when typechecking functions; …
…remove mo_either
Configuration menu - View commit details
-
Copy full SHA for 1a72745 - Browse repository at this point
Copy the full SHA 1a72745View commit details -
rustc: Make resolve_all_vars() check to see whether the type actually…
… has vars before folding over it; also remove some debug code. 2x typechecking speedup.
Configuration menu - View commit details
-
Copy full SHA for 9eb4081 - Browse repository at this point
Copy the full SHA 9eb4081View commit details -
Configuration menu - View commit details
-
Copy full SHA for dbb3471 - Browse repository at this point
Copy the full SHA dbb3471View commit details -
Configuration menu - View commit details
-
Copy full SHA for 7b09e2d - Browse repository at this point
Copy the full SHA 7b09e2dView commit details -
Configuration menu - View commit details
-
Copy full SHA for da4e3b9 - Browse repository at this point
Copy the full SHA da4e3b9View commit details -
Some more workarounds to please the alias checker
Some of the vec utilities now only work on immutable vecs, since they would have to be rewritten to do a lot more copying to be alias-safe. Some forced copying was added to map.rs, showing a weakness in the alias checker (or maybe the alias system): when fn args are passed into a function, calling them must assume all aliases that are not immutably rooted (directly connected to a local or temporary without any mutable edges) become invalid. This will be a drag on functional programming in Rust. Work around alias issues in the stdlib
Configuration menu - View commit details
-
Copy full SHA for 5335ffd - Browse repository at this point
Copy the full SHA 5335ffdView commit details -
Configuration menu - View commit details
-
Copy full SHA for 25b0338 - Browse repository at this point
Copy the full SHA 25b0338View commit details -
A revised, improved alias-checker
The old system tried to ensure that the location an alias pointed at would retain its type. That turned out to not be strong enough in the face of aliases to the inside of tags. The new system instead proves that values pointed to by aliases are not replaced (or invalidated in some other way) at all. It knows of two sufficient conditions for this, and tries to prove at least of them: A) The alias is 'immutably rooted' in a local, and this local is not reassigned for the lifetime of the alias. Immutably rooted means the alias refers to the local itself, or to something reachable from the local through immutable dereferencing. B) No value whose type might include the type of the 'inner mutable element' of the thing the alias refers to (for example, the box in rec(mutable x = @mutable int)) is from the outer scope is accessed for the lifetime of the alias. This means for functions, no other argument types may include the alias's inner mutable type. For alt, for each, and for, it means the body does not refer to any locals originating from outside their scope that include this type. The lifetime of an alias in an alt, for each, or for body is defined as the range from its definition to its last use, not to the point where it goes out of scope. This makes working around these restrictions somewhat less annoying. For example, you can assign to your alt-ed value you don't refer to any bindings afterwards.
Configuration menu - View commit details
-
Copy full SHA for c70792d - Browse repository at this point
Copy the full SHA c70792dView commit details -
Properly handle lifetime of aliases in nested blocks
There was a bug that would cause the alias analyser to allow you to invalidate an alias that was no longer directly referred to, even if another alias was rooted in it. It now properly tracks dependencies between live aliases. Required another case of copying values in map.rs.
Configuration menu - View commit details
-
Copy full SHA for b33fb68 - Browse repository at this point
Copy the full SHA b33fb68View commit details