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
3469d50b91
Merge branch 'master' of git://factorcode.org/git/factor
2008-12-07 08:51:40 -06:00
Slava Pestov
d1744fd67a
Remove cache-nth word, nobody was using it and the semantics were broken
2008-12-07 08:51:22 -06:00
Doug Coleman
29d5278569
Merge branch 'master' of git://factorcode.org/git/factor
2008-12-06 19:01:35 -06:00
Doug Coleman
37b9a350cc
swap ... 3append -> surround in core
2008-12-06 18:42:41 -06:00
Slava Pestov
0290be6e93
Exploit the fast-path for allocation of array with initial element 0 by changing
...
new-sequence on arrays, the vector constructor, and resize-array, called when
growing vectors, to fill arrays with 0 instead of f. user code never observes the
initial value in these situations anyway. small speedup on bootstrap
2008-12-06 18:37:28 -06:00
Slava Pestov
bac338663d
Mark a word inline
2008-12-06 15:31:35 -06:00
Slava Pestov
8a8f0c925c
Use BSR instruction to implement fixnum-log2 intrinsic
2008-12-06 15:31:17 -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
Doug Coleman
2e31f7d792
fix help-lint errors
2008-12-05 12:57:36 -06:00
Doug Coleman
3293dde7a2
remove unit test
2008-12-05 12:53:23 -06:00
Slava Pestov
aa838dbc2d
Fix compile errors
2008-12-05 09:04:16 -06:00
Slava Pestov
8db24bdd34
assert-depth now has a static stack effect. This fixes a UI unit test failure
2008-12-05 08:25:26 -06:00
Slava Pestov
e256846acd
Tweak string representation; high bit indicates if character has high bits in aux vector. Avoids memory access in common case. Split set-string-nth into two primitives; set-string-nth-fast is open-coded by optimizing compiler. 13% improvement on reverse-complement
2008-12-05 06:38:51 -06:00
Slava Pestov
252b1eb513
Faster conversion of sbufs, vectors and byte-vectors to their corresponding fixed-size type respectively; we call the resize-T primitive on the underlying sequence instead of >T
2008-12-05 06:37:19 -06:00
Slava Pestov
fa146b248a
Remove obsolete info; 1+ and 1- are identical to 1 + and 1 - in reality
2008-12-05 02:11:50 -06:00
Slava Pestov
e304d3c9f8
Local DCE
2008-12-04 06:02:49 -06:00
Slava Pestov
993d8de372
Merge branch 'master' of git://projects.elasticdog.com/git/factor
2008-12-04 00:28:29 -06:00
Slava Pestov
1247ebbac9
Fix typo
2008-12-04 00:28:16 -06:00
Aaron Schaefer
13781ee48c
Merge branch 'master' of git://factorcode.org/git/factor
2008-12-04 00:42:34 -05:00
Aaron Schaefer
ca73c06194
Fix documentation example for floats
2008-12-04 00:36:11 -05:00
Doug Coleman
0e14f767ee
core: swap 3append -> glue
2008-12-03 19:12:48 -06:00
Aaron Schaefer
e6b585c376
Fix example in spread combinator article
2008-12-03 13:26:31 -05:00
Doug Coleman
06388da30d
Merge branch 'master' of git://factorcode.org/git/factor
2008-12-03 10:03:37 -06:00
Slava Pestov
8e69362512
Better error message for INSTANCE: if second arg is not a mixin
2008-12-03 09:33:32 -06:00
Doug Coleman
c4a06d4a60
Merge branch 'master' of git://factorcode.org/git/factor
2008-12-03 08:34:59 -06:00
Doug Coleman
fd270d8ef2
add surround and glue to sequences
2008-12-03 08:32:54 -06:00
Doug Coleman
a329960d7e
move retry word to continuations
2008-12-03 08:32:12 -06:00
Slava Pestov
c49cbe5d9c
Fix typo in the docs
2008-12-03 04:07:36 -06:00
Slava Pestov
0ba5304ee3
Fix assocs, generic.standard tests
2008-12-03 03:44:08 -06:00
Slava Pestov
350e697615
Merge branch 'master' into specialized-arrays
2008-12-02 20:07:14 -06:00
Slava Pestov
2b23e3c4d8
Merge branch 'master' of git://factorcode.org/git/factor
2008-12-02 19:43:11 -06:00
Slava Pestov
5a57fe8953
with-stream was disposing streams in the wrong order
2008-12-02 19:43:07 -06:00
sheeple
1777dde283
add file-systems unit test
2008-12-02 16:03:01 -06:00
Slava Pestov
e559a101e8
Merge branch 'master' into specialized-arrays
2008-12-02 02:46:26 -06:00
Slava Pestov
c27faa3de4
Remove 3compose: nothing in core used it, and basis code can use fry
2008-12-02 00:25:23 -06:00
Slava Pestov
722989d895
Merge branch 'master' of git://factorcode.org/git/factor into specialized-arrays
2008-12-01 21:55:32 -06:00
Doug Coleman
7553b816f8
add another slot to file-system-info -- available-space, which is what the user can actually use, not what's free on disk
2008-12-01 21:20:33 -06:00
Slava Pestov
f51708386d
Fix conflicts
2008-12-01 20:39:43 -06:00
Slava Pestov
9e4dfda8cd
Fix help lint
2008-12-01 18:08:48 -06:00
Slava Pestov
87656b19e3
FACTOR_ROOTS env var
2008-12-01 17:19:47 -06:00
Slava Pestov
973e3faa00
Documentation updates
2008-12-01 17:00:35 -06:00
Slava Pestov
1a3f148c2c
Add each-line combinator
2008-12-01 16:43:18 -06:00
Slava Pestov
a558f91d5d
Better command-line processing
2008-12-01 16:10:48 -06:00
Slava Pestov
52c5b53e27
Refactoring usages of >r, r>, -rot, rot
2008-11-30 22:21:37 -06:00
Doug Coleman
2eb185865e
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-30 17:18:34 -06:00
Doug Coleman
e7fbc0c9f2
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-30 15:28:26 -06:00
Doug Coleman
bc7739ec1d
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-30 14:38:29 -06:00
Doug Coleman
28e6d7d116
add more shared slots fo file-system-info
2008-12-01 14:05:46 -06:00