Slava Pestov
5180f80180
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
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
c04c15c52d
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
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
3289186df6
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
77e4430c86
Merge branch 'master' of git://factorcode.org/git/factor into no_literal_table
2009-11-27 18:32:21 -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
a684164783
Fix non-tail recursive inline recursive compilation
2009-11-25 19:12:09 -06:00
Slava Pestov
0ac2a92d56
vm: new implementation of modify-code-heap that doesn't use literal tables
2009-11-25 17:20:48 -06:00
Slava Pestov
19835ab32e
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
0521890f97
vm: flush icache after GC
2009-11-24 21:36:35 -06:00
Slava Pestov
49727354d1
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
3789e75e0c
vm: compaction now updates the needs_fixup set
2009-11-24 19:29:59 -06:00
Slava Pestov
bfa5340ea8
vm: mark sweep now traces code block references; rename embedded_pointer to instruction_operand
2009-11-23 19:17:12 -06:00
Slava Pestov
e66b8673f4
vm: minor GC traces embedded pointers
2009-11-22 13:37:39 -06:00
Slava Pestov
272deedefe
Fix conflict
2009-11-22 02:12:44 -06:00
Doug Coleman
37653c65c2
fix openbsd compile
2009-11-30 12:58:39 -06:00
Doug Coleman
26a9852b8c
fix windows compile error
2009-11-20 04:21:21 -06:00
Slava Pestov
49abe313a3
Clean up startup/shutdown hook code
2009-11-20 00:57:49 -06:00
Doug Coleman
a896eef7b4
remove sleep_micros, add sleeo_nanos to vm
2009-11-19 04:49:29 -06:00
Slava Pestov
fd24ceb79a
vm: fix compilation with DEBUG=1
2009-11-19 02:08:05 -06:00
Slava Pestov
a7d8a35bff
Fix potential assertion failure if GC was invoked while enabling profiling
2009-11-19 01:49:26 -06:00
Doug Coleman
7f4d38b4b3
vm/Config.openbsd: pass in -fno-inline-functions to work around apparent gcc bug
2009-11-18 19:06:26 -06:00
Doug Coleman
addb1c90bb
rename millis to system-millis, micros to system-micros, add nano-count
2009-11-18 15:58:48 -06:00
Doug Coleman
f244eaf6f2
link against librt
2009-11-18 11:09:05 -06:00
Doug Coleman
4b9244ee85
fix current_nanos on windows
2009-11-18 11:04:46 -06:00
Doug Coleman
1861dd2705
initial commit to nanos branch to replace micros
2009-11-18 04:20:05 -06:00
Slava Pestov
bd76bcd52b
vm: fix problem in card marking if first block is free
2009-11-16 00:52:32 -06:00
Doug Coleman
14463be60b
update vm for startup branch
2009-11-15 02:53:02 -06:00
Doug Coleman
3323072613
Merge branch 'master' into startup
...
Conflicts:
core/bootstrap/primitives.factor
vm/run.hpp
2009-11-15 02:52:50 -06:00
Slava Pestov
71dad47a32
vm: record compaction events correctly
2009-11-13 09:29:21 -06:00
Slava Pestov
eb165a5450
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
06fb247b8c
Invalidate inline caches used by call( and execute( when words are redefined
2009-11-12 16:09:07 -06:00
Slava Pestov
61f1f3b473
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
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
81a68ebd36
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
21c165190c
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
68f3087c1c
Faster identity-hashcode primitive; fast path now opencoded by the compiler
2009-11-11 02:27:19 -06:00
Slava Pestov
4168ffbcee
New identity-hashcode primitive
2009-11-10 21:18:54 -06:00
Slava Pestov
9af2fa1957
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
07b56b9806
vm/contexts: cleanup
2009-11-08 19:44:18 -06:00
Slava Pestov
371ff1498d
vm: minor cleanup
2009-11-08 06:08:17 -06:00
Samuel Tardieu
1d21953f95
Add parentheses to prevent GCC warning
2009-11-08 02:01:48 +01:00
Slava Pestov
c434201b33
vm: eliminating literal table work in progress
2009-11-07 16:16:09 -06:00
Slava Pestov
e150707ec5
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