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 |
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
|
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
|
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
|
c3d60e5899
|
compiler.tree.recursive: more accurate loop detection
|
2009-08-04 19:18:40 -05:00 |
Slava Pestov
|
82c1106945
|
compiler.cfg.ssa.destruction: new implementation: simpler and more correct
|
2009-08-02 10:26:52 -05:00 |
Slava Pestov
|
e01fc93812
|
compiler.tree.propagation.call-effect: fix case where quotation inlining could enter an infinite loop: [ dup call( quot -- ) ] dup call( quot -- ) etc
|
2009-08-01 23:34:14 -05:00 |
Slava Pestov
|
501629cf75
|
compiler.tree.propagation.info: fix load error
|
2009-07-27 00:30:24 -05:00 |
Slava Pestov
|
fc41140720
|
compiler.cfg.utilities: move value-info utilities to compiler.tree.propagation.info
|
2009-07-26 21:10:33 -05:00 |
Slava Pestov
|
1d735bc32d
|
compiler.tree.propagation.transforms: fix shift transform
|
2009-07-17 00:02:57 -05:00 |
Slava Pestov
|
3fb4fc1bde
|
Improve code generation for shift word: add intrinsics for fixnum-shift-fast in the case where the shift count is not constant, transform 1 swap shift into a more overflow check with open-coded fast case, transform bitand into fixnum-bitand in more cases
|
2009-07-16 23:50:48 -05:00 |
Daniel Ehrenberg
|
062e33f8fb
|
fixing stupid bug in propagation
|
2009-07-16 00:43:54 -05:00 |
Daniel Ehrenberg
|
ee3e84a1f8
|
define-partial-eval framework in propagation pass makes it easy to add transforms; moving some transforms from stack checker to propagation, making them stronger
|
2009-07-16 00:34:50 -05:00 |
Daniel Ehrenberg
|
bb06facb01
|
new is inlined in the propagation pass when the class is known
|
2009-07-14 14:16:39 -05:00 |
Daniel Ehrenberg
|
47500fad06
|
call( and execute( inline known quotations/words in the propagation pass
|
2009-07-14 01:12:45 -05:00 |
Slava Pestov
|
e0d84eb3a2
|
compiler.tree.propagation: better length propagation
|
2009-07-09 02:28:30 -05:00 |
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
|
66a9416473
|
Update documentation for stricter vocabulary search path semantics
|
2009-05-16 00:29:21 -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
|
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
|
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
|
3dc9fdf9db
|
Fleshed out new dispatch code
|
2009-04-24 20:43:01 -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
|
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
|
ec49307c88
|
Never inline default methods, and fix inlining of methods with hints
|
2009-04-20 03:27:18 -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 |
sheeple
|
a4e62dfdba
|
Fix for math.parser syntax change
|
2009-04-13 14:47:39 -05:00 |
Slava Pestov
|
37e278ed02
|
Use [ ] [ ] map-reduce instead of unclip [ ] reduce
|
2009-04-06 17:50:54 -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
|
be4fb1e7d9
|
Move call( and execute( to core
|
2009-03-16 20:11:36 -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
|
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
|
03cb32ad9c
|
Make execute( faster, add execute-unsafe( and make effect tuple slots read only
|
2009-03-01 20:12:35 -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
|
bda8b2dda6
|
Better inlining for both-fixnums?
|
2009-02-26 14:11:26 -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
|
6b25e99470
|
Add summary for heaps more vocabs
|
2009-02-16 21:05:13 -06:00 |
Daniel Ehrenberg
|
b65b88364c
|
Updating lots of things to use call( -- )
|
2009-02-08 22:12:11 -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 |