Hi John,

Do the testing words t{...}t work properly on your amForth on CH32V307 ?

Yes. If I #include common/lib/forth2012/tester/tester-amforth.frt and give
it some simple tests.

|S|    3|t{ 0 0 = -> true }t
|S|    4|t{ 1 1 = -> true }t
|S|    5|t{ -1 -1 = -> true }t
|S|    6|t{ 1 0 = -> false }t
|S|    7|t{ -1 0 = -> false }t
|S|    8|t{ 0 1 = -> false }t
|S|    9|t{ 0 -1 = -> false }t
|C|   10|\ and now one that is a deliberate error
|S|   11|t{ $a 0 = -> true }t
|O|   11|INCORRECT RESULT: t{ $a 0 = -> true }t

The responses are correct. Will it properly pass all the tests as
given below? No.

[1] https://github.com/gerryjackson/forth2012-test-suite

Some it will never pass because of the memory organisation, some because
the words are not applicable and some because they are (currently) just
missing.

In my testing I have found that these words don't work properly in
a 32 bit Forth be it RISCV (ESP32Forth) or even I386 (gForth - Linux ).
These words weren't giving an error even if the test was obvious to
give an error message (false positive).

I don't have any of these 32 bit Forths to hand but IIRC tester-amforth.frt
is a modified version of tester.fr (see [1]), so that it could run on
AmForth. From tester-amforth.frt, the word below

: ERROR     \ ( C-ADDR U -- ) DISPLAY AN ERROR MESSAGE FOLLOWED BY
        \ THE LINE THAT HAD THE ERROR.
   itype source type cr         \ DISPLAY LINE CORRESPONDING TO ERROR
   EMPTY-STACK              \ THROW AWAY EVERY THING ELSE
;

uses itype which is an AmForth word, one I would not expect to be in
ESP32Forth. I would be surprised if it would work correctly on an
ESP32Forth. I also would not expect tester-amforth.frt to work at all on
the unmodified AmForth RISC-V svn repo source because of its experimental status[2]. It will, however, work perfectly on AmForth avr8. As an aside,
AmForth's avr8 heritage, born of the capabilities of ATmega mcus,
ripples through the codebase. Something that has caught me out a few
times in my AmForth RISC-V endeavours.


Best wishes,
Tristan

[2] https://sourceforge.net/p/amforth/mailman/message/36511255/


On 2026-01-04 17:40, John Sarabacha wrote:
Hi Tristan,
Do the testing words t{...}t work properly on your amForth on CH32V307 ? These were found in tester-amforth.frt used for Avr8. In my testing I have found that these words don't work properly in a 32 bit Forth be it RISCV (ESP32Forth) or even I386 (gForth - Linux ). These words weren't giving an
error even if the test was obvious to give an error message (false
positive).

Thanks,
John S

_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel


_______________________________________________
Amforth-devel mailing list for http://amforth.sf.net/
[email protected]
https://lists.sourceforge.net/lists/listinfo/amforth-devel

Reply via email to