Commit Graph

99 Commits (3a430c4daea8135ccee254adfce8ca232d131bf5)

Author SHA1 Message Date
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