Commit Graph

6172 Commits

Author SHA1 Message Date
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
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
Brian Anderson
1f74af505f stdlib: Add some useful fields to the definition of type_desc 2011-11-18 10:32:27 -08:00
Marijn Haverbeke
0e21df4610 Add some comments to kind.rs and last_use.rs 2011-11-18 17:09:36 +01:00
Marijn Haverbeke
8cf3ca3b55 Make sure by-copy arguments take last-use into account 2011-11-18 16:43:30 +01:00
Marijn Haverbeke
1cccefd8bb Register snapshot, finishing kind system transition
Closes #1177
2011-11-18 16:17:37 +01:00
Marijn Haverbeke
a7573af59d Add some tests for new kind system
Issue #1177
2011-11-18 16:15:46 +01:00
Marijn Haverbeke
196b2b920f Make sure trans translates record fields in the order they appear in code
This prevents surprising side-effect orders, and makes them easier for
the other passes to deal with.
2011-11-18 15:59:47 +01:00
Marijn Haverbeke
68db68c4cc Make trans use last_use info to not actually generate copies
Issue #925
2011-11-18 15:56:53 +01:00
Marijn Haverbeke
f6491bb426 Update stdlib, compiler, and tests to new kind system
This involved adding 'copy' to more generics than I hoped, but an
experiment with making it implicit showed that that way lies madness --
unless enforced, you will not remember to mark functions that don't
copy as not requiring copyable kind.

Issue #1177
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
8f8ebb550c Implement a last-use-of-local finding algorithm
Issue #925
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
0c97fcbf66 Properly check kinds in instantiation of generics
Issue #1177
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
7bef89f9b5 Prevent alias pass from inserting implicit copies for noncopyable types
Issue #1177
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
17b78c4a7a Overhaul the kind-checking pass
Not really useful yet because missing last-use-of-local optimization.

Also: instantiation of type parameters needs to be checked.

Issue #1177
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
cefff237bf Make tag, resource and object constructors take their arguments by copy
Doing something like some([1, 2, 3]) will now no longer create a temporary
copy of the vector. It will also be easier for the kind checker to see that
putting a resource into a data-structure constructor is safe.
2011-11-18 12:49:01 +01:00
Marijn Haverbeke
4e03112141 Add a pass-by-copy parameter passing convention
This is intended to solve the problem of how to pass arguments to
constructor functions -- you want to move in rvalues, but not have to
explicitly copy stuff that is not an rvalue. The by-copy passing
convention will ensure the callee gets its own copy of the value. For
rvalues, it'll just pass off the value. For lvalues, it'll make a
copy.

Issue #1177
2011-11-18 12:49:00 +01:00
Marijn Haverbeke
6297fc979e Register snapshot 2011-11-18 12:48:57 +01:00
Marijn Haverbeke
9cf48d3753 Preparation for kind system overhaul
This goes before a snapshot, so that subsequenct patches can make the
transition without breaking the build. Disables kind checking pass, makes
parser accept both new and old-style kind annotation.

