Rocksolid Light

Welcome to novaBBS (click a section below)

mail  files  register  newsreader  groups  login

Message-ID:  

The test of intelligent tinkering is to save all the parts. -- Aldo Leopold


devel / comp.lang.forth / Not really locals

SubjectAuthor
* Not really localsPaul Rubin
+* Re: Not really localsPaul Rubin
|`- Re: Not really localsHans Bezemer
+- Re: Not really localsMarcel Hendrix
+* Re: Not really localsAnton Ertl
|+- Re: Not really localsP Falth
|`* Re: Not really localsdxforth
| +* Re: Not really localsPaul Rubin
| |`* Re: Not really localsdxforth
| | `* Re: Not really localsPaul Rubin
| |  +* Re: Not really localsMarcel Hendrix
| |  |`- Re: Not really localsAnton Ertl
| |  +* Re: Not really localsdxforth
| |  |`- Re: Not really localsPaul Rubin
| |  `* Re: Not really localsAndy Valencia
| |   `* Re: Not really localsdxforth
| |    `* Re: Not really localsPaul Rubin
| |     `* Re: Not really localsdxforth
| |      `* Re: Not really localsPaul Rubin
| |       `- Re: Not really localsdxforth
| `* Re: Not really localsDoug Hoffman
|  `* Re: Not really localsPaul Rubin
|   `* Re: Not really localsAnton Ertl
|    +* Re: Not really localsDoug Hoffman
|    |`- Re: Not really localsAnton Ertl
|    `* Re: Not really localsPaul Rubin
|     +* Re: Not really localsdxforth
|     |`* Re: Not really localsPaul Rubin
|     | +* Re: Not really localsdxforth
|     | |`- Re: Not really localsPaul Rubin
|     | +* Re: Not really localsHans Bezemer
|     | |+* Re: Not really localsHugh Aguilar
|     | ||`* Re: Not really localsdxforth
|     | || `* Re: Not really localsHugh Aguilar
|     | ||  `* Re: Not really localsdxforth
|     | ||   `* Re: Not really localsHugh Aguilar
|     | ||    `- Re: Not really localsdxforth
|     | |`* Re: Not really localsPaul Rubin
|     | | `* Re: Not really localsdxforth
|     | |  `* Re: Not really localsPaul Rubin
|     | |   +- Re: Not really localsdxforth
|     | |   +- Re: Not really localsHugh Aguilar
|     | |   `* Re: Not really localsdxforth
|     | |    `* Re: Not really localsPaul Rubin
|     | |     `* Re: Not really localsdxforth
|     | |      `* Re: Not really localsPaul Rubin
|     | |       `* Re: Not really localsdxforth
|     | |        `* Re: Not really localsPaul Rubin
|     | |         `* Re: Not really localsHans Bezemer
|     | |          +* Re: Not really localsminf...@arcor.de
|     | |          |`* Re: Not really localsdxforth
|     | |          | +- Re: Not really localsminf...@arcor.de
|     | |          | `- Re: Not really localsHans Bezemer
|     | |          +* Re: Not really localsPaul Rubin
|     | |          |`* Re: Not really localsdxforth
|     | |          | `* Re: Not really localsPaul Rubin
|     | |          |  +* Re: Not really localsdxforth
|     | |          |  |+* Re: Not really localsS Jack
|     | |          |  ||`- Re: Not really localsHugh Aguilar
|     | |          |  |`- Re: Not really localsPaul Rubin
|     | |          |  `* Re: Not really localsdxforth
|     | |          |   +* Re: Not really localsPaul Rubin
|     | |          |   |+- Re: Not really localsdxforth
|     | |          |   |`* Re: Not really localsHans Bezemer
|     | |          |   | `* Re: Not really localsHans Bezemer
|     | |          |   |  +* Re: Not really localsPaul Rubin
|     | |          |   |  |+- Re: Not really localsPaul Rubin
|     | |          |   |  |`* Re: Not really localsminf...@arcor.de
|     | |          |   |  | +* Re: Not really localsPaul Rubin
|     | |          |   |  | |`* Re: Not really localsHans Bezemer
|     | |          |   |  | | +* Re: Not really localsdxforth
|     | |          |   |  | | |`- Re: Not really localsdxforth
|     | |          |   |  | | `* Re: Not really localsPaul Rubin
|     | |          |   |  | |  +* Re: Not really localsHans Bezemer
|     | |          |   |  | |  |`- Re: Not really localsPaul Rubin
|     | |          |   |  | |  `- Re: Not really localsdxforth
|     | |          |   |  | `* Re: Not really localsAndy Valencia
|     | |          |   |  |  +* Re: Not really localsMarcel Hendrix
|     | |          |   |  |  |+- Re: Not really localsAnton Ertl
|     | |          |   |  |  |`- Re: Not really localsS Jack
|     | |          |   |  |  +* Re: Not really localsAndy Valencia
|     | |          |   |  |  |+- Re: Not really localsdxforth
|     | |          |   |  |  |+* Re: Not really localsMarcel Hendrix
|     | |          |   |  |  ||`- Re: Not really localsminf...@arcor.de
|     | |          |   |  |  |`- Re: Not really localsAndy Valencia
|     | |          |   |  |  `* Re: Not really localsHans Bezemer
|     | |          |   |  |   `* Re: Not really localsPaul Rubin
|     | |          |   |  |    +* Re: Not really localsAnton Ertl
|     | |          |   |  |    |`* Re: Not really localsHans Bezemer
|     | |          |   |  |    | +* Re: Not really localsPaul Rubin
|     | |          |   |  |    | |+- Re: Not really localsdxforth
|     | |          |   |  |    | |+* static type checking (was: Not really locals)Anton Ertl
|     | |          |   |  |    | ||`- Re: static type checkingPaul Rubin
|     | |          |   |  |    | |`* Re: Not really localsS Jack
|     | |          |   |  |    | | +- Re: Not really localsDoug Hoffman
|     | |          |   |  |    | | `- Re: Not really localsdxforth
|     | |          |   |  |    | `* Re: Not really localsAnton Ertl
|     | |          |   |  |    |  +- Re: Not really localsHans Bezemer
|     | |          |   |  |    |  `* Re: Not really localsPaul Rubin
|     | |          |   |  |    |   +* Re: Not really localsHans Bezemer
|     | |          |   |  |    |   |`- Re: Not really localsdxforth
|     | |          |   |  |    |   +* Re: Not really localsS Jack
|     | |          |   |  |    |   `- Re: Not really localsdxforth
|     | |          |   |  |    `* Re: Not really localsdxforth
|     | |          |   |  `* Re: Not really localsdxforth
|     | |          |   `- Re: Not really localsAnton Ertl
|     | |          `* Re: Not really localsRuvim
|     | +- Re: Not really localsMarcel Hendrix
|     | `- Re: Not really localsMarcel Hendrix
|     `* Re: Not really localsAnton Ertl
+* Re: Not really localsS Jack
`- Re: Not really localsHugh Aguilar

