Commit Graph

244 Commits (d5aa789b465d73ab853f7494201abdbfb6c1fa7f)

Author SHA1 Message Date
Slava Pestov 57a47d9566 Rename update to assoc-union!, add assoc-filter! assoc-diff! words 2010-02-04 02:55:00 +13:00
Slava Pestov 80f604ac73 compiler: remove some unnecessary complexity 2010-02-04 01:36:52 +13:00
Slava Pestov 7fa61addcd words: undefined error now contains the word in question 2010-02-03 23:11:23 +13:00
Slava Pestov 03a74f2237 classes: If a tuple class with subclasses is redefined into something that's not a tuple class, subclasses are changed to inherit from 'tuple' instead of being forgotten. Also, changing the metaclass of a union or intersection member no longer removes it from the union or intersection. Finally, make some internal words private 2010-02-01 02:48:39 +13:00
Slava Pestov 1e9dc571f2 Fix and clean up stage1 bootstrap 2010-01-28 17:30:35 +13:00
Slava Pestov 1615614a93 command-line: if -e= is passed, don't run main vocab after evaluation ends 2010-01-25 21:05:42 +13:00
Slava Pestov 711d78f511 vm: don't recompile lazy-jit-compile more than once 2010-01-20 02:48:31 +13:00
Slava Pestov 790674cf89 Rename kernel.private:getenv/setenv to special-object/set-special-object to mirror recent renaming on the VM side 2010-01-13 18:08:18 +13:00
Slava Pestov d2baa6dde5 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 9399a68786 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 6d9c17eea3 Fix PowerPC compiler backend for recent changes 2009-12-15 09:51:20 -05:00
Slava Pestov 31a260b74c 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 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 08b6ebc7fa Factor source files should not be executable 2009-11-21 17:50:43 -06:00
Slava Pestov 49abe313a3 Clean up startup/shutdown hook code 2009-11-20 00:57:49 -06:00
Slava Pestov 312e86e19e Bootstrap and mason now record times in nanoseconds 2009-11-19 23:50:30 -06:00
Doug Coleman b335fdb13c use nano-count for timing bootstrap 2009-11-19 18:24:34 -06:00
Doug Coleman dbf43359bf report times in ms again 2009-11-19 04:05:57 -06:00
Doug Coleman 34ab575597 print correct time on bootstrap 2009-11-19 03:22:43 -06:00
Slava Pestov 5a526095dc bootstrap.stage2: fix bootstrap time reporting 2009-11-19 02:08:28 -06:00
Doug Coleman ca39b38303 remove system-millis and update vocabs to use system-micros or nano-count 2009-11-18 20:56:09 -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
Slava Pestov 80a6629a83 Fixes to bootstrap-error.factor and finish-staging.factor 2009-11-16 01:14:24 -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 4168ffbcee New identity-hashcode primitive 2009-11-10 21:18:54 -06:00
Slava Pestov 40a82aba19 tools.time: overhaul 2009-11-05 01:07:59 -06:00
Slava Pestov d65296b334 vm: 4 bit tags, new representation of alien objects makes unbox-any-c-ptr more efficient (work in progress) 2009-11-02 04:25:54 -06:00
Slava Pestov 5da0b1a22e Merge branch 'master' into new_gc 2009-10-30 21:04:37 -05:00
Slava Pestov d100bb355b Merge branch 'master' of git://factorcode.org/git/factor 2009-10-30 21:00:26 -05:00
Slava Pestov 515512a814 bootstrap.image: small speedup 2009-10-30 20:53:18 -05:00
Joe Groff 9ae404b304 no need to pre-compile roll/-roll since they're not used in core or basis anymore 2009-10-30 18:00:47 -05:00
Joe Groff eecef661cf exile roll and -roll to basis/shuffle and mark them deprecated 2009-10-30 17:11:45 -05:00
Slava Pestov 051dcb6849 Merge branch 'master' into new_gc 2009-10-30 03:03:05 -05:00
Doug Coleman b5fd809209 memq? -> member-eq?, sorted-memq? -> sorted-member-eq? 2009-10-28 15:02:00 -05:00
Slava Pestov 34d3d4962a change-each -> map!, deep-change-each -> deep-map! 2009-10-27 22:32:56 -05:00
Slava Pestov 8715b67644 Merge branch 'master' into new_gc 2009-10-24 01:31:15 -05:00
Slava Pestov 64995237a7 Re-organize a few things to reduce '-include=' image size 2009-10-23 04:32:17 -05:00
Doug Coleman 42cc38010a run bootstrap and startup hooks inside a with-destructors. use &dispose instead of setting shutdown hooks in a couple of places 2009-10-20 18:26:10 -04:00
Slava Pestov f442d1949b Change data heap alignment to 16 bytes 2009-10-20 12:45:00 -05:00
Doug Coleman 6fa23d7ea4 change add-init-hook to add-startup-hook, new add-shutdown-hook word 2009-10-19 22:17:02 -04:00
Slava Pestov 030d035e94 vm: code heap compaction at runtime using compact-gc primitive 2009-10-16 11:39:35 -05:00
Slava Pestov bfd1f0d6d2 vm: rt-vm relocation now supports accessing a field directly 2009-10-14 19:24:23 -05:00
Keith Lazuka 8f79ea91ba docs: change $subsection to $subsections 2009-10-02 12:15:48 -04:00
Slava Pestov 0a60f18e28 vm: ignore 'declare' calls in non-optimizing compiler 2009-09-25 18:08:21 -05:00
Slava Pestov 527db8995a Specialized array overhaul
- Replace hand-written specialized-arrays.* subvocabularies with new system; instead of USE:ing specialized-arrays.T, do SPECIALIZED-ARRAY: T
- Ditto for specialized-vectors; use SPECIALIZED-VECTOR:
- io.mmap.functor: removed entirely, use <mapped-array> instead
- struct-arrays and struct-vectors have been removed because specialized arrays and vectors subsume them entirely
2009-09-09 22:33:34 -05:00
Slava Pestov 50641a5059 Disposables are now registered in a global disposables set. To take advantage of this, subclass disposable instead of providing a disposed slot and call new-disposable instead of new. tools.disposables defines two words, 'disposable.' and 'leaks', to help track down resource lifetime problems 2009-08-24 02:26:13 -05:00
Slava Pestov 55a6fcd3c2 bootstrap.image: smarter object folding; 500kb boot image size reduction on 64-bit 2009-08-22 17:56:58 -05:00
Joe Groff 39e086a864 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-20 16:21:58 -05:00
Joe Groff 4e7bf010a7 load tools.deprecation from bootstrap.tools 2009-08-20 16:18:28 -05:00
Joe Groff 9f33ef2f6d move deprecation to tools.deprecation; load with bootstrap.tools 2009-08-20 16:17:36 -05:00
Slava Pestov 3efe0360e2 bootstrap.compiler: add -debug-compiler switch which loads compiler but doesn't compile any words 2009-08-20 03:48:03 -05:00
Doug Coleman 7c3824639e move if-zero etc to math, remove 1-/1+ from math 2009-08-14 14:27:23 -05:00
Doug Coleman d1ce837569 Delete empty unit tests files, remove 1- and 1+, reorder IN: lines in a lot of places, minor refactoring 2009-08-13 19:21:44 -05:00
Slava Pestov b18d109f00 bootstrap.compiler.timing: fix load error 2009-08-03 13:34:28 -05:00
Slava Pestov 7665784911 Compiler speedups 2009-08-02 09:16:21 -05:00
Slava Pestov 7004ccfb8f Passing -profile-compiler switch to bootstrap collects timing information from optimizer passes 2009-07-30 21:27:52 -05:00
Slava Pestov df8bd282b5 bootstrap.compiler: compile a few more words early, for a big bootstrap speed boost 2009-07-30 02:45:29 -05:00
Doug Coleman 8da9d0f203 rename peek -> last and update all usages 2009-05-25 16:38:33 -05:00
Slava Pestov 80d6233913 Fix even more usings 2009-05-16 10:45:17 -05:00
Slava Pestov d7db5edadc Cleaning up USING: lists for new strict semantics 2009-05-14 16:54:16 -05:00
Slava Pestov 7fc7f5da2e bootstrap.stage2: strip out UTF16 encoding. It will only be loaded again if needed. This reduces deployed binary size 2009-05-12 04:02:08 -05:00
Slava Pestov 05146c6907 Remove compiled slot from quotations since its not needed 2009-05-12 03:09:15 -05:00
Slava Pestov 74b308f873 Fix negative zero smashing with bootstrap 2009-05-09 18:17:30 -05:00
Slava Pestov 4f0a1b024e Clean up bootstrap.image, and implement new calling convention for tail calls; tail call sites now have PICs 2009-05-06 22:04:01 -05:00
Slava Pestov c1e25f3b43 JIT now supports multiple relocations per code template. This simplifies non-optimizing compiler backends 2009-05-06 20:04:49 -05:00
Slava Pestov d3b85c14c9 Working on inline caching for tail call sites 2009-05-06 19:22:22 -05:00
Slava Pestov 56d30c9536 bootstrap.compiler: clean up 2009-05-05 15:57:08 -05:00
Slava Pestov a776dffeb6 Split up tools.vocabs. Note that load-everything is now named load-all 2009-05-04 06:44:17 -05:00
Slava Pestov 4d438a3edd Remove cruddy string encoding/decoding code from VM 2009-05-02 13:45:38 -05:00
Slava Pestov 6f03366e2b Rename enable/disable-compiler to enable/disable-optimizer, and add with-optimizer and without-optimizer combinators 2009-05-01 05:52:05 -05:00
Slava Pestov 742d574162 Non-optimizing compiler doesn't need to optimize 'dispatch' primitive anymore since its rarely used 2009-04-30 19:42:08 -05:00
Slava Pestov f9ec0a07c5 Fix PICs for x86-64 2009-04-30 18:00:49 -05:00
Slava Pestov 5fb5c19d61 Machine code is now stored in a byte array instead of an array for add_code_block() 2009-04-30 04:34:35 -05:00
Slava Pestov 515c619202 Non-optimizing compiler now open-codes megamorphic dispatch fast path 2009-04-30 03:37:07 -05:00
Slava Pestov 3bbfc57de3 bootstrap.image: remove some duplication from emit-object callers 2009-04-29 23:35:02 -05:00
Slava Pestov 62db617927 Get rid of two instructions from tag pics and one instruction from all others 2009-04-29 22:24:28 -05:00
Slava Pestov bd186b6320 Eliminate 3 instructions from PIC fast path 2009-04-29 21:32:05 -05:00
Slava Pestov 9243316489 Debugging inline caching 2009-04-28 23:05:18 -05:00
Slava Pestov 5f6c074edd Split up types.c/h into smaller files, remove optimized slot from F_WORD struct 2009-04-28 17:26:11 -05:00
Slava Pestov 4d10105802 Working on inline caching 2009-04-28 03:48:37 -05:00
Slava Pestov 7e84daf0f1 Move (execute) to kernel.private 2009-04-26 02:42:37 -05:00
Slava Pestov 76281235e7 bootstrap.image: clean up jit-define and define-sub-primitive so that 2009-04-25 22:35:19 -05:00
Slava Pestov 27c84e89fe Working on faster (execute) 2009-04-25 21:14:59 -05:00
Slava Pestov 2630c4a95f Add local caching 2009-04-25 20:33:52 -05:00
Slava Pestov 5649cc7a0a Compiler warnings are no more 2009-04-23 22:17:25 -05:00
Slava Pestov 48e70b65fa Move cross-referencing stuff to tools.crossref since compiler doesn't depend on it anymore, and compute cross-referencing index as needed; reduces image size by ~4Mb 2009-04-22 04:20:38 -05:00
Slava Pestov 8e1499ab79 Load tools.errors in stage2 so that bootstrap errors print correctly 2009-04-21 23:02:11 -05:00
Slava Pestov 057f75e9a1 Refactor compiler.tree.builder to fix various regressions 2009-04-21 23:02:00 -05:00
Slava Pestov 05f3f9dcb9 Fixing unit tests for stack effect inference changes 2009-04-20 21:15:19 -05:00
Slava Pestov cd97d3f590 Fix -e switch 2009-04-17 15:49:36 -05:00
Slava Pestov e52be965f0 Finish moving compiler.errors to basis 2009-04-13 02:50:23 -05:00
Slava Pestov c4be8bd65a Refactor error code so that error types are registered; listener prints a summary of errors 2009-04-12 16:08:46 -05:00
Slava Pestov deae1d7bbb Fix bootstrap 2009-04-10 04:41:26 -05:00
Slava Pestov 0a7485190b compile-error-type => source-error-type; make test failures global 2009-04-10 03:52:12 -05:00
Slava Pestov 42f3b0e16e Fix bootstrap errors 2009-04-06 01:10:34 -05:00
Slava Pestov 474e74a232 Re-organize things so that bootstrap.ui doesn't load ui.text 2009-03-31 23:44:38 -05:00
Slava Pestov 637d06a4f8 Add silly 'tip of the day' feature, and 'recently visited' list to UI browser home page 2009-03-24 04:11:08 -05:00
Slava Pestov 51f9da378c bootstrap.image: when serializing a tuple whose tuple layout doesn't exist in the target, throw an error instead of generating an image which crashes the VM on startup. Fix some inference warnings 2009-03-22 17:50:13 -05:00
Slava Pestov 786475102d Make more code infer 2009-03-17 02:19:50 -05:00
Slava Pestov be4fb1e7d9 Move call( and execute( to core 2009-03-16 20:11:36 -05:00