Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

comp.lang.forth is THE PROBLEM

1,935 views
Skip to first unread message

Richard Owlett

unread,
Mar 23, 2017, 3:17:53 AM3/23/17
to
I've not written FORTH in decades.
Why?
c.l.f !

I came across FORTH when _BYTE_ published its FORTH issue.
I discovered : and ;
I was working for an Architectural/Engineering/Surveying firm at the time.
I became an instant hero when I recognized our CAD system was very FORTH
like. With no more background than that article I was able to write a
script that took input in the format of surveyors' field notes and
produced a plot of parcel with a report of closure error.

I then had a problem that was a near ideal candidate for a FORTH
solution. The only problem was that the input data was heavily string
oriented. I was so naive as to ask on c.l.f. for assistance in parsing
the string data. It was irrelevant that the data processing problem was
a near ideal candidate for a FORTH solution. But my raw input data was
in strings Therefore I was told by c.l.f. that I was a !@$##@%$#!%$#@
idiot for attempting to use FORTH.

In spite of the efforts of c.l.f , FORTH has strongly influenced my
problem solving methodology. Though not having written a screen of FORTH
in decades!

I assert that c.l.f is FORTH's worst enemy.
THIMK!!!

Julian Fondren

unread,
Mar 23, 2017, 3:27:20 AM3/23/17
to
k.

Anton Ertl

unread,
Mar 23, 2017, 8:12:12 AM3/23/17
to
Richard Owlett <row...@cloud85.net> writes:
>I then had a problem that was a near ideal candidate for a FORTH
>solution. The only problem was that the input data was heavily string
>oriented. I was so naive as to ask on c.l.f. for assistance in parsing
>the string data. It was irrelevant that the data processing problem was
>a near ideal candidate for a FORTH solution. But my raw input data was
>in strings Therefore I was told by c.l.f. that I was a !@$##@%$#!%$#@
>idiot for attempting to use FORTH.

That's a very easy answer to write, and the nature of not just Usenet,
but all such public discussion fora is that you get easy answers
first. Whether you get harder answers can depend on how you posed
your question.

The way you describe the problem now, one possible solution is to use
a parser written with Gray or with Brad Rodriguez' BNF parser. As the
author of Gray, I am likely to give that answer if I see such a
posting and the problem looks appropriate for Gray. So either I did
not see the posting, or the problem description did not look like it
was appropriate for Gray.

- 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 2016: http://www.euroforth.org/ef16/

Cecil Bayona

unread,
Mar 23, 2017, 1:34:53 PM3/23/17
to
Not c.l.f that is just a list, it's the so called experts here that is
the problem. It's either Forth as they define it or get ready for tons
of personal insults.

Tiny Basic is allowed to have more features than Forth is so get ready
for insults.

--
Cecil - k5nwa

Julian Fondren

unread,
Mar 23, 2017, 1:56:51 PM3/23/17
to
Original post:

>By this anecdote, I felt discouraged after a long ago exchange on
>this forum. Therefore this forum is the cause of my not writing
>Forth. By implication you should feel that whatever distress *you*
>have about Forth can be solved by making sure that nobody ever
>arbitrarily feels ungood emotions when they talk about Forth online.

Your post:

>By assertion pulled completely from my ass, the actual problem is not
>that you were discouraged once. The *actual* problem is a thing that
>never actually happens. By implication, any kind of failing in your
>life -- shortness of breath, unexpected hair loss, a cancelled
>appointment -- can probably be solved by... I dunno. Facebook profile
>pictures? Prayer circles? Please, somebody, take me seriously.

Hugh says "reptiles are insulting all Forth posted to clf clf!" three
thousand times a year.

Normal reaction: hm, reptiles insulted *no* code on clf at all for the
entire last year. Unless Hugh himself is a reptile, and his insults
count under that heading? Anyway, the ratio of complaints to incidents
of complaints, if there *are* any, would have to be too high for me to
take this seriously.

Complete idiots' reaction: THE REAL PROBLEM IS THOSE DARN REPTILES

-----
To be continued:

"YOU CALLED ME AN IDIOT?! YOU MUST NOT WANT FORTH TO HAVE FEATURES"

"Forth Inc is paying him to say that! Back in Testra people called me an idiot and--"

"Nobody in Testra called me an idiot! Julien is a LIAR"

"No popular language would have a community that calls its complete
idiots 'idiots'! That's it-- I'm not going to write any Forth for EVEN
MORE decades. I hope you're all satisfied with this outcome."

menti...@gmail.com

unread,
Mar 24, 2017, 8:25:32 AM3/24/17
to
On Thursday, March 23, 2017 at 12:17:53 AM UTC-7, Richard Owlett wrote:
> I've not written FORTH in decades.
> Why?
> c.l.f !
>
> I came across FORTH when _BYTE_ published its FORTH issue.
As Byte subscriber, I got that Forth issue ~July of 1980.
[...]
>
> I assert that c.l.f is FORTH's worst enemy.

https://groups.google.com/d/msg/comp.lang.forth/7SqnXdv2bUE/NIECgXRS6U0J
was my first major comp.lang.forth post, on 12.DEC.1994, titled
"The Mind.rexx AI source code is free for porting to Forth."

I had posted the same announcement in several other prog-lang groups, but only c.l.f responded to me. Jeff Fox and robotics Forth-coder both got in touch with me, with the result that a few years later i spent 1998 porting Mind.Rexx into the MindForth AI program.

Two years ago in April 2015 I started porting MindForth into Perl, and yesterday on 2017-03023 I finally figured out how to make the Perlmind as fully functional as MindForth, that is, able to wait patiently for human user input without stalling the entire program. Pretty soon, with a single click I will put the Singularity Launch Codes up on the Web at the location indicated below.

Mentifex (Arthur)
--
http://ai.neocities.org/perlmind.txt -- Singularity Launch Codes
http://ai.neocities.org/mindforth.txt -- Forth AI in Win32Forth
http://www.nlg-wiki.org/systems/Special:Browse/Mind.Forth
http://dl.acm.org/citation.cfm?doid=307824.307853 -- ACM SIGPLAN Notices

rickman

unread,
Mar 24, 2017, 7:23:42 PM3/24/17
to
On 3/24/2017 8:25 AM, menti...@gmail.com wrote:
> On Thursday, March 23, 2017 at 12:17:53 AM UTC-7, Richard Owlett wrote:
>> I've not written FORTH in decades.
>> Why?
>> c.l.f !
>>
>> I came across FORTH when _BYTE_ published its FORTH issue.
> As Byte subscriber, I got that Forth issue ~July of 1980.
> [...]
>>
>> I assert that c.l.f is FORTH's worst enemy.
>
> https://groups.google.com/d/msg/comp.lang.forth/7SqnXdv2bUE/NIECgXRS6U0J
> was my first major comp.lang.forth post, on 12.DEC.1994, titled
> "The Mind.rexx AI source code is free for porting to Forth."
>
> I had posted the same announcement in several other prog-lang groups, but only c.l.f responded to me. Jeff Fox and robotics Forth-coder both got in touch with me, with the result that a few years later i spent 1998 porting Mind.Rexx into the MindForth AI program.
>
> Two years ago in April 2015 I started porting MindForth into Perl, and yesterday on 2017-03023 I finally figured out how to make the Perlmind as fully functional as MindForth, that is, able to wait patiently for human user input without stalling the entire program. Pretty soon, with a single click I will put the Singularity Launch Codes up on the Web at the location indicated below.

Isn't the Singularity a potentially dangerous thing? :(

--

Rick C

Dennis Ruffer

unread,
Mar 24, 2017, 8:46:47 PM3/24/17
to
The "problem" is not C.L.F. we had the same issues on GEnieNet, and it is not the "experts, but I commend those experts who do choose to work through the cruft and make some useful contributions here. Unless that use of "experts" meant the trolls who plague this forum, for they are certainly the root of the problem. I do believe that the trolls know who they are and revel in the disruptions they cause. I also believe that Trump and his "alternative facts" fan these flame throwers. Personally, I have no time for this shit-flinging and am long past tired of donning my asbestos suite. I know many other true experts in the Forth community who feel the same, and this truly does hurt Forth, FOREVER! The trolls have and will always win, until we can come together and do something about hate speech.

Julian Fondren

unread,
Mar 24, 2017, 9:49:27 PM3/24/17
to
On Friday, March 24, 2017 at 7:46:47 PM UTC-5, Dennis Ruffer wrote:
> I also believe that Trump and his "alternative facts" fan these flame throwers.

> Personally, I have no time for this shit-flinging

> The trolls have and will always win, until we can come together and do something about hate speech.

We're up to:

OP: With a time machine and a kind word (to me) you can make things
better.

Idiot: No, you need to battle these imaginary opponents.

druffer: Not to 'fling shit', but have you heard that Trump is a bad
person? Not to 'troll', but does anyone else here dislike 'hate
speech'?

I don't think it can get any worse from here. It can only echo earlier
themes, or digress entirely.


To anyone else who'd like to solve "the problem", I recommend that you
aspire to be like Dennis Ruffer of late: never post here, ever. When a
full decade passes without a single post to clf, we can say that "the
problem" (which apparently involves code review, discussing the nature
of Forth, and whatever freak accident inspired this random gassing
about politics) has been solved.

And as always, if you'd like better content, post it. You want to see
Forth code? Post it. You think Forth needs libraries? Write some. You
think the ratio of "experts controlling opinion" to "yourself sharing
your incomparable wisdom" should be improved? Then talk about Forth.
It's not hate speech yet.

Vultures hover over the dying in anticipating of the meal. These posts
that cry "if only you would listen to me, your nebulous distress
(please feel in the blanks yourself) will be eased." are the closest
you get get to vultures hovering online. There's no meal, but there's
satisfaction of a sort in the hovering. Even disgusted responses like
mine feed it. The vulture: "alas! for me to suffer such slings and
arrows, who came only out of pure human concern to ease the suffering
of others! Oh, I will feel *so* *bad* when you finally expire, when
could have listened :)"

There is nothing serious or sincere about your 'advice'.

Cecil Bayona

unread,
Mar 24, 2017, 11:09:37 PM3/24/17
to
On 3/24/2017 7:46 PM, Dennis Ruffer wrote:
> The "problem" is not C.L.F. we had the same issues on GEnieNet, and it is not the "experts, but I commend those experts who do choose to work through the cruft and make some useful contributions here. Unless that use of "experts" meant the trolls who plague this forum, for they are certainly the root of the problem. I do believe that the trolls know who they are and revel in the disruptions they cause. I also believe that Trump and his "alternative facts" fan these flame throwers. Personally, I have no time for this shit-flinging and am long past tired of donning my asbestos suite. I know many other true experts in the Forth community who feel the same, and this truly does hurt Forth, FOREVER! The trolls have and will always win, until we can come together and do something about hate speech.
>
There is enough crap here without bringing politics into the issue.

I define "experts" as those people who are totally intolerant of
anything Forth that is different from their ideas.

--
Cecil - k5nwa

hughag...@gmail.com

unread,
Mar 24, 2017, 11:48:00 PM3/24/17
to
Well, then, I'm not a Forth expert!

