diff --git a/lang/Gofer/Makefile b/lang/Gofer/Makefile index 97aa26ac19f7..d6f78251e78b 100644 --- a/lang/Gofer/Makefile +++ b/lang/Gofer/Makefile @@ -6,10 +6,10 @@ # PORTNAME= gofer -PORTVERSION= 2.30a +PORTVERSION= 2.30b CATEGORIES= lang -MASTER_SITES= ftp://cs.nott.ac.uk/nott-fp/languages/haskell/gofer/ -DISTNAME= gofer230a +MASTER_SITES= http://www.cse.ogi.edu/~mpj/goferarc/ +DISTNAME= ${PORTNAME}${PORTVERSION:S/.//} MAINTAINER= ports@FreeBSD.org @@ -18,18 +18,20 @@ LIBDIR= ${PREFIX}/lib/Gofer MAN1= gofer.1 do-install: - ${MKDIR} ${LIBDIR} + @${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 + ${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 +.if !defined(NOPORTDOCS) + @${MKDIR} ${PREFIX}/share/doc/Gofer + ${INSTALL_DATA} ${WRKDIR}/docs/* ${PREFIX}/share/doc/Gofer +.endif .include diff --git a/lang/Gofer/distinfo b/lang/Gofer/distinfo index a390ac6b2cfc..ce2254a80817 100644 --- a/lang/Gofer/distinfo +++ b/lang/Gofer/distinfo @@ -1 +1 @@ -MD5 (gofer230a.tar.gz) = a020b6a9c446701f169e06eb535b76dc +MD5 (gofer230b.tar.gz) = 6914ba677359e860a869073fb0f02eac diff --git a/lang/Gofer/files/patch-aa b/lang/Gofer/files/patch-aa index b3c7fabf7aa7..26730e202840 100644 --- a/lang/Gofer/files/patch-aa +++ b/lang/Gofer/files/patch-aa @@ -1,22 +1,18 @@ -*** 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 +--- Makefile.orig Fri Mar 31 01:02:20 1995 ++++ Makefile Wed Jan 31 01:39:22 2001 +@@ -23,11 +23,10 @@ + # as you use to build the file runtime.o (as specified by the CC macro + # below). + +-CC = cc +-#CFLAGS = -DUSE_READLINE=1 +-CFLAGS = +-LDFLAGS = -lm +-OPTFLAGS = -O ++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 index b66f281ae563..8cf50def3543 100644 --- a/lang/Gofer/files/patch-ab +++ b/lang/Gofer/files/patch-ab @@ -1,79 +1,46 @@ -*** 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 - #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 - #define far - #endif +--- prelude.h.orig Fri Mar 31 19:13:52 1995 ++++ prelude.h Wed Jan 31 01:41:35 2001 +@@ -28,7 +28,7 @@ + #define ZTC 0 /* For IBM PC (>= 386) Zortech C++ v3.0 (-mx) */ + #define DJGPP 0 /* For DJGPP version 1.09 (gcc2.2.2) and DOS 5.0 */ + #define OS2 0 /* For IBM OS/2 2.0 using EMX GCC */ +-#define SUNOS 1 /* For Sun 3/Sun 4 running SunOs 4.x */ ++#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*/ +@@ -36,6 +36,7 @@ + #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 FREEBSD 1 /* For FreeBSD 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) */ + #define SVR4 0 /* For SVR4 using GCC2.2 */ +@@ -82,7 +83,7 @@ + + #define UNIX (SUNOS | NEXTSTEP | HPUX | NEXTGCC | LINUX | AMIGA | \ + MINIX68K | ALPHA | OS2 | SVR4 | ULTRIX | AIX | MIPS |\ +- SGI4 | NETBSD) ++ SGI4 | NETBSD | FREEBSD) + #define SMALL_GOFER (TURBOC | BCC) + #define REGULAR_GOFER (RISCOS | DJGPP | ZTC | ATARI) + #define LARGE_GOFER (UNIX | WATCOM) +@@ -91,7 +92,7 @@ + #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 TERMIOS_IO (NETBSD | FREEBSD) + #define BREAK_FLOATS (TURBOC | BCC) + #define HAS_FLOATS (REGULAR_GOFER | LARGE_GOFER | BREAK_FLOATS) + +@@ -202,7 +203,7 @@ + #define farCalloc(n,s) (Void *)valloc(((unsigned)n)*((unsigned)s)) + #endif + +-#if (HPUX | DJGPP | ZTC | LINUX | ALPHA | OS2 | SVR4 | AIX | SGI4 | NETBSD) ++#if (HPUX | DJGPP | ZTC | LINUX | ALPHA | OS2 | SVR4 | AIX | SGI4 | NETBSD | FREEBSD) + #include + #define far + #endif diff --git a/lang/Gofer/files/patch-ac b/lang/Gofer/files/patch-ac index 67da1c7d1a75..3d64efd758c0 100644 --- a/lang/Gofer/files/patch-ac +++ b/lang/Gofer/files/patch-ac @@ -1,36 +1,23 @@ -*** ../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 $* +--- ../scripts/gofer.orig Fri Jun 24 01:00:00 1994 ++++ ../scripts/gofer Wed Jan 31 01:45:21 2001 +@@ -9,10 +9,10 @@ + # Edited by Jonathan Bowen, Oxford University, August 1993 + + # Location of gofer files - site specific +-ROOT=/usr/local/gofer ++ROOT=%%PREFIX%%/lib/Gofer + + # first, the location of your prelude file: +-GOFER=${GOFER-$ROOT/lib/standard.prelude} ++GOFER=${GOFER-$ROOT/standard.prelude} + export GOFER + + # next, command line argument settings. One example might be: +@@ -33,5 +33,5 @@ + esac + + # Finally, start the interpreter running: +-# exec /usr/local/lib/Gofer/gofer $GOFERARGS $* +-exec $ROOT/bin/Gofer $GOFERARGS $* ++# exec %%PREFIX%%/lib/Gofer/gofer $GOFERARGS $* ++exec $ROOT/gofer $GOFERARGS $* diff --git a/lang/Gofer/files/patch-ad b/lang/Gofer/files/patch-ad index ab6ac38b1fb7..8161270e51cb 100644 --- a/lang/Gofer/files/patch-ad +++ b/lang/Gofer/files/patch-ad @@ -1,26 +1,17 @@ -*** ../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 +--- ../scripts/goferc.orig Fri Jun 24 01:00:00 1994 ++++ ../scripts/goferc Wed Jan 31 01:44:26 2001 +@@ -29,11 +29,10 @@ + ;; + esac + +-GOFER=/home/staff/ian/gofer/lib/standard.prelude ++GOFER=%%PREFIX%%/lib/Gofer/standard.prelude + export GOFER +-/usr/local/lib/Gofer/gofc $args ++%%PREFIX%%/lib/Gofer/gofc $args + echo '[Compiling with gcc]' +-gcc -o $prog -O $prog.c /usr/local/lib/Gofer/runtime.o -lm ++%%CC%% -o $prog %%CFLAGS%% $prog.c %%PREFIX%%/lib/Gofer/runtime.o -lm + strip $prog + rm $prog.c +- diff --git a/lang/Gofer/pkg-descr b/lang/Gofer/pkg-descr index 6166aaeeca00..87b6e750d42b 100644 --- a/lang/Gofer/pkg-descr +++ b/lang/Gofer/pkg-descr @@ -1,52 +1,10 @@ ------------------------------------------------------------------------------ -Gofer 2.28 is an interactive functional programming environment (i.e. an +Gofer 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. +version 1.2. 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. +are involved. Gofer extends the Haskell type class system in several ways. The most significant features of Haskell not currently supported are: modules, arrays, overloaded numeric constants, default declarations, derived @@ -59,3 +17,5 @@ And just in case you wondered: private correspondence, or other documents without restriction or obligation. ------------------------------------------------------------------------------ + +WWW: http://www.cse.ogi.edu/~mpj/goferarc/ diff --git a/lang/Gofer/pkg-plist b/lang/Gofer/pkg-plist index c26915b44795..e236390b243e 100644 --- a/lang/Gofer/pkg-plist +++ b/lang/Gofer/pkg-plist @@ -10,39 +10,39 @@ 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 +%%PORTDOCS%%share/doc/Gofer/Readme +%%PORTDOCS%%share/doc/Gofer/appx_a +%%PORTDOCS%%share/doc/Gofer/appx_b +%%PORTDOCS%%share/doc/Gofer/appx_c +%%PORTDOCS%%share/doc/Gofer/appx_d +%%PORTDOCS%%share/doc/Gofer/appx_e +%%PORTDOCS%%share/doc/Gofer/appx_f +%%PORTDOCS%%share/doc/Gofer/appx_g +%%PORTDOCS%%share/doc/Gofer/bowen.1 +%%PORTDOCS%%share/doc/Gofer/ch00 +%%PORTDOCS%%share/doc/Gofer/ch01 +%%PORTDOCS%%share/doc/Gofer/ch02 +%%PORTDOCS%%share/doc/Gofer/ch03 +%%PORTDOCS%%share/doc/Gofer/ch04 +%%PORTDOCS%%share/doc/Gofer/ch05 +%%PORTDOCS%%share/doc/Gofer/ch06 +%%PORTDOCS%%share/doc/Gofer/ch07 +%%PORTDOCS%%share/doc/Gofer/ch08 +%%PORTDOCS%%share/doc/Gofer/ch09 +%%PORTDOCS%%share/doc/Gofer/ch10 +%%PORTDOCS%%share/doc/Gofer/ch11 +%%PORTDOCS%%share/doc/Gofer/ch12 +%%PORTDOCS%%share/doc/Gofer/ch13 +%%PORTDOCS%%share/doc/Gofer/ch14 +%%PORTDOCS%%share/doc/Gofer/gofer.1 +%%PORTDOCS%%share/doc/Gofer/gofer.c +%%PORTDOCS%%share/doc/Gofer/goferdoc.tex +%%PORTDOCS%%share/doc/Gofer/hype +%%PORTDOCS%%share/doc/Gofer/jeroen.1 +%%PORTDOCS%%share/doc/Gofer/rel221.tex +%%PORTDOCS%%share/doc/Gofer/rel228.tex +%%PORTDOCS%%share/doc/Gofer/release.221 +%%PORTDOCS%%share/doc/Gofer/release.228 +%%PORTDOCS%%share/doc/Gofer/release.230 +%%PORTDOCS%%@dirrm share/doc/Gofer @dirrm lib/Gofer