Commit Graph

30 Commits (0d6096df0a8a770f50d09cfb8625ee4225eb18be)

Author SHA1 Message Date
Björn Lindqvist 7661ed3b57 VM: replacing the copy assignment operators of the smart pointers
Little more to write, but much easier to see what is going on with
methods rather than assignment operator overloading.
2016-11-23 06:42:06 +01:00
Alexander Iljin 0d57734dab vm: replace block comments /**/ with line comments // 2016-09-09 05:47:52 +02:00
Doug Coleman 19685f4528 vm: jit::jit is a c++ constructor but it does not allocate objects to the Factor heaps.
Add annotations for gc allocating.
2014-02-14 20:29:26 -08:00
Erik Charlebois b918c3e646 VM: Remove redundant #ifdef FACTOR_DEBUGs
FACTOR_DEBUG checks around asserts aren't needed, since FACTOR_ASSERT is
already conditionally defined by FACTOR_DEBUG.
2013-05-12 23:44:32 -04:00
Erik Charlebois 26ff071205 VM: Remove unnecessary explicit keywords 2013-05-12 21:48:38 -04:00
Erik Charlebois 76375afd1c VM: Refactor arrays.cpp/hpp to Factor style 2013-05-12 13:24:40 -04:00
Erik Charlebois ca2ea548be VM: Remove exec bit from VM source files 2013-05-11 17:04:23 -04:00
Joe Groff 0a1a252cdb vm: replace assert with FACTOR_ASSERT
Factor is finally a real C++ project and has a custom assert macro. Assertion failures were still getting caught as exceptions and causing failure loops. Write our own macro that calls factor::abort on failure.
2011-11-23 11:11:26 -08:00
Slava Pestov 2e3207b590 vm: fix compilation with DEBUG=1 2009-11-19 02:08:05 -06:00
Slava Pestov 6c2c87758a vm: rename gc_root to data_root, add code_root to fix a problem where code blocks would move underneath the PIC compiler if PIC compiler allocated enough 2009-11-02 18:10:34 -06:00
Slava Pestov 606a805d7d vm: debugging mark and sweep 2009-10-21 23:24:35 -05:00
Slava Pestov 2e65366c6b vm: rename myvm and parent_vm instance variables to parent, clean up casts in primitive definitions 2009-10-18 20:31:59 -05:00
Slava Pestov 236588208b vm: rename F to false_object, and rename T to true_object 2009-10-18 20:26:21 -05:00
Slava Pestov 38d120f92e vm: rt-vm relocation now supports accessing a field directly 2009-10-14 19:24:23 -05:00
Slava Pestov d689be57a5 vm: new card marking implementation supports marking partial objects 2009-10-13 21:16:04 -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 9b7412b8f8 Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp 2009-09-27 19:42:18 +01:00
Phil Dawes e566656e46 removed a bunch of superflous blank lines 2009-09-24 08:02:14 +01:00
Phil Dawes d21b1b2e1e removed global functions from arrays.cpp 2009-09-16 08:16:27 +01:00
Phil Dawes 209755e2de moved arrays.hpp inline functions to vm.hpp 2009-09-16 08:16:23 +01:00
Phil Dawes 33ecaa5010 moved arrays.hpp functions to vm 2009-09-16 08:16:22 +01:00
Phil Dawes a2f14b5a6d added vm member to gc_root and growable arrays 2009-09-16 08:16:22 +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 69cb3dee5e Fix FEP if there are too many words in the image, clean up some VM code 2009-05-13 00:58:54 -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 e3592ca8f6 Clean up untag_* and tag_* inline functions in favor of more idiomatic C++ 2009-05-02 20:47:29 -05:00
Slava Pestov b923d548cf Move vmpp to vm 2009-05-02 20:37:18 -05:00