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:
- Sergey N. Baranov, Motorola St. Petersburg, Russia (observer)
- Willem Botha, CCS, South Africa
- Federico de Ceballos, University of Cantabria, Spain
- M. Anton Ertl, TU Wien, Austria
- Ulrich Hoffmann, Heidelberger Druckmaschinen, Germany (observer, late)
- Peter Knaggs, University of Bournemouth, England
- Dagobert Michelsen, Baltic Online Computer GmbH, Germany (observer, late)
- Bernd Paysan, Germany
- Stephen Pelc, MPE, England
- Carsten Strotmann, Germany (observer, late)
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:
- Structures
- 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.
RfDs
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).
- Synonyms
- 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.
- 2VALUE and FVALUE
- It was agreed that these proposals should be rewritten for to
new TO wording and then proceed to a CfV.
- Directories
- 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 www.forth200x.org, 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