Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.forth > #57064 > unrolled thread

Russians about standard (survey taken in 2010 )

Started byIlya Tarasov <ilya74.tarasov@gmail.com>
First post2017-04-11 13:49 -0700
Last post2017-04-14 11:26 +1000
Articles 20 on this page of 77 — 16 participants

Back to article view | Back to comp.lang.forth


Contents

  Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-11 13:49 -0700
    Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-11 17:11 -0400
      Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-11 14:40 -0700
        Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-11 18:17 -0400
          Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-11 15:26 -0700
            Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-11 19:11 -0400
            Re: Russians about standard (survey taken in 2010 ) "Elizabeth D. Rather" <erather@forth.com> - 2017-04-11 13:13 -1000
            Re: Russians about standard (survey taken in 2010 ) The Beez <the.beez.speaks@gmail.com> - 2017-04-14 06:11 -0700
        Re: Russians about standard (survey taken in 2010 ) "Elizabeth D. Rather" <erather@forth.com> - 2017-04-11 13:12 -1000
          Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-11 16:38 -0700
            Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-11 16:46 -0700
              Re: Russians about standard (survey taken in 2010 ) Paul Rubin <no.email@nospam.invalid> - 2017-04-11 17:17 -0700
                Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-11 17:45 -0700
                Re: Russians about standard (survey taken in 2010 ) Andrew Haley <andrew29@littlepinkcloud.invalid> - 2017-04-12 04:27 -0500
              Re: Russians about standard (survey taken in 2010 ) The Beez <the.beez.speaks@gmail.com> - 2017-04-14 06:13 -0700
                Re: Russians about standard (survey taken in 2010 ) "Elizabeth D. Rather" <erather@forth.com> - 2017-04-14 10:23 -1000
            Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-11 20:17 -0400
              Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-11 17:35 -0700
                Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-11 20:43 -0400
                  Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-11 17:47 -0700
                    Re: Russians about standard (survey taken in 2010 ) Julian Fondren <julian.fondren@gmail.com> - 2017-04-11 18:36 -0700
                      Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-12 16:35 -0700
                        Re: Russians about standard (survey taken in 2010 ) Paul Rubin <no.email@nospam.invalid> - 2017-04-12 17:27 -0700
                          Re: Russians about standard (survey taken in 2010 ) albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-13 03:06 +0200
                            Re: Russians about standard (survey taken in 2010 ) Paul Rubin <no.email@nospam.invalid> - 2017-04-12 21:06 -0700
                        Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-12 20:00 -0700
                          Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-13 06:44 -0700
                            Re: Russians about standard (survey taken in 2010 ) Alex <alex@rivadpm.com> - 2017-04-13 15:44 +0100
                              Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-13 14:04 -0700
                                Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-14 11:08 -0700
                                  Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-14 13:23 -0700
                                    Re: Russians about standard (survey taken in 2010 ) Alex <alex@rivadpm.com> - 2017-04-14 22:42 +0100
                                  Re: Russians about standard (survey taken in 2010 ) Alex <alex@rivadpm.com> - 2017-04-14 22:38 +0100
                                Re: Russians about standard (survey taken in 2010 ) albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-15 13:44 +0200
                            Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-14 10:28 -0700
                              Re: Russians about standard (survey taken in 2010 ) Alex <alex@rivadpm.com> - 2017-04-14 22:24 +0100
                              Re: Russians about standard (survey taken in 2010 ) albert@cherry.spenarnc.xs4all.nl (Albert van der Horst) - 2017-04-15 13:54 +0200
                                Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-15 15:02 -0700
                                  Re: Russians about standard (survey taken in 2010 ) Julian Fondren <julian.fondren@gmail.com> - 2017-04-15 15:40 -0700
                                    Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-16 10:28 -0700
                                      Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-17 22:12 -0400
                                        Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-18 23:37 -0700
                                          Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-19 15:31 -0400
                                  Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-15 20:43 -0400
                                    Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-15 18:14 -0700
                                      Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-15 21:49 -0400
                                      Re: Russians about standard (survey taken in 2010 ) Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2017-04-16 20:20 +0100
                                        Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-16 20:41 -0700
                                          Re: Russians about standard (survey taken in 2010 ) Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2017-04-17 09:03 +0100
                                        Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-16 20:49 -0700
                                          Re: Russians about standard (survey taken in 2010 ) Gerry Jackson <gerry@jackson9000.fsnet.co.uk> - 2017-04-17 09:25 +0100
                                            Re: Russians about standard (survey taken in 2010 ) Alex <alex@rivadpm.com> - 2017-04-17 16:32 +0100
                                              Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-17 22:19 -0400
                                                Re: Russians about standard (survey taken in 2010 ) Alex <alex@rivadpm.com> - 2017-04-18 13:51 +0100
                                                  Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-19 02:15 -0400
                                                  Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-19 10:54 -0700
                                                    Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-19 11:03 -0700
                                            Re: Russians about standard (survey taken in 2010 ) "Elizabeth D. Rather" <erather@forth.com> - 2017-04-17 12:37 -1000
                              Re: Russians about standard (survey taken in 2010 ) hughaguilar96@gmail.com - 2017-04-15 17:18 -0700
                                Re: Russians about standard (survey taken in 2010 ) Alex <alex@rivadpm.com> - 2017-04-16 09:07 +0100
                    Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-11 23:26 -0400
                      Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-12 16:47 -0700
                        Re: Russians about standard (survey taken in 2010 ) rickman <gnuarm@gmail.com> - 2017-04-12 19:53 -0400
                Re: Russians about standard (survey taken in 2010 ) Julian Fondren <julian.fondren@gmail.com> - 2017-04-11 19:03 -0700
                  Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-12 16:45 -0700
            Re: Russians about standard (survey taken in 2010 ) JUERGEN <epldfpga@aol.com> - 2017-04-12 01:15 -0700
              Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-12 16:51 -0700
    Re: Russians about standard (survey taken in 2010 ) lehs <skydda.barnen@gmail.com> - 2017-04-11 18:47 -0700
    Re: Russians about standard (survey taken in 2010 ) Mark Wills <markwills1970@gmail.com> - 2017-04-12 01:19 -0700
      Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-12 16:57 -0700
    Re: Russians about standard (survey taken in 2010 ) anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2017-04-12 09:14 +0000
      Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-12 17:00 -0700
    Re: Russians about standard (survey taken in 2010 ) "HAA" <someone@microsoft.com> - 2017-04-13 10:15 +1000
      Re: Russians about standard (survey taken in 2010 ) "HAA" <someone@microsoft.com> - 2017-04-13 13:17 +1000
        Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-13 06:46 -0700
      Re: Russians about standard (survey taken in 2010 ) Ilya Tarasov <ilya74.tarasov@gmail.com> - 2017-04-13 05:59 -0700
        Re: Russians about standard (survey taken in 2010 ) "HAA" <someone@microsoft.com> - 2017-04-14 11:26 +1000

Page 3 of 4 — ← Prev page 1 2 [3] 4  Next page →


#57522

