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