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

bugs in SwiftForth

198 views
Skip to first unread message

Hugh Aguilar

unread,
Jan 11, 2023, 10:04:48 PM1/11/23
to
I think that Stephen Pelc introduced bugs into the latest VFX versions
for the purpose of preventing my novice package from working.
Specifically, LIT, now fails. This is just ANS-Forth code though, and
it has been working for the last 10 years on all tested ANS-Forth systems.
These bugs are in both the 32-bit and 64-bit VFX releases.
Here is some test code:
------------------------------------------------------------------------------------------
: lit, ( val -- ) \ runtime: -- val
postpone literal ;

: maybe
cr
: 1 . .s
5 lit, 2 . .s
postpone ; 3 . .s
;

: fails
cr
: 1 . .s
postpone if 2 . .s
5 lit, 3 . .s
postpone then 4 . .s
postpone ; 5 . .s
;

: works
cr
: 1 . .s
postpone if 2 . .s
5 postpone literal 3 . .s
postpone then 4 . .s
postpone ; 5 . .s
;
------------------------------------------------------------------------------------------

This is what happens:
------------------------------------------------------------------------------------------
empty ok
include "C:\Users\Hugh Aguilar\Desktop\MSP430\test.4th"
Including C:\Users\Hugh Aguilar\Desktop\MSP430\test.4th ok
maybe mmm
1
DATA STACK
empty stack
2
DATA STACK
empty stack
3
DATA STACK
empty stack
ok
mmm . -4 ok

works www
1
DATA STACK
empty stack
2
DATA STACK
top
5180264 004F:0B68
3
DATA STACK
top
5180264 004F:0B68
4
DATA STACK
empty stack
5
DATA STACK
empty stack
ok
1 www . 5 ok

fails fff
1
DATA STACK
empty stack
2
DATA STACK
top
5180328 004F:0BA8
3
DATA STACK
top
5 0000:0005

Err# -57005 ERR: Windows exception
-> fails fff

-----------------------------------------------------------------------------------------
Note that the MAYBE word, MMM sometimes does work and I get 5.
It sometimes compiles badly though and I get -4 as shown above.
FAILS words always fail and WORKS words always work.

none albert

unread,
Jan 12, 2023, 4:29:05 AM1/12/23
to
In article <6fb65bf5-2e2a-4957...@googlegroups.com>,
Hugh Aguilar <hughag...@gmail.com> wrote:
>I think that Stephen Pelc introduced bugs into the latest VFX versions
>for the purpose of preventing my novice package from working.

Welcome back, Hugh! I like the idea that a multiple-billion
multinational goes to the trouble of making your novice package
unusable. It is of Trumpian arrogance.

However it is one of two. You have identified a crime against
portability of VFX or your program has not been standard to
begin with. Which is it?

Groetjes Albert
--
Don't praise the day before the evening. One swallow doesn't make
spring. You must not say "hey" before you have crossed the bridge.
Don't sell the hide of the bear until you shot it. Better one bird in
the hand than ten in the air. - the Wise from Antrim -

dxforth

unread,
Jan 12, 2023, 5:48:25 AM1/12/23
to
On 12/01/2023 8:29 pm, albert wrote:
> In article <6fb65bf5-2e2a-4957...@googlegroups.com>,
> Hugh Aguilar <hughag...@gmail.com> wrote:
>> I think that Stephen Pelc introduced bugs into the latest VFX versions
>> for the purpose of preventing my novice package from working.
>
> Welcome back, Hugh! I like the idea that a multiple-billion
> multinational goes to the trouble of making your novice package
> unusable. It is of Trumpian arrogance.
>
> However it is one of two. You have identified a crime against
> portability of VFX or your program has not been standard to
> begin with. Which is it?

ANS be praised. The band is getting back together on a mission to
root out non-compliance.

none albert

