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 7a1d01effcfa5763bc62aefba40f67ad2130d28d.
2011-02-25 15:49:35 -08:00