Opened 13 years ago

Closed 13 years ago

#135 closed defect (fixed)

ql:FEB2011:bordeaux-threads BORDEAUX-THREADS does not work

Reported by: Mark Evenson Owned by: Mark Evenson
Priority: major Milestone: 0.26
Component: libraries Version: 0.24
Keywords: bordeaux-threads quicklisp threads Cc:
Parent Tickets:

Description

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 BORDEAUX-THREADS in git and the version distributed with QuickLisp (the version of FEB2011 as of this writing).

Change History (12)

comment:1 Changed 13 years ago by Mark Evenson

Status: newaccepted

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:

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 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.

comment:2 in reply to:  1 ; Changed 13 years ago by Mark Evenson

Replying to 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.

comment:3 in reply to:  2 Changed 13 years ago by Mark Evenson

Replying to 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.

comment:4 in reply to:  1 Changed 13 years ago by Mark Evenson

Replying to 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.

comment:5 Changed 13 years ago by Mark Evenson

Resolution: fixed
Status: acceptedclosed

I seem to have now successfully brought my patches forward:

Use bordeaux-threads-abcl-20110301a.diff to patch BORDEAUX-THREADS git head.

Use quicklisp-bordeaux-threads-abcl-20110301a.diff to patch BORDEAUX-THREADS 0.8.0 as shipped with QuickLisp? FEB2011.

comment:6 Changed 13 years ago by Mark Evenson

Resolution: fixed
Status: closedreopened

comment:7 Changed 13 years ago by Mark Evenson

After further critique by Martin Simmons of the POSIX condition variables implementation, I have a new 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.

comment:8 Changed 13 years ago by Mark Evenson

The necessary patches have been committed to the BORDEAUX-THREADS repository, but hasn't made it to Quicklisp yet.

comment:9 in reply to:  8 Changed 13 years ago by Mark Evenson

Replying to 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

comment:10 Changed 13 years ago by Mark Evenson

Milestone: 0.250.26

comment:11 Changed 13 years ago by Mark Evenson

May 2011 Quicklisp still hasn't updated BORDEAUX-THREADS, so the patch is still necessary.

comment:12 Changed 13 years ago by Mark Evenson

Resolution: fixed
Status: reopenedclosed

BORDEAUX-THREADS-0.8.1 has been released. To be packaged in Quicklisp finally!

Note: See TracTickets for help on using tickets.