summaryrefslogtreecommitdiff
path: root/lang/Gofer
diff options
context:
space:
mode:
authorJeffrey Hsu <hsu@FreeBSD.org>1995-02-08 09:41:13 +0000
committerJeffrey Hsu <hsu@FreeBSD.org>1995-02-08 09:41:13 +0000
commit7687e06a935961c526c5538ad42cdf64c94bfee8 (patch)
tree81749882efb4f825f0896e33f185a0cbc53bb340 /lang/Gofer
parentMesa - a 3-D graphics library similiar to OpenGL (diff)
gofer - a lazy functional language
Notes
Notes: svn path=/head/; revision=909
Diffstat (limited to 'lang/Gofer')
-rw-r--r--lang/Gofer/Makefile33
-rw-r--r--lang/Gofer/distinfo1
-rw-r--r--lang/Gofer/files/patch-aa22
-rw-r--r--lang/Gofer/files/patch-ab79
-rw-r--r--lang/Gofer/files/patch-ac36
-rw-r--r--lang/Gofer/files/patch-ad26
-rw-r--r--lang/Gofer/pkg-comment1
-rw-r--r--lang/Gofer/pkg-descr61
-rw-r--r--lang/Gofer/pkg-plist5
9 files changed, 264 insertions, 0 deletions
diff --git a/lang/Gofer/Makefile b/lang/Gofer/Makefile
new file mode 100644
index 000000000000..3bcf52d22404
--- /dev/null
+++ b/lang/Gofer/Makefile
@@ -0,0 +1,33 @@
+# New ports collection makefile for: gofer
+# Version required: 2.30
+# Date created: Wed Feb 1 01:51:59 PST 1995
+# Whom: hsu
+#
+# $Id$
+#
+
+DISTNAME = gofer230a
+MASTER_SITES = ftp://cs.nott.ac.uk/nott-fp/languages/haskell/gofer/
+WRKSRC = ${WRKDIR}/src
+LIBDIR = ${PREFIX}/lib/Gofer
+
+install:
+ -mkdir -p ${LIBDIR}
+ -mkdir -p ${PREFIX}/man/man1
+ -mkdir -p ${PREFIX}/bin
+ install -c -m 444 ${WRKDIR}/*.prelude ${LIBDIR}
+ install -c -m 444 ${WRKDIR}/src/prelude.h ${LIBDIR}
+ install -c -m 444 ${WRKDIR}/src/gofc.h ${LIBDIR}
+ perl -pi -e "s|#include \"prelude.h\"|#include \"${LIBDIR}/prelude.h\"|" ${LIBDIR}/gofc.h
+ install -c -m 444 ${WRKDIR}/src/runtime.o ${LIBDIR}
+ install -c -m 555 ${WRKDIR}/scripts/gofer ${PREFIX}/bin
+ install -c -m 555 ${WRKDIR}/scripts/goferc ${PREFIX}/bin
+ install -c -m 555 ${WRKDIR}/src/gofer ${LIBDIR}
+ install -c -m 555 ${WRKDIR}/src/gofc ${LIBDIR}
+ install -c -m 444 ${WRKDIR}/docs/gofer.1 ${PREFIX}/man/man1
+ -rm -f ${PREFIX}/man/man1/gofer.1.gz
+ gzip -9 ${PREFIX}/man/man1/gofer.1
+ -mkdir -p ${LIBDIR}/docs
+ install -c -m 444 ${WRKDIR}/docs/* ${LIBDIR}/docs
+
+.include <bsd.port.mk>
diff --git a/lang/Gofer/distinfo b/lang/Gofer/distinfo
new file mode 100644
index 000000000000..a390ac6b2cfc
--- /dev/null
+++ b/lang/Gofer/distinfo
@@ -0,0 +1 @@
+MD5 (gofer230a.tar.gz) = a020b6a9c446701f169e06eb535b76dc
diff --git a/lang/Gofer/files/patch-aa b/lang/Gofer/files/patch-aa
new file mode 100644
index 000000000000..b3c7fabf7aa7
--- /dev/null
+++ b/lang/Gofer/files/patch-aa
@@ -0,0 +1,22 @@
+*** Makefile.0 Thu Jun 23 09:00:00 1994
+--- Makefile Wed Feb 1 01:42:58 1995
+***************
+*** 24,32 ****
+ # below).
+
+ CC = cc
+! #CFLAGS = -DUSE_READLINE=1
+! CFLAGS =
+! LDFLAGS = -lm
+ OPTFLAGS = -O
+ OPT1 =
+ #OPT1 = -O1
+--- 24,31 ----
+ # below).
+
+ CC = cc
+! CFLAGS = -DUSE_READLINE=1
+! LDFLAGS = -lm -lreadline
+ OPTFLAGS = -O
+ OPT1 =
+ #OPT1 = -O1
diff --git a/lang/Gofer/files/patch-ab b/lang/Gofer/files/patch-ab
new file mode 100644
index 000000000000..b66f281ae563
--- /dev/null
+++ b/lang/Gofer/files/patch-ab
@@ -0,0 +1,79 @@
+*** prelude.h.0 Thu Jun 23 09:00:00 1994
+--- prelude.h Tue Jan 31 16:17:47 1995
+***************
+*** 30,40 ****
+ #define OS2 0 /* For IBM OS/2 2.0 using EMX GCC */
+ #define SUNOS 0 /* For Sun 3/Sun 4 running SunOs 4.x */
+ #define MIPS 0 /* For MIPS RC6280/Sony machine NWS-3870 UN */
+! #define NEXTSTEP 1 /* For NeXTstep 3.0 using NeXT cc */
+ #define NEXTGCC 0 /* For NeXTstep with gcc 2.x, doesn't work w/ NS3.2*/
+ #define MINIX68K 0 /* For Minix68k with gcc UN */
+ #define AMIGA 0 /* For Amiga using gcc 2.2.2 UN */
+ #define HPUX 0 /* For HPUX using gcc */
+ #define LINUX 0 /* For Linux using gcc UN */
+ #define RISCOS 0 /* For Acorn DesktopC and RISCOS2 or 3 */
+ #define ALPHA 0 /* For DEC Alpha with OSF/1 (32 bit ints, no gofc) */
+--- 30,41 ----
+ #define OS2 0 /* For IBM OS/2 2.0 using EMX GCC */
+ #define SUNOS 0 /* For Sun 3/Sun 4 running SunOs 4.x */
+ #define MIPS 0 /* For MIPS RC6280/Sony machine NWS-3870 UN */
+! #define NEXTSTEP 0 /* For NeXTstep 3.0 using NeXT cc */
+ #define NEXTGCC 0 /* For NeXTstep with gcc 2.x, doesn't work w/ NS3.2*/
+ #define MINIX68K 0 /* For Minix68k with gcc UN */
+ #define AMIGA 0 /* For Amiga using gcc 2.2.2 UN */
+ #define HPUX 0 /* For HPUX using gcc */
++ #define FREEBSD 1 /* For FreeBSD using gcc */
+ #define LINUX 0 /* For Linux using gcc UN */
+ #define RISCOS 0 /* For Acorn DesktopC and RISCOS2 or 3 */
+ #define ALPHA 0 /* For DEC Alpha with OSF/1 (32 bit ints, no gofc) */
+***************
+*** 82,88 ****
+
+ #define UNIX (SUNOS | NEXTSTEP | HPUX | NEXTGCC | LINUX | AMIGA | \
+ MINIX68K | ALPHA | OS2 | SVR4 | ULTRIX | AIX | MIPS |\
+! SGI4 | NETBSD)
+ #define SMALL_GOFER (TURBOC | BCC)
+ #define REGULAR_GOFER (RISCOS | DJGPP | ZTC | ATARI)
+ #define LARGE_GOFER (UNIX | WATCOM)
+--- 83,89 ----
+
+ #define UNIX (SUNOS | NEXTSTEP | HPUX | NEXTGCC | LINUX | AMIGA | \
+ MINIX68K | ALPHA | OS2 | SVR4 | ULTRIX | AIX | MIPS |\
+! SGI4 | NETBSD | FREEBSD)
+ #define SMALL_GOFER (TURBOC | BCC)
+ #define REGULAR_GOFER (RISCOS | DJGPP | ZTC | ATARI)
+ #define LARGE_GOFER (UNIX | WATCOM)
+***************
+*** 91,97 ****
+ #define TERMIO_IO (LINUX | HPUX | OS2 | SVR4 | SGI4)
+ #define SGTTY_IO (SUNOS | NEXTSTEP | NEXTGCC | AMIGA | MINIX68K | \
+ ALPHA | ULTRIX | AIX | MIPS)
+! #define TERMIOS_IO (NETBSD)
+ #define BREAK_FLOATS (TURBOC | BCC)
+ #define HAS_FLOATS (REGULAR_GOFER | LARGE_GOFER | BREAK_FLOATS)
+
+--- 92,98 ----
+ #define TERMIO_IO (LINUX | HPUX | OS2 | SVR4 | SGI4)
+ #define SGTTY_IO (SUNOS | NEXTSTEP | NEXTGCC | AMIGA | MINIX68K | \
+ ALPHA | ULTRIX | AIX | MIPS)
+! #define TERMIOS_IO (NETBSD | FREEBSD)
+ #define BREAK_FLOATS (TURBOC | BCC)
+ #define HAS_FLOATS (REGULAR_GOFER | LARGE_GOFER | BREAK_FLOATS)
+
+***************
+*** 202,208 ****
+ #define farCalloc(n,s) (Void *)valloc(((unsigned)n)*((unsigned)s))
+ #endif
+
+! #if (HPUX | DJGPP | ZTC | LINUX | ALPHA | OS2 | SVR4 | AIX | SGI4 | NETBSD)
+ #include <stdlib.h>
+ #define far
+ #endif
+--- 203,209 ----
+ #define farCalloc(n,s) (Void *)valloc(((unsigned)n)*((unsigned)s))
+ #endif
+
+! #if (HPUX | DJGPP | ZTC | LINUX | ALPHA | OS2 | SVR4 | AIX | SGI4 | NETBSD | FREEBSD)
+ #include <stdlib.h>
+ #define far
+ #endif
diff --git a/lang/Gofer/files/patch-ac b/lang/Gofer/files/patch-ac
new file mode 100644
index 000000000000..fb0b3fd981ac
--- /dev/null
+++ b/lang/Gofer/files/patch-ac
@@ -0,0 +1,36 @@
+*** gofer.0 Thu Jun 23 16:00:00 1994
+--- gofer Wed Feb 8 01:16:55 1995
+***************
+*** 9,18 ****
+ # Edited by Jonathan Bowen, Oxford University, August 1993
+
+ # Location of gofer files - site specific
+! ROOT=/usr/local/gofer
+
+ # first, the location of your prelude file:
+! GOFER=${GOFER-$ROOT/lib/standard.prelude}
+ export GOFER
+
+ # next, command line argument settings. One example might be:
+--- 9,18 ----
+ # Edited by Jonathan Bowen, Oxford University, August 1993
+
+ # Location of gofer files - site specific
+! ROOT=/usr/local/lib/Gofer
+
+ # first, the location of your prelude file:
+! GOFER=${GOFER-$ROOT/standard.prelude}
+ export GOFER
+
+ # next, command line argument settings. One example might be:
+***************
+*** 34,37 ****
+
+ # Finally, start the interpreter running:
+ # exec /usr/local/lib/Gofer/gofer $GOFERARGS $*
+! exec $ROOT/bin/Gofer $GOFERARGS $*
+--- 34,37 ----
+
+ # Finally, start the interpreter running:
+ # exec /usr/local/lib/Gofer/gofer $GOFERARGS $*
+! exec $ROOT/gofer $GOFERARGS $*
diff --git a/lang/Gofer/files/patch-ad b/lang/Gofer/files/patch-ad
new file mode 100644
index 000000000000..67fefef415f0
--- /dev/null
+++ b/lang/Gofer/files/patch-ad
@@ -0,0 +1,26 @@
+*** goferc.0 Thu Jun 23 16:00:00 1994
+--- goferc Wed Feb 8 01:12:53 1995
+***************
+*** 29,39 ****
+ ;;
+ esac
+
+! GOFER=/home/staff/ian/gofer/lib/standard.prelude
+ export GOFER
+ /usr/local/lib/Gofer/gofc $args
+ echo '[Compiling with gcc]'
+ gcc -o $prog -O $prog.c /usr/local/lib/Gofer/runtime.o -lm
+ strip $prog
+ rm $prog.c
+-
+--- 29,38 ----
+ ;;
+ esac
+
+! GOFER=/usr/local/lib/Gofer/standard.prelude
+ export GOFER
+ /usr/local/lib/Gofer/gofc $args
+ echo '[Compiling with gcc]'
+ gcc -o $prog -O $prog.c /usr/local/lib/Gofer/runtime.o -lm
+ strip $prog
+ rm $prog.c
diff --git a/lang/Gofer/pkg-comment b/lang/Gofer/pkg-comment
new file mode 100644
index 000000000000..9edbdcc75d89
--- /dev/null
+++ b/lang/Gofer/pkg-comment
@@ -0,0 +1 @@
+gofer - a lazy functional language
diff --git a/lang/Gofer/pkg-descr b/lang/Gofer/pkg-descr
new file mode 100644
index 000000000000..6166aaeeca00
--- /dev/null
+++ b/lang/Gofer/pkg-descr
@@ -0,0 +1,61 @@
+------------------------------------------------------------------------------
+Gofer 2.28 is an interactive functional programming environment (i.e. an
+interpreter) supporting a language based on the draft report for Haskell
+version 1.2, including the following features:
+
+ o Lazy evaluation, higher order functions, pattern matching etc...
+
+ o Wide range of built-in types with provision for defining new free
+ datatypes and type synonyms.
+
+ o Polymorphic type system with provision for overloading based on
+ a system of type classes.
+
+ o Full Haskell 1.2 expression and pattern syntax including lambda,
+ case, conditional and let expressions, list comprehensions, operator
+ sections, and wildcard, as and irrefutable patterns.
+
+ o Partial implementation of Haskell 1.2 facilities for I/O, enabling
+ the use of simple interactive programs and programs reading and writing
+ text files.
+
+ o User documentation, sample programs and source code freely available.
+
+ o Supports constructor classes and overloaded monad comprehensions.
+
+ o Simple minded compiler/translator Gofer -> C with runtime system for
+ generation of standalone applications.
+
+ o Runs (and originally developed) on PC compatible computers, but
+ also works on Sun workstations. Code should be portable to many
+ other kinds of machine.
+
+Gofer is intended as an experimental language, particularly where type classes
+are involved. Gofer extends the Haskell type class system in several ways:
+
+ o Type classes with multiple parameters are supported.
+
+ o Instances of type classes may be defined non-overlapping, but otherwise
+ arbitrary types.
+
+ o Predicates in contexts may involve arbitrary type expressions, not just
+ type variables as in Haskell.
+
+ o Basic approach to dictionary construction is different, based on the
+ approach I described in a posting to the Haskell mailing list early in
+ Feburary 1991. The resulting system ensures that all dictionaries are
+ constructed before evaluation begins, avoiding repeated construction
+ and enabling the shared evaluation of overloaded constants in
+ dictionaries.
+
+The most significant features of Haskell not currently supported are:
+modules, arrays, overloaded numeric constants, default declarations, derived
+instances, contexts in datatype definitions.
+------------------------------------------------------------------------------
+And just in case you wondered:
+
+ The name "Gofer" is not a trademark, registered or otherwise, and
+ you are free to mention this name in published material, public and
+ private correspondence, or other documents without restriction or
+ obligation.
+------------------------------------------------------------------------------
diff --git a/lang/Gofer/pkg-plist b/lang/Gofer/pkg-plist
new file mode 100644
index 000000000000..64ce695c6f24
--- /dev/null
+++ b/lang/Gofer/pkg-plist
@@ -0,0 +1,5 @@
+@cwd /usr/local
+bin/gofer
+bin/goferc
+lib/Gofer
+man/man1/gofer.1.gz