Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

"When in doubt, print 'em out." -- Karl's Programming Proverb 0x7


devel / comp.lang.forth / Re: Fix VFX FIND (was: POSTPONEing literals?)

SubjectAuthor
* POSTPONEing literals?dxforth
`* Re: POSTPONEing literals?Hugh Aguilar
 +* Re: POSTPONEing literals?dxforth
 |+* Re: POSTPONEing literals?Anton Ertl
 ||`* Re: POSTPONEing literals?dxforth
 || `* Re: POSTPONEing literals?Anton Ertl
 ||  `* Re: POSTPONEing literals?dxforth
 ||   +- Re: POSTPONEing literals?dxforth
 ||   +* Re: POSTPONEing literals?Ruvim
 ||   |`* Re: POSTPONEing literals?dxforth
 ||   | `- Re: POSTPONEing literals?Ruvim
 ||   `- Re: POSTPONEing literals?Anton Ertl
 |`* Re: POSTPONEing literals?dxforth
 | `* Re: POSTPONEing literals?dxforth
 |  `* Re: POSTPONEing literals?Anton Ertl
 |   +* Re: POSTPONEing literals?dxforth
 |   |`* Re: POSTPONEing literals?Anton Ertl
 |   | +* Re: POSTPONEing literals?Ruvim
 |   | |`* Re: POSTPONEing literals?dxforth
 |   | | `* Re: POSTPONEing literals?Ruvim
 |   | |  +* Re: POSTPONEing literals?none
 |   | |  |`* Re: POSTPONEing literals?Ruvim
 |   | |  | `* Re: POSTPONEing literals?none
 |   | |  |  `* Re: POSTPONEing literals?Ruvim
 |   | |  |   `- Re: POSTPONEing literals?none
 |   | |  `* Re: POSTPONEing literals?dxforth
 |   | |   `* Re: POSTPONEing literals?Ruvim
 |   | |    `* Re: POSTPONEing literals?dxforth
 |   | |     +* Re: POSTPONEing literals?Ruvim
 |   | |     |+* Re: POSTPONEing literals?Hugh Aguilar
 |   | |     ||`- Re: POSTPONEing literals?dxforth
 |   | |     |`* Re: POSTPONEing literals?dxforth
 |   | |     | +* Re: POSTPONEing literals?Ruvim
 |   | |     | |+- VFX bug in COMPILE, (was: POSTPONEing literals?)Ruvim
 |   | |     | |+* Re: POSTPONEing literals?Stephen Pelc
 |   | |     | ||+* Re: POSTPONEing literals?Anton Ertl
 |   | |     | |||`* Re: POSTPONEing literals?Stephen Pelc
 |   | |     | ||| +* Re: POSTPONEing literals?Ruvim
 |   | |     | ||| |`* Re: POSTPONEing literals?Stephen Pelc
 |   | |     | ||| | `* Fix VFX FIND (was: POSTPONEing literals?)Ruvim
 |   | |     | ||| |  +- Re: Fix VFX FIND (was: POSTPONEing literals?)Ruvim
 |   | |     | ||| |  `* Re: Fix VFX FIND (was: POSTPONEing literals?)Stephen Pelc
 |   | |     | ||| |   +* Re: Fix VFX FINDRuvim
 |   | |     | ||| |   |`* Re: Fix VFX FINDStephen Pelc
 |   | |     | ||| |   | `- Re: Fix VFX FINDRuvim
 |   | |     | ||| |   +* Re: Fix VFX FIND (was: POSTPONEing literals?)Paul Liles
 |   | |     | ||| |   |+* Re: Fix VFX FIND (was: POSTPONEing literals?)Ruvim
 |   | |     | ||| |   ||`* Re: Fix VFX FIND (was: POSTPONEing literals?)Paul Liles
 |   | |     | ||| |   || +* Re: Fix VFX FIND (was: POSTPONEing literals?)Anton Ertl
 |   | |     | ||| |   || |`* Re: Fix VFX FIND (was: POSTPONEing literals?)minf...@arcor.de
 |   | |     | ||| |   || | +- Re: Fix VFX FIND (was: POSTPONEing literals?)Paul Liles
 |   | |     | ||| |   || | +* Re: Fix VFX FIND (was: POSTPONEing literals?)Krishna Myneni
 |   | |     | ||| |   || | |`* Re: Fix VFX FIND (was: POSTPONEing literals?)minf...@arcor.de
 |   | |     | ||| |   || | | `* Re: Fix VFX FIND (was: POSTPONEing literals?)Anton Ertl
 |   | |     | ||| |   || | |  +- Re: Fix VFX FIND (was: POSTPONEing literals?)minf...@arcor.de
 |   | |     | ||| |   || | |  +- Re: Fix VFX FIND (was: POSTPONEing literals?)minf...@arcor.de
 |   | |     | ||| |   || | |  +- Re: Fix VFX FIND (was: POSTPONEing literals?)dxforth
 |   | |     | ||| |   || | |  `* single-xt and dual-xt approaches (was: Fix VFX FIND)Ruvim
 |   | |     | ||| |   || | |   +- Re: single-xt and dual-xt approaches (was: Fix VFX FIND)none
 |   | |     | ||| |   || | |   `- Re: single-xt and dual-xt approaches (was: Fix VFX FIND)dxforth
 |   | |     | ||| |   || | `- Re: Fix VFX FIND (was: POSTPONEing literals?)dxforth
 |   | |     | ||| |   || `- Re: Fix VFX FIND (was: POSTPONEing literals?)Ruvim
 |   | |     | ||| |   |`* Re: Fix VFX FIND (was: POSTPONEing literals?)Stephen Pelc
 |   | |     | ||| |   | `* Re: Fix VFX FIND (was: POSTPONEing literals?)Paul Liles
 |   | |     | ||| |   |  +- Re: Fix VFX FIND (was: POSTPONEing literals?)Stephen Pelc
 |   | |     | ||| |   |  `- Re: Fix VFX FIND (was: POSTPONEing literals?)Anton Ertl
 |   | |     | ||| |   `- Re: Fix VFX FIND (was: POSTPONEing literals?)none
 |   | |     | ||| `* Re: POSTPONEing literals?Anton Ertl
 |   | |     | |||  +* Re: POSTPONEing literals?Ruvim
 |   | |     | |||  |+- FIND clarification rationale (was: POSTPONEing literals?)Ruvim
 |   | |     | |||  |+- Re: POSTPONEing literals?Anton Ertl
 |   | |     | |||  |`* Re: POSTPONEing literals?Stephen Pelc
 |   | |     | |||  | +- Re: POSTPONEing literals?Ruvim
 |   | |     | |||  | `* Re: POSTPONEing literals?dxforth
 |   | |     | |||  |  +- Re: POSTPONEing literals?none
 |   | |     | |||  |  +* Re: POSTPONEing literals?Ruvim
 |   | |     | |||  |  |+* Re: POSTPONEing literals?none
 |   | |     | |||  |  ||`- Re: POSTPONEing literals?Ruvim
 |   | |     | |||  |  |`* Re: POSTPONEing literals?dxforth
 |   | |     | |||  |  | +* Re: POSTPONEing literals?Stephen Pelc
 |   | |     | |||  |  | |`- Re: POSTPONEing literals?dxforth
 |   | |     | |||  |  | `- Re: POSTPONEing literals?Ruvim
 |   | |     | |||  |  `- Re: POSTPONEing literals?Doug Hoffman
 |   | |     | |||  `* Re: POSTPONEing literals?Marcel Hendrix
 |   | |     | |||   +- Re: POSTPONEing literals?Ruvim
 |   | |     | |||   `- Re: POSTPONEing literals?Anton Ertl
 |   | |     | ||`- Re: POSTPONEing literals?Ruvim
 |   | |     | |`* Re: POSTPONEing literals?dxforth
 |   | |     | | `* Re: POSTPONEing literals?Anton Ertl
 |   | |     | |  `* Re: POSTPONEing literals?dxforth
 |   | |     | |   `* Re: POSTPONEing literals?Ruvim
 |   | |     | |    `* Re: POSTPONEing literals?dxforth
 |   | |     | |     `* Re: POSTPONEing literals?P Falth
 |   | |     | |      `* Re: POSTPONEing literals?Ruvim
 |   | |     | |       +* Alternative to FIND (was: POSTPONEing literals?)Ruvim
 |   | |     | |       |`* Re: Alternative to FIND (was: POSTPONEing literals?)P Falth
 |   | |     | |       | +* Re: Alternative to FIND (was: POSTPONEing literals?)Anton Ertl
 |   | |     | |       | |`- Re: Alternative to FIND (was: POSTPONEing literals?)P Falth
 |   | |     | |       | `* Re: Alternative to FINDRuvim
 |   | |     | |       |  `* Re: Alternative to FINDP Falth
 |   | |     | |       |   +- Re: Alternative to FINDminf...@arcor.de
 |   | |     | |       |   +* Re: Alternative to FINDRuvim
 |   | |     | |       |   `* Re: Alternative to FINDStephen Pelc
 |   | |     | |       `* Re: POSTPONEing literals?P Falth
 |   | |     | `- Re: POSTPONEing literals?Stephen Pelc
 |   | |     `* Re: POSTPONEing literals?Anton Ertl
 |   | `- Re: POSTPONEing literals?dxforth
 |   `- Re: POSTPONEing literals?none
 `* Re: POSTPONEing literals?azathot...@gmail.com

Pages:123456789
Re: Odd cases of undefined interpretation semantics

<s8hk3s$1472$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13284&group=comp.lang.forth#13284

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics
Date: Tue, 25 May 2021 11:32:45 +1000
Organization: Aioe.org NNTP Server
Lines: 23
Message-ID: <s8hk3s$1472$1@gioia.aioe.org>
References: <s6a8o8$va3$1@gioia.aioe.org>
<31ba090a-29c8-4b5e-9b04-22c9d43115d5n@googlegroups.com>
<s6arit$ubj$1@gioia.aioe.org> <s6bl0q$1870$1@gioia.aioe.org>
<s6d41g$hu6$1@gioia.aioe.org> <2021Apr29.080904@mips.complang.tuwien.ac.at>
<s6dn0e$hoq$1@gioia.aioe.org> <2021Apr29.105420@mips.complang.tuwien.ac.at>
<s6e45l$lpa$1@dont-email.me> <s6fgj2$rb0$1@gioia.aioe.org>
<s6gos1$7jf$1@dont-email.me> <s6ifhb$139$1@gioia.aioe.org>
<s6liqg$ia6$1@dont-email.me> <s6nvtm$149e$1@gioia.aioe.org>
<2021May9.172106@mips.complang.tuwien.ac.at> <s7a94j$6ii$1@gioia.aioe.org>
<2021May10.180918@mips.complang.tuwien.ac.at> <s7df2c$1nas$1@gioia.aioe.org>
<2021May11.125143@mips.complang.tuwien.ac.at> <s7fv9c$p2$1@dont-email.me>
<2021May12.115400@mips.complang.tuwien.ac.at> <s7tuok$4vb$1@dont-email.me>
<2021May17.173643@mips.complang.tuwien.ac.at> <s8dg2v$adl$1@dont-email.me>
<s8fok1$9tj$1@gioia.aioe.org> <1p9ojmn.1ltc322xcydw9N%awegel@arcor.de>
NNTP-Posting-Host: xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Tue, 25 May 2021 01:32 UTC

On 24/05/2021 19:00, Alexander Wegel wrote:
> dxforth <dxforth@gmail.com> wrote:
>
>> On 23/05/2021 21:59, Ruvim wrote:
>
>> > But the current definition can exist in interpretation state too, e.g.:
>> >
>> > : bar [: ." (ABC)" ;] compile, ." (ABC compiled)" ; immediate
>> > : foo [ ' bar compile, ] ;
>> >
>> > And in these conditions their ES (and then the default IS) make sense.
>>
>> Make sense to whom?
>
> To people thinking a step further.
>

Then they should think further. ANS was never about creating a new forth
paradigm - it was accommodating existing implementations, predominantly
the vendors. Just as 200x had to modify its expectations over locals and
accommodate Forth Inc, so it will be with MPE should it not back down.
The standard is a set of rules - rules that can and have changed by TC's
when in their interest to do so.

Re: Odd cases of undefined interpretation semantics

<60acbca4.512609@news.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13285&group=comp.lang.forth#13285

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: step...@mpeforth.com (Stephen Pelc)
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics
Date: Tue, 25 May 2021 09:04:31 GMT
Organization: MPE
Lines: 25
Message-ID: <60acbca4.512609@news.eternal-september.org>
References: <s6a8o8$va3$1@gioia.aioe.org> <31ba090a-29c8-4b5e-9b04-22c9d43115d5n@googlegroups.com> <s6arit$ubj$1@gioia.aioe.org> <s6bl0q$1870$1@gioia.aioe.org> <s6d41g$hu6$1@gioia.aioe.org> <2021Apr29.080904@mips.complang.tuwien.ac.at> <s6dn0e$hoq$1@gioia.aioe.org> <2021Apr29.105420@mips.complang.tuwien.ac.at> <s6e45l$lpa$1@dont-email.me> <s6fgj2$rb0$1@gioia.aioe.org> <s6gos1$7jf$1@dont-email.me> <s6ifhb$139$1@gioia.aioe.org> <s6liqg$ia6$1@dont-email.me> <s6nvtm$149e$1@gioia.aioe.org> <2021May9.172106@mips.complang.tuwien.ac.at> <s7a94j$6ii$1@gioia.aioe.org> <2021May10.180918@mips.complang.tuwien.ac.at> <s7df2c$1nas$1@gioia.aioe.org> <2021May11.125143@mips.complang.tuwien.ac.at> <s7fv9c$p2$1@dont-email.me> <2021May12.115400@mips.complang.tuwien.ac.at> <s7tuok$4vb$1@dont-email.me> <2021May17.173643@mips.complang.tuwien.ac.at> <s8dg2v$adl$1@dont-email.me> <s8fok1$9tj$1@gioia.aioe.org> <1p9ojmn.1ltc322xcydw9N%awegel@arcor.de> <s8hk3s$1472$1@gioia.aioe.org>
Reply-To: stephen@mpeforth.com
Injection-Info: reader02.eternal-september.org; posting-host="4d253be8ac14cdf6dd322d6ad2fd77bb";
logging-data="24746"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+IAGeqx/31qervqiXuZ5z/"
Cancel-Lock: sha1:hlz/fQJjmGB3Oz3A3w1OK2MkLWQ=
X-Newsreader: Forte Free Agent 1.21/32.243
 by: Stephen Pelc - Tue, 25 May 2021 09:04 UTC

On Tue, 25 May 2021 11:32:45 +1000, dxforth <dxforth@gmail.com> wrote:

>Then they should think further. ANS was never about creating a new forth
>paradigm - it was accommodating existing implementations, predominantly
>the vendors.

The TC discusses and votes. It mostly accommodates the views of those
people who turn up.

>Just as 200x had to modify its expectations over locals and
>accommodate Forth Inc, so it will be with MPE should it not back down.

What position of MPE are you talking about?

>The standard is a set of rules - rules that can and have changed by TC's
>when in their interest to do so.

Stephen

--
Stephen Pelc, stephen@vfxforth.com
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 (0)23 8063 1441, +44 (0)78 0390 3612, +34 649 662 974
web: http://www.mpeforth.com - free VFX Forth downloads

Re: Odd cases of undefined interpretation semantics

<s8k76l$1j8l$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13286&group=comp.lang.forth#13286

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics
Date: Wed, 26 May 2021 11:10:48 +1000
Organization: Aioe.org NNTP Server
Lines: 21
Message-ID: <s8k76l$1j8l$1@gioia.aioe.org>
References: <s6a8o8$va3$1@gioia.aioe.org> <s6arit$ubj$1@gioia.aioe.org>
<s6bl0q$1870$1@gioia.aioe.org> <s6d41g$hu6$1@gioia.aioe.org>
<2021Apr29.080904@mips.complang.tuwien.ac.at> <s6dn0e$hoq$1@gioia.aioe.org>
<2021Apr29.105420@mips.complang.tuwien.ac.at> <s6e45l$lpa$1@dont-email.me>
<s6fgj2$rb0$1@gioia.aioe.org> <s6gos1$7jf$1@dont-email.me>
<s6ifhb$139$1@gioia.aioe.org> <s6liqg$ia6$1@dont-email.me>
<s6nvtm$149e$1@gioia.aioe.org> <2021May9.172106@mips.complang.tuwien.ac.at>
<s7a94j$6ii$1@gioia.aioe.org> <2021May10.180918@mips.complang.tuwien.ac.at>
<s7df2c$1nas$1@gioia.aioe.org> <2021May11.125143@mips.complang.tuwien.ac.at>
<s7fv9c$p2$1@dont-email.me> <2021May12.115400@mips.complang.tuwien.ac.at>
<s7tuok$4vb$1@dont-email.me> <2021May17.173643@mips.complang.tuwien.ac.at>
<s8dg2v$adl$1@dont-email.me> <s8fok1$9tj$1@gioia.aioe.org>
<1p9ojmn.1ltc322xcydw9N%awegel@arcor.de> <s8hk3s$1472$1@gioia.aioe.org>
<60acbca4.512609@news.eternal-september.org>
NNTP-Posting-Host: xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Content-Language: en-GB
X-Notice: Filtered by postfilter v. 0.9.2
 by: dxforth - Wed, 26 May 2021 01:10 UTC

On 25/05/2021 19:04, Stephen Pelc wrote:
> On Tue, 25 May 2021 11:32:45 +1000, dxforth <dxforth@gmail.com> wrote:
>
>>Then they should think further. ANS was never about creating a new forth
>>paradigm - it was accommodating existing implementations, predominantly
>>the vendors.
>
> The TC discusses and votes. It mostly accommodates the views of those
> people who turn up.

Those views have consistently been that a 'standard program' should be
able to run on vendors' systems. Just as it was with ANS.

>
>>Just as 200x had to modify its expectations over locals and
>>accommodate Forth Inc, so it will be with MPE should it not back down.
>
> What position of MPE are you talking about?

>> > : bar [: ." (ABC)" ;] compile, ." (ABC compiled)" ; immediate
>> > : foo [ ' bar compile, ] ;

Re: Odd cases of undefined interpretation semantics (was: Performing compilation semantics, RFI Q99-027)

<s8kjta$1l4b$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13288&group=comp.lang.forth#13288

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics (was: Performing
compilation semantics, RFI Q99-027)
Date: Wed, 26 May 2021 14:47:34 +1000
Organization: Aioe.org NNTP Server
Lines: 36
Message-ID: <s8kjta$1l4b$1@gioia.aioe.org>
References: <s6a8o8$va3$1@gioia.aioe.org>
<2021May17.173643@mips.complang.tuwien.ac.at> <s8dg2v$adl$1@dont-email.me>
<2021May23.170041@mips.complang.tuwien.ac.at>
<60ab7b78$0$22689$e4fe514c@news.xs4all.nl>
NNTP-Posting-Host: xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
X-Mozilla-News-Host: news://nntp.aioe.org
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Wed, 26 May 2021 04:47 UTC

On 24/05/2021 20:10, albert wrote:
> In article <2021May23.170041@mips.complang.tuwien.ac.at>,
> Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
> <SNIP>
>>And thinking more about it, it's probably an ill-thought-out way to
>>protect programmers from using these words wrongly. Similar in spirit
>>(though not in semantics) to how dxforth pollutes his system with
>>?COMP, while SwiftForth demonstrates that this kind of paternalism is
>>unnecessary.
>
> : test [ IF ] "TRUE" TYPE ELSE "FALSE" TYPE THEN ;
> : test [ IF ? ciforth ERROR # 17 : COMPILATION ONLY, USE IN DEFINITION
> WANT -plain-control-
> -plain-control- : (WARNING) NOT PRESENT, THOUGH WANTED
> OK
> : test [ IF ] "TRUE" TYPE ELSE "FALSE" TYPE THEN ;
> OK
> 0 test
> FALSE OK
> 1 test
> TRUE OK
>
> I don't think this is paternalism, as long as you can switch it off,
> but the benefits are slim.
> I think more of them as training wheels for novices.
> The only word where `?COMP would have helped me is in `; .
> As in editing errors like
> : double
> 2 * ;
> ;
> but fig-Forth did not have a `?COMP in `; and neither do I.
> ...

Fig-forth had ?COMP in COMPILE which was executed by ';'

I use ?COMP a total of fives times which covers all the usual suspects.

Re: Fix VFX FIND (was: POSTPONEing literals?)

<6dc56776-853c-4a25-b345-b0ddebeaa431n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13289&group=comp.lang.forth#13289

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:622a:89:: with SMTP id o9mr35105547qtw.339.1622015417070;
Wed, 26 May 2021 00:50:17 -0700 (PDT)
X-Received: by 2002:a37:270d:: with SMTP id n13mr38626579qkn.146.1622015416955;
Wed, 26 May 2021 00:50:16 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 26 May 2021 00:50:16 -0700 (PDT)
In-Reply-To: <609cf7fe.7915093@news.eternal-september.org>
Injection-Info: google-groups.googlegroups.com; posting-host=92.233.200.53; posting-account=vspE8woAAABMK67BtjVBwn5OkceFYJAA
NNTP-Posting-Host: 92.233.200.53
References: <s6a8o8$va3$1@gioia.aioe.org> <s6d41g$hu6$1@gioia.aioe.org>
<2021Apr29.080904@mips.complang.tuwien.ac.at> <s6dn0e$hoq$1@gioia.aioe.org>
<2021Apr29.105420@mips.complang.tuwien.ac.at> <s6e45l$lpa$1@dont-email.me>
<s6fgj2$rb0$1@gioia.aioe.org> <s6gos1$7jf$1@dont-email.me>
<s6ifhb$139$1@gioia.aioe.org> <s6liqg$ia6$1@dont-email.me>
<s6nvtm$149e$1@gioia.aioe.org> <s6odjp$2pk$1@dont-email.me>
<s6qi25$bjs$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me>
<60926f06.2412281@news.eternal-september.org> <2021May5.134626@mips.complang.tuwien.ac.at>
<6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me>
<6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me>
<609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com>
<609cf7fe.7915093@news.eternal-september.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6dc56776-853c-4a25-b345-b0ddebeaa431n@googlegroups.com>
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
From: pauldli...@btopenworld.com (Paul Liles)
Injection-Date: Wed, 26 May 2021 07:50:17 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Paul Liles - Wed, 26 May 2021 07:50 UTC

On Thursday, May 13, 2021 at 11:58:53 AM UTC+1, Stephen Pelc wrote:

> COMPILE, may not parse source text or have additional stack effects.

I take your point about stack effects (so I have reverted to not using COMPILE, for
this purpose), but I don't see why COMPILE, may not parse. Sure, it doesn't show up
in the definition of COMPILE, but then neither does it in EXECUTE - and I don't see
anyone argue that you can't EXECUTE a parsing word. And in the rationale, COMPILE,
is supposed to be the compilation equivalent of EXECUTE.

(although, as usual, I may be completely wrong!)

Paul

Re: Fix VFX FIND (was: POSTPONEing literals?)

<3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13290&group=comp.lang.forth#13290

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:f612:: with SMTP id y18mr39197434qkj.436.1622016989937;
Wed, 26 May 2021 01:16:29 -0700 (PDT)
X-Received: by 2002:ad4:5907:: with SMTP id ez7mr41252777qvb.35.1622016989798;
Wed, 26 May 2021 01:16:29 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.pasdenom.info!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 26 May 2021 01:16:29 -0700 (PDT)
In-Reply-To: <s7j068$v8d$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=92.233.200.53; posting-account=vspE8woAAABMK67BtjVBwn5OkceFYJAA
NNTP-Posting-Host: 92.233.200.53
References: <s6a8o8$va3$1@gioia.aioe.org> <s6d41g$hu6$1@gioia.aioe.org>
<2021Apr29.080904@mips.complang.tuwien.ac.at> <s6dn0e$hoq$1@gioia.aioe.org>
<2021Apr29.105420@mips.complang.tuwien.ac.at> <s6e45l$lpa$1@dont-email.me>
<s6fgj2$rb0$1@gioia.aioe.org> <s6gos1$7jf$1@dont-email.me>
<s6ifhb$139$1@gioia.aioe.org> <s6liqg$ia6$1@dont-email.me>
<s6nvtm$149e$1@gioia.aioe.org> <s6odjp$2pk$1@dont-email.me>
<s6qi25$bjs$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me>
<60926f06.2412281@news.eternal-september.org> <2021May5.134626@mips.complang.tuwien.ac.at>
<6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me>
<6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me>
<609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com>
<s7j068$v8d$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
From: pauldli...@btopenworld.com (Paul Liles)
Injection-Date: Wed, 26 May 2021 08:16:29 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Paul Liles - Wed, 26 May 2021 08:16 UTC

On Thursday, May 13, 2021 at 11:48:41 AM UTC+1, Ruvim wrote:

> This issue is addressed by the Recognizer API
>
> The most recently discussed variant can be found at:
> https://forth-standard.org/proposals/minimalistic-core-api-for-recognizers?hideDiff#reply-515

Ah, thank you for that. I will probably find it useful.

> "compilation semantics of xt" is a nonsense.
>
> Compilation semantics make sense for only named definitions (words).
> Ditto interpretation semantics.
>
> Please refer to 2.1 Definitions of terms
> https://forth-standard.org/standard/notation#notation:terms

I'm not sure that it is a nonsense at all. With the usual disclaimer that I may
be completely wrong, surely any implementation of NDCS/dual words will
allow at least *some* words, as identified by their xts, to have separately identifiable
compilation semantics. So far as I can tell, this would be true of words
defined with INTERPRET/COMPILE in Gforth or with :NDCS in VFX.

Re: Odd cases of undefined interpretation semantics (was: Performing compilation semantics, RFI Q99-027)

<60ae2899$0$22713$e4fe514c@news.xs4all.nl>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13291&group=comp.lang.forth#13291

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!news.swapon.de!2.eu.feeder.erje.net!feeder.erje.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics (was: Performing
compilation semantics, RFI Q99-027)
References: <s6a8o8$va3$1@gioia.aioe.org> <2021May23.170041@mips.complang.tuwien.ac.at> <60ab7b78$0$22689$e4fe514c@news.xs4all.nl> <s8kjta$1l4b$1@gioia.aioe.org>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Date: 26 May 2021 10:53:13 GMT
Lines: 46
Message-ID: <60ae2899$0$22713$e4fe514c@news.xs4all.nl>
NNTP-Posting-Host: 03f49e11.news.xs4all.nl
X-Trace: G=+i6HfZ6h,C=U2FsdGVkX19aFpnI4yDXY03yNpIw6UDA5pk5TA+vUj8SUGbDtNp/LBdlwRqqdatVcct9k1SjWiyL+hJywBaPA8fOjzZx6JD0UYzYggP/z2sA6W17N79BZNzMWciJNXAa
X-Complaints-To: abuse@xs4all.nl
 by: none - Wed, 26 May 2021 10:53 UTC

In article <s8kjta$1l4b$1@gioia.aioe.org>, dxforth <dxforth@gmail.com> wrote:
>On 24/05/2021 20:10, albert wrote:
>> In article <2021May23.170041@mips.complang.tuwien.ac.at>,
>> Anton Ertl <anton@mips.complang.tuwien.ac.at> wrote:
>> <SNIP>
>>>And thinking more about it, it's probably an ill-thought-out way to
>>>protect programmers from using these words wrongly. Similar in spirit
>>>(though not in semantics) to how dxforth pollutes his system with
>>>?COMP, while SwiftForth demonstrates that this kind of paternalism is
>>>unnecessary.
>>
>> : test [ IF ] "TRUE" TYPE ELSE "FALSE" TYPE THEN ;
>> : test [ IF ? ciforth ERROR # 17 : COMPILATION ONLY, USE IN DEFINITION
>> WANT -plain-control-
>> -plain-control- : (WARNING) NOT PRESENT, THOUGH WANTED
>> OK
>> : test [ IF ] "TRUE" TYPE ELSE "FALSE" TYPE THEN ;
>> OK
>> 0 test
>> FALSE OK
>> 1 test
>> TRUE OK
>>
>> I don't think this is paternalism, as long as you can switch it off,
>> but the benefits are slim.
>> I think more of them as training wheels for novices.
>> The only word where `?COMP would have helped me is in `; .
>> As in editing errors like
>> : double
>> 2 * ;
>> ;
>> but fig-Forth did not have a `?COMP in `; and neither do I.
>> ...
>
>Fig-forth had ?COMP in COMPILE which was executed by ';'
>
>I use ?COMP a total of fives times which covers all the usual suspects.

You're right. I got rid of COMPILE and ?COMP disappeared with it.

Groetjes Albert
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: Fix VFX FIND (was: POSTPONEing literals?)

<60ae53f4.8214687@news.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13294&group=comp.lang.forth#13294

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: step...@mpeforth.com (Stephen Pelc)
Newsgroups: comp.lang.forth
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
Date: Wed, 26 May 2021 14:17:46 GMT
Organization: MPE
Lines: 43
Message-ID: <60ae53f4.8214687@news.eternal-september.org>
References: <s6a8o8$va3$1@gioia.aioe.org> <s6d41g$hu6$1@gioia.aioe.org> <2021Apr29.080904@mips.complang.tuwien.ac.at> <s6dn0e$hoq$1@gioia.aioe.org> <2021Apr29.105420@mips.complang.tuwien.ac.at> <s6e45l$lpa$1@dont-email.me> <s6fgj2$rb0$1@gioia.aioe.org> <s6gos1$7jf$1@dont-email.me> <s6ifhb$139$1@gioia.aioe.org> <s6liqg$ia6$1@dont-email.me> <s6nvtm$149e$1@gioia.aioe.org> <s6odjp$2pk$1@dont-email.me> <s6qi25$bjs$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me> <60926f06.2412281@news.eternal-september.org> <2021May5.134626@mips.complang.tuwien.ac.at> <6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me> <6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me> <609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com> <609cf7fe.7915093@news.eternal-september.org> <6dc56776-853c-4a25-b345-b0ddebeaa431n@googlegroups.com>
Reply-To: stephen@mpeforth.com
Injection-Info: reader02.eternal-september.org; posting-host="755ef1d172e481c6bb3fd93612998420";
logging-data="744"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+IsGBnBHBUdlBWfblnW9p2"
Cancel-Lock: sha1:SECGwpV3mFB8ujQisT5412SKHEk=
X-Newsreader: Forte Free Agent 1.21/32.243
 by: Stephen Pelc - Wed, 26 May 2021 14:17 UTC

On Wed, 26 May 2021 00:50:16 -0700 (PDT), Paul Liles
<pauldliles@btopenworld.com> wrote:

>On Thursday, May 13, 2021 at 11:58:53 AM UTC+1, Stephen Pelc wrote:
>
>> COMPILE, may not parse source text or have additional stack effects.
>
>I take your point about stack effects (so I have reverted to not using COMPILE, for
>this purpose), but I don't see why COMPILE, may not parse. Sure, it doesn't show up
>in the definition of COMPILE, but then neither does it in EXECUTE - and I don't see
>anyone argue that you can't EXECUTE a parsing word. And in the rationale, COMPILE,
>is supposed to be the compilation equivalent of EXECUTE.

It can't parse because
a) Anton says so and
b) the standard only indicates parsing for words that parse.
Hence, there's an assumption in the standard that only words that
parse explicitly are allowed to do so.

Most parsing words such as S" and friends are laid down by
actions performed at compile time. In ye olden days, such words
were immediate and were executed in compile state. If you want to
avoid COMPILE, problems, your compiling words such as S" and IF
have to be immediate.

In modern times, people have realised the impact of the magic
phrase "non-default compilation semantics" (NDCS for short).
A few systems, such as VFX and gForth have tools to build
words that are not immediate, but are NDCS words.

To implement and use NDCS words, a few words need to be added to
the standard. My most recent paper on these words is recommended
and is available at:

https://www.dropbox.com/s/sgposml3558oram/SpecialWords4.pdf?dl=0

--
Stephen Pelc, stephen@vfxforth.com
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 (0)23 8063 1441, +44 (0)78 0390 3612, +34 649 662 974
web: http://www.mpeforth.com - free VFX Forth downloads

Re: Fix VFX FIND (was: POSTPONEing literals?)

<2021May26.184652@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13295&group=comp.lang.forth#13295

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
Date: Wed, 26 May 2021 16:46:52 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 44
Message-ID: <2021May26.184652@mips.complang.tuwien.ac.at>
References: <s6a8o8$va3$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me> <60926f06.2412281@news.eternal-september.org> <2021May5.134626@mips.complang.tuwien.ac.at> <6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me> <6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me> <609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com> <s7j068$v8d$1@dont-email.me> <3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="56c64761364987d531def6302f026ed8";
logging-data="21822"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18/g/M94d6FqGmpmEltiAcL"
Cancel-Lock: sha1:z85jVx2l3coItj08g8k67R7Bpao=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Wed, 26 May 2021 16:46 UTC

Paul Liles <pauldliles@btopenworld.com> writes:
>With the usual disclaimer that I may
>be completely wrong, surely any implementation of NDCS/dual words will
>allow at least *some* words, as identified by their xts, to have separately identifiable
>compilation semantics. So far as I can tell, this would be true of words
>defined with INTERPRET/COMPILE in Gforth

In Gforth, a named word (such as the words defined with
INTERPRET/COMPILE:) is identified by the nt, and a word defined with
interpret/compile: has interpretation semantics identified by an xt,
and compilation semantics identified by (normally) a pair of xts.

Example:

: int-sem ." interpretation semantics" ;
: comp-sem ." compilation semantics" ;
' int-sem ' comp-sem interpret/compile: dual-word
dual-word \ output: interpretation semantics
] dual-word [ \ output: compilation semantics
``dual-word \ get the nt of DUAL-WORD
dup name>interpret smart. \ output: `int-sem (the xt of int-sem)
name>compile ... \ output: <2> `comp-sem `execute
' dual-word smart. \ output: `int-sem

