3038 Commits

Author SHA1 Message Date
Haitao Li
e50371060b rustc: Fix link error on Ubuntu Oneiric. Issue #903 2011-10-02 21:29:16 +08:00
Patrick Walton
42287d0fd3 rustc: Call LLVM on the C stack 2011-09-30 18:50:07 -07:00
Patrick Walton
e9287e55cc rustc: Stub a --stack-growth option; it's behind a flag for now because it requires patches to LLVM. 2011-09-30 18:21:39 -07:00
Brian Anderson
821dd6c02c Change the directory for target libs
This pushes them down from stageN/lib/rustc/$(target) to
stageN/lib/rustc/$(target)/lib in order to make room for a target bin dir
2011-09-30 17:19:24 -07:00
Patrick Walton
c065280a0b rustc: Remove some debug code 2011-09-30 14:26:06 -07:00
Patrick Walton
7ab0897ac6 rustc: Track link_args attributes on C stack cdecl natives as well 2011-09-30 14:25:10 -07:00
Patrick Walton
dcf0e807fb trans: Use inttoptr as appropriate when casting return values of C stack functions 2011-09-30 12:07:50 -07:00
Brian Anderson
80829af872 Remove legacy library search paths 2011-09-29 23:12:31 -07:00
Brian Anderson
ab8338fb5a Make rustc's host triple agree with the build system's 2011-09-29 22:58:33 -07:00
Brian Anderson
0148daa058 Reorganize structure of build directory
Each stage is organized more according to Unix standards and to
accommodate multiple target architectures.

