]> gitweb.factorcode.org Git - factor.git/commit
Big VM cleanup
authorSlava Pestov <slava@shill.local>
Sat, 3 Oct 2009 13:47:05 +0000 (08:47 -0500)
committerSlava Pestov <slava@shill.local>
Sat, 3 Oct 2009 13:47:05 +0000 (08:47 -0500)
commitc4ef640f4d201ef4cb9257becb51272ccf52b014
tree8773f68eae65bdf9791c0b353b1e4f1a39aee0d1
parentbcd5c5c635b9671dd7acd6b25a6445b270a05690
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
37 files changed:
vm/arrays.hpp
vm/bignum.hpp
vm/byte_arrays.hpp
vm/callstack.cpp
vm/callstack.hpp
vm/code_block.cpp
vm/code_heap.cpp
vm/code_heap.hpp
vm/contexts.hpp
vm/cpu-arm.hpp
vm/cpu-x86.hpp
vm/data_gc.cpp
vm/data_gc.hpp
vm/data_heap.cpp
vm/data_heap.hpp
vm/debug.cpp
vm/factor.cpp
vm/generic_arrays.hpp
vm/heap.cpp
vm/heap.hpp
vm/image.cpp
vm/inline_cache.cpp
vm/jit.hpp
vm/layouts.hpp
vm/local_roots.hpp
vm/master.hpp
vm/os-linux-ppc.hpp
vm/os-macosx-ppc.hpp
vm/os-unix.hpp
vm/os-windows-nt.hpp
vm/profiler.cpp
vm/quotations.cpp
vm/quotations.hpp
vm/run.cpp
vm/segments.hpp
vm/tagged.hpp
vm/vm.hpp