Commit Graph

1470 Commits

Author SHA1 Message Date
Graydon Hoare
a8af013077 Adjust AST encoding, teach fold about linear for loops. 2011-01-20 15:02:12 -08:00
Rafael Ávila de Espíndola
7fdb6437d8 typo 2011-01-20 16:20:45 -05:00
Graydon Hoare
33b342e891 Teach ast and parser about linear for expressions. 2011-01-20 13:11:47 -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
Rafael Ávila de Espíndola
35d53b7eb1 Look at the type params of an item_ty when resolving. 2011-01-19 16:13:33 -05:00
Rafael Ávila de Espíndola
d313e1579b Fold function output and argument types. With this change we fail to compile
type lteq[T] = fn(&T a) -> bool;

with "unresolved name: T". Before we would silently get to the type checker
and assert in a unresolved ty_path.
2011-01-19 15:02:56 -05:00
Graydon Hoare
e8d266c614 Change generic-drop-glue.rs to be meaningful again, and un-XFAIL on rustc. 2011-01-18 17:20:13 -08:00
Graydon Hoare
a0aedd14c7 Twiddle comment. 2011-01-18 17:19:04 -08:00
Graydon Hoare
9cc00d5f6c Fix bug (I think) when unifying ty_local and ty_param. 2011-01-18 17:18:51 -08:00
Rafael Ávila de Espíndola
41b7d6d74d One last refactoring of the import handling:
* Create an import resolving stage. Currently this involves a copy of the ast,
  we can probably revisit this once we revisit doing full copies of the ast in
  general.

* Don't repeat work. Once we resolve a import, put it on a hash table and use
  it next time we are asked for it. This solves a O(n^2) behaviour in
  degenerated cases.

* Once import resolution is done, the target of an import is stored on the
  import itself.
2011-01-18 15:43:13 -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
b86e8115d7 Add Benjamin to AUTHORS. 2011-01-17 18:56:03 -08:00
benjaminjackman
7f4ec2c622 fixed typo in tuple menu label 2011-01-17 18:09:35 -08:00
Graydon Hoare
3a920e7ca8 Fix missing case in ty. 2011-01-17 17:24:47 -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
156e1b363f Make legal and un-XFAIL generic-fn-infer.rs (on both compilers). 2011-01-17 16:03:38 -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
Rafael Ávila de Espíndola
9f3caed8a0 Enable more tests. 2011-01-17 18:13:55 -05:00
Graydon Hoare
a8be673a9c Whitespace cleanup. 2011-01-17 14:35:57 -08:00
Rafael Ávila de Espíndola
58490d7fa0 Fix the last known (to me) bug in import resolution. We were not properly
dropping the inner part of the environment when an intermediate item resolved
in an outer scope.
2011-01-17 13:33:13 -08:00
Graydon Hoare
d1fdf0ab23 Teach copy_ty to finish via memcpy of tydesc-provided size. 2011-01-17 13:30:29 -08:00
Rafael Ávila de Espíndola
57b281533d Some misc cleanups:
* Remove unused argument
* Move option.t wrapping to outer functions.
2011-01-17 14:58:18 -05: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
d55bee4417 Further corrections to the logging layer in runtime. 2011-01-14 16:50:37 -08:00
Rafael Ávila de Espíndola
5b9eda4a41 Fix the import handling in "complex" cases. When looking a.b.c and 'a' is a
module, we should look for 'b' *just* in the module 'a' and then continue
resolving b.c in the environment created by updating *with* a.

Still not 100% correct, but getting there.
2011-01-14 17:34:00 -05: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
fe1a4ab23c Change log buffer butes to a symbolic const in runtime. 2011-01-14 13:41:39 -08:00
Rafael Ávila de Espíndola
bdcb9d9b53 Make lookup non recursive and instead move the recursion just to
find_final_def. Use the fact that the recursion is in a simpler function to
detected import loops and exit.
2011-01-14 11:10:06 -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
Rafael Ávila de Espíndola
3722326cd7 Add or enable some tests. 2011-01-13 18:52:06 -05:00
Graydon Hoare
4ccdece184 Wrap long line. 2011-01-12 15:13:37 -08:00
Graydon Hoare
19e70d76fc Guard a bunch more logging calls. Cut 10s off rustc compile time. 2011-01-12 14:49:35 -08:00
Rafael Ávila de Espíndola
c1f2e29596 Produce better errors for invalid imports. 2011-01-12 12:27:31 -08:00
Rafael Ávila de Espíndola
c489abedb4 Call find_final_def directly in fold_view_item_import. It is both cleaner and
faster.
2011-01-12 12:26:59 -08:00
Rafael Ávila de Espíndola
359d72b4d0 Change mod_index_entry to point directly to items and view_items. 2011-01-12 12:26:23 -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
59c9e6caff Guard unguarded log calls that snuck in. Shave 5s off building rustc. 2011-01-11 18:30:22 -08:00
Graydon Hoare
b81aa05fa1 Recursively genericize types and spread across glue. Saves 1mb size, 8s compile time on rustc. 2011-01-11 17:58:03 -08:00
Graydon Hoare
f5bf8d074b Out-of-line all drop glue. Shaves 50kb from rustc. 2011-01-11 16:45:29 -08:00
Graydon Hoare
5e9279586b Make rustboot fn/obj drops generic; cuts 300kb size, 10s compile time off rustc. 2011-01-11 16:25:18 -08:00
Rafael Ávila de Espíndola
34643eeac8 Fix another import case we got wrong: The local environment should not
interfere with the import statements.
2011-01-11 13:59:52 -08:00
Rafael Ávila de Espíndola
c5a766f133 Fix two invalid import cases we were not detecting:
* If an import was unused we would never print any errors for it.
* We would keep the existing environment in scope when descending 'foo.bar'
  and would find 'bar' in the global environment if there was no 'bar' in
  'foo'.
2011-01-11 13:58:39 -08:00
Graydon Hoare
a8eeec1dbd Sketch support for reading multi-file crates in rustc. Add test, not yet working. 2011-01-10 18:18:16 -08:00
Graydon Hoare
11cbbcf79e Add std.path module for pathname manipulations. 2011-01-10 18:17:24 -08:00
Graydon Hoare
b000bfeedc Fail in new_stdio_reader when libc.fopen fails. 2011-01-10 18:16:57 -08:00
Graydon Hoare
e96414a6f0 Further corrections to the Makefile rules covering failing tests. 2011-01-10 14:53:20 -08:00
Brian Anderson
9e5f6d3977 Cleanup circular_buffer 2011-01-10 11:31:33 -08:00