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
Niko Matsakis
28f9af6074
Merge branch 'master' of github.com:graydon/rust
2011-12-06 15:19:03 -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
Niko Matsakis
39b1657b2c
Merge branch 'master' of github.com:graydon/rust
2011-12-06 14:02:32 -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
Niko Matsakis
7bf41392b6
correct the use of 'sed -i'
2011-12-05 15:12:36 -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
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
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
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
Niko Matsakis
dfb2c15bba
fix name of SetCurrentDirectory
2011-12-01 19:31:12 -08:00
Elly Jones
9b3f8bf2a9
libstd: add fs::change_dir()
2011-12-01 22:19:53 -05:00
Brian Anderson
1974cf9a81
rt: Move RED_ZONE_SIZE to rust_task.cpp
2011-12-01 15:50:00 -08:00
Brian Anderson
249f017bf2
rt: Add FIXME's about future changes to LLVM's __morestack impl
2011-12-01 15:33:15 -08:00
Brian Anderson
6da1a3fcd6
rt: Refactor record_sp into task::record_stack_limit
2011-12-01 15:26:42 -08:00
Graydon Hoare
d1fd7d49a7
Build infra and minor build-enabling bugfixes for cargo.
2011-12-01 11:31:29 -08:00
Elly Jones
fa9e3e8d9a
cargo: add start of rust rewrite
2011-12-01 10:58:08 -08:00
Brian Anderson
7476a39e47
stdlib: Implement some preliminary libuv bindings
...
std::uv is intended to be low-level, exactly mirroring the C API.
Difficult to continue the implementation now without scheduler
improvements.
2011-12-01 10:24:21 -08:00
Marijn Haverbeke
98ca6d0c61
Fix mistake in last use pass
...
Closes #1243
2011-12-01 16:47:07 +01:00
Brian Anderson
f2de42c39a
rt: Reorganize stack growth code
2011-11-30 20:31:33 -08:00
Brian Anderson
dd48a1af58
rt: Remove redundant defs of RUST_DEL_STACK
2011-11-30 20:31:33 -08:00
Brian Anderson
e6ef4d929c
rt: Remove the stack pointer field of stk_seg
2011-11-30 20:31:33 -08:00
Brian Anderson
408d4ec0ef
rt: Remove upcall_alloc_c_stack/call_c_stack, et. al.
...
We are using upcall_call_shim_on_c_stack now
2011-11-30 20:31:32 -08:00
Brian Anderson
037ca7f7cb
rt: Rewrite 32-bit __morestack to use the shim upcall
2011-11-30 20:31:32 -08:00
Niko Matsakis
fdebd1e2ef
adjust and un-xfail
2011-11-30 15:55:28 -08:00
Brian Anderson
b4c53627b1
Register snapshots
2011-11-30 14:58:54 -08:00
Brian Anderson
0ed5c84403
xfail run-pass/bind-native-printf
...
Bots are crashing on this on the x86_64 build. As this doesn't seem crucial
for getting the x86_64 snapshot, I'm just turning it off.
2011-11-30 12:30:12 -08:00
Marijn Haverbeke
b40c6773c2
Box ast::path values
...
It seems inefficient to copy them around. Let's measure whether that's actually
> the case
2011-11-30 13:38:38 +01:00
Lindsey Kuper
586a685eec
Fix typo in stdlib docs.
2011-11-30 03:54:32 -05:00
Brian Anderson
777c3584b9
rt: Request the correct number of bytes on the C stack
2011-11-29 23:01:19 -08:00
Brian Anderson
06f4cb43f6
rt: Delete the entire stack chain on task destruction
...
Unwinding through __morestack on 64-bit Linux seems to be no big deal, and
all we have to do is free the stacks to make unwinding work with split stacks.
2011-11-29 22:22:49 -08:00
Brian Anderson
72baf70748
rt: Conditionalize out the 32-bit __morestack for everything but Linux
...
Currently broken everywhere else
2011-11-29 13:52:34 -08:00
Brian Anderson
8cbba79208
rt: Fix the name of the linux macro in x86_64/morestack.S
2011-11-29 13:50:34 -08:00
Brian Anderson
afb8f01741
rt: Fix calculation of stack args location in x86_64/morestack.S
2011-11-29 13:47:54 -08:00
Brian Anderson
9675343dc9
rt: Fix i386/morestack.S for static linking
2011-11-29 13:47:54 -08:00
Niko Matsakis
4f92204765
make check-fast work
2011-11-29 12:51:11 -08:00
Niko Matsakis
6e55426c8c
tweak to get windows test-running correct
2011-11-29 12:51:10 -08:00
Niko Matsakis
89a4f8c751
fix to new model where triple is explicit
2011-11-29 12:51:10 -08:00
Niko Matsakis
44ccc36d93
update snapshot scripts
2011-11-29 12:51:10 -08:00
Niko Matsakis
4b13fdbf27
when type checking still pass in the rustc args from cmd line
...
otherwise we use the wrong target and things start to fail
2011-11-29 12:51:10 -08:00
Niko Matsakis
21ffc55e57
update io test to use tmp directory, and update configure to create it
2011-11-29 12:51:09 -08:00
Niko Matsakis
092fc0ab22
extra whitespace
2011-11-29 12:51:09 -08:00
Niko Matsakis
152bb314f5
fix bug in shape concerning size of tag variant
2011-11-29 12:51:08 -08:00
Niko Matsakis
9c12c7c7f5
basic builds function
2011-11-29 12:51:07 -08:00
Brian Anderson
579399f92f
Add --stack-growth to the morestack test compile flags
2011-11-29 12:14:34 -08:00
Brian Anderson
a9967423f8
rt: Make 64-bit __morestack grow and shrink properly
2011-11-28 21:57:52 -08:00
Brian Anderson
5461c61af2
rt: Remove a FIXME frome x86_64/morestack.S
2011-11-28 20:14:12 -08:00
Brian Anderson
ef20afc36c
rt: Get 64-bit Linux __morestack allocating new stacks
2011-11-28 18:39:18 -08:00
Brian Anderson
4dcb0ee0ce
rustc: Link in libmorestack.a when --stack-growth
2011-11-28 18:15:54 -08:00
Brian Anderson
3a80d7b0e3
rt: Set hidden visibility on __morestack
...
Each crate will have its own copy of this function, which should not be
exported.
2011-11-28 18:01:39 -08:00
Brian Anderson
28745aa07f
rt: Rename L$bail to .L$bail in i386/morestack.S
2011-11-28 17:10:00 -08:00
Brian Anderson
e075412a92
build: Stop linking morestack.S to rt
...
__morestack has to be linked statically. The odd calling convention on x86_64
results in the arguments to __morestack (r10 & r11) being clobbered by the
dynamic linker. gcc links all the __morestack functions statically.
2011-11-28 16:37:29 -08:00
Brian Anderson
cd75c9ce11
rt: Implement part of the 64-bit __morestack
2011-11-28 16:29:52 -08:00
Brian Anderson
92f1e9f1ab
Ignore some should_fail tests on win32
2011-11-28 13:28:03 -08:00
Joshua Wise
90d27af42a
c_vec: add tests
2011-11-28 10:41:45 -08:00
Joshua Wise
45dc5356df
c_vec: Remove the mutable cast be forcing the pointer to be mutable throughout (discussion in #1217 ).
2011-11-28 10:41:45 -08:00
Joshua Wise
c2eb084b4c
Add c_vec library to std.
2011-11-28 10:41:45 -08:00
Joshua Wise
9aa6e5750e
ptr: Add mut_offset, to be able to calculate an offset on mutable pointers.
2011-11-28 10:41:45 -08:00
Brian Anderson
020d8f12a0
rt: Implement record_sp for 64-bit linux
2011-11-27 19:00:26 -08:00
Brian Anderson
f3a8e228c2
Register snapshots
2011-11-25 23:49:33 -08:00
Brian Anderson
9a188b2e94
rustc: Fall back to intrinsics.ll if we can't parse the bc
...
This will allow us to transition to the new bitcode format.
2011-11-25 22:54:10 -08:00
Brian Anderson
0365001864
Comment-out some math tests that produce different results on win32
2011-11-24 17:03:22 -08:00
Stefan Plantikow
891528fb73
std: math: renaming and documentation fixes
2011-11-24 16:21:14 -08:00
Stefan Plantikow
97fc39b214
std: factored f32 and f64 out from math
2011-11-24 16:21:14 -08:00
Stefan Plantikow
a611496ddf
std: added missing calls to math; covers C95 completely now, includes tests
2011-11-24 16:21:13 -08:00