Commit graph

6012 commits

Author SHA1 Message Date
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
Marijn Haverbeke
9fb3719ded Rollback return-by-reference
It's proving too inflexible, so I'm ripping out the extra complexity
in the hope that regions will, at some point, provide something
similar.

Closes #918
2011-11-23 11:02:27 +01:00
Marijn Haverbeke
acbc4aa9f8 Remove deep scope traversal in revoke_clean
It is not needed anymore.
2011-11-23 11:02:27 +01:00
Marijn Haverbeke
a8dd52ed36 Remove last traces of auth keyword
The reference now has an empty hole where the auth keyword used to be.
Changing the keyword table seems to require manually sorting the
keywords and putting them back into some kind of arcane interleaved
order. I'll open an issue to actually fix this.

Closes #1211
2011-11-23 11:02:27 +01:00
Brian Anderson
93e8783496 rt: Make __morestack build on win32 2011-11-22 18:02:13 -08:00
Brian Anderson
0580d4e77a rt: Add x86_64 record_sp stub 2011-11-22 18:02:12 -08:00
Brian Anderson
6bdf347418 rt: Make __morestack (without unwinding) work on 32-bit linux 2011-11-22 18:02:10 -08:00
Brian Anderson
a69c5617f0 stdlib: Use c_ints instead of ints for natives 2011-11-22 17:16:20 -08:00
Brian Anderson
bb7750b8d0 stdlib: Fix some busted macos libc decls 2011-11-22 15:34:53 -08:00
Brian Anderson
d0a2f00611 stdlib: win32 fixes for dir handling 2011-11-22 15:14:34 -08:00
Elly Jones
9dd4789d80 Add fs::rmdir() and tempfile/gen_str() tests. 2011-11-22 14:43:18 -08:00
Elly Jones
d468af59ed once more with feeling... 2011-11-22 14:43:18 -08:00
Elly Jones
864672bb84 Use type inference! 2011-11-22 14:43:18 -08:00
Elly Jones
91e04f7dd2 Fix long lines 2011-11-22 14:43:18 -08:00
Elly Jones
c11c44abc0 std: add fs::mkdir(), rng.gen_str(), tempfile::mkdtemp()
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-11-22 14:43:18 -08:00
Haitao Li
a936f78d98 rustc: Allow trailing comma in record fields 2011-11-22 13:41:17 -08:00
Brian Anderson
901b9adb69 Register snapshots 2011-11-22 13:02:10 -08:00
Stefan Plantikow
148a6c1a38 comp: allowed the declaration of pure fn's in native mods
This is especially useful for the native calls in std::math

This commit does NOT yet point to new snapshots
2011-11-22 20:01:25 +01:00
Marijn Haverbeke
fedb775fbb Add hacks to extract and compile tutorial code
Not included in the build by default, since it's fragile and kludgy. Do
something like this to run it:

    cd doc/tutorial
    RUSTC=../../build/stage2/bin/rustc bash test.sh

Closes #1143
2011-11-22 16:12:23 +01:00
Marijn Haverbeke
1b8b0b8584 Properly check for copies when constructing a record using with
Closes #989
2011-11-22 13:27:40 +01:00
Marijn Haverbeke
1ce3a84a8f Make type_needs_drop accurate, get rid of type_has_pointers
Closes #1209
2011-11-22 13:16:23 +01:00
Marijn Haverbeke
bd16aac903 Fix inconsistency in ordering of patterns during alt compilation
Closes #1153
2011-11-22 12:44:59 +01:00
Marijn Haverbeke
5d6a74f020 Only warn about unreachable range patterns when appropriate
Also simplifies the literal-munging, and moves it into ast_util

Closes #1170
2011-11-22 11:49:29 +01:00
Marijn Haverbeke
8cc852af8c Make ast::visit only descend into types when necessary
If visit_ty is not overridden, it uses a stub function which does not
descend into types.

Closes #1204
2011-11-22 10:57:47 +01:00
Stefan Plantikow
1a13504796 Fixed documentation comment glitches in the logic ADTs 2011-11-21 11:15:19 -08:00
Stefan Plantikow
1c9f97b669 stdlib: added (2,3,4)-valued logic ADTs
This is useful for writing caches and perhaps in typestate predicates.
It also adds a companion module for bool with from_str, to_str, ... fns.
2011-11-21 11:15:19 -08:00
Haitao Li
beced3612e runtest.rs: Fix typo in error message 2011-11-22 00:19:17 +08:00
Haitao Li
5ca83553bc rustc: Remove abi from ast::native_mod 2011-11-21 13:49:52 +01:00
Marijn Haverbeke
7a7f0604f4 Ignore test_log_functions test for now
It fails under valgrind
2011-11-21 13:49:28 +01:00
Stefan Plantikow
2524636dbd std: declared fns in math to be pure; requires calling libc via unsafe 2011-11-21 13:00:00 +01:00
Stefan Plantikow
68839c3dda Added logarithm functions for floats to std::math
Thanks to marijn for helping with #[link_name]
2011-11-21 12:59:59 +01:00
Marijn Haverbeke
a6b2a2cdb1 Separate vec::map and vec::map_mut
The safe-reference checker requires a copy of each mapped-over element
only when the vector is mutable. Let's not pay that cost for immutable
vectors.
2011-11-21 12:07:41 +01:00
Marijn Haverbeke
02574a5bdb Close hole in safe-reference analysis 2011-11-21 12:07:40 +01:00
Marijn Haverbeke
b4217b383b Add a pass that checks that blocks are only used in safe ways
Closes #1188
2011-11-21 11:01:15 +01:00
Marijn Haverbeke
86c1f16a10 Fix bad interaction between last-use finding and references
The last-use pass now takes input from the alias pass to not mark things
as last uses that are still accessed through a reference.

