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
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
Slava Pestov
b8fff571b4
More robust amended-use behavior
2008-11-29 15:21:40 -06:00
Slava Pestov
267ab0aa4d
Implement /i on floats
2008-11-29 12:21:26 -06:00
Slava Pestov
f675223873
Minor optimization in unclip-slice
2008-11-29 10:38:43 -06:00
Slava Pestov
e8a69a3aea
Fix conflict
2008-11-29 05:14:49 -06:00
Doug Coleman
bc60af6187
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-29 00:45:43 -06:00
Slava Pestov
c43690a8fb
Didn't pass help lint because of obsolete example
2008-11-29 00:37:46 -06:00
Doug Coleman
9d03a591cf
trivial doc for error-stream
2008-11-29 00:35:50 -06:00
Doug Coleman
8c7a3c8a81
better docs for io.encodings
2008-11-29 00:30:36 -06:00
Eduardo Cavazos
cb815a965b
kernel-docs: Fix '2dip' docs
2008-11-28 12:33:42 -06:00
Slava Pestov
92cc760070
Fixes
2008-11-28 01:11:03 -06:00
Slava Pestov
94ec0c9d1f
Oops
2008-11-28 01:08:33 -06:00
Slava Pestov
817510cdb9
Another attempt at size reduction
2008-11-28 01:08:16 -06:00
Slava Pestov
c8f227ccf7
Tweak standard-next-method-quot to produce smaller quotations
2008-11-28 00:56:54 -06:00
Slava Pestov
6dfce7d4e7
load-locals is a primitive now, change semantics of get-locals to bum out 2 instructions from the sub-primitive
2008-11-27 22:30:29 -06:00
Slava Pestov
51a2aa6037
Tweak case>quot so that it works with lambdas
2008-11-25 23:04:13 -06:00
Slava Pestov
d3a40ff438
Merge branch 'emacs' of http://git.hacks-galore.org/jao/factor into faster_overflow_checks
2008-11-28 21:05:31 -06:00
Slava Pestov
eb8c621b6f
Faster generic arithmetic on fiixnums: both-fixnums? sub-primitive performs a check if the top two stack items are both fixnums with a single conditional branch
2008-11-28 08:35:02 -06:00
Slava Pestov
b19e87ea75
Fix corner case where auto-use didn't print using list
2008-11-24 16:28:35 -06:00
slava
fbc0f33c86
The deploy tool would coalesce equal quotations into one. This created a problem
...
for the non-optimizing compiler because if the new 'leader' quotation was not
compiled but some of the ones that it replaces were, then calls to the quotation
from contexts where they have to be compiled (eg, compiled if and dip) would no
longer work. Add a `jit-compile' primitive to compile quotations, and call it
as appropriate in `compress-quotations`.
2008-11-24 15:59:27 -06:00
Slava Pestov
8678ff091f
Fix docs for spread and apply combinators
2008-11-24 12:01:20 -06:00
Slava Pestov
fb511f4fe8
Fix help lint
2008-11-24 00:51:46 -06:00
Slava Pestov
1d6e389d18
Fixing walker, adding traceback tests
2008-11-23 21:40:54 -06:00
Slava Pestov
f520823d5c
Minor speedup
2008-11-23 04:22:38 -06:00
Slava Pestov
7788b3e0db
Merge branch 'master' into microseconds
2008-11-23 03:06:32 -06:00
Slava Pestov
6466ebaed7
Add comment explaining what's going on
2008-11-23 02:46:43 -06:00
Slava Pestov
a4d9cdfeb3
Refactor all usages of >r/r> in core to use dip, 2dip, 3dip
...
Non-optimizing compiler now special-cases dip, 2dip, 3dip following a
literal quotation: this allows us to break the dip/slip meta-circle
without explicit calls to >r/r>
2008-11-23 02:44:56 -06:00
Slava Pestov
2a0c92eb89
Use assoc-filter-as
2008-11-23 01:01:21 -06:00
Slava Pestov
2fe561ffca
Add assoc-filter-as
2008-11-23 01:01:15 -06:00
Slava Pestov
dd6f9bced5
Rename (append) to append-as, (3append) to 3append-as, take them out of private
2008-11-23 01:01:04 -06:00
Slava Pestov
51787c2022
Add some error checking to CHAR:
2008-11-23 00:25:01 -06:00
Slava Pestov
c2c07f8b22
Fix bootstrap
2008-11-23 00:24:36 -06:00
Slava Pestov
7c61cf190f
Circularity between vocabularies no longer causes an infinite loop; loading a vocabulary like json or furnace no longer loads certain files twice
2008-11-23 00:04:18 -06:00
Slava Pestov
d42affbc76
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-22 22:50:26 -06:00
Slava Pestov
f0716b3a0d
1% image size reduction by not storing empty compiled-generic-uses and compiled-uses props
2008-11-22 22:46:57 -06:00
Doug Coleman
75c32bde5a
cleaner unit-tests
2008-11-22 20:34:25 -06:00
Doug Coleman
35b7b74b97
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-22 20:31:32 -06:00
Doug Coleman
374ad0752e
add using
2008-11-22 20:31:23 -06:00
Doug Coleman
3a8f1b4966
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-22 20:02:52 -06:00
Doug Coleman
fb8bdfe7e5
rename last-slice1 to slice1-last
2008-11-22 20:00:37 -06:00
Doug Coleman
26cb48b0ab
rename last-slice1 to slice1-last. add slice1-slice and slice1-last-slice, docs, and tests
2008-11-22 19:59:43 -06:00
Slava Pestov
3e7afcac29
(call-next-method) now takes a method instead of a class and a generic
2008-11-22 19:57:25 -06:00
Slava Pestov
9628bcd646
New 'expect' word, which is a more correct version of the 'scan assert=' idiom
2008-11-22 17:27:40 -06:00
U-SLAVA-DFB8FF805\Slava
82a83496f3
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-22 02:47:00 -06:00
U-SLAVA-DFB8FF805\Slava
21856550e3
show doesn't need to print \r\n
2008-11-22 02:44:35 -06:00
Slava Pestov
d504d6b8de
slice-errors now report the parameters to the slicing operation
2008-11-21 21:00:30 -06:00
Slava Pestov
420ff0a447
Fry now throws a parse time error if it detects >r r> usage, tweak fry to better interact with locals
2008-11-21 05:17:51 -06:00
Slava Pestov
3e29a31493
Residual fixes for curry/compose change
2008-11-21 05:17:20 -06:00
Slava Pestov
89440b2a23
curry and compose now check their inputs
2008-11-21 04:37:17 -06:00
Slava Pestov
af29312a9e
Fix parser tests
2008-11-21 02:25:43 -06:00
Slava Pestov
ae4f9a2809
Add fixnum/mod-fast and fixnum/i-fast subprimitives
2008-11-21 02:11:36 -06:00
Slava Pestov
1addde1567
If 'search' was called outside of the parser, note. might be called, which would fail if no lexer was set
2008-11-21 00:18:25 -06:00
Slava Pestov
2e2856b9a4
Document auto-use? feature
2008-11-20 21:54:38 -06:00
Slava Pestov
98d109a9a8
Rename do-what-i-mean? to auto-use?
2008-11-20 20:35:01 -06:00
Slava Pestov
3d8f432856
Clarify math.bitwise -vs- bitwise-arithmetic docs
2008-11-19 19:23:11 -06:00
Slava Pestov
eb6cdcc06e
Fix parser tests
2008-11-19 17:41:39 -06:00
Slava Pestov
57c933f98a
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-19 16:28:51 -06:00
Slava Pestov
002563ce44
Add DWIM mode
2008-11-19 16:27:16 -06:00
Doug Coleman
199bdfdbe6
Merge branch 'master' of git://factorcode.org/git/factor
2008-11-19 16:24:23 -06:00
Doug Coleman
25d9fd68fc
translate directory-type flags to our factor symbols
2008-11-19 16:22:42 -06:00
Slava Pestov
6085557116
Parser now prints an IN:/USING: form if restarts were invoked; add more restarts for certain errors
2008-11-19 16:03:05 -06:00
Slava Pestov
8819f23312
Replace millis primitive with micros primitive
...
Add millis as a library word
sleep now takes either a duration or a microsecond count; code using durations doens't need to be updated, code using millisecond counts updated to use durations for the most part
2008-11-19 01:50:05 -06:00
Slava Pestov
281657dd82
Fix conflict
2008-11-18 22:18:14 -06:00
Slava Pestov
d62a6c4b09
Minor core cleanup
2008-11-18 22:08:02 -06:00
Slava Pestov
a9a28a3231
Trying to blindly fix Win64 unit tests
2008-11-17 20:28:52 -06:00
Slava Pestov
f29300c6ba
Better error message when vocab top level forms leave crap on the stack
2008-11-16 19:47:52 -06:00
Slava Pestov
251f9213c3
Fix typo
2008-11-16 19:19:53 -06:00
Slava Pestov
fbe29ceca8
format-table should not be private since ui.gadgets.grids uses it
2008-11-16 15:31:17 -06:00
Slava Pestov
e6218fdc71
Move words from compiler.errors.private to compiler.errors
2008-11-16 13:46:21 -06:00
Slava Pestov
acc1dc23fa
More usages of $quotation
2008-11-16 09:08:38 -06:00
Slava Pestov
9bf63b1613
New $quotation markup element
2008-11-16 09:03:30 -06:00
Slava Pestov
93e9e34175
Add $maybe markup element
2008-11-16 06:02:13 -06:00
Slava Pestov
99fd539b01
Rename io.streams.string:null to null-encoding
2008-11-16 05:59:38 -06:00
Slava Pestov
2fe364a7bb
Specialized arrays work in progress
2008-11-14 20:18:16 -06:00
Slava Pestov
ff95802c46
Change tags a bit
2008-11-14 20:17:27 -06:00
Slava Pestov
dffbb120a3
SLOT: now defines the accessor words instead of just deferring them
2008-11-14 00:39:28 -06:00
Slava Pestov
4858a2ea74
Simplify inline? now that generic words can't be inline anymore
2008-11-13 09:33:18 -06:00
Slava Pestov
ef6206d4bb
Try to optimize generic dispatch to speed up + on fixnums, nth on arrays for example
2008-11-13 03:51:04 -06:00
Slava Pestov
9f52ee50b0
Another speedup to >alist: create vector with right size up-front. 10 second bootstrap time reduction
2008-11-12 00:10:50 -06:00
Slava Pestov
eed1dd3d2b
Fix byte vector prettyprinting
2008-11-11 23:38:19 -06:00
Slava Pestov
57cf756c0e
Use eq? instead of number= in a few places
2008-11-11 23:04:15 -06:00
Slava Pestov
ed3a81a503
Faster M: hashtable >alist performs less dispatch and allocates less junk
2008-11-11 23:03:50 -06:00
Doug Coleman
0edfc83d50
document file-systems
2008-11-11 15:41:27 -06:00
Doug Coleman
78ab09d8bb
move file-systems word to core
2008-11-11 14:04:05 -06:00
Slava Pestov
a32acdcff0
Tweak grouping code for better method inlining
2008-11-11 12:11:13 -06:00
Slava Pestov
1d630b6cf2
Minor documentation fixes
2008-11-11 10:51:15 -06:00
Slava Pestov
e49ee006d1
Fix loop combinator docs
2008-11-11 08:50:48 -06:00
Slava Pestov
33a082c361
Fix reference to obsolete G: word
2008-11-10 02:43:16 -06:00
Slava Pestov
57242951b9
Better error reporting in FROM: and RENAME: words
2008-11-08 19:33:15 -06:00
unknown
78eeaddcf2
Add winnt-x86.64 boot image name
2008-11-07 20:34:26 -06:00
unknown
cc7ab11881
Add more unit tests
2008-11-07 20:34:04 -06:00
Slava Pestov
63a9975a0e
Support inline, foldable, flushable on methods; add declarations in a couple of places for ricing purposes
2008-11-06 13:13:37 -06:00
Slava Pestov
d2b2cda596
Sort methods by tag, this speeds up >fixnum in the common case where the input is a fixnum
2008-11-06 10:44:06 -06:00
Slava Pestov
1c1333fbe9
Compile not and >boolean as branchless intrinsics by having the CFG builder detect certain code patterns
2008-11-06 09:09:21 -06:00
Slava Pestov
a95bb533b5
Remove more redundant branches from tuple type predicates and generic words with methods on tuple classes
2008-11-06 09:08:17 -06:00
Slava Pestov
9160e667a7
Fix tuple>array and tuple reshaping
2008-11-06 01:10:56 -06:00
Slava Pestov
bfd119e3b5
I/O ricing: various hints added so that UTF8 and ASCII fastpaths compile with less dispatch. 25% improvement on reverse-complement
2008-11-06 00:02:44 -06:00
Slava Pestov
aac256324f
lo-tag-dispatch-engine now sorts tags, this ensures that >fixnum compiles more efficiently
2008-11-06 00:02:10 -06:00
Slava Pestov
cc879fa9b7
Tuple layouts are now arrays, instead of built-in types. The superclass
...
array is now part of the tuple layout object itself, and class hashcodes
are stored alongside class words there. This removes 2 indirections when
reading a superclass, and 3 when reading a superclass hashcode.
2008-11-05 22:20:29 -06:00
Slava Pestov
4e98751ce0
Remove a conditional branch from all tuple dispatches, since we don't have to check if the class height is at least 1; and remove memory accesses from tuple dispatch where all tuples are height 1
2008-11-05 20:23:38 -06:00
Slava Pestov
4fd1767768
Old fix for classes-intersect? no-method bug was incorrect; we were
...
ignoring anonymous classes in compiled-generic-crossref. Also,
forget* now calls reset-word so that references to predicates of
forgotten classes don't break the compiler with a similar error.
2008-11-05 18:32:02 -06:00
Slava Pestov
fb64c1cb45
Fix class<=; a predicate class derived from a union was not reported as being contained in the union
2008-11-04 04:59:54 -06:00
Slava Pestov
cc94894441
Fix notorious classes-intersect? bug, or at least one manifestation thereof. Turns out that we may temporarily end up with forgotten classes in the compiled-generic-crossref table. This is not a problem, since subsequently the words that reference forgotten classes will presumably be redefined and recompiled, but it does mean that (compiled-generic-usage) does need to handle this case
2008-11-04 03:38:44 -06:00