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
Brian Anderson
163c42baf8
Switch to the Rust fork of LLVM in preparation for enabling stack growth
2011-12-11 18:57:46 -08:00
Brian Anderson
7a8e73662d
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-11 18:49:04 -08:00
Brian Anderson
7bc34f63d8
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-11 16:32:36 -08:00
Brian Anderson
b73caec3ce
rt: Call upcall_fail on the C stack
2011-12-11 14:35:18 -08:00
Brian Anderson
5cd08586f6
rt: Add DWARF CFI info to asm_call_on_stack
...
This will allow the unwinder to unwind this function so we can call
upcall_fail on the C stack.
2011-12-11 14:35:09 -08:00
Brian Anderson
4699b6865f
build: Use llvm-mc as our assembler
...
LLVM's assembler understands .cfi pseudo-ops on the mac, which we need in
order to generate frames that can be DWARF-unwound
2011-12-10 18:51:21 -08:00
Austin Seipp
638b51488f
Disable unused features in the LLVM build.
...
Issue #1274 - should make the build a wee bit faster.
2011-12-09 19:27:18 -08:00
Elly Jones
f05eaa4a65
cargo: support github:<user>/<repo>
2011-12-09 14:21:21 -08:00
Elly Jones
0acf170c9f
cargo: support git:// URIs.
2011-12-09 14:21:21 -08:00
Elly Jones
b53e4e8463
cargo: don't stick an extra / in CARGO_ROOT
2011-12-09 14:21:21 -08:00
Elly Jones
7b0c73d8fa
cargo: refactor a bit
2011-12-09 14:21:21 -08:00
Elly Jones
7f945eeae9
cargo: support installing crates
...
Introduce the notion of CARGO_ROOT to override HOME if need be. Build packages
there instead of in /tmp. Install to CARGO_ROOT/bin and CARGO_ROOT/lib.
2011-12-09 14:21:21 -08:00
Erick Tryzelaar
e3a066bde8
Swap arg order for option::{may,maybe}
...
This lets us write the block syntax sugar:
option::may(x) { |y| … }
2011-12-09 10:22:24 -08:00
Marijn Haverbeke
44ffd8e3aa
Allow type annotations for blocks
...
I.e. {|foo: int| -> int foo + 2}
Issue #1275
2011-12-09 09:42:22 +01:00
Brian Anderson
54f72fbc10
rustc: Actually hook the crate_type attribute into session
2011-12-08 21:31:50 -08:00
Brian Anderson
4f17131855
Add crate_type attributes to rustc, std, core
2011-12-08 21:09:48 -08:00
Brian Anderson
9116a6d9b1
rustc: Support 'crate_type' attribute
...
[crate_type = "lib"] builds it as a library.
[crate_type = "bin"] builds it as an executable.
Executable is the default. --lib and --bin switches override.
2011-12-08 21:09:15 -08:00
Brian Anderson
6156295a4c
rustc: Move linking into compile_input
2011-12-08 20:33:31 -08:00
Brian Anderson
fd81fb6a24
rustc: Determine the crate type (lib/bin) in the session, not session opts
...
This is in preparation for adding a #[crate_type] attribute
2011-12-08 20:08:00 -08:00
Brian Anderson
9e6ff44d93
rt: Make __morestack work on win32
2011-12-08 16:47:33 -08:00