A note on syntax and some relatively unknown words:

``<word> produces the nt of <word> (using a recognizer)
`<word> produces the xt for the interpretation semantics of <word>
smart. prints a cell in a smart way (e.g. an xt using `<word> syntax)
.... smart variant of .S

So you see that ticking DUAL-WORD produces the same xt as ticking
INT-SEM, so this xt does not identify DUAL-WORD. You also see that
the compilation semantics of DUAL-WORD is represented by two xts, none
of which is the xt that you get by ticking DUAL-WORD. And you see
that you can get from the nt of DUAL-WORD to both the interpretation
and compilation semantics.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2020: https://euro.theforth.net/2020

Re: Fix VFX FIND (was: POSTPONEing literals?)

<2021May26.192740@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13296&group=comp.lang.forth#13296

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
Date: Wed, 26 May 2021 17:27:40 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 30
Message-ID: <2021May26.192740@mips.complang.tuwien.ac.at>
References: <s6a8o8$va3$1@gioia.aioe.org> <60926f06.2412281@news.eternal-september.org> <2021May5.134626@mips.complang.tuwien.ac.at> <6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me> <6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me> <609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com> <609cf7fe.7915093@news.eternal-september.org> <6dc56776-853c-4a25-b345-b0ddebeaa431n@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="56c64761364987d531def6302f026ed8";
logging-data="21822"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19O2786uVZunB4kiJElRoRV"
Cancel-Lock: sha1:pWHd6oPEbLBxKv3fY983xscQrpU=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Wed, 26 May 2021 17:27 UTC