Pages:1234567
Not really locals

<87mtp3ux27.fsf@nightsong.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Not really locals
Date: Fri, 27 Aug 2021 01:11:12 -0700
Organization: A noiseless patient Spider
Lines: 32
Message-ID: <87mtp3ux27.fsf@nightsong.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="e615cd9123282cdf3a8c71acaace45af";
logging-data="31517"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19CjSTOM8iB2/xW1twgWHfh"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Cancel-Lock: sha1:MkzPtKho+IpoehIZ94HyoNDXr7o=
sha1:LGDrOj+UG0b4EdKWYvMfB3OtQHs=
 by: Paul Rubin - Fri, 27 Aug 2021 08:11 UTC

Hope this doesn't trigger too much of a hate fest: how does this unholy
mix of Erlang and Unix shell syntax sound as a concession to wanting
re-usable args to functions, while keeping Forth's conciseness?

Basically you could postfix a function name with /n where n is a number
of arguments, e.g.:

: sumsq/2 .... ;

would create function SUMSQ which is declared to take two args, which
would automatically be transferred from the DS to the RS (with a frame
pointer kept), and you'd access them with $1, $2, etc. At the end they
would be cleaned up similar to locals. So for sum of squares you could
write

: sumsq/2 $1 $1 * $2 $2 * + ;

Alternatively the bindings could be A,B,C, etc., or the /n syntax could
go on the colon rather than the function name:

:/2 sumsq $1 $1 * $2 $2 * + ;

That would just be a matter of having words : :/1 :/2 etc., up to a
maximum of maybe 5 or 6.

This should be pretty easy to implement, and not cost anything at
runtime unless you actually use it.

The :/2 version could also work for quotations: [:/2 .... ;]. As
before, code inside the quotation would not have to be able to access
the parent's "locals", though maybe some provision could be made for
that.

Re: Not really locals

<87ilzruwzb.fsf@nightsong.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Fri, 27 Aug 2021 01:12:56 -0700
Organization: A noiseless patient Spider
Lines: 5
Message-ID: <87ilzruwzb.fsf@nightsong.com>
References: <87mtp3ux27.fsf@nightsong.com>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="e615cd9123282cdf3a8c71acaace45af";
logging-data="31517"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19ulaU7Uqbd3EFBc5YhQ8Ny"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Cancel-Lock: sha1:tEfkZ1HnbqQJw3VuA8ykG+JVjjc=
sha1:dn/3At2oWrVgjJkXW4KfIyvLaGs=
 by: Paul Rubin - Fri, 27 Aug 2021 08:12 UTC

Paul Rubin <no.email@nospam.invalid> writes:
> pointer kept), and you'd access them with $1, $2, etc.

Oops, obviously $1, $2 etc. is bad since that syntax is already used for
hex constants. Maybe ^1, ^2, etc.

Re: Not really locals

<f272bc26-7c96-4d57-8f09-97bd3f7f1f0an@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:688f:: with SMTP id d137mr8117361qkc.3.1630058420020;
Fri, 27 Aug 2021 03:00:20 -0700 (PDT)
X-Received: by 2002:ac8:43d6:: with SMTP id w22mr7558176qtn.92.1630058419788;
Fri, 27 Aug 2021 03:00:19 -0700 (PDT)
Path: i2pn2.org!i2pn.org!news.uzoreto.com!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: Fri, 27 Aug 2021 03:00:19 -0700 (PDT)
In-Reply-To: <87mtp3ux27.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=80.255.245.238; posting-account=-JQ2RQoAAAB6B5tcBTSdvOqrD1HpT_Rk
NNTP-Posting-Host: 80.255.245.238
References: <87mtp3ux27.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f272bc26-7c96-4d57-8f09-97bd3f7f1f0an@googlegroups.com>
Subject: Re: Not really locals
From: mhx...@iae.nl (Marcel Hendrix)
Injection-Date: Fri, 27 Aug 2021 10:00:20 +0000
Content-Type: text/plain; charset="UTF-8"
X-Received-Bytes: 1430
 by: Marcel Hendrix - Fri, 27 Aug 2021 10:00 UTC

On Friday, August 27, 2021 at 10:11:16 AM UTC+2, Paul Rubin wrote:
> [...] a concession to wanting
> re-usable args to functions, while keeping Forth's conciseness?

This is 'only' syntax unless you mean something special with 're-usable'?
LOCAL names are already 're-usable', and if worried about being them too
specific, we can simply always call them x, y, z ... :--)

-marcel

Re: Not really locals

<2021Aug27.121151@mips.complang.tuwien.ac.at>

  copy mid

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

  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: Not really locals
Date: Fri, 27 Aug 2021 10:11:51 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 58
Message-ID: <2021Aug27.121151@mips.complang.tuwien.ac.at>
References: <87mtp3ux27.fsf@nightsong.com>
Injection-Info: reader02.eternal-september.org; posting-host="c7186496f997e847cab40f2f27332733";
logging-data="5062"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18yiR+xLBFhy/SWpBrrKELU"
Cancel-Lock: sha1:hw5HP8yORsZRFgAey9IJcjujdJA=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Fri, 27 Aug 2021 10:11 UTC

Paul Rubin <no.email@nospam.invalid> writes:
>Basically you could postfix a function name with /n where n is a number
>of arguments, e.g.:
>
> : sumsq/2 .... ;
>
>would create function SUMSQ which is declared to take two args, which
>would automatically be transferred from the DS to the RS (with a frame
>pointer kept), and you'd access them with $1, $2, etc. At the end they
>would be cleaned up similar to locals. So for sum of squares you could
>write
>
> : sumsq/2 $1 $1 * $2 $2 * + ;

: /2 postpone 2>r ; immediate
: ^1 postpone i' ; immediate
: ^2 postpone r@ ; immediate
: sumsq /2 ^1 ^1 * ^2 ^2 * + 2rdrop ;

That's without frame pointer, so you cannot use ^1 ^2 while something
else is on the return stack, e.g., loop parameters. You also need I'
(the second return stack item), and if you also have /1, /3, etc., the
implementation of ^1 etc. becomes more complex (at least if you want
the order to be with the highest number on the top-of-stack).

>This should be pretty easy to implement, and not cost anything at
>runtime unless you actually use it.

While implementation effort may have been the original reason for not
implementing locals, the rejection of locals has become a dogma among
many who reject them. Something that smells remotely like locals will
not be acceptable to those who reject them, and the reason given will
be, as always, that it is more complex than having no locals.

We know how to implement proper locals, so the limitations of the
scheme will not win the heart of those who accept locals.

Locals don't cost either when you don't use them. They also do not
necessarily cost when you use them. lxf/ntf is pretty close to that,
but, at least for the sumsq example, not quite there yet.