stageN/
  bin - rustc lives here
  lib - libraries that rustc needs
  lib/rustc/$(target_triple/ - target libraries
2011-09-29 22:58:33 -07:00
Patrick Walton
79e4961c7f rustc: Remove some debug code 2011-09-29 18:53:00 -07:00
Patrick Walton
f9e3a604a6 rustc: Make the generic C stack function signature include a usable return value 2011-09-29 18:52:23 -07:00
Patrick Walton
a5b422fe6b rustc: Translate calls on the C stack 2011-09-29 17:34:49 -07:00
Patrick Walton
f22601321f rustc: Fix call signature for call_c_stack 2011-09-29 17:34:49 -07:00
Patrick Walton
c04efec87f rustc: Add upcall stubs for the new C stack upcalls 2011-09-29 17:34:49 -07:00
Patrick Walton
41ab324539 rustc: Generate types in trans for the C-stack native ABI 2011-09-29 17:34:49 -07:00
Marijn Haverbeke
e4436c3a5d Don't build up results for ignored expressions.
Issue #667
2011-09-29 12:02:37 +02:00
Marijn Haverbeke
d74a7a83d7 Fail with an informative error when trying to bind a method
Issue #435
2011-09-29 11:55:29 +02:00
Marijn Haverbeke
d243ea57f5 Move last remaining expression types out of trans_expr
Issue #667
2011-09-29 11:41:45 +02:00
Marijn Haverbeke
f089f533e8 Move expr_cast and expr_copy to DPS style
Issue #667
2011-09-29 10:46:49 +02:00
Marijn Haverbeke
d946e09a72 Move closure construction over to DPS style
Issue #667
2011-09-29 10:36:40 +02:00
Marijn Haverbeke
508c48ce10 Reduce move ops to a construct-in-place when possible 2011-09-29 10:36:40 +02:00
Brian Anderson
15e34deba3 Eliminate glue.o. Closes #990 2011-09-28 15:35:21 -07:00
Brian Anderson
cb4e99b688 Don't allow vectors of pinned kinds
Vectors of pinned kinds can't be safe because most interesting uses of vector
perform copies
2011-09-28 15:35:21 -07:00
Patrick Walton
f7d0c1cec3 rustc: Add a new "C stack cdecl" native ABI 2011-09-28 12:58:33 -07:00
Brian Anderson
381205b747 Revert "Revert "Implement pattern ranges for all numeric types.""
This reverts commit a034f87146e60e1db2327c6f6807c47406a1bb0b.

Conflicts:

	src/comp/middle/check_alt.rs
	src/comp/middle/trans_alt.rs
	src/comp/syntax/ast.rs
	src/comp/syntax/ast_util.rs
	src/comp/syntax/fold.rs
	src/comp/syntax/print/pprust.rs

Conflicts:

	src/comp/middle/trans_alt.rs
2011-09-28 12:46:29 -07:00
Patrick Walton
dbf472b0df rustc: Switch to cdecl for all calls. This is needed to make stack growth efficient, as I need to use eax and ecx in the function prologue and can't afford to stomp on incoming arguments. 2011-09-28 10:22:02 -07:00
Marijn Haverbeke
512cfb4b83 Remove a few kludges that worked around issue #913 2011-09-28 12:59:44 +02:00
Marijn Haverbeke
a3a27374bd Don't descend into functions from relax_precond_block
Closes #913
2011-09-28 12:37:28 +02:00
Marijn Haverbeke
759fc101fb Get rid of might_not_init kludge in init_local.
Initializing something is now safe wrt to cleanups (so the cleanup for the
local is only registered after the initialization.)
2011-09-28 11:12:35 +02:00
Marijn Haverbeke
16d5aaa962 Wait with registering cleanups for locals until after the init code ran
Fixes a double-cleanup that was breaking unwind-tup.rs under valgrind.
2011-09-28 10:41:19 +02:00
Marijn Haverbeke
e3626c9405 Use DPS for assignment and local initialization
Issue #667
2011-09-28 09:42:04 +02:00
Wade Mealing
f375391cb6 Patch to error instead of crashing when parsing unmatched double quotes
Patch to error and fail instead of using all available memory
then crashing to detect the error condition of an unmatched
double quote before the end of a file.

I couldn't get it to show nice error messages, so this may not be
the ideal fix.

A test case for this situation has also been added.
2011-09-27 23:20:31 -07:00
Brian Anderson
a96b16e8c3 Make it again possible to initialize resource locals via assignment
Some special cases allow both 'let a <- my_resource(x)' and
'let a = my_resource(x)' to work as expected despite ostensibly being
copies and moves.
2011-09-27 23:20:27 -07:00
Brian Anderson
459353e107 Prevent copies of resources into various things 2011-09-27 21:50:07 -07:00
Brian Anderson
888e22aacc Add more comments about kind checking on local move initializers 2011-09-27 16:03:10 -07:00
Brian Anderson
b8bb663df7 Don't ever raise unique kinds of pinned kinds to shared (again)
So *resource, ~resource, [resource] are all pinned. This is counter to the
design of the kind system, but this way is a much clearer path to type safety.
Once we've established a good baseline with lots of tests, then we can try to
make raising pinned kinds work.
2011-09-27 16:03:10 -07:00
Brian Anderson
e50580aa66 Revert "Use DPS for assignment and local initialization"
This reverts commit b1b202d302d1e84886360f9c8f146b9562db5f23.
2011-09-27 16:03:09 -07:00
Marijn Haverbeke
04f062f9d4 Fix lurking bug in matching of nil
Which was somehow made visible by the DPS changes.
2011-09-27 22:49:33 +02:00
Marijn Haverbeke
b1b202d302 Use DPS for assignment and local initialization
Issue #667
2011-09-27 20:33:09 +02:00
Marijn Haverbeke
e42f3b8481 Safeguard against self-assignment for unique types 2011-09-27 20:33:09 +02:00
Marijn Haverbeke
94db38a530 Move expr_unary to DPS style
Issue #667
2011-09-27 17:31:15 +02:00
Marijn Haverbeke
92d63ffa65 Make trans_rec and trans_tup understand overwrite dests
Issue #667
2011-09-27 17:31:15 +02:00
Marijn Haverbeke
8282f7fe80 Move expr_binary into trans_expr_dps
Issue #667
2011-09-27 17:30:54 +02:00
Marijn Haverbeke
806e74fbf5 Move expr_lit and expr_vec into trans_expr_dps
Issue #667
2011-09-27 17:30:45 +02:00
Marijn Haverbeke
8ea72fae99 Move more non-value-returning things to trans_expr_dps.
Issue #667
2011-09-27 17:30:45 +02:00
Brian Anderson
6b42ad5ea0 Enforce copy restrictions on let initializers 2011-09-26 22:00:15 -07:00
Jesse Ruderman
20c2d2a999 Distinguish #924 2011-09-26 20:44:57 -07:00
Brian Anderson
3778b6c6a8 Prevent copying of uncopyable things via the copy op 2011-09-26 20:03:30 -07:00
Brian Anderson
755001725a Prevent copying of uncopyable things via compound assignment ops 2011-09-26 20:03:24 -07:00