3150 Commits

Author SHA1 Message Date
Brian Anderson
ebcc76d68d Move the library search into util::filesearch 2011-10-04 21:35:06 -07:00
Brian Anderson
b25e78524c Fix some comment drift 2011-10-04 21:35:06 -07:00
Brian Anderson
33ee73102d Remove some redundancy in metadata::creader 2011-10-04 21:35:06 -07:00
Brian Anderson
d91b7b61ef Encapsulate current sysroot and lib path handling into util::filesearch 2011-10-04 21:35:06 -07:00
Patrick Walton
990233eb3d rustc: Allow calling native functions on the C stack that take generic arguments. They get turned into i8 pointers. 2011-10-04 17:41:57 -07:00
Patrick Walton
276dfc6133 Revert "Move trans_call to destination_passing style"
This reverts commit 6e56ec0066b3cc8d18365370f0b856670dc748bd.
2011-10-04 17:05:35 -07:00
Patrick Walton
ce9e0fc94f Revert "Get rid of 'overwrite' destination kind"
This reverts commit 6e652588bfb3edea298026f56648057677b0fa3f.
2011-10-04 17:05:27 -07:00
Patrick Walton
11e407aaa9 Revert "Reorganize translation of expr_field"
This reverts commit 007ec666ad4a529682c35936d85ac81f7979f1b6.
2011-10-04 17:05:16 -07:00
Marijn Haverbeke
007ec666ad Reorganize translation of expr_field
Issue #667
2011-10-04 17:52:23 +02:00
Marijn Haverbeke
6e652588bf Get rid of 'overwrite' destination kind
It wasn't safe (computing the rval might invalidate the lval addr), and needlessly
complicating things (code was already building up intermediary results to work
around other unsafeties).

Issue #667
2011-10-04 17:52:23 +02:00
Marijn Haverbeke
6e56ec0066 Move trans_call to destination_passing style
Issue #667

The retptr passed to a function will now often be the actual
destination of the returned value (as in `{field1: func1()}`).
2011-10-04 17:41:34 +02:00
Patrick Walton
968b66ad40 rustc: Implement C stack stdcall 2011-10-03 13:59:38 -07:00
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