: sumsq1 dup * swap dup * + ; : sumsq2 {: a b :} a a * b b * + ;
see sumsq1 see sumsq2
mov eax , ebx mov eax , [ebp]
imul eax , ebx imul eax , dword [ebp]
mov ebx , [ebp] mov ecx , ebx
imul ebx , dword [ebp] imul ecx , ebx
add ebx , eax add eax , ecx
lea ebp , [ebp+4h] mov ebx , eax
ret near lea ebp , [ebp+4h]
ret near

- 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 2021: https://euro.theforth.net/2021

Re: Not really locals

<23606135-4684-413c-8b64-5e3699122e4en@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ae9:f50a:: with SMTP id o10mr9333728qkg.387.1630069509763;
Fri, 27 Aug 2021 06:05:09 -0700 (PDT)
X-Received: by 2002:a37:506:: with SMTP id 6mr8927189qkf.15.1630069509321;
Fri, 27 Aug 2021 06:05:09 -0700 (PDT)
Path: i2pn2.org!i2pn.org!weretis.net!feeder6.news.weretis.net!news.snarked.org!border2.nntp.dca1.giganews.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 27 Aug 2021 06:05:09 -0700 (PDT)
In-Reply-To: <2021Aug27.121151@mips.complang.tuwien.ac.at>
Injection-Info: google-groups.googlegroups.com; posting-host=2a01:2000:2001:46bc:7ce9:d8b0:ca07:a4f;
posting-account=ryzhhAoAAAAIqf1uqmG9E4uP1Bagd-k2
NNTP-Posting-Host: 2a01:2000:2001:46bc:7ce9:d8b0:ca07:a4f
References: <87mtp3ux27.fsf@nightsong.com> <2021Aug27.121151@mips.complang.tuwien.ac.at>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <23606135-4684-413c-8b64-5e3699122e4en@googlegroups.com>
Subject: Re: Not really locals
From: peter.m....@gmail.com (P Falth)
Injection-Date: Fri, 27 Aug 2021 13:05:09 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 119
 by: P Falth - Fri, 27 Aug 2021 13:05 UTC

On Friday, 27 August 2021 at 12:56:20 UTC+2, Anton Ertl wrote:
> Paul Rubin <no.e...@nospam.invalid> writes:
> >Basically you could postfix a function name with /n where n is a number
> >of arguments, e.g.:
> >
> > : sumsq/2 .... ;
> >
> >would create function SUMSQ which is declared to take two args, which
> >would automatically be transferred from the DS to the RS (with a frame
> >pointer kept), and you'd access them with $1, $2, etc. At the end they
> >would be cleaned up similar to locals. So for sum of squares you could
> >write
> >
> > : sumsq/2 $1 $1 * $2 $2 * + ;
> : /2 postpone 2>r ; immediate
> : ^1 postpone i' ; immediate
> : ^2 postpone r@ ; immediate
> : sumsq /2 ^1 ^1 * ^2 ^2 * + 2rdrop ;
>
> That's without frame pointer, so you cannot use ^1 ^2 while something
> else is on the return stack, e.g., loop parameters. You also need I'
> (the second return stack item), and if you also have /1, /3, etc., the
> implementation of ^1 etc. becomes more complex (at least if you want
> the order to be with the highest number on the top-of-stack).
> >This should be pretty easy to implement, and not cost anything at
> >runtime unless you actually use it.
> While implementation effort may have been the original reason for not
> implementing locals, the rejection of locals has become a dogma among
> many who reject them. Something that smells remotely like locals will
> not be acceptable to those who reject them, and the reason given will
> be, as always, that it is more complex than having no locals.
>
> We know how to implement proper locals, so the limitations of the
> scheme will not win the heart of those who accept locals.
>
> Locals don't cost either when you don't use them. They also do not
> necessarily cost when you use them. lxf/ntf is pretty close to that,
> but, at least for the sumsq example, not quite there yet.
>
> : sumsq1 dup * swap dup * + ; : sumsq2 {: a b :} a a * b b * + ;
> see sumsq1 see sumsq2
> mov eax , ebx mov eax , [ebp]
> imul eax , ebx imul eax , dword [ebp]
> mov ebx , [ebp] mov ecx , ebx
> imul ebx , dword [ebp] imul ecx , ebx
> add ebx , eax add eax , ecx
> lea ebp , [ebp+4h] mov ebx , eax
> ret near lea ebp , [ebp+4h]
> ret near

Better to swap a and b to be more comparable like

: sumsq1 dup * swap dup * + ;
see sumsq1
86926C8 80506BC 18 88C8000 5 normal SUMSQ1

80506BC 8BC3 mov eax , ebx
80506BE 0FAFC3 imul eax , ebx
80506C1 8B5D00 mov ebx , [ebp]
80506C4 0FAF5D00 imul ebx , dword [ebp]
80506C8 01C3 add ebx , eax
80506CA 8D6D04 lea ebp , [ebp+4h]
80506CD C3 ret near
ok

: sumsq3 {: b a :} a a * b b * + ; ok
see sumsq3
86926F8 80506E2 20 88C8000 5 normal SUMSQ3

80506E2 8BC3 mov eax , ebx
80506E4 0FAFC3 imul eax , ebx
80506E7 8B4D00 mov ecx , [ebp]
80506EA 0FAF4D00 imul ecx , dword [ebp]
80506EE 01C8 add eax , ecx
80506F0 8BD8 mov ebx , eax
80506F2 8D6D04 lea ebp , [ebp+4h]
80506F5 C3 ret near
ok

Here we can see that the difference come from the local version using
an extra register. It does this as the scope of the locals are till the end of
the definition. in the stack version ebx can be reused as it is not needed
after the result is placed in eax. In the local version it needs to be kept
until the end. mov ebx, eax is generated by ; to get the stack to a known state.

Personally I do not use locals in my FORTH programming. They are there in
my systems so I can import others code.

I do have anther feature that I use. Local buffers. used like this example
from a socket implementation

0 \ sockaddr
2 chars +field family
2 chars +field port
4 chars +field addr
8 chars +field zero
constant sockaddr

: connect-socket ( addr port family sid -- ior ) \ connect
sockaddr lbuffer: sock
sock sockaddr erase
swap sock family w! \ store AF_INET
swap htons sock port w! \ store port
swap sock addr ! \ store addr
sockaddr sock rot (connect) 0<> -273 and ; \ connect

lbuffer: will take a known lenght and allocate that many bytes
on the returnstack. from there on it can be accessed with the usual
Forth words (w! stors a word, 2 bytes)

BR
Peter

> - 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 2021: https://euro.theforth.net/2021

Re: Not really locals