Paul Liles <pauldliles@btopenworld.com> writes:
>I take your point about stack effects (so I have reverted to not
>using COMPILE, for this purpose), but I don't see why COMPILE, may
>not parse. Sure, it doesn't show up in the definition of COMPILE, but
>then neither does it in EXECUTE - and I don't see anyone argue that
>you can't EXECUTE a parsing word. And in the rationale, COMPILE, is
>supposed to be the compilation equivalent of EXECUTE.

Yes, you can EXECUTE an xt that represents semantics that parses, and
it will perform the semantics identified by the xt, which is to parse.
By contrast, when you COMPILE, an xt that represents semantics that
parses, COMPILE, will append the semantics represented by the xt to
the execution semantics of the current definition (let's call that
definition C). Any parsing that happens does not happen when COMPILE,
runs, but when C runs.

The compilation equivalent of EXECUTE means that

: compile, ( xt -- ) postpone literal postpone execute ;

is a correct (but not particularly fast) implementation of COMPILE,.
And there is quite a bit of code relying on this equivalence (actually
most uses of COMPILE,)

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2020: https://euro.theforth.net/2020

Re: Fix VFX FIND (was: POSTPONEing literals?)

<3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13297&group=comp.lang.forth#13297

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ae9:eb93:: with SMTP id b141mr43543187qkg.151.1622055778626;
Wed, 26 May 2021 12:02:58 -0700 (PDT)
X-Received: by 2002:a37:8c44:: with SMTP id o65mr43243250qkd.249.1622055778405;
Wed, 26 May 2021 12:02:58 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed8.news.xs4all.nl!news-out.netnews.com!news.alt.net!fdc2.netnews.com!peer03.ams1!peer.ams1.xlned.com!news.xlned.com!peer03.iad!feed-me.highwinds-media.com!news.highwinds-media.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 26 May 2021 12:02:58 -0700 (PDT)
In-Reply-To: <2021May26.184652@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f19:f2b2:40d4:a1f2:469:b331;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f19:f2b2:40d4:a1f2:469:b331
References: <s6a8o8$va3$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me>
<60926f06.2412281@news.eternal-september.org> <2021May5.134626@mips.complang.tuwien.ac.at>
<6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me>
<6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me>
<609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com>
<s7j068$v8d$1@dont-email.me> <3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>
<2021May26.184652@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Wed, 26 May 2021 19:02:58 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 3986
 by: minf...@arcor.de - Wed, 26 May 2021 19:02 UTC

