Brian Anderson
524e803582
Only use allocas to hold expression results for boxed types
2011-03-31 23:15:11 -04:00
Brian Anderson
f05d3c516b
Add more comments to trans_block
2011-03-31 23:15:11 -04:00
Brian Anderson
125bebbf60
Modify trans.rs to allow blocks to result in boxed values
2011-03-31 23:15:11 -04:00
Patrick Walton
c66edca83d
rustc: Add a type annotation to tag items
2011-03-31 19:12:40 -07:00
Patrick Walton
1eeedbd008
rustc: Make tag_ty_params() and substitute_ty_params() take def ids instead of ty_params, and to check in external crates
2011-03-31 18:45:24 -07:00
Patrick Walton
fffc5d3b3d
rustc: Write out a path index as well
2011-03-31 18:28:59 -07:00
Lindsey Kuper
ef0c903f6a
More stuff to go with the new expr_call_self AST node
2011-03-31 14:16:02 -07:00
Lindsey Kuper
e939d6f17c
More machinery for adding an expr_call_self AST node.
2011-03-31 14:04:53 -07:00
Patrick Walton
6c383bbd7b
rustc: Index only the local part of definition IDs
2011-03-31 12:24:59 -07:00
Patrick Walton
3945ace520
rustc: Write out an index of definition info in crate metadata
2011-03-31 11:56:02 -07:00
Patrick Walton
7f3f66df7b
rustc: Use the scaled index, not the raw index, if a vector has generic size. lib-vec.rs works now.
2011-03-31 10:10:21 -07:00
Brian Anderson
607fa14960
Rename incr_all_refcnts to take_ty, to match drop_ty
2011-03-31 14:52:30 +00:00
Brian Anderson
b0b72ab472
Restore scope block contexts to the translation of expr_block.
...
I removed this previously but that was wrong because it caused
block expressions to not create a new scope.
2011-03-31 14:52:29 +00:00
Marijn Haverbeke
39f0656b4f
Improve line comment positioning
...
This involved making ast.variant spanned.
2011-03-31 14:41:40 +00:00
Marijn Haverbeke
f8393cc572
Add effect field to ast.ty_fn.
...
Still not used, except by the pretty-printer.
2011-03-31 14:41:40 +00:00
Patrick Walton
ae5ba62b24
rustc: Use the type cache to construct external item references
2011-03-30 18:15:29 -07:00
Patrick Walton
cc59cea8b0
rustc: Thread an item-to-type mapping throughout the typechecking and translation phases
2011-03-30 17:28:06 -07:00
Graydon Hoare
3e7b991d49
Ensure task stacks start out with a 16-byte aligned entry frame. Should make OSX behave a bit better.
2011-03-30 13:04:18 -07:00
Patrick Walton
301cfe1354
rustc: Add all items to the item table during translation. lib-vec now compiles, but asserts and then segfaults.
2011-03-29 18:16:53 -07:00
Patrick Walton
626bdaaa1f
rustc: Parse parameter IDs in external crate metadata. Un-XFAIL lib-bitv.rs.
2011-03-29 17:25:55 -07:00
Patrick Walton
c67eb1a575
rustc: Partially resolve external module imports
2011-03-29 17:01:27 -07:00
Lindsey Kuper
55fbed3d8d
Beginnings of support for magical self prefix; nothing profound happening yet.
2011-03-29 15:59:15 -07:00
Patrick Walton
94c061729b
rustc: Resolve external modules and native modules to definition IDs as well
2011-03-29 14:46:42 -07:00
Graydon Hoare
77f85460e6
Rename trans_native to trans_native_call, for clarity.
2011-03-29 13:23:51 -07:00
Graydon Hoare
734abe593d
Teach trans to emit undefined references to 'use'd symbols. Can compile and run a simple 'use std;' example now.
2011-03-29 13:23:51 -07:00
Brian Anderson
8f2a97a562
Add partial support for if expressions resulting in generic types
2011-03-28 21:14:08 -07:00
Brian Anderson
aced4ce145
Handle structural types as the result of if expressions
2011-03-28 21:14:04 -07:00
Brian Anderson
a5a319fa04
Teach rustc to use the result of if expressions
2011-03-28 21:14:03 -07:00
Brian Anderson
2b27d12ce1
Add expr_spawn, spawn parsing, folding, typechecking, ty_task
2011-03-28 21:13:53 -07:00
Graydon Hoare
540d29f641
Move all allocas to dedicated basic block at top of function, to keep frames finite. Un-comment next size in nbody.rs.
2011-03-28 18:07:29 -07:00
Patrick Walton
ace2c92a96
rustc: Populate the item types table with types of items from external crates; remove the redundant typeck.ty_and_params type on the way
2011-03-28 14:42:01 -07:00
Patrick Walton
621ab34410
rustc: Remove commented out "encode_tag_variant_info" call that sneaked in
2011-03-28 13:31:13 -07:00
Patrick Walton
cc221c472a
rustc: Don't include a trailing null when writing out metadata; it corrupts the EBML
2011-03-28 13:15:03 -07:00
Graydon Hoare
8b5968165f
Fix get_tydesc to alloca enough room for root; remove hack that was attempting to paper over it. Fix from espindola.
2011-03-28 11:11:03 -07:00
Patrick Walton
81695a19f8
rustc: Add support for calling LLVM intrinsics as native functions
2011-03-28 08:24:58 -07:00
Marijn Haverbeke
6ecdc04788
Add support for break and cont to rustc
...
Testing proper cleanup is hampered by
https://github.com/graydon/rust/issues/293
2011-03-27 14:11:23 +02:00
Graydon Hoare
f59e49c9a6
Twiddle visibility, start exposing only type-mangled names (64 bit truncated sha1 prefixes).
2011-03-26 19:14:07 -07:00
Graydon Hoare
dbc7289a4d
Start refactoring name-mangling in trans.
2011-03-26 17:36:47 -07:00
Graydon Hoare
ac6e1131e9
Teach creader and metadata writer how to do ty.ty_type.
2011-03-26 17:35:51 -07:00
Graydon Hoare
ee686dacb8
Add get_extern_const, factor get_extern into get_extern_fn and get_simple_extern_fn.
2011-03-25 17:59:56 -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
3712ee68ad
Sketch of wiring typeck up to creader.
2011-03-25 14:34:32 -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
Patrick Walton
e2d6475308
rustc: Store cached crate metadata in the session
2011-03-25 11:11:21 -07:00
Brian Anderson
ebc4df3c7a
Implement local declarations with receive. Un-XFAIL decl-with-recv.rs.
2011-03-25 11:01:52 -07:00
Brian Anderson
71f058499a
Refactor ast.local to make room for initialization via recv
2011-03-25 11:01:52 -07:00
Patrick Walton
77a3373d53
rustc: Create a crate metadata cache
2011-03-25 10:44:24 -07:00
Graydon Hoare
4e49ca8abd
Start hooking resolve into creater.
2011-03-24 17:37:32 -07:00
Patrick Walton
2c21195b21
rustc: Emit a better error message when a type is used where a value was expected
2011-03-24 10:29:15 -07:00
Graydon Hoare
08bea1d9a2
Revert "Change the type of the second argument of upcalls to be a %task*.", breaks win32 build.
...
This reverts commit dcf122ede0
.
2011-03-23 16:31:30 -07:00
Lindsey Kuper
0b63512f4c
Support for 'float' in type signatures.
2011-03-23 16:01:29 -07:00
Patrick Walton
c669f20231
rustc: Write out crate metadata
2011-03-23 15:44:17 -07:00
Tim Chevalier
23e23bd762
Further support for floating-point. Literals with exponents work
...
and literals with the 'f32' or 'f64' suffixes work as well. In
addition, logging things with the f32 or f64 type works. (float is
still assumed to be a synonym for f64).
2011-03-22 17:31:27 -07:00
Rafael Ávila de Espíndola
dcf122ede0
Change the type of the second argument of upcalls to be a %task*.
2011-03-22 17:50:18 -04:00
Lindsey Kuper
0ce0c4c41a
Support for shorter error messages that are aware of objects' cnames.
2011-03-22 14:23:43 -07:00
Patrick Walton
bcf04e253f
Revert "Remove usages of case(_) { fail; } since the compiler does this automatically". When we have exhaustiveness checking, "case(_) { fail; }" will be useful to silence warnings.
...
This reverts commit 92a716d862
.
2011-03-22 14:02:52 -07:00
Brian Anderson
92a716d862
Remove usages of case(_) { fail; } since the compiler does this automatically
2011-03-22 08:11:34 -07:00
Brian Anderson
530fe1daea
Add a cleanup to trans_send. Express further confusion about cleanups in trans_recv
2011-03-22 08:04:53 -07:00
Brian Anderson
cddd8094da
Remove a todo from trans_chan that doesn't appear necessary
2011-03-22 08:04:49 -07:00
Brian Anderson
c02cdc32a8
Generalize send/recv to work for more types
2011-03-22 08:04:45 -07:00
Brian Anderson
39c01c97ba
Fix trans_recv
2011-03-22 08:04:41 -07:00
Brian Anderson
b2ee569c23
Implement trans_send and a broken trans_recv
2011-03-22 08:04:39 -07:00
Brian Anderson
261d1e4c61
Add codegen for ports and chans
2011-03-22 08:04:38 -07:00
Tim Chevalier
1e1ff638a3
Make floating-point operations work (neg, add, sub, mul, div, rem,
...
and comparison ops.)
2011-03-21 18:10:34 -07:00
Tim Chevalier
caa22c9341
Started adding support for floating-point type, floating-point literals, and logging of floats. Other operations on float probably don't work yet.
2011-03-21 18:10:34 -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
f3057244a6
Make the wrapper function of native functions private.
2011-03-21 16:02:00 -04:00
Rafael Ávila de Espíndola
12e7feb71c
The T_taskptr is already included in the n_args, don't add it twice.
2011-03-21 15:15:22 -04:00
Patrick Walton
84c0d8638e
rustc: Update type serialization and deserialization for the "mutable?" change
2011-03-21 11:44:08 -07:00
Marijn Haverbeke
86d05655b4
rustc: Merge in type serialization and deserialization
...
Signed-off-by: Patrick Walton <pcwalton@mimiga.net>
2011-03-21 11:35:04 -07:00
Rafael Ávila de Espíndola
e687dd5ce7
Make lltaskptr a regular argument element in args in calls to trans_upcall2.
2011-03-21 11:59:14 -04:00
Rafael Ávila de Espíndola
770a49520c
Move calls to PtrToInt out of trans_upcall2.
2011-03-21 11:11:22 -04:00
Graydon Hoare
4b946cea35
Modify native_item_fn to handle trailing linkage names that differ from the item name (used in win32 build of std.dll)
2011-03-20 20:18:19 -07:00
Patrick Walton
d31bfc8692
rustc: Internalize glue. Cuts libstd size by 8% or so.
2011-03-20 15:05:13 -07:00
Patrick Walton
277d42f589
rustc: Only declare each native function once. std.rc now links.
2011-03-19 17:33:46 -07:00
Patrick Walton
a1aad28690
rustc: Use the right block context to generate unary operands. std.rc compiles now. For realz.
2011-03-19 15:03:21 -07:00
Patrick Walton
8e597b295f
rustc: Allow arguments to be captured as upvars. std.rc compiles now, except for the lack of a main fn.
2011-03-19 14:26:12 -07:00
Patrick Walton
c710c9a1b8
rustc: Do argument casts before loading aggregates, not after
2011-03-19 13:58:48 -07:00
Patrick Walton
3f2bae4449
rustc: Implement int-to-native casts
2011-03-18 18:49:59 -07:00
Patrick Walton
e6b6d1b645
rustc: Make trans_path() generic-safe wrt nullary tags
2011-03-18 18:45:49 -07:00
Patrick Walton
95dc89f012
rustc: Make iter_structural_ty_full() generic-safe wrt tags
2011-03-18 18:34:06 -07:00
Patrick Walton
8c48fae726
rustc: Do pointer casts when casting native types
2011-03-18 18:12:58 -07:00
Patrick Walton
9c0c0af1b2
rustc: Fix inference for auto slots (forgot to stage changes before)
2011-03-18 17:45:47 -07:00
Patrick Walton
f3b58947c0
rustc: Don't always build a constant multiply instruction when translating literal vectors; the size of the referent isn't always constant
2011-03-18 16:41:56 -07:00
Patrick Walton
533dea772f
rustc: Move type_of() behind the check for dynamic size in trans_vec()
2011-03-18 16:34:22 -07:00
Patrick Walton
78bcfe28f2
rustc: Create global variable constants during the collection phase
2011-03-18 16:24:01 -07:00
Patrick Walton
8ff77b14a9
rustc: Make iter_sequence() work with generic vectors
2011-03-18 16:04:16 -07:00
Patrick Walton
47d650e25b
rustc: Box the tuples returned by hashmap.items() for now since we don't have alias iterators yet
2011-03-18 15:18:45 -07:00
Patrick Walton
ebee49314b
rustc: Get type params from the item when translating native items
2011-03-18 15:01:45 -07:00
Patrick Walton
e8938f5fb2
rustc: Unify over alt expressions
2011-03-18 12:49:48 -07:00
Patrick Walton
6f65ce5255
rustc: Add a span_unimpl() for debugging
2011-03-18 12:30:44 -07:00
Patrick Walton
2ef9c01ffc
rustc: Implement "mutable?". Add a test case and XFAIL it in rustboot for now.
2011-03-18 11:49:47 -07:00
Patrick Walton
5eca7129e3
rustc: Switch mutability from being a type constructor to a field annotation
2011-03-17 17:39:47 -07:00
Patrick Walton
67bac63aa3
rustc: Correctly report mutability when stringifying types
2011-03-17 11:54:00 -07:00
Patrick Walton
2ca66718ce
rustc: Consider native types to be scalar
2011-03-17 11:46:21 -07:00
Patrick Walton
55587a554c
rustc: Sort object methods when parsing textual types in the AST
2011-03-17 11:40:05 -07:00
Patrick Walton
bc51842d4f
rustc: Don't go over inner functions' locals during the writeback phase of typechecking
2011-03-17 11:23:17 -07: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