Arch Linux

Please read this before reporting a bug:
https://wiki.archlinux.org/title/Bug_reporting_guidelines

Do NOT report bugs when a package is just outdated, or it is in the AUR. Use the 'flag out of date' link on the package page, or the Mailing List.

REPEAT: Do NOT report bugs for outdated packages!
Tasklist

FS#1612 - SBCL does not include multithreading

Attached to Project: Arch Linux
Opened by Ari (iamtheari) - Sunday, 10 October 2004, 20:14 GMT
Last edited by Dale Blount (dale) - Monday, 11 October 2004, 13:11 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jason Chu (jason)
Architecture not specified
Severity Low
Priority Normal
Reported Version 0.7 Wombat
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Votes 0
Private No

Details

The SBCL 0.4.14-1 package is buitl without :SB-THREAD. This should be a simple thing to change before SBCL is compiled. On Linux, there doesn't seem to be a good reason not to include :SB-THREAD.
This task depends upon

Closed by  Paul Mattal (paul)
Tuesday, 05 April 2005, 18:10 GMT
Reason for closing:  Implemented
Comment by Ari (iamtheari) - Friday, 15 October 2004, 16:32 GMT
I took some time to look into the package. It would be easy enough to make a separate sbcl-mt package and make sbcl and sbcl-mt mutually conflicting.

Regardless of how this is done, here is how to enable :SB-THREAD:

In PKGBUILD's build() function, after cd $startdir/src/sbcl-$pkgver:
echo '(lambda (features)' > customize-target-features.lisp
echo ' (flet ((enable (x) (pushnew x features))' >> customize-target-features.lisp
echo ' (disable (x) (setf features (remove x features))))' >> customize-target-features.lisp
echo ' (enable :sb-thread)))' >> customize-target-features.lisp

Comment by Ari (iamtheari) - Friday, 15 October 2004, 16:37 GMT
On a side note, with the latest cmucl package, the -core option to lisp in the SBCL build script should no longer be necessary.
Comment by Jason Chu (jason) - Monday, 18 October 2004, 19:13 GMT
What are the down sides to enabling multi-threading?
Comment by Ari (iamtheari) - Monday, 18 October 2004, 19:23 GMT
I can't think of any major downsides. The format of the core file and FASL files changes slightly, so FASL files compiled with a previous version of the package that does not have multithreading might need to be recompiled. I can't say for certain whether there exist binary-only distributions of software that would be affected by this, but I think it highly unlikely.

I think Debian used to have separate sbcl and sbcl-mt packages, but evidently that is no longer the case, and the main sbcl package is multithreaded. I don't see any reason for Arch to perform the same experiment that Debian apparently did to answer this very question, but that's not my job to decide, so the option of a separate (and conflicting-with) package "sbcl-mt" is available.
Comment by Paul Mattal (paul) - Tuesday, 05 April 2005, 12:58 GMT
Hey Ari, can you attach a suggested PKGBUILD for sbcl with your proposed changes (+multithreaded -core)? It might help this get kicked out the door faster.

I agree with the assessment that if Debian can go with a single multithreaded one, it's probably good enough for us. Those guys regularly re-debate whether or not anal-retentive is hyphenated.
Comment by Ari (iamtheari) - Tuesday, 05 April 2005, 13:37 GMT
I uploaded the PKGBUILD that I just modified and tested. It should work, although the install.sh step initially failed (and I don't have time to test it again) because my SBCL_HOME was already set in my environment. That's why I added the bits before 'sh install.sh' on that line.

This should enable multithreading (:sb-thread) as well as remove the kludge regarding the previously broken cmucl package.
Comment by Paul Mattal (paul) - Tuesday, 05 April 2005, 13:55 GMT
I'll inspect this today, build and install it and see if it works. Then I'll send it along to Jason, unless he tells me to just commit it.
Comment by Paul Mattal (paul) - Tuesday, 05 April 2005, 15:28 GMT
Wow, what a build process. Good for hours of zoning and watching text scroll by.

I think something isn't quite right with install paths, though, because it seems to be producing a lot of stuff in /share, /bin, and /lib. I also verified that when I install the existing package, I have no /share directory.

I used your packagebuild exactly Ari, only I updated pkgrel to 2, and namcap reports:

[pjmattal@brahms sbcl]$ namcap sbcl-0.8.14-2.pkg.tar.gz
sbcl W: File (bin/) exists in a non-standard directory.
sbcl W: File (bin/sbcl) exists in a non-standard directory.
sbcl W: File (share/) exists in a non-standard directory.
sbcl W: File (share/doc/) exists in a non-standard directory.
sbcl W: File (share/doc/sbcl/) exists in a non-standard directory.
sbcl W: File (share/doc/sbcl/BUGS) exists in a non-standard directory.
sbcl W: File (share/doc/sbcl/NEWS) exists in a non-standard directory.
sbcl W: File (share/doc/sbcl/html/) exists in a non-standard directory.
sbcl W: File (share/doc/sbcl/SUPPORT) exists in a non-standard directory.
sbcl W: File (share/doc/sbcl/COPYING) exists in a non-standard directory.
sbcl W: File (share/doc/sbcl/CREDITS) exists in a non-standard directory.
sbcl W: File (share/man/) exists in a non-standard directory.
sbcl W: File (share/man/man1/) exists in a non-standard directory.
sbcl W: File (share/man/man1/sbcl.1) exists in a non-standard directory.
sbcl W: File (share/info/) exists in a non-standard directory.
sbcl W: Directory (lib/sbcl/sb-posix/test-lab/) is empty
sbcl W: Directory (lib/sbcl/site-systems/) is empty
sbcl W: Directory (share/doc/sbcl/html/) is empty
sbcl W: Directory (share/info/) is empty
sbcl W: Directory (usr/) is empty
sbcl W: Directory (usr/man/) is empty
sbcl W: Directory (usr/man/man1/) is empty

If you need more info to replicate this behavior, I can attach the full filelist I got and/or try to get you the binary package. Let me know, and submit a new PKGBUILD. I'd try to figure it out myself but I know only a very little about lisp. ;)
Comment by Ari (iamtheari) - Tuesday, 05 April 2005, 15:43 GMT
Yeah, it's a fun build process. And it does it twice. ;)

I don't know much about Arch's package management or build system. Note that I did not add the mkdir lines that create, for instance, usr/man/man1. Those were in the PKGBUILD when I first looked at it. I am going to rebuild it with a tweak and see what happens.

The problem I was having was that SBCL's install.sh script refuses to run if INSTALL_PATH and SBCL_HOME conflict.
Comment by Ari (iamtheari) - Tuesday, 05 April 2005, 16:06 GMT
Try the new PKGBUILD. It appears to have worked for me.
Comment by Paul Mattal (paul) - Tuesday, 05 April 2005, 17:01 GMT
This one is much better; all living in /usr now.

Jason, do you want to look at it or weigh in, or shall I drop in the new package? I'm using the second attached PKGBUILD verbatim, except with pkgrel = 2.

- P
Comment by Jason Chu (jason) - Tuesday, 05 April 2005, 17:04 GMT
Paul, I trust that you've covered everything that I would.

I've just been sitting here watching the traffic fly back and forth. And I'll just say I appreciate it.

Feel free to update the package.

Loading...