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
833d9f9c0b
Fix quotation pooling
2008-12-08 21:24:45 -06:00
slava
fbc0f33c86
The deploy tool would coalesce equal quotations into one. This created a problem
...
for the non-optimizing compiler because if the new 'leader' quotation was not
compiled but some of the ones that it replaces were, then calls to the quotation
from contexts where they have to be compiled (eg, compiled if and dip) would no
longer work. Add a `jit-compile' primitive to compile quotations, and call it
as appropriate in `compress-quotations`.
2008-11-24 15:59:27 -06:00
Slava Pestov
a4282139dc
Add comments explaining recent changes
2008-11-24 09:27:15 -06:00
Slava Pestov
ab689c098b
Clean up direct literal code and make a first attempt at PowerPC support
2008-11-24 08:16:14 -06:00
Slava Pestov
2aaf860f47
Experimental optimizations
2008-11-24 06:40:51 -06:00
Slava Pestov
8663ca2982
Fix VM for PowerPC
2008-11-24 02:03:01 -06:00
Slava Pestov
d86524f4bc
Non-optimizing compiler now compiles dip, 2dip, 3dip, if, with direct branches instead of indirect branches. 8% bootstrap time improvement on Core Duo 2
2008-11-24 00:23:17 -06:00
Slava Pestov
1d6e389d18
Fixing walker, adding traceback tests
2008-11-23 21:40:54 -06:00
Slava Pestov
a4d9cdfeb3
Refactor all usages of >r/r> in core to use dip, 2dip, 3dip
...
Non-optimizing compiler now special-cases dip, 2dip, 3dip following a
literal quotation: this allows us to break the dip/slip meta-circle
without explicit calls to >r/r>
2008-11-23 02:44:56 -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
aff81d80e7
Fix walker
2008-07-13 02:29:59 -05:00
Slava Pestov
16b85df5db
Fixes and a small optiimization
2008-07-12 22:27:28 -05:00
Slava Pestov
380891943c
Better comments
2008-07-11 17:38:53 -05:00
Slava Pestov
a876005c98
Clean up non optimizing compiler, rewrite more primitives in assembly
2008-07-11 17:25:46 -05:00
Slava Pestov
70e370f69d
Fix walker
2008-07-07 19:26:58 -05:00
Slava Pestov
a8808b7087
Non-optimizing compiler now inlow inlines some primitives, this improves bootstrap time
2008-07-07 10:39:04 -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
98d8621ac1
First class compose, curry is now a tuple class
2008-02-11 13:50:29 -06:00
Slava Pestov
c6bc074472
Simplify code heap layout
2008-01-16 15:45:04 -05:00
Slava Pestov
028e0075d8
PowerPC support work in progress
2008-01-09 01:33:40 -05:00
Slava Pestov
928c68b506
JIT improvements; simpler 'current XT' relocation logic
2008-01-07 17:14:09 -04:00
Slava Pestov
b7327b6228
Redo the profiler
2008-01-02 20:36:36 -04:00
Slava Pestov
af41a0efe7
Re-implement callstack>array
2007-12-30 16:54:01 -05:00
Slava Pestov
93e1bdfcd7
Simplify JIT, fix tuples unit tests
2007-12-26 20:02:41 -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
c09af2f2c6
Improved JIT compiler design; better REGISTER_ROOT/UNREGISTER_ROOT stuff
2007-12-26 01:45:16 -05:00
Slava Pestov
3d784c7927
Simplify quotation calling convention: no need to pass XT
2007-12-25 23:40:36 -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
c9646d20c5
Working on smarter recompilation
2007-12-16 15:17:28 -05:00
Slava Pestov
fbcd41be39
Clean up
2007-12-12 00:32:43 -05:00
Slava Pestov
1f2001143c
Add type check to curry primitive
2007-11-25 15:27:11 -05:00
Slava Pestov
ef22d57ef6
Improved profiler doesn't require all words to be recompiled to enable/disable
2007-10-28 04:33:36 -04:00
Slava Pestov
5c58a50ac8
VM portion of improved deployment
2007-10-09 02:08:20 -04:00
Slava Pestov
fab1453bfc
Re-implemented single stepper for new evaluation model
2007-10-03 16:56:49 -04:00
Slava Pestov
d3ae70c53d
VM cleanup
2007-10-02 17:53:05 -04:00