diff options
author | bjs <bjs@pkgsrc.org> | 2008-04-28 04:14:31 +0000 |
---|---|---|
committer | bjs <bjs@pkgsrc.org> | 2008-04-28 04:14:31 +0000 |
commit | 00f9b1350b12865678e4affb32057ecd96216b0d (patch) | |
tree | ec53ec1dcbb92724405eb6194b06c397e7a236ae /lang/gambc | |
parent | a319c565e9798d6f6cdd89ebea399ae3f53c6cab (diff) | |
download | pkgsrc-00f9b1350b12865678e4affb32057ecd96216b0d.tar.gz |
Import version 4.2.6 of the Gambit-C Scheme System.
Blurb:
Gambit-C includes a Scheme interpreter and a Scheme compiler which can
be used to build standalone executables. Because the compiler generates
portable C code it is fairly easy to port to any platform with a decent
C compiler.
The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme standards.
The full numeric tower is implemented, including: infinite precision
integers (bignums), rationals, inexact reals (floating point numbers),
and complex numbers. Gambit-C supports a number of extensions to the
standards including (non-exhaustively):
- an optimizing compiler
- with several powerful transformations (automatic function inlining,
partial evaluation, etc)
- that generates properly tail-recursive portable C code
- a scalable thread system that can handle millions of concurrent threads
- an I/O system fully integrated with the thread system that supports
regular files, ttys, sockets (client and server, with TCP or UDP),
directories, processes, and pipes
- an infix syntax extension (SIX) that allows mixing code in the
standard prefix syntax with code in a C-like syntax
- SRFIs 0, 4, 6, 8, 9, 18, 21, 22, 23, 27, 39
- a REPL/debugger with
- a continuation inspection facility (i.e. "backtrace")
- a single-stepping mode
- error messages with location of error (file, line, and column number)
- emacs compatible line-editing with history
- very efficient bignum implementation
- a foreign function interface for C
- a memory management system that grows and shrinks the heap based on
the program's needs
- a linker that builds standalone executables and shared libraries
- dynamic loading of compiled modules and libraries (supported on many
platforms)
- Unicode support for characters, strings, I/O and source code
- object finalization, pretty printing, keyword objects optional and
keyword parameters (with the syntax and semantics of DSSSL)
- configurable reader with control over case sensitivity
- write/read invariance of symbols, e.g. (string->symbol "B;123") => |B;123|
- write/read invariance of floating point numbers
- unhygienic macros and more!
Diffstat (limited to 'lang/gambc')
-rw-r--r-- | lang/gambc/DESCR | 12 | ||||
-rw-r--r-- | lang/gambc/Makefile | 78 | ||||
-rw-r--r-- | lang/gambc/PLIST | 39 | ||||
-rw-r--r-- | lang/gambc/buildlink3.mk | 21 | ||||
-rw-r--r-- | lang/gambc/distinfo | 6 | ||||
-rw-r--r-- | lang/gambc/hacks.mk | 14 | ||||
-rw-r--r-- | lang/gambc/patches/patch-aa | 28 | ||||
-rw-r--r-- | lang/gambc/version.mk | 10 |
8 files changed, 208 insertions, 0 deletions
diff --git a/lang/gambc/DESCR b/lang/gambc/DESCR new file mode 100644 index 00000000000..5f378d90bbc --- /dev/null +++ b/lang/gambc/DESCR @@ -0,0 +1,12 @@ +This package the Gambit-C Scheme programming system. Gambit-C +includes a Scheme interpreter and a Scheme compiler which can be used +to build standalone executables. Because the compiler generates +portable C code it is fairly easy to port to any platform with a +decent C compiler. + +The Gambit-C system conforms to the R4RS, R5RS and IEEE Scheme standards. +The full numeric tower is implemented, including: infinite precision +integers (bignums), rationals, inexact reals (floating point numbers), +and complex numbers. Gambit-C supports a number of extensions to the +standards. Please see the <http://gambit.uri.umontreal.ca/~gambit/wiki> +for more information: there is simply not enough room here to elaborate! diff --git a/lang/gambc/Makefile b/lang/gambc/Makefile new file mode 100644 index 00000000000..386c0434bae --- /dev/null +++ b/lang/gambc/Makefile @@ -0,0 +1,78 @@ +# $NetBSD: Makefile,v 1.1.1.1 2008/04/28 04:14:31 bjs Exp $ +# + +DISTNAME= gambc-${GAMBC_DIST_VERSION} +PKGNAME= gambc-${GAMBC_VERSION} +CATEGORIES= lang +MASTER_SITES= http://www.iro.umontreal.ca/~gambit/download/gambit/v4.2/source/ +EXTRACT_SUFX= .tgz + +MAINTAINER= bjs@NetBSD.org +HOMEPAGE= http://www.iro.umontreal.ca/~gambit/ +COMMENT= GambitC Scheme System + +PKG_DESTDIR_SUPPORT= user-destdir + +GNU_CONFIGURE= yes +USE_LANGUAGES= c c++ +USE_LIBTOOL= yes +USE_TOOLS+= gmake autoconf automake + +CONFIGURE_ARGS+= --enable-single-host +CONFIGURE_ARGS+= --enable-cplusplus +CONFIGURE_ARGS+= --enable-shared +### +### XXX On NetBSD/amd64 4.99.61, gcc had a resident memory size of over 384MB +### while building this and ultimately exhausted all 1GB of swap I had. +### See the documentation for more information. (This was due to using +### -fmodulo-sched, gcc 4.1.3). +### +CONFIGURE_ARGS+= --disable-gcc-opts + +INFO_FILES= yes +MAKE_FILE= makefile + +BUILD_TARGET+= bootstrap +TEST_TARGET= check + +CHECK_PORTABILITY_SKIP= prebuilt/*/* +DLOPEN_REQUIRE_PTHREADS=no + +.include "../../mk/bsd.prefs.mk" + +GAMBC_DIST_VERSION= ${GAMBC_VERSION:C|^.*|v&|:S|.|_|g} + +GAMBC_MAKE_FLAGS= prefix=${PREFIX} +GAMBC_MAKE_FLAGS+= includedir=${PREFIX}/include +GAMBC_MAKE_FLAGS+= bindir=${PREFIX}/bin +GAMBC_MAKE_FLAGS+= infodir=${PREFIX}/${PKGINFODIR} +GAMBC_MAKE_FLAGS+= libdir=${PREFIX}/lib/ +GAMBC_MAKE_FLAGS+= mandir=${PREFIX}/${PKGMANDIR} +GAMBC_MAKE_FLAGS+= docdir=${PREFIX}/share/doc/${PKGBASE} +GAMBC_MAKE_FLAGS+= infodir=${PREFIX}/${PKGINFODIR} +GAMBC_MAKE_FLAGS+= emacsdir=${PREFIX}/share/emacs/site-lisp + +MAKE_FLAGS+= ${GAMBC_MAKE_FLAGS} +INSTALL_MAKE_FLAGS+= ${GAMBC_MAKE_FLAGS:@.f.@\ + ${.f.:C|${PREFIX}|${DESTDIR}&|}\ + @:M*} + +SUBST_CLASSES+= build +SUBST_FILES.build= configure +SUBST_FILES.build+= makefile.in */makefile.in */*/makefile.in +SUBST_MESSAGE.build= Preparing build-time and installation configuration. +SUBST_SED.build= -e 's|v${GAMBC_DIST_VERSION}||' +SUBST_SED.build+= -e 's|@target_vendor@|The NetBSD Foundation, Inc.|g' +SUBST_STAGE.build= pre-configure +SUBST_VARS.build+= PACKAGE_SUBDIR PACKAGE_VERSION +SUBST_VARS.build+= PACKAGE_STRING + +PACKAGE_SUBDIR= # empty +PACKAGE_VERSION= ${PKGVERSION} +PACKAGE_STRING= ${${PKGBASE} ${PKGVERSION}:L} + +.include "version.mk" + +.include "../../mk/dlopen.buildlink3.mk" +.include "../../mk/termcap.buildlink3.mk" +.include "../../mk/bsd.pkg.mk" diff --git a/lang/gambc/PLIST b/lang/gambc/PLIST new file mode 100644 index 00000000000..ff303d6a548 --- /dev/null +++ b/lang/gambc/PLIST @@ -0,0 +1,39 @@ +@comment $NetBSD: PLIST,v 1.1.1.1 2008/04/28 04:14:31 bjs Exp $ +bin/gsc +bin/gsc-cc-o.bat +bin/gsc-script +bin/gsi +bin/gsi-script +bin/scheme-ieee-1178-1990 +bin/scheme-r4rs +bin/scheme-r5rs +bin/scheme-srfi-0 +bin/six +bin/six-script +include/gambit.h +info/gambit-c.info +lib/_eval#.scm +lib/_gambc.c +lib/_gambcgsc.c +lib/_gambcgsi.c +lib/_gambit#.scm +lib/_io#.scm +lib/_kernel#.scm +lib/_nonstd#.scm +lib/_num#.scm +lib/_repl#.scm +lib/_std#.scm +lib/_system#.scm +lib/_thread#.scm +lib/digest#.scm +lib/digest.scm +lib/gambit#.scm +lib/libgambc.so +lib/libgambcgsc.so +lib/libgambcgsi.so +lib/r4rs#.scm +lib/r5rs#.scm +share/doc/gambc/gambit-c.html +share/doc/gambc/gambit-c.pdf +share/doc/gambc/gambit-c.txt +@dirrm share/doc/gambc diff --git a/lang/gambc/buildlink3.mk b/lang/gambc/buildlink3.mk new file mode 100644 index 00000000000..b1dcd440b42 --- /dev/null +++ b/lang/gambc/buildlink3.mk @@ -0,0 +1,21 @@ +# $NetBSD: buildlink3.mk,v 1.1.1.1 2008/04/28 04:14:31 bjs Exp $ + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH}+ +GAMBC_BUILDLINK3_MK:= ${GAMBC_BUILDLINK3_MK}+ + +.if ${BUILDLINK_DEPTH} == "+" +BUILDLINK_DEPENDS+= gambc +.endif + +BUILDLINK_PACKAGES:= ${BUILDLINK_PACKAGES:Ngambc} +BUILDLINK_PACKAGES+= gambc +BUILDLINK_ORDER:= ${BUILDLINK_ORDER} ${BUILDLINK_DEPTH}gambc + +.if ${GAMBC_BUILDLINK3_MK} == "+" +BUILDLINK_API_DEPENDS.gambc+= gambc>=4.2.6 +BUILDLINK_PKGSRCDIR.gambc?= ../../lang/gambc +.endif # GAMBC_BUILDLINK3_MK + +.include "../../mk/dlopen.buildlink3.mk" + +BUILDLINK_DEPTH:= ${BUILDLINK_DEPTH:S/+$//} diff --git a/lang/gambc/distinfo b/lang/gambc/distinfo new file mode 100644 index 00000000000..23983de0ff3 --- /dev/null +++ b/lang/gambc/distinfo @@ -0,0 +1,6 @@ +$NetBSD: distinfo,v 1.1.1.1 2008/04/28 04:14:31 bjs Exp $ + +SHA1 (gambc-v4_2_6.tgz) = 2b6415a82d10113d5f6535f52da4718207c13c30 +RMD160 (gambc-v4_2_6.tgz) = 0d8a4f22a909b1014489db3ec9d545f46df3530e +Size (gambc-v4_2_6.tgz) = 14147053 bytes +SHA1 (patch-aa) = 4261aa36e1dbf3f818a851dd17a579521c1dac7d diff --git a/lang/gambc/hacks.mk b/lang/gambc/hacks.mk new file mode 100644 index 00000000000..c7d27dac9ea --- /dev/null +++ b/lang/gambc/hacks.mk @@ -0,0 +1,14 @@ +# $NetBSD: hacks.mk,v 1.1.1.1 2008/04/28 04:14:31 bjs Exp $ +### +.if !defined(GAMBC_HACKS_MK) +GAMBC_HACKS_MK= # empty +. include "../../mk/compiler.mk" +### +### It looks as if the developers don't think O2 is a win. Considering how +### much memory and time this package takes to build the more optimization +### is enabled, let's let the configure script do its job. +### +. if !empty(CC_VERSION:Mgcc-*) +BUILDLINK_TRANSFORM+= rm:-O[2-9s]* +. endif +.endif diff --git a/lang/gambc/patches/patch-aa b/lang/gambc/patches/patch-aa new file mode 100644 index 00000000000..d4b641d9a86 --- /dev/null +++ b/lang/gambc/patches/patch-aa @@ -0,0 +1,28 @@ +$NetBSD: patch-aa,v 1.1.1.1 2008/04/28 04:14:31 bjs Exp $ + +--- makefile.in.orig 2008-03-17 13:13:58.000000000 -0400 ++++ makefile.in +@@ -56,7 +56,7 @@ includedir=$(includedir) libdir=$(libdir + bindir=$(bindir) docdir=$(docdir) \ + infodir=$(infodir) emacsdir=$(emacsdir) + +-SUBDIRS = include lib gsi gsc bin misc doc tests examples prebuilt ++SUBDIRS = include lib gsi gsc bin doc tests examples + + RCFILES = README INSTALL.txt LICENSE-2.0.txt LGPL.txt \ + makefile.in configure.ac config.guess config.sub install-sh mkidirs \ +@@ -174,10 +174,10 @@ publish-release: fake_target + install-pre: + + install-post: all +- rm -f $(prefix)/current $(prefix)/current.lnk +- if test "@bat@" = ""; then \ +- (cd $(prefix) && $(LN_S) .$(PACKAGE_SUBDIR) current); \ +- fi ++# rm -f $(prefix)/current $(prefix)/current.lnk ++# if test "@bat@" = ""; then \ ++# (cd $(prefix) && $(LN_S) .$(PACKAGE_SUBDIR) current); \ ++# fi + + uninstall-pre: + diff --git a/lang/gambc/version.mk b/lang/gambc/version.mk new file mode 100644 index 00000000000..8751a2ce254 --- /dev/null +++ b/lang/gambc/version.mk @@ -0,0 +1,10 @@ +# $NetBSD: version.mk,v 1.1.1.1 2008/04/28 04:14:31 bjs Exp $ +### +.if !defined(GAMBC_VERSION_MK) +GAMBC_VERSION_MK= # empty +### +### The package version sets the distribution version. +### +GAMBC_VERSION= 4.2.6 +GAMBC_DIST_VERSION= ${GAMBC_VERSION:C|^.*|v&|:S|.|_|g} +.endif |