If you want to label a Forth program as ANS Forth Program, you must document which wordsets the program uses; for extension wordsets, it is helpful to list the words the program requires from these wordsets (because Forth systems are allowed to provide only some words of them).
The ans-report.fs tool makes it easy for you to determine which
words from which wordset and which non-ANS words your application
uses. You simply have to include ans-report.fs before loading the
program you want to check. After loading your program, you can get the
print-ans-report. A typical use is to run this as
batch job like this:
gforth ans-report.fs myprog.fs -e "print-ans-report bye"
The output looks like this (for compat/control.fs):
The program uses the following words from CORE : : POSTPONE THEN ; immediate ?dup IF 0= from BLOCK-EXT : \ from FILE : (
Note that ans-report.fs just checks which words are used, not whether they are used in an ANS Forth conforming way!
Some words are defined in several wordsets in the
standard. ans-report.fs reports them for only one of the
wordsets, and not necessarily the one you expect. It depends on usage
which wordset is the right one to specify. E.g., if you only use the
compilation semantics of
S", it is a Core word; if you also use
its interpretation semantics, it is a File word.