Anton Ertl schrieb am Mittwoch, 26. Mai 2021 um 19:26:31 UTC+2:
> Paul Liles <pauld...@btopenworld.com> writes:
> >With the usual disclaimer that I may
> >be completely wrong, surely any implementation of NDCS/dual words will
> >allow at least *some* words, as identified by their xts, to have separately identifiable
> >compilation semantics. So far as I can tell, this would be true of words
> >defined with INTERPRET/COMPILE in Gforth
> In Gforth, a named word (such as the words defined with
> INTERPRET/COMPILE:) is identified by the nt, and a word defined with
> interpret/compile: has interpretation semantics identified by an xt,
> and compilation semantics identified by (normally) a pair of xts.
>
> Example:
>
> : int-sem ." interpretation semantics" ;
> : comp-sem ." compilation semantics" ;
> ' int-sem ' comp-sem interpret/compile: dual-word
> dual-word \ output: interpretation semantics
> ] dual-word [ \ output: compilation semantics
> ``dual-word \ get the nt of DUAL-WORD
> dup name>interpret smart. \ output: `int-sem (the xt of int-sem)
> name>compile ... \ output: <2> `comp-sem `execute
> ' dual-word smart. \ output: `int-sem
>
> A note on syntax and some relatively unknown words:
>
> ``<word> produces the nt of <word> (using a recognizer)
> `<word> produces the xt for the interpretation semantics of <word>
> smart. prints a cell in a smart way (e.g. an xt using `<word> syntax)
> ... smart variant of .S
>
> So you see that ticking DUAL-WORD produces the same xt as ticking
> INT-SEM, so this xt does not identify DUAL-WORD. You also see that
> the compilation semantics of DUAL-WORD is represented by two xts, none
> of which is the xt that you get by ticking DUAL-WORD. And you see
> that you can get from the nt of DUAL-WORD to both the interpretation
> and compilation semantics.

OMG .. convoluted constructs require convoluted introspection and complex
header & search structures.

That has led me back to 'good ole state smartness'. VERY rare are
situations where this is a problem. On the contrary, my code became
simpler and shorter and easier to maintain.

Perhaps because I am writing real-world applications, and don't try to create
a 'theoretically clean and Lispy' Forth.

Re: Fix VFX FIND (was: POSTPONEing literals?)

<6a41165e-1580-4e0e-a956-a86bd7d44b68n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13298&group=comp.lang.forth#13298

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:a84b:: with SMTP id r72mr7088146qke.387.1622057483309;
Wed, 26 May 2021 12:31:23 -0700 (PDT)
X-Received: by 2002:a0c:e1ca:: with SMTP id v10mr4702274qvl.47.1622057483148;
Wed, 26 May 2021 12:31:23 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.pasdenom.info!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 26 May 2021 12:31:22 -0700 (PDT)
In-Reply-To: <3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>
Injection-Info: google-groups.googlegroups.com; posting-host=92.233.200.53; posting-account=vspE8woAAABMK67BtjVBwn5OkceFYJAA
NNTP-Posting-Host: 92.233.200.53
References: <s6a8o8$va3$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me>
<60926f06.2412281@news.eternal-september.org> <2021May5.134626@mips.complang.tuwien.ac.at>
<6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me>
<6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me>
<609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com>
<s7j068$v8d$1@dont-email.me> <3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>
<2021May26.184652@mips.complang.tuwien.ac.at> <3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <6a41165e-1580-4e0e-a956-a86bd7d44b68n@googlegroups.com>
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
From: pauldli...@btopenworld.com (Paul Liles)
Injection-Date: Wed, 26 May 2021 19:31:23 +0000
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable
 by: Paul Liles - Wed, 26 May 2021 19:31 UTC

Thank you both, Stephen and Anton, I've reversed out my changes to COMPILE, (and
I've read both your various papers on NDCS, which have been nagging at me for the
last six months).

Perhaps if I share my implementation you can tell me what, if anything I have done
wrong:

1) Extend DEFERed words by one cell to hold, optionally, a compilation xt

The compilation xt defaults to zero (meaning default compilation semantics),
so the actual specification of DEFER needs no change.

2) Four new words to manipulate the compilation semantics, based on DEFER@,
DEFER!, IS and ACTION-OF

COMPILE@ ( xt1 – xt2|false ) \ retrieve the compilation semantics if any.
COMPILE! ( xt2|false xt1 – ) \ set compilation semantics, or revert to default.
COMPILES ( xt|false “<spaces>name” -- ) \ Set or reset the compilation semantics of <name>
COMPILE-OF ( “<spaces>name” – xt|false ) \ retrieve the compilation semantics of <name>

3) Compiling, Postponing etc.

There is one extra word I need, which should really be called
"EXECUTE-THE-COMPILATION-SEMANTICS-OF-XT" but I call it (EXCOMP) for short.

It is purely an internal word, equivalent to Stephen's NDCS, and shows up as a factor
of POSTPONE and as a returned value from NAME>COMPILE.

Since my implementation has a single token per word (no separate nt) from which
all flags are accessible, I have not found a need to modify FIND.

I find this a neat and flexible implementation, though I guess it might be more
troublesome for optimising compilers because of the extreme late binding of
everything.

