pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/lang/gambc Import version 4.2.6 of the Gambit-C Scheme...



details:   https://anonhg.NetBSD.org/pkgsrc/rev/c0cff6bc4587
branches:  trunk
changeset: 541910:c0cff6bc4587
user:      bjs <bjs%pkgsrc.org@localhost>
date:      Mon Apr 28 04:14:31 2008 +0000

description:
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:

 lang/gambc/DESCR            |  12 ++++++
 lang/gambc/Makefile         |  78 +++++++++++++++++++++++++++++++++++++++++++++
 lang/gambc/PLIST            |  39 ++++++++++++++++++++++
 lang/gambc/buildlink3.mk    |  21 ++++++++++++
 lang/gambc/distinfo         |   6 +++
 lang/gambc/hacks.mk         |  14 ++++++++
 lang/gambc/patches/patch-aa |  28 ++++++++++++++++
 lang/gambc/version.mk       |  10 +++++
 8 files changed, 208 insertions(+), 0 deletions(-)

diffs (240 lines):

diff -r 152f6a955c9e -r c0cff6bc4587 lang/gambc/DESCR
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gambc/DESCR  Mon Apr 28 04:14:31 2008 +0000
@@ -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 -r 152f6a955c9e -r c0cff6bc4587 lang/gambc/Makefile
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gambc/Makefile       Mon Apr 28 04:14:31 2008 +0000
@@ -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@localhost
+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 -r 152f6a955c9e -r c0cff6bc4587 lang/gambc/PLIST
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gambc/PLIST  Mon Apr 28 04:14:31 2008 +0000
@@ -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 -r 152f6a955c9e -r c0cff6bc4587 lang/gambc/buildlink3.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gambc/buildlink3.mk  Mon Apr 28 04:14:31 2008 +0000
@@ -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 -r 152f6a955c9e -r c0cff6bc4587 lang/gambc/distinfo
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gambc/distinfo       Mon Apr 28 04:14:31 2008 +0000
@@ -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 -r 152f6a955c9e -r c0cff6bc4587 lang/gambc/hacks.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gambc/hacks.mk       Mon Apr 28 04:14:31 2008 +0000
@@ -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 -r 152f6a955c9e -r c0cff6bc4587 lang/gambc/patches/patch-aa
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gambc/patches/patch-aa       Mon Apr 28 04:14:31 2008 +0000
@@ -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 -r 152f6a955c9e -r c0cff6bc4587 lang/gambc/version.mk
--- /dev/null   Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/gambc/version.mk     Mon Apr 28 04:14:31 2008 +0000
@@ -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



Home | Main Index | Thread Index | Old Index