Commit Graph

58 Commits (d2b20ddb358002dc1dc1fe9decebf168c62160ff)

Author SHA1 Message Date
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
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 814f6371d6 vm: mark sweep gc for tenured space work in progress 2009-10-20 22:20:49 -05:00
Slava Pestov a81f757a62 vm: fix conflict in image.cpp 2009-10-18 20:54:13 -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
Slava Pestov 69f9c80b5b vm: code heap: move mark bits to a separate bitmap 2009-10-16 14:41:40 -05:00
Slava Pestov 107c96f642 vm: code heap compaction at runtime using compact-gc primitive 2009-10-16 11:39:35 -05:00
Slava Pestov 85b746e7b5 vm: simpler and more efficient code heap compaction; restructure a few things to get ready for runtime code heap compaction 2009-10-16 04:33:35 -05:00
Slava Pestov 349cb41a29 Merge branch 'reentrantvm' of git://github.com/phildawes/factor 2009-10-16 03:52:35 -05:00
Slava Pestov 70dcecf61a vm: don't flush instruction cache twice per code block on a major GC on PowerPC 2009-10-15 22:31:41 -05:00