unread,
Jan 12, 2023, 6:35:12 AM1/12/23
to
Suppose you don't bother about ANS, and you have written a program that
compiles with a particular version of VFX.
Then you should not complain that it no longer compiles with a newer
version of VFX.

However if you do bother about ANS/ISO , then you can reap great benefit
from the efforts within MPE to deliver a compiler that be standard.
Even if you are not a paying customer.

Anton Ertl

unread,
Jan 12, 2023, 6:53:11 AM1/12/23
to
albert@cherry.(none) (albert) writes:
>However it is one of two. You have identified a crime against
>portability of VFX or your program has not been standard to
>begin with. Which is it?

Can't you tell yourself? I see no non-standard usage in the test
program he posted.

When I tried it with VFX Forth 64 5.11 RC2, MMM produced the wrong
result and FAILS crashed.

- 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: https://forth-standard.org/
EuroForth 2022: https://euro.theforth.net

none albert

unread,
Jan 12, 2023, 7:26:35 AM1/12/23
to
In article <nnd$67b5d1fe$55134055@76782156cee9e472>,
none) (albert <albert@cherry.> wrote:
>In article <6fb65bf5-2e2a-4957...@googlegroups.com>,
>Hugh Aguilar <hughag...@gmail.com> wrote:
>>I think that Stephen Pelc introduced bugs into the latest VFX versions
>>for the purpose of preventing my novice package from working.
>
>Welcome back, Hugh! I like the idea that a multiple-billion
>multinational goes to the trouble of making your novice package
>unusable. It is of Trumpian arrogance.

I regret sending this post. I was out of line sending this riposte.
Apologize.

>
>However it is one of two. You have identified a crime against
>portability of VFX or your program has not been standard to
>begin with. Which is it?

Ertl's reaction is more professional. He actually looked into it.

NN

unread,
Jan 12, 2023, 10:10:51 AM1/12/23
to

I dont understand x86 assembly , however I can see that the "see" output for mmm and nnn is different.
perhaps that might provide a clue.

ok
see maybe
MAYBE
( 000E61C0 48FF15A6F5F2FF ) CALL FFF2F5A6 [RIP] @0001576D
( 000E61C7 E864C3F9FF ) CALL 00082530 :
( 000E61CC 488D6DF8 ) LEA RBP, [RBP+-08]
( 000E61D0 48895D00 ) MOV [RBP], RBX
( 000E61D4 BB01000000 ) MOV EBX, # 00000001
( 000E61D9 E82A74F3FF ) CALL 0001D608 .
( 000E61DE E88D4EF4FF ) CALL 0002B070 .S
( 000E61E3 E868F0F3FF ) CALL 00025250 LITERAL
( 000E61E8 488D6DF0 ) LEA RBP, [RBP+-10]
( 000E61EC 48C7450005000000 ) MOV QWord [RBP], # 00000005
( 000E61F4 48895D08 ) MOV [RBP+08], RBX
( 000E61F8 BB02000000 ) MOV EBX, # 00000002
( 000E61FD E80674F3FF ) CALL 0001D608 .
( 000E6202 E8694EF4FF ) CALL 0002B070 .S
( 000E6207 E8ACC3F9FF ) CALL 000825B8 ;
( 000E620C 488D6DF8 ) LEA RBP, [RBP+-08]
( 000E6210 48895D00 ) MOV [RBP], RBX
( 000E6214 BB03000000 ) MOV EBX, # 00000003
( 000E6219 E8EA73F3FF ) CALL 0001D608 .
( 000E621E E84D4EF4FF ) CALL 0002B070 .S
( 000E6223 C3 ) RET/NEXT
( 100 bytes, 21 instructions )
ok
maybe mmm
1
DATA STACK
empty stack
2
DATA STACK
empty stack
3
DATA STACK
empty stack
ok
mmm . 0 ok
see mmm
MMM
( 000E6410 488D6DF8 ) LEA RBP, [RBP+-08]
( 000E6414 48895D00 ) MOV [RBP], RBX
( 000E6418 BB00000000 ) MOV EBX, # 00000000
( 000E641D C3 ) RET/NEXT
( 14 bytes, 4 instructions )
ok
maybe nnn
1
DATA STACK
empty stack
2
DATA STACK
empty stack
3
DATA STACK
empty stack
ok
see nnn
NNN
( 000E6450 488D6DF8 ) LEA RBP, [RBP+-08]
( 000E6454 48895D00 ) MOV [RBP], RBX
( 000E6458 BB05000000 ) MOV EBX, # 00000005
( 000E645D C3 ) RET/NEXT
( 14 bytes, 4 instructions )
ok
nnn . 5 ok
nnn . 5 ok




Can I suggest the following change :

: lit, ( val -- ) \ runtime: -- val
align postpone literal ;

Does this fix the problem Hugh ?

dxforth

unread,
Jan 12, 2023, 7:44:22 PM1/12/23
to
On 12/01/2023 10:35 pm, albert wrote:
> In article <tpoohm$77e$1...@gioia.aioe.org>, dxforth <dxf...@gmail.com> wrote:
>> On 12/01/2023 8:29 pm, albert wrote:
>>> In article <6fb65bf5-2e2a-4957...@googlegroups.com>,
>>> Hugh Aguilar <hughag...@gmail.com> wrote:
>>>> I think that Stephen Pelc introduced bugs into the latest VFX versions
>>>> for the purpose of preventing my novice package from working.
>>>
>>> Welcome back, Hugh! I like the idea that a multiple-billion
>>> multinational goes to the trouble of making your novice package
>>> unusable. It is of Trumpian arrogance.
>>>
>>> However it is one of two. You have identified a crime against
>>> portability of VFX or your program has not been standard to
>>> begin with. Which is it?
>>
>> ANS be praised. The band is getting back together on a mission to
>> root out non-compliance.
>
> Suppose you don't bother about ANS, and you have written a program that
> compiles with a particular version of VFX.
> Then you should not complain that it no longer compiles with a newer
> version of VFX.
>
> However if you do bother about ANS/ISO , then you can reap great benefit
> from the efforts within MPE to deliver a compiler that be standard.
> Even if you are not a paying customer.

The Standard and what it permits is too complicated for the average user
to understand. Implementers too, it would seem. ANS dug a hole so deep
it challenges everyone.


Jach Feng

unread,
Jan 12, 2023, 9:04:58 PM1/12/23
to
none albert 在 2023年1月12日 星期四下午5:29:05 [UTC+8] 的信中寫道:
I am confused that what makes you such a scumbag? Can't you just get lost out of this forum? It's a shame to all of us see this post!

Hugh Aguilar

unread,
Jan 12, 2023, 10:53:06 PM1/12/23
to
On Thursday, January 12, 2023 at 8:10:51 AM UTC-7, NN wrote:
> Can I suggest the following change :
> : lit, ( val -- ) \ runtime: -- val
> align postpone literal ;
>
> Does this fix the problem Hugh ?

That seems to fix the problem.
This explains why MAYBE sometimes works and sometimes doesn't.
The code in LIT, is sometimes aligned and sometimes not. although
that is weird too --- I would expect the code in the word created by MAYBE
to always be aligned on a paragraph boundary to reduce cache-thrashing.

I haven't actually taken the time to use SEE to look at the code generated, or
to look at the code in the compiler that generates this code.
It is not really my job to debug VFX for Stephen Pelc.

Hugh Aguilar

unread,
Jan 12, 2023, 11:21:23 PM1/12/23
to
I made a typo in the title of this thread.
It should have been "Bugs in VFX" not "Bugs in SwiftForth."
SwiftForth hasn't changed at all.

On Thursday, January 12, 2023 at 5:26:35 AM UTC-7, none albert wrote:
> In article <nnd$67b5d1fe$55134055@76782156cee9e472>,
> none) (albert <albert@cherry.> wrote:
> >In article <6fb65bf5-2e2a-4957...@googlegroups.com>,
> >Hugh Aguilar <hughag...@gmail.com> wrote:
> >>I think that Stephen Pelc introduced bugs into the latest VFX versions
> >>for the purpose of preventing my novice package from working.
> >
> >Welcome back, Hugh! I like the idea that a multiple-billion
> >multinational goes to the trouble of making your novice package
> >unusable. It is of Trumpian arrogance.
> I regret sending this post. I was out of line sending this riposte.
> Apologize.

I accept your apology.
I have to point out however, that you never apologized for this attack:
https://groups.google.com/g/comp.lang.forth/c/qqlp1gZnVic

I still think that Stephen Pelc introduced the bug for the purpose of
breaking my novice package. Stephen Pelc hates me because I wrote
an early-binding MACRO: that he and all of the comp.lang.forth experts
have failed to write. They are going to continue to fail at this forever
because they don't have disambiguifiers available, which are needed.
They don't have disambiguifiers because Stephen Pelc said that my
disambiguifiers don't work --- so, nobody wants to use the disambiguifiers
because doing so would contradict Stephen Pelc --- the disambiguifiers
obviously do work though, because I was able to write an early-binding
MACRO: using them. I also wrote SYNONYM in ANS-Forth using the
disambiguifiers, which Stephen Pelc has also failed at.
This is documented here:
https://groups.google.com/g/comp.lang.forth/c/T-yYkpVwYew/m/tNE4Q9aNDwAJ
Note that Anton Ertl made an attempt at writing an early-binding macro facility,
but he failed. His macros can't include literal numbers. His macros can't include
words that remove data from the input-stream, such as [CHAR] C" S" POSTPONE etc..
If I was a school teacher and Anton Ertl was a student, I would give him a 'C' grade
for this effort. He has a crude macro facility, but with so many limitations as to make
it worthless. Anton Ertl is a school teacher though, so he just gives me an 'F' without
any supporting evidence --- he is on the Forth-200x committee, so he is guaranteed
the loyalty of all of the Forth-200x members who want to continue to be members
so they can claim that they set the standard for Forth, whereas mere Forth
programmers such as myself kneel before them and depend upon their guidance.

Kerr-Mudd, John

unread,
Jan 13, 2023, 4:58:53 AM1/13/23
to
On Thu, 12 Jan 2023 20:21:21 -0800 (PST)
Hugh Aguilar <hughag...@gmail.com> wrote:

> I made a typo in the title of this thread.
> It should have been "Bugs in VFX" not "Bugs in SwiftForth."
> SwiftForth hasn't changed at all.
>
> On Thursday, January 12, 2023 at 5:26:35 AM UTC-7, none albert wrote:
> > In article <nnd$67b5d1fe$55134055@76782156cee9e472>,
> > none) (albert <albert@cherry.> wrote:
> > >In article <6fb65bf5-2e2a-4957...@googlegroups.com>,
> > >Hugh Aguilar <hughag...@gmail.com> wrote:
> > >>I think that Stephen Pelc introduced bugs into the latest VFX versions
> > >>for the purpose of preventing my novice package from working.
> > >
> > >Welcome back, Hugh! I like the idea that a multiple-billion
> > >multinational goes to the trouble of making your novice package
> > >unusable. It is of Trumpian arrogance.
> > I regret sending this post. I was out of line sending this riposte.
> > Apologize.
>
> I accept your apology.
> I have to point out however, that you never apologized for this attack:
> https://groups.google.com/g/comp.lang.forth/c/qqlp1gZnVic
>
> I still think that Stephen Pelc introduced the bug for the purpose of
> breaking my novice package. Stephen Pelc hates me because I wrote
[]
And it took that long.

--
Bah, and indeed Humbug.
0 new messages