383 Commits

Author SHA1 Message Date
Graydon Hoare
bc646d01c5 Fix leaking arg slots on tail calls. Closes #160. 2010-09-13 13:37:24 -07:00
Graydon Hoare
67aa39e1ef Fix a leak when box types are used via type descriptors. 2010-09-12 01:05:56 -07:00
Graydon Hoare
79dc07d648 Use hashtable rather than bitset for vreg constraints in ra; speeds compilation. 2010-09-09 18:56:51 -07:00
Graydon Hoare
a9e2327a18 Switch tags to purely nominal, removing TY_iso and TY_idx. Seems to mostly work, possibly a little bumpy. Changes a lot. 2010-09-09 15:59:29 -07:00
Patrick Walton
2172a3bcf4 First lame stab at solving the diamond import problem 2010-09-08 15:38:39 -07:00
Michael Bebenita
de611a3090 Lots of design changes around proxies and message passing. Made it so that domains can only talk to other domains via handles, and with the help of the rust_kernel. 2010-09-07 18:44:12 -07:00
Patrick Walton
ffdb5fc858 Initial support for a global crate metadata cache 2010-09-07 16:35:21 -07:00
Roy Frostig
5e5112dac6 Recursively drop a type's parts if the type uses any typarams, since those typarams may represent types that actually require dropping. 2010-09-07 00:54:23 -07:00
Roy Frostig
4e355aebf7 When vec growth results in a newly allocated (extended) buffer, copy existing elements over via element-wise copy, not flat memcpy. Introduce new vec growth glue to achieve this. 2010-09-03 16:18:32 -07:00
Roy Frostig
1eb2a8b10b Assert to insure that the worst-case glue-call arg count is not exceeded unless allowed to. 2010-09-03 16:03:13 -07:00
Roy Frostig
1fa978ebb9 Fail a bit more informatively on a bad get_element_ptr_dyn. 2010-09-03 15:07:58 -07:00
Graydon Hoare
b90e6b93c1 Whitespace churn. 2010-08-31 14:36:51 -07:00
Roy Frostig
9481907211 Make pattern-alt drop the slots it initializes when binding slot patterns. Undoes most of the hackiness in 5e77e784f006e36c06252d9beccbd7893eddac73 and replaces it with a more proper fix. 2010-08-27 17:30:26 -07:00
Roy Frostig
5e77e784f0 Have alt-pattern drop the slots it initializes when binding slot patterns. Add a testcase for this as well. 2010-08-27 13:29:53 -07:00
Patrick Walton
88c9759347 Read definitions of tag types in the DWARF 2010-08-27 11:46:59 -07:00
Patrick Walton
1c0c242d0a Zero-length tuples can show up in tag types. Don't forbid them when reading in the DWARF. 2010-08-27 11:46:59 -07:00
Roy Frostig
aa30304328 Simplify null-writing from commit 8559a85ccacf70c51d93759b47a3880ae818b247 so as to avoid a branch. 2010-08-26 18:55:53 -07:00
Patrick Walton
07095a3ef9 Encode tag names in the DWARF 2010-08-26 17:48:52 -07:00
Graydon Hoare
7cfa7bdd23 Make vreg constrs per-quad, regfence on nontrivial constrs, back out workaround to _uint, add regression test. Closes #152. 2010-08-26 16:27:47 -07:00
Patrick Walton
a7eeeb596a Add automatic parameter instantiation. Closes #45. 2010-08-26 14:47:18 -07:00
Roy Frostig
8559a85cca When copying function values, null out the destination's binding iff the source's binding is null. 2010-08-26 14:44:11 -07:00
Graydon Hoare
ee04c0236c Add check to catch bug underlying issue #152. Fix will take longer. 2010-08-26 14:32:47 -07:00
Patrick Walton
de5c6f111c Add a "param handler" to demand_fn for use in automatic type parameter instantiation 2010-08-26 11:22:00 -07:00
Patrick Walton
ff9ecc1128 Tiny style cleanup in a pattern match in type.ml 2010-08-26 11:20:55 -07:00
Patrick Walton
09417f81aa Typecheck function patterns 2010-08-25 18:36:49 -07:00
Roy Frostig
6b053f24c7 Insure bools remain 0x1 or 0x0 by having boolean-NOT not just be a simple bit-NOT. 2010-08-25 17:17:14 -07:00
Graydon Hoare
2c8ae5ca8d Add element to closure to hold captured tydesc (not body tydesc). 2010-08-25 16:36:18 -07:00
Graydon Hoare
91d640f90f Merge obj-drop and closure-drop code, handles freeing bound exteriors now. 2010-08-25 16:21:50 -07:00
Graydon Hoare
8e0f486ea6 First pass of updating the in-memory layout of closures, for issue 81. 2010-08-25 14:42:28 -07:00
Graydon Hoare
b2b72a08db Janitorial work on obj box / body / field terminology, following froystig's brave lead. 2010-08-25 12:08:05 -07:00
Graydon Hoare
af6e1d2c2b Fix ghastly typestate bug breaking nested functions. 2010-08-25 12:08:05 -07:00
Patrick Walton
a48c382549 Introduce "type patterns" to the typechecker in preparation for function type-param inference 2010-08-25 11:16:29 -07:00
Roy Frostig
2b9a48b9c9 Obj ctors are not obj fns so translate their frame entry as such. 2010-08-25 10:27:17 -07:00
Graydon Hoare
9ea37bd47b Fix residual nonsense of storing crate-rel displacements in a closure pair (made it impossible to pass between crates, of course). 2010-08-24 17:09:03 -07:00
Patrick Walton
1b117f936d Remove obsolete TODO about checking for return statements 2010-08-24 16:11:43 -07:00
Graydon Hoare
de6535c1c2 Elide preempt check on thunk and ctor frames. Wins 8kb on rustc. 2010-08-24 11:57:51 -07:00
Graydon Hoare
8d787d1e08 Avoid emitting unnecessary frame glue. Wins a couple hundred kb of rustc. 2010-08-24 11:45:48 -07:00
Graydon Hoare
87c9a9e25d Avoid iterating ty parts on drop when there are no heap pointers in ty. Wins several tens of kb on rustc. 2010-08-24 11:44:14 -07:00
Graydon Hoare
b5255b4534 Shrink size of glue calls. Wins a few tens of kb on rustc. 2010-08-24 11:42:24 -07:00
Graydon Hoare
10316fbfa5 Make error reporting slightly more regular. 2010-08-24 09:58:26 -07:00
Graydon Hoare
6e3a77c3a3 Merge remote branch 'tohava/master'
Conflicts:
	src/boot/fe/ast.ml
