Joe Groff
841600fc6e
vm: stage code block map fixup properly for GC
...
Don't update the map until the very last thing, and pass untranslated addresses to the iterator functors. Somewhat complicated by the fact that, for startup_fixup, the map is initialized with fixed-up values, so the fixup functor needs a flag indicating whether it operates with a fixed or unfixed code heap map.
2011-12-14 09:56:48 -08:00
Joe Groff
00967b4931
vm: iterate_callstack_reversed in slot_visitor
2011-12-14 09:56:47 -08:00
Joe Groff
b57d3af1d5
vm: initialize all_blocks set after initial fixup
2011-12-14 09:56:46 -08:00
Joe Groff
88c0a0e2ea
vm: fix msvc warning
2011-11-29 12:19:17 -08:00
Joe Groff
04d030ec25
vm: factor out embedded image detection code
2011-11-27 14:39:21 -08:00
Joe Groff
8b75193a57
vm: support self-executing image file
2011-11-27 12:37:54 -08:00
Joe Groff
55115d7971
vm: initialize all_blocks map from image
...
um, code blocks from the image need to go in the set too
2011-11-23 11:11:26 -08:00
Slava Pestov
20c6aaddec
Tease out symbol name and library in undefined_symbol() handler, for friendlier errors when calling an unresolved C function name. Fixes #93
2011-09-12 00:56:24 -07:00
Slava Pestov
7e2d888767
vm: fix RT_HERE fixup on image load
2010-06-11 21:54:47 -04:00
Slava Pestov
a08295d9b7
GC maps for more compact inline GC checks
2010-06-11 20:06:00 -04:00
Slava Pestov
1f2f72de5e
vm: implement frame-based SEH for 64-bit Windows
2010-04-08 10:32:14 -07:00
Doug Coleman
813928dd40
Refactor error handling in io.cpp. Update image.cpp and header files for changes.
2010-02-04 23:53:54 -06:00
Doug Coleman
f6002e6c78
Change the MOVE_FILE macro to a function named move_file
2010-02-03 15:12:13 -06:00
Doug Coleman
5bb6cc9471
Fix image save on Windows
2010-01-22 12:59:36 -06:00
Doug Coleman
9502f6f091
Save images to a temporary file first, then call MOVE_FILE to avoid writing incomplete and truncated images.
2010-01-22 12:59:20 -06:00
Doug Coleman
cf25ef8432
Tighten up libc file io code to avoid EINTR problems
2010-01-22 12:59:14 -06:00
Slava Pestov
0165daf56c
Stop wearing monocle and use the term "entry point" instead of "XT" throughout VM and compiler; also remove two unused relocation types
2010-01-18 20:54:00 +13:00
Slava Pestov
a942e2c34d
vm: eliminating register variables work in progress. Works on x86-32 with non-optimizing compiler
2009-12-19 10:59:56 +13:00
Slava Pestov
31a260b74c
vm: big overhaul of non-optimizing compiler
...
- change some primitives into sub-primitives: fixnum+ fixnum- fixnum* inline-cache-miss inline-cache-miss-tail
- rename some relocation types for clarity
- some other minor re-organizations and cleanups
2009-12-15 07:20:09 -05:00
Slava Pestov
daf47a539c
RT_HERE now takes its argument from the literal table rather than the parameter table, reducing image size further
2009-12-02 04:55:48 -06:00
Slava Pestov
912b1265fc
Split literal table into literal and parameter tables, literal table is discarded after code block initialization
2009-12-02 04:28:15 -06:00
Slava Pestov
8a25e8365a
vm: Clean up more code duplication and rename a few methods
2009-12-02 01:17:30 -06:00
Slava Pestov
5533a43a86
vm: factor out common code between image loading and initial code block relocation
2009-12-02 00:54:16 -06:00
Slava Pestov
ca7bca6738
Big cleanup of literal table and relocation-related code
...
- new way to iterate over instruction_operands cleans up relocation code
- move some methods out of the VM class to clean up code
- if debugging is on, die earlier if attempting to allocate inside GC
- callback heap entries are now code_blocks
- replace block_granularity with data_alignment
2009-12-02 00:48:41 -06:00
Slava Pestov
8d41693ee3
vm: growing heap no longer uses relocate_code_block()
2009-11-28 19:48:26 -06:00
Slava Pestov
e33d4d265b
vm: fix some typos
2009-11-27 22:54:24 -06:00
Slava Pestov
3d335474fe
vm: new image relocation that doesn't use literal table
2009-11-27 17:05:08 -06:00
Slava Pestov
49abe313a3
Clean up startup/shutdown hook code
2009-11-20 00:57:49 -06:00
Slava Pestov
585a1a7fbe
vm: fix fencepost error in write barrier on large object allocation; fixes benchmark.sort crash
2009-11-11 19:31:18 -06:00
Slava Pestov
4168ffbcee
New identity-hashcode primitive
2009-11-10 21:18:54 -06:00
Slava Pestov
065dac3736
vm: simpler object space implementation. begin-scan/next-object/end-scan primitives replaced by a single all-instances primitive
2009-11-05 21:49:03 -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
c7430d74c2
vm: remove promotion strategy, clean up compaction code
2009-11-01 03:47:09 -06:00
Slava Pestov
e2beabf2be
vm: new GC policy: mark sweep after N megabytes promoted, mark compact if tenured space cannot fit nursery+aging in one contiguous block. N = 32 on 32-bit and 64 on 64-bit
2009-10-30 02:26:57 -05:00
Slava Pestov
74ecd90cd6
vm: remove crummy old GC stats, split off free list code, clean up various other things
2009-10-26 22:08:35 -05:00
Slava Pestov
d574aeb70a
vm: make compaction its own gc_op
2009-10-25 14:02:14 -05:00
Slava Pestov
67a33ed21a
vm: vm: fix large object allocation logic and change default heap image size for 2009
2009-10-25 13:27:40 -05:00
Slava Pestov
074200a213
vm: make some more ctors explicit just for kicks
2009-10-24 23:02:58 -05:00
Slava Pestov
6c561b5c4c
vm: rename userenv to special_objects
2009-10-23 00:33:53 -05:00
Slava Pestov
e51882c555
vm: debugging mark and sweep
2009-10-21 23:24:35 -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
a03a817bdb
vm: mark sweep gc for tenured space work in progress
2009-10-20 22:20:49 -05:00
Slava Pestov
056ccc6741
vm: split off free_list_allocator from heap class, rename zone to bump_allocator
2009-10-20 15:26:11 -05:00
Slava Pestov
e7d707c92c
vm: simplify code heap by eliminating HeapLayout template parameter
2009-10-20 14:01:46 -05:00
Slava Pestov
6ab380dc02
vm: object start recording in cards is now independent of allocation strategy
2009-10-20 13:47:04 -05:00
Slava Pestov
1f97169c62
vm: move factor_vm::untagged_object_size() to object::size()
2009-10-20 13:13:39 -05:00
Slava Pestov
e68b570e2b
vm: move compaction algorithm to mark_bits.hpp since it doesn't rely on properties of heaps per se
2009-10-19 03:05:20 -05:00
Slava Pestov
a977ade0af
vm: fix conflict in image.cpp
2009-10-18 20:54:13 -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