[Pkg-haskell-commits] r794 - in /packages/hs-plugins/trunk: ./ debian/ docs/ examples/ scripts/ src/ src/AltData/ src/Language/ src/System/ src/altdata/ src/hi/ src/plugins/ testsuite/
arjan at users.alioth.debian.org
arjan at users.alioth.debian.org
Sun Nov 11 15:51:38 UTC 2007
Author: arjan
Date: Sun Nov 11 15:51:38 2007
New Revision: 794
URL: http://svn.debian.org/wsvn/pkg-haskell/?sc=1&rev=794
Log:
* (NOT RELEASED YET) New upstream release
Added:
packages/hs-plugins/trunk/Setup.lhs
- copied unchanged from r793, packages/hs-plugins/branches/upstream/current/Setup.lhs
packages/hs-plugins/trunk/install.sh
- copied unchanged from r793, packages/hs-plugins/branches/upstream/current/install.sh
packages/hs-plugins/trunk/plugins.cabal
- copied unchanged from r793, packages/hs-plugins/branches/upstream/current/plugins.cabal
packages/hs-plugins/trunk/plugins.cabal.hsx
- copied unchanged from r793, packages/hs-plugins/branches/upstream/current/plugins.cabal.hsx
packages/hs-plugins/trunk/scripts/Setup-with-ghc.lhs
- copied unchanged from r793, packages/hs-plugins/branches/upstream/current/scripts/Setup-with-ghc.lhs
packages/hs-plugins/trunk/src/AltData/
- copied from r793, packages/hs-plugins/branches/upstream/current/src/AltData/
packages/hs-plugins/trunk/src/Language/
- copied from r793, packages/hs-plugins/branches/upstream/current/src/Language/
packages/hs-plugins/trunk/src/System/
- copied from r793, packages/hs-plugins/branches/upstream/current/src/System/
packages/hs-plugins/trunk/testsuite/
- copied from r793, packages/hs-plugins/branches/upstream/current/testsuite/
Removed:
packages/hs-plugins/trunk/BUILDING.CVS
packages/hs-plugins/trunk/VERSION
packages/hs-plugins/trunk/autogen.sh
packages/hs-plugins/trunk/examples/
packages/hs-plugins/trunk/install-sh
packages/hs-plugins/trunk/src/Makefile
packages/hs-plugins/trunk/src/README
packages/hs-plugins/trunk/src/altdata/
packages/hs-plugins/trunk/src/build.mk
packages/hs-plugins/trunk/src/hi/
packages/hs-plugins/trunk/src/plugins/
Modified:
packages/hs-plugins/trunk/Makefile
packages/hs-plugins/trunk/README
packages/hs-plugins/trunk/TODO
packages/hs-plugins/trunk/config.h.in
packages/hs-plugins/trunk/config.mk.in
packages/hs-plugins/trunk/configure.ac
packages/hs-plugins/trunk/debian/changelog
packages/hs-plugins/trunk/docs/hs-plugins.1
packages/hs-plugins/trunk/docs/hs-plugins.tex
packages/hs-plugins/trunk/scripts/mkrelease.sh
Modified: packages/hs-plugins/trunk/Makefile
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/Makefile?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/Makefile (original)
+++ packages/hs-plugins/trunk/Makefile Sun Nov 11 15:51:38 2007
@@ -1,57 +1,12 @@
# Copyright (c) 2004 Don Stewart - http://www.cse.unsw.edu.au/~dons
# LGPL version 2.1 or later (see http://www.gnu.org/copyleft/lesser.html)
-
-# cut down reimplementation of $fptools/mk directory
-
-.PHONY: build all
-
-all: build EvalHaskell.h
-
-build::
- cd src && $(MAKE)
- @find src -name depend -exec rm {} \;
- @#cd src && $(MAKE) way=p
-
-EvalHaskell.h: build
- cp src/plugins/System/Eval/Haskell_stub.h $@
-
-#
-# installing
-#
-
-# TODO put these in subdirs
-install:
- $(INSTALL_DATA_DIR) $(LIBDIR)/include
- $(INSTALL_DATA) EvalHaskell.h $(LIBDIR)/include
- $(INSTALL_DATA_DIR) $(MANDIR)/man1
- $(INSTALL_DATA) docs/hs-plugins.1 $(MANDIR)/man1
- @(cd src && $(MAKE) install)
-
-#
-# and register the library with ghc package system
-# Use this target if installing by hand. May need to be performed as root
-#
-register:
- env LIBDIR=${LIBDIR} $(GHC_PKG) -u < src/altdata/altdata.conf.in
- env LIBDIR=${LIBDIR} $(GHC_PKG) -u < src/hi/hi.conf.in
- env LIBDIR=${LIBDIR} $(GHC_PKG) -u < src/plugins/plugins.conf.in
-
-# and unregister the packages
-unregister:
- $(GHC_PKG) -r plugins
- $(GHC_PKG) -r hi
- $(GHC_PKG) -r altdata
#
# regress check. TODO check expected output
#
check:
- @if [ ! -f EvalHaskell.h ] ; then \
- echo "run 'make' first" ; \
- exit 1 ;\
- fi
@( d=/tmp/plugins.tmp.$$$$ ; mkdir $$d ; export TMPDIR=$$d ;\
- for i in `find examples ! -name CVS -type d -maxdepth 2 -mindepth 2` ; do \
+ for i in `find testsuite ! -name CVS -type d -maxdepth 2 -mindepth 2 | sort` ; do \
printf "=== testing %-50s ... " "$$i" ; \
( cd $$i ; if [ -f dont_test ] ; then \
echo "ignored." ;\
@@ -61,33 +16,29 @@
fi ) 2> /dev/null ;\
done ; rm -rf $$d )
-
#
# making clean
#
CLEAN_FILES += *.conf.*.old *~
+
EXTRA_CLEANS+=*.conf.inplace* *.conf.in *.h autom4te.cache \
config.h config.mk config.log config.status
clean:
cd docs && $(MAKE) clean
- cd src && $(MAKE) clean
+ runhaskell Setup.lhs clean 2> /dev/null || true
rm -rf $(CLEAN_FILES)
- find examples -name '*.a' -exec rm {} \;
- find examples -name '*~' -exec rm {} \;
- find examples -name 'a.out' -exec rm {} \;
- find examples -name '*.hi' -exec rm {} \;
- find examples -name '*.o' -exec rm {} \;
- find examples -name '*.core' -exec rm {} \;
- find examples -name 'package.conf' -exec rm {} \;
- rm -f examples/makewith/io/TestIO.conf
- rm -f examples/makewith/unsafeio/Unsafe.conf
- rm -rf examples/hmake/lib-plugs/plugs
- rm -rf examples/hmake/one-shot/runplugs
- rm -f EvalHaskell.h
-
-distclean: clean
+ find testsuite -name '*.a' -exec rm {} \;
+ find testsuite -name '*~' -exec rm {} \;
+ find testsuite -name 'a.out' -exec rm {} \;
+ find testsuite -name '*.hi' -exec rm {} \;
+ find testsuite -name '*.o' -exec rm {} \;
+ find testsuite -name '*.core' -exec rm {} \;
+ find testsuite -name 'package.conf' -exec rm {} \;
+ rm -f testsuite/makewith/io/TestIO.conf
+ rm -f testsuite/makewith/unsafeio/Unsafe.conf
+ rm -rf testsuite/plugs/plugs/plugs
+ rm -rf testsuite/plugs/plugs/runplugs
rm -rf $(EXTRA_CLEANS)
-include config.mk
Modified: packages/hs-plugins/trunk/README
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/README?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/README (original)
+++ packages/hs-plugins/trunk/README Sun Nov 11 15:51:38 2007
@@ -14,8 +14,8 @@
standard declarations and syntax, saving the user from having to write
standard code themselves.
-It provides an eval() function, for generating new, well-typed,
-compiled code from a Haskell source string.
+It provides an `eval' function, for generating new, well-typed, compiled
+code from a Haskell source string.
It also provides a new variation of printf for Haskell-- a runtime
generated, dynamically-typed printf.
@@ -23,15 +23,42 @@
Read the documentation in doc/ for more.
------------------------------------------------------------------------
+
+BUILDING:
+ $ chmod +x Setup.lhs configure
+ $ ./Setup.lhs configure --prefix=/usr/local
+ $ ./Setup.lhs build
+ $ ./Setup.lhs install
+
+------------------------------------------------------------------------
+
DEPENDENCIES:
-* Requires GHC > 6.2 (for Typeable.h)
-* Requires GNU make or BSD make to build
-* Requires HSX, Niklas Broberg's Haskell parser library, available at:
- darcs get http://www.cs.chalmers.se/~d00nibro/haskell-src-exts
- Read the README with this package for how to install it (quite simple)
+* Requires GHC >= 6.4
+* Requires Cabal
------------------------------------------------------------------------
+
+* Optional:
+ If you are doing a lot of `merge'-related operations, and require
+ an extended haskell parser, you can compile hs-plugins to use
+ HSX, Niklas Broberg's Haskell parser library, available at:
+
+ darcs get http://www.cs.chalmers.se/~d00nibro/haskell-src-exts
+
+ To get hs-plugins to use HSX, use:
+
+ $ mv plugins.cabal.hsx plugins.cabal
+ $ ./Setup.lhs configure --enable-hsx
+
+ Make sure to install HSX first though :)
+
+------------------------------------------------------------------------
+
+* On cygwin/windows you (a) make sure the cygwin "find" is before the
+ windows "find" on your PATH, and (b) to give the windows-style path
+ (e.g., "c:/cygwin/usr/local") in the ./configure --prefix=foo/bar
+ step
* 'plugs' requires a working readline library.
@@ -39,42 +66,17 @@
you require a patch to GHC's linker, that was committed into ghc
6.3, and ghc 6.2 -stable branch, and is available from 6.2.2 onwards.
-* If you need to regenerate ./configure you need >= autoconf-2.53
+* If you need to regenerate ./configure you need >= autoreconf-2.53
-------------------------------------------------------------------------
-BUILDING:
- $ ./configure --prefix=/usr/local
- $ make
- $ make install
-
-* On cygwin/windows you (a) make sure the cygwin "find" is before the
- windows "find" on your PATH, and (b) to give the windows-style path
- (e.g., "c:/cygwin/usr/local") in the ./configure --prefix=foo/bar
- step
-
-If you wish to register the libraries as official ghc pkg (probably as
-root):
- $ make register
-
-And to unregister (maybe as root). Note that the unistall order
-matters:
-
- $ ghc-pkg -r printf
- $ ghc-pkg -r eval
- $ ghc-pkg -r plugins
- $ ghc-pkg -r hi
- $ ghc-pkg -r altdata
-
-Once it is registered, you can link against the library by just adding
--package plugins or, e.g. -package eval, to your command line.
-
-The documentation relies on latex, dvips, tex2page:
+* The documentation relies on haddock, latex, dvips, tex2page:
$ cd doc && make
+------------------------------------------------------------------------
+
EXAMPLES:
-Have a look in the examples/ directory for many examples of how to
+Have a look in the testsuite/ directory for many examples of how to
arrange your code.
LICENSE:
@@ -85,8 +87,8 @@
PORTABILITY:
-Requires GHC 6.2 or greater, though most testing has be done on 6.3.
-They dynamic loader requires a functional GHCi implementation.
+Requires GHC 6.4 or greater, though most testing has be done on 6.4.
+The dynamic loader requires a functional GHCi implementation.
---------------------+--------------------------------------------------
Platform | Works Should work* Unknown Won't work
@@ -95,6 +97,7 @@
i386-*-freebsd | X
i386-*-openbsd | X
powerpc-apple-darwin | X
+powerpc-*-linux | X
sparc-*-solaris2 | X
ia64-*-linux | #
i386-*-solaris2 | X
Modified: packages/hs-plugins/trunk/TODO
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/TODO?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/TODO (original)
+++ packages/hs-plugins/trunk/TODO Sun Nov 11 15:51:38 2007
@@ -1,9 +1,10 @@
-For 0.1
+For 1.0
----------
-+ nice functions for cleaning up /tmp files, given a module name
++ hs-plugins doesn't know to look for packages in the user packages,
+only in the global packages
-+ write a script to strip down the release code.
++ version numbers in package loads are annyoing
+ .hi file parser is broken on Itanium, again.
Modified: packages/hs-plugins/trunk/config.h.in
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/config.h.in?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/config.h.in (original)
+++ packages/hs-plugins/trunk/config.h.in Sun Nov 11 15:51:38 2007
@@ -1,21 +1,46 @@
-/*
- * Copyright (c) 2004 Don Stewart - http://www.cse.unsw.edu.au/~dons
- * LGPL version 2.1 or later (see http://www.gnu.org/copyleft/lesser.html)
- */
+/* config.h.in. Generated from configure.ac by autoheader. */
-/* symbols that must be assigned to variables in Haskell code */
+/* Defined if compiling with mingw */
+#undef CYGWIN
-/* NOTE: this is not the same as symbols needed for cpp of .hs code */
+/* Defined if a debugging version is to be built */
+#undef DEBUG
-/* path to ghc */
-#define GHC "@GHC@"
+/* Path to ghc libraries */
+#undef GHC_LIB_PATH
-/* path to GHC libraries */
-#define GHC_LIB_PATH "@GHC_LIB_PATH@"
+/* Define to 1 if you have the `arc4random' function. */
+#undef HAVE_ARC4RANDOM
-#define TOP "@TOP@"
+/* Whether symbols are prefixed with a leading underscore */
+#undef LEADING_UNDERSCORE
-#define LEADING_UNDERSCORE @LEADING_UNDERSCORE@
+/* Defined if compiling on the mac */
+#undef MACOSX
-#define CABAL @CABAL@
+/* Define to the address where bug reports for this package should be sent. */
+#undef PACKAGE_BUGREPORT
+/* Define to the full name of this package. */
+#undef PACKAGE_NAME
+
+/* Define to the full name and version of this package. */
+#undef PACKAGE_STRING
+
+/* Define to the one symbol short name of this package. */
+#undef PACKAGE_TARNAME
+
+/* Define to the version of this package. */
+#undef PACKAGE_VERSION
+
+/* Path to top of build tree */
+#undef TOP
+
+/* Which ghc to use */
+#undef WITH_GHC
+
+/* Defined if hs-plugins is to be built with Niklas Broberg's HSX parser */
+#undef WITH_HSX
+
+/* Defined if compiling with mingw */
+#undef __MINGW32__
Modified: packages/hs-plugins/trunk/config.mk.in
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/config.mk.in?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/config.mk.in (original)
+++ packages/hs-plugins/trunk/config.mk.in Sun Nov 11 15:51:38 2007
@@ -1,58 +1,4 @@
-#
-# Copyright (c) 2004 Don Stewart - http://www.cse.unsw.edu.au/~dons
-# LGPL version 2.1 or later (see http://www.gnu.org/copyleft/lesser.html)
-#
-
-#
-# config.mk.in :
-# variables that need to be visible in Makefiles
-#
-
-# all is the default rule for everyone
default: all
-
-PACKAGE = plugins
-UPACKAGE = Plugins
-
TOP = @TOP@
-
-PREFIX = @PREFIX@
-LIBDIR = $(PREFIX)/lib/hs-$(PACKAGE)
-BINDIR = $(PREFIX)/bin
-MANDIR = $(PREFIX)/man
-
-WHOLE_ARCHIVE_FLAG = @WHOLE_ARCHIVE_FLAG@
-
-# Are we using the new Cabal packages?
-CABAL = @CABAL@
-
-
GHC = @GHC@
-GHC_LIB_PATH = @GHC_LIB_PATH@
-GHC_VERSION = @GHC_VERSION@
GLASGOW_HASKELL = @GLASGOW_HASKELL@
-GHC_EXTRA_OPTS = @SYMS@ @DEBUG_OPTS@
-GHC_LD_OPTS =
-
-GHC_PKG = @GHCPKG@
-
-LD = @LD@
-LD_X = @LD@ -x
-
-HAPPY = @HAPPY@
-HAPPY_OPTS = -a -g -c
-ALEX = @ALEX@
-ALEX_OPTS = --ghc
-HADDOCK = @HADDOCK@
-
-AR = @AR@
-RANLIB = @RANLIB@
-
-RM = @RM@
-
-INSTALL = @INSTALL@
-
-# A few aliases
-INSTALL_PROGRAM = ${INSTALL} -s -m 755
-INSTALL_DATA = ${INSTALL} -m 644
-INSTALL_DATA_DIR= ${INSTALL} -d -m 755
Modified: packages/hs-plugins/trunk/configure.ac
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/configure.ac?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/configure.ac (original)
+++ packages/hs-plugins/trunk/configure.ac Sun Nov 11 15:51:38 2007
@@ -1,10 +1,17 @@
#
-# Copyright (c) 2004 Don Stewart - http://www.cse.unsw.edu.au/~dons
+# Copyright (c) 2004-5 Don Stewart - http://www.cse.unsw.edu.au/~dons
# LGPL version 2.1 or later (see http://www.gnu.org/copyleft/lesser.html)
#
+# SUBSTs go into config.mk.in (TOP,PREFIX,GHC,INSTAlL)
+# AC_DEFINES go into config.h
+# only AC_DEFINES are visible in Haskell src
+
# sanity test
-AC_INIT(src/plugins/System/Plugins.hs)
+AC_INIT(src/System/Plugins.hs)
+
+# Prepare to generate the config.h.in file
+AC_CONFIG_HEADERS([config.h])
# untested on earlier than 2.52, but it won't work anyway
AC_PREREQ(2.53)
@@ -30,43 +37,35 @@
case $Platform in
powerpc-apple-darwin*)
MACOSX=yes
+ AC_DEFINE_UNQUOTED(MACOSX, [1], [Defined if compiling on the mac])
+ LEADING_UNDERSCORE=1
;;
*)
MACOSX=no
+ LEADING_UNDERSCORE=0
;;
esac
-if test "$MACOSX" = "yes"
-then
- WHOLE_ARCHIVE_FLAG=-all_load
- LEADING_UNDERSCORE=1
- SYMS="$SYMS -DMACOSX"
-else
- WHOLE_ARCHIVE_FLAG=--whole-archive
- LEADING_UNDERSCORE=0
-fi
-
-AC_SUBST(WHOLE_ARCHIVE_FLAG)
-AC_SUBST(LEADING_UNDERSCORE)
if test "$build_os" = "mingw32"
then
+ AC_DEFINE(__MINGW32__,[1],[Defined if compiling with mingw])
LEADING_UNDERSCORE=1
- SYMS="$SYMS -D__MINGW32__"
fi
-AC_SUBST(LEADING_UNDERSCORE)
-AC_SUBST(SYMS)
if test "$build_os" = "cygwin"
then
+ AC_DEFINE(CYGWIN,[1],[Defined if compiling with mingw])
LEADING_UNDERSCORE=1
- SYMS="$SYMS -DCYGWIN"
fi
-AC_SUBST(LEADING_UNDERSCORE)
-AC_SUBST(SYMS)
+
+AC_DEFINE_UNQUOTED(LEADING_UNDERSCORE, $LEADING_UNDERSCORE,
+ [Whether symbols are prefixed with a leading underscore])
# Find pwd, in a cygwin friendly way.
# Suggested by: http://www.haskell.org/ghc/docs/latest/html/users_guide/ch11s04.html
TOP=`echo "Directory.getCurrentDirectory >>= putStrLn.init.tail.show " | ghc --interactive -ignore-dot-ghci -v0`
+
+AC_DEFINE_UNQUOTED(TOP, "$TOP", [Path to top of build tree])
AC_SUBST(TOP)
# necessary tools
@@ -85,23 +84,8 @@
fi
]
)
+AC_DEFINE_UNQUOTED(WITH_GHC, "$GHC", [Which ghc to use])
AC_SUBST(GHC)
-
-# find path to GHC libs, for runtime_loader
-if test -n "$GHC" ; then
- AC_MSG_CHECKING([for ghc library directory])
- GHC_LIB_PATH=`$GHC --print-libdir`
- AC_MSG_RESULT([$GHC_LIB_PATH])
-fi
-AC_SUBST(GHC_LIB_PATH)
-
-# check ghc version here
-if test -n "$GHC" ; then
- AC_MSG_CHECKING([for ghc version])
- GHC_VERSION=`$GHC --numeric-version`
- AC_MSG_RESULT([$GHC_VERSION])
-fi
-AC_SUBST(GHC_VERSION)
# Work out value of __GLASGOW_HASKELL__
if test -n "$GHC" ; then
@@ -113,113 +97,46 @@
fi
AC_SUBST(GLASGOW_HASKELL)
-dnl ** quote char breaks sed
-changequote(, )dnl
-MAJOR=`echo "$GHC_VERSION" | sed 's/^\([^\.]*\)\.\([^\.]*\).*/\1/'`
-MINOR=`echo "$GHC_VERSION" | sed 's/^\([^\.]*\)\.\([^\.]*\).*/\2/'`
-changequote([, ])dnl
-
-if test "$MAJOR" -lt "6"; then
- AC_MSG_ERROR(Found major $MAJOR. You need a ghc version >= 6.2) ;
+# find path to GHC libs, for runtime_loader
+if test -n "$GHC" ; then
+ AC_MSG_CHECKING([for ghc library directory])
+ GHC_LIB_PATH=`$GHC --print-libdir`
+ AC_MSG_RESULT([$GHC_LIB_PATH])
fi
-if test "$MINOR" -lt "2"; then
- AC_MSG_ERROR(You need a ghc version >= 6.2) ;
-fi
-
-#Allow plugins to be built with Cabal libraries
-AC_ARG_ENABLE(cabal,
- [ --enable-cabal Enable use of Cabal packages in pluggable-1-branch
- of GHC],
- [ CABAL=1 ],
- [ CABAL=0 ])
-
-# used by the Makefile`s to alter dependencies.
-if test "$MAJOR" -ge "6" -a "$MINOR" -ge "4"; then
- CABAL=1
-fi
-
-AC_SUBST(CABAL)
+AC_DEFINE_UNQUOTED(GHC_LIB_PATH, "$GHC_LIB_PATH", [Path to ghc libraries])
# Allow a debugging version of hs-plugins to be built
AC_ARG_ENABLE(debug,
[ --enable-debug Enable a debug version of hs-plugins to be built],
- [ DEBUG_OPTS=-DDEBUG ],
- [ DEBUG_OPTS= ])
+ [
+ AC_DEFINE_UNQUOTED(DEBUG, [1], [Defined if a debugging version is to be built]) ],
+ [ : ])
-AC_SUBST(DEBUG_OPTS)
+# Allow a debugging version of hs-plugins to be built
+AC_ARG_ENABLE(hsx,
+ [ --enable-hsx Enable a debug version of hs-plugins to be built],
+ [ HASKELL_SRC=haskell-src-exts ;
+ AC_DEFINE_UNQUOTED(WITH_HSX, [1],
+ [Defined if hs-plugins is to be built with Niklas Broberg's HSX parser]) ],
+ [ HASKELL_SRC=haskell-src ])
-# Search for ghc-pkg
-AC_MSG_CHECKING([for ghc-pkg])
-ghc_pkg_guess=`echo $GHC | sed 's,ghc\(@<:@^/\\@:>@*\)$,ghc-pkg\1,'`
-if "$ghc_pkg_guess" -l > /dev/null 2>&1; then
- matching_ghc_pkg=$ghc_pkg_guess
-else
- matching_ghc_pkg=no
-fi
-if test x"$matching_ghc_pkg" = xno; then
- AC_CHECK_PROG([GHCPKG], [ghc-pkg])
- if test -z "$GHCPKG" ; then
- AC_MSG_ERROR([ghc-pkg not found.])
- fi
-else
- GHCPKG=$matching_ghc_pkg
-fi
-AC_MSG_RESULT([$GHCPKG])
-AC_SUBST(GHCPKG)
-
-AC_CHECK_PROG(HADDOCK,haddock,haddock)
-if test -z "$HADDOCK" ; then
- AC_MSG_WARN(You need Haddock if you want developer documentation)
-fi
-
-AC_CHECK_PROG(HAPPY,happy,happy)
-if test -z "$HAPPY" ; then
- AC_MSG_WARN(If you change or remove the parser you'll need Happy)
-fi
-
-AC_CHECK_PROG(ALEX,alex,alex)
-if test -z "$ALEX" ; then
- AC_MSG_WARN(If you change or remove the lexer files you'll need alex)
-fi
-
-AC_CHECK_PROG(LD,ld,ld)
-if test -z "$LD" ; then
- AC_MSG_WARN(You need ld -export-dynamic)
-fi
-
-AC_CHECK_PROG(AR,ar,ar)
-if test -z "$AR" ; then
- AC_MSG_WARN(You need ar to build the library)
-fi
-
-AC_CHECK_PROG(RANLIB,ranlib,ranlib)
-if test -z "$RANLIB" ; then
- AC_MSG_WARN(You need randlib to build the library)
-fi
-
-AC_CHECK_PROG(RM,rm,rm)
-if test -z "$RM" ; then
- AC_MSG_WARN(You need rm!)
-fi
+AC_SUBST(HASKELL_SRC)
AC_CHECK_PROG(TEX,tex,tex)
if test -z "$TEX" ; then
- AC_MSG_WARN(You'll need tex if you wish to build the documentation)
+ AC_MSG_WARN(tex is needed to build some of the documentation)
fi
AC_CHECK_PROG(TEX2PAGE,tex2page,tex2page)
if test -z "$TEX2PAGE" ; then
- AC_MSG_WARN(You'll need tex2page if you wish to build the
- documentation: http://www.ccs.neu.edu/home/dorai/tex2page/tex2page-doc.html)
+ AC_MSG_WARN(tex2page is needed to build some of the documentation
+ http://www.ccs.neu.edu/home/dorai/tex2page/tex2page-doc.html)
fi
-AC_CHECK_FUNC(arc4random, [SYMS="$SYMS -DHAVE_ARC4RANDOM"])
-
-AC_SUBST(SYMS)
+AC_CHECK_FUNCS(arc4random)
AC_PROG_INSTALL
# System.Process uses cmd or command.com shell on Windows, doen't use Cygwin or MSYS shell
-AC_CONFIG_FILES(config.mk config.h examples/makewith/io/TestIO.conf examples/makewith/unsafeio/Unsafe.conf)
-
+AC_CONFIG_FILES([config.mk testsuite/makewith/io/TestIO.conf testsuite/makewith/unsafeio/Unsafe.conf])
AC_OUTPUT
Modified: packages/hs-plugins/trunk/debian/changelog
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/debian/changelog?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/debian/changelog (original)
+++ packages/hs-plugins/trunk/debian/changelog Sun Nov 11 15:51:38 2007
@@ -1,3 +1,9 @@
+hs-plugins (1.0~rc0-1) UNRELEASED; urgency=low
+
+ * (NOT RELEASED YET) New upstream release
+
+ -- Arjan Oosting <arjan at debian.org> Sun, 11 Nov 2007 16:48:31 +0100
+
hs-plugins (0.9.10-3.5~pre1) UNRELEASED; urgency=low
* debian/watch: uscan watch file added.
Modified: packages/hs-plugins/trunk/docs/hs-plugins.1
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/docs/hs-plugins.1?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/docs/hs-plugins.1 (original)
+++ packages/hs-plugins/trunk/docs/hs-plugins.1 Sun Nov 11 15:51:38 2007
@@ -1,4 +1,4 @@
-.TH HS-PLUGINS 1 2005-07-06 "hs-plugins version 0.9.10" "User Manual"
+.TH HS-PLUGINS 1 2005-12-27 "hs-plugins version 1.0" "User Manual"
.SH NAME
hs-plugins \- dynamic linker library for Haskell
@@ -12,7 +12,7 @@
of eval functions. Values exported by plugins are transparently
available to Haskell host applications, and bindings exist to use
Haskell plugins from at least C and Objective C programs. hs-plugins
-requires GHC 6.2.2 or later.
+requires GHC 6.4 or later.
.SH DOCUMENTATION
The hs-plugins user manual is distributed in html format, and may be
@@ -22,7 +22,7 @@
Bug reports, and any other feedback, should be sent to
Don Stewart <dons at cse.unsw.edu.au>
.SH COPYRIGHT
-Copyright \(co 2004-2005 Don Stewart
+Copyright \(co 2003-2005 Don Stewart
.PP
The hs-plugins library modules are distributed under the terms of the
LGPL.
Modified: packages/hs-plugins/trunk/docs/hs-plugins.tex
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/docs/hs-plugins.tex?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/docs/hs-plugins.tex (original)
+++ packages/hs-plugins/trunk/docs/hs-plugins.tex Sun Nov 11 15:51:38 2007
@@ -44,18 +44,18 @@
\medskip
%
{\htmlonly \textbf{Download \endhtmlonly
-\urlh{ftp://ftp.cse.unsw.edu.au/pub/users/dons/hs-plugins/hs-plugins-0.9.10.tar.gz}
- {version 0.9.10}}
+\urlh{ftp://ftp.cse.unsw.edu.au/pub/users/dons/hs-plugins/hs-plugins-1.0.tar.gz}
+ {version 1.0}}
%
\medskip
\hsplugins{} is a library for loading code written in Haskell into an
application at runtime, in the form of plugins. It also provides a
mechanism for (re-)compiling Haskell source at runtime. Thirdly, a
-combination of runtime compilation and dynamic loading provides a set
-of \code{eval} functions-- a form of runtime metaprogramming. Values
+combination of runtime compilation and dynamic loading provides a set of
+\code{eval} functions-- a form of runtime metaprogramming. Values
exported by Haskell plugins are transparently available to Haskell host
-applications, and bindings exist to use Haskell plugins from at least C
+applications, and bindings exist to use Haskell dynamically in C, Perl
and Objective C programs. \hsplugins{} requires GHC 6.4 or later.
\medskip
@@ -72,7 +72,7 @@
\item
Download the latest stable release:\\
-\url{ftp://ftp.cse.unsw.edu.au/pub/users/dons/hs-plugins/hs-plugins-0.9.10.tar.gz}
+\url{ftp://ftp.cse.unsw.edu.au/pub/users/dons/hs-plugins/hs-plugins-1.0.tar.gz}
\item
Darcs repository of the latest code:\\
@@ -107,19 +107,27 @@
\section{History}
\begin{itemize}
+ \item Jan 2006, v1.0
+ \begin{itemize}
+ \item Cabalised build system
+ \item Behave better on 64 bit platforms
+ \item Haddock documentation of the API.
+ \item A couple of bug fixes
+ \end{itemize}
+
\item June 2005, v0.9.10
\begin{itemize}
- \item Support for GHC 6.4, with help from Sean
- Seefried for the package.conf parser.
- \item Ported to Windows of various flavours thanks to Vivian McPhail and Shelarcy
- \item Removed posix and unix dependencies
- \item Now uses HSX parser, thanks to Niklas Broberg
- \item Extended load interface, thanks to Lemmih
- \item Source now in a darcs repository
- \item Supports building with GNU make -jN
- \item Simplified module hierarchy, moved under System.* namespace
- \item pdynload clarifications, thanks to Alistair Bayley
- \item Miscellaneous bug fixes
+ \item Support for GHC 6.4, with help from Sean
+ Seefried for the package.conf parser.
+ \item Ported to Windows of various flavours thanks to Vivian McPhail and Shelarcy
+ \item Removed posix and unix dependencies
+ \item Now uses HSX parser, thanks to Niklas Broberg
+ \item Extended load interface, thanks to Lemmih
+ \item Source now in a darcs repository
+ \item Supports building with GNU make -jN
+ \item Simplified module hierarchy, moved under System.* namespace
+ \item pdynload clarifications, thanks to Alistair Bayley
+ \item Miscellaneous bug fixes
\end{itemize}
\item February 2005, v0.9.8
@@ -287,10 +295,11 @@
the implementation of \code{eval}.
The \emph{evaluator}, \code{eval}, utilizes the loader and compilation
-manager. When passed a string of Haskell code, it compiles the string to
-object code, loads the result, and returns a Haskell value representing
-the compiled string to the caller. It can be considered a Haskell
-interpreter, implemented as a library.
+manager. When passed a string containing a Haskell expression, it
+compiles the string to object code, loads the result, and returns a
+Haskell value representing the compiled string to the caller. It can be
+considered a Haskell interpreter, implemented as a library, and can be
+used to embed Haskell evaluation facilities in an application.
\section{Dynamic Loader}
@@ -324,8 +333,8 @@
\scm{
data LoadStatus a
- = LoadSuccess Module a
- | LoadFailure Errors
+ = LoadSuccess Module a
+ | LoadFailure Errors
}
\end{quote}
%
@@ -352,8 +361,7 @@
\code{unload} or \code{reload}) with the symbol as a Haskell value. The
value returned must be given an explicit type signature, or provided
with appropriate type constraints such that GHC can determine the
-expected type returned by \code{load}, as the return type is notionally
-polymorphic.
+expected type returned by \code{load}.
\code{load\_} is provided for the common situation where no user-defined
package.conf files are required.
@@ -383,7 +391,6 @@
\code{dynload} is a safer form of \code{load}. It uses dynamic types
to perform a check on the value returned by \code{load} at runtime, to
ensure that it has the type the application expects it to have.
-\code{pdynload} is on average 7\% slower than an unchecked load.
In order to use \code{dynload}, the symbol the plugin exports must be
of type \code{AltData.Dynamic:Dynamic}. (See the \code{AltData} library
@@ -409,8 +416,8 @@
typechecker. This is a bit cumbersome. An alternative typesafe
\code{load} is available via the \code{pdynload} interface, which is
able to enforce the type of the plugin using GHC's type inference
-mechanism, and is not restricted in its expressiveness (at the cost of greater load
-times):
+mechanism, and is not restricted in its expressiveness (at the cost of
+greater load times):
\begin{quote}
\scm{
@@ -554,7 +561,7 @@
\begin{quote}
\scm{
do loadPackageWith "yi" ["yi.conf"]
- unloadPackage "yi"
+ unloadPackage "yi-0.1"
}
\end{quote}
@@ -760,12 +767,13 @@
\code{eval} takes a string, and a list of import module names, and
returns a \code{Maybe} value. \code{Nothing} means the code did not
-compile. \code{Just v} gives you \code{v}, the result of evaluating
-your code. It is interesting to note that \code{eval} has the type of
-an interpreter. The \code{Typeable} constraint is used to type check
-the evaluated code when it is loaded, using \code{dynload}.
-As usual, \code{eval\_} is a version of \code{eval} that lets you pass
-extra flags to ghc and to the dynamic loader.
+compile, or did not typecheck at its splice point. \code{Just v} gives
+you \code{v}, the result of evaluating your code. It is interesting to
+note that \code{eval} has the type of an interpreter. The
+\code{Typeable} constraint is used to type check the evaluated code when
+it is loaded, using \code{dynload}. As usual, \code{eval\_} is a
+version of \code{eval} that lets you pass extra flags to ghc and to the
+dynamic loader.
The existing \code{Data.Dynamic} library requires that only monomorphic
values are \code{Typeable}, so in order to evaluate polymorphic
@@ -894,64 +902,59 @@
}
\end{quote}
\end{itemize}
-\subsection{Foreign Eval}
-
-A preliminary binding to \code{eval} has been implemented to allow C
-(and Objective C) programs access to the evaluator. Foreign bindings
-to the compilation manager and dynamic loader are yet to be
-implemented, but shouldn't be too hard. An foreign binding to a
-Haskell module that wraps up calls to \code{make} and \code{load}
-would be fairly trivial.
-
-At the moment we have an ad-hoc binding to \code{eval}, so that C
-programmers who know the type of value that will be returned by
-Haskell can call the appropriate hook into the evaluator. If they get
-the type wrong, a nullPtr will be returned (so calling Haskell is
-still typesafe). The foreign bindings to \code{eval} all return
-\code{NULL} if an error occurred, otherwise a pointer to the value is
-returned.
-
-\begin{quote}
-\scm{
-foreign export ccall hs_eval_b :: CString -> IO (Ptr CInt)
-
-foreign export ccall hs_eval_c :: CString -> IO (Ptr CChar)
-
-foreign export ccall hs_eval_i :: CString -> IO (Ptr CInt)
-
-foreign export ccall hs_eval_s :: CString -> IO CString
-}
-\end{quote}
-
-An example C program for compiling and evaluating Haskell code at
-runtime follows. This program calculates a fibonacci number, returning
-it as a \code{CString} to the C program:
-%
-\begin{quote}
-\begin{verbatim}
-#include "EvalHaskell.h"
-#include <stdio.h>
-
-int main(int argc, char *argv[])
-{
- char *p;
- hs_init(&argc, &argv);
- p = hs_eval_s("show $ let fibs = 1:1:zipWith (+) fibs (tail fibs) in fibs !! 20");
- if (p != NULL)
- printf("%s\n",p);
- else
- printf("error in code\n");
- hs_exit();
- return 0;
-}
-\end{verbatim}
-\end{quote}
-
-\subsection{Notes}
-
-Be careful if you're calling eval from a forked thread. This can
-introduce races between the thread and the forked process used by eval
-to compile its code.
+% \subsection{Foreign Eval}
+%
+% A preliminary binding to \code{eval} has been implemented to allow C
+% (and Objective C) programs access to the evaluator. Foreign bindings
+% to the compilation manager and dynamic loader are yet to be
+% implemented, but shouldn't be too hard. An foreign binding to a
+% Haskell module that wraps up calls to \code{make} and \code{load}
+% would be fairly trivial.
+%
+% At the moment we have an ad-hoc binding to \code{eval}, so that C
+% programmers who know the type of value that will be returned by
+% Haskell can call the appropriate hook into the evaluator. If they get
+% the type wrong, a nullPtr will be returned (so calling Haskell is
+% still typesafe). The foreign bindings to \code{eval} all return
+% \code{NULL} if an error occurred, otherwise a pointer to the value is
+% returned.
+%
+% \begin{quote}
+% \scm{
+% foreign export ccall hs_eval_b :: CString -> IO (Ptr CInt)
+%
+% foreign export ccall hs_eval_c :: CString -> IO (Ptr CChar)
+%
+% foreign export ccall hs_eval_i :: CString -> IO (Ptr CInt)
+%
+% foreign export ccall hs_eval_s :: CString -> IO CString
+% }
+% \end{quote}
+%
+% An example C program for compiling and evaluating Haskell code at
+% runtime follows. This program calculates a fibonacci number, returning
+% it as a \code{CString} to the C program:
+% %
+% \begin{quote}
+% \begin{verbatim}
+% #include "EvalHaskell.h"
+% #include <stdio.h>
+%
+% int main(int argc, char *argv[])
+% {
+% char *p;
+% hs_init(&argc, &argv);
+% p = hs_eval_s("show $ let fibs = 1:1:zipWith (+) fibs (tail fibs) in fibs !! 20");
+% if (p != NULL)
+% printf("%s\n",p);
+% else
+% printf("error in code\n");
+% hs_exit();
+% return 0;
+% }
+% \end{verbatim}
+% \end{quote}
+%
\section{RTS Binding}
@@ -1656,7 +1659,7 @@
\begin{quote}
-Copyright 2004, Don Stewart - \url{http://www.cse.unsw.edu.au/~dons}
+Copyright 2003-5, Don Stewart - \url{http://www.cse.unsw.edu.au/~dons}
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
Modified: packages/hs-plugins/trunk/scripts/mkrelease.sh
URL: http://svn.debian.org/wsvn/pkg-haskell/packages/hs-plugins/trunk/scripts/mkrelease.sh?rev=794&op=diff
==============================================================================
--- packages/hs-plugins/trunk/scripts/mkrelease.sh (original)
+++ packages/hs-plugins/trunk/scripts/mkrelease.sh Sun Nov 11 15:51:38 2007
@@ -3,7 +3,7 @@
cd /tmp
rm -rf hs-plugins-0.9.10*
-darcs get --set-scripts-executable /home/dons/hs-plugins
+darcs get --partial --set-scripts-executable /home/dons/hs-plugins
cd hs-plugins
rm -rf _darcs
cd ..
More information about the Pkg-haskell-commits
mailing list