2010-08-23 18:19:42 -07:00
Patrick Walton
ed92925083 Warn when the value of "spawn" is unused, as it's useless 2010-08-20 17:15:27 -07:00
Or Brostovski
0830b5bf24 Modified parser to handle alt type andadded a few tests
ast.ml - modified arm types for easier polymorphism
       - fixed a bug in fmt_type_arm
dead.ml - modified arm types for easier polymorphism
common.ml - added 'either'
          - added some useful auxiliary functions
item.ml - modified arm code to be more polymorphic and handle both alt-tag and alt-type, also fixed the problematic case in bad-alt.rs
Makefile - added XFAIL for new alt-type test
bad-alt.rs - added test for invalid alt syntax
alt-type-simple.rs - added simple test for alt type
2010-08-21 02:41:43 +03:00
Graydon Hoare
5f9750ca2c Modify session to report errors in an emacs-parser-friendlier way. 2010-08-20 11:42:44 -07:00
Graydon Hoare
ddd8feea31 Support single-element append on vec, str. Closes #44. 2010-08-20 09:58:22 -07:00
Graydon Hoare
b34cb1b631 Fix a bunch of typestate bugs in handling if and while statement wirings. 2010-08-19 18:42:32 -07:00
Patrick Walton
b6b348a13c Export all item code to stabs on Windows (including e.g. object methods) 2010-08-19 16:50:18 -07:00
Patrick Walton
31aceda09e Export glue as stabs on Windows as well 2010-08-19 16:15:37 -07:00
Patrick Walton
09ebda7ce5 Add some mangled stabs to help debugging on Windows 2010-08-19 15:38:57 -07:00
Graydon Hoare
9277f551d3 Add support for casting native types. 2010-08-18 00:18:46 -07:00