Commit Graph

5947 Commits (de8157f7a0e7e1785dd3eaf89746a9bfeb600a6c)

Author SHA1 Message Date
Slava Pestov 9ef8f6c81d compiler.tree.modular-arithmetic: eliminate >bignum calls where possible, convert fixnum-shift to fixnum-shift-fast if shift count is positive, don't run if there are no modular values 2009-08-20 03:47:45 -05:00
Slava Pestov f01f7ad6eb compiler.tree.propagation: bitand custom inlining was wrong if the second input was a bignum 2009-08-20 03:47:07 -05:00
Slava Pestov cecd0ac2b0 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-19 22:00:31 -05:00
Slava Pestov fd2f0a602d compiler.cfg.stacks.local: more accurate local replace set computation; optimizes out 'swap swap' 2009-08-19 22:00:21 -05:00
Joe Groff abad5a71fd Merge branch 'master' of git://factorcode.org/git/factor 2009-08-19 21:31:20 -05:00
Joe Groff c898593983 decouple struct parsing/printing from tuple parsing/printing a bit 2009-08-19 18:53:44 -05:00
Slava Pestov a598cc35a5 compiler: add unit tests for new bugs 2009-08-19 16:56:26 -05:00
Slava Pestov 770429a629 math.intervals: help lint fix 2009-08-19 16:08:52 -05:00
Slava Pestov 2dc99ea05f Fix interval inference of abs, absq when input is a complex number 2009-08-19 16:06:37 -05:00
Joe Groff 15a7148de0 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-19 15:48:07 -05:00
Doug Coleman 346636ed3b use iota in generalizaions 2009-08-19 09:53:13 -05:00
Doug Coleman fa415c6d05 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-19 04:49:18 -05:00
Doug Coleman 06d9e1d46d clarify docs 2009-08-19 04:41:33 -05:00
Doug Coleman 2936f05ce0 add smart-if to combinators.smart 2009-08-19 04:38:59 -05:00
Slava Pestov 829107902e compiler.tree.propagation: improved interval inference for absq eliminates a conditional from math.vectors:distance. Type inference for rational math also a bit sharper now 2009-08-19 02:33:41 -05:00
Slava Pestov 2bc38bf019 math.intervals: tighter interval arithmetic for intervals with infinities 2009-08-19 02:32:18 -05:00
Slava Pestov a34a3bf417 hints: HINTS: now recompiles subwords too, 15% perf improvement on reverse-complement because encoder-write is compiled with hints now 2009-08-18 19:40:54 -05:00
Daniel Ehrenberg 3b5a385b5d Merge branch 'master' of git://factorcode.org/git/factor 2009-08-18 12:49:29 -05:00
Daniel Ehrenberg 5aac11c5a9 Biassocs have special clone method 2009-08-18 12:48:09 -05:00
Slava Pestov 507e2b7f3a Fix some unit test failures 2009-08-18 03:49:05 -05:00
Slava Pestov 9ee4259705 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-18 03:47:29 -05:00
Slava Pestov 5fe3a62446 io.launcher.windows.nt: don't call duplicate-handle, and fix memory leak; io.backend.windows: track win32-handle instances in global win32-handles set to help find leaks 2009-08-18 03:46:46 -05:00
Doug Coleman 0cbad41547 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-18 03:45:20 -05:00
Doug Coleman 761ed6356b fix HEREDOC:s, add DELIMITED: which is like a HEREDOC: where the terminator can appear anywhere 2009-08-18 03:44:54 -05:00
Slava Pestov d7594c3381 compiler: inline singleton predicates, and optimize predicate engines, reduces terrain demo deployed size by ~20kb 2009-08-17 23:59:24 -05:00
Slava Pestov 04397a63c7 windows.ole32: don't pull in debugger, reduces terrain demo deployed size by ~30kb 2009-08-17 23:58:44 -05:00
Slava Pestov 9839659dfd Merge branch 'master' of git://factorcode.org/git/factor 2009-08-17 22:38:21 -05:00
Slava Pestov 030b1b816c Add inline declarations for various assorted methods 2009-08-17 22:32:21 -05:00
Slava Pestov 3047d4a451 compiler.tree.propagation: remove method inlining heuristic 2009-08-17 22:29:05 -05:00
Joe Groff 24d9a8635c Merge branch 'struct-classes' of git://factorcode.org/git/factor 2009-08-17 21:26:19 -05:00
Doug Coleman aa39423509 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-17 20:47:40 -05:00
Doug Coleman 7234b4bb08 fix multiline docs 2009-08-17 20:47:27 -05:00
Slava Pestov 630ffb8ae6 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-17 20:12:33 -05:00
Slava Pestov 4fac281b1a rpn: new demo, simple RPN calculator that doesn't use Factor's evaluator reflectively 2009-08-17 20:12:05 -05:00
Doug Coleman 9a9be2405b Merge git://github.com/mncharity/factor into mncharity 2009-08-17 19:00:41 -05:00
Doug Coleman f998a81a43 trivial factoring 2009-08-17 18:59:03 -05:00
Mitchell N Charity 747f2ab21c multiline: add HEREDOC: , slightly refactoring privates 2009-08-17 17:05:14 -04:00
Slava Pestov bf57d78b09 compiler.tree.modular-arithmetic: >fixnum elimination and value info annotations were too aggressive 2009-08-17 01:20:25 -05:00
Slava Pestov 5297be3e19 compiler.tree.modular-arithmetic: stronger optimization handles > 1 usages case as well as values defined and used in loops. Eliminates 5 out of 8 >fixnum calls in benchmark.yuv-to-rgb 2009-08-15 18:42:41 -05:00
Daniel Ehrenberg 478b960560 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-14 20:11:54 -05:00
Daniel Ehrenberg 3cec74867d Improving write barrier elimination; change to compiler.cfg.utilities to support this 2009-08-14 19:41:41 -05:00
Doug Coleman 7c92ab1ea5 move if-zero etc to math, remove 1-/1+ from math 2009-08-14 14:27:23 -05:00
Joe Groff 6fe7fe72c7 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-14 10:55:05 -04:00
Daniel Ehrenberg 8197d9356b Write barriers are hoisted out of loops when their target is slot-available 2009-08-13 20:26:44 -05:00
Doug Coleman 2ed4425b7a Merge branch 'master' of git://factorcode.org/git/factor
Conflicts:
	basis/calendar/calendar.factor
