ANSI Standard for Forth based environment
Version: 0.33.70Portable Forth Environment (or PFE for short) is based on the ANSI Standard for Forth. The PFE has been created by Dirk-Uwe Zoller and had been maintained up to the 0.9.x versions (1993-1995). Tektronix has adopted the PFE package in 1998 and made a number of extensions.
Operating System: Linux
It is now fully multithreaded and it features a module system. You can load additional C objects at runtime to extend the Forth dictionary. It is best targeted for embedded environments since you can easily exchange the terminal driver and the initialization routines.
this means not just "no bugs" -- it means all the interaction of all parts works as specified by the standard.
and beyond the standard, it shall behave in tradional ways to allow to easily adapt sources from older forth systems to the PFE.
with powerful computers on the desk and powerful programming environments there is no need to and no use in strategies like "here kernel, there xyz word set" that might be appropriate on a microcontroller.
I hate to rewrite code because of environmental dependencies. The PFE uses autoconf/automake for automatic system detection, and its drivers for system interaction are largely seperated out.
A sole kernel helps noone. It should be a development environment. You should be able to manage multiple-source-file-projects from within. A source debugger and help files are included of course.
or transparent. At least to my taste. The coding style should make it easy to pick up PFE and adapt it to whatever environment it shall run in.
it allows to add extensions during runtime. There is no need to rebuild the PFE core for each different application, the main runtime can be shared and extended with extra modules.
apart from being free of cost, the PFE is given away under LGPL (not the GPL!) which allows you to add dynamic extra modules under whatever copyright you wish to, even commercial ones. No GPL virus here.
and if you have a nice extra module then I am open to ship it along and to provide it with whatever hooks are needed in the LGPL core.