I have repeatedly said that I want Straight Forth to be a collaborative effort by the Forth community, so we could have a standard that makes sense (also: it is founded on an idea of Ilya Vasilyev that I hadn't thought of) --- I have never claimed to be the "leading expert" who alone has the right to define what Forth is --- I have never claimed to have learned Forth directly from Charles Moore in the 1970s, as if that matters in 2017.

I didn't support Trump in the election, and I still don't. I think that his plan of deporting illegal aliens will eventually expand into deporting citizens --- I could get deported to Mexico, even though I'm a citizen of America, and I don't even speak Spanish or have any family in Mexico --- the Nazis deported German citizens to Poland even though they weren't Poles and didn't speak Polish.

Most of the supporters of Trump are similar to Julien Fondren who wants "jack-booted thugs" (mostly out-of-uniform policemen) to remove their enemies from society for them --- or Rickman who wants to call 911 on his enemies and have the police "do his slugging for him" --- they expect Trump to rid America of undesirables, or at least beat them up, and they feel confident (without evidence) that they won't be among those undesirables.

I didn't support Hillary Clinton either --- she and Bill Clinton are bare-faced plunderers, with Slick Willy making $500,000 speeches while his wife was Secretary of State --- also, I think Bill Clinton was responsible for the crack-cocaine epidemic in America, because he allowed cocaine to be smuggled into Mena Arkansas when he was the governor of Arkansas.

krishna...@ccreweb.org

unread,
Mar 25, 2017, 1:49:07 PM3/25/17
to
On Thursday, March 23, 2017 at 2:17:53 AM UTC-5, Richard Owlett wrote:
> I've not written FORTH in decades.
> Why?
> c.l.f !
> ...

No, I disagree. Even though I no longer post as much as I used to on c.l.f., and even though the level of discourse here has gone down considerably of late, I don't believe the meager popularity or use of forth can be pinned on c.l.f.

Krishna


john

unread,
May 3, 2017, 5:55:07 AM5/3/17
to
In article <eb613feb-e819-4e9a...@googlegroups.com>,
menti...@gmail.com says...

>
> I had posted the same announcement in several other prog-lang groups, but only c.l.f responded to me. Jeff Fox and robotics Forth-coder both got in touch with me, with the result that a few years later i spent 1998 porting Mind.Rexx into the MindForth AI program.
>
> Two years ago in April 2015 I started porting MindForth into Perl, and yesterday on 2017-03023 I finally figured out how to make the Perlmind as fully functional as MindForth, that is, able to wait patiently for human user input without stalling the entire program. Pretty soon, with a single click I will put the Singularity Launch Codes up on the Web at the location indicated below.
>
> Mentifex (Arthur)

You may not hear from me again Arthur (time constraints) but I'll certainly be
taking a look at your work when available and thank you in advance for it.

Dont be too discouraged - my web site logs tell me there are far more people
interested in things than the few that put words online.
--

john

=========================
http://johntech.co.uk

"Bleeding Edge Forum"
http://johntech.co.uk/forum/

=========================

menti...@gmail.com

unread,
May 4, 2017, 8:28:38 AM5/4/17
to
Thank you, John, for them encouraging words,
and for the opportunity here and now to announce
to comp.lang.forth-ers the most recent (yesterday)
Mentifex AI initiative that mentions Forth AI:

http://mindsz.com/ideasz/ai-mind

is something that resulted from a link I found at
http://news.ycombinator.com/item?id=14261681
and so I created the most outrageous "ideasz" listing.

Bye for now,

Arthur
--
http://mindsz.com/ideasz/ai-mind
http://www.reddit.com/user/AiHasBeenSolved
http://ai.neocities.org/maintainer.html
http://cyborg.blogspot.com

Brad Eckert

unread,
May 6, 2017, 3:39:49 PM5/6/17
to
On Thursday, March 23, 2017 at 12:17:53 AM UTC-7, Richard Owlett wrote:
All unmoderated forums have the same problems. There's no buy-in. I think a star rating system would help. It looks like Google Groups has something like that, but nobody uses it. Whose fault is that?

When I have Forth-related question, Google often answers it. CLF is also helpful. Trolls are the price we pay for getting to say whatever, no questions asked.

The Beez

unread,
May 10, 2017, 5:08:01 AM5/10/17
to
IMHO the problem with Forth in general has always been that people are TALKING more about Forth than DOING things with Forth. E.g. the number of OO discussions are countless, but who has presented any REAL code in OO?

Another thing is that most people are SO convinced they are right any other opinion is rejected beforehand. And then it becomes personal.

I can only speak for myself, but I has less and less inclination to post anything there. If it's code, it's rejected. If it is any new idea, it's refuted or ignored. And all I find here is useless discussions and name calling - and I can do very little with that.

If it's good code, I can knick it. If it's useful comment, I can implement it. But this..

Hans Bezemer

Lars Brinkhoff

unread,
May 10, 2017, 5:23:43 AM5/10/17
to
The Beez write:
> IMHO the problem with Forth in general has always been that people are
> TALKING more about Forth than DOING things with Forth.

I mostly agree with you, but I guess it's reasonable that people come to
comp.lang.forth to talk about Forth. If they do something with Forth,
it usually doesn't show up here.

People post code, just not here.

There is some interesting coding going on out there. I sometimes check
in on Forth repositories on GitHub and make comments and even pull
requests. Out of the blue, someone jumped into my Forth and submitted a
port to asm.js.

If you want to go knee-deep in Forth code, comp.lang.forth isn't the
place. Maybe GitHub is, or could be.

Elizabeth D. Rather

unread,
May 10, 2017, 10:29:52 PM5/10/17
to
On 5/9/17 11:07 PM, The Beez wrote:
> IMHO the problem with Forth in general has always been that people are TALKING more about Forth than DOING things with Forth. E.g. the number of OO discussions are countless, but who has presented any REAL code in OO?

Whenever I teach a course in Forth, I always tell people to check out
c.l.f. Most report they just don't have time for that sort of thing.
That is certainly true of Leon and our other staff.

An awful lot of Forth programming is getting done by FORTH, Inc. and its
customers, though relatively little is OO. SWOOP is used extensively
throughout SwiftForth, but we have rarely used it in applications
because most of the apps we write are embedded and entirely procedural.
OOP is good for certain kinds of projects, but as an all-purpose
technique it's more overhead than help in many cases.

> Another thing is that most people are SO convinced they are right any other opinion is rejected beforehand. And then it becomes personal.
>
> I can only speak for myself, but I has less and less inclination to post anything there. If it's code, it's rejected. If it is any new idea, it's refuted or ignored. And all I find here is useless discussions and name calling - and I can do very little with that.
>
> If it's good code, I can knick it. If it's useful comment, I can implement it. But this..

Cheers,
Elizabeth


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

hughag...@gmail.com

unread,
May 11, 2017, 4:39:58 PM5/11/17
to
On Wednesday, May 10, 2017 at 7:29:52 PM UTC-7, Elizabeth D. Rather wrote:
> On 5/9/17 11:07 PM, The Beez wrote:
> > IMHO the problem with Forth in general has always been that people are TALKING more about Forth than DOING things with Forth. E.g. the number of OO discussions are countless, but who has presented any REAL code in OO?
>
> Whenever I teach a course in Forth, I always tell people to check out
> c.l.f. Most report they just don't have time for that sort of thing.
> That is certainly true of Leon and our other staff.

You insult all Forth programmers by describing yourself as the "leading expert" of Forth, which implies that all Forth programmers are inferior to you.

When you teach your course in Forth, how many of those students become Forth programmers? None! You turn them off from Forth with your arrogance. You can't name any student of your novice class that has become a Forth programmer --- all of them thought that you were a low-grade moron because you were teaching them to use PAD for holding strings, and all of them went back to programming in C --- all of them spent the rest of their lives telling the other C programmers that they learned Forth from the "leading expert" in Forth, and found Forth to be utterly stupid.

Also, SWOOP is grossly inefficient. This makes Forth appear to be inefficient and useless.

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

\ ******
\ ****** This provides the IS-A function for classes.
\ ******

98769876 constant class-id \ used to make sure a class is actually a class; must be a distinctive value

0
w field .class-parent \ pointer to parent class \ must be first field
w field .class-size \ size of object
w field .class-id \ should always be CLASS-ID
constant class-struct

\ Every object has a W field in front which is a pointer to the class-struct for its class.

: check-class ( class -- )
.class-id @ class-id <> abort" *** tried to use a class that wasn't actually a class ***" ;

: create-nada ( -- ) \ create a class that has no parent
create
nil , \ .class-parent \ there is no parent
w , \ .class-size \ room for the object's pointer to its class-struct
class-id , \ .class-id \ this is for error-checking
does> ( -- )
true abort" *** it is illegal to make objects of class NADA ***" ;

create-nada nada \ NADA is the only class that has no parent

\ NADA is only available so it can be the parent of classes that have no parent.
\ It is not really a class that can be used as such.

' alloc constant heap-new \ give this to the class to get a new object in the heap
' concrete-alloc constant dict-new \ give this to the class to get a new object in the dictionary

: class-size ( class -- size )
.class-size @
dup 0< abort" *** CLASS-SIZE given a class that never had its .CLASS-SIZE field set by END-CLASS ***" ;

: size' ( -- size ) \ stream: class-name
' >body dup check-class
class-size ;

: object-size ( object -- size )
@ \ -- class
.class-size @ ; \ -- size

: class ( -- class offset ) \ stream: class-name parent-name
create here \ -- class
' >body \ -- class parent
dup check-class \ -- class parent \ make sure PARENT is a class
dup , \ -- class parent \ .class-parent
-1 , \ -- class parent \ .class-size \ this will get filled in by END-CLASS
class-id , \ -- class parent \ .class-id \ this is for error-checking
class-size \ -- class offset
does> ( 'alloc -- adr ) \ make a new object ( 'ALLOC is either HEAP-NEW or DICT-NEW)
>r \ 'alloc -- \ r: -- class
r@ class-size swap execute \ -- object
dup r@ class-size erase \ zero out the object
r> over ! ; \ first field of object is pointer to class

: end-class ( class offset -- )
over check-class \ make sure CLASS is a class
swap .class-size ! ;

: <<is-a>> ( object target -- flag )
over check-class over check-class
= ;

: <is-a> ( object 'target -- flag )
swap @ swap >body <<is-a>> ;

: is-a ( object -- flag ) \ stream: target-class-name
' <is-a> ;

: [is-a] ( object -- flag ) \ stream: target-class-name
postpone ['] postpone <is-a> ;
immediate

: <<is-child-of>> ( ancestor class -- flag )
over check-class over check-class
begin
2dup = if 2drop true exit then
@ \ -- ancestor parent \ .class-parent is first field
dup 0= if 2drop false exit then
again ;

: <is-child-of> ( object 'ancestor )
>body swap @ <<is-child-of>> ;

: is-child-of ( object -- flag ) \ stream: ancestor-class-name
' <is-child-of> ;

: [is-child-of] ( object -- flag ) \ stream: ancestor-class-name
postpone ['] postpone <is-child-of> ;
immediate

\ IS-CHILD-OF tests if the object has ANCESTOR as an ancestor, meaning that it can use ANCESTOR's methods.

: <is-parent-of> ( object 'child )
>body swap @ swap <<is-child-of>> ;

: is-parent-of ( object -- flag ) \ stream: child-class-name
' <is-parent-of> ;

: [is-parent-of] ( object -- flag ) \ stream: child-class-name
postpone ['] postpone <is-parent-of> ;
immediate

\ IS-PARENT-OF tests if the object has CHILD as a child, meaning that it can be upgraded to be a CHILD.

: <become> ( object 'class -- new-object )
>body >r \ -- object \ r: -- class
r@ class-size realloc \ -- new-object
r> over ! ; \ -- new-object \ class is object's first field

\ <BECOME> converts an object into a new class.
\ The new class must either be an ancestor or a child of the object's class.
\ Use IS-CHILD-OF to find out if the object is a child of the new class (can be downgraded to the parent class).
\ Use IS-PARENT-OF to find out if the object is a parent of the new-class (can be upgraded to the child class).

: become ( object -- new-object ) \ stream: class-name
' <become> ;

: [become] ( object -- new-object ) \ stream: class-name
postpone ['] postpone <become> ;
immediate

Cecil Bayona

unread,
May 11, 2017, 5:01:52 PM5/11/17
to
On 5/11/2017 3:39 PM, hughag...@gmail.com wrote:
> On Wednesday, May 10, 2017 at 7:29:52 PM UTC-7, Elizabeth D. Rather wrote:
>> On 5/9/17 11:07 PM, The Beez wrote:
>>> IMHO the problem with Forth in general has always been that people are TALKING more about Forth than DOING things with Forth. E.g. the number of OO discussions are countless, but who has presented any REAL code in OO?
>>
>> Whenever I teach a course in Forth, I always tell people to check out
>> c.l.f. Most report they just don't have time for that sort of thing.
>> That is certainly true of Leon and our other staff.
>
> You insult all Forth programmers by describing yourself as the "leading expert" of Forth, which implies that all Forth programmers are inferior to you.
>
> When you teach your course in Forth, how many of those students become Forth programmers? None! You turn them off from Forth with your arrogance. You can't name any student of your novice class that has become a Forth programmer --- all of them thought that you were a low-grade moron because you were teaching them to use PAD for holding strings, and all of them went back to programming in C --- all of them spent the rest of their lives telling the other C programmers that they learned Forth from the "leading expert" in Forth, and found Forth to be utterly stupid.
>

None might be a tad much, I would assume that some go back to where they
came from and use Forth in projects, we really don't know for a fact as
to what happens to the student.

> Also, SWOOP is grossly inefficient. This makes Forth appear to be inefficient and useless.

Object code turns out to be bad in just about every language, an idea
that sounded good in theory but in practice too many programmers are
dissatisfied with the results. I am getting the feeling that recognizers
will turn out the same way but I'm guessing here.

When I used Delphi they had much better Object Code than C++ (to my
liking) but after a while I quit using the feature starting with dynamic
binding at runtime.

I personally have mixed feelings about Forth, I like it's simplicity and
programming methodology but the lack of ready made tools is
discouraging, and is a reason why I got a copy of 8th, Forth like with a
rich assortment of useful tools. For embedded systems I like Forth to be
simple and close to the hardware, for desktop I want Forth to be rich in
useful tools in libraries.

--
Cecil - k5nwa

Bill Zimmerly

unread,
May 11, 2017, 11:59:05 PM5/11/17
to
On Thursday, March 23, 2017 at 2:17:53 AM UTC-5, Richard Owlett wrote:
> I assert that c.l.f is FORTH's worst enemy.

I so agree with you, Richard. This place was so infected with trolls back then that I quit participating in disgust too. And that happened before you came to visit me! ... It is good to see you on here again, and hopefully, your interest in FORTH will be kindled again.

Sincerely,
- Bill

Elizabeth D. Rather

unread,
May 12, 2017, 3:42:01 AM5/12/17
to
Actually, most of them continued to use Forth in projects, at least for
a time. Ray Duncan was one of my earlier students. Leon Wagner, Brad
Rodriguez, many more have had long careers in Forth.

JUERGEN

unread,
May 12, 2017, 6:18:25 AM5/12/17
to
Forth Killer Hugh Aquilar has no clue how the commercial world works. He has definitely pissed off more people here and as well turned them off using Forth than anybody else could probably.
I assume your training is mostly paid for - so his arrogance to judge the reasons for them to come to your courses is beyond me and probably most of the people here.

Ilya Tarasov

unread,
May 12, 2017, 6:32:01 AM5/12/17
to
> rich assortment of useful tools. For embedded systems I like Forth to be
> simple and close to the hardware, for desktop I want Forth to be rich in
> useful tools in libraries.

Agreed for embedded systems, but I have a note about desktop. I just finish a new mathematical research with great help of Forth, in this case it was just a Matlab replacement. No libraries were used, because of no libraries are exist for new modification of mathematic transformation. Most important things Ive got from Forth was interactive mode and fast direct graphics. I think it will consume more time to debug using C++/Delphi. So I'm not too Forth-dependent in mind, but in fact I always start to research with Forth. This side may be stronger with less effort to library development. Interactivity is a key feature, and libraries may come from other languages if needed.

Cecil Bayona

unread,
May 12, 2017, 8:12:35 PM5/12/17
to
I would assume that most companies that use a non-standard like Forth
keep quiet about it for one of several reasons;

1. They consider Forth of be a strategic advantage over the competition
and therefore they keep quiet about what software they use. This can be
an advantage with a company that interfaces to changing hardware as
Forth is great at that task.

2. They appreciate the advantage Forth can give so they use it but are
embarrassed to admit they are using software that the programming
community looks down on.

3. They figure what they use is no ones business but their own and don't
discuss what they are doing with the general public.

--
Cecil - k5nwa

Cecil Bayona

unread,
May 12, 2017, 8:29:38 PM5/12/17
to
A problem with Forth is libraries not being available but if one works
with Forth one will develop their own set of tools to use in their
application domain after a while which speeds up development even more.

I stay away from C++, Delphi can be reasonably good at debugging since
it has optional runtime testing that can be enabled and it catches a lot
of dumb mistakes. I still prefer Forth as the development strategies it
encourages and its interactivity usually translates to few coding
errors, one still has to get the algorithms right but its a big help in
the testing phase so errors tend to get caught early on.

--
Cecil - k5nwa

hughag...@gmail.com

unread,
May 12, 2017, 8:44:48 PM5/12/17
to
You routinely brag about your association with people who have accomplishments --- you have made a career out of bragging about your association with Charles Moore --- but none of these people brag about being associated with you.

Ray Duncan of Laboratory Microsystems Inc. sold UR/Forth. This had very good support for strings --- my own <CSTR etc. is loosely based on UR/Forth's string package --- you put PAD in ANS-Forth because that is really the entirety of your knowledge of strings, and now you describe my STRING-STACK.4TH as being useless.

As for Brad Rodriguez, he has accomplishments in Forth --- I've never heard of him bragging about his association with you.

I've never heard of anybody who has accomplishments in Forth bragging about their association with you --- instead, you have twits and creeps such as Julien Fondren and Rick Collins --- your novice class at Forth Inc. drives intelligent people away from Forth.

hughag...@gmail.com

unread,
May 12, 2017, 10:15:57 PM5/12/17
to
I was told at Testra that they would not build an experimenters' board for the RACE because: "hobbyists require too much support, and they don't have any money."

Support is a big problem for anybody selling a Forth compiler. The entire Forth language has to be documented because there is no standard for Forth --- ANS-Forth is useless crippleware that bans features, so these features get implemented in various non-standard ways in the various Forth compilers.

ANS-Forth is also ambiguous, so significant amounts of documentation are needed for any particular ANS-Forth compiler to describe how it differs from all the other ANS-Forth compilers --- other languages have a standard, so somebody can become a "portable programmer" in the sense of being able to work with any standard-compliant compiler, and being able to carry code-libraries between the standard-compliant compilers.

A company may use Forth, but only for in-house programming --- none of this Forth code is exposed to the outside world --- the employees will avoid Forth like the plague because they know that becoming skilled at a non-standard in-house programming language does not help them get employment anywhere else, so it is a dead-end job (this was my situation at Testra).

Of course, REXX is an in-house programming language at IBM --- that is not so bad though, because IBM pays well and provides health insurance --- companies that use Forth tend to be rinky-dink operations offering low pay and zero benefits in exchange for hard work.

Also, there is the problem of boredom --- I was pretty proud of MFX, but that didn't mean that I wanted to spend my life as one of only two MFX programmers in the world --- money cures boredom, because you can have a fun hobby on the side (I like skiing and snow-boarding, but I had to stop doing this when I worked at Testra because I didn't have any health insurance if I were to get injured, plus the tickets and equipment cost money).

JUERGEN

unread,
May 13, 2017, 3:21:19 AM5/13/17
to
As outstanding FORTHKILLER YOU are probably the most talked about person in Forth. A lot of people will NOT come out and talk about relationships to any commercial Forth company and especially Elizabeth. If somebody were to dare to do so they know that you would START THROWING SHIT at them and whatever else you ugly mind makes you do as I have experienced. Nobody wants this - and so you have achieved what you are probably paid for - Kill Forth. They stay stumm.

JUERGEN

unread,
May 13, 2017, 3:30:32 AM5/13/17
to
On Saturday, May 13, 2017 at 1:44:48 AM UTC+1, hughag...@gmail.com wrote:
Heil H. - your arrogance is beyond description. Or are you God in disguise? Or just the incarnation of the devil. How do you dare to set the standard about what people are proud about? You main accomplishment is to piss at people and piss off people here and most probably at home.

Andrew Haley

unread,
May 13, 2017, 5:44:00 AM5/13/17
to
JUERGEN <epld...@aol.com> wrote:
>
> Heil H. - your arrogance is beyond description. Or are you God in
> disguise? Or just the incarnation of the devil. How do you dare to
> set the standard about what people are proud about? You main
> accomplishment is to piss at people and piss off people here and
> most probably at home.

Oh dear, Juergen, come on. You rise much too quickly to this
provocation. Just think of our resident nutcase[s] as crazy drunkards
yelling at the moon, and pass on quickly by.

Andrew.

Alex

unread,
May 13, 2017, 7:52:00 AM5/13/17
to
I've nothing but sympathy for Juergen and his obvious anger. Hugh is
more than a nutcase because it's not the moon he's howling at; it's one
person that Hugh keeps attacking, year after year after year. That kind
of sustained and deliberate violence is unacceptable, and should not be
ignored.

--
Alex

Andrew Haley

unread,
May 13, 2017, 9:47:35 AM5/13/17
to
Alex <al...@rivadpm.com> wrote:
> On 5/13/2017 10:43, Andrew Haley wrote:
>> JUERGEN <epld...@aol.com> wrote:
>>
>> Oh dear, Juergen, come on. You rise much too quickly to this
>> provocation. Just think of our resident nutcase[s] as crazy
>> drunkards yelling at the moon, and pass on quickly by.
>
> I've nothing but sympathy for Juergen and his obvious anger. Hugh is
> more than a nutcase because it's not the moon he's howling at; it's
> one person that Hugh keeps attacking, year after year after
> year. That kind of sustained and deliberate violence is
> unacceptable, and should not be ignored.

Fair enough. I suppose everyone must act according to their
consicence.

Andrew.

Ilya Tarasov

unread,
May 13, 2017, 11:25:08 AM5/13/17
to
суббота, 13 мая 2017 г., 3:29:38 UTC+3 пользователь Cecil - k5nwa написал:
I see no major problem here. Yes, having libraries is good, but with small community it will takes too much effort. Direct way, when someone is forcing libraries development by proposing standards, is inefficient by the fact. If we will switch to projects, where all extensions will be applications, not libraries, life will be easier. If I want to calculate a sum of array, I don't need a library like 'gsumarray' or 'OpenArray', because effort to write it is laughable small. Moreover, having innatural limiting documents may block application delelopment instead of boosting.

This is not so important when we try to write a program in common and well-known area. It is understandable when programmers want a library (just take a look on the eternal questions from Gavino about USB 3.0 and web-surfing). For a new area all languages has no libraries, and Forth features may highlight.

hughag...@gmail.com

unread,
May 13, 2017, 12:57:24 PM5/13/17
to
Juergen Pintaske is an employee of MPE.
Andrew Haley is an employee of Forth Inc.
Alex McDonald claims that he "does standards for a living" which implies that he is getting paid.

Definitely a pattern here!

Elizabeth Rather has been claiming to be the "leading expert" of Forth year after year after year. That kind of sustained and deliberate violence is unacceptable!

Alex

unread,
May 13, 2017, 1:26:39 PM5/13/17
to
On 5/13/2017 17:57, hughag...@gmail.com wrote:
> On Saturday, May 13, 2017 at 6:47:35 AM UTC-7, Andrew Haley wrote:
>> Alex <al...@rivadpm.com> wrote:
>>> On 5/13/2017 10:43, Andrew Haley wrote:
>>>> JUERGEN <epld...@aol.com> wrote:
>>>>
>>>> Oh dear, Juergen, come on. You rise much too quickly to this
>>>> provocation. Just think of our resident nutcase[s] as crazy
>>>> drunkards yelling at the moon, and pass on quickly by.
>>>
>>> I've nothing but sympathy for Juergen and his obvious anger. Hugh
>>> is more than a nutcase because it's not the moon he's howling at;
>>> it's one person that Hugh keeps attacking, year after year after
>>> year. That kind of sustained and deliberate violence is
>>> unacceptable, and should not be ignored.
>>
>> Fair enough. I suppose everyone must act according to their
>> consicence.
>>
>> Andrew.
>
> Juergen Pintaske is an employee of MPE. Andrew Haley is an employee
> of Forth Inc. Alex McDonald claims that he "does standards for a
> living" which implies that he is getting paid.
>
> Definitely a pattern here!

Yes. Apart from the fact that Andrew works for Red Hat Inc and not Forth
Inc, and that I don't get paid for any work on Forth, you're right
there's a pattern. The pattern is competence; someone is paying us
because we're worth paying.

You, not so much. It's easy seeing why.

--
Alex

hughag...@gmail.com

unread,
May 13, 2017, 1:59:24 PM5/13/17
to
Definitely a pattern here!
https://groups.google.com/forum/#!topic/comp.lang.forth/SlWTO-SEeJ8%5B76-100%5D

On Monday, December 5, 2016 at 12:33:56 PM UTC-7, hughag...@gmail.com wrote:
> On Monday, December 5, 2016 at 11:53:13 AM UTC-7, Alex wrote:
> > On 12/5/2016 18:39, hughag...@gmail.com wrote:
> >
> > > Andrew Haley is an
> > > employee of Elizabeth Rather
> >
> > Really?
> >
> > --
> > Alex
>
> Yes, of course. Why else would he have been appointed to the Forth-200x committee? He says this:
>
> On Saturday, June 25, 2016 at 3:09:53 AM UTC-7, Andrew Haley wrote:
> > Brad Eckert <hwf...@gmail.com> wrote:
> > >
> > > Forth is a language best taught by experts. You can teach yourself,
> > > but it's going to take a while if you're learning by doing. Using a
> > > commercial Forth is a good way to learn from an expert.
> >
> > I was fortunate enough to work for COMSOL and attend (and later teach)
> > some training courses and then even do some things with Forth, Inc.
> > I'm not sure that I would ever have really got the idea of Forth
> > without being taught by experts.
>
> This is the COMSOL he is referring to:
> http://www.computer-solutions.co.uk/chipdev/forth.htm

Cecil Bayona

unread,
May 13, 2017, 2:25:25 PM5/13/17
to
Personally I like libraries that I write and no they are not bloated,
but I find annoying here is that if you speak of libraries everyone
start coming down on you as libraries are not the Forth way.

That is being a hypocrite since everyone here that writes ANS Forth uses
libraries, the Forth Standard calls for libraries, they call it word
sets but they are libraries is every sense of the word. Charles Moore
uses libraries, his microfiche of routines is a library mind you a very
primitive one but it's a library or a collection of words to carry out a
specific task for the purpose of reuse of code.

As usual I ignore it and do as I please, as Forth is the ultimate
personal expression of programming to be tweaked to ones need.

--
Cecil - k5nwa

JUERGEN

unread,
May 14, 2017, 3:33:46 AM5/14/17
to
If you see this as approved normal behaviour within your family / group / job CLF - fine.
I have been educated differently.

Cecil Bayona

unread,
May 14, 2017, 1:04:13 PM5/14/17
to
But responding in an angry rant won't win you any points either.

--
Cecil - k5nwa

JUERGEN

unread,
May 14, 2017, 2:45:11 PM5/14/17
to
Winning Points Cecil ? - Was never the idea or target.
And as you want to comment please do it in context so we all understand where to place you - or don't as many here - which I can understand as Hugh would throw shit in response:
Which reaction does your education expect you to do if you are attacked aggressively and viciously? Lukewarm does not do it.

Paul Rubin

unread,
May 14, 2017, 3:02:52 PM5/14/17
to
JUERGEN <epld...@aol.com> writes:
> Was never the idea or target.

Well, what IS the idea or target?

Cecil Bayona

unread,
May 14, 2017, 3:12:39 PM5/14/17
to
Winning point is dismissed when done as a rant, it's just part of
civilized behavior to be civil when possible.


--
Cecil - k5nwa

Cecil Bayona

unread,
May 14, 2017, 3:22:42 PM5/14/17
to
Most of use misbehave when young because we don't know any better but
eventually we have to grow up and behave as civilized adults, some never
do, that is just part of human nature.

--
Cecil - k5nwa

hughag...@gmail.com

unread,
May 14, 2017, 3:25:15 PM5/14/17
to
Juergen Pintaski is an employee of MPE --- I'm not --- he's winning plenty of "points" with Stephen Pelc, and a paycheck.

Way back in 2009 I complained that there was no double-precision division in ANS-Forth, which I needed for my continued-fraction program. Both Elizabeth Rather and Stephen Pelc said that I'm utterly incompetent as a Forth programmer, and that I should just go away. They want to have complete control over Forth --- anybody who doesn't brown-nose gets dismissed as utterly incompetent and not a Forth programmer at all --- it is "approved normal behavior" in all corporations to view everybody outside of the corporation as either a customer or an enemy (I was a customer of Forth Inc. because I bought SwiftForth version-2 for over $400, but I ceased to be a customer when I declined to pay the $300 upgrade to version-3 to get their bug fixes).

From a legal perspective, a corporation is the same as a person. If a corporation were an actual person though, it would be a sociopath. Forth Inc. and MPE are just typical corporations. They strive continually to discredit the Forth community, which they see as competition.

ANS-Forth was purposely sabotaged to make it useless. The strategy of Forth Inc. and MPE is to discredit all Forth programmers by saying that they are non-standard, because they refuse to adhere to the gross limitations of ANS-Forth --- they themselves routinely ignore the ANS-Forth standard however, because this is necessary to write non-trivial programs, and because doing so traps their customers in vendor lock-in --- they rely on bullying to make this double-standard seem legitimate.

I think my STRING-STACK.4TH is pretty good Forth, and it is fully ANS-Forth compliant. Why haven't the Forth-200x committee provided something similar? Stephen Pelc, Leon Wagner, Bernd Paysan and Anton Ertl are all capable of writing Forth code like this. It is pretty good Forth, but it is just intermediate-level programming; I'm hardly the only Forther in the world who is capable of this. So, why did I have to write this in the year 2016? Why do Stephen Pelc, Leon Wagner, Bernd Paysan and Anton Ertl continue to say that PAD is the standard for string storage? Why do they continue to say that the only string-stack written is Wil Baden's, which is too inefficient to be used? The answer to all of these questions, is that the Forth-200x committee consider the Forth community to be their enemies, and they are striving to prevent Forthers from writing programs that work with strings --- they want to trap the Forth community at a level where they can only write trivial toy programs, but they can't become competitive.

ANS-Forth is like a kindergarten class that you can never graduate from. Imagine a kindergarten class in which all of the students are old and gray-haired, but they continue to sit at the tiny desks writing toy programs that use PAD to hold strings. Their programs don't even have to work, because they can never graduate from the class anyway, so there is no purpose in learning anything.

Cecil Bayona

unread,
May 14, 2017, 3:48:57 PM5/14/17
to
And repeating the same arguments everyday does not win over any fans either.

Several times I stopped looking at this list for the non-stop arguments
and hate speech from all sides of an argument. Eventually I start
looking at the list again only to stop later.

The same was happening in Facebook so after un-following about 5 persons
the place has become civilized again. I need to find a real newsreader
that can block either topics or individuals to cut down all this useless
chatter.

Right now I use ThunderBird but I cannot use the mail rules which are
pretty powerful to control the news accounts.

--
Cecil - k5nwa

Rod Pemberton

unread,
May 15, 2017, 12:23:09 AM5/15/17
to
On Sun, 14 May 2017 12:25:14 -0700 (PDT)
hughag...@gmail.com wrote:

I know this was just part of another rant by Hugh, but I like to point
out the logical faults.

> From a legal perspective, a corporation is the same as a person.

... is *almost* the same ...

A corporation can have it's charter and business license revoked. I.e.,
it has no right to life.

A corporation has no religious freedom. I.e., it can't use religious
beliefs of owners and employees as a reason to not partake in commerce
- which is the legal purpose of a business - or to disobey laws, e.g.,
conscientious objector.

A corporation can't spend any time in jail. So, all legal judgments
become financial penalties.

A corporation can own (and use) restricted weapons rather easily.

A corporation can create mortgages, other financial contracts, and
charge high rates of interest.

etc.

> If a corporation were an actual person though, it would be a
> sociopath.

A corporation is operated by people. If a corporation is a sociopath,
that implies those who operate it are also. Are you saying all those
people are sociopaths?


Rod Pemberton
--
"Well, many people are really f---ing stupid too. Should we just adopt
all their standards?" - George Carlin

Rod Pemberton

unread,
May 15, 2017, 12:23:19 AM5/15/17
to
On Sun, 14 May 2017 14:48:55 -0500
Cecil Bayona <cba...@cbayona.com> wrote:

> Right now I use ThunderBird but I cannot use the mail rules which are
> pretty powerful to control the news accounts.
>

Can you select all messages by a particular author and then mark then
as being read? That's usually a standard feature. You should be able
to delete them after selection also.

Cecil Bayona

unread,
May 15, 2017, 1:14:55 AM5/15/17
to
On 5/14/2017 11:24 PM, Rod Pemberton wrote:
> On Sun, 14 May 2017 14:48:55 -0500
> Cecil Bayona <cba...@cbayona.com> wrote:
>
>> Right now I use ThunderBird but I cannot use the mail rules which are
>> pretty powerful to control the news accounts.
>>
>
> Can you select all messages by a particular author and then mark then
> as being read? That's usually a standard feature. You should be able
> to delete them after selection also.
>
>
> Rod Pemberton
>

Thunderbird can setup all sorts of complex rules to sort delete, change
the status and classify mail but when I set those rules for the news
account the do not apply automatically like the same rules apply for
mail, I have to apply them manually. I can go to the news folder call
the rules option and tell them to run and it works but it's also
supposed to run when messages become available.

For example I can set rules to delete mail from a certain or list of
individuals, I can tag them so they appear with the text color changed,
move the message to a particular folder manually it works but not
automatically like it does for email.

I tried setting it a different way to see if it works, but I need the
individuals in the rules to post a message so I can see if the rules are
working. Certain rules I can't verify because the rule is to delete
their message but after a while I will know its working because mail
from those individuals no longer show up, but some have a color tag
assigned to their messages and I will be able to spot if it working
right away.



--
Cecil - k5nwa

Cecil Bayona

unread,
May 15, 2017, 1:17:56 AM5/15/17
to
On 5/14/2017 11:24 PM, Rod Pemberton wrote:
> On Sun, 14 May 2017 14:48:55 -0500
> Cecil Bayona <cba...@cbayona.com> wrote:
>
>> Right now I use ThunderBird but I cannot use the mail rules which are
>> pretty powerful to control the news accounts.
>>
>
> Can you select all messages by a particular author and then mark then
> as being read? That's usually a standard feature. You should be able
> to delete them after selection also.
>
>
> Rod Pemberton
>
I just made a rule about myself, to tag my post in a particular color so
when I receive this post I will see if it's now working.

--
Cecil - k5nwa

Cecil Bayona

unread,
May 15, 2017, 1:30:18 AM5/15/17
to
Aha it works, my message showed up with green text for the subject so
the filter rules are now working, just needed a different way of
entering them, at least some progress is being made. For email there
were two different ways to enter rules but for newsgroups only one
works, that's OK.

Now I can move some persons post to a special folder so I don't have to
read it if I'm not in the mood, three persons are outright deleted I can
think of two more that I will add because of their usual content.
--
Cecil - k5nwa

Robert L.

unread,
May 15, 2017, 1:45:43 AM5/15/17
to
On 5/12/2017, Ilya Tarasov wrote:

> Most important things Ive got from Forth was interactive mode

Many languages are interactive: Ruby, Perl, Python, Scheme, Racket,
Lisp, OCaml, ML, Tcl, etc.


--
[Putin's] comments are in response to the ... Court's decision to overturn the
sentence of ... [a Moslem] who brutally raped a ten year old boy.... The
Supreme Court attributed their decision to ... [the Moslem's] "distress" and
the fact that he and the boy did not speak the same language.
europeancivilwar.com/putin-calls-out-western-europeans-for-insanity-child-rape-acceptance

JUERGEN

unread,
May 15, 2017, 2:08:44 AM5/15/17
to
As you can read higher up idea or target comes from elsewhere.
I just react to this behaviour. Simple.
Forth Killer Hugh Aquilar likes to throw shit at people - at me again - and I am old enough to decide to throw it back or not. Simple.

Gerry Jackson

unread,
May 15, 2017, 4:53:12 AM5/15/17
to
On 14/05/2017 20:25, hughag...@gmail.com wrote:
> ANS-Forth was purposely sabotaged to make it useless.

In the unlikely event of that being the case, ISTM that the saboteurs
were incompetent. e.g.

> I think my STRING-STACK.4TH is pretty good Forth, and it is fully
> ANS-Forth compliant. Why haven't the Forth-200x committee provided
> something similar?

Why should they? It's not the job of a standards committee to write
libraries. It could be argued that they should specify the words such a
library should contain but imagine the howls of outrage from you and HAA
that would cause. Being on a standards committee is a thankless task and
I, for one, am grateful for the time they spend on the task even if I
don't always like the result. I am reminded of a statement in a Standard
Pascal book: " ... is fed up with people who complain about the wording
of the draft, and expect him or someone else to find a solution for them
to criticise next time"

--
Gerry

Gerry Jackson

unread,
May 15, 2017, 4:53:59 AM5/15/17
to
On 14/05/2017 20:48, Cecil Bayona wrote:
> Right now I use ThunderBird but I cannot use the mail rules which are
> pretty powerful to control the news accounts.

I use Thunderbird filters to auto-delete everything from Gavino and WJ -
at least until they change their name when it only takes a few seconds
to extend the filters. I only see their crap when somneone is silly
enough to respond to them.

--
Gerry

Mark Wills

unread,
May 15, 2017, 5:27:33 AM5/15/17
to
Heads up: Thunderbird got dropped last week by the Mozilla corporation,
so its future is somewhat unclear.

Why an email client needs 20 odd years of continuous development is beyond
me, and apparently beyond Mozilla, who are too busy adding shinies to
FireFox.

Joel Rees

unread,
May 15, 2017, 9:54:49 AM5/15/17
to
On Monday, May 15, 2017 at 2:45:43 PM UTC+9, Robert L. wrote:
> On 5/12/2017, Ilya Tarasov wrote:
>
> > Most important things Ive got from Forth was interactive mode
>
> Many languages are interactive: Ruby, Perl, Python, Scheme, Racket,
> Lisp, OCaml, ML, Tcl, etc.

Python, perl, and Ruby are not interactive in the way that Forth is.

I have not used Scheme, Racket, Ocaml, or ML, and I don't remember about
TCL.

Lisp is that beautiful language that is too beautiful for me to
be comfortable with, but it is interactive in much the same way as Forth.

And there's a reason for that.

--
Joel Rees

Random ranting:
http://reiisi.blogspot.com

Andreas Klimas

unread,
May 15, 2017, 10:30:06 AM5/15/17
to
On 2017-05-15 13:54:48 +0000, Joel Rees said:

> On Monday, May 15, 2017 at 2:45:43 PM UTC+9, Robert L. wrote:
>> On 5/12/2017, Ilya Tarasov wrote:
>>
>>> Most important things Ive got from Forth was interactive mode
>>
>> Many languages are interactive: Ruby, Perl, Python, Scheme, Racket,
>> Lisp, OCaml, ML, Tcl, etc.
>
> Python, perl, and Ruby are not interactive in the way that Forth is.
>
> I have not used Scheme, Racket, Ocaml, or ML, and I don't remember about
> TCL.

I have used Smalltalk, Racket (which is a superset of Scheme) and TCL
(a really horrible language, IMHO).

forth is more concise and quicker. to have the datatastack is a big
win. to enter
new definitions on the fly and try them out, step by step is even simpler than
in lisp. In lisp evaluation is from inside to outside, so without a
sophisticated
source level debuger (which in turn needs slime which in turn needs
emacs) its not simple to test a sequence of functions. results are not
on Stack, so you need to define variables all the way. in forth you
simply enter the word and inspect the result, then enter the next
word - how wunderful simple this is!

Andreas Klimas

unread,
May 15, 2017, 10:31:12 AM5/15/17
to
I agree to Gerry

Ilya Tarasov

unread,
May 15, 2017, 11:39:17 AM5/15/17
to
I see no statement to answer here. Forth is interactive, easy to write and fast enough, so I use it. I use Tcl when required by other software with embedded tcl engine. For other languages I see no tasks around, and there is no reason to switch to them from Forth just because 'it is interactive too'.

hughag...@gmail.com

unread,
May 15, 2017, 2:43:37 PM5/15/17
to
On Monday, May 15, 2017 at 1:53:12 AM UTC-7, Gerry wrote:
> On 14/05/2017 20:25, hughag...@gmail.com wrote:
> > ANS-Forth was purposely sabotaged to make it useless.
>
> In the unlikely event of that being the case, ISTM that the saboteurs
> were incompetent. e.g.

That sounds like an argument for ignoring ANS-Forth --- it was written by incompetents --- press the flush lever!

> > I think my STRING-STACK.4TH is pretty good Forth, and it is fully
> > ANS-Forth compliant. Why haven't the Forth-200x committee provided
> > something similar?
>
> Why should they? It's not the job of a standards committee to write
> libraries. It could be argued that they should specify the words such a
> library should contain but imagine the howls of outrage from you and HAA
> that would cause.

I didn't say that they should declare their string-stack to be the standard. I don't want them to declare anything to be standard at this time because I have no intention at this time of being their follower --- they have never earned my respect, or made any effort to do so --- they really need to start out as my peer, and then work their way up, not just declare themselves to be the rulers of the world by fiat.

What I am saying, is that if they are going to describe themselves as leaders of the Forth community, they should first write useful Forth code-libraries --- this would be a good start toward gaining the respect of Forthers such as myself --- this is actually the only way to gain credence as leaders.

I am extremely offended by Elizabeth Rather who declares herself to be the "leading expert" of Forth, while her entire Forth coding experience involves copying code snippets from the "Starting Forth" book, and teaching a novice-class in which PAD is described as the standard way to store strings. She doesn't actually know what a code-library is (she thinks this involves cut-and-paste from old programs in a "back pocket") --- I have no respect for Elizabeth Rather whatsoever --- her contribution to Forth has been purely negative.

If Elizabeth Rather had gotten the job at Testra writing the development system for the MiniForth processor, she would have likely out-sourced the work to Stephen Pelc because she had no programmers working at Forth Inc. in 1994 (this is why Forth Inc. didn't write a reference compiler for ANS-Forth prior to getting their ANS-Forth document rubber-stamped by ANSI in 1994).

Would Stephen Pelc have succeeded? I don't think so! Stephen Pelc has admitted on comp.lang.forth that he doesn't know how to write a cross-compiler:

On Tuesday, December 8, 2009 at 3:18:13 PM UTC-7, Stephen Pelc wrote:
> There are three types of compilation involved
> 1) Host compilation
> 2) Clone compilation (target CPU same as host and memory matches)
> 3) Cross compilation (target CPU is not host CPU)
>
> In the third case you have to simulate *everything* when dealing
> with both the definition and execution of defining words. It's not
> easy. You also have to extend the normal Forth compiler by at least
> two time frames. Forth cross compilers are much more complicated
> and much more subtle than they appear to be.
>
> That's one reason why the cross compiler proposal is the way it is.
> The big downside of the proposal is that the original was written in
> a hurry to satisfy EuroPay. It also reflects the state of Forth cross
> compiler design of about 15 years ago. I have prototyped a design
> for which the current proposal is inappropriate.

Simulating the MiniForth on the host computer at compile-time would not have worked. I guarantee that if I had told Testra that this was my plan for MFX, they would have fired me on the spot --- describing cross-compilers as "complicated and subtle" with a lot of hand-waving is not the best way to inspire confidence --- I mean, there is a reason why Testra hired me to write MFX, rather than Stephen Pelc.

> Being on a standards committee is a thankless task and
> I, for one, am grateful for the time they spend on the task even if I
> don't always like the result. I am reminded of a statement in a Standard
> Pascal book: " ... is fed up with people who complain about the wording
> of the draft, and expect him or someone else to find a solution for them
> to criticise next time"

If they are fed up with getting no respect, they could just spend less time braying about how they are the rulers of the world --- this would free up about 12 hours per day --- they could put this time to good use by writing code-libraries in Forth that are useful, so that they would gradually gain respect.

Writing code-libraries does take time --- this fact I know from experience! --- you know it too!

hughag...@gmail.com

unread,
May 15, 2017, 3:18:22 PM5/15/17
to
On Saturday, May 13, 2017 at 12:30:32 AM UTC-7, JUERGEN wrote:
> Heil H. - your arrogance is beyond description. Or are you God in disguise?

I have never declared myself to be the "leading expert" of Forth. I don't pretend to be God.

> Or just the incarnation of the devil.

I don't declare people to be Forth experts in exchange for them declaring me to be the "leading expert" --- I don't ask anybody to sell their soul.

People can declare themselves to be Forth experts --- I recommend that they write code-libraries in Forth to prove themselves as Forth experts --- if they don't write code-libraries, then they are just blowing hot air.

> How do you dare to set the standard about what people are proud about?

I didn't write the ANS-Forth standard --- you have me confused with somebody else --- I don't tell Forth programmers (such as the author of the rquotations) that they are non-standard wanna-bees who have nothing to be proud of.

How is it possible for any Forth programmer to have a shred of pride, when they are required to accept somebody else as their leading expert? You'll have to explain this to me, because I don't know how such a thing would be possible.

I can have respect for other Forth programmers (the ones who actually write Forth code), but this doesn't mean that I grant those people "leading expert" status --- I don't have to agree with everything they say, in order to respect them --- I don't demand that they get on their knees for me either.

In this world, I have found that people just do what they want to do. I don't stop them, and I don't allow them to stop me. So long as nobody declares him or herself to be the "leading expert," it is possible for people to learn from each other, or even develop a standard that everybody can be happy with.

> You main accomplishment is to piss at people and piss off people here and most probably at home.

My main accomplishment in regard to Forth was writing MFX. I'm also proud of the novice-package, especially STRING-STACK.4TH.

What Forth code have you ever written? I may not be from Missouri, but you'll have to show me the code for me to believe that it exists.

I've not seen any code form you on comp.lang.forth, but only a stream of hate-filled diatribes against me --- you become so emotional that you likely piss your own trousers every time that you post a message --- you are aiming at me, and you hit yourself!

You get a paycheck from Stephen Pelc. What exactly do you do to earn this paycheck?

hughag...@gmail.com

unread,
May 15, 2017, 3:38:29 PM5/15/17
to
On Monday, May 15, 2017 at 8:39:17 AM UTC-7, Ilya Tarasov wrote:
> I see no statement to answer here. Forth is interactive, easy to write and fast enough, so I use it. I use Tcl when required by other software with embedded tcl engine. For other languages I see no tasks around, and there is no reason to switch to them from Forth just because 'it is interactive too'.

I'm not opposed to Scheme/Lisp or the many derivatives, such as Python, Ruby, etc.. All of these work well on desktop-computers, which is why they are popular.

None of these are appropriate for use on a micro-controller, because they all rely on GC which doesn't work in hard real-time (they could be used in soft real-time programs though).

None of these work well as the basis for a Forth cross-compiler, because Forth supports compile-time code that is written in Forth, so the cross-compiler pretty much has to be written in Forth too (in STAPL the compile-time code is written in Scheme rather than Forth, which is kind of weird).

Scheme/Lisp can be used as the basis for a cross-compiler --- this has been done several times with good success --- this would be appropriate for a language such as C or Pascal that don't support compile-time code, so it doesn't matter if the cross-compiler is written in a different language.

Anyway, I don't respond to RobertL (aka WJ aka WAXMAN) --- he is just a troll trying to start a flame-war --- why should I defend Forth against Ruby or whatever, when I don't want a war between the languages?

Cecil Bayona

unread,
May 15, 2017, 6:32:48 PM5/15/17
to
Robert is on my kill list that is now working, his signatures are
horrible, such hatred for Jews, I've know quite a few in my day and they
are people just like everyone else, where you find good persons and some
bad persons, the same can be said about just about every group.

--
Cecil - k5nwa

Joel Rees

unread,
May 15, 2017, 6:47:53 PM5/15/17
to
On Tuesday, May 16, 2017 at 3:43:37 AM UTC+9, hughag...@gmail.com wrote:
> On Monday, May 15, 2017 at 1:53:12 AM UTC-7, Gerry wrote:
> > On 14/05/2017 20:25, hughaguilar96@somewhere wrote:
> > > ANS-Forth was purposely sabotaged to make it useless.
> >
> > In the unlikely event of that being the case, ISTM that the saboteurs
> > were incompetent. e.g.
>
> That sounds like an argument for ignoring ANS-Forth --- it was written by incompetents --- press the flush lever!
>
> [...]

Well, incompetence is the common lot of all of us humans.

Committees tend to become a semi-random summation of the members'
competences and incompetences.

If the resulting sum is useful to us, we can use it.

If not, we can ignore it.

If it would almost be useful, but, ...

... we can join the commitee or become contributers or a gadflies.

(Gadflies are not completely useless either, although they aren't
necessarily pleasant.)

For my part, personally, I've found that being an occasional
contributor and occasional gadfly allows me more time to pursue
my own projects.

--
Joel Rees

Ranting randomly on ransomware and related topics:
http://reiisi.blogspot.com/2017/05/do-not-pay-modern-danegeld-ransomware.html

hughag...@gmail.com

unread,
May 15, 2017, 11:06:53 PM5/15/17
to
On Monday, May 15, 2017 at 3:47:53 PM UTC-7, Joel Rees wrote:
> On Tuesday, May 16, 2017 at 3:43:37 AM UTC+9, hughag...@gmail.com wrote:
> > On Monday, May 15, 2017 at 1:53:12 AM UTC-7, Gerry wrote:
> > > On 14/05/2017 20:25, hughaguilar96@somewhere wrote:
> > > > ANS-Forth was purposely sabotaged to make it useless.
> > >
> > > In the unlikely event of that being the case, ISTM that the saboteurs
> > > were incompetent. e.g.
> >
> > That sounds like an argument for ignoring ANS-Forth --- it was written by incompetents --- press the flush lever!
> >
> > [...]
>
> Well, incompetence is the common lot of all of us humans.

True enough!

This doesn't actually bother me --- what primarily bothers me is the "leading expert" claim --- that is just hubris, and I won't accept my implied status as a follower.

Paul Rubin

unread,
May 16, 2017, 3:32:12 AM5/16/17
to
Joel Rees <joel...@gmail.com> writes:
> Python, perl, and Ruby are not interactive in the way that Forth is.

How is their interactivity different from Forth's?

Andreas Klimas

unread,
May 16, 2017, 4:06:12 AM5/16/17
to
On 2017-05-15 19:38:27 +0000, hughag...@gmail.com said:

> On Monday, May 15, 2017 at 8:39:17 AM UTC-7, Ilya Tarasov wrote:
>> I see no statement to answer here. Forth is interactive, easy to write
>> and fast enough, so I use it. I use Tcl when required by other software
>> with embedded tcl engine. For other languages I see no tasks around,
>> and there is no reason to switch to them from Forth just because 'it is
>> interactive too'.
>
> I'm not opposed to Scheme/Lisp or the many derivatives, such as Python,
> Ruby, etc.. All of these work well on desktop-computers, which is why
> they are popular.

I guess popularity in this field has something to do with the ability
to successfully develop applications
as a beginner and then they stuck with it. Too much work has be done to
make a language change.

>
> None of these work well as the basis for a Forth cross-compiler,
> because Forth supports compile-time code that is written in Forth, so
> the cross-compiler pretty much has to be written in Forth too (in STAPL
> the compile-time code is written in Scheme rather than Forth, which is
> kind of weird).

This is one of the striking features of Forth.
Forth from low level (assembly) to high level and still be inside of Forth
with absolutely no dependencies (C, libraries, editor, ..)


Gerry Jackson

unread,
May 16, 2017, 7:05:27 AM5/16/17
to
On 15/05/2017 19:43, hughag...@gmail.com wrote:
> On Monday, May 15, 2017 at 1:53:12 AM UTC-7, Gerry wrote:
>> On 14/05/2017 20:25, hughag...@gmail.com wrote:
>>> ANS-Forth was purposely sabotaged to make it useless.
>>
>> In the unlikely event of that being the case, ISTM that the saboteurs
>> were incompetent. e.g.
>
> That sounds like an argument for ignoring ANS-Forth --- it was written by incompetents --- press the flush lever!

Heh, I should have worded that better. I meant, of course, incompetent
as saboteurs.

>
>> > I think my STRING-STACK.4TH is pretty good Forth, and it is fully
>> > ANS-Forth compliant. Why haven't the Forth-200x committee provided
>> > something similar?
>>
>> Why should they? It's not the job of a standards committee to write
>> libraries. It could be argued that they should specify the words such a
>> library should contain but imagine the howls of outrage from you and HAA
>> that would cause.
>
> I didn't say that they should declare their string-stack to be the standard. I don't want them to declare anything to be standard at this time because I have no intention at this time of being their follower --- they have never earned my respect, or made any effort to do so --- they really need to start out as my peer, and then work their way up, not just declare themselves to be the rulers of the world by fiat.
>
> What I am saying, is that if they are going to describe themselves as leaders of the Forth community, they should first write useful Forth code-libraries --- this would be a good start toward gaining the respect of Forthers such as myself --- this is actually the only way to gain credence as leaders.
>

Evidently they don't agree. I don't think they "declare themselves to be
the rulers of the world" - only the world of ANS Forth and Forth 2012
and following standards. And as the Forth 200X Standard Committee that
is their right and responsibility.

> I am extremely offended by Elizabeth Rather who declares herself to be the "leading expert" of Forth,

I just look on claims like that as marketing hype indulged in by all
commercial organisations. British English has a phrase 'blowing your own
trumpet' that covers such claims. Just ignore it and move on.

> Stephen Pelc has admitted on comp.lang.forth that he doesn't know how to write a cross-compiler:
>
> On Tuesday, December 8, 2009 at 3:18:13 PM UTC-7, Stephen Pelc wrote:
>> There are three types of compilation involved
>> 1) Host compilation
>> 2) Clone compilation (target CPU same as host and memory matches)
>> 3) Cross compilation (target CPU is not host CPU)
>>
>> In the third case you have to simulate *everything* when dealing
>> with both the definition and execution of defining words. It's not
>> easy. You also have to extend the normal Forth compiler by at least
>> two time frames. Forth cross compilers are much more complicated
>> and much more subtle than they appear to be.

I don't think you can draw the conclusion that "he doesn't know how to
write a cross-compiler" from the above, after all he has been
successfully selling them for a long time. But I do agree that the
paragraph about the third case seems odd. ISTM that simulation of the
target processor is only necessary if the cross compiler needs to
actually execute target code - and why would you want to do that? The
only reasons I can think of are:
1) to plug a software simulation into a target board because the target
processor isn't available. I wouldn't regard that as part of the cross
compiler itself. Or
2) to execute the CREATE part of CREATE ... DOES> words to build target
data structures. This is unnecessary as the host can simply emulate the
behaviour of the target system which is much simpler.

Perhaps I'm missing something?

>> Being on a standards committee is a thankless task and
>> I, for one, am grateful for the time they spend on the task even if I
>> don't always like the result. I am reminded of a statement in a Standard
>> Pascal book: " ... is fed up with people who complain about the wording
>> of the draft, and expect him or someone else to find a solution for them
>> to criticise next time"
>
> If they are fed up with getting no respect, they could just spend less time braying about how they are the rulers of the world

I must have missed those posts.

--- this would free up about 12 hours per day --- they could put this
time to good use by writing code-libraries in Forth that are useful, so
that they would gradually gain respect.
>
> Writing code-libraries does take time --- this fact I know from experience! --- you know it too!
>

Yes, and probably the members of the Forth 200X committee don't have
that time.


--
Gerry

Stephen Pelc

unread,
May 16, 2017, 11:00:35 AM5/16/17
to
On Tue, 16 May 2017 12:05:28 +0100, Gerry Jackson
<ge...@jackson9000.fsnet.co.uk> wrote:

>> On Tuesday, December 8, 2009 at 3:18:13 PM UTC-7, Stephen Pelc wrote:
>>> There are three types of compilation involved
>>> 1) Host compilation
>>> 2) Clone compilation (target CPU same as host and memory matches)
>>> 3) Cross compilation (target CPU is not host CPU)
>>>
>>> In the third case you have to simulate *everything* when dealing
>>> with both the definition and execution of defining words. It's not
>>> easy. You also have to extend the normal Forth compiler by at least
>>> two time frames. Forth cross compilers are much more complicated
>>> and much more subtle than they appear to be.

