Josh Grams schrieb:
>
> OK, I got the cvs version to build, so here's a patch which appears to
> fix both. For the line numbers, it might be better to fix block-sub.c
> so that they start at one, rather than adding one every place you want
> to use the line number, but I wasn't confident that I could find all the
> references, so I didn't do that.
>
I have applied those patches as well as others that were sent to me in the
last year. A new release 33.65 has been uploaded to the Sourceforge file
section and a Freshmeat announcement was sent.
The release is more important than that because the SBR-threading model
is fixed for x86 machines. The newer GCC 3.x/4.x versions were often
"overoptimizing" - actually, they were ignoring commandline options and
code directives so that the mix of inline-assembly used in some Forth
primitives was trashed. It was not a problem with most commercial
companies using PFE since they were either using old compilers anyway
or they were using normal ITC to have live debugging features enabled.
However, enabling SBR-threading in a modern Linux distro was impossible.
The current implementation strategy kills all of the inline-assembly
used in Forth primitives (implemented in pure C in PFE as usual).
Instead the RP-stack handling was moved to the compiling word - as
an effect the C code is less cluttered with ifdefs. The resulting
machine code is a good read now - on x86 with GCC 4.1.2 one could
configure --with-sbr-threading --with-regs=2 that assigns regTH to
EBX and regSP to ESI (including the native IP/RP). The default
configure tests do also add a -fno-builtin and -mno-leaf-framepointer
and so most Forth primitives end up to be 1 to 4 machine codes in CORE
which is pretty close to what a human programmer would write down as
original assembler code for a Forth implementation.
Sadly, SF compilefarm and HP testdrive are down so that I can not
test across all platforms that were activly supported a few years
back while working in the Tek labs. In the meantime I had kept
changes to the PFE source code to a minimum in order not to break
any of the numerous configuration options but I guess I have to face
the reality that there can be no more high testing quality for PFE
in the future. This release is only tested on x86, sorry, I hope that
the latest changes in the SBR-threading work on other platforms just
fine as the implementation is now cleaner than before.
Best Regards, Guido U. Draheim
http://www.google.de/search?q=guidod


|