Commit Graph

17156 Commits

Author SHA1 Message Date
Graydon Hoare
5abc483d9a Move more of the GC logic into the runtime. 2010-06-28 18:53:43 -07:00
Roy Frostig
a27cbd4ee8 Testcase (XFAILed) for mutable alias vec weirdness. 2010-06-28 16:36:24 -07:00
Roy Frostig
66d313d365 Teach the typechecker that uints are integral types. Closes #88. 2010-06-28 15:27:05 -07:00
Graydon Hoare
d608c09168 Some fixme-to-issue housekeeping. 2010-06-28 09:39:43 -07:00
Graydon Hoare
e1f6749f9a Once more with feeling. Closes #13. 2010-06-27 20:54:33 -07:00
Graydon Hoare
8815c02005 Previous commit closes #13. Trying to convince github of that fact automagically. 2010-06-27 20:53:07 -07:00
Graydon Hoare
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. 2010-06-27 20:48:28 -07:00
Graydon Hoare
7045526a3e Change slot_mem_ctrl to classify vec[state] as GC mem. Breaking / XFAILing mutable-vec-drop.rs test. 2010-06-27 13:53:23 -07:00
Graydon Hoare
fb3e2fa4bf Encode tag and iso types at dwarf level. Can't decode them yet. 2010-06-27 13:48:25 -07:00
Graydon Hoare
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) 2010-06-25 23:57:30 -07:00
Graydon Hoare
9236ad2846 Further attempts to convince mem_ctrl to be sane. 2010-06-25 23:55:36 -07:00
Graydon Hoare
50e96414d2 Fix register-use bugs in sweep pass, factor sweep pass out and call twice for separate sever/free phases. 2010-06-25 23:07:34 -07:00
Graydon Hoare
90eaaf666b Improve sever_slot logging. 2010-06-25 23:03:06 -07:00
Graydon Hoare
49ac5e6312 Fix copy-paste error in logging function. 2010-06-25 23:02:19 -07:00
Graydon Hoare
37426e42cf Add sever-glue, for missing first stage of sweep. 2010-06-25 21:57:46 -07:00
Graydon Hoare
0cf3c2ad93 Pass type parameters to free function called from sweep loop. 2010-06-25 21:20:32 -07:00
Graydon Hoare
3718055276 Align emitted DATA_* elements -- tydescs in particular -- to 16 byte boundaries, so we can get our tag bit freed up. 2010-06-25 20:47:16 -07:00
Graydon Hoare
dd2716f56c Fix bad register use in GC sweep pass. 2010-06-25 20:46:11 -07:00
Graydon Hoare
968ec14527 Fix marking logic. 2010-06-25 19:56:29 -07:00
Graydon Hoare
34dc7053eb Fix over-conservatism in alias analysis. 2010-06-25 19:55:40 -07:00
Graydon Hoare
c56a729ff1 Remove obsolete comment. 2010-06-25 17:32:35 -07:00
Graydon Hoare
eb7807c4fe I hear actually loading the next pointer into the right register helps when walking a list. 2010-06-25 17:31:08 -07:00
Graydon Hoare
d601b357ec Debug GC glue enough that marking passes. 2010-06-25 16:59:29 -07:00
Graydon Hoare
2a2474d497 Update comment to reflect slightly-improved GC situation. 2010-06-25 16:56:25 -07:00
Graydon Hoare
eed5c0aa24 Add rust_task::gc(size_t args) method that drops us back into the GC glue. 2010-06-25 16:54:03 -07:00
Graydon Hoare
67d1f0a9aa Emit gc glue and rearrange crate glue offsets slightly to have a regular order. 2010-06-25 15:43:55 -07:00
Graydon Hoare
2e3fa5bd68 Return at end of GC glue. 2010-06-25 15:43:03 -07:00
Graydon Hoare
a9c639ec8a Fix forgotten llvm xfail in Makefile. 2010-06-25 15:42:24 -07:00
Graydon Hoare
c06ea8f944 Add test of recursive object types (ha, work by default) and fix effect-walker bug revealed by it. 2010-06-25 12:15:40 -07:00
Graydon Hoare
422b8a6be4 Unlink (doubly) gc chain on free. 2010-06-25 11:48:17 -07:00
Graydon Hoare
e875993471 Doubly-link gc chain on alloc. 2010-06-25 11:00:23 -07:00
Graydon Hoare
63b5e18207 Enlarge gc header to doubly-link the gc chain. 2010-06-25 09:00:08 -07:00
Graydon Hoare
5dfe101e51 Revert "Add intrinsic calling convention." Isn't going to work.
This reverts commit 72c6c60d80.
2010-06-25 01:33:00 -07:00
Graydon Hoare
287d69ddac Sketch out gc glue. 2010-06-25 01:32:59 -07:00
Roy Frostig
85a701c8f6 Add testcases for item name conflict at the same path level. 2010-06-25 01:26:44 -07:00
Roy Frostig
241305caab Resolve and typecheck patterns in pattern alt redux. This time featuring way more correctness. 2010-06-25 00:47:23 -07:00
Graydon Hoare
0d9565a4c1 Rearrange pexp-custom stuff a bit. 2010-06-25 00:00:31 -07:00
Graydon Hoare
72c6c60d80 Add intrinsic calling convention. 2010-06-24 19:21:40 -07:00
Graydon Hoare
c483808e0f Factor out some trans bits. 2010-06-24 19:21:15 -07:00
Graydon Hoare
1c60be2f32 Fix bad output-slot logic in tag constructors. 2010-06-24 18:25:10 -07:00
Graydon Hoare
bcf29b882a A couple new tests for broken parts of the typechecker, XFAILed. 2010-06-24 16:57:00 -07:00
Graydon Hoare
261d543920 Ignore TAGS. 2010-06-24 16:51:48 -07:00
Graydon Hoare
24d5ff75c3 Fix output-slot handling for real. It's been broken for a long time. 2010-06-24 16:19:55 -07:00
Graydon Hoare
d3c0762ff8 A couple more ignorable files. 2010-06-24 16:19:45 -07:00
Graydon Hoare
af44ec2856 Issue 24, drop output slot when not initializing. Un-XFAIL generic-tag.rs. Add test for output slot modes with several broken cases. 2010-06-24 13:32:59 -07:00
Graydon Hoare
69a34503f4 Remove redundant copy of comment. 2010-06-24 11:18:02 -07:00
Graydon Hoare
0364a801bb Clean up trans_alt_tag to use slots, not assume interior words. Also remove record-based destructuring (hard on eyes). Add execution parts to generic-tag-alt.rs and un-XFAIL it. 2010-06-24 11:15:22 -07:00
Graydon Hoare
25eb1fd3c9 Add fmt module, move out some common format helpers, add instruction-selection tracing and make selection use queues rather than list refs. 2010-06-24 10:34:47 -07:00
Graydon Hoare
4a1f86ccd7 Merge timer loop functions, fix win32 build broken by logger change. 2010-06-24 08:52:52 -07:00
Graydon Hoare
0016473117 Add more ignorable build artifacts. 2010-06-24 08:49:23 -07:00