diff --git a/tests/experimental/Makefile b/tests/experimental/Makefile index b86e41e8..1b89fac6 100644 --- a/tests/experimental/Makefile +++ b/tests/experimental/Makefile @@ -1,13 +1,17 @@ -OPT=-g -#OPT=-O2 +#OPT=-g +OPT=-O2 test-args: test-args.c cc $(OPT) test-args.c -o test-args +ack: ack.c + cc ack.c $(OPT) -fPIC -Wall -I/usr/local/include -L/usr/local/lib -Wl,--export-dynamic -c -o ack.o + cc ack.o /usr/local/share/cyclone/scheme/cyclone/common.o /usr/local/share/cyclone/scheme/time.o /usr/local/share/cyclone/scheme/read.o /usr/local/share/cyclone/scheme/char.o /usr/local/share/cyclone/scheme/base.o /usr/local/share/cyclone/scheme/write.o -pthread -lcyclone -lck -lm -ltommath -ldl $(OPT) -fPIC -Wall -I/usr/local/include -L/usr/local/lib -Wl,--export-dynamic -o ack + fac-test: fac-test.c cc fac-test.c $(OPT) -fPIC -Wall -I/usr/local/include -L/usr/local/lib -Wl,--export-dynamic -c -o fac-test.o cc fac-test.o /usr/local/share/cyclone/scheme/cyclone/common.o /usr/local/share/cyclone/scheme/base.o /usr/local/share/cyclone/scheme/write.o -pthread -lcyclone -lck -lm -ltommath -ldl $(OPT) -fPIC -Wall -I/usr/local/include -L/usr/local/lib -Wl,--export-dynamic -o fac-test .PHONY: clean clean: - rm -f *.o fac-test test-args + rm -f *.o fac-test test-args ack diff --git a/tests/experimental/ack.c b/tests/experimental/ack.c new file mode 100644 index 00000000..288c64ed --- /dev/null +++ b/tests/experimental/ack.c @@ -0,0 +1,1653 @@ +/** + ** This file was automatically generated by the Cyclone scheme compiler + ** http://justinethier.github.io/cyclone/ + ** + ** (c) 2014-2018 Justin Ethier + ** Version 0.9.4 + ** + **/ + +#define closcall1(td, clo,a1) \ +if (type_is_pair_prim(clo)) { \ + Cyc_apply(td, 0, (closure)(a1), clo); \ +} else { \ + ((clo)->fn)(td, 1, clo,a1);\ +} +#define return_closcall1(td, clo,a1) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[1]; buf[0] = a1;\ + GC(td, clo, buf, 1); \ + return; \ + } else {\ + closcall1(td, (closure) (clo),a1); \ + return;\ + } \ +} + +#define return_direct1(td, _fn,a1) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[1]; buf[0] = a1; \ + mclosure0(c1, (function_type) _fn); \ + GC(td, &c1, buf, 1); \ + return; \ + } else { \ + (_fn)(td, 1, (closure)_fn,a1); \ + }} + +#define return_direct_with_clo1(td, clo, _fn,a1) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[1]; buf[0] = a1;\ + GC(td, clo, buf, 1); \ + return; \ + } else { \ + (_fn)(td, 1, (closure)(clo),a1); \ + }} + +#define closcall2(td, clo,a1,a2) \ +if (type_is_pair_prim(clo)) { \ + Cyc_apply(td, 1, (closure)(a1), clo,a2); \ +} else { \ + ((clo)->fn)(td, 2, clo,a1,a2);\ +} +#define return_closcall2(td, clo,a1,a2) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[2]; buf[0] = a1;buf[1] = a2;\ + GC(td, clo, buf, 2); \ + return; \ + } else {\ + closcall2(td, (closure) (clo),a1,a2); \ + return;\ + } \ +} + +#define return_direct2(td, _fn,a1,a2) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[2]; buf[0] = a1;buf[1] = a2; \ + mclosure0(c1, (function_type) _fn); \ + GC(td, &c1, buf, 2); \ + return; \ + } else { \ + (_fn)(td, 2, (closure)_fn,a1,a2); \ + }} + +#define return_direct_with_clo2(td, clo, _fn,a1,a2) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[2]; buf[0] = a1;buf[1] = a2;\ + GC(td, clo, buf, 2); \ + return; \ + } else { \ + (_fn)(td, 2, (closure)(clo),a1,a2); \ + }} + +#define closcall3(td, clo,a1,a2,a3) \ +if (type_is_pair_prim(clo)) { \ + Cyc_apply(td, 2, (closure)(a1), clo,a2,a3); \ +} else { \ + ((clo)->fn)(td, 3, clo,a1,a2,a3);\ +} +#define return_closcall3(td, clo,a1,a2,a3) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[3]; buf[0] = a1;buf[1] = a2;buf[2] = a3;\ + GC(td, clo, buf, 3); \ + return; \ + } else {\ + closcall3(td, (closure) (clo),a1,a2,a3); \ + return;\ + } \ +} + +#define return_direct3(td, _fn,a1,a2,a3) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[3]; buf[0] = a1;buf[1] = a2;buf[2] = a3; \ + mclosure0(c1, (function_type) _fn); \ + GC(td, &c1, buf, 3); \ + return; \ + } else { \ + (_fn)(td, 3, (closure)_fn,a1,a2,a3); \ + }} + +#define return_direct_with_clo3(td, clo, _fn,a1,a2,a3) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[3]; buf[0] = a1;buf[1] = a2;buf[2] = a3;\ + GC(td, clo, buf, 3); \ + return; \ + } else { \ + (_fn)(td, 3, (closure)(clo),a1,a2,a3); \ + }} + +#define closcall5(td, clo,a1,a2,a3,a4,a5) \ +if (type_is_pair_prim(clo)) { \ + Cyc_apply(td, 4, (closure)(a1), clo,a2,a3,a4,a5); \ +} else { \ + ((clo)->fn)(td, 5, clo,a1,a2,a3,a4,a5);\ +} +#define return_closcall5(td, clo,a1,a2,a3,a4,a5) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[5]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4;buf[4] = a5;\ + GC(td, clo, buf, 5); \ + return; \ + } else {\ + closcall5(td, (closure) (clo),a1,a2,a3,a4,a5); \ + return;\ + } \ +} + +#define return_direct5(td, _fn,a1,a2,a3,a4,a5) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[5]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4;buf[4] = a5; \ + mclosure0(c1, (function_type) _fn); \ + GC(td, &c1, buf, 5); \ + return; \ + } else { \ + (_fn)(td, 5, (closure)_fn,a1,a2,a3,a4,a5); \ + }} + +#define return_direct_with_clo5(td, clo, _fn,a1,a2,a3,a4,a5) { \ + char top; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[5]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4;buf[4] = a5;\ + GC(td, clo, buf, 5); \ + return; \ + } else { \ + (_fn)(td, 5, (closure)(clo),a1,a2,a3,a4,a5); \ + }} + +#include "cyclone/types.h" +object __glo_this_91scheme_91implementation_91name = NULL; +object __glo_run_91r7rs_91benchmark = NULL; +object __glo_hide = NULL; +object __glo_main = NULL; +object __glo_ack = NULL; +extern object __glo_member_scheme_base; +extern object __glo_assoc_scheme_base; +extern object __glo_cons_91source_scheme_base; +extern object __glo_syntax_91rules_scheme_base; +extern object __glo_letrec_85_scheme_base; +extern object __glo_guard_scheme_base; +extern object __glo_guard_91aux_scheme_base; +extern object __glo_define_91record_91type_scheme_base; +extern object __glo_record_127_scheme_base; +extern object __glo_is_91a_127_scheme_base; +extern object __glo_register_91simple_91type_scheme_base; +extern object __glo_make_91type_91predicate_scheme_base; +extern object __glo_make_91constructor_scheme_base; +extern object __glo_make_91getter_scheme_base; +extern object __glo_make_91setter_scheme_base; +extern object __glo_slot_91ref_scheme_base; +extern object __glo_slot_91set_67_scheme_base; +extern object __glo_type_91slot_91offset_scheme_base; +extern object __glo_receive_scheme_base; +extern object __glo_abs_scheme_base; +extern object __glo_max_scheme_base; +extern object __glo_min_scheme_base; +extern object __glo_modulo_scheme_base; +extern object __glo_floor_91remainder_scheme_base; +extern object __glo_even_127_scheme_base; +extern object __glo_exact_91integer_127_scheme_base; +extern object __glo_exact_91integer_91sqrt_scheme_base; +extern object __glo_exact_127_scheme_base; +extern object __glo_inexact_127_scheme_base; +extern object __glo_odd_127_scheme_base; +extern object __glo_complex_127_scheme_base; +extern object __glo_rational_127_scheme_base; +extern object __glo_bignum_127_scheme_base; +extern object __glo_gcd_scheme_base; +extern object __glo_lcm_scheme_base; +extern object __glo_quotient_scheme_base; +extern object __glo_remainder_scheme_base; +extern object __glo_truncate_91quotient_scheme_base; +extern object __glo_truncate_91remainder_scheme_base; +extern object __glo_truncate_95_scheme_base; +extern object __glo_floor_91quotient_scheme_base; +extern object __glo_floor_91remainder_scheme_base; +extern object __glo_floor_95_scheme_base; +extern object __glo_square_scheme_base; +extern object __glo_expt_scheme_base; +extern object __glo_call_91with_91current_91continuation_scheme_base; +extern object __glo_call_95cc_scheme_base; +extern object __glo_call_91with_91values_scheme_base; +extern object __glo_dynamic_91wind_scheme_base; +extern object __glo_values_scheme_base; +extern object __glo_char_123_127_scheme_base; +extern object __glo_char_121_127_scheme_base; +extern object __glo_char_125_127_scheme_base; +extern object __glo_char_121_123_127_scheme_base; +extern object __glo_char_125_123_127_scheme_base; +extern object __glo_string_123_127_scheme_base; +extern object __glo_string_121_127_scheme_base; +extern object __glo_string_121_123_127_scheme_base; +extern object __glo_string_125_127_scheme_base; +extern object __glo_string_125_123_127_scheme_base; +extern object __glo_foldl_scheme_base; +extern object __glo_foldr_scheme_base; +extern object __glo_not_scheme_base; +extern object __glo_list_127_scheme_base; +extern object __glo_zero_127_scheme_base; +extern object __glo_positive_127_scheme_base; +extern object __glo_negative_127_scheme_base; +extern object __glo_append_scheme_base; +extern object __glo__list_scheme_base; +extern object __glo_make_91list_scheme_base; +extern object __glo_list_91copy_scheme_base; +extern object __glo_map_scheme_base; +extern object __glo_Cyc_91map_91loop_911_scheme_base; +extern object __glo_Cyc_91for_91each_91loop_911_scheme_base; +extern object __glo_for_91each_scheme_base; +extern object __glo_list_91tail_scheme_base; +extern object __glo_list_91ref_scheme_base; +extern object __glo_list_91set_67_scheme_base; +extern object __glo_reverse_scheme_base; +extern object __glo_boolean_123_127_scheme_base; +extern object __glo_symbol_123_127_scheme_base; +extern object __glo_Cyc_91obj_123_127_scheme_base; +extern object __glo_vector_scheme_base; +extern object __glo_vector_91append_scheme_base; +extern object __glo_vector_91copy_scheme_base; +extern object __glo_vector_91copy_67_scheme_base; +extern object __glo_vector_91fill_67_scheme_base; +extern object __glo_vector_91_125list_scheme_base; +extern object __glo_vector_91_125string_scheme_base; +extern object __glo_vector_91map_scheme_base; +extern object __glo_vector_91for_91each_scheme_base; +extern object __glo_make_91string_scheme_base; +extern object __glo_string_scheme_base; +extern object __glo_string_91copy_scheme_base; +extern object __glo_string_91copy_67_scheme_base; +extern object __glo_string_91fill_67_scheme_base; +extern object __glo_string_91_125list_scheme_base; +extern object __glo_string_91_125vector_scheme_base; +extern object __glo_string_91map_scheme_base; +extern object __glo_string_91for_91each_scheme_base; +extern object __glo_make_91parameter_scheme_base; +extern object __glo_current_91output_91port_scheme_base; +extern object __glo_current_91input_91port_scheme_base; +extern object __glo_current_91error_91port_scheme_base; +extern object __glo_call_91with_91port_scheme_base; +extern object __glo_error_91object_127_scheme_base; +extern object __glo_error_91object_91message_scheme_base; +extern object __glo_error_91object_91irritants_scheme_base; +extern object __glo_error_scheme_base; +extern object __glo_raise_scheme_base; +extern object __glo_raise_91continuable_scheme_base; +extern object __glo_with_91handler_scheme_base; +extern object __glo_with_91exception_91handler_scheme_base; +extern object __glo_Cyc_91add_91exception_91handler_scheme_base; +extern object __glo_Cyc_91remove_91exception_91handler_scheme_base; +extern object __glo_newline_scheme_base; +extern object __glo_write_91char_scheme_base; +extern object __glo_write_91string_scheme_base; +extern object __glo_flush_91output_91port_scheme_base; +extern object __glo_peek_91char_scheme_base; +extern object __glo_read_91char_scheme_base; +extern object __glo_read_91line_scheme_base; +extern object __glo_read_91string_scheme_base; +extern object __glo_input_91port_127_scheme_base; +extern object __glo_output_91port_127_scheme_base; +extern object __glo_input_91port_91open_127_scheme_base; +extern object __glo_output_91port_91open_127_scheme_base; +extern object __glo_get_91output_91string_scheme_base; +extern object __glo_open_91output_91string_scheme_base; +extern object __glo_open_91input_91string_scheme_base; +extern object __glo_get_91output_91bytevector_scheme_base; +extern object __glo_open_91input_91bytevector_scheme_base; +extern object __glo_open_91output_91bytevector_scheme_base; +extern object __glo_features_scheme_base; +extern object __glo_Cyc_91version_scheme_base; +extern object __glo_any_scheme_base; +extern object __glo_every_scheme_base; +extern object __glo_and_scheme_base; +extern object __glo_or_scheme_base; +extern object __glo_let_scheme_base; +extern object __glo_let_85_scheme_base; +extern object __glo_letrec_scheme_base; +extern object __glo_let_85_91values_scheme_base; +extern object __glo_let_91values_scheme_base; +extern object __glo_begin_scheme_base; +extern object __glo__case_scheme_base; +extern object __glo_cond_scheme_base; +extern object __glo_cond_91expand_scheme_base; +extern object __glo__do_scheme_base; +extern object __glo_when_scheme_base; +extern object __glo_unless_scheme_base; +extern object __glo_quasiquote_scheme_base; +extern object __glo_floor_scheme_base; +extern object __glo_ceiling_scheme_base; +extern object __glo_truncate_scheme_base; +extern object __glo_round_scheme_base; +extern object __glo_exact_scheme_base; +extern object __glo_inexact_scheme_base; +extern object __glo_eof_91object_scheme_base; +extern object __glo_syntax_91error_scheme_base; +extern object __glo_bytevector_91copy_scheme_base; +extern object __glo_bytevector_91copy_67_scheme_base; +extern object __glo_utf8_91_125string_scheme_base; +extern object __glo_string_91_125utf8_scheme_base; +extern object __glo_denominator_scheme_base; +extern object __glo_numerator_scheme_base; +extern object __glo_parameterize_scheme_base; +extern object __glo_peek_91u8_scheme_base; +extern object __glo_read_91u8_scheme_base; +extern object __glo_write_91u8_scheme_base; +extern object __glo_read_scheme_read; +extern object __glo_read_91all_scheme_read; +extern object __glo_include_scheme_read; +extern object __glo_include_91ci_scheme_read; +extern object __glo_display_scheme_write; +extern object __glo_write_scheme_write; +extern object __glo_write_91shared_scheme_write; +extern object __glo_write_91simple_scheme_write; +extern object __glo_current_91second_scheme_time; +extern object __glo_current_91jiffy_scheme_time; +extern object __glo_jiffies_91per_91second_scheme_time; +extern object __glo_string_123_127_191_191inline_191_191_scheme_base; +extern object __glo_string_121_127_191_191inline_191_191_scheme_base; +extern object __glo_string_121_123_127_191_191inline_191_191_scheme_base; +extern object __glo_string_125_127_191_191inline_191_191_scheme_base; +extern object __glo_string_125_123_127_191_191inline_191_191_scheme_base; +extern object __glo_not_191_191inline_191_191_scheme_base; +extern object __glo_zero_127_191_191inline_191_191_scheme_base; +extern object __glo_positive_127_191_191inline_191_191_scheme_base; +extern object __glo_negative_127_191_191inline_191_191_scheme_base; +extern object __glo_floor_191_191inline_191_191_scheme_base; +extern object __glo_ceiling_191_191inline_191_191_scheme_base; +extern object __glo_truncate_191_191inline_191_191_scheme_base; +extern object __glo_round_191_191inline_191_191_scheme_base; +extern object __glo_inexact_191_191inline_191_191_scheme_base; +extern object __glo_sqrt_191_191inline_191_191_scheme_base; +extern object __glo_exact_91integer_127_191_191inline_191_191_scheme_base; +extern object __glo_exact_127_191_191inline_191_191_scheme_base; +extern object __glo_complex_127_191_191inline_191_191_scheme_base; +extern object __glo_denominator_191_191inline_191_191_scheme_base; +extern object __glo_numerator_191_191inline_191_191_scheme_base; +extern object __glo_quotient_191_191inline_191_191_scheme_base; +extern object __glo_square_191_191inline_191_191_scheme_base; +extern object __glo_eof_91object_191_191inline_191_191_scheme_base; +extern object __glo_Cyc_91opaque_91eq_127_191_191inline_191_191_scheme_read; +extern object __glo_Cyc_91opaque_91unsafe_91eq_127_191_191inline_191_191_scheme_read; +extern object __glo_Cyc_91opaque_91unsafe_91string_127_191_191inline_191_191_scheme_read; +#include "cyclone/runtime.h" +#include "cyclone/runtime-main.h" +static void __lambda_57(void *data, int argc, closure _,object k_73212) ; +static void __lambda_58(void *data, int argc, object self_73269, object r_73213) ; +static void __lambda_15(void *data, int argc, closure _,object k_73160, object name_7341_73101, object count_7342_73102, object thunk_7343_73103, object ok_127_7344_73104) ; +static void __lambda_16(void *data, int argc, object self_73226, object rounded_73106) ; +static void __lambda_60(void *data, int argc, object self_73227, object rounded_73106) ; +static void __lambda_56(void *data, int argc, object self_73228, object k_73207, object x_7345_73108) ; +static void __lambda_17(void *data, int argc, object self_73229, object r_73161) ; +static void __lambda_18(void *data, int argc, object self_73230, object r_73162) ; +static void __lambda_19(void *data, int argc, object self_73231, object r_73163) ; +static void __lambda_20(void *data, int argc, object self_73232, object r_73164) ; +static void __lambda_21(void *data, int argc, object self_73233, object r_73205) ; +static void __lambda_22(void *data, int argc, object self_73234, object r_73165) ; +static void __lambda_23(void *data, int argc, object self_73235, object j_95s_7348_73109) ; +static void __lambda_24(void *data, int argc, object self_73236, object t0_7351_73110) ; +static void __lambda_25(void *data, int argc, object self_73237, object j0_7354_73111) ; +static void __lambda_26(void *data, int argc, object self_73238, object loop_7359_73114) ; +static void __lambda_59(void *data, int argc, object self_73239, object loop_7359_73114) ; +static void __lambda_28(void *data, int argc, object self_73240, object k_73171, object i_7360_73115, object result_7361_73116) ; +static void __lambda_30(void *data, int argc, object self_73242, object r_73175) ; +static void __lambda_51(void *data, int argc, object self_73263, object r_73200) ; +static void __lambda_52(void *data, int argc, object self_73264, object r_73201) ; +static void __lambda_53(void *data, int argc, object self_73265, object r_73202) ; +static void __lambda_54(void *data, int argc, object self_73266, object r_73204) ; +static void __lambda_55(void *data, int argc, object self_73267, object r_73203) ; +static void __lambda_31(void *data, int argc, object self_73243, object j1_7370_73117) ; +static void __lambda_32(void *data, int argc, object self_73244, object t1_7373_73118) ; +static void __lambda_33(void *data, int argc, object self_73245, object secs2_7382_73121) ; +static void __lambda_34(void *data, int argc, object self_73246, object r_73182) ; +static void __lambda_35(void *data, int argc, object self_73247, object r_73183) ; +static void __lambda_36(void *data, int argc, object self_73248, object r_73184) ; +static void __lambda_37(void *data, int argc, object self_73249, object r_73185) ; +static void __lambda_38(void *data, int argc, object self_73250, object r_73186) ; +static void __lambda_39(void *data, int argc, object self_73251, object r_73187) ; +static void __lambda_40(void *data, int argc, object self_73252, object r_73188) ; +static void __lambda_41(void *data, int argc, object self_73253, object r_73189) ; +static void __lambda_42(void *data, int argc, object self_73254, object r_73197) ; +static void __lambda_43(void *data, int argc, object self_73255, object r_73190) ; +static void __lambda_44(void *data, int argc, object self_73256, object r_73191) ; +static void __lambda_45(void *data, int argc, object self_73257, object r_73192) ; +static void __lambda_46(void *data, int argc, object self_73258, object r_73193) ; +static void __lambda_47(void *data, int argc, object self_73259, object r_73194) ; +static void __lambda_48(void *data, int argc, object self_73260, object r_73195) ; +static void __lambda_49(void *data, int argc, object self_73261, object r_73196) ; +static void __lambda_50(void *data, int argc, object self_73262, object r_73176) ; +static void __lambda_29(void *data, int argc, object self_73241, object r_73174) ; +static void __lambda_27(void *data, int argc, object self_73268, object r_73169) ; +static void __lambda_8(void *data, int argc, closure _,object k_73146, object r_7336_7396, object x_7337_7397) ; +static void __lambda_14(void *data, int argc, object self_73225, object k_73149, object v_7339_7399, object i_7340_73100) ; +static void __lambda_9(void *data, int argc, object self_73220, object k_73151) ; +static void __lambda_13(void *data, int argc, object self_73224, object k_73157, object x_7338_7398) ; +static void __lambda_10(void *data, int argc, object self_73221, object r_73152) ; +static void __lambda_12(void *data, int argc, object self_73222, object r_73153) ; +static void __lambda_11(void *data, int argc, object self_73223, object k_73154) ; +static void __lambda_3(void *data, int argc, closure _,object k_73133) ; +static void __lambda_7(void *data, int argc, object self_73219, object k_73140, object result_7335_7395) ; +static void __lambda_4(void *data, int argc, object self_73216, object k_73141) ; +static void __lambda_5(void *data, int argc, object self_73217, object r_73142) ; +static void __lambda_6(void *data, int argc, object self_73218, object r_73143) ; +static void __lambda_1(void *data, int argc, closure _,object k_73124, object m_731_7385, object n_732_7386) ; +static void __lambda_2(void *data, int argc, object self_73215, object r_73129) ; + +static void __lambda_57(void *data, int argc, closure _,object k_73212) { + Cyc_st_add(data, "ack.scm:this-scheme-implementation-name"); + +closureN_type c_73528; +c_73528.hdr.mark = gc_color_red; + c_73528.hdr.grayed = 0; +c_73528.tag = closureN_tag; + c_73528.fn = (function_type)__lambda_58; +c_73528.pc = 0; +c_73528.num_args = 1; +c_73528.num_elements = 1; +c_73528.elements = (object *)alloca(sizeof(object) * 1); +c_73528.elements[0] = k_73212; + +return_closcall1(data, __glo_Cyc_91version_scheme_base, &c_73528);; +} + +static void __lambda_58(void *data, int argc, object self_73269, object r_73213) { + +make_utf8_string_with_len(c_73534, "cyclone-", 8, 8); + +object c_73533 = Cyc_string_append(data, ((closureN)self_73269)->elements[0],2,&c_73534, r_73213); +return_closcall1(data, ((closureN)self_73269)->elements[0], c_73533);; +} + +static void __lambda_15(void *data, int argc, closure _,object k_73160, object name_7341_73101, object count_7342_73102, object thunk_7343_73103, object ok_127_7344_73104) { + Cyc_st_add(data, "ack.scm:run-r7rs-benchmark"); + +closureN_type c_73342; +c_73342.hdr.mark = gc_color_red; + c_73342.hdr.grayed = 0; +c_73342.tag = closureN_tag; + c_73342.fn = (function_type)__lambda_16; +c_73342.pc = 0; +c_73342.num_args = 1; +c_73342.num_elements = 5; +c_73342.elements = (object *)alloca(sizeof(object) * 5); +c_73342.elements[0] = count_7342_73102; +c_73342.elements[1] = k_73160; +c_73342.elements[2] = name_7341_73101; +c_73342.elements[3] = ok_127_7344_73104; +c_73342.elements[4] = thunk_7343_73103; + +return_direct_with_clo1(data,(closure)&c_73342,__lambda_16, boolean_f);; +} + +static void __lambda_16(void *data, int argc, object self_73226, object rounded_73106) { + +closureN_type c_73344; +c_73344.hdr.mark = gc_color_red; + c_73344.hdr.grayed = 0; +c_73344.tag = closureN_tag; + c_73344.fn = (function_type)__lambda_60; +c_73344.pc = 0; +c_73344.num_args = 1; +c_73344.num_elements = 5; +c_73344.elements = (object *)alloca(sizeof(object) * 5); +c_73344.elements[0] = ((closureN)self_73226)->elements[0]; +c_73344.elements[1] = ((closureN)self_73226)->elements[1]; +c_73344.elements[2] = ((closureN)self_73226)->elements[2]; +c_73344.elements[3] = ((closureN)self_73226)->elements[3]; +c_73344.elements[4] = ((closureN)self_73226)->elements[4]; + + +make_cell(c_73525,rounded_73106); +return_direct_with_clo1(data,(closure)&c_73344,__lambda_60, &c_73525);; +} + +static void __lambda_60(void *data, int argc, object self_73227, object rounded_73106) { + +closureN_type c_73346; +c_73346.hdr.mark = gc_color_red; + c_73346.hdr.grayed = 0; +c_73346.tag = closureN_tag; + c_73346.fn = (function_type)__lambda_17; +c_73346.pc = 0; +c_73346.num_args = 1; +c_73346.num_elements = 6; +c_73346.elements = (object *)alloca(sizeof(object) * 6); +c_73346.elements[0] = ((closureN)self_73227)->elements[0]; +c_73346.elements[1] = ((closureN)self_73227)->elements[1]; +c_73346.elements[2] = ((closureN)self_73227)->elements[2]; +c_73346.elements[3] = ((closureN)self_73227)->elements[3]; +c_73346.elements[4] = rounded_73106; +c_73346.elements[5] = ((closureN)self_73227)->elements[4]; + + +mclosure0(c_73509, (function_type)__lambda_56);c_73509.num_args = 1; +return_direct_with_clo1(data,(closure)&c_73346,__lambda_17, Cyc_set_cell(data, rounded_73106, &c_73509));; +} + +static void __lambda_56(void *data, int argc, object self_73228, object k_73207, object x_7345_73108) { + +complex_num_type local_73521; object c_73522 = Cyc_fast_mul(data,&local_73521,obj_int2obj(1000), x_7345_73108); + +complex_num_type local_73517; object c_73518 = ((inline_function_type) + ((closure)__glo_round_191_191inline_191_191_scheme_base)->fn)(data,&local_73517,c_73522); + +complex_num_type local_73513; object c_73514 = Cyc_fast_div(data,&local_73513,c_73518, obj_int2obj(1000)); +return_closcall1(data, k_73207, c_73514);; +} + +static void __lambda_17(void *data, int argc, object self_73229, object r_73161) { + +closureN_type c_73348; +c_73348.hdr.mark = gc_color_red; + c_73348.hdr.grayed = 0; +c_73348.tag = closureN_tag; + c_73348.fn = (function_type)__lambda_18; +c_73348.pc = 0; +c_73348.num_args = 1; +c_73348.num_elements = 6; +c_73348.elements = (object *)alloca(sizeof(object) * 6); +c_73348.elements[0] = ((closureN)self_73229)->elements[0]; +c_73348.elements[1] = ((closureN)self_73229)->elements[1]; +c_73348.elements[2] = ((closureN)self_73229)->elements[2]; +c_73348.elements[3] = ((closureN)self_73229)->elements[3]; +c_73348.elements[4] = ((closureN)self_73229)->elements[4]; +c_73348.elements[5] = ((closureN)self_73229)->elements[5]; + + +make_utf8_string_with_len(c_73506, "Running ", 8, 8); +return_closcall2(data, __glo_display_scheme_write, &c_73348, &c_73506);; +} + +static void __lambda_18(void *data, int argc, object self_73230, object r_73162) { + +closureN_type c_73350; +c_73350.hdr.mark = gc_color_red; + c_73350.hdr.grayed = 0; +c_73350.tag = closureN_tag; + c_73350.fn = (function_type)__lambda_19; +c_73350.pc = 0; +c_73350.num_args = 1; +c_73350.num_elements = 6; +c_73350.elements = (object *)alloca(sizeof(object) * 6); +c_73350.elements[0] = ((closureN)self_73230)->elements[0]; +c_73350.elements[1] = ((closureN)self_73230)->elements[1]; +c_73350.elements[2] = ((closureN)self_73230)->elements[2]; +c_73350.elements[3] = ((closureN)self_73230)->elements[3]; +c_73350.elements[4] = ((closureN)self_73230)->elements[4]; +c_73350.elements[5] = ((closureN)self_73230)->elements[5]; + +return_closcall2(data, __glo_display_scheme_write, &c_73350, ((closureN)self_73230)->elements[2]);; +} + +static void __lambda_19(void *data, int argc, object self_73231, object r_73163) { + +closureN_type c_73352; +c_73352.hdr.mark = gc_color_red; + c_73352.hdr.grayed = 0; +c_73352.tag = closureN_tag; + c_73352.fn = (function_type)__lambda_20; +c_73352.pc = 0; +c_73352.num_args = 1; +c_73352.num_elements = 6; +c_73352.elements = (object *)alloca(sizeof(object) * 6); +c_73352.elements[0] = ((closureN)self_73231)->elements[0]; +c_73352.elements[1] = ((closureN)self_73231)->elements[1]; +c_73352.elements[2] = ((closureN)self_73231)->elements[2]; +c_73352.elements[3] = ((closureN)self_73231)->elements[3]; +c_73352.elements[4] = ((closureN)self_73231)->elements[4]; +c_73352.elements[5] = ((closureN)self_73231)->elements[5]; + +return_closcall1(data, __glo_newline_scheme_base, &c_73352);; +} + +static void __lambda_20(void *data, int argc, object self_73232, object r_73164) { + +closureN_type c_73354; +c_73354.hdr.mark = gc_color_red; + c_73354.hdr.grayed = 0; +c_73354.tag = closureN_tag; + c_73354.fn = (function_type)__lambda_21; +c_73354.pc = 0; +c_73354.num_args = 1; +c_73354.num_elements = 6; +c_73354.elements = (object *)alloca(sizeof(object) * 6); +c_73354.elements[0] = ((closureN)self_73232)->elements[0]; +c_73354.elements[1] = ((closureN)self_73232)->elements[1]; +c_73354.elements[2] = ((closureN)self_73232)->elements[2]; +c_73354.elements[3] = ((closureN)self_73232)->elements[3]; +c_73354.elements[4] = ((closureN)self_73232)->elements[4]; +c_73354.elements[5] = ((closureN)self_73232)->elements[5]; + +return_closcall1(data, __glo_current_91output_91port_scheme_base, &c_73354);; +} + +static void __lambda_21(void *data, int argc, object self_73233, object r_73205) { + +closureN_type c_73356; +c_73356.hdr.mark = gc_color_red; + c_73356.hdr.grayed = 0; +c_73356.tag = closureN_tag; + c_73356.fn = (function_type)__lambda_22; +c_73356.pc = 0; +c_73356.num_args = 1; +c_73356.num_elements = 6; +c_73356.elements = (object *)alloca(sizeof(object) * 6); +c_73356.elements[0] = ((closureN)self_73233)->elements[0]; +c_73356.elements[1] = ((closureN)self_73233)->elements[1]; +c_73356.elements[2] = ((closureN)self_73233)->elements[2]; +c_73356.elements[3] = ((closureN)self_73233)->elements[3]; +c_73356.elements[4] = ((closureN)self_73233)->elements[4]; +c_73356.elements[5] = ((closureN)self_73233)->elements[5]; + +return_closcall2(data, __glo_flush_91output_91port_scheme_base, &c_73356, r_73205);; +} + +static void __lambda_22(void *data, int argc, object self_73234, object r_73165) { + +closureN_type c_73358; +c_73358.hdr.mark = gc_color_red; + c_73358.hdr.grayed = 0; +c_73358.tag = closureN_tag; + c_73358.fn = (function_type)__lambda_23; +c_73358.pc = 0; +c_73358.num_args = 1; +c_73358.num_elements = 6; +c_73358.elements = (object *)alloca(sizeof(object) * 6); +c_73358.elements[0] = ((closureN)self_73234)->elements[0]; +c_73358.elements[1] = ((closureN)self_73234)->elements[1]; +c_73358.elements[2] = ((closureN)self_73234)->elements[2]; +c_73358.elements[3] = ((closureN)self_73234)->elements[3]; +c_73358.elements[4] = ((closureN)self_73234)->elements[4]; +c_73358.elements[5] = ((closureN)self_73234)->elements[5]; + +return_closcall1(data, __glo_jiffies_91per_91second_scheme_time, &c_73358);; +} + +static void __lambda_23(void *data, int argc, object self_73235, object j_95s_7348_73109) { + +closureN_type c_73360; +c_73360.hdr.mark = gc_color_red; + c_73360.hdr.grayed = 0; +c_73360.tag = closureN_tag; + c_73360.fn = (function_type)__lambda_24; +c_73360.pc = 0; +c_73360.num_args = 1; +c_73360.num_elements = 7; +c_73360.elements = (object *)alloca(sizeof(object) * 7); +c_73360.elements[0] = ((closureN)self_73235)->elements[0]; +c_73360.elements[1] = j_95s_7348_73109; +c_73360.elements[2] = ((closureN)self_73235)->elements[1]; +c_73360.elements[3] = ((closureN)self_73235)->elements[2]; +c_73360.elements[4] = ((closureN)self_73235)->elements[3]; +c_73360.elements[5] = ((closureN)self_73235)->elements[4]; +c_73360.elements[6] = ((closureN)self_73235)->elements[5]; + +return_closcall1(data, __glo_current_91second_scheme_time, &c_73360);; +} + +static void __lambda_24(void *data, int argc, object self_73236, object t0_7351_73110) { + +closureN_type c_73362; +c_73362.hdr.mark = gc_color_red; + c_73362.hdr.grayed = 0; +c_73362.tag = closureN_tag; + c_73362.fn = (function_type)__lambda_25; +c_73362.pc = 0; +c_73362.num_args = 1; +c_73362.num_elements = 8; +c_73362.elements = (object *)alloca(sizeof(object) * 8); +c_73362.elements[0] = ((closureN)self_73236)->elements[0]; +c_73362.elements[1] = ((closureN)self_73236)->elements[1]; +c_73362.elements[2] = ((closureN)self_73236)->elements[2]; +c_73362.elements[3] = ((closureN)self_73236)->elements[3]; +c_73362.elements[4] = ((closureN)self_73236)->elements[4]; +c_73362.elements[5] = ((closureN)self_73236)->elements[5]; +c_73362.elements[6] = t0_7351_73110; +c_73362.elements[7] = ((closureN)self_73236)->elements[6]; + +return_closcall1(data, __glo_current_91jiffy_scheme_time, &c_73362);; +} + +static void __lambda_25(void *data, int argc, object self_73237, object j0_7354_73111) { + +closureN_type c_73364; +c_73364.hdr.mark = gc_color_red; + c_73364.hdr.grayed = 0; +c_73364.tag = closureN_tag; + c_73364.fn = (function_type)__lambda_26; +c_73364.pc = 0; +c_73364.num_args = 1; +c_73364.num_elements = 9; +c_73364.elements = (object *)alloca(sizeof(object) * 9); +c_73364.elements[0] = ((closureN)self_73237)->elements[0]; +c_73364.elements[1] = ((closureN)self_73237)->elements[1]; +c_73364.elements[2] = j0_7354_73111; +c_73364.elements[3] = ((closureN)self_73237)->elements[2]; +c_73364.elements[4] = ((closureN)self_73237)->elements[3]; +c_73364.elements[5] = ((closureN)self_73237)->elements[4]; +c_73364.elements[6] = ((closureN)self_73237)->elements[5]; +c_73364.elements[7] = ((closureN)self_73237)->elements[6]; +c_73364.elements[8] = ((closureN)self_73237)->elements[7]; + +return_direct_with_clo1(data,(closure)&c_73364,__lambda_26, boolean_f);; +} + +static void __lambda_26(void *data, int argc, object self_73238, object loop_7359_73114) { + +closureN_type c_73366; +c_73366.hdr.mark = gc_color_red; + c_73366.hdr.grayed = 0; +c_73366.tag = closureN_tag; + c_73366.fn = (function_type)__lambda_59; +c_73366.pc = 0; +c_73366.num_args = 1; +c_73366.num_elements = 9; +c_73366.elements = (object *)alloca(sizeof(object) * 9); +c_73366.elements[0] = ((closureN)self_73238)->elements[0]; +c_73366.elements[1] = ((closureN)self_73238)->elements[1]; +c_73366.elements[2] = ((closureN)self_73238)->elements[2]; +c_73366.elements[3] = ((closureN)self_73238)->elements[3]; +c_73366.elements[4] = ((closureN)self_73238)->elements[4]; +c_73366.elements[5] = ((closureN)self_73238)->elements[5]; +c_73366.elements[6] = ((closureN)self_73238)->elements[6]; +c_73366.elements[7] = ((closureN)self_73238)->elements[7]; +c_73366.elements[8] = ((closureN)self_73238)->elements[8]; + + +make_cell(c_73504,loop_7359_73114); +return_direct_with_clo1(data,(closure)&c_73366,__lambda_59, &c_73504);; +} + +static void __lambda_59(void *data, int argc, object self_73239, object loop_7359_73114) { + +closureN_type c_73368; +c_73368.hdr.mark = gc_color_red; + c_73368.hdr.grayed = 0; +c_73368.tag = closureN_tag; + c_73368.fn = (function_type)__lambda_27; +c_73368.pc = 0; +c_73368.num_args = 1; +c_73368.num_elements = 2; +c_73368.elements = (object *)alloca(sizeof(object) * 2); +c_73368.elements[0] = ((closureN)self_73239)->elements[3]; +c_73368.elements[1] = loop_7359_73114; + + +closureN_type c_73376; +c_73376.hdr.mark = gc_color_red; + c_73376.hdr.grayed = 0; +c_73376.tag = closureN_tag; + c_73376.fn = (function_type)__lambda_28; +c_73376.pc = 0; +c_73376.num_args = 2; +c_73376.num_elements = 9; +c_73376.elements = (object *)alloca(sizeof(object) * 9); +c_73376.elements[0] = ((closureN)self_73239)->elements[0]; +c_73376.elements[1] = ((closureN)self_73239)->elements[1]; +c_73376.elements[2] = ((closureN)self_73239)->elements[2]; +c_73376.elements[3] = loop_7359_73114; +c_73376.elements[4] = ((closureN)self_73239)->elements[4]; +c_73376.elements[5] = ((closureN)self_73239)->elements[5]; +c_73376.elements[6] = ((closureN)self_73239)->elements[6]; +c_73376.elements[7] = ((closureN)self_73239)->elements[7]; +c_73376.elements[8] = ((closureN)self_73239)->elements[8]; + +return_direct_with_clo1(data,(closure)&c_73368,__lambda_27, Cyc_set_cell(data, loop_7359_73114, &c_73376));; +} + +static void __lambda_28(void *data, int argc, object self_73240, object k_73171, object i_7360_73115, object result_7361_73116) { + object c_73379 = Cyc_num_fast_lt_op(data,i_7360_73115, ((closureN)self_73240)->elements[0]); +if( (boolean_f != c_73379) ){ + +closureN_type c_73383; +c_73383.hdr.mark = gc_color_red; + c_73383.hdr.grayed = 0; +c_73383.tag = closureN_tag; + c_73383.fn = (function_type)__lambda_29; +c_73383.pc = 0; +c_73383.num_args = 1; +c_73383.num_elements = 3; +c_73383.elements = (object *)alloca(sizeof(object) * 3); +c_73383.elements[0] = i_7360_73115; +c_73383.elements[1] = k_73171; +c_73383.elements[2] = ((closureN)self_73240)->elements[3]; + +return_closcall1(data, ((closureN)self_73240)->elements[8], &c_73383); +} else { + +closureN_type c_73396; +c_73396.hdr.mark = gc_color_red; + c_73396.hdr.grayed = 0; +c_73396.tag = closureN_tag; + c_73396.fn = (function_type)__lambda_30; +c_73396.pc = 0; +c_73396.num_args = 1; +c_73396.num_elements = 7; +c_73396.elements = (object *)alloca(sizeof(object) * 7); +c_73396.elements[0] = ((closureN)self_73240)->elements[1]; +c_73396.elements[1] = ((closureN)self_73240)->elements[2]; +c_73396.elements[2] = k_73171; +c_73396.elements[3] = ((closureN)self_73240)->elements[4]; +c_73396.elements[4] = result_7361_73116; +c_73396.elements[5] = ((closureN)self_73240)->elements[6]; +c_73396.elements[6] = ((closureN)self_73240)->elements[7]; + +return_closcall2(data, ((closureN)self_73240)->elements[5], &c_73396, result_7361_73116);} +; +} + +static void __lambda_30(void *data, int argc, object self_73242, object r_73175) { + if( (boolean_f != r_73175) ){ + +closureN_type c_73398; +c_73398.hdr.mark = gc_color_red; + c_73398.hdr.grayed = 0; +c_73398.tag = closureN_tag; + c_73398.fn = (function_type)__lambda_31; +c_73398.pc = 0; +c_73398.num_args = 1; +c_73398.num_elements = 7; +c_73398.elements = (object *)alloca(sizeof(object) * 7); +c_73398.elements[0] = ((closureN)self_73242)->elements[0]; +c_73398.elements[1] = ((closureN)self_73242)->elements[1]; +c_73398.elements[2] = ((closureN)self_73242)->elements[2]; +c_73398.elements[3] = ((closureN)self_73242)->elements[3]; +c_73398.elements[4] = ((closureN)self_73242)->elements[4]; +c_73398.elements[5] = ((closureN)self_73242)->elements[5]; +c_73398.elements[6] = ((closureN)self_73242)->elements[6]; + +return_closcall1(data, __glo_current_91jiffy_scheme_time, &c_73398); +} else { + +closureN_type c_73488; +c_73488.hdr.mark = gc_color_red; + c_73488.hdr.grayed = 0; +c_73488.tag = closureN_tag; + c_73488.fn = (function_type)__lambda_51; +c_73488.pc = 0; +c_73488.num_args = 1; +c_73488.num_elements = 2; +c_73488.elements = (object *)alloca(sizeof(object) * 2); +c_73488.elements[0] = ((closureN)self_73242)->elements[2]; +c_73488.elements[1] = ((closureN)self_73242)->elements[4]; + + +make_utf8_string_with_len(c_73501, "ERROR: returned incorrect result: ", 34, 34); +return_closcall2(data, __glo_display_scheme_write, &c_73488, &c_73501);} +; +} + +static void __lambda_51(void *data, int argc, object self_73263, object r_73200) { + +closureN_type c_73490; +c_73490.hdr.mark = gc_color_red; + c_73490.hdr.grayed = 0; +c_73490.tag = closureN_tag; + c_73490.fn = (function_type)__lambda_52; +c_73490.pc = 0; +c_73490.num_args = 1; +c_73490.num_elements = 2; +c_73490.elements = (object *)alloca(sizeof(object) * 2); +c_73490.elements[0] = ((closureN)self_73263)->elements[0]; +c_73490.elements[1] = ((closureN)self_73263)->elements[1]; + +return_closcall2(data, __glo_write_scheme_write, &c_73490, ((closureN)self_73263)->elements[1]);; +} + +static void __lambda_52(void *data, int argc, object self_73264, object r_73201) { + +closureN_type c_73492; +c_73492.hdr.mark = gc_color_red; + c_73492.hdr.grayed = 0; +c_73492.tag = closureN_tag; + c_73492.fn = (function_type)__lambda_53; +c_73492.pc = 0; +c_73492.num_args = 1; +c_73492.num_elements = 2; +c_73492.elements = (object *)alloca(sizeof(object) * 2); +c_73492.elements[0] = ((closureN)self_73264)->elements[0]; +c_73492.elements[1] = ((closureN)self_73264)->elements[1]; + +return_closcall1(data, __glo_newline_scheme_base, &c_73492);; +} + +static void __lambda_53(void *data, int argc, object self_73265, object r_73202) { + +closureN_type c_73494; +c_73494.hdr.mark = gc_color_red; + c_73494.hdr.grayed = 0; +c_73494.tag = closureN_tag; + c_73494.fn = (function_type)__lambda_54; +c_73494.pc = 0; +c_73494.num_args = 1; +c_73494.num_elements = 2; +c_73494.elements = (object *)alloca(sizeof(object) * 2); +c_73494.elements[0] = ((closureN)self_73265)->elements[0]; +c_73494.elements[1] = ((closureN)self_73265)->elements[1]; + +return_closcall1(data, __glo_current_91output_91port_scheme_base, &c_73494);; +} + +static void __lambda_54(void *data, int argc, object self_73266, object r_73204) { + +closureN_type c_73496; +c_73496.hdr.mark = gc_color_red; + c_73496.hdr.grayed = 0; +c_73496.tag = closureN_tag; + c_73496.fn = (function_type)__lambda_55; +c_73496.pc = 0; +c_73496.num_args = 1; +c_73496.num_elements = 2; +c_73496.elements = (object *)alloca(sizeof(object) * 2); +c_73496.elements[0] = ((closureN)self_73266)->elements[0]; +c_73496.elements[1] = ((closureN)self_73266)->elements[1]; + +return_closcall2(data, __glo_flush_91output_91port_scheme_base, &c_73496, r_73204);; +} + +static void __lambda_55(void *data, int argc, object self_73267, object r_73203) { + return_closcall1(data, ((closureN)self_73267)->elements[0], ((closureN)self_73267)->elements[1]);; +} + +static void __lambda_31(void *data, int argc, object self_73243, object j1_7370_73117) { + +closureN_type c_73400; +c_73400.hdr.mark = gc_color_red; + c_73400.hdr.grayed = 0; +c_73400.tag = closureN_tag; + c_73400.fn = (function_type)__lambda_32; +c_73400.pc = 0; +c_73400.num_args = 1; +c_73400.num_elements = 8; +c_73400.elements = (object *)alloca(sizeof(object) * 8); +c_73400.elements[0] = ((closureN)self_73243)->elements[0]; +c_73400.elements[1] = ((closureN)self_73243)->elements[1]; +c_73400.elements[2] = j1_7370_73117; +c_73400.elements[3] = ((closureN)self_73243)->elements[2]; +c_73400.elements[4] = ((closureN)self_73243)->elements[3]; +c_73400.elements[5] = ((closureN)self_73243)->elements[4]; +c_73400.elements[6] = ((closureN)self_73243)->elements[5]; +c_73400.elements[7] = ((closureN)self_73243)->elements[6]; + +return_closcall1(data, __glo_current_91second_scheme_time, &c_73400);; +} + +static void __lambda_32(void *data, int argc, object self_73244, object t1_7373_73118) { + +closureN_type c_73405; +c_73405.hdr.mark = gc_color_red; + c_73405.hdr.grayed = 0; +c_73405.tag = closureN_tag; + c_73405.fn = (function_type)__lambda_33; +c_73405.pc = 0; +c_73405.num_args = 1; +c_73405.num_elements = 6; +c_73405.elements = (object *)alloca(sizeof(object) * 6); +c_73405.elements[0] = ((closureN)self_73244)->elements[0]; +c_73405.elements[1] = ((closureN)self_73244)->elements[1]; +c_73405.elements[2] = ((closureN)self_73244)->elements[2]; +c_73405.elements[3] = ((closureN)self_73244)->elements[3]; +c_73405.elements[4] = ((closureN)self_73244)->elements[4]; +c_73405.elements[5] = ((closureN)self_73244)->elements[5]; + + +complex_num_type local_73484; object c_73485 = Cyc_fast_sub(data,&local_73484,t1_7373_73118, ((closureN)self_73244)->elements[7]); +return_closcall2(data, car(((closureN)self_73244)->elements[6]), &c_73405, c_73485);; +} + +static void __lambda_33(void *data, int argc, object self_73245, object secs2_7382_73121) { + +closureN_type c_73407; +c_73407.hdr.mark = gc_color_red; + c_73407.hdr.grayed = 0; +c_73407.tag = closureN_tag; + c_73407.fn = (function_type)__lambda_34; +c_73407.pc = 0; +c_73407.num_args = 1; +c_73407.num_elements = 7; +c_73407.elements = (object *)alloca(sizeof(object) * 7); +c_73407.elements[0] = ((closureN)self_73245)->elements[0]; +c_73407.elements[1] = ((closureN)self_73245)->elements[1]; +c_73407.elements[2] = ((closureN)self_73245)->elements[2]; +c_73407.elements[3] = ((closureN)self_73245)->elements[3]; +c_73407.elements[4] = ((closureN)self_73245)->elements[4]; +c_73407.elements[5] = ((closureN)self_73245)->elements[5]; +c_73407.elements[6] = secs2_7382_73121; + + +make_utf8_string_with_len(c_73481, "Elapsed time: ", 14, 14); +return_closcall2(data, __glo_display_scheme_write, &c_73407, &c_73481);; +} + +static void __lambda_34(void *data, int argc, object self_73246, object r_73182) { + +closureN_type c_73409; +c_73409.hdr.mark = gc_color_red; + c_73409.hdr.grayed = 0; +c_73409.tag = closureN_tag; + c_73409.fn = (function_type)__lambda_35; +c_73409.pc = 0; +c_73409.num_args = 1; +c_73409.num_elements = 7; +c_73409.elements = (object *)alloca(sizeof(object) * 7); +c_73409.elements[0] = ((closureN)self_73246)->elements[0]; +c_73409.elements[1] = ((closureN)self_73246)->elements[1]; +c_73409.elements[2] = ((closureN)self_73246)->elements[2]; +c_73409.elements[3] = ((closureN)self_73246)->elements[3]; +c_73409.elements[4] = ((closureN)self_73246)->elements[4]; +c_73409.elements[5] = ((closureN)self_73246)->elements[5]; +c_73409.elements[6] = ((closureN)self_73246)->elements[6]; + + +complex_num_type local_73476; object c_73477 = Cyc_fast_sub(data,&local_73476,((closureN)self_73246)->elements[2], ((closureN)self_73246)->elements[1]); + +complex_num_type local_73472; object c_73473 = Cyc_fast_div(data,&local_73472,c_73477, ((closureN)self_73246)->elements[0]); + +complex_num_type local_73468; object c_73469 = ((inline_function_type) + ((closure)__glo_inexact_191_191inline_191_191_scheme_base)->fn)(data,&local_73468,c_73473); +return_closcall2(data, __glo_write_scheme_write, &c_73409, c_73469);; +} + +static void __lambda_35(void *data, int argc, object self_73247, object r_73183) { + +closureN_type c_73411; +c_73411.hdr.mark = gc_color_red; + c_73411.hdr.grayed = 0; +c_73411.tag = closureN_tag; + c_73411.fn = (function_type)__lambda_36; +c_73411.pc = 0; +c_73411.num_args = 1; +c_73411.num_elements = 7; +c_73411.elements = (object *)alloca(sizeof(object) * 7); +c_73411.elements[0] = ((closureN)self_73247)->elements[0]; +c_73411.elements[1] = ((closureN)self_73247)->elements[1]; +c_73411.elements[2] = ((closureN)self_73247)->elements[2]; +c_73411.elements[3] = ((closureN)self_73247)->elements[3]; +c_73411.elements[4] = ((closureN)self_73247)->elements[4]; +c_73411.elements[5] = ((closureN)self_73247)->elements[5]; +c_73411.elements[6] = ((closureN)self_73247)->elements[6]; + + +make_utf8_string_with_len(c_73465, " seconds (", 10, 10); +return_closcall2(data, __glo_display_scheme_write, &c_73411, &c_73465);; +} + +static void __lambda_36(void *data, int argc, object self_73248, object r_73184) { + +closureN_type c_73413; +c_73413.hdr.mark = gc_color_red; + c_73413.hdr.grayed = 0; +c_73413.tag = closureN_tag; + c_73413.fn = (function_type)__lambda_37; +c_73413.pc = 0; +c_73413.num_args = 1; +c_73413.num_elements = 6; +c_73413.elements = (object *)alloca(sizeof(object) * 6); +c_73413.elements[0] = ((closureN)self_73248)->elements[0]; +c_73413.elements[1] = ((closureN)self_73248)->elements[1]; +c_73413.elements[2] = ((closureN)self_73248)->elements[2]; +c_73413.elements[3] = ((closureN)self_73248)->elements[3]; +c_73413.elements[4] = ((closureN)self_73248)->elements[4]; +c_73413.elements[5] = ((closureN)self_73248)->elements[5]; + +return_closcall2(data, __glo_write_scheme_write, &c_73413, ((closureN)self_73248)->elements[6]);; +} + +static void __lambda_37(void *data, int argc, object self_73249, object r_73185) { + +closureN_type c_73415; +c_73415.hdr.mark = gc_color_red; + c_73415.hdr.grayed = 0; +c_73415.tag = closureN_tag; + c_73415.fn = (function_type)__lambda_38; +c_73415.pc = 0; +c_73415.num_args = 1; +c_73415.num_elements = 6; +c_73415.elements = (object *)alloca(sizeof(object) * 6); +c_73415.elements[0] = ((closureN)self_73249)->elements[0]; +c_73415.elements[1] = ((closureN)self_73249)->elements[1]; +c_73415.elements[2] = ((closureN)self_73249)->elements[2]; +c_73415.elements[3] = ((closureN)self_73249)->elements[3]; +c_73415.elements[4] = ((closureN)self_73249)->elements[4]; +c_73415.elements[5] = ((closureN)self_73249)->elements[5]; + + +make_utf8_string_with_len(c_73463, ") for ", 6, 6); +return_closcall2(data, __glo_display_scheme_write, &c_73415, &c_73463);; +} + +static void __lambda_38(void *data, int argc, object self_73250, object r_73186) { + +closureN_type c_73417; +c_73417.hdr.mark = gc_color_red; + c_73417.hdr.grayed = 0; +c_73417.tag = closureN_tag; + c_73417.fn = (function_type)__lambda_39; +c_73417.pc = 0; +c_73417.num_args = 1; +c_73417.num_elements = 6; +c_73417.elements = (object *)alloca(sizeof(object) * 6); +c_73417.elements[0] = ((closureN)self_73250)->elements[0]; +c_73417.elements[1] = ((closureN)self_73250)->elements[1]; +c_73417.elements[2] = ((closureN)self_73250)->elements[2]; +c_73417.elements[3] = ((closureN)self_73250)->elements[3]; +c_73417.elements[4] = ((closureN)self_73250)->elements[4]; +c_73417.elements[5] = ((closureN)self_73250)->elements[5]; + +return_closcall2(data, __glo_display_scheme_write, &c_73417, ((closureN)self_73250)->elements[4]);; +} + +static void __lambda_39(void *data, int argc, object self_73251, object r_73187) { + +closureN_type c_73419; +c_73419.hdr.mark = gc_color_red; + c_73419.hdr.grayed = 0; +c_73419.tag = closureN_tag; + c_73419.fn = (function_type)__lambda_40; +c_73419.pc = 0; +c_73419.num_args = 1; +c_73419.num_elements = 6; +c_73419.elements = (object *)alloca(sizeof(object) * 6); +c_73419.elements[0] = ((closureN)self_73251)->elements[0]; +c_73419.elements[1] = ((closureN)self_73251)->elements[1]; +c_73419.elements[2] = ((closureN)self_73251)->elements[2]; +c_73419.elements[3] = ((closureN)self_73251)->elements[3]; +c_73419.elements[4] = ((closureN)self_73251)->elements[4]; +c_73419.elements[5] = ((closureN)self_73251)->elements[5]; + +return_closcall1(data, __glo_newline_scheme_base, &c_73419);; +} + +static void __lambda_40(void *data, int argc, object self_73252, object r_73188) { + +closureN_type c_73421; +c_73421.hdr.mark = gc_color_red; + c_73421.hdr.grayed = 0; +c_73421.tag = closureN_tag; + c_73421.fn = (function_type)__lambda_41; +c_73421.pc = 0; +c_73421.num_args = 1; +c_73421.num_elements = 6; +c_73421.elements = (object *)alloca(sizeof(object) * 6); +c_73421.elements[0] = ((closureN)self_73252)->elements[0]; +c_73421.elements[1] = ((closureN)self_73252)->elements[1]; +c_73421.elements[2] = ((closureN)self_73252)->elements[2]; +c_73421.elements[3] = ((closureN)self_73252)->elements[3]; +c_73421.elements[4] = ((closureN)self_73252)->elements[4]; +c_73421.elements[5] = ((closureN)self_73252)->elements[5]; + + +make_utf8_string_with_len(c_73461, "+!CSVLINE!+", 11, 11); +return_closcall2(data, __glo_display_scheme_write, &c_73421, &c_73461);; +} + +static void __lambda_41(void *data, int argc, object self_73253, object r_73189) { + +closureN_type c_73423; +c_73423.hdr.mark = gc_color_red; + c_73423.hdr.grayed = 0; +c_73423.tag = closureN_tag; + c_73423.fn = (function_type)__lambda_42; +c_73423.pc = 0; +c_73423.num_args = 1; +c_73423.num_elements = 6; +c_73423.elements = (object *)alloca(sizeof(object) * 6); +c_73423.elements[0] = ((closureN)self_73253)->elements[0]; +c_73423.elements[1] = ((closureN)self_73253)->elements[1]; +c_73423.elements[2] = ((closureN)self_73253)->elements[2]; +c_73423.elements[3] = ((closureN)self_73253)->elements[3]; +c_73423.elements[4] = ((closureN)self_73253)->elements[4]; +c_73423.elements[5] = ((closureN)self_73253)->elements[5]; + +return_closcall1(data, __glo_this_91scheme_91implementation_91name, &c_73423);; +} + +static void __lambda_42(void *data, int argc, object self_73254, object r_73197) { + +closureN_type c_73425; +c_73425.hdr.mark = gc_color_red; + c_73425.hdr.grayed = 0; +c_73425.tag = closureN_tag; + c_73425.fn = (function_type)__lambda_43; +c_73425.pc = 0; +c_73425.num_args = 1; +c_73425.num_elements = 6; +c_73425.elements = (object *)alloca(sizeof(object) * 6); +c_73425.elements[0] = ((closureN)self_73254)->elements[0]; +c_73425.elements[1] = ((closureN)self_73254)->elements[1]; +c_73425.elements[2] = ((closureN)self_73254)->elements[2]; +c_73425.elements[3] = ((closureN)self_73254)->elements[3]; +c_73425.elements[4] = ((closureN)self_73254)->elements[4]; +c_73425.elements[5] = ((closureN)self_73254)->elements[5]; + +return_closcall2(data, __glo_display_scheme_write, &c_73425, r_73197);; +} + +static void __lambda_43(void *data, int argc, object self_73255, object r_73190) { + +closureN_type c_73427; +c_73427.hdr.mark = gc_color_red; + c_73427.hdr.grayed = 0; +c_73427.tag = closureN_tag; + c_73427.fn = (function_type)__lambda_44; +c_73427.pc = 0; +c_73427.num_args = 1; +c_73427.num_elements = 6; +c_73427.elements = (object *)alloca(sizeof(object) * 6); +c_73427.elements[0] = ((closureN)self_73255)->elements[0]; +c_73427.elements[1] = ((closureN)self_73255)->elements[1]; +c_73427.elements[2] = ((closureN)self_73255)->elements[2]; +c_73427.elements[3] = ((closureN)self_73255)->elements[3]; +c_73427.elements[4] = ((closureN)self_73255)->elements[4]; +c_73427.elements[5] = ((closureN)self_73255)->elements[5]; + + +make_utf8_string_with_len(c_73460, ",", 1, 1); +return_closcall2(data, __glo_display_scheme_write, &c_73427, &c_73460);; +} + +static void __lambda_44(void *data, int argc, object self_73256, object r_73191) { + +closureN_type c_73429; +c_73429.hdr.mark = gc_color_red; + c_73429.hdr.grayed = 0; +c_73429.tag = closureN_tag; + c_73429.fn = (function_type)__lambda_45; +c_73429.pc = 0; +c_73429.num_args = 1; +c_73429.num_elements = 5; +c_73429.elements = (object *)alloca(sizeof(object) * 5); +c_73429.elements[0] = ((closureN)self_73256)->elements[0]; +c_73429.elements[1] = ((closureN)self_73256)->elements[1]; +c_73429.elements[2] = ((closureN)self_73256)->elements[2]; +c_73429.elements[3] = ((closureN)self_73256)->elements[3]; +c_73429.elements[4] = ((closureN)self_73256)->elements[5]; + +return_closcall2(data, __glo_display_scheme_write, &c_73429, ((closureN)self_73256)->elements[4]);; +} + +static void __lambda_45(void *data, int argc, object self_73257, object r_73192) { + +closureN_type c_73431; +c_73431.hdr.mark = gc_color_red; + c_73431.hdr.grayed = 0; +c_73431.tag = closureN_tag; + c_73431.fn = (function_type)__lambda_46; +c_73431.pc = 0; +c_73431.num_args = 1; +c_73431.num_elements = 5; +c_73431.elements = (object *)alloca(sizeof(object) * 5); +c_73431.elements[0] = ((closureN)self_73257)->elements[0]; +c_73431.elements[1] = ((closureN)self_73257)->elements[1]; +c_73431.elements[2] = ((closureN)self_73257)->elements[2]; +c_73431.elements[3] = ((closureN)self_73257)->elements[3]; +c_73431.elements[4] = ((closureN)self_73257)->elements[4]; + + +make_utf8_string_with_len(c_73458, ",", 1, 1); +return_closcall2(data, __glo_display_scheme_write, &c_73431, &c_73458);; +} + +static void __lambda_46(void *data, int argc, object self_73258, object r_73193) { + +closureN_type c_73433; +c_73433.hdr.mark = gc_color_red; + c_73433.hdr.grayed = 0; +c_73433.tag = closureN_tag; + c_73433.fn = (function_type)__lambda_47; +c_73433.pc = 0; +c_73433.num_args = 1; +c_73433.num_elements = 2; +c_73433.elements = (object *)alloca(sizeof(object) * 2); +c_73433.elements[0] = ((closureN)self_73258)->elements[3]; +c_73433.elements[1] = ((closureN)self_73258)->elements[4]; + + +complex_num_type local_73453; object c_73454 = Cyc_fast_sub(data,&local_73453,((closureN)self_73258)->elements[2], ((closureN)self_73258)->elements[1]); + +complex_num_type local_73449; object c_73450 = Cyc_fast_div(data,&local_73449,c_73454, ((closureN)self_73258)->elements[0]); + +complex_num_type local_73445; object c_73446 = ((inline_function_type) + ((closure)__glo_inexact_191_191inline_191_191_scheme_base)->fn)(data,&local_73445,c_73450); +return_closcall2(data, __glo_display_scheme_write, &c_73433, c_73446);; +} + +static void __lambda_47(void *data, int argc, object self_73259, object r_73194) { + +closureN_type c_73435; +c_73435.hdr.mark = gc_color_red; + c_73435.hdr.grayed = 0; +c_73435.tag = closureN_tag; + c_73435.fn = (function_type)__lambda_48; +c_73435.pc = 0; +c_73435.num_args = 1; +c_73435.num_elements = 2; +c_73435.elements = (object *)alloca(sizeof(object) * 2); +c_73435.elements[0] = ((closureN)self_73259)->elements[0]; +c_73435.elements[1] = ((closureN)self_73259)->elements[1]; + +return_closcall1(data, __glo_newline_scheme_base, &c_73435);; +} + +static void __lambda_48(void *data, int argc, object self_73260, object r_73195) { + +closureN_type c_73437; +c_73437.hdr.mark = gc_color_red; + c_73437.hdr.grayed = 0; +c_73437.tag = closureN_tag; + c_73437.fn = (function_type)__lambda_49; +c_73437.pc = 0; +c_73437.num_args = 1; +c_73437.num_elements = 2; +c_73437.elements = (object *)alloca(sizeof(object) * 2); +c_73437.elements[0] = ((closureN)self_73260)->elements[0]; +c_73437.elements[1] = ((closureN)self_73260)->elements[1]; + +return_closcall1(data, __glo_current_91output_91port_scheme_base, &c_73437);; +} + +static void __lambda_49(void *data, int argc, object self_73261, object r_73196) { + +closureN_type c_73439; +c_73439.hdr.mark = gc_color_red; + c_73439.hdr.grayed = 0; +c_73439.tag = closureN_tag; + c_73439.fn = (function_type)__lambda_50; +c_73439.pc = 0; +c_73439.num_args = 1; +c_73439.num_elements = 2; +c_73439.elements = (object *)alloca(sizeof(object) * 2); +c_73439.elements[0] = ((closureN)self_73261)->elements[0]; +c_73439.elements[1] = ((closureN)self_73261)->elements[1]; + +return_closcall2(data, __glo_flush_91output_91port_scheme_base, &c_73439, r_73196);; +} + +static void __lambda_50(void *data, int argc, object self_73262, object r_73176) { + return_closcall1(data, ((closureN)self_73262)->elements[0], ((closureN)self_73262)->elements[1]);; +} + +static void __lambda_29(void *data, int argc, object self_73241, object r_73174) { + +complex_num_type local_73391; object c_73392 = Cyc_fast_sum(data,&local_73391,((closureN)self_73241)->elements[0], obj_int2obj(1)); +return_closcall3(data, car(((closureN)self_73241)->elements[2]), ((closureN)self_73241)->elements[1], c_73392, r_73174);; +} + +static void __lambda_27(void *data, int argc, object self_73268, object r_73169) { + return_closcall3(data, car(((closureN)self_73268)->elements[1]), ((closureN)self_73268)->elements[0], obj_int2obj(0), boolean_f);; +} + +static void __lambda_8(void *data, int argc, closure _,object k_73146, object r_7336_7396, object x_7337_7397) { + Cyc_st_add(data, "ack.scm:hide"); + +closureN_type c_73318; +c_73318.hdr.mark = gc_color_red; + c_73318.hdr.grayed = 0; +c_73318.tag = closureN_tag; + c_73318.fn = (function_type)__lambda_9; +c_73318.pc = 0; +c_73318.num_args = 0; +c_73318.num_elements = 1; +c_73318.elements = (object *)alloca(sizeof(object) * 1); +c_73318.elements[0] = r_7336_7396; + + +closureN_type c_73335; +c_73335.hdr.mark = gc_color_red; + c_73335.hdr.grayed = 0; +c_73335.tag = closureN_tag; + c_73335.fn = (function_type)__lambda_14; +c_73335.pc = 0; +c_73335.num_args = 2; +c_73335.num_elements = 1; +c_73335.elements = (object *)alloca(sizeof(object) * 1); +c_73335.elements[0] = x_7337_7397; + +return_closcall3(data, __glo_call_91with_91values_scheme_base, k_73146, &c_73318, &c_73335);; +} + +static void __lambda_14(void *data, int argc, object self_73225, object k_73149, object v_7339_7399, object i_7340_73100) { + return_closcall2(data, Cyc_vector_ref(data, v_7339_7399, i_7340_73100), k_73149, ((closureN)self_73225)->elements[0]);; +} + +static void __lambda_9(void *data, int argc, object self_73220, object k_73151) { + +closureN_type c_73320; +c_73320.hdr.mark = gc_color_red; + c_73320.hdr.grayed = 0; +c_73320.tag = closureN_tag; + c_73320.fn = (function_type)__lambda_10; +c_73320.pc = 0; +c_73320.num_args = 1; +c_73320.num_elements = 2; +c_73320.elements = (object *)alloca(sizeof(object) * 2); +c_73320.elements[0] = k_73151; +c_73320.elements[1] = ((closureN)self_73220)->elements[0]; + + +mclosure0(c_73333, (function_type)__lambda_13);c_73333.num_args = 1; +return_closcall3(data, __glo_vector_scheme_base, &c_73320, __glo_values_scheme_base, &c_73333);; +} + +static void __lambda_13(void *data, int argc, object self_73224, object k_73157, object x_7338_7398) { + return_closcall1(data, k_73157, x_7338_7398);; +} + +static void __lambda_10(void *data, int argc, object self_73221, object r_73152) { + +closureN_type c_73322; +c_73322.hdr.mark = gc_color_red; + c_73322.hdr.grayed = 0; +c_73322.tag = closureN_tag; + c_73322.fn = (function_type)__lambda_11; +c_73322.pc = 0; +c_73322.num_args = 0; +c_73322.num_elements = 1; +c_73322.elements = (object *)alloca(sizeof(object) * 1); +c_73322.elements[0] = ((closureN)self_73221)->elements[1]; + + +closureN_type c_73329; +c_73329.hdr.mark = gc_color_red; + c_73329.hdr.grayed = 0; +c_73329.tag = closureN_tag; + c_73329.fn = (function_type)__lambda_12; +c_73329.pc = 0; +c_73329.num_args = 1; +c_73329.num_elements = 2; +c_73329.elements = (object *)alloca(sizeof(object) * 2); +c_73329.elements[0] = ((closureN)self_73221)->elements[0]; +c_73329.elements[1] = r_73152; + +return_direct_with_clo1(data,(closure)&c_73322,__lambda_11, &c_73329);; +} + +static void __lambda_12(void *data, int argc, object self_73222, object r_73153) { + return_closcall3(data, __glo_values_scheme_base, ((closureN)self_73222)->elements[0], ((closureN)self_73222)->elements[1], r_73153);; +} + +static void __lambda_11(void *data, int argc, object self_73223, object k_73154) { + object c_73325 = Cyc_num_fast_lt_op(data,((closureN)self_73223)->elements[0], obj_int2obj(100)); +if( (boolean_f != c_73325) ){ + return_direct_with_clo1(data, k_73154,__lambda_12, obj_int2obj(0)); +} else { + return_direct_with_clo1(data, k_73154,__lambda_12, obj_int2obj(1));} +; +} + +static void __lambda_3(void *data, int argc, closure _,object k_73133) { + Cyc_st_add(data, "ack.scm:main"); + +make_utf8_string_with_len(c_73302, "ack:3:12:2", 10, 10); + +mclosure0(c_73303, (function_type)__lambda_4);c_73303.num_args = 0; + +mclosure0(c_73311, (function_type)__lambda_7);c_73311.num_args = 1; +return_closcall5(data, __glo_run_91r7rs_91benchmark, k_73133, &c_73302, obj_int2obj(2), &c_73303, &c_73311);; +} + +static void __lambda_7(void *data, int argc, object self_73219, object k_73140, object result_7335_7395) { + +object c_73315 = Cyc_num_fast_eq_op(data,result_7335_7395, obj_int2obj(32765)); +return_closcall1(data, k_73140, c_73315);; +} + +static void __lambda_4(void *data, int argc, object self_73216, object k_73141) { + +closureN_type c_73305; +c_73305.hdr.mark = gc_color_red; + c_73305.hdr.grayed = 0; +c_73305.tag = closureN_tag; + c_73305.fn = (function_type)__lambda_5; +c_73305.pc = 0; +c_73305.num_args = 1; +c_73305.num_elements = 1; +c_73305.elements = (object *)alloca(sizeof(object) * 1); +c_73305.elements[0] = k_73141; + +return_closcall3(data, __glo_hide, &c_73305, obj_int2obj(2), obj_int2obj(3));; +} + +static void __lambda_5(void *data, int argc, object self_73217, object r_73142) { + +closureN_type c_73307; +c_73307.hdr.mark = gc_color_red; + c_73307.hdr.grayed = 0; +c_73307.tag = closureN_tag; + c_73307.fn = (function_type)__lambda_6; +c_73307.pc = 0; +c_73307.num_args = 1; +c_73307.num_elements = 2; +c_73307.elements = (object *)alloca(sizeof(object) * 2); +c_73307.elements[0] = ((closureN)self_73217)->elements[0]; +c_73307.elements[1] = r_73142; + +return_closcall3(data, __glo_hide, &c_73307, obj_int2obj(2), obj_int2obj(12));; +} + +static void __lambda_6(void *data, int argc, object self_73218, object r_73143) { + return_closcall3(data, __glo_ack, ((closureN)self_73218)->elements[0], ((closureN)self_73218)->elements[1], r_73143);; +} + +static void __lambda_1(void *data, int argc, closure _,object k_73124, object m_731_7385, object n_732_7386) { + Cyc_st_add(data, "ack.scm:ack"); + object c_73273 = Cyc_num_fast_eq_op(data,m_731_7385, obj_int2obj(0)); +if( (boolean_f != c_73273) ){ + +complex_num_type local_73277; object c_73278 = Cyc_fast_sum(data,&local_73277,n_732_7386, obj_int2obj(1)); +return_closcall1(data, k_73124, c_73278); +} else { + object c_73281 = Cyc_num_fast_eq_op(data,n_732_7386, obj_int2obj(0)); +if( (boolean_f != c_73281) ){ + +complex_num_type local_73285; object c_73286 = Cyc_fast_sub(data,&local_73285,m_731_7385, obj_int2obj(1)); +return_closcall3(data, __glo_ack, k_73124, c_73286, obj_int2obj(1)); +} else { + +closureN_type c_73288; +c_73288.hdr.mark = gc_color_red; + c_73288.hdr.grayed = 0; +c_73288.tag = closureN_tag; + c_73288.fn = (function_type)__lambda_2; +c_73288.pc = 0; +c_73288.num_args = 1; +c_73288.num_elements = 2; +c_73288.elements = (object *)alloca(sizeof(object) * 2); +c_73288.elements[0] = k_73124; +c_73288.elements[1] = m_731_7385; + + +complex_num_type local_73298; object c_73299 = Cyc_fast_sub(data,&local_73298,n_732_7386, obj_int2obj(1)); +return_closcall3(data, __glo_ack, &c_73288, m_731_7385, c_73299);} +} +; +} + +static void __lambda_2(void *data, int argc, object self_73215, object r_73129) { + +complex_num_type local_73293; object c_73294 = Cyc_fast_sub(data,&local_73293,((closureN)self_73215)->elements[1], obj_int2obj(1)); +return_closcall3(data, __glo_ack, ((closureN)self_73215)->elements[0], c_73294, r_73129);; +} + +static void c_entry_pt_first_lambda(void *data, int argc, closure cont, object value); +extern void c_schemecyclonecommon_entry_pt(void *data, int argc, closure cont, object value); +extern void c_schemebase_entry_pt(void *data, int argc, closure cont, object value); +extern void c_schemetime_entry_pt(void *data, int argc, closure cont, object value); +extern void c_schemewrite_entry_pt(void *data, int argc, closure cont, object value); +extern void c_scheme_char_entry_pt(void *data, int argc, closure cont, object value); +extern void c_schemeread_entry_pt(void *data, int argc, closure cont, object value); +static void c_entry_pt(data, argc, env,cont) void *data; int argc; closure env,cont; { +Cyc_set_globals_changed((gc_thread_data *)data); + + add_global((object *) &__glo_this_91scheme_91implementation_91name); + add_global((object *) &__glo_run_91r7rs_91benchmark); + add_global((object *) &__glo_hide); + add_global((object *) &__glo_main); + add_global((object *) &__glo_ack); + mclosure0(c_73526, (function_type)__lambda_57);c_73526.num_args = 0; + __glo_this_91scheme_91implementation_91name = &c_73526; + mclosure0(c_73340, (function_type)__lambda_15);c_73340.num_args = 4; + __glo_run_91r7rs_91benchmark = &c_73340; + mclosure0(c_73316, (function_type)__lambda_8);c_73316.num_args = 2; + __glo_hide = &c_73316; + mclosure0(c_73300, (function_type)__lambda_3);c_73300.num_args = 0; + __glo_main = &c_73300; + mclosure0(c_73270, (function_type)__lambda_1);c_73270.num_args = 2; + __glo_ack = &c_73270; + + make_cvar(cvar_73536, (object *)&__glo_this_91scheme_91implementation_91name);make_pair(pair_73537, find_or_add_symbol("this-scheme-implementation-name"), &cvar_73536); + make_cvar(cvar_73538, (object *)&__glo_run_91r7rs_91benchmark);make_pair(pair_73539, find_or_add_symbol("run-r7rs-benchmark"), &cvar_73538); + make_cvar(cvar_73540, (object *)&__glo_hide);make_pair(pair_73541, find_or_add_symbol("hide"), &cvar_73540); + make_cvar(cvar_73542, (object *)&__glo_main);make_pair(pair_73543, find_or_add_symbol("main"), &cvar_73542); + make_cvar(cvar_73544, (object *)&__glo_ack);make_pair(pair_73545, find_or_add_symbol("ack"), &cvar_73544); +make_pair(c_73550, &pair_73537,Cyc_global_variables); +make_pair(c_73549, &pair_73539, &c_73550); +make_pair(c_73548, &pair_73541, &c_73549); +make_pair(c_73547, &pair_73543, &c_73548); +make_pair(c_73546, &pair_73545, &c_73547); +Cyc_global_variables = &c_73546; +mclosure1(c_done, c_entry_pt_first_lambda, &c_done); +mclosure1(c_73551, c_schemeread_entry_pt, &c_done); +mclosure1(c_73552, c_scheme_char_entry_pt, &c_73551); +mclosure1(c_73553, c_schemewrite_entry_pt, &c_73552); +mclosure1(c_73554, c_schemetime_entry_pt, &c_73553); +mclosure1(c_73555, c_schemebase_entry_pt, &c_73554); +mclosure1(c_73556, c_schemecyclonecommon_entry_pt, &c_73555); +(c_73556.fn)(data, 0, &c_73556, &c_73556); +} +static void c_entry_pt_first_lambda(void *data, int argc, closure cont, object value) { + + + + + + return_closcall1(data, __glo_main, primitive__75halt); +; +} +int main(int argc, char **argv, char **envp) +{gc_thread_data *thd; + long stack_size = global_stack_size = STACK_SIZE; + long heap_size = global_heap_size = HEAP_SIZE; + mclosure0(clos_halt,&Cyc_halt); // Halt if final closure is reached + mclosure0(entry_pt,&c_entry_pt); // First function to execute + _cyc_argc = argc; + _cyc_argv = argv; + set_env_variables(envp); + gc_initialize(); + thd = malloc(sizeof(gc_thread_data)); + gc_thread_data_init(thd, 0, (char *) &stack_size, stack_size); + thd->gc_cont = &entry_pt; + thd->gc_args[0] = &clos_halt; + thd->gc_num_args = 1; + thd->thread_id = pthread_self(); + gc_add_mutator(thd); + Cyc_heap_init(heap_size); + thd->thread_state = CYC_THREAD_STATE_RUNNABLE; + Cyc_start_trampoline(thd); + return 0;} diff --git a/tests/experimental/ack.scm b/tests/experimental/ack.scm new file mode 100644 index 00000000..cb377cba --- /dev/null +++ b/tests/experimental/ack.scm @@ -0,0 +1,93 @@ +;;; ACK -- One of the Kernighan and Van Wyk benchmarks. + +(import (scheme base) (scheme read) (scheme write) (scheme time)) + +(define (ack m n) + (cond ((= m 0) (+ n 1)) + ((= n 0) (ack (- m 1) 1)) + (else (ack (- m 1) (ack m (- n 1)))))) + +(define (main) + (let* ((count 2) + (input1 3) + (input2 12) + (output 32765) + (s3 (number->string count)) + (s2 (number->string input2)) + (s1 (number->string input1)) + (name "ack")) + (run-r7rs-benchmark + (string-append name ":" s1 ":" s2 ":" s3) + count + (lambda () (ack (hide count input1) (hide count input2))) + (lambda (result) (= result output))))) + +;;; The following code is appended to all benchmarks. + +;;; Given an integer and an object, returns the object +;;; without making it too easy for compilers to tell +;;; the object will be returned. + +(define (hide r x) + (call-with-values + (lambda () + (values (vector values (lambda (x) x)) + (if (< r 100) 0 1))) + (lambda (v i) + ((vector-ref v i) x)))) + +;;; Given the name of a benchmark, +;;; the number of times it should be executed, +;;; a thunk that runs the benchmark once, +;;; and a unary predicate that is true of the +;;; correct results the thunk may return, +;;; runs the benchmark for the number of specified iterations. + +(define (run-r7rs-benchmark name count thunk ok?) + + ;; Rounds to thousandths. + (define (rounded x) + (/ (round (* 1000 x)) 1000)) + + (display "Running ") + (display name) + (newline) + (flush-output-port (current-output-port)) + (let* ((j/s (jiffies-per-second)) + (t0 (current-second)) + (j0 (current-jiffy))) + (let loop ((i 0) + (result #f)) + (cond ((< i count) + (loop (+ i 1) (thunk))) + ((ok? result) + (let* ((j1 (current-jiffy)) + (t1 (current-second)) + (jifs (- j1 j0)) + (secs (inexact (/ jifs j/s))) + (secs2 (rounded (- t1 t0)))) + (display "Elapsed time: ") + (write secs) + (display " seconds (") + (write secs2) + (display ") for ") + (display name) + (newline) + (display "+!CSVLINE!+") + (display (this-scheme-implementation-name)) + (display ",") + (display name) + (display ",") + (display secs) + (newline) + (flush-output-port (current-output-port))) + result) + (else + (display "ERROR: returned incorrect result: ") + (write result) + (newline) + (flush-output-port (current-output-port)) + result))))) +(define (this-scheme-implementation-name) + (string-append "cyclone-" (Cyc-version))) +(main)