1259 Commits

Author SHA1 Message Date
Graydon Hoare
70bf54bcac Implement 'else if' 2011-02-01 16:23:48 -08:00
Graydon Hoare
eb16942c1d Use dynamic GEP and silly offset-encoding on tydescs. Successful call into a derived tydesc. 2011-02-01 14:57:03 -08:00
Graydon Hoare
8ef22972db Add ty_type. 2011-02-01 14:56:21 -08:00
Brian Anderson
3fedb18c0a Allow the else part of an expr_if to be either expr_if or expr_block 2011-02-01 00:08:47 -05:00
Graydon Hoare
ef50d0e668 More work on derived tydescs. Can compile simple tests with generic objects. 2011-01-31 18:06:35 -08:00
Graydon Hoare
784b2decf2 Majority of the remaining work for derived tydescs. Not quite working yet. 2011-01-31 15:03:05 -08:00
Graydon Hoare
f9b37c7348 Run cleanups in reverse order. Not presently observable, no dtors. 2011-01-31 12:06:27 -08:00
Graydon Hoare
bf9cebfc06 Fix a bug in linearize and get the captured tydescs type right. 2011-01-28 15:45:13 -08:00
Graydon Hoare
caa5b92985 Pass linearized typarams to make_generic_glue. Steps toward derived tydescs. 2011-01-28 15:28:20 -08:00
Graydon Hoare
ea42911561 Pass tydesc array into type glue fns as first arg. Required for derived tydescs to work. 2011-01-28 14:34:25 -08:00
Brian Anderson
6b7cab3602 Teach rustc to fail 2011-01-28 11:12:57 -08:00
Graydon Hoare
13b7a356f8 Add helper function for derived type descriptors. 2011-01-27 17:07:52 -08:00
Graydon Hoare
ce31b02113 Note issue in comments. 2011-01-27 11:18:40 -08:00
Graydon Hoare
a32d206d27 Implement autoderef in rustc. Un-XFAIL autoderef-full-lval.rs. 2011-01-24 18:03:31 -08:00
Graydon Hoare
2d7c2acf09 Switch from booleans to symbolic tags in a few places. 2011-01-24 15:26:10 -08:00
Graydon Hoare
90e329da6b First cut at translating const items. Support the literal forms at least. Un-XFAIL const.rs. 2011-01-21 12:09:25 -08:00
Graydon Hoare
51542b279f Fix bug in trans_for, un-XFAIL linear-for-loop.rs. 2011-01-21 08:25:13 -08:00
Graydon Hoare
6daec4004a First cut of trans_for. 2011-01-21 07:59:57 -08:00
Graydon Hoare
8bc57fa85e Tweak effect-checking rules in rustboot, remove/rewrite/re-auth impure cases in trans.rs 2011-01-21 07:59:56 -08:00
Graydon Hoare
2c27feb76a M-x indent-region on trans.rs. 2011-01-21 07:59:48 -08:00
Graydon Hoare
9d3ebd6a57 Implement dynamic GEP enough to permit expr_field to work on tup(T,T,T). 2011-01-19 16:29:14 -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
58bf592dcc Fix a couple bugs in parametric returns. 2011-01-17 15:54:52 -08:00
Graydon Hoare
5f591c3767 Allocate and reload retslots. Copy into them on polymorphic returns. 2011-01-17 15:22:45 -08:00
Graydon Hoare
a8be673a9c Whitespace cleanup. 2011-01-17 14:35:57 -08:00
Graydon Hoare
d1fdf0ab23 Teach copy_ty to finish via memcpy of tydesc-provided size. 2011-01-17 13:30:29 -08:00
Graydon Hoare
4b8779ea95 Pass tydescs to parametric fns, along with (dummy, presently) retptr when needed. Can call simple parametric fn now. 2011-01-14 16:50:37 -08:00
Graydon Hoare
c8a2c44a8e Expand generic info in lval_result. 2011-01-14 14:17:57 -08:00
Graydon Hoare
bc416284ac Trim long lines. 2011-01-14 13:59:35 -08:00
Graydon Hoare
b039be1e5c Pass tydescs to parametric fns. 2011-01-14 13:58:19 -08:00
Graydon Hoare
f3c3fc0353 Change single-ident expr_ident to greedy/fat multi-ident expr_path, to handle the module-path/value-indexing distinction. 2011-01-13 17:42:28 -08:00
Patrick Walton
2aa36777f1 Figure out what tydescs we need to pass when translating parametric function calls 2011-01-12 11:05:38 -08:00
Graydon Hoare
3b0e207109 Drop closures. Un-XFAIL bind-interior.rs. 2011-01-07 16:26:30 -08:00
Graydon Hoare
3c61793b5a Synthesize closure thunks, and pass closure pointer into fn calls. 2011-01-07 15:12:23 -08:00
Graydon Hoare
27b4c3f962 Whitespace cleanup, and copy target into closure. 2011-01-06 12:55:27 -08:00
Graydon Hoare
62c79fb216 Sketch closure-forming logic for nontrivial bindings. 2011-01-05 18:57:28 -08:00
Graydon Hoare
f3f63da7c8 Translate trivial bindings. Un-XFAIL bind-trivial.rs. 2011-01-05 16:06:01 -08:00
Graydon Hoare
5d2a6c73ca Use uniform pair representation of functions everywhere, including static functions. 2011-01-05 15:31:35 -08:00
Graydon Hoare
116dd9e338 Correct function pointer type in closure. 2011-01-04 15:29:38 -08:00
Graydon Hoare
cfb97b3393 Begin sketching translation of bind_expr. No captures yet, also crashy. 2011-01-03 22:39:43 -08:00
Graydon Hoare
10a130e6c1 Translate local item decls. 2010-12-31 15:16:11 -08:00
Graydon Hoare
bd536ba85f Free objects by indirectly dropping fields via enclosed tydesc first. 2010-12-31 13:01:45 -08:00
Graydon Hoare
f072718cfe Replace arg Load with load_non_structural in obj ctor. 2010-12-31 12:20:18 -08:00
Graydon Hoare
1f2585f479 Teach trans to access object fields. 2010-12-30 17:01:20 -08:00
Patrick Walton
a634b21563 rustc: Make parametric return types go through an out pointer 2010-12-29 19:08:35 -05:00
Rafael Ávila de Espíndola
2c6dd18224 Add a -shared option to rustc and don't try to look for main if it is given. 2010-12-29 11:21:16 -05:00
Graydon Hoare
5c7cd6419c Modify translation of obj methods to accept an initial recursive-self-typed (in the LLVM sense) obj argument. 2010-12-23 17:31:16 -08:00
Graydon Hoare
3f3a121043 Copy body tydesc and args into obj bodies. 2010-12-22 16:09:59 -08:00
Graydon Hoare
ac270fc854 Allocate heap cells to store non-empty object bodies. 2010-12-22 13:56:51 -08:00