From: Simon G. <si...@gu...> - 2005-07-21 13:18:58
|
Hi, I've used WxHaskell 0.8 successfully for a while now, both on Windows and Debian unstable. However, I'm now trying to use it on Debian sarge, and experiencing Gtk and Glib critical failures, and segfaults upon starting the program in GHCI. Specifically: $ ghci HelloWxWorld.hs ___ ___ _ / _ \ /\ /\/ __(_) / /_\// /_/ / / | | GHC Interactive, version 6.2.2, for Haskell 98. / /_\\/ __ / /___| | http://www.haskell.org/ghc/ \____/\/ /_/\____/|_| Type :? for help. Loading package base ... linking ... done. Loading package haskell98 ... linking ... done. Loading package lang ... linking ... done. Loading package concurrent ... linking ... done. Loading package QuickCheck ... linking ... done. Loading package readline ... linking ... done. Loading package unix ... linking ... done. Loading package posix ... linking ... done. Loading package util ... linking ... done. Loading package data ... linking ... done. Loading package wxcore ... linking ... done. Loading package wx ... linking ... done. Compiling Main ( HelloWxWorld.hs, interpreted ) Ok, modules loaded: Main. *Main> hello GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. Gtk-WARNING **: gtk_type_create(): unknown parent type `21'. GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. GLib-CRITICAL **: file ghash.c: line 152 (g_hash_table_insert): assertion `hash_table != NULL' failed. GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. GLib-CRITICAL **: file ghash.c: line 152 (g_hash_table_insert): assertion `hash_table != NULL' failed. GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. GLib-CRITICAL **: file ghash.c: line 152 (g_hash_table_insert): assertion `hash_table != NULL' failed. GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. Gtk-WARNING **: gtk_type_create(): unknown parent type `21'. Gtk-CRITICAL **: file gtktypeutils.c: line 337 (gtk_type_class): assertion `node != NULL' failed. Gtk-WARNING **: gtk_arg_type_new(): argument class in "GtkContainer::border_width" is not in the `(null)' ancestry Gtk-CRITICAL **: file gtkobject.c: line 939 (gtk_object_add_arg_type): assertion `arg_type > GTK_TYPE_NONE' failed. GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. Gtk-WARNING **: gtk_type_create(): unknown parent type `21'. Gtk-CRITICAL **: file gtkobject.c: line 939 (gtk_object_add_arg_type): assertion `arg_type > GTK_TYPE_NONE' failed. Gtk-WARNING **: gtk_arg_type_new(): argument class in "GtkContainer::reallocate_redraws" is not in the `(null)' ancestry GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. Gtk-WARNING **: gtk_type_create(): unknown parent type `21'. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. Gtk-WARNING **: gtk_type_create(): unknown parent type `21'. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. GLib-CRITICAL **: file ghash.c: line 138 (g_hash_table_lookup): assertion `hash_table != NULL' failed. Gtk-WARNING **: gtk_type_create(): unknown parent type `21'. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. Gtk-CRITICAL **: file gtkobject.c: line 357 (gtk_object_class_add_signals): assertion `GTK_IS_OBJECT_CLASS (class)' failed. Gtk-WARNING **: gtk_arg_type_new(): argument class in "GtkButton::label" is not in the `(null)' ancestry Gtk-CRITICAL **: file gtkobject.c: line 939 (gtk_object_add_arg_type): assertion `arg_type > GTK_TYPE_NONE' failed. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. Gtk-CRITICAL **: file gtksignal.c: line 433 (gtk_signal_lookup): assertion `gtk_type_is_a (object_type, GTK_TYPE_OBJECT)' failed. Gtk-CRITICAL **: file gtkobject.c: line 357 (gtk_object_class_add_signals): assertion `GTK_IS_OBJECT_CLASS (class)' failed. Gtk-WARNING **: invalid cast from `GtkBin' to `(unknown)' Gtk-WARNING **: invalid cast from `GtkButton' to `(unknown)' Gtk-WARNING **: invalid cast from `GtkButton' to `(unknown)' Gtk-WARNING **: invalid cast from `GtkButton' to `(unknown)' Gtk-CRITICAL **: file gtkobject.c: line 1070 (gtk_object_get_data_by_id): assertion `GTK_IS_OBJECT (object)' failed. Segmentation fault $ This is running on the machine on which I built wxHaskell from source. I'm experiencing the same symptoms with both wxHaskell 0.8 and 0.9.4. Any suggestions? Is anyone successfully using wxHaskell on Debian sarge now? I don't have many other wxWidgets programs, but I can successfully run some wxPython scripts on the same machine. cheers, Simon PS: In case anyone thinks it matters, here's my Haskell code: {- demonstrates the use of a simple menu, statusbar, and dialog -} module Main where import Graphics.UI.WX main :: IO () main = start hello hello :: IO () hello = do -- the application frame f <- frame [text := "Hello world!", clientSize := sz 300 200] -- create file menu file <- menuPane [text := "&File"] quit <- menuQuit file [help := "Quit the demo", on command := close f] -- create Help menu hlp <- menuHelp [] about <- menuAbout hlp [help := "About wxHaskell"] -- create statusbar field status <- statusField [text := "Welcome to wxHaskell"] -- set the statusbar and menubar set f [ statusBar := [status] , menuBar := [file,hlp] -- as an example, put the menu event handler for an about box on the frame. ,on (menu about) := infoDialog f "About wxHaskell" "This is a wxHaskell demo" ] |
From: Simon G. <si...@gu...> - 2005-08-23 08:52:51
|
At Thu, 21 Jul 2005 14:18:40 +0100, Simon Guest wrote: > I've used WxHaskell 0.8 successfully for a while now, both on Windows > and Debian unstable. However, I'm now trying to use it on Debian > sarge, and experiencing Gtk and Glib critical failures, and segfaults > upon starting the program in GHCI. Apparently no-one else has experienced this. Having had another look at it, I found my problem was I was running a mixture of Sarge and Sid (doh!). The key information was provided by apt-show-versions. After correctly downgrading to Sarge, everything is now working nicely. cheers, Simon PS: Never underestimate the effectiveness of a long holiday on increasing one's problem solving ability. |