From c6064cf5f8fe201d2866c23fcc9bcea7b9890bc7 Mon Sep 17 00:00:00 2001 From: Akinori Hattori Date: Sat, 2 Jun 2012 07:57:21 +0000 Subject: new upstream release. (Portage version: 2.1.10.49/cvs/Linux i686) --- dev-scheme/gauche/ChangeLog | 9 +- .../gauche/files/gauche-0.9.3.2-Makefile.diff | 52 --------- .../files/gauche-0.9.3.3-gauche.threads.diff | 120 +++++++++++++++++++++ dev-scheme/gauche/gauche-0.9.3.2.ebuild | 52 --------- dev-scheme/gauche/gauche-0.9.3.3.ebuild | 52 +++++++++ 5 files changed, 180 insertions(+), 105 deletions(-) delete mode 100644 dev-scheme/gauche/files/gauche-0.9.3.2-Makefile.diff create mode 100644 dev-scheme/gauche/files/gauche-0.9.3.3-gauche.threads.diff delete mode 100644 dev-scheme/gauche/gauche-0.9.3.2.ebuild create mode 100644 dev-scheme/gauche/gauche-0.9.3.3.ebuild (limited to 'dev-scheme/gauche') diff --git a/dev-scheme/gauche/ChangeLog b/dev-scheme/gauche/ChangeLog index fb76b2370ecd..1884c3911f02 100644 --- a/dev-scheme/gauche/ChangeLog +++ b/dev-scheme/gauche/ChangeLog @@ -1,6 +1,13 @@ # ChangeLog for dev-scheme/gauche # Copyright 1999-2012 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche/ChangeLog,v 1.36 2012/05/26 10:31:16 hattya Exp $ +# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche/ChangeLog,v 1.37 2012/06/02 07:57:21 hattya Exp $ + +*gauche-0.9.3.3 (02 Jun 2012) + + 02 Jun 2012; Akinori Hattori -gauche-0.9.3.2.ebuild, + -files/gauche-0.9.3.2-Makefile.diff, +gauche-0.9.3.3.ebuild, + +files/gauche-0.9.3.3-gauche.threads.diff: + new upstream release. 26 May 2012; Akinori Hattori -gauche-0.9.1.ebuild, -files/gauche-0.9.1-bzip2-info.diff, -files/gauche-0.9.1-list-queue.diff, diff --git a/dev-scheme/gauche/files/gauche-0.9.3.2-Makefile.diff b/dev-scheme/gauche/files/gauche-0.9.3.2-Makefile.diff deleted file mode 100644 index 399912b137ff..000000000000 --- a/dev-scheme/gauche/files/gauche-0.9.3.2-Makefile.diff +++ /dev/null @@ -1,52 +0,0 @@ -commit 809ed95496ff1d753f34161f28f549248124bb63 -Author: Shiro Kawai -Date: Sat May 12 14:47:15 2012 -1000 - - build fix when DESTDIR is used - ---- a/src/Makefile.in -+++ b/src/Makefile.in -@@ -415,10 +415,12 @@ INSTALL_DIRS = $(DESTDIR)$(HEADER_INSTALL_DIR) \ - @CROSS_COMPILING_no@GAUCHE_INSTALL = ./gosh -ftest $(srcdir)/gauche-install.in - @CROSS_COMPILING_yes@GAUCHE_INSTALL = gosh $(srcdir)/gauche-install.in - --install : install-core install-aux -+install : all install-dirs install-aux install-core - --install-core : all relink -+install-dirs : - $(MKINSTDIR) $(INSTALL_DIRS) -+ -+install-core : relink - $(INSTALL) $(INSTALL_LIBS) $(DESTDIR)$(LIB_INSTALL_DIR) - $(INSTALL) $(INSTALL_LIBS) $(DESTDIR)$(ARCH_INSTALL_DIR) - $(INSTALL) -m 555 $(INSTALL_BINS) $(DESTDIR)$(BIN_INSTALL_DIR) -@@ -429,7 +431,7 @@ install-core : all relink - $(INSTALL) $(srcdir)/gauche-init.scm $(DESTDIR)$(SCM_INSTALL_DIR) - $(POSTINSTALL) - --install-aux : install-core -+install-aux : - $(GAUCHE_INSTALL) -m 444 -S $(srcdir) $(INSTALL_HEADERS) $(DESTDIR)$(HEADER_INSTALL_DIR) - $(GAUCHE_INSTALL) -m 444 -S $(srcdir) $(INSTALL_SUBHEADERS) $(DESTDIR)$(HEADER_INSTALL_DIR)/gauche - $(GAUCHE_INSTALL) -m 444 -S $(srcdir) $(INSTALL_SCMS) $(DESTDIR)$(SCM_INSTALL_DIR) - -commit 0e669ec43bedce845d03c65a3bd1c233673e3fd6 -Author: Shiro Kawai -Date: Sun May 13 22:42:22 2012 -1000 - - Make sure install gauche-init.scm with mode 444 - -diff --git a/src/Makefile.in b/src/Makefile.in -index 485d2d0..7b74d53 100644 ---- a/src/Makefile.in -+++ b/src/Makefile.in -@@ -428,7 +428,7 @@ install-core : relink - @case `$(GAUCHE_CONFIG) --arch` in *-cygwin*|*-mingw*) \ - $(INSTALL) $(INSTALL_LIBS) $(DESTDIR)$(BIN_INSTALL_DIR);;\ - esac -- $(INSTALL) $(srcdir)/gauche-init.scm $(DESTDIR)$(SCM_INSTALL_DIR) -+ $(INSTALL) -m 444 $(srcdir)/gauche-init.scm $(DESTDIR)$(SCM_INSTALL_DIR) - $(POSTINSTALL) - - install-aux : diff --git a/dev-scheme/gauche/files/gauche-0.9.3.3-gauche.threads.diff b/dev-scheme/gauche/files/gauche-0.9.3.3-gauche.threads.diff new file mode 100644 index 000000000000..a44ee75b8d1a --- /dev/null +++ b/dev-scheme/gauche/files/gauche-0.9.3.3-gauche.threads.diff @@ -0,0 +1,120 @@ +commit 60d82dd56c15a533562cf28111af5d3365d5d354 +Author: Shiro Kawai +Date: Thu May 31 15:23:22 2012 -1000 + + Fixed thread-terminate! bug that SEGVs when applied on non-running threads + +--- a/ext/threads/test.scm ++++ b/ext/threads/test.scm +@@ -100,6 +100,18 @@ + (thread-terminate! t1) + (thread-join! t1)))) + ++;; this SEGVs on 0.9.3.3. test code from @cryks. ++(test* "thread termination before running" 'terminated ++ (let1 t1 (make-thread (^[] #f)) ++ (thread-terminate! t1) ++ (thread-state t1))) ++ ++(test* "thread termination while being stopped" 'terminated ++ (let1 t1 (thread-start! (make-thread (^[] (let loop () (loop))))) ++ (thread-stop! t1) ++ (thread-terminate! t1) ++ (thread-state t1))) ++ + ;;--------------------------------------------------------------------- + (test-section "thread and error") + +--- a/ext/threads/threads.c ++++ b/ext/threads/threads.c +@@ -432,36 +432,41 @@ ScmObj Scm_ThreadTerminate(ScmVM *target) + } + + (void)SCM_INTERNAL_MUTEX_LOCK(target->vmlock); +- do { +- /* This ensures only the first call of thread-terminate! on a thread +- is in effect. */ +- if (target->canceller == NULL) { +- target->canceller = vm; +- +- /* First try */ +- target->stopRequest = SCM_VM_REQUEST_TERMINATE; +- target->attentionRequest = TRUE; +- if (wait_for_termination(target)) break; +- +- /* Second try */ ++ if (target->state == SCM_VM_RUNNABLE || target->state == SCM_VM_STOPPED) { ++ do { ++ /* This ensures only the first call of thread-terminate! on a ++ thread is in effect. */ ++ if (target->canceller == NULL) { ++ target->canceller = vm; ++ ++ /* First try */ ++ target->stopRequest = SCM_VM_REQUEST_TERMINATE; ++ target->attentionRequest = TRUE; ++ if (wait_for_termination(target)) break; ++ ++ /* Second try */ ++ SCM_ASSERT(target->thread); + #if defined(GAUCHE_USE_PTHREADS) + # if defined(GAUCHE_PTHREAD_SIGNAL) +- pthread_kill(target->thread, GAUCHE_PTHREAD_SIGNAL); ++ pthread_kill(target->thread, GAUCHE_PTHREAD_SIGNAL); + # endif /*defined(GAUCHE_PTHREAD_SIGNAL)*/ + #elif defined(GAUCHE_USE_WTHREADS) +- /* TODO: implement signal mechanism using an event */ ++ /* TODO: implement signal mechanism using an event */ + #endif /* defined(GAUCHE_USE_WTHREADS) */ +- if (wait_for_termination(target)) break; ++ if (wait_for_termination(target)) break; + +- /* Last resort */ +- thread_cleanup_inner(target); ++ /* Last resort */ ++ thread_cleanup_inner(target); + #if defined(GAUCHE_USE_PTHREADS) +- pthread_cancel(target->thread); ++ pthread_cancel(target->thread); + #elif defined(GAUCHE_USE_WTHREADS) +- TerminateThread(target->thread, 0); ++ TerminateThread(target->thread, 0); + #endif +- } +- } while (0); ++ } ++ } while (0); ++ } ++ /* target either is terminated or hasn't been run */ ++ target->state = SCM_VM_TERMINATED; + (void)SCM_INTERNAL_MUTEX_UNLOCK(target->vmlock); + return SCM_UNDEFINED; + } +--- a/test/control.scm ++++ b/test/control.scm +@@ -72,7 +72,7 @@ + ;; + + (cond-expand +- [gauche.sys.pthreads ++ [gauche.sys.threads + (test-section "control.thread-pool") + (use control.thread-pool) + (test-module 'control.thread-pool) +@@ -173,7 +173,15 @@ + (let1 xjob (add-job! pool work) + (terminate-all! pool :force-timeout 0.05) + (job-status xjob)))) +- ] ++ ++ ;; This SEGVs on 0.9.3.3 (test code by @cryks) ++ (test* "thread pool termination" 'terminated ++ (let ([t (thread-start! (make-thread (cut undefined)))] ++ [pool (make-thread-pool 10)]) ++ (terminate-all! pool) ++ (thread-terminate! t) ++ (thread-state t))) ++ ] ; gauche.sys.pthreads + [else]) + + (test-end) diff --git a/dev-scheme/gauche/gauche-0.9.3.2.ebuild b/dev-scheme/gauche/gauche-0.9.3.2.ebuild deleted file mode 100644 index fd458aa4ec7d..000000000000 --- a/dev-scheme/gauche/gauche-0.9.3.2.ebuild +++ /dev/null @@ -1,52 +0,0 @@ -# Copyright 1999-2012 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche/gauche-0.9.3.2.ebuild,v 1.1 2012/05/26 10:04:15 hattya Exp $ - -EAPI="4" - -inherit autotools eutils user - -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" -SLOT="0" -KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" -IUSE="ipv6 test" - -RDEPEND="sys-libs/gdbm" -DEPEND="${RDEPEND} - test? ( dev-libs/openssl )" -S="${WORKDIR}/${MY_P}" - -src_prepare() { - epatch "${FILESDIR}"/${PN}-rpath.diff - epatch "${FILESDIR}"/${PN}-gauche.m4.diff - epatch "${FILESDIR}"/${PN}-ext-ldflags.diff - epatch "${FILESDIR}"/${PN}-xz-info.diff - epatch "${FILESDIR}"/${PN}-rfc.tls.diff - epatch "${FILESDIR}"/${P}-Makefile.diff - eautoconf -} - -src_configure() { - econf \ - $(use_enable ipv6) \ - --with-slib="${EPREFIX}"/usr/share/slib -} - -src_compile() { - emake -j1 -} - -src_test() { - HOME="$(egethome ${EUID})" emake -j1 -s check -} - -src_install() { - emake DESTDIR="${D}" install-pkg install-doc - dodoc AUTHORS ChangeLog HACKING README -} diff --git a/dev-scheme/gauche/gauche-0.9.3.3.ebuild b/dev-scheme/gauche/gauche-0.9.3.3.ebuild new file mode 100644 index 000000000000..8a3062419fcd --- /dev/null +++ b/dev-scheme/gauche/gauche-0.9.3.3.ebuild @@ -0,0 +1,52 @@ +# Copyright 1999-2012 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/dev-scheme/gauche/gauche-0.9.3.3.ebuild,v 1.1 2012/06/02 07:57:21 hattya Exp $ + +EAPI="4" + +inherit autotools eutils + +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" +SLOT="0" +KEYWORDS="~amd64 ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~amd64-linux ~x86-linux ~x86-macos" +IUSE="ipv6 test" + +RDEPEND="sys-libs/gdbm" +DEPEND="${RDEPEND} + test? ( dev-libs/openssl )" +S="${WORKDIR}/${MY_P}" + +src_prepare() { + epatch "${FILESDIR}"/${PN}-rpath.diff + epatch "${FILESDIR}"/${PN}-gauche.m4.diff + epatch "${FILESDIR}"/${PN}-ext-ldflags.diff + epatch "${FILESDIR}"/${PN}-xz-info.diff + epatch "${FILESDIR}"/${PN}-rfc.tls.diff + epatch "${FILESDIR}"/${P}-gauche.threads.diff + eautoconf +} + +src_configure() { + econf \ + $(use_enable ipv6) \ + --with-slib="${EPREFIX}"/usr/share/slib +} + +src_compile() { + emake -j1 +} + +src_test() { + emake -j1 -s check +} + +src_install() { + emake DESTDIR="${D}" install-pkg install-doc + dodoc AUTHORS ChangeLog HACKING README +} -- cgit v1.2.3-65-gdbad