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
Joe Groff
f867a776d9
import std::tr1/boost ::unordered_map into the factor namespace instead of using #define
2009-10-02 11:13:27 -05:00
Phil Dawes
3a88d8c49e
inlineimpl.hpp is toast
2009-09-29 19:53:10 +01:00
Phil Dawes
791d654f92
moved local_roots and write_barrier stuff out of inlineimpls.hpp
2009-09-28 19:02:51 +01:00
Slava Pestov
c046ff4b23
vm: make heap data-type object-oriented
2009-09-25 20:32:00 -05:00
Phil Dawes
46bab62689
misc cleanup
2009-09-24 08:02:14 +01:00
Phil Dawes
b1c68d92b7
added threadsafe defines. Dunno if they do much
2009-09-16 08:20:51 +01:00
Phil Dawes
57011aed51
vm ptr passed to primitives on X86.32 (other cpus still use singleton vm ptr)
2009-09-16 08:16:30 +01:00
Phil Dawes
a5f24c8fb9
added VM relocation type
2009-09-16 08:16:30 +01:00
Phil Dawes
e2993558a8
moved tagged template code back into tagged.hpp header
2009-09-16 08:16:26 +01:00
Phil Dawes
e08a6e21cb
split the moved inline stuff into separate header file
2009-09-16 08:16:26 +01:00
Phil Dawes
ecfd9a6075
reordered master to untangle dependency chain a bit
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
9e23e41267
moved math.hpp inline functions to vm.hpp
2009-09-16 08:16:23 +01:00
Phil Dawes
a249b484c4
moved byte_arrays.hpp inline functions to vm.hpp
2009-09-16 08:16:23 +01:00
Phil Dawes
209755e2de
moved arrays.hpp inline functions to vm.hpp
2009-09-16 08:16:23 +01:00
Phil Dawes
2e129dfc45
moved generic_arrays inline functions to vm.hpp
2009-09-16 08:16:23 +01:00
Phil Dawes
4dabd186c9
moved data_gc and local_roots inline functions to vm.hpp
2009-09-16 08:16:23 +01:00
Phil Dawes
31905b68a7
moved write_barrier inline function impls to vm.hpp
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
Phil Dawes
caefc7aff9
Empty vm struct
2009-09-16 08:16:17 +01:00
Slava Pestov
81c4670619
VM: use an std::vector instead of a fixed-size buffer for GC roots
2009-09-08 14:21:09 -05: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
9ef162e2ef
More VM cleanups
2009-05-13 01:08:16 -05:00
Slava Pestov
ace084b633
Need to include unistd.h
2009-05-08 15:15:10 -05:00
Slava Pestov
56597b65f4
VM now compiles with GCC 3.4 on Windows
2009-05-05 14:17:02 -05:00
Slava Pestov
786b9096e2
Store forwarding table off to the side instead of in the code block; saves one cell per code block
2009-05-05 11:07:20 -05:00
Slava Pestov
8872c40b1e
The great type renaming
2009-05-04 04:50:24 -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