Doug Coleman
05b48364c6
factor: Working on making locals-everywhere, array literals constructed
...
by ``output>array``, and fry with arrays.
We need to expand macros before doing the locals transform ``rewrite-closures`` and fry needs to happen in the locals pass because the locals pass touches the retainstack as part of the transform and we only want to do this once. We defer fry by making a <fryable> which rewrite-closures transforms.
Fixes things like the following that used to break because the locals
transform happened before fry.
::: bar ( a b -- a ) '[ |[ a | a _ + ] call ] call ;
Also we can use fry in case/cond now since macro-expansion happens
first.
Things like this work:
::: foo ( a b c -- a ) :> ( a b c ) c q{{ a b c a b + c _ }} ;
1 2 4 foo ...
{ 1 2 4 3 4 4 }
Triple colon will become colon soon.
Finally, there is a potential issue with macros changing the order of
fry underscore expansion since fry happens later. We need to rewrite fry
internally as 0_ 1_ 2_ so order is preserved everywhere in the expanded
macro.
2020-03-12 17:06:15 -05:00
Doug Coleman
4bcae2590c
factor: Rename all #foo words except # so # can be a sigil.
2018-08-10 13:15:25 -05:00
Doug Coleman
5d8b912216
Merge remote-tracking branch 'origin/master' into modern-harvey2
2018-01-27 09:43:21 -06:00
John Benediktsson
b40ba26bac
basis/extra: removing '[ @ ] in favor of _ for fried quotations.
2018-01-19 23:40:23 -08:00
Doug Coleman
43628c8340
core: Move more things to core.
...
Tricky things:
f props>> == @ _ are not defined in syntax
2017-11-24 18:42:30 -06:00
Doug Coleman
bf82be86b1
Merge branch 'master' into modern-harvey
2017-11-11 11:45:46 -06:00
John Benediktsson
1a952a1fdc
combinators.smart: using each-from.
2017-10-24 17:05:23 -07:00
Doug Coleman
200b5192ed
factor: commit weekend work.
2017-09-11 16:37:47 -05:00
Doug Coleman
f5f7770d30
combinators.smart.syntax: Add some useful smart combinators syntax.
2017-09-11 16:37:47 -05:00
Alexander Iljin
2ffa446f5b
*-docs: replace double spaces with single spaces
...
Code examples and other places where multiple spaces were used to align
text were left intact.
2017-06-05 13:16:07 -07:00
Doug Coleman
32710df620
core/basis: Rename tuples kernel:curry -> curried, kernel:compose -> composed.
...
Also rename the stack-checker curried -> curried-effect, composed -> composed-effect.
2017-06-02 17:39:20 -05:00
Doug Coleman
e189954ecc
core: Rename iota to <iota> so we can have TUPLE: iota ... ; instead of TUPLE: iota-tuple ... ;
2017-06-02 11:57:05 -05:00
Alexander Iljin
2fd5654473
Add EOL at EOF for all authors.txt files for consistency
...
In some instances replaced CR/LF with LF.
2016-07-30 09:25:30 -07:00
Doug Coleman
391f8e433f
basis: Cleaning up tests using lists and IN: forms.
2016-03-30 20:04:14 -07:00
Doug Coleman
d3bc2035a2
factor: remove rest of double paren words.
2016-03-25 03:13:27 -07:00
John Benediktsson
ceb75057da
change ERROR: words from throw-foo back to foo.
2015-08-13 16:13:05 -07:00
Doug Coleman
b6be8685c3
basis: ERROR: changes.
2015-08-13 03:20:39 -07:00
Doug Coleman
33d96f7623
combinators.smart: Add smart combinator that outputs a seq and (length-n) more elements.
2015-08-06 12:07:20 -05:00
Doug Coleman
1fcf96cada
factor: remove """ string syntax for now. there are HEREDOC:, STRING:, escaping \", and something else soon.
2015-07-25 22:59:56 -07:00
Doug Coleman
2c257f399c
factor: Rename MACRO: and MACRO: to have quot as the output in stack effects.
2015-07-18 22:16:11 -07:00
Doug Coleman
892c62e1dc
factor: second stab at [ ] [ ] unit-test -> { } [ ] unit-test
2015-07-03 09:39:59 -07:00
Doug Coleman
59f3b1ea57
Revert "factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!"
...
Needs a bit more work.
This reverts commit 7e54cc2824 .
2015-07-02 13:47:06 -07:00
Doug Coleman
7e54cc2824
factor: rename [ ] [ ] unit-test -> { } [ ] unit-test using a refactoring tool!
2015-07-02 11:36:08 -07:00
Doug Coleman
999aa7c897
factor: clean up spaces in -tests files
2015-07-02 10:34:01 -07:00
Doug Coleman
352e5de16a
core, basis, extra: Remove DOS line endings from files.
...
Remove whitespace from end of lines.
Add a newline to the end of each file.
2015-06-29 17:25:40 -07:00
Björn Lindqvist
60ffe0680e
kernel: new combinator 2with = with with
2014-07-22 07:40:13 -07:00
John Benediktsson
98935b7f15
docs: change ``{ $quotation "( x -- y )" }`` to ``{ $quotation ( x -- y ) }``.
2014-05-18 20:09:10 -07:00
Doug Coleman
e996dc7f8e
combinators.smart: Clarify stack effect for cleave>array.
2013-05-14 14:33:04 -07:00
John Benediktsson
5903b2ccf5
combinators.smart: adding smart-2reduce and smart-2map-reduce, for @erg.
2012-09-26 17:43:26 -07:00
John Benediktsson
c5c74aa59c
combinators.smart: adding smart-reduce and smart-map-reduce.
2012-09-26 17:01:44 -07:00
Doug Coleman
cda2e4d7da
combinators.smart: Add cleave>sequence.
2012-09-19 15:44:20 -07:00
Doug Coleman
8bfed897a8
combinators.smart: Add cleave>array.
2012-09-16 17:32:27 -07:00
John Benediktsson
2620c64c21
combinators.smart: adding smart-with.
2012-08-13 19:32:12 -07:00
John Benediktsson
d3ce5c7deb
combinators.random: some style cleanup.
2012-08-02 14:06:08 -07:00
Doug Coleman
6686cae347
random: Add random-unit word. 1 random-unit - is the same distribution, as Joe pointed out, so remove that. Use random-unit in librarie.
2012-03-30 18:04:45 -07:00
Doug Coleman
ebb722bf56
combinators.smart: Make map-reduce-outputs a macro. To be a combinator, we need a full stack-checker rewrite.
2011-12-19 11:12:37 -08:00
Doug Coleman
abc953ecea
help-lint fixes for recent changes
2011-12-07 12:26:35 -08:00
Doug Coleman
d283eac921
combinators.smart: Tell the stack checker that the return values from inputs/ouputs are input-parameters
...
Fixes #435
2011-11-30 23:15:42 -08:00
Doug Coleman
3ba787b277
core/basis: trim down using lists
2011-11-30 23:15:42 -08:00
Doug Coleman
0a287cb33f
combinators.smart: Use an identity memoize on inputs/outputs word to speed up the non-optimizing compiler
2011-11-30 14:41:32 -08:00
Doug Coleman
cde3c043bf
combinators.smart: Fix infer-known; should be 100% now.
...
It's stack-checker bugs all the way down.
2011-11-28 20:55:11 -08:00
Doug Coleman
c1a49e69c8
combinators.smart: Implement reduce-outputs using compose, fix some stack effects, add using
2011-11-28 20:55:10 -08:00
Doug Coleman
8b18af0335
combinators.smart: Enable a unit test, handle M: object infer-known*, make sum-outputs a macro.
...
Fixes inverse but still needs work, once I figure out how.
2011-11-28 14:36:57 -08:00
Doug Coleman
41e4c48647
combinators.smart: Fix reduce-outputs, rename quot*n to call-n, rewrite more macros as combinators.
2011-11-28 12:41:50 -08:00
Doug Coleman
2b87eaa1b5
generalizations: Refactor stack-checker so that smart combinators can be used with curry and compose.
2011-11-27 20:25:22 -08:00
otoburb
4817ba5a93
smart-docs output>array typo fix
2011-03-14 06:07:33 +00:00
Keita Haga
70d06dc4c7
combinators.random: fix a couple of usage examples in casep and casep*
2011-02-20 03:51:09 +09:00
Keita Haga
61881f1977
combinators.smart, multiline: few $examples turn into $codes
2011-01-15 00:22:29 +09:00
Doug Coleman
4a018ebdfc
Squashed commit of the following:
...
commit fbec7374aa3f99d8f76499183920e537dc7f38b1
Author: Doug Coleman <doug.coleman@gmail.com>
Date: Sun Sep 19 13:28:47 2010 -0500
Remove random.combinators vocab
commit 74f91aca4a961879ec57ef56114eadd5e9f6dcee
Author: Doug Coleman <doug.coleman@gmail.com>
Date: Sun Sep 19 13:28:22 2010 -0500
Rename random.combinators to combinators.random. Add random.data vocabulary
commit f616c3f4ceac48ac6f48836040130ba4f090c47f
Author: Doug Coleman <doug.coleman@gmail.com>
Date: Sun Sep 19 13:14:01 2010 -0500
Add execute-random combinator, docs, and respace a few things..
commit 1ce17507e3767c78e14ecf5e27e542168a47b2a2
Merge: db359d6 b53fc83
Author: Doug Coleman <doug.coleman@gmail.com>
Date: Sun Sep 19 12:55:53 2010 -0500
Merge branch 'random-combinators' of git://github.com/jonenst/factor into random-combinators
commit b53fc830f3319e9bdfce02674ea480f69e1453db
Author: Jon Harper <jon.harper87@gmail.com>
Date: Mon Aug 23 17:16:21 2010 +0200
Random combinators vocabulary
2010-09-19 13:29:43 -05:00
Slava Pestov
50323dda6d
combinators.smart: remove boa-preserving
2010-06-23 21:10:46 -04:00