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
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
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
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