#include "libguile.h" const long Reps = 1000; const long Elements = 1000; #if SCM_MAJOR_VERSION < 2 #define scm_from_utf8_symbol scm_from_locale_symbol #endif static void guile_main(void *data, int argc, char **argv) { SCM plus = scm_from_utf8_symbol("+"); SCM one = scm_from_int(1); SCM two = scm_from_int(2); SCM exp = scm_list_3(plus, one, two); for (int r = 0; r < Reps; r++) { #ifdef LIST SCM list = SCM_EOL; for (long i = 0; i < Elements; i++) { list = scm_cons(exp, list); } list = scm_cons(scm_from_utf8_symbol("list"), list); scm_primitive_eval(list); #else for (long i = 0; i < Elements; i++) { scm_primitive_eval(exp); } #endif } } int main(int argc, char *argv[]) { scm_boot_guile (argc, argv, guile_main, 0); return 0; }