Commit graph

  • abfeefc662 Relax alias-analysis pass to permit literal-aliasing. Graydon Hoare 2010-07-01 17:10:30 -07:00
  • bcc7ec18b8 Remove the catch-all in type.ml, add cases for every stmt (a couple more handled; mostly still stubs). Graydon Hoare 2010-07-01 16:56:39 -07:00
  • 9138438620 Convey auto-deref judgments made in typechecker to trans layer; control the decision in one place. Graydon Hoare 2010-07-01 15:59:29 -07:00
  • 90b36dcd26 Correct overzealous bulk-edit to LLVM code. Graydon Hoare 2010-07-01 15:26:00 -07:00
  • 2122b59ea2 Some work on teaching trans to differentiate between auto-deref and explicit-deref contexts. Graydon Hoare 2010-07-01 13:20:57 -07:00
  • ef61c458fa Add more logging to copy/init paths. Graydon Hoare 2010-07-01 11:11:34 -07:00
  • bb3aad72c4 Remove redundant indirection-function. Graydon Hoare 2010-07-01 11:11:07 -07:00
  • a7016ade65 Implement STMT_init_box in trans, clean up some of the semant table-accessors. Graydon Hoare 2010-07-01 10:44:27 -07:00
  • 8acb2cf47d Add STMT_init_box to typestate pass. Graydon Hoare 2010-07-01 10:14:38 -07:00
  • a61e85ca34 Simplify types before analyzing call structure; 2 more tests compile. Graydon Hoare 2010-07-01 10:09:04 -07:00
  • a0c9d4fe9a Strip out over-aggressive pagination in manual. Graydon Hoare 2010-07-01 09:37:28 -07:00
  • 8bf6ae99f4 I lied; ObjC 2.0 did not actually pick up CLU/Sather iterators. They've been dormant since the 90s. Sigh. Graydon Hoare 2010-07-01 09:37:06 -07:00
  • 0bc1ad60ef Union is a more familiar term than sum. Graydon Hoare 2010-07-01 09:36:22 -07:00
  • cb04275afa Add machine-dependent 'float' type. Graydon Hoare 2010-07-01 09:35:48 -07:00
  • afc0dc8bfc Fix lexer's definition of numeric literals. Graydon Hoare 2010-07-01 09:03:47 -07:00
  • 3aaff59dba Describe numeric and textual literals better; clean up lexeme descriptions a bit. Graydon Hoare 2010-07-01 09:00:47 -07:00
  • aa614d5280 Modify manual to reflect new box/local terminology and new slot/type roles for box and mutable. Graydon Hoare 2010-07-01 01:13:42 -07:00
  • 5a07e98c5d Fix two bugs in tag patterns: 1. Look up the tag constructor function item using lval_item, not lval_to_referent; 2. Correct the form of the name used to query the tag or iso ty_tag when obtaining the corresponding type tuple. Roy Frostig 2010-07-01 00:09:11 -07:00
  • 6a0b06e562 Rename 'exterior' to 'box' and 'interior' to 'local' (at least wrt. slots; keep MEM_interior for describing interior-parts-of-allocations) Graydon Hoare 2010-06-30 22:45:54 -07:00
  • 8b8186db87 No more "transplant" behavior in "let @x = y", gotta box explicitly. Graydon Hoare 2010-06-30 21:17:45 -07:00
  • e460da3889 Auto-deref on lval-ext terms (x.y == x->y, if you like) Graydon Hoare 2010-06-30 21:16:13 -07:00
  • 0b252a96b1 De-duplicate code in get_resolved_ty, make recursive, add a case for tup. Graydon Hoare 2010-06-30 21:01:28 -07:00
  • d2e7c1a5dc Add two move variants of "acceptable mismatches to recover from" when the mut_ok or ext_ok flags are set. Graydon Hoare 2010-06-30 21:00:57 -07:00
  • edfcd3a723 Add relaxed init-context in which we're willing to auto-deref. Graydon Hoare 2010-06-30 21:00:09 -07:00
  • f6fda46020 Add TYSPEC_mutable, merge control-flag for it and auto_deref into unify_ctx structure. Graydon Hoare 2010-06-30 19:45:40 -07:00
  • cab674447f Make type-cast decisions based on simplified types. Graydon Hoare 2010-06-30 19:30:12 -07:00
  • 4765d1e358 Fix another type bug I introduced yesterday; found through wondrous logging technology. Graydon Hoare 2010-06-30 15:26:34 -07:00
  • 335053eb68 Improve logging in type. Graydon Hoare 2010-06-30 15:25:24 -07:00
  • 77cf4a880c Pick out error in type due to delightfully clear logging. Graydon Hoare 2010-06-30 15:16:37 -07:00
  • 4cd49c0ab0 Improve logging in type.ml, give it indentation and per-statement context. Graydon Hoare 2010-06-30 15:13:29 -07:00
  • b450838c46 Fix recently-broken lval formatter. Graydon Hoare 2010-06-30 15:12:42 -07:00
  • 6c3a2491d8 Add support for parsing COMP_deref lval components (*foo). Graydon Hoare 2010-06-30 14:51:36 -07:00
  • 9fb3e128da Fix formatting string. Graydon Hoare 2010-06-30 14:51:03 -07:00
  • 0ac6be85a9 Add a COMP_deref to lvals for explicit-derefs, modify typechecker to implicitly deref in only *some* contexts. Graydon Hoare 2010-06-30 12:39:11 -07:00
  • 8e4a10790f rewrite 'mutable &' as '& mutable', corresponding to grammar shift. Graydon Hoare 2010-06-30 02:30:17 -07:00
  • e828b2a94d Tidy up (I think) a couple typos from patrick's last commit. Graydon Hoare 2010-06-30 01:45:36 -07:00
  • df0eebcf1e Improve error message. Graydon Hoare 2010-06-30 01:42:40 -07:00
  • 5a8d93c652 Remove redundant (and misnamed) function "without_exterior" in trans. Graydon Hoare 2010-06-30 00:58:15 -07:00
  • d796673c11 Reimplement backup scheme for handling lvals not yet resolved by typechecker. Graydon Hoare 2010-06-30 00:57:28 -07:00
  • 8120a59097 Init the exterior ty, not the inner ty. Graydon Hoare 2010-06-30 00:56:44 -07:00
  • 6ee16b588d Fix error-message typo. Graydon Hoare 2010-06-30 00:55:53 -07:00
  • 992f344c83 Use simplified_ty in effect. Graydon Hoare 2010-06-30 00:55:27 -07:00
  • 7e853457df Move simplified_ty from trans to semant and use it a few places. Graydon Hoare 2010-06-30 00:55:04 -07:00
  • 861423989d Add logging to type and effect. Graydon Hoare 2010-06-30 00:53:33 -07:00
  • 2a1d88ae00 Fix exterior formatter. Graydon Hoare 2010-06-30 00:52:52 -07:00
  • 7d076bcaa0 Get compiler to the point of building std.rc and rustc.rc. Graydon Hoare 2010-06-30 00:07:37 -07:00
  • 675f90eca3 Handle constrained types in type.ml while we're at it. Graydon Hoare 2010-06-30 00:07:05 -07:00
  • fc1b86e1ca Wrap long lines. Graydon Hoare 2010-06-30 00:06:31 -07:00
  • c2d4c1116f Teach the typechecker about the auto-dereference and auto-promote-to-mutable semantics we're going with Patrick Walton 2010-06-29 19:53:24 -07:00
  • f05fc6b9d7 Different, not quite correct yet, but I think slightly closer to correct, approach to convincing the typechecker to get along with this new type grammar. Graydon Hoare 2010-06-29 18:25:16 -07:00
  • 2a00a61ef3 Thread a 'simplification' flag through unifier, attempt to strip off layers of ignorable types when simplification is permitted. Graydon Hoare 2010-06-29 16:46:07 -07:00
  • e692ccfb0c Add (XFAILed) testcase for typechecker issue where fns-in-mods appear to lose their type parameters over the course of the typechecking pass. Roy Frostig 2010-06-29 16:13:26 -07:00
  • 7b11a52a37 Update LLVM translation to match changes to slot and ty. Graydon Hoare 2010-06-29 14:06:50 -07:00
  • 17c293bbaa Merge branch 'master' of git@github.com:graydon/rust Graydon Hoare 2010-06-29 12:06:18 -07:00
  • 1f9fd2710e Initial stab at lowering mutable and exterior into the type system. Graydon Hoare 2010-06-29 12:00:15 -07:00
  • ffdcd67c25 Fix underlying failure to signal errors when dep'ing. Graydon Hoare 2010-06-29 10:32:11 -07:00
  • 0ad7468ff2 Revert "Improve makefile to try to avoid wedging on failure-to-dep lib/std.rc" Graydon Hoare 2010-06-29 10:30:36 -07:00
  • 3bc263f102 Improve makefile to try to avoid wedging on failure-to-dep lib/std.rc Graydon Hoare 2010-06-29 10:25:25 -07:00
  • 0d6aaec493 Work-around and un-XFAIL generic-obj.rs test. The problem uncovered in the original XFAIL is more generally that of issue #92. Roy Frostig 2010-06-29 00:48:49 -07:00
  • 023e5af639 The few and proud isolated bits from stdlib-work so far that don't break everything. Note util.rs hasn't yet been declared mod in the std crate. Don't do that yet, as it breaks make check. Roy Frostig 2010-06-28 23:18:51 -07:00
  • d94f0e2498 Add a NO_VALGRIND override mechanism to makefile, if you want day-to-day builds to cycle faster on linux. Graydon Hoare 2010-06-28 22:29:17 -07:00
  • d5ff6e133c Add to generic-obj.rs testcase a method that takes an argument of the object type-param type. XFAIL the test since it no longer passes. Roy Frostig 2010-06-28 21:45:48 -07:00
  • 5b5b334c24 Testcase (XFAILed) for fn item given as lval. Roy Frostig 2010-06-28 21:18:09 -07:00
  • 329a65530f Canonicalize hashtables after running them through htab_map. Closes #77. Graydon Hoare 2010-06-28 19:24:04 -07:00
  • bd059a354d Whitespace. Graydon Hoare 2010-06-28 19:21:09 -07:00
  • 5abc483d9a Move more of the GC logic into the runtime. Graydon Hoare 2010-06-28 18:53:16 -07:00
  • a27cbd4ee8 Testcase (XFAILed) for mutable alias vec weirdness. Roy Frostig 2010-06-28 16:36:24 -07:00
  • 66d313d365 Teach the typechecker that uints are integral types. Closes #88. Roy Frostig 2010-06-28 15:27:05 -07:00
  • d608c09168 Some fixme-to-issue housekeeping. Graydon Hoare 2010-06-28 09:39:43 -07:00
  • e1f6749f9a Once more with feeling. Closes #13. Graydon Hoare 2010-06-27 20:54:33 -07:00
  • 8815c02005 Previous commit closes #13. Trying to convince github of that fact automagically. Graydon Hoare 2010-06-27 20:53:07 -07:00
  • 1316312c0c Only translate or dwarf-emit items or stubs locally defined or used. Avoids instantiating O(sizeof(standard-library)) worth of imports stubs on each 'use std'. Closes issue 13. Graydon Hoare 2010-06-27 20:48:28 -07:00
  • 7045526a3e Change slot_mem_ctrl to classify vec[state] as GC mem. Breaking / XFAILing mutable-vec-drop.rs test. Graydon Hoare 2010-06-27 13:53:23 -07:00
  • fb3e2fa4bf Encode tag and iso types at dwarf level. Can't decode them yet. Graydon Hoare 2010-06-27 13:48:25 -07:00
  • 7ea416f4c3 Add callable gc method exposed to user code, use it in mlist-cycle.rs test (still not quite working; some memory corruption in the recursive tag constructors, not the GC) Graydon Hoare 2010-06-25 23:57:30 -07:00
  • 9236ad2846 Further attempts to convince mem_ctrl to be sane. Graydon Hoare 2010-06-25 23:55:36 -07:00
  • 50e96414d2 Fix register-use bugs in sweep pass, factor sweep pass out and call twice for separate sever/free phases. Graydon Hoare 2010-06-25 23:07:34 -07:00
  • 90eaaf666b Improve sever_slot logging. Graydon Hoare 2010-06-25 23:03:06 -07:00
  • 49ac5e6312 Fix copy-paste error in logging function. Graydon Hoare 2010-06-25 23:02:19 -07:00
  • 37426e42cf Add sever-glue, for missing first stage of sweep. Graydon Hoare 2010-06-25 21:57:46 -07:00
  • 0cf3c2ad93 Pass type parameters to free function called from sweep loop. Graydon Hoare 2010-06-25 21:20:32 -07:00
  • 3718055276 Align emitted DATA_* elements -- tydescs in particular -- to 16 byte boundaries, so we can get our tag bit freed up. Graydon Hoare 2010-06-25 20:47:16 -07:00
  • dd2716f56c Fix bad register use in GC sweep pass. Graydon Hoare 2010-06-25 20:46:11 -07:00
  • 968ec14527 Fix marking logic. Graydon Hoare 2010-06-25 19:56:29 -07:00
  • 34dc7053eb Fix over-conservatism in alias analysis. Graydon Hoare 2010-06-25 19:55:40 -07:00
  • c56a729ff1 Remove obsolete comment. Graydon Hoare 2010-06-25 17:32:35 -07:00
  • eb7807c4fe I hear actually loading the next pointer into the right register helps when walking a list. Graydon Hoare 2010-06-25 17:31:08 -07:00
  • d601b357ec Debug GC glue enough that marking passes. Graydon Hoare 2010-06-25 16:59:29 -07:00
  • 2a2474d497 Update comment to reflect slightly-improved GC situation. Graydon Hoare 2010-06-25 16:56:25 -07:00
  • eed5c0aa24 Add rust_task::gc(size_t args) method that drops us back into the GC glue. Graydon Hoare 2010-06-25 16:54:03 -07:00
  • 67d1f0a9aa Emit gc glue and rearrange crate glue offsets slightly to have a regular order. Graydon Hoare 2010-06-25 15:43:55 -07:00
  • 2e3fa5bd68 Return at end of GC glue. Graydon Hoare 2010-06-25 15:43:03 -07:00
  • a9c639ec8a Fix forgotten llvm xfail in Makefile. Graydon Hoare 2010-06-25 15:42:24 -07:00
  • c06ea8f944 Add test of recursive object types (ha, work by default) and fix effect-walker bug revealed by it. Graydon Hoare 2010-06-25 12:15:40 -07:00
  • 422b8a6be4 Unlink (doubly) gc chain on free. Graydon Hoare 2010-06-25 11:48:17 -07:00
  • e875993471 Doubly-link gc chain on alloc. Graydon Hoare 2010-06-25 11:00:23 -07:00
  • 63b5e18207 Enlarge gc header to doubly-link the gc chain. Graydon Hoare 2010-06-25 09:00:08 -07:00
  • 5dfe101e51 Revert "Add intrinsic calling convention." Isn't going to work. Graydon Hoare 2010-06-25 01:30:23 -07:00
  • 287d69ddac Sketch out gc glue. Graydon Hoare 2010-06-25 01:29:51 -07:00
  • 85a701c8f6 Add testcases for item name conflict at the same path level. Roy Frostig 2010-06-25 01:26:44 -07:00