Niko Matsakis
5a5f33c779
treat native fns as shared closures
2011-12-14 14:32:27 -08:00
Niko Matsakis
d32d0f28d5
insert a field into the closure storing number of ty descs
2011-12-14 14:32:27 -08:00
Niko Matsakis
f7cce6b819
pull out the code from iter_structural_ty for handling functions,
...
as we will have to do very careful and non-generic things
2011-12-14 14:32:26 -08:00
Niko Matsakis
7c7cb26487
treat different kinds of closures differently
2011-12-14 14:32:25 -08:00
Niko Matsakis
35fe86dab7
export upcall_clone_type_desc
2011-12-14 14:32:25 -08:00
Niko Matsakis
1869306a7e
change syntax from lambda[send] to sendfn
2011-12-14 14:32:24 -08:00
Niko Matsakis
f512e67fb9
clone type desc into exchange heap
2011-12-14 14:32:24 -08:00
Niko Matsakis
85f381fb8a
restructure, temporarily working around what looks like an LLVM bug
2011-12-14 14:32:23 -08:00
Niko Matsakis
eaaa3c30bf
translate unique closure env better
2011-12-14 14:32:23 -08:00
Niko Matsakis
e51c29fab0
remove unused options
2011-12-14 14:32:22 -08:00
Niko Matsakis
6b744b284e
remove extra trailing semicolon
2011-12-14 14:32:21 -08:00
Niko Matsakis
ba6da950f1
restore old functionality for now
2011-12-14 14:32:21 -08:00
Niko Matsakis
6a8cb704d9
get basic code generation working, clone type descs for lambda[send]
2011-12-14 14:32:20 -08:00
Niko Matsakis
36177dd3e9
make fact that trans'ing lvar does not modify bcx explicit in type
2011-12-14 14:32:20 -08:00
Niko Matsakis
7fbca4e31c
sendable functions now "work", meaning pass through trans/typestate
...
but they do not generate correct code
2011-12-14 14:32:19 -08:00
Niko Matsakis
aa1cd61c84
push changes through to get things compiling, if not running.
2011-12-14 14:32:18 -08:00
Niko Matsakis
c28ada0368
first attempt, not happy with it
2011-12-14 14:32:18 -08:00
Niko Matsakis
941101a9cd
define ty and update parser for sendable lambdas
2011-12-14 14:32:17 -08:00
Brian Anderson
327ec89f69
Register snapshots
2011-12-14 14:11:53 -08:00
Brian Anderson
5b35c9caf5
rustc: Always write split stack prologues
2011-12-14 11:07:48 -08:00
Brian Anderson
283cf35415
build: Call llvm-config with the .exe extension on windows
2011-12-13 22:43:35 -08:00
Brian Anderson
ecdeffbe3d
build: Fix definition of LLC/LLVM_AS
...
Using bindir doesn't work on windows anymore. Something to do with us not
actually installing it, but running directly from the build directory, maybe
just an LLVM bug.
2011-12-13 19:48:17 -08:00
Brian Anderson
f0254e1e0d
rt: Add a FIXME to 32-bit __morestack about trashing %eax
2011-12-13 19:13:17 -08:00
Brian Anderson
f332643e7f
rt: Use %ecx instead of %eax during the second half of __morestack
...
If Rust code made use of return values then using %eax here would clobber it
2011-12-13 18:26:56 -08:00
Brian Anderson
a195ab2dd9
Update LLVM. Fixes for segmented stacks with fastcc functions
2011-12-13 17:09:02 -08:00
Graydon Hoare
f09eb2086d
Merge pull request #1292 from boggle/fix1291
...
Changes to configure (Fix for #1291 )
2011-12-13 16:49:47 -08:00
Stefan Plantikow
9c4b3c26f0
Changes to configure (Fix for #1291 )
2011-12-14 01:46:08 +01:00
Graydon Hoare
fa9ad984fb
Copy first batch of material from libstd to libcore.
2011-12-13 16:34:50 -08:00
Brian Anderson
32087f5c2a
rt: Don't clobber fastcc argument registers in __morestack
2011-12-13 15:54:14 -08:00
Patrick Walton
be3352939a
llvm: Fix LLVM submodule revision
2011-12-13 15:34:04 -08:00
Patrick Walton
cd0e57d2d4
stdlib: Fix spelling errors in documentation of libstd/str.rs
2011-12-13 14:53:14 -08:00
Brian Anderson
21cf9c8698
build: Touch llvm-config after building
...
llvm-config is the file we base our LLVM build rule on, but rebuilding LLVM
doesn't always rebuild it, so touch.
2011-12-13 14:32:32 -08:00
Graydon Hoare
202260f19e
Attempt to fix windows builder.
2011-12-13 12:32:00 -08:00
Brian Anderson
c9b14cc0dd
build: Set 'all' as the default goal. Closes #1290
2011-12-13 12:02:17 -08:00
Graydon Hoare
31b9bd5b33
Merge branch 'master' of github.com:graydon/rust
2011-12-13 11:02:03 -08:00
Graydon Hoare
548fe0eda9
Register new snapshots and teach snapshot script to deal with extracting new-style versioned snapshots.
2011-12-13 10:54:48 -08:00
Marijn Haverbeke
7c3d78013a
Reorganize some code in typeck
...
This should cut down a lot on the amount of closures being allocated, and removes
some duplicated code.
2011-12-13 15:28:22 +01:00
Niko Matsakis
a98dec035f
fix track alloc code
2011-12-12 18:25:17 -08:00
Brian Anderson
1c1bc2f1cd
rt: Remove some duplicated code from 64-bit __morestack
2011-12-12 16:58:21 -08:00
Haitao Li
76f13c95a0
rustc: Work around a segmentation fault
...
On Linux/Mac, I got a segmentation fault:
(gdb) bt
#0 0x00000000007519af in glue_take584 ()
#1 0x00000000006d4bec in
back::rpath::get_rpath_flags::_3899df2ca513c603 ()
#2 0x00000000006c7655 in back:🔗 :link_binary::_7afde00a9791031c ()
#3 0x00000000007d3ff5 in driver::rustc::compile_input::thunk9212 ()
#4 0x0000000000710f24 in driver::rustc::time::_3e691b2a4ba58aee ()
#5 0x000000000071a79d in
driver::rustc::compile_input::_7b4a41b87c18e034 ()
#6 0x000000000072f0a9 in driver::rustc::main::_cd8b8c8185af3dee ()
#7 0x000000000072f1ed in _rust_main ()
#8 0x00007ffff7e6e146 in task_start_wrapper (a=<optimized out>) at
../src/rt/rust_task.cpp:176
The variable `output` or `out_filename` becomes (null) after the definition
of `fn unlib`. Move the function defintion to the beginning seems
prevent the crash on Linux.
2011-12-12 16:15:29 -08:00
Haitao Li
6c6f83f693
rustc: Refactor and get built on Windows
2011-12-12 16:15:29 -08:00
Haitao Li
ba0649cb41
rustc: Hash includes direct dependent crates
2011-12-12 16:15:29 -08:00
Haitao Li
f3c206c9f4
rustc: Encode crate hash into metadata
2011-12-12 16:15:29 -08:00
Haitao Li
2ba317ddb2
build: Temp hack to make transition to new snapshot
2011-12-12 16:15:29 -08:00
Haitao Li
03d1644acc
Update snapshot scripts to pick up the versioned libraries
2011-12-12 16:15:29 -08:00
Haitao Li
6dbd4c21e9
rustc: build versioned library with hash in its name
...
Also updated build to install versioned libraries and added a few
missing actions for `make clean`.
2011-12-12 16:15:29 -08:00
Haitao Li
b4f450a793
Using filename when finding libraries for linking
...
Revert #999 commit 16dad84f7b
2011-12-12 16:15:29 -08:00
Brian Anderson
887d970fee
rt: Make unwinding through __morestack work on mac
...
Had to bump the min stack size in some of the tests from 256 bytes
to 1024 bytes. Not sure why yet.
2011-12-12 16:15:29 -08:00
Brian Anderson
3e32f6623c
rt: Write CFI instructions that (might) work on mac in __morestack
...
The DW_CFA_val_offset_sf instruction doesn't seem to work on mac,
even after implementing it in the llvm-mc assembler, so now
I'm looking for a different way to communicate the stack pointer
adjustment to the unwinder.
2011-12-12 16:14:17 -08:00
Marijn Haverbeke
e47f8fc709
Handle external-crate case when printing full unresolved paths
...
Closes #1283
2011-12-12 13:36:29 +01:00