--- beast-0.7.4/configure.in.orig 2011-04-09 00:20:56.000000000 +0200 +++ beast-0.7.4/configure.in 2012-04-20 22:01:31.005986007 +0200 @@ -421,12 +421,14 @@ GUILE_VERSION=`$GUILE_CONFIG info guileversion` GUILE_CFLAGS=`$GUILE_CONFIG compile` GUILE_LDFLAGS=`$GUILE_CONFIG link` + oldCPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $GUILE_CFLAGS" MC_CHECK_VERSION($GUILE_VERSION, $REQUIRED_VERSION, [guile_tests=`expr $guile_tests + 1`]) dnl # check headers seperately, since some distributions ship on-devel guile packages with guile-config - AC_CHECK_HEADER(guile/gh.h, guile_tests=`expr $guile_tests + 1`) - AC_CHECK_HEADER(libguile/properties.h, guile_tests=`expr $guile_tests + 1`) dnl # guile-1.6 headerfile + AC_CHECK_HEADER(libguile.h, guile_tests=`expr $guile_tests + 1`) + CPPFLAGS="$oldCPPFLAGS" fi - if test $guile_tests = 4 ; then + if test $guile_tests = 3 ; then BSESCM_CFLAGS="$GUILE_CFLAGS $BSESCM_CFLAGS" BSESCM_LIBS="$GUILE_LDFLAGS $BSESCM_LIBS" else --- beast-0.7.4/shell/bsescm.c.orig 2011-04-08 19:39:22.000000000 +0200 +++ beast-0.7.4/shell/bsescm.c 2012-04-26 21:18:52.321900930 +0200 @@ -17,7 +17,7 @@ #include #include #include -#include +#include #include #include /* for bse_init_textdomain_only() */ #include /* no bin-compat */ @@ -33,7 +33,8 @@ /* --- prototypes --- */ -static void gh_main (gint argc, +static void gh_main (void *closure, + gint argc, gchar *argv[]); static void shell_parse_args (gint *argc_p, gchar ***argv_p); @@ -108,14 +109,15 @@ main (int argc, /* now that the BSE thread runs, drop scheduling priorities if we have any */ setpriority (PRIO_PROCESS, getpid(), 0); - gh_enter (argc, argv, gh_main); + scm_boot_guile (argc, argv, gh_main, NULL); return 0; } static void -gh_main (int argc, +gh_main (void * closure, + int argc, char *argv[]) { /* initial interpreter setup */ @@ -130,11 +132,11 @@ gh_main (int argc, /* exec Bse Scheme bootup code */ const gchar *boot_script = g_intern_printf ("%s/%s", boot_script_path, "bse-scm-glue.boot"); - gh_load (boot_script); + scm_c_primitive_load (boot_script); /* eval, auto-play or interactive */ if (bse_scm_eval_expr) - gh_eval_str (bse_scm_eval_expr); + scm_c_eval_string (bse_scm_eval_expr); else { gboolean call_auto_play = FALSE; @@ -157,14 +159,14 @@ gh_main (int argc, } /* auto-play or interactive */ if (call_auto_play) - gh_eval_str ("(bse-scm-auto-play)"); + scm_c_eval_string ("(bse-scm-auto-play)"); else { if (bse_scm_auto_load) - gh_eval_str ("(bse-server-register-blocking bse-server-register-core-plugins #f)" + scm_c_eval_string ("(bse-server-register-blocking bse-server-register-core-plugins #f)" "(bse-server-register-blocking bse-server-register-scripts #f)" "(bse-server-register-blocking bse-server-register-ladspa-plugins #f)"); - gh_repl (argc, argv); + scm_shell (argc, argv); } } --- beast-0.7.4/shell/bsescminterp.h.orig 2011-04-08 19:39:22.000000000 +0200 +++ beast-0.7.4/shell/bsescminterp.h 2012-04-26 20:11:33.745318439 +0200 @@ -18,7 +18,7 @@ #define __BSE_SCM_INTERP_H__ #include -#include +#include G_BEGIN_DECLS --- beast-0.7.4/shell/bsescminterp.c.orig 2011-04-08 19:39:22.000000000 +0200 +++ beast-0.7.4/shell/bsescminterp.c 2012-04-26 20:59:51.038591385 +0200 @@ -55,7 +55,7 @@ #define IS_SCM_INT(s_scm) SCM_I_INUMP (s_scm) // scm_is_integer() breaks for non-fractional floats #define SFI_NUM_FROM_SCM(s_scm) ((SfiNum) scm_to_int64 (s_scm)) #define STRING_CHARS_FROM_SCM(s_scm) scm_i_string_chars (s_scm) -#define STRING_LENGTH_FROM_SCM(s_scm) scm_i_string_length (s_scm) +#define STRING_LENGTH_FROM_SCM(s_scm) scm_c_string_length (s_scm) #define IS_SCM_STRING(s_scm) scm_is_string (s_scm) #define IS_SCM_SYMBOL(s_scm) scm_is_symbol (s_scm) #define IS_SCM_BOOL(s_scm) scm_is_bool (s_scm) @@ -157,7 +157,7 @@ bse_scm_enter_gc (SCM *scm_gc_ gc_cell->free_func = free_func; gc_cell->size_hint = size_hint + sizeof (BseScmGCCell); SCM_NEWSMOB (s_cell, tc_glue_gc_cell, gc_cell); - *scm_gc_list = gh_cons (s_cell, *scm_gc_list); + *scm_gc_list = scm_cons (s_cell, *scm_gc_list); } static SCM @@ -494,21 +494,21 @@ bse_scm_from_value (const GValue *value) sval = sfi_value_get_bool (value) ? SCM_BOOL_T : SCM_BOOL_F; break; case SFI_SCAT_INT: - sval = gh_long2scm (sfi_value_get_int (value)); + sval = scm_from_long (sfi_value_get_int (value)); break; case SFI_SCAT_NUM: sval = scm_long_long2num (sfi_value_get_num (value)); break; case SFI_SCAT_REAL: - sval = gh_double2scm (sfi_value_get_real (value)); + sval = scm_make_real (sfi_value_get_real (value)); break; case SFI_SCAT_STRING: str = sfi_value_get_string (value); - sval = str ? gh_str02scm (str) : BSE_SCM_NIL; + sval = str ? scm_from_locale_string (str) : BSE_SCM_NIL; break; case SFI_SCAT_CHOICE: str = sfi_value_get_choice (value); - sval = str ? gh_symbol2scm (str) : BSE_SCM_NIL; + sval = str ? scm_from_locale_symbol (str) : BSE_SCM_NIL; break; case SFI_SCAT_BBLOCK: sval = BSE_SCM_NIL; @@ -692,7 +692,7 @@ signal_marshal_sproc (void *data) sdata->n_args = 0; while (i--) - args = gh_cons (bse_scm_from_value (sdata->args + i), args); + args = scm_cons (bse_scm_from_value (sdata->args + i), args); s_ret = scm_apply (sdata->s_lambda, args, SCM_EOL); @@ -729,7 +729,7 @@ bse_scm_signal_connect (SCM s_proxy, proxy = SCM_GET_GLUE_PROXY (s_proxy); SCM_ASSERT (IS_SCM_STRING (s_signal), s_signal, SCM_ARG2, "bse-signal-connect"); - SCM_ASSERT (gh_procedure_p (s_lambda), s_lambda, SCM_ARG3, "bse-signal-connect"); + SCM_ASSERT (scm_is_true(scm_procedure_p (s_lambda)), s_lambda, SCM_ARG3, "bse-signal-connect"); scm_gc_protect_object (s_lambda); @@ -744,7 +744,7 @@ bse_scm_signal_connect (SCM s_proxy, id = sfi_glue_signal_connect_closure (proxy, sdata->signal, closure, NULL); BSE_SCM_ALLOW_INTS (); - return gh_ulong2scm (id); + return scm_from_ulong (id); } SCM @@ -917,14 +917,6 @@ void bse_scm_enable_script_register (gboolean enabled) { script_register_enabled = enabled != FALSE; - if (script_register_enabled) - { - /* enable position recording wchih is required for __FILE__ and __LINE__ emulation */ - SCM_DEVAL_P = 1; - SCM_BACKTRACE_P = 1; - SCM_RECORD_POSITIONS_P = 1; - SCM_RESET_DEBUG_MODE; - } } SCM @@ -1081,7 +1073,7 @@ bse_scm_context_pending (void) pending = sfi_glue_context_pending (); BSE_SCM_ALLOW_INTS (); - return gh_bool2scm (pending); + return scm_from_bool (pending); } SCM @@ -1090,7 +1082,7 @@ bse_scm_context_iteration (SCM s_may_blo BSE_SCM_DEFER_INTS (); if (sfi_glue_context_pending ()) sfi_glue_context_dispatch (); - else if (gh_scm2bool (s_may_block)) + else if (scm_from_bool (s_may_block)) { /* FIXME: we need a real poll() based wait implementation here */ do @@ -1124,14 +1116,14 @@ register_types (const gchar **types) { s = g_strdup_printf ("(define (bse-is-%s proxy) (bse-item-check-is-a proxy \"%s\"))", sname + 4, *types); - gh_eval_str (s); + scm_c_eval_string (s); g_free (s); } for (i = 0; names[i]; i++) { gchar *s = g_strdup_printf ("(define %s-%s (lambda list (bse-glue-call \"%s+%s\" list)))", sname, names[i], *types, names[i]); - gh_eval_str (s); + scm_c_eval_string (s); g_free (s); } g_free (sname); @@ -1159,29 +1151,29 @@ bse_scm_interp_init (void) tc_glue_rec = scm_make_smob_type ("BseGlueRec", 0); scm_set_smob_free (tc_glue_rec, bse_scm_free_glue_rec); - gh_new_procedure ("bse-rec-get", bse_scm_glue_rec_get, 2, 0, 0); - gh_new_procedure ("bse-rec-set", bse_scm_glue_rec_set, 3, 0, 0); - gh_new_procedure ("bse-rec-new", bse_scm_glue_rec_new, 0, 1, 0); - gh_new_procedure ("bse-rec-print", bse_scm_glue_rec_print, 1, 0, 0); + scm_c_define_gsubr ("bse-rec-get", 2, 0, 0, bse_scm_glue_rec_get); + scm_c_define_gsubr ("bse-rec-set", 3, 0, 0, bse_scm_glue_rec_set); + scm_c_define_gsubr ("bse-rec-new", 0, 1, 0, bse_scm_glue_rec_new); + scm_c_define_gsubr ("bse-rec-print", 1, 0, 0, bse_scm_glue_rec_print); tc_glue_proxy = scm_make_smob_type ("SfiProxy", 0); SCM_NEWSMOB (glue_null_proxy, tc_glue_proxy, 0); scm_permanent_object (glue_null_proxy); scm_set_smob_equalp (tc_glue_proxy, bse_scm_proxy_equalp); scm_set_smob_print (tc_glue_proxy, bse_scm_proxy_print); - gh_new_procedure ("bse-proxy-is-null?", bse_scm_proxy_is_null, 1, 0, 0); - gh_new_procedure ("bse-proxy-get-null", bse_scm_proxy_get_null, 0, 1, 0); + scm_c_define_gsubr ("bse-proxy-is-null?", 1, 0, 0, bse_scm_proxy_is_null); + scm_c_define_gsubr ("bse-proxy-get-null", 0, 1, 0, bse_scm_proxy_get_null); - gh_new_procedure ("bse-glue-call", bse_scm_glue_call, 2, 0, 0); - gh_new_procedure ("bse-glue-set-prop", bse_scm_glue_set_prop, 3, 0, 0); - gh_new_procedure ("bse-glue-get-prop", bse_scm_glue_get_prop, 2, 0, 0); + scm_c_define_gsubr ("bse-glue-call", 2, 0, 0, bse_scm_glue_call); + scm_c_define_gsubr ("bse-glue-set-prop", 3, 0, 0, bse_scm_glue_set_prop); + scm_c_define_gsubr ("bse-glue-get-prop", 2, 0, 0, bse_scm_glue_get_prop); procs = sfi_glue_list_proc_names (); for (i = 0; procs[i]; i++) if (strncmp (procs[i], "bse-", 4) == 0) { gchar *s = g_strdup_printf ("(define bse-%s (lambda list (bse-glue-call \"%s\" list)))", procs[i] + 4, procs[i]); - gh_eval_str (s); + scm_c_eval_string (s); g_free (s); } @@ -1189,15 +1181,15 @@ bse_scm_interp_init (void) procs2[1] = NULL; register_types (procs2); - gh_new_procedure0_0 ("bse-server-get", bse_scm_server_get); - gh_new_procedure ("bse-script-register", bse_scm_script_register, 6, 0, 1); - gh_new_procedure ("bse-script-fetch-args", bse_scm_script_args, 0, 0, 0); - gh_new_procedure ("bse-choice-match?", bse_scm_choice_match, 2, 0, 0); - gh_new_procedure ("bse-signal-connect", bse_scm_signal_connect, 3, 0, 0); - gh_new_procedure ("bse-signal-disconnect", bse_scm_signal_disconnect, 2, 0, 0); - gh_new_procedure ("bse-context-pending", bse_scm_context_pending, 0, 0, 0); - gh_new_procedure ("bse-context-iteration", bse_scm_context_iteration, 1, 0, 0); - gh_new_procedure ("bse-script-message", bse_scm_script_message, 1, 0, 1); - gh_new_procedure ("bse-gettext", bse_scm_gettext, 1, 0, 0); - gh_new_procedure ("bse-gettext-q", bse_scm_gettext_q, 1, 0, 0); + scm_c_define_gsubr ("bse-server-get", 0, 0, 0, bse_scm_server_get); + scm_c_define_gsubr ("bse-script-register", 6, 0, 1, bse_scm_script_register); + scm_c_define_gsubr ("bse-script-fetch-args", 0, 0, 0, bse_scm_script_args); + scm_c_define_gsubr ("bse-choice-match?", 2, 0, 0, bse_scm_choice_match); + scm_c_define_gsubr ("bse-signal-connect", 3, 0, 0, bse_scm_signal_connect); + scm_c_define_gsubr ("bse-signal-disconnect", 2, 0, 0, bse_scm_signal_disconnect); + scm_c_define_gsubr ("bse-context-pending", 0, 0, 0, bse_scm_context_pending); + scm_c_define_gsubr ("bse-context-iteration", 1, 0, 0, bse_scm_context_iteration); + scm_c_define_gsubr ("bse-script-message", 1, 0, 1, bse_scm_script_message); + scm_c_define_gsubr ("bse-gettext", 1, 0, 0, bse_scm_gettext); + scm_c_define_gsubr ("bse-gettext-q", 1, 0, 0, bse_scm_gettext_q); }