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