diff options
author | jkh <jkh@FreeBSD.org> | 1994-11-23 07:23:24 +0000 |
---|---|---|
committer | jkh <jkh@FreeBSD.org> | 1994-11-23 07:23:24 +0000 |
commit | dfff7e773100e7ded01251bc768769fb869cdfbe (patch) | |
tree | 2e0672ebb7c60dd82ee1f8532ba8778340d44b6b /lang/forth | |
parent | 019b790aaaa5e92d4ed02e8484f5d87184c9d4cd (diff) | |
download | FreeBSD-ports-dfff7e773100e7ded01251bc768769fb869cdfbe.zip FreeBSD-ports-dfff7e773100e7ded01251bc768769fb869cdfbe.tar.gz |
Michael Reifenberger's forth port.
Submitted by: mr
Diffstat (limited to 'lang/forth')
-rw-r--r-- | lang/forth/Makefile | 14 | ||||
-rw-r--r-- | lang/forth/pkg-comment | 1 | ||||
-rw-r--r-- | lang/forth/pkg-descr | 222 | ||||
-rw-r--r-- | lang/forth/pkg-plist | 13 |
4 files changed, 250 insertions, 0 deletions
diff --git a/lang/forth/Makefile b/lang/forth/Makefile new file mode 100644 index 0000000..5c31752 --- /dev/null +++ b/lang/forth/Makefile @@ -0,0 +1,14 @@ +#This is pfe Version 0.9.9 +#By mr +DISTNAME= pfe099 +DISTFILES= pfe-0.9.9.tar.gz +MASTER_SITES= ftp://roxi.rz.fht-mannheim.de/pub/languages/forth/ + +pre-install: + @mkdir -p ${PREFIX}/bin + @mkdir -p ${PREFIX}/lib + @mkdir -p ${PREFIX}/man/man1 + @cp ${WRKSRC}/pfe.1 ${PREFIX}/man/man1/pfe.1 + +.include <bsd.port.mk> + diff --git a/lang/forth/pkg-comment b/lang/forth/pkg-comment new file mode 100644 index 0000000..259d62a --- /dev/null +++ b/lang/forth/pkg-comment @@ -0,0 +1 @@ +forth - Implementation of ANSI Forth. Version 0.9.9 diff --git a/lang/forth/pkg-descr b/lang/forth/pkg-descr new file mode 100644 index 0000000..b4a9acf --- /dev/null +++ b/lang/forth/pkg-descr @@ -0,0 +1,222 @@ +This is the file README and belongs to version 0.9.4a of May 8, 1994 +of the portable Forth-environment. +-------------------------------------------------------------------- + +What is it? +=========== + +This package contains all neccessary ANSI-C source files to build a +running Forth-environment on most UNIX machines, on DOS and on OS/2. + +The Forth-system is closely modeled along the new American National +Standard for the programming language Forth. I implemented every word +of every word set mentioned in the dpANS-6 document of june 1993. +Additionally it is compatible to Forth-83. + +This set of source files is distributed under the GNU general public +license for libraries. See the file COPYING.LIB for conditions. + +I chose that one to point out that I don't consider programs you write +on top of it a 'derived work' of the portable Forth environment. To +violate these conditions you have to do two things together: + + - you use a modified pfe to run your program + - you keep these modification secret + +Should be easy to avoid. + + +Why did I do it? +================ + +For fun. As an excercise in unix programming. And there was no such +thing. See below, design objectives. + + +Design objectives +================= + +With two elaborate standards at hand, one for C, one for Forth, it +should be possible to build one language in terms of the other and +thus provide both where at least one is available. + +While I leave the writing of an ANSI-C compiler in Forth to those who +really believe in Forth's superiority and universality, I concentrated +on the manageable part: Providing a Forth-system in ANSI-C that is + + - CORRECT this means not just "no bugs" -- it means all + the interaction of all parts works as specified + by the standard AND by traditions. + + - COMPLETE with powerful computers on the desk and power- + ful 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. + + - PORTABLE I hate to rewrite code because of environmental + dependencies. Most of the system should be a mere + interface between two well defined languages. + There are of course such dependencies. I tried + to resort to a common subset of all UNIX bahavior + known to me. Fortunately this in fact allowed + porting to DOS and OS/2 thanks to the great + emx-package. + + - USABLE A sole kernel helps noone. It should be a + development environment. You should be able + to manage multiple-source-file-projects from + within. + + - SIMPLE or transparent. At least to my taste. + +Maybe you miss the design objective SPEED. It was not my goal to +provide the fastest C-based Forth-environment. This would have led to +conflicts with much more important goals. We all have fast computers, +haven't we? + +After all pfe isn't slow. With a little tuning using GNU-C's global +register variable feature it is pretty fast. But obviously it cannot +compete with assembler implementations. + + +Status +====== + +Did I achieve the above objectives? +Some of them. I'll continue working on it. + +The system is in use for fifteen month now. Several quite obvious and +several quite subtle bugs have been fixed. While there surely are some +more, they are not as obvious since the system passes several test +programs, some of them rather sophisticated. + +Once you get the system running, you'll have + + - All ANSI Forth word sets with the exception of the assembler + hooks `CODE', `END-CODE' etc. Nothing else is missing. + + - Several more words provided for compatibility and convenience. + + - An interface to a text editor to edit plain text sources + and the ability to include them. + + - A word star lookalike block file editor to write + source in the old style block format. + + - A simple source level debugger -- maybe I should better + say "single stepper". + +Thus you'll be able to edit, compile an run programs in a moderately +comfortable way. For the final design of the development environment +your suggestions still are welcome! + +If you try this system, please keep in mind that it is still under +development. Sometimes new --even stupid-- bugs are introduced while +enhancing functionality or while fixing old ones. I appreciate every +hint to a bug and I fixed every bug I've been told about in the last +months. So please don't hesitate to tell me about whatever seems +wrong. Please check for the latest version via anonymous ftp from + + roxi.rz.fht-mannheim.de:/pub/languages/forth/pfe-?.?.?.tar.gz + +(accessible from germany only) or + + sunsite.unc.edu:/pub/languages/forth/pfe-?.?.?.tar.gz + +Please send suggestions and bug reports via e-mail to + + duz@roxi.rz.fht-mannheim.de + + +Usage +===== + +For installation refer to the files `install' and `tuning'. + +Once you have it running and see the "ok" prompt after typing return +you can interactively type in forth words. If you mistype, you can +edit the command line and recall old command lines with the arrow +keys. (If you can't then your termcap doesn't work all right and you +can resort to wordstar-like control keys.) + +To write some more statements try "EDIT-TEXT filename". This will +invoke your favorite text-file editor on the given file. If it +doesn't, first check the environment variable EDITOR, then check the +file "const.h" for the #defined symbol "EDITOR". + +Having written some code you can load it by "INCLUDE filename". + +If you prefer the old style block files, give a file to use as +block-file with the -b commandline option. Alternatively you can say +`USING filename' or if the file doesn't exist yet: `USING-NEW +filename'. Then you can edit a block by `n EDIT-BLOCK'. + +If your termcap-mechanism works well, the arrow keys and some other +function keys should be active. Quit the editor with ^U and load +blocks with "n LOAD". If it doesn't work well you might not even get a +picture. + +For more commandline options try the option -h. + +The interrupt key is remapped to ^U and leads back to the FORTH input +loop. Use it to break out of infinite loops. +To terminate the system, type BYE at the command-prompt or press the +keyboard quit key of your system (usually ^\). + + +Documentation +============= + +I started writing a documentation in texinfo format. This will allow +you to view it online or print it in good quality. There's also an +outdated and hopefully soon superseded man-page that explains some of +the command line options. All documentation is highly unfinished. + +For more information please try to get the dpANS-document, which is +an EXCELLENT REFERENCE to this system! You can (could?) ftp it at +ftp.uu.net in the directory /vendor/minerva/x3j14. + + +Contributions +============= + +are welcome! After the kernel is finished now it makes much sense to +share the burden of creating and improving a well rounded programming +environment for all tasks a Forth programmer wants to do. PFE is YOUR +tool. Get involved in it's design! + +There is a mailing list on pfe which you should subscribe to if you +want to be up to date with the development of the system. Send e-mail +to duz@roxi.rz.fht-mannheim.de if you want to subscribe to that +mailing list. + + +Acknowledgements +================ + +I want to express my gratitude to the people who put their efforts in +the precise descriptions I found in these documents: + + - draft proposed American National Standard -- Programming Languages + -- Forth (X3J14 dpANS-6, June 30, 1993) + + - FORTH-83 Standard (August 1983) + + - fig-FORTH Installation Manual -- Glossary, Model, Editor + (Version 1.3, November 1980) + +Thanks for providing superb development tools: + + - Richard Stallman and the FSF, Linus Thorvalds and all who + contribute to Linux and Eberhard Mattes. + +Several nice people gave me valuable hints to bugs and possible +improvements, were patient enough to try the very first releases, made +ports to machines I never saw myself and kept me from frustration. If +pfe is stable now it is thanks to it's users. Most notably: + + Lennert Benschop, Sean Conner, Holger Dietze, Kevin Haddock, + Rob Hooft, Giorgio Richelli, Marko Teiste, Guenther Thomsen. + +Thank You. diff --git a/lang/forth/pkg-plist b/lang/forth/pkg-plist new file mode 100644 index 0000000..622910e --- /dev/null +++ b/lang/forth/pkg-plist @@ -0,0 +1,13 @@ +@cwd /usr/local +@mode 755 +@owner bin +@group bin +bin/pfe +lib/pfe/help/showhelp +lib/pfe/help/helpidx +@mode 644 +man/man1/pfe.1 +lib/pfe/help/floating.hlp +lib/pfe/help/forth-83.hlp +lib/pfe/help/index +lib/pfe/help/misc.hlp |