summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--dev-scheme/gauche/ChangeLog11
-rw-r--r--dev-scheme/gauche/files/gauche-0.9.1-bzip2-info.diff66
-rw-r--r--dev-scheme/gauche/files/gauche-0.9.1-list-queue.diff22
-rw-r--r--dev-scheme/gauche/files/gauche-0.9.1-number.diff38
-rw-r--r--dev-scheme/gauche/files/gauche-0.9.1-vminexact.diff23
-rw-r--r--dev-scheme/gauche/files/gauche-ext-ldflags.diff11
-rw-r--r--dev-scheme/gauche/files/gauche-rpath.diff10
-rw-r--r--dev-scheme/gauche/files/gauche-xz-info.diff31
-rw-r--r--dev-scheme/gauche/gauche-0.9.1.ebuild62
9 files changed, 273 insertions, 1 deletions
diff --git a/dev-scheme/gauche/ChangeLog b/dev-scheme/gauche/ChangeLog
index 68467267b717..4f52c0e15052 100644
--- a/dev-scheme/gauche/ChangeLog
+++ b/dev-scheme/gauche/ChangeLog
@@ -1,6 +1,15 @@
# ChangeLog for dev-scheme/gauche
# Copyright 1999-2011 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche/ChangeLog,v 1.26 2011/05/18 13:45:30 hattya Exp $
+# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche/ChangeLog,v 1.27 2011/05/18 14:11:11 hattya Exp $
+
+*gauche-0.9.1 (18 May 2011)
+
+ 18 May 2011; Akinori Hattori <hattya@gentoo.org> +gauche-0.9.1.ebuild,
+ +files/gauche-0.9.1-bzip2-info.diff, +files/gauche-0.9.1-list-queue.diff,
+ +files/gauche-0.9.1-number.diff, +files/gauche-0.9.1-vminexact.diff,
+ +files/gauche-ext-ldflags.diff, +files/gauche-rpath.diff,
+ +files/gauche-xz-info.diff:
+ new upstream release.
18 May 2011; Akinori Hattori <hattya@gentoo.org> -gauche-0.8.13.ebuild,
-gauche-0.9-r1.ebuild, files/gauche-gauche.m4.diff,
diff --git a/dev-scheme/gauche/files/gauche-0.9.1-bzip2-info.diff b/dev-scheme/gauche/files/gauche-0.9.1-bzip2-info.diff
new file mode 100644
index 000000000000..5cfe8d8264d0
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9.1-bzip2-info.diff
@@ -0,0 +1,66 @@
+From 49401e54747a1eb3e6d0ad684b01fb289f4fcce0 Mon Sep 17 00:00:00 2001
+From: Shiro Kawai <shiro@acm.org>
+Date: Fri, 18 Feb 2011 23:28:47 +0000
+Subject: support bzip2-ed info
+
+
+diff --git a/lib/gauche/interactive/info.scm b/lib/gauche/interactive/info.scm
+index fa27a5a..926473c 100644
+--- a/lib/gauche/interactive/info.scm
++++ b/lib/gauche/interactive/info.scm
+@@ -83,7 +83,8 @@
+ :paths paths
+ :pred (lambda (p)
+ (or (file-is-readable? p)
+- (file-is-readable? #`",|p|.gz"))))
++ (file-is-readable? #`",|p|.gz")
++ (file-is-readable? #`",|p|.bz2"))))
+ (errorf "couldn't find info file ~s in paths: ~s" *info-file* paths))
+ ))
+
+diff --git a/lib/text/info.scm b/lib/text/info.scm
+index 4fdc8f5..b433d66 100644
+--- a/lib/text/info.scm
++++ b/lib/text/info.scm
+@@ -62,25 +62,27 @@
+
+ ;; Find gunzip location
+ (define gunzip (find-file-in-paths "gunzip"))
++(define bzip2 (find-file-in-paths "bzip2"))
+
+ ;; Read an info file FILE, and returns a list of strings splitted by ^_ (#\x1f)
+-;; If FILE is not found, look for gzipped one (FILE.gz) and decompress it.
++;; If FILE is not found, look for compressed one.
+ (define (read-info-file-split file opts)
+ (define (with-input-from-info thunk)
+- (cond ((file-exists? file)
+- (with-input-from-file file thunk))
+- ((file-exists? #`",|file|.gz")
+- (with-input-from-process #`",gunzip -c ,file" thunk))
+- (else
+- (error "can't find info file" file))))
++ (cond [(file-exists? file)
++ (with-input-from-file file thunk)]
++ [(and gunzip (file-exists? #`",|file|.gz"))
++ (with-input-from-process #`",gunzip -c ,file" thunk)]
++ [(and bzip2 (file-exists? #`",|file|.bz2"))
++ (with-input-from-process #`",bzip2 -c -d ,|file|.bz2" thunk)]
++ [else (error "can't find info file" file)]))
+ (with-input-from-info
+ (lambda ()
+- (let loop ((c (skip-while (char-set-complement #[\x1f])))
+- (r '()))
++ (let loop ([c (skip-while (char-set-complement #[\x1f]))]
++ [r '()])
+ (if (eof-object? c)
+ (reverse! r)
+- (let* ((head (next-token #[\x1f\n] '(#[\x1f\n] *eof*)))
+- (body (next-token #[\n] '(#[\x1f] *eof*))))
++ (let* ([head (next-token #[\x1f\n] '(#[\x1f\n] *eof*))]
++ [body (next-token #[\n] '(#[\x1f] *eof*))])
+ (loop (read-char) (acons head body r)))))))
+ )
+
+--
+1.7.3.4
+
diff --git a/dev-scheme/gauche/files/gauche-0.9.1-list-queue.diff b/dev-scheme/gauche/files/gauche-0.9.1-list-queue.diff
new file mode 100644
index 000000000000..80fe6bf2f99d
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9.1-list-queue.diff
@@ -0,0 +1,22 @@
+From 9dd79566fbff234f43cbc7b01078fd942f9fb31a Mon Sep 17 00:00:00 2001
+From: Shiro Kawai <shiro@acm.org>
+Date: Wed, 22 Dec 2010 08:55:00 +0000
+Subject: fix list->queue bug
+
+
+diff --git a/ext/util/queue.scm b/ext/util/queue.scm
+index 0f35361..12eb88d 100644
+--- a/ext/util/queue.scm
++++ b/ext/util/queue.scm
+@@ -257,7 +257,7 @@
+ (Q_LENGTH q) len)))
+ )
+
+-(define (list->queue lis :optional (class <queue>) :rest (initargs '()))
++(define (list->queue lis :optional (class <queue>) :rest initargs)
+ (rlet1 q (apply make class initargs)
+ (%queue-set-content! q (list-copy lis))))
+
+--
+1.7.3.4
+
diff --git a/dev-scheme/gauche/files/gauche-0.9.1-number.diff b/dev-scheme/gauche/files/gauche-0.9.1-number.diff
new file mode 100644
index 000000000000..53f71172b2ff
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9.1-number.diff
@@ -0,0 +1,38 @@
+From da6fc0f158fa9c76e5df675f57b57aa8c7a4b1b7 Mon Sep 17 00:00:00 2001
+From: Shiro Kawai <shiro@acm.org>
+Date: Wed, 2 Feb 2011 14:35:21 +0000
+Subject: correct error estimation of floating point number reader
+
+
+diff --git a/src/number.c b/src/number.c
+index 9a7d8f8..d121edd 100644
+--- a/src/number.c
++++ b/src/number.c
+@@ -3543,6 +3543,7 @@ static double algorithmR(ScmObj f, int e, double z)
+ case -1: /* d2 < y */
+ if (Scm_NumCmp(m, SCM_2_52) == 0
+ && sign_d < 0
++ && k > -1074
+ && Scm_NumCmp(Scm_Ash(d2, 1), y) > 0) {
+ goto prevfloat;
+ } else {
+diff --git a/test/number.scm b/test/number.scm
+index d397630..eb6d7eb 100644
+--- a/test/number.scm
++++ b/test/number.scm
+@@ -270,6 +270,12 @@
+ (test* "flonum reader (minimum denormalized number -5.0e-324)" #t
+ (let1 x (- (expt 2.0 -1074))
+ (= x (string->number (number->string x)))))
++
++;; This hanged in 0.9.1. See Jens Thiele's message in gauche-devel
++;; in Feb. 2011.
++(test* "flonum reader (minimum normalized number)" #t
++ (= (expt 2.0 (- 52 1074))
++ (string->number "2.2250738585072012e-308")))
+
+
+ (test* "padding" '(10.0 #t) (flonum-test '1#))
+--
+1.7.3.4
+
diff --git a/dev-scheme/gauche/files/gauche-0.9.1-vminexact.diff b/dev-scheme/gauche/files/gauche-0.9.1-vminexact.diff
new file mode 100644
index 000000000000..afdfd0a3043b
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-0.9.1-vminexact.diff
@@ -0,0 +1,23 @@
+From e1139a7ea5fea68520f3b41904bf60093cd6ba1a Mon Sep 17 00:00:00 2001
+From: Shiro Kawai <shiro@acm.org>
+Date: Sun, 27 Feb 2011 11:33:42 +0000
+Subject: fixed binary compatibility of Scm_VMExactToInexact
+
+
+diff --git a/src/gauche/number.h b/src/gauche/number.h
+index b85b72d..f08e631 100644
+--- a/src/gauche/number.h
++++ b/src/gauche/number.h
+@@ -319,7 +319,8 @@ SCM_EXTERN void Scm_SetDefaultEndian(ScmObj endian);
+ SCM_EXTERN ScmObj Scm_VMNegate(ScmObj obj);
+ SCM_EXTERN ScmObj Scm_VMReciprocal(ScmObj obj);
+ SCM_EXTERN ScmObj Scm_VMReciprocalInexact(ScmObj obj);
+-SCM_EXTERN ScmObj Scm_VMInexact(ScmObj obj);
++SCM_EXTERN ScmObj Scm_VMExactToInexact(ScmObj obj); /* during 0.9 for backward compatibility */
++#define Scm_VMInexact Scm_VMExactToInexact /* on 1.0, shorter name will be a real name */
+ SCM_EXTERN ScmObj Scm_VMAbs(ScmObj obj);
+ SCM_EXTERN ScmObj Scm_VMAdd(ScmObj arg1, ScmObj arg2);
+ SCM_EXTERN ScmObj Scm_VMSub(ScmObj arg1, ScmObj arg2);
+--
+1.7.3.4
+
diff --git a/dev-scheme/gauche/files/gauche-ext-ldflags.diff b/dev-scheme/gauche/files/gauche-ext-ldflags.diff
new file mode 100644
index 000000000000..a9de4114d2bf
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-ext-ldflags.diff
@@ -0,0 +1,11 @@
+--- Gauche-0.9.1.orig/ext/Makefile.ext.in
++++ Gauche-0.9.1/ext/Makefile.ext.in
+@@ -22,7 +22,7 @@
+ LIBS = $(XLIBS) @LIBS@
+ CFLAGS = @CFLAGS@ @SHLIB_SO_CFLAGS@ $(XCFLAGS)
+ CPPFLAGS = @CPPFLAGS@ $(XCPPFLAGS)
+-LDFLAGS = $(LOCAL_LFLAGS) $(XLDFLAGS) @SHLIB_SO_LDFLAGS@
++LDFLAGS = $(LOCAL_LFLAGS) $(XLDFLAGS) @LDFLAGS@ @SHLIB_SO_LDFLAGS@
+
+ # These are set by configure
+ DEFS = @DEFS@
diff --git a/dev-scheme/gauche/files/gauche-rpath.diff b/dev-scheme/gauche/files/gauche-rpath.diff
new file mode 100644
index 000000000000..ca76cb831234
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-rpath.diff
@@ -0,0 +1,10 @@
+--- Gauche-0.9.1.orig/configure.ac
++++ Gauche-0.9.1/configure.ac
+@@ -709,7 +709,6 @@
+ fi
+ if test "$RPATH_FLAG" != ""; then
+ RPATH_TMP=$RPATH_FLAG'`pwd`'
+- RPATH_REAL=$RPATH_FLAG'$(LIB_INSTALL_DIR)'
+ fi
+ fi
+ AC_SUBST(RPATH_FLAG)
diff --git a/dev-scheme/gauche/files/gauche-xz-info.diff b/dev-scheme/gauche/files/gauche-xz-info.diff
new file mode 100644
index 000000000000..809879c4cbd8
--- /dev/null
+++ b/dev-scheme/gauche/files/gauche-xz-info.diff
@@ -0,0 +1,31 @@
+--- Gauche-0.9.1.orig/lib/gauche/interactive/info.scm
++++ Gauche-0.9.1/lib/gauche/interactive/info.scm
+@@ -84,7 +84,8 @@
+ :pred (lambda (p)
+ (or (file-is-readable? p)
+ (file-is-readable? #`",|p|.gz")
+- (file-is-readable? #`",|p|.bz2"))))
++ (file-is-readable? #`",|p|.bz2")
++ (file-is-readable? #`",|p|.xz"))))
+ (errorf "couldn't find info file ~s in paths: ~s" *info-file* paths))
+ ))
+
+--- Gauche-0.9.1.orig/lib/text/info.scm
++++ Gauche-0.9.1/lib/text/info.scm
+@@ -63,6 +63,7 @@
+ ;; Find gunzip location
+ (define gunzip (find-file-in-paths "gunzip"))
+ (define bzip2 (find-file-in-paths "bzip2"))
++(define xz (find-file-in-paths "xz"))
+
+ ;; Read an info file FILE, and returns a list of strings splitted by ^_ (#\x1f)
+ ;; If FILE is not found, look for compressed one.
+@@ -74,6 +75,8 @@
+ (with-input-from-process #`",gunzip -c ,file" thunk)]
+ [(and bzip2 (file-exists? #`",|file|.bz2"))
+ (with-input-from-process #`",bzip2 -c -d ,|file|.bz2" thunk)]
++ [(and xz (file-exists? #`",|file|.xz"))
++ (with-input-from-process #`",xz -c -d ,|file|.xz" thunk)]
+ [else (error "can't find info file" file)]))
+ (with-input-from-info
+ (lambda ()
diff --git a/dev-scheme/gauche/gauche-0.9.1.ebuild b/dev-scheme/gauche/gauche-0.9.1.ebuild
new file mode 100644
index 000000000000..768c8067c982
--- /dev/null
+++ b/dev-scheme/gauche/gauche-0.9.1.ebuild
@@ -0,0 +1,62 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche/gauche-0.9.1.ebuild,v 1.1 2011/05/18 14:11:11 hattya Exp $
+
+EAPI="3"
+
+inherit autotools eutils
+
+IUSE="ipv6"
+
+MY_P="${P/g/G}"
+
+DESCRIPTION="A Unix system friendly Scheme Interpreter"
+HOMEPAGE="http://practical-scheme.net/gauche/"
+SRC_URI="mirror://sourceforge/gauche/${MY_P}.tgz"
+
+LICENSE="BSD"
+KEYWORDS="~amd64 ~ia64 ~ppc ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos"
+SLOT="0"
+S="${WORKDIR}/${MY_P}"
+
+DEPEND="sys-libs/gdbm"
+RDEPEND="${DEPEND}"
+
+src_prepare() {
+
+ epatch "${FILESDIR}"/${PN}-rpath.diff
+ epatch "${FILESDIR}"/${PN}-gauche.m4.diff
+ epatch "${FILESDIR}"/${PN}-ext-ldflags.diff
+ epatch "${FILESDIR}"/${P}-*.diff
+ epatch "${FILESDIR}"/${PN}-xz-info.diff
+ eautoconf
+
+}
+
+src_configure() {
+
+ econf \
+ $(use_enable ipv6) \
+ --enable-multibyte=utf8 \
+ --with-slib="${EPREFIX}"/usr/share/slib
+
+}
+
+src_compile() {
+
+ emake -j1 || die
+
+}
+
+src_test() {
+
+ emake -j1 -s check || die
+
+}
+
+src_install() {
+
+ emake DESTDIR="${D}" install-pkg install-doc || die
+ dodoc AUTHORS ChangeLog HACKING README || die
+
+}