Fromrickman <gnuarm@gmail.com>
Date2017-04-17 22:12 -0400
Message-ID<od3sg8$5bd$3@dont-email.me>
In reply to#57454
On 4/16/2017 1:28 PM, Ilya Tarasov wrote:
> воскресенье, 16 апреля 2017 г., 1:40:36 UTC+3 пользователь Julian Fondren написал:
>> On Saturday, April 15, 2017 at 5:02:34 PM UTC-5, Ilya Tarasov wrote:
>>> 2. Do you think we need to communicate with other forthers in the world even they don't want to be an equal partners?
>>> No, it is just time wasting, leave them alone - 4
>>> Hmm, let's try, maybe it will be some useful - 1
>>>
>>> So I'm trying :)
>>
>> Suppose that other forthers in the world wanted to be equal partners
>> with you.
>>
>> How would you know that this is the case?
>>
>> How would circumstances not look exactly as they do right now?
>
> I can tell some stories about non-equal partnership. Earlier when one of my translators becomes known I had contact with SP-Forth team. They claims it was 'standard de-facto for Russia' :) Indeed, it is ANS-compatible since I don't remember exactly, but long time ago. I ask them some questions about goals, criteria, perspective plans, with no answer. Just 'we have cool stuff here and we are ANS-compatible, don't be individual and come to our team'. At that time it was very hard, because of several successfully projects done and several peoples near me was greatly impressed by Forth abilities. Of course, my main goal was to meet real demands of practical programmers near me, not fantasies of distant ones. Now SP-Forth is bad enough and his author no longer use Forth at this work.
>
> Near 2003, known enough in Russia Technoforth company ask me... to stop my Forth activity :) They have read my articles and his CEO writes me a letter with proposal to become their regional sales manager ('because it seems you know something about Forth'). Near 2008 their big customer cancel partnership with them and start to work with my team. It was surprisingly for me, because they told me nothing about existing relation with Technoforth and I took absolutely nothing effort to represent Technoforth in bad light. Shortly after this they were gone from business.
>
> The scenario was very predictable
> - We are great! Join us!
> - Ok, let's start, and I have some proposals for you to improve Forth accordingly to our positive experience.
> - We don't need your proposals, just join us and start to do that we order!
> <Several years>
> <They are feels bad or gone>
>
> Now I want to take a look on ANS-committee & Forth Inc :)

Why are you ignoring MPE?

-- 

Rick C

[toc] | [prev] | [next] | [standalone]


#57582

FromIlya Tarasov <ilya74.tarasov@gmail.com>
Date2017-04-18 23:37 -0700
Message-ID<6239167b-4369-4836-911c-fee64ea15c64@googlegroups.com>
In reply to#57522
вторник, 18 апреля 2017 г., 5:12:21 UTC+3 пользователь rickman написал:

> > Now I want to take a look on ANS-committee & Forth Inc :)
> 
> Why are you ignoring MPE?

I can't remember every forther in the world. I have no contacts with MPE now. If they are interested, we may talk.

[toc] | [prev] | [next] | [standalone]


#57603

Fromrickman <gnuarm@gmail.com>
Date2017-04-19 15:31 -0400
Message-ID<od8dok$1u7$1@dont-email.me>
In reply to#57582
On 4/19/2017 2:37 AM, Ilya Tarasov wrote:
> вторник, 18 апреля 2017 г., 5:12:21 UTC+3 пользователь rickman написал:
>
>>> Now I want to take a look on ANS-committee & Forth Inc :)
>>
>> Why are you ignoring MPE?
>
> I can't remember every forther in the world. I have no contacts with MPE now. If they are interested, we may talk.

LOL!  "Every Forther"!!!   You are a trip.

-- 

Rick C

[toc] | [prev] | [next] | [standalone]


#57407

Fromrickman <gnuarm@gmail.com>
Date2017-04-15 20:43 -0400
Message-ID<ocuegr$84v$2@dont-email.me>
In reply to#57392
On 4/15/2017 6:02 PM, Ilya Tarasov wrote:
> 2. Do you think we need to communicate with other forthers in the world even they don't want to be an equal partners?
> No, it is just time wasting, leave them alone - 4
> Hmm, let's try, maybe it will be some useful - 1
>
> So I'm trying :)

I wonder who cast that lone vote?

-- 

Rick C

[toc] | [prev] | [next] | [standalone]


#57409

Fromhughaguilar96@gmail.com
Date2017-04-15 18:14 -0700
Message-ID<0f3955b0-9054-4127-90b7-eafe87bece99@googlegroups.com>
In reply to#57407
On Saturday, April 15, 2017 at 5:43:03 PM UTC-7, rickman wrote:
> On 4/15/2017 6:02 PM, Ilya Tarasov wrote:
> > 2. Do you think we need to communicate with other forthers in the world even they don't want to be an equal partners?
> > No, it is just time wasting, leave them alone - 4
> > Hmm, let's try, maybe it will be some useful - 1
> >
> > So I'm trying :)
> 
> I wonder who cast that lone vote?

The problem here is that Elizabeth Rather refuses to compromise --- she declares herself to be the "leading expert" on Forth --- she will never acknowledge anybody else to have any expertise on Forth.

Ilya Tarasov is wasting his time trying to communicate with the ANS-Forth cult.

Ultimately, the only purpose of the Forth-200x mailing list is to collect names of "supporters" --- even if the person who joins the mailing list is thinking intelligently, the only thing the Forth-200x committee want is to get the person's name so they can list the person on their document as a "supporter" --- they don't care in the slightest about any thoughts that the person may have regarding Forth.

Notice how Elizabeth Rather listed Charles Moore's name on the ANS-Forth document in 1994 as a supporter, despite the fact that he walked out on ANS-Forth in 1989 (I have a copy of his exit speech). She also listed Ray Duncan's name on the ANS-Forth document in 1994 as a supporter, despite the fat that in 1993 he was on comp.lang.forth describing the ONLY ALSO scheme as being "severely brain-damaged" (it is).

Elizabeth Rather is a professional name-dropper. Her entire life has been devoted to finding people who have accomplishments and pretending that they support her. Ilya Tarasov will eventually quit the Forth-200x mailing list because nobody cares about his thoughts regarding Forth. This will have no effect. The Forth-200x committee will continue to list his name on the Forth-200x document as a supporter.

[toc] | [prev] | [next] | [standalone]


#57413

Fromrickman <gnuarm@gmail.com>
Date2017-04-15 21:49 -0400
Message-ID<ocuicj$h30$1@dont-email.me>
In reply to#57409
On 4/15/2017 9:14 PM, hughaguilar96@gmail.com wrote:
> On Saturday, April 15, 2017 at 5:43:03 PM UTC-7, rickman wrote:
>> On 4/15/2017 6:02 PM, Ilya Tarasov wrote:
>>> 2. Do you think we need to communicate with other forthers in the world even they don't want to be an equal partners?
>>> No, it is just time wasting, leave them alone - 4
>>> Hmm, let's try, maybe it will be some useful - 1
>>>
>>> So I'm trying :)
>>
>> I wonder who cast that lone vote?
>
> The problem here is that Elizabeth Rather refuses to compromise

There are days when you are so far over the edge, there is no way to 
reach your rational mind.  Let me know when you get back to home base. 
Sorry for your troubles.

-- 

Rick C

[toc] | [prev] | [next] | [standalone]


#57458

FromGerry Jackson <gerry@jackson9000.fsnet.co.uk>
Date2017-04-16 20:20 +0100
Message-ID<od0fv8$kqo$1@dont-email.me>
In reply to#57409
On 16/04/2017 02:14, hughaguilar96@gmail.com wrote:
> Notice how Elizabeth Rather listed Charles Moore's name on the
> ANS-Forth document in 1994 as a supporter, despite the fact that
> he walked out on ANS-Forth in 1989 (I have a copy of his exit
> speech). She also listed Ray Duncan's name on the ANS-Forth
> document in 1994 as a supporter, despite the fat that in 1993
> he was on comp.lang.forth describing the ONLY ALSO scheme as
> being "severely brain-damaged" (it is).
>

Why is the ONLY-ALSO scheme "severely brain-damaged"? It seems to work 
OK for me and I don't recollect anyone else criticising it so severely.



Hmm, just before the list of organisations and people who took part in 
the development of ANS Forth the cover of the ANS Forth document states:

"The following organizations and individuals have also participated in 
this project as Technical Committee members, alternates, or observers. 
The Technical Committee recognizes and respects their contributions:"

