Graydon Hoare
54587bdccb
Switch all vases of vec += elt to vec += vec. Prohibit former in rustboot. Tweak std lib vec fns in process.
2011-03-16 14:58:02 -07:00
Rafael Ávila de Espíndola
8dc5059058
Update comment to reflect the decision to avoid cycles.
2011-03-16 11:29:41 -04:00
Patrick Walton
71b6e602c5
rustc: Add an annotation for the crate definition to view_item_use
2011-03-15 17:33:05 -07:00
Patrick Walton
341d128ad3
Revert "Change the numbering of upcall functions. upcall_0 now calls a function" due to tinderbox failure on win32
...
This reverts commit bd9dd5ed1a
.
2011-03-15 17:20:00 -07:00
Rafael Ávila de Espíndola
bd9dd5ed1a
Change the numbering of upcall functions. upcall_0 now calls a function
...
with no arguments. This is still preparation for calling functions that
don't take a rust task argument.
2011-03-15 16:24:03 -04:00
Graydon Hoare
7f5bffc3ea
Merge remote branch 'brson/recursive-elseif'
2011-03-14 16:59:04 -07:00
Brian Anderson
8b5574ac09
Rename check_assignment_like to check_assignment since it turned out not to be useful for send/recv
2011-03-14 16:41:46 -07:00
Brian Anderson
b83a4af93c
Fix the typechecking for expr_send and expr_recv
2011-03-14 16:41:46 -07:00
Brian Anderson
4ce4d8857f
Add ty_port and ty_chan to expr_ty function
2011-03-14 16:41:46 -07:00
Brian Anderson
83f758cf0d
Typecheck expr_send and expr_recv
2011-03-14 16:41:46 -07:00
Brian Anderson
a309f74a94
Reorganize evaluation of expr_send/recv to put them closer to expr_assign, to which they are similar
2011-03-14 16:41:46 -07:00
Brian Anderson
644d8b95da
Factor out expression checking for forms that look like assignment
2011-03-14 16:41:46 -07:00
Brian Anderson
7464237256
Add folding and type checking for ports and chans
2011-03-14 16:41:46 -07:00
Brian Anderson
a3cca65f6d
Fold ty_chan and ty_port
2011-03-14 16:41:46 -07:00
Rafael Ávila de Espíndola
3436979b17
Split trans' collection in two passes. This allows us to handle tags
...
that are defined after use in a block.
This is really inefficient, but for now it lets us compile the included test.
2011-03-14 16:56:03 -04:00
Brian Anderson
bbb6836da0
Merge branch 'master' into recursive-elseif
...
Conflicts:
src/comp/middle/typeck.rs
2011-03-13 19:40:25 -04:00
Brian Anderson
2a662944a4
Remove extra blocks from the translation of expr_block
...
Doesn't seem to break anything and allows trans_if to be streamlined
2011-03-13 19:29:40 -04:00
Graydon Hoare
ec7e84ae0d
Preserve crate directives in the parsed crate.
2011-03-11 15:49:56 -08: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
74d891517b
reindex the block index.
2011-03-11 17:35:33 -05:00
Patrick Walton
6392bd1681
rustc: Load structural loop variables in iterators. Un-XFAIL foreach-put-structured.rs.
2011-03-11 14:29:45 -08:00
Rafael Ávila de Espíndola
28d51e3fd2
Add support for indexing tags in blocks.
2011-03-11 17:12:25 -05:00
Patrick Walton
37007a4d01
rustc: Populate the upvar environment when calling iterator bodies. Un-XFAIL test/run-pass/iter-range.rs.
2011-03-11 12:02:51 -08:00
Patrick Walton
336f22db61
rustc: Resolve upvars as necessary
2011-03-11 10:39:36 -08:00
Rafael Ávila de Espíndola
0117cf2fc2
Handle resolving to native modules.
2011-03-10 21:33:53 -05:00
Graydon Hoare
3aac5059ee
Move the glue code to a .o file. This reduces how much asm we print
...
in each "translation unit".
Part of it is not repetitive and should probably be moved to a .ll file, but
for now we autogen all of it.
(Modified somewhat by graydon while integrating).
2011-03-10 17:30:08 -08:00
Patrick Walton
7454b53411
rustc: Build up a list of upvars inside foreach bodies
2011-03-10 16:49:00 -08:00
Patrick Walton
60f86354ad
rustc: Use the generic info from the item in bind thunks just as calls do. Un-XFAIL drop-parametric-closure-with-bound-box.rs.
2011-03-10 15:14:45 -08:00
Patrick Walton
185bcc6218
rustc: Increment the counter in trans_bind_thunk()
2011-03-10 15:09:41 -08:00
Patrick Walton
41d5094a8e
rustc: Fix off-by-one error and logic error regarding type parameters in the translation of bind expressions. Un-XFAIL bind-obj-ctor.rs.
2011-03-10 14:38:06 -08:00
Patrick Walton
36b81abf61
rustc: Perform a cast in vector initialization due to changing layers of indirection. Keep test/run-pass/size-and-align.rs XFAIL'd due to a leak in rustboot.
2011-03-10 12:15:07 -08:00
Patrick Walton
7505c1fa23
rustc: Run cleanups on while expressions' condition blocks. Un-XFAIL while-prelude-drop.rs.
2011-03-10 11:46:37 -08:00
Graydon Hoare
8e8c336f93
Implement deep structural comparison through boxes and sequences.
2011-03-09 20:14:19 -08:00
Patrick Walton
874e8e3505
rustc: Have tag patterns use the type parameter information from the typechecker instead of trying to deduce it in trans. Un-XFAIL test/run-pass/generic-tag-values.rs.
2011-03-09 17:50:46 -08:00
Graydon Hoare
bafcbb101c
Fold exports.
2011-03-09 17:34:22 -08:00
Marijn Haverbeke
aed40fbcd8
Have the pretty-printer take a writer stream as argument
...
It now uses a string writer to also fill in for
middle.ty.ast_ty_to_str
2011-03-09 16:15:55 -08:00
Patrick Walton
ea2c868744
rustc: Perform type substitutions for tag variants in dynamic_size_of()
2011-03-09 16:07:55 -08:00
Patrick Walton
1e65baad94
rustc Remove dead "llunit_ty" assignment in trans_index
2011-03-09 15:23:41 -08:00
Patrick Walton
7dc64b45b5
rustc: Make tag pattern translation generic-aware. Un-XFAIL generic-tag-alt.rs.
2011-03-09 15:17:06 -08:00
Patrick Walton
ba2e04f271
Rename confusing usage of "lltag" to "lldiscrim" in trans_pat_match()
2011-03-09 14:29:00 -08:00
Patrick Walton
603d820b85
rustc: Have demand_pat() extract type parameters from tags. Add a test case.
2011-03-09 14:09:02 -08:00
Patrick Walton
2986ed43e9
rustc: Substitute type parameters in type_of_variant(). Add a test case.
2011-03-09 13:31:25 -08:00
Patrick Walton
9aa26904b8
rustc: Remove redundant ty_params_of_tag() function
2011-03-09 13:07:06 -08:00
Patrick Walton
80fa01fb57
rustc: Perform type parameter substitutions in static_size_of_tag()
2011-03-09 12:53:12 -08:00
Patrick Walton
fcd195bb4c
rustc: Don't try to load dynamically-sized types when translating tag variants. Add a test case for this.
2011-03-09 12:53:12 -08:00
Rafael Ávila de Espíndola
02f669ca67
Pass the task pointer as just another i32.
2011-03-09 15:35:54 -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
Patrick Walton
50da3ea5bc
rustc: Instantiate tag patterns with the type parameters supplied by the programmer. size-and-align.rs typechecks now.
2011-03-09 11:08:59 -08:00
Patrick Walton
b828ec36fb
rustc: Factor the type parameter and type lookup out of instantiate_path(), as patterns need different logic
2011-03-09 10:56:45 -08:00
Patrick Walton
3c200f3e14
rustc: Grammar police work in check_pat() error messages
2011-03-09 10:21:48 -08:00
Patrick Walton
0a22a4edbb
rustc: Factor out path type instantiation so that tag patterns can use it as well
2011-03-08 18:48:17 -08:00
Patrick Walton
e64085b0a2
rustc: Fold over the paths in tag patterns so that we can resolve type variables in them
2011-03-08 18:11:00 -08:00
Patrick Walton
5b7c3b8b5d
rustc: Typecheck the base part of record extension expressions. Un-XFAIL rec-extend.rs.
2011-03-08 17:34:41 -08:00
Patrick Walton
e9fe47b359
rustc: Make ann_to_type() fail if the node has no type. Miraculously, no test cases fail.
2011-03-08 17:03:00 -08:00
Patrick Walton
e62424944b
rustc: Have trans get the type parameters from the annotation instead of trying to deduce them itself. Un-XFAIL generic-fn-twice.rs.
2011-03-08 16:56:19 -08:00
Graydon Hoare
01bfc3ae8b
Fix generic-bind support for bound aliases and generics.
2011-03-08 16:32:39 -08:00
Patrick Walton
da9ea9ab69
rustc: Move type parameter resolution from translation into the typechecker
2011-03-08 14:55:39 -08:00
Graydon Hoare
27547c6514
Revert "Move the glue asm code to a .o file. This reduces how much asm we print"
...
This reverts commit 55c80e763b
.
2011-03-08 13:20:16 -08:00
Rafael Ávila de Espíndola
55c80e763b
Move the glue asm code to a .o file. This reduces how much asm we print
...
in each "translation unit".
2011-03-08 13:08:31 -08:00
Patrick Walton
35bee753de
rustc: Pass explicit type substitutions to later passes
2011-03-08 13:00:31 -08:00
Patrick Walton
4654faa67c
rustc: Add a slot for explicit type parameter instantations to the typechecker's AST annotation
2011-03-08 12:42:56 -08:00
Patrick Walton
e2f6f19fc8
rustc: Rework type substitution to pair up type parameter IDs with the supplied type parameter instantiations explicitly
2011-03-08 12:19:37 -08:00
Patrick Walton
473a242525
rustc: Store type parameter definition IDs instead of type parameter counts in the typechecker
2011-03-08 11:27:36 -08:00
Patrick Walton
0054efc412
rustc: Store the number of type parameters per item, which will be needed to get unused type params working
2011-03-08 10:57:40 -08:00
Brian Anderson
9fc4db6b89
Merge branch 'master' into recursive-elseif
...
Conflicts:
src/Makefile
src/comp/front/ast.rs
src/comp/front/parser.rs
src/comp/middle/fold.rs
src/comp/middle/trans.rs
2011-03-07 21:21:01 -05:00
Graydon Hoare
0d60918855
Most of the way through genericizing bind properly with new malloc path. Still getting the thunk call wrong.
2011-03-07 18:13:56 -08:00
Patrick Walton
3473ff3bff
rustc: Cast dynamically-sized tags in iter_structural_ty_full() to opaque tag types. Un-XFAIL generic-recursive-tag.rs.
2011-03-07 18:03:33 -08:00
Patrick Walton
6ed226c6b3
rustc: Cast the LLVM representations of tag types when constructing boxes. Un-XFAIL list.rs.
2011-03-07 16:35:00 -08:00
Patrick Walton
6f7e21ddac
rustc: Truncate or zero-extend indexes appropriately. Un-XFAIL integral-indexing.rs.
2011-03-07 15:44:42 -08:00
Graydon Hoare
abbcc0385d
Poison ty_param values in trans; fix buggy parametric obj and box malloc paths. Add generic-box test.
2011-03-07 14:05:16 -08:00
Marijn Haverbeke
0624f9db4a
Add a pretty-printer
...
Adds a -pp option to the compiler which will cause it to simply
pretty-print the given file.
2011-03-07 12:58:08 -08:00
Rafael Ávila de Espíndola
8047957b99
Construct the wrappers to native functions. Hello world now works :-)
2011-03-07 15:37:40 -05:00
Graydon Hoare
90f299e710
Permit view items in native modules.
2011-03-07 11:48:43 -08:00
Graydon Hoare
60657fa8aa
Set the cleanup on the post-growth vector, not the temporary one.
2011-03-07 00:13:56 -08:00
Graydon Hoare
2cbfb8795d
Fix off-by-one in vector append code.
2011-03-06 23:06:01 -08:00
Graydon Hoare
386ba3ae63
Further work on vec-append. Almost working.
2011-03-06 22:37:14 -08:00
Brian Anderson
d39da6f978
Remove typestate workarounds
2011-03-06 15:13:35 -08:00
Graydon Hoare
138c55a69d
Fix return value on trans_vec_add.
2011-03-06 15:12:33 -08:00
Graydon Hoare
3eb20f3f6e
Correct signatures and arguments associated with call into vec_append_glue.
2011-03-06 12:46:33 -08:00
Graydon Hoare
d97c800e31
Make ret and fail stmts have 0 out-edges, Closes #250 .
2011-03-05 20:05:02 +00:00
Patrick Walton
94b681afe4
rustc: Use copy_ty() when initializing N-ary tag variants. Un-XFAIL generic-tag.rs.
2011-03-04 18:05:48 -08:00
Patrick Walton
1dc6bdf331
rustc: Don't recurse forever if type glue needs to refer to its own type descriptor
2011-03-04 17:22:43 -08:00
Patrick Walton
0aa74828e3
rustc: Remove "translating variants" debug string
2011-03-04 15:15:12 -08:00
Patrick Walton
76ec67063e
rustc: Don't use recursive types for tags; remove tag_info; introduce GEP_tag()
2011-03-04 15:10:22 -08:00
Rafael Ávila de Espíndola
95c0cefd32
Build empty wrappers. This lets us compile hello world, but so far it
...
just returns 0.
2011-03-04 15:29:33 -05:00
Rafael Ávila de Espíndola
2ff67ed94e
Remove unused argument.
2011-03-04 14:53:52 -05:00
Graydon Hoare
652cb48475
Assortment of additional work on vec-append. Not done yet.
2011-03-03 18:18:59 -08:00
Patrick Walton
629eba1d06
rustc: Make tag discriminants per-tag-ID, not per-tag-ID-and-subtypes
2011-03-03 18:15:17 -08:00
Graydon Hoare
b4a85c7b58
Factor out and generalize sequence pointer walking, for use in vec-grow.
2011-03-03 17:36:38 -08:00
Patrick Walton
04a0a6fbef
Revert "rustc: Add support for folding over tag types" as it's unnecessary. Oops.
2011-03-03 17:09:20 -08:00
Patrick Walton
f6682280f3
rustc: Add support for folding over tag types
2011-03-03 16:54:15 -08:00
Patrick Walton
39b0563205
rustc: Remove dead code that used to generate tag constants from trans_constant()
2011-03-03 16:18:43 -08:00
Patrick Walton
f44fea8b6d
rustc: Teach trans_tag_variant() about generic tags
2011-03-03 15:53:36 -08:00
Patrick Walton
2a241ece3a
rustc: Disallow calling type_of() on dynamically-sized types
2011-03-03 14:10:36 -08:00
Patrick Walton
5dba7a77d2
rustc: Don't call type_of() in GEP_tup_like() if there are any type parameters in the result
2011-03-03 14:03:37 -08:00
Rafael Ávila de Espíndola
da8058ff83
Handle native types in calls.
2011-03-03 16:44:15 -05:00
Patrick Walton
fae6870d05
rustc: Make populate_fn_ctxt_from_llself() generic-aware
2011-03-03 11:50:35 -08:00
Patrick Walton
7ab58db4d0
rustc: Use llsize_of rather than size_of in trans_malloc_without_cleanup(). Should put out burning tinderbox...
2011-03-02 18:36:03 -08:00
Patrick Walton
675f762621
rustc: Have make_generic_glue pass an opaque type instead of an incorrect type in the case of dynamically sized types
2011-03-02 18:23:38 -08:00
Patrick Walton
792af12a3c
rustc: Remove unused call to type_of() in trans_tup()
2011-03-02 18:06:53 -08:00
Patrick Walton
ec5c5a750d
rustc: Rework the API for trans_malloc() to be generic-aware and so that clients don't need to call trans_malloc_inner()
2011-03-02 17:31:01 -08:00
Graydon Hoare
dddeba19d3
Sketch out some more pieces of vec-append.
2011-03-02 16:42:19 -08:00
Patrick Walton
5ebb91f24d
rustc: Teach iter_structural_ty about dynamically-sized tuples and records
2011-03-02 16:31:20 -08:00
Patrick Walton
21e42ad88a
rustc: For derived tydescs, explicitly store 0 for size and align when the type in question has a dynamic size
2011-03-02 16:23:14 -08:00
Patrick Walton
c19e4e1c29
rustc: Don't have type_of_arg() rely on the particular lie told by type_of()
2011-03-02 16:15:20 -08:00
Brian Anderson
c1e6f5328c
Make the expanded expression in expr_ext not optional
2011-03-02 10:28:15 -08:00
Brian Anderson
fe5de6bfff
Parse parameter types for fmt extension
2011-03-02 10:28:14 -08:00
Brian Anderson
f1500e5872
Add fold, typecheck and trans for expr_ext
2011-03-02 10:28:14 -08:00
Graydon Hoare
64ab5eaaf0
Parse (and ignore) dtors on objs.
2011-03-01 17:33:17 -08:00
Patrick Walton
9869aebf7d
rustc: Remove the static "size" field from the tag info
2011-03-01 16:58:33 -08:00
Patrick Walton
9d59d33515
rustc: Add in the size of the discriminant to generic_size_of() for tags
2011-03-01 16:49:05 -08:00
Patrick Walton
71f853b3fd
rustc: Add logic for generic tags to dynamic_size_of().
2011-03-01 16:37:17 -08:00
Patrick Walton
bdbaf0c789
rustc: Factor out the align-elements logic in dynamic_size_of()
2011-03-01 16:02:19 -08:00
Graydon Hoare
7f2398e557
Implement structured compare for rec, tup, tag. Un-XFAIL structured-compare.rs.
2011-03-01 13:00:58 -08:00
Patrick Walton
f239ecb5f2
rustc: Switch from storing nullary tags as constants to storing their discriminants
2011-03-01 12:41:41 -08:00
Patrick Walton
8d8b3d985a
rustc: Mark tags that have subtypes with dynamic size as dynamic
2011-02-28 19:07:26 -08:00
Patrick Walton
687d328d7c
rustc: Trivial cleanup: Remove unused "arity" tag
2011-02-28 18:27:50 -08:00
Graydon Hoare
d08f3a1c70
More complete sketch of structural compare. Still not quite working.
2011-02-28 17:49:26 -08:00
Graydon Hoare
1291cc2df9
Groundwork for structural comparison. Still lacking the actual loop that does it.
2011-02-28 16:36:14 -08:00
Patrick Walton
86309ed3ea
rustc: Write tag variant discriminants into the crate as integer constants
2011-02-28 16:09:22 -08:00
Rafael Ávila de Espíndola
a172f5aef5
Declare wrappers to the native functions and use those to create
...
the fn/closure pairs.
Disable native2.rs for now as we are not yet defining the wrappers and it
fails to link.
2011-02-28 17:33:46 -05:00
Rafael Ávila de Espíndola
4ac4d03f0c
Update the function declarations with rust abi. A cdecl
...
fn write(int fd, rustrt.vbuf buf, uint count) -> int;
compiles to
declare i32 @write(i32, i8*, i32)
and a rust
fn vec_buf[T](vec[T] v, uint offset) -> vbuf;
compiles to
declare i8* @vec_buf(%task*, %tydesc*, %"vec[<P0:2>]", i32)
which I think is the correct declaration for both :-)
2011-02-28 10:37:49 -05:00
Patrick Walton
0120571e90
rustc: Make the tag info table keyed by both tag ID and type parameter. Also fix a bug that was causing all tags to compare equal.
2011-02-25 19:42:26 -08:00
Patrick Walton
e37db13b02
rustc: Eliminate the "ty_params" field from the tag info
2011-02-25 18:24:58 -08:00
Patrick Walton
699eb69cc8
rustc: Eliminate the "variants" field from the tag info
2011-02-25 18:16:50 -08:00
Patrick Walton
9c928fcf8c
rustc: Make iter_structural_ty() not use the "variants" field in the tag info
2011-02-25 17:14:48 -08:00
Patrick Walton
b5081a6a82
Add a tag_variant_count() function to trans that doesn't go through the soon-to-be-deprecated tag info table
2011-02-25 16:45:43 -08:00
Patrick Walton
2cd7fbbdf1
rustc: Move all of the logic in type_of() to type_of_inner()
2011-02-25 16:24:19 -08:00
Patrick Walton
6c24d0403b
Revert "rustc: Push type parameters down through alt tag patterns; add a test" due to valgrind failures
...
This reverts commit 7a1d01effc
.
2011-02-25 15:49:35 -08:00
Patrick Walton
69464aae62
rustc: Remove FIXME obsoleted by the previous commit
2011-02-25 13:44:37 -08:00
Patrick Walton
7a1d01effc
rustc: Push type parameters down through alt tag patterns; add a test
2011-02-25 13:44:08 -08:00
Rafael Ávila de Espíndola
081c3aa76d
Pass the abi of native functions all the way to codegen.
2011-02-25 15:58:08 -05:00
Rafael Ávila de Espíndola
f8f6f078c5
There are no native iterators (or at least they are not going to be supported
...
soon.).
2011-02-25 12:08:21 -05:00
Patrick Walton
19b2850388
rustc: Perform type parameter substitutions when emitting glue for generic tags. Un-XFAIL generic-tag.rs.
2011-02-24 19:25:05 -08:00
Patrick Walton
dcd65fac19
Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot.
2011-02-24 14:24:32 -08:00
Patrick Walton
5332250d3b
Revert "Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot." due to test failures
...
This reverts commit 0a65283c5e
.
2011-02-24 13:51:18 -08:00
Patrick Walton
0a65283c5e
Cast more aggressively to the callee type when calling generic functions. Add a test-case for this, and XFAIL it in rustboot.
2011-02-24 12:33:08 -08:00
Patrick Walton
b4d6589e73
Implement type descriptor binding. Un-XFAIL test/run-pass/generic-bind.rs.
2011-02-23 17:08:02 -08:00
Rafael Ávila de Espíndola
ffcb461370
Parse the abi in native modules.
2011-02-23 14:06:37 -05:00
Rafael Ávila de Espíndola
6849abcf7d
Handle the new ty_native_fn in type check.
2011-02-23 11:59:07 -05:00
Patrick Walton
b6f1c832e3
rustc: Perform explicit type substitution as requested by the programmer
2011-02-22 18:33:07 -08:00
Graydon Hoare
d7f7634c95
Drop for-loop temporary at end of scope, fixes memory leak.
2011-02-22 18:07:47 -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
Patrick Walton
01c2761769
Rework typechecking of bind expressions
2011-02-22 15:50:07 -08:00
Rafael Ávila de Espíndola
b389611ce7
Finish the type of native functions. We now get
...
declare i32 @write(i32, i8*, i32)
2011-02-22 17:37:11 -05:00
Graydon Hoare
60f97aa9cc
Find main functions buried within modules. Un-XFAIL import.rs.
2011-02-21 17:42:23 -08:00
Graydon Hoare
b0c7439d77
Implement expr_put. Un-XFAIL foreach-simple.rs; iters w/o env access work.
2011-02-18 18:52:31 -08:00
Patrick Walton
5508c28ff0
Factor out the call typechecking logic so that bind can use it
2011-02-18 18:19:27 -08:00
Graydon Hoare
80c67268fc
Pass correct lliterbody; can compile and run no-put iters.
2011-02-18 18:04:37 -08:00
Graydon Hoare
34c60b6edb
Make a tag for iterness / fnness, teach many places about it.
2011-02-18 17:30:57 -08:00
Patrick Walton
3aba50ff33
Implement Robinson's algorithm for type unification. Closes #227 .
2011-02-18 14:52:33 -08:00
Graydon Hoare
0ddb832a4e
Teach trans and llvm to cooperate on producing tidier diagnostic names in trans.ty_str.
2011-02-17 18:16:51 -08:00
Patrick Walton
10befcd9a4
Add type parameters to tag types
2011-02-17 16:23:31 -08:00
Graydon Hoare
79d3ceaac0
Steps toward implementing iterators.
2011-02-17 12:20:55 -08:00
Rafael Avila de Espindola
07c7888037
Don't add the rust arguments to native functions. We now produce the
...
correct arguments for native functions.
2011-02-16 16:16:11 -05:00
Rafael Avila de Espindola
a63696dfe2
Add a more specialized decl_native_fn_and_pair. Native functions now have
...
the right name.
2011-02-16 15:34:59 -05:00
Rafael Avila de Espindola
293637139f
Add missing case to ty_to_str.
...
Disable test that now fails because we produce undefined references to the
native functions.
2011-02-16 15:00:40 -05:00
Graydon Hoare
f50caa75c2
Wrap long line in last commit.
2011-02-16 11:33:14 -08:00
Rafael Avila de Espindola
012fa69ea5
More typechecking for native types and the needed plumbing in codegen.
2011-02-16 14:02:02 -05:00
Graydon Hoare
d4bf67dde6
Translate record extension.
2011-02-15 18:16:13 -08:00
Graydon Hoare
370c1ad00e
Handle record update in typeck.
2011-02-15 15:07:55 -08:00
Graydon Hoare
7a02798d1b
Change another typestate check to an expr check.
2011-02-15 12:30:09 -08:00
Graydon Hoare
9ae89bd404
Add _mutable unop.
2011-02-15 12:20:30 -08:00
Graydon Hoare
4a72a23171
Add basic front-end support for 'for each' loops.
2011-02-14 18:17:31 -08:00
Graydon Hoare
15a01f5c36
Add basic front-end support for expr_put.
2011-02-14 17:58:32 -08:00
Graydon Hoare
f1f33abdeb
Move all non-decl/non-expr stmts to exprs.
2011-02-14 17:46:28 -08:00
Graydon Hoare
84dd64b6cf
Switch ast.is_call_expr check in trans to non-typestate form.
2011-02-14 16:33:51 -08:00
Graydon Hoare
59bce06a96
Expand expr_rec to take its optional trailing 'with' parameter.
2011-02-14 15:52:38 -08:00
Graydon Hoare
6393a34e6e
Teach typeck about generic tags.
2011-02-14 14:14:28 -08:00
Graydon Hoare
0043f99f83
Teach resolve about ty params on tags.
2011-02-14 13:36:20 -08:00
Brian Anderson
0ebfb8227c
Add support for unsigned binops. Closes #57
2011-02-14 08:31:52 -08:00
Rafael Avila de Espindola
bd56dd9f2a
Add missing case to unify. This gets hello world to codegen.
2011-02-14 11:22:10 -05:00
Graydon Hoare
7446af747d
Translate pat_lit, un-XFAIL alt-pattern-lit.rs for rustc.
2011-02-10 19:40:02 -08:00
Graydon Hoare
c9956a65b4
Teach ty and typeck about pat_lit.
2011-02-10 19:22:30 -08:00
Graydon Hoare
f951b52e91
Add support to pat_lit to fold.
2011-02-10 19:13:47 -08:00
Graydon Hoare
7c25fb5628
Fix bug in trans_field, un-XFAIL two more tests.
2011-02-10 17:33:08 -08:00
Rafael Avila de Espindola
0d27eb1341
Add type checking for native types.
2011-02-10 16:22:08 -08:00
Graydon Hoare
c958eebf5d
Change more of trans to rely on tydescs when dealing with generics.
2011-02-10 15:00:16 -08:00
Graydon Hoare
140d6fd964
Switch "." to "_" in name mangling, makes gdb happier. Also factor out into sep() helper.
2011-02-10 14:59:20 -08:00
Brian Anderson
f17a3421e0
Cleanup for 'be' statement and comments about future typestate
2011-02-10 12:12:10 -08:00
Brian Anderson
378c0087ca
Parse 'be' statement. Pass tailcall tests. No actual tailcalls yet.
2011-02-10 12:12:10 -08:00
Rafael Avila de Espindola
580d527aa2
Add missing fold of native functions.
2011-02-10 14:36:38 -05:00
Graydon Hoare
3d63aa14e0
Handle instantiations where some type parameters remain parameters (eg. derived typedefs).
2011-02-10 11:30:29 -08:00
Graydon Hoare
8c0d35066b
Elide passed-typarams when tydescs are captured. Un-XFAIL generic-obj.rs.
2011-02-09 09:54:58 -08:00
Graydon Hoare
2f25d9c983
Handle subtle view-shift on outptr in generic calls. Can construct generic objs now.
2011-02-08 17:05:53 -08:00
Graydon Hoare
74f71d387e
Overhaul ABI. All retptrs, all the time.
2011-02-08 11:47:53 -08:00
Graydon Hoare
9d576993f3
Add a fixme for last commit.
2011-02-07 14:16:40 -08:00
Graydon Hoare
d7f118135b
Iterate type unification to drive the types a bit further down into the leaves of results with residual vars. Cheap but kinda works.
2011-02-07 14:11:43 -08:00
Rafael Avila de Espindola
3e613c1648
Add native modules to resolve. With this hello world gets to typecheck.
2011-02-07 15:07:27 -05:00
Rafael Avila de Espindola
ff6864aa5c
Fix expressions with paths with more than one element.
2011-02-07 14:57:34 -05:00
Rafael Ávila de Espíndola
57bb9d809b
Parse function declarations.
2011-02-04 11:10:04 -05:00
Graydon Hoare
be97a77be8
Capture typarams into obj, independent of body tydesc.
2011-02-03 14:40:57 -08:00
Graydon Hoare
ce17fe2a90
Attempt to put out burning tinderbox.
2011-02-02 17:49:15 -08:00
Graydon Hoare
c863427b64
Hack to work around apparent LLVM bug?
2011-02-02 16:22:11 -08:00
Graydon Hoare
b37995664b
Store tydesc for whole body, not just fields, in objs and closures. Handles unusual field alignment.
2011-02-02 15:28:11 -08:00
Graydon Hoare
c61ff98985
Handle missing case in linearize_ty_params.
2011-02-02 15:26:16 -08:00
Graydon Hoare
c42a2d2bfb
Change decl_upcall to decl_upcall_glue, more correct name.
2011-02-02 15:25:53 -08:00
Graydon Hoare
8e963f63a8
Add trace and trap helpers to trans for low level diagnostics.
2011-02-02 15:23:49 -08:00
Rafael Ávila de Espíndola
dd3ed6139a
Add most of the plumbing for native items and add support for parsing native type declarations.
2011-02-02 10:43:57 -05:00
Graydon Hoare
f22dc4d581
Fix buggy argument assembly for upcall_get_type_desc. Can now complete calls to glue of derived tydescs.
2011-02-01 18:02:57 -08:00