On Mar 11, 11:57 am, Brad Eckert <nospaambr...@[EMAIL PROTECTED]
> wrote:
> It seems to me that publication of Forth code doesn't work well as an
> afterthought. It's unnatural to discipline one's coding style for
> maximum ****tability and communication with end users. Academics who
> code with an eye toward publication end up with code that's fit to be
> published while guys just trying to make something work end up with
> non-****table code with sketchy (if any) do***entation. There are also
> some things about Forth that hinder ****tability.
However, there is a social programming way to view this, which is to
view the working with the code to make it ****table to a wider variety
of contexts as a distinct problem, that starts with working code on
one implementation in one operating system, goes through making some
edits to fit it into the system, and then writes a master file that
knows about the ****tability harness system available to get to
something that can be loaded directly by people on a wider variety of
implementations and, if appropriate, operating systems.
> Most Forth94 implementations lump all of the wordsets and a bunch of
> vendor-specific words into an alphabet soup called FORTH, which forces
> programmers to keep on their toes about using non-ANS words. But a
> tool can be built to address this.
In the above, there are a handful of words that are im****ted from the
library management system that appear on the inside of the "simple
forth script" file. If they are designed so that they are easy to
bootstrap into place, then they can be conditionally compiled in the
simple forth script, and result in a revision that is a direct
replacement for the original, while also fitting comfortably into the
library management system.
> There is a problem with INCLUDE in that it doesn't provide enough
> control over the current file path. That means library A can't include
> library B if library A is to be included from any directory, which
> forces the user to deal with details that normally should remain
> hidden. Hopefully 200x will fix this.
This also fits into the above approach ... the library management
system can include a word F" that can translate from a standard
descriptor to the system-specific descriptor to access:
* the library-root directory
* the current working directory
* the directory of the current source
* and one subdirectory down from any of those
.... and that is enough of a ****tability hook to hang quite a lot on.
Writing a suitable F" for an implementation/OS combination would then
be one of the tasks in ****ting the library management system to a new
implementation/OS combination.


|