Slava Pestov
1f0c01183e
Re-implement monotonic? without using rot
2009-01-15 15:24:46 -06:00
Doug Coleman
f4cffe8a1b
move iota to sequences, fix example, add unit tests, make iota's slot integers only
2009-01-10 13:05:25 -06:00
Slava Pestov
a977691d82
Add iota virtual sequence which will eventually replace integers-as-sequences
2009-01-09 21:35:49 -06:00
Slava Pestov
af49278d3f
Add 2tri* and 2tri@ combinators, clean up (3each), and fix failing unit test for 3map
2009-01-05 18:12:34 -06:00
Slava Pestov
7b110b0bfd
Move 3each, 3map from compiler.utilities to sequences
2009-01-05 17:32:08 -06:00
Samuel Tardieu
0182a3430d
Allow sigma and friends to use the stack
...
"sigma" used to use the stack to remember the current total.
This prevented the use of quotations manipulating elements
that were expecting to be on the stack.
This patch hides the counter while executing the quotation,
so that the latter can fully use the stack.
2008-12-27 21:39:32 +01:00
Slava Pestov
63fda570bf
Fixing assorted compile errors and help lint warnings
2008-12-16 01:12:36 -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
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
d1744fd67a
Remove cache-nth word, nobody was using it and the semantics were broken
2008-12-07 08:51:22 -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
Doug Coleman
fd270d8ef2
add surround and glue to sequences
2008-12-03 08:32:54 -06:00
Slava Pestov
f675223873
Minor optimization in unclip-slice
2008-11-29 10:38: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
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
d504d6b8de
slice-errors now report the parameters to the slicing operation
2008-11-21 21:00:30 -06:00
Slava Pestov
adb0ada7ae
Add delq, filter-here
2008-10-19 03:34:58 -05:00
Slava Pestov
c19f2257f4
Fix permission bits
2008-10-02 08:34:49 -05:00
Slava Pestov
28d3654f61
Small ricing
2008-10-02 06:47:20 -05:00
Slava Pestov
f5acf7e3d6
Rice
2008-09-27 17:54:44 -05:00
Doug Coleman
affc0b4830
move some words to private, make stack effects for slices contain explicit -slice
2008-09-17 18:37:57 -05:00
Slava Pestov
8d7ebc5106
Change stack effect of nths to match nth, rice bounds-check?
2008-09-12 18:08:19 -05:00
Slava Pestov
996dd6442e
Add indices word
2008-09-12 16:03:47 -05:00
Slava Pestov
fdff43ee00
Fix load problem
2008-09-12 11:32:40 -05:00
Slava Pestov
f497c7e151
Move map-reduce combinator to core, re-implement norm-sq and v. for better performance
2008-09-12 11:29:12 -05:00
Slava Pestov
91faff92de
Minor change to copy and subseq to improve type inference
2008-09-12 08:18:57 -05:00
Slava Pestov
6a1e6d3c08
Fix dispatch bug found by mnestic
2008-09-10 01:45:16 -05:00
Slava Pestov
9dfb646606
Fix conflict
2008-09-09 23:39:30 -05:00
Slava Pestov
a3bbce3956
Add a couple of onlinline inline declarations
2008-09-09 23:38:40 -05:00
Doug Coleman
e3b67a2b20
fix seq docs
2008-09-09 19:31:26 -05:00
Slava Pestov
3e1e0cf232
Fix docs
2008-09-07 02:10:13 -05:00
Doug Coleman
b1d26e100a
use if/when/unless-empty, docs
2008-09-06 17:10:32 -05:00
Slava Pestov
eff021be65
Add inline declaration
2008-09-05 20:10:47 -05:00
Slava Pestov
bcc8483b5b
Move match to basis since compiler.tree.debugger uses it, fix conflict
2008-09-05 19:48:44 -05:00
Slava Pestov
6792ff748e
Move partition combinator into core
2008-09-05 19:32:19 -05:00
Slava Pestov
aea0fed14c
Fixing basis -> extra dependencies
2008-09-05 19:29:14 -05:00
Doug Coleman
6feefffc7a
trim-slice, rename trim-right, more docs
2008-09-05 17:40:57 -05:00
Slava Pestov
110a5e5162
Change equality semantics
2008-09-02 02:02:05 -05:00
Slava Pestov
8aa6f673aa
Optimizations and load fixes
2008-08-24 03:59:37 -05:00
Slava Pestov
60dd301497
Merge branch 'master' into new_optimizer
2008-08-18 20:31:57 -05:00
Slava Pestov
95657e5742
Remove some funny retain stack usage
2008-08-18 20:13:24 -05:00
Slava Pestov
1f89f9bd86
Merge branch 'master' into new_optimizer
2008-08-18 16:44:01 -05:00
Slava Pestov
8b55b53269
Re-implement reverse to fix obscure problem
2008-08-18 16:40:50 -05:00
Slava Pestov
3735f135c0
Move nths word to core
2008-08-13 18:56:41 -05:00
Slava Pestov
47376d86f8
Add 2map-into, 2change-each
2008-07-22 04:44:33 -05:00
Slava Pestov
ac2bf0b87d
Adding inline recursive declarations
2008-07-18 19:22:59 -05:00
Slava Pestov
d0ae6bdb8f
Make array length foldable
2008-07-16 16:48:09 -05:00