Doug Coleman
06f02d1314
Refactor error handling in io.cpp. Update image.cpp and header files for changes.
2010-02-04 23:53:54 -06:00
Doug Coleman
a2ce57d856
Allow setting errno instead of just clearing it
2010-02-03 17:20:24 -06:00
Doug Coleman
7447fc1073
fix typo in os-windows.cpp
2010-02-03 16:03:22 -06:00
Doug Coleman
950eaed73a
Change the MOVE_FILE macro to a function named move_file
2010-02-03 15:12:13 -06:00
Slava Pestov
22fbe01c17
Compiled code size optimizations for x86-64 resulting in development image size reduction of about 350kb
...
- RIP-relative LEA is now used to load program counter in prolog and tail calls; saves 3 bytes of code and 4 bytes of relocation information over an immediate MOV
- VM field accesses no longer involve a redundant addition
2010-02-03 23:11:35 +13:00
Slava Pestov
bf40237a17
vm: always check call sites when installing PICs, not just when FACTOR_DEBUG is on, since the check is cheap and saves debugging time when compiler is changed
2010-02-03 23:11:34 +13:00
Slava Pestov
26cae00eeb
Add code heap introspection primitive to VM, and make a code-blocks word in tools.memory that wraps a useful interface around this. Add a lookup-return-address word and use this in tools.disassembler.utils
2010-02-03 23:11:32 +13:00
Slava Pestov
3259ef4bec
vm: modify-code-heap primitive now takes a pair of parameters, update-existing? and reset-pics?. If no generic words were changed, PICs do not need to be reset. If no existing words were redefined, the code heap doesn't have to be traced at all. Speeds up compilation of PEGs since those create lots of compilation units
2010-02-03 23:11:28 +13:00
Slava Pestov
fbf078d4b3
words: undefined error now contains the word in question
2010-02-03 23:11:23 +13:00
Slava Pestov
7d9628a6ae
vm: fix ffi_test.h
2010-02-02 05:15:42 -05:00
Slava Pestov
bf05a901c4
Fix ffi-test library to work with Windows SDK. Turns out MINGW has a different ABI for struct returns than MS's compiler; make the MS ABI the default for cdecl on Windows, and add mingw ABI for libraries that use the MINGW ABI
2010-02-02 04:01:12 -06:00
erikc
f33c73bf94
Merge up
2010-01-30 20:39:43 -08:00
Slava Pestov
94c93f0bc7
vm: 'become' primitive needs to update literal references in code blocks
2010-01-27 18:42:31 +13:00
Slava Pestov
942f6e0943
Update Win64 support
2010-01-25 15:39:34 +13:00
Doug Coleman
7c40fc1a36
unix-system-call io-error -> unix-system-call drop
...
make unix.ffi, unix.ffi.linux unportable
fix spacing in io.cpp before refactoring
2010-01-23 09:07:35 -06:00
Doug Coleman
40cf302d2d
Fix image save on Windows
2010-01-22 12:59:36 -06:00
Doug Coleman
bb2f455747
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
bbd4e27275
Tighten up libc file io code to avoid EINTR problems
2010-01-22 12:59:14 -06:00
Slava Pestov
00328c85e0
vm: remove vm-ptr primitive
2010-01-20 17:06:49 +13:00
Slava Pestov
cc69719147
vm: don't recompile lazy-jit-compile more than once
2010-01-20 02:48:31 +13:00
Slava Pestov
5606825e8b
vm: remove primitive table, non-optimizing compiler now looks up primitives with dlsym()
2010-01-19 20:00:33 +13:00
Slava Pestov
d36b83d6a9
Use ParseCommandLineArgvw() on Windows again, instead of hand-rolled parser. Update Nmakefile to link in shell32.dll, where this function is defined
2010-01-18 06:12:04 -06:00
Slava Pestov
637a77c018
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
64935158a0
vm: fix command line parsing on Windows
2010-01-17 00:05:52 -06:00
Doug Coleman
1d2e4747a9
Work around gcc bug on openbsd
2010-01-16 23:59:16 -06:00
Slava Pestov
3fba385c74
Remove generated file factor.res added by mistake
2010-01-17 18:00:26 +13:00
Slava Pestov
d478fd01f0
Nmakefile: build factor.dll and link in resource file
2010-01-16 22:41:17 -06: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
2aa4d3d432
vm: fix compilation on 64-bit platforms
2010-01-14 02:18:49 +13:00
Slava Pestov
2922e08ed9
vm: rework platform.hpp so that it is no longer necessary to pass -DFACTOR_64 and -DWINDOWS when compiling VM
2010-01-13 23:06:45 +13:00
Slava Pestov
7bf76b9f13
PowerPC optimizing compiler backend fixes
2010-01-12 08:02:10 -06:00
Slava Pestov
8d34a0f3c1
Store VM object in a register on x86-64
2010-01-11 01:20:32 +13:00
Slava Pestov
6266b41325
Starting to update PowerPC backend for recent VM changes (untested)
2010-01-08 19:46:27 +13:00
Slava Pestov
0fd3c78157
vm: remove some unused #defines
2010-01-07 21:33:19 +13:00
Slava Pestov
97a042085d
Merge branch 'master' of git://factorcode.org/git/factor
2010-01-07 01:40:39 -05:00
Slava Pestov
f5cc9ef66d
vm: add VM_C_API declaration for factor_memcpy function
2010-01-07 01:40:20 -05:00
Slava Pestov
1f88a925b4
Fix set-callstack primitive on Windows
2010-01-07 19:31:15 +13:00
Slava Pestov
ea2bd73214
Remove .S support from Makefile
2010-01-07 18:12:33 +13:00
Slava Pestov
0ad8ba204b
vm: remove asm.h
2010-01-07 18:05:31 +13:00
Slava Pestov
235f3238f5
Add alien-assembly form for inline assembler, works like alien-invoke except calls a user-supplied quotation instead of generating a subroutine call. Replaces FPU status control, SSE detection and read timestamp routines in vm/cpu-x86.*S
2010-01-07 17:39:22 +13:00
Slava Pestov
89e9f77b44
vm: Remove some dead code
2010-01-07 13:54:22 +13:00
Slava Pestov
6971df91fe
vm: remove unnecessary call to compile_all_words() from primitive_become()
2010-01-07 13:49:29 +13:00
Slava Pestov
c04fef10c7
vm: ensure that non-optimized calls to generic words which have not yet been compiled can still work
2010-01-06 23:49:14 +13:00
Slava Pestov
47c6197799
Update x86-32 for assembly entry point changes
2010-01-06 17:55:20 +13:00
Slava Pestov
36d2ac8921
vm: move c_to_factor, lazy_jit_compile_impl, throw_impl, set_callstack assembly routines into non-optimizing compiler for x86-64
2010-01-06 15:47:36 +13:00
Slava Pestov
18929373b9
Merge branch 'master' of git://factorcode.org/git/factor
2010-01-03 23:21:31 +13:00
Slava Pestov
ba5b90e063
Change how non-volatile register preservation is done in alien callbacks, with the aim of fixing callbacks on PowerPC, and to eventually eliminate assembly code from VM
...
- Simplify calculation of offset in relocation table
- Open-code %alien-callback
- Remove magic_frame hack from context objects
- Move magical return instruction from optimizing compiler backend into callback entry stub
2010-01-03 01:11:51 +13:00
Doug Coleman
eae646bfa0
remove warning
2009-12-28 10:02:36 -06:00
Doug Coleman
348b4bd2dc
Merge branch 'master' of git://factorcode.org/git/factor
2009-12-28 09:58:19 -06:00
Doug Coleman
964dbfe72d
avoid integer division in nano_count on windows
2009-12-28 09:56:10 -06:00
Slava Pestov
81430947d5
PowerPC: fix set-callstack primitive and start updating optimizing compiler backend for recent changes
2009-12-28 08:08:15 -06:00
Slava Pestov
285caff08e
Updating non-optimizing PowerPC backend for register variable removal (untested)
2009-12-28 12:40:45 +13:00
Slava Pestov
4d70649914
Merge branch 'eliminating_register_variables'
2009-12-27 01:29:53 +13:00
Slava Pestov
a77f48fe6b
Updating x86-64 port for global register variable removal
2009-12-27 01:17:42 +13:00
Slava Pestov
67153bf4bb
Fix bug in c_to_factor
2009-12-26 15:24:46 +13:00
Slava Pestov
7271900e6f
vm: code cleanup
2009-12-26 15:24:21 +13:00
Doug Coleman
7fa3b71c07
Add 0xe06d7363 to debugger.windows. Remove case 0xe06d7363 from SEH.
2009-12-23 14:04:52 -06:00
Slava Pestov
15eb8d1a0a
vm: remove VM_ASM_API
2009-12-24 01:37:24 +13:00
Doug Coleman
ab7792f25c
remove debug output
2009-12-22 14:39:30 -06:00
Doug Coleman
7077cb4bfb
try a different approach to fix the windows monotonic counter
2009-12-22 14:36:33 -06:00
Doug Coleman
c84f46fe8b
Ignore yet another undocumented exception. Tricks of the trade, I guess.
2009-12-22 13:33:39 -06:00
Slava Pestov
2b8521a326
Merge branch 'master' into eliminating_register_variables
2009-12-22 15:50:15 +13:00
Slava Pestov
febccd5f62
vm: if an aging GC is triggered while uninitialized code blocks are in the code heap, the code heap remembered set becomes out of date, resulting in code blocks pointing at invalid data
2009-12-22 15:49:21 +13:00
Slava Pestov
e96404327e
Get optimizing compiler working without global register variables in VM
2009-12-22 15:42:49 +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
eb0a28aa54
Merge branch 'master' of git://factorcode.org/git/factor
2009-12-15 07:21:17 -05:00
Slava Pestov
0068bce934
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
dde84a11fb
Merge branch 'master' of git://factorcode.org/git/factor
2009-12-14 01:09:40 -06:00
Slava Pestov
0a3c5f5ac6
vm: fep out if monotonic counter decreases
2009-12-14 01:09:04 -06:00
Doug Coleman
b0b1da0923
Merge branch 'master' of git://factorcode.org/git/factor
...
Conflicts:
vm/os-windows-nt.cpp
2009-12-13 20:45:40 -06:00
Doug Coleman
0eccec2133
workaround for QueryPerformanceCounter: if the high part of the count doesn't increment when the low part overflows, keep track of this and add the correction on future calls to nano_count
2009-12-13 20:42:51 -06:00
Doug Coleman
1454e534fe
fix a couple of warnings on win64
2009-12-13 20:00:02 -06:00
Slava Pestov
62e7aed2d3
vm/os-windows-nt.cpp: fix formatting
2009-12-13 16:52:59 -06:00
Slava Pestov
564934a9f1
fix compiler warning on linux
2009-12-13 16:10:30 -06:00
Slava Pestov
6552a4524c
vm: OS X version ccheck was failing on 10.5.0
2009-12-11 19:31:19 -05: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
9705768e3f
vm: remove DEFPUSHPOP macro
2009-12-04 20:56:48 -05:00
Slava Pestov
ead592697b
vm: be more eager to do a full collection to avoid fragmentation leading to heap growth
2009-12-04 03:41:19 -05:00
Slava Pestov
9963d265ba
vm: fix walker
2009-12-02 18:43:45 -05:00
Slava Pestov
998cc59dbc
vm: PowerPC fixes
2009-12-02 16:24:42 -06:00
Slava Pestov
d76d49d6cd
Fix typo in instruction_operand::load_value_masked()
2009-12-02 09:24:23 -05:00
Slava Pestov
514043eb14
vm: fix instruction_operand::load_value() for PowerPC relocation classes
2009-12-02 09:20:33 -05:00
Slava Pestov
066d2836ca
Get modify-code-heap working if stack traces are stripped (but then it won't update existing code blocks), and rename code_heap::code_heap_free() to code_heap::free()
2009-12-02 05:27:48 -06:00
Slava Pestov
eb840dcf41
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
68c09f0e93
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
147edb1ce9
vm: update callback stub machine code at the end of compaction to prevent it from seeing an inconsistent data stack
2009-12-02 03:31:57 -06:00
Slava Pestov
d49c86ba11
vm: Clean up more code duplication and rename a few methods
2009-12-02 01:17:30 -06:00
Slava Pestov
d664507b36
vm: factor out common code between image loading and initial code block relocation
2009-12-02 00:54:16 -06:00
Slava Pestov
c6602bda27
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
260cc9e2ff
vm: growing heap no longer uses relocate_code_block()
2009-11-28 19:48:26 -06:00
Slava Pestov
9a79a6253c
vm: fix some typos
2009-11-27 22:54:24 -06:00
Slava Pestov
333c7654ae
Merge branch 'no_literal_table' of git://factorcode.org/git/factor into no_literal_table
2009-11-27 18:33:34 -06:00
Slava Pestov
b683ecaa74
Merge branch 'master' of git://factorcode.org/git/factor into no_literal_table
2009-11-27 18:32:21 -06:00
Slava Pestov
58c21a1a11
vm: new image relocation that doesn't use literal table
2009-11-27 17:05:08 -06:00
Slava Pestov
bd02eef38e
Fix non-tail recursive inline recursive compilation
2009-11-25 19:12:09 -06:00
Slava Pestov
77a877789a
vm: new implementation of modify-code-heap that doesn't use literal tables
2009-11-25 17:20:48 -06:00
Slava Pestov
4ebaf956c3
vm: non-optimizing compiler now compiles word definition quotations with the owner set to the word object
2009-11-24 22:44:04 -06:00
Slava Pestov
73e105bfc4
vm: flush icache after GC
2009-11-24 21:36:35 -06:00
Slava Pestov
b09d6ef586
vm: deallocate old PIC after allocating the new one to avoid having the code heap potentially point to a free block during compaction
2009-11-24 21:20:23 -06:00
Slava Pestov
bfd4cce364
vm: compaction now updates the needs_fixup set
2009-11-24 19:29:59 -06:00
Slava Pestov
001a3f2847
vm: mark sweep now traces code block references; rename embedded_pointer to instruction_operand
2009-11-23 19:17:12 -06:00
Slava Pestov
b28619ce2f
vm: minor GC traces embedded pointers
2009-11-22 13:37:39 -06:00
Slava Pestov
57fe0dea48
Fix conflict
2009-11-22 02:12:44 -06:00
Doug Coleman
6b780f5843
fix openbsd compile
2009-11-30 12:58:39 -06:00
Doug Coleman
bce084ac12
fix windows compile error
2009-11-20 04:21:21 -06:00
Slava Pestov
24c3ddbbde
Clean up startup/shutdown hook code
2009-11-20 00:57:49 -06:00
Doug Coleman
987602235e
remove sleep_micros, add sleeo_nanos to vm
2009-11-19 04:49:29 -06:00
Slava Pestov
2e3207b590
vm: fix compilation with DEBUG=1
2009-11-19 02:08:05 -06:00
Slava Pestov
f47b72d98b
Fix potential assertion failure if GC was invoked while enabling profiling
2009-11-19 01:49:26 -06:00
Doug Coleman
251ebb7f91
vm/Config.openbsd: pass in -fno-inline-functions to work around apparent gcc bug
2009-11-18 19:06:26 -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
Doug Coleman
0145f0f860
link against librt
2009-11-18 11:09:05 -06:00
Doug Coleman
60d8ef22b8
fix current_nanos on windows
2009-11-18 11:04:46 -06:00
Doug Coleman
b4206f5252
initial commit to nanos branch to replace micros
2009-11-18 04:20:05 -06:00
Slava Pestov
cf35ffb126
vm: fix problem in card marking if first block is free
2009-11-16 00:52:32 -06:00
Doug Coleman
51e21a6aa8
update vm for startup branch
2009-11-15 02:53:02 -06:00
Doug Coleman
cc194416f9
Merge branch 'master' into startup
...
Conflicts:
core/bootstrap/primitives.factor
vm/run.hpp
2009-11-15 02:52:50 -06:00
Slava Pestov
4c268f2600
vm: record compaction events correctly
2009-11-13 09:29:21 -06:00
Slava Pestov
86da8ebed9
Instead of bumping the definition counter every time in the VM, bump it only if stack effects changed or macros were redefined
2009-11-13 03:52:14 -06:00
Slava Pestov
cba12eae37
Invalidate inline caches used by call( and execute( when words are redefined
2009-11-12 16:09:07 -06:00
Slava Pestov
9a475570e4
Revert "Revert "vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists""
...
This reverts commit 81a68ebd36
.
2009-11-11 19:33:50 -06:00
Slava Pestov
c2b3d6b894
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
5169dddc40
Revert "vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists"
...
This reverts commit 9af2fa1957
.
2009-11-11 05:47:22 -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
2afd7ce244
Faster identity-hashcode primitive; fast path now opencoded by the compiler
2009-11-11 02:27:19 -06:00
Slava Pestov
064c00f78d
New identity-hashcode primitive
2009-11-10 21:18:54 -06:00
Slava Pestov
4162ee2127
vm: faster allocation in tenured space and code heap. If small free list exhausted, allocate a 1kb block and split it up instead of searching larger free lists
2009-11-10 20:19:29 -06:00
Slava Pestov
cb6552ae6e
vm/contexts: cleanup
2009-11-08 19:44:18 -06:00
Slava Pestov
8b52d85aed
vm: minor cleanup
2009-11-08 06:08:17 -06:00
Samuel Tardieu
351e795a52
Add parentheses to prevent GCC warning
2009-11-08 02:01:48 +01:00
Slava Pestov
57c541ea46
vm: eliminating literal table work in progress
2009-11-07 16:16:09 -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
eac0f9ffcf
vm: report true size of mark stack
2009-11-06 04:15:55 -06:00
Slava Pestov
c512013220
vm: fix crash if all-instances primitive triggers a GC
2009-11-06 01:41:11 -06:00
Slava Pestov
84e191704e
vm: fix crash in profiler
2009-11-06 01:22:53 -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
b011295300
vm: fix 'become' when aging space is empty
2009-11-05 23:53:53 -06:00
Slava Pestov
c08d325132
Remove unused error from VM
2009-11-05 21:52:31 -06:00
Slava Pestov
4061951d1c
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
18a2ce1f8c
vm: remove some dead code
2009-11-05 19:32:26 -06:00
Slava Pestov
22c717616c
vm: speed up some bit twiddling on 32-bit
2009-11-05 19:29:27 -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
47df580081
tools.time: overhaul
2009-11-05 01:07:59 -06:00
Slava Pestov
2b1a26228b
Align stack pointer on non-Mac OS X x86-32 platforms, and use aligned loads/stores for SIMD values
2009-11-03 23:51:44 -06:00
Slava Pestov
e1c365e69a
vm: fix issue with unnecessary heap growth
2009-11-03 22:25:22 -06:00
Slava Pestov
9ffb01a9bd
vm: fix fixnum* overflow case for 4-bit tags
2009-11-03 21:40:47 -06:00
Slava Pestov
ed3ab1335e
vm: minor fixes after code review
2009-11-03 04:56:58 -06:00
Slava Pestov
2c0531b015
vm: faster immediate_p()
2009-11-02 20:21:21 -06:00
Slava Pestov
3b767c4d08
vm: remove debug messages
2009-11-02 18:24:04 -06:00
Slava Pestov
68217016d0
vm: add two missing files
2009-11-02 18:11:12 -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
e4ad642134
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
7e17c3077c
vm: new megamorphic hashcode algorithm improves bootstrap speed
2009-11-02 01:37:58 -06:00
Slava Pestov
94e9230ba3
vm: promote objects referenced from compiled code blocks directly to tenured in an aging collection
2009-11-01 23:14: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
882daae06c
vm: more sweep phase optimizations
2009-11-01 04:40:15 -06:00
Slava Pestov
5ae40e26ee
vm: remove promotion strategy, clean up compaction code
2009-11-01 03:47:09 -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
b202371d62
vm: faster tuple allocation primitives
2009-10-31 02:58:00 -05:00
Slava Pestov
d33d7728a0
vm: fix compile error on non-Mac OS X platforms
2009-10-31 02:36:46 -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
6f7607eed7
vm: clean up card unmarking
2009-10-30 03:15:50 -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
a7b55e7068
vm: use STL in free list, makes finding largest contiguous free block slightly faster
2009-10-27 18:22:08 -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
cf247c23a2
vm: room. now prints mark stack size, and total/contiguous free space
2009-10-25 13:18:06 -05:00
Slava Pestov
49baf397f4
vm: tagged typechecks work better with DEBUG=1
2009-10-25 08:07:36 -05:00
Slava Pestov
b7181d14a8
vm: debugging compaction
2009-10-25 08:07:21 -05:00
Slava Pestov
b6a21b19a9
vm: fix compaction when callback heap has entries in it
2009-10-25 00:06:45 -05:00
Slava Pestov
0c1e266302
vm: got data heap compaction working
2009-10-24 23:51:14 -05:00
Slava Pestov
0b65b194c9
vm: fix 'data-room' primitive to report correct sizes for tenured space
2009-10-24 23:49:33 -05:00
Slava Pestov
fae27fb361
vm: make some more ctors explicit just for kicks
2009-10-24 23:02:58 -05:00
Slava Pestov
62e718eaa9
vm: combine heap_block and code_block structs, eliminates some boilerplate
2009-10-24 21:33:31 -05:00
Slava Pestov
45a955b5bb
vm: fix typo in card tracing logic
2009-10-24 04:43:11 -05:00
Slava Pestov
d855593f1f
vm: clean up code heap visitor
2009-10-24 04:36:29 -05:00
Slava Pestov
03f4b4cdd6
vm: move binary_payload_start() method from factor_vm to object class
2009-10-24 04:27:45 -05:00
Slava Pestov
29a27cfde4
vm: data heap compaction work in progress
2009-10-24 04:18:33 -05:00
Slava Pestov
fd1e992e7d
vm: factor out code that visits object slots and code heap blocks into slot_visitor and code_block_visitor
2009-10-24 03:54:53 -05:00
Slava Pestov
810e309e0c
vm: rename userenv to special_objects
2009-10-23 00:33:53 -05:00
Slava Pestov
6597e0ea3a
vm/mark_bits.hpp: fix incorrect constructor argument order
2009-10-22 23:41:02 -05:00
Slava Pestov
3394309659
Merge branch 'master' into new_gc
2009-10-22 05:40:57 -05:00
Slava Pestov
3d5c3935ad
vm: fix compilation
2009-10-22 06:38:02 -04:00
Slava Pestov
f24942e063
vm: clean up signal handling and add EXC_BAD_INSTRUCTION Mach exception handler for OS X, since signal handlers cannot change the stack pointer
2009-10-22 05:22:59 -05:00
Joe Groff
432d4f79e9
give better error message for windows exceptions, and don't lop off the top end of the exception code when the vm throws the error
2009-10-21 23:37:51 -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
af855b7fa9
vm: debugging mark-sweep
2009-10-21 19:41:54 -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
f0816d72f1
vm: split off free_list_allocator from heap class, rename zone to bump_allocator
2009-10-20 15:26:11 -05:00
Slava Pestov
a9dbbd1efb
vm: simplify code heap by eliminating HeapLayout template parameter
2009-10-20 14:01:46 -05:00
Slava Pestov
e482940dca
vm: object start recording in cards is now independent of allocation strategy
2009-10-20 13:47:04 -05:00