Slava Pestov
21f55ab1a3
vm: more efficient code heap remembered set
2009-10-08 23:10:32 -05:00
Slava Pestov
651a7fb6fa
vm: replace generations array with individual instance variables referencing zone objects
2009-10-07 11:59:59 -05:00
Slava Pestov
5c774d8c84
vm: more code cleanups
2009-10-07 08:33:54 -05:00
Slava Pestov
697e2342d0
vm: put code block owner directly in the header, instead of as the first entry in the literal table. Reduces x86-64 image size by ~700kb, also eliminates separate 'strip' set of staging images from deploy tool
2009-10-06 06:25:07 -05:00
Slava Pestov
16c3251072
vm: free up a cell in compiled code block headers
2009-10-06 05:52:45 -05:00
Slava Pestov
ed1ee19ce1
vm: add a remembered set for code blocks which may reference young literals. Improves loading time
2009-10-06 04:36:34 -05:00
Slava Pestov
d10e27149c
vm: cleanup
2009-10-06 01:42:17 -05:00
Slava Pestov
bae2240f62
vm: refactoring garbage collector
2009-10-05 22:16:08 -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
b6718641dc
Converted some callback fns to use member-fn pointers
2009-09-28 19:45:10 +01:00
Phil Dawes
9b7412b8f8
Moved PRIMITIVE and PRIMITIVE_FORWARDs to primitives.[ch]pp
2009-09-27 19:42:18 +01:00
Slava Pestov
c046ff4b23
vm: make heap data-type object-oriented
2009-09-25 20:32:00 -05:00
Phil Dawes
6b7717bf37
forwarding functions replaced with PRIMITIVE_FORWARD() macro
2009-09-25 20:43:01 +01:00
Phil Dawes
83b0769eef
renamed factorvm to factor_vm
2009-09-24 08:16:52 +01:00
Phil Dawes
e566656e46
removed a bunch of superflous blank lines
2009-09-24 08:02:14 +01:00
Phil Dawes
e3ac531fdb
renamed vmprim_ to primitive_
2009-09-24 08:02:13 +01:00
Phil Dawes
700e03a6a6
removed some vm-> forwarding functions
2009-09-16 08:17:26 +01:00
Phil Dawes
cdb6304fef
Dev checkpoint
2009-09-16 08:17:26 +01:00
Phil Dawes
afe1cf0c73
removed some global functions from code_heap
2009-09-16 08:16:27 +01:00
Phil Dawes
d5da6a3d58
Dev checkpoint
2009-09-16 08:16:25 +01:00
Phil Dawes
8fa607e9a9
Dev checkpoint
2009-09-16 08:16:25 +01:00
Phil Dawes
396eeeba34
moved global state from code_heap into vm
2009-09-16 08:16:24 +01:00
Phil Dawes
a2f14b5a6d
added vm member to gc_root and growable arrays
2009-09-16 08:16:22 +01:00
Phil Dawes
ee07c0b4e5
moved code_heap functions to vm
2009-09-16 08:16:20 +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
6e08e29a3a
Remove compiled slot from quotations since its not needed
2009-05-12 03:09:15 -05:00
Slava Pestov
581d017b46
Working on inline caching for tail call sites
2009-05-06 19:22:22 -05:00
Slava Pestov
56597b65f4
VM now compiles with GCC 3.4 on Windows
2009-05-05 14:17:02 -05:00
Slava Pestov
53db9d737a
Change (void) to ()
2009-05-05 11:33:35 -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
2bfde0250e
Fixing some build issues on Linux with GCC 4.3
2009-05-04 08:00:06 -04: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