Commit Graph

45 Commits (b3415274286021491a402ec4e6778e1cb60eab23)

Author SHA1 Message Date
Slava Pestov c7430d74c2 vm: remove promotion strategy, clean up compaction code 2009-11-01 03:47:09 -06:00
Slava Pestov e2beabf2be vm: new GC policy: mark sweep after N megabytes promoted, mark compact if tenured space cannot fit nursery+aging in one contiguous block. N = 32 on 32-bit and 64 on 64-bit 2009-10-30 02:26:57 -05:00
Slava Pestov 503137b1b9 vm: clean up gc events, remove -verbosegc switch, fix compaction bug 2009-10-27 21:31:28 -05:00
Slava Pestov 74ecd90cd6 vm: remove crummy old GC stats, split off free list code, clean up various other things 2009-10-26 22:08:35 -05:00
Slava Pestov 67a33ed21a vm: vm: fix large object allocation logic and change default heap image size for 2009 2009-10-25 13:27:40 -05:00
Slava Pestov 6c561b5c4c vm: rename userenv to special_objects 2009-10-23 00:33:53 -05:00
Slava Pestov 6ee56ca93a vm: use iostreams instead of printf for debug messages, clean up a few things 2009-10-21 20:12:57 -05:00
Slava Pestov 056ccc6741 vm: split off free_list_allocator from heap class, rename zone to bump_allocator 2009-10-20 15:26:11 -05:00
Slava Pestov 5e12356a22 vm: new mark_bits data structure replaces hashtable when compacting code heap 2009-10-19 02:21:11 -05:00
Slava Pestov f0a1a3ce5b vm: rename F to false_object, and rename T to true_object 2009-10-18 20:26:21 -05:00
Slava Pestov 15a9494d2c vm: fix compile errors on some gcc versions 2009-10-16 12:13:43 -05:00
Slava Pestov 030d035e94 vm: code heap compaction at runtime using compact-gc primitive 2009-10-16 11:39:35 -05:00
Slava Pestov 4d0ec09d9c 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 326952e919 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 d6bd25d8e4 vm: fix VM constructor 2009-10-05 04:31:35 -05:00
Slava Pestov 3887292543 Big VM cleanup
- Move forward declarations of 'struct factor_vm' to one place
- Rename template parameters from T and TYPE to descriptive names. New convention: CamelCase for template parameters
- Change some higher-order functions taking function pointers into templates, and define classes overriding operator(). There's a bit of new boilerplate here but its more consistent than the old mish-mash approaches
- Put GC state into a gc_state struct
- Use exceptions instead of longjmp for non-local control transfer in GC
- In code GC, instead of interleaving code block tracing with copying, add code blocks which need to be revisited to an std::set stored in the gc_state
2009-10-03 08:47:05 -05:00
Joe Groff 8edde0ffeb keep a map of thread ids to vm pointers. use this to look up the correct VM to handle mach exceptions on os x 2009-10-02 12:03:05 -05:00
Joe Groff 0c5a1de5ae don't leak startargs in start_standalone_factor_in_new_thread 2009-10-02 11:11:17 -05:00
Phil Dawes 1c5329cc2e renamed factorvm to factor_vm 2009-09-24 08:16:52 +01:00
Phil Dawes 2cfb1b6f02 removed a bunch of superflous blank lines 2009-09-24 08:02:14 +01:00
Phil Dawes f7584cd826 Added more init code to vm constructor.
Also removed dummy variables file as have fixed that problem now
2009-09-16 08:22:18 +01:00
Phil Dawes 57aff71466 removed debugging 2009-09-16 08:22:16 +01:00
Phil Dawes c1212b1326 Split data out into separate vm-data struct 2009-09-16 08:22:16 +01:00
Phil Dawes a8f233c055 thread_id is a pthread_t on unix 2009-09-16 08:20:51 +01:00
Phil Dawes bd9ae0bc93 fixed stupid signal handler bug 2009-09-16 08:20:50 +01:00
Phil Dawes 05d17492ed cleaned up code a bit, added multithreaded mode flags 2009-09-16 08:20:50 +01:00
Phil Dawes 1e93c766a1 moved the thread stuff around a bit 2009-09-16 08:20:49 +01:00
Phil Dawes 939426dcf5 fixed up linux64 bootstrap (single threaded) 2009-09-16 08:20:09 +01:00
Phil Dawes ad517cb39b win32 main starts factorvm in new thread 2009-09-16 08:20:09 +01:00
Phil Dawes 8008545b8e Start windows factor in a spawned thread (for testing) 2009-09-16 08:20:09 +01:00
Phil Dawes 41345583a5 added lookup_vm and removed last usage of vm from windows code 2009-09-16 08:20:09 +01:00
Phil Dawes 28665b5287 removed most global functions from factor.cpp 2009-09-16 08:17:27 +01:00
Phil Dawes 915c765ecb Added basic win32 start-thread support 2009-09-16 08:17:26 +01:00
Phil Dawes ebbf2151fe added vm member to gc_root and growable arrays 2009-09-16 08:16:22 +01:00
Phil Dawes cddf989ac3 factorvm initialised globally 2009-09-16 08:16:21 +01:00
Phil Dawes b38191ae0e moved factor.cpp functions to vm 2009-09-16 08:16:21 +01:00
Phil Dawes 99d01a3a88 added vm singleton 2009-09-16 08:16:18 +01:00
Philipp Brüschweiler 18240b0219 misc small documentation fixes, some fixes for factor.vim, changed permissions of vm/* to 644 2009-08-10 21:33:07 +02:00
Slava Pestov ec943c2299 Change (void) to () 2009-05-05 11:33:35 -05:00
Slava Pestov 4764f1c676 Fix botched replace all in VM source, clean up image saving code, and fix save-image-and-exit to actually call (save-image-and-exit) instead of (save-image) 2009-05-05 10:29:22 -05:00
Slava Pestov 72691cae07 Cleanups 2009-05-04 05:07:14 -05:00
Slava Pestov 7c0a59f7a9 The great type renaming 2009-05-04 04:50:24 -05:00
Slava Pestov 7f48eb2b2c Use C++ namespaces 2009-05-04 01:46:13 -05:00
Slava Pestov 1857f90eb6 VM: use better abstractions for tagged pointers, eliminate get()/set() stuff, clean up array, string, and byte-array element access 2009-05-04 01:00:30 -05:00
Slava Pestov 938d1a4270 Move vmpp to vm 2009-05-02 20:37:18 -05:00