diff --git a/debian/README.Debian b/debian/README.Debian index 0a50b94..72fd8b1 100644 --- a/debian/README.Debian +++ b/debian/README.Debian @@ -1,8 +1,8 @@ Since version 2.2-1 I decided to drop the old packaging scheme with chicken -and chicken-dev packages and now we have a libchicken0 package, with runtime +and chicken-dev packages and now we have a libchickenX package, with runtime libs, a libchicken-dev package, with header and static libs and, finally, a chicken-bin package that contains the tools. -chicken-bin needs to depend on both libchicken0 (the compiler is linked against +chicken-bin needs to depend on both libchickenX (the compiler is linked against it) and on libchicken-dev to be able to compile scm files into C ones: I know that this is not a real common approach, but the alternative (merge -bin and -dev package) would be probably uglier because we will need to depend on both @@ -10,3 +10,8 @@ libpcre3 and libpcre3-dev! If you want to discuss a better approach feel free to contact me. Davide Puricelli + +I (Joerg Wittenberger's) am not an experienced debian package guru. I +changed only what I found really neccessary. Since pcre is no longer +a dependancy, please feel free to return or move forward to a better +packaging. diff --git a/debian/changelog b/debian/changelog index 28b97b5..3d593b3 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,33 @@ +chicken (4.5.6-0.2) unstable; urgency=low + + * New upstream version + + -- Joerg F. Wittenberger Thu, 24 Jul 2010 13:41:00 +0200 + +chicken (4.5.6-0.1) unstable; urgency=low + + * New upstream version + + -- Joerg F. Wittenberger Thu, 11 Jul 2010 16:39:00 +0200 + +chicken (4.5.2-0.1) unstable; urgency=low + + * New upstream version + + -- Joerg F. Wittenberger Thu, 11 Jun 2010 14:17:00 +0200 + +chicken (4.3.7-0.1) unstable; urgency=low + + * New upstream version + + -- Joerg F. Wittenberger Thu, 10 Mar 2009 21:24:00 +0200 + +chicken (4.3.5-0.1) unstable; urgency=low + + * New version + + -- Joerg F. Wittenberger Thu, 13 Feb 2009 14:08:00 +0200 + chicken (3.2.0-0.2) unstable; urgency=low * Added directory information to texi documentation file. diff --git a/debian/chicken-bin.install b/debian/chicken-bin.install index 06828da..a2845c2 100644 --- a/debian/chicken-bin.install +++ b/debian/chicken-bin.install @@ -1,3 +1,4 @@ usr/bin usr/share/chicken/*.scm usr/share/chicken/*.exports +var/lib/chicken/3/*.so diff --git a/debian/chicken-bin.manpages b/debian/chicken-bin.manpages index 157bea0..82996d9 100644 --- a/debian/chicken-bin.manpages +++ b/debian/chicken-bin.manpages @@ -1,6 +1,5 @@ csc.1 csi.1 chicken.1 -chicken-setup.1 chicken-profile.1 chicken-bug.1 diff --git a/debian/control b/debian/control index 5458843..d6fc674 100644 --- a/debian/control +++ b/debian/control @@ -3,7 +3,7 @@ Homepage: http://www.call-with-current-continuation.org/ Section: interpreters Priority: optional Maintainer: Davide Puricelli (evo) -Build-Depends: debhelper (>> 4.0.0), libpcre3-dev, texinfo +Build-Depends: debhelper (>> 4.0.0) Standards-Version: 3.7.3 Package: chicken-bin @@ -20,13 +20,12 @@ Description: A practical and portable Scheme system - compiler This package contains the compiler. -Package: libchicken3 +Package: libchicken5 Architecture: any Section: libs Priority: optional -Replaces: chicken, chicken-dev +Replaces: libchicken3 Depends: ${shlibs:Depends} -Conflicts: chicken, chicken-dev Description: A practical and portable Scheme system - runtime CHICKEN is a Scheme compiler which compiles a subset of R5RS into C. It uses the ideas presented in Baker's paper "Cheney on the MTA", and @@ -40,9 +39,8 @@ Package: libchicken-dev Architecture: any Section: libdevel Priority: optional -Conflicts: chicken, chicken-dev -Depends: libchicken3 (= ${binary:Version}), libpcre3-dev -Replaces: chicken, chicken-dev +Depends: libchicken5 (= ${binary:Version}) +Replaces: chicken-dev Description: A practical and portable Scheme system - development CHICKEN is a Scheme compiler which compiles a subset of R5RS into C. It uses the ideas presented in Baker's paper "Cheney on the MTA", and diff --git a/debian/copyright b/debian/copyright index 3d2ca52..00f0342 100644 --- a/debian/copyright +++ b/debian/copyright @@ -1,5 +1,8 @@ -This package was debianized by zhaoway on Mon, 21 Jan +This package was debianized by Jörg F. Wittenberger on Wed, 10 Mar +2010 21:40:17 +0200 +updating debianisation by zhaoway on Mon, 21 Jan 2002 20:40:17 +0800 + Davide Puricelli (evo) is the actual maintainer. It was downloaded from http://www.call-with-current-continuation.org @@ -8,7 +11,7 @@ Upstream Author: Felix L. Winkelmann . Copyright (c) 2000-2007, Felix L. Winkelmann -Copyright (c) 2008-2009, The Chicken Team +Copyright (c) 2008-2010, The Chicken Team All rights reserved. Redistribution and use in source and binary forms, with or without diff --git a/debian/rules b/debian/rules old mode 100644 new mode 100755 index ca04c72..64e5b1c --- a/debian/rules +++ b/debian/rules @@ -10,20 +10,18 @@ endif MAKE:=$(MAKE) PLATFORM=linux PREFIX=/usr -BINARYVERSION=3 +BINARYVERSION=5 build: build-stamp build-stamp: dh_testdir $(MAKE) \ - USE_HOST_PCRE=1 \ CFLAGS="$(CFLAGS)" \ PREFIX="$(PREFIX)" \ MANDIR="$(PREFIX)/share/man" \ INFODIR="$(PREFIX)/share/info" \ SHAREDIR="$(PREFIX)/share" \ - EGGDIR="/var/lib/chicken/$(BINARYVERSION)" \ - MAKEINFO_PROGRAM_OPTIONS="" \ + IEGGDIR="/usr/lib/chicken/$(BINARYVERSION)" \ HOSTNAME=debian touch build-stamp @@ -49,13 +47,11 @@ install: build # build system, but will not end up in the package. $(MAKE) \ install \ - USE_HOST_PCRE=1 \ PREFIX="$(CURDIR)/debian/tmp/usr" \ MANDIR="$(CURDIR)/debian/tmp/usr/share/man" \ INFODIR="$(CURDIR)/debian/tmp/usr/share/info" \ SHAREDIR="$(CURDIR)/debian/tmp/usr/share" \ - EGGDIR="$(CURDIR)/debian/tmp/var/lib/chicken/$(BINARYVERSION)" \ - MAKEINFO_PROGRAM_OPTIONS="" \ + IEGGDIR="$(CURDIR)/debian/tmp/usr/lib/chicken/$(BINARYVERSION)" \ HOSTNAME=debian binary-common: @@ -66,7 +62,7 @@ binary-common: # The asterisk in chicken.info* is necessary, because Debian makeinfo # is very different from the standard makeinfo, and it is incredibly # difficult to convince it to produce standalone Texinfo files. - dh_installinfo chicken.info* +# dh_installinfo chicken.info* dh_installchangelogs ChangeLog.* dh_install --sourcedir=debian/tmp dh_link @@ -77,7 +73,7 @@ endif dh_fixperms dh_makeshlibs -V dh_installdeb - dh_shlibdeps -l debian/libchicken3/usr/lib + dh_shlibdeps -l debian/libchicken5/usr/lib dh_gencontrol dh_md5sums dh_builddeb diff --git a/files.scm b/files.scm index 9fbc27d..2c1c167 100644 --- a/files.scm +++ b/files.scm @@ -259,7 +259,7 @@ EOF (if (absolute-pathname? dir) dir (##sys#string-append def-pds dir)) ) - file ext pds) ) ) ) + file ext def-pds) ) ) ) (define decompose-pathname (let ((string-match string-match)) diff --git a/library.scm b/library.scm index 26662c5..9111ebf 100644 --- a/library.scm +++ b/library.scm @@ -3917,7 +3917,7 @@ EOF q ; #9 quantum (##core#undefined) ; #10 specific #f ; #11 block object (type depends on blocking type) - '() ; #12 recipients (currently unused) + '() ; #12 recipients #f) ) ; #13 unblocked by timeout? (define ##sys#primordial-thread (##sys#make-thread #f 'running 'primordial ##sys#default-thread-quantum)) @@ -3933,17 +3933,6 @@ EOF #f ; #5 locked (##core#undefined) ) ) ; #6 specific -(define (##sys#abandon-mutexes thread) - (let ([ms (##sys#slot thread 8)]) - (unless (null? ms) - (##sys#for-each - (lambda (m) - (##sys#setislot m 2 #f) - (##sys#setislot m 4 #t) - (##sys#setislot m 5 #f) - (##sys#setislot m 3 '()) ) - ms) ) ) ) - (define (##sys#schedule) ((##sys#slot ##sys#current-thread 1))) (define (##sys#thread-yield!) diff --git a/scheduler.scm b/scheduler.scm index 4e86807..2065cba 100644 --- a/scheduler.scm +++ b/scheduler.scm @@ -34,7 +34,7 @@ ##sys#remove-from-ready-queue ##sys#unblock-threads-for-i/o ##sys#force-primordial ##sys#fdset-input-set ##sys#fdset-output-set ##sys#fdset-clear ##sys#fdset-select-timeout ##sys#fdset-restore - ##sys#clear-i/o-state-for-thread!) + ##sys#clear-i/o-state-for-thread! ##sys#abandon-mutexes) (not inline ##sys#interrupt-hook) (foreign-declare #< " s ", recipients: " (##sys#slot t 12)) (##sys#abandon-mutexes t) + (let ([blocked (##sys#slot t 11)]) + (cond + ((##sys#structure? blocked 'condition-variable) + (##sys#setslot blocked 2 (##sys#delq thread (##sys#slot blocked 2)))) + ((##sys#structure? blocked 'thread) + (##sys#setslot blocked 12 (##sys#delq thread (##sys#slot blocked 12))))) ) + (##sys#remove-from-timeout-list t) + (##sys#clear-i/o-state-for-thread! t) (##sys#setslot t 3 s) (##sys#setislot t 4 #f) (##sys#setislot t 11 #f) (##sys#setislot t 8 '()) - (##sys#remove-from-timeout-list t) (let ([rs (##sys#slot t 12)]) (unless (null? rs) (for-each @@ -461,7 +486,7 @@ EOF ;;; Unblock thread cleanly: (define (##sys#thread-unblock! t) - (when (eq? 'blocked (##sys#slot t 3)) + (when (or (eq? 'blocked (##sys#slot t 3)) (eq? 'sleeping (##sys#slot t 3))) (##sys#remove-from-timeout-list t) (set! ##sys#fd-list (let loop ([fdl ##sys#fd-list]) @@ -472,5 +497,4 @@ EOF (cons (##sys#slot a 0) (##sys#delq t (##sys#slot a 1)) ) (loop (##sys#slot fdl 1)) ) ) ) ) ) - (##sys#setislot t 12 '()) (##sys#thread-basic-unblock! t) ) ) diff --git a/srfi-18.scm b/srfi-18.scm index 48dd885..01e18e0 100644 --- a/srfi-18.scm +++ b/srfi-18.scm @@ -307,8 +307,7 @@ EOF (let* ([limitsup (pair? ms-and-t)] [limit (and limitsup (##sys#compute-time-limit (car ms-and-t)))] [threadsup (fx> (length ms-and-t) 1)] - [thread (and threadsup (cadr ms-and-t))] - [abd (##sys#slot mutex 4)] ) + [thread (and threadsup (cadr ms-and-t))] ) (when thread (##sys#check-structure thread 'thread 'mutex-lock!)) (##sys#call-with-current-continuation (lambda (return) @@ -317,7 +316,7 @@ EOF (##sys#setslot mutex 3 (##sys#append (##sys#slot mutex 3) (list ct))) (##sys#schedule) ) (define (check) - (when abd + (when (##sys#slot mutex 4) ; abandoned (return (##sys#signal (##sys#make-structure 'condition '(abandoned-mutex-exception) '()))) ) ) (dbg ct ": locking " mutex) (cond [(not (##sys#slot mutex 5)) @@ -344,6 +343,7 @@ EOF (##sys#setslot mutex 3 (##sys#delq ct (##sys#slot mutex 3))) (unless (##sys#slot ct 13) ; not unblocked by timeout (##sys#remove-from-timeout-list ct)) + (check) (##sys#setslot ct 8 (cons mutex (##sys#slot ct 8))) (##sys#setslot ct 11 #f) (##sys#setslot mutex 2 thread) @@ -353,7 +353,7 @@ EOF [else (##sys#setslot ct 3 'sleeping) (##sys#setslot ct 11 mutex) - (##sys#setslot ct 1 (lambda () (return #t))) + (##sys#setslot ct 1 (lambda () (check) (return #t))) (switch) ] ) ) ) ) ) ) ) (define mutex-unlock! @@ -363,15 +363,15 @@ EOF [cvar (and (pair? cvar-and-to) (car cvar-and-to))] [timeout (and (fx> (length cvar-and-to) 1) (cadr cvar-and-to))] ) (dbg ct ": unlocking " (mutex-name mutex)) - (when cvar - (##sys#check-structure cvar 'condition-variable 'mutex-unlock!)) + (when cvar (##sys#check-structure cvar 'condition-variable 'mutex-unlock!)) (##sys#call-with-current-continuation (lambda (return) (let ([waiting (##sys#slot mutex 3)] [limit (and timeout (##sys#compute-time-limit timeout))] ) (##sys#setislot mutex 4 #f) (##sys#setislot mutex 5 #f) - (##sys#setslot ct 8 (##sys#delq mutex (##sys#slot ct 8))) + (let ((t (##sys#slot mutex 2))) + (##sys#setslot t 8 (##sys#delq mutex (##sys#slot t 8)))) (when cvar (##sys#setslot cvar 2 (##sys#append (##sys#slot cvar 2) (##sys#list ct))) (##sys#setslot ct 11 cvar) @@ -468,7 +468,9 @@ EOF ((##sys#structure? blocked 'condition-variable) (##sys#setslot blocked 2 (##sys#delq thread (##sys#slot blocked 2)))) ((##sys#structure? blocked 'mutex) - (##sys#setslot blocked 3 (##sys#delq thread (##sys#slot blocked 3))))) + (##sys#setslot blocked 3 (##sys#delq thread (##sys#slot blocked 3)))) + ((##sys#structure? blocked 'thread) + (##sys#setslot blocked 12 (##sys#delq thread (##sys#slot blocked 12))))) (##sys#setslot thread 1 (lambda ()