Slava Pestov
f9fc3487c6
vm: change code heap layout somewhat, remove unused allocation bitmap from mark_bits
2009-10-20 09:37:24 -05:00
Slava Pestov
e68b570e2b
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
5e12356a22
vm: new mark_bits data structure replaces hashtable when compacting code heap
2009-10-19 02:21:11 -05:00
Slava Pestov
be96d985e9
vm: working on new compaction implementation
2009-10-19 00:07:43 -05:00
Slava Pestov
a977ade0af
vm: fix conflict in image.cpp
2009-10-18 20:54:13 -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
40b5c2c732
vm: code heap: move mark bits to a separate bitmap
2009-10-16 14:41:40 -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
7c126be62b
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
786f6826b6
Merge branch 'reentrantvm' of git://github.com/phildawes/factor
2009-10-16 03:52:35 -05:00
Slava Pestov
bd20a52580
vm: make the code nice and pretty
2009-10-16 02:55:02 -05:00
Slava Pestov
78f3f0e90d
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
a11a8c0a93
fix compiler warnings in vm
2009-10-15 21:37:53 -05:00
Slava Pestov
5027527287
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
0b2db4018a
Removed VM_PTR macros. All builds reentrant by default
2009-10-14 19:14:57 +01:00
Slava Pestov
0455711727
vm: faster write barrier for non-optimized code
2009-10-14 06:13:51 -05:00
Slava Pestov
10ad5cad53
Working on adding support for the new write barrier to optimized code
2009-10-14 02:06:01 -05:00
Slava Pestov
1ee53d04a9
vm: new card marking implementation supports marking partial objects
2009-10-13 21:16:04 -05:00
Slava Pestov
a13ffad800
vm: build fix
2009-10-09 05:12:28 -05:00
Slava Pestov
44c78493bf
vm: misc cleanups
2009-10-09 03:20:50 -05:00
Slava Pestov
b2cae0b6d8
vm: more efficient code heap remembered set
2009-10-08 23:10:32 -05:00
Slava Pestov
6582cba945
vm: split off parts of data_gc into sub-files and clean up logic
2009-10-08 02:10:28 -05:00
Slava Pestov
b9f386c693
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
bc691eb198
vm: replace generations array with individual instance variables referencing zone objects
2009-10-07 11:59:59 -05:00
Slava Pestov
2c527982fe
vm: rename a few things
2009-10-07 08:40:28 -05:00
Slava Pestov
8ffd538d27
vm: more code cleanups
2009-10-07 08:33:54 -05:00
Slava Pestov
eaf1afb156
vm: more refactoring
2009-10-06 20:45:47 -05:00
Slava Pestov
40fd28e0a3
vm: refactor forwarding pointer logic
2009-10-06 19:15:54 -05:00
Slava Pestov
8109e7376c
vm: simplify some code
2009-10-06 08:55:42 -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
fa2ee8ee7a
vm: free up a cell in compiled code block headers
2009-10-06 05:52:45 -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
1bfa4ef5ca
vm: cleanup
2009-10-06 01:42:17 -05:00
Slava Pestov
9ccec33321
vm: more GC refactoring
2009-10-06 00:13:54 -05:00
Slava Pestov
d5be02d48f
vm: refactoring garbage collector
2009-10-05 22:16:08 -05:00
Slava Pestov
83d21310f2
Change C++ exception usage back into a longjmp() due to GCC bugs
2009-10-05 03:27:28 -05:00
Doug Coleman
8907addf3b
Merge branch 'master' of git://factorcode.org/git/factor
2009-10-03 18:27:38 -05:00
Doug Coleman
6d451ac9d8
add ftell primitive
2009-10-03 18:20:35 -05:00
Slava Pestov
d30ebc6213
vm.hpp: fix typo
2009-10-03 09:47:06 -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
Phil Dawes
a45ccd1a72
calls dispatched as per multithreaded, but checked against singleton
2009-09-30 21:25:50 +01:00
Phil Dawes
a514f79d3c
inlineimpl.hpp is toast
2009-09-29 19:53:10 +01:00
Phil Dawes
0ca2b9b3b2
Converted some callback fns to use member-fn pointers
2009-09-28 19:45:10 +01:00
Phil Dawes
49df5b1078
moved local_roots and write_barrier stuff out of inlineimpls.hpp
2009-09-28 19:02:51 +01:00
Phil Dawes
132628985c
removed vm-data.hpp
2009-09-27 20:09:09 +01:00
Phil Dawes
63266524d7
Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp
2009-09-27 19:42:18 +01:00
Slava Pestov
3024810dfa
Word hashcodes are now computed from the word's name/vocabulary, removing a source of non-determinism
2009-09-27 21:09:11 -05:00
Slava Pestov
3c38656fd2
vm: fix windows compilation (untested)
2009-09-26 02:41:01 -05:00