I stand by this post and refer you to
https://english.stackexchange.com/questions/111787/what-is-the-difference-between-simulate-and-emulate

>2) to execute the CREATE part of CREATE ... DOES> words to build target
>data structures. This is unnecessary as the host can simply emulate the
>behaviour of the target system which is much simpler.

You will hit this problem when you want the cross-compiler to execute
a user-written defining word correctly.

Stephen

--
Stephen Pelc, steph...@mpeforth.com
MicroProcessor Engineering Ltd - More Real, Less Time
133 Hill Lane, Southampton SO15 5AF, England
tel: +44 (0)23 8063 1441, fax: +44 (0)23 8033 9691
web: http://www.mpeforth.com - free VFX Forth downloads

hughag...@gmail.com

unread,
May 16, 2017, 1:52:59 PM5/16/17
to
On Tuesday, May 16, 2017 at 8:00:35 AM UTC-7, Stephen Pelc wrote:
> On Tue, 16 May 2017 12:05:28 +0100, Gerry Jackson
> <ge...@jackson9000.fsnet.co.uk> wrote:
>
> >> On Tuesday, December 8, 2009 at 3:18:13 PM UTC-7, Stephen Pelc wrote:
> >>> There are three types of compilation involved
> >>> 1) Host compilation
> >>> 2) Clone compilation (target CPU same as host and memory matches)
> >>> 3) Cross compilation (target CPU is not host CPU)
> >>>
> >>> In the third case you have to simulate *everything* when dealing
> >>> with both the definition and execution of defining words. It's not
> >>> easy. You also have to extend the normal Forth compiler by at least
> >>> two time frames. Forth cross compilers are much more complicated
> >>> and much more subtle than they appear to be.
>
> I stand by this post and refer you to
> https://english.stackexchange.com/questions/111787/what-is-the-difference-between-simulate-and-emulate

