Commit Graph

246 Commits (078ca0fa5876275272e46a24e96770879388cb07)

Author SHA1 Message Date
Slava Pestov 747974f4ae vm: nuke unused (string>float) primitive 2010-02-08 08:16:56 +13:00
Doug Coleman d22eb40360 Fix spaces that crept into vm/ cpp files 2010-02-06 01:06:26 -06:00
Doug Coleman f72bcd3346 reorder functions in header file 2010-02-04 23:55:17 -06:00
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 950eaed73a Change the MOVE_FILE macro to a function named move_file 2010-02-03 15:12:13 -06: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 942f6e0943 Update Win64 support 2010-01-25 15:39:34 +13: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
Slava Pestov 00328c85e0 vm: remove vm-ptr primitive 2010-01-20 17:06:49 +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 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 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 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 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
Slava Pestov 15eb8d1a0a vm: remove VM_ASM_API 2009-12-24 01:37:24 +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 0a3c5f5ac6 vm: fep out if monotonic counter decreases 2009-12-14 01:09:04 -06:00
Slava Pestov 9963d265ba vm: fix walker 2009-12-02 18:43:45 -05: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 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 58c21a1a11 vm: new image relocation that doesn't use literal table 2009-11-27 17:05:08 -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 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 bce084ac12 fix windows compile error 2009-11-20 04:21:21 -06:00
Doug Coleman 987602235e remove sleep_micros, add sleeo_nanos to vm 2009-11-19 04:49:29 -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 b4206f5252 initial commit to nanos branch to replace micros 2009-11-18 04:20:05 -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 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 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 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 57c541ea46 vm: eliminating literal table work in progress 2009-11-07 16:16:09 -06:00