Marijn Haverbeke
8c966b7b18
Stop passing around some unused information in typeck
2011-12-08 10:53:04 +01:00
Marijn Haverbeke
a7c6cb7385
Consider variant constructors pure functions for the purpose of purity checking
...
Closes #1269
2011-12-08 10:26:42 +01:00
Brian Anderson
94b0fee6f1
rt: Reorganize and add documentation for rust_upcall.cpp
2011-12-07 18:50:23 -08:00
Brian Anderson
31fe5d0bd8
rt: Run most upcalls on the C stack
2011-12-07 18:50:23 -08:00
Niko Matsakis
0fc4403442
use util::rational to work around bug w/ floats on win
2011-12-07 17:05:58 -08:00
Niko Matsakis
1ff8994fce
Purge old map impl: more collisions, not clear it is safe on 64bit
2011-12-07 17:05:58 -08:00
Niko Matsakis
4b704ac69b
improve comments
2011-12-07 17:05:58 -08:00
Niko Matsakis
ed0e13f1d8
fix old map impl, add logging
2011-12-07 17:05:58 -08:00
Niko Matsakis
30a2361e68
add some debugging logs
2011-12-07 17:05:58 -08:00
Niko Matsakis
13a3288f3f
dec size in remove
2011-12-07 17:05:58 -08:00
Niko Matsakis
ddfe82a466
make rehashing more efficient by not re-allocating entries
2011-12-07 17:05:58 -08:00
Niko Matsakis
729345cb97
implement a chained hashmap
2011-12-07 17:05:58 -08:00
Graydon Hoare
501c514e89
Register new snapshots (containing libcore auto-importing it now).
2011-12-07 16:36:56 -08:00
Graydon Hoare
3ccdd2a098
Mention new dirs in README.
2011-12-07 15:34:30 -08:00
Graydon Hoare
e4aa73c0f9
Change snapshot script to pick up host libcore as well.
2011-12-07 15:34:16 -08:00
Brian Anderson
81f932e7d7
rt: Fix alignment of stacks generated by __morestack
2011-12-07 14:06:46 -08:00
Graydon Hoare
e056ffa17d
Inject the view_items for core in the right place, add comment documenting why the wrong place was wrong.
2011-12-07 13:33:00 -08:00
Graydon Hoare
799690bea0
Remove stmt_crate_directive, it's vestigial and confusing.
2011-12-07 13:33:00 -08:00
Marijn Haverbeke
17e99ec57f
Fix test that used an oversized int literal
2011-12-07 22:10:56 +01:00
Marijn Haverbeke
7548a0d77a
Restore accidentally overwritten test
2011-12-07 22:02:38 +01:00
Marijn Haverbeke
3d0610b072
Check for literals that are out of range for their type
2011-12-07 21:53:05 +01:00
Marijn Haverbeke
e3eca9174b
Change literal representation to not truncate
...
Also shuffles around the organization of numeric literals and types,
separating by int/uint/float instead of machine-vs-non-machine types.
This simplifies some code.
Closes #974
Closes #1252
2011-12-07 21:08:28 +01:00
Graydon Hoare
6daa233a73
Register new snapshots.
2011-12-07 11:57:48 -08:00
Graydon Hoare
a3f48d3fe1
Merge branch 'master' of github.com:graydon/rust
2011-12-07 11:52:38 -08:00
Niko Matsakis
6c95e400d8
repair more hash functions
2011-12-07 07:35:25 -08:00
Marijn Haverbeke
03a6e54212
Disallow binding by-mut-ref and by-move arguments
...
Fix bug in bound by-copy arguments.
Closes #1261
2011-12-07 15:28:57 +01:00
Marijn Haverbeke
d28e0c0c0a
Make typestate properly descend pattern guards
...
Closes #1265
2011-12-07 14:09:45 +01:00
Brian Anderson
9656ceac60
rt: Put 16 guard bytes at the end of the stack
2011-12-06 22:35:42 -08:00
Brian Anderson
5d1a1dc420
rt: Rename stk_seg.limit to stk_seg.end
...
rust_task is using the word limit it two ways, so one has to change.
2011-12-06 21:45:53 -08:00
Brian Anderson
3d7b89bc4d
rt: Reorganize rust_upcall.cpp a bit
2011-12-06 21:44:19 -08:00
Brian Anderson
00636e3155
rt: Convert log_type and cmp_type upcalls to shim form
2011-12-06 21:44:19 -08:00
Brian Anderson
c11d0b0aa0
rt: Move upcall_cmp_type/upcall_log_type to rust_upcall.cpp
2011-12-06 21:44:18 -08:00
Niko Matsakis
9b7347dd96
modify upcalls to take structs as args
2011-12-06 21:44:18 -08:00
Niko Matsakis
8b608125ac
fix hash function: + binds tighter than <<
2011-12-06 21:34:50 -08:00
Niko Matsakis
66355607da
hack for now: map uint hashes into a u32, which helps x86_64 perf.
2011-12-06 19:55:46 -08:00
Niko Matsakis
aa99bfa170
do not stringify AST nodes unless emitting comments
2011-12-06 19:55:45 -08:00
Niko Matsakis
84bbc12444
Merge branch 'master' of github.com:graydon/rust
2011-12-06 19:55:20 -08:00
Graydon Hoare
1652b921fa
Fix condition in snapshot script. Argv is never 2 long, it can be 3 or 4.
2011-12-06 17:50:21 -08:00
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
Stefan Plantikow
bd405fb457
std: math now declares libm dependencies as pure
2011-11-24 16:21:13 -08:00
Stefan Plantikow
9c9be62b02
std: rewrote math to support most C95 libmath calls on f32, f64 and float
2011-11-24 16:21:13 -08:00
Brian Anderson
75ce03dd77
Use new mod syntax in check-fast driver
2011-11-24 16:18:26 -08:00
Brian Anderson
7aee9f7b56
rustc: Fix a bug in cdir attribute parsing
...
The first attribute of the first mod was being applied to every mod.
2011-11-24 16:18:26 -08:00
Haitao Li
3e303af86b
rustc: Add a path attribute for crate directives
...
The path information was an optional "filename" component of crate
directive AST. It is now replaced by an attribute with metadata named
"path".
With this commit, a directive
mod foo = "foo.rs";
should be written as:
#[path = "foo.rs"]
mod foo;
Closes issue #906 .
2011-11-24 15:31:18 -08:00
Brian Anderson
547ec241bd
Register snapshots
2011-11-24 15:30:04 -08:00
Haitao Li
05b2cb8ecc
rustc: Accepts path
attributes for crate directives
...
Temporarily allow path specified in either as attribute or in AST, like:
#[path = "mymod.rs"]
mod mymod = "mymod.rs";
This is a transitional commit to avoid creating a stage1 snapshot.
2011-11-24 14:55:53 -08:00
Haitao Li
2253ed5d1c
rustc: Fix position of diagnostic highlight lines
...
Diagnostic highlight lines are incorrect placed when the related line
number is 10, 100, etc.
The root cause is line number are treated as 0 based (should be 1 based)
when calculating offset of line number digits.
2011-11-24 08:10:11 +01:00
Marijn Haverbeke
8746ebe2e6
Add some changes that *should* have been in e98286b594
...
Forgot to amend the commit after fixing the failure.
2011-11-23 21:22:56 +01:00
Haitao Li
2ac63801d2
doc: Build keywords multitable automatically
...
Keywords are now listed in a plain text file. They're sorted in
column-major order and rendered as a texinfo multitable in rust.texi.
Fixes issue #1216 .
2011-11-23 21:11:18 +01:00
Marijn Haverbeke
e98286b594
Allow import directives in any block
...
Closes #49
2011-11-23 20:57:34 +01:00
Marijn Haverbeke
03f6060e80
Make type_kind properly recognize ty_ptr as sendable
2011-11-23 13:27:04 +01:00