Commit Graph

1907 Commits (e8c3fe2afc0df3d2a0def09df866553c70054617)

Author SHA1 Message Date
Slava Pestov 425c70caa9 Remove empty tags file 2008-12-16 02:03:35 -06:00
Slava Pestov 63fda570bf Fixing assorted compile errors and help lint warnings 2008-12-16 01:12:36 -06:00
Slava Pestov 0021cde743 Fix more compile errors 2008-12-15 22:21:56 -06:00
U-SLAVA-DFB8FF805\Slava bf4acfa509 Merge branch 'master' of git://factorcode.org/git/factor 2008-12-13 05:06:56 -06:00
Slava Pestov 400b2a0ccb Add declaration to from-end 2008-12-15 21:34:25 -06:00
Slava Pestov de3a4f5462 Change some dup ... swap to bi and keep 2008-12-15 21:20:32 -06:00
Slava Pestov daf2857d7b define-inline now takes an effect parameter
C: now sets the stack effect of the new word to slot names
add new basis/constants vocab; CONSTANT: foo bar is equivalent to : foo bar ; inline
(going to fold CONSTANT:, ALIAS: and qualified into core soon perhaps)
tighten the screws: inline words now need a stack declaration too
update some usages of inline words
2008-12-15 19:44:56 -06:00
Slava Pestov e335059a87 Add meta-data to new I/O vocabularies 2008-12-15 08:15:32 -06:00
Slava Pestov 5cb18d51b3 Fixing test-all and help-lint-all failures 2008-12-15 03:33:04 -06:00
U-SLAVA-DFB8FF805\Slava 53db40ba13 Add more stack declarations 2008-12-13 05:06:28 -06:00
Slava Pestov 023ae576b5 Updating unit tests for io.files split 2008-12-15 01:40:50 -06:00
Slava Pestov e0f86889c7 Fixing load-everything for io.files split 2008-12-15 01:13:35 -06:00
Slava Pestov 59a5e554d4 Split up io.directories further, move file types to io.files.types. Bunny demo no longer pulls in file-info and file-system-info code, reducing image size by 35kb 2008-12-15 00:01:06 -06:00
Slava Pestov 6ea1de887d More unit test fixes 2008-12-14 22:38:14 -06:00
Slava Pestov dccbb84629 Updating unit tests for I/O re-organization 2008-12-14 21:21:44 -06:00
Slava Pestov 50e214c152 io.files split up and general refactoring work in progress 2008-12-14 20:03:00 -06:00
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
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