Slava Pestov
4168ffbcee
New identity-hashcode primitive
2009-11-10 21:18:54 -06:00
Slava Pestov
b341527428
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
d65296b334
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
9cfe50f399
vm: tagged typechecks work better with DEBUG=1
2009-10-25 08:07:36 -05:00
Slava Pestov
6ee56ca93a
vm: use iostreams instead of printf for debug messages, clean up a few things
2009-10-21 20:12:57 -05:00
Slava Pestov
f9fc3487c6
vm: change code heap layout somewhat, remove unused allocation bitmap from mark_bits
2009-10-20 09:37:24 -05:00
Slava Pestov
89612b7f31
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
0b2db4018a
Removed VM_PTR macros. All builds reentrant by default
2009-10-14 19:14:57 +01:00
Slava Pestov
3887292543
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
1c5329cc2e
renamed factorvm to factor_vm
2009-09-24 08:16:52 +01:00
Phil Dawes
898f5be1e0
quick test vocab for mt stuff
2009-09-16 08:20:50 +01:00
Phil Dawes
05d17492ed
cleaned up code a bit, added multithreaded mode flags
2009-09-16 08:20:50 +01:00
Phil Dawes
fcfd971108
removed some vm-> pointers
2009-09-16 08:17:26 +01:00
Phil Dawes
d4f602c9e7
got debug compiles working again
2009-09-16 08:16:32 +01:00
Phil Dawes
537402274e
vm ptr passed to untag_check
2009-09-16 08:16:26 +01:00
Phil Dawes
967bfa63f4
moved tagged template code back into tagged.hpp header
2009-09-16 08:16:26 +01:00
Phil Dawes
5600f969b4
moved tagged.hpp templates to vm.hpp
2009-09-16 08:16:26 +01:00
Philipp Brüschweiler
18240b0219
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
d2c138150b
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
7c0a59f7a9
The great type renaming
2009-05-04 04:50:24 -05:00
Slava Pestov
7f48eb2b2c
Use C++ namespaces
2009-05-04 01:46:13 -05:00
Slava Pestov
1857f90eb6
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
dfaa338af7
Clean up untag_* and tag_* inline functions in favor of more idiomatic C++
2009-05-02 20:47:29 -05:00
Slava Pestov
938d1a4270
Move vmpp to vm
2009-05-02 20:37:18 -05:00