<f738ecec-37e5-4a33-ad98-b7c047364ff3n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:634d:: with SMTP id x74mr9524889qkb.453.1630080370054; Fri, 27 Aug 2021 09:06:10 -0700 (PDT)
X-Received: by 2002:a37:a2c6:: with SMTP id l189mr9733973qke.109.1630080369845; Fri, 27 Aug 2021 09:06:09 -0700 (PDT)
Path: i2pn2.org!rocksolid2!news.neodome.net!news.theuse.net!aioe.org!feeder1.feed.usenet.farm!feed.usenet.farm!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr3.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 27 Aug 2021 09:06:09 -0700 (PDT)
In-Reply-To: <87mtp3ux27.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2600:1700:3f7a:20d0:6527:2992:8eba:f4ee; posting-account=V5nGoQoAAAC_P2U0qnxm2kC0s1jNJXJa
NNTP-Posting-Host: 2600:1700:3f7a:20d0:6527:2992:8eba:f4ee
References: <87mtp3ux27.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <f738ecec-37e5-4a33-ad98-b7c047364ff3n@googlegroups.com>
Subject: Re: Not really locals
From: sdwjac...@gmail.com (S Jack)
Injection-Date: Fri, 27 Aug 2021 16:06:10 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 40
 by: S Jack - Fri, 27 Aug 2021 16:06 UTC

On Friday, August 27, 2021 at 3:11:16 AM UTC-5, Paul Rubin wrote:
> Hope this doesn't trigger too much of a hate fest: how does this unholy
> mix of Erlang and Unix shell syntax sound as a concession to wanting
> re-usable args to functions, while keeping Forth's conciseness?

Doesn't bother me.
[r] SET Parameter lists

SET ( a -- )
Save old $P (on rack) and store address a in $P.
After resile, restore $P.
$0..$9 parameters accessed as values
&0..&9 parameters accessed as variables
$X0..$X9 parameters accessed as executable words

Very flexible, $P can point to memory or either stack. Works
very well with BUILD DOES :

: bar: build does SET
&2 \ address of remaining parm cells
$1 \ number of parm cells
0 ?do dup
$X0 \ print parm value
CELL+ \ bump parm address
loop
drop
;

bar: foo ' ? ,
3 , 10 , 20 , 30 ,

: ?% @ 0 <# asc % hold #S #> type space ;
bar: koo ' ?% ,
4 , 90 , 80 , 70 , 60 ,

cr foo \ => 10 20 30
cr koo \ => 90% 80% 70% 60%

--.
--
me

Re: Not really locals

<2021Aug27.182838@mips.complang.tuwien.ac.at>

  copy mid

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

  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: Not really locals
Date: Fri, 27 Aug 2021 16:28:38 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 47
Message-ID: <2021Aug27.182838@mips.complang.tuwien.ac.at>
References: <87mtp3ux27.fsf@nightsong.com> <f738ecec-37e5-4a33-ad98-b7c047364ff3n@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="c7186496f997e847cab40f2f27332733";
logging-data="15872"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19YO9hdkjLan8r3NruDrr6l"
Cancel-Lock: sha1:o0t8xtBZ94067hjiVmjYPVtZ5yY=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Fri, 27 Aug 2021 16:28 UTC

S Jack <sdwjack69@gmail.com> writes:
> $0..$9 parameters accessed as values
> &0..&9 parameters accessed as variables
> $X0..$X9 parameters accessed as executable words

It's interesting that you have the $X parameters. Bernd Paysan added
the executable-flavoured locals (using the XT: definer) when implementing
Knuth's man-or-boy-test. In the meantime we have found other uses, so
it turned out to be generally useful.

Gforth has had variable-flavoured locals since it has had locals, but
I have rarely used it.

Here is a contrived example:

: foo {: val w^ var xt: x :} val . var @ x ;
1 2 ' . foo \ prints "1 2"

> Very flexible, $P can point to memory or either stack. Works
> very well with BUILD DOES :
>
> : bar: build does SET
> &2 \ address of remaining parm cells
> $1 \ number of parm cells
> 0 ?do dup
> $X0 \ print parm value
> CELL+ \ bump parm address
> loop
> drop
> ;
>
> bar: foo ' ? ,
> 3 , 10 , 20 , 30 ,

That's an interesting use. Dealing with multiple data passed from
create-time to does>-time has always been cumbersome in Forth. I have
suggested CONST-DOES> for that a long time ago, but it did not catch
on. More recently Gforth's closures provide a way to do it (and it's
available); they do not provide particular support for the stuff you
do here (with variable-sized data accessed in a loop), though.

- 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 2021: https://euro.theforth.net/2021

Re: Not really locals

<3ed25abc-5eb8-4cc3-bffa-a179049d48cdn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a37:e315:: with SMTP id y21mr8894296qki.70.1630115991862; Fri, 27 Aug 2021 18:59:51 -0700 (PDT)
X-Received: by 2002:ac8:7352:: with SMTP id q18mr11113349qtp.5.1630115991726; Fri, 27 Aug 2021 18:59:51 -0700 (PDT)
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!tr3.eu1.usenetexpress.com!feeder.usenetexpress.com!tr2.iad1.usenetexpress.com!border1.nntp.dca1.giganews.com!border2.nntp.dca1.giganews.com!nntp.giganews.com!news-out.google.com!nntp.google.com!postnews.google.com!google-groups.googlegroups.com!not-for-mail
Newsgroups: comp.lang.forth
Date: Fri, 27 Aug 2021 18:59:51 -0700 (PDT)
In-Reply-To: <87mtp3ux27.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:579:8018:1b00:482a:f4bb:9a73:707e; posting-account=OxDKOgoAAADW0cxAqHqpN1zqeCoSsDap
NNTP-Posting-Host: 2001:579:8018:1b00:482a:f4bb:9a73:707e
References: <87mtp3ux27.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <3ed25abc-5eb8-4cc3-bffa-a179049d48cdn@googlegroups.com>
Subject: Re: Not really locals
From: hughagui...@gmail.com (Hugh Aguilar)
Injection-Date: Sat, 28 Aug 2021 01:59:51 +0000
Content-Type: text/plain; charset="UTF-8"
Lines: 7
 by: Hugh Aguilar - Sat, 28 Aug 2021 01:59 UTC

On Friday, August 27, 2021 at 1:11:16 AM UTC-7, Paul Rubin wrote:
> As
> before, code inside the quotation would not have to be able to access
> the parent's "locals", though maybe some provision could be made for
> that.

Really??? Pray tell, what provision might that be?
Are you planning on inventing rquotations?

Re: Not really locals

<sgf5k8$1h36$1@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Sun, 29 Aug 2021 15:23:20 +1000
Organization: Aioe.org NNTP Server
Message-ID: <sgf5k8$1h36$1@gioia.aioe.org>
References: <87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="50278"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
Content-Language: en-GB
X-Notice: Filtered by postfilter v. 0.9.2
 by: dxforth - Sun, 29 Aug 2021 05:23 UTC