I don't care about the difference between a simulator and an emulator, because this is irrelevant.

> >2) to execute the CREATE part of CREATE ... DOES> words to build target
> >data structures. This is unnecessary as the host can simply emulate the
> >behaviour of the target system which is much simpler.
>
> You will hit this problem when you want the cross-compiler to execute
> a user-written defining word correctly.

You don't have to simulate the target processor on the host computer. This is utter nonsense!

I had <BUILDS DOES> in MFX and also immediate words, none of which required simulation of the target processor.

I had these three modes:

SYSTEM --- Code runs on the host processor and @ ! etc. access host memory.

HOST --- Code runs on the host processor and @ ! etc. access target memory (the image that will be uploaded into the target processor).

TARG --- Code runs on the target processor and @ ! etc. access target memory. This code does not have to be simulated on the host processor.

A <BUILDS DOES> word would be written in HOST mode, but DOES> would switch to TARG mode and then ; would switch back to HOST mode. Immediate words were written in HOST mode. Run-time words were written in TARG mode. Almost nothing was written in SYSTEM mode (this was just out-of-the-box UR/Forth with the FORTH vocabulary in both CONTEXT and CURRENT).

I figured out how to write a cross-compiler in 1994 while the ANS-Forth committee were busy braying about how they ruled the Forth world, but were unable to write a reference compiler for ANS-Forth to run on the 32-bit x86.