Issue #1177
2011-11-18 10:52:28 +01:00
Niko Matsakis
eff7fae7b9 comparing/walking two pointers still aligns same as 1 ptr 2011-11-17 15:41:45 -08:00
Niko Matsakis
b30f7af98b remove blank line 2011-11-17 15:11:52 -08:00
Niko Matsakis
60e93cd1ec Re-enable cycle coll. on x86_64, seems to work better now. 2011-11-17 14:40:03 -08:00
Niko Matsakis
f597971441 make ref cnts a long not an int 2011-11-17 14:23:48 -08:00
Niko Matsakis
8925875ccb add FIXME for issue #1184 2011-11-17 13:44:13 -08:00
Niko Matsakis
0d874476cf fix resource-generic 2011-11-17 13:44:13 -08:00
Niko Matsakis
11187437c5 Merge branch 'master' of github.com:graydon/rust 2011-11-17 13:44:04 -08:00
Brian Anderson
6a0e85b81c Remove intrinsic_2 functions 2011-11-17 13:23:35 -08:00
Brian Anderson
5e7dff4db5 Register snapshots 2011-11-17 13:22:29 -08:00
Niko Matsakis
f9231e932c add an extra underscore 2011-11-17 12:02:15 -08:00
Brian Anderson
dd275cd749 Stop using temporary intrinsic_2 functions 2011-11-17 11:55:04 -08:00
Niko Matsakis
e7ad5978d9 Merge branch 'master' of github.com:graydon/rust 2011-11-17 11:52:56 -08:00
Brian Anderson
30871408a6 rt: Remove debug printf in rust_start 2011-11-17 11:48:10 -08:00
Niko Matsakis
adc79e2f44 remove compile-command from local variable blocks 2011-11-17 11:46:13 -08:00
Brian Anderson
c1cf7cb323 Register snapshots 2011-11-17 11:44:31 -08:00
Brian Anderson
a92699fe58 rt: Make morestack link on x86_64. Still utterly broken 2011-11-17 11:12:59 -08:00
Brian Anderson
d624e523c9 rt: Make stack growth code build on Linux 2011-11-17 10:53:06 -08:00
Patrick Walton
e6c3c4e48c rt: More work on morestack 2011-11-17 10:52:59 -08:00
Haitao Li
388eed383f rustc: Add a flag '--warn-unused-imports'
Followup of issue #889
2011-11-17 09:28:30 +01:00
Haitao Li
fe6484d3e6 rustc: Fix warn on unused import bug
rustc generates incorrect warning for cascaded import declarations like:

  use std;
  import std::io;
  import io::println;
  fn main() { println("hello"); }

  warning: unused import io

