[Sbcl-devel] sb-thread on ARM7 ?

184 views
Skip to first unread message

Jeff Cunningham

unread,
Dec 10, 2017, 3:39:59 PM12/10/17
to SBCL Devel-list
I just pulled the source for 1.4.2 and tried to build it
--with-sb-thread on an 4-core ARM 7 (RaspberryPi 2b). It failed almost
immediately saying threads weren't available on this platform. I want to
confirm if this is the case or if there's something else I need to do to
build SBCL with threads on this device. Here are the details on the device:

pi@Raspberry-12:~/src/lisp/sbcl-1.4.2 $ uname -a
Linux WebPlay-1 4.9.60-v7+ #1048 SMP Fri Nov 3 16:05:21 GMT 2017 armv7l
GNU/Linux

pi@Raspberry-12:~/src/lisp/sbcl-1.4.2 $ cat /proc/cpuinfo

processor       : 0
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 57.60
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4
idiva idivt
 vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 1
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 57.60
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4
idiva idivt
 vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 2
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 57.60
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4
idiva idivt
 vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

processor       : 3
model name      : ARMv7 Processor rev 5 (v7l)
BogoMIPS        : 57.60
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4
idiva idivt
 vfpd32 lpae evtstrm
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xc07
CPU revision    : 5

Hardware        : BCM2835
Revision        : a21041
Serial          : 00000000953a57ee

Thanks.

--Jeff

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Sbcl-devel mailing list
Sbcl-...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-devel

Stas Boukarev

unread,
Dec 10, 2017, 3:54:52 PM12/10/17
to Jeff Cunningham, SBCL Devel-list
You need an ARM64 for threads.

Jeff Cunningham

unread,
Dec 27, 2017, 3:04:18 PM12/27/17
to Stas Boukarev, SBCL Devel-list

FYI: I bought an ARM64 (RPi-3b) and still no threads in SBCL:

<snip upto>
SBCL is free software, provided as is, with absolutely no warranty.
It is mostly in the public domain; some portions are provided under
BSD-style licenses.  See the CREDITS and COPYING files in the
distribution for more information.
*
T
* While evaluating the form starting at line 225, column 0
  of #P"/home/pi/src/lisp/sbcl-1.4.2/src/cold/shared.lisp":
While evaluating the form starting at line 8, column 0
  of #P"/home/pi/src/lisp/sbcl-1.4.2/make-host-1.lisp":

debugger invoked on a SIMPLE-ERROR:
  Feature compatibility check failed, (":SB-THREAD not supported on selected architecture")
////

pi@WebPlay-1:~ $ uname -rvmo
4.9.59-v7+ #1047 SMP Sun Oct 29 12:19:23 GMT 2017 armv7l GNU/Linux
////

pi@WebPlay-1:~ $ cat /proc/cpuinfo
processor       : 0
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 1
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 2
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

processor       : 3
model name      : ARMv7 Processor rev 4 (v7l)
BogoMIPS        : 38.40
Features        : half thumb fastmult vfp edsp neon vfpv3 tls vfpv4 idiva idivt vfpd32 lpae evtstrm crc32

CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xd03
CPU revision    : 4

Hardware        : BCM2835
Revision        : a22082
Serial          : 000000006b799690

Regards,
--Jeff
--Jeff

(format t "~(~36r@~36r.~36r)~)" 42231320458 2575240748151138958 16438)

Stas Boukarev

unread,
Dec 27, 2017, 3:11:52 PM12/27/17
to Jeff Cunningham, SBCL Devel-list
ARMv7 is not ARM64, that would be ARMv8. While RPi 3 is 64-bit, the OS is 32-bit. Try finding a 64-bit one.

Eric Marsden

unread,
Dec 27, 2017, 3:23:24 PM12/27/17
to sbcl-...@lists.sourceforge.net
On 27/12/2017 21:11, Stas Boukarev wrote:
ARMv7 is not ARM64, that would be ARMv8. While RPi 3 is 64-bit, the OS is 32-bit. Try finding a 64-bit one.

It's possible to install 64-bit Debian on the rpi3, and SBCL works there, with threads (I haven't tested the thread support).

   https://github.com/bamarni/pi64

Cheers,
Eric

Jeff Cunningham

unread,
Dec 27, 2017, 5:07:43 PM12/27/17
to sbcl-...@lists.sourceforge.net

Thank you. I'll play around with it.

Regards,

--Jeff

------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot


_______________________________________________
Sbcl-devel mailing list
Sbcl-...@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sbcl-devel

Jeff Cunningham

unread,
Dec 29, 2017, 10:39:23 PM12/29/17
to Stas Boukarev, SBCL Devel-list

Just out of curiousity, what is the issue with threads in the ARM 7?  What would it take to make threads work? It can't be a kernel issue, the 32-bit OS I'm using uses them.

Regards,

--Jeff

(format t "~(~36r@~36r.~36r)~)" 42231320458 2575240748151138958 16438)

On 12/10/2017 12:54 PM, Stas Boukarev wrote:

Stas Boukarev

unread,
Dec 30, 2017, 5:39:03 AM12/30/17
to Jeff Cunningham, SBCL Devel-list
It would take somebody interested in doing that, who either knows how to do that or is willing to learn. 

Jeff Cunningham

unread,
Dec 30, 2017, 1:02:59 PM12/30/17
to Stas Boukarev, SBCL Devel-list

Well I thought it was obvious that I was interested because I asked. I don't know if I know how until I understand what the issues are, which is why I asked. I am always willing to learn, subject to the constraints of time.

--Jeff

(format t "~(~36r@~36r.~36r)~)" 42231320458 2575240748151138958 16438)

Stas Boukarev

unread,
Dec 31, 2017, 5:44:16 AM12/31/17
to Jeff Cunningham, SBCL Devel-list
I think that running SBCL on ARM32 is a waster of time, consequently I'm not doing any development which benefits the ARM32 backend.
Here's the commit with the ARM64 threading changes

Bruce O'Neel

unread,
Dec 31, 2017, 11:40:51 AM12/31/17
to Stas Boukarev, Jeff Cunningham, SBCL Devel-list
Hi,

Is it just slow, too limited in memory, or, ??

Thanks.

bruce

Stas Boukarev

unread,
Dec 31, 2017, 12:19:20 PM12/31/17
to bruce...@pckswarms.ch, SBCL Devel-list
Slow, few registers, no guaranteed FP/SIMD, and, well, 32 bit.

Jeff Cunningham

unread,
Jan 1, 2018, 12:31:05 PM1/1/18
to Stas Boukarev, SBCL Devel-list

Well, that's discouraging. I guess I won't waster my time then.

--Jeff

(format t "~(~36r@~36r.~36r~)" 42231320458 2575240748151138958 16438)

Reply all
Reply to author
Forward
0 new messages