Slava Pestov
ae09d85d84
More compact relocation layout
2009-03-19 20:03:07 -05:00
Slava Pestov
78f168e304
Remove code_length field from F_CODE_BLOCK struct, and make F_BLOCK the head of F_CODE_BLOCK to simplify other code
2009-03-19 03:45:37 -05:00
Slava Pestov
ed1a2855b5
Big code GC refactoring
...
- Move code block-specific parts of code_gc.c to code_heap.c
- code_gc.c is now a generic malloc-style heap
- New code_block.c to split up large code_heap.c
- Clean up relocation code and remove some duplication
- Fix problems with code heap not being updated properly with uninterned words (bug re
ported by doublec)
- Remove boolean parameter from modify-code-heap primitive
- Less unnecessary fixup speeds up bootstrap slightly
2009-01-24 20:13:17 -06:00
Slava Pestov
32bb531621
Move literal tables out of code heap, instead each code block holds a reference to the literal table
2009-01-24 17:01:01 -06:00
Slava Pestov
a8d1459c08
Rename compiled slot of words to optimized, to reflect what it really means (all words are compiled)
2009-01-23 00:37:02 -06:00
Slava Pestov
ec23584f48
Finish up O(1) byte array allocation
2008-12-09 18:17:04 -06:00
Slava Pestov
eb79c6ab71
Fix conflict
2008-12-09 17:52:45 -06:00
Slava Pestov
0290be6e93
Exploit the fast-path for allocation of array with initial element 0 by changing
...
new-sequence on arrays, the vector constructor, and resize-array, called when
growing vectors, to fill arrays with 0 instead of f. user code never observes the
initial value in these situations anyway. small speedup on bootstrap
2008-12-06 18:37:28 -06:00
Slava Pestov
908644ee7a
O(1) <sbuf> and new-sequence on byte-arrays (work in progress)
2008-12-05 07:28:52 -06:00
Slava Pestov
e256846acd
Tweak string representation; high bit indicates if character has high bits in aux vector. Avoids memory access in common case. Split set-string-nth into two primitives; set-string-nth-fast is open-coded by optimizing compiler. 13% improvement on reverse-complement
2008-12-05 06:38:51 -06:00
Slava Pestov
cfbd3c679b
Remove unused function from VM
2008-11-27 23:28:38 -06:00
Slava Pestov
6dfce7d4e7
load-locals is a primitive now, change semantics of get-locals to bum out 2 instructions from the sub-primitive
2008-11-27 22:30:29 -06:00
Slava Pestov
cfa82cb474
New calling convention for VM primitives:
...
instead of the Factor side passing the stack pointer as the first parameter, and having the VM save it to stack_chain->top, we instead have the Factor side save it. Eliminates a lot of crud in the VM
2008-11-13 03:20:34 -06:00
Slava Pestov
cdb94e4c62
Word constructor was not invoking relocation on the profiled block, so words constructed while profiling was on could not be executed. This prevented profiling of PEGs
2008-11-11 23:07:40 -06:00
Slava Pestov
cc879fa9b7
Tuple layouts are now arrays, instead of built-in types. The superclass
...
array is now part of the tuple layout object itself, and class hashcodes
are stored alongside class words there. This removes 2 indirections when
reading a superclass, and 3 when reading a superclass hashcode.
2008-11-05 22:20:29 -06:00
Slava Pestov
ded36a2279
Fix GC bug
2008-09-28 21:55:40 -05:00
Slava Pestov
e1716d92b3
Remove delegation slot
2008-09-03 03:46:56 -05:00
Slava Pestov
a876005c98
Clean up non optimizing compiler, rewrite more primitives in assembly
2008-07-11 17:25:46 -05:00
slava
dc2c0876b6
Fix compile errors
2008-07-03 18:39:56 -05:00
Slava Pestov
f7eecc7893
Move bit-arrays and float-arrays to extra
2008-07-02 02:03:30 -05:00
Slava Pestov
8b8a3d988f
Remove dead code from VM
2008-06-12 03:07:02 -05:00
Slava Pestov
727cfcba43
Move relocation info out of the code heap and into the data heap
2008-05-30 01:31:05 -05:00
Slava Pestov
e9b9172a8e
VM changes for FFI encoding work
2008-04-20 06:15:14 -05:00
Slava Pestov
0a5701d868
Fix write barrier and roots problem with strings
2008-04-13 09:20:19 -05:00
Slava Pestov
3a374f2045
Fix amazing performance regression
2008-04-04 07:08:03 -05:00
Slava Pestov
e1ad21a439
Working on shapes
2008-03-26 03:57:48 -05:00
Slava Pestov
f944f2b20c
Add experimental disassembler
2008-02-14 17:56:47 -06:00
Slava Pestov
bc2ce8a77b
Space one byte per string
2008-02-04 14:05:31 -06:00
Slava Pestov
0311c0a842
Remove broken optimization
2008-02-04 13:07:34 -06:00
Slava Pestov
9f1bcc5d22
Fix resize-string
2008-02-01 18:36:13 -06:00
Slava Pestov
cef80543ad
Fix set-string-nth GC issue
2008-02-01 16:26:11 -06:00
Slava Pestov
d9f7acae0f
VM changes for record1 strings
2008-01-31 23:03:10 -06:00
Slava Pestov
6530057512
Starting work on record1 strings
2008-01-31 20:11:46 -06:00
Slava Pestov
fcf5801899
Data type cleanups
2008-01-29 23:13:47 -06:00
Slava Pestov
0cd2f857fe
bit-vectors byte-vectors float-vectors
2008-01-29 15:04:26 -06:00
Slava Pestov
03db080df7
Working on new resizables
2008-01-28 18:15:21 -06:00
Slava Pestov
a09e216582
Replace memory>string and string>memory with four primitives and update io.windows.nt.monitor
2008-01-26 23:38:30 -04:00
Slava Pestov
028e0075d8
PowerPC support work in progress
2008-01-09 01:33:40 -05:00
Slava Pestov
b7327b6228
Redo the profiler
2008-01-02 20:36:36 -04:00
Slava Pestov
c5d91d12df
Fix implementation of deferred words
2007-12-26 20:40:46 -05:00
Slava Pestov
1b9e04fdc5
Deferred words are now compound words
2007-12-26 17:28:34 -05:00
Slava Pestov
f91ec96425
Fix code heap compaction and clean up VM a bit
2007-12-26 17:14:33 -05:00
Slava Pestov
4bb2a43a10
Early binding JIT work in progress
2007-12-26 02:33:49 -05:00
Slava Pestov
07a4022d62
Parser, definitions, source-files refactoring work in progress
2007-12-21 21:18:24 -05:00
Slava Pestov
3c5b2073ef
Fix save-image-and-exit, clean up compiler a bit
2007-12-16 18:42:56 -05:00
Slava Pestov
d3ae70c53d
VM cleanup
2007-10-02 17:53:05 -04:00
Slava Pestov
f400729792
The JIT now compiles quotations when first invoked, not when constructed
2007-09-26 00:26:19 -04:00
Slava Pestov
0c6865a10b
Lazy JIT
2007-09-25 21:23:20 -04:00
Slava Pestov
a96457cecc
Initial import
2007-09-20 18:09:08 -04:00