Path: csiph.com!eternal-september.org!feeder.eternal-september.org!nntp.eternal-september.org!.POSTED!not-for-mail From: peter Newsgroups: comp.lang.forth Subject: Re: Naming issues in create-does (was: Back to the Forth Virus) Date: Sat, 13 Jun 2026 20:21:58 +0200 Organization: A noiseless patient Spider Lines: 64 Message-ID: <20260613202158.0000283a@tin.it> References: <11069n1$3617t$1@dont-email.me> <110bgsa$mivq$1@dont-email.me> <2026Jun11.192802@mips.complang.tuwien.ac.at> <110hfag$2bsrn$1@dont-email.me> <2026Jun12.195246@mips.complang.tuwien.ac.at> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Injection-Date: Sat, 13 Jun 2026 18:22:00 +0000 (UTC) Injection-Info: dont-email.me; logging-data="3198404"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX18RKu/+MGoK1mSuDXJBjxlLT+JbsAdaNVA="; posting-host="75b9c1b55ead681bd45ba655ade15613" Cancel-Lock: sha1:IsBvNfrg07WXYD4aOcSMMdc9OOc= sha256:etYPuXYtK0JX4xSZcP9ji5Fnkqqhwqaoi30VICq6Xlk= sha1:iRn+sZ4AV8nq7++0VC6JYPoWvro= X-Newsreader: Claws Mail 4.4.0 (GTK 3.24.51; x86_64-w64-mingw32) Xref: csiph.com comp.lang.forth:135181 On Fri, 12 Jun 2026 17:52:46 GMT anton@mips.complang.tuwien.ac.at (Anton Ertl) wrote: > Ruvim writes: > >On 2026-06-11 17:28, Anton Ertl wrote: > >> minforth writes: > >>> : FCONSTANT \ ( f 'name' -- |r -- f) 12.6.1.1492 fp-number constant > >>> create f, ['] f@ _ >> > >> The word that you call _ in Gforth > > > >In the name `does>`, the symbol `>` means that the following code up to > >';' is a part of the semantics of the recent child of `create` (not the > >containing definition). > > > >In the name "set-does>" the symbol ">" is misleading. > > Yes. But given that Forth and Gforth continues to have DOES>, > SET-DOES> makes it clear to which word it is related. And I also find > it easier to remember that the spelling of DOES> does not differ > between DOES> and SET-DOES>. > > >The name '_ > Given the explanation for the ">" in DOES>, direction where the xt should be pushed on the stack. It's not clear > to me why minforth prepended a "_". > > >Why not simply choose the name `set-does`? > > Different spelling of the "DOES>" part. > > >Or, even better, `set-latest-doer` ? > > Even more different. Gforth contains a number of words that change > the latest word, and they all start with SET-, not with SET-LATEST- > (one might see it as a problem that there are words that do not change > the latest word and that have also names starting with SET-). And the > spelling of DOES> is even more different. Plus, we (at least in > Gforth source code, maybe also elsewhere) call run-time routines like > DOCOL DOCON DOVAR and DODOES doers, so I would expect that > SET-LATEST-DOER does what SET-EXECUTE does, not what SET-DOES> does. > > Overall, SET-DOES> is unambiguous and good enough. In LXF64 I have SET-DOES>. It came out as a part of DOES> and I took the name from GFORTH. I like the name! IN LXF64 SET-DOES> rewrites the last definition and compiles the xt. If the xt point to a macro it will be inlined. This means that SET-DOES> not only works with CREATE but all definitions that start with a literal. Like constant, variable, value, defer, and any colon definition that starts with a literal! The DOES> part of a definition is compiled as a separate :noname word Also that can be a macro! BR Peter > - anton