So they are listed as *participants* and may or may not be supporters - 
who knows? Someone who disagrees with the rest of the committee about 
parts of the standard is still participating. Indeed you are 
participating in the development of Forth 200X despite your hatred of it.

-- 
Gerry

[toc] | [prev] | [next] | [standalone]


#57470

Fromhughaguilar96@gmail.com
Date2017-04-16 20:41 -0700
Message-ID<4824f78a-58a3-4ba2-924c-5059d3304fbd@googlegroups.com>
In reply to#57458
On Sunday, April 16, 2017 at 12:20:04 PM UTC-7, Gerry wrote:
> On 16/04/2017 02:14, hughaguilar96@gmail.com wrote:
> > Notice how Elizabeth Rather listed Charles Moore's name on the
> > ANS-Forth document in 1994 as a supporter, despite the fact that
> > he walked out on ANS-Forth in 1989 (I have a copy of his exit
> > speech). She also listed Ray Duncan's name on the ANS-Forth
> > document in 1994 as a supporter, despite the fat that in 1993
> > he was on comp.lang.forth describing the ONLY ALSO scheme as
> > being "severely brain-damaged" (it is).
> >
> 
> Why is the ONLY-ALSO scheme "severely brain-damaged"? It seems to work 
> OK for me and I don't recollect anyone else criticising it so severely.

This has already been discussed on comp.lang.forth:
https://groups.google.com/forum/#!topic/comp.lang.forth/olO-VHXJa1Q%5B1-25%5D

I had to write code to fix the screwed-up ANS-Forth word-list scheme in order to get my cross-compiler to work. Here it is:
--------------------------------------------------------------------------

\ ******
\ ****** Some word-list stuff.
\ ******

: set-forth ( -- )                                  \ sets default configuration
    only forth definitions ;

: <get-context> ( -- wid )                          \ like CONTEXT @ in Forth-83 (ANS-Forth already provides GET-CURRENT)
    get-order  dup 1 < abort" *** GET-CONTEXT given empty search-order ***"
    over >r                 \ r: -- top-wid
    0 do  drop  loop        \ --
    r> ;

: <push-context> { wid -- }
    get-order
    wid  swap 1+                                    \ put WID on top of whatever is there
    set-order ;

\ <PUSH-CONTEXT> always pushes WID, even if WID is already the 1st. It has to be consistent in always pushing, so <POP-CONTEXT> can pop what was pushed.

: <pop-context> ( -- wid )                            \ undo PUSH-CONTEXT and return the wid
    get-order  dup 1 < abort" *** POP-CONTEXT given empty search-order ***"
    swap >r  1-
    set-order
    r> ;

: <drop-context> ( -- )
    <pop-context> drop ;

\ <GET-CONTEXT> <PUSH-CONTEXT> <POP-CONTEXT> and <DROP-CONTEXT> don't take into consideration LOCALVARS# being in the way.

\ VFX pushes a wid called LOCALVARS onto the search order in colon words that have locals, then pops it off again at the semicolon.
\ It is in the way. If you set the 1st value to a replacement wid, you will replace LOCALVARS rather than the wid you thought you were replacing (which is now 2nd).
\ This is a gross violation of the ANS-Forth standard (13.3.3-1):
\ "...if the Search-Order word set is present, local identifiers shall always be searched before any of the word lists in any definable search order,
\  and none of the Search-Order words shall change the locals’ privileged position in the search order."

\ Note: Stephan Pelc fixed the bug mentioned above in version 4.71.3523 of Oct.8,2014.

\ The following definition of SET-CONTEXT works around the bug in VFX, and will also work in Forths that don't have the bug.

false value localvars#                              \ this is the wid that is 1st in the search-order inside of colon words that have local variables
marker temporary
false value expected#                               \ this is the wid that we are expecting to be 1st

