summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authorJordan K. Hubbard <jkh@FreeBSD.org>1994-11-23 07:23:24 +0000
committerJordan K. Hubbard <jkh@FreeBSD.org>1994-11-23 07:23:24 +0000
commit1b85cfe12d664b94ae80124ba438c9d1e6d17ce7 (patch)
tree61f82e05d4eb30d4b6e74b36c44a69e002265dce /lang
parentAdded color_xterm. (diff)
Michael Reifenberger's forth port.
Submitted by: mr
Notes
Notes: svn path=/head/; revision=471
Diffstat (limited to 'lang')
-rw-r--r--lang/forth/Makefile14
-rw-r--r--lang/forth/pkg-comment1
-rw-r--r--lang/forth/pkg-descr222
-rw-r--r--lang/forth/pkg-plist13
4 files changed, 250 insertions, 0 deletions
diff --git a/lang/forth/Makefile b/lang/forth/Makefile
new file mode 100644
index 000000000000..5c317520fe38
--- /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 000000000000..259d62a8128f
--- /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 000000000000..b4a9acf1d15d
--- /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 000000000000..622910e6395f
--- /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