Doug Coleman
aad70160f0
vm: Add more comments about functions that allocate.
2012-08-15 22:00:08 -07:00
Joe Groff
d74f194b07
vm: remove _reversed from callstack iterator names
...
Now that they're the only game in town we can give them the short names
2011-12-14 09:56:49 -08:00
Joe Groff
822a658cc3
vm: callstack_reversed in call_frame_scrubber
2011-12-14 09:56:48 -08:00
Joe Groff
e116bc497b
vm: reversed callstack iteration
2011-12-14 09:56:47 -08:00
Joe Groff
e2fafaed9c
WIP verify_callstack function
...
dumps callstack in reverse order so i can visually inspect that it matches the old forward walking logic
2011-12-14 09:56:47 -08: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
Joe Groff
73845fdad9
vm: separate 'current_gc_p' from 'current_gc'
...
The 'current_gc' handle doesn't need to be volatile, just the state of GC-ness
2011-11-02 13:23:19 -07:00
Slava Pestov
0f5e0eada5
vm: fix high_fragmentation_p assertion
2011-09-05 23:30:28 -07:00
Slava Pestov
83b8717bad
Clean up some GC logic and fix a bug where large object allocation could grow the heap unnecessarily
2011-09-05 16:28:00 -07:00
Slava Pestov
0fc8ee8250
Fix win64 compile error
2010-10-09 16:03:46 -05:00
Doug Coleman
8a0d0fca83
Revert previous patch; not simply a typo. Still broken on win64.
2010-09-29 20:49:37 -05:00
Doug Coleman
466e630dc9
Win64 Windows SDK hates int/cell type errors
2010-09-29 17:43:27 -05:00
Slava Pestov
ecb9ce4fc9
vm: don't need to save/restore FPU state when doing GC anymore, since we don't call nano_count() unless GC events are being recorded. If you want to record GC events with FP traps on, you're out of luck
2010-09-04 16:16:22 -05:00
Slava Pestov
2498a4d881
vm: don't call nano_count() from the GC at all, unless GC event recording is on
2010-09-04 13:21:45 -07:00
Slava Pestov
1818bcb780
Fix three problems discovered by running math.floats.env tests in a loop:
...
- Crash if allocating error triggers a GC from a signal/SEH handler
- Crash if GC runs with floating point traps enabled on Windows
- Floating point traps didn't prettyprint properly
2010-09-02 22:57:14 -05:00
Slava Pestov
70b8a74208
vm: have to be extra careful when messing with return addresses
2010-06-13 18:12:57 -04:00
Slava Pestov
3f28c0e7f5
vm: context switching needs to scrub the return address
2010-06-12 19:54:31 -04:00
Slava Pestov
806e54630a
GC maps for more compact inline GC checks
2010-06-11 20:06:00 -04:00
Joe Groff
ec6c2ccc3e
silence more msvc warnings
2010-05-05 22:32:45 -07:00
Slava Pestov
fec408260e
vm: tweak inline_gc() for PowerPC
2010-05-04 06:52:30 -04:00
Slava Pestov
95ff5ffe51
New GC checks work in progress
2010-05-03 17:34:16 -04:00
Slava Pestov
b740a1fe5d
vm: use C++ exceptions instead of longjmp(), to make Windows crash more
2010-04-02 14:10:55 -04:00
Slava Pestov
e4da687413
vm: Tweak Factor VM to compile with Microsoft Visual Studio on Windows, in addition to Mingw. Add an Nmakefile which can be used for this purpose. Rename Makefile to GNUmakefile.
2010-01-17 03:43:22 +13:00
Slava Pestov
63edd20a55
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
344c357ef1
vm: grow the heap if a full collection doesn't reclaim enough space
2009-12-05 19:03:53 -05:00
Slava Pestov
b28619ce2f
vm: minor GC traces embedded pointers
2009-11-22 13:37:39 -06:00
Doug Coleman
6f7ec206a1
rename millis to system-millis, micros to system-micros, add nano-count
2009-11-18 15:58:48 -06:00
Slava Pestov
2c8f67851e
vm: fix GC safety issue in callers of unbox_array_size(), and change how disable-gc-events works so that it doesn't make a byte array that's too large
2009-11-11 05:21:03 -06:00
Slava Pestov
064c00f78d
New identity-hashcode primitive
2009-11-10 21:18:54 -06:00
Slava Pestov
43e08c76fb
vm: on 32-bit, the largest free block size was only 512mb, leading to weird errors if the heap grew beyond this. eliminate this limit
2009-11-06 08:44:36 -06:00
Slava Pestov
11075828e5
vm: faster data_root and <array> primitive
2009-11-06 05:30:37 -06:00
Slava Pestov
e2107166ff
vm: restructure data_roots so that its a sequence of handle/len pairs rather than just handles, use it in inline_gc() and all_instances() so that we don't run out of heap while building the object array
2009-11-06 00:54:28 -06:00
Slava Pestov
72ab6ec548
vm: rewrite 'become' primitive so that it uses a slot visitor instead of GC
2009-11-05 19:03:51 -06:00
Slava Pestov
e1c365e69a
vm: fix issue with unnecessary heap growth
2009-11-03 22:25:22 -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
b2d96e5ef1
vm: remove debug messages
2009-11-01 20:34:54 -06:00
Slava Pestov
e28580dd0f
vm: faster sweep algorithm
2009-11-01 20:24:25 -06:00
Slava Pestov
7cbaf3e0a3
vm: don't do a data compaction when growing the data heap, speeds up data heap grow by a bit
2009-10-31 21:06:34 -05:00
Slava Pestov
b2ba465bcd
Merge optimizations from master branch
2009-10-31 03:02:19 -05:00
Slava Pestov
793d0606f6
vm: various minor optimizations speeding up gc0 and dispatch1 benchmarks, as well as bootstrap
...
- make allot_object() inline, move slow case to allot_large_object()
- reduce number of conditional branches in megamorphic cache miss handler
- make unbox_array_size() inline, move slow case to unbox_array_size_slow()
- new memset_cell() function uses memset_pattern4/8() on Mac OS X
2009-10-31 02:30:48 -05:00
Slava Pestov
5536003cf8
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
a1aac42786
vm: clean up gc events, remove -verbosegc switch, fix compaction bug
2009-10-27 21:31:28 -05:00
Slava Pestov
d95a98eb9c
vm: add primitives for getting at GC events, data-room and code-room primitives now return structs instead of arrays
2009-10-27 03:32:28 -05:00
Slava Pestov
91cec17e52
vm: get GC events working, -verbosegc switch now produces more info
2009-10-26 23:57:26 -05:00
Slava Pestov
a60bf14673
vm: add gc_event
2009-10-26 22:12:44 -05:00
Slava Pestov
e793a72060
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
c30df42e48
vm: make compaction its own gc_op
2009-10-25 14:02:14 -05:00
Slava Pestov
7d8c85443e
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
29a27cfde4
vm: data heap compaction work in progress
2009-10-24 04:18:33 -05:00
Slava Pestov
606a805d7d
vm: debugging mark and sweep
2009-10-21 23:24:35 -05:00