ports/117703: New port: devel/asdlgen generate serializers for C, C++, Haskell, Icon, Java, ML
Johannes 5 Joemann
joemann at beefree.free.de
Wed Oct 31 00:30:03 UTC 2007
>Number: 117703
>Category: ports
>Synopsis: New port: devel/asdlgen generate serializers for C,C++,Haskell,Icon,Java,ML
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-ports-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Wed Oct 31 00:30:02 UTC 2007
>Closed-Date:
>Last-Modified:
>Originator: Johannes 5 Joemann
>Release: FreeBSD 6.2-STABLE i386
>Organization:
Friends of the typed lamba calculi:-)
>Environment:
System: FreeBSD xxx.free.de 6.2-STABLE FreeBSD 6.2-STABLE #0: Mon Sep 17 14:40:00 UTC 2007 joemann at xxx.free.de:/usr/obj/usr/src/sys/XXX i386
>Description:
asdlGen generates data structure and serializer code from ASDL
specifications [1]. It is especially helpful for exchanging
tree like data structures between different programming languages.
Currently C, C++, Haskell, Java, Icon, OCaml and SML are supported.
Although the asdlGen project itself seems no longer actively
maintained, ASDL is "alive" as it is used (at least) in the
Moby [2] and Python [3,4] compilers.
The port optionally installs a simple usage example [5] for all
seven programming languages. I developed it primarily to test the
port, but it could be helpful to users of asdlGen to get a quicker
start, especially if a less familiar programming language is
involved in their project. Reviewers/committers can easily make
use of it via the "test-demo" target.
Thank you for your consideration!
Johannes
[1] <URL:http://www.cs.princeton.edu/~danwang/Papers/dsl97/dsl97-abstract.html>
[2] <URL:http://moby.cs.uchicago.edu/downloads/other.html>
[3] <URL:http://www.python.org/dev/peps/pep-0339/#abstract-syntax-trees-ast>
[4] <URL:http://svn.python.org/view/python/trunk/Parser/Python.asdl>
[5] <URL:ftp://offshore.free.de/pub/dist/FreeBSD/ports/devel/asdlgen-demo.20071030.tar.gz>
>How-To-Repeat:
cd /usr/ports/devel
fetch -q -o - ftp://offshore.free.de/pub/dist/FreeBSD/ports/devel/asdlgen.20071030.shar | sha256
# = 92f160f34cc7ef535046e35b4c86ade2ff23f24d14c2cdc22646c9213eb47488
fetch -q -o - ftp://offshore.free.de/pub/dist/FreeBSD/ports/devel/asdlgen.20071030.shar | sh
cd asdlgen
make install
>Fix:
--- asdlgen.20071030.shar begins here ---
# This is a shell archive. Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file". Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
# asdlgen
# asdlgen/Makefile
# asdlgen/distinfo
# asdlgen/pkg-descr
# asdlgen/pkg-plist
# asdlgen/files
# asdlgen/files/patch-Makefile.in
# asdlgen/files/patch-README.sgml
# asdlgen/files/patch-configure
# asdlgen/files/patch-src_haskell_SexpLex.hs
# asdlgen/files/patch-src_haskell_StdPkl.hs
# asdlgen/files/patch-src_haskell_StdPrimsUtil.hs
# asdlgen/files/patch-src_icon_libasdl.icn
# asdlgen/files/patch-src_java_asts_stdpkl_PklJava.java
# asdlgen/files/patch-src_java_asts_stdpkl_g.java
# asdlgen/files/patch-src_java_asts_stdprims_g.java
# asdlgen/files/patch-src_java_asts_stdprims_identifier.java
# asdlgen/files/patch-src_java_asts_stdtypes_g.java
# asdlgen/files/patch-src_misc_sml-batch.in
# asdlgen/files/patch-src_sml_main_export.sml
# asdlgen/files/patch-src_sml_main_lib-files.sml
# asdlgen/files/patch-src_sml_test_harness.sml
# asdlgen/files/patch-src_sml_translate_oo_java-pp.sml
# asdlgen/files/patch-src_sml_translate_support_idmaps.sml
# asdlgen/files/patch-src_sml_translate_support_mk-file-set.sml
# asdlgen/files/patch-src_sml_util_misc_file-set.sml
#
echo c - asdlgen
mkdir -p asdlgen > /dev/null 2>&1
echo x - asdlgen/Makefile
sed 's/^X//' >asdlgen/Makefile << 'END-of-asdlgen/Makefile'
X# New ports collection makefile for: asdlgen
X# Date created: 5 October 2007
X# Whom: Johannes 5 Joemann <joemann at beefree.free.de>
X#
X# $FreeBSD$
X#
X
XPORTNAME= asdlgen
XPORTVERSION= 2.0.b20060323
XCATEGORIES= devel haskell java
XMASTER_SITES= http://moby.cs.uchicago.edu/downloads/ \
X ftp://mirror.free.de/http/moby.cs.uchicago.edu/downloads/
XDISTFILES= asdlGen.tar.gz
X
XMAINTAINER= joemann at beefree.free.de
XCOMMENT= Interoperable serializers for C,C++,Haskell,Icon,Java,ML
X
XBUILD_DEPENDS= smlnj-devel>=110.65:${PORTSDIR}/lang/sml-nj-devel
X.if !defined(NOPORTDOCS)
XBUILD_DEPENDS+= sgmlfmt:${PORTSDIR}/textproc/sgmlformat
X.endif
X
XOPTIONS= CII "Install libcii for use by generated C and C++ code" on \
X EXAMPLES "Install the simple 'arithexp' usage example" off
X
X.include <bsd.port.pre.mk>
X
X.if defined(WITH_CII)
XRUN_DEPENDS+= libcii>=1.1:${PORTSDIR}/devel/libcii
X.endif
X
X.if defined(WITH_EXAMPLES)
XDEMOVERSION= 20071030
XDEMOARCHIVE= asdlgen-demo.${DEMOVERSION}.tar.gz
XDEMODIR= arithexp
XMASTER_SITES+= ftp://offshore.free.de/pub/dist/FreeBSD/ports/devel/:demo
XDISTFILES+= ${DEMOARCHIVE}:demo
XPLIST_SUB+= EXAMPLES="" DEMODIR=${DEMODIR}
X.else
XPLIST_SUB+= EXAMPLES="@comment " DEMODIR=${DEMODIR}
X.endif
X
XWRKSRC= ${WRKDIR}/asdlGen
XHAS_CONFIGURE= yes
XCONFIGURE_ENV+= SMLNJ_DEVEL=yes
XALL_TARGET= build
XMAKE_ENV+= SMLNJ_DEVEL=yes
X
X# Nowadays Java package names must be all lowercase, says JDK1.5. Cf.
X# http://java.sun.com/docs/books/tutorial/java/package/namingpkgs.html
Xpre-patch:
X.for dir in StdPkl StdPrims StdTypes
X cd ${WRKSRC}/src/java/asts && [ -d ${dir} ] && ${MV} ${dir} ${dir:L}
X.endfor
X
Xpost-build:
X cd ${WRKSRC}/src/sml && heap2exec asdlGen.*-bsd asdlGen
X.if !defined(NOPORTDOCS)
X.for format in ascii html ps
X @${MKDIR} ${WRKSRC}/doc-build/README
X cd ${WRKSRC}/doc-build/README && \
X sgmlfmt -f ${format} ${WRKSRC}/README.sgml
X @${MKDIR} ${WRKSRC}/doc-build/manual
X cd ${WRKSRC}/doc-build/manual && \
X sgmlfmt -f ${format} ${WRKSRC}/src/doc/manual.sgml
X.endfor
X.endif
X
Xdo-install:
X ${INSTALL_PROGRAM} ${WRKSRC}/src/sml/asdlGen ${PREFIX}/bin
X @${MKDIR} ${EXAMPLESDIR}
X cd ${WRKSRC}/src/asdl/tests && ${COPYTREE_SHARE} \* ${EXAMPLESDIR}
X ${INSTALL_DATA} -p ${WRKSRC}/src/asdl/std-types.asdl ${EXAMPLESDIR}
X.if !defined(NOPORTDOCS)
X @${MKDIR} ${DOCSDIR}
X ${INSTALL_MAN} -p ${WRKSRC}/COPYRIGHT ${DOCSDIR}
X cd ${WRKSRC}/doc-build && ${COPYTREE_SHARE} \* ${DOCSDIR}
X.endif
X.if defined(WITH_EXAMPLES)
X cd ${WRKDIR}/${DEMODIR} && ${MAKE} clean
X cd ${WRKDIR} && ${COPYTREE_SHARE} ${DEMODIR} ${EXAMPLESDIR}
X.endif
X
X# The following test-* targets are used for maintaining this port but
X# might be interesting for users exploring different target languages.
X
X.ifmake test-compile || test-demo
XBUILD_DEPENDS+= libcii>=1.1:${PORTSDIR}/devel/libcii \
X hugs:${PORTSDIR}/lang/hugs \
X icont:${PORTSDIR}/lang/icon \
X javac:${PORTSDIR}/java/diablo-jdk15 \
X ocaml:${PORTSDIR}/lang/ocaml
X
X.ifmake test-compile
X# This target runs the generate+compile tests from the asdlGen distribution
X# for all supported languages. The "Test" structure is defined in
X# ${WRKSRC}/src/sml/test/harness.sml .
Xtest-compile: depends clean-depends build
X.if defined(WITH_CII)
X cd ${WRKSRC}/src/sml && export SMLNJ_DEVEL=yes && \
X ${ECHO_CMD} "Test.do_it ();" | sml -m sources.cm
X.else
X @${ECHO_CMD} "You have to set the CII option (make config)"
X @${ECHO_CMD} "before you can use the test-compile target."
X @exit 1
X.endif
X.endif
X
X.ifmake test-demo
Xtest-demo: clean depends clean-depends build
X.if defined(WITH_CII) && defined(WITH_EXAMPLES)
X cd ${WRKDIR}/${DEMODIR} && ${MAKE} ASDLGEN=${WRKSRC}/src/sml/asdlGen
X.else
X @${ECHO_CMD} "You have to set the CII and EXAMPLES options"
X @${ECHO_CMD} "(make config) before you can use the test-demo target."
X @exit 1
X.endif
X.endif
X.endif
X
X.include <bsd.port.post.mk>
END-of-asdlgen/Makefile
echo x - asdlgen/distinfo
sed 's/^X//' >asdlgen/distinfo << 'END-of-asdlgen/distinfo'
XMD5 (asdlGen.tar.gz) = e61e9b1c2cfb3b22a1d0008c7b54c8e0
XSHA256 (asdlGen.tar.gz) = d833ad73aa16259422f42d8c80fe58cd7b9809e875a5a568237250c3332aa020
XSIZE (asdlGen.tar.gz) = 409079
XMD5 (asdlgen-demo.20071030.tar.gz) = fe10aaf4399f3b1093f1ed797be08653
XSHA256 (asdlgen-demo.20071030.tar.gz) = 525618e13871dca6aca808edbd1ba3cb3e3997a1ab0ab9397c0bfb337b68caa5
XSIZE (asdlgen-demo.20071030.tar.gz) = 5934
END-of-asdlgen/distinfo
echo x - asdlgen/pkg-descr
sed 's/^X//' >asdlgen/pkg-descr << 'END-of-asdlgen/pkg-descr'
XasdlGen is a tool for generating data marshalling and
Xunmarshalling code from a high-level (ASDL) specification.
XIt can generate such code for sml, ocaml, ansi-c, java, haskell,
Xicon, c++.
X
XThe Abstract Syntax Description Lanuguage (ASDL) is a language
Xdesigned to describe the tree-like data structures in compilers.
XIts main goal is to provide a method for compiler components
Xwritten in different languages to interoperate.
X
XWWW: http://asdl.sourceforge.net/
END-of-asdlgen/pkg-descr
echo x - asdlgen/pkg-plist
sed 's/^X//' >asdlgen/pkg-plist << 'END-of-asdlgen/pkg-plist'
Xbin/asdlGen
X%%PORTDOCS%%%%DOCSDIR%%/COPYRIGHT
X%%PORTDOCS%%%%DOCSDIR%%/README/README.ascii
X%%PORTDOCS%%%%DOCSDIR%%/README/README.html
X%%PORTDOCS%%%%DOCSDIR%%/README/README.ps
X%%PORTDOCS%%%%DOCSDIR%%/README/README1.html
X%%PORTDOCS%%%%DOCSDIR%%/README/README2.html
X%%PORTDOCS%%%%DOCSDIR%%/README/README_toc.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual.ascii
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual.ps
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual1.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual10.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual11.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual12.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual13.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual14.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual15.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual16.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual17.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual18.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual19.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual2.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual20.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual21.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual22.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual23.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual24.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual25.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual26.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual27.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual28.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual29.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual3.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual30.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual31.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual32.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual33.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual34.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual35.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual36.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual37.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual4.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual5.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual6.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual7.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual8.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual9.html
X%%PORTDOCS%%%%DOCSDIR%%/manual/manual_toc.html
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ArithExp.asdl
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/Common/Makefile.inc
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/Common/input.pickle.uu
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/Common/result.pickle.uu
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/Makefile
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ansi-c/EvalArithExp.c
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ansi-c/EvalArithExp.h
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ansi-c/Main.c
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ansi-c/Makefile
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/cxx/EvalArithExp.cxx
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/cxx/EvalArithExp.hxx
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/cxx/Main.cxx
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/cxx/Makefile
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/haskell/EvalArithExp.hs
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/haskell/Main.hs
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/haskell/Makefile
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/icon/EvalArithExp.icn
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/icon/Main.icn
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/icon/Makefile
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/java/EvalArithExp.java
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/java/Main.java
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/java/Makefile
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ocaml/EvalArithExp.ml
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ocaml/EvalArithExp.mli
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ocaml/Main.ml
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ocaml/Main.mli
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/ocaml/Makefile
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/sml/EvalArithExp.sml
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/sml/Main.cm
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/sml/Main.sml
X%%EXAMPLES%%%%EXAMPLESDIR%%/%%DEMODIR%%/sml/Makefile
X%%EXAMPLESDIR%%/asdl.asdl
X%%EXAMPLESDIR%%/bugs/bug3.asdl
X%%EXAMPLESDIR%%/bugs/bug4.asdl
X%%EXAMPLESDIR%%/bugs/bug5.asdl
X%%EXAMPLESDIR%%/errors.asdl
X%%EXAMPLESDIR%%/modTest/all.asdl
X%%EXAMPLESDIR%%/modTest/base.asdl
X%%EXAMPLESDIR%%/modTest/exp.asdl
X%%EXAMPLESDIR%%/modTest/op.asdl
X%%EXAMPLESDIR%%/modTest/pos.asdl
X%%EXAMPLESDIR%%/modTest/stm.asdl
X%%EXAMPLESDIR%%/pattern.asdl
X%%EXAMPLESDIR%%/rcc.asdl
X%%EXAMPLESDIR%%/slp.asdl
X%%EXAMPLESDIR%%/slp3.asdl
X%%EXAMPLESDIR%%/std-types.asdl
X%%EXAMPLESDIR%%/test.asdl
X%%EXAMPLESDIR%%/toplevel.asdl
X%%EXAMPLESDIR%%/views.asdl
X%%EXAMPLESDIR%%/zsuif.asdl
X%%PORTDOCS%%@dirrm %%DOCSDIR%%/README
X%%PORTDOCS%%@dirrm %%DOCSDIR%%/manual
X%%PORTDOCS%%@dirrm %%DOCSDIR%%
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%/Common
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%/ansi-c
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%/cxx
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%/haskell
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%/icon
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%/java
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%/ocaml
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%/sml
X%%EXAMPLES%%@dirrm %%EXAMPLESDIR%%/%%DEMODIR%%
X at dirrm %%EXAMPLESDIR%%/bugs
X at dirrm %%EXAMPLESDIR%%/modTest
X at dirrm %%EXAMPLESDIR%%
END-of-asdlgen/pkg-plist
echo c - asdlgen/files
mkdir -p asdlgen/files > /dev/null 2>&1
echo x - asdlgen/files/patch-Makefile.in
sed 's/^X//' >asdlgen/files/patch-Makefile.in << 'END-of-asdlgen/files/patch-Makefile.in'
X--- Makefile.in.orig Thu Mar 23 17:06:31 2006
X+++ Makefile.in Tue Sep 11 08:56:38 2007
X@@ -8,7 +8,7 @@
X INSTALL_BINDIR = $(PREFIX)/bin
X INSTALL_HEAPDIR = $(INSTALL_BINDIR)/.heap
X INSTALL_WRAPPER = @top_srcdir@/bin/install-sml-wrapper.sh
X-SML = @SMLNJ_CMD@
X+SML = @SMLNJ@
X ML_BUILD = @ML_BUILD@
X
X PROGRAM = asdlGen
X@@ -20,7 +20,7 @@
X
X INSTALL=@INSTALL@
X
X-build: $(TARGET)
X+build: $(HEAP)
X
X $(HEAP):
X (cd $(SRCDIR); \
END-of-asdlgen/files/patch-Makefile.in
echo x - asdlgen/files/patch-README.sgml
sed 's/^X//' >asdlgen/files/patch-README.sgml << 'END-of-asdlgen/files/patch-README.sgml'
X--- README.sgml.orig 2000-02-10 21:02:02.000000000 +0100
X+++ README.sgml 2007-09-28 18:48:26.000000000 +0200
X@@ -77,13 +77,13 @@
X &asdlGen; tacks this on to any set of input files to remain compatible with
X existing code. Users, can add their own primitive types by simply including
X there own primitive module declaration. See
X-<htmlurl url="src/asdl/std-types.asdl" name="src/asdl/std-types.asdl">
X+<htmlurl url="../../../examples/asdlgen/std-types.asdl" name="std-types.asdl">
X for an example that defines a richer set fix width integer and word types,
X for various languages.
X <item> Support for an unnamed "Toplevel" module. Allowing one to generate less
X verbose code for pedagogical purposes. See
X-<htmlurl url="src/asdl/tests/toplevel.asdl"
X-name="src/asdl/tests/toplevel.asdl"> for an example usage.
X+<htmlurl url="../../../examples/asdlgen/toplevel.asdl"
X+name="toplevel.asdl"> for an example usage.
X </itemize>
X
X <sect>COPYRIGHT<p>
END-of-asdlgen/files/patch-README.sgml
echo x - asdlgen/files/patch-configure
sed 's/^X//' >asdlgen/files/patch-configure << 'END-of-asdlgen/files/patch-configure'
X--- configure.orig Thu Mar 23 16:55:38 2006
X+++ configure Tue Sep 11 08:39:10 2007
X@@ -1328,7 +1328,7 @@
X
X
X if test z$SMLNJ = z ; then
X- for ac_prog in sml-cm sml sml.bat
X+ for ac_prog in sml
X do
X # Extract the first word of "$ac_prog", so it can be a program name with args.
X set dummy $ac_prog; ac_word=$2
END-of-asdlgen/files/patch-configure
echo x - asdlgen/files/patch-src_haskell_SexpLex.hs
sed 's/^X//' >asdlgen/files/patch-src_haskell_SexpLex.hs << 'END-of-asdlgen/files/patch-src_haskell_SexpLex.hs'
X--- src/haskell/SexpLex.hs.orig 1999-08-10 20:05:41.000000000 +0200
X+++ src/haskell/SexpLex.hs 2007-10-01 14:24:55.000000000 +0200
X@@ -1,5 +1,7 @@
X module SexpLex(Tok(..),scan,toString,) where
X
X+import Data.Char
X+
X data Tok =
X LP | RP
X | INT Int
END-of-asdlgen/files/patch-src_haskell_SexpLex.hs
echo x - asdlgen/files/patch-src_haskell_StdPkl.hs
sed 's/^X//' >asdlgen/files/patch-src_haskell_StdPkl.hs << 'END-of-asdlgen/files/patch-src_haskell_StdPkl.hs'
X--- src/haskell/StdPkl.hs.orig 1999-09-13 00:27:00.000000000 +0200
X+++ src/haskell/StdPkl.hs 2007-10-01 12:43:41.000000000 +0200
X@@ -50,9 +50,9 @@
X write_integral :: Integral a => a -> Handle -> IO ()
X write_integral n s = loop (abs n)
X where
X- loop x | x <= 63 = hPutChar s (chr (toInt(finish (n<0) x)))
X+ loop x | x <= 63 = hPutChar s (chr (fromIntegral(finish (n<0) x)))
X | otherwise = do
X- hPutChar s (chr (toInt(nibble x)))
X+ hPutChar s (chr (fromIntegral(nibble x)))
X loop (x `shiftr` 7)
X nibble n = ((n `andb` 0x7f) `orb` 0x80) `andb` 0xff
X finish False n = n `andb` 255
X@@ -63,14 +63,14 @@
X read_integral s
X = do {
X c <- hGetChar s;
X- loop (fromInt (ord c)) 0 0
X+ loop (fromIntegral (ord c)) 0 0
X }
X where
X loop n acc shift =
X if (continue_bit_set n) then
X do {
X c <- hGetChar s;
X- loop (fromInt(ord c) `andb` 255)
X+ loop (fromIntegral(ord c) `andb` 255)
X (acc `orb` ((n `andb` 0x7f) `shiftl` shift))
X (shift+7)
X }
END-of-asdlgen/files/patch-src_haskell_StdPkl.hs
echo x - asdlgen/files/patch-src_haskell_StdPrimsUtil.hs
sed 's/^X//' >asdlgen/files/patch-src_haskell_StdPrimsUtil.hs << 'END-of-asdlgen/files/patch-src_haskell_StdPrimsUtil.hs'
X--- src/haskell/StdPrimsUtil.hs.orig 1999-09-13 00:27:01.000000000 +0200
X+++ src/haskell/StdPrimsUtil.hs 2007-10-04 21:22:09.000000000 +0200
X@@ -81,8 +81,8 @@
X
X sexp_rd_identifier s = do t <- get_prim "identifier" s
X (case t of
X- SexpLex.STR str -> return str
X- _ -> error "expected identifier")
X+ SexpLex.STR str -> return str
X+ _ -> error "expected identifier")
X
X
X
END-of-asdlgen/files/patch-src_haskell_StdPrimsUtil.hs
echo x - asdlgen/files/patch-src_icon_libasdl.icn
sed 's/^X//' >asdlgen/files/patch-src_icon_libasdl.icn << 'END-of-asdlgen/files/patch-src_icon_libasdl.icn'
X--- src/icon/libasdl.icn.orig 1999-05-22 00:39:15.000000000 +0200
X+++ src/icon/libasdl.icn 2007-10-19 23:53:57.000000000 +0200
X@@ -29,6 +29,7 @@
X t := abs(i)
X while t > 63 do {
X b := iand(t, 127)
X+ b := ior(b, 128)
X writes(f, char(b))
X t := ishift(t, -7)
X }
X@@ -36,7 +37,6 @@
X if i < 0 then {
X b := ior(t, 64)
X }
X- b := ior(b, 128)
X writes(f, char(b))
X end
X
X@@ -46,7 +46,7 @@
X v := 0
X repeat {
X b := ord(reads(f)) | runerr(500)
X- if iand(b, 128) ~= 0 then {
X+ if iand(b, 128) = 0 then {
X s := iand(b, 64)
X b := iand(b, 63)
X v := ior(b, ishift(v, 6))
END-of-asdlgen/files/patch-src_icon_libasdl.icn
echo x - asdlgen/files/patch-src_java_asts_stdpkl_PklJava.java
sed 's/^X//' >asdlgen/files/patch-src_java_asts_stdpkl_PklJava.java << 'END-of-asdlgen/files/patch-src_java_asts_stdpkl_PklJava.java'
X--- src/java/asts/stdpkl/PklJava.java.orig 1999-09-13 00:27:01.000000000 +0200
X+++ src/java/asts/stdpkl/PklJava.java 2007-10-11 19:12:08.000000000 +0200
X@@ -1,4 +1,4 @@
X-package asts.StdPkl;
X+package asts.stdpkl;
X import java.io.*;
X import java.math.BigInteger;
X
END-of-asdlgen/files/patch-src_java_asts_stdpkl_PklJava.java
echo x - asdlgen/files/patch-src_java_asts_stdpkl_g.java
sed 's/^X//' >asdlgen/files/patch-src_java_asts_stdpkl_g.java << 'END-of-asdlgen/files/patch-src_java_asts_stdpkl_g.java'
X--- src/java/asts/stdpkl/g.java.orig 1999-09-13 00:27:02.000000000 +0200
X+++ src/java/asts/stdpkl/g.java 2007-10-11 19:12:08.000000000 +0200
X@@ -1,4 +1,4 @@
X-package asts.StdPkl;
X+package asts.stdpkl;
X final public class g extends PklJava {
X public static void write_tag (int x, java.io.OutputStream s) {
X PklJava.write_java_int(x,s);
END-of-asdlgen/files/patch-src_java_asts_stdpkl_g.java
echo x - asdlgen/files/patch-src_java_asts_stdprims_g.java
sed 's/^X//' >asdlgen/files/patch-src_java_asts_stdprims_g.java << 'END-of-asdlgen/files/patch-src_java_asts_stdprims_g.java'
X--- src/java/asts/stdprims/g.java.orig 1999-09-13 00:27:02.000000000 +0200
X+++ src/java/asts/stdprims/g.java 2007-10-11 19:12:08.000000000 +0200
X@@ -1,13 +1,13 @@
X-package asts.StdPrims;
X+package asts.stdprims;
X import java.io.*;
X
X-final public class g extends asts.StdPkl.PklJava {
X+final public class g extends asts.stdpkl.PklJava {
X
X public static void write_java_lang_String(String x,OutputStream s) {
X int sz = x.length();
X int i = 0;
X try {
X- asts.StdPkl.g.write_tag(sz,s);
X+ asts.stdpkl.g.write_tag(sz,s);
X while(i < sz) {
X s.write((byte)x.charAt(i++));
X }
X@@ -17,7 +17,7 @@
X }
X
X public static String read_java_lang_String(InputStream s) {
X- int sz = asts.StdPkl.g.read_tag(s);
X+ int sz = asts.stdpkl.g.read_tag(s);
X StringBuffer sb = new StringBuffer(sz);
X try {
X while(sz > 0) {
END-of-asdlgen/files/patch-src_java_asts_stdprims_g.java
echo x - asdlgen/files/patch-src_java_asts_stdprims_identifier.java
sed 's/^X//' >asdlgen/files/patch-src_java_asts_stdprims_identifier.java << 'END-of-asdlgen/files/patch-src_java_asts_stdprims_identifier.java'
X--- src/java/asts/stdprims/identifier.java.orig 1999-05-31 21:21:29.000000000 +0200
X+++ src/java/asts/stdprims/identifier.java 2007-10-11 19:12:08.000000000 +0200
X@@ -1,4 +1,4 @@
X-package asts.StdPrims;
X+package asts.stdprims;
X
X public class identifier {
X private identifier() {}
END-of-asdlgen/files/patch-src_java_asts_stdprims_identifier.java
echo x - asdlgen/files/patch-src_java_asts_stdtypes_g.java
sed 's/^X//' >asdlgen/files/patch-src_java_asts_stdtypes_g.java << 'END-of-asdlgen/files/patch-src_java_asts_stdtypes_g.java'
X--- src/java/asts/stdtypes/g.java.orig 1999-09-13 00:27:04.000000000 +0200
X+++ src/java/asts/stdtypes/g.java 2007-10-11 19:13:53.000000000 +0200
X@@ -1,4 +1,4 @@
X-package asts.StdTypes;
X-final public class g extends asts.StdPkl.PklJava {
X+package asts.stdtypes;
X+final public class g extends asts.stdpkl.PklJava {
X // inherit methods from PklJava
X }
END-of-asdlgen/files/patch-src_java_asts_stdtypes_g.java
echo x - asdlgen/files/patch-src_misc_sml-batch.in
sed 's/^X//' >asdlgen/files/patch-src_misc_sml-batch.in << 'END-of-asdlgen/files/patch-src_misc_sml-batch.in'
X--- src/misc/sml-batch.in.orig 2001-10-02 16:20:32.000000000 +0200
X+++ src/misc/sml-batch.in 2007-10-04 23:56:09.000000000 +0200
X@@ -3,12 +3,15 @@
X cmfile=sources-$$.cm
X cat > ${cmfile} <<EOF
X Group is
X+\$/basis.cm
X $@
X EOF
X @SMLNJ@ <<EOF
X+(*
X val path = String.tokens (fn x => x = #":") "${cmpath}";
X CM.set_path (SOME (path@(CM.set_path NONE)));
X-((CM.make' ("${cmfile}") handle _ => OS.Process.exit OS.Process.failure);
X+*)
X+((CM.make ("${cmfile}") handle _ => OS.Process.exit OS.Process.failure);
X OS.Process.exit OS.Process.success; ())
X EOF
X ret=$?
END-of-asdlgen/files/patch-src_misc_sml-batch.in
echo x - asdlgen/files/patch-src_sml_main_export.sml
sed 's/^X//' >asdlgen/files/patch-src_sml_main_export.sml << 'END-of-asdlgen/files/patch-src_sml_main_export.sml'
X--- src/sml/main/export.sml.orig 2000-01-14 03:02:38.000000000 +0100
X+++ src/sml/main/export.sml 2007-10-27 18:26:21.000000000 +0200
X@@ -81,7 +81,7 @@
X
X fun asdlGen (name,args) =
X (run_it (name,args);OS.Process.success) handle e =>
X- (Error.say ("Error: "^(exnMessage e)^"\n");
X+ (Error.say ("Error: "^(General.exnMessage e)^"\n");
X OS.Process.failure)
X
X end
END-of-asdlgen/files/patch-src_sml_main_export.sml
echo x - asdlgen/files/patch-src_sml_main_lib-files.sml
sed 's/^X//' >asdlgen/files/patch-src_sml_main_lib-files.sml << 'END-of-asdlgen/files/patch-src_sml_main_lib-files.sml'
X--- src/sml/main/lib-files.sml.orig 2000-02-10 19:51:47.000000000 +0100
X+++ src/sml/main/lib-files.sml 2007-10-11 17:41:21.000000000 +0200
X@@ -58,23 +58,23 @@
X fun join (x,y) = OS.Path.concat("asts",OS.Path.concat(x,y))
X
X val std_pkl_lib =
X- FileSet.mkLib {name=join("StdPkl","g.java"),depends=[],impl=
X+ FileSet.mkLib {name=join("stdpkl","g.java"),depends=[],impl=
X MkFileSet.file_set (mkroot ["java"]) FileSet.empty
X- [(join("StdPkl","g.java"),[]),
X- (join("StdPkl","PklJava.java"),[join("StdPkl","g.java")])]}
X+ [(join("stdpkl","g.java"),[]),
X+ (join("stdpkl","PklJava.java"),[join("stdpkl","g.java")])]}
X
X val std_prims_lib =
X- FileSet.mkLib {name=join("StdPrims","g.java"),
X- depends=[join("StdPkl","g.java")],impl=
X+ FileSet.mkLib {name=join("stdprims","g.java"),
X+ depends=[join("stdpkl","g.java")],impl=
X MkFileSet.file_set (mkroot ["java"]) FileSet.empty
X- [(join("StdPrims","g.java"),[join("StdPkl","g.java")]),
X- (join("StdPrims","identifier.java"),[join("StdPrims","g.java")])]}
X+ [(join("stdprims","g.java"),[join("stdpkl","g.java")]),
X+ (join("stdprims","identifier.java"),[join("stdprims","g.java")])]}
X
X val std_types_lib =
X- FileSet.mkLib {name=join("StdTypes","g.java"),
X- depends=[join("StdPkl","g.java")],impl=
X+ FileSet.mkLib {name=join("stdtypes","g.java"),
X+ depends=[join("stdpkl","g.java")],impl=
X MkFileSet.file_set (mkroot ["java"]) FileSet.empty
X- [(join("StdTypes","g.java"),[])]}
X+ [(join("stdtypes","g.java"),[])]}
X in val java = add_files [std_pkl_lib,std_prims_lib,std_types_lib]
X end
X local
END-of-asdlgen/files/patch-src_sml_main_lib-files.sml
echo x - asdlgen/files/patch-src_sml_test_harness.sml
sed 's/^X//' >asdlgen/files/patch-src_sml_test_harness.sml << 'END-of-asdlgen/files/patch-src_sml_test_harness.sml'
X--- src/sml/test/harness.sml.orig 2001-10-02 16:20:32.000000000 +0200
X+++ src/sml/test/harness.sml 2007-10-07 20:09:45.000000000 +0200
X@@ -69,15 +69,15 @@
X val c_includes = (mk_path ["c"])@ ["/usr/local/include"]
X val c_libs = mk_path ["c"]@ ["/usr/local/lib"]
X
X- val cxx_includes = mk_path ["c"]
X- val cxx_libs = mk_path ["cxx"]
X+ val cxx_includes = (mk_path ["cxx"])@ ["/usr/local/include"]
X+ val cxx_libs = mk_path ["cxx"]@ ["/usr/local/lib"]
X
X val java_classes = [] (*mk_path ["java"]*)
X
X val cm_path = [] (* mk_path ["sml","base"]*)
X val icon_ucode = [] (* mk_path ["icon"] *)
X val haskell_path = (* (mk_path ["haskell"])@*)
X- ["/usr/share/hugs/lib"]
X+ [ (*"/usr/share/hugs/lib"*) ]
X val ocaml_path = [] (* (mk_path ["ocaml"]) *)
X end
X
X@@ -208,7 +208,7 @@
X val sigs = (get_files "sml" i)
X val outs = strs at sigs
X val cm_path = S.cm_path
X- in P.sml_batch{cm_path=cm_path,inputs="smlnj-lib.cm"::outs}
X+ in P.sml_batch{cm_path=cm_path,inputs="$/smlnj-lib.cm"::outs}
X end
X
X fun ocaml_comp i =
X@@ -295,9 +295,9 @@
X mk_path ["modTest","pos.asdl"]])
X
X val big_int_test =
X- (test_all "generic.asdl" [mk_path ["generic.asdl"]])
X+ (test_all "generic.asdl" [mk_path ["..","generic.asdl"]])
X val asdl_test =
X- (test_all "asdl.asdl" [mk_path ["asdl.asdl"]])
X+ (test_all "asdl.asdl" [mk_path ["..","asdl.asdl"]])
X
X val pattern_test =
X (test_all "pattern.asdl" [mk_path ["pattern.asdl"]])
END-of-asdlgen/files/patch-src_sml_test_harness.sml
echo x - asdlgen/files/patch-src_sml_translate_oo_java-pp.sml
sed 's/^X//' >asdlgen/files/patch-src_sml_translate_oo_java-pp.sml << 'END-of-asdlgen/files/patch-src_sml_translate_oo_java-pp.sml'
X--- src/sml/translate/oo/java-pp.sml.orig 2000-01-14 02:42:28.000000000 +0100
X+++ src/sml/translate/oo/java-pp.sml 2007-10-12 21:02:26.000000000 +0200
X@@ -36,7 +36,8 @@
X (case qualifier of
X [] => NONE
X | [""] => SOME {base=base,qualifier=[package_prefix]}
X- | _ => SOME {base=base,qualifier=[package_prefix]@qualifier})
X+ | _ => SOME {base=base,qualifier=[package_prefix]@
X+ (map (String.map Char.toLower) qualifier)})
X fun fix_ty_path {qualifier,base} =
X case base of
X "java_boolean" => SOME {qualifier=[],base="boolean"}
X@@ -280,6 +281,7 @@
X end
X | pp_cls mn x =
X let
X+ val mn = String.map Char.toLower mn
X fun get_name (DeclClass x) = PP.fix_tid(#name(x))
X | get_name (DeclAbstractClass x) = PP.fix_tid(#name(x))
X | get_name _ = raise Error.internal
X@@ -311,6 +313,7 @@
X
X fun mk_dep name =
X let val mn = ModuleId.toString (PP.fix_mid name)
X+ val mn = String.map Char.toLower mn
X in
X OS.Path.concat(package_prefix,
X OS.Path.concat(mn,
X@@ -337,6 +340,7 @@
X end
X | pp_consts mn x props imports =
X let
X+ val mn = String.map Char.toLower mn
X val pp =
X cat
X [str ("package "^package_prefix^"."^mn^";"), nl,
END-of-asdlgen/files/patch-src_sml_translate_oo_java-pp.sml
echo x - asdlgen/files/patch-src_sml_translate_support_idmaps.sml
sed 's/^X//' >asdlgen/files/patch-src_sml_translate_support_idmaps.sml << 'END-of-asdlgen/files/patch-src_sml_translate_support_idmaps.sml'
X--- src/sml/translate/support/idmaps.sml.orig 1999-09-13 00:27:25.000000000 +0200
X+++ src/sml/translate/support/idmaps.sml 2007-10-12 18:43:12.000000000 +0200
X@@ -102,15 +102,17 @@
X struct
X val id_map =
X List.map (fix_kw "_")
X- ["abstract","boolean", "break", "byte", "case", "char",
X- "class", "const", "continue", "do", "double", "else",
X- "extends", "final","finally", "int", "float", "for",
X- "default", "if", "implements", "import", "instanceof",
X- "interface", "long", "native", "new", "public",
X- "short", "super", "switch", "synchroinized", "package",
X- "private", "protected", "transient", "return", "void",
X- "static", "while", "throw", "throws", "try",
X- "volatile","kind"]
X+ ["abstract", "assert", "boolean", "break", "byte",
X+ "case", "catch", "char", "class", "const", "continue",
X+ "default", "do", "double", "else", "enum", "extends",
X+ "final", "finally", "float", "for", "goto", "if",
X+ "implements", "import", "instanceof", "int",
X+ "interface", "long", "native", "new", "package",
X+ "private", "protected", "public", "return", "short",
X+ "static", "strictfp", "super", "switch",
X+ "synchronized", "this", "throw", "throws",
X+ "transient", "try", "void", "volatile", "while",
X+ "kind"]
X
X val ty_map = id_map
X val name = "Java"
X@@ -129,4 +131,4 @@
X val name = "Icon"
X end
X
X- end
X\ No newline at end of file
X+ end
END-of-asdlgen/files/patch-src_sml_translate_support_idmaps.sml
echo x - asdlgen/files/patch-src_sml_translate_support_mk-file-set.sml
sed 's/^X//' >asdlgen/files/patch-src_sml_translate_support_mk-file-set.sml << 'END-of-asdlgen/files/patch-src_sml_translate_support_mk-file-set.sml'
X--- src/sml/translate/support/mk-file-set.sml.orig 2000-01-10 01:09:21.000000000 +0100
X+++ src/sml/translate/support/mk-file-set.sml 2007-09-25 18:00:55.000000000 +0200
X@@ -9,9 +9,9 @@
X let
X fun do_one ((name,depends),fs) =
X let
X- val path = Paths.pathConcat (root,Paths.pathFromArcs [name])
X+ val path = Paths.pathConcat (root,Paths.pathFromNative name)
X val fname = (Paths.pathToNative path)
X- val ins = TextIO.openIn (Paths.pathToNative path)
X+ val ins = TextIO.openIn fname
X val file = TextIO.inputAll ins
X val _ = (TextIO.closeIn ins;print ("Read file:"^fname^"\n"))
X val body = PPUtil.s file
X@@ -21,4 +21,4 @@
X end
X in List.foldl do_one init rest
X end
X- end
X\ No newline at end of file
X+ end
END-of-asdlgen/files/patch-src_sml_translate_support_mk-file-set.sml
echo x - asdlgen/files/patch-src_sml_util_misc_file-set.sml
sed 's/^X//' >asdlgen/files/patch-src_sml_util_misc_file-set.sml << 'END-of-asdlgen/files/patch-src_sml_util_misc_file-set.sml'
X--- src/sml/util/misc/file-set.sml.orig 2000-01-14 02:42:30.000000000 +0100
X+++ src/sml/util/misc/file-set.sml 2007-09-28 22:50:55.000000000 +0200
X@@ -68,11 +68,18 @@
X fun libPath x = d at x
X fun get_node "" = NONE
X | get_node x = OM.find(fs',x)
X- fun fix_dep x = case OM.find(fs',x) of
X- (SOME (L _)) => libPath [x] | _ => [x]
X- fun cvt (F x) = {name=[#name x],
X+ fun fix_dep x = let open OS.Path
X+ val xarcs = (#arcs o fromString) x
X+ in case OM.find(fs',x) of
X+ (SOME (L _)) => libPath xarcs | _ => xarcs
X+ end
X+ fun cvt (F x) = let open OS.Path
X+ val xarcs = (#arcs o fromString) (#name x)
X+ in
X+ {name=xarcs,
X depends=List.map fix_dep (#depends x),
X body=(#body x)}
X+ end
X | cvt _ = raise (Fail "impossible")
X
X fun prefix_it {name,depends,body} =
X@@ -90,4 +97,4 @@
X val components = Scc.topOrder {root="",follow=follow}
X in List.foldl no_cycle [] components
X end
X- end
X\ No newline at end of file
X+ end
END-of-asdlgen/files/patch-src_sml_util_misc_file-set.sml
exit
--- asdlgen.20071030.shar ends here ---
>Release-Note:
>Audit-Trail:
>Unformatted:
More information about the freebsd-ports-bugs
mailing list