Commit graph

913 commits

Author SHA1 Message Date
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
8b82a549bf rustc: When encountering "mutable" as a tycon, parse it, drop it on the floor, and emit a warning 2011-03-18 13:44:54 -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
ed96688be5 rustc: Typo: mutabliity -> mutability 2011-03-17 16:39:10 -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
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
e65e1716a7 Revert 6fdb81fa17, it is causing failures in
the bots.
2011-03-16 11:46:51 -04: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
1d8b0e8f8a rustc: Remove the memory-managed interface to LLVM memory buffers; passing them around transfers ownership 2011-03-15 18:08:30 -07:00
Patrick Walton
6fdb81fa17 rustc: Open "use"d crates with the LLVM object file reader 2011-03-15 18:05:29 -07: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
Patrick Walton
7d32f3d052 rustc: Add a stub crate reader module for "use" directives 2011-03-15 16:30:43 -07:00
Patrick Walton
bb081d6611 rustc: Typo: "unput" -> "input" 2011-03-15 15:07:41 -07:00
Patrick Walton
736969f9fe rustc: Add support for LLVM memory buffer creation via a wrapper function 2011-03-15 14:58:11 -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
73f4728182 Append 'svn' to version in dll name, hopefully to bring win32 up again. 2011-03-15 12:55:23 -07:00
Patrick Walton
b07634f212 rustc: Add Rust bindings to the LLVM object file library 2011-03-15 12:27:48 -07:00
Graydon Hoare
316158df8e Bump LLVM version strings to 3.0svn, we're effectively tied to it now anyways. 2011-03-14 17:33:06 -07: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
f0842030f3 Fix typo in expr_recv parsing 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
Brian Anderson
292dac644f Parse receive expressions 2011-03-14 16:41:46 -07:00
Brian Anderson
80e0ebaa86 Parse port and chan types, constructors, send statements 2011-03-14 16:41:46 -07:00
Marijn Haverbeke
77f4c52c3e Make pretty-printer print 'with' clause in rec literals 2011-03-14 14:57:13 -07:00
Marijn Haverbeke
441697ab35 Extend stream functionality
Writer and reader streams now come with methods to write and read
little-endian numbers. Whether that is the right place for such
methods is debatable, but for now, that's where they live.
2011-03-14 14:57:13 -07:00
Marijn Haverbeke
c731d625fe Add basic file-system functionality
std.fs.list_dir will list the files in a directory, std.fs.file_is_dir
will, given a pathname, determine whether it is a directory or not.
2011-03-14 14:57:13 -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
Rafael Ávila de Espíndola
4ca0259b20 Update the current id when we create sub parsers. 2011-03-10 17:36:41 -05: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
0d3cec71a3 Fix eval typo (caught by Martin Hock). 2011-03-10 10:17:10 -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
ec22fe9733 Add ty_obj case to pretty printer 2011-03-09 16:15:58 -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
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
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
51be50490e rustc: Expose common.def_eq(). 2011-03-08 11:59:38 -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
5aabe7e84f Add partial pretty-printing for syntax extensions 2011-03-07 22:06:26 -05:00
Brian Anderson
fa2525a7bd Remove old pretty-printer from rustc 2011-03-07 22:06:07 -05:00
Brian Anderson
5ba012f4a5 Add missing alt arm to expr_if pretty-printer 2011-03-07 22:05:55 -05: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
df3038e68b Parse opacity (and drop on the floor), so std.rc parses now. 2011-03-07 15:38:20 -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
dfa85968c3 Stage the last compile fix to put out fire. Thanks git. 2011-03-07 10:33:04 -08:00
Graydon Hoare
44bceb84a7 Complain on unexpected native symbol, rather than failing with none-exhaustive match. 2011-03-07 10:02:01 -08:00
Marijn Haverbeke
1ce6cfbe7c use a precedence table for operator parsing 2011-03-07 15:32:11 +01: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
Brian Anderson
b893bec4bb Flatten conditionals in rustc.rs. Remove FIXME 2011-03-06 15:13:32 -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
Graydon Hoare
596face274 Parse (and generally ignore) constraints and constrained types. 2011-03-04 14:19:48 -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
02dff96b52 Parse meta directives in crates. 2011-03-04 11:28:40 -08: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
Brian Anderson
5876da00cf Remove some erroneous FIXMEs from #fmt parser 2011-03-02 22:05:19 -05: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
Graydon Hoare
fc722b17c9 Comment-out some logging chatter in extfmt. 2011-03-02 13:53:08 -08:00
Graydon Hoare
9e4943c922 Parse, add to AST, and otherwise ignore 'export' view items. Need to add support to resolve. 2011-03-02 13:50:42 -08:00
Brian Anderson
012c2d18d0 Finish #fmt string parsing. Completely untested. 2011-03-02 10:28:15 -08:00
Brian Anderson
4bc9052e13 Add debug logging for #fmt conv. Implement peek_num fn 2011-03-02 10:28:15 -08:00
Brian Anderson
77a0dc06a7 Whitespace cleanup 2011-03-02 10:28:15 -08:00
Brian Anderson
dbd90996ee Remove unused is_ext_expr 2011-03-02 10:28:15 -08:00
Brian Anderson
c1e6f5328c Make the expanded expression in expr_ext not optional 2011-03-02 10:28:15 -08:00
Brian Anderson
7cef1b3a0f Add pretty printing for expr_call, expr_path, and more literals 2011-03-02 10:28:14 -08:00
Brian Anderson
41a043303a Remove debug logging from extfmt 2011-03-02 10:28:14 -08:00
Brian Anderson
61edf544a2 Implement #fmt conversion for int and uint 2011-03-02 10:28:14 -08:00
Brian Anderson
f9144d5972 Start generating AST nodes for #fmt 2011-03-02 10:28:14 -08:00
Brian Anderson
1badf9316a Begin an AST pretty-printer 2011-03-02 10:28:14 -08:00
Brian Anderson
5e06ec977f Rewrite expand_syntax_ext to avoid a mysterious memory leak 2011-03-02 10:28:14 -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
Brian Anderson
1c60399257 Begin work on #fmt parsing 2011-03-02 10:28:14 -08:00
Brian Anderson
9528c34774 Begin implementing #fmt in rustc 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
Graydon Hoare
7cae0c8c4d Implement the gross rustboot hack for contextual parser access to the compilation environment. 2011-03-01 16:50:32 -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
348c77c31b Populate default compilation environment as in rustboot. 2011-03-01 15:57:55 -08:00
Graydon Hoare
0761c5f462 Fix typo in comment. 2011-03-01 15:13:50 -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
Graydon Hoare
7a6ac1c000 Fix typo in crate directive evaluator. 2011-02-25 15:43:50 -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