So far as I can tell, so long as the four new words are not exposed to the user
there are no implications for the standard. However, I have at least two concerns
that have sprung to mind:

a) this leaves some DEFERed words having two sets of execution semantics.
In practice it is always clear which is needed, but there may be hidden nuances
that I have not thought of.

b) if there is any use case for a DEFERed word being assigned the xt of another
DEFERed word, the whole thing will fall to pieces!
In use it looks like this (using Anton's usual example):

defer 2DUP
:noname over over ; is 2DUP
:noname postpone over postpone over ; compiles 2DUP

and, for example,

: NDCS, ( xt -- ) compile@ execute ;

Much thanks,

Paul

Re: Fix VFX FIND (was: POSTPONEing literals?)

<s8musr$pp1$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13299&group=comp.lang.forth#13299

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: krishna....@ccreweb.org (Krishna Myneni)
Newsgroups: comp.lang.forth
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
Date: Wed, 26 May 2021 21:07:20 -0500
Organization: A noiseless patient Spider
Lines: 68
Message-ID: <s8musr$pp1$1@dont-email.me>
References: <s6a8o8$va3$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me>
<60926f06.2412281@news.eternal-september.org>
<2021May5.134626@mips.complang.tuwien.ac.at>
<6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me>
<6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me>
<609aa2c8.1456671@news.eternal-september.org>
<55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com>
<s7j068$v8d$1@dont-email.me>
<3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>
<2021May26.184652@mips.complang.tuwien.ac.at>
<3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Thu, 27 May 2021 02:07:23 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="f82fe7931d78ca2c8bf3206d859eb349";
logging-data="26401"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/suxugJNHZT1gXcVkfAyaX"
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Cancel-Lock: sha1:fVU3lbUNaFdhLQI21ooiE98jFn0=
In-Reply-To: <3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>
Content-Language: en-US
 by: Krishna Myneni - Thu, 27 May 2021 02:07 UTC

On 5/26/21 2:02 PM, minf...@arcor.de wrote:
> Anton Ertl schrieb am Mittwoch, 26. Mai 2021 um 19:26:31 UTC+2:
>> Paul Liles <pauld...@btopenworld.com> writes:
>>> With the usual disclaimer that I may
>>> be completely wrong, surely any implementation of NDCS/dual words will
>>> allow at least *some* words, as identified by their xts, to have separately identifiable
>>> compilation semantics. So far as I can tell, this would be true of words
>>> defined with INTERPRET/COMPILE in Gforth
>> In Gforth, a named word (such as the words defined with
>> INTERPRET/COMPILE:) is identified by the nt, and a word defined with
>> interpret/compile: has interpretation semantics identified by an xt,
>> and compilation semantics identified by (normally) a pair of xts.
>>
>> Example:
>>
>> : int-sem ." interpretation semantics" ;
>> : comp-sem ." compilation semantics" ;
>> ' int-sem ' comp-sem interpret/compile: dual-word
>> dual-word \ output: interpretation semantics
>> ] dual-word [ \ output: compilation semantics
>> ``dual-word \ get the nt of DUAL-WORD
>> dup name>interpret smart. \ output: `int-sem (the xt of int-sem)
>> name>compile ... \ output: <2> `comp-sem `execute
>> ' dual-word smart. \ output: `int-sem
>>
>> A note on syntax and some relatively unknown words:
>>
>> ``<word> produces the nt of <word> (using a recognizer)
>> `<word> produces the xt for the interpretation semantics of <word>
>> smart. prints a cell in a smart way (e.g. an xt using `<word> syntax)
>> ... smart variant of .S
>>
>> So you see that ticking DUAL-WORD produces the same xt as ticking
>> INT-SEM, so this xt does not identify DUAL-WORD. You also see that
>> the compilation semantics of DUAL-WORD is represented by two xts, none
>> of which is the xt that you get by ticking DUAL-WORD. And you see
>> that you can get from the nt of DUAL-WORD to both the interpretation
>> and compilation semantics.
>
> OMG .. convoluted constructs require convoluted introspection and complex
> header & search structures.
>
> That has led me back to 'good ole state smartness'. VERY rare are
> situations where this is a problem. On the contrary, my code became
> simpler and shorter and easier to maintain.
>
> Perhaps because I am writing real-world applications, and don't try to create
> a 'theoretically clean and Lispy' Forth.
>

"Theoretically clean" and "convoluted" are mostly antonyms. On the
whole, a theoretically clean approach has the potential to avoid an
immense amount of confusion about what code is supposed to do, once the
design is understood. Admittedly, I don't like all of the notation used
above, but it does not seem to me to be particularly hard to comprehend.
I certainly don't see it as being "convoluted" -- far from it. Indeed
the single-xt + immediate flag strikes me as being arbitrarily restricted.

It should be easy to mimic single-xt + immediate flag behavior within a
dual word framework and one can keep programming within that model. The
dual word approach expands the possible behavior of words while also
allowing for precision in determining the expected behavior. The
trade-off in implementing the dual word approach is a bit more
complexity, as you have noted. Just because there is complexity under
the hood does not mean you have to use it.

Krishna

Re: Fix VFX FIND (was: POSTPONEing literals?)

<s8n23o$1m11$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13300&group=comp.lang.forth#13300

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
Date: Thu, 27 May 2021 13:02:14 +1000
Organization: Aioe.org NNTP Server
Lines: 13
Message-ID: <s8n23o$1m11$1@gioia.aioe.org>
References: <s6a8o8$va3$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me>
<60926f06.2412281@news.eternal-september.org>
<2021May5.134626@mips.complang.tuwien.ac.at>
<6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me>
<6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me>
<609aa2c8.1456671@news.eternal-september.org>
<55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com>
<s7j068$v8d$1@dont-email.me>
<3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>
<2021May26.184652@mips.complang.tuwien.ac.at>
<3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>
NNTP-Posting-Host: xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Content-Language: en-GB
X-Notice: Filtered by postfilter v. 0.9.2
 by: dxforth - Thu, 27 May 2021 03:02 UTC

On 27/05/2021 05:02, minf...@arcor.de wrote:
> ...
> That has led me back to 'good ole state smartness'. VERY rare are
> situations where this is a problem. On the contrary, my code became
> simpler and shorter and easier to maintain.
>
> Perhaps because I am writing real-world applications, and don't try to create
> a 'theoretically clean and Lispy' Forth.
>

Some things are better left on the drawing board:

https://en.wikipedia.org/wiki/The_Tower_of_Babel_(Bruegel)

Re: Fix VFX FIND (was: POSTPONEing literals?)

<7c222f3e-8191-429c-b0ff-c9e5f9cba08an@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13301&group=comp.lang.forth#13301

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ac8:5f4b:: with SMTP id y11mr1808498qta.158.1622097032682;
Wed, 26 May 2021 23:30:32 -0700 (PDT)
X-Received: by 2002:ac8:7fc7:: with SMTP id b7mr1799484qtk.109.1622097032506;
Wed, 26 May 2021 23:30:32 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Wed, 26 May 2021 23:30:32 -0700 (PDT)
In-Reply-To: <s8musr$pp1$1@dont-email.me>
Injection-Info: google-groups.googlegroups.com; posting-host=79.224.98.94; posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 79.224.98.94
References: <s6a8o8$va3$1@gioia.aioe.org> <s6qmbs$ki6$1@dont-email.me>
<60926f06.2412281@news.eternal-september.org> <2021May5.134626@mips.complang.tuwien.ac.at>
<6092aa60.13264203@news.eternal-september.org> <s6umuu$1bd$1@dont-email.me>
<6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me>
<609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com>
<s7j068$v8d$1@dont-email.me> <3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>
<2021May26.184652@mips.complang.tuwien.ac.at> <3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>
<s8musr$pp1$1@dont-email.me>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <7c222f3e-8191-429c-b0ff-c9e5f9cba08an@googlegroups.com>
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Thu, 27 May 2021 06:30:32 +0000
Content-Type: text/plain; charset="UTF-8"
 by: minf...@arcor.de - Thu, 27 May 2021 06:30 UTC

Krishna Myneni schrieb am Donnerstag, 27. Mai 2021 um 04:07:25 UTC+2:
> On 5/26/21 2:02 PM, minf...@arcor.de wrote:
> > Anton Ertl schrieb am Mittwoch, 26. Mai 2021 um 19:26:31 UTC+2:
> >> Paul Liles <pauld...@btopenworld.com> writes:
> >>> With the usual disclaimer that I may
> >>> be completely wrong, surely any implementation of NDCS/dual words will
> >>> allow at least *some* words, as identified by their xts, to have separately identifiable
> >>> compilation semantics. So far as I can tell, this would be true of words
> >>> defined with INTERPRET/COMPILE in Gforth
> >> In Gforth, a named word (such as the words defined with
> >> INTERPRET/COMPILE:) is identified by the nt, and a word defined with
> >> interpret/compile: has interpretation semantics identified by an xt,
> >> and compilation semantics identified by (normally) a pair of xts.
> >>
> >> Example:
> >>
> >> : int-sem ." interpretation semantics" ;
> >> : comp-sem ." compilation semantics" ;
> >> ' int-sem ' comp-sem interpret/compile: dual-word
> >> dual-word \ output: interpretation semantics
> >> ] dual-word [ \ output: compilation semantics
> >> ``dual-word \ get the nt of DUAL-WORD
> >> dup name>interpret smart. \ output: `int-sem (the xt of int-sem)
> >> name>compile ... \ output: <2> `comp-sem `execute
> >> ' dual-word smart. \ output: `int-sem
> >>
> >> A note on syntax and some relatively unknown words:
> >>
> >> ``<word> produces the nt of <word> (using a recognizer)
> >> `<word> produces the xt for the interpretation semantics of <word>
> >> smart. prints a cell in a smart way (e.g. an xt using `<word> syntax)
> >> ... smart variant of .S
> >>
> >> So you see that ticking DUAL-WORD produces the same xt as ticking
> >> INT-SEM, so this xt does not identify DUAL-WORD. You also see that
> >> the compilation semantics of DUAL-WORD is represented by two xts, none
> >> of which is the xt that you get by ticking DUAL-WORD. And you see
> >> that you can get from the nt of DUAL-WORD to both the interpretation
> >> and compilation semantics.
> >
> > OMG .. convoluted constructs require convoluted introspection and complex
> > header & search structures.
> >
> > That has led me back to 'good ole state smartness'. VERY rare are
> > situations where this is a problem. On the contrary, my code became
> > simpler and shorter and easier to maintain.
> >
> > Perhaps because I am writing real-world applications, and don't try to create
> > a 'theoretically clean and Lispy' Forth.
> >
>
> It should be easy to mimic single-xt + immediate flag behavior within a
> dual word framework and one can keep programming within that model. The
> dual word approach expands the possible behavior of words while also
> allowing for precision in determining the expected behavior. The
> trade-off in implementing the dual word approach is a bit more
> complexity, as you have noted. Just because there is complexity under
> the hood does not mean you have to use it.

