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 846f2e2ba9 .
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
77a3373d53
rustc: Create a crate metadata cache
2011-03-25 10:44:24 -07:00
Graydon Hoare
54587bdccb
Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. Tweak std lib vec fns in process.
2011-03-16 14:58:02 -07:00
Patrick Walton
71b6e602c5
rustc: Add an annotation for the crate definition to view_item_use
2011-03-15 17:33:05 -07:00
Patrick Walton
7d32f3d052
rustc: Add a stub crate reader module for "use" directives
2011-03-15 16:30:43 -07:00
Patrick Walton
bb081d6611
rustc: Typo: "unput" -> "input"
2011-03-15 15:07:41 -07:00
Marijn Haverbeke
441697ab35
Extend stream functionality
...
Writer and reader streams now come with methods to write and read
little-endian numbers. Whether that is the right place for such
methods is debatable, but for now, that's where they live.
2011-03-14 14:57:13 -07:00
Graydon Hoare
3aac5059ee
Move the glue code to a .o file. This reduces how much asm we print
...
in each "translation unit".
Part of it is not repetitive and should probably be moved to a .ll file, but
for now we autogen all of it.
(Modified somewhat by graydon while integrating).
2011-03-10 17:30:08 -08:00
Rafael Ávila de Espíndola
4ca0259b20
Update the current id when we create sub parsers.
2011-03-10 17:36:41 -05:00
Marijn Haverbeke
aed40fbcd8
Have the pretty-printer take a writer stream as argument
...
It now uses a string writer to also fill in for
middle.ty.ast_ty_to_str
2011-03-09 16:15:55 -08:00
Marijn Haverbeke
0624f9db4a
Add a pretty-printer
...
Adds a -pp option to the compiler which will cause it to simply
pretty-print the given file.
2011-03-07 12:58:08 -08:00
Brian Anderson
d39da6f978
Remove typestate workarounds
2011-03-06 15:13:35 -08:00
Brian Anderson
b893bec4bb
Flatten conditionals in rustc.rs. Remove FIXME
2011-03-06 15:13:32 -08:00
Graydon Hoare
348c77c31b
Populate default compilation environment as in rustboot.
2011-03-01 15:57:55 -08:00
Graydon Hoare
0761c5f462
Fix typo in comment.
2011-03-01 15:13:50 -08:00
Graydon Hoare
5b857da15f
Change rustc warning to be a little less dismissive.
2011-01-26 13:51:29 -08:00
Graydon Hoare
d1517471fb
Split driver between parsing source files and crate files, by extension. Add dummy function for crate files.
2011-01-03 20:41:11 -08:00
Rafael Ávila de Espíndola
2c6dd18224
Add a -shared option to rustc and don't try to look for main if it is given.
2010-12-29 11:21:16 -05:00
Graydon Hoare
d3cb25d5d1
Check and translate 'as' cast-operator, lower target-specific types, reindent rustc.rs, enable uint test.
2010-11-22 16:27:00 -08:00
Patrick Walton
c00bda539d
rustc: First stab at a typechecker
2010-11-19 17:50:45 -08:00
Patrick Walton
adb1754e4d
Move the option type to its own module
2010-11-05 11:18:40 -07:00
Patrick Walton
2fcf81cc4b
Revert "Move the option type to its own module"
2010-11-05 10:41:23 -07:00
Patrick Walton
1d214b4df3
Move the option type to its own module
2010-11-05 10:23:22 -07:00
Graydon Hoare
da13c508d8
First pass on splitting stratum and opacity off of effects. WIP.
2010-11-02 11:11:58 -07:00
Graydon Hoare
36aea66e47
Give rustc the beginnings of an option-processing loop (at least -nowarn, -h and -o).
2010-10-22 11:47:28 -07:00
Dave Herman
852c0d6631
oops, removed bits.test() from main
2010-10-21 08:06:44 -07:00
Dave Herman
da8b6795c7
tests and bugfixes: fns take aliases, fixed binary arithmetic in create, eliminated wasted bit per uint
2010-10-21 07:36:13 -07:00
Graydon Hoare
865bbae685
More work on resolving names in rustc. Basic expr_name lookup working on items and args.
2010-10-18 16:15:25 -07:00
Graydon Hoare
ff4e9f9141
Enable resolve pass in rustc. Doesn't do much yet aside from an incomplete identity fold, but no longer crashes.
2010-10-14 15:53:28 -07:00
Graydon Hoare
b970563fe3
Patchwork of attempted fixes to effect system and gc system; eventually give up and disable it entirely in the runtime. Will need extensive reworking.
2010-09-29 17:22:13 -07:00
Graydon Hoare
46e46d0b49
Translate a bunch of the material (lltrans, llasm, abi) from rustboot to rustc, and move files around.
2010-09-23 15:46:31 -07:00
Graydon Hoare
04a55df54b
Flesh out rustc.me.trans to construct functions, basic blocks and builders off the AST.
2010-09-22 17:05:38 -07:00
Graydon Hoare
738fe078a4
Move llvm-using code in rustc to trans module.
2010-09-22 15:27:40 -07:00
Graydon Hoare
1f0621d04e
Begin teaching rustc to parse literals, atoms, stmts, blocks, items, modules, crates.
2010-09-21 16:22:32 -07:00
Graydon Hoare
eb90be7798
Add session, span tracking, error reporting, beginning of a function to parse an item to rustc.
2010-09-01 13:24:14 -07:00
Graydon Hoare
0f224f977d
Expand rustc lexer to do almost-nearly-nontrivial stuff.
2010-08-20 11:42:44 -07:00
Graydon Hoare
4727532e95
Simplify lexer/parser structure to use stdio_reader.
2010-08-18 15:41:24 -07:00
Graydon Hoare
9db70bfc42
Add test code that exercises LLVM in rustc. Works.
2010-08-18 00:19:45 -07:00
Graydon Hoare
bc0d1fbae5
Add modelines and related emacs chatter to rustc.
2010-08-12 10:29:23 -07:00
Graydon Hoare
1d1a7985a8
Add some (non-functional) input-readingn to rustc.rs.
2010-07-13 14:26:59 -07:00
Graydon Hoare
3f354b24dc
Clean out rustc so it doesn't give the false impression of doing anything yet.
2010-07-08 10:45:34 -07:00
Graydon Hoare
d6b7c96c3e
Populate tree.
2010-06-23 21:03:09 -07:00