Slava Pestov
d95a98eb9c
vm: add primitives for getting at GC events, data-room and code-room primitives now return structs instead of arrays
2009-10-27 03:32:28 -05:00
Slava Pestov
62e718eaa9
vm: combine heap_block and code_block structs, eliminates some boilerplate
2009-10-24 21:33:31 -05:00
Slava Pestov
fd1e992e7d
vm: factor out code that visits object slots and code heap blocks into slot_visitor and code_block_visitor
2009-10-24 03:54:53 -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
a9dbbd1efb
vm: simplify code heap by eliminating HeapLayout template parameter
2009-10-20 14:01:46 -05:00
Slava Pestov
e482940dca
vm: object start recording in cards is now independent of allocation strategy
2009-10-20 13:47:04 -05:00
Slava Pestov
acdcb181e0
vm: working on making heap more generic
2009-10-20 10:22:06 -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
0a3d08bc52
vm: make the code nice and pretty
2009-10-16 02:55:02 -05:00
Slava Pestov
d34c7854cd
vm: simplify card marking logic, and unmark more cards during aging collections by checking if they actually contained young pointers or not
2009-10-09 01:37:45 -05:00
Slava Pestov
21f55ab1a3
vm: more efficient code heap remembered set
2009-10-08 23:10:32 -05:00
Slava Pestov
5c774d8c84
vm: more code cleanups
2009-10-07 08:33:54 -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
ed1ee19ce1
vm: add a remembered set for code blocks which may reference young literals. Improves loading time
2009-10-06 04:36:34 -05:00
Slava Pestov
d10e27149c
vm: cleanup
2009-10-06 01:42:17 -05:00
Slava Pestov
c4ef640f4d
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
Phil Dawes
3a88d8c49e
inlineimpl.hpp is toast
2009-09-29 19:53:10 +01:00
Phil Dawes
b6718641dc
Converted some callback fns to use member-fn pointers
2009-09-28 19:45:10 +01:00
Phil Dawes
9b7412b8f8
Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp
2009-09-27 19:42:18 +01:00
Slava Pestov
c046ff4b23
vm: make heap data-type object-oriented
2009-09-25 20:32:00 -05:00
Phil Dawes
83b0769eef
renamed factorvm to factor_vm
2009-09-24 08:16:52 +01:00
Phil Dawes
700e03a6a6
removed some vm-> forwarding functions
2009-09-16 08:17:26 +01:00
Phil Dawes
afe1cf0c73
removed some global functions from code_heap
2009-09-16 08:16:27 +01:00
Phil Dawes
8fa607e9a9
Dev checkpoint
2009-09-16 08:16:25 +01:00
Phil Dawes
396eeeba34
moved global state from code_heap into vm
2009-09-16 08:16:24 +01:00
Phil Dawes
fb9f9ac3d3
moved callstack.hpp inline functions to vm.hpp
2009-09-16 08:16:23 +01:00
Phil Dawes
a6c3c1e7d2
moved callstack.hpp functions to vm
2009-09-16 08:16:23 +01:00
Phil Dawes
386dafe747
moved local roots state to vm, shuffled includes around
2009-09-16 08:16:21 +01:00
Philipp Brüschweiler
230061783a
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
53db9d737a
Change (void) to ()
2009-05-05 11:33:35 -05:00
Slava Pestov
8872c40b1e
The great type renaming
2009-05-04 04:50:24 -05:00
Slava Pestov
edecac508e
Use C++ namespaces
2009-05-04 01:46:13 -05:00
Slava Pestov
8e17e0a01e
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
b923d548cf
Move vmpp to vm
2009-05-02 20:37:18 -05:00