Commit Graph

49 Commits (d03621d435a2deb85b99d78f903d6bc82b4f79e0)

Author SHA1 Message Date
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