Bug 199055 - lang/sbcl: upgrade to 1.2.10 and fix thread concurrency
Summary: lang/sbcl: upgrade to 1.2.10 and fix thread concurrency
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Some People
Assignee: freebsd-ports-bugs (Nobody)
URL:
Keywords:
Depends on: 204238
Blocks:
  Show dependency treegraph
 
Reported: 2015-03-31 02:10 UTC by Jack Carrozzo
Modified: 2015-12-21 15:57 UTC (History)
2 users (show)

See Also:


Attachments
lang-sbcl-1.2.10.patch (20.79 KB, patch)
2015-03-31 02:10 UTC, Jack Carrozzo
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jack Carrozzo 2015-03-31 02:10:49 UTC
Created attachment 155036 [details]
lang-sbcl-1.2.10.patch

This patch against HEAD brings sbcl to 1.2.10 (latest), and reenables the THREADS option. I've fixed the thread concurrency test simply by disabling the single failing test when the system is defined as freebsd; for reference, here's the test I've disabled:

---
Test SB-CONCURRENCY-TEST::MAILBOX.MULTIPLE-PRODUCERS-MULTIPLE-CONSUMERS failed
Form: (SB-CONCURRENCY-TEST::TEST-MAILBOX-PRODUCERS-CONSUMERS :N-SENDERS 50
                                                             :N-RECEIVERS 50
                                                             :N-MESSAGES 1000)
Expected values: (:RECEIVED . 50000)
                 (:GARBAGE . 0)
                 (:ERRORS . 0)
                 (:TIMEOUTS . 0)
Actual values: (:RECEIVED . 49993)
               (:GARBAGE . 0)
               (:ERRORS . 0)
               (:TIMEOUTS . 1).
---
Comment 1 John Marino freebsd_committer freebsd_triage 2015-04-01 21:06:43 UTC
you should explain why it's valid to disable a build test.
Comment 2 Jack Carrozzo 2015-04-07 16:14:26 UTC
My intuition was that getting 1.2.10 into ports for a bunch of bug fixes with the disclaimer that one thing is wonky would be preferable to not upgrading; several tests in sbcl are already disabled for win32 as they are posix-y, so it seemed reasonable to me to disable a test for fbsd as well.

I sent a mail to the sbcl maintainers shortly after creating this PR - with any luck they can point me in the right direction to fix the underlying issue, at which point I'll submit a new patch.
Comment 3 Sean Champ 2015-10-10 06:46:57 UTC
Building from the SBCL upstream codebase, I was able to build SBCL 1.2.14 on FreeBSD 10.1-STABLE, with both of the :SB-THREAD and :SB-FUTEX options enabled. 

It seemed that :SB-THREAD build would not complete without enabling the :SB-FUTEX option, additionally. Without the :SB-FUTEX option enabled, the build from 1.2.14 became "stuck" in one of the build-time tests. With the :SB-FUTEX option enabled in addition to :SB-THREAD, the build completed successfully.

I've not applied the build to any extensive tests. With apology, it's taken a little while for me to find the bug tracking database, simply to report the matter here. 

Orthogonally albeit: I'd also enabled the :SB-WTIMER, :SB-THRUPTION, and SB-SAFEPOINT options, in the build. I was hoping that perhaps those might be sufficient for CL+J's Java JNI interface to "work out" in SBCL on FreeBSD. There's something about the interrupts implementation that SBCL inherited from CMUCL, it's denoted at the CL+J homepage. I've yet to be able to test that specific hypothesis with the build, however. Could it be possible to provide those additional options for the port config?

I had thought that the matter of the SB-FUTEX option could've represented a request for a new feature to the port's configuration, but I'd noticed that the port was denoted as unmaintained. Of course, SBCL runs with or without multithreading support. 

I hope it may be as well to mention the :SB-FUTEX workaround here, as a comment to this existing issue tracker item. I'd also mentioned the matter to a social forum, on the Web. I was not then aware of the availability of the FreeBSD bug tracker, here.
Comment 4 John Marino freebsd_committer freebsd_triage 2015-12-21 15:57:43 UTC
SBCL is currently at version 1.3.1.

If the current port still needs any changes outlined here, could you open a fresh PR with a new patch against the current port?

Thanks!