diff options
author | Akinori Hattori <hattya@gentoo.org> | 2012-06-02 07:57:21 +0000 |
---|---|---|
committer | Akinori Hattori <hattya@gentoo.org> | 2012-06-02 07:57:21 +0000 |
commit | c6064cf5f8fe201d2866c23fcc9bcea7b9890bc7 (patch) | |
tree | 38c4b94b74e3bdaecb624c68063e4ea909f55c8d /dev-scheme/gauche | |
parent | Revbump to install new root servers list (bug 248247) (diff) | |
download | gentoo-2-c6064cf5f8fe201d2866c23fcc9bcea7b9890bc7.tar.gz gentoo-2-c6064cf5f8fe201d2866c23fcc9bcea7b9890bc7.tar.bz2 gentoo-2-c6064cf5f8fe201d2866c23fcc9bcea7b9890bc7.zip |
new upstream release.
(Portage version: 2.1.10.49/cvs/Linux i686)
Diffstat (limited to 'dev-scheme/gauche')
-rw-r--r-- | dev-scheme/gauche/ChangeLog | 9 | ||||
-rw-r--r-- | dev-scheme/gauche/files/gauche-0.9.3.2-Makefile.diff | 52 | ||||
-rw-r--r-- | dev-scheme/gauche/files/gauche-0.9.3.3-gauche.threads.diff | 120 | ||||
-rw-r--r-- | dev-scheme/gauche/gauche-0.9.3.3.ebuild (renamed from dev-scheme/gauche/gauche-0.9.3.2.ebuild) | 8 |
4 files changed, 132 insertions, 57 deletions
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 <hattya@gentoo.org> -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 <hattya@gentoo.org> -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 <shiro@acm.org> -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 <shiro@acm.org> -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 <shiro@acm.org> +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.3.ebuild index fd458aa4ec7d..8a3062419fcd 100644 --- a/dev-scheme/gauche/gauche-0.9.3.2.ebuild +++ b/dev-scheme/gauche/gauche-0.9.3.3.ebuild @@ -1,10 +1,10 @@ # 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 $ +# $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 user +inherit autotools eutils MY_P="${P/g/G}" @@ -28,7 +28,7 @@ src_prepare() { epatch "${FILESDIR}"/${PN}-ext-ldflags.diff epatch "${FILESDIR}"/${PN}-xz-info.diff epatch "${FILESDIR}"/${PN}-rfc.tls.diff - epatch "${FILESDIR}"/${P}-Makefile.diff + epatch "${FILESDIR}"/${P}-gauche.threads.diff eautoconf } @@ -43,7 +43,7 @@ src_compile() { } src_test() { - HOME="$(egethome ${EUID})" emake -j1 -s check + emake -j1 -s check } src_install() { |