diff options
Diffstat (limited to 'lang/polyml')
-rw-r--r-- | lang/polyml/Makefile | 71 | ||||
-rw-r--r-- | lang/polyml/distinfo | 24 | ||||
-rw-r--r-- | lang/polyml/files/patch-driver-Makefile.in | 44 | ||||
-rw-r--r-- | lang/polyml/files/patch-driver-i386_dep.c | 17 | ||||
-rw-r--r-- | lang/polyml/files/patch-driver-mmap.c | 11 | ||||
-rw-r--r-- | lang/polyml/files/patch-driver-mpoly.c | 58 | ||||
-rw-r--r-- | lang/polyml/files/patch-driver-process_env.c | 13 | ||||
-rw-r--r-- | lang/polyml/files/pkg-message.in | 8 |
8 files changed, 74 insertions, 172 deletions
diff --git a/lang/polyml/Makefile b/lang/polyml/Makefile index 45adbb8..b9faa03 100644 --- a/lang/polyml/Makefile +++ b/lang/polyml/Makefile @@ -6,68 +6,55 @@ # PORTNAME= polyml -PORTVERSION= 4.1.3 +PORTVERSION= 4.2.0 CATEGORIES= lang -DISTFILES= polyml-driver-4.1.3.tar.gz \ - polyml-mlsource-4.1.3.tar.gz \ - polyml-basis-4.1.3.tar.gz \ - polyml-4.1.3.i386.tar.gz +MASTER_SITES= ${MASTER_SITE_SOURCEFORGE} +MASTER_SITE_SUBDIR= ${PORTNAME} +DISTFILES= driver.420.tar.gz \ + mlsource.420.tar.gz \ + basis.420.tar.gz \ + DB420.i386.unix.gz DIST_SUBDIR= ${PORTNAME} +EXTRACT_ONLY= driver.420.tar.gz \ + mlsource.420.tar.gz \ + basis.420.tar.gz MAINTAINER= timbob@bigpond.com COMMENT= Fast open-source implementation of Standard ML WRKSRC= ${WRKDIR}/driver + ONLY_FOR_ARCHS= i386 + +USE_GCC= 3.2+ HAS_CONFIGURE= yes CONFIGURE_ARGS= ${PREFIX} -SUB_FILES= poly pkg-message +SUB_FILES= poly PLIST_FILES= bin/poly \ lib/polyml/poly \ - lib/polyml/LICENCE \ + lib/polyml/COPYING \ lib/polyml/ML_dbase \ - lib/polyml/DB413Release + lib/polyml/DB420.i386.unix PLIST_DIRS= lib/polyml -RESTRICTED= Downloading implies agreement to the licence. - NO_INSTALL_MANPAGES=yes -.include <bsd.port.pre.mk> -TO_BE_FETCHED= +post-extract: + @${EXTRACT_CMD} ${EXTRACT_BEFORE_ARGS} ${_DISTDIR}/DB420.i386.unix.gz \ + > ${WRKDIR}/DB420.i386.unix -.for f in ${DISTFILES} -.if ! exists (${DISTDIR}/${DIST_SUBDIR}/${f}) -TO_BE_FETCHED+= ${f} -.endif -.endfor - -do-fetch: -.if ${TO_BE_FETCHED} != "" -ECHO_MSG=/usr/bin/printf -IGNORE= :\n\n\ -------------------------------------------------------------------\n\ -Downloading this software implies acceptance of the licence\n\ -agreement, which may be found at: http://www.polyml.org/Get.html\n\ -\n\ -Please download the following files into ${DISTDIR}/${DIST_SUBDIR}\n\ -\n -.for f in ${TO_BE_FETCHED} -IGNORE+= ${f}\n -.endfor -IGNORE+=------------------------------------------------------------------\n\n -.endif +post-patch: + @${REINPLACE_CMD} -e "s|gcc|${CC}|g" ${WRKSRC}/configure post-build: (cd ${WRKDIR}/mlsource/MLCompiler/CodeTree; ${LN} -fs CodeCons.i386 CodeCons) - (cd ${WRKDIR}; ./driver/poly ML_dbase < mlsource/BuildAll.sml) + (cd ${WRKDIR}; ./driver/poly DB420.i386.unix < mlsource/BuildAll.sml) post-install: - @${INSTALL_DATA} ${WRKDIR}/DB413Release ${PREFIX}/lib/polyml/ - @${INSTALL_SCRIPT} ${WRKDIR}/poly ${PREFIX}/bin/poly - (cd ${PREFIX}/lib/polyml; ${LN} -fs ./DB413Release ML_dbase) - @${CAT} ${PKGMESSAGE} + ${INSTALL_DATA} ${WRKDIR}/DB420.i386.unix ${PREFIX}/lib/polyml/ + ${INSTALL_SCRIPT} ${WRKDIR}/poly ${PREFIX}/bin/poly + @(cd ${PREFIX}/lib/polyml; ${LN} -fs ./DB420.i386.unix ML_dbase) ${SETENV} PKG_PREFIX=${PREFIX} ${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL install-user: @@ -80,9 +67,9 @@ install-user: @${ECHO_CMD} "User copy of database already exists. Aborting!" @${ECHO_CMD} .else - ${MKDIR} ${HOME}/.polyml - ${CP} ${LOCALBASE}/lib/polyml/ML_dbase ${HOME}/.polyml - ${CHMOD} 0600 ${HOME}/.polyml/ML_dbase + @${MKDIR} ${HOME}/.polyml + @${CP} ${LOCALBASE}/lib/polyml/ML_dbase ${HOME}/.polyml + @${CHMOD} 0600 ${HOME}/.polyml/ML_dbase .endif -.include <bsd.port.post.mk> +.include <bsd.port.mk> diff --git a/lang/polyml/distinfo b/lang/polyml/distinfo index c568e9d6..b638bf9 100644 --- a/lang/polyml/distinfo +++ b/lang/polyml/distinfo @@ -1,12 +1,12 @@ -MD5 (polyml/polyml-driver-4.1.3.tar.gz) = 814cea1cfb376d4bb3977f78bad3d5eb -SHA256 (polyml/polyml-driver-4.1.3.tar.gz) = 895c5e633fb172853896052dbb48b5fd6c63292f80d8323c74d0431e69f1c9c4 -SIZE (polyml/polyml-driver-4.1.3.tar.gz) = 448918 -MD5 (polyml/polyml-mlsource-4.1.3.tar.gz) = c316411eb44e61bc85762e5742761936 -SHA256 (polyml/polyml-mlsource-4.1.3.tar.gz) = b184ceb5715aa5d3a0e095d2ee577d374ff9c4a9f648cb97f227feb98645c5a0 -SIZE (polyml/polyml-mlsource-4.1.3.tar.gz) = 942603 -MD5 (polyml/polyml-basis-4.1.3.tar.gz) = aaaebb967ddafcbf9ff27ea815be5414 -SHA256 (polyml/polyml-basis-4.1.3.tar.gz) = 7039569ba04224bb8cacf3df98353ededf57371d6d966c0dd3ae3cfe32b7833a -SIZE (polyml/polyml-basis-4.1.3.tar.gz) = 130932 -MD5 (polyml/polyml-4.1.3.i386.tar.gz) = 4309deffef425ef2052a2bfd37539f31 -SHA256 (polyml/polyml-4.1.3.i386.tar.gz) = e98b8748b1380b2c461f252901e87e597c50a0b14de5d1b6b481771f3e98d8fb -SIZE (polyml/polyml-4.1.3.i386.tar.gz) = 1110381 +MD5 (polyml/driver.420.tar.gz) = 3855385041e1a7d860ba72734c153ce4 +SHA256 (polyml/driver.420.tar.gz) = e9113992bd911a70de0d830e2f5bb2e6b314e00f24702a270f7116cc1515e84f +SIZE (polyml/driver.420.tar.gz) = 496596 +MD5 (polyml/mlsource.420.tar.gz) = 873b02beab2e083232d6a8bbddab5225 +SHA256 (polyml/mlsource.420.tar.gz) = ebe29bd4290c95882b012b193dc25bda0d5a575d67d6a8ab8239314ee3de250a +SIZE (polyml/mlsource.420.tar.gz) = 923393 +MD5 (polyml/basis.420.tar.gz) = fa307ceda8a6556d8407c4b5edc6e303 +SHA256 (polyml/basis.420.tar.gz) = bb381d5b99987b08064a707001766ea64113de4b1a75a12ad443ca8c9d0675cc +SIZE (polyml/basis.420.tar.gz) = 148810 +MD5 (polyml/DB420.i386.unix.gz) = 7591ad2e94002c3827918c4846c0a4c4 +SHA256 (polyml/DB420.i386.unix.gz) = 6f3c40c2ac8f479a4e7307e20907e53af29b3a75e05fdd34184ee2b9b29309bf +SIZE (polyml/DB420.i386.unix.gz) = 1848015 diff --git a/lang/polyml/files/patch-driver-Makefile.in b/lang/polyml/files/patch-driver-Makefile.in index 37b40f8..e64149d 100644 --- a/lang/polyml/files/patch-driver-Makefile.in +++ b/lang/polyml/files/patch-driver-Makefile.in @@ -1,49 +1,13 @@ ---- Makefile.in.orig Tue Nov 14 22:01:18 2000 -+++ Makefile.in Fri Jun 10 15:27:34 2005 -@@ -15,6 +15,7 @@ - AFLAGS = $(CPUFLAGS) $(OSFLAGS) - ASFLAGS = $(AFLAGS) - CFLAGS = $(CPUFLAGS) $(OSFLAGS) @OPTFLAGS@ @INCLUDES@ -DDEFAULT_POLYPATH=$(DEFAULT_POLYPATH) -+CFLAGSO1 = $(CPUFLAGS) $(OSFLAGS) -O1 @INCLUDES@ -DDEFAULT_POLYPATH=$(DEFAULT_POLYPATH) - LINTFLAGS = $(CPUFLAGS) $(OSFLAGS) @IFLAGS@ - XLFLAGS = @LIBS@ - -@@ -32,7 +33,9 @@ +--- Makefile.in.orig Thu Nov 24 20:54:04 2005 ++++ Makefile.in Thu Nov 24 20:56:19 2005 +@@ -32,7 +32,9 @@ all: $(TARGETS) install: $(TARGETS) - cp $(TARGETS) $(INSTALLDIR) + mkdir -p $(INSTALLDIR) + $(BSD_INSTALL_PROGRAM) $(TARGETS) $(INSTALLDIR) -+ $(BSD_INSTALL_DATA) LICENCE $(INSTALLDIR) ++ $(BSD_INSTALL_DATA) COPYING $(INSTALLDIR) POLYOBJS = \ mpoly.o \ -@@ -95,7 +98,26 @@ - rm -f powtemp.s - - xwindows.o: xwindows.c -- $(CC) $(CFLAGS) -c xwindows.c -o xwindows.o -+ $(CC) $(CFLAGSO1) -c xwindows.c -o xwindows.o -+ -+# Use -O1 rather than -O2 to avoid: -+# dereferencing type-punned pointer will break strict-aliasing rules -+# warnings (and subsequent problems with Isabelle logic compilation) -+ -+arb.o: arb.c -+ $(CC) $(CFLAGSO1) -c $< -+ -+processes.o: processes.c -+ $(CC) $(CFLAGSO1) -c $< -+ -+realconv.o: realconv.c -+ $(CC) $(CFLAGSO1) -c $< -+ -+run_time.o: run_time.c -+ $(CC) $(CFLAGSO1) -c $< -+ -+i386_dep.o: i386_dep.c -+ $(CC) $(CFLAGSO1) -c $< - - # Make sure the version is updated whenever anything is recompiled. - version.o: $(POLYOBJS) $(DISCGARBOBJS) diff --git a/lang/polyml/files/patch-driver-i386_dep.c b/lang/polyml/files/patch-driver-i386_dep.c deleted file mode 100644 index c906ff1..0000000 --- a/lang/polyml/files/patch-driver-i386_dep.c +++ /dev/null @@ -1,17 +0,0 @@ ---- i386_dep.c.orig Sun Jun 12 14:32:11 2005 -+++ i386_dep.c Sun Jun 12 14:45:17 2005 -@@ -473,9 +473,14 @@ - else - { - signal(SIGSEGV,SIG_DFL); -+#ifdef FREEBSD -+ fprintf(stderr,"catchSEGV; &context = %p, in_run_time_system=%i, context.trapno=%ld\n", -+ scp, in_run_time_system, scp->sc_trapno); -+#else - fprintf(stderr,"catchSEGV; &context = %p, in_run_time_system=%i, context.trapno=%ld\n", - &context, in_run_time_system, context.trapno); - signal(SIGSEGV,catchSEGV); -+#endif - } - #endif - diff --git a/lang/polyml/files/patch-driver-mmap.c b/lang/polyml/files/patch-driver-mmap.c deleted file mode 100644 index 97ef361..0000000 --- a/lang/polyml/files/patch-driver-mmap.c +++ /dev/null @@ -1,11 +0,0 @@ ---- mmap.c.orig Fri Jun 10 09:54:34 2005 -+++ mmap.c Fri Jun 10 09:55:57 2005 -@@ -60,7 +60,7 @@ - #include <sys/uio.h> - #include <sys/param.h> - #include <unistd.h> --#ifdef MACOSX -+#if (defined(FREEBSD) || defined(MACOSX)) - #include <limits.h> - #else - #include <values.h> /* FreeBSD warns about this but it's needed in Solaris. */ diff --git a/lang/polyml/files/patch-driver-mpoly.c b/lang/polyml/files/patch-driver-mpoly.c index ce9a5cd..278cd86 100644 --- a/lang/polyml/files/patch-driver-mpoly.c +++ b/lang/polyml/files/patch-driver-mpoly.c @@ -1,33 +1,33 @@ ---- mpoly.c.orig Thu Jun 20 02:27:30 2002 -+++ mpoly.c Sat Jul 9 08:57:27 2005 -@@ -636,6 +636,30 @@ - +--- mpoly.c.orig Thu Nov 24 20:11:47 2005 ++++ mpoly.c Thu Nov 24 20:50:45 2005 +@@ -648,6 +648,30 @@ + if (! be_silent) + { proper_printf("Poly/ML RTS version %s\n",poly_runtime_system_version); - ++ +#if defined(FREEBSD) -+ /* FreeBSD 5.x links dynamic libraries above the user heap, rather -+ than below the user stack. It determines the base address from -+ the allowed process data size (ulimit -d, limit datasize), the -+ maximum value of which is set by the kernel maxdsiz parameter. -+ If this datasize value is too low, there will be conflicts -+ with the Poly/ML heaps, database or IO Area. Such problems are -+ difficult to diagnose, thus the check here. -+ */ -+ struct rlimit rlim; -+ if (getrlimit(RLIMIT_DATA, &rlim) != 0) { -+ proper_fprintf(stderr, "unable to check the datasize resource limit.\n"); -+ rlim.rlim_max = 0; -+ } -+ if (rlim.rlim_max < ((rlim_t)IO_TOP - 0x08000000)) { -+ proper_fprintf(stderr, -+ "WARNING: The maximum datasize limit is too low (>= 896M recommended).\n"); -+ proper_fprintf(stderr, -+ "WARNING: Large databases may cause problematic behaviour.\n"); -+ proper_fprintf(stderr, -+ "WARNING: Please increase resources with limit/ulimit and/or kern.maxdsiz\n"); -+ } ++ /* FreeBSD 5.x links dynamic libraries above the user heap, rather ++ than below the user stack. It determines the base address from ++ the allowed process data size (ulimit -d, limit datasize), the ++ maximum value of which is set by the kernel maxdsiz parameter. ++ If this datasize value is too low, there will be conflicts ++ with the Poly/ML heaps, database or IO Area. Such problems are ++ difficult to diagnose, thus the check here. ++ */ ++ struct rlimit rlim; ++ if (getrlimit(RLIMIT_DATA, &rlim) != 0) { ++ proper_fprintf(stderr, "unable to check the datasize resource limit.\n"); ++ rlim.rlim_max = 0; ++ } ++ if (rlim.rlim_max < ((rlim_t)IO_TOP - 0x08000000)) { ++ proper_fprintf(stderr, ++ "WARNING: The maximum datasize limit is too low (>= 896M recommended).\n"); ++ proper_fprintf(stderr, ++ "WARNING: Large databases may cause problematic behaviour.\n"); ++ proper_fprintf(stderr, ++ "WARNING: Please increase resources with limit/ulimit and/or kern.maxdsiz\n"); ++ } +#endif -+ + } + if (A.filename == 0) - { - #ifdef WINDOWS_PC diff --git a/lang/polyml/files/patch-driver-process_env.c b/lang/polyml/files/patch-driver-process_env.c deleted file mode 100644 index 1c3b10e..0000000 --- a/lang/polyml/files/patch-driver-process_env.c +++ /dev/null @@ -1,13 +0,0 @@ ---- process_env.c.orig Fri Jun 10 10:10:07 2005 -+++ process_env.c Fri Jun 10 10:10:31 2005 -@@ -14,6 +14,10 @@ - #include <sys/param.h> - #endif - -+#ifdef FREEBSD -+#include <unistd.h> -+#endif -+ - #include "globals.h" - #include "sys.h" - #include "run_time.h" diff --git a/lang/polyml/files/pkg-message.in b/lang/polyml/files/pkg-message.in deleted file mode 100644 index eae3edd..0000000 --- a/lang/polyml/files/pkg-message.in +++ /dev/null @@ -1,8 +0,0 @@ ------------------------------------------------------------- - Use of Poly/ML is subject to a licence. - Please uninstall this port if you do not agree with the - terms outlined in: - %%PREFIX%%/lib/polyml/LICENCE - or at: - http://www.polyml.org/Get.html ------------------------------------------------------------- |