about summary refs log tree commit diff
path: root/src/comp/rustc.rc
AgeCommit message (Collapse)AuthorLines
2011-08-16Removed trans_comm.rs from the compiler. Updating aio/sio to work with the ↵Eric Holk-2/+0
new chan and port system, started on a networking module for the standard library.
2011-08-15Add a syntax extension to log syntax, for debugging macros.Paul Stansifer-0/+2
2011-08-11rustc: Associate type descriptors with allocas as metadataPatrick Walton-0/+1
2011-08-09Move object-system-related trans stuff to its own file.Lindsey Kuper-0/+1
2011-08-04rustc: Generate shapesPatrick Walton-0/+1
2011-08-03Add #concat_idents[] and #ident_to_str[]Paul Stansifer-1/+4
2011-07-31Get rid of walk.rsMarijn Haverbeke-1/+0
And we're down to a single AST walker again
2011-07-27Remove vestiges of "layers", insert skeletal do-nothing "kind" pass plus ↵Graydon Hoare-0/+1
cached calculation of kind for each type.
2011-07-25Add a pass that checks for unreachable alt armsMarijn Haverbeke-0/+1
2011-07-19Move collect_upvars into its own file.Michael Sullivan-0/+1
2011-07-18rustc: First stab at implementing interior vector concat in the DPS enginePatrick Walton-0/+1
2011-07-15rustc: Introduce a stub destination-passing-style translation engine, ↵Patrick Walton-0/+1
accessible via the --dps switch for now
2011-07-14refactor: Move the task and communication-related translation functions to a ↵Eric Holk-0/+1
new module.
2011-07-14refactor: Move the LLVM type and constant constructors into a new module.Eric Holk-0/+1
2011-07-13Use switches rather than chained conditionals to compile alt matchesMarijn Haverbeke-0/+1
This also moves the alt-related trans code into its own file. Closes #467
2011-07-11Move macro expansion to a separate phase, change macro syntax, and add ↵Paul Stansifer-0/+1
parse_sess to session.
2011-07-08Don't export tyencode from the metadata moduleBrian Anderson-1/+0
This involves pulling the type_abbrev cache out of crate_ctxt
2011-07-08Begin splitting metadata::decoder into decoding and crate search modulesBrian Anderson-1/+2
2011-07-08Introduce metadata::cstoreBrian Anderson-0/+2
I intend for this to be the location for storing all the data retrieved by creader, most of which is currently in the session.
2011-07-07Refactor a few things in the metadata moduleBrian Anderson-1/+1
Rename metadata::tags to metadata::common. Move some utility functions from metadata::encoder to metadata::common.
2011-07-06Begin adding unit testing infrastructure to the compilerBrian Anderson-0/+1
Add a --test flag and a pass for transforming the AST to generate a test harness. Issue #428
2011-07-06Remove temporary stdlib placeholders, use actual stdlib functionsMarijn Haverbeke-1/+0
(Possible now that a snapshot took place.)
2011-07-05Move everything syntax-related to syntax/, break deps on rest of compilerMarijn Haverbeke-20/+27
src/comp/syntax is currently just a sub-module of rustc, but it will, in the near future, be its own crate. This includes: - The AST data structure - The parser - The pretty-printer - Visit, walk, and fold - The syntax extension system - Some utility stuff that should be in the stdlib* *) Stdlib extensions currently require a snapshot before they can be used, and the win build is very broken right now. This is temporary and will be cleaned up when one of those problems goes away. A lot of code was moved by this patch, mostly towards a more organized layout. Some package paths did get longer, and I guess the new layout will take some getting used to. Sorry about that! Please try not to re-introduce any dependencies in syntax/ on any of the other src/comp/ subdirs.
2011-06-30Add a pass to fold out items that do not belong in the current configurationBrian Anderson-0/+1
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-30Move middle::attr to front::attrBrian Anderson-1/+1
2011-06-30Switch rustc's crate metadata to use the link attributeBrian Anderson-4/+5
2011-06-28Add some helper functions for attributes. Issue #487Brian Anderson-0/+1
2011-06-28Add simple syntax extension (#simplext)Paul Stansifer-0/+1
2011-06-28Add AST fold.Paul Stansifer-0/+1
2011-06-27Rename metadata::defs to metadata::tagsBrian Anderson-1/+1
2011-06-27Don't export some of the metadata modulesBrian Anderson-0/+5
2011-06-27Move what's left of metadata::cwriter into middle::transBrian Anderson-1/+0
2011-06-27Extract metadata::decoder from metadata::creaderBrian Anderson-0/+1
2011-06-27Extract metadata::tydecode from metadata::creaderBrian Anderson-0/+1
2011-06-27Extract llvm-independent code from cwriter to metadata::encoderBrian Anderson-0/+1
2011-06-27Move metadata tag definition to metadata::defsBrian Anderson-0/+1
2011-06-27Move metadata::cwriter::encode to metadata::tyencodeBrian Anderson-0/+1
2011-06-27Rename middle::metadata to metadata::cwriter. Move creader to metadataBrian Anderson-2/+5
Preparation for a lot more metadata refactoring
2011-06-22Compute typestate properly for moveTim Chevalier-0/+1
typestate now drops constraints correctly in the post-state of a move expression or a declaration whose op is a move. It doesn't yet drop constraints mentioning variables that get updated. To do this, I had to change typestate to use trit-vectors instead of bit-vectors, because for every constraint, there are three possible values: known-to-be-false (e.g. after x <- y, init(y) is known-to-be-false), known-to-be-true, and unknown. Before, we conflated known-to-be-false with unknown. But move requires them to be treated differently. Consider: (program a) (a1) x = 1; (a2) y <- x; (a3) log x; (program b) (b1) x = 1; (b2) y <- z; (b3) log x; With only two values, the postcondition of statement a2 for constraint init(x) is the same as that of b2: 0. But in (a2)'s postcondition, init(x) *must* be false, but in (b2)'s condition, it's just whatever it was in the postcondition of the preceding statement.
2011-06-20Remove the old library names. These were unused since rustboot.Rafael Ávila de Espíndola-17/+1
Right now rustc hardcodes -lrustllvm. The idea is to instead remember all the native modules used and convert them to -l directives to the linker. In the case of a library that is installed in an unusual location, Graydon suggested using metadata: native module foo = "bar" { }
2011-06-20Add a separate AST mapping phaseMarijn Haverbeke-0/+1
This will replace the various node_id-to-node mappings done in several other passes. This commit already uses the new map in resolve, dropping the ast_map that was built there before.
2011-06-18Replace unexported meta tags with attributesBrian Anderson-3/+2
Issue #487
2011-06-18rustc: Replace 'export meta' with attributesBrian Anderson-4/+4
Issue #487
2011-06-17rustc: Use correct version key in metadataBrian Anderson-1/+1
2011-06-10Implement meta tag matching in creader. Start using it in rustc.rc. Close ↵Graydon Hoare-1/+3
#459. Close #457.
2011-06-09Further support for predicate constraintsTim Chevalier-0/+1
Changed function types to include a list of constraints. Added code for parsing and pretty-printing constraints. This necessitated splitting pprust into two files (pprust and ppaux) to break a circulate dependency, as ty_to_str now needs to print out constraints, which may include literals, but pprust depended on ty.
2011-06-09Add new visitor frameworkMarijn Haverbeke-0/+1
2011-06-08Tidy up 'export meta' situation now that snapshot understands it.Graydon Hoare-5/+8
2011-06-06First take on an alias-safety checkerMarijn Haverbeke-0/+1
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.
2011-06-04rustc: Introduce ext module. Move some things from parser to ext.Brian Anderson-0/+1
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.