On 27/08/2021 20:11, Anton Ertl wrote:
> ...
> Locals don't cost either when you don't use them. They also do not
> necessarily cost when you use them. lxf/ntf is pretty close to that,
> but, at least for the sumsq example, not quite there yet.

Just because lxf/ntf can reduce locals to the point where they're
indistinguishable from stack operations doesn't mean one is justified
using them. If locals are as good as stack operations, why bother
with forth at all.

I recently reviewed some forth code which demonstrated all the traits of
a beginner - which I suspect even lxf/ntf would be unable to optimize away.
Should the beginner simply give up and use locals instead? Sorry, but
I completely reject the sentiment it's ok to use locals in forth. Forth
encourages one to think; to break up problems into sensible factors.
And that's a good thing. The cost of locals is that you don't think.

Re: Not really locals

<87bl5gvmxi.fsf@nightsong.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Sat, 28 Aug 2021 22:29:13 -0700
Organization: A noiseless patient Spider
Lines: 15
Message-ID: <87bl5gvmxi.fsf@nightsong.com>
References: <87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="2e821b81dfe8efa6e0262edd6c5e6fb3";
logging-data="6813"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18ihBzpvLFQNyJ/ofcAB62T"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Cancel-Lock: sha1:69aaWu4mC3iYgXJu8bFylGlDuGM=
sha1:ojLXQ1gpCXPHjM6QWiR7kT29GqA=
 by: Paul Rubin - Sun, 29 Aug 2021 05:29 UTC

dxforth <dxforth@gmail.com> writes:
> If locals are as good as stack operations, why bother with forth at all.

Isn't it the other way around? If locals are as good as stack
operations, there's less reason to use something like C.

> I completely reject the sentiment it's ok to use locals in forth. Forth
> encourages one to think; to break up problems into sensible factors.
> And that's a good thing. The cost of locals is that you don't think.

If stopping to think is gaining me something in terms of code clarity or
organization, that's great. But if it's just slowing me down and
introducing mistakes in my code, I'm better off coding by instinct, and
locals do seem to help with that. See also: "Thinking Fast and Slow" by
Daniel Kahneman.

Re: Not really locals

<sgf823$8io$1@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Sun, 29 Aug 2021 16:04:51 +1000
Organization: Aioe.org NNTP Server
Message-ID: <sgf823$8io$1@gioia.aioe.org>
References: <87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at> <sgf5k8$1h36$1@gioia.aioe.org>
<87bl5gvmxi.fsf@nightsong.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="8792"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
Content-Language: en-GB
X-Notice: Filtered by postfilter v. 0.9.2
 by: dxforth - Sun, 29 Aug 2021 06:04 UTC

On 29/08/2021 15:29, Paul Rubin wrote:
> dxforth <dxforth@gmail.com> writes:
>> If locals are as good as stack operations, why bother with forth at all.
>
> Isn't it the other way around? If locals are as good as stack
> operations, there's less reason to use something like C.

The world has given its verdict on that one.

>
>> I completely reject the sentiment it's ok to use locals in forth. Forth
>> encourages one to think; to break up problems into sensible factors.
>> And that's a good thing. The cost of locals is that you don't think.
>
> If stopping to think is gaining me something in terms of code clarity or
> organization, that's great. But if it's just slowing me down and
> introducing mistakes in my code, I'm better off coding by instinct, and
> locals do seem to help with that. See also: "Thinking Fast and Slow" by
> Daniel Kahneman.
>

One could also use the analogy of commuter and race car drivers.
I don't feel forth is holding me back - on the contrary, I find it
exhilarating. Which wouldn't be the case were I making errors.

Re: Not really locals

<877dg4vj1h.fsf@nightsong.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Sat, 28 Aug 2021 23:53:14 -0700
Organization: A noiseless patient Spider
Lines: 9
Message-ID: <877dg4vj1h.fsf@nightsong.com>
References: <87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com>
<sgf823$8io$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="2e821b81dfe8efa6e0262edd6c5e6fb3";
logging-data="32170"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18p1qt+wJ2OM2W+7coVmxgu"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Cancel-Lock: sha1:03Syc96fcBjI3CN3Sbi1Yv/5iN8=
sha1:BquDxhmcvhGS1yNVGQVLXEMDBbo=
 by: Paul Rubin - Sun, 29 Aug 2021 06:53 UTC

dxforth <dxforth@gmail.com> writes:
> I don't feel forth is holding me back - on the contrary, I find it
> exhilarating. Which wouldn't be the case were I making errors.

Interesting. I don't feel like Forth exactly holds me back, but I do
feel like it slows me down. Maybe that is a matter of developing
reflexes for it. But I've looked at Forth code written by experts and
it is often full of confusing stack juggling, just as code written by
beginners notoriously is.

Re: Not really locals

<fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:ae9:f70e:: with SMTP id s14mr18016911qkg.38.1630226746240;
Sun, 29 Aug 2021 01:45:46 -0700 (PDT)
X-Received: by 2002:a05:622a:1309:: with SMTP id v9mr15665249qtk.12.1630226746104;
Sun, 29 Aug 2021 01:45:46 -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: Sun, 29 Aug 2021 01:45:45 -0700 (PDT)
In-Reply-To: <877dg4vj1h.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=2001:1c05:2f14:600:ad2e:f17e:cbe0:3cbe;
posting-account=-JQ2RQoAAAB6B5tcBTSdvOqrD1HpT_Rk
NNTP-Posting-Host: 2001:1c05:2f14:600:ad2e:f17e:cbe0:3cbe
References: <87mtp3ux27.fsf@nightsong.com> <2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com>
<sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com>
Subject: Re: Not really locals
From: mhx...@iae.nl (Marcel Hendrix)
Injection-Date: Sun, 29 Aug 2021 08:45:46 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Marcel Hendrix - Sun, 29 Aug 2021 08:45 UTC

On Sunday, August 29, 2021 at 8:53:16 AM UTC+2, Paul Rubin wrote:
> dxforth <dxf...@gmail.com> writes:
> > I don't feel forth is holding me back - on the contrary, I find it
> > exhilarating. Which wouldn't be the case were I making errors.
> Interesting. I don't feel like Forth exactly holds me back, but I do
> feel like it slows me down. Maybe that is a matter of developing
> reflexes for it.

Forth may drag one down a little when trying to do the same things
*in the same way as profane programmers are doing it.* However,
in case one is a relative expert in some field, non-conventional
approaches to standard problems become apparent. In Forth it is
easy to implement and test such ideas. At this level it is natural
to aim for the simplest and most direct way to do things ('Elegance
is for tailors!"). Using pointers to structures full of pointers to
opaque other structures is not likely to happen. Even
introducing a local to rotate 3 variables might be considered a
nuisance / unnecessary / unbearable distraction.

> But I've looked at Forth code written by experts and
> it is often full of confusing stack juggling, just as code
> written by beginners notoriously is.

The keyword is 'confusing.' To whom? E.g., one of the things one
can't normally do with a local is taking its address (and if it's
possible we may have to allocate/deallocate). There are also
issues with run-time code generation and compile/interpret time.