: fill-localvars# ( -- )                            \ this fills <LOCALVARS> at compile-time for use by <SET-CONTEXT> --- it doesn't do anything at run-time
    true abort" *** FILL-LOCALVARS# is not to be run, it fills LOCALVARS# at compile-time ***"
    [ <get-context> to expected# ]
    1 2 3 locals| x y z |
    [
        <get-context> expected# <> [if]
            <pop-context> to localvars#
            <get-context> expected# <> [if]  .( *** FILL-LOCALVARS# can't find EXPECTED# ***)  abort  [then]
            localvars# <push-context>  [then]
    ] ;
    
\ FILL-LOCALVARS# doesn't have to run --- it fills LOCALVARS# at compile-time.    
temporary  \ discard this code that fills LOCALVARS# at compile-time --- it is never needed again

: push-underneath { wid -- }                        \ push WID underneath whatever is 1st so WID becomes 2nd, leaving 1st as 1st
    <pop-context>                                   \ hold 1st
    <get-context> wid <> if
        wid <push-context>  then                    \ don't push WID on top of itself (if WID was 2nd originally)
    <push-context> ;                                \ push 1st back on top

: replace-1st ( wid -- )
    push-underneath  <drop-context> ;               \ use PUSH-UNDERNEATH so WID is not duplicated if it already 2nd

: <set-context> { wid anchor -- }
    <get-context> anchor = if                       \ if ANCHOR is 1st
        wid anchor = if  exit then                  \ WID is already 1st, so we are done
        wid <push-context>                          \ push WID on top of ANCHOR, rather than replace ANCHOR
        exit then
    <get-context> localvars# = if                   \ if LOCALVARS# is 1st
        <pop-context>                               \ -- localvars#
        <get-context> anchor = if                   \ if ANCHOR is 2nd
            wid <push-context>                      \ push WID on top of ANCHOR, rather than replace ANCHOR
        else
            wid replace-1st  then                   \ else, replace 2nd with WID
        <push-context>                              \ restore LOCALVARS# as 1st
        exit then
    wid replace-1st ;                               \ 1st was neither ANCHOR nor LOCALSVAR#, so we just replace 1st with WID (now GET-CONTEXT will give us WID)

: set-context  ( wid -- )
    forth-wordlist  <set-context> ;

\ FORTH-WORDLIST SET-CONTEXT would do the same thing that FORTH does.

\ The following PUSH-CONTEXT POP-CONTEXT and DROP-CONTEXT take into account LOCALVARS#.
\ Use xxx PUSH-CONTEXT rather than ALSO xxx SET-CONTEXT because everything goes haywire if the ANCHOR is the 1st wid.
\ All in all, ALSO is a screw-ball idea because it involves making a duplicate on the search-order, which makes no sense.
\ Forth is supposed to be context-free, but ALSO only makes sense when it is followed by SET-CONTEXT (but not when the anchor is 1st).
\ In this 1993 comp.lang.forth thread: https://groups.google.com/forum/#!topic/comp.lang.forth/olO-VHXJa1Q
\ Ray Duncan (who sold UR/Forth back then), described ONLY/ALSO as "severely brain-damaged."
\ Apparently he had zero influence over ANS-Forth design though, because he gave up on Forth after ANS-Forth came out in 1994.

: get-context ( -- wid )
    <get-context>                                   \ -- 1st
    dup localvars# = if  drop                       \ --
        <pop-context>  <get-context>                \ -- 1st 2nd
        swap <push-context>  then ;                 \ -- 2nd

: definitions ( -- )                                \ the VFX version of DEFINITIONS has a bug in that it doesn't take LOCALVARS into consideration
    get-context  set-current ;

: push-context { wid -- }
    <get-context> localvars# = if
        <pop-context>  wid <push-context>           \ -- 1st
        <push-context>                              \ --
    else
        wid <push-context>  then ;

: pop-context ( -- wid )                            \ undo PUSH-CONTEXT and return the wid
    <pop-context>                                   \ -- 1st
    dup localvars# = if
        <pop-context>                               \ -- 1st 2nd
        swap <push-context>  then ;                 \ -- 2nd

: drop-context ( -- )
    pop-context drop ;

char & comment                                      \ this is for testing the word-list stuff

wordlist constant test1#                            \ used only by TEST that follows
wordlist constant test2#                            \ used only by TEST that follows

: test ( -- )   \ this tests SET-CONTEXT
    [ cr .( TEST1# = )  test1# u.                   ]
    [ cr .( TEST2# = )  test2# u.                   ]
    [ cr .( FORTH-WORDLIST = )  forth-wordlist  u.  ]
    [ set-forth                             order   ]
    [ get-context  cr .( context = ) u.     order   ]
    [ forth-wordlist set-context            order   ]
    [ test1# set-context                    order   ]
    1 2 3 locals| x y z |           [       order   ]
    [ get-context  cr .( context = ) u.     order   ]
    [ test1# push-context                   order   ]
    [ drop-context                          order   ]
    [ test1# set-context                    order   ]
    [ test2# set-context                    order   ]
    [ test1# push-context                   order   ]
    [ drop-context                          order   ]
    ;

order
set-forth

: test-forth ( -- )                                 \ this tests FORTH that is supposed to be the same as FORTH-WORDLIST SET-CONTEXT
    [ set-forth  cr .( test-forth)          order   ]
    [ forth                                 order   ]
    1 2 3 locals| x y z |           [       order   ]
    [ forth                                 order   ]   \ this fails under VFX
    ;

order
set-forth

&


VFX? [if]                                   \ We have >NAME so error-checking will be done. This code may work in other ANS-Forth systems as well.

: in-wordlist? ( xt wid -- 0|1|-1 )         \ we return 0 for not-found, 1 for immediate and -1 for non-immediate
    over >name count  rot search-wordlist   \ -- xt 0 | xt found-xt 1 | xt found-xt -1
    >r
    r@ 0= if  drop      r> exit then        \ it wasn't found
    = if                r> exit then        \ it was found and it is the same
    r> drop  0 ;                            \ it was found but it wasn't the same (it had the same name, but was a different word)

[else]                                      \ We can't be sure that >NAME will be available except in VFX, so error-checking won't be done.

: in-wordlist? ( xt wid -- 0|1|-1 )
    true abort" *** IN-WORDLIST? is not available except in VFX" ;
immediate

[then]

\ Problems may arise when using PUSH-CONTEXT and POP-CONTEXT if two wids are supposed to have words of the same name.
\ The user does a PUSH-CONTEXT of one of the wids, but the other wid is already in the search-order.
\ The user then looks up a word name. Unfortunately, the wid on top that is supposed to have that name doesn't have it, and so the name is found in the other wid.
\ Because of this problem, it is best to check every xt with IN-WORDLIST? to make sure that it was defined in the expected word-list.
\ Unfortunately, IN-WORDLIST? doesn't always work because it depends upon >NAME that is not ANS-Forth (some ANS-Forth systems, such as VFX, have it though).

: this-before-that? { this that | this-first? that-first? -- ? }
    false to this-first?
    false to that-first?
    get-order  0 ?dup do
        dup this = if   that-first? 0= if       true to this-first?     then then       \ don't set THIS-FIRST? if we have already found THAT
        that = if       this-first? 0= if       true to that-first?     then then       \ don't set THAT-FIRST? if we have already found THIS
        loop
    this-first? ;

\ THIS-BEFORE-THAT? may be more useful than GET-CONTEXT because it searches the entire search-order.

[toc] | [prev] | [next] | [standalone]


#57481

FromGerry Jackson <gerry@jackson9000.fsnet.co.uk>
Date2017-04-17 09:03 +0100
Message-ID<od1smf$42f$1@dont-email.me>
In reply to#57470
On 17/04/2017 04:41, hughaguilar96@gmail.com wrote:
> On Sunday, April 16, 2017 at 12:20:04 PM UTC-7, Gerry wrote:
>> On 16/04/2017 02:14, hughaguilar96@gmail.com wrote:
>>> Notice how Elizabeth Rather listed Charles Moore's name on the
>>> ANS-Forth document in 1994 as a supporter, despite the fact that
>>> he walked out on ANS-Forth in 1989 (I have a copy of his exit
>>> speech). She also listed Ray Duncan's name on the ANS-Forth
>>> document in 1994 as a supporter, despite the fat that in 1993
>>> he was on comp.lang.forth describing the ONLY ALSO scheme as
>>> being "severely brain-damaged" (it is).
>>>
>>
>> Why is the ONLY-ALSO scheme "severely brain-damaged"? It seems to work
>> OK for me and I don't recollect anyone else criticising it so severely.
>
> This has already been discussed on comp.lang.forth:
> https://groups.google.com/forum/#!topic/comp.lang.forth/olO-VHXJa1Q%5B1-25%5D
>

Looking at that discussion the only objection I can find is the fact 
that ALSO duplicates the wid at the start of the search order. This 
doesn't seem a problem to me and makes code a bit more readable e.g. 
ALSO VOC-NAME  instead of just VOC-NAME (admittedly rather trivial)
and that objection was from you, not Ray Duncan who didn't seem to give 
a reason for  his "severely brain-damaged" opinion - it read more like 
sour grapes to me.

The rest of the objections were because VFX Forth had a bug that you had 
to work around, that wasn't caused by the standard but MPE's 
non-compliant implementation of locals, since apparently fixed.

> I had to write code to fix the screwed-up ANS-Forth word-list scheme in order to get my cross-compiler to work. Here it is:
> --------------------------------------------------------------------------
>
> \ ******
> \ ****** Some word-list stuff.
> \ ******
>
> : set-forth ( -- )                                  \ sets default configuration
>     only forth definitions ;
>
> : <get-context> ( -- wid )                          \ like CONTEXT @ in Forth-83 (ANS-Forth already provides GET-CURRENT)
>     get-order  dup 1 < abort" *** GET-CONTEXT given empty search-order ***"
>     over >r                 \ r: -- top-wid
>     0 do  drop  loop        \ --
>     r> ;
>
> : <push-context> { wid -- }
>     get-order
>     wid  swap 1+                                    \ put WID on top of whatever is there
>     set-order ;
>
> \ <PUSH-CONTEXT> always pushes WID, even if WID is already the 1st. It has to be consistent in always pushing, so <POP-CONTEXT> can pop what was pushed.
>
> : <pop-context> ( -- wid )                            \ undo PUSH-CONTEXT and return the wid
>     get-order  dup 1 < abort" *** POP-CONTEXT given empty search-order ***"
>     swap >r  1-
>     set-order
>     r> ;
>
> : <drop-context> ( -- )
>     <pop-context> drop ;

These definitions just reflect the fact the the ANS Forth wordlist is a 
set of words that a user can use to build higher level dictionary 
handling stuff needed by the user. This was probably because the members 
of the standardisation committee couldn't agree on the higher level 
dictionary stuff.

Your definition <PUSH-CONTEXT> is usually called >ORDER by other people.

>
> \ <GET-CONTEXT> <PUSH-CONTEXT> <POP-CONTEXT> and <DROP-CONTEXT> don't take into consideration LOCALVARS# being in the way.

And why should they? You were using VFX which had the bug that had a 
locals wordlist in the way and that you had to work around - blame MPE 
for that not the standard. The rest of the code you posted seems to be a 
workaround for that bug and hence irrelevant to other systems. So why 
post it, particularly as MPE have fixed the bug and it doesn't appear 
(AFAIK) in other Forth systems.

If all that code is still in your novice package I recommend that you 
delete it.

[much code snipped]

> \ Problems may arise when using PUSH-CONTEXT and POP-CONTEXT if two wids are supposed to have words of the same name.
> \ The user does a PUSH-CONTEXT of one of the wids, but the other wid is already in the search-order.
> \ The user then looks up a word name. Unfortunately, the wid on top that is supposed to have that name doesn't have it, and so the name is found in the other wid.
> \ Because of this problem, it is best to check every xt with IN-WORDLIST? to make sure that it was defined in the expected word-list.

I don't understand what all this is about

> \ Unfortunately, IN-WORDLIST? doesn't always work because it depends upon >NAME that is not ANS-Forth (some ANS-Forth systems, such as VFX, have it though).

Forth 2012 has TRAVERSE-WORDLIST and friends

-- 
Gerry

[toc] | [prev] | [next] | [standalone]


#57471

Fromhughaguilar96@gmail.com
Date2017-04-16 20:49 -0700
Message-ID<3a87655d-8aad-4ace-a039-890b8976b7f7@googlegroups.com>
In reply to#57458
On Sunday, April 16, 2017 at 12:20:04 PM UTC-7, Gerry wrote:
> Hmm, just before the list of organisations and people who took part in 
> the development of ANS Forth the cover of the ANS Forth document states:
> 
> "The following organizations and individuals have also participated in 
> this project as Technical Committee members, alternates, or observers. 
> The Technical Committee recognizes and respects their contributions:"
> 
> So they are listed as *participants* and may or may not be supporters - 
> who knows? Someone who disagrees with the rest of the committee about 
> parts of the standard is still participating. Indeed you are 
> participating in the development of Forth 200X despite your hatred of it.

Calling them "participants" is legalese to avoid getting sued for libel. I participated in Forth-200x because I was on the Forth-200x mailing list for a while. So, the Forth-200x committee can list me on their document as a "participant" and most likely I will not be able to successfully sue for libel --- this is despite the fact that anybody reading the document would have the reasonable belief that the "participants" are supporters and that they gave their permission to have their name listed on the document.

ANS-Forth listed people on the ANS-Forth document as "participants" who had opposed ANS-Forth, and Forth-200x is doing the same thing now. All of the Forth-200x committee members were appointed to the committee by Elizabeth Rather who is truly the most sleazy salesperson I have ever encountered in my life. If you continue on the Forth-200x mailing list, and you defend their practice of listing "participants" on the Forth-200x document who are actually opposed to Forth-200x, then you are sleazy too!

[toc] | [prev] | [next] | [standalone]


#57483

FromGerry Jackson <gerry@jackson9000.fsnet.co.uk>
Date2017-04-17 09:25 +0100
Message-ID<od1u00$7jj$1@dont-email.me>
In reply to#57471
On 17/04/2017 04:49, hughaguilar96@gmail.com wrote:
> On Sunday, April 16, 2017 at 12:20:04 PM UTC-7, Gerry wrote:
>> Hmm, just before the list of organisations and people who took part in
>> the development of ANS Forth the cover of the ANS Forth document states:
>>
>> "The following organizations and individuals have also participated in
>> this project as Technical Committee members, alternates, or observers.
>> The Technical Committee recognizes and respects their contributions:"
>>
>> So they are listed as *participants* and may or may not be supporters -
>> who knows? Someone who disagrees with the rest of the committee about
>> parts of the standard is still participating. Indeed you are
>> participating in the development of Forth 200X despite your hatred of it.
>
> Calling them "participants" is legalese to avoid getting sued for libel. I participated in Forth-200x because I was on the Forth-200x mailing list for a while. So, the Forth-200x committee can list me on their document as a "participant" and most likely I will not be able to successfully sue for libel --- this is despite the fact that anybody reading the document would have the reasonable belief that the "participants" are supporters and that they gave their permission to have their name listed on the document.

I don't think that (participant = supporter) is true for every aspect of 
the standard because things are decided by voting - sometimes the result 
goes against individual opinions.

>
> ANS-Forth listed people on the ANS-Forth document as "participants" who had opposed ANS-Forth, and Forth-200x is doing the same thing now. All of the Forth-200x committee members were appointed to the committee by Elizabeth Rather

What evidence do you have for this assertion?

> who is truly the most sleazy salesperson I have ever encountered in my life. If you continue on the Forth-200x mailing list, and you defend their practice of listing "participants" on the Forth-200x document who are actually opposed to Forth-200x, then you are sleazy too!
>

It's just common politeness to list participants, after all if they 
object to inclusion - as you did - their names can be removed before 
final issue of the document - as your's was. What's wrong with that?

-- 
Gerry

[toc] | [prev] | [next] | [standalone]


#57493

FromAlex <alex@rivadpm.com>
Date2017-04-17 16:32 +0100
Message-ID<od2n13$oe0$1@dont-email.me>
In reply to#57483
On 4/17/2017 09:25, Gerry Jackson wrote:
>>
> 
> It's just common politeness to list participants, after all if they 
> object to inclusion - as you did - their names can be removed before 
> final issue of the document - as your's was. What's wrong with that?

It's reasonable, that's what's wrong.

-- 
Alex

[toc] | [prev] | [next] | [standalone]


#57525

Fromrickman <gnuarm@gmail.com>
Date2017-04-17 22:19 -0400
Message-ID<od3su3$8j0$1@dont-email.me>
In reply to#57493
On 4/17/2017 11:32 AM, Alex wrote:
> On 4/17/2017 09:25, Gerry Jackson wrote:
>>>
>>
>> It's just common politeness to list participants, after all if they
>> object to inclusion - as you did - their names can be removed before
>> final issue of the document - as your's was. What's wrong with that?
>
> It's reasonable, that's what's wrong.

I have copies of draft standard from 2012, 2013 and 2014.  I can't find 
Hugh's name in any of them.

-- 

Rick C

[toc] | [prev] | [next] | [standalone]


#57546

FromAlex <alex@rivadpm.com>
Date2017-04-18 13:51 +0100
Message-ID<od51u2$h8g$1@dont-email.me>
In reply to#57525
On 4/18/2017 03:19, rickman wrote:
> On 4/17/2017 11:32 AM, Alex wrote:
>> On 4/17/2017 09:25, Gerry Jackson wrote:
>>>>
>>>
>>> It's just common politeness to list participants, after all if they
>>> object to inclusion - as you did - their names can be removed before
>>> final issue of the document - as your's was. What's wrong with that?
>>
>> It's reasonable, that's what's wrong.
> 
> I have copies of draft standard from 2012, 2013 and 2014.  I can't find 
> Hugh's name in any of them.
> 

He objected to having his name on the quotations RfD. It was removed.

-- 
Alex

[toc] | [prev] | [next] | [standalone]


#57581

Fromrickman <gnuarm@gmail.com>
Date2017-04-19 02:15 -0400
Message-ID<od6v47$4i8$2@dont-email.me>
In reply to#57546
On 4/18/2017 8:51 AM, Alex wrote:
> On 4/18/2017 03:19, rickman wrote:
>> On 4/17/2017 11:32 AM, Alex wrote:
>>> On 4/17/2017 09:25, Gerry Jackson wrote:
>>>>>
>>>>
>>>> It's just common politeness to list participants, after all if they
>>>> object to inclusion - as you did - their names can be removed before
>>>> final issue of the document - as your's was. What's wrong with that?
>>>
>>> It's reasonable, that's what's wrong.
>>
>> I have copies of draft standard from 2012, 2013 and 2014.  I can't
>> find Hugh's name in any of them.
>>
>
> He objected to having his name on the quotations RfD. It was removed.

Does that make it a "clean room" document?

-- 

Rick C

[toc] | [prev] | [next] | [standalone]


#57599

Fromhughaguilar96@gmail.com
Date2017-04-19 10:54 -0700
Message-ID<0bdb1cdf-76e3-4b09-bf45-980aab66feaf@googlegroups.com>
In reply to#57546
On Tuesday, April 18, 2017 at 5:51:11 AM UTC-7, Alex wrote:
> On 4/18/2017 03:19, rickman wrote:
> > On 4/17/2017 11:32 AM, Alex wrote:
> >> On 4/17/2017 09:25, Gerry Jackson wrote:
> >>>>
> >>>
> >>> It's just common politeness to list participants, after all if they
> >>> object to inclusion - as you did - their names can be removed before
> >>> final issue of the document - as your's was. What's wrong with that?
> >>
> >> It's reasonable, that's what's wrong.
> > 
> > I have copies of draft standard from 2012, 2013 and 2014.  I can't find 
> > Hugh's name in any of them.
> > 
> 
> He objected to having his name on the quotations RfD. It was removed.

There is more history to this.

Bernd Paysan claimed to have written code for quotations, but he totally faked it. Obviously, quotations need to have access to the parent function's local variables. The Paysan-faked quotations were just :NONAME with some syntactic sugar. Claiming that these were quotations was grossly dishonest! If a programmer is incapable of writing code that he is assigned to write, he should just admit this, but it is dishonest to write fake code that appears to work but on closer inspection is found to be non-working. Bernd Paysan can get away with lying like this, and presenting fake code that doesn't actually work, because he is a member of the Forth-200x committee and he can bully the Forth-200x mailing-list sycophants into accepting his lies as truth even if they know better.

The policy of the Forth-200x committee is that they don't write RfDs themselves, because then it is obvious that they are just imposing their own crappola on the Forth community from a bully pulpit. Instead, they find a stooge write the RfD so they can fake up an image of Forth-200x being a grassroots project (Forth-200x is actually "astroturf" which means a corporate project selling a product that is pretending to be a grassroots project). Alex McDonald was given the honor of being the stooge, as a reward for his attacks on me. So, Alex McDonald wrote the RfD pretending to be the programmer of the fake quotations, although everybody knew that it was actually Bernd Paysan who had written the fake code. Alex McDonald listed my name on the RfD as a contributor despite the fact that I had steadfastly said the Bernd Paysan's code was faked and didn't work. The Paysan-faked quotation RfD was discussed in this thread:
https://groups.google.com/forum/#!topic/comp.lang.forth/ohE8mx7tWQU%5B1-25%5D
I threatened a libel lawsuit, and so Alex McDonald backed down and removed my name. 

The fake quotations were supposed to be a slam-dunk from a ladder for Alex McDonald. They were written by Bernd Paysan who is a Forth-200x committee member, they were supported 100% by Anton Ertl who is the Forth-200x committee chairperson, and they were supported 100% by Leon Wagner who is the real boss of the Forth-200x committee (afaik, he was the one who wrote the spec for the fake quotations that Bernd Paysan followed when writing the fake code). Also, the RfD was pretty much a line-by-line copy of an article written by the Forth-200x committee member Stephen Pelc:
http://newsgroups.derkeiler.com/Archive/Comp/comp.lang.forth/2012-07/msg00791.html
At this time however, Alex McDonald disappeared. Previously, John Passaniti had disappeared, and now Alex McDonald had disappeared. I assumed that one or both had been put in prison or committed to a psychiatric hospital, but I didn't really care; I was just glad to see them gone. The RfD fizzled out because the author of the RfD had disappeared.

Much later, I received a death threat by email from Alex McDonald:
---------------------------------------------------------------------------- 
On 01/06/16 16:20, hughaguilar96@gmail.com wrote: 
>  The RfD was going to be a slam-dunk from a ladder for Alex McDonald 
> --- but then Alex McDonald disappeared --- now the RfD is left in 
> limbo while Anton and Bernd search for a new pocket-boy who will put 
> his name on the RfD. 
> ... 
> Then [after Passaniti disappeared] the Forth-200x committee had Alex McDonald pretending to represent 
>the "Forth community," but Alex "I do standards for a living" McDonald 
> disappeared. This is a chronic problem for the Forth-200x committee 
> --- their pocket boys disappear --- then they have to find new 
> pocket boys to put their names on the RfDs. 

Unfortunately, you're still here, and I suspect you won't do me the tremendous favour of fucking off or dieing any time soon. Ah well. 

I still occasionally read clf. Personal reasons and your continued existence have stopped me being an active contributor. I'll continue to lurk for the moment. 

-- 
Alex "I still do standards for a living" McDonald 
---------------------------------------------------------------------------- 

At this time, Anton Ertl took over the RfD himself and tried to push it through. This is despite the fact that the Forth-200x committee members generally don't put their name on an RfD but instead have a stooge put his name on the RfD in order to fake up a grassroots image. Alex McDonald showed up on c.l.f. again, but Anton Ertl would let him have the RfD back again. Anton Ertl also listed my name on the RfD as a contributor, and so I had to threaten the libel lawsuit again to make him stop.

At the same time, I wrote the code for rquotations (based on HumptyDumpty's code for rquotations). My code actually works! The rquotation has access to the parent function's local variables! Kapow! I made the Forth-200x committee members (Anton Ertl, Stephen Pelc, and Bernd Paysan) look like total idiots! They had supported the fake quotations that are just syntactic sugar for :NONAME and hence fail to have access to the parent function's local variables. My rquotations are really 10 or even 100 times higher quality than Bernd Paysan's pathetic attempt at Forth programming. My rquotations aren't ANS-Forth, but they do work under both VFX and SwiftForth, and they could be made to work under any ANS-Forth compiler (given some carnal knowledge and the ability to write some assembly-language ).

All in all, my rquotations are a huge coup! I really made the Forth-200x committee members look stupid! This should surely kill Forth-200x. Who wants to support Forth-200x after the Forth-200x committee members have been publicly humiliated? Who wants to support Forth-200x after a spotlight has been shined on the fact that Bernd Paysan is a fake programmer?

This is my rquotation code:
----------------------------------------------------------------------------

\ ******
\ ****** R[ ]R quotations.
\ ****** https://groups.google.com/forum/#!topic/comp.lang.forth/3LSqmBIZuzY
\ ****** This is highly non-standard! ANS-Forth (section 3.2.3.3.) says:
\ ****** A program shall not access values on the return stack (using R@, R>, 2R@ or 2R>) that it did not place there using >R or 2>R;
\ ******

\ In the stack-picture comments, RQ is a continuation (a vector to a quotation).

\ HumptyDumpty invented rquotations --- this was very good programming --- I hadn't thought of it.
\ What I call REX0 he called RCALL --- also, he didn't have REX which I invented (this only works in VFX and SwiftForth).
\ If only REX0 is used, rquotations can be used under any ANS-Forth system (theoretically non-standard though).
\ REX is a lot more useful though because the HOF almost always needs to have locals.

\ My improved version for VFX or SwiftForth should be easy to port to other ANS-Forth systems --- any Forth system with locals.
\ Some assembly-language is required, but it is pretty straight forward.

VFX? SwiftForth? or [if]

: rexit     ( --   )    rdrop ;
: (r:)      ( -- rq )   r@ 5 + ;    \ 5 is the size of a JMP instruction in 32-bit x86
: r[        ( -- rq )   postpone (r:)  postpone ahead ;  immediate
: ]r        ( --   )    postpone rexit  postpone then ;  immediate

: rex0      ( rq -- )   >r ;                                    \ requires the HOF to not have locals

\ REX0 is the same as EXECUTE
\ We don't use EXECUTE however because in the other version (not VFX or SwiftForth) REX0 is different.
    
VFX? [if]

code rex    ( rq -- )                                           \ requires the HOF to have locals
    push edi                    \ this is the HOF's LF which won't be used by the quotation
    mov edi, 0 [edi]            \ this is the parent's LF which will be used by the quotation
    mov eax, ebx
    mov ebx, 0 [ebp]  lea ebp, w [ebp]
    call eax
    pop edi                     \ restore HOF's LF
    next, end-code
    
[then]

SwiftForth? [if]

156 constant lf-offset  \ this is the offset for the local-frame in the user-variables (ESI is the user-variable base)

code rex    ( rq -- )                                           \ requires the HOF to have locals
    lf-offset [esi] edx mov
    edx push                    \ this is the HOF's LF which won't be used by the quotation
    -4 [edx] eax mov            \ this is the old ESP
    0 [eax] eax mov             \ this is the parent's LF which will be used by the quotation
    eax lf-offset [esi] mov
    ebx eax mov  [drop]
    eax call
    lf-offset [esi] pop         \ restore HOF's LF  
    ret end-code
    
[then]

[else] \ this was written by HumptyDumpty and works on gForth, SwiftForth and VFX

: rexit     ( --   )        RDROP ;
: (r:)      ( -- rq )       R@  false ;
: r[        ( -- rq )       postpone (r:)   postpone IF   ;     immediate
: ]r        ( --   )        postpone REXIT  postpone THEN ;     immediate

: rex0      ( rq -- )       >R  true ;                          \ requires the HOF to not have locals

\ REX is not supported in HumptyDumpty's code.

[then]

[toc] | [prev] | [next] | [standalone]


#57600

Fromhughaguilar96@gmail.com
Date2017-04-19 11:03 -0700
Message-ID<bece252c-f71e-4b17-b81d-7d18aa969f6f@googlegroups.com>
In reply to#57599
On Wednesday, April 19, 2017 at 10:54:17 AM UTC-7, hughag...@gmail.com wrote:
> All in all, my rquotations are a huge coup! I really made the Forth-200x committee members look stupid! This should surely kill Forth-200x. Who wants to support Forth-200x after the Forth-200x committee members have been publicly humiliated? Who wants to support Forth-200x after a spotlight has been shined on the fact that Bernd Paysan is a fake programmer?

Here is some code that I wrote to demonstrate the use of the rquotations:
-------------------------------------------------------------------------

\ This needs NOVICE.4TH and LIST.4TH loaded.
\ This demonstrates how rquotations can upfeed data to the parent function.

marker hottie.4th


seq 
    w field .gender     \ 'M' or 'F'     \ if someone isn't one or the other, then he/she isn't a person 
constant person 

: init-person ( str node -- node ) 
    init-seq >r 
    [char] M  r@ .gender !    \ default is male 
    r> ; 
    
: new-person ( str -- node )     
    person alloc 
    init-person ; 

person 
    w field .hotness    \ scale of 1 to 10 
constant chick 

: init-chick ( hotness str node -- node ) 
    init-person >r 
    [char] F  r@ .gender ! 
              r@ .hotness ! 
    r> ; 
    
: new-chick ( hotness str -- node )     
    chick alloc 
    init-chick ; 
    
: chick-counter ( head -- chicks ) 
    0
    swap  r[ .gender @  [char] F = if  1+  then  ]r |each ;
    
: macro-chick-counter ( head -- chicks ) 
    0
    swap  each[ .gender @  [char] F = if  1+  then  ]each ;

: test { head | people chicks tens nines eights -- } 
    head r[ 
        1 +to people 
        dup .gender @  [char] F = if  1 +to chicks 
            .hotness @ 
            dup  8 = if  1 +to eights  then 
            dup  9 = if  1 +to nines  then 
            10 = if  1 +to tens  then        \ Yay! We found at least one! 
        else  drop  then 
    ]r |each 
    cr ." total people:    " people . 
    cr ." total chicks:    " chicks . 
    cr ." level 10 chicks: " tens . 
    cr ." level  9 chicks: " nines . 
    cr ." level  8 chicks: " eights . 
    ; 
    
\ If the HOF can be written as a pair of macros --- such as EACH[ ]EACH --- then MACRO-TEST can be used:

: macro-test { head | people chicks tens nines eights -- } 
    head each[
        1 +to people 
        dup .gender @  [char] F = if  1 +to chicks 
            .hotness @ 
            dup  8 = if  1 +to eights  then 
            dup  9 = if  1 +to nines  then 
            10 = if  1 +to tens  then        \ Yay! We found at least one! 
        else  drop  then 
        ]each    
    cr ." total people:    " people . 
    cr ." total chicks:    " chicks . 
    cr ." level 10 chicks: " tens . 
    cr ." level  9 chicks: " nines . 
    cr ." level  8 chicks: " eights . 
    ; 
    
\ If the HOF has to be a function --- such as EACH --- then HEAP-TEST can be used:    
    
0
    w field .people
    w field .chicks
    w field .tens
    w field .nines
    w field .eights
constant test-locals

: <heap-test> ( ^locals node -- )
    over >r
    r@ .people ++
    dup .gender @  [char] F = if  r@ .chicks ++
        .hotness @
        dup  8 = if  r@ .eights ++  then
        dup  9 = if  r@ .nines ++  then
        10 = if  r@ .tens ++  then
    else  drop  then 
    rdrop ;

: heap-test ( head -- )
    test-locals zalloc 
    swap  ['] <heap-test> each 
    cr ." total people:    "  dup .people ?
    cr ." total chicks:    "  dup .chicks ?
    cr ." level 10 chicks: "  dup .tens ?
    cr ." level  9 chicks: "  dup .nines ?
    cr ." level  8 chicks: "  dup .eights ?
    dealloc ;
    
\ The following is HumptyDumpty's prettified version.

: .locals   ( ^local -- ) 
    dup .people ? 
    dup .chicks ? 
    dup .tens   ? 
    dup .nines  ? 
        .eights ? 
; 
: <HDtest> ( ^locals node -- ^locals ) 
    over .people ++ 
    dup .gender @  [char] F = IF 
        over .chicks ++ 
        .hotness @ 
        dup  8 = IF  over .eights ++ THEN 
        dup  9 = IF  over .nines  ++ THEN 
            10 = IF  dup  .tens   ++ THEN 
    ELSE 
        drop 
    THEN 
; 
: HDtest ( head -- ) 
    align here  test-locals zallot
    swap  ['] <HDtest> each 
    .locals 
    test-locals negate allot 
;     
    
\ The following is an example list of people.

nil
    c" aaaaa" new-person    link
    c" bbbbb" new-person    link
 3  c" ccccc" new-chick     link
10  c" Darby" new-chick     link
 8  c" eeeee" new-chick     link
    c" fffff" new-person    link
 7  c" ggggg" new-chick     link
 8  c" hhhhh" new-chick     link
constant people

[toc] | [prev] | [next] | [standalone]


#57502

From"Elizabeth D. Rather" <erather@forth.com>
Date2017-04-17 12:37 -1000
Message-ID<lJmdnXOe4Y063mjFnZ2dnUU7-enNnZ2d@supernews.com>
In reply to#57483
On 4/16/17 10:25 PM, Gerry Jackson wrote:
> On 17/04/2017 04:49, hughaguilar96@gmail.com wrote:
>> On Sunday, April 16, 2017 at 12:20:04 PM UTC-7, Gerry wrote:
>>> Hmm, just before the list of organisations and people who took part in
>>> the development of ANS Forth the cover of the ANS Forth document states:
>>>
>>> "The following organizations and individuals have also participated in
>>> this project as Technical Committee members, alternates, or observers.
>>> The Technical Committee recognizes and respects their contributions:"
>>>
>>> So they are listed as *participants* and may or may not be supporters -
>>> who knows? Someone who disagrees with the rest of the committee about
>>> parts of the standard is still participating. Indeed you are
>>> participating in the development of Forth 200X despite your hatred of
>>> it.
>>
>> Calling them "participants" is legalese to avoid getting sued for
>> libel. I participated in Forth-200x because I was on the Forth-200x
>> mailing list for a while. So, the Forth-200x committee can list me on
>> their document as a "participant" and most likely I will not be able
>> to successfully sue for libel --- this is despite the fact that
>> anybody reading the document would have the reasonable belief that the
>> "participants" are supporters and that they gave their permission to
>> have their name listed on the document.
>
> I don't think that (participant = supporter) is true for every aspect of
> the standard because things are decided by voting - sometimes the result
> goes against individual opinions.

I don't know what guideline Forth-200x uses in this regard, but Forth94 
(ANS-Forth) listed as "participants" those who at any time had voting 
membership in the group, which required attendance at a minimum number 
of quarterly meetings. As the process continued for 8 years, a number of 
people were participants for part of the time. The document listed those 
who were voting members approving the final document as well as the 
separate participants list (members at any time during the process). 
Chuck was on the latter list.

>> ANS-Forth listed people on the ANS-Forth document as "participants"
>> who had opposed ANS-Forth, and Forth-200x is doing the same thing now.
>> All of the Forth-200x committee members were appointed to the
>> committee by Elizabeth Rather
>
> What evidence do you have for this assertion?

LOL. I don't know what Forth-200x's criteria for membership or 
participant status is. I have been on the mailing list and have followed 
the process closely, but have never attended a meeting.

>> who is truly the most sleazy salesperson I have ever encountered in my
>> life. If you continue on the Forth-200x mailing list, and you defend
>> their practice of listing "participants" on the Forth-200x document
>> who are actually opposed to Forth-200x, then you are sleazy too!
>
> It's just common politeness to list participants, after all if they
> object to inclusion - as you did - their names can be removed before
> final issue of the document - as your's was. What's wrong with that?

Cheers,
Elizabeth

-- 
Elizabeth D. Rather
FORTH, Inc.
6080 Center Drive, Suite 600
Los Angeles, CA  90045
USA

[toc] | [prev] | [next] | [standalone]


#57401

Fromhughaguilar96@gmail.com
Date2017-04-15 17:18 -0700
Message-ID<585c4a01-a3f9-4a13-900e-49558b28447b@googlegroups.com>
In reply to#57296
On Friday, April 14, 2017 at 10:28:19 AM UTC-7, hughag...@gmail.com wrote:
> On Thursday, April 13, 2017 at 6:44:55 AM UTC-7, Ilya Tarasov wrote:
> > > 4.) We need a string-stack (I have already written this in ANS-Forth).
> > 
> > I feel it is optional. But yes, since it is Forth-specific, feature must be described.
> 
> Well, the two things that programs work with are numbers and text. So, both have to be supported, or you have a toy language with no practical value (ANS-Forth).
> 
> I can email you STRING-STACK.4TH an STRING-STACK.TXT so you get your description. Also, it will be in the next novice-package release.

I consider the string-stack to be necessary. Earlier today I added another post to my thread:
https://groups.google.com/forum/#!topic/comp.lang.forth/CYR7FhjYMkg
This was a response to Anton Ertl's question. I think this really shows how crucial a string-stack is.

> > > 5.) Make my rquotations standard. They already work under VFX and SwiftForth --- it is only necessary to guarantee that they will work under any standard Forth system.
> > 
> > Again, it is optional. But each feature, impossible to implement without source texts changing, ust be described.
> 
> I wouldn't consider this to be optional. This is easy to implement and hugely useful (this puts Forth ahead of C).

Note that rquotations are for Traditional Forth which is a simple Forth standard. These are easy to implement. By comparison, fat-xt quotations are for Straight Forth. These require a 64-bit cell so there is room for both the cfa and the local-frame pointer in one cell.

An RQ is not the same as an XT --- an RQ is not known at compile-time.

Earlier I gave this list of new functions:

7.) We need the following words: 
    VOCNO@ ( xt -- vocno ) 
    SMUDGE@ ( xt -- smudged? ) 
    SMUDGEABLE@ ( xt -- smudge-ready? ) 
    IMMEDIATE@ ( xt -- immediate? ) 
    VOCNO! ( vocno xt -- ) 
    SMUDGE! ( flag xt -- ) 
    SMUDGEABLE! ( flag xt -- ) 
    IMMEDIATE! ( flag xt -- ) 
    LATEST ( -- xt )  \ the latest definition compiled 
    DICTIONARY-TRAVERSE ( xt -- )  \ execute the XT for every dictionary entry, giving it the xt of the entry 
    :NAME ( vocno -- )  \string: name --  \ like colon except uses NAME as the name and puts the word in the VOCNO vocabulary 

Note that these take an XT as a parameter. They can't be given an RQ because an RQ and an XT are different. This list was for Traditional Forth that would have rquotations.

In Straight Forth there would be fat-xt quotations. There would be no such thing as an RQ but both colon words and quotations have an xt. So, we would need the addition of this function:

    QUOTATION@ ( xt -- flag )  \ true for a quotation or false for a colon word

Note that there is no QUOTATION! because we can't change a word from being a colon word to being a quotation, or vice-versa.

[toc] | [prev] | [next] | [standalone]


#57425

FromAlex <alex@rivadpm.com>
Date2017-04-16 09:07 +0100
Message-ID<ocv8hv$u10$1@dont-email.me>
In reply to#57401
On 4/16/2017 01:18, hughaguilar96@gmail.com wrote:
> Note that rquotations are for Traditional Forth which is a simple
> Forth standard. These are easy to implement. By comparison, fat-xt 
> quotations are for Straight Forth. These require a 64-bit cell so
> there is room for both  the cfa and the local-frame pointer in one cell.>
> An RQ is not the same as an XT --- an RQ is not known at 
> compile-time.
> 
> Earlier I gave this list of new functions:
> 
> 7.) We need the following words: VOCNO@ ( xt -- vocno ) SMUDGE@ ( xt
> -- smudged? ) SMUDGEABLE@ ( xt -- smudge-ready? ) IMMEDIATE@ ( xt --
> immediate? ) VOCNO! ( vocno xt -- ) SMUDGE! ( flag xt -- ) 
> SMUDGEABLE! ( flag xt -- ) IMMEDIATE! ( flag xt -- ) LATEST ( -- xt )
> \ the latest definition compiled DICTIONARY-TRAVERSE ( xt -- )  \
> execute the XT for every dictionary entry, giving it the xt of the
> entry :NAME ( vocno -- )  \string: name --  \ like colon except uses
> NAME as the name and puts the word in the VOCNO vocabulary
> 
> Note that these take an XT as a parameter. They can't be given an RQ
> because an RQ and an XT are different. This list was for Traditional
> Forth that would have rquotations.
> 
> In Straight Forth there would be fat-xt quotations. There would be
> no such thing as an RQ but both colon words and quotations have an
> xt. So, we would need the addition of this function:
> 
> QUOTATION@ ( xt -- flag )  \ true for a quotation or false for a 
> colon word
> 
> Note that there is no QUOTATION! because we can't change a word from 
> being a colon word to being a quotation, or vice-versa.

This is all implementation again. What you are doing here is starting 
from the wrong place, and then building a huge baroque structure over 
the top of it; it is largely unintelligible to anyone except you.

We've waited for a number of years now (five? more?) for the promised 
StraightForth to see the light of day as a standard, and all you post is 
fragments of unworkable implementation.

-- 
Alex

[toc] | [prev] | [next] | [standalone]


Page 3 of 4 — ← Prev page 1 2 [3] 4  Next page →

Back to top | Article view | comp.lang.forth


csiph-web