Why that hassle? Just avoid making state-changing words.
Or make it two words, like CHAR and [CHAR] or ' and ['].

Re: Fix VFX FIND (was: POSTPONEing literals?)

<2021May27.103302@mips.complang.tuwien.ac.at>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13302&group=comp.lang.forth#13302

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ant...@mips.complang.tuwien.ac.at (Anton Ertl)
Newsgroups: comp.lang.forth
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
Date: Thu, 27 May 2021 08:33:02 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 31
Message-ID: <2021May27.103302@mips.complang.tuwien.ac.at>
References: <s6a8o8$va3$1@gioia.aioe.org> <6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me> <609aa2c8.1456671@news.eternal-september.org> <55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com> <s7j068$v8d$1@dont-email.me> <3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com> <2021May26.184652@mips.complang.tuwien.ac.at> <3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com> <s8musr$pp1$1@dont-email.me> <7c222f3e-8191-429c-b0ff-c9e5f9cba08an@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="4a8866bb74883cb1dedfcf2d846bd3d9";
logging-data="24924"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+CEduMPGBu7uq+VTjZHWGb"
Cancel-Lock: sha1:OKF4qM63vnmnFe90KSfZr95csDY=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Thu, 27 May 2021 08:33 UTC

"minf...@arcor.de" <minforth@arcor.de> writes:
>Or make it two words, like CHAR and [CHAR] or ' and ['].

Yes, that's certainly a good way to avoid the pitfalls of
STATE-smartness (and while you may have avoided them, I fell into
them).

Or, for the cases like the above, another alternative is recognizing
'c' and `<word>.

But there is the lure of cutting and pasting code from compiled to
interpreted code. The two-word approach does not allow that; the
recognizer approach allows it, but does not cover stuff like IF
.... THEN or [: ... ;]. And that's where people who complain about
theoretical cleanliness venture into the practical dirtyness of
STATE-smartness or broken COMPILE,.

IMO Forth implementors should make a decision between

1) Single-xt-with-immediate-flag system with IF and [IF], [: and
:NONAME, and (without the corresponding recognizer) with ' and ['].

2) A system that implements independent interpretation and compilation
semantics.

- anton
--
M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
New standard: http://www.forth200x.org/forth200x.html
EuroForth 2020: https://euro.theforth.net/2020

Re: Fix VFX FIND (was: POSTPONEing literals?)

<44c8e08a-8cff-41b8-8737-17f4776bc619n@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13303&group=comp.lang.forth#13303

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ad4:5685:: with SMTP id bc5mr493965qvb.33.1622108733252;
Thu, 27 May 2021 02:45:33 -0700 (PDT)
X-Received: by 2002:a37:447:: with SMTP id 68mr2475104qke.15.1622108733070;
Thu, 27 May 2021 02:45:33 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Thu, 27 May 2021 02:45:32 -0700 (PDT)
In-Reply-To: <2021May27.103302@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f19:f2b2:40d4:a1f2:469:b331;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f19:f2b2:40d4:a1f2:469:b331
References: <s6a8o8$va3$1@gioia.aioe.org> <6093c11b.3105218@news.eternal-september.org>
<s737aq$68j$1@dont-email.me> <609aa2c8.1456671@news.eternal-september.org>
<55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com> <s7j068$v8d$1@dont-email.me>
<3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com> <2021May26.184652@mips.complang.tuwien.ac.at>
<3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com> <s8musr$pp1$1@dont-email.me>
<7c222f3e-8191-429c-b0ff-c9e5f9cba08an@googlegroups.com> <2021May27.103302@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <44c8e08a-8cff-41b8-8737-17f4776bc619n@googlegroups.com>
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Thu, 27 May 2021 09:45:33 +0000
Content-Type: text/plain; charset="UTF-8"
 by: minf...@arcor.de - Thu, 27 May 2021 09:45 UTC

Anton Ertl schrieb am Donnerstag, 27. Mai 2021 um 10:48:59 UTC+2:
> "minf...@arcor.de" <minf...@arcor.de> writes:
> >Or make it two words, like CHAR and [CHAR] or ' and ['].
> Yes, that's certainly a good way to avoid the pitfalls of
> STATE-smartness (and while you may have avoided them, I fell into
> them).
>
> Or, for the cases like the above, another alternative is recognizing
> 'c' and `<word>.
>
> But there is the lure of cutting and pasting code from compiled to
> interpreted code. The two-word approach does not allow that; the
> recognizer approach allows it, but does not cover stuff like IF
> ... THEN or [: ... ;]. And that's where people who complain about
> theoretical cleanliness venture into the practical dirtyness of
> STATE-smartness or broken COMPILE,.
>
> IMO Forth implementors should make a decision between
>
> 1) Single-xt-with-immediate-flag system with IF and [IF], [: and
> :NONAME, and (without the corresponding recognizer) with ' and ['].
>
> 2) A system that implements independent interpretation and compilation
> semantics.
>
> - anton
> --
> M. Anton Ertl http://www.complang.tuwien.ac.at/anton/home.html
> comp.lang.forth FAQs: http://www.complang.tuwien.ac.at/forth/faq/toc.html
> New standard: http://www.forth200x.org/forth200x.html
> EuroForth 2020: https://euro.theforth.net/2020

Re: Fix VFX FIND (was: POSTPONEing literals?)

<b7910514-c225-48b2-96d5-55a4a7e8b82en@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13305&group=comp.lang.forth#13305

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:620a:11ba:: with SMTP id c26mr2853309qkk.497.1622115656085;
Thu, 27 May 2021 04:40:56 -0700 (PDT)
X-Received: by 2002:a37:ec9:: with SMTP id 192mr2982366qko.357.1622115655884;
Thu, 27 May 2021 04:40:55 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Thu, 27 May 2021 04:40:55 -0700 (PDT)
In-Reply-To: <2021May27.103302@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2003:f7:1f19:f28c:b188:24c3:b936:7881;
posting-account=AqNUYgoAAADmkK2pN-RKms8sww57W0Iw
NNTP-Posting-Host: 2003:f7:1f19:f28c:b188:24c3:b936:7881
References: <s6a8o8$va3$1@gioia.aioe.org> <6093c11b.3105218@news.eternal-september.org>
<s737aq$68j$1@dont-email.me> <609aa2c8.1456671@news.eternal-september.org>
<55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com> <s7j068$v8d$1@dont-email.me>
<3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com> <2021May26.184652@mips.complang.tuwien.ac.at>
<3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com> <s8musr$pp1$1@dont-email.me>
<7c222f3e-8191-429c-b0ff-c9e5f9cba08an@googlegroups.com> <2021May27.103302@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <b7910514-c225-48b2-96d5-55a4a7e8b82en@googlegroups.com>
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
From: minfo...@arcor.de (minf...@arcor.de)
Injection-Date: Thu, 27 May 2021 11:40:56 +0000
Content-Type: text/plain; charset="UTF-8"
 by: minf...@arcor.de - Thu, 27 May 2021 11:40 UTC

