Brian Anderson
9a738fd61d
rt: Various tweaks to make __morestack unwinding work on linux
...
When unwinding through __morestack the stack limit in the TLS is invalidated
and must be reset. Instead of actually landing at __morestack we're
just going to make all our Rust landing pads call upcall_reset_stack_limit,
which will find the stack segment that corresponds to the current stack
pointer and put the limit in the TLS.
Also massively expand the stack segment red zone to make more room for the
dynamic linker. Will fix in the future.
2011-12-06 16:32:41 -08:00
Graydon Hoare
a1b215aea1
Add --no-core option and inject a use core/import core::* pair into crate unless it's given.
2011-12-06 14:40:30 -08:00
Graydon Hoare
03d4ec5415
Fix next-node-id "hackasaurus" in comp/front/test.rs.
2011-12-06 14:40:30 -08:00
Brian Anderson
89efb7d981
libstd: Update docs
2011-12-06 13:58:54 -08:00
Graydon Hoare
baf3de4733
Rename --noverify flag to --no-verify.
2011-12-06 13:02:59 -08:00
Graydon Hoare
447414f007
Establish 'core' library separate from 'std'.
2011-12-06 12:13:04 -08:00
Austin Seipp
b513a5a500
Make valgrind usage more consistent and less error prone.
...
I was still having issues with the build system somehow getting confused
as to which set of valgrind headers to use when compiling rt.
This commit moves all the valgrind headers into their own directory
under rt and makes the usage more consistent. The compiler is now passed
the -DNVALGRIND flag when valgrind is not installed, as opposed to
passing -DHAVE_VALGRIND.
We also pass -I src/rt to the compiler when building rt so you can more
easily import what you want. I also cleaned up some erroneous #includes
along the way.
It should be safe to always just import the local valgrind headers and use
them without question. NVALGRIND turns the operations to no-ops when it
is active, and the build and tests run cleanly with or without.
2011-12-06 01:15:29 -06:00
Brian Anderson
8d8148f1f7
test: More tests for unwinding + morestack
2011-12-05 19:21:46 -08:00
Brian Anderson
58844aee42
rt: Make stack unwinding work more correctly with stack growth
2011-12-05 17:42:58 -08:00
Brian Anderson
a731f165df
test: Test hitting the dynamic linker in the red zone
2011-12-05 17:20:59 -08:00
Brian Anderson
3b8bfaf534
rt: Use an out pointer for rust_new_stack
...
upcall_call_shim_on_c_stack does not handle return values
2011-12-05 17:11:35 -08:00
Brian Anderson
98cd96ce96
test: Add more tests for stack growth
2011-12-05 14:44:15 -08:00
Brian Anderson
1720bc2e81
rt: Unwind through __morestack on 32-bit linux
2011-12-05 12:10:55 -08:00
Brian Anderson
12e401cc7e
rustc: Remove whitespace
2011-12-05 11:21:44 -08:00
Haitao Li
47ea57fead
rustc: Add suffix ".rc" to LLVM module identifier
...
LLVM code generator emits the ".file filename" directive for ELF
backends. Value of the "filename" is set as the LLVM module identifier.
Due to a LLVM MC bug[1], LLVM crashes if the module identifer is same as
other symbols such as a function name in the module.
This patch adds a ".rc" suffix (means crates) to LLVM module identifier
to workaround the bug.
Fixes issue #1251 .
1. http://llvm.org/bugs/show_bug.cgi?id=11479
2011-12-05 17:21:20 +08:00
Brian Anderson
52d7dc5e0a
rt: Update 32-bit __morestack for recent LLVM changes
2011-12-04 20:40:34 -08:00
Stefan Plantikow
a69eab16ec
typeck: Fix for #932
2011-12-05 01:23:10 +01:00
Brian Anderson
f1eb7ce013
configure: LLVM 3.0 no longer supported
2011-12-04 15:01:41 -08:00
Brian Anderson
a92218e630
Upgrade LLVM to svn revision 145779
...
This pulls in commits 145765 & 145766, which are required for split stacks.
2011-12-04 14:59:56 -08:00
Haitao Li
96b0881a68
rustc: Fix memory leak in do-while loop
...
Issue #1257
2011-12-05 00:38:38 +08:00
Brian Anderson
9711596bec
Fix definition of check-stageN-all targets
2011-12-03 20:23:54 -08:00
Niko Matsakis
9cc2515dfa
make check test stage3
2011-12-02 19:05:50 -08:00
Niko Matsakis
1eb378b23a
make "check" match "all": only the host triple
2011-12-02 19:05:49 -08:00
Niko Matsakis
493492910f
adopt -H-all convention
2011-12-02 19:05:49 -08:00
Niko Matsakis
3bbfe515df
make convenient rustc targets
2011-12-02 19:05:49 -08:00
Niko Matsakis
9acc2bfcad
add --host-triple
2011-12-02 19:05:49 -08:00
Brian Anderson
292663b8ef
rt: Implement 32-bit __morestack for mac
2011-12-02 17:44:23 -08:00
Brian Anderson
c254936f32
rt: Fix __morestack prologue on x86_64 mac
2011-12-02 15:32:51 -08:00
Stefan Plantikow
1b7f1415d6
build: added CFG_INSTALL_SNAP for automatically activating test snapshots
...
This is only guaranteed to work when building in the top-level dir
2011-12-02 12:23:50 -08:00
Stefan Plantikow
68a82e4468
const_check: trans: added support for trivial casts
...
Part of #1215
2011-12-02 11:58:35 -08:00
Stefan Plantikow
3ee2eb656e
doc: added definition of trivial casts to spec
...
(cf @ignored Expr.Be and #1215 for intended use)
2011-12-02 11:38:24 -08:00
Stefan Plantikow
4ba3158e4f
parse: typeck: enabling trivial casts of tail-call return values
...
introduces ctypes::m_* machine type aliases for int, uint, float
depending on cfg(target_arch) that are used in tests
2011-12-02 11:38:24 -08:00
Stefan Plantikow
29f7cdffa4
ty: trans: added support for dropping trivial casts
2011-12-02 11:38:24 -08:00
Stefan Plantikow
d116a6f2d3
ty: added type comparison that subs prim types with targ_cfg machine types
2011-12-02 11:38:24 -08:00
Brian Anderson
236bf7a9b8
stdlib: Actually write the word 'fail' instead of just thinking it
2011-12-02 11:10:03 -08:00
Brian Anderson
e814c42000
stdlib: Add issue number to win32 fsync FIXME
2011-12-02 11:07:55 -08:00
Brian Anderson
39b05c85b8
stdlib: Win32 fsync is just fail
...
No fsync function on windows. Needs custom implementation.
2011-12-02 11:06:42 -08:00
Stefan Plantikow
21c69d4ba4
Added cross-platform fsync api to io; win32 impl needs to be refined
...
No tests, need mktmpfile first
2011-12-02 11:06:03 -08:00
Marijn Haverbeke
46e5e2f685
Be less specific in 'unresolved import' error patterns
...
To make sure different test set-ups (check-fast) don't cause the
tests to fail.
2011-12-02 17:20:03 +01:00
Marijn Haverbeke
30d923d14b
Disable a test that's failing on 32-bit due to imprecise literal handling
...
7655b3c0c6
(re-)introduced the problem
2011-12-02 16:56:52 +01:00
Marijn Haverbeke
817c9f2a54
Include full module path in unresolved errors when looking in module
...
Closes #1228
2011-12-02 16:46:19 +01:00
Marijn Haverbeke
0f918ddd8b
Make import ignore imports coming after them
...
This broke no code at all, so I guess people were already writing
imports in this style.
Issue #1228
2011-12-02 16:06:55 +01:00
Marijn Haverbeke
8a1cc738fa
Finally make the -1 crate id in resolve.rs a const
2011-12-02 14:00:45 +01:00
Marijn Haverbeke
7655b3c0c6
Stop lexing -1 as a single token
...
And remove the hack that made 1-1 work given that other hack.
Issue #954
2011-12-02 13:57:12 +01:00
Marijn Haverbeke
64ce092c27
Allow literal patterns to contain arbitrary literal expressions
...
This removes the need for the unary minus hacks, and allows some other
neat things like matching on 1 >> 4.
Issue #954
2011-12-02 13:42:51 +01:00
Brian Anderson
691b517fb9
rt: Fix 64-bit linux __morestack
2011-12-01 20:56:05 -08:00
Brian Anderson
2511299024
test: Don't fill queue in run-pass/send-iloop. Closes #1244
2011-12-01 20:36:03 -08:00
Elly Jones
b8fcf0ab0e
cargo: support build-from-source
...
No install yet.
2011-12-01 19:49:17 -08:00
Brian Anderson
3e5b314c0b
rt: Implement __morestack for 64-bit mac. Doesn't unwind yet
2011-12-01 19:44:14 -08:00
Brian Anderson
8bf3d85b9d
rt: Implement record_sp for 64-bit mac
2011-12-01 19:44:13 -08:00