Issue #925
2011-11-21 09:25:42 +01:00
Stefan Plantikow
ff04cb1eb0 Added a little sudoku solver to test/bench for everone's puzzle solving needs 2011-11-20 01:53:12 +01:00
Niko Matsakis
b6af844f3a re-enable tests for #1058 and #1059 2011-11-18 16:32:19 -08:00
Niko Matsakis
12a67af81d add test for issue #1174 2011-11-18 16:32:19 -08:00
Niko Matsakis
9fa44a41e6 get pure wrappers approach running 2011-11-18 16:32:19 -08:00
Niko Matsakis
6072ddad33 sketch out design 2011-11-18 16:32:19 -08:00
Brian Anderson
d6ab8ebb07 rt: Add more comments to rust_task_sleep 2011-11-18 16:02:48 -08:00
Brian Anderson
9aa67052e1 rt: Remove some stack-wasting macros from rust_task::yield 2011-11-18 15:59:10 -08:00
Brian Anderson
71bcba6815 intrinsics: Remove declaration of port_recv 2011-11-18 15:37:14 -08:00
Brian Anderson
1e58049da2 rt: Remove fail calls from rust_task::yield 2011-11-18 15:36:48 -08:00
Brian Anderson
792068d871 rt: Remove unblock call from rust_task::yield 2011-11-18 14:45:48 -08:00
Brian Anderson
0f339b481a rt: Remove a lock from task_start_wrapper that does nothing 2011-11-18 13:38:20 -08:00
Brian Anderson
3cfcdb4bb2 rt: Replace two uses of yield with ctx->swap
These uses aren't really doing a full yield. They are just giving up control
to the scheduler and will never return.
2011-11-18 13:38:18 -08:00
Brian Anderson
57b43b53f9 rt: Add comments to rust_task::yield 2011-11-18 13:28:12 -08:00
Brian Anderson
d1ef29ab37 rt: rust_task::conclude_failure doesn't need to call unblock 2011-11-18 13:23:27 -08:00
Brian Anderson
3a6320f71b intrinsics: Eliminate recv intrinsic
This intrinsic existed just to get ahold of the return pointer. I replaced it
with a call_with_retptr intrinsic that grabs the return pointer and passes it
to another Rust function, thereby eliminating the need to call C functions on
the Rust stack.
2011-11-18 12:48:54 -08:00
Brian Anderson
93931311ff rt: Add FIXMEs about races in rust_task 2011-11-18 10:32:27 -08:00
Brian Anderson
0dfa1410d3 rt: Remove task::on_wakeup. Unused 2011-11-18 10:32:27 -08:00
Brian Anderson
63d40b8ab6 rt: Remove some unnecessary setting of rust_task::killed
The value of this variable doesn't matter after the task fails.
2011-11-18 10:32:27 -08:00
Brian Anderson
d52888f0ba rt: Remove rust_task::yield. Unused 2011-11-18 10:32:27 -08:00
Brian Anderson
5e9f9e8c48 rt: Add some comments about methods that run on the Rust stack 2011-11-18 10:32:27 -08:00
Brian Anderson
21865ddce6 intrinsics: Remove the call to get_task from task_sleep 2011-11-18 10:32:27 -08:00
Brian Anderson
eecbc815ac intrinsics: Add some comments 2011-11-18 10:32:27 -08:00
Brian Anderson
3feaecd757 intrinsics: Move the call to upcall_fail out of rust_intrinsic_cast 2011-11-18 10:32:27 -08:00
Brian Anderson
44aebb978c Add tests for unsafe::reinterpret_cast 2011-11-18 10:32:27 -08:00
Brian Anderson
9ca2005959 rt: Remove size_of and align_of functions. Now written in Rust 2011-11-18 10:32:27 -08:00
Brian Anderson
a9f7cbe240 stdlib: Add tests for sys::size_of and sys::align_of 2011-11-18 10:32:27 -08:00