Brian Anderson
ddbb31eb8e
rustc: Remove the meta keyword
...
Issue #487
2011-06-18 20:23:05 -07:00
Brian Anderson
f58de2d687
Replace unexported meta tags with attributes
...
Issue #487
2011-06-18 20:23:05 -07:00
Brian Anderson
6e6bc5076c
rustc: Support both meta tags and attributes for crate metadata
...
This is a transitional patch for converting from 'meta' to attributes.
Issue #487
2011-06-17 15:07:34 -07:00
Graydon Hoare
b84fffaa4e
Reformat a bunch of recent churn.
2011-06-16 16:55:46 -07:00
Eric Holk
6ed6791df4
Removing dead upcall_join. Closes #509 .
2011-06-16 12:23:13 -07:00
Michael Sullivan
bd8f6097a7
Get rid of old vec_append glue.
2011-06-16 11:58:29 -07:00
Patrick Walton
6c8e94f397
rustc: Change the default interior vector length to 4 per science
2011-06-15 14:14:33 -07:00
Lindsey Kuper
59a254ae32
Just some typo fixes.
2011-06-15 12:18:52 -07:00
Graydon Hoare
766d54df93
Fix a bunch of compile-command lines to use RBUILD
2011-06-15 12:01:19 -07:00
Graydon Hoare
ce72993488
Reformat source tree (minus a couple tests that are still grumpy).
2011-06-15 11:19:50 -07:00
Michael Sullivan
5378f48a03
Remove vec_append_glue from the compiler.
2011-06-14 16:09:17 -07:00
Michael Sullivan
95def699f1
Implement upcall_vec_append and use it for vector append.
2011-06-14 15:35:09 -07:00
Patrick Walton
bf5840d530
rustc: Do a dynamic alloca for generic interior vectors; fix data pointer calculation when spilling vectors
2011-06-14 14:03:38 -07:00
Patrick Walton
c3bf7d07e9
rustc: Implement simple interior vector append translation
2011-06-13 18:57:25 -07:00
Eric Holk
d1857d30fc
This is the mega-ucontext commit. It replaces the task switching mechanism with a new one inspired by ucontext. It works under Linux, OS X and Windows, and is Valgrind clean on Linux and OS X (provided the runtime is built with gcc).
...
This commit also moves yield and join to the standard library, as requested in #42 . Join is currently a no-op though.
2011-06-13 18:14:13 -07:00
Patrick Walton
913383d775
rustc: Preserve more type information for interior vectors at the LLVM level, allowing SROA to take place. log ~[ 2 ].(0)
now optimizes to just log 2
.
2011-06-12 00:44:43 -07:00
Patrick Walton
ac206068d9
rustc: Bump the default interior vector size up to 64 bytes
2011-06-11 19:42:48 -07:00
Patrick Walton
00eb3f5798
rustc: Sketch out translation of interior vector literals and take/drop glue
2011-06-10 19:36:33 -07:00
Graydon Hoare
52c4c9014f
Encode meta tags in the crate and start sketching enhanced logic for resolving crate "use" directives.
...
Now with extra "works on OSX" kludging.
2011-06-10 12:57:29 -07:00
Patrick Walton
40e3a9fcbc
Revert "Encode meta tags in the crate and start sketching enhanced logic for resolving crate "use" directives." due to tree bustage
...
This reverts commit ab3635eebe
.
2011-06-09 18:15:13 -07:00
Graydon Hoare
ab3635eebe
Encode meta tags in the crate and start sketching enhanced logic for resolving crate "use" directives.
2011-06-09 17:24:32 -07:00
Tim Chevalier
17ff2a0d79
Further support for predicate constraints
...
Changed function types to include a list of constraints. Added
code for parsing and pretty-printing constraints. This necessitated
splitting pprust into two files (pprust and ppaux) to break a
circulate dependency, as ty_to_str now needs to print out constraints,
which may include literals, but pprust depended on ty.
2011-06-09 11:37:52 -07:00
Marijn Haverbeke
77c1b9650f
Some more workarounds to please the alias checker
...
Some of the vec utilities now only work on immutable vecs, since they
would have to be rewritten to do a lot more copying to be alias-safe.
Some forced copying was added to map.rs, showing a weakness in the
alias checker (or maybe the alias system): when fn args are passed
into a function, calling them must assume all aliases that are not
immutably rooted (directly connected to a local or temporary without
any mutable edges) become invalid. This will be a drag on functional
programming in Rust.
Work around alias issues in the stdlib
2011-06-09 13:08:39 +02:00
Rafael Ávila de Espíndola
698022d351
Update rust to build with newer llvm versions.
2011-06-08 14:08:24 -04:00
Graydon Hoare
721c5bbee8
More work on proper linkage name-mangling. Almost right, aside from version numbers.
2011-06-07 18:08:17 -07:00
Paul Stansifer
9f5dddf08c
Now imports are not re-exported unless 'export' is explicitly used.
2011-05-31 18:43:26 -07:00
Eric Holk
d49998f0ed
Switching over to wrappers for spawning functions of multiple arguments. Doesn't quite work yet.
2011-05-27 15:20:58 -07:00
Graydon Hoare
79c9e13073
More delicious dead code removal from runtime, upcalls.
2011-05-26 18:21:02 -07:00
Tim Chevalier
79693fab1f
Fix typo in error message
2011-05-26 18:00:54 -07:00
Graydon Hoare
8e945dcd81
Remove native glues. All calls to C are direct now.
2011-05-26 16:45:01 -07:00
Rafael Ávila de Espíndola
ac836dd79c
There is only one yield glue.
2011-05-24 18:29:08 -04:00
Rafael Ávila de Espíndola
0fc91b6ecc
There is only one activate function now.
2011-05-24 17:00:45 -04:00
Brian Anderson
2505a2312e
rustc: Run the llvm verifier pass before optimization. Closes #376
...
The optimization passes were hiding some codegen errors so now we run the
verifier both before and after optimization.
2011-05-23 19:52:57 -04:00
Lindsey Kuper
c3410bf927
More work on anonymous objects.
2011-05-20 17:59:56 -07:00
Eric Holk
3dd2877975
Using the right mode...
2011-05-20 16:51:09 -07:00
Eric Holk
0de27ce8bd
Translated start_task, but it fails on spp == align_down(spp)
2011-05-20 16:51:09 -07:00
Eric Holk
d01948cd07
Called the new_task upcall. There are refcount issues though.
2011-05-20 16:51:08 -07:00
Graydon Hoare
31d65453d4
OptLevel changes. Accepts levels 0 to 3 only. '-O' is synonym for --OptLevel=2.
2011-05-19 12:46:10 -07:00
Patrick Walton
c88fc06b40
rustc: Fix output name of optimized glue when --save-temps is on
2011-05-18 18:48:41 -07:00
Rafael Ávila de Espíndola
bb7d4e15a8
Remove dead code.
2011-05-18 16:33:22 -04:00
Rafael Ávila de Espíndola
a795d0e5b2
And yet more dead code.
2011-05-18 14:28:08 -04:00
Marijn Haverbeke
09d8ef8d51
Finally rename std::_xxx to std::xxx
...
Except for _task, which is still a keyword.
2011-05-17 20:41:41 +02:00
Graydon Hoare
fbbc1a77d2
Rewrite everything to use [] instead of vec() in value position.
2011-05-16 18:21:22 -07:00
Kelly Wilson
b91ef944c8
Replace --bitcode with the canonical --emit-llvm
2011-05-16 14:07:43 -07:00
Kelly Wilson
196351aa44
Add automatic exe generation capabilities. Add --bitcode flag to generate only an LLVM bitcode file.
2011-05-16 14:07:43 -07:00
Brian Anderson
aaf41815b1
rustc: Dispose intrinsics memory buffer
2011-05-14 00:29:24 -04:00
Brian Anderson
371dbf9834
rustc: Dispose the intrinsics LLVMModuleRef
2011-05-14 00:22:44 -04:00
Brian Anderson
2f440b1452
rustc: lowercase the link and link::write modules
2011-05-13 16:55:37 -04:00
Marijn Haverbeke
3816e57fd2
Downcase std modules again, move to :: for module dereferencing
...
This should be a snapshot transition.
2011-05-12 21:30:44 +02:00
Graydon Hoare
d6f1fcff6b
Add --time-llvm-passes.
2011-05-10 16:10:08 -07:00
Patrick Walton
2849103f24
rustc: Get rid of native Rust glue for all upcalls except the exit task glue
2011-05-10 14:04:34 -07:00
Patrick Walton
cfcc8678e5
rustc: Give our upcall definitions the right values
2011-05-09 16:59:18 -07:00
Patrick Walton
071ed380fb
rustc: Declare upcalls with real signatures; preparation for killing rust_native_rust_* stubs
2011-05-09 15:33:02 -07:00
Patrick Walton
bc879a4e1e
rustc: Replace our homebrew list of passes with the standard function and module passes, along with the TargetData passes.
2011-05-09 11:44:47 -07:00
Patrick Walton
a71fda40b8
rustc: Make llvm_err() conform to Postel's law a little better
2011-05-06 18:19:42 -07:00
Marijn Haverbeke
a3ec0b1f64
Rename std modules to be camelcased
...
(Have fun mergining your stuff with this.)
2011-05-06 22:51:19 +02:00
Patrick Walton
ab437253d3
rustc: Bump the number of native glues to 8
2011-05-06 12:50:48 -07:00
Graydon Hoare
9e3b096d98
Fix x86.rs triple for linux.
2011-05-05 17:20:27 -07:00
Rafael Ávila de Espíndola
4445d6771d
Use symbolic register names so that we get the correct encoding on OS X.
2011-05-05 19:00:42 -04:00
Patrick Walton
a74feaf159
rustc: Link with intrinsics.bc; change intrinsics linkage to linkonce_odr
2011-05-05 12:46:22 -07:00
Patrick Walton
5fb6e6364b
rustc: Add a binding to LLVM's bitcode parser
2011-05-05 11:34:45 -07:00
Patrick Walton
fea623211f
rustc: Add a Link module; move crate writing to it to slim down trans slightly
2011-05-05 10:48:02 -07:00
Patrick Walton
f6c472d816
rustc: Emit pure native glue; we don't call it yet
2011-04-29 16:40:30 -07:00
Marijn Haverbeke
c39a95da90
Implement destructors in rustc
...
Unlike rustboot, rustc keeps it destructors in vtables. Entry 0 holds
either the destructor for the obj or a NULL pointer. The method
offsets start at 1.
2011-04-29 21:19:50 +02:00
Rafael Ávila de Espíndola
b0980b7d79
Add a very minimal set of .cfi_* statements to get part of backtraces
...
working (on hello world at least):
~/inst/gdb/bin/gdb --args ./foo
(gdb) b write
...
(gdb) r
...
Breakpoint 1, 0xf7f04270 in write () from /lib32/libc.so.6
(gdb) bt
0 0xf7f04270 in write () from /lib32/libc.so.6
1 0x0804931a in rust_native_cdecl_3 ()
2 0x080487d7 in _rust_wrapper3_ ()
3 0x0804890a in _rust_fn5_main ()
4 0x08049440 in rust_native_cdecl_7 ()
2011-04-28 16:19:20 -04:00
Patrick Walton
5f2cfa7351
rustc: Add an operation field to compare glue with ==, <=, and < modes
2011-04-18 12:57:00 -07:00
Patrick Walton
abd78f2f04
rustc: Create stub glue for structural comparison
2011-04-18 11:14:38 -07:00
Graydon Hoare
35573144c5
Remove silly legacy glue-offset encoding, predicate runtime adjustments by ABI. LLVM should inline most glue now.
2011-04-09 00:54:46 +00:00
Graydon Hoare
8e9c5b96fb
Change rust_vec to have a 16-byte header, to 16-byte-align vec-body data. Major perf win.
2011-04-02 19:05:12 -07:00
Graydon Hoare
661f1c541e
Trans nomenclature tidy-up: upcall vs. native vs. extern.
2011-03-25 15:48:00 -07:00
Graydon Hoare
b2427509e2
Another go at changing compile-command, this time using RBUILD env var.
2011-03-25 15:07:27 -07:00
Graydon Hoare
91c2b82b09
Revert "Bulk-edit compile commands in emacs chatter to point to assumed build/ dir off src root."
...
This reverts commit 846f2e2ba9
.
2011-03-25 14:05:38 -07:00
Graydon Hoare
846f2e2ba9
Bulk-edit compile commands in emacs chatter to point to assumed build/ dir off src root.
2011-03-25 13:48:37 -07:00
Rafael Ávila de Espíndola
933c01bd15
Every upcall needs a task pointer to find the C stack. It is just that when
...
handling cdecl call they should skip it when calling the final function.
There is some cleanup to be done on the generated IL, but this gets us
running Hello World for real.
2011-03-21 17:53:11 -04:00
Rafael Ávila de Espíndola
9dc3f3f183
Fixed version of my previous patch to rename the upcall functions. This time also update the inline assembly.
2011-03-16 18:09:12 -04:00
Patrick Walton
9b3db0ed44
rustc: Add some stub metadata to each crate
2011-03-11 15:35:50 -08:00
Rafael Ávila de Espíndola
10d8b4e861
Fix access to the rust stack.
2011-03-09 15:05:22 -05:00
Rafael Ávila de Espíndola
aeca138944
swap taskptr and callee in preparation for making taskptr optional.
2011-03-09 14:16:11 -05:00
Graydon Hoare
652cb48475
Assortment of additional work on vec-append. Not done yet.
2011-03-03 18:18:59 -08:00
Graydon Hoare
dddeba19d3
Sketch out some more pieces of vec-append.
2011-03-02 16:42:19 -08:00
Graydon Hoare
af4d6ae76b
Add ABI tagging to crates, adjust rustc output and runtime stack-frame setup so access to argv works.
2011-02-22 16:37:27 -08:00
Graydon Hoare
467a628ffa
Add the single instruction required in activate glue to fix burning darwin tinderbox. And transplant 100 lines of comments from the ML code.
2011-02-08 18:09:50 -08:00
Graydon Hoare
be97a77be8
Capture typarams into obj, independent of body tydesc.
2011-02-03 14:40:57 -08:00
Graydon Hoare
e92298187b
Add bzero glue and preliminary code for dynamic size/align calculations.
2011-01-18 15:38:35 -08:00
Graydon Hoare
bc21965c98
Use homebrew memcpy, not llvm intrinsic. Can't run the latter on a rust stack.
2011-01-17 17:24:33 -08:00
Graydon Hoare
62c79fb216
Sketch closure-forming logic for nontrivial bindings.
2011-01-05 18:57:28 -08:00
Graydon Hoare
86188da348
Mop up cases of s/copy/take/, remove 'binding' terminology, whitespace police, and make obj/fn structural.
2010-12-20 16:26:38 -08:00
Patrick Walton
a7e9984999
rustc: Build tydescs for types, and make all take and drop operations go through the tydescs for simplicity (LLVM inlines them).
2010-12-20 10:23:37 -08:00
Graydon Hoare
62d62ce4da
Remove calltup fields from ABI, add binding fields.
2010-12-16 23:26:07 -08:00
Patrick Walton
f371dc613a
rustc: Set data layout and target triple
2010-12-03 13:52:54 -08:00
Graydon Hoare
44b051f34a
Fix typo in x86 backend glue that was, by luck, only crashing on OSX.
2010-11-15 12:45:26 -08:00
Graydon Hoare
a352efadad
Switch upcall glues to fastcall as well.
2010-11-14 13:41:10 -08:00
Graydon Hoare
4cbef9d8a1
Remove outptr from module-internal calls; use standard ABI returns.
2010-11-14 13:04:01 -08:00
Graydon Hoare
a404e54261
Teach rustc about const tag value, begin work on trans_copy_ty, make uint's to_str routine less clever and thereby resist overflow.
2010-11-09 17:50:31 -08:00
Graydon Hoare
ffb3861c70
Move symbol prefix logic into separate function, add underscore prefix for windows.
2010-11-05 18:31:23 -07:00
Graydon Hoare
e5229b97d7
Don't use string == in x86.rs, doesn't work.
2010-10-22 17:27:22 -07:00
Patrick Walton
05a3c5c0f3
rustc: Add an "_" prefix to assembler-generated symbols on Mac
2010-10-22 16:16:02 -07:00
Graydon Hoare
f5787ed80c
Translate exit-task glue such that rustc's output programs exit properly.
2010-09-27 15:38:34 -07:00
Graydon Hoare
a2f4d9089a
Fix indexing bug in rustc's indirect-upcall arg-copying loops.
2010-09-27 14:42:58 -07:00
Graydon Hoare
4cfc4250bf
More work on trans, almost getting to the point of emitting an upcall.
2010-09-24 14:56:04 -07:00