[frogs] Re: Lilypond and Guile forward compatibility |
[ Thread Index | Date Index | More lilynet.net/frogs Archives ]
Hi Patrick, On 17/04/10 03:40, Patrick McCarty wrote: I've just done a fresh clone of lilypond git and picked up your fixes.Hi Ian, On 2010-04-16, Ian Hulin wrote:I've cloned the LilyPond git repo so I can play with the lily Scheme scripts which barf with Guile 1.9.x. If you've got any C++ patches I can use so I can debug the .scm files I'd be grateful. I've already got a version of lily.scm which gets round the stuff with testing PLATFORM to see if it's running on Windows, but I'm getting crashes during initialization running with Guile V2.0 which I'm finding difficult to debug.I just pushed some fixes for these Guile compatibility issues. I also addressed the scm/lily.scm issue, so please pull and let me know how it goes. You'll have to run ./autogen.sh again, since I made some modifications to the configure script. For me, compilation now stops when scm/music-functions.scm tries to load scm/display-lily.scm. I've got Guile 1.9.10, and have set up a script guile-v2 to do exec $HOME/Desktop/Development/Guile-and-Scheme/guile-1.9.10/meta/uninstalled-env bash I executed this and then did a clean Lilypond build using the fresh git repo for lilypond. After I patched the guile-config script to do this #!/bin/sh PKG_CONFIG_PATH="/home/ian/usr/lib/pkgconfig:$PKG_CONFIG_PATH" GUILE_AUTO_COMPILE=0 export PKG_CONFIG_PATH GUILE_AUTO_COMPILE exec "/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/meta/guile" -e main -s $0 "$@" !# ;;;; exec "/home/ian/usr/bin/guile" -e main -s $0 "$@" The lilypond ./configure now runs to completion, so I did sh autogen.sh --prefix=$HOME/usr --disable-optimising After this, lilypond make all ran clear through to building the documentation when it terminated with a segmentation fault. Poking around with ddd and gdb, it crashes here: 41 void 42 ly_init_ly_module (void *) 43 { 44 for (vsize i = scm_init_funcs_->size (); i--;) 45 (scm_init_funcs_->at (i)) (); >>>>^^^^^^^^^^^^^^^^^^ crashes when i gets to 975 (initial value 980), scm_init_funcs_->size() is 981 46 47 if (be_verbose_global) 48 { 49 progress_indication ("["); 50 scm_display (scm_c_eval_string ("(%search-load-path \"lily.scm\")"), 51 scm_current_error_port ()); 52 progress_indication ("]\n"); 53 } 54 55 scm_primitive_load_path (scm_from_locale_string ("lily.scm")); 56 } 57 Here's the program output from the run GNU LilyPond 2.13.19 warning: Relocation: from cwd: argv0=out/bin/lilypond PATH=/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/bin (prepend) Setting PATH to /home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/bin:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/meta:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/meta:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/libguile:/home/ian/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games warning: Relocation: compile datadir=, new datadir=/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/share/lilypond//current warning: Relocation: framework_prefix=/home/ian/Desktop/Development/Guile-and-Scheme/guile-1..9.10/lilypond/out/bin/.. Setting INSTALLER_PREFIX to /home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/bin/.. PATH=/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/bin/../bin (prepend) Setting PATH to /home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/bin/../bin:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/bin:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/meta:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/meta:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/libguile:/home/ian/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games Setting GUILE_MIN_YIELD_1 to 65 Setting GUILE_MIN_YIELD_2 to 65 Setting GUILE_MIN_YIELD_MALLOC to 65 Setting GUILE_INIT_SEGMENT_SIZE_1 to 10485760 Setting GUILE_MAX_SEGMENT_SIZE to 104857600 LILYPOND_DATADIR="/home/ian/usr/share/lilypond/2.13.19" LOCALEDIR="/home/ian/usr/share/locale" Effective prefix: "/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/share/lilypond/current" GUILE_LOAD_PATH="/home/ian/Desktop/Development/Guile-and-Scheme/guile-1..9.10/guile-readline:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/module:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/module" PATH="/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond/out/bin/../bin:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1..9.10/lilypond/out/bin:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/meta:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/meta:/home/ian/Desktop/Development/Guile-and-Scheme/guile-1.9.10/libguile:/home/ian/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games" Segmentation fault ian@nanny-ogg:~/Desktop/Development/Guile-and-Scheme/guile-1.9.10/lilypond$ The actual crash happens at a call to internal_add_interface here 29 SCM add_interface (char const *cxx_name, 30 char const *descr, 31 char const *vars) 32 { 33 string suffix ("-interface"); 34 string lispy_name = camel_case_to_lisp_identifier (cxx_name); 35 vsize end = max (int (0), int (lispy_name.length () - suffix.length ())); 36 if (lispy_name.substr (end) != suffix) 37 lispy_name += suffix; 38 39 SCM s = ly_symbol2scm (lispy_name.c_str ()); 40 SCM d = scm_from_locale_string (descr); 41 SCM l = parse_symbol_list (vars); 42 43 internal_add_interface (s, d, l); >>>^^^^^^^^^^^^^^^^^^^<<< 44 45 return s; 46 } Any ideas? Cheers, Ian |
Mail converted by MHonArc 2.6.19+ | http://listengine.tuxfamily.org/ |