Forth standards meeting at EuroForth 2007

On 2007-09-13 and 2007-09-14 there was a Forth standards meeting, right before and partly during EuroForth 2007. The participants were: At this meeting the observers were allowed to vote. Anton Ertl chaired most of the meeting, Peter Knaggs chaired the discussions on proposals by Anton Ertl.

The following topics were discussed (not always in this order):

Accepting proposals into the standard document

The following proposals which had gone to a CfV were discussed and voted on:

There was some grumbling about the absence of test cases, but eventually the proposal was accepted: 7Y:0N:0A
Throw IORs
After some discussion, where Stephen Pelc argued that the presence of the new throw values was necessary to convince Forth implementors for embedded systems to return IORs that are useful for THROWing, this proposal was accepted: 7Y:0N:0A.
EKEY return values for some keyboard events
Discussion focused on the interaction between EKEY?/EKEY and KEY?/KEY. Anton Ertl then produced a description of one way in which a standard program might deal with this issue; that description was to be added to the rationale of EKEY. This settled the issue, and the proposal was accepted: 9Y:0N:1A (the abstention was from an observer).
Separate FP stack
In the 2006 meeting it had been unclear to some participants what the effect of making separate stacks standard would be on existing programs and systems. Anton Ertl produced a description of that effect. This description satisfied the participants. Anton Ertl then proposed that he would write up the appropriate changes for the standard document, and that this should be voted on in the next meeting.
Number Prefixes
The CfV and the announcement current standings had been too late for this meeting (according to the rules set up last time), but the committee decided to process this proposal at its discretion. Accepted 7Y:0N:0A.
Rewrite of TO (Wording change, no effect on systems or programs)
Accepted: 8Y:0N:0A
Front Matter (Meta-Information, no effect on systems or programs)
Accepted: 8Y:0N:0A
The presence of a version of the standards document that had all the proposals incorporated in a way that made the proposed changes visible was a great help in these discussions.


The following proposals (currently in RfD phase) were discussed:
Enhanced locals
The discussion mainly centered around the following points: whether to split the present RfD into several RfDs (yes, '{' syntax and buffer locals); whether to include BUILDLV (no); syntax for buffer locals (feedback on earlier RfDs indicates that using the last character of the word to be declared is deemed un-Forth-like by many); how useful buffer locals are and for what applications.
Escaped strings
There were discussions about the following topics: the presence and absence of specific escapes (some changes in that respect were suggested by some committee members, but none had wide support); whether the escape characters should be case sensitive (yes); whether the hex digits in \xAB should be case insensitive (yes).
Some of the discussions that had been led electronically, were repeated (using AKA; argument order).
Extended characters
The name of Forth chars was deemed to be confusing in the presence of xchars, and it was suggested that they should be renamed into pchars (for primitive characters) in a separate wording change proposal. Bernd Paysan reported the changes he intended to apply to his latest xchars proposal. The question of how to interface to various other character sets and encodings on I/O inspired a lot of discussion; Anton Ertl outlined his ideas for a solution (conversion on I/O, with encoding possibly specified in the fam passed to OPEN-FILE), which was not widely supported; the final recommendation to Bernd Paysan was not to lead his RfD to CfV without addressing this issue; the I/O issue should be covered in another RfD, but only after gaining some more experience with it. Several of these discussions were continued in more depth in the EuroForth Internationalisation workshop.
It was agreed that these proposals should be rewritten for to new TO wording and then proceed to a CfV.
Anton Ertl presented the problem of referring to files relative to the directory of the currently included file. Stephen Pelc pointed out that this is not the only problem related to directories. The discussion eventuelly suggested a solution that would not not be a one-off solution, but would lead the door open to a macro solution that would also be useful for the other problems. The suggested prefix for referring to the include directory was %inc%/.

Future RfDs

Federico de Ceballos presented some proposals that he plans to submit as RfDs:
0 as NIL
His proto-RfD changes HERE and ALLOCATE. Some alternative suggestions were made, in particular changing the definition of contiguous region.
8-bit, 16-bit, 32-bit memory access
He presented a comprehensive set of words for the purpose. There was some discussion about naming (U@16 vs. W@; some approvement was expressed for Federicos naming despite its deviation from common practice), about alignment (network order accesses should not require alignment, native accesses should).
Federico de Ceballos promised to submit RfDs on these topics soon.

Other topics

Peter Knaggs presented the current draft of the standard document and the committee discussed it. One suggestion was that it should be clearer what is normative and what is not (through colour or font). The inlining of the tests was criticised as distracting.

The document and its source are now on, but not yet linked.

A German version of the minutes of the 2006 meeting were published in the Vierte Dimension (Forth-Gesellschaft). Peter Knaggs has contacted Paul Frenger about publishing the minutes in SIGPLAN Notices.

The next voting meeting is to be again on the day before the next EuroForth (probably on September 25th/26th, 2008 in Vienna). In addition, a non-voting review meeting was suggested on the Thursday before the Forth-Tagung (near Ulm in April/May 2008); Ulrich Hoffmann said that he would check whether that could be arranged.

Rules for becoming a voting member were discussed and decided: On the first meeting, a person would become observer, or, on the discretion of the committee, a voting member; on the second consecutive meeting, the person would become a voting member. After missing two consecutive voting meetings, the person would revert to non-member status.

Words that were obsolescent in Forth-94 should be moved into a separate "obsolete" wordset.

[I have here a note saying "numbering", but cannot say what this was about.]

Anton Ertl