On Wednesday 11 July 2007 00:01, Peter Knaggs wrote:
> This is actually a poll about how widely the proposal is implemented and
> how popular it is among the programmers. It is called a CfV
> (call-for-votes) because the process is inspired by the Usenet Rdf/CfV
> process.
The ballot system doesn't work well to describe how Gforth and bigFORTH do
it, so I explain it in words:
Gforth and bigFORTH have made IORs throwable since the dawn of their ANS
Forth compatibility (both during the draft process). However, we use the
system-specific part of the throw code table, and have a way how to convert
signal and errno numbers into the THROW space.
If you relax your proposal in such a way that IORs must be throwable, and
the system also must provide a way to print out diagnostic strings (e.g.
the .ERROR we have in Gforth), a consent is easier to reach. I like to keep
as much information as possible about the original error, so mapping errors
to words that misbehave isn't such a good idea - a word like WRITE-FILE can
fail for quite a number of reasons (no space left on device, pipe closed,
low-level IO error, buffer outside address space, etc.). A backtracing
utility is a better way to locate the error, and you'll then see which word
misbehaved, as well.
So in general, I fully support the part of your proposal where IORs are made
throwable, but I don't support your throw code scheme.
--
Bernd Paysan
"If you want it done right, you have to do it yourself"
http://www.jwdt.com/~paysan/