2745 Commits

Author SHA1 Message Date
Graydon Hoare
467a628ffa Add the single instruction required in activate glue to fix burning darwin tinderbox. And transplant 100 lines of comments from the ML code. 2011-02-08 18:09:50 -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 Avila de Espindola
8122e0c542 Add support for
native mod foo = "bar" ...
2011-02-07 12:50:04 -05:00
Rafael Ávila de Espíndola
57bb9d809b Parse function declarations. 2011-02-04 11:10:04 -05:00
Rafael Ávila de Espíndola
302cafa81d Factor the parsing of "type foo" into parse_type_decl. 2011-02-04 09:46:10 -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
Rafael Ávila de Espíndola
4b06dc574b Add very minimal support for native modules. For now they must be empty. 2011-02-01 16:57:33 -08:00
Graydon Hoare
b3689e7c20 Pick up case for expr_block from brson's other branch. 2011-02-01 16:26:49 -08:00
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
Brian Anderson
c848ed1e98 Merge branch 'master' into forgraydon-elseif 2011-01-31 20:27:38 -05: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
Brian Anderson
214c32393a Teach rustc to parse 'else if' 2011-01-30 14:15:22 -05: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
Rafael Ávila de Espíndola
3cac20dae3 Correctly handle "import foo = bar.zed;". 2011-01-28 11:54:59 -05:00
Graydon Hoare
13b7a356f8 Add helper function for derived type descriptors. 2011-01-27 17:07:52 -08:00
Rafael Ávila de Espíndola
a2081deb2d Simplify and fix the resolution of expr_path. With this we now get to codegen
in
-------------------
type foo = rec(int a);
mod m1 {
  mod m2 {
    const foo bar = rec(a = 4);
  }
}
fn main(vec[str] args) {
  log m1.m2.bar.a;
}
-------------------
2011-01-27 16:51:41 -05:00
Rafael Ávila de Espíndola
c170e7edfd Resolve type paths. 2011-01-27 16:39:31 -05:00
Rafael Ávila de Espíndola
21208f2343 Handle paths correctly. This lets us handle one more test :-) 2011-01-27 15:56:10 -05:00
Rafael Ávila de Espíndola
5066937f10 First step for supporting "case (foo.bar(?zed))": Change the ast of
pat_tag to hold a path.
2011-01-27 15:27:56 -05:00
Rafael Ávila de Espíndola
56441e19d1 Correctly split a.b.c into its path and field access components. 2011-01-27 11:19:02 -08:00
Graydon Hoare
ce31b02113 Note issue in comments. 2011-01-27 11:18:40 -08:00
Graydon Hoare
0499d4ac29 Update various README files in the tree. 2011-01-26 16:00:19 -08:00
Graydon Hoare
5b857da15f Change rustc warning to be a little less dismissive. 2011-01-26 13:51:29 -08:00
Graydon Hoare
596a97cf70 Teach typeck to handle obj item names when used as type names, not just constructor calls. 2011-01-26 11:35:30 -08:00
Rafael Ávila de Espíndola
1b82060c5e Print an error if we try to refer to a module in an expr_path. 2011-01-25 18:16:52 -05:00
Rafael Ávila de Espíndola
9e2324ad1e Small first step in expr_path. Call find_final_def just to detect
unresolved names. find_final_def is going to be extended to return the
final expr.
2011-01-25 17:54:38 -05:00
Graydon Hoare
a32d206d27 Implement autoderef in rustc. Un-XFAIL autoderef-full-lval.rs. 2011-01-24 18:03:31 -08:00
Graydon Hoare
0e1e3a9e1e Do better at parsing expr_paths with type arguments. 2011-01-24 15:49:39 -08:00
Graydon Hoare
2d7c2acf09 Switch from booleans to symbolic tags in a few places. 2011-01-24 15:26:10 -08:00