Marijn Haverbeke
9b5ebe726c
Implement checking of alias safety in tail calls.
2011-06-15 21:39:27 +02:00
Marijn Haverbeke
b2b8002fd3
Fix unsafe uses of aliases in tail calls
2011-06-15 21:39:27 +02:00
Marijn Haverbeke
0987b17dcb
Small simplification in parser.rs' crate parsing
2011-06-15 21:39:26 +02:00
Lindsey Kuper
1ad69291bc
Added issue # to FIXME.
2011-06-15 12:29:34 -07:00
Lindsey Kuper
fa5a7e7453
Simple anonymous objects get through translation.
2011-06-15 12:18:52 -07:00
Lindsey Kuper
59a254ae32
Just some typo fixes.
2011-06-15 12:18:52 -07:00
Graydon Hoare
766d54df93
Fix a bunch of compile-command lines to use RBUILD
2011-06-15 12:01:19 -07:00
Graydon Hoare
7e806c5e87
Attempt to put out windows tinderbox.
2011-06-15 11:39:31 -07:00
Graydon Hoare
ce72993488
Reformat source tree (minus a couple tests that are still grumpy).
2011-06-15 11:19:50 -07:00
Graydon Hoare
8d381823e2
Print mutability of obj fields.
2011-06-15 10:25:23 -07:00
Graydon Hoare
f03107b58c
Fix pp bug on native modules.
2011-06-15 10:09:28 -07:00
Brian Anderson
df6ec4f8ea
rustc: Pretty-print outer attributes of items
...
Issue #487
2011-06-15 09:48:59 -07:00
Brian Anderson
1c9277e0d3
rustc: Make room in remaining AST item nodes for attributes
...
Issue #487
2011-06-15 09:48:55 -07:00
Brian Anderson
11c5c73d56
rustc: Introduce an attribute type to the AST
...
Right now the only thing that it adds to meta_item is an indication of whether
the attribute was declared inside or outside the item, but I expect it will
become more useful.
Issue #487
2011-06-15 09:46:37 -07:00
Brian Anderson
0eefa5f9d3
rustc: Parse module attributes
...
Issue #487
2011-06-15 09:46:37 -07:00
Brian Anderson
31116dcdd5
rustc: Make room in item_mod for metadata
...
Issue #487
2011-06-15 09:46:37 -07:00
Brian Anderson
f42977d946
rustc: Modernize front::eval
2011-06-15 09:46:37 -07:00
Marijn Haverbeke
c7ab88cc35
Implement checking against assignments to immutable obj fields
2011-06-15 14:59:51 +02:00
Marijn Haverbeke
b0d46efd07
Stop dropping object field mutability on the floor
2011-06-15 14:20:04 +02:00
Marijn Haverbeke
0ddade3d7a
Extend alias analysis to check assignments
...
This is a somewhat odd place to put these checks, but the data tracked
by that pass, and the available functions, make it trivial to do such
a check there.
2011-06-15 14:10:07 +02:00
Marijn Haverbeke
5fb518abc9
Fix assignments to immutable fields throughout the code
2011-06-15 14:10:07 +02:00
Marijn Haverbeke
180db08470
Refactor expr_root in alias.rs
...
It was too clunky and specific before. Now returns a vec of dereference specs
instead of a bunch of special-case information. Further accessors extract
the information they need from this vec.
2011-06-15 11:03:23 +02:00
Patrick Walton
ac743cfcb0
Merge pull request #490 from msullivan/fix_vec_append
...
Move the implementation of vec_append from llvm assembly to a regular upcall
2011-06-14 18:32:04 -07:00
Patrick Walton
c6be352f73
rustc: Implement on-heap resizing for interior vectors
2011-06-14 18:23:13 -07:00
Michael Sullivan
ccd1bcf7a7
Make tydesc glue functions use cdecl.
2011-06-14 16:09:21 -07:00
Michael Sullivan
5378f48a03
Remove vec_append_glue from the compiler.
2011-06-14 16:09:17 -07:00
Patrick Walton
14258b87a7
rustc: Free heapified interior vectors
2011-06-14 16:00:30 -07:00
Patrick Walton
bd18860be7
rustc: Fix LLVM type error that occurred when translating large unique vector literals
2011-06-14 16:00:02 -07:00
Michael Sullivan
95def699f1
Implement upcall_vec_append and use it for vector append.
2011-06-14 15:35:09 -07:00
Tim Chevalier
05b7eb6dff
Make the typechecker check that dynamically sized arguments are passed by alias
...
Before, this would cause an assertion failure in trans.
2011-06-14 15:11:48 -07:00
Rafael Ávila de Espíndola
c3015b8952
Apply the makefile changes again, this time fixin the driver to not produce a
...
rustc.exe.exe.
2011-06-14 17:51:31 -04:00
Tim Chevalier
1513539b67
Improve error message for a failed assert or check
2011-06-14 14:17:28 -07:00
Patrick Walton
bf5840d530
rustc: Do a dynamic alloca for generic interior vectors; fix data pointer calculation when spilling vectors
2011-06-14 14:03:38 -07:00
Marijn Haverbeke
df27699a57
Modernize some code in parser.rs
...
No more explicit type params or working around rustboot bugs
2011-06-14 22:09:00 +02:00
Marijn Haverbeke
f24408d89a
Don't error when trans_lval is called on a non-lval
...
This allows directly calling a function expression, or the
result of an alt/if/block expression.
2011-06-14 21:38:56 +02:00
Graydon Hoare
9ae843ab1c
Print parens on unops when necessary. 'make reformat' output now builds to stage3.
2011-06-14 11:32:20 -07:00
Graydon Hoare
a1edf91f48
Fix bug in detecting trailing comments when at beginning-of-file.
2011-06-14 11:11:22 -07:00
Marijn Haverbeke
fa2b4d3a8d
Remove a bunch of primitive-compiler-workarounds from pprust.rs
2011-06-14 18:23:27 +02:00
Marijn Haverbeke
471436a299
Implement function expressions/anonymous functions
...
Looks like 'fn(..arg..) -> ret {body;}. They don't support type
parameters or upvars yet.
2011-06-14 18:22:46 +02:00
Marijn Haverbeke
8c06d1bcb0
Remove 'peeking_at_item' from parser
...
parse_item now returns a value to indicate it didn't find an item
2011-06-14 14:53:01 +02:00
Patrick Walton
c3bf7d07e9
rustc: Implement simple interior vector append translation
2011-06-13 18:57:25 -07:00
Tim Chevalier
a1bb4a4ded
Refactor some typestate-related data structures
2011-06-13 18:21:22 -07:00
Eric Holk
d1857d30fc
This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).
...
This commit also moves yield and join to the standard library, as requested in #42 . Join is currently a no-op though.
2011-06-13 18:14:13 -07:00
Brian Anderson
1595c9d767
rustc: Assignment expressions have nil type. Closes #483
2011-06-13 17:57:43 -07:00
Tim Chevalier
d65ad8c31c
Change decl to local in expr_for and expr_for_each
...
Since the decl in a for or for-each loop must always be a local
decl, I changed the AST to express this. Fewer potential match
failures and "the impossible happened" error messages = yay!
2011-06-13 17:33:04 -07:00
Rafael Ávila de Espíndola
eb811a903f
Enough driver support to link an empty program on linux. Will
...
try to update the Makefiles to use it.
2011-06-13 16:08:07 -04:00
Patrick Walton
913383d775
rustc: Preserve more type information for interior vectors at the LLVM level, allowing SROA to take place. log ~[ 2 ].(0)
now optimizes to just log 2
.
2011-06-12 00:44:43 -07:00
Patrick Walton
770bf24d72
rustc: Use in-bounds GEPs for fetching length and data of interior vectors
2011-06-11 23:32:21 -07:00
Patrick Walton
4375329031
rustc: Translate interior vector index expressions
2011-06-11 23:15:16 -07:00
Patrick Walton
8b318be4ce
rustc: Typecheck vector index expressions for interior vectors
2011-06-11 19:52:49 -07:00