about summary refs log tree commit diff
path: root/src/comp
AgeCommit message (Collapse)AuthorLines
2011-07-01rustc: Fix memory corruption with ivectors-inside-ivectors by duplicating ↵Patrick Walton-2/+2
*first*, and *then* copying subtypes.
2011-07-01rustc: Move path_to_str to front::astPatrick Walton-19/+19
2011-07-01Introduce --cfg argument for providing additional configuration. Issue #489Brian Anderson-4/+27
2011-07-01Add some FIXMEs for issue #607Brian Anderson-1/+5
2011-07-01Add some logging to attr when reading crate link attributesBrian Anderson-2/+1
Only link attributes of the meta_list type are considered when matching crate attributes. Instead of doing nothing we can at least log that link attributes of other types were ignored.
2011-07-01Revert "rustc: Change methods in ty::t to use interior vectors"Patrick Walton-48/+43
This reverts commit 6720ea760df41df82af880b593e5b6023608d6cd.
2011-07-01rustc: Change methods in ty::t to use interior vectorsPatrick Walton-43/+48
2011-07-01Export only what's in use from front::eval. Issue #604Brian Anderson-0/+2
2011-07-01Remove unused imports from front::evalBrian Anderson-7/+0
2011-07-01Remove remaining unused eval methods. Issue #604Brian Anderson-46/+0
2011-07-01Remove the concept of crate directive let statements. Issue #604Brian Anderson-123/+0
2011-07-01Remove the concept of crate directive expressions. Issue #604Brian Anderson-66/+1
2011-07-01Remove the environment concept from front::evalBrian Anderson-75/+51
This is the old method of conditional compilation. It is going away. Issue #489
2011-07-01Cleanup attribute code. Issue #487Brian Anderson-28/+23
2011-07-01Add some helper functions to front::attrBrian Anderson-0/+20
2011-07-01Track def_ids of native types so that they can be distinguishedMarijn Haverbeke-30/+49
Closes #526
2011-07-01Allow dereferencing of single-variant, single-argument tag valuesMarijn Haverbeke-81/+141
(Using the * operator.) This makes tags more useful as nominal 'newtype' types, since you no longer have to copy out their contents (or construct a cumbersome boilerplate alt) to access them. I could have gone with a scheme where you could dereference individual arguments of an n-ary variant with ._0, ._1, etc, but opted not to, since we plan to move to a system where all variants are unary (or, I guess, nullary).
2011-07-01Allow 'newtype' syntax for tagsMarijn Haverbeke-16/+47
Doing this: tag foo = mytype; is now equivalent to doing this: tag foo { foo(mytype); }
2011-07-01Do not store a tag num for single-variant tagsMarijn Haverbeke-119/+142
This is a preparation for tags-as-nominal-types. A tag that has only a single variant is now represented, at run-time, as simply a tuple of the variant's parameters, with the variant id left off.
2011-07-01Make sure the pretty-printer understand resourcesMarijn Haverbeke-1/+4
2011-07-01Implement autoderef for function calls.Michael Sullivan-23/+51
This is important since we are going to be making functions noncopyable soon, which means we'll be seeing a lot of boxed functions. (*f)(...) is really just too heavyweight. Doing the autodereferencing was a very little bit tricky since trans_call works with an *lval* of the function whereas existing autoderef code was not for lvals.
2011-07-01Move autoderefed_ty to ty.rs and rename it type_autoderef.Michael Sullivan-14/+15
2011-06-30rustc: Duplicate heap data of interior vectors when passing them by valuePatrick Walton-1/+15
2011-06-30Minor pp cleanups.Graydon Hoare-4/+4
2011-06-30Preserve hard \n\n pairs from source when pretty-printing, as explicit ↵Graydon Hoare-13/+32
formatting control from users.
2011-06-30rustc: Remove unused variables from last commitPatrick Walton-2/+0
2011-06-30rustc: Change function argument types to interior vectorsPatrick Walton-75/+97
2011-06-30Pretty-print view items in mod itemsBrian Anderson-5/+4
For mods that aren't defined at the file level we were forgetting to print the view items so, e.g. 'mod { use std; }' would not print correctly.
2011-06-30Use attributes for conditional compilation in std.rcBrian Anderson-2/+24
2011-06-30Conditionally compile items declared as statements. Issue #489Brian Anderson-1/+30
2011-06-30Get rid of remaining unused variablesTim Chevalier-6/+4
2011-06-30Don't warn about unused for-loop index variablesTim Chevalier-0/+4
2011-06-30Kill unused variablesTim Chevalier-91/+37
2011-06-30Warn for unused variablesTim Chevalier-69/+122
Modify typestate to check for unused variables and emit warnings where relevant. This exposed a (previously harmless) bug in collect_locals where outer functions had bit-vector entries for init constraints for variables declared in their inner nested functions. Fixing that required changing collect_locals to use visit instead of walk -- probably a good thing anyway.
2011-06-30rustc: Use interior vectors for record typesPatrick Walton-27/+24
2011-06-30rustc: Make mk_imm_tup() take an interior vectorPatrick Walton-48/+65
2011-06-30rustc: Use interior vectors for tuple typesPatrick Walton-23/+27
2011-06-30Added a nanosecond timer to time.rs, support for some floating point casts, ↵Eric Holk-1/+16
and a commandline-driven mode for pfib.rs
2011-06-30Add a pass to fold out items that do not belong in the current configurationBrian Anderson-0/+71
The parser needs to parse unconfigured items into the AST so that they can make the round trip back through the pretty printer, but subsequent passes shouldn't care about items not being translated. Running a fold pass after parsing is the lowest-impact way to make this work. The performance seems fine. Issue #489
2011-06-30Add missing item variants to fold_item_underscoreBrian Anderson-0/+3
2011-06-30Add missing expression variants to fold_exprBrian Anderson-0/+15
2011-06-30Fold the crate-level module in front::foldBrian Anderson-1/+2
2011-06-30Move middle::attr to front::attrBrian Anderson-4/+4
2011-06-30Convert the eval::env to an ast::crate_cfgBrian Anderson-4/+19
crate_cfg will replace eval::env as the mechanism for conditional compilation. This is a transitional step so they can both exist together. Issue #489
2011-06-30Introduce a config property to the crate AST nodeBrian Anderson-4/+12
This represents the compilation environment, defined as AST meta_items, Used for driving conditional compilation and will eventually replace the environment used by the parser for the current conditional compilation scheme. Issue #489
2011-06-30Switch rustc's crate metadata to use the link attributeBrian Anderson-4/+5
2011-06-30Support type parameters in resourcesMarijn Haverbeke-66/+151
Some rather dodgy code was added to trans in the process. I'd love to discuss it with someone who knows more about types during translation.
2011-06-30Make calling resource destructors work cross-crateMarijn Haverbeke-29/+60
Tydescs are currently re-created for each compilation unit (and I guess for structural types, they have to be, though the duplication still bothers me). This means a destructor can not be inlined in the drop glue for a resource type, since other crates don't have access to the destructor body. Destructors are now compiled as separate functions with an external symbol that can be looked up in the crate (under the resource type's def_id), and called from the drop glue.
2011-06-30Second try to remove -lssp.Rafael Ávila de Espíndola-5/+2
2011-06-29More fixes to fast-check.Graydon Hoare-2/+10