Slava Pestov
a91dee7810
Fix for native I/O backends that create callbacks in deployed apps; this affected tools.deploy.test[35] ever since run-loop multiplexer landed on OS X
2008-12-12 19:48:17 -06:00
Slava Pestov
38046364ac
Fix memory test on OpenBSD
2008-12-12 01:00:32 -06:00
Slava Pestov
e6145c71c0
Change a -rot usage to 2dip
2008-12-10 17:26:54 -06:00
Slava Pestov
2a3db4cd23
Minor optimization to flip
2008-12-09 21:50:31 -06:00
Slava Pestov
7ad6d34212
Fix byte-arrays tests
2008-12-09 21:07:28 -06:00
Slava Pestov
ec23584f48
Finish up O(1) byte array allocation
2008-12-09 18:17:04 -06:00
Slava Pestov
d9231f3bc5
Remove unsafe string allocation, since its of dubious value
2008-12-09 17:53:00 -06:00
Slava Pestov
eb79c6ab71
Fix conflict
2008-12-09 17:52:45 -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
b5e8b14722
Add unit test for GC problem
2008-12-09 16:45:02 -06:00
Slava Pestov
ea4feee886
Fix typo
2008-12-09 15:10:51 -06:00
John Benediktsson
6745e0dad9
Fix error in the docs for assoc-map.
2008-12-09 12:35:59 -08:00
Slava Pestov
ccab34e7c4
Fix restart behavior with circular vocabs, and add a test for this
2008-12-09 04:50:33 -06:00
Slava Pestov
7c1c97470f
tuple-class-unchanged? was bogusly returning f during bootstrap for classes without a superclass
2008-12-08 23:52:46 -06:00
Slava Pestov
b154b21aaa
Add new until combinator, and a new do word which acts like a modifier: do while, do until for loops which iterate at least once
2008-12-08 23:37:18 -06:00
Slava Pestov
a0e7663afb
Remove eval dependency from unicode.syntax
2008-12-08 19:46:40 -06:00
Slava Pestov
7940020491
Untangling more dependencies
2008-12-08 16:02:31 -06:00
Slava Pestov
4f0a9f311e
Untangling some dependencies
2008-12-08 14:58:00 -06:00
Slava Pestov
73b3cd6367
Use eq? instead of number= since we only ever have a fixnum here
2008-12-08 13:59:59 -06:00
Slava Pestov
ca8091443c
Move byte-vectors and io.streams.byte-array to basis
2008-12-08 13:59:25 -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
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
908644ee7a
O(1) <sbuf> and new-sequence on byte-arrays (work in progress)
2008-12-05 07:28:52 -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