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
Björn Lindqvist
0b6ffdc77e
Revert "VM: undoing 0274e889b9
( #1513 )"
...
This reverts commit a4802aba68
.
2016-11-09 02:07:56 +01:00
Björn Lindqvist
a4802aba68
VM: undoing 0274e889b9
( #1513 )
2016-11-08 13:37:52 +01:00
Björn Lindqvist
0274e889b9
VM: refactor tagged.hpp so it's not dependent on the factor_vm class
...
this way untag<byte_array>(relocation) can be used in code_blocks.hpp
2015-11-24 16:00:50 +01: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
238e9d9810
VM: Refactor tagged.hpp to Factor style
2013-05-12 13:24:47 -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
064c00f78d
New identity-hashcode primitive
2009-11-10 21:18:54 -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
e4ad642134
vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress)
2009-11-02 04:25:54 -06:00
Slava Pestov
49baf397f4
vm: tagged typechecks work better with DEBUG=1
2009-10-25 08:07:36 -05:00
Slava Pestov
40351d40be
vm: use iostreams instead of printf for debug messages, clean up a few things
2009-10-21 20:12:57 -05:00
Slava Pestov
838a44e901
vm: change code heap layout somewhat, remove unused allocation bitmap from mark_bits
2009-10-20 09:37:24 -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
Phil Dawes
7fef05fd76
Removed VM_PTR macros. All builds reentrant by default
2009-10-14 19:14:57 +01: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
83b0769eef
renamed factorvm to factor_vm
2009-09-24 08:16:52 +01:00
Phil Dawes
3345922330
quick test vocab for mt stuff
2009-09-16 08:20:50 +01:00
Phil Dawes
ca16daa4b2
cleaned up code a bit, added multithreaded mode flags
2009-09-16 08:20:50 +01:00
Phil Dawes
2f3cd4d23d
removed some vm-> pointers
2009-09-16 08:17:26 +01:00
Phil Dawes
a4a4439fc5
got debug compiles working again
2009-09-16 08:16:32 +01:00
Phil Dawes
82e1ea7110
vm ptr passed to untag_check
2009-09-16 08:16:26 +01:00
Phil Dawes
e2993558a8
moved tagged template code back into tagged.hpp header
2009-09-16 08:16:26 +01:00
Phil Dawes
e4f92cdbf2
moved tagged.hpp templates to vm.hpp
2009-09-16 08:16:26 +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