Commit Graph

214 Commits (764ee52cde88c6feefcc55a09e5ea689e65356a9)

Author SHA1 Message Date
Slava Pestov 6b25e99470 Add summary for heaps more vocabs 2009-02-16 21:05:13 -06:00
Slava Pestov 669548e62e Clean up some usages of tuck, and add Joe's curried cleave/spread/apply combinators to kernel vocabulary 2009-02-02 13:43:54 -06:00
Doug Coleman 3c408342ef renaming: contain? -> any?, deep-contains? -> deep-any?, pad-left -> pad-head, pad-right -> pad-tail, trim-left -> trim-head, trim-right -> trim-tail 2009-01-29 22:19:07 -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 f34c14a0f5 Remove some usages of tuck 2009-01-23 18:20:47 -06:00
Slava Pestov ca2f01e0d0 Updating non-core libraries for monotonic? change 2009-01-16 17:02:54 -06:00
Slava Pestov de3a4f5462 Change some dup ... swap to bi and keep 2008-12-15 21:20:32 -06:00
Slava Pestov e4f8448eb1 Fix some problems with arithmetic type inference, exposed by recent changes to log2 word
- declared input type for bignum-shift was stricter than the runtime behavior, leading to bad propagation of type info if shift count was a bignum
- types inferred for type functions which used number-valued/integer-valued/real-valued were not always precise, eg bignum bignum bitxor => integer
- add interval-log2, type function for (log2)
- remove math-class-min, it was useless
2008-12-07 19:44:49 -06:00
Slava Pestov a56d480aa6 Various optimizations leading to a 10% speedup on compiling empty EBNF parser:
- open-code getenv primitive
- inline tuple predicates in finalization
- faster partial dispatch
- faster built-in type predicates
- faster tuple predicates
- faster lo-tag dispatch
- compile V{ } clone and H{ } clone more efficiently
- add fixnum fast-path to =; avoid indirect branch if two fixnums not eq
- faster >alist on hashtables
2008-12-06 09:16:29 -06:00
Doug Coleman 0e14f767ee core: swap 3append -> glue 2008-12-03 19:12:48 -06:00
Slava Pestov 0ba5304ee3 Fix assocs, generic.standard tests 2008-12-03 03:44:08 -06:00
Slava Pestov c43690a8fb Didn't pass help lint because of obsolete example 2008-11-29 00:37:46 -06:00
Slava Pestov eb8c621b6f Faster generic arithmetic on fiixnums: both-fixnums? sub-primitive performs a check if the top two stack items are both fixnums with a single conditional branch 2008-11-28 08:35:02 -06:00
Slava Pestov 92cc760070 Fixes 2008-11-28 01:11:03 -06:00
Slava Pestov 817510cdb9 Another attempt at size reduction 2008-11-28 01:08:16 -06:00
Slava Pestov c8f227ccf7 Tweak standard-next-method-quot to produce smaller quotations 2008-11-28 00:56:54 -06:00
Slava Pestov b19e87ea75 Fix corner case where auto-use didn't print using list 2008-11-24 16:28:35 -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 3e7afcac29 (call-next-method) now takes a method instead of a class and a generic 2008-11-22 19:57:25 -06:00
Slava Pestov 9bf63b1613 New $quotation markup element 2008-11-16 09:03:30 -06:00
Slava Pestov 93e9e34175 Add $maybe markup element 2008-11-16 06:02:13 -06:00
Slava Pestov 4858a2ea74 Simplify inline? now that generic words can't be inline anymore 2008-11-13 09:33:18 -06:00
Slava Pestov ef6206d4bb Try to optimize generic dispatch to speed up + on fixnums, nth on arrays for example 2008-11-13 03:51:04 -06:00
Slava Pestov 1d630b6cf2 Minor documentation fixes 2008-11-11 10:51:15 -06:00
Slava Pestov 33a082c361 Fix reference to obsolete G: word 2008-11-10 02:43:16 -06:00
Slava Pestov 63a9975a0e Support inline, foldable, flushable on methods; add declarations in a couple of places for ricing purposes 2008-11-06 13:13:37 -06:00
Slava Pestov d2b2cda596 Sort methods by tag, this speeds up >fixnum in the common case where the input is a fixnum 2008-11-06 10:44:06 -06:00
Slava Pestov a95bb533b5 Remove more redundant branches from tuple type predicates and generic words with methods on tuple classes 2008-11-06 09:08:17 -06:00
Slava Pestov aac256324f lo-tag-dispatch-engine now sorts tags, this ensures that >fixnum compiles more efficiently 2008-11-06 00:02:10 -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 4e98751ce0 Remove a conditional branch from all tuple dispatches, since we don't have to check if the class height is at least 1; and remove memory accesses from tuple dispatch where all tuples are height 1 2008-11-05 20:23:38 -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 2fb17458e3 Fix duplication 2008-10-28 16:22:54 -07:00
Slava Pestov 95eb0f696b Rice 2008-10-23 05:28:04 -05:00
Slava Pestov c54668596d More efficient hi-tag accessor 2008-10-11 13:58:41 -05:00
Slava Pestov c19f2257f4 Fix permission bits 2008-10-02 08:34:49 -05:00
Slava Pestov e1a2bfc048 Oops 2008-10-01 08:38:50 -05:00
Slava Pestov 34952ff5c4 Faster call-next-method 2008-10-01 08:20:49 -05:00
Slava Pestov 0c8e2584b4 Fixing unit tests for make, fry changes 2008-09-11 00:20:06 -05:00
Slava Pestov 44f53de164 Move make to its own vocabulary, remove fry _ feature 2008-09-10 20:07:00 -05:00
Slava Pestov 7bc32975ee Fix erg's bug 2008-09-03 23:38:32 -05:00
Slava Pestov 110a5e5162 Change equality semantics 2008-09-02 02:02:05 -05:00
Slava Pestov 3b24b52673 Omit default method from usage lists 2008-09-01 04:32:26 -05:00
Slava Pestov f5fbd94a4c New compiled crossref implementation 2008-08-31 01:34:00 -05:00
Slava Pestov 3cef7c9992 Smarter usage tracking system 2008-08-30 02:31:27 -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 c9df16e931 Tweak XML-RPC 2008-08-29 04:33:05 -05:00
Slava Pestov 6ead724b25 Fixing bugs 2008-08-29 04:23:39 -05:00
Slava Pestov 74dccc7fbf Debugging compiler 2008-08-28 22:28:34 -05:00
Slava Pestov 91059b4ad6 Documentation update 2008-08-23 20:24:54 -05:00
Slava Pestov 8b855b2445 Help lint fixes 2008-08-22 23:00:35 -05:00
Slava Pestov 40e926609a Fixing unit tests 2008-08-22 22:07:59 -05:00
Slava Pestov 2440fc1ceb Fixing remaining issues 2008-08-22 17:38:23 -05:00
Slava Pestov 95657e5742 Remove some funny retain stack usage 2008-08-18 20:13:24 -05:00
Slava Pestov 6726b0b920 Fix typo 2008-07-29 21:31:58 -05:00
Slava Pestov 4cb64aaeb8 Fixing unit tests for eval word being moved 2008-07-29 00:05:01 -05:00
Slava Pestov d66f887736 Create basis vocab root 2008-07-28 22:03:13 -05:00
Slava Pestov 0582f45fcb Add more class algebra opeations 2008-07-22 01:27:52 -05:00
Slava Pestov ac2bf0b87d Adding inline recursive declarations 2008-07-18 19:22:59 -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 e6282fe1a8 Performance improvements 2008-07-06 01:37:11 -05:00
Slava Pestov 78d24d5a5d Fix unit test failures 2008-07-05 23:08:30 -05:00
Slava Pestov b0d11073d6 Fix step-into on generic words and call-next-method in walker 2008-07-05 00:59:28 -05:00
Slava Pestov 8347710dd5 Help lint fixes 2008-07-04 02:52:27 -05:00
Slava Pestov 537269447c Move mirrors out of the boot image 2008-07-02 00:20:01 -05:00
Slava Pestov b9aa005310 More unit test fixes, load fixes 2008-06-30 05:13:50 -05:00
Slava Pestov 77c4d97785 Some unit test fixes 2008-06-30 03:57:00 -05:00
Slava Pestov 3b41e31584 More tuple declaration work 2008-06-29 21:37:57 -05:00
Slava Pestov 0be00f03e6 Mirrors now check sot t slot types, support type coercion for setters, instance? now infers, better transform for 'new', more efficient 'case' where keys are all wrappers 2008-06-29 02:12:44 -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 Pestov 6e0d35e615 Split up huge parser vocabulary 2008-06-25 03:25:08 -05:00
Slava Pestov 685d53e264 Add gather word; faster 'implementors' using inverted index 2008-06-12 05:49:46 -05:00
Slava Pestov c1509d5fe5 Fix more redefinition problems 2008-06-11 20:46:53 -05:00
Slava Pestov 80720cea0d More redefinition fixes 2008-06-11 17:40:33 -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 3ee56c3a68 Add extract-keys word 2008-05-22 22:41:48 -05:00
Slava Pestov 0a3429810c Fix classes.tuple unit test failures 2008-05-10 16:28:02 -05:00
Slava Pestov 5d61651cb2 Changing method combination would delete methods 2008-05-10 15:56:30 -05:00
Slava Pestov fa1938eda1 Move unclip-last to sequences 2008-05-05 00:13:17 -05:00
Slava Pestov 5a29b2e273 Class linearization 2008-05-02 02:51:38 -05:00
Doug Coleman 32814ffce5 <=> outputs +lt+ +eq+ +gt+ 2008-04-27 18:57:46 -05:00
Doug Coleman e264537a1a reverse the arguments of diff, assoc-diff
fix lots of usings
fix help-lint
2008-04-26 02:01:06 -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 55f6636bc0 FFI string encoding conversion 2008-04-20 05:15:46 -05:00
Slava Pestov 2d2b3ec904 Partial dispatch on integer operations 2008-04-18 16:51:09 -05:00
Slava Pestov d7272871fe Remove commented out code 2008-04-17 04:14:55 -05:00
Slava Pestov deb51fbd00 Don't emit first engine in the sequence 2008-04-17 03:07:17 -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 dbac0a1543 Merge branch 'master' of git://factorcode.org/git/factor 2008-04-11 12:59:20 -05:00
Doug Coleman bced4022e5 updating usages of cond/case 2008-04-11 12:53:22 -05:00
Slava Pestov 0c7e742b8c step-into for hooks 2008-04-11 08:35:07 -05:00
Slava Pestov 29406f07eb Fix declaration 2008-04-05 21:30:16 -05:00
Slava Pestov 871831fdae Fixing hook stack effects 2008-04-05 20:07:30 -05:00
Slava Pestov ef4046cda9 Converting code to use inheritance 2008-04-04 00:33:06 -05:00