A followup of issue #889
2011-11-17 09:27:17 +01:00
Niko Matsakis
bfc81352aa remove unused flag (thanks lht) 2011-11-16 21:52:01 -08:00
Stefan Plantikow
99c421f01d Removed --no-typestate flag from rutsc
Fixes issue #1139
2011-11-16 18:52:46 -08:00
Brian Anderson
02cebbb9f1 Revert "rt: More work on morestack"
This reverts commit 68aff2ad6d.
2011-11-16 18:49:19 -08:00
Brian Anderson
5559e149e4 Revert "rt: Make stack growth code build on Linux"
This reverts commit da4b7da4e1.
2011-11-16 18:49:07 -08:00
Brian Anderson
55f89dbed9 rustc: Fix help text for --sysroot 2011-11-16 18:35:30 -08:00
Brian Anderson
da4b7da4e1 rt: Make stack growth code build on Linux 2011-11-16 18:33:00 -08:00
Patrick Walton
68aff2ad6d rt: More work on morestack 2011-11-16 18:00:57 -08:00
Brian Anderson
8199558443 rt: Remove an unnecessary check from rust_task::yield 2011-11-16 17:55:04 -08:00
Brian Anderson
bae817efe6 rt: Remove rust_task::notify_tasks_wating_to_join 2011-11-16 17:22:14 -08:00
Brian Anderson
342dc21d2c Disconnect ports before draining them. Issue #1155 2011-11-16 17:22:14 -08:00
Niko Matsakis
809ca13bfa fix minor merge errors 2011-11-16 16:13:43 -08:00
Niko Matsakis
c22ad0752f wrap long line 2011-11-16 15:27:49 -08:00
Niko Matsakis
2b8cf89ba2 correct signed-ness and long line 2011-11-16 15:27:49 -08:00
Niko Matsakis
037a1de405 apply calling convention at call site too 2011-11-16 15:27:09 -08:00
Niko Matsakis
834b6879ea temp workaround for failure to pass ulonglong successfully 2011-11-16 15:27:09 -08:00
Niko Matsakis
62b298ee13 missed merges 2011-11-16 15:27:08 -08:00
Niko Matsakis
cbcdeb80d9 remove wrappers from intrinsics 2011-11-16 15:27:08 -08:00
Niko Matsakis
23bb158acb fix win32 types, make close() use i32 as return type 2011-11-16 15:27:08 -08:00
Niko Matsakis
e3699a2636 make stdcall use shim 2011-11-16 15:24:56 -08:00
Brian Anderson
d2199e8716 Various fixes for x86_64 on linux
Configure LLVM correctly, use the right data layout, add the readlink
function back, fix C constants, etc.
2011-11-16 15:24:56 -08:00
Niko Matsakis
319f3b02f3 fix natives with user-specified link names, remove unused imports 2011-11-16 15:24:38 -08:00
Niko Matsakis
c572b793fe fix mismatched types---make check passes on x86_64! 2011-11-16 15:24:37 -08:00
Niko Matsakis
25bc37cef9 refactor all unix types 2011-11-16 15:24:08 -08:00
Niko Matsakis
b27a88e99c fix bug in shape where s_int/s_uint were not customized to platform 2011-11-16 15:16:43 -08:00
Niko Matsakis
9043bd9778 wrap long line; 2011-11-16 15:16:43 -08:00
Niko Matsakis
b3ae63c9d9 temporarily disable these tests b/c they crash rustc 2011-11-16 15:16:43 -08:00
Niko Matsakis
5aaafa704f adjust alignment, size of tag variant id and make it easy to
adjust in the future
2011-11-16 15:16:43 -08:00
Niko Matsakis
cb9675259f enable comments in generated asm, ll 2011-11-16 15:16:42 -08:00
Niko Matsakis
96cdfa11db correct translation of neg. numbers in 64-bit architectures 2011-11-16 15:16:42 -08:00
Niko Matsakis
5cabfb3a39 remove fixed FIXME 2011-11-16 15:16:42 -08:00
Niko Matsakis
26b0662fb8 fix alignment for chan_handle structs; rust equiv is translated
to char[16], not struct{long,long}
2011-11-16 15:16:42 -08:00
Niko Matsakis
69911c2bc1 temp. disable cycle coll. on x86_64 2011-11-16 15:16:41 -08:00
Niko Matsakis
b78c096ebc enum does not have a size consistent with a tag, so use unsigned long instead 2011-11-16 15:16:41 -08:00
Niko Matsakis
0cea1095b1 change u32 to uint. maybe we want an intptr_t built-in type. 2011-11-16 15:16:41 -08:00
Niko Matsakis
59e2a0a9c1 add shim upcall func 2011-11-16 15:16:40 -08:00
Niko Matsakis
4fc34e23fa wrap long line 2011-11-16 15:16:40 -08:00
Niko Matsakis
d77968dd7c finish up the shim approach 2011-11-16 15:16:40 -08:00
Niko Matsakis
4f28419d0c add back call to zero_and_revoke 2011-11-16 15:16:40 -08:00
Niko Matsakis
3617f0377f correct alignment 2011-11-16 15:16:40 -08:00
Niko Matsakis
85083ec51b begin efforts to use shim functions for c-stack calls 2011-11-16 15:16:40 -08:00
Brian Anderson
b655fb9ea7 Replace 'mutable?' with 'const' 2011-11-16 14:41:32 -08:00
Brian Anderson
1d361f6806 Register snapshots 2011-11-16 14:38:15 -08:00
Brian Anderson
045a437556 rustc: Accept 'const' as synonym for 'mutable?' 2011-11-16 13:52:08 -08:00
Brian Anderson
f157d0b32c Fix S_IRUSR/S_IWUSR constants on mac. Closes #726 2011-11-16 12:18:15 -08:00
Brian Anderson
a362d85329 Add a test that native mods don't need to declare an ABI 2011-11-16 11:36:46 -08:00
Haitao Li
88f29aab27 Use attributes for native module ABI and link name
This patch changes how to specify ABI and link name of a native module.

Before:
  native "cdecl" mod llvm = "rustllvm" {...}

After:
  #[abi = "cdecl"]
  #[link_name = "rustllvm"]
  native mod llvm {...}

The old optional syntax for ABI and link name is no longer supported.

Fixes issue #547
2011-11-16 11:35:13 -08:00
Brian Anderson
7a9b66db63 Register snapshots 2011-11-16 11:35:13 -08:00
Haitao Li
fba0df72d3 Use attributes for native module ABI and link name [temp]
This patch adds support of using attributes to specify native mode ABI
and link name. The old optional syntax like:
  native "cdecl" mod llvm = "rustllvm" { ... }
is still supported.