-marcel

Re: Not really locals

<sgfsq4$o8d$1@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Sun, 29 Aug 2021 21:59:00 +1000
Organization: Aioe.org NNTP Server
Message-ID: <sgfsq4$o8d$1@gioia.aioe.org>
References: <87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at> <sgf5k8$1h36$1@gioia.aioe.org>
<87bl5gvmxi.fsf@nightsong.com> <sgf823$8io$1@gioia.aioe.org>
<877dg4vj1h.fsf@nightsong.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="24845"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Sun, 29 Aug 2021 11:59 UTC

On 29/08/2021 16:53, Paul Rubin wrote:
> dxforth <dxforth@gmail.com> writes:
>> I don't feel forth is holding me back - on the contrary, I find it
>> exhilarating. Which wouldn't be the case were I making errors.
>
> Interesting. I don't feel like Forth exactly holds me back, but I do
> feel like it slows me down. Maybe that is a matter of developing
> reflexes for it. But I've looked at Forth code written by experts and
> it is often full of confusing stack juggling, just as code written by
> beginners notoriously is.
>

It's news to me experts write code that qualifies as stack juggling.
Perhaps one is expecting more from forth than it was designed to give.
With respect, wouldn't it be better then to find a language which
satisfies one's needs, than butcher one which doesn't?

Re: Not really locals

<163024499011.7770.2275730012036574763@media.vsta.org>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!news.swapon.de!fu-berlin.de!uni-berlin.de!individual.net!not-for-mail
From: van...@vsta.org (Andy Valencia)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Sun, 29 Aug 2021 06:49:50 -0700
Lines: 13
Message-ID: <163024499011.7770.2275730012036574763@media.vsta.org>
References: <fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com> <87mtp3ux27.fsf@nightsong.com> <2021Aug27.121151@mips.complang.tuwien.ac.at> <sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com> <sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com>
X-Trace: individual.net 7IR4BwOcrQxRyDLMgLs3mQQKXl8s0kvuZiw115OEj1/KLhnaG4
X-Orig-Path: media
Cancel-Lock: sha1:URKmTJuxeJSb0KFHhvXNZSGnRn8=
User-Agent: rn.py v0.0.1
 by: Andy Valencia - Sun, 29 Aug 2021 13:49 UTC

Marcel Hendrix <mhx@iae.nl> writes:
> Forth may drag one down a little when trying to do the same things
> *in the same way as profane programmers are doing it.*

Of course, it's not an indictment to admit that a language quite
recognizable to its 1970's users has fallen behind some more modern
programming languages when measured on metrics like how it fails
in the face of programming errors, learning curve, availability of
modern ("batteries included") facilities, ....

Andy Valencia
Home page: https://www.vsta.org/andy/
To contact me: https://www.vsta.org/contact/andy.html

Re: Not really locals

<8735qsus9k.fsf@nightsong.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Sun, 29 Aug 2021 09:31:35 -0700
Organization: A noiseless patient Spider
Lines: 11
Message-ID: <8735qsus9k.fsf@nightsong.com>
References: <87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com>
<sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com>
<sgfsq4$o8d$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="2e821b81dfe8efa6e0262edd6c5e6fb3";
logging-data="5277"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18Iyt/obD2GMlqdX3bzs1Ge"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Cancel-Lock: sha1:GVxB0Zg6wHfuINMIln/toMWPT04=
sha1:yHO+gmCyuO8Q9LyAO/v2RVEVV90=
 by: Paul Rubin - Sun, 29 Aug 2021 16:31 UTC

dxforth <dxforth@gmail.com> writes:
> With respect, wouldn't it be better then to find a language which
> satisfies one's needs, than butcher one which doesn't?

I don't see butchering going on? Forth's design was closely entangled
with its early implementation methods, which in turn was dictated by the
hardware of the day. If the hardware changes, the trade-offs become
different. As another example, compile-to-flash is important for
resident MCU interpreters. Does that result in butchering Forth? I
don't think so. A few things have to be tweaked, but tweaking stuff as
required fits Forth perfectly well.

Re: Not really locals

<2021Aug29.174539@mips.complang.tuwien.ac.at>

  copy mid

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

  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: Not really locals
Date: Sun, 29 Aug 2021 15:45:39 GMT
Organization: Institut fuer Computersprachen, Technische Universitaet Wien
Lines: 93
Message-ID: <2021Aug29.174539@mips.complang.tuwien.ac.at>
References: <87mtp3ux27.fsf@nightsong.com> <2021Aug27.121151@mips.complang.tuwien.ac.at> <sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com> <sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com> <fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com>
Injection-Info: reader02.eternal-september.org; posting-host="2967707a536ac1918e421e1130f4a75b";
logging-data="12421"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18OlJyMOP61wFYl4d3v1bCv"
Cancel-Lock: sha1:vylVYxjtsauwIQp4Y7mEgDSSjbA=
X-newsreader: xrn 10.00-beta-3
 by: Anton Ertl - Sun, 29 Aug 2021 15:45 UTC

Marcel Hendrix <mhx@iae.nl> writes:
>Forth may drag one down a little when trying to do the same things
>*in the same way as profane programmers are doing it.*

I don't think that the religious terminology of Wil Baden is helpful.
And the emphasis of a dichotomy between Forth and other languages has
led to people rejecting (the use of) features just because other
languages have them. Features should be assessed by how useful the
are (or how much avoiding them costs) and how much they cost (in
implementation, but maybe also in use).

