Heya, ping! I'm pretty sure it is a guile core and/or a test suite problem, not related to corba itself [which as a matter of fact I do not know and do not use either :)] I'd like to solve this problem before to release a guile-gnome-platform 2.16.3 [which is a good idea anyway, but in the end it will also allow distro to get rid of guile-1.8 ...] Before to release I believe indeed that we _should_ get rid of all guile related deprecated messages, which motivated my changes to /corba/gnome/corba/guile-gnome-corba-types.c I'm looking for a C knowledgeable guile developer or co-maintainer who knows what scm_make_vtable is supposed to do, args, ... to think about what could be the cause of the problem [comparing the original function and its proposed substitution in guile core maybe] and/or come and talk to me on irc [daviid] to debug together... Thanks, David ;; -- Begin forwarded message: Date: Sat, 5 Jul 2014 19:58:14 -0300 From: David Pirotte To: guile-devel Subject: guile-gnome, devel: corba test suite fails if using scm_make_vtable Hello, If I apply the following changes [here below], corba compiles fine, but the test suite fails badly [with a segmentation fault]. I have taken a bit of my time to identify the test that fails and segfault, here is a recorded session, with the necessary material for other guilers to reproduce the bug: http://paste.lisp.org/display/143106#6 I have attached an strace, obtained running the original [complete] wrapset.api Help much appreciated here, thanks! Happy hacking, David --- a/corba/gnome/corba/guile-gnome-corba-types.c +++ b/corba/gnome/corba/guile-gnome-corba-types.c @@ -1,6 +1,7 @@ /* guile-gnome * Copyright (C) 2001, 2009, 2013 Martin Baulig * Copyright (C) 2003 Andy Wingo + * Copyright (C) 2014 David Pirotte * * guile-gnome-corba-types.c: Support routines for the GLib wrapper * @@ -819,19 +820,17 @@ scm_init_gnome_corba_types (void) #include "guile-gnome-corba-types.x" - gsubr = scm_c_make_gsubr ("%print-corba-struct", 2, 0, 0, print_corba_struct); + gsubr = scm_c_define_gsubr ("%print-corba-struct", 2, 0, 0, print_corba_struct); scm_corba_struct_vtable = scm_permanent_object - (scm_make_vtable_vtable (scm_from_locale_string ("srprprprpopopW"), - scm_from_int (0), SCM_LIST1 (gsubr))); + (scm_make_vtable (scm_from_latin1_string ("srprprprpopopW"), gsubr)); SCM_SET_CORBA_STRUCT_TYPECODE (scm_corba_struct_vtable, TC_CORBA_TypeCode); scm_c_define ("%corba-struct-vtable", scm_corba_struct_vtable); scm_c_define ("%corba-struct-vtable-offset-user", scm_from_int (scm_corba_struct_vtable_offset_user)); scm_c_define ("%corba-struct-vtable-offset-printer", scm_from_int (scm_vtable_index_instance_printer)); - gsubr = scm_c_make_gsubr ("%print-corba-sequence", 2, 0, 0, print_corba_sequence); + gsubr = scm_c_define_gsubr ("%print-corba-sequence", 2, 0, 0, print_corba_sequence); scm_corba_sequence_vtable = scm_permanent_object - (scm_make_vtable_vtable (scm_from_locale_string ("srprprprpopW"), - scm_from_int (0), SCM_LIST1 (gsubr))); + (scm_make_vtable (scm_from_latin1_string ("srprprprpopW"), gsubr)); SCM_SET_CORBA_SEQUENCE_TYPECODE (scm_corba_sequence_vtable, TC_CORBA_TypeCode); scm_c_define ("%corba-sequence-vtable", scm_corba_sequence_vtable); scm_c_define ("%corba-sequence-vtable-offset-user", scm_from_int (scm_corba_sequence_vtable_offset_user));