hughag...@gmail.com

unread,
May 16, 2017, 2:21:44 PM5/16/17
to
On Tuesday, May 16, 2017 at 4:05:27 AM UTC-7, Gerry wrote:
> On 15/05/2017 19:43, hughag...@gmail.com wrote:
> > What I am saying, is that if they are going to describe themselves as leaders of the Forth community, they should first write useful Forth code-libraries --- this would be a good start toward gaining the respect of Forthers such as myself --- this is actually the only way to gain credence as leaders.
> >
>
> Evidently they don't agree. I don't think they "declare themselves to be
> the rulers of the world" - only the world of ANS Forth and Forth 2012
> and following standards. And as the Forth 200X Standard Committee that
> is their right and responsibility.

Obviously, I meant the world of Forth --- the Forth-200x committee also mean the world of Forth --- they use the terms "Forth" and "ANS-Forth" as synonyms, despite the fact that Charles Moore said that ANS-Forth is not Forth but is a Forth-like language at best.

Your use of the word "right" is interesting --- is this a God-given right? --- this sounds a lot like the monarchies of the Middle Ages when the royal families claimed to have a divine right to rule over the peasants.

> > I am extremely offended by Elizabeth Rather who declares herself to be the "leading expert" of Forth,
>
> I just look on claims like that as marketing hype indulged in by all
> commercial organisations. British English has a phrase 'blowing your own
> trumpet' that covers such claims. Just ignore it and move on.

You are just telling me to become one of Elizabeth Rather's brown-nosers --- you are telling me that this is the only way to move on as a Forth programmer --- this is not going to happen.
You're not missing anything. It is easy and obvious.

Stephen Pelc has been selling cross-compilers for a long time, but that doesn't mean that he knows how to write a cross-compiler. His target processors are presumably pretty easy targets, so he gets away with using this goofy scheme of simulating the target processor at compile-time. He would have failed badly on the MiniForth with its Harvard Architecture and out-of-order assembler that parallelizes up to 5 instructions in a single opcode.

> > Writing code-libraries does take time --- this fact I know from experience! --- you know it too!
>
> Yes, and probably the members of the Forth 200X committee don't have
> that time.

Forth experts who don't have the time to write Forth code-libraries???

So, how exactly are these "experts" qualified to be on the standard committee and rule over Forth code-monkeys such as myself? Well, the answer is that they were appointed to the Forth-200x committee by Elizabeth Rather --- their position as rulers of the Forth world is not God given --- it comes from the "leading expert" in marketing department at Forth Inc..

I was being generous before when I said that Stephen Pelc, Leon Wagner, Bernd Paysan, and Anton Ertl were capable of writing STRING-STACK.4TH, but they didn't do so because they wanted to prevent Forth programmers from writing programs that work with strings --- there isn't actually any supporting evidence of them having this capability --- a simple explanation for why they have never provided any support for strings is that they just don't know how.

Alex