This is a transitional commit to avoid making a stage1 (backward
imcompatible) snapshot.
2011-11-16 23:45:07 +08:00
Haitao Li
3b683f5205 rustc: Use link_name attribute for native function
Fixes issue #906
2011-11-16 23:45:07 +08:00
Brian Anderson
a7fc5decab stdlib: Turn function calls into constants. Fix win32 breakage 2011-11-15 18:14:13 -08:00
Stefan Plantikow
378652f885 Fixed typo in constant value #1165 2011-11-15 18:02:45 -08:00
Stefan Plantikow
d335d1a169 Replaced constant functions with actual constants in std and updated tests
Fixes issue #1165
2011-11-15 18:02:45 -08:00
Brian Anderson
a7188a6577 rustc: Don't sign extend uints during translation
Doing so produces incorrect results on a 32-bit compiler targeting 64-bits
2011-11-15 17:53:44 -08:00
Brian Anderson
f47f92235a Make run-pass/bitwise 64-bit compatible 2011-11-15 17:01:06 -08:00
Brian Anderson
dd5512ccb0 Support conditional compilation based on architecture
target_os = "x86" or target_os = "x86_64"
2011-11-15 16:33:09 -08:00
Brian Anderson
47d875e002 Make run-pass/native-fn-linkname's main take no args
check-fast doesn't like it.
2011-11-15 10:09:33 -08:00
Haitao Li
eae478cd74 Use native fn's link name attribute if given
Fixes issue #905
2011-11-15 22:31:33 +08:00
Marijn Haverbeke
a09dcd94c5 Fix some indentation and idioms in rope.rs
Sorry for the pedantry. I was handling a compilation bug related to this code,
and it just jumped out at me.
2011-11-15 13:32:35 +01:00
Marijn Haverbeke
9ff6f816ba Fix handling of loops and conditionals in alias.rs
It now threads information about invalidated aliases through the AST
properly. This makes it more permissive for conditionals (invalidating
an alias in one branch doesn't prevent you from using it in another),
and less permissive for loops (it now properly notices when a loop
invalidates an alias that it might still use in another iteration).

Closes #1144
2011-11-15 13:29:57 +01:00
Brian Anderson
81d9717864 xfail-fast run-pass/native-dupe.rs
This test calls the task pin function which has side effects and causes
other tests to lock.
2011-11-14 19:26:43 -08:00
Patrick Walton
b3cf0c4d1b Revert "rt: More work on morestack"
This reverts commit ced0d4f15e.
2011-11-14 16:20:53 -08:00
Patrick Walton
ced0d4f15e rt: More work on morestack 2011-11-14 16:17:08 -08:00
Brian Anderson
5b9f76eb7c stdlib: Run cleanups on data that fails to send 2011-11-14 14:07:52 -08:00
Brian Anderson
c74fd1dc77 Un-xfail-win32 two tests that should actually work 2011-11-14 13:13:44 -08:00
Haitao Li
b8dd148444 rustllvm: Add a GetOrInsertFunction wrapper
Fixes issue #1161

Test-case-by: Brian Anderson <banderson@mozilla.com>
Signed-off-by: Haitao Li <lihaitao@gmail.com>
2011-11-15 00:33:29 +08:00
Brian Anderson
f619d5e9e2 rt: Add locking invariants to rust_port 2011-11-13 16:38:34 -08:00
Brian Anderson
58e923de6e rt: Perform task notification before killing the parent task 2011-11-13 16:36:47 -08:00
Brian Anderson
138d9ca5d5 Drop enqueued elements when a port is destructed. Closes #1155 2011-11-13 15:43:58 -08:00
Brian Anderson
3cc2641fc3 Make various binops not typecheck for unsafe pointers. Closes #1173 2011-11-13 13:55:12 -08:00
Brian Anderson
768306badd Add test for #783. Closes #783 2011-11-11 17:14:30 -08:00
Brian Anderson
9b9fc33663 Rehabilitate run-fail/linked-failure4.rs 2011-11-11 16:52:07 -08:00
Brian Anderson
b2dd5f5cff Rehabilitate run-pass/task-killjoin.rs 2011-11-11 16:52:07 -08:00
Brian Anderson
a6f9f73f06 rt: Make rust_port's ref counting non-atomic
Now that the task lock must be held there's no need for atomicity
2011-11-11 16:12:48 -08:00
Brian Anderson
d645f87c6d Rehabilitate run-pass/task-comm.rs 2011-11-11 16:11:34 -08:00
Brian Anderson
3d9023fa4d rt: Take the task lock when dropping port refcounts
Sucks, but otherwise there are races when one task drops the refcount to zero
followed by another bumping it again
2011-11-11 16:11:31 -08:00
Brian Anderson
07771ec25b Fix run-fail/spawnfail
Catch the case where a parent is killed immediately before it terminates
normally.
2011-11-11 14:20:00 -08:00
Brian Anderson
fcdb313bd5 Give task-perf-word-count default behavior. Closes #1172 2011-11-11 12:35:43 -08:00
Brian Anderson
2385deaa0d rt: Add locking invariants to rust_task 2011-11-11 12:11:21 -08:00
Brian Anderson
5e0e32faac rt: Remove drop_port. Unused 2011-11-11 12:11:21 -08:00
Brian Anderson
5d1e321ecb rt: Remove rust_chan 2011-11-11 12:11:21 -08:00
Haitao Li
39084fb881 Remove unused "--check-unsafe" flag
Fixes issue #1138
2011-11-12 00:01:37 +08:00
Elly Jones
24b6645156 str: add escape()
Signed-off-by: Elly Jones <elly@leptoquark.net>
2011-11-10 19:53:28 -08:00
Haitao Li
7ee8b852fd Cleanup unused imports in tests 2011-11-10 19:19:40 -08:00
Haitao Li
5a7249c935 Cleanup unused imports 2011-11-10 19:19:40 -08:00
Haitao Li
9bc2f1800d rustc: Add support of warning on unused imports
Fixes issue #889
2011-11-10 19:19:10 -08:00
Brian Anderson
f705f68121 rt: Remove rust_aio.cpp. Bitrotted. 2011-11-10 18:02:08 -08:00
Brian Anderson
6c108aade9 stdlib: Remove sio and aio. Bitrotted. 2011-11-10 17:59:26 -08:00
Brian Anderson
793da65a8e rt: Move rust_chan::send to rust_port::send 2011-11-10 17:53:19 -08:00
Brian Anderson
371574f64b rt: Remove rust_token. Unused 2011-11-10 17:35:21 -08:00
Brian Anderson
f5c4ce79a7 rt: Remove del_chan, take_chan, drop_chan. Unused 2011-11-10 17:28:28 -08:00
Brian Anderson
e4f980810b rt: Simplify channel-port association
It turns out that there's only ever a single channel per port these days,
and it always has the same lifetime as the port, so we don't need a list or a
complex association protocol.
2011-11-10 17:26:22 -08:00
Brian Anderson
08d0ff38bc rt: Remove new_chan. Not needed 2011-11-10 15:59:31 -08:00
Brian Anderson
0dc8387995 rt: Remove chan_send. Unused. 2011-11-10 15:36:09 -08:00
Brian Anderson
2e8ebb7c27 stdlib: Update the example in std::comm
Due to a bug in channel destructors this examples fails when logging is off

Issue #1155
2011-11-10 15:18:01 -08:00
Josh Matthews
43cb74b830 Add float support to #fmt. Fix #1014. 2011-11-10 11:40:34 -08:00
Niko Matsakis
7baf68b0bd hack around the problem that x86_64 expects first few args in regs.
call on c-stack expects all data to be delivered on the stack.
2011-11-09 20:05:49 -08:00
Niko Matsakis
fc064f4410 use uint64_t when adjusting stack ptr 2011-11-09 20:05:49 -08:00
Brian Anderson
0d9e32d70d Rename "c-stack-stdcall" ABI to "stdcall" 2011-11-09 18:45:25 -08:00
Brian Anderson
b7ab28b50f Rename "c-stack-cdecl" ABI to "cdecl" 2011-11-09 18:44:12 -08:00
Brian Anderson
2b9b6e3521 Register snapshots 2011-11-09 17:55:12 -08:00
Brian Anderson
d26a96d2bb Add "cdecl" as synonym for "c-stack-cdecl" 2011-11-09 16:47:44 -08:00
Brian Anderson
e96342820d Add "stdcall" as synonym for "c-stack-stdcall" 2011-11-09 16:47:44 -08:00
Brian Anderson
1afc943c91 rustc: Rename native_abi_c_stack_cdecl to native_abi_cdecl 2011-11-09 16:47:44 -08:00
Brian Anderson
10c35959e7 rustc: Rename native_abi_c_stack_stdcall to native_abi_stdcall 2011-11-09 16:47:44 -08:00