Commit Graph

270 Commits (6f10f06c2776c8dfa7e727f2a000dc48bd296bf0)

Author SHA1 Message Date
Slava Pestov c027046857 New 'conditional dependency' mechanism for more accurate recording of recompilation information 2010-01-30 09:28:57 +13:00
Slava Pestov f031a97084 Work in progress: record constant-folds of predicate words, and call-next-method invocations, in the same way that method inlining are recorded, for greater recompilation accuracy 2010-01-30 09:28:56 +13:00
Slava Pestov 830e25c70b More changes so that mixins trigger even less recompilation 2010-01-30 09:28:53 +13:00
Slava Pestov d215c108f3 core: fix bad interaction between stage1 bootstrap and manifest update code 2010-01-28 03:02:54 +13:00
Slava Pestov 1c10196c43 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 1219040865 compiler.units: fix faulty unit test 2010-01-06 23:52:14 +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 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
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 ea36783fb3 Fix bootstrap 2009-11-13 07:55:47 -06:00
Slava Pestov 5470330c45 Fix another problem with call( inline caching 2009-11-13 07:17:00 -06:00
Slava Pestov afecb9c758 Fixing call( inline caching 2009-11-13 04:32:33 -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 5d79450d9d Use a more compact representation for "compiled-uses" and "compiled-generic-uses" word-props; reduces image size 2009-11-08 06:08:04 -06:00
Slava Pestov 50f5c3d116 remq -> remove-eq, delq -> remove-eq! 2009-10-28 00:23:08 -05:00
Doug Coleman 6b6e56a179 change add-init-hook to add-startup-hook, new add-shutdown-hook word 2009-10-19 22:17:02 -04:00
Keith Lazuka 405e5d015b docs: change $subsection to $subsections 2009-10-02 12:15:48 -04:00
Slava Pestov 0b9212a2d6 Oops 2009-05-01 08:21:31 -05:00
Slava Pestov e9e095f240 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 7d0ae65adc Don't call notify-error-observers if there weren't any new definitions 2009-04-24 01:19:28 -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 469c9ee21d Debugging stack checking 2009-04-21 16:09:53 -05:00
Slava Pestov f38d2f91f6 Words which didn't compile cannot be run at all 2009-04-20 22:05:41 -05:00
Doug Coleman 7a1841f59b (( -- )) eval -> eval( -- ) 2009-04-17 15:49:21 -05:00
Doug Coleman aad6a3d504 fixing compiler error in core 2009-04-17 12:45:57 -05:00
Slava Pestov 83b7ac3f3a Forgetting a definition removes compile error
Notify definition observers with nested compilation units
2009-04-15 00:27:02 -05:00
Slava Pestov e52be965f0 Finish moving compiler.errors to basis 2009-04-13 02:50:23 -05:00
Slava Pestov d227fcd33f Move compiler.errors to basis 2009-04-13 02:18:41 -05:00
Slava Pestov e595576dc3 Make more words infer 2009-04-12 23:01:14 -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 0420b39f4f Make source file error types a bit more extensible 2009-04-11 22:26:24 -05:00
Slava Pestov e5df0559eb Working on adding help-lint errors to error list 2009-04-11 20:30:09 -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 7adb76aaf4 Factor out some compiler error code into source-files.errors 2009-04-09 04:50:38 -05:00
Slava Pestov b5c5991747 Working on UI compile error viewer tool 2009-03-28 04:19:02 -05:00
Slava Pestov 6080c6e734 Fix stack effect redefinition 2009-03-22 20:16:31 -05:00
Slava Pestov 54e824ffe4 Move dummy-compiler to compiler.units; throw a better error if make-image is passed an invalid architecture 2009-03-15 19:15:28 -05:00
Slava Pestov bf41b187b0 Re-organize code so that with-compilation-unit can infer
Fix with-compilation-unit to work in deployed code
2009-03-13 19:39:32 -05:00
Slava Pestov bfb6b4642a Consultations now implement the definition protocol; removing one from a source file forgets consulted methods 2009-03-07 00:42:43 -06:00
Slava Pestov 37bc52afa8 Redefining methods didn't always update callers if more than one method on the same generic was redefined in a compilation unit 2009-03-06 23:33:30 -06:00
Slava Pestov 1951d739a0 Stack effect declarations are mandatory on all words now
define-temp now takes an effect parameter
Fix compiler bug that Dan found
Stricter enforcement of * effects
Move compile-call from compiler.units to compiler
2009-02-23 20:27:05 -06:00
Slava Pestov 60134eeb98 Documentation fixes 2009-02-19 13:35:53 -06:00
Slava Pestov 07caee3405 Update some existing code to use initialize 2009-02-10 16:16:12 -06:00
Slava Pestov 60f36cd9c8 Update user-space code for modify-code-heap primitive change 2009-01-24 20:17:11 -06:00
Slava Pestov f34c14a0f5 Remove some usages of tuck 2009-01-23 18:20:47 -06:00
Slava Pestov 3adaa7a18e Add unit tests for non-optimizing compiler regression found by doublec 2009-01-22 21:22:28 -06:00
Slava Pestov 19a8a9ac9b Minor documentation updates 2008-12-21 14:29:12 -06:00
Slava Pestov c5160d76e9 Merge qualified, alias, symbols, constants into core 2008-12-17 18:10:01 -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 e6218fdc71 Move words from compiler.errors.private to compiler.errors 2008-11-16 13:46:21 -06:00
Slava Pestov 4fd1767768 Old fix for classes-intersect? no-method bug was incorrect; we were
ignoring anonymous classes in compiled-generic-crossref. Also,
forget* now calls reset-word so that references to predicates of
forgotten classes don't break the compiler with a similar error.
2008-11-05 18:32:02 -06:00
Slava Pestov cc94894441 Fix notorious classes-intersect? bug, or at least one manifestation thereof. Turns out that we may temporarily end up with forgotten classes in the compiled-generic-crossref table. This is not a problem, since subsequently the words that reference forgotten classes will presumably be redefined and recompiled, but it does mean that (compiled-generic-usage) does need to handle this case 2008-11-04 03:38:44 -06:00
Slava Pestov cdb5c30bd3 Only build a generic word once, even if a compilation unit defines several methods on it, by adding generics to a set and building them at the end. 25% improvement on bootstrap time 2008-11-03 03:51:28 -06:00
Slava Pestov 673fda2281 Fix bogus error message 2008-11-02 03:10:27 -06:00
Slava Pestov c19f2257f4 Fix permission bits 2008-10-02 08:34:49 -05:00
Slava Pestov 44f53de164 Move make to its own vocabulary, remove fry _ feature 2008-09-10 20:07:00 -05:00
Slava Pestov d12f55be31 Fix unit test failure in compiler 2008-09-03 17:24:06 -05:00
Slava Pestov 5792783760 Fix dodgy method overloading 2008-08-31 05:19:16 -05:00
Slava Pestov f5fbd94a4c New compiled crossref implementation 2008-08-31 01:34:00 -05:00
Slava Pestov 86e04a81dc Fix conflict 2008-08-30 02:32:17 -05:00
Slava Pestov 3cef7c9992 Smarter usage tracking system 2008-08-30 02:31:27 -05:00
Slava Pestov b3f3068bdc Massive focused action #1 2008-08-30 00:09:45 -05:00
Slava Pestov 85cdb1b767 Working on new compiled usage strategy; old one was wrong 2008-08-30 00:05:27 -05:00
Slava Pestov d66f887736 Create basis vocab root 2008-07-28 22:03:13 -05:00
Slava Pestov f64f55ba22 Fix test failures 2008-07-16 01:03:41 -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 5ba6a0c56d Comment out reload tests for now 2008-07-07 10:50:42 -05:00
Slava Pestov 2831cb8d9b Tweaking docs, change stage2 to load less stuff 2008-07-03 01:39:45 -05:00
Slava Pestov aeb2b9d701 Fixing unit test failures 2008-07-02 15:57:38 -05:00
Slava Pestov eb6a1de4a1 Some cleanup 2008-07-01 20:19:03 -05:00
Slava Pestov 58159095ee Fix load-everything 2008-06-30 16:06:14 -05:00
Slava Pestov dea3604264 Remove some usages of deprecated features 2008-06-30 05:22:05 -05:00
Slava Pestov 77c4d97785 Some unit test fixes 2008-06-30 03:57:00 -05:00
Slava Pestov b36e06d0d6 Builtinn types now use new slot accessors; tuple slot type declaration work in progress 2008-06-28 02:36:20 -05:00
slava 9d15cb9328 Remove old debugging code 2008-06-25 20:46:52 -05:00
Slava Pestov c95851e34f Bug fixes and cleanups 2008-06-11 02:58:38 -05:00
Slava Pestov 29fa4a8a54 assoc-find is no longer generic 2008-06-09 05:22:21 -05:00
Slava Pestov ba8f1388ab Fixing everything for mandatory stack effects 2008-06-09 02:14:14 -05:00
Slava Pestov 9dd5c9919f Mandatory stack effect annotations 2008-06-08 15:32:55 -05:00
Slava Pestov 014d2ea31c Cleaning up and debugging corss-referencing 2008-06-06 20:47:09 -05:00
Slava Pestov ec71ee0940 Bug fixes 2008-05-28 19:34:18 -05:00
Slava Pestov 1c10cb0ff1 Update for word renaming 2008-05-26 00:48:10 -05:00
Slava Pestov 5cb13132af adjoin and conjoin words added 2008-05-25 19:44:37 -05:00
Slava Pestov 8c8f5fdb2c Bigger decks and cards 2008-05-09 18:48:48 -05:00
Slava Pestov c035f86ca2 Revert large deck change for now, fix PowerPC write barrier 2008-05-09 17:30:32 -05:00
Slava Pestov a233349c1f Bigger cards and decks 2008-05-09 00:09:12 -05:00
Slava Pestov 739a75f2bb More efficient minor GC 2008-05-07 21:39:20 -05:00
Slava Pestov 0314d05a08 Cleanup compiler 2008-05-07 07:49:36 -05:00
Slava Pestov 75fb15ee4c Split stdio up into input-stream/output-stream, pipes work in progress 2008-05-05 02:19:25 -05:00
Doug Coleman 15402ed1b4 core changes:
index* -> index-from
last-index* -> last-index-from
1 tail -> rest
1 tail-slice -> rest-slice
subset -> filter
prepose
find* -> find-from
find-last* -> find-last-from
before, after generic, < for integers
make between? work for timestamps
2008-04-25 23:12:44 -05:00
Slava Pestov a3a0ce5bee Fixes 2008-04-20 06:15:08 -05:00
Slava Pestov 55f6636bc0 FFI string encoding conversion 2008-04-20 05:15:46 -05:00
Slava Pestov 0ae748d9ba Compiler fixes 2008-04-19 20:39:58 -05:00
Slava Pestov 4eb4542431 Add failing unit test 2008-04-17 03:03:22 -05:00
Doug Coleman 30b75a797a construct-boa -> boa
construct-empty -> new
2008-04-13 15:06:09 -05:00
Slava Pestov 615f7057e4 Omit tuple dispatch engines from usage listings 2008-04-12 19:05:06 -05:00
Doug Coleman bced4022e5 updating usages of cond/case 2008-04-11 12:53:22 -05:00
Slava Pestov 600740d68b Tweaks 2008-04-07 20:07:30 -05:00
Slava Pestov f7f43fa689 ABOUT: updates vocabulary 2008-04-05 07:00:09 -05:00
Slava Pestov b2cb88f497 GC: allocate large objects directly into tenured space 2008-04-05 04:01:46 -05:00