unread,
May 16, 2017, 2:33:33 PM5/16/17
to
On 5/16/2017 18:52, hughag...@gmail.com wrote:

>
> I had these three modes:
>
> SYSTEM --- Code runs on the host processor and @ ! etc. access host
> memory.
>
> HOST --- Code runs on the host processor and @ ! etc. access target
> memory (the image that will be uploaded into the target processor).
>
> TARG --- Code runs on the target processor and @ ! etc. access target
> memory. This code does not have to be simulated on the host
> processor.
>

How does TARG work when building on system A for system A?

Take a Forth for Windows as an example. If I'm running an EXE at address
$40000 and want to build an EXE that will run at $40000... it's a bit of
a catch 22.

There are all sorts of solutions that you could suggest, but believe me,
I've investigated just about all of them. Most times the facility you
need doesn't exist. For example, run the cross compiler at another
address (possible) and allocate memory at $40000 (nope, no such facility).

The solution appears to be; build the system at some other (system
allocate provided) address, and simulate things like CREATE and DOES>
and so on. Or emulate, take your pick. TARG doesn't work.

--
Alex

Gerry Jackson

unread,
May 16, 2017, 2:41:57 PM5/16/17
to
On 16/05/2017 16:00, Stephen Pelc wrote:
> On Tue, 16 May 2017 12:05:28 +0100, Gerry Jackson
> <ge...@jackson9000.fsnet.co.uk> wrote:
>
>>> On Tuesday, December 8, 2009 at 3:18:13 PM UTC-7, Stephen Pelc wrote:
>>>> There are three types of compilation involved
>>>> 1) Host compilation
>>>> 2) Clone compilation (target CPU same as host and memory matches)
>>>> 3) Cross compilation (target CPU is not host CPU)
>>>>
>>>> In the third case you have to simulate *everything* when dealing
>>>> with both the definition and execution of defining words. It's not
>>>> easy. You also have to extend the normal Forth compiler by at least
>>>> two time frames. Forth cross compilers are much more complicated
>>>> and much more subtle than they appear to be.
>
> I stand by this post and refer you to
> https://english.stackexchange.com/questions/111787/what-is-the-difference-between-simulate-and-emulate

Funnily enough I had looked at that very post before replying to Hugh
but prefer the explanation given at the start of a linked post at
http://stackoverflow.com/questions/1584617/simulator-or-emulator-what-is-the-difference/1584701#1584701.
Neither helped explain what you wrote.

>
>> 2) to execute the CREATE part of CREATE ... DOES> words to build target
>> data structures. This is unnecessary as the host can simply emulate the
>> behaviour of the target system which is much simpler.
>
> You will hit this problem when you want the cross-compiler to execute
> a user-written defining word correctly.
>

I realise that is the case which is why I raised it, but my question was
why one would need to do so. I think I've just realised the answer. I
(and presumably Hugh) was assuming that the writer of the cross compiler
was also writing the target source code in which case the behaviour of
the target can easily be emulated. Presumably as a cross compiler vendor
your customers can write the target source code themselves and may wish
to execute user-written defining words - in which case the target has to
be simulated. Is that what you meant? I think my attitude would be to
not allow that and provide some facility instead to enable the user to
emulate the target - if that is indeed possible.

--
Gerry

gavino himself

unread,
May 16, 2017, 2:47:17 PM5/16/17
to
On Wednesday, May 10, 2017 at 5:08:01 AM UTC-4, The Beez wrote:
> IMHO the problem with Forth in general has always been that people are TALKING more about Forth than DOING things with Forth. E.g. the number of OO discussions are countless, but who has presented any REAL code in OO?
>
> Another thing is that most people are SO convinced they are right any other opinion is rejected beforehand. And then it becomes personal.
>
> I can only speak for myself, but I has less and less inclination to post anything there. If it's code, it's rejected. If it is any new idea, it's refuted or ignored. And all I find here is useless discussions and name calling - and I can do very little with that.
>
> If it's good code, I can knick it. If it's useful comment, I can implement it. But this..
>
> Hans Bezemer

Hans please write more of your genius down.
All forth gods please publish wikibooks or anything.
I think forth should get some grants from education cartel to create web tools and libreoffice like stuff and replacement for iceWM desktop and chrome all in forth with procedural code and super lean mean speed.
People really need a web browser and gui file manager
something like filezilla is nice
or xfe file manager
pcmanfm not bad
some solution like tutorial D or some kind of database like postgresql in forth would also help replace oracle microsft and other cancer liek peoplesoft and salesforce
there is such a need for productive programmer snad great apps
maybe ask for some crowd funding if you need some cash to make books but dont let your experise go to waste
humanity stands on shoulders of giants like you who figure out working soutions
same for you other forth gods
publish pleaasE!

gavino himself

unread,
May 16, 2017, 2:50:30 PM5/16/17
to
On Wednesday, May 10, 2017 at 10:29:52 PM UTC-4, Elizabeth D. Rather wrote:
> On 5/9/17 11:07 PM, The Beez wrote:
> > IMHO the problem with Forth in general has always been that people are TALKING more about Forth than DOING things with Forth. E.g. the number of OO discussions are countless, but who has presented any REAL code in OO?
>
> Whenever I teach a course in Forth, I always tell people to check out
> c.l.f. Most report they just don't have time for that sort of thing.
> That is certainly true of Leon and our other staff.
>
> An awful lot of Forth programming is getting done by FORTH, Inc. and its
> customers, though relatively little is OO. SWOOP is used extensively
> throughout SwiftForth, but we have rarely used it in applications
> because most of the apps we write are embedded and entirely procedural.
> OOP is good for certain kinds of projects, but as an all-purpose
> technique it's more overhead than help in many cases.
>
> > Another thing is that most people are SO convinced they are right any other opinion is rejected beforehand. And then it becomes personal.
> >
> > I can only speak for myself, but I has less and less inclination to post anything there. If it's code, it's rejected. If it is any new idea, it's refuted or ignored. And all I find here is useless discussions and name calling - and I can do very little with that.
> >
> > If it's good code, I can knick it. If it's useful comment, I can implement it. But this..
>
> Cheers,
> Elizabeth
>
>
> --
> Elizabeth D. Rather
> FORTH, Inc.
> 6080 Center Drive, Suite 600
> Los Angeles, CA 90045
> USA

I am probly least qualified to say but I FEEL procedural is best.
oo is fools gold

I saw an amazing video game done in procedural looked like world of warcraft or something

I also saw the plan9 gui when I installed it one time, super friggin fast n lightweight screamed compared even to my freebsd iceWM gui desktop setup(icewm is like win98 papaer thin window manager for unix)
nice easy to resize terminals or chrome etc
minimalist
I jsu tneed taskbar to click on which windo I wanto use and resize in case I want 2-3 temrinals or watch video as I chat

gavino himself

