Error division-by-zero in first example from tutorial
metadeus opened this issue · comments
Empty window appears but then error signalled.
cl-cffi-gtk commit b408762
SBCL 1.0.55
Ubuntu 12.04 x64
Error:
arithmetic error DIVISION-BY-ZERO signalled
[Condition of type DIVISION-BY-ZERO]
Restarts:
0: [TERMINATE-THREAD] Terminate this thread (#<THREAD "cl-gtk2 main thread" RUNNING {1008CF0373}>)
Backtrace:
0: ("foreign function: #x200D539DA2")
1: ((LAMBDA () :IN BORDEAUX-THREADS::BINDING-DEFAULT-SPECIALS))
2: ((FLET #:WITHOUT-INTERRUPTS-BODY-237377 :IN SB-THREAD:MAKE-THREAD))
3: ((FLET SB-THREAD::WITH-MUTEX-THUNK :IN SB-THREAD:MAKE-THREAD))
4: ((FLET #:WITHOUT-INTERRUPTS-BODY-88845 :IN SB-THREAD::CALL-WITH-MUTEX))
5: (SB-THREAD::CALL-WITH-MUTEX ..)
6: (SB-THREAD::INITIAL-THREAD-FUNCTION)
7: ("foreign function: call_into_lisp")
8: ("foreign function: new_thread_trampoline")
Code:
(ql:quickload :cl-cffi-gtk)
(defpackage :gtk-tutorial
(:use :gtk :gdk :gobject :glib :pango :cairo :common-lisp))
(in-package :gtk-tutorial)
(defun example-simple-window ()
(within-main-loop
(let ( ;; Create a toplevel window.
(window (gtk-window-new :toplevel)))
;; Show the window.
(gtk-widget-show-all window))))
(example-simple-window)
Hello Artyom,
thank you very much for your interest in the Lisp binding to GTK+.
If I see it correctly, you are using a 64-bit Ubuntu 12.04. I am working with a 32-bit Ubuntu 12.04. You can use the library function cl-cffi-gtk-build-info to get more information about the installation. On my notebook I get:
- (cl-cffi-gtk-build-info)
cl-cffi-gtk version: 0.0.0
cl-cffi-gtk build date: 20:0 5/22/2012
GTK+ version: 3.4.2
GLIB version: 2.32.1
Pango version: 1.30.0
Cairo version: 1.10.2
Machine type: X86
Machine version: Intel(R) Pentium(R) M processor 1.73GHz
Software type: Linux
Software version: 3.2.0-24-generic
Lisp implementation type: SBCL
Lisp implementation version: 1.0.56
At this time I have no idea what is going wrong. It seems to me that the error originates from the library Bordeaux Threads, which might not work correctly on a 64-bit system. But perhaps I am completely wrong.
Remark:
I am working now about 6 month on the cl-cffi-gtk library. At this moment I update the complete library to GTK+ 3.4. To get the implementation complete I have to implement even more functionality of the libraries Cairo, Pango and GIO. All examples of the tutorial work correctly with GTK+ 3.4 on my Ubuntu 12.04 32 bit with SBCL 1.0.56.
Every help to solve the reported problem is appreciated.
Dieter Kaiser
cl-cffi-gtk version: 0.0.0
cl-cffi-gtk build date: 12:14 5/23/2012
GTK+ version: 3.4.2
GLIB version: 2.32.1
Pango version: 1.30.0
Cairo version: 1.10.2
Machine type: X86-64
Machine version: AMD Phenom(tm) II X6 1055T Processor
Software type: Linux
Software version: 3.2.0-24-generic
Lisp implementation type: SBCL
Lisp implementation version: 1.0.55.0.debian
Today I'm going to try it on my second Ubuntu 12.04 x86.
Same problem here.
Linux ubuntu 3.2.0-23-generic-pae #36-Ubuntu SMP Tue Apr 10 22:19:09 UTC 2012 i686 i686 i386 GNU/Linux
cl-cffi-gtk version: 0.0.0
cl-cffi-gtk build date: 15:18 5/23/2012
GTK+ version: 3.4.1
GLIB version: 2.32.1
Pango version: 1.30.0
Cairo version: 1.10.2
Machine type: X86
Machine version: Intel(R) Core(TM) i7-2677M CPU @ 1.80GHz
Software type: Linux
Software version: 3.2.0-23-generic-pae
Lisp implementation type: SBCL
Lisp implementation version: 1.0.56.0.debian
Should I try with latest bordeaux-threads?
I see the same, but randomly. Sometimes it works, sometimes I get the same error and backtrace.
cl-cffi-gtk version: 1.0.0
cl-cffi-gtk build date: 12:29 8/29/2012
GTK+ version: 3.4.2
GLIB version: 2.32.3
GDK-Pixbuf version: 2.26.1
Pango version: 1.30.0
Cairo version: 1.12.2
Machine type: X86-64
Machine version: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz
Software type: Linux
Software version: 3.4-trunk-amd64
Lisp implementation type: SBCL
Lisp implementation version: 1.0.58.0.debian
The problem seems to be in the library Bordeaux Threads. I can not reproduce the issue. I use the library version 0.8.2. I have not done an asdf-install, but I have downloaded and installed the release bordeaux-threads-0.8.2.tar.gz which is available from http://common-lisp.net/project/bordeaux-threads/releases/ . With this version of bordeaux threads, SBCL 1.0.57 and earlier versions of SBCL I never had a problem.
Perhaps I can get your version of Bordeaux Threads to reproduce the issue on my system.
This is the build info on my system. I am working with SBCL 1.0.57 on an Ubuntu Linux 1.0.4 (32bit). You get the build info with the command (cl-cffi-gtk-build-info).
cl-cffi-gtk version: 1.0.0
cl-cffi-gtk build date: 10:26 8/31/2012
GTK+ version: 3.4.2
GLIB version: 2.32.3
GDK-Pixbuf version: 2.26.1
Pango version: 1.30.0
Cairo version: 1.10.2
Machine type: X86
Machine version: Intel(R) Core(TM)2 Duo CPU T7250 @ 2.00GHz
Software type: Linux
Software version: 3.2.0-30-generic-pae
Lisp implementation type: SBCL
Lisp implementation version: 1.0.57
Dieter Kaiser
I have mine installed via quicliksp, but I did a diff vs the tar.gz release and it's identical (0.8.2).
I just realised I should mention that I am testing in slime, which spawns some additional threads itself. Simply running sbcl --load tutorial.lisp with some sample code does not appear to trigger the issue (ran it 10 times, happens more often when in slime).