Steel Bank Common Lisp

Condition Variable Printing Bug

Reported by David L. Rager on 2010-11-10
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
SBCL
Low
Unassigned

Bug Description

There appears to be a bug in 1.0.44 related to how condition variables are printed. It seems to print the :token field recursively without any end. CVs appear to be mostly working for me, but I'm trying to debug some code that uses them that's having an issue, so I thought I'd mention this problem.

This is on linuxx86-64 with a sbcl core built from the sources (as opposed to a binary).

oliphaunt-0.cs.utexas.edu:/projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.19$ ./run-sbcl.sh
(running SBCL from: /projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.19)
This is SBCL 1.0.19, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

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.
* (defvar *lock* (sb-thread:make-mutex))

*LOCK*
* (defvar *cv* (sb-thread:make-waitqueue))

*CV*
* (sb-thread:with-recursive-lock (*lock*) (sb-thread:Condition-notify *cv*))

0
* *cv*

#S(SB-THREAD:WAITQUEUE
   :NAME NIL
   :DATA #<SB-THREAD:THREAD "initial thread" RUNNING {10023EFD31}>)
* (car (member :sb-thread *features*))

:SB-THREAD
* *features*

(:SB-THREAD :ANSI-CL :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB
 :SB-PACKAGE-LOCKS :SB-UNICODE :SB-EVAL :SB-SOURCE-LOCATIONS
 :IEEE-FLOATING-POINT :X86-64 :UNIX :ELF :LINUX :GENCGC
 :STACK-GROWS-DOWNWARD-NOT-UPWARD :C-STACK-IS-CONTROL-STACK :LINKAGE-TABLE
 :COMPARE-AND-SWAP-VOPS :UNWIND-TO-FRAME-AND-CALL-VOP :RAW-INSTANCE-INIT-VOPS
 :STACK-ALLOCATABLE-CLOSURES :ALIEN-CALLBACKS :CYCLE-COUNTER
 :OS-PROVIDES-DLOPEN :OS-PROVIDES-DLADDR :OS-PROVIDES-PUTWC
 :OS-PROVIDES-SUSECONDS-T)
* (quit)
oliphaunt-0.cs.utexas.edu:/projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.19$ ./run-sbcl.sh --version
(running SBCL from: /projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.19)
SBCL 1.0.19
oliphaunt-0.cs.utexas.edu:/projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.19$ uname -a
Linux oliphaunt-0.cs.utexas.edu 2.6.24.6.desktop11.28.77 #1 SMP Fri Sep 17 09:18:28 CDT 2010 x86_64 GNU/Linux
oliphaunt-0.cs.utexas.edu:/projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.19$

oliphaunt-0.cs.utexas.edu:/projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.44$ ./run-sbcl.sh
(running SBCL from: /v/filer4b/v8q001/lisps/sbcl-1.0.44)
This is SBCL 1.0.44, an implementation of ANSI Common Lisp.
More information about SBCL is available at <http://www.sbcl.org/>.

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.
* (car (member :sb-thread *features*))

:SB-THREAD
* (defvar *lock* (sb-thread:make-mutex))

*LOCK*
* (defvar *cv* (sb-thread:make-waitqueue))

*CV*
* (sb-thread:with-recursive-lock (*lock*) (sb-thread:Condition-notify *cv*))

0
* *cv*

#S(SB-THREAD:WAITQUEUE
   :NAME NIL
   :TOKEN #S(SB-THREAD:WAITQUEUE
             :NAME NIL
             :TOKEN #S(SB-THREAD:WAITQUEUE
                       :NAME NIL
                       :TOKEN #S(SB-THREAD:WAITQUEUE
                                 :NAME NIL
                                 :TOKEN #S(SB-THREAD:WAITQUEUE
                                           :NAME NIL
                                           :TOKEN #S(SB-THREAD:WAITQUEUE
                                                     :NAME NIL
                                                     :TOKEN #S(SB-THREAD:WAITQUEUE
                                                               :NAME NIL
                                                               :TOKEN #S(SB-THREAD:WAITQUEUE

debugger invoked on a SB-SYS:INTERACTIVE-INTERRUPT in thread #<THREAD
                                                               "initial thread" RUNNING
                                                               {1002ACA891}>:
  Interactive interrupt at #x1000721AF4.

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [CONTINUE] Return from SB-UNIX:SIGINT.
  1: [ABORT ] Exit debugger, returning to top level.

((LAMBDA (&REST REST))
 #<SB-SYS:FD-STREAM for "standard output" {1002ACB131}>
 #\Newline)
0] 1
* *features*

(:ANSI-CL :COMMON-LISP :SBCL :SB-DOC :SB-TEST :SB-LDB :SB-PACKAGE-LOCKS
 :SB-UNICODE :SB-EVAL :SB-SOURCE-LOCATIONS :IEEE-FLOATING-POINT :X86-64 :UNIX
 :ELF :LINUX :SB-THREAD :LARGEFILE :GENCGC :STACK-GROWS-DOWNWARD-NOT-UPWARD
 :C-STACK-IS-CONTROL-STACK :LINKAGE-TABLE :COMPARE-AND-SWAP-VOPS
 :UNWIND-TO-FRAME-AND-CALL-VOP :RAW-INSTANCE-INIT-VOPS
 :STACK-ALLOCATABLE-CLOSURES :STACK-ALLOCATABLE-VECTORS
 :STACK-ALLOCATABLE-LISTS :STACK-ALLOCATABLE-FIXED-OBJECTS :ALIEN-CALLBACKS
 :CYCLE-COUNTER :COMPLEX-FLOAT-VOPS :FLOAT-EQL-VOPS :INLINE-CONSTANTS
 :MEMORY-BARRIER-VOPS :OS-PROVIDES-DLOPEN :OS-PROVIDES-DLADDR
 :OS-PROVIDES-PUTWC :OS-PROVIDES-SUSECONDS-T :OS-PROVIDES-GETPROTOBY-R
 :OS-PROVIDES-POLL)
* (quit)
oliphaunt-0.cs.utexas.edu:/projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.44$ ./run-sbcl.sh --version
(running SBCL from: /v/filer4b/v8q001/lisps/sbcl-1.0.44)
SBCL 1.0.44
oliphaunt-0.cs.utexas.edu:/projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.44$ uname -a
Linux oliphaunt-0.cs.utexas.edu 2.6.24.6.desktop11.28.77 #1 SMP Fri Sep 17 09:18:28 CDT 2010 x86_64 GNU/Linux
oliphaunt-0.cs.utexas.edu:/projects/hvg/ragerdl/hvg2/lisps/sbcl-1.0.44$

Nikodemus Siivola (nikodemus) wrote :

The quick fix is (setf *print-circle* t). Of course it would be nicer if SBCL bound *print-circle* in the appropriate place anyways.

Changed in sbcl:
assignee: nobody → Nikodemus Siivola (nikodemus)
importance: Undecided → Low
status: New → Triaged
Changed in sbcl:
status: Triaged → In Progress
tags: added: pending
Nikodemus Siivola (nikodemus) wrote :

In 1.0.45.15.

Changed in sbcl:
assignee: Nikodemus Siivola (nikodemus) → nobody
status: In Progress → Fix Committed
tags: removed: pending
Changed in sbcl:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers