Commit Graph

237 Commits (9f9b6bca013ff83c408182d3023ea5d56c1b7fe4)

Author SHA1 Message Date
Doug Coleman 407377fc98 rename peek -> last and update all usages 2009-05-25 16:38:33 -05:00
Doug Coleman a54c78007b add a clamp word to math.order, use clamp word throughout libraries 2009-05-24 21:35:50 -05:00
Slava Pestov 43a1834e0b stack-checker: fix case where invalid code could infer 2009-05-23 15:50:35 -05:00
Joe Groff 3276ae3a08 get rid of useless test 2009-05-21 20:56:57 -05:00
Slava Pestov 66a9416473 Update documentation for stricter vocabulary search path semantics 2009-05-16 00:29:21 -05:00
Slava Pestov dedbd14945 Fix escape analysis bug reported by Doug 2009-05-15 17:18:38 -05:00
Slava Pestov fb6df472a2 Cleaning up USING: lists for new strict semantics 2009-05-14 16:54:16 -05:00
Slava Pestov b67b617746 Fix compiler breakage if a GENERIC# has an incorrect stack effect declaration 2009-05-12 21:23:52 -05:00
Slava Pestov 65faa3fda3 Fix unit tests and load errors for slip removal 2009-05-10 17:03:41 -05:00
Slava Pestov 75d9946bd7 compiler.tree.modular-arithmetic: convert >integer >fixnum into >fixnum 2009-05-07 12:54:23 -05:00
Slava Pestov 466533d509 Fix overly-eager strength reduction for mod, and add a type function for >integer (reported by Joe Groff) 2009-05-07 12:32:06 -05:00
Slava Pestov 029d93a838 Make walker work better with call( and breakpoints which are nested inside combinators 2009-05-05 09:12:32 -05:00
Slava Pestov f2ec59d658 Fix infinite loop when compiling a word containing a tuple literal with circular structure in it. This was triggered by call( inline caching in core-foundation.fsevents on Mac OS X 2009-05-01 09:36:53 -05:00
Slava Pestov e5cdb7ac2d call( fast-path now supports curry and compose 2009-04-30 21:08:29 -05:00
Slava Pestov 964fbd0a24 Fix test failures from ratio/complex built-in removal 2009-04-30 00:38:55 -05:00
Slava Pestov 663db67b23 compiler.tree.debugger: wasn't counting intrinsics properly when computing report 2009-04-30 00:27:51 -05:00
Slava Pestov fc4894fbdf Replace ratio and complex built-in types with tuples defined in the library. This frees up two lo-tags, so move array and quotation over to these tags and update compiler for new tags 2009-04-30 00:27:35 -05:00
Slava Pestov bba30dc284 Fix conflict from master 2009-04-27 17:09:09 -05:00
Slava Pestov dac5203e81 compiler.tree.builder: Fix scoping of a variable by hints vocab 2009-04-26 16:04:44 -05:00
Slava Pestov 3dc9fdf9db Fleshed out new dispatch code 2009-04-24 20:43:01 -05:00
Slava Pestov 5649cc7a0a Compiler warnings are no more 2009-04-23 22:17:25 -05:00
Slava Pestov 1dd3ed519f Revert part of an earlier ccompiler.tree.checker hange to fix smalltalk.eval regression 2009-04-22 21:03:53 -05:00
Doug Coleman 7f983f12d4 fix help lint failures, fix example in words 2009-04-22 12:26:28 -05:00
Slava Pestov dea3987ca5 Silly workaround for performance regression 2009-04-22 00:44:06 -05:00
Slava Pestov 057f75e9a1 Refactor compiler.tree.builder to fix various regressions 2009-04-21 23:02:00 -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
Slava Pestov 05f3f9dcb9 Fixing unit tests for stack effect inference changes 2009-04-20 21:15:19 -05:00
Slava Pestov 8414693142 stack-checker: trust word declarations instead of recursively checking them 2009-04-20 18:44:45 -05:00
Slava Pestov 5165d811d5 Changing the stack effect of a generic word could break the compiler 2009-04-20 04:21:00 -05:00
Slava Pestov ec49307c88 Never inline default methods, and fix inlining of methods with hints 2009-04-20 03:27:18 -05:00
Doug Coleman 332bde4173 use iota in a few places 2009-04-17 16:17:11 -05:00
Slava Pestov ce76331fd6 Fixing more unit tests 2009-04-17 15:50:03 -05:00
Doug Coleman dba4c0d589 fixing compiler errors in basis 2009-04-17 12:46:04 -05:00
Slava Pestov 0a5b076c11 Make the walker infer 2009-04-16 23:14:11 -05:00
Slava Pestov 65b27354ad Merge branch 'master' into smarter_error_list 2009-04-14 15:07:22 -05:00
sheeple a4e62dfdba Fix for math.parser syntax change 2009-04-13 14:47:39 -05:00
Slava Pestov deae1d7bbb Fix bootstrap 2009-04-10 04:41:26 -05:00
Slava Pestov 37e278ed02 Use [ ] [ ] map-reduce instead of unclip [ ] reduce 2009-04-06 17:50:54 -05:00
Slava Pestov 268abfcf2a Remove method-specs in favor of M\ 2009-04-06 02:59:59 -05:00
Slava Pestov 932d44cab8 Small speedup for code using H{ } clone and with-scope 2009-03-31 08:16:04 -05:00
Slava Pestov ff07c8f352 Fix compiler.tree.debugger tests 2009-03-25 22:53:03 -05:00
Slava Pestov 9b8dd01c0b Fix bitrot in compiler.tree.debugger 2009-03-25 10:11:58 -05:00
Slava Pestov 6080c6e734 Fix stack effect redefinition 2009-03-22 20:16:31 -05:00
Slava Pestov 2f4e2735ea Fix compile errors in compiler tests so that they actually test the compiler instead of being useless 2009-03-22 17:50:53 -05:00
Slava Pestov be4fb1e7d9 Move call( and execute( to core 2009-03-16 20:11:36 -05:00
Slava Pestov 80e719ba5b Remove stupid commented out code 2009-03-12 17:30:33 -05:00
Slava Pestov 4fdb5d0557 Fix infinite fixed point iteration bug found by littledan; generalize-counter-interval wasn't called in all the right places 2009-03-12 17:30:24 -05:00
Slava Pestov b6f6e880bf Make partially dispatched integer ops foldable 2009-03-11 13:57:13 -05:00
Slava Pestov 42224eb4e7 Propagation pass: add inlined node counts to total node count, so that the more we inline the less we are eager to inline more 2009-03-06 23:34:01 -06:00
Slava Pestov ca7a155b72 Merge branch 'master' into new_ui 2009-03-01 20:13:05 -06:00
Slava Pestov 03cb32ad9c Make execute( faster, add execute-unsafe( and make effect tuple slots read only 2009-03-01 20:12:35 -06:00
Slava Pestov 25a877e50b Merge OneEyed's patch 2009-02-28 17:06:55 -06:00
Slava Pestov 78ce670101 Merge branch 'for-slava' of git://git.rfc1149.net/factor 2009-02-28 14:42:56 -06:00
Slava Pestov e0cfad4676 Merge branch 'master' into new_ui 2009-02-26 14:27:55 -06:00
Slava Pestov bda8b2dda6 Better inlining for both-fixnums? 2009-02-26 14:11:26 -06:00
Slava Pestov ce1bc1d6ed Fixing conflicts from stack checker changes 2009-02-24 01:21:10 -06:00
Slava Pestov 91d0c4ed1f Fix conflict 2009-02-22 20:02:13 -06:00
Doug Coleman 990513db60 use CONSTANT: in basis 2009-02-22 19:13:08 -06:00
Samuel Tardieu da2ebe21a6 Fix two overzealous [ ] removal in tests 2009-02-18 03:06:14 +01:00
Samuel Tardieu 087d931c36 Remove the tail argument from do/until/while 2009-02-18 02:41:14 +01:00
Slava Pestov 421ee726b8 Merge branch 'master' into new_ui 2009-02-16 21:22:12 -06:00
Slava Pestov 6b25e99470 Add summary for heaps more vocabs 2009-02-16 21:05:13 -06:00
Slava Pestov 3045777f02 Fix conflict 2009-02-09 00:34:00 -06:00
Daniel Ehrenberg b65b88364c Updating lots of things to use call( -- ) 2009-02-08 22:12:11 -06:00
slava e29f18a2f4 Trying to fix a bad merge...
Revert "Merge branch 'master' of git://factorcode.org/git/factor"

This reverts commit da639739bd, reversing
changes made to 346a61f497.
2009-02-03 00:27:34 -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
Slava Pestov e88812b76a map infimum => [ min ] map-reduce 2009-02-02 06:04:29 -06:00
Slava Pestov b684db297a Use [ max ] map-reduce instead of map supremum; would be nice to find a good name for this and put it in sequences vocab 2009-02-02 03:46:10 -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 65a53e1fa5 Don't keep compiled-effect around anymore 2009-02-23 23:55:16 -06:00
Slava Pestov 901bcccc1c Fix remaining text failures 2009-02-23 23:25:13 -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 bf5ff11720 Update usages of all-equal? now that its in the grouping vocab 2009-01-16 15:14:30 -06:00
Doug Coleman e661c67189 refactor a word to use smart combinators 2009-01-08 23:09:38 -06:00
Slava Pestov 5fdb474c76 Fixing various test failures and updating some more vocabs for >r/r> removal 2008-12-17 22:29:32 -06:00
Slava Pestov 34792a9f23 Remove >r/r> 2008-12-17 19:17:37 -06:00
Slava Pestov c5160d76e9 Merge qualified, alias, symbols, constants into core 2008-12-17 18:10:01 -06:00
Slava Pestov 60a1378a0a Faster dynamic variable lookup: 6% speedup in benchmark.fib5
- If type of first input of equal? is known but not second, rewrite it as swap equal? and try to inline again
- Fix hints on methods to work better
- Put hints for word and fixnum keys on at* and set-at on hashtables
2008-12-17 14:57:24 -06:00
Slava Pestov ec23584f48 Finish up O(1) byte array allocation 2008-12-09 18:17:04 -06:00
Slava Pestov a90118da5d Add inc-at word to core, and update some usages of at+ to use it instead 2008-12-09 16:54:48 -06:00
Slava Pestov db92c90569 Eliminate some usages of locals in compiler.tree.dead-code 2008-12-09 01:04:15 -06:00
Slava Pestov 640b37cb70 More permissive 2008-12-08 19:14:18 -06:00
Slava Pestov 4f0a9f311e Untangling some dependencies 2008-12-08 14:58:00 -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 145b635eb6 More optimization intended to reduce compile time. Another 10% speedup on compiling empty PEG parser
- new map-flat combinator replaces usages of 'map flatten' in compiler
- compiler.tree.def-use.simplified uses an explicit accumulator instead of flatten
- compiler.tree.tuple-unboxing uses an explicit accumulator instead of flatten
- fix inlining regression from last time: custom inlining results would sometimes be discarded
- compiler.tree's 3each and 3map combinators rewritten to not use flip
- rewrite math.partial-dispatch without locals (purely stylistic, no performance increase)
- hand-optimize flip for common arrays-of-arrays case
- don't run escape analysis and tuple unboxing if there are no allocations in the IR
2008-12-06 11:17:19 -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
Slava Pestov 044e2867d5 Teach compiler about string-nth range 2008-12-05 23:51:58 -06:00
Slava Pestov aa838dbc2d Fix compile errors 2008-12-05 09:04:16 -06:00
Slava Pestov 6c7005d588 Tweak inlining heuristic 2008-12-05 01:50:14 -06:00
Slava Pestov fa6a2047f0 New inlining heuristic: number of usages within this word. Speeds up bootstrap by 10% 2008-12-04 07:05:59 -06:00
Slava Pestov e304d3c9f8 Local DCE 2008-12-04 06:02:49 -06:00
Slava Pestov e6cb449b19 optimized. now accepts method-specs 2008-12-03 10:44:21 -06:00
Slava Pestov e5ed7447ed Removing more >r/r> usages 2008-12-03 08:46:16 -06:00
Slava Pestov d60c79c9bf Expand instance? with literal class 2008-12-03 08:11:51 -06:00
Slava Pestov 402da00390 Fixing bootstrap with specialized arrays 2008-12-02 02:44:19 -06:00
Slava Pestov e8a69a3aea Fix conflict 2008-11-29 05:14:49 -06:00
Slava Pestov 86d45262dc Add toutput ype propagation for #alien-invoke and #alien-indirect nodes 2008-11-29 03:47:38 -06:00
Slava Pestov 265e57e21a Fix optimized. to literalize words when printing #push nodes 2008-11-29 00:37:26 -06:00
Slava Pestov 1fa819191d Change inlining heuristic so that it behaves the same with dip and >r/r> 2008-11-24 05:46:26 -06:00