Anton Ertl schrieb am Donnerstag, 27. Mai 2021 um 10:48:59 UTC+2:
> "minf...@arcor.de" <minf...@arcor.de> writes:
> >Or make it two words, like CHAR and [CHAR] or ' and ['].
> Yes, that's certainly a good way to avoid the pitfalls of
> STATE-smartness (and while you may have avoided them, I fell into
> them).
>
> Or, for the cases like the above, another alternative is recognizing
> 'c' and `<word>.
>
> But there is the lure of cutting and pasting code from compiled to
> interpreted code. The two-word approach does not allow that; the
> recognizer approach allows it, but does not cover stuff like IF
> ... THEN or [: ... ;].

Just don't do such crazy things.

> And that's where people who complain about
> theoretical cleanliness venture into the practical dirtyness of
> STATE-smartness or broken COMPILE,.
>
> IMO Forth implementors should make a decision between
>
> 1) Single-xt-with-immediate-flag system with IF and [IF], [: and
> :NONAME, and (without the corresponding recognizer) with ' and ['].
>
> 2) A system that implements independent interpretation and compilation
> semantics.

Add to this the different requirements for fat interactive desktop Forths
and small eg embedded Forths.

Re: Fix VFX FIND (was: POSTPONEing literals?)

<s8pf43$mbb$1@gioia.aioe.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13307&group=comp.lang.forth#13307

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Fix VFX FIND (was: POSTPONEing literals?)
Date: Fri, 28 May 2021 10:56:38 +1000
Organization: Aioe.org NNTP Server
Lines: 12
Message-ID: <s8pf43$mbb$1@gioia.aioe.org>
References: <s6a8o8$va3$1@gioia.aioe.org>
<6093c11b.3105218@news.eternal-september.org> <s737aq$68j$1@dont-email.me>
<609aa2c8.1456671@news.eternal-september.org>
<55f55965-830a-4d0d-9e19-f380eca8a958n@googlegroups.com>
<s7j068$v8d$1@dont-email.me>
<3f412e13-a852-4f34-bf05-0ea984833bedn@googlegroups.com>
<2021May26.184652@mips.complang.tuwien.ac.at>
<3df45ee8-e2d4-4c89-b94b-4957b6ec9da4n@googlegroups.com>
<s8musr$pp1$1@dont-email.me>
<7c222f3e-8191-429c-b0ff-c9e5f9cba08an@googlegroups.com>
<2021May27.103302@mips.complang.tuwien.ac.at>
NNTP-Posting-Host: xrnZ5uanw3pSzK+Ytx4Jfg.user.gioia.aioe.org
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
X-Complaints-To: abuse@aioe.org
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Fri, 28 May 2021 00:56 UTC

On 27/05/2021 18:33, Anton Ertl wrote:
> ...
> IMO Forth implementors should make a decision between
>
> 1) Single-xt-with-immediate-flag system with IF and [IF], [: and
> :NONAME, and (without the corresponding recognizer) with ' and ['].
>
> 2) A system that implements independent interpretation and compilation
> semantics.

Implementers of 200x will follow whatever the two vendors and professor
on the TC can agree constitutes a Standard Forth implementation.

Re: Odd cases of undefined interpretation semantics (was: Performing compilation semantics, RFI Q99-027)

<s8qc4o$3k4$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13308&group=comp.lang.forth#13308

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ruvim.pi...@gmail.com (Ruvim)
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics (was: Performing
compilation semantics, RFI Q99-027)
Date: Fri, 28 May 2021 12:11:51 +0300
Organization: A noiseless patient Spider
Lines: 213
Message-ID: <s8qc4o$3k4$1@dont-email.me>
References: <s6a8o8$va3$1@gioia.aioe.org> <s6ifhb$139$1@gioia.aioe.org>
<s6liqg$ia6$1@dont-email.me> <s6nvtm$149e$1@gioia.aioe.org>
<2021May9.172106@mips.complang.tuwien.ac.at> <s7a94j$6ii$1@gioia.aioe.org>
<2021May10.180918@mips.complang.tuwien.ac.at> <s7df2c$1nas$1@gioia.aioe.org>
<2021May11.125143@mips.complang.tuwien.ac.at> <s7fv9c$p2$1@dont-email.me>
<2021May12.115400@mips.complang.tuwien.ac.at> <s7tuok$4vb$1@dont-email.me>
<2021May17.173643@mips.complang.tuwien.ac.at> <s8dg2v$adl$1@dont-email.me>
<2021May23.170041@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 28 May 2021 09:11:52 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="e2754b63f04c80d65ab75b636612b83e";
logging-data="3716"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19RgajtwpEx4zrqAvhp0BW6"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Cancel-Lock: sha1:MdMijeuzTugjRzdY59zd9HY9YUM=
In-Reply-To: <2021May23.170041@mips.complang.tuwien.ac.at>
Content-Language: en-US
X-Mozilla-News-Host: news://nntp.aioe.org
 by: Ruvim - Fri, 28 May 2021 09:11 UTC

On 2021-05-23 18:00, Anton Ertl wrote:
> Ruvim <ruvim.pinka@gmail.com> writes:
>> On 2021-05-17 18:36, Anton Ertl wrote:
>>> Ruvim <ruvim.pinka@gmail.com> writes:
>> [...]
>>
>>
>> Interpretation semantics (IS) for the words:
>> "COMPILE,", "CS-PICK", "CS-ROLL", "(LOCAL)"
>> are undefined by the standard, execution semantics (ES) are defined.
>>
>> It's obvious that their execution semantics make sense only when the
>> current definition exists (i.e. some definition is being defined/compiled).
>>
>> But the current definition can exist in interpretation state too, e.g.:
>>
>> : bar [: ." (ABC)" ;] compile, ." (ABC compiled)" ; immediate
>> : foo [ ' bar compile, ] ;
>>
>> And in these conditions their ES (and then the default IS) make sense.
>
> Yes.
>
>> Furthermore, the current definition can be absent in compilation state:
>>
>> ] bar [
>>
>> And in these conditions their ES don't make sense.
>
> Yes.
>
>> So, if the default IS for them make sense in some cases, and without
A typo is corrected: "ES" is replaced by "IS" in the line above.

>> additional efforts in implementation, what is the rationale to declare
>> IS for them undefined? (see (1) bellow)
>
> I don't think they gave a rationale.
>
> My guess is that they undefined the interpretation semantics for they
> kinds of words that would have gotten the C attribute in Forth-83;

It's very reasonable and convincing!

I dimly remember that I even read some similar rationale somewhere, but
I cannot find the source now. Perhaps it was in some of your past messages.

In Forth-83 the following words (from the normative parts) have "C" flag
but don't have "I" flag:

1.
<MARK
<RESOLVE
>MARK
>RESOLVE
?BRANCH
BRANCH
2.
COMPILE
3.
EXIT
I
J
K
>R
R>
R@

I broke them up into tree groups.

Any word X from the group 1 can be simply redefined as : X X ;
The words from other groups cannot be redefined in this way.

When the execution semantics (ES) of a word from the groups 1 or 2 are
performed, the current definition should exist. But it doesn't matter
for the words from the group 3.

The ES for a word from the groups 2 or 3 should not be performed
directly (via "EXECUTE" or interpretively), but they may be only
performed in the frame of the ES of another definition (to which they
were appended).

So any word that appends some semantics (or controls code generation),
or should not be directly performed, — is marked with "C" attribute in
Forth-83.

Obviously, the words "COMPILE,", "CS-PICK", "CS-ROLL", "(LOCAL)" belong
to the group 1.

> but that attribute is not clearly defined (or maybe I have to learn a lot
> more about Forth-83 to know what it means).

Some excerpts from Forth-79 are following.

Attributes
Capitalized symbols indicate attributes of the defined words:

C The word may only be used during compilation of a colon
definition.

I Indicates that the word is IMMEDIATE and will execute
during compilation, unless special action is taken.

General error conditions:
5. interpretation of words restricted to compilation.

Some excerpts from Forth-83 are following.

11.4 Attributes
Capitalized symbols indicate attributes of the defined words:

C The word may only be used during compilation of a colon
definition.

I Indicates that the word is IMMEDIATE and will execute during
compilation, unless special action is taken.

10.2 General Error Conditions
5. execution of words restricted to compilation only, when not
in the compile state and while not compiling a colon
definition;

The wording in these parts is not enough precise to be unambiguously
understood easily. But the most consistent interpretation is as follows:

- "use of a word" means that the word is encountered by the Forth text
interpreter;
- "execution of a word" means performing of the execution semantics
for this word.

It means that both examples above (the definition of "foo" and the use
of "bar") are explicitly not compliant with Forth-83.

Also, it means that Forth-83 implies a general rule similar to A99-027
as a consequence of the normative parts.

One problem is that the error condition 5 should not be applicable to
the words in the group 3. It looks like a flaw in the terminology and/or
wording in Forth-83.

> And thinking more about it, it's probably an ill-thought-out way to
> protect programmers from using these words wrongly.

If it's true, then I don't think this way of protection was invented by
Forth-83. More probably that it was in practice before Forth-83, and
Forth-83 had introduced the corresponding restrictions on programs to
achieve better portability only.

[...]
>>> I don't see it. Which concessions to which existing implementations
>>> do you mean? These four words were new in Forth-94.
>>
>> By a concession I mean relaxing of an implementation. I.e., undefined
>> interpretation semantics for these words is a concession to the
>> implementers (I just don't sure that it's demanded).
>
> By "concession to existing implementations" I understand that there
> existed (at the time) at least one implementation that either
>
> 1) implemented one of these words (maybe under a different name) and
> had such a limitation.
>
> 2) Would have had difficulty implementing these words unless the
> limitation was in place.
>
> And my question was whether you can name a system for which the
> standard made these consessions for one of these reasons. If you
> cannot, then I think we should lay the "concession" speculation to
> rest.

I agree.

It could look like a concession, but I don't know such a system, and so
I asked, whether somebody knows.

So, if it isn't a concession, then it should be a consequence of a
general rule (to have some sense).

And it seems, we have found this rule: the attribute "C" and the error
condition 5 in Forth-83.

By this rule "COMPILE," cannot "be executed during interpretation" (as
A.6.2.0945 says).

[...]

--
Ruvim

Re: Odd cases of undefined interpretation semantics

<60b09b34.1667671@news.eternal-september.org>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13309&group=comp.lang.forth#13309

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: step...@mpeforth.com (Stephen Pelc)
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics
Date: Fri, 28 May 2021 09:54:35 GMT
Organization: MPE
Lines: 34
Message-ID: <60b09b34.1667671@news.eternal-september.org>
References: <s6a8o8$va3$1@gioia.aioe.org> <s6arit$ubj$1@gioia.aioe.org> <s6bl0q$1870$1@gioia.aioe.org> <s6d41g$hu6$1@gioia.aioe.org> <2021Apr29.080904@mips.complang.tuwien.ac.at> <s6dn0e$hoq$1@gioia.aioe.org> <2021Apr29.105420@mips.complang.tuwien.ac.at> <s6e45l$lpa$1@dont-email.me> <s6fgj2$rb0$1@gioia.aioe.org> <s6gos1$7jf$1@dont-email.me> <s6ifhb$139$1@gioia.aioe.org> <s6liqg$ia6$1@dont-email.me> <s6nvtm$149e$1@gioia.aioe.org> <2021May9.172106@mips.complang.tuwien.ac.at> <s7a94j$6ii$1@gioia.aioe.org> <2021May10.180918@mips.complang.tuwien.ac.at> <s7df2c$1nas$1@gioia.aioe.org> <2021May11.125143@mips.complang.tuwien.ac.at> <s7fv9c$p2$1@dont-email.me> <2021May12.115400@mips.complang.tuwien.ac.at> <s7tuok$4vb$1@dont-email.me> <2021May17.173643@mips.complang.tuwien.ac.at> <s8dg2v$adl$1@dont-email.me> <s8fok1$9tj$1@gioia.aioe.org> <1p9ojmn.1ltc322xcydw9N%awegel@arcor.de> <s8hk3s$1472$1@gioia.aioe.org> <60acbca4.512609@news.eternal-september.org> <s8k76l$1j8l$1@gioia.aioe.org>
Reply-To: stephen@mpeforth.com
Injection-Info: reader02.eternal-september.org; posting-host="4a06469c0d331dacc314c8568f55a5df";
logging-data="20958"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Y1H3llDMISv6+RxB4mymx"
Cancel-Lock: sha1:MRSD0jfwqqGuKbFE/r08/Z2A35Y=
X-Newsreader: Forte Free Agent 1.21/32.243
 by: Stephen Pelc - Fri, 28 May 2021 09:54 UTC

On Wed, 26 May 2021 11:10:48 +1000, dxforth <dxforth@gmail.com> wrote:

>> What position of MPE are you talking about?
>
>>> > : bar [: ." (ABC)" ;] compile, ." (ABC compiled)" ; immediate
>>> > : foo [ ' bar compile, ] ;

I suspect that there are two issues you are complaining about
1) Quotations required Examples/quotations.fth to be loaded
2) Compilation of FOO above barfed.

Item 1) is fixed in the now-released VFX Forth 5.2 which contains
quotations using [: ... ;] in the kernel and in the manual.

Item 2) is fixed by making COMPILE, handle NDCS words which
(according to Anton) it should not have to do.

As with many things in VFX, the practice of making users happy
or happier predominated over theory.

Given the presence of systems that handle NDCS words, (VFX and
gForth) it would appear that relaxing the constraints on COMPILE,
(stack effects and parsing) would be a sensible approach. For
the vast majority of users, this is the minimal approach.

Stephen

--
Stephen Pelc, stephen@vfxforth.com
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 (0)23 8063 1441, +44 (0)78 0390 3612, +34 649 662 974
web: http://www.mpeforth.com - free VFX Forth downloads

Re: Odd cases of undefined interpretation semantics (was: Performing compilation semantics, RFI Q99-027)

<60b0c510$0$22706$e4fe514c@news.xs4all.nl>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13310&group=comp.lang.forth#13310

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!news.nntp4.net!news.dns-netz.com!news.freedyn.net!newsfeed.xs4all.nl!newsfeed7.news.xs4all.nl!nzpost1.xs4all.net!not-for-mail
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics (was: Performing
compilation semantics, RFI Q99-027)
References: <s6a8o8$va3$1@gioia.aioe.org> <s8dg2v$adl$1@dont-email.me> <2021May23.170041@mips.complang.tuwien.ac.at> <s8qc4o$3k4$1@dont-email.me>
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
From: alb...@cherry (none)
Originator: albert@cherry.(none) (albert)
Date: 28 May 2021 10:25:20 GMT
Lines: 35
Message-ID: <60b0c510$0$22706$e4fe514c@news.xs4all.nl>
NNTP-Posting-Host: 65e57e66.news.xs4all.nl
X-Trace: G=MLe1zkwE,C=U2FsdGVkX18UJA32cijfEoPoOYXvjEtdiN6YGRm3UEqqCAu5mKFUfgdlHlkchUcq0M4xdu0IJoOnjqGeOb4DaD0XbKTDq9QjRbNNwTJs5VBToROiZkpDNBSZo+mGqop8
X-Complaints-To: abuse@xs4all.nl
 by: none - Fri, 28 May 2021 10:25 UTC

In article <s8qc4o$3k4$1@dont-email.me>, Ruvim <ruvim.pinka@gmail.com> wrote:
<SNIP>
>Some excerpts from Forth-79 are following.
>
> Attributes
> Capitalized symbols indicate attributes of the defined words:
>
> C The word may only be used during compilation of a colon
> definition.

Note how that is better then demanding that STATE is set to compiling.
Interpreting a compiling word while a colon definition is being built
is explicitly okay making
[ 'IF EXECUTE ]
equivalent to
IF

Or
[ POSTPONE IF ]
if you believe that compiling words cannot be executed.

>
> I Indicates that the word is IMMEDIATE and will execute
> during compilation, unless special action is taken.
>
<SNIP>
>--
>Ruvim

Groetjes Albert
--
"in our communism country Viet Nam, people are forced to be
alive and in the western country like US, people are free to
die from Covid 19 lol" duc ha
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst

Re: Odd cases of undefined interpretation semantics

<5ff1aa4b-4dd6-481e-a548-070b6d941dean@googlegroups.com>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13311&group=comp.lang.forth#13311

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a05:622a:40f:: with SMTP id n15mr2858921qtx.10.1622199148340;
Fri, 28 May 2021 03:52:28 -0700 (PDT)
X-Received: by 2002:a05:622a:14d:: with SMTP id v13mr2811015qtw.17.1622199148200;
Fri, 28 May 2021 03:52:28 -0700 (PDT)
Path: i2pn2.org!i2pn.org!paganini.bofh.team!usenet.pasdenom.info!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.160.216.MISMATCH!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 28 May 2021 03:52:27 -0700 (PDT)
In-Reply-To: <60b09b34.1667671@news.eternal-september.org>
Injection-Info: google-groups.googlegroups.com; posting-host=92.233.200.53; posting-account=vspE8woAAABMK67BtjVBwn5OkceFYJAA
NNTP-Posting-Host: 92.233.200.53
References: <s6a8o8$va3$1@gioia.aioe.org> <s6arit$ubj$1@gioia.aioe.org>
<s6bl0q$1870$1@gioia.aioe.org> <s6d41g$hu6$1@gioia.aioe.org>
<2021Apr29.080904@mips.complang.tuwien.ac.at> <s6dn0e$hoq$1@gioia.aioe.org>
<2021Apr29.105420@mips.complang.tuwien.ac.at> <s6e45l$lpa$1@dont-email.me>
<s6fgj2$rb0$1@gioia.aioe.org> <s6gos1$7jf$1@dont-email.me>
<s6ifhb$139$1@gioia.aioe.org> <s6liqg$ia6$1@dont-email.me>
<s6nvtm$149e$1@gioia.aioe.org> <2021May9.172106@mips.complang.tuwien.ac.at>
<s7a94j$6ii$1@gioia.aioe.org> <2021May10.180918@mips.complang.tuwien.ac.at>
<s7df2c$1nas$1@gioia.aioe.org> <2021May11.125143@mips.complang.tuwien.ac.at>
<s7fv9c$p2$1@dont-email.me> <2021May12.115400@mips.complang.tuwien.ac.at>
<s7tuok$4vb$1@dont-email.me> <2021May17.173643@mips.complang.tuwien.ac.at>
<s8dg2v$adl$1@dont-email.me> <s8fok1$9tj$1@gioia.aioe.org>
<1p9ojmn.1ltc322xcydw9N%awegel@arcor.de> <s8hk3s$1472$1@gioia.aioe.org>
<60acbca4.512609@news.eternal-september.org> <s8k76l$1j8l$1@gioia.aioe.org> <60b09b34.1667671@news.eternal-september.org>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <5ff1aa4b-4dd6-481e-a548-070b6d941dean@googlegroups.com>
Subject: Re: Odd cases of undefined interpretation semantics
From: pauldli...@btopenworld.com (Paul Liles)
Injection-Date: Fri, 28 May 2021 10:52:28 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Paul Liles - Fri, 28 May 2021 10:52 UTC

On Friday, May 28, 2021 at 10:54:38 AM UTC+1, Stephen Pelc wrote:

> Given the presence of systems that handle NDCS words, (VFX and
> gForth) it would appear that relaxing the constraints on COMPILE,
> (stack effects and parsing) would be a sensible approach. For
> the vast majority of users, this is the minimal approach.
> Stephen

I would certainly support that approach. I have spent way too
much time over the last few weeks shuffling NDCS logic between
COMPILE, NAME>COMPILE and the text interpreter, depending
whose post I last read and paid attention to. It works fine
wherever I put it, but on balance COMPILE, feels like its natural
home and is the easier to document and explain.

Re: Odd cases of undefined interpretation semantics (was: Performing compilation semantics, RFI Q99-027)

<s8qi37$biu$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13312&group=comp.lang.forth#13312

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ruvim.pi...@gmail.com (Ruvim)
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics (was: Performing
compilation semantics, RFI Q99-027)
Date: Fri, 28 May 2021 13:53:25 +0300
Organization: A noiseless patient Spider
Lines: 45
Message-ID: <s8qi37$biu$1@dont-email.me>
References: <s6a8o8$va3$1@gioia.aioe.org> <s8dg2v$adl$1@dont-email.me>
<2021May23.170041@mips.complang.tuwien.ac.at> <s8qc4o$3k4$1@dont-email.me>
<60b0c510$0$22706$e4fe514c@news.xs4all.nl>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 28 May 2021 10:53:27 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="e2754b63f04c80d65ab75b636612b83e";
logging-data="11870"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/76T2YWjDMs2SSPX3kHlQ0"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Cancel-Lock: sha1:GWyAsnfzC4YeT+wqbbkQ1iRg41Y=
In-Reply-To: <60b0c510$0$22706$e4fe514c@news.xs4all.nl>
Content-Language: en-US
 by: Ruvim - Fri, 28 May 2021 10:53 UTC

On 2021-05-28 13:25, albert wrote:
> In article <s8qc4o$3k4$1@dont-email.me>, Ruvim <ruvim.pinka@gmail.com> wrote:
> <SNIP>
>> Some excerpts from Forth-79 are following.
>>
>> Attributes
>> Capitalized symbols indicate attributes of the defined words:
>>
>> C The word may only be used during compilation of a colon
>> definition.
>
> Note how that is better then demanding that STATE is set to compiling.

The terminology of Forth-94 is far better.

> Interpreting a compiling word while a colon definition is being built
> is explicitly okay making
> [ 'IF EXECUTE ]
> equivalent to
> IF

This is not backward compatible, and it's excludes the expected
interpretation semantics for "IF".

E.g.:

[ some-test IF 'X ELSE 'Y THEN COMPILE, ]

>
> Or
> [ POSTPONE IF ]

This is good. Since the most consistent (and so expected) interpretation
semantics for "POSTPONE" is to perform the compilation semantics for the
word in the argument.

> if you believe that compiling words cannot be executed.
>

--
Ruvim

Re: Odd cases of undefined interpretation semantics

<s8qk23$7vn$1@dont-email.me>

  copy mid

https://www.novabbs.com/devel/article-flat.php?id=13314&group=comp.lang.forth#13314

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: ruvim.pi...@gmail.com (Ruvim)
Newsgroups: comp.lang.forth
Subject: Re: Odd cases of undefined interpretation semantics
Date: Fri, 28 May 2021 14:26:58 +0300
Organization: A noiseless patient Spider
Lines: 26
Message-ID: <s8qk23$7vn$1@dont-email.me>
References: <s6a8o8$va3$1@gioia.aioe.org> <s6d41g$hu6$1@gioia.aioe.org>
<2021Apr29.080904@mips.complang.tuwien.ac.at> <s6dn0e$hoq$1@gioia.aioe.org>
<2021Apr29.105420@mips.complang.tuwien.ac.at> <s6e45l$lpa$1@dont-email.me>
<s6fgj2$rb0$1@gioia.aioe.org> <s6gos1$7jf$1@dont-email.me>
<s6ifhb$139$1@gioia.aioe.org> <s6liqg$ia6$1@dont-email.me>
<s6nvtm$149e$1@gioia.aioe.org> <2021May9.172106@mips.complang.tuwien.ac.at>
<s7a94j$6ii$1@gioia.aioe.org> <2021May10.180918@mips.complang.tuwien.ac.at>
<s7df2c$1nas$1@gioia.aioe.org> <2021May11.125143@mips.complang.tuwien.ac.at>
<s7fv9c$p2$1@dont-email.me> <2021May12.115400@mips.complang.tuwien.ac.at>
<s7tuok$4vb$1@dont-email.me> <2021May17.173643@mips.complang.tuwien.ac.at>
<s8dg2v$adl$1@dont-email.me> <s8fok1$9tj$1@gioia.aioe.org>
<1p9ojmn.1ltc322xcydw9N%awegel@arcor.de> <s8hk3s$1472$1@gioia.aioe.org>
<60acbca4.512609@news.eternal-september.org> <s8k76l$1j8l$1@gioia.aioe.org>
<60b09b34.1667671@news.eternal-september.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 28 May 2021 11:26:59 -0000 (UTC)
Injection-Info: reader02.eternal-september.org; posting-host="e2754b63f04c80d65ab75b636612b83e";
logging-data="8183"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18OZli+E6g0hIn4w7oDpyXZ"
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.10.1
Cancel-Lock: sha1:xaMLu8ekOzcCB/198l7ZdWju5Kc=
In-Reply-To: <60b09b34.1667671@news.eternal-september.org>
Content-Language: en-US
 by: Ruvim - Fri, 28 May 2021 11:26 UTC

On 2021-05-28 12:54, Stephen Pelc wrote:
[...]
> As with many things in VFX, the practice of making users happy
> or happier predominated over theory.
>
> Given the presence of systems that handle NDCS words, (VFX and
> gForth) it would appear that relaxing the constraints on COMPILE,
> (stack effects and parsing) would be a sensible approach.

Why don't propose just another word?

At the moment, "COMPILE," is equivalent to " LIT, POSTPONE EXECUTE ".

You suggest to break this very basic equivalence.

In opposite, I would suggest to make this equivalence stronger.

> For the vast majority of users, this is the minimal approach.
>

--
Ruvim

Pages:123456789
server_pubkey.txt

rocksolid light 0.9.81
clearnet tor