Initial import

This commit is contained in:
don 1998-02-03 06:01:57 +00:00
parent 5b7ef14ef4
commit 47b3021b39
8 changed files with 288 additions and 0 deletions

35
lang/Gofer/Makefile Normal file
View File

@ -0,0 +1,35 @@
# OpenBSD makefile for: gofer
# Version required: 2.30.
# Date created: 31 January 1998
# Whom: Don Schmidt
#
# $OpenBSD: Makefile,v 1.1.1.1 1998/02/03 06:01:57 don Exp $
#
DISTNAME= gofer230a
PKGNAME= gofer-2.30a
CATEGORIES= lang
MASTER_SITES= ftp://cs.nott.ac.uk/nott-fp/languages/haskell/gofer/
MAINTAINER= don@OpenBSD.ORG
WRKSRC= ${WRKDIR}/src
LIBDIR= ${PREFIX}/lib/Gofer
MAN1= gofer.1
do-install:
${MKDIR} ${LIBDIR}
${INSTALL_DATA} ${WRKDIR}/*.prelude ${LIBDIR}
${INSTALL_DATA} ${WRKDIR}/src/prelude.h ${LIBDIR}
${INSTALL_DATA} ${WRKDIR}/src/gofc.h ${LIBDIR}
/usr/bin/perl -pi -e "s|#include \"prelude.h\"|#include \"${LIBDIR}/prelude.h\"|" ${LIBDIR}/gofc.h
${INSTALL_DATA} ${WRKDIR}/src/runtime.o ${LIBDIR}
${INSTALL_SCRIPT} ${WRKDIR}/scripts/gofer ${PREFIX}/bin
${INSTALL_SCRIPT} ${WRKDIR}/scripts/goferc ${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKDIR}/src/gofer ${LIBDIR}
${INSTALL_PROGRAM} ${WRKDIR}/src/gofc ${LIBDIR}
${INSTALL_MAN} ${WRKDIR}/docs/gofer.1 ${PREFIX}/man/man1
${MKDIR} ${LIBDIR}/docs
${INSTALL_DATA} ${WRKDIR}/docs/* ${LIBDIR}/docs
.include <bsd.port.mk>

1
lang/Gofer/files/md5 Normal file
View File

@ -0,0 +1 @@
MD5 (gofer230a.tar.gz) = a020b6a9c446701f169e06eb535b76dc

View File

@ -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

View File

@ -0,0 +1,36 @@
*** ../scripts/gofer.0 Thu Jun 23 16:00:00 1994
--- ../scripts/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 $*

View File

@ -0,0 +1,26 @@
*** ../scripts/goferc.0 Thu Jun 23 16:00:00 1994
--- ../scripts/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

1
lang/Gofer/pkg/COMMENT Normal file
View File

@ -0,0 +1 @@
A lazy functional language.

61
lang/Gofer/pkg/DESCR Normal file
View File

@ -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.
------------------------------------------------------------------------------

49
lang/Gofer/pkg/PLIST Normal file
View File

@ -0,0 +1,49 @@
bin/gofer
bin/goferc
man/man1/gofer.1
lib/Gofer/cc.prelude
lib/Gofer/min.prelude
lib/Gofer/nofloat.prelude
lib/Gofer/simple.prelude
lib/Gofer/standard.prelude
lib/Gofer/prelude.h
lib/Gofer/gofc.h
lib/Gofer/runtime.o
lib/Gofer/gofer
lib/Gofer/gofc
lib/Gofer/docs/Readme
lib/Gofer/docs/appx_a
lib/Gofer/docs/appx_b
lib/Gofer/docs/appx_c
lib/Gofer/docs/appx_d
lib/Gofer/docs/appx_e
lib/Gofer/docs/appx_f
lib/Gofer/docs/appx_g
lib/Gofer/docs/bowen.1
lib/Gofer/docs/ch00
lib/Gofer/docs/ch01
lib/Gofer/docs/ch02
lib/Gofer/docs/ch03
lib/Gofer/docs/ch04
lib/Gofer/docs/ch05
lib/Gofer/docs/ch06
lib/Gofer/docs/ch07
lib/Gofer/docs/ch08
lib/Gofer/docs/ch09
lib/Gofer/docs/ch10
lib/Gofer/docs/ch11
lib/Gofer/docs/ch12
lib/Gofer/docs/ch13
lib/Gofer/docs/ch14
lib/Gofer/docs/gofer.1
lib/Gofer/docs/gofer.c
lib/Gofer/docs/goferdoc.tex
lib/Gofer/docs/hype
lib/Gofer/docs/jeroen.1
lib/Gofer/docs/rel221.tex
lib/Gofer/docs/rel228.tex
lib/Gofer/docs/release.221
lib/Gofer/docs/release.228
lib/Gofer/docs/release.230
@dirrm lib/Gofer/docs
@dirrm lib/Gofer