• bugs in SwiftForth

    From Hugh Aguilar@21:1/5 to All on Wed Jan 11 19:04:46 2023
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From none) (albert@21:1/5 to hughaguilar96@gmail.com on Thu Jan 12 10:29:02 2023
    In article <6fb65bf5-2e2a-4957-8bb5-381eed68dd64n@googlegroups.com>,
    Hugh Aguilar <hughaguilar96@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 -

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dxforth@21:1/5 to albert on Thu Jan 12 21:48:22 2023
    On 12/01/2023 8:29 pm, albert wrote:
    In article <6fb65bf5-2e2a-4957-8bb5-381eed68dd64n@googlegroups.com>,
    Hugh Aguilar <hughaguilar96@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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From none) (albert@21:1/5 to dxforth@gmail.com on Thu Jan 12 12:35:09 2023
    In article <tpoohm$77e$1@gioia.aioe.org>, dxforth <dxforth@gmail.com> wrote: >On 12/01/2023 8:29 pm, albert wrote:
    In article <6fb65bf5-2e2a-4957-8bb5-381eed68dd64n@googlegroups.com>,
    Hugh Aguilar <hughaguilar96@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.

    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 -

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Anton Ertl@21:1/5 to albert@cherry. on Thu Jan 12 11:37:56 2023
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From none) (albert@21:1/5 to albert on Thu Jan 12 13:26:33 2023
    In article <nnd$67b5d1fe$55134055@76782156cee9e472>,
    none) (albert <albert@cherry.> wrote:
    In article <6fb65bf5-2e2a-4957-8bb5-381eed68dd64n@googlegroups.com>,
    Hugh Aguilar <hughaguilar96@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.


    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 -
    --
    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 -

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From NN@21:1/5 to All on Thu Jan 12 07:10:49 2023
    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 ?

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From dxforth@21:1/5 to albert on Fri Jan 13 11:44:18 2023
    On 12/01/2023 10:35 pm, albert wrote:
    In article <tpoohm$77e$1@gioia.aioe.org>, dxforth <dxforth@gmail.com> wrote:
    On 12/01/2023 8:29 pm, albert wrote:
    In article <6fb65bf5-2e2a-4957-8bb5-381eed68dd64n@googlegroups.com>,
    Hugh Aguilar <hughaguilar96@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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Jach Feng@21:1/5 to All on Thu Jan 12 18:04:57 2023
    none albert 在 2023年1月12日 星期四下午5:29:05 [UTC+8] 的信中寫道:
    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 -
    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!

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hugh Aguilar@21:1/5 to All on Thu Jan 12 19:53:04 2023
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Hugh Aguilar@21:1/5 to none albert on Thu Jan 12 20:21:21 2023
    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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Kerr-Mudd, John@21:1/5 to Hugh Aguilar on Fri Jan 13 09:58:51 2023
    On Thu, 12 Jan 2023 20:21:21 -0800 (PST)
    Hugh Aguilar <hughaguilar96@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.

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)