Commit Graph

167 Commits (33943096594beca2f4087ea72cb692f94a60400a)

Author SHA1 Message Date
Slava Pestov 3394309659 Merge branch 'master' into new_gc 2009-10-22 05:40:57 -05:00
Slava Pestov 3d5c3935ad vm: fix compilation 2009-10-22 06:38:02 -04:00
Slava Pestov f24942e063 vm: clean up signal handling and add EXC_BAD_INSTRUCTION Mach exception handler for OS X, since signal handlers cannot change the stack pointer 2009-10-22 05:22:59 -05:00
Slava Pestov 606a805d7d vm: debugging mark and sweep 2009-10-21 23:24:35 -05:00
Slava Pestov 40351d40be vm: use iostreams instead of printf for debug messages, clean up a few things 2009-10-21 20:12:57 -05:00
Slava Pestov 814f6371d6 vm: mark sweep gc for tenured space work in progress 2009-10-20 22:20:49 -05:00
Slava Pestov f0816d72f1 vm: split off free_list_allocator from heap class, rename zone to bump_allocator 2009-10-20 15:26:11 -05:00
Slava Pestov d22d5466fc vm: move factor_vm::untagged_object_size() to object::size() 2009-10-20 13:13:39 -05:00
Slava Pestov d85d84697a Change data heap alignment to 16 bytes 2009-10-20 12:45:00 -05:00
Slava Pestov 50f9bf67a7 vm: fix crash when converting a callstack to an array 2009-10-20 12:19:02 -05:00
Slava Pestov 838a44e901 vm: change code heap layout somewhat, remove unused allocation bitmap from mark_bits 2009-10-20 09:37:24 -05:00
Slava Pestov 4ddd63d83e vm: move compaction algorithm to mark_bits.hpp since it doesn't rely on properties of heaps per se 2009-10-19 03:05:20 -05:00
Slava Pestov ac25b8ebbb vm: new mark_bits data structure replaces hashtable when compacting code heap 2009-10-19 02:21:11 -05:00
Slava Pestov 464aac14cf vm: working on new compaction implementation 2009-10-19 00:07:43 -05:00
Slava Pestov a81f757a62 vm: fix conflict in image.cpp 2009-10-18 20:54:13 -05:00
Slava Pestov 236588208b vm: rename F to false_object, and rename T to true_object 2009-10-18 20:26:21 -05:00
Slava Pestov 69f9c80b5b vm: code heap: move mark bits to a separate bitmap 2009-10-16 14:41:40 -05:00
Slava Pestov a955a12aa7 vm: fix compile errors on some gcc versions 2009-10-16 12:13:43 -05:00
Slava Pestov 107c96f642 vm: code heap compaction at runtime using compact-gc primitive 2009-10-16 11:39:35 -05:00
Slava Pestov 85b746e7b5 vm: simpler and more efficient code heap compaction; restructure a few things to get ready for runtime code heap compaction 2009-10-16 04:33:35 -05:00
Slava Pestov 349cb41a29 Merge branch 'reentrantvm' of git://github.com/phildawes/factor 2009-10-16 03:52:35 -05:00
Slava Pestov 0a3d08bc52 vm: make the code nice and pretty 2009-10-16 02:55:02 -05:00
Slava Pestov 70dcecf61a vm: don't flush instruction cache twice per code block on a major GC on PowerPC 2009-10-15 22:31:41 -05:00
Doug Coleman 0bb6327688 fix compiler warnings in vm 2009-10-15 21:37:53 -05:00
Slava Pestov 45eb68fa38 vm: during tenuring stage of aging collection, if tenured space fills up, it would attempt a to_tenured collection. this will succeed if all roots were tenured. however, this is unsound, because there's now an untraced segment of tenured space. fix: if tenuring fails, go on to do a full collection instead 2009-10-15 05:51:11 -05:00
Phil Dawes 7fef05fd76 Removed VM_PTR macros. All builds reentrant by default 2009-10-14 19:14:57 +01:00
Slava Pestov ae90ebe3be vm: faster write barrier for non-optimized code 2009-10-14 06:13:51 -05:00
Slava Pestov 1ce39963fd Working on adding support for the new write barrier to optimized code 2009-10-14 02:06:01 -05:00
Slava Pestov d689be57a5 vm: new card marking implementation supports marking partial objects 2009-10-13 21:16:04 -05:00
Slava Pestov ab9b462411 vm: build fix 2009-10-09 05:12:28 -05:00
Slava Pestov 95722adebc vm: misc cleanups 2009-10-09 03:20:50 -05:00
Slava Pestov 21f55ab1a3 vm: more efficient code heap remembered set 2009-10-08 23:10:32 -05:00
Slava Pestov dbf0dd4a2d vm: split off parts of data_gc into sub-files and clean up logic 2009-10-08 02:10:28 -05:00
Slava Pestov 23e133e383 vm: make a new old_space type to encapsulate a few things, split up generations array somewhat 2009-10-07 14:05:09 -05:00
Slava Pestov 651a7fb6fa vm: replace generations array with individual instance variables referencing zone objects 2009-10-07 11:59:59 -05:00
Slava Pestov 3914b0264b vm: rename a few things 2009-10-07 08:40:28 -05:00
Slava Pestov 5c774d8c84 vm: more code cleanups 2009-10-07 08:33:54 -05:00
Slava Pestov 1f76a64e91 vm: more refactoring 2009-10-06 20:45:47 -05:00
Slava Pestov 6789a40fc6 vm: refactor forwarding pointer logic 2009-10-06 19:15:54 -05:00
Slava Pestov 93d49428fb vm: simplify some code 2009-10-06 08:55:42 -05:00
Slava Pestov 697e2342d0 vm: put code block owner directly in the header, instead of as the first entry in the literal table. Reduces x86-64 image size by ~700kb, also eliminates separate 'strip' set of staging images from deploy tool 2009-10-06 06:25:07 -05:00
Slava Pestov 16c3251072 vm: free up a cell in compiled code block headers 2009-10-06 05:52:45 -05:00
Slava Pestov b50d3f3fb0 vm: number of generations is not configurable anymore, split up begin_gc() and end_gc() into collect_{nursery,aging,aging_again,tenured}() 2009-10-06 02:39:12 -05:00
Slava Pestov d10e27149c vm: cleanup 2009-10-06 01:42:17 -05:00
Slava Pestov 47c735d81d vm: more GC refactoring 2009-10-06 00:13:54 -05:00
Slava Pestov bae2240f62 vm: refactoring garbage collector 2009-10-05 22:16:08 -05:00
Slava Pestov 6c047127ee Change C++ exception usage back into a longjmp() due to GCC bugs 2009-10-05 03:27:28 -05:00
Doug Coleman 00efd780c9 Merge branch 'master' of git://factorcode.org/git/factor 2009-10-03 18:27:38 -05:00
Doug Coleman 11d55131de add ftell primitive 2009-10-03 18:20:35 -05:00
Slava Pestov 24ba367ca0 vm.hpp: fix typo 2009-10-03 09:47:06 -05:00