Marijn Haverbeke
3816e57fd2
Downcase std modules again, move to :: for module dereferencing
...
This should be a snapshot transition.
2011-05-12 21:30:44 +02:00
Marijn Haverbeke
358a1aeec9
Keep resolve data in external hash table, rather than embedded defs
...
One step closer to removing fold and having a single, immutable AST.
Resolve still uses fold, because it has to detect and transform
expr_field expressions. If we go through on our plan of moving to a
different syntax for module dereferencing, the parser can spit out
expr_field expressions, and resolve can move to walk.
(I am truly sorry for the things I did in typestate_check.rs. I expect
we'll want to change that to walk as well in the near future, at which
point it should probably pass around a context record, which could
hold the def_map.)
2011-05-12 15:40:21 +02:00
Brian Anderson
a459bcd127
Give the lexer a session so that it can fail more informatively
2011-05-11 23:04:16 -04:00
Marijn Haverbeke
7f222423b7
Use a const for crate-num-zero (ast.local_crate)
2011-05-11 12:59:34 +02:00
Patrick Walton
7da9101e11
rustc: Make -g not take an argument
2011-05-10 17:50:39 -07:00
Graydon Hoare
d6f1fcff6b
Add --time-llvm-passes.
2011-05-10 16:10:08 -07:00
Marijn Haverbeke
a3ec0b1f64
Rename std modules to be camelcased
...
(Have fun mergining your stuff with this.)
2011-05-06 22:51:19 +02:00
Kelly Wilson
b4a0d891c0
Ge the host triple using LLVM. Fix a few 'mutable' warnings also.
2011-05-06 11:30:39 -07:00
Graydon Hoare
1e03f00404
Use #env to bake a git revision string into rustc's --version output.
2011-05-06 11:21:51 -07:00
Graydon Hoare
f5f2f76339
Add --help, --version and -v flags (not yet supporting GIT_REV env var, waiting on snapshot).
2011-05-05 13:09:43 -07:00
Patrick Walton
fea623211f
rustc: Add a Link module; move crate writing to it to slim down trans slightly
2011-05-05 10:48:02 -07:00
Patrick Walton
bde44a03a9
rustc: Detect the system root and allow the user to override if necessary
2011-05-04 19:27:54 -07:00
Graydon Hoare
cdb6822405
Add a structure for passing option flags around the compiler, put it in session, and use it.
2011-05-04 16:59:21 -07:00
Graydon Hoare
ce9468761c
Support new -g flag, only mangle glue names by type when it's passed.
2011-05-04 15:36:42 -07:00
Graydon Hoare
b453c3c728
Start sketching --depend support in rustc.
2011-05-03 15:56:00 -07:00
Patrick Walton
ebc236e91c
rustc: Time the Rust translation and LLVM passes separately
2011-05-02 17:50:46 -07:00
Brian Anderson
d88776726a
rustc: Preserve dots in input path when using an implicit output path
...
This avoids outputing, e.g. /test.bc for ../test.rs
2011-05-01 14:42:45 -04:00
Patrick Walton
9aeb67987c
rustc: Temporarily add a switch and a corresponding makefile variable to disable typestate
2011-04-29 12:16:14 -07:00
Patrick Walton
adfacc5031
rustc: Add a --time-passes option
2011-04-29 11:55:20 -07:00
Patrick Walton
c52fb52fbc
rustc: Remove the wrong-compiler warning; we're self-hosting now.
2011-04-29 10:23:53 -07:00
Patrick Walton
171883f437
rustc: Only use color if it's supported
2011-04-28 14:59:16 -07:00
Tim Chevalier
2c3808b511
Enable typestate_check
...
This was supposed to be in a previous commit. I don't know what happened.
2011-04-28 13:26:19 -07:00
Tim Chevalier
34dae82b48
Add a session field to ty_ctxt and change an err to span_err
...
I changed instantiate to print out a more helpful error message,
which required passing it a session argument. To avoid
threading extra arguments through a lot of functions,
I added a session field to ty_ctxt.
2011-04-28 13:26:19 -07:00
Patrick Walton
91fe4ae090
rustc: Joseph and the Amazing Technicolor Error Messages
2011-04-28 10:51:12 -07:00
Marijn Haverbeke
6b11f6c46f
Change rustc to use GetOpts rather than ad-hoc command-line parsing
...
NOTE: all 'long' parameters now use a double dash, so --shared, rather
than gcc-style -shared.
2011-04-26 20:32:14 +02:00
Patrick Walton
e0479c902b
rustc: Add a -save-temps option to save bitcode and write output simultaneously; document command line switches
2011-04-25 14:08:12 -07:00
Patrick Walton
e102413aad
rustc: Pass a "type context" around instead of directly passing the type store; prep for removing type annotations
2011-04-25 12:15:55 -07:00
Patrick Walton
5dbf554bb3
rustc: Pass a type store around, which does nothing yet
2011-04-21 14:30:27 -07:00
Patrick Walton
1080ac5349
rustc: Add a -noverify option
2011-04-19 18:31:27 -07:00
Graydon Hoare
d2bd07dcb0
Remove effect system from src.
2011-04-19 13:35:49 -07:00
Marijn Haverbeke
6511d471ba
replace error logging with log_err in stdlib and rustc
2011-04-19 16:57:13 +02:00
Rafael Ávila de Espíndola
f12998e5d7
Add a -c option.
2011-04-18 10:02:52 -04:00
Marijn Haverbeke
0bf75a203e
collect crate meta info and ext crate names
2011-04-18 15:28:47 +02:00
Rafael Ávila de Espíndola
2214b6835d
Add a -S option for producing assembly. I will move more of it to
...
rust once the necessary APIs are available in C.
2011-04-15 17:41:14 -04:00
Rafael Ávila de Espíndola
cca6335c26
Implement the "attempted dynamic environment-capture" error in rustc.
2011-04-11 15:35:01 -04:00
Marijn Haverbeke
1af3174fe3
Move to single-uint file-position representation.
...
This makes passing them around cheaper. There is now a table (see
front/codemap.rs) that is needed to transform such an uint into an
actual filename/line/col location.
Also cleans up the span building in the parser a bit.
2011-04-09 01:05:18 +02:00
Marijn Haverbeke
32e62d0151
add a -parse-only option to rustc
...
(undocumented, only used for profiling the parser)
2011-04-08 00:46:41 +02:00
Marijn Haverbeke
39774e88b4
Add a very basic crate-dump utility
...
'rustc -ls [cratelib]' will now dump out a list of symbols defined by
the crate, as well as a short description of what they are.
2011-04-07 14:19:19 -07:00
Rafael Ávila de Espíndola
b4422cca21
Add a -O option and change the Makefile to use it.
2011-04-07 15:42:06 -04:00
Graydon Hoare
23f18a096f
Re-enable typestate_check in build, was lost during merge. Sorry.
2011-04-01 17:23:56 -07:00
Graydon Hoare
2a2ea6351d
Comment out import for not-yet-compiling typestate_check.
2011-04-01 17:04:07 -07:00
Tim Chevalier
3130348ee1
Started adding support for typestate checking.
...
I added a new field to the ast "ann" type for typestate information.
Currently, the field contains a record of a precondition bit vector and
postcondition vector, but I tried to structure things so as to make
it easy to change the representation of the typestate annotation type.
I also had to add annotations to some syntactic forms that didn't have
them before (fail, ret, be...), with all the boilerplate changes
that that would imply.
The main call to the typestate_check entry point is commented out and
the actual pre-postcondition algorithm only has a few cases
implemented, though the overall AST traversal is there. The rest of
the typestate algorithm isn't implemented yet.
2011-04-01 11:27:32 -07:00
Marijn Haverbeke
e7e6f396d8
Preserve comments when pretty-printing.
...
The patch also includes a number of smaller fixes to the
pretty-printer that were encountered on the way.
2011-03-31 14:41:39 +00:00
Patrick Walton
cc59cea8b0
rustc: Thread an item-to-type mapping throughout the typechecking and translation phases
2011-03-30 17:28:06 -07:00
Graydon Hoare
b2427509e2
Another go at changing compile-command, this time using RBUILD env var.
2011-03-25 15:07:27 -07:00
Graydon Hoare
3712ee68ad
Sketch of wiring typeck up to creader.
2011-03-25 14:34:32 -07:00
Graydon Hoare
91c2b82b09
Revert "Bulk-edit compile commands in emacs chatter to point to assumed build/ dir off src root."
...
This reverts commit 846f2e2ba994268725f38c36fa12f1a09f21615c.
2011-03-25 14:05:38 -07:00
Graydon Hoare
846f2e2ba9
Bulk-edit compile commands in emacs chatter to point to assumed build/ dir off src root.
2011-03-25 13:48:37 -07:00
Patrick Walton
e2d6475308
rustc: Store cached crate metadata in the session
2011-03-25 11:11:21 -07:00
Patrick Walton
77a3373d53
rustc: Create a crate metadata cache
2011-03-25 10:44:24 -07:00