>However,
>in case one is a relative expert in some field, non-conventional
>approaches to standard problems become apparent. In Forth it is
>easy to implement and test such ideas. At this level it is natural
>to aim for the simplest and most direct way to do things ('Elegance
>is for tailors!").

The simplest and most direct way is elegant in my eyes.

However, the most direct way is often not very flexible when you want
to later extend the program. This is known in the wider programming
world as technical debt. Charles Moore advocated rewriting the
program in that case, the more conventional answer is to design the
program for extensibility. But even Charles Moore included general,
extensible mechanisms, foremost of all the dictionary, so I think it's
a good idea to keep both approaches in mind, and choose as
appropriate.

>Using pointers to structures full of pointers to
>opaque other structures is not likely to happen.

Wordlists containing threaded-code words?

But yes, such structures are more problematic in Forth than in most
other languages, because typical Forth debugging approaches work badly
for such structures, eliminating an advantage of Forth. So a Forth
programmer will tend to avoid such structures.

>Even
>introducing a local to rotate 3 variables might be considered a
>nuisance / unnecessary / unbearable distraction.

Do you mean

a @ b @ c @ rot c ! b ! a !

Why would one introduce a local to do that?

>> But I've looked at Forth code written by experts and
>> it is often full of confusing stack juggling, just as code
>> written by beginners notoriously is.
>
>The keyword is 'confusing.' To whom?

To Paul Rubin, obviously. Let's take a look at
<https://github.com/ForthHub/cmFORTH/blob/combined/cmforth.fth>:

( TRIM relocates the vocabulary link and erases the smudge bit. )
: TRIM ( a a - a) DUP PUSH dA @ - SWAP ! POP
DUP 1 + DUP @ DFFF AND OVER !
DUP @ 200 \ F AND + DUP @ FF7F AND SWAP ! ;

(PUSH is >R and POP is R>)

Do you find this code easy to understand? Admittedly, most of the
code in cmForth is easier to understand. It's full of magic numbers,
so it would be hard to change it, though.

>E.g., one of the things one
>can't normally do with a local is taking its address

I don't think that Paul Rubin finds that confusing. This feature
makes locals easier to understand for both programmers and compilers.

>There are also
>issues with run-time code generation

Have you missed better support for locals in run-time-generated code?

I don't think Paul Rubin meant this.

> and compile/interpret time.

You mean copy-pasting code with locals into the interpreter?

- 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 2021: https://euro.theforth.net/2021

Re: Not really locals

<612bdf5d$0$696$14726298@news.sunsite.dk>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!news.uzoreto.com!dotsrc.org!filter.dotsrc.org!news.dotsrc.org!not-for-mail
From: dhoffman...@gmail.com (Doug Hoffman)
Subject: Re: Not really locals
Newsgroups: comp.lang.forth
References: <87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at> <sgf5k8$1h36$1@gioia.aioe.org>
X-Mozilla-News-Host: news://news.sunsite.dk
Date: Sun, 29 Aug 2021 15:26:18 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:78.0)
Gecko/20100101 Thunderbird/78.13.0
MIME-Version: 1.0
In-Reply-To: <sgf5k8$1h36$1@gioia.aioe.org>
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Language: en-US
Content-Transfer-Encoding: 7bit
Lines: 17
Message-ID: <612bdf5d$0$696$14726298@news.sunsite.dk>
Organization: SunSITE.dk - Supporting Open source
NNTP-Posting-Host: a4089e9d.news.sunsite.dk
X-Trace: 1630265181 news.sunsite.dk 696 glidedog@gmail.com/68.55.82.126:49487
X-Complaints-To: staff@sunsite.dk
 by: Doug Hoffman - Sun, 29 Aug 2021 19:26 UTC

On 8/29/21 1:23 AM, dxforth wrote:

> If locals are as good as stack operations, why bother
> with forth at all.

It's not an all-or-nothing issue. Using an occasional local does not
require or mean that one is using locals exclusively in place of stack
manipulation or in every definition.

If one uses the return stack as a place to temporarily store things is
that conceptually any different from using a local or two?

I don't see the "interferes with factoring" canard.

This always reminds me of the old blocks vs text files debate.

-Doug

Re: Not really locals

<sghf7b$192c$1@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Mon, 30 Aug 2021 12:19:24 +1000
Organization: Aioe.org NNTP Server
Message-ID: <sghf7b$192c$1@gioia.aioe.org>
References: <fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com>
<87mtp3ux27.fsf@nightsong.com> <2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com>
<sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com>
<163024499011.7770.2275730012036574763@media.vsta.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="42060"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Mon, 30 Aug 2021 02:19 UTC

On 29/08/2021 23:49, Andy Valencia wrote:
> ...
> Of course, it's not an indictment to admit that a language quite
> recognizable to its 1970's users has fallen behind some more modern
> programming languages when measured on metrics like how it fails
> in the face of programming errors, learning curve, availability of
> modern ("batteries included") facilities, ....

More specialist languages designed to do one thing and one thing
only, whose programmers become redundant when its time is up?
I had a good run in electronics at a time when it was actually
interesting before the 'black box' era. Looks like programming
is going the same way.

Re: Not really locals

<87v93nu0ap.fsf@nightsong.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Sun, 29 Aug 2021 19:35:42 -0700
Organization: A noiseless patient Spider
Lines: 7
Message-ID: <87v93nu0ap.fsf@nightsong.com>
References: <fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com>
<87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com>
<sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com>
<163024499011.7770.2275730012036574763@media.vsta.org>
<sghf7b$192c$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="5e1711ba1cc93ec37d4a37bc22cb3882";
logging-data="13525"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18E5lCU2ml74R+b/txskuOW"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Cancel-Lock: sha1:p8rG+GG1QvqqaEcHdGf+WBw0DtU=
sha1:yJJ1Dbl9VCHRoxO4vnDltRqEcXQ=
 by: Paul Rubin - Mon, 30 Aug 2021 02:35 UTC

dxforth <dxforth@gmail.com> writes:
> More specialist languages designed to do one thing and one thing
> only, whose programmers become redundant when its time is up?

I don't feel like that and I'm an old software fart by now. Languages
keep evolving but mostly in the same general directions, so it's enough
to identify those directions and follow them.

Re: Not really locals

<sghink$5qs$1@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Mon, 30 Aug 2021 13:19:17 +1000
Organization: Aioe.org NNTP Server
Message-ID: <sghink$5qs$1@gioia.aioe.org>
References: <fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com>
<87mtp3ux27.fsf@nightsong.com> <2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com>
<sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com>
<163024499011.7770.2275730012036574763@media.vsta.org>
<sghf7b$192c$1@gioia.aioe.org> <87v93nu0ap.fsf@nightsong.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="5980"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Mon, 30 Aug 2021 03:19 UTC

On 30/08/2021 12:35, Paul Rubin wrote:
> dxforth <dxforth@gmail.com> writes:
>> More specialist languages designed to do one thing and one thing
>> only, whose programmers become redundant when its time is up?
>
> I don't feel like that and I'm an old software fart by now. Languages
> keep evolving but mostly in the same general directions, so it's enough
> to identify those directions and follow them.
>

Following is right because the fundamentals of programming haven't
changed.

Re: Not really locals