2009-08-13 19:40:02 -05:00
Doug Coleman 3f3d57032b 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
Daniel Ehrenberg 5a3e350490 Global write barrier elimination tracks newly allocated objects 2009-08-13 15:18:47 -05:00
Joe Groff a2569ea50b make direct-*-arrays prettyprint 2009-08-13 12:05:46 -04:00
Doug Coleman 4cca19b528 remove duplicate defintion of unless-zero from calendar 2009-08-13 00:48:50 -05:00
Daniel Ehrenberg ad772cd261 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-12 23:56:05 -05:00
Daniel Ehrenberg d35e1eb76c Fixing write-barrier elimination; adding bb as a parameter to join-sets in dataflow analysis 2009-08-12 23:52:29 -05:00
Joe Groff 287207df72 fix boa undo to work with structs 2009-08-12 16:09:25 -04:00
Joe Groff 875284f8ab S{ } syntax for structs 2009-08-12 15:59:33 -04:00
Joe Groff 25c3434892 pprint structs with tuple syntax 2009-08-12 13:16:43 -04:00
Slava Pestov 0df4436711 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-12 03:26:13 -05:00
Slava Pestov 4ecf5a904a More accurate wrap-interval in compiler.tree.propagation.info fixes test regression; constructing an interval with endpoints at infinity now outputs full-interval 2009-08-12 03:25:53 -05:00
Doug Coleman aabfc614a1 fix build errors 2009-08-11 23:07:13 -05:00
Doug Coleman 379c17a284 Throw typed errors instead of strings for calling/executing non-callables 2009-08-11 22:40:29 -05:00
Doug Coleman 14e8abd563 even better error handling for division by zero 2009-08-11 22:30:16 -05:00
Daniel Ehrenberg 1a7ab59f56 Making write barrier elimination global 2009-08-11 21:21:21 -05:00
Doug Coleman 415d89e821 use unless-empty 2009-08-11 21:18:43 -05:00
Doug Coleman 02becc26fc add docs for if-zero etc, add docs for 10^ 2009-08-11 18:45:01 -05:00
Doug Coleman c12d6fe543 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-11 18:16:30 -05:00
Doug Coleman 4a3d63e00a use if-zero in a few more places 2009-08-11 18:15:53 -05:00
Doug Coleman 4fef246ca4 add 10^ to math.functions and update usages 2009-08-11 18:00:24 -05:00
Slava Pestov 7bfbb0c5ac math.intervals: fix interval-rem 2009-08-11 16:49:28 -05:00
Slava Pestov 422dd24bad alien.complex: fix tests 2009-08-11 14:07:33 -05:00
Philipp Brüschweiler 26859a45eb various doc fixes 2009-08-11 16:58:47 +02:00
Brad Christensen f8405e9c55 A number of documentation fixes.
* Short-circuit combinators now show correct stack effect for quots
 * Groups and Clumps unchecked examples corrected, made runnable in listener
 * Class operations had duplicate link to class-types
 * Protocol slots readability fixed
 * Tuple word property for "tuple-layout" corrected to "layout"
 * cond>quot sentence started in lowercase
 * Method precedence code example missing stack effect for GENERIC:, M: integer explain changed to detail an integer
 * Motivation for default streams readability
 * Default input and output streams duplicate readln link removed from output stream words section
 * Looping combinators do description clarified
 * Make philosophy missing space
 * Linear order protocol duplicate after? link removed
 * Parsing words readability fix
 * Copied note regarding with-compilation-unit from define to define-declared and define-inline
