#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------------------------------+--------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: new Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Keywords: bordeaux-threads quicklisp threads | ------------------------------------------------+--------------------------- [http://common-lisp.net/project/bordeaux-threads/ bordeaux-threads] fails with ABCL due to a number of reasons for which I am in progress of working through patches. This issue will track the status of these patches against the progress of those patches against both [http://common- lisp.net/gitweb?p=projects/bordeaux-threads/bordeaux-threads.git;a=summary BORDEAUX-THREADS in git] and [http://www.quicklisp.org/beta/ the version distributed with QuickLisp] (the version of FEB2011 as of this writing).
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: accepted Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+--------------------------------------------------- Changes (by mevenson):
* status: new => accepted
Comment:
A quick description of what I think is going on here:
http://slack.net/~evenson/abcl/bordeaux-threads-abcl-20110227a.diff contains the current version of my against the b-t git trunk.
The g-t trunk:
* [http://common-lisp.net/gitweb?p=projects/bordeaux-threads/bordeaux- threads.git;a=commitdiff;h=314e67cbe309c3b1b2e9a95f47c7c0a7fb8a52b7 fix the move of threads from EXT to THREADS]
* [http://common-lisp.net/gitweb?p=projects/bordeaux-threads/bordeaux- threads.git;a=commitdiff;h=ee279a45320762840efc3b3efc1b835e50c5f6fd gives THREAD-YIELD a reasonable value]
But this is not enough, as at some time in the past (???) we removed !ThreadLock.java which contained support for THREAD-LOCK and THREAD- UNLOCK, although we (BUG!) still autoload these symbols.
My patch then:
* removes the use of the built-in (and from what I can make of it really rather deprecated) condition variables implementation, substituting one based on the built-in JVM synchronization primitives
* provides a new implementation of the lock based on the [http://download.oracle.com/javase/6/docs/api/java/util/concurrent/locks/Reen... java.util.concurrent.locks.ReentrantLock]. This structure is general enough to implement both the recursive and non-recursive locks abstracted by the b-t interface. The b-t maintainer (Stellian) has critiqued the lack of proper guard against using these two types, which I have agreed need to be addressed in the code with more explicit checks.
With these patches, b-t passes all but one of its built-in tests.
There are style complaints on compilation that seem to indicate that the test suite is not being properly initialized.
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: accepted Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+---------------------------------------------------
Comment(by mevenson):
Replying to [comment:1 mevenson]:
But this is not enough, as at some time in the past (???) we removed
!ThreadLock.java which contained support for THREAD-LOCK and THREAD- UNLOCK, although we (BUG!) still autoload these symbols.
Erik found the removal at r12509 which--when examined--shows that these symbols have essentially had a null implementation since then, meaning that b-t has been badly borked with ABCL since July 2009.
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: accepted Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+---------------------------------------------------
Comment(by mevenson):
Replying to [comment:2 mevenson]:
Erik found the removal at r12509 which--when examined--shows that these
symbols have essentially had a null implementation since then, meaning that b-t has been badly borked with ABCL since July 2009.
err, that would be r12059.
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: accepted Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+---------------------------------------------------
Comment(by mevenson):
Replying to [comment:1 mevenson]:
But this is not enough, as at some time in the past (???) we removed
!ThreadLock.java which contained support for THREAD-LOCK and THREAD- UNLOCK, although we (BUG!) still autoload these symbols.
r13229 removed these symbols.
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: closed Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: fixed | Keywords: bordeaux-threads quicklisp threads ------------------------+--------------------------------------------------- Changes (by mevenson):
* status: accepted => closed * resolution: => fixed
Comment:
I seem to have now successfully brought my patches forward:
Use [http://slack.net/~evenson/abcl/bordeaux-threads-abcl-20110301a.diff bordeaux-threads-abcl-20110301a.diff] to patch BORDEAUX-THREADS git head.
Use [http://slack.net/~evenson/abcl/quicklisp-bordeaux-threads-abcl- 20110301a.diff quicklisp-bordeaux-threads-abcl-20110301a.diff] to patch BORDEAUX-THREADS 0.8.0 as shipped with QuickLisp FEB2011.
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: reopened Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+--------------------------------------------------- Changes (by mevenson):
* status: closed => reopened * resolution: fixed =>
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: reopened Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+---------------------------------------------------
Comment(by mevenson):
After further critique by Martin Simmons of the POSIX condition variables implementation, I have a new [http://detroit.slack.net/~evenson/abcl /bordeaux-threads-abcl-20110318a.diff bordeaux-threads-abcl- 20110318a.diff] patch against the BORDEAUX-THREADS git head.
And we'll leave this ticket open until we get an acceptable patch committed to that repository.
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: reopened Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+---------------------------------------------------
Comment(by mevenson):
The necessary patches have been committed to the BORDEAUX-THREADS repository, but hasn't made it to Quicklisp yet.
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: reopened Priority: major | Milestone: 0.25 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+---------------------------------------------------
Comment(by mevenson):
Replying to [comment:8 mevenson]:
The necessary patches have been committed to the BORDEAUX-THREADS
repository, but hasn't made it to Quicklisp yet.
Patch against the April 2011 Quicklisp installation is now available http://slack.net/~evenson/abcl/hunchentoot/quicklisp-bordeaux-threads- abcl-20110427a.diff
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: reopened Priority: major | Milestone: 0.26 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+--------------------------------------------------- Changes (by mevenson):
* milestone: 0.25 => 0.26
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: reopened Priority: major | Milestone: 0.26 Component: libraries | Version: 0.24 Resolution: | Keywords: bordeaux-threads quicklisp threads ------------------------+---------------------------------------------------
Comment(by mevenson):
May 2011 Quicklisp still hasn't updated BORDEAUX-THREADS, so the patch is still necessary.
#135: ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work ------------------------+--------------------------------------------------- Reporter: mevenson | Owner: mevenson Type: defect | Status: closed Priority: major | Milestone: 0.26 Component: libraries | Version: 0.24 Resolution: fixed | Keywords: bordeaux-threads quicklisp threads ------------------------+--------------------------------------------------- Changes (by mevenson):
* status: reopened => closed * resolution: => fixed
Comment:
BORDEAUX-THREADS-0.8.1 has been released. To be packaged in Quicklisp finally!
armedbear-ticket@common-lisp.net