1) Is http://forth.sourceforge.net still in use?
2) Is there a "convention", Comus name for a word which produces the
stack effects:
a b -- a a b
Philip Koopman calls it "UNDER".
3) Is there a "convention", Comus name for a word which produces the
stack effects:
a n -- a+1 n-1
Effectively removing the first character from a addr/count string.
This is really getting confusing..!
Any feedback appreciated!
Hans
1 /string
That's standard, BTW. The Xchars proposal also has a name for
removing the front xchar from a string:
`+x/string' xc-addr1 u1 - xc-addr2 u2 xchar "plus-x-slash-string"
Step forward by one xchar in the buffer defined by address XC-ADDR1,
size U1 pchars. XC-ADDR2 is the address and u2 the size in pchars of
the remaining buffer after stepping over the first xchar in the buffer.
- 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 2008: http://www.complang.tuwien.ac.at/anton/euroforth/ef08.html
I could only find 2 occurences of OVER SWAP (the equivalent of UNDER)
in the Win32Forth V6 sources; one was in Stephen Pelc's benchmark. Is
it useful? Win32Forth V6 has UNDER+ ( a b c -- a+c b ) which is used
exactly four times; zero in the STC version.
Strangely, OVER SWAP appears in the ANS specification of ALSO.
--
Regards
Alex McDonald
Could you also search for ">R DUP R>" which is the same as "OVER
SWAP"?
Brad
2 occurences in V6 (all excluding apps btw, just the core system).
Interestingly, one was in this set of strangely named words;
: -dup ( n1 n2 - n1 n1 n2 ) >r dup r> ;
: -over ( n1 n2 n3 - n1 n2 n1 n3 ) >r over r> ;
: -swap ( n1 n2 n3 - n2 n1 n3 ) >r swap r> ;
which led me to this truly horrible concoction;
nip r> -dup - r> swap -
Oh dear. Fortunately, -dup is only used in the one source file, twice.
It shall be exorcised...
--
Regards
Alex McDonald
I think they're a harness to an older Forth that had those words,
to ease porting code.
> which led me to this truly horrible concoction;
>
> nip r> -dup - r> swap -
>
surely
nip dup r> - r> swap -
would be better
> Oh dear. Fortunately, -dup is only used in the one source file, twice.
> It shall be exorcised...
>
> --
> Regards
> Alex McDonald
George Hubert
Or follow the Elements of Style (no double negatives) with:
nip dup negate r> + r> +
Ian
> Is there a "convention", Comus name for a word which produces the
> stack effects:
> a b -- a a b
> Philip Koopman calls it "UNDER".
The author of TIMBRE called it NUP .
When I made it a fast primitive I found pretty many uses for it. But I
could get by just fine without it.
MacForth refers to a b -- a a b as UNDERDUP
It also has a word UNDER+ which gives a b c -- a+c b
Henry
The last time this arose, there was some support for DUP-UNDER
as being more expressive.
Impressive. It saves one letter compared to OVER SWAP which is arguably
even more expressive. 1]
Groetjes Albert
1] Oops. It doesn't. My wrong. Now what?
--
--
Albert van der Horst, UTRECHT,THE NETHERLANDS
Economic growth -- like all pyramid schemes -- ultimately falters.
albert@spe&ar&c.xs4all.nl &=n http://home.hccnet.nl/a.w.m.van.der.horst
> Impressive. It saves one letter compared to OVER SWAP which is arguably
> even more expressive. 1]
How does that argument go, exactly? OVER SWAP says how you are doing
it, not what you are trying to do.
I wouldn't bother coding it as a separate word, at least not in this
decade, but if I was, I wouldn't see OVER-SWAP as a terribly clear
description of what I was trying to accomplish with the word.
Though, while I could see coding the word back on the C64, I don't
think that I'd worry about it on a PC running Linux. There ought to be
a phrase that it is used in that
NUP is like DUP but it acts on NOS. Simple to remember once you know.
Like DUP or ROT . If it's going to be a primitive it might as well have
a short name. And if it isn't a primitive it's hardly worth using.
You can always find ways to work around it. Like, you can DUP the item
when it's on TOS and then use ROT where you'd otherwise use OVER to
cover it up. Or save it on the return stack. Or something.
The stack operations are rich enough you can always find ways to get by
without one or two of them. At one point Chuck Moore found reason to
avoid SWAP and he said he didn't miss it. NUP is an obvious candidate
for a primitive. If you code so that you prefer primitives and still
minimise their use, you can use NUP effectively and it's often a big
help. But if your primitives list doesn't have NUP but does have enough
others you won't miss it.
One can not 'get by' all problems with equal ease. ANS involves some
problems that are hard to 'get by' without some operations not
officially
included but said to be 'commonly available.'
> At one point Chuck Moore found reason to
> avoid SWAP and he said he didn't miss it.
I believe you are confusing Chuck and I. Chuck chose to use OVER as a
primitive rather than SWAP in the context of a choice made over which
of a limited number of opcodes would work with decoder restrictions.
He said OVER was the proper choice because writing a SWAP with an OVER
was easier than writing an OVER with a SWAP. He also noted that with
circular register buffers at the bottom of the stacks that one could
occasionally use OVER exactly like SWAP when you did worry about
abandoning items off the bottom of the stack. One should note that
he used SWAP in colorforth and his okad code. Even when he avoided
Forth source in his sourceless programming era he had a SWAP.
I said that after a relatively short time of doing machineForth
programming exclusively I came to the conclusion that on the
rare occasion when I wanted to do something like SWAP it was
really one of several different flavors of SWAP that I wanted
and that a single SWAP word was not what I was thinking. I
began to think in machineForth without thinking SWAP. Sometimes
OVER would be used in place if SWAP. Sometimes I would do one
of the flavors of SWAP but as primitive words without a distinct
definition for SWAP, and commment that might say swap. And I did
say in that context I didn't miss having a SWAP.
The direct substitution of OVER for SWAP was used in the fib code
example for c18 where the fib loop had been FOR SWAP OVER + NEXT
and where OVER was substituted for SWAP to use FOR + OVER OVER UNEXT
in order to remove the mems and to make the loop four times smaller
and four times faster.
Best Wishes
Agreed. NUP is usually easy to avoid. OVER SWAP is easy to avoid.
On the other hand, suppose you make NUP a primitive. It's cheap and
fast. Say for example that your processor has TOS and NOS as something
like special registers and the rest of the data stack as something like
a stack. Then NUP copies NOS to the stack. DUP copies NOS to the stack
and copies TOS to NOS. NUP is simpler than DUP, is it worth having? When
I look for ways for it to be useful, they show up pretty often. Chuck
found NIP a more useful opcode than SWAP. Maybe NUP is worth having.
> ANS involves some
> problems that are hard to 'get by' without some operations not
> officially
> included but said to be 'commonly available.'
You have full access to TOS, NOS, and R. You have partial access to the
third item on the data stack and the second item on the return stack.
You have a little access to the fourth item on the data stack. Beyond
that you have to do stack gyrations or PICK or something.
If you can't get by with access to six items, maybe you should use
variables or locals or something?
To copy an item onto TOS:
4 3 2 1 R: 5 6
1 DUP
2 OVER
3 2OVER NIP
4 2OVER DROP
5 2R@ DROP
6 R@
To move an item onto TOS:
1 NOOP
2 SWAP
3 ROT
4 2SWAP SWAP >R -ROT R> \ is there a better way? This is bad.
\ maybe copy it, and when top items are gone
drop the extra copy
5 2R> >R
6 R>
To drop an item:
1 DROP
2 NIP
3 ROT DROP
4 2SWAP NIP -ROT \ usually easier to wait until the top items are gone
and just DROP it.
5 R> DROP
6 2R> >R DROP
If you care about using ANS more than you care about efficient stack
operations, you can get do pretty well without a lot of trouble.
> > At one point Chuck Moore found reason to
> > avoid SWAP and he said he didn't miss it.
>
> I believe you are confusing Chuck and I. Chuck chose to use OVER as a
> primitive rather than SWAP in the context of a choice made over which
> of a limited number of opcodes would work with decoder restrictions.
> He said OVER was the proper choice because writing a SWAP with an OVER
> was easier than writing an OVER with a SWAP. He also noted that with
> circular register buffers at the bottom of the stacks that one could
> occasionally use OVER exactly like SWAP when you did worry about
> abandoning items off the bottom of the stack. One should note that
> he used SWAP in colorforth and his okad code. Even when he avoided
> Forth source in his sourceless programming era he had a SWAP.
I'm not confusing you and Chuck. But I may be confusing what Chuck said
with what somebody else said that Chuck said. I remember Chuck saying
that he got by fine without SWAP . And I remember Dr. Ting describing
Chuck's work, doing without SWAP to get his ops into a limited number of
opcodes, and saying something like "Who needs SWAP?" as if he was
quoting Chuck. A whole lot of people laughed at that. At the time, Forth
without SWAP seemed funny, although of course SWAP could be implemented
using the other primitives.
Bernd Paysan has claimed that Chuck claimed you don't need SWAP.
http://www.jwdt.com/~paysan/b16-eng.pdf
http://www.ultratechnology.com/moore4th.htm
From 1999, Chuck said,
"The words that manipulate that stack are DUP, DROP and OVER period.
There's no, well SWAP is very convenient and you want it, but it isn't a
machine instruction."
I believe that various people have said that Chuck said you could do
without SWAP, and I believe Chuck said it himself. But still he could
provide SWAP in high-level code and did. And you point out he used it at
various times.
I meant no offense by repeating the story, and I'm beginning to think it
bothers you. I'll try to remember to stop doing it.
Can you give me a reference to where Chuck said he found NIP more
useful than SWAP ? I have no idea where you got that.
> If you care about using ANS more than you care about efficient stack
> operations, you can get do pretty well without a lot of trouble.
That's a BIG if. If that's where you live fine.
> > > At one point Chuck Moore found reason to
> > > avoid SWAP and he said he didn't miss it.
>
> > I believe you are confusing Chuck and I.
I forget this was c.l.f. ;-( I should have said, "I believe that you
are confusing what I said for what Chuck said since I am not aware
of Chuck every having said that, but it was something I said. I
think you are spreading confusion."
> > Chuck chose to use OVER as a
> > primitive rather than SWAP in the context of a choice made over which
> > of a limited number of opcodes would work with decoder restrictions.
> > He said OVER was the proper choice because writing a SWAP with an OVER
> > was easier than writing an OVER with a SWAP. He also noted that with
> > circular register buffers at the bottom of the stacks that one could
> > occasionally use OVER exactly like SWAP when you did worry about
> > abandoning items off the bottom of the stack. One should note that
> > he used SWAP in colorforth and his okad code. Even when he avoided
> > Forth source in his sourceless programming era he had a SWAP.
>
> I'm not confusing you and Chuck. But I may be confusing what Chuck said
> with what somebody else said that Chuck said.
c.l.f.... yes, you confused what we said... You were spreading
confusion.
> I remember Chuck saying
> that he got by fine without SWAP .
Do you recall a context, version of Forth, date, presentation occasion
or any other such details? I think you were confused.
> And I remember Dr. Ting describing
> Chuck's work, doing without SWAP to get his ops into a limited number of
> opcodes, and saying something like "Who needs SWAP?" as if he was
> quoting Chuck.
I believe you are mixing selection of opcodes with use of the word
SWAP
in software. Chuck didn't use SWAP as an opcode but used SWAP as a
Forth
word.
> A whole lot of people laughed at that. At the time, Forth
> without SWAP seemed funny, although of course SWAP could be implemented
> using the other primitives.
Yes. I have other people claim that Chuck wasn't using SWAP in Forth
anymore because it was not an opcode in his computer's instruction
set.
While it was de-emphasised in machineForth because it is not an
opcode,
but not completely avoided by all programmers and certainly present
in colorforth.
Trying to infer from Ting's sometimes odd jokes what Chuck does or
thinks could easily lead you to confusion. Chuck has often mixed
the subjects of hardware design and use of Forth software because
for him they overlap and that has confused many people.
> Bernd Paysan has claimed that Chuck claimed you don't need
> SWAP.http://www.jwdt.com/~paysan/b16-eng.pdf
Was that in a context of choice of opcodes for hardware implemention
or choice of words in Forth source? Chuck might say that one
doesn't 'need' SWAP in either context, but your claim that he
didn't use SWAP in Forth source code and didn't miss it was false.
> http://www.ultratechnology.com/moore4th.htm
> From 1999, Chuck said,
> "The words that manipulate that stack are DUP, DROP and OVER period.
> There's no, well SWAP is very convenient and you want it, but it isn't a
> machine instruction."
Certainly. But you took those statements about choice of opcodes,
machine instructions, and confused that with a statement I had made
when I said that I hadn't used SWAP in years and hadn't missed it.
You were spreading confusion.
> I believe that various people have said that Chuck said you could do
> without SWAP, and I believe Chuck said it himself.
But in what context? He said this about choice of opcodes yes. But
you claimed he said he didn't use SWAP which is what I was trying to
correct. You seem to be trying to defend you confusion, yes, I know,
c.l.f.
> But still he could
> provide SWAP in high-level code and did. And you point out he used it at
> various times.
Make that most of the time, yes.
> I meant no offense by repeating the story, and I'm beginning to think it
> bothers you. I'll try to remember to stop doing it.
The only thing that 'bothered me' was your misquoting Chuck in way
that
creates a nice myth but feeds people's confusion. Your myth makes
a better story in the telling than what was really said and is likely
to be repeated. Many Forth 'myths' originate this way. Just trying
to reduce backwards spin and mistaken quotes so people won't be
so confused in the future.
Best Wishes
Choice of opcodes for hardware implementation. I always carry a SWAP macro
around in my b16 assembler sources, like "over >r nip r>" or so. However,
as Jeff mentioned, you find that SWAP is not always the right non-primitive
to use, e.g. instead of SWAP - you say - NEGATE or something like that (-
is a non-primitive either, so you end up with "com + com" in b16
assembler). Another typical usage is e.g. SWAP 1+ SWAP 1+ or so, which you
can easily replace with >R 1+ R> 1+.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://www.jwdt.com/~paysan/
Chuck chose to have NIP as an opcode when he chose not to have SWAP .
> > If you care about using ANS more than you care about efficient stack
> > operations, you can get do pretty well without a lot of trouble.
>
> That's a BIG if. If that's where you live fine.
The ANS stack words aren't particularly inconvenient. By adding a few
others like R'@ which can be implemented easily using only ANS core
words, it becomes even less inconvenient. When you care about using ANS
you can't particularly care about efficiency at the level of individual
stack words because when you do that you aren't using ANS but using the
XYZ Forth system on the LMN hardware which happens to conform to ANS .
Simply TOS in a separate register, and its cheaper than OVER SWAP. Say
its a machine stack with one register as TOS and one register as a
utility work register A. NUP then is copy top of machine stack to A,
push A. OVER SWAP is copy top of machine stack to A, push TOS, move A
to TOS, pop top of machine stack to A, push TOS, move A to TOS.
NUP it is ... in this context, with a word that will disappear as
stack noise once the foundation has been built, the first priority is
a short common name already in use, since portable source will
include:
S" undef.fs" INCLUDED
...
[UNDEFINED] NUP [IF] \ NUP is Next-on-stack dUP"
: NUP ( x1 x2 -- x1 x1 x2 ) OVER SWAP ;
[THEN]
Novix had SWAP, ShBoom had SWAP. I helped on the P20 and P21 opcodes
and there was neither SWAP nor NIP. F21 was mine and had no NIP nor
did v21 or i21. P8 and P32 had no NIP. C18 has no NIP.
Just what processor are you talking about that had NIP but no SWAP?
I think you are continuing to spread confusion. You can create more
confusion and popular myths by substituting context to wrongfully
attribute nonsense to Mr. Moore and Forth in general. I asked
for a reference and you simply repeated your false claim.
I note that the first red word in colorforth is DUP. NIP comes later.
In the public domain colorforth DUP is used five times as much as NIP.
Yet you claimed that Chuck doesn't use DUP, said he didn't miss it,
and said NIP was more important than DUP. I said I didn't believe it
and asked your for a reference. You switched the statement to
opcodes which is also untrue. Please provide a reference to your
claim.
> > > If you care about using ANS more than you care about efficient stack
> > > operations, you can get do pretty well without a lot of trouble.
>
> > That's a BIG if. If that's where you live fine.
>
> The ANS stack words aren't particularly inconvenient.
I was recently re-reading the section on exception handling and
noticed
the references to words not officially included in the standard but
used
in the standard document. I consider it inconvenient when the standard
does not include the words that it says are needed with the standard.
> By adding a few
> others like R'@ which can be implemented easily using only ANS core
> words, it becomes even less inconvenient.
Your playing with language. In this context some things are not just
inconvenient they are nearly impossible. We have been through this
before. It's the hidden, undefined but referenced words, in the
standard that are anything but convenient.
First let's clear up the problem with your claiming that Chuck has
said things he hasn't said. When we can put a rest to your spreading
confusion on that subject we can acdress your confusion about the
standard.
> When you care about using ANS you can't particularly care about
> efficiency at the level of individual stack words because when
> you do that you aren't using ANS but using the XYZ Forth system
> on the LMN hardware which happens to conform to ANS .
Yes, well that's a different problem with ANS. Let's first address
your misrepresenting Chuck's comments, then address your first
confusion about ANS before we expand the discussion into that
second problem.
Best Wishes
But even if it is an obscure abbreviation, at least NUP abbreviates
what the word is trying to do. LIFT has a number of connotations in my
mind ... pick something up, give someone a ride, an elevator ... and
make a copy of the second of a stack of things and stash it under the
thing you copied does not seem to fit.
If LIFT was used to mean N>R ... that I could grok.
This is not interesting to me. I've already spent more than 10 minutes
looking up old history that wasn't very interesting. You can say that
you're right and I'm wrong and I'll just drop it.
> I note that the first red word in colorforth is DUP. NIP comes later.
> In the public domain colorforth DUP is used five times as much as NIP.
> Yet you claimed that Chuck doesn't use DUP, said he didn't miss it,
> and said NIP was more important than DUP. I said I didn't believe it
> and asked your for a reference. You switched the statement to
> opcodes which is also untrue. Please provide a reference to your
> claim.
I didn't say that, you're making this up.
> First let's clear up the problem with your claiming that Chuck has
> said things he hasn't said. When we can put a rest to your spreading
> confusion on that subject we can acdress your confusion about the
> standard.
OK, I'll be glad to put this one off indefinitely. You are no fun.
> To move an item onto TOS:
> 4 2SWAP SWAP >R -ROT R> \ is there a better way? This is bad.
> \ maybe copy it, and when top items are gone
> \ drop the extra copy
( GET-4TH ) >R ROT R> SWAP
\ Or if you prefer, 2>R SWAP 2R> ROT, but I reckon
\ >R R> is normally cheaper than 2>R 2R>
> To drop an item:
> 4 2SWAP NIP -ROT \ usually easier to wait until the top items are gone
> and just DROP it.
( DROP-4TH ) 2>R NIP 2R>
> Chuck Moore found reason to
> avoid SWAP and he said he didn't miss it.
So, the lesson from this sentence is to say something like this as,
"Chuck Moore found reason to avoid SWAP *as a primitive*, and he said
he didn't miss it."
Since saying something that could be read as an accurate description
of what Chuck Moore said or as an inaccurate description of what Chuck
Moore said is clearly a deliberate ploy to spread confusion and
misinformation.
And so long as the fundamental ontology of the Universe is determined
by groups of programmers shouting at each other, we don't want to get
in the way of that essential process by shouting at each other over
what Chuck Moore said.
> > 4 3 2 1 R: 5 6
>
> > To move an item onto TOS:
> > 4 2SWAP SWAP >R -ROT R> \ is there a better way? This is bad.
> > \ maybe copy it, and when top items are
> > gone\ drop the extra copy
>
> ( GET-4TH ) >R ROT R> SWAP
Thank you! I thought there would be an easier way but I didn't see it
quickly. This is something I don't actually do, I avoid copying the 4th
item. 3 PICK would work, or maybe use locals.
> > To drop an item:
>
> > 4 2SWAP NIP -ROT \ usually easier to wait until the top items are
> > gone and just DROP it.
>
> ( DROP-4TH ) 2>R NIP 2R>
Nice!
First you confused who said what about SWAP. Since it was in fact
myself not Chuck who you were misunderstanding I felt some sense
of personal responsibility for your confusion. You had confused
what I had said on a subject of SWAP with what Chuck had said.
When I expressed this you took what Chuck, Ting, and Bernd had said
in the context of 'opcodes' and transposed it to 'primitives.'
When I said you were confused about who said what and had confused
the subject of opcodes with the subject of primitives you then stated
flat out that Chuck found NIP a more useful opcode than SWAP.
I had no idea what hat you pulled that from.
I asked where you got that. Your response was that Chuck had put in
a NIP opcode but no SWAP opcode in his designs. I had no idea what
hat you pulled that from either.
I asked where you got that. I listed all the processor chips that I
knew of Chuck designing and noted that what you had said was not
true about any of the chips I had heard of. So I asked you where
you got this evidence in support of your previous claim.
I had asked for a reference because I thought you made up the claim
that Chuck said NIP was more valuable than SWAP. Instead you
introduced
more false evidence with a claim about some bogus made up chip. If
you
didn't make this up please provide details that can be cross
referenced
somewhere.
> This is not interesting to me.
I'll take that as, "I was wrong."
> I've already spent more than 10 minutes
> looking up old history that wasn't very interesting. You can say that
> you're right and I'm wrong and I'll just drop it.
That would be fine with me. But in the next paragraph you start
denying that you ever claimed that Chuck had made a processor with
NIP but no SWAP and that you remembered Chuck justifying this. I
simply asked you what the hell chip you were talking about. Since
this was your claim.
> I didn't say that, you're making this up.
I believe you have already pleaded guilty to claiming that your
mistaken memory of opcode details fitted your mistaken memory of
what Chuck had said about it and to submitting false evidence
perhaps from mistaken memory that some non-existent chip
you had claimed Chuck had made with a NIP opcode but no SWAP
opcode was proof of your previously mistaken claims. I certainly
did not make up your statements about the mystery chip.
You could not provide any evidence of any such real chip because
it was a case of your memory filling in details so support your
confusion. I just said that you DID claim that some chip that
Chuck designed had a NIP opocde but no SWAP opcode. I questioned
that and I asked to see the evidence.
I believe you have pleaded guilty for providing false evidence.
Unless you can somehow provide real evidence that such a chip
existed and that it was my memory that failed on the subject
of these chips and not yours we can let that stand.
If you don't remember providing the evidence that some chip
with the NIP opcode but no SWAP opcode proved your claim
regarding opcodes you have a serious short term memory problem
as well as a problem not caring about or not remembering
important details of Forth hardware and software.
> > First let's clear up the problem with your claiming that Chuck has
> > said things he hasn't said. When we can put a rest to your spreading
> > confusion on that subject we can address your confusion about the
> > standard.
>
> OK, I'll be glad to put this one off indefinitely. You are no fun.
I wasn't trying to be fun. I was just trying to get to the truth or
lack of it behind the claims I saw you make attributing something
I had said to Chuck and to straighten out the context regarding who
had said what about which software and which chips.
And I understand, given your position, that it would probably also not
be fun for you to go into the details of the specific problems with
the standard that we referenced previously.
Unless you wish to provide some details about this chip you claim
proved your other claims I will just accept that it was a case of
your failing memory and/or your attitude that such details are not
important to you. I accept that it bothers you that there are
people to whom such details are seen as important to proper
understanding of the subject.
Best Wishes
;-) And I thought that the lesson was that Chuck had SWAP as the
*first* macro definition in colorforth, and that he had *never* said
he avoided using it as a primitive, that the *never* said he didn't
miss it, and that Jeff Fox has often been quoted saying that some
people used SWAP in machineForth but that he "hadn't (used SWAP
in machineForth) for years and hadn't missed it!"
I thought the lesson was that the most common Forth myths come
from taking these sorts of statements made by one person in one
context, transposing them to a different context, attributing
them to a different person and making easy to remember popular
dumb sound-bites that get repeated but were never true.
It is like the child's game telephone. "I heard that the inventor
of Forth said .... about Forth." pass that over a few folks
and the truth quickly gets replaced by popular myth.
I thought the lesson was that we have a case where we can follow
this newly created myth as we see 'the myth' being repeated as
the 'lesson.' We can watch its history from the originator through
the repeaters. ;-)
> Since saying something that could be read as an accurate description
> of what Chuck Moore said or as an inaccurate description of what Chuck
> Moore said is clearly a deliberate ploy to spread confusion and
> misinformation.
Someone was guilty of providing false evidence as proof for
mistaken claims. Intentional or not, the original claims were
shown to be false.
Claiming that those false claims were the 'lesson' is the sort
of thing I say is responsible for Forth's bad reputation. The
myths are easy to repeat whether you know anything about Forth
or not. It is easy to claim that the myth is the lesson.
But if you know a myth to be untrue, if you know some myth
to be false and destructive why repeat it? I think that
is one definition of trolling.
Speaking of trolling...
> And so long as the fundamental ontology of the Universe is determined
> by groups of programmers shouting at each other, we don't want to get
> in the way of that essential process by shouting at each other over
> what Chuck Moore said.
I think there is more to the fundamental ontology of the Universe
than understanding Forth. If you care to promote some particular
fundamentalist position on the Universe feel free but I think
there are other newsgroups that specialize in that.
I think newsgroups provide forum for people to discuss particular
subjects. I think understanding Forth needs to involve the ability
to sort out the stupid myths repeated about Forth from the facts.
I think it is damaging to Forth when untrue myths become more
popular than reality. I think it is damaging to Forth when people
engage in constructing such myths. I think it is damaging to
Forth when people engage in repeating such myths. I think it
is perfectly normal to discuss Forth in a Forth newsgroup
and to discuss what popular sound-bites are or are not true
regarding Forth.
The skill to invent myth can be used either way. It can
be used to create damaging untrue but popular myths about Forth
or it can be used to promote the positive aspects of Forth.
Those lacking the skill to create new myths can repeat the
ones they like, good or bad, true or false, it is a matter
of choice. But just repeating myths is not very creative and is
generally regarded as trolling.
I think the 'lesson' is that it is a choice whether one chooses
to repeat things one knows to be true or chooses to repeat
things one knows to be false.
Best Wishes
P.S. I haven't seen any SHOUTING in c.l.f recently. I have
seen some pretty funny, as in good funny, posts.