2009-08-10 23:34:25 -07:00
Slava Pestov c473f59554 Merge branch 'master' of git://github.com/Blei/factor 2009-08-10 16:18:19 -05:00
Slava Pestov 9fb0dcd9bd alien: need to differentiate between the type of the result before and after boxing; the former is used by propagation for #alien-invoke nodes and the latter is used by specialized arrays. This fixes FFI unit test failures 2009-08-10 16:17:33 -05:00
Philipp Brüschweiler 230061783a misc small documentation fixes, some fixes for factor.vim, changed permissions of vm/* to 644 2009-08-10 21:33:07 +02:00
Slava Pestov 7e35723db0 compiler.tree.propagation: be more careful with intervals, ensuring that the inferred interval of a value is a subset of the value class's interval. This improves accuracy, for example [ >fixnum 1 + >fixnum most-positive-fixnum <= ] constant-folds to true 2009-08-10 01:16:49 -05:00
Slava Pestov 50e366bbe1 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-09 16:31:03 -05:00
Slava Pestov 8a9c15ab0b compiler.tree.escape-analysis: if the output of an #introduce node has an immutable tuple class type declaration, and it is not passed to any subroutine calls, or returned from the word, then unbox it. This speeds up vector arithmetic words on specialized arrays, because the specialized array is unboxed up-front, eliminating an indirection on every loop iteration 2009-08-09 16:29:21 -05:00
Slava Pestov d19c403fee alien.structs: struct-type now has a class slot; fix specialized complex-float/double arrays 2009-08-09 16:10:11 -05:00
Slava Pestov d0fe741746 tools.deploy.shaker: strip out specialized vector words 2009-08-09 04:48:44 -05:00
Slava Pestov cc5476c823 _gc instruction doesn't need slot to hold GC root area size, since that's just tagged-values>> length 2009-08-09 03:08:13 -05:00
Slava Pestov 1cb0f3370b math.vectors.specialization: first attempt at some call site splitting for vector ops. Specialized array types generate customized variants of all vector words, if input types are known at compile time, a call to the specialized version is inserted 2009-08-09 03:07:33 -05:00
Slava Pestov 687454878a compiler.cfg.linearization: change order to fit older unit tests 2009-08-08 23:06:57 -05:00
Slava Pestov 83e0c60573 tools.test: flush the output stream 2009-08-08 23:03:53 -05:00
Slava Pestov e400d80d8b More accurate interval inference for mod, rem, and propagation can now infer intervals in the case where a value might be f. so, [ [ 127 bitand ] [ drop f ] if dup [ 0 >= ] [ not ] if ] now constant-folds down to 't'! 2009-08-08 23:03:45 -05:00
Slava Pestov 61ea749bb6 More accurate interval-mod and interval-rem 2009-08-08 22:01:12 -05:00
Slava Pestov 24a50c8006 compiler.cfg.two-operand: sometimes we can eliminate a copy in the x = y <op> y case 2009-08-08 20:03:42 -05:00
Slava Pestov 55acddef3f compiler.cfg.representation: OK to unbox output of ##load-reference globally 2009-08-08 20:03:13 -05:00
Slava Pestov d0c393aa60 compiler.cfg: new system to track when results of analyses need to be recomputed (reverse post order, linear order, predecessors, dominance, loops). Passes can now call needs-predecessors, needs-dominance, needs-loops at the beginning, and cfg-changed, predecessors-changd at the end. Linearization order now takes loop nesting into account, and linear scan now uses linearization order instead of RPO. 2009-08-08 20:02:56 -05:00
Slava Pestov 11dc0a23a8 compiler.cfg.ssa.liveness: fix tests 2009-08-08 16:15:45 -05:00
Slava Pestov 1bf8a0cac7 compiler.cfg.representations: emit-conversion should not be private since CSSA construction uses it 2009-08-08 04:13:30 -05:00
Slava Pestov 4b7ba38aab compiler.cfg: virtual registers are integers now, and representations are stored off to the side. Fix bug in representation selection that would manifest if a value was used as a float and a fixnum in different branches; cannot globally unbox float in this case 2009-08-08 04:02:18 -05:00
Slava Pestov e21ca289c3 compiler.cfg.representations: new pass to make global unboxing decisions, relies on new compiler.cfg.loop-detection pass for loop nesting information 2009-08-08 00:24:46 -05:00
Slava Pestov b85d842ca6 Merge branch 'master' of git://factorcode.org/git/factor 2009-08-07 17:45:09 -05:00
Slava Pestov 725280d424 Split off the notion of a register representation from a register class 2009-08-07 17:44:50 -05:00
Joe Groff fcfe16d8d0 make simplify-callable prettyprinting an optional load in extra 2009-08-07 16:19:46 -04:00
Slava Pestov fb80f21d75 help.tutorial: minor tweaks 2009-08-07 14:54:51 -05:00
Slava Pestov 2e73038043 Revert basis UI gadget changes 2009-08-06 16:46:48 -05:00
Sam Anklesaria 6f607ed5a9 fixed ui.gadgets.tables multi-selection bug 2009-08-06 16:31:35 -05:00
Sam Anklesaria 827d30a95b Merge branch 'master' of git://factorcode.org/git/factor 2009-08-06 15:40:57 -05:00
Joe Groff 556904cf57 simplify-callable docs 2009-08-06 16:21:53 -04:00
Sam Anklesaria a621e381e3 merged control extras into basis 2009-08-06 15:19:28 -05:00
Joe Groff 0a4d926212 simplify dip/call/curry/compose in callable objects before prettyprinting 2009-08-06 16:16:17 -04:00