<0cca2682-abcd-44d9-8543-cb94fa49bc85n@googlegroups.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
X-Received: by 2002:a0c:cb8f:: with SMTP id p15mr25270039qvk.2.1630361203559;
Mon, 30 Aug 2021 15:06:43 -0700 (PDT)
X-Received: by 2002:ac8:5442:: with SMTP id d2mr22836355qtq.176.1630361203408;
Mon, 30 Aug 2021 15:06:43 -0700 (PDT)
Path: i2pn2.org!i2pn.org!news.niel.me!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: Mon, 30 Aug 2021 15:06:43 -0700 (PDT)
In-Reply-To: <87ilzruwzb.fsf@nightsong.com>
Injection-Info: google-groups.googlegroups.com; posting-host=82.95.228.79; posting-account=Ebqe4AoAAABfjCRL4ZqOHWv4jv5ZU4Cs
NNTP-Posting-Host: 82.95.228.79
References: <87mtp3ux27.fsf@nightsong.com> <87ilzruwzb.fsf@nightsong.com>
User-Agent: G2/1.0
MIME-Version: 1.0
Message-ID: <0cca2682-abcd-44d9-8543-cb94fa49bc85n@googlegroups.com>
Subject: Re: Not really locals
From: the.beez...@gmail.com (Hans Bezemer)
Injection-Date: Mon, 30 Aug 2021 22:06:43 +0000
Content-Type: text/plain; charset="UTF-8"
 by: Hans Bezemer - Mon, 30 Aug 2021 22:06 UTC

On Friday, August 27, 2021 at 10:12:58 AM UTC+2, Paul Rubin wrote:
You actually achieved to make the proposal even uglier than it already was - and when reading the first version I carelessly assumed that such a feat was impossible.

Hans Bezemer

> Paul Rubin <no.e...@nospam.invalid> writes:
> > pointer kept), and you'd access them with $1, $2, etc.
> Oops, obviously $1, $2 etc. is bad since that syntax is already used for
> hex constants. Maybe ^1, ^2, etc.

Re: Not really locals

<87eea6tyl4.fsf@nightsong.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Thu, 02 Sep 2021 15:13:59 -0700
Organization: A noiseless patient Spider
Lines: 13
Message-ID: <87eea6tyl4.fsf@nightsong.com>
References: <87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org>
<612bdf5d$0$696$14726298@news.sunsite.dk>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="04c934b0ab82dea3a8fb8ff7e1f09cd6";
logging-data="28191"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX19nzHXH90JMJe35ZAKIuPUa"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Cancel-Lock: sha1:LAwvsR5c8w6E5mIDFRz/ChhGIpc=
sha1:sLfwMQJn4GAMZTB2D/zpSTDtl8I=
 by: Paul Rubin - Thu, 2 Sep 2021 22:13 UTC

Doug Hoffman <dhoffman888@gmail.com> writes:
> This always reminds me of the old blocks vs text files debate.

I wasn't around for that but I think blocks have mostly faded away by
now. Did they really have staunch proponents? Was there a similar
debate over 3+length vs. storing the whole name in the dictionary?

I've lately been doing stuff with an 8-bit processor (AVR). I've never
used a tethered Forth before, but find myself wanting to try one. That
means putting the compiler on a remote machine, that has enough memory
to handle things like locals without much trouble. I wonder if the
absence of locals in early Forth was something like the 3+length
dictionary, i.e. an artifact of memory being scarce in those days.

Re: Not really locals

<87a6kutyig.fsf@nightsong.com>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail
From: no.em...@nospam.invalid (Paul Rubin)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Thu, 02 Sep 2021 15:15:35 -0700
Organization: A noiseless patient Spider
Lines: 10
Message-ID: <87a6kutyig.fsf@nightsong.com>
References: <fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com>
<87mtp3ux27.fsf@nightsong.com>
<2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com>
<sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com>
<163024499011.7770.2275730012036574763@media.vsta.org>
<sghf7b$192c$1@gioia.aioe.org> <87v93nu0ap.fsf@nightsong.com>
<sghink$5qs$1@gioia.aioe.org>
Mime-Version: 1.0
Content-Type: text/plain
Injection-Info: reader02.eternal-september.org; posting-host="04c934b0ab82dea3a8fb8ff7e1f09cd6";
logging-data="28191"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+vuwwJaWEbrWb32yzzXJII"
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)
Cancel-Lock: sha1:8rk/CnEeSTHRA2utSiUeekrfYpU=
sha1:vTpAlf2C6pqtMoksZ/4YpSnF5U8=
 by: Paul Rubin - Thu, 2 Sep 2021 22:15 UTC

dxforth <dxforth@gmail.com> writes:
> Following is right because the fundamentals of programming haven't
> changed.

The fundamentals haven't changed in the same sense that fundamental
physics hasn't changed. The stuff that programmers do all day has
really changed a lot. There are plenty of very good programmers who
code in Python or Javascript for a living, and have never used a
language with pointers or without garbage collection. They still get
their stuff done.

Re: Not really locals

<sgrks5$1tap$2@gioia.aioe.org>

  copy mid

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

  copy link   Newsgroups: comp.lang.forth
Path: i2pn2.org!i2pn.org!aioe.org!7AktqsUqy5CCvnKa3S0Dkw.user.46.165.242.75.POSTED!not-for-mail
From: dxfo...@gmail.com (dxforth)
Newsgroups: comp.lang.forth
Subject: Re: Not really locals
Date: Fri, 3 Sep 2021 08:57:10 +1000
Organization: Aioe.org NNTP Server
Message-ID: <sgrks5$1tap$2@gioia.aioe.org>
References: <fc3169e1-fa0c-449f-9eb2-6540608e8c2cn@googlegroups.com>
<87mtp3ux27.fsf@nightsong.com> <2021Aug27.121151@mips.complang.tuwien.ac.at>
<sgf5k8$1h36$1@gioia.aioe.org> <87bl5gvmxi.fsf@nightsong.com>
<sgf823$8io$1@gioia.aioe.org> <877dg4vj1h.fsf@nightsong.com>
<163024499011.7770.2275730012036574763@media.vsta.org>
<sghf7b$192c$1@gioia.aioe.org> <87v93nu0ap.fsf@nightsong.com>
<sghink$5qs$1@gioia.aioe.org> <87a6kutyig.fsf@nightsong.com>
Mime-Version: 1.0
Content-Type: text/plain; charset=utf-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Info: gioia.aioe.org; logging-data="62809"; posting-host="7AktqsUqy5CCvnKa3S0Dkw.user.gioia.aioe.org"; mail-complaints-to="abuse@aioe.org";
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:78.0) Gecko/20100101
Thunderbird/78.13.0
X-Notice: Filtered by postfilter v. 0.9.2
Content-Language: en-GB
 by: dxforth - Thu, 2 Sep 2021 22:57 UTC

On 3/09/2021 08:15, Paul Rubin wrote:
> dxforth <dxforth@gmail.com> writes:
>> Following is right because the fundamentals of programming haven't
>> changed.
>
> The fundamentals haven't changed in the same sense that fundamental
> physics hasn't changed. The stuff that programmers do all day has
> really changed a lot. There are plenty of very good programmers who
> code in Python or Javascript for a living, and have never used a
> language with pointers or without garbage collection. They still get
> their stuff done.
>

Yes, but you know when you're being fed pap.

Pages:1234567
server_pubkey.txt

rocksolid light 0.9.8
clearnet tor