Implement REQUIRE (Forth 2012)
This turned out to be simpler than I had thought, as we can use the
::::<filename> marker to detected already included files.
* fth/require.fth: New file
* fth/loadp4th.fth: Load it. As REQUIRE uses FINDNFA.FROM, the
file filefind.fth is no longer optional.
* fth/system.fth (INCLUDE.MARK.START): Allocate a temporary buffer for
the string. PAD was problematic because the interpreter versions of
S" and C" also write to PAD, so something like C" foo.fth" $INCLUDE
would created the marker "::::::::". Despite that, no standard words
should write to PAD. Of course, neither S" and C" should use PAD.
That's a problem for another day.
* fth/t_file.fth: Restore tests for REQUIRE.
* fth/t_required-helper1.fth, fth/t_required-helper2.fth: Files needed
for tests.