unread,
May 16, 2017, 2:51:51 PM5/16/17
to
On Thursday, May 11, 2017 at 4:39:58 PM UTC-4, hughag...@gmail.com wrote:
> On Wednesday, May 10, 2017 at 7:29:52 PM UTC-7, Elizabeth D. Rather wrote:
> > On 5/9/17 11:07 PM, The Beez wrote:
> > > IMHO the problem with Forth in general has always been that people are TALKING more about Forth than DOING things with Forth. E.g. the number of OO discussions are countless, but who has presented any REAL code in OO?
> >
> > Whenever I teach a course in Forth, I always tell people to check out
> > c.l.f. Most report they just don't have time for that sort of thing.
> > That is certainly true of Leon and our other staff.
>
> You insult all Forth programmers by describing yourself as the "leading expert" of Forth, which implies that all Forth programmers are inferior to you.
>
> When you teach your course in Forth, how many of those students become Forth programmers? None! You turn them off from Forth with your arrogance. You can't name any student of your novice class that has become a Forth programmer --- all of them thought that you were a low-grade moron because you were teaching them to use PAD for holding strings, and all of them went back to programming in C --- all of them spent the rest of their lives telling the other C programmers that they learned Forth from the "leading expert" in Forth, and found Forth to be utterly stupid.
>
> Also, SWOOP is grossly inefficient. This makes Forth appear to be inefficient and useless.
>
> This is my code:
> -------------------------------------------------------------------------
>
> \ ******
> \ ****** This provides the IS-A function for classes.
> \ ******
>
> 98769876 constant class-id \ used to make sure a class is actually a class; must be a distinctive value
>
> 0
> w field .class-parent \ pointer to parent class \ must be first field
> w field .class-size \ size of object
> w field .class-id \ should always be CLASS-ID
> constant class-struct
>
> \ Every object has a W field in front which is a pointer to the class-struct for its class.
>
> : check-class ( class -- )
> .class-id @ class-id <> abort" *** tried to use a class that wasn't actually a class ***" ;
>
> : create-nada ( -- ) \ create a class that has no parent
> create
> nil , \ .class-parent \ there is no parent
> w , \ .class-size \ room for the object's pointer to its class-struct
> class-id , \ .class-id \ this is for error-checking
> does> ( -- )
> true abort" *** it is illegal to make objects of class NADA ***" ;
>
> create-nada nada \ NADA is the only class that has no parent
>
> \ NADA is only available so it can be the parent of classes that have no parent.
> \ It is not really a class that can be used as such.
>
> ' alloc constant heap-new \ give this to the class to get a new object in the heap
> ' concrete-alloc constant dict-new \ give this to the class to get a new object in the dictionary
>
> : class-size ( class -- size )
> .class-size @
> dup 0< abort" *** CLASS-SIZE given a class that never had its .CLASS-SIZE field set by END-CLASS ***" ;
>
> : size' ( -- size ) \ stream: class-name
> ' >body dup check-class
> class-size ;
>
> : object-size ( object -- size )
> @ \ -- class
> .class-size @ ; \ -- size
>
> : class ( -- class offset ) \ stream: class-name parent-name
> create here \ -- class
> ' >body \ -- class parent
> dup check-class \ -- class parent \ make sure PARENT is a class
> dup , \ -- class parent \ .class-parent
> -1 , \ -- class parent \ .class-size \ this will get filled in by END-CLASS
> class-id , \ -- class parent \ .class-id \ this is for error-checking
> class-size \ -- class offset
> does> ( 'alloc -- adr ) \ make a new object ( 'ALLOC is either HEAP-NEW or DICT-NEW)
> >r \ 'alloc -- \ r: -- class
> r@ class-size swap execute \ -- object
> dup r@ class-size erase \ zero out the object
> r> over ! ; \ first field of object is pointer to class
>
> : end-class ( class offset -- )
> over check-class \ make sure CLASS is a class
> swap .class-size ! ;
>
> : <<is-a>> ( object target -- flag )
> over check-class over check-class
> = ;
>
> : <is-a> ( object 'target -- flag )
> swap @ swap >body <<is-a>> ;
>
> : is-a ( object -- flag ) \ stream: target-class-name
> ' <is-a> ;
>
> : [is-a] ( object -- flag ) \ stream: target-class-name
> postpone ['] postpone <is-a> ;
> immediate
>
> : <<is-child-of>> ( ancestor class -- flag )
> over check-class over check-class
> begin
> 2dup = if 2drop true exit then
> @ \ -- ancestor parent \ .class-parent is first field
> dup 0= if 2drop false exit then
> again ;
>
> : <is-child-of> ( object 'ancestor )
> >body swap @ <<is-child-of>> ;
>
> : is-child-of ( object -- flag ) \ stream: ancestor-class-name
> ' <is-child-of> ;
>
> : [is-child-of] ( object -- flag ) \ stream: ancestor-class-name
> postpone ['] postpone <is-child-of> ;
> immediate
>
> \ IS-CHILD-OF tests if the object has ANCESTOR as an ancestor, meaning that it can use ANCESTOR's methods.
>
> : <is-parent-of> ( object 'child )
> >body swap @ swap <<is-child-of>> ;
>
> : is-parent-of ( object -- flag ) \ stream: child-class-name
> ' <is-parent-of> ;
>
> : [is-parent-of] ( object -- flag ) \ stream: child-class-name
> postpone ['] postpone <is-parent-of> ;
> immediate
>
> \ IS-PARENT-OF tests if the object has CHILD as a child, meaning that it can be upgraded to be a CHILD.
>
> : <become> ( object 'class -- new-object )
> >body >r \ -- object \ r: -- class
> r@ class-size realloc \ -- new-object
> r> over ! ; \ -- new-object \ class is object's first field
>
> \ <BECOME> converts an object into a new class.
> \ The new class must either be an ancestor or a child of the object's class.
> \ Use IS-CHILD-OF to find out if the object is a child of the new class (can be downgraded to the parent class).
> \ Use IS-PARENT-OF to find out if the object is a parent of the new-class (can be upgraded to the child class).
>
> : become ( object -- new-object ) \ stream: class-name
> ' <become> ;
>
> : [become] ( object -- new-object ) \ stream: class-name
> postpone ['] postpone <become> ;
> immediate

Hugh please other forth gods stop insulting one another

work together

insults do nothing

look a media vs trump
huge waste

ad money good just creating time wasting drama

huge are you writing any new books?

ever consider do web kinda stuff? even cgi?

writing howot book on such?

database buidler book?

gavino himself

unread,
May 16, 2017, 2:58:28 PM5/16/17
to
On Friday, May 12, 2017 at 8:44:48 PM UTC-4, hughag...@gmail.com wrote:
> On Friday, May 12, 2017 at 12:42:01 AM UTC-7, Elizabeth D. Rather wrote:
> > On 5/11/17 11:01 AM, Cecil Bayona wrote:
> > > On 5/11/2017 3:39 PM, hughag...@gmail.com wrote:
> > >> On Wednesday, May 10, 2017 at 7:29:52 PM UTC-7, Elizabeth D. Rather
> > >> wrote:
> > >>> On 5/9/17 11:07 PM, The Beez wrote:
> > >>>> IMHO the problem with Forth in general has always been that people
> > >>>> are TALKING more about Forth than DOING things with Forth. E.g. the
> > >>>> number of OO discussions are countless, but who has presented any
> > >>>> REAL code in OO?
> > >>>
> > >>> Whenever I teach a course in Forth, I always tell people to check out
> > >>> c.l.f. Most report they just don't have time for that sort of thing.
> > >>> That is certainly true of Leon and our other staff.
> > >>
> > >> You insult all Forth programmers by describing yourself as the
> > >> "leading expert" of Forth, which implies that all Forth programmers
> > >> are inferior to you.
> > >>
> > >> When you teach your course in Forth, how many of those students become
> > >> Forth programmers? None! You turn them off from Forth with your
> > >> arrogance. You can't name any student of your novice class that has
> > >> become a Forth programmer --- all of them thought that you were a
> > >> low-grade moron because you were teaching them to use PAD for holding
> > >> strings, and all of them went back to programming in C --- all of them
> > >> spent the rest of their lives telling the other C programmers that
> > >> they learned Forth from the "leading expert" in Forth, and found Forth
> > >> to be utterly stupid.
> > >>
> > >
> > > None might be a tad much, I would assume that some go back to where they
> > > came from and use Forth in projects, we really don't know for a fact as
> > > to what happens to the student.
> >
> > Actually, most of them continued to use Forth in projects, at least for
> > a time. Ray Duncan was one of my earlier students. Leon Wagner, Brad
> > Rodriguez, many more have had long careers in Forth.
>
> You routinely brag about your association with people who have accomplishments --- you have made a career out of bragging about your association with Charles Moore --- but none of these people brag about being associated with you.
>
> Ray Duncan of Laboratory Microsystems Inc. sold UR/Forth. This had very good support for strings --- my own <CSTR etc. is loosely based on UR/Forth's string package --- you put PAD in ANS-Forth because that is really the entirety of your knowledge of strings, and now you describe my STRING-STACK.4TH as being useless.
>
> As for Brad Rodriguez, he has accomplishments in Forth --- I've never heard of him bragging about his association with you.
>
> I've never heard of anybody who has accomplishments in Forth bragging about their association with you --- instead, you have twits and creeps such as Julien Fondren and Rick Collins --- your novice class at Forth Inc. drives intelligent people away from Forth.

Forth gods please write books and show off apps!!

I feel forth can do even more than it already has.

Insulting is useless.

Please lets keep a professional intellectual atmousphere.

New ideas can then be discussed civilly toward and end of better working apps.

I am sure you would be embaressed if Chuck Moore was in here seeing these holy wars not small code doing much work.

gavino himself

unread,
May 16, 2017, 3:01:30 PM5/16/17
to
On Friday, May 12, 2017 at 10:15:57 PM UTC-4, hughag...@gmail.com wrote:
> On Friday, May 12, 2017 at 5:12:35 PM UTC-7, Cecil - k5nwa wrote:
> > On 5/12/2017 5:18 AM, JUERGEN wrote:
> > > Forth Killer Hugh Aquilar has no clue how the commercial world works. He has definitely pissed off more people here and as well turned them off using Forth than anybody else could probably.
> > > I assume your training is mostly paid for - so his arrogance to judge the reasons for them to come to your courses is beyond me and probably most of the people here.
> >
> > I would assume that most companies that use a non-standard like Forth
> > keep quiet about it for one of several reasons;
> >
> > 1. They consider Forth of be a strategic advantage over the competition
> > and therefore they keep quiet about what software they use. This can be
> > an advantage with a company that interfaces to changing hardware as
> > Forth is great at that task.
> >
> > 2. They appreciate the advantage Forth can give so they use it but are
> > embarrassed to admit they are using software that the programming
> > community looks down on.
> >
> > 3. They figure what they use is no ones business but their own and don't
> > discuss what they are doing with the general public.
>
> I was told at Testra that they would not build an experimenters' board for the RACE because: "hobbyists require too much support, and they don't have any money."
>
> Support is a big problem for anybody selling a Forth compiler. The entire Forth language has to be documented because there is no standard for Forth --- ANS-Forth is useless crippleware that bans features, so these features get implemented in various non-standard ways in the various Forth compilers.
>
> ANS-Forth is also ambiguous, so significant amounts of documentation are needed for any particular ANS-Forth compiler to describe how it differs from all the other ANS-Forth compilers --- other languages have a standard, so somebody can become a "portable programmer" in the sense of being able to work with any standard-compliant compiler, and being able to carry code-libraries between the standard-compliant compilers.
>
> A company may use Forth, but only for in-house programming --- none of this Forth code is exposed to the outside world --- the employees will avoid Forth like the plague because they know that becoming skilled at a non-standard in-house programming language does not help them get employment anywhere else, so it is a dead-end job (this was my situation at Testra).
>
> Of course, REXX is an in-house programming language at IBM --- that is not so bad though, because IBM pays well and provides health insurance --- companies that use Forth tend to be rinky-dink operations offering low pay and zero benefits in exchange for hard work.
>
> Also, there is the problem of boredom --- I was pretty proud of MFX, but that didn't mean that I wanted to spend my life as one of only two MFX programmers in the world --- money cures boredom, because you can have a fun hobby on the side (I like skiing and snow-boarding, but I had to stop doing this when I worked at Testra because I didn't have any health insurance if I were to get injured, plus the tickets and equipment cost money).

This is why I always talk about a forth powered PC!!!!

China is making loongsong cpu and pc hek stallman has 1

if forth chip can run on minimal power and still suport movie watching and browser.......boom you can invent your own competitive industry for intel and AMD!!

I would get one!

esp if usb3 lets me have 4t external drives for all the bittorrent movies n all that

Lars Brinkhoff

unread,
May 16, 2017, 3:05:50 PM5/16/17
to
Gerry Jackson wrote:
>> You will hit this problem when you want the cross-compiler to execute
>> a user-written defining word correctly.
>
> I realise that is the case which is why I raised it, but my question
> was why one would need to do so. I think I've just realised the
> answer. I (and presumably Hugh) was assuming that the writer of the
> cross compiler was also writing the target source code in which case
> the behaviour of the target can easily be emulated. Presumably as a
> cross compiler vendor your customers can write the target source code
> themselves and may wish to execute user-written defining words - in
> which case the target has to be simulated. Is that what you meant? I
> think my attitude would be to not allow that and provide some facility
> instead to enable the user to emulate the target - if that is indeed
> possible.

Right, I went this route.

For example, my cross-compiling version of VARIABLE is a plain host
definition (runs in the host) but writes to the target image:

h: variable create cell allot ;

This word is defined with H: (which is an alias for the host :) so that
it doesn't clash with the cross-compiling :. In this context, CREATE,
CELL and ALLOT all refer to the target.

Then there's a second version of VARIABLE in the target Forth:

: variable create cell allot ;

I'm guessing that in Stephen Pelc's compiler, there's only the target
definition, which would be why he has to emulate the target processor to
run it.

Lars Brinkhoff

unread,
May 16, 2017, 3:11:02 PM5/16/17
to
Alex wrote:
> Hugh wrote:
>> I had these three modes:
>>
>> SYSTEM --- Code runs on the host processor and @ ! etc. access host
>> memory.
>>
>> HOST --- Code runs on the host processor and @ ! etc. access target
>> memory (the image that will be uploaded into the target processor).
>>
>> TARG --- Code runs on the target processor and @ ! etc. access target
>> memory. This code does not have to be simulated on the host
>> processor.
>
> How does TARG work when building on system A for system A?

Why would it matter what the target system is? I'm guessing Hugh's TARG
mode works the same no matter if system A is building for system A or
system B.

gavino himself

unread,
May 16, 2017, 3:15:38 PM5/16/17
to
On Saturday, May 13, 2017 at 3:21:19 AM UTC-4, JUERGEN wrote:
> As outstanding FORTHKILLER YOU are probably the most talked about person in Forth. A lot of people will NOT come out and talk about relationships to any commercial Forth company and especially Elizabeth. If somebody were to dare to do so they know that you would START THROWING SHIT at them and whatever else you ugly mind makes you do as I have experienced. Nobody wants this - and so you have achieved what you are probably paid for - Kill Forth. They stay stumm.

jurgen get rid of your offensive insulting manor and write books or publish examples on howto use forth better so everyone benefits.
This fighting among forth experts is pointless.
Forth gods should work together on great books and code examples.
Forth can certainly do better than lots of current software if the bickering stops and the writing starts.
IF you argue have a competition both do it the way you think is right and publish the book and code!
Friendly competition is an upward spiral in free software world the ultimate capitalism.

gavino himself

unread,
May 16, 2017, 3:16:19 PM5/16/17
to
On Saturday, May 13, 2017 at 5:44:00 AM UTC-4, Andrew Haley wrote:
> JUERGEN <epld...@aol.com> wrote:
> >
> > Heil H. - your arrogance is beyond description. Or are you God in
> > disguise? Or just the incarnation of the devil. How do you dare to
> > set the standard about what people are proud about? You main
> > accomplishment is to piss at people and piss off people here and
> > most probably at home.
>
> Oh dear, Juergen, come on. You rise much too quickly to this
> provocation. Just think of our resident nutcase[s] as crazy drunkards
> yelling at the moon, and pass on quickly by.
>
> Andrew.

andrew ris eanove and wirte code n books dont insult its pointless
show world what ou can do and do better in forth

Gerry Jackson

unread,
May 16, 2017, 3:32:25 PM5/16/17
to
On 16/05/2017 19:21, hughag...@gmail.com wrote:
> On Tuesday, May 16, 2017 at 4:05:27 AM UTC-7, Gerry wrote:
>> On 15/05/2017 19:43, hughag...@gmail.com wrote:
>>> What I am saying, is that if they are going to describe themselves as leaders of the Forth community, they should first write useful Forth code-libraries --- this would be a good start toward gaining the respect of Forthers such as myself --- this is actually the only way to gain credence as leaders.
>>>
>>
>> Evidently they don't agree. I don't think they "declare themselves to be
>> the rulers of the world" - only the world of ANS Forth and Forth 2012
>> and following standards. And as the Forth 200X Standard Committee that
>> is their right and responsibility.
>
> Obviously, I meant the world of Forth --- the Forth-200x committee also mean the world of Forth --- they use the terms "Forth" and "ANS-Forth" as synonyms, despite the fact that Charles Moore said that ANS-Forth is not Forth but is a Forth-like language at best.
>
> Your use of the word "right" is interesting --- is this a God-given right? --- this sounds a lot like the monarchies of the Middle Ages when the royal families claimed to have a divine right to rule over the peasants.

People who thought that ANS Forth needed to be
extended/rationalised/updated etc got together and formed the Forth200X
committee. As such it is their creation and therefore their right to
make decisions about the way it is extended etc. Similarly it is your
'right' to make decisions about Straight Forth.

>
>>> I am extremely offended by Elizabeth Rather who declares herself to be the "leading expert" of Forth,
>>
>> I just look on claims like that as marketing hype indulged in by all
>> commercial organisations. British English has a phrase 'blowing your own
>> trumpet' that covers such claims. Just ignore it and move on.
>
> You are just telling me to become one of Elizabeth Rather's brown-nosers

No I'm not, ignoring something doesn't mean you agree with it. I would
guess that most readers ignore your diatribes but don't agree with you,
they've just given trying to dissuade you. Given your posts over the
last few years it's highly unlikely that any regular reader of c.l.f.
thinks that you 'brown nose' Elizabeth Rather.

--- you are telling me that this is the only way to move on as a Forth
programmer

No.

--- this is not going to happen.

That's a pity.

> Stephen Pelc has been selling cross-compilers for a long time, but that doesn't mean that he knows how to write a cross-compiler. His target processors are presumably pretty easy targets, so he gets away with using this goofy scheme of simulating the target processor at compile-time. He would have failed badly on the MiniForth with its Harvard Architecture and out-of-order assembler that parallelizes up to 5 instructions in a single opcode.

See my reply to him about simulating a target processor for a possible
explanation of where he's coming from.

>
>>> Writing code-libraries does take time --- this fact I know from experience! --- you know it too!
>>
>> Yes, and probably the members of the Forth 200X committee don't have
>> that time.
>
> Forth experts who don't have the time to write Forth code-libraries???

Well at least some of them are holding down full time jobs and probably
have families and other responsibilities.

> I was being generous before when I said that Stephen Pelc, Leon Wagner, Bernd Paysan, and Anton Ertl were capable of writing STRING-STACK.4TH, but they didn't do so because they wanted to prevent Forth programmers from writing programs that work with strings --- there isn't actually any supporting evidence of them having this capability --- a simple explanation for why they have never provided any support for strings is that they just don't know how.

That's too simple an explanation as well as being offensive. For example
I don't think that someone capable of writing the Gray parser generator
in ANS Forth is incapable of writing Forth libraries.


--
Gerry

gavino himself

unread,
May 16, 2017, 3:36:33 PM5/16/17
to
On Saturday, May 13, 2017 at 7:52:00 AM UTC-4, Alex wrote:
> On 5/13/2017 10:43, Andrew Haley wrote:
> > JUERGEN <epld...@aol.com> wrote:
> >>
> >> Heil H. - your arrogance is beyond description. Or are you God in
> >> disguise? Or just the incarnation of the devil. How do you dare to
> >> set the standard about what people are proud about? You main
> >> accomplishment is to piss at people and piss off people here and
> >> most probably at home.
> >
> > Oh dear, Juergen, come on. You rise much too quickly to this
> > provocation. Just think of our resident nutcase[s] as crazy drunkards
> > yelling at the moon, and pass on quickly by.
> >
> > Andrew.
> >
>
> I've nothing but sympathy for Juergen and his obvious anger. Hugh is
> more than a nutcase because it's not the moon he's howling at; it's one
> person that Hugh keeps attacking, year after year after year. That kind
> of sustained and deliberate violence is unacceptable, and should not be
> ignored.
>
> --
> Alex

words ar enot violence and insultig others is just a waste of good energy that could go into books and code

Alex

unread,
May 16, 2017, 4:25:25 PM5/16/17
to
No, it doesn't; since (for instance and only one example) statements
such as building 10 VALUE X in the target and then executing the X
cannot be done.

Unless; you have position independent code: or system A building on an
identical but separate system A'. Otherwise you're goosed.

--
Alex

Rod Pemberton

unread,
May 16, 2017, 5:58:08 PM5/16/17
to
On Tue, 16 May 2017 12:01:29 -0700 (PDT)
gavino himself <jack...@gmail.com> wrote:

> This is why I always talk about a forth powered PC!!!!

Electricity powers PCs. Forth could control a PC. The usual problem
with adoption of a different solution, e.g., switching from C to Forth
in this case, is that the new solution must not only be better, but must
be significantly superior in some critical aspect. I'm not sure that
it's demonstrable that Forth is extremely better than C. Of course, C
is reviled enough that we've seen numerous new languages over the last
few decades. However, it still ranks at the top of programming lists,
but is losing ground to newcomers:

https://www.tiobe.com/tiobe-index/


Rod Pemberton
--
"Well, many people are really f---ing stupid too. Should we just adopt
all their standards?" - George Carlin

Joel Rees

unread,
May 16, 2017, 10:25:38 PM5/16/17
to
On Tuesday, May 16, 2017 at 4:32:12 PM UTC+9, Paul Rubin wrote:
> Joel Rees <joel.rees@somewhere> writes:
> > Python, perl, and Ruby are not interactive in the way that Forth is.
>
> How is their interactivity different from Forth's?

I was misremembering about Python, but see irb and perl -de1 (or REPL).

(And maybe I was misremembering about Lisp, as well.)

In other words, is the interpreter you interact with at the console the same interpreter that interprets your program?

--
Joel Rees

Random Rants:
http://reiisi.blogspot.com

Joel Rees

unread,
May 16, 2017, 10:35:22 PM5/16/17
to
On Wednesday, May 17, 2017 at 3:21:44 AM UTC+9, hughag...@gmail.com wrote:
> On Tuesday, May 16, 2017 at 4:05:27 AM UTC-7, Gerry wrote:
> > On 15/05/2017 19:43, hughaguilar96@somewhere wrote:
> > > What I am saying, is that if they are going to describe themselves as leaders of the Forth community, they should first write useful Forth code-libraries --- this would be a good start toward gaining the respect of Forthers such as myself --- this is actually the only way to gain credence as leaders.
> > >
> >
> > Evidently they don't agree. I don't think they "declare themselves to be
> > the rulers of the world" - only the world of ANS Forth and Forth 2012
> > and following standards. And as the Forth 200X Standard Committee that
> > is their right and responsibility.
>
> Obviously, I meant the world of Forth --- the Forth-200x committee also mean the world of Forth --- they use the terms "Forth" and "ANS-Forth" as synonyms, despite the fact that Charles Moore said that ANS-Forth is not Forth but is a Forth-like language at best.
>
> Your use of the word "right" is interesting --- is this a God-given right? --- this sounds a lot like the monarchies of the Middle Ages when the royal families claimed to have a divine right to rule over the peasants.
>

Actually, according to some people, the authors of a creative work do
have a natural right to exercise a certain amount of influence over what
is done with the creative work.

What that factoid has to do with the rest of this discussion is not something
I want to take the time to rant about today. I have lots of other things
I want to do.

--
Joel Rees

Ranting randomly
http://reiisi.blogspot.com

Paul Rubin

unread,
May 17, 2017, 12:15:31 AM5/17/17
to
Joel Rees <joel...@gmail.com> writes:
> In other words, is the interpreter you interact with at the console
> the same interpreter that interprets your program?

What do you mean by that? Of course it's the same interpreter, unless
you mean something specific and different.

Julian Fondren

unread,
May 17, 2017, 12:34:11 AM5/17/17
to
irb is a program written in Ruby that accepts lines of input and
evaluates them or waits for more lines to get a complete evaluate-able
string. Pre-irb days Ruby had a tutorial that included the writing of
a simple interactive shell like this. irb is not 'the Ruby
interpreter'; Ruby, run interactively, simply consumes its input and
then runs it.

In the case of Perl you have either the Perl debugger, which is awful
for interactive use, or a hackish Perl shell using PadWalker and other
exotic tools such to supply a consistent environment for complete
strings of Perl code. It's more common to just run perl -le 'code
here'. bash is Perl's interactive mode.

Python meanwhile has a culture of interactively-accessible docstrings
and scripts written with idioms that allow them to be loaded into an
interactive Python rather than run as a script.

The technical distinctions really aren't the point though. Forth
*feels* different from these other languages. I'd say that Erlang
comes the closest, and its EShell is definitely a special environment
where you can't even define functions in the normal way.

Elizabeth D. Rather

unread,
May 17, 2017, 12:48:31 AM5/17/17
to
On 5/16/17 1:05 AM, Gerry Jackson wrote:

[Silly posturing deleted]

>> On Tuesday, December 8, 2009 at 3:18:13 PM UTC-7, Stephen Pelc wrote:
>>> There are three types of compilation involved
>>> 1) Host compilation
>>> 2) Clone compilation (target CPU same as host and memory matches)
>>> 3) Cross compilation (target CPU is not host CPU)
>>>
>>> In the third case you have to simulate *everything* when dealing
>>> with both the definition and execution of defining words. It's not
>>> easy. You also have to extend the normal Forth compiler by at least
>>> two time frames. Forth cross compilers are much more complicated
>>> and much more subtle than they appear to be.

Stephen has been building cross compilers for a long time, and has
learned how complicated and subtle they are.

> I don't think you can draw the conclusion that "he doesn't know how to
> write a cross-compiler" from the above, after all he has been
> successfully selling them for a long time. But I do agree that the
> paragraph about the third case seems odd. ISTM that simulation of the
> target processor is only necessary if the cross compiler needs to
> actually execute target code - and why would you want to do that? The
> only reasons I can think of are:
> 1) to plug a software simulation into a target board because the target
> processor isn't available. I wouldn't regard that as part of the cross
> compiler itself. Or
> 2) to execute the CREATE part of CREATE ... DOES> words to build target
> data structures. This is unnecessary as the host can simply emulate the
> behaviour of the target system which is much simpler.
>
> Perhaps I'm missing something?

The real objective is to get an interactive target, using an umbilical,
so you're executing target code on the real target processor. In real
projects, that's usually an early step, especially nowadays when there
are cheap target boards and you rarely are faced with a custom board
early in the project.

Both MPE and FORTH, Inc. run umbilicals to the target. I haven't used
MPE's, but I've used SwiftX quite a lot. Really the "look and feel" of
programming a target is almost undetectably different from exercising
code on a resident Forth, with the host acting like a completely
transparent "dumb terminal". Getting the cross compiler running on a
brand new processor involves the extra complexity Stephen mentions, but
we don't actually run a full simulator of the target CPU. We just
concentrate on getting the umbilical working as soon as possible.

>>> Being on a standards committee is a thankless task and
>>> I, for one, am grateful for the time they spend on the task even if I
>>> don't always like the result. I am reminded of a statement in a Standard
>>> Pascal book: " ... is fed up with people who complain about the wording
>>> of the draft, and expect him or someone else to find a solution for them
>>> to criticise next time"

It is, in fact, much more difficult than it appears from the outside. A
TC is delighted to have people come and participate in person, because
after even one meeting they understand the task better, and are more
productive.

>> If they are fed up with getting no respect, they could just spend less
>> time braying about how they are the rulers of the world
>
> I must have missed those posts.

:-)

> --- this would free up about 12 hours per day --- they could put this
> time to good use by writing code-libraries in Forth that are useful, so
> that they would gradually gain respect.
>>
>> Writing code-libraries does take time --- this fact I know from
>> experience! --- you know it too!
>>
>
> Yes, and probably the members of the Forth 200X committee don't have
> that time.

In fact, most of them spend their time programming for a living.

Lars Brinkhoff

unread,
May 17, 2017, 1:48:22 AM5/17/17
to
Alex wrote:
>>> How does TARG work when building on system A for system A?
>>
>> Why would it matter what the target system is? I'm guessing Hugh's
>> TARG mode works the same no matter if system A is building for system
>> A or system B.
>
> No, it doesn't; since (for instance and only one example) statements
> such as building 10 VALUE X in the target and then executing the X
> cannot be done.

My guess is that Hugh's compiler never executes target code, no matter
if the target is the same as the host or not.

hughag...@gmail.com

unread,
May 17, 2017, 1:50:49 PM5/17/17
to
There is no need to execute target code at compile-time. It is irrelevant whether the target processor is the same as the host processor or different.

As I said before, immediate words are defined in HOST mode. Defining words, that use <BUILDS DOES> are also defined in HOST mode. <BUILDS switches to TARG mode and semicolon switches back to HOST mode, so the code after <BUILDS is actually code that will run on the target machine. Words written in TARG mode are the run-time application code. Every TARG definition actually meta-compiles a HOST definition automatically --- this is a short colon word that is immediate and, when executed, will generate target code to call the target word --- it has the same name as the TARG word but it is in a different vocabulary so there is no confusion between the two same-name words.

I did have a simulator, but this was not used for compiling. It was used for testing application code. Throughout most of the project, the MiniForth didn't physically exist, so all of the code had to be tested in simulation. When we did finally have a MiniForth board available, there was already substantial amounts of code written, and all of that code ran flawlessly the first time that it was tried. If I had a board available, I wouldn't necessarily write a simulator, but I would just test the application code on the actual board.

The way that I wrote my simulator, as to have the assembler not only generate target code but also generate Forth code that ran on the host machine and simulated the target code. I don't think it is a good idea to decode opcodes in a simulator, because this is complicated and slow. This is only necessary if you don't have the source-code, which is only true if you are reverse-engineering somebody else's program. We had all the source-code ourselves though, because we wrote it ourselves, so most of the work could be done at compile-time rather than run-time --- this makes the simulated program run quite fast.

hughag...@gmail.com

unread,
May 17, 2017, 2:06:05 PM5/17/17
to
On Tuesday, May 16, 2017 at 7:35:22 PM UTC-7, Joel Rees wrote:
> On Wednesday, May 17, 2017 at 3:21:44 AM UTC+9, hughag...@gmail.com wrote:
> > On Tuesday, May 16, 2017 at 4:05:27 AM UTC-7, Gerry wrote:
> > > On 15/05/2017 19:43, hughaguilar96@somewhere wrote:
> > > > What I am saying, is that if they are going to describe themselves as leaders of the Forth community, they should first write useful Forth code-libraries --- this would be a good start toward gaining the respect of Forthers such as myself --- this is actually the only way to gain credence as leaders.
> > > >
> > >
> > > Evidently they don't agree. I don't think they "declare themselves to be
> > > the rulers of the world" - only the world of ANS Forth and Forth 2012
> > > and following standards. And as the Forth 200X Standard Committee that
> > > is their right and responsibility.
> >
> > Obviously, I meant the world of Forth --- the Forth-200x committee also mean the world of Forth --- they use the terms "Forth" and "ANS-Forth" as synonyms, despite the fact that Charles Moore said that ANS-Forth is not Forth but is a Forth-like language at best.
> >
> > Your use of the word "right" is interesting --- is this a God-given right? --- this sounds a lot like the monarchies of the Middle Ages when the royal families claimed to have a divine right to rule over the peasants.
> >
>
> Actually, according to some people, the authors of a creative work do
> have a natural right to exercise a certain amount of influence over what
> is done with the creative work.

I'm not doing anything with Stephen Pelc's creative work. I have no idea what you are talking about --- I wrote MFX myself --- your suggestion that I'm dependent upon Stephen Pelc or anybody else is just insulting nonsense.

I have never seen the source-code for any other cross-compiler. I have not read the Forth-200x document on cross-compilation --- Jeff Fox told me that it was over-complicated and not worth reading --- only in rare circumstances (the LLRB tree in the novice-package) do I use somebody else's code as a basis for my code, and MFX was not one of these circumstances.

I prefer to figure things out myself. I feel confident that I can always come up with a better solution than any other solution (past, present or future) written by anybody else.

Alex

unread,
May 17, 2017, 2:27:23 PM5/17/17
to
Let's try a real example.

Here's the code I want to meta-compile.

: dupdup dup dup ;
: another dupdup ;

That's pretty straightforward. DUP and DUPDUP are immediate words in
TARG that compile a call. These words define stuff on the target (and
also put DUPDUP and ANOTHER into the TARG dictionary). But nothing is
executed there.

variable x
10 x !

Now I require to execute 10 X ! *as though it is running on the target
system*. X is in TARG (our HOST VARIABLE definition did that) and so is
!, but I can't execute them; I have to simulate (or emulate) them on the
host system. Other examples:

: constant create , does> @ ;
10 constant $A

Here we need to execute the CREATE part of the definition *as though it
is running on the target system*.

$A value dollarA

requires us to run the DOES> part of CONSTANT *as though it is running
on the target system*.

They require simulated (or emulated, take your pick).

--
Alex

Alex

unread,
May 17, 2017, 2:30:57 PM5/17/17
to
On 5/17/2017 19:06, hughag...@gmail.com wrote:
> I feel confident that I can always come up with a better solution
> than any other solution (past, present or future) written by anybody
> else.

Misplaced confidence, as usual. Counter evidence and two fairly
significant clangers are: providing late binding macros and a sort that
swaps records rather than pointers to records.

--
Alex

hughag...@gmail.com

unread,
May 17, 2017, 2:42:12 PM5/17/17
to
On Wednesday, May 17, 2017 at 11:27:23 AM UTC-7, Alex wrote:
> : constant create , does> @ ;
> 10 constant $A
>
> Here we need to execute the CREATE part of the definition *as though it
> is running on the target system*.

This is not how CONSTANT is written. I'll change the name to CONST though and show you how this would be written:

HOST

: CONST ( val -- )
<BUILDS , DOES> @ ;

CONST is defined in HOST mode not TARG mode --- the <BUILDS part is not running on the target system --- the <BUILDS part is running on the host system and only the DOES> code (the @ code) is target code.

> $A value dollarA
>
> requires us to run the DOES> part of CONSTANT *as though it is running
> on the target system*.
>
> They require simulated (or emulated, take your pick).

You really don't know anything about Forth cross-compilation.

hughag...@gmail.com

unread,
May 17, 2017, 3:02:25 PM5/17/17
to
I'm the only Forth programmer who has ever written a late-binding MACRO: --- it is in the novice-package to be released soon --- I had a late-binding MACRO: in MFX written in 1994, but I was slow to implement this in ANS-Forth because I first had to figure out how to write the disambiguifiers so FIND would work, but I am the only Forther to ever write this in either Forth-83 or ANS-Forth.

My SORT has always worked with elements of any size --- the element can be a record or a pointer to a record --- your claim that I don't understand that an array can contain pointers to records is bizarre; this is very basic programming; I knew this much when I was still in high-school. The line-number BASIC I used in high-school on the Apple-II didn't support pointers or records though, so I would have an array containing indices into other arrays (one array for each field in a pseudo-record)

ANS-Forth is a cult! ANS-Forth is founded entirely upon the idea that the "leading expert" Elizabeth Rather and her appointed committee know everything there is to know about Forth --- and that any critic (me) is utterly incompetent, and doesn't even know what a pointer is. This is very comparable to religious cults that claim to have a monopoly on knowledge of spirituality --- and that any critic is utterly ignorant, and no better than an animal.

Alex

unread,
May 17, 2017, 3:22:11 PM5/17/17
to
On 5/17/2017 19:42, hughag...@gmail.com wrote:
> On Wednesday, May 17, 2017 at 11:27:23 AM UTC-7, Alex wrote:
>> : constant create , does> @ ; 10 constant $A
>>
>> Here we need to execute the CREATE part of the definition *as
>> though it is running on the target system*.
>
> This is not how CONSTANT is written. I'll change the name to CONST
> though and show you how this would be written:
>
> HOST
>
> : CONST ( val -- ) <BUILDS , DOES> @ ;
>
> CONST is defined in HOST mode not TARG mode --- the <BUILDS part is
> not running on the target system --- the <BUILDS part is running on
> the host system and only the DOES> code (the @ code) is target code.

Call it what you will. This;

: CONST ( val -- ) <BUILDS , DOES> @ ;

10 const $A

still requires building (or creating; the name is neither here nor
there) on the target (that, after all, is the whole point of the
definition). The <BUILDS part (in this case , ) must be emulated on the
host to build the constant on the target.

Referring to $A outside of definition requires doing the DOES> part, so
the @ must be emulated too. (Unless you don't allow that.)

Or how about meta-compiling this?

20 cells allot here 0 ,

What does CELLS ALLOT or HERE or , do? Where are they defined?

>
>> $A value dollarA
>>
>> requires us to run the DOES> part of CONSTANT *as though it is
>> running on the target system*.
>>
>> They require simulated (or emulated, take your pick).
>
> You really don't know anything about Forth cross-compilation.
>

You do?

--
Alex
It is loading more messages.
0 new messages