diff --git a/.gitignore b/.gitignore index 15732c5..e808cef 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,5 @@ README.html foreign/c/primitives/chibi/foreign-c.c *.pdf .* +foreign/c.c +*.tmp diff --git a/Makefile b/Makefile index 8289236..8a54822 100644 --- a/Makefile +++ b/Makefile @@ -19,6 +19,7 @@ MITLIBDIR=$(shell echo "(display (->namestring (system-library-directory-pathnam build: + rm -rf *.tgz echo "
$$(cat README.md)" > README.html snow-chibi package \ --version=${VERSION} \ @@ -26,17 +27,7 @@ build: --doc=README.html \ --foreign-depends=ffi \ --description="Portable foreign function interface for R7RS Schemes" \ - --test=test.scm \ - foreign/c.sld \ - foreign/c/array.sld \ - foreign/c/struct.sld \ - foreign/c/chibi-primitives.sld \ - foreign/c/chicken-primitives.sld \ - foreign/c/guile-primitives.sld \ - foreign/c/mosh-primitives.sld \ - foreign/c/racket-primitives.sld \ - foreign/c/sagittarius-primitives.sld \ - foreign/c/ypsilon-primitives.sld + foreign/c.sld build-gauche: snow-chibi package \ @@ -48,7 +39,7 @@ build-gauche: foreign/c/gauche-primitives.stub install: - snow-chibi --impls=${SCHEME} ${SNOW_CHIBI_ARGS} install ${PKG} + snow-chibi --impls=${SCHEME} --always-yes install ${PKG} install-gauche: if [ "${SCHEME}" = "gauche" ]; then \ @@ -70,9 +61,6 @@ test: libtest.o libtest.so libtest.a COMPILE_R7RS=${SCHEME} compile-r7rs -I . -o test test.scm LD_LIBRARY_PATH=. ./test -test-no: package libtest.o libtest.so libtest.a - COMPILE_R7RS=${SCHEME} test-snowball --apt-pkgs "libffi-dev" ${PKG} - test-docker: docker build --build-arg IMAGE=${DOCKERIMG} --build-arg SCHEME=${SCHEME} --tag=retropikzel-foreign-c-test-${SCHEME} -f Dockerfile.test . docker run -v "${PWD}:/workdir" -w /workdir -t retropikzel-foreign-c-test-${SCHEME} sh -c "make SCHEME=${SCHEME} SNOW_CHIBI_ARGS=--always-yes build install test" diff --git a/foreign/c.scm b/foreign/c.scm index 945a6a8..253e566 100644 --- a/foreign/c.scm +++ b/foreign/c.scm @@ -190,7 +190,7 @@ (define libc-name "ucrtbase")) (else (define libc-name - (cond ((get-environment-variable "BE_HOST_CPU") "root") ; Haiku + (cond ;((get-environment-variable "BE_HOST_CPU") "root") ; Haiku (else "c"))))) @@ -315,7 +315,7 @@ (kawa (define c-null? (lambda (pointer) - (invoke pointer 'equals null-pointer)))) + (invoke pointer 'equals (make-c-null))))) ;; FIXME (chibi #t) ;; In chibi-primitives.stub (gauche (define c-null? pointer-null?)) diff --git a/foreign/c.sld b/foreign/c.sld index 0dbe8b4..cc203e7 100644 --- a/foreign/c.sld +++ b/foreign/c.sld @@ -8,22 +8,24 @@ (scheme inexact)) (cond-expand (chibi (import (foreign c chibi-primitives))) - (chicken (import ;(chicken memory) ;; FIXME - (foreign c chicken-primitives))) + (chicken (import (foreign c chicken-primitives))) ;(cyclone (import (foreign c cyclone-primitives))) ;(gambit (import (foreign c gambit-primitives))) ;(gauche (import (foreign c gauche-primitives))) (guile (import (foreign c guile-primitives))) - ;(kawa (import (foreign c kawa-primitives))) + (kawa (import (foreign c kawa-primitives))) ;(mit-scheme (import (foreign c mit-scheme-primitives))) ;(larceny (import (foreign c larceny-primitives))) (mosh (import (foreign c mosh-primitives))) (racket (import (foreign c racket-primitives))) (sagittarius (import (foreign c sagittarius-primitives))) (stklos (import (foreign c stklos-primitives)) - ;; FIXME (export foreign-c:string-split)) - ;(ypsilon (import (foreign c ypsilon-primitives)) (export int)) + (ypsilon (import (foreign c ypsilon-primitives)) + (export c-function + c-callback + bytevector-c-int8-set! + bytevector-c-uint8-ref)) ) (export ;;;; Primitives 1 c-type-size diff --git a/foreign/c/chibi-primitives.scm b/foreign/c/chibi-primitives.scm index 3555d52..8291503 100644 --- a/foreign/c/chibi-primitives.scm +++ b/foreign/c/chibi-primitives.scm @@ -14,7 +14,7 @@ ((equal? type 'unsigned-short) (c-bytevector-sint-ref pointer offset (native-endianness) (size-of-type 'unsigned-short))) ((equal? type 'int) (c-bytevector-sint-ref pointer offset (native-endianness) (size-of-type 'int))) ((equal? type 'unsigned-int) (c-bytevector-sint-ref pointer offset (native-endianness) (size-of-type 'unsigned-int))) - ((equal? type 'long) (c-bytevector-sint-ref pointer offset (native-endianness) (sife-of-type 'long))) + ((equal? type 'long) (c-bytevector-sint-ref pointer offset (native-endianness) (size-of-type 'long))) ((equal? type 'unsigned-long) (c-bytevector-sint-ref pointer offset (native-endianness) (size-of-type 'unsigned-long))) ((equal? type 'float) (c-bytevector-ieee-single-native-ref pointer offset)) ((equal? type 'double) (c-bytevector-ieee-double-native-ref pointer offset)) @@ -104,7 +104,8 @@ (define shared-object-load (lambda (path options) (let ((shared-object (dlopen path RTLD-NOW)) - (maybe-error (dlerror))) + ;(maybe-error (dlerror)) + ) shared-object))) (define c-bytevector? @@ -142,9 +143,10 @@ (define make-c-function (lambda (shared-object c-name return-type argument-types) - (dlerror) ;; Clean all previous errors + ;(dlerror) ;; Clean all previous errors (let ((c-function (dlsym shared-object c-name)) - (maybe-dlerror (dlerror))) + ;(maybe-dlerror (dlerror)) + ) (lambda arguments (let* ((return-pointer (internal-ffi-call (length argument-types) diff --git a/foreign/c/cyclone-primitives.c b/foreign/c/cyclone-primitives.c new file mode 100644 index 0000000..bbbee12 --- /dev/null +++ b/foreign/c/cyclone-primitives.c @@ -0,0 +1,2533 @@ +/** + ** This file was automatically generated by the Cyclone scheme compiler + ** http://justinethier.github.io/cyclone/ + ** + ** (c) 2014-2024 Justin Ethier + ** Version 0.37.0 + ** + **/ + +#define closcall1(td, clo, buf) \ +if (obj_is_not_closure(clo)) { \ + Cyc_apply(td, clo, 1, buf ); \ +} else { \ + ((clo)->fn)(td, clo, 1, buf); \ +;\ +} +#define return_closcall1(td, clo,a1) { \ + char top; \ + object buf[1]; buf[0] = a1;\ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + GC(td, clo, buf, 1); \ + return; \ + } else {\ + closcall1(td, (closure) (clo), buf); \ + return;\ + } \ +} + +#define continue_or_gc1(td, clo,a1) { \ + char *top = alloca(sizeof(char)); \ + if (stack_overflow(top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[1]; buf[0] = a1;\ + GC(td, clo, buf, 1); \ + return; \ + } else {\ + continue;\ + } \ +} + +#define return_direct1(td, _fn,a1) { \ + char top; \ + object buf[1]; buf[0] = a1; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + mclosure0(c1, (function_type) _fn); \ + GC(td, &c1, buf, 1); \ + return; \ + } else { \ + (_fn)(td, (closure)_fn, 1, buf); \ + }} + +#define return_direct_with_clo1(td, clo, _fn,a1) { \ + char top; \ + object buf[1]; buf[0] = a1;\ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + GC(td, clo, buf, 1); \ + return; \ + } else { \ + (_fn)(td, (closure)(clo), 1, buf); \ + }} + +#define closcall2(td, clo, buf) \ +if (obj_is_not_closure(clo)) { \ + Cyc_apply(td, clo, 2, buf ); \ +} else { \ + ((clo)->fn)(td, clo, 2, buf); \ +;\ +} +#define return_closcall2(td, clo,a1,a2) { \ + char top; \ + object buf[2]; buf[0] = a1;buf[1] = a2;\ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + GC(td, clo, buf, 2); \ + return; \ + } else {\ + closcall2(td, (closure) (clo), buf); \ + return;\ + } \ +} + +#define continue_or_gc2(td, clo,a1,a2) { \ + char *top = alloca(sizeof(char)); \ + 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 {\ + continue;\ + } \ +} + +#define return_direct2(td, _fn,a1,a2) { \ + char top; \ + object buf[2]; buf[0] = a1;buf[1] = a2; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + mclosure0(c1, (function_type) _fn); \ + GC(td, &c1, buf, 2); \ + return; \ + } else { \ + (_fn)(td, (closure)_fn, 2, buf); \ + }} + +#define return_direct_with_clo2(td, clo, _fn,a1,a2) { \ + char top; \ + object buf[2]; buf[0] = a1;buf[1] = a2;\ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + GC(td, clo, buf, 2); \ + return; \ + } else { \ + (_fn)(td, (closure)(clo), 2, buf); \ + }} + +#define closcall3(td, clo, buf) \ +if (obj_is_not_closure(clo)) { \ + Cyc_apply(td, clo, 3, buf ); \ +} else { \ + ((clo)->fn)(td, clo, 3, buf); \ +;\ +} +#define return_closcall3(td, clo,a1,a2,a3) { \ + char top; \ + object buf[3]; buf[0] = a1;buf[1] = a2;buf[2] = a3;\ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + GC(td, clo, buf, 3); \ + return; \ + } else {\ + closcall3(td, (closure) (clo), buf); \ + return;\ + } \ +} + +#define continue_or_gc3(td, clo,a1,a2,a3) { \ + char *top = alloca(sizeof(char)); \ + 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 {\ + continue;\ + } \ +} + +#define return_direct3(td, _fn,a1,a2,a3) { \ + char top; \ + object buf[3]; buf[0] = a1;buf[1] = a2;buf[2] = a3; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + mclosure0(c1, (function_type) _fn); \ + GC(td, &c1, buf, 3); \ + return; \ + } else { \ + (_fn)(td, (closure)_fn, 3, buf); \ + }} + +#define return_direct_with_clo3(td, clo, _fn,a1,a2,a3) { \ + char top; \ + object buf[3]; buf[0] = a1;buf[1] = a2;buf[2] = a3;\ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + GC(td, clo, buf, 3); \ + return; \ + } else { \ + (_fn)(td, (closure)(clo), 3, buf); \ + }} + +#define closcall4(td, clo, buf) \ +if (obj_is_not_closure(clo)) { \ + Cyc_apply(td, clo, 4, buf ); \ +} else { \ + ((clo)->fn)(td, clo, 4, buf); \ +;\ +} +#define return_closcall4(td, clo,a1,a2,a3,a4) { \ + char top; \ + object buf[4]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4;\ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + GC(td, clo, buf, 4); \ + return; \ + } else {\ + closcall4(td, (closure) (clo), buf); \ + return;\ + } \ +} + +#define continue_or_gc4(td, clo,a1,a2,a3,a4) { \ + char *top = alloca(sizeof(char)); \ + if (stack_overflow(top, (((gc_thread_data *)data)->stack_limit))) { \ + object buf[4]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4;\ + GC(td, clo, buf, 4); \ + return; \ + } else {\ + continue;\ + } \ +} + +#define return_direct4(td, _fn,a1,a2,a3,a4) { \ + char top; \ + object buf[4]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4; \ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + mclosure0(c1, (function_type) _fn); \ + GC(td, &c1, buf, 4); \ + return; \ + } else { \ + (_fn)(td, (closure)_fn, 4, buf); \ + }} + +#define return_direct_with_clo4(td, clo, _fn,a1,a2,a3,a4) { \ + char top; \ + object buf[4]; buf[0] = a1;buf[1] = a2;buf[2] = a3;buf[3] = a4;\ + if (stack_overflow(&top, (((gc_thread_data *)data)->stack_limit))) { \ + GC(td, clo, buf, 4); \ + return; \ + } else { \ + (_fn)(td, (closure)(clo), 4, buf); \ + }} + +#include "cyclone/types.h" +object __glo_lib_91init_117foreigncprimitives_19191cyclone_foreign_c_primitives_91cyclone = NULL; +object __glo_c_91bytevector_91u8_91ref_foreign_c_primitives_91cyclone = NULL; +object __glo_c_91bytevector_91u8_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_c_91bytevector_91pointer_91ref_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91double_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91float_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91unsigned_91long_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91long_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91unsigned_91int_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91unsigned_91short_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91short_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91char_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91uint64_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int64_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91uint32_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int32_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91uint16_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int16_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91uint8_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int8_91get_foreign_c_primitives_91cyclone = NULL; +object __glo_c_91bytevector_91pointer_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91double_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91float_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91unsigned_91long_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91long_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91unsigned_91int_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91unsigned_91short_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91short_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91char_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91uint64_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int64_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91uint32_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int32_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91uint16_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int16_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91uint8_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91int8_91set_67_foreign_c_primitives_91cyclone = NULL; +object __glo_shared_91object_91load_foreign_c_primitives_91cyclone = NULL; +object __glo_define_91c_91library_foreign_c_primitives_91cyclone = NULL; +object __glo_pointer_91address_foreign_c_primitives_91cyclone = NULL; +object __glo_align_91of_91type_foreign_c_primitives_91cyclone = NULL; +object __glo_size_91of_91type_foreign_c_primitives_91cyclone = NULL; +object __glo_define_91c_91callback_foreign_c_primitives_91cyclone = NULL; +object __glo_define_91c_91procedure_foreign_c_primitives_91cyclone = NULL; +object __glo_c_91bytevector_127_foreign_c_primitives_91cyclone = 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_91constructor_95args_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_make_91record_91marker_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_fast_91string_123_127_scheme_base; +extern object __glo_fast_91string_121_127_scheme_base; +extern object __glo_fast_91string_121_123_127_scheme_base; +extern object __glo_fast_91string_125_127_scheme_base; +extern object __glo_fast_91string_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_91map_91loop_912_scheme_base; +extern object __glo_Cyc_91for_91each_91loop_911_scheme_base; +extern object __glo_Cyc_91for_91each_91loop_912_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_95loc_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_write_91string_911_scheme_base; +extern object __glo_write_91string_912_scheme_base; +extern object __glo_flush_91output_91port_scheme_base; +extern object __glo_char_91ready_127_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_91add_91feature_67_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_define_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__void_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_read_91bytevector_scheme_base; +extern object __glo_read_91bytevector_67_scheme_base; +extern object __glo_write_91bytevector_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_binary_91port_127_scheme_base; +extern object __glo_textual_91port_127_scheme_base; +extern object __glo_rationalize_scheme_base; +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_char_91alphabetic_127_scheme__char; +extern object __glo_char_91downcase_scheme__char; +extern object __glo_char_91foldcase_scheme__char; +extern object __glo_char_91lower_91case_127_scheme__char; +extern object __glo_char_91numeric_127_scheme__char; +extern object __glo_char_91upcase_scheme__char; +extern object __glo_char_91upper_91case_127_scheme__char; +extern object __glo_char_91whitespace_127_scheme__char; +extern object __glo_char_91ci_121_123_127_scheme__char; +extern object __glo_char_91ci_121_127_scheme__char; +extern object __glo_char_91ci_123_127_scheme__char; +extern object __glo_char_91ci_125_123_127_scheme__char; +extern object __glo_char_91ci_125_127_scheme__char; +extern object __glo_digit_91value_scheme__char; +extern object __glo_string_91upcase_scheme__char; +extern object __glo_string_91downcase_scheme__char; +extern object __glo_string_91foldcase_scheme__char; +extern object __glo_string_91ci_121_123_127_scheme__char; +extern object __glo_string_91ci_121_127_scheme__char; +extern object __glo_string_91ci_123_127_scheme__char; +extern object __glo_string_91ci_125_123_127_scheme__char; +extern object __glo_string_91ci_125_127_scheme__char; +extern object __glo_call_91with_91input_91file_scheme_file; +extern object __glo_call_91with_91output_91file_scheme_file; +extern object __glo_with_91input_91from_91file_scheme_file; +extern object __glo_with_91output_91to_91file_scheme_file; +extern object __glo_acos_scheme_inexact; +extern object __glo_asin_scheme_inexact; +extern object __glo_atan_scheme_inexact; +extern object __glo_cos_scheme_inexact; +extern object __glo_exp_scheme_inexact; +extern object __glo_finite_127_scheme_inexact; +extern object __glo_infinite_127_scheme_inexact; +extern object __glo_log_scheme_inexact; +extern object __glo_nan_127_scheme_inexact; +extern object __glo_sin_scheme_inexact; +extern object __glo_sqrt_scheme_inexact; +extern object __glo_tan_scheme_inexact; +extern object __glo_command_91line_scheme_process_91context; +extern object __glo_emergency_91exit_scheme_process_91context; +extern object __glo_get_91environment_91variable_scheme_process_91context; +extern object __glo_get_91environment_91variables_scheme_process_91context; +extern object __glo_opaque_127_cyclone_foreign; +extern object __glo_opaque_91null_127_cyclone_foreign; +extern object __glo_make_91opaque_cyclone_foreign; +extern object __glo_c_91code_cyclone_foreign; +extern object __glo_c_91value_cyclone_foreign; +extern object __glo_c_91define_cyclone_foreign; +extern object __glo_c_91_125scm_cyclone_foreign; +extern object __glo_scm_91_125c_cyclone_foreign; +extern object __glo_c_91define_91type_cyclone_foreign; +extern object __glo_prim_127_scheme_cyclone_primitives; +extern object __glo__85primitives_85_scheme_cyclone_primitives; +extern object __glo__85primitives_91num_91args_85_scheme_cyclone_primitives; +extern object __glo_prim_91call_127_scheme_cyclone_primitives; +extern object __glo_prim_91_125c_91func_scheme_cyclone_primitives; +extern object __glo_prim_91_125c_91func_91uses_91alloca_127_scheme_cyclone_primitives; +extern object __glo_prim_95data_91arg_127_scheme_cyclone_primitives; +extern object __glo_prim_95c_91var_91pointer_scheme_cyclone_primitives; +extern object __glo_prim_95c_91var_91assign_scheme_cyclone_primitives; +extern object __glo_prim_95cvar_127_scheme_cyclone_primitives; +extern object __glo_prim_117inline_91convert_91prim_91call_scheme_cyclone_primitives; +extern object __glo_prim_117check_91arg_91count_scheme_cyclone_primitives; +extern object __glo_prim_117mutates_127_scheme_cyclone_primitives; +extern object __glo_prim_117cont_127_scheme_cyclone_primitives; +extern object __glo_prim_117cont_95no_91args_127_scheme_cyclone_primitives; +extern object __glo_prim_117arg_91count_127_scheme_cyclone_primitives; +extern object __glo_prim_117allocates_91object_127_scheme_cyclone_primitives; +extern object __glo_prim_117immutable_91args_95result_127_scheme_cyclone_primitives; +extern object __glo_prim_117udf_127_scheme_cyclone_primitives; +extern object __glo_prim_117add_91udf_67_scheme_cyclone_primitives; +extern object __glo_prim_117func_91_125prim_scheme_cyclone_primitives; +extern object __glo_fast_91string_123_127_191_191inline_191_191_scheme_base; +extern object __glo_fast_91string_121_127_191_191inline_191_191_scheme_base; +extern object __glo_fast_91string_121_123_127_191_191inline_191_191_scheme_base; +extern object __glo_fast_91string_125_127_191_191inline_191_191_scheme_base; +extern object __glo_fast_91string_125_123_127_191_191inline_191_191_scheme_base; +extern object __glo__75write_91bytevector_191_191inline_191_191_scheme_base; +extern object __glo_not_191_191inline_191_191_scheme_base; +extern object __glo_list_127_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_exact_191_191inline_191_191_scheme_base; +extern object __glo_inexact_191_191inline_191_191_scheme_base; +extern object __glo__191sqrt_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_fixnum_127_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_void_191_191inline_191_191_scheme_base; +extern object __glo_make_91record_91marker_191_191inline_191_191_scheme_base; +#include "cyclone/runtime.h" +defsymbol(align_91of_91type); +defsymbol(c_91bytevector_91u8_91set_67); +defsymbol(c_91bytevector_91u8_91ref); +defsymbol(include_91c_91header); +defsymbol(headers); +defsymbol(shared_91object_91load); +defsymbol(scheme_91name); +defsymbol(define); +defsymbol(begin); +defsymbol(int8); +defsymbol(uint8); +defsymbol(int16); +defsymbol(uint16); +defsymbol(int32); +defsymbol(uint32); +defsymbol(int64); +defsymbol(uint64); +defsymbol(pointer); +defsymbol(_void); +defsymbol(callback); +defsymbol(c_91void); +defsymbol(opaque); +defsymbol(_double); +defsymbol(_float); +defsymbol(unsigned_91long); +defsymbol(_long); +defsymbol(unsigned_91int); +defsymbol(unsigned_91short); +defsymbol(_short); +defsymbol(unsigned_91char); +defsymbol(_char); +defsymbol(_int); +defsymbol(c_91define); +static void __lambda_55(void *data, object clo, int argc, object *args) ;/*closure _,object k_73652*/ +static void __lambda_56(void *data, object clo, int argc, object *args) ;/*object self_73704, object r_73654*/ +static void __lambda_57(void *data, object clo, int argc, object *args) ;/*object self_73705, object r_73655*/ +static void __lambda_94(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_93(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_92(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_91(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_90(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_89(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_88(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_87(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_86(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_85(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_84(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_83(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_82(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_81(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_80(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_79(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_78(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_77(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset)*/ +static void __lambda_76(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_75(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_74(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_73(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_72(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_71(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_70(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_69(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_68(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_67(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_66(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_65(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_64(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_63(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_62(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_61(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_60(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_59(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer, object offset, object value)*/ +static void __lambda_50(void *data, object clo, int argc, object *args) ;/*closure _,object k_73636, object expr_73397_73449, object rename_73398_73450, object compare_73399_73451*/ +static void __lambda_53(void *data, object clo, int argc, object *args) ;/*object self_73700, object k_73640, object header_73410_73454*/ +static void __lambda_54(void *data, object clo, int argc, object *args) ;/*object self_73701, object r_73643*/ +static void __lambda_51(void *data, object clo, int argc, object *args) ;/*object self_73702, object r_73639*/ +static void __lambda_52(void *data, object clo, int argc, object *args) ;/*object self_73703, object includes_73405_73453*/ +static void __lambda_32(void *data, object clo, int argc, object *args) ;/*closure _,object k_73589, object expr_73338_73355_73380_73432, object rename_73339_73356_73381_73433, object compare_73340_73357_73382_73434*/ +static void __lambda_33(void *data, object clo, int argc, object *args) ;/*object self_73683, object v_931_73346_73362_73384_73436*/ +static void __lambda_46(void *data, object clo, int argc, object *args) ;/*object self_73684, object tmp_73359_73361_73383_73435*/ +static void __lambda_49(void *data, object clo, int argc, object *args) ;/*object self_73685, object r_73590*/ +static void __lambda_47(void *data, object clo, int argc, object *args) ;/*object self_73686, object k_73592*/ +static void __lambda_48(void *data, object clo, int argc, object *args) ;/*object self_73687, object r_73593*/ +static void __lambda_34(void *data, object clo, int argc, object *args) ;/*object self_73688, object k_73595*/ +static void __lambda_35(void *data, object clo, int argc, object *args) ;/*object self_73689, object r_73610*/ +static void __lambda_36(void *data, object clo, int argc, object *args) ;/*object self_73690, object r_73625*/ +static void __lambda_37(void *data, object clo, int argc, object *args) ;/*object self_73691, object r_73628*/ +static void __lambda_38(void *data, object clo, int argc, object *args) ;/*object self_73692, object r_73626*/ +static void __lambda_39(void *data, object clo, int argc, object *args) ;/*object self_73693, object r_73613*/ +static void __lambda_40(void *data, object clo, int argc, object *args) ;/*object self_73694, object r_73619*/ +static void __lambda_41(void *data, object clo, int argc, object *args) ;/*object self_73695, object r_73620*/ +static void __lambda_42(void *data, object clo, int argc, object *args) ;/*object self_73696, object r_73616*/ +static void __lambda_43(void *data, object clo, int argc, object *args) ;/*object self_73697, object r_73614*/ +static void __lambda_44(void *data, object clo, int argc, object *args) ;/*object self_73698, object r_73611*/ +static void __lambda_45(void *data, object clo, int argc, object *args) ;/*object self_73699, object r_73609*/ +static void __lambda_58(void *data, object clo, int argc, object *args) ;/*(void *data, int argc, closure _, object k, object pointer)*/ +static void __lambda_31(void *data, object clo, int argc, object *args) ;/*closure _,object k_73546, object type_73162_73431*/ +static void __lambda_30(void *data, object clo, int argc, object *args) ;/*closure _,object k_73543, object scheme_91name_73158_73427, object return_91type_73159_73428, object argument_91types_73160_73429, object procedure_73161_73430*/ +static void __lambda_2(void *data, object clo, int argc, object *args) ;/*closure _,object k_73460, object expr_7367_73417, object rename_7368_73418, object compare_7369_73419*/ +static void __lambda_8(void *data, object clo, int argc, object *args) ;/*object self_73656, object k_73498, object type_7393_73426*/ +static void __lambda_9(void *data, object clo, int argc, object *args) ;/*object self_73657, object r_73499*/ +static void __lambda_10(void *data, object clo, int argc, object *args) ;/*object self_73658, object r_73500*/ +static void __lambda_11(void *data, object clo, int argc, object *args) ;/*object self_73659, object r_73501*/ +static void __lambda_12(void *data, object clo, int argc, object *args) ;/*object self_73660, object r_73502*/ +static void __lambda_13(void *data, object clo, int argc, object *args) ;/*object self_73661, object r_73503*/ +static void __lambda_14(void *data, object clo, int argc, object *args) ;/*object self_73662, object r_73504*/ +static void __lambda_15(void *data, object clo, int argc, object *args) ;/*object self_73663, object r_73505*/ +static void __lambda_16(void *data, object clo, int argc, object *args) ;/*object self_73664, object r_73506*/ +static void __lambda_17(void *data, object clo, int argc, object *args) ;/*object self_73665, object r_73507*/ +static void __lambda_18(void *data, object clo, int argc, object *args) ;/*object self_73666, object r_73508*/ +static void __lambda_19(void *data, object clo, int argc, object *args) ;/*object self_73667, object r_73509*/ +static void __lambda_20(void *data, object clo, int argc, object *args) ;/*object self_73668, object r_73510*/ +static void __lambda_21(void *data, object clo, int argc, object *args) ;/*object self_73669, object r_73511*/ +static void __lambda_22(void *data, object clo, int argc, object *args) ;/*object self_73670, object r_73512*/ +static void __lambda_23(void *data, object clo, int argc, object *args) ;/*object self_73671, object r_73513*/ +static void __lambda_24(void *data, object clo, int argc, object *args) ;/*object self_73672, object r_73514*/ +static void __lambda_25(void *data, object clo, int argc, object *args) ;/*object self_73673, object r_73515*/ +static void __lambda_26(void *data, object clo, int argc, object *args) ;/*object self_73674, object r_73516*/ +static void __lambda_27(void *data, object clo, int argc, object *args) ;/*object self_73675, object r_73517*/ +static void __lambda_28(void *data, object clo, int argc, object *args) ;/*object self_73676, object r_73518*/ +static void __lambda_29(void *data, object clo, int argc, object *args) ;/*object self_73677, object r_73519*/ +static void __lambda_3(void *data, object clo, int argc, object *args) ;/*object self_73678, object type_91_125native_91type_7372_73420*/ +static void __lambda_4(void *data, object clo, int argc, object *args) ;/*object self_73679, object c_91name_7378_73422*/ +static void __lambda_5(void *data, object clo, int argc, object *args) ;/*object self_73680, object return_91type_7381_73423*/ +static void __lambda_7(void *data, object clo, int argc, object *args) ;/*object self_73681, object argument_91types_7384_73424*/ +static void __lambda_6(void *data, object clo, int argc, object *args) ;/*object self_73682, object k_73477*/ +static void __lambda_1(void *data, object clo, int argc, object *args) ;/*closure _,object k_73457, object object_7366_73416*/ + +static void __lambda_55(void *data, object _, int argc, object *args) /* closure _,object k_73652 */ + { +object k_73652 = args[0]; + Cyc_st_add(data, "./foreign/c/cyclone-primitives.sld:lib-init:foreigncprimitives_91cyclone"); + +closureN_type c_731324; +object e_731336 [1]; +c_731324.hdr.mark = gc_color_red; + c_731324.hdr.grayed = 0; +c_731324.tag = closureN_tag; + c_731324.fn = (function_type)__lambda_56; +c_731324.num_args = 1; +c_731324.num_elements = 1; +c_731324.elements = (object *)e_731336; +c_731324.elements[0] = k_73652; + + +object c_731339 = global_set_cps_id(data,(closure)&c_731324,"__glo_align_91of_91type_foreign_c_primitives_91cyclone", __glo_align_91of_91type_foreign_c_primitives_91cyclone, __glo_size_91of_91type_foreign_c_primitives_91cyclone); +return_closcall1(data,(closure)&c_731324, c_731339);; +} + +static void __lambda_56(void *data, object self_73704, int argc, object *args) /* object self_73704, object r_73654 */ + { + + +closureN_type c_731326; +object e_731332 [1]; +c_731326.hdr.mark = gc_color_red; + c_731326.hdr.grayed = 0; +c_731326.tag = closureN_tag; + c_731326.fn = (function_type)__lambda_57; +c_731326.num_args = 1; +c_731326.num_elements = 1; +c_731326.elements = (object *)e_731332; +c_731326.elements[0] = ((closureN)self_73704)->elements[0]; + + +object c_731335 = global_set_cps_id(data,(closure)&c_731326,"__glo_c_91bytevector_91u8_91set_67_foreign_c_primitives_91cyclone", __glo_c_91bytevector_91u8_91set_67_foreign_c_primitives_91cyclone, __glo_pointer_91uint8_91set_67_foreign_c_primitives_91cyclone); +return_closcall1(data,(closure)&c_731326, c_731335);; +} + +static void __lambda_57(void *data, object self_73705, int argc, object *args) /* object self_73705, object r_73655 */ + { + + +object c_731331 = global_set_cps_id(data, ((closureN)self_73705)->elements[0],"__glo_c_91bytevector_91u8_91ref_foreign_c_primitives_91cyclone", __glo_c_91bytevector_91u8_91ref_foreign_c_primitives_91cyclone, __glo_pointer_91uint8_91get_foreign_c_primitives_91cyclone); +return_direct_with_clo1(data, ((closureN)self_73705)->elements[0], (((closure) ((closureN)self_73705)->elements[0])->fn), c_731331);; +} + +static void __lambda_94(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];make_c_opaque(opq, (void*)opaque_ptr(pointer) + obj_obj2int(offset)); + return_closcall1(data, k, &opq); } +static void __lambda_93(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];double* p = opaque_ptr(pointer) + obj_obj2int(offset); + alloca_double(d, *p); + return_closcall1(data, k, d); } +static void __lambda_92(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];float* p = opaque_ptr(pointer) + obj_obj2int(offset); + alloca_double(d, *p); + return_closcall1(data, k, d); } +static void __lambda_91(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];unsigned long* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_90(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];long* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_89(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];unsigned int* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_88(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];int* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_87(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];unsigned short* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_86(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];short* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_85(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];char* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_char2obj(*p)); } +static void __lambda_84(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];uint64_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_83(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];int64_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_82(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];uint32_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_81(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];int32_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_80(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];uint16_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_79(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];int16_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_78(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];uint8_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_77(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];int8_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + return_closcall1(data, k, obj_int2obj(*p)); } +static void __lambda_76(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];uintptr_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = (uintptr_t)&opaque_ptr(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_75(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];double* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = double_value(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_74(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];float* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = double_value(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_73(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];unsigned long* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_72(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];long* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_71(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];unsigned int* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_70(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];int* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_69(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];unsigned short* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_68(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];short* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_67(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];char* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2char(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_66(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];uint64_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_65(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];int64_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_64(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];uint32_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_63(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];int32_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_62(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];uint16_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_61(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];int16_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_60(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];uint8_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_59(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];object offset = args[2];object value = args[3];int8_t* p = opaque_ptr(pointer) + obj_obj2int(offset); + *p = obj_obj2int(value); + return_closcall1(data, k, make_boolean(boolean_t)); } +static void __lambda_50(void *data, object _, int argc, object *args) /* closure _,object k_73636, object expr_73397_73449, object rename_73398_73450, object compare_73399_73451 */ + { +object k_73636 = args[0]; object expr_73397_73449 = args[1]; + Cyc_st_add(data, "./foreign/c/cyclone-primitives.sld:shared-object-load"); + +closureN_type c_731257; +object e_731268 [2]; +c_731257.hdr.mark = gc_color_red; + c_731257.hdr.grayed = 0; +c_731257.tag = closureN_tag; + c_731257.fn = (function_type)__lambda_51; +c_731257.num_args = 1; +c_731257.num_elements = 2; +c_731257.elements = (object *)e_731268; +c_731257.elements[0] = expr_73397_73449; +c_731257.elements[1] = k_73636; + + +mmacro(c_731269, (function_type)__lambda_53);c_731269.num_args = 1; +return_direct_with_clo1(data,(closure)&c_731257,__lambda_51, &c_731269);; +} + +static void __lambda_53(void *data, object self_73700, int argc, object *args) /* object self_73700, object k_73640, object header_73410_73454 */ + { + object k_73640 = args[0]; object header_73410_73454 = args[1]; + +closureN_type c_731271; +object e_731280 [1]; +c_731271.hdr.mark = gc_color_red; + c_731271.hdr.grayed = 0; +c_731271.tag = closureN_tag; + c_731271.fn = (function_type)__lambda_54; +c_731271.num_args = 1; +c_731271.num_elements = 1; +c_731271.elements = (object *)e_731280; +c_731271.elements[0] = k_73640; + + +make_utf8_string_with_len(c_731284, "<", 1, 1); + +make_utf8_string_with_len(c_731285, ">", 1, 1); + +object c_731283 = Cyc_string_append(data,(closure)&c_731271,3,&c_731284, header_73410_73454, &c_731285); +return_closcall1(data,(closure)&c_731271, c_731283);; +} + +static void __lambda_54(void *data, object self_73701, int argc, object *args) /* object self_73701, object r_73643 */ + { + object r_73643 = args[0]; + +pair_type local_731276; + +pair_type local_731279; +return_direct_with_clo1(data, ((closureN)self_73701)->elements[0], (((closure) ((closureN)self_73701)->elements[0])->fn), set_pair_as_expr(&local_731276, quote_include_91c_91header, set_pair_as_expr(&local_731279, r_73643, NULL)));; +} + +static void __lambda_51(void *data, object self_73702, int argc, object *args) /* object self_73702, object r_73639 */ + { + object r_73639 = args[0]; + +closureN_type c_731259; +object e_731262 [1]; +c_731259.hdr.mark = gc_color_red; + c_731259.hdr.grayed = 0; +c_731259.tag = closureN_tag; + c_731259.fn = (function_type)__lambda_52; +c_731259.num_args = 1; +c_731259.num_elements = 1; +c_731259.elements = (object *)e_731262; +c_731259.elements[0] = ((closureN)self_73702)->elements[1]; + + + + + +return_direct_with_clo3(data, __glo_Cyc_91map_91loop_911_scheme_base, (((closure) __glo_Cyc_91map_91loop_911_scheme_base)->fn), &c_731259, r_73639, Cyc_cadr(data, Cyc_cadr(data, ((closureN)self_73702)->elements[0])));; +} + +static void __lambda_52(void *data, object self_73703, int argc, object *args) /* object self_73703, object includes_73405_73453 */ + { + object includes_73405_73453 = args[0]; + return_direct_with_clo1(data, ((closureN)self_73703)->elements[0], (((closure) ((closureN)self_73703)->elements[0])->fn), includes_73405_73453);; +} + +static void __lambda_32(void *data, object _, int argc, object *args) /* closure _,object k_73589, object expr_73338_73355_73380_73432, object rename_73339_73356_73381_73433, object compare_73340_73357_73382_73434 */ + { +object k_73589 = args[0]; object expr_73338_73355_73380_73432 = args[1]; object rename_73339_73356_73381_73433 = args[2]; + Cyc_st_add(data, "./foreign/c/cyclone-primitives.sld:define-c-library"); + +closureN_type c_731086; +object e_731252 [3]; +c_731086.hdr.mark = gc_color_red; + c_731086.hdr.grayed = 0; +c_731086.tag = closureN_tag; + c_731086.fn = (function_type)__lambda_33; +c_731086.num_args = 1; +c_731086.num_elements = 3; +c_731086.elements = (object *)e_731252; +c_731086.elements[0] = expr_73338_73355_73380_73432; +c_731086.elements[1] = k_73589; +c_731086.elements[2] = rename_73339_73356_73381_73433; + + + +return_direct_with_clo1(data,(closure)&c_731086,__lambda_33, Cyc_cdr(data, expr_73338_73355_73380_73432));; +} + +static void __lambda_33(void *data, object self_73683, int argc, object *args) /* object self_73683, object v_931_73346_73362_73384_73436 */ + { + object v_931_73346_73362_73384_73436 = args[0]; + +closureN_type c_731088; +object e_731227 [2]; +c_731088.hdr.mark = gc_color_red; + c_731088.hdr.grayed = 0; +c_731088.tag = closureN_tag; + c_731088.fn = (function_type)__lambda_34; +c_731088.num_args = 0; +c_731088.num_elements = 2; +c_731088.elements = (object *)e_731227; +c_731088.elements[0] = ((closureN)self_73683)->elements[2]; +c_731088.elements[1] = v_931_73346_73362_73384_73436; + + +closureN_type c_731228; +object e_731251 [2]; +c_731228.hdr.mark = gc_color_red; + c_731228.hdr.grayed = 0; +c_731228.tag = closureN_tag; + c_731228.fn = (function_type)__lambda_46; +c_731228.num_args = 1; +c_731228.num_elements = 2; +c_731228.elements = (object *)e_731251; +c_731228.elements[0] = ((closureN)self_73683)->elements[0]; +c_731228.elements[1] = ((closureN)self_73683)->elements[1]; + +return_direct_with_clo1(data,(closure)&c_731088,__lambda_34, &c_731228);; +} + +static void __lambda_46(void *data, object self_73684, int argc, object *args) /* object self_73684, object tmp_73359_73361_73383_73435 */ + { + object tmp_73359_73361_73383_73435 = args[0]; + +closureN_type c_731230; +object e_731244 [2]; +c_731230.hdr.mark = gc_color_red; + c_731230.hdr.grayed = 0; +c_731230.tag = closureN_tag; + c_731230.fn = (function_type)__lambda_47; +c_731230.num_args = 0; +c_731230.num_elements = 2; +c_731230.elements = (object *)e_731244; +c_731230.elements[0] = ((closureN)self_73684)->elements[0]; +c_731230.elements[1] = tmp_73359_73361_73383_73435; + + +closureN_type c_731245; +object e_731250 [1]; +c_731245.hdr.mark = gc_color_red; + c_731245.hdr.grayed = 0; +c_731245.tag = closureN_tag; + c_731245.fn = (function_type)__lambda_49; +c_731245.num_args = 1; +c_731245.num_elements = 1; +c_731245.elements = (object *)e_731250; +c_731245.elements[0] = ((closureN)self_73684)->elements[1]; + +return_direct_with_clo1(data,(closure)&c_731230,__lambda_47, &c_731245);; +} + +static void __lambda_49(void *data, object self_73685, int argc, object *args) /* object self_73685, object r_73590 */ + { + object r_73590 = args[0]; + + +return_direct_with_clo1(data, ((closureN)self_73685)->elements[0], (((closure) ((closureN)self_73685)->elements[0])->fn), Cyc_car(data, r_73590));; +} + +static void __lambda_47(void *data, object self_73686, int argc, object *args) /* object self_73686, object k_73592 */ + { + object k_73592 = args[0]; + if( (boolean_f != ((closureN)self_73686)->elements[1]) ){ + return_direct_with_clo1(data, k_73592, (((closure) k_73592)->fn), ((closureN)self_73686)->elements[1]); +} else { + +closureN_type c_731235; +object e_731241 [1]; +c_731235.hdr.mark = gc_color_red; + c_731235.hdr.grayed = 0; +c_731235.tag = closureN_tag; + c_731235.fn = (function_type)__lambda_48; +c_731235.num_args = 1; +c_731235.num_elements = 1; +c_731235.elements = (object *)e_731241; +c_731235.elements[0] = k_73592; + + +make_utf8_string_with_len(c_731242, "no expansion for", 16, 16); +return_direct_with_clo3(data, __glo_error_95loc_scheme_base, (((closure) __glo_error_95loc_scheme_base)->fn), &c_731235, &c_731242, ((closureN)self_73686)->elements[0]);} +;; +} + +static void __lambda_48(void *data, object self_73687, int argc, object *args) /* object self_73687, object r_73593 */ + { + object r_73593 = args[0]; + +pair_type local_731240; +return_direct_with_clo1(data, ((closureN)self_73687)->elements[0], (((closure) ((closureN)self_73687)->elements[0])->fn), set_pair_as_expr(&local_731240, r_73593, boolean_f));; +} + +static void __lambda_34(void *data, object self_73688, int argc, object *args) /* object self_73688, object k_73595 */ + { + object k_73595 = args[0]; + +if( (boolean_f != Cyc_is_pair(((closureN)self_73688)->elements[1])) ){ + + +if( (boolean_f != Cyc_is_pair(Cyc_cdr(data, ((closureN)self_73688)->elements[1]))) ){ + + + +if( (boolean_f != Cyc_is_pair(Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73688)->elements[1])))) ){ + + + + Cyc_car(data, Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73688)->elements[1]))); + + + +if( (boolean_f != Cyc_is_pair(Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73688)->elements[1]))))) ){ + + + + + Cyc_car(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73688)->elements[1])))); + + + + +if( (boolean_f != Cyc_is_null(Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73688)->elements[1])))))) ){ + +closureN_type c_731128; +object e_731205 [3]; +c_731128.hdr.mark = gc_color_red; + c_731128.hdr.grayed = 0; +c_731128.tag = closureN_tag; + c_731128.fn = (function_type)__lambda_35; +c_731128.num_args = 1; +c_731128.num_elements = 3; +c_731128.elements = (object *)e_731205; +c_731128.elements[0] = k_73595; +c_731128.elements[1] = ((closureN)self_73688)->elements[0]; +c_731128.elements[2] = ((closureN)self_73688)->elements[1]; + +return_closcall2(data, ((closureN)self_73688)->elements[0], &c_731128, quote_begin); +} else { + return_direct_with_clo1(data, k_73595, (((closure) k_73595)->fn), boolean_f);} +; +} else { + return_direct_with_clo1(data, k_73595, (((closure) k_73595)->fn), boolean_f);} +; +} else { + return_direct_with_clo1(data, k_73595, (((closure) k_73595)->fn), boolean_f);} +; +} else { + return_direct_with_clo1(data, k_73595, (((closure) k_73595)->fn), boolean_f);} +; +} else { + return_direct_with_clo1(data, k_73595, (((closure) k_73595)->fn), boolean_f);} +;; +} + +static void __lambda_35(void *data, object self_73689, int argc, object *args) /* object self_73689, object r_73610 */ + { + object r_73610 = args[0]; + +closureN_type c_731131; +object e_731204 [4]; +c_731131.hdr.mark = gc_color_red; + c_731131.hdr.grayed = 0; +c_731131.tag = closureN_tag; + c_731131.fn = (function_type)__lambda_36; +c_731131.num_args = 1; +c_731131.num_elements = 4; +c_731131.elements = (object *)e_731204; +c_731131.elements[0] = ((closureN)self_73689)->elements[0]; +c_731131.elements[1] = r_73610; +c_731131.elements[2] = ((closureN)self_73689)->elements[1]; +c_731131.elements[3] = ((closureN)self_73689)->elements[2]; + +return_closcall2(data, ((closureN)self_73689)->elements[1], &c_731131, quote_define);; +} + +static void __lambda_36(void *data, object self_73690, int argc, object *args) /* object self_73690, object r_73625 */ + { + object r_73625 = args[0]; + +closureN_type c_731133; +object e_731202 [5]; +c_731133.hdr.mark = gc_color_red; + c_731133.hdr.grayed = 0; +c_731133.tag = closureN_tag; + c_731133.fn = (function_type)__lambda_37; +c_731133.num_args = 1; +c_731133.num_elements = 5; +c_731133.elements = (object *)e_731202; +c_731133.elements[0] = ((closureN)self_73690)->elements[0]; +c_731133.elements[1] = ((closureN)self_73690)->elements[1]; +c_731133.elements[2] = r_73625; +c_731133.elements[3] = ((closureN)self_73690)->elements[2]; +c_731133.elements[4] = ((closureN)self_73690)->elements[3]; + + +make_pair(c_731203,boolean_t,NULL);c_731203.hdr.immutable = 1; +return_direct_with_clo4(data, __glo_cons_91source_scheme_base, (((closure) __glo_cons_91source_scheme_base)->fn), &c_731133, boolean_t, NULL, &c_731203);; +} + +static void __lambda_37(void *data, object self_73691, int argc, object *args) /* object self_73691, object r_73628 */ + { + object r_73628 = args[0]; + +closureN_type c_731135; +object e_731196 [5]; +c_731135.hdr.mark = gc_color_red; + c_731135.hdr.grayed = 0; +c_731135.tag = closureN_tag; + c_731135.fn = (function_type)__lambda_38; +c_731135.num_args = 1; +c_731135.num_elements = 5; +c_731135.elements = (object *)e_731196; +c_731135.elements[0] = ((closureN)self_73691)->elements[0]; +c_731135.elements[1] = ((closureN)self_73691)->elements[1]; +c_731135.elements[2] = ((closureN)self_73691)->elements[2]; +c_731135.elements[3] = ((closureN)self_73691)->elements[3]; +c_731135.elements[4] = ((closureN)self_73691)->elements[4]; + + + + +make_pair(c_731201,boolean_t,NULL);c_731201.hdr.immutable = 1; + +make_pair(c_731200,quote_scheme_91name,&c_731201);c_731200.hdr.immutable = 1; +return_direct_with_clo4(data, __glo_cons_91source_scheme_base, (((closure) __glo_cons_91source_scheme_base)->fn), &c_731135, Cyc_car(data, ((closureN)self_73691)->elements[4]), r_73628, &c_731200);; +} + +static void __lambda_38(void *data, object self_73692, int argc, object *args) /* object self_73692, object r_73626 */ + { + object r_73626 = args[0]; + +closureN_type c_731137; +object e_731191 [4]; +c_731137.hdr.mark = gc_color_red; + c_731137.hdr.grayed = 0; +c_731137.tag = closureN_tag; + c_731137.fn = (function_type)__lambda_39; +c_731137.num_args = 1; +c_731137.num_elements = 4; +c_731137.elements = (object *)e_731191; +c_731137.elements[0] = ((closureN)self_73692)->elements[0]; +c_731137.elements[1] = ((closureN)self_73692)->elements[1]; +c_731137.elements[2] = ((closureN)self_73692)->elements[3]; +c_731137.elements[3] = ((closureN)self_73692)->elements[4]; + + +make_pair(c_731195,boolean_t,NULL);c_731195.hdr.immutable = 1; + +make_pair(c_731194,quote_scheme_91name,&c_731195);c_731194.hdr.immutable = 1; + +make_pair(c_731193,quote_define,&c_731194);c_731193.hdr.immutable = 1; +return_direct_with_clo4(data, __glo_cons_91source_scheme_base, (((closure) __glo_cons_91source_scheme_base)->fn), &c_731137, ((closureN)self_73692)->elements[2], r_73626, &c_731193);; +} + +static void __lambda_39(void *data, object self_73693, int argc, object *args) /* object self_73693, object r_73613 */ + { + object r_73613 = args[0]; + +closureN_type c_731140; +object e_731190 [4]; +c_731140.hdr.mark = gc_color_red; + c_731140.hdr.grayed = 0; +c_731140.tag = closureN_tag; + c_731140.fn = (function_type)__lambda_40; +c_731140.num_args = 1; +c_731140.num_elements = 4; +c_731140.elements = (object *)e_731190; +c_731140.elements[0] = ((closureN)self_73693)->elements[0]; +c_731140.elements[1] = ((closureN)self_73693)->elements[1]; +c_731140.elements[2] = r_73613; +c_731140.elements[3] = ((closureN)self_73693)->elements[3]; + +return_closcall2(data, ((closureN)self_73693)->elements[2], &c_731140, quote_shared_91object_91load);; +} + +static void __lambda_40(void *data, object self_73694, int argc, object *args) /* object self_73694, object r_73619 */ + { + object r_73619 = args[0]; + +closureN_type c_731142; +object e_731183 [4]; +c_731142.hdr.mark = gc_color_red; + c_731142.hdr.grayed = 0; +c_731142.tag = closureN_tag; + c_731142.fn = (function_type)__lambda_41; +c_731142.num_args = 1; +c_731142.num_elements = 4; +c_731142.elements = (object *)e_731183; +c_731142.elements[0] = ((closureN)self_73694)->elements[0]; +c_731142.elements[1] = ((closureN)self_73694)->elements[1]; +c_731142.elements[2] = ((closureN)self_73694)->elements[2]; +c_731142.elements[3] = r_73619; + + + + + + +make_pair(c_731189,quote_headers,NULL);c_731189.hdr.immutable = 1; +return_direct_with_clo4(data, __glo_cons_91source_scheme_base, (((closure) __glo_cons_91source_scheme_base)->fn), &c_731142, Cyc_car(data, Cyc_cdr(data, ((closureN)self_73694)->elements[3])), NULL, &c_731189);; +} + +static void __lambda_41(void *data, object self_73695, int argc, object *args) /* object self_73695, object r_73620 */ + { + object r_73620 = args[0]; + +closureN_type c_731144; +object e_731179 [3]; +c_731144.hdr.mark = gc_color_red; + c_731144.hdr.grayed = 0; +c_731144.tag = closureN_tag; + c_731144.fn = (function_type)__lambda_42; +c_731144.num_args = 1; +c_731144.num_elements = 3; +c_731144.elements = (object *)e_731179; +c_731144.elements[0] = ((closureN)self_73695)->elements[0]; +c_731144.elements[1] = ((closureN)self_73695)->elements[1]; +c_731144.elements[2] = ((closureN)self_73695)->elements[2]; + + +make_pair(c_731182,quote_headers,NULL);c_731182.hdr.immutable = 1; + +make_pair(c_731181,quote_shared_91object_91load,&c_731182);c_731181.hdr.immutable = 1; +return_direct_with_clo4(data, __glo_cons_91source_scheme_base, (((closure) __glo_cons_91source_scheme_base)->fn), &c_731144, ((closureN)self_73695)->elements[3], r_73620, &c_731181);; +} + +static void __lambda_42(void *data, object self_73696, int argc, object *args) /* object self_73696, object r_73616 */ + { + object r_73616 = args[0]; + +closureN_type c_731146; +object e_731175 [3]; +c_731146.hdr.mark = gc_color_red; + c_731146.hdr.grayed = 0; +c_731146.tag = closureN_tag; + c_731146.fn = (function_type)__lambda_43; +c_731146.num_args = 1; +c_731146.num_elements = 3; +c_731146.elements = (object *)e_731175; +c_731146.elements[0] = ((closureN)self_73696)->elements[0]; +c_731146.elements[1] = ((closureN)self_73696)->elements[1]; +c_731146.elements[2] = ((closureN)self_73696)->elements[2]; + + +make_pair(c_731178,quote_headers,NULL);c_731178.hdr.immutable = 1; + +make_pair(c_731177,quote_shared_91object_91load,&c_731178);c_731177.hdr.immutable = 1; + +make_pair(c_731176,&c_731177,NULL);c_731176.hdr.immutable = 1; +return_direct_with_clo4(data, __glo_cons_91source_scheme_base, (((closure) __glo_cons_91source_scheme_base)->fn), &c_731146, r_73616, NULL, &c_731176);; +} + +static void __lambda_43(void *data, object self_73697, int argc, object *args) /* object self_73697, object r_73614 */ + { + object r_73614 = args[0]; + +closureN_type c_731148; +object e_731166 [2]; +c_731148.hdr.mark = gc_color_red; + c_731148.hdr.grayed = 0; +c_731148.tag = closureN_tag; + c_731148.fn = (function_type)__lambda_44; +c_731148.num_args = 1; +c_731148.num_elements = 2; +c_731148.elements = (object *)e_731166; +c_731148.elements[0] = ((closureN)self_73697)->elements[0]; +c_731148.elements[1] = ((closureN)self_73697)->elements[1]; + + +make_pair(c_731171,boolean_t,NULL);c_731171.hdr.immutable = 1; + +make_pair(c_731170,quote_scheme_91name,&c_731171);c_731170.hdr.immutable = 1; + +make_pair(c_731169,quote_define,&c_731170);c_731169.hdr.immutable = 1; + +make_pair(c_731174,quote_headers,NULL);c_731174.hdr.immutable = 1; + +make_pair(c_731173,quote_shared_91object_91load,&c_731174);c_731173.hdr.immutable = 1; + +make_pair(c_731172,&c_731173,NULL);c_731172.hdr.immutable = 1; + +make_pair(c_731168,&c_731169,&c_731172);c_731168.hdr.immutable = 1; +return_direct_with_clo4(data, __glo_cons_91source_scheme_base, (((closure) __glo_cons_91source_scheme_base)->fn), &c_731148, ((closureN)self_73697)->elements[2], r_73614, &c_731168);; +} + +static void __lambda_44(void *data, object self_73698, int argc, object *args) /* object self_73698, object r_73611 */ + { + object r_73611 = args[0]; + +closureN_type c_731150; +object e_731156 [1]; +c_731150.hdr.mark = gc_color_red; + c_731150.hdr.grayed = 0; +c_731150.tag = closureN_tag; + c_731150.fn = (function_type)__lambda_45; +c_731150.num_args = 1; +c_731150.num_elements = 1; +c_731150.elements = (object *)e_731156; +c_731150.elements[0] = ((closureN)self_73698)->elements[0]; + + +make_pair(c_731162,boolean_t,NULL);c_731162.hdr.immutable = 1; + +make_pair(c_731161,quote_scheme_91name,&c_731162);c_731161.hdr.immutable = 1; + +make_pair(c_731160,quote_define,&c_731161);c_731160.hdr.immutable = 1; + +make_pair(c_731165,quote_headers,NULL);c_731165.hdr.immutable = 1; + +make_pair(c_731164,quote_shared_91object_91load,&c_731165);c_731164.hdr.immutable = 1; + +make_pair(c_731163,&c_731164,NULL);c_731163.hdr.immutable = 1; + +make_pair(c_731159,&c_731160,&c_731163);c_731159.hdr.immutable = 1; + +make_pair(c_731158,quote_begin,&c_731159);c_731158.hdr.immutable = 1; +return_direct_with_clo4(data, __glo_cons_91source_scheme_base, (((closure) __glo_cons_91source_scheme_base)->fn), &c_731150, ((closureN)self_73698)->elements[1], r_73611, &c_731158);; +} + +static void __lambda_45(void *data, object self_73699, int argc, object *args) /* object self_73699, object r_73609 */ + { + object r_73609 = args[0]; + +pair_type local_731155; +return_direct_with_clo1(data, ((closureN)self_73699)->elements[0], (((closure) ((closureN)self_73699)->elements[0])->fn), set_pair_as_expr(&local_731155, r_73609, boolean_f));; +} + +static void __lambda_58(void *data, object _, int argc, object *args) {object k = args[0];object pointer = args[1];make_c_opaque(opq, &(void*)opaque_ptr(pointer)); + return_closcall1(data, k, &opq); } +static void __lambda_31(void *data, object _, int argc, object *args) /* closure _,object k_73546, object type_73162_73431 */ + { +object k_73546 = args[0]; object type_73162_73431 = args[1]; + Cyc_st_add(data, "./foreign/c/cyclone-primitives.sld:size-of-type"); + +if( (boolean_f != equalp(type_73162_73431, quote_int8)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(int8_t))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_uint8)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(uint8_t))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_int16)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(int16_t))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_uint16)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(uint16_t))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_int32)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(int32_t))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_uint32)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(uint32_t))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_int64)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(int64_t))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_uint64)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(uint64_t))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote__char)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(char))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_unsigned_91char)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(unsigned char))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote__short)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(short))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_unsigned_91short)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(unsigned short))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote__int)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(int))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_unsigned_91int)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(unsigned int))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote__long)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(long))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_unsigned_91long)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(unsigned long))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote__float)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(float))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote__double)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(double))); +} else { + +if( (boolean_f != equalp(type_73162_73431, quote_pointer)) ){ + + +return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), obj_int2obj(sizeof(void*))); +} else { + return_direct_with_clo1(data, k_73546, (((closure) k_73546)->fn), boolean_f);} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;} +;; +} + +static void __lambda_30(void *data, object _, int argc, object *args) /* closure _,object k_73543, object scheme_91name_73158_73427, object return_91type_73159_73428, object argument_91types_73160_73429, object procedure_73161_73430 */ + { +object k_73543 = args[0]; + Cyc_st_add(data, "./foreign/c/cyclone-primitives.sld:define-c-callback"); + +make_utf8_string_with_len(c_731004, "define-callback not yet implemented on Cyclone", 46, 46); +return_direct_with_clo2(data, __glo_error_scheme_base, (((closure) __glo_error_scheme_base)->fn), k_73543, &c_731004);; +} + +static void __lambda_2(void *data, object _, int argc, object *args) /* closure _,object k_73460, object expr_7367_73417, object rename_7368_73418, object compare_7369_73419 */ + { +object k_73460 = args[0]; object expr_7367_73417 = args[1]; + Cyc_st_add(data, "./foreign/c/cyclone-primitives.sld:define-c-procedure"); + +closureN_type c_73710; +object e_73829 [2]; +c_73710.hdr.mark = gc_color_red; + c_73710.hdr.grayed = 0; +c_73710.tag = closureN_tag; + c_73710.fn = (function_type)__lambda_3; +c_73710.num_args = 1; +c_73710.num_elements = 2; +c_73710.elements = (object *)e_73829; +c_73710.elements[0] = expr_7367_73417; +c_73710.elements[1] = k_73460; + + +mmacro(c_73830, (function_type)__lambda_8);c_73830.num_args = 1; +return_direct_with_clo1(data,(closure)&c_73710,__lambda_3, &c_73830);; +} + +static void __lambda_8(void *data, object self_73656, int argc, object *args) /* object self_73656, object k_73498, object type_7393_73426 */ + { + object k_73498 = args[0]; object type_7393_73426 = args[1]; + +closureN_type c_73832; +object e_73999 [2]; +c_73832.hdr.mark = gc_color_red; + c_73832.hdr.grayed = 0; +c_73832.tag = closureN_tag; + c_73832.fn = (function_type)__lambda_9; +c_73832.num_args = 1; +c_73832.num_elements = 2; +c_73832.elements = (object *)e_73999; +c_73832.elements[0] = k_73498; +c_73832.elements[1] = type_7393_73426; + + + +return_direct_with_clo1(data,(closure)&c_73832,__lambda_9, equalp(type_7393_73426, quote_int8));; +} + +static void __lambda_9(void *data, object self_73657, int argc, object *args) /* object self_73657, object r_73499 */ + { + object r_73499 = args[0]; + if( (boolean_f != r_73499) ){ + return_direct_with_clo1(data, ((closureN)self_73657)->elements[0], (((closure) ((closureN)self_73657)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73836; +object e_73995 [2]; +c_73836.hdr.mark = gc_color_red; + c_73836.hdr.grayed = 0; +c_73836.tag = closureN_tag; + c_73836.fn = (function_type)__lambda_10; +c_73836.num_args = 1; +c_73836.num_elements = 2; +c_73836.elements = (object *)e_73995; +c_73836.elements[0] = ((closureN)self_73657)->elements[0]; +c_73836.elements[1] = ((closureN)self_73657)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73836,__lambda_10, equalp(((closureN)self_73657)->elements[1], quote_uint8));} +;; +} + +static void __lambda_10(void *data, object self_73658, int argc, object *args) /* object self_73658, object r_73500 */ + { + object r_73500 = args[0]; + if( (boolean_f != r_73500) ){ + return_direct_with_clo1(data, ((closureN)self_73658)->elements[0], (((closure) ((closureN)self_73658)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73840; +object e_73991 [2]; +c_73840.hdr.mark = gc_color_red; + c_73840.hdr.grayed = 0; +c_73840.tag = closureN_tag; + c_73840.fn = (function_type)__lambda_11; +c_73840.num_args = 1; +c_73840.num_elements = 2; +c_73840.elements = (object *)e_73991; +c_73840.elements[0] = ((closureN)self_73658)->elements[0]; +c_73840.elements[1] = ((closureN)self_73658)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73840,__lambda_11, equalp(((closureN)self_73658)->elements[1], quote_int16));} +;; +} + +static void __lambda_11(void *data, object self_73659, int argc, object *args) /* object self_73659, object r_73501 */ + { + object r_73501 = args[0]; + if( (boolean_f != r_73501) ){ + return_direct_with_clo1(data, ((closureN)self_73659)->elements[0], (((closure) ((closureN)self_73659)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73844; +object e_73987 [2]; +c_73844.hdr.mark = gc_color_red; + c_73844.hdr.grayed = 0; +c_73844.tag = closureN_tag; + c_73844.fn = (function_type)__lambda_12; +c_73844.num_args = 1; +c_73844.num_elements = 2; +c_73844.elements = (object *)e_73987; +c_73844.elements[0] = ((closureN)self_73659)->elements[0]; +c_73844.elements[1] = ((closureN)self_73659)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73844,__lambda_12, equalp(((closureN)self_73659)->elements[1], quote_uint16));} +;; +} + +static void __lambda_12(void *data, object self_73660, int argc, object *args) /* object self_73660, object r_73502 */ + { + object r_73502 = args[0]; + if( (boolean_f != r_73502) ){ + return_direct_with_clo1(data, ((closureN)self_73660)->elements[0], (((closure) ((closureN)self_73660)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73848; +object e_73983 [2]; +c_73848.hdr.mark = gc_color_red; + c_73848.hdr.grayed = 0; +c_73848.tag = closureN_tag; + c_73848.fn = (function_type)__lambda_13; +c_73848.num_args = 1; +c_73848.num_elements = 2; +c_73848.elements = (object *)e_73983; +c_73848.elements[0] = ((closureN)self_73660)->elements[0]; +c_73848.elements[1] = ((closureN)self_73660)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73848,__lambda_13, equalp(((closureN)self_73660)->elements[1], quote_int32));} +;; +} + +static void __lambda_13(void *data, object self_73661, int argc, object *args) /* object self_73661, object r_73503 */ + { + object r_73503 = args[0]; + if( (boolean_f != r_73503) ){ + return_direct_with_clo1(data, ((closureN)self_73661)->elements[0], (((closure) ((closureN)self_73661)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73852; +object e_73979 [2]; +c_73852.hdr.mark = gc_color_red; + c_73852.hdr.grayed = 0; +c_73852.tag = closureN_tag; + c_73852.fn = (function_type)__lambda_14; +c_73852.num_args = 1; +c_73852.num_elements = 2; +c_73852.elements = (object *)e_73979; +c_73852.elements[0] = ((closureN)self_73661)->elements[0]; +c_73852.elements[1] = ((closureN)self_73661)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73852,__lambda_14, equalp(((closureN)self_73661)->elements[1], quote_uint32));} +;; +} + +static void __lambda_14(void *data, object self_73662, int argc, object *args) /* object self_73662, object r_73504 */ + { + object r_73504 = args[0]; + if( (boolean_f != r_73504) ){ + return_direct_with_clo1(data, ((closureN)self_73662)->elements[0], (((closure) ((closureN)self_73662)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73856; +object e_73975 [2]; +c_73856.hdr.mark = gc_color_red; + c_73856.hdr.grayed = 0; +c_73856.tag = closureN_tag; + c_73856.fn = (function_type)__lambda_15; +c_73856.num_args = 1; +c_73856.num_elements = 2; +c_73856.elements = (object *)e_73975; +c_73856.elements[0] = ((closureN)self_73662)->elements[0]; +c_73856.elements[1] = ((closureN)self_73662)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73856,__lambda_15, equalp(((closureN)self_73662)->elements[1], quote_int64));} +;; +} + +static void __lambda_15(void *data, object self_73663, int argc, object *args) /* object self_73663, object r_73505 */ + { + object r_73505 = args[0]; + if( (boolean_f != r_73505) ){ + return_direct_with_clo1(data, ((closureN)self_73663)->elements[0], (((closure) ((closureN)self_73663)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73860; +object e_73971 [2]; +c_73860.hdr.mark = gc_color_red; + c_73860.hdr.grayed = 0; +c_73860.tag = closureN_tag; + c_73860.fn = (function_type)__lambda_16; +c_73860.num_args = 1; +c_73860.num_elements = 2; +c_73860.elements = (object *)e_73971; +c_73860.elements[0] = ((closureN)self_73663)->elements[0]; +c_73860.elements[1] = ((closureN)self_73663)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73860,__lambda_16, equalp(((closureN)self_73663)->elements[1], quote_uint64));} +;; +} + +static void __lambda_16(void *data, object self_73664, int argc, object *args) /* object self_73664, object r_73506 */ + { + object r_73506 = args[0]; + if( (boolean_f != r_73506) ){ + return_direct_with_clo1(data, ((closureN)self_73664)->elements[0], (((closure) ((closureN)self_73664)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73864; +object e_73967 [2]; +c_73864.hdr.mark = gc_color_red; + c_73864.hdr.grayed = 0; +c_73864.tag = closureN_tag; + c_73864.fn = (function_type)__lambda_17; +c_73864.num_args = 1; +c_73864.num_elements = 2; +c_73864.elements = (object *)e_73967; +c_73864.elements[0] = ((closureN)self_73664)->elements[0]; +c_73864.elements[1] = ((closureN)self_73664)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73864,__lambda_17, equalp(((closureN)self_73664)->elements[1], quote__char));} +;; +} + +static void __lambda_17(void *data, object self_73665, int argc, object *args) /* object self_73665, object r_73507 */ + { + object r_73507 = args[0]; + if( (boolean_f != r_73507) ){ + return_direct_with_clo1(data, ((closureN)self_73665)->elements[0], (((closure) ((closureN)self_73665)->elements[0])->fn), quote__char); +} else { + +closureN_type c_73868; +object e_73963 [2]; +c_73868.hdr.mark = gc_color_red; + c_73868.hdr.grayed = 0; +c_73868.tag = closureN_tag; + c_73868.fn = (function_type)__lambda_18; +c_73868.num_args = 1; +c_73868.num_elements = 2; +c_73868.elements = (object *)e_73963; +c_73868.elements[0] = ((closureN)self_73665)->elements[0]; +c_73868.elements[1] = ((closureN)self_73665)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73868,__lambda_18, equalp(((closureN)self_73665)->elements[1], quote_unsigned_91char));} +;; +} + +static void __lambda_18(void *data, object self_73666, int argc, object *args) /* object self_73666, object r_73508 */ + { + object r_73508 = args[0]; + if( (boolean_f != r_73508) ){ + return_direct_with_clo1(data, ((closureN)self_73666)->elements[0], (((closure) ((closureN)self_73666)->elements[0])->fn), quote_unsigned_91char); +} else { + +closureN_type c_73872; +object e_73959 [2]; +c_73872.hdr.mark = gc_color_red; + c_73872.hdr.grayed = 0; +c_73872.tag = closureN_tag; + c_73872.fn = (function_type)__lambda_19; +c_73872.num_args = 1; +c_73872.num_elements = 2; +c_73872.elements = (object *)e_73959; +c_73872.elements[0] = ((closureN)self_73666)->elements[0]; +c_73872.elements[1] = ((closureN)self_73666)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73872,__lambda_19, equalp(((closureN)self_73666)->elements[1], quote__short));} +;; +} + +static void __lambda_19(void *data, object self_73667, int argc, object *args) /* object self_73667, object r_73509 */ + { + object r_73509 = args[0]; + if( (boolean_f != r_73509) ){ + return_direct_with_clo1(data, ((closureN)self_73667)->elements[0], (((closure) ((closureN)self_73667)->elements[0])->fn), quote__short); +} else { + +closureN_type c_73876; +object e_73955 [2]; +c_73876.hdr.mark = gc_color_red; + c_73876.hdr.grayed = 0; +c_73876.tag = closureN_tag; + c_73876.fn = (function_type)__lambda_20; +c_73876.num_args = 1; +c_73876.num_elements = 2; +c_73876.elements = (object *)e_73955; +c_73876.elements[0] = ((closureN)self_73667)->elements[0]; +c_73876.elements[1] = ((closureN)self_73667)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73876,__lambda_20, equalp(((closureN)self_73667)->elements[1], quote_unsigned_91short));} +;; +} + +static void __lambda_20(void *data, object self_73668, int argc, object *args) /* object self_73668, object r_73510 */ + { + object r_73510 = args[0]; + if( (boolean_f != r_73510) ){ + return_direct_with_clo1(data, ((closureN)self_73668)->elements[0], (((closure) ((closureN)self_73668)->elements[0])->fn), quote_unsigned_91short); +} else { + +closureN_type c_73880; +object e_73951 [2]; +c_73880.hdr.mark = gc_color_red; + c_73880.hdr.grayed = 0; +c_73880.tag = closureN_tag; + c_73880.fn = (function_type)__lambda_21; +c_73880.num_args = 1; +c_73880.num_elements = 2; +c_73880.elements = (object *)e_73951; +c_73880.elements[0] = ((closureN)self_73668)->elements[0]; +c_73880.elements[1] = ((closureN)self_73668)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73880,__lambda_21, equalp(((closureN)self_73668)->elements[1], quote__int));} +;; +} + +static void __lambda_21(void *data, object self_73669, int argc, object *args) /* object self_73669, object r_73511 */ + { + object r_73511 = args[0]; + if( (boolean_f != r_73511) ){ + return_direct_with_clo1(data, ((closureN)self_73669)->elements[0], (((closure) ((closureN)self_73669)->elements[0])->fn), quote__int); +} else { + +closureN_type c_73884; +object e_73947 [2]; +c_73884.hdr.mark = gc_color_red; + c_73884.hdr.grayed = 0; +c_73884.tag = closureN_tag; + c_73884.fn = (function_type)__lambda_22; +c_73884.num_args = 1; +c_73884.num_elements = 2; +c_73884.elements = (object *)e_73947; +c_73884.elements[0] = ((closureN)self_73669)->elements[0]; +c_73884.elements[1] = ((closureN)self_73669)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73884,__lambda_22, equalp(((closureN)self_73669)->elements[1], quote_unsigned_91int));} +;; +} + +static void __lambda_22(void *data, object self_73670, int argc, object *args) /* object self_73670, object r_73512 */ + { + object r_73512 = args[0]; + if( (boolean_f != r_73512) ){ + return_direct_with_clo1(data, ((closureN)self_73670)->elements[0], (((closure) ((closureN)self_73670)->elements[0])->fn), quote_unsigned_91int); +} else { + +closureN_type c_73888; +object e_73943 [2]; +c_73888.hdr.mark = gc_color_red; + c_73888.hdr.grayed = 0; +c_73888.tag = closureN_tag; + c_73888.fn = (function_type)__lambda_23; +c_73888.num_args = 1; +c_73888.num_elements = 2; +c_73888.elements = (object *)e_73943; +c_73888.elements[0] = ((closureN)self_73670)->elements[0]; +c_73888.elements[1] = ((closureN)self_73670)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73888,__lambda_23, equalp(((closureN)self_73670)->elements[1], quote__long));} +;; +} + +static void __lambda_23(void *data, object self_73671, int argc, object *args) /* object self_73671, object r_73513 */ + { + object r_73513 = args[0]; + if( (boolean_f != r_73513) ){ + return_direct_with_clo1(data, ((closureN)self_73671)->elements[0], (((closure) ((closureN)self_73671)->elements[0])->fn), quote__long); +} else { + +closureN_type c_73892; +object e_73939 [2]; +c_73892.hdr.mark = gc_color_red; + c_73892.hdr.grayed = 0; +c_73892.tag = closureN_tag; + c_73892.fn = (function_type)__lambda_24; +c_73892.num_args = 1; +c_73892.num_elements = 2; +c_73892.elements = (object *)e_73939; +c_73892.elements[0] = ((closureN)self_73671)->elements[0]; +c_73892.elements[1] = ((closureN)self_73671)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73892,__lambda_24, equalp(((closureN)self_73671)->elements[1], quote_unsigned_91long));} +;; +} + +static void __lambda_24(void *data, object self_73672, int argc, object *args) /* object self_73672, object r_73514 */ + { + object r_73514 = args[0]; + if( (boolean_f != r_73514) ){ + return_direct_with_clo1(data, ((closureN)self_73672)->elements[0], (((closure) ((closureN)self_73672)->elements[0])->fn), quote_unsigned_91long); +} else { + +closureN_type c_73896; +object e_73935 [2]; +c_73896.hdr.mark = gc_color_red; + c_73896.hdr.grayed = 0; +c_73896.tag = closureN_tag; + c_73896.fn = (function_type)__lambda_25; +c_73896.num_args = 1; +c_73896.num_elements = 2; +c_73896.elements = (object *)e_73935; +c_73896.elements[0] = ((closureN)self_73672)->elements[0]; +c_73896.elements[1] = ((closureN)self_73672)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73896,__lambda_25, equalp(((closureN)self_73672)->elements[1], quote__float));} +;; +} + +static void __lambda_25(void *data, object self_73673, int argc, object *args) /* object self_73673, object r_73515 */ + { + object r_73515 = args[0]; + if( (boolean_f != r_73515) ){ + return_direct_with_clo1(data, ((closureN)self_73673)->elements[0], (((closure) ((closureN)self_73673)->elements[0])->fn), quote__float); +} else { + +closureN_type c_73900; +object e_73931 [2]; +c_73900.hdr.mark = gc_color_red; + c_73900.hdr.grayed = 0; +c_73900.tag = closureN_tag; + c_73900.fn = (function_type)__lambda_26; +c_73900.num_args = 1; +c_73900.num_elements = 2; +c_73900.elements = (object *)e_73931; +c_73900.elements[0] = ((closureN)self_73673)->elements[0]; +c_73900.elements[1] = ((closureN)self_73673)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73900,__lambda_26, equalp(((closureN)self_73673)->elements[1], quote__double));} +;; +} + +static void __lambda_26(void *data, object self_73674, int argc, object *args) /* object self_73674, object r_73516 */ + { + object r_73516 = args[0]; + if( (boolean_f != r_73516) ){ + return_direct_with_clo1(data, ((closureN)self_73674)->elements[0], (((closure) ((closureN)self_73674)->elements[0])->fn), quote__double); +} else { + +closureN_type c_73904; +object e_73927 [2]; +c_73904.hdr.mark = gc_color_red; + c_73904.hdr.grayed = 0; +c_73904.tag = closureN_tag; + c_73904.fn = (function_type)__lambda_27; +c_73904.num_args = 1; +c_73904.num_elements = 2; +c_73904.elements = (object *)e_73927; +c_73904.elements[0] = ((closureN)self_73674)->elements[0]; +c_73904.elements[1] = ((closureN)self_73674)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73904,__lambda_27, equalp(((closureN)self_73674)->elements[1], quote_pointer));} +;; +} + +static void __lambda_27(void *data, object self_73675, int argc, object *args) /* object self_73675, object r_73517 */ + { + object r_73517 = args[0]; + if( (boolean_f != r_73517) ){ + return_direct_with_clo1(data, ((closureN)self_73675)->elements[0], (((closure) ((closureN)self_73675)->elements[0])->fn), quote_opaque); +} else { + +closureN_type c_73908; +object e_73923 [2]; +c_73908.hdr.mark = gc_color_red; + c_73908.hdr.grayed = 0; +c_73908.tag = closureN_tag; + c_73908.fn = (function_type)__lambda_28; +c_73908.num_args = 1; +c_73908.num_elements = 2; +c_73908.elements = (object *)e_73923; +c_73908.elements[0] = ((closureN)self_73675)->elements[0]; +c_73908.elements[1] = ((closureN)self_73675)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73908,__lambda_28, equalp(((closureN)self_73675)->elements[1], quote__void));} +;; +} + +static void __lambda_28(void *data, object self_73676, int argc, object *args) /* object self_73676, object r_73518 */ + { + object r_73518 = args[0]; + if( (boolean_f != r_73518) ){ + return_direct_with_clo1(data, ((closureN)self_73676)->elements[0], (((closure) ((closureN)self_73676)->elements[0])->fn), quote_c_91void); +} else { + +closureN_type c_73912; +object e_73919 [2]; +c_73912.hdr.mark = gc_color_red; + c_73912.hdr.grayed = 0; +c_73912.tag = closureN_tag; + c_73912.fn = (function_type)__lambda_29; +c_73912.num_args = 1; +c_73912.num_elements = 2; +c_73912.elements = (object *)e_73919; +c_73912.elements[0] = ((closureN)self_73676)->elements[0]; +c_73912.elements[1] = ((closureN)self_73676)->elements[1]; + + + +return_direct_with_clo1(data,(closure)&c_73912,__lambda_29, equalp(((closureN)self_73676)->elements[1], quote_callback));} +;; +} + +static void __lambda_29(void *data, object self_73677, int argc, object *args) /* object self_73677, object r_73519 */ + { + object r_73519 = args[0]; + if( (boolean_f != r_73519) ){ + return_direct_with_clo1(data, ((closureN)self_73677)->elements[0], (((closure) ((closureN)self_73677)->elements[0])->fn), quote_opaque); +} else { + +make_utf8_string_with_len(c_73917, "type->native-type -- No such type", 33, 33); +return_direct_with_clo3(data, __glo_error_scheme_base, (((closure) __glo_error_scheme_base)->fn), ((closureN)self_73677)->elements[0], &c_73917, ((closureN)self_73677)->elements[1]);} +;; +} + +static void __lambda_3(void *data, object self_73678, int argc, object *args) /* object self_73678, object type_91_125native_91type_7372_73420 */ + { + object type_91_125native_91type_7372_73420 = args[0]; + +closureN_type c_73712; +object e_73812 [3]; +c_73712.hdr.mark = gc_color_red; + c_73712.hdr.grayed = 0; +c_73712.tag = closureN_tag; + c_73712.fn = (function_type)__lambda_4; +c_73712.num_args = 1; +c_73712.num_elements = 3; +c_73712.elements = (object *)e_73812; +c_73712.elements[0] = ((closureN)self_73678)->elements[0]; +c_73712.elements[1] = ((closureN)self_73678)->elements[1]; +c_73712.elements[2] = type_91_125native_91type_7372_73420; + + + + + + + + + + + + + + +object c_73815 = Cyc_symbol2string(data,(closure)&c_73712,Cyc_car(data, Cyc_cdr(data, Cyc_car(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73678)->elements[0]))))))); +return_closcall1(data,(closure)&c_73712, c_73815);; +} + +static void __lambda_4(void *data, object self_73679, int argc, object *args) /* object self_73679, object c_91name_7378_73422 */ + { + object c_91name_7378_73422 = args[0]; + +closureN_type c_73715; +object e_73796 [4]; +c_73715.hdr.mark = gc_color_red; + c_73715.hdr.grayed = 0; +c_73715.tag = closureN_tag; + c_73715.fn = (function_type)__lambda_5; +c_73715.num_args = 1; +c_73715.num_elements = 4; +c_73715.elements = (object *)e_73796; +c_73715.elements[0] = c_91name_7378_73422; +c_73715.elements[1] = ((closureN)self_73679)->elements[0]; +c_73715.elements[2] = ((closureN)self_73679)->elements[1]; +c_73715.elements[3] = ((closureN)self_73679)->elements[2]; + + + + + + + + + + + + + + + +return_closcall2(data, ((closureN)self_73679)->elements[2], &c_73715, Cyc_car(data, Cyc_cdr(data, Cyc_car(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73679)->elements[0]))))))));; +} + +static void __lambda_5(void *data, object self_73680, int argc, object *args) /* object self_73680, object return_91type_7381_73423 */ + { + object return_91type_7381_73423 = args[0]; + +closureN_type c_73717; +object e_73753 [2]; +c_73717.hdr.mark = gc_color_red; + c_73717.hdr.grayed = 0; +c_73717.tag = closureN_tag; + c_73717.fn = (function_type)__lambda_6; +c_73717.num_args = 0; +c_73717.num_elements = 2; +c_73717.elements = (object *)e_73753; +c_73717.elements[0] = ((closureN)self_73680)->elements[1]; +c_73717.elements[1] = ((closureN)self_73680)->elements[3]; + + +closureN_type c_73754; +object e_73795 [4]; +c_73754.hdr.mark = gc_color_red; + c_73754.hdr.grayed = 0; +c_73754.tag = closureN_tag; + c_73754.fn = (function_type)__lambda_7; +c_73754.num_args = 1; +c_73754.num_elements = 4; +c_73754.elements = (object *)e_73795; +c_73754.elements[0] = ((closureN)self_73680)->elements[0]; +c_73754.elements[1] = ((closureN)self_73680)->elements[1]; +c_73754.elements[2] = ((closureN)self_73680)->elements[2]; +c_73754.elements[3] = return_91type_7381_73423; + +return_direct_with_clo1(data,(closure)&c_73717,__lambda_6, &c_73754);; +} + +static void __lambda_7(void *data, object self_73681, int argc, object *args) /* object self_73681, object argument_91types_7384_73424 */ + { + object argument_91types_7384_73424 = args[0]; + +if( (boolean_f != Cyc_is_null(argument_91types_7384_73424)) ){ + +pair_type local_73761; + +pair_type local_73764; + + + +pair_type local_73770; + +pair_type local_73774; +return_direct_with_clo1(data, ((closureN)self_73681)->elements[2], (((closure) ((closureN)self_73681)->elements[2])->fn), set_pair_as_expr(&local_73761, quote_c_91define, set_pair_as_expr(&local_73764, Cyc_cadr(data, ((closureN)self_73681)->elements[1]), set_pair_as_expr(&local_73770, ((closureN)self_73681)->elements[3], set_pair_as_expr(&local_73774, ((closureN)self_73681)->elements[0], NULL))))); +} else { + +pair_type local_73780; + +pair_type local_73783; + + + +pair_type local_73789; + +pair_type local_73793; +return_direct_with_clo1(data, ((closureN)self_73681)->elements[2], (((closure) ((closureN)self_73681)->elements[2])->fn), set_pair_as_expr(&local_73780, quote_c_91define, set_pair_as_expr(&local_73783, Cyc_cadr(data, ((closureN)self_73681)->elements[1]), set_pair_as_expr(&local_73789, ((closureN)self_73681)->elements[3], set_pair_as_expr(&local_73793, ((closureN)self_73681)->elements[0], argument_91types_7384_73424)))));} +;; +} + +static void __lambda_6(void *data, object self_73682, int argc, object *args) /* object self_73682, object k_73477 */ + { + object k_73477 = args[0]; + + + + + + + + +if( (boolean_f != Cyc_is_null(Cyc_cadr(data, Cyc_car(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73682)->elements[0]))))))))) ){ + return_direct_with_clo1(data, k_73477, (((closure) k_73477)->fn), NULL); +} else { + + + + + + + + + + + + + + +return_direct_with_clo3(data, __glo_Cyc_91map_91loop_911_scheme_base, (((closure) __glo_Cyc_91map_91loop_911_scheme_base)->fn), k_73477, ((closureN)self_73682)->elements[1], Cyc_cadr(data, Cyc_car(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, Cyc_cdr(data, ((closureN)self_73682)->elements[0]))))))));} +;; +} + +static void __lambda_1(void *data, object _, int argc, object *args) /* closure _,object k_73457, object object_7366_73416 */ + { +object k_73457 = args[0]; object object_7366_73416 = args[1]; + Cyc_st_add(data, "./foreign/c/cyclone-primitives.sld:c-bytevector?"); +return_direct_with_clo2(data, __glo_opaque_127_cyclone_foreign, (((closure) __glo_opaque_127_cyclone_foreign)->fn), k_73457, object_7366_73416);; +} + +void c_foreigncprimitives_91cyclone_inlinable_lambdas(void *data, object clo, int argc, object *args){ +object buf[1]; object cont = args[0]; +buf[0] = NULL; (((closure)cont)->fn)(data, cont, 1, buf); + } +void c_foreigncprimitives_91cyclone_entry_pt_first_lambda(void *data, object clo, int argc, object *args){ +Cyc_set_globals_changed((gc_thread_data *)data); + quote_align_91of_91type = find_or_add_symbol("align-of-type"); + quote_c_91bytevector_91u8_91set_67 = find_or_add_symbol("c-bytevector-u8-set!"); + quote_c_91bytevector_91u8_91ref = find_or_add_symbol("c-bytevector-u8-ref"); + quote_include_91c_91header = find_or_add_symbol("include-c-header"); + quote_headers = find_or_add_symbol("headers"); + quote_shared_91object_91load = find_or_add_symbol("shared-object-load"); + quote_scheme_91name = find_or_add_symbol("scheme-name"); + quote_define = find_or_add_symbol("define"); + quote_begin = find_or_add_symbol("begin"); + quote_int8 = find_or_add_symbol("int8"); + quote_uint8 = find_or_add_symbol("uint8"); + quote_int16 = find_or_add_symbol("int16"); + quote_uint16 = find_or_add_symbol("uint16"); + quote_int32 = find_or_add_symbol("int32"); + quote_uint32 = find_or_add_symbol("uint32"); + quote_int64 = find_or_add_symbol("int64"); + quote_uint64 = find_or_add_symbol("uint64"); + quote_pointer = find_or_add_symbol("pointer"); + quote__void = find_or_add_symbol("void"); + quote_callback = find_or_add_symbol("callback"); + quote_c_91void = find_or_add_symbol("c-void"); + quote_opaque = find_or_add_symbol("opaque"); + quote__double = find_or_add_symbol("double"); + quote__float = find_or_add_symbol("float"); + quote_unsigned_91long = find_or_add_symbol("unsigned-long"); + quote__long = find_or_add_symbol("long"); + quote_unsigned_91int = find_or_add_symbol("unsigned-int"); + quote_unsigned_91short = find_or_add_symbol("unsigned-short"); + quote__short = find_or_add_symbol("short"); + quote_unsigned_91char = find_or_add_symbol("unsigned-char"); + quote__char = find_or_add_symbol("char"); + quote__int = find_or_add_symbol("int"); + quote_c_91define = find_or_add_symbol("c-define"); + + add_global("__glo_lib_91init_117foreigncprimitives_19191cyclone_foreign_c_primitives_91cyclone", (object *) &__glo_lib_91init_117foreigncprimitives_19191cyclone_foreign_c_primitives_91cyclone); + add_global("__glo_c_91bytevector_91u8_91ref_foreign_c_primitives_91cyclone", (object *) &__glo_c_91bytevector_91u8_91ref_foreign_c_primitives_91cyclone); + add_global("__glo_c_91bytevector_91u8_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_c_91bytevector_91u8_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_c_91bytevector_91pointer_91ref_foreign_c_primitives_91cyclone", (object *) &__glo_c_91bytevector_91pointer_91ref_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91double_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91double_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91float_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91float_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91unsigned_91long_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91unsigned_91long_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91long_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91long_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91unsigned_91int_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91unsigned_91int_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91unsigned_91short_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91unsigned_91short_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91short_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91short_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91char_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91char_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91uint64_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91uint64_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int64_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int64_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91uint32_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91uint32_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int32_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int32_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91uint16_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91uint16_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int16_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int16_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91uint8_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91uint8_91get_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int8_91get_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int8_91get_foreign_c_primitives_91cyclone); + add_global("__glo_c_91bytevector_91pointer_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_c_91bytevector_91pointer_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91double_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91double_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91float_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91float_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91unsigned_91long_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91unsigned_91long_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91long_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91long_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91unsigned_91int_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91unsigned_91int_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91unsigned_91short_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91unsigned_91short_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91short_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91short_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91char_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91char_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91uint64_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91uint64_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int64_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int64_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91uint32_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91uint32_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int32_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int32_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91uint16_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91uint16_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int16_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int16_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91uint8_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91uint8_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91int8_91set_67_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91int8_91set_67_foreign_c_primitives_91cyclone); + add_global("__glo_shared_91object_91load_foreign_c_primitives_91cyclone", (object *) &__glo_shared_91object_91load_foreign_c_primitives_91cyclone); + add_global("__glo_define_91c_91library_foreign_c_primitives_91cyclone", (object *) &__glo_define_91c_91library_foreign_c_primitives_91cyclone); + add_global("__glo_pointer_91address_foreign_c_primitives_91cyclone", (object *) &__glo_pointer_91address_foreign_c_primitives_91cyclone); + add_global("__glo_align_91of_91type_foreign_c_primitives_91cyclone", (object *) &__glo_align_91of_91type_foreign_c_primitives_91cyclone); + add_global("__glo_size_91of_91type_foreign_c_primitives_91cyclone", (object *) &__glo_size_91of_91type_foreign_c_primitives_91cyclone); + add_global("__glo_define_91c_91callback_foreign_c_primitives_91cyclone", (object *) &__glo_define_91c_91callback_foreign_c_primitives_91cyclone); + add_global("__glo_define_91c_91procedure_foreign_c_primitives_91cyclone", (object *) &__glo_define_91c_91procedure_foreign_c_primitives_91cyclone); + add_global("__glo_c_91bytevector_127_foreign_c_primitives_91cyclone", (object *) &__glo_c_91bytevector_127_foreign_c_primitives_91cyclone); + mclosure0(c_731322, (function_type)__lambda_55);c_731322.num_args = 0; + __glo_lib_91init_117foreigncprimitives_19191cyclone_foreign_c_primitives_91cyclone = &c_731322; + mclosure0(c_731321, (function_type)__lambda_94);c_731321.num_args = 2; + __glo_c_91bytevector_91pointer_91ref_foreign_c_primitives_91cyclone = &c_731321; + mclosure0(c_731320, (function_type)__lambda_93);c_731320.num_args = 2; + __glo_pointer_91double_91get_foreign_c_primitives_91cyclone = &c_731320; + mclosure0(c_731319, (function_type)__lambda_92);c_731319.num_args = 2; + __glo_pointer_91float_91get_foreign_c_primitives_91cyclone = &c_731319; + mclosure0(c_731318, (function_type)__lambda_91);c_731318.num_args = 2; + __glo_pointer_91unsigned_91long_91get_foreign_c_primitives_91cyclone = &c_731318; + mclosure0(c_731317, (function_type)__lambda_90);c_731317.num_args = 2; + __glo_pointer_91long_91get_foreign_c_primitives_91cyclone = &c_731317; + mclosure0(c_731316, (function_type)__lambda_89);c_731316.num_args = 2; + __glo_pointer_91unsigned_91int_91get_foreign_c_primitives_91cyclone = &c_731316; + mclosure0(c_731315, (function_type)__lambda_88);c_731315.num_args = 2; + __glo_pointer_91int_91get_foreign_c_primitives_91cyclone = &c_731315; + mclosure0(c_731314, (function_type)__lambda_87);c_731314.num_args = 2; + __glo_pointer_91unsigned_91short_91get_foreign_c_primitives_91cyclone = &c_731314; + mclosure0(c_731313, (function_type)__lambda_86);c_731313.num_args = 2; + __glo_pointer_91short_91get_foreign_c_primitives_91cyclone = &c_731313; + mclosure0(c_731312, (function_type)__lambda_85);c_731312.num_args = 2; + __glo_pointer_91char_91get_foreign_c_primitives_91cyclone = &c_731312; + mclosure0(c_731311, (function_type)__lambda_84);c_731311.num_args = 2; + __glo_pointer_91uint64_91get_foreign_c_primitives_91cyclone = &c_731311; + mclosure0(c_731310, (function_type)__lambda_83);c_731310.num_args = 2; + __glo_pointer_91int64_91get_foreign_c_primitives_91cyclone = &c_731310; + mclosure0(c_731309, (function_type)__lambda_82);c_731309.num_args = 2; + __glo_pointer_91uint32_91get_foreign_c_primitives_91cyclone = &c_731309; + mclosure0(c_731308, (function_type)__lambda_81);c_731308.num_args = 2; + __glo_pointer_91int32_91get_foreign_c_primitives_91cyclone = &c_731308; + mclosure0(c_731307, (function_type)__lambda_80);c_731307.num_args = 2; + __glo_pointer_91uint16_91get_foreign_c_primitives_91cyclone = &c_731307; + mclosure0(c_731306, (function_type)__lambda_79);c_731306.num_args = 2; + __glo_pointer_91int16_91get_foreign_c_primitives_91cyclone = &c_731306; + mclosure0(c_731305, (function_type)__lambda_78);c_731305.num_args = 2; + __glo_pointer_91uint8_91get_foreign_c_primitives_91cyclone = &c_731305; + mclosure0(c_731304, (function_type)__lambda_77);c_731304.num_args = 2; + __glo_pointer_91int8_91get_foreign_c_primitives_91cyclone = &c_731304; + mclosure0(c_731303, (function_type)__lambda_76);c_731303.num_args = 3; + __glo_c_91bytevector_91pointer_91set_67_foreign_c_primitives_91cyclone = &c_731303; + mclosure0(c_731302, (function_type)__lambda_75);c_731302.num_args = 3; + __glo_pointer_91double_91set_67_foreign_c_primitives_91cyclone = &c_731302; + mclosure0(c_731301, (function_type)__lambda_74);c_731301.num_args = 3; + __glo_pointer_91float_91set_67_foreign_c_primitives_91cyclone = &c_731301; + mclosure0(c_731300, (function_type)__lambda_73);c_731300.num_args = 3; + __glo_pointer_91unsigned_91long_91set_67_foreign_c_primitives_91cyclone = &c_731300; + mclosure0(c_731299, (function_type)__lambda_72);c_731299.num_args = 3; + __glo_pointer_91long_91set_67_foreign_c_primitives_91cyclone = &c_731299; + mclosure0(c_731298, (function_type)__lambda_71);c_731298.num_args = 3; + __glo_pointer_91unsigned_91int_91set_67_foreign_c_primitives_91cyclone = &c_731298; + mclosure0(c_731297, (function_type)__lambda_70);c_731297.num_args = 3; + __glo_pointer_91int_91set_67_foreign_c_primitives_91cyclone = &c_731297; + mclosure0(c_731296, (function_type)__lambda_69);c_731296.num_args = 3; + __glo_pointer_91unsigned_91short_91set_67_foreign_c_primitives_91cyclone = &c_731296; + mclosure0(c_731295, (function_type)__lambda_68);c_731295.num_args = 3; + __glo_pointer_91short_91set_67_foreign_c_primitives_91cyclone = &c_731295; + mclosure0(c_731294, (function_type)__lambda_67);c_731294.num_args = 3; + __glo_pointer_91char_91set_67_foreign_c_primitives_91cyclone = &c_731294; + mclosure0(c_731293, (function_type)__lambda_66);c_731293.num_args = 3; + __glo_pointer_91uint64_91set_67_foreign_c_primitives_91cyclone = &c_731293; + mclosure0(c_731292, (function_type)__lambda_65);c_731292.num_args = 3; + __glo_pointer_91int64_91set_67_foreign_c_primitives_91cyclone = &c_731292; + mclosure0(c_731291, (function_type)__lambda_64);c_731291.num_args = 3; + __glo_pointer_91uint32_91set_67_foreign_c_primitives_91cyclone = &c_731291; + mclosure0(c_731290, (function_type)__lambda_63);c_731290.num_args = 3; + __glo_pointer_91int32_91set_67_foreign_c_primitives_91cyclone = &c_731290; + mclosure0(c_731289, (function_type)__lambda_62);c_731289.num_args = 3; + __glo_pointer_91uint16_91set_67_foreign_c_primitives_91cyclone = &c_731289; + mclosure0(c_731288, (function_type)__lambda_61);c_731288.num_args = 3; + __glo_pointer_91int16_91set_67_foreign_c_primitives_91cyclone = &c_731288; + mclosure0(c_731287, (function_type)__lambda_60);c_731287.num_args = 3; + __glo_pointer_91uint8_91set_67_foreign_c_primitives_91cyclone = &c_731287; + mclosure0(c_731286, (function_type)__lambda_59);c_731286.num_args = 3; + __glo_pointer_91int8_91set_67_foreign_c_primitives_91cyclone = &c_731286; + mmacro(c_731255, (function_type)__lambda_50);c_731255.num_args = 3; + __glo_shared_91object_91load_foreign_c_primitives_91cyclone = &c_731255; + mmacro(c_731084, (function_type)__lambda_32);c_731084.num_args = 3; + __glo_define_91c_91library_foreign_c_primitives_91cyclone = &c_731084; + mclosure0(c_731083, (function_type)__lambda_58);c_731083.num_args = 1; + __glo_pointer_91address_foreign_c_primitives_91cyclone = &c_731083; + mclosure0(c_731005, (function_type)__lambda_31);c_731005.num_args = 1; + __glo_size_91of_91type_foreign_c_primitives_91cyclone = &c_731005; + mclosure0(c_731002, (function_type)__lambda_30);c_731002.num_args = 4; + __glo_define_91c_91callback_foreign_c_primitives_91cyclone = &c_731002; + mmacro(c_73708, (function_type)__lambda_2);c_73708.num_args = 3; + __glo_define_91c_91procedure_foreign_c_primitives_91cyclone = &c_73708; + mclosure0(c_73706, (function_type)__lambda_1);c_73706.num_args = 1; + __glo_c_91bytevector_127_foreign_c_primitives_91cyclone = &c_73706; + __glo_c_91bytevector_91u8_91ref_foreign_c_primitives_91cyclone = boolean_f; + __glo_c_91bytevector_91u8_91set_67_foreign_c_primitives_91cyclone = boolean_f; + __glo_align_91of_91type_foreign_c_primitives_91cyclone = boolean_f; + + mclosure0(clo_731341, c_foreigncprimitives_91cyclone_inlinable_lambdas); make_pair(pair_731340, find_or_add_symbol("c_foreigncprimitives_91cyclone_inlinable_lambdas"), &clo_731341); + make_cvar(cvar_731342, (object *)&__glo_lib_91init_117foreigncprimitives_19191cyclone_foreign_c_primitives_91cyclone);make_pair(pair_731343, find_or_add_symbol("lib-init:foreigncprimitives_91cyclone"), &cvar_731342); + make_cvar(cvar_731344, (object *)&__glo_c_91bytevector_91u8_91ref_foreign_c_primitives_91cyclone);make_pair(pair_731345, find_or_add_symbol("c-bytevector-u8-ref"), &cvar_731344); + make_cvar(cvar_731346, (object *)&__glo_c_91bytevector_91u8_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731347, find_or_add_symbol("c-bytevector-u8-set!"), &cvar_731346); + make_cvar(cvar_731348, (object *)&__glo_c_91bytevector_91pointer_91ref_foreign_c_primitives_91cyclone);make_pair(pair_731349, find_or_add_symbol("c-bytevector-pointer-ref"), &cvar_731348); + make_cvar(cvar_731350, (object *)&__glo_pointer_91double_91get_foreign_c_primitives_91cyclone);make_pair(pair_731351, find_or_add_symbol("pointer-double-get"), &cvar_731350); + make_cvar(cvar_731352, (object *)&__glo_pointer_91float_91get_foreign_c_primitives_91cyclone);make_pair(pair_731353, find_or_add_symbol("pointer-float-get"), &cvar_731352); + make_cvar(cvar_731354, (object *)&__glo_pointer_91unsigned_91long_91get_foreign_c_primitives_91cyclone);make_pair(pair_731355, find_or_add_symbol("pointer-unsigned-long-get"), &cvar_731354); + make_cvar(cvar_731356, (object *)&__glo_pointer_91long_91get_foreign_c_primitives_91cyclone);make_pair(pair_731357, find_or_add_symbol("pointer-long-get"), &cvar_731356); + make_cvar(cvar_731358, (object *)&__glo_pointer_91unsigned_91int_91get_foreign_c_primitives_91cyclone);make_pair(pair_731359, find_or_add_symbol("pointer-unsigned-int-get"), &cvar_731358); + make_cvar(cvar_731360, (object *)&__glo_pointer_91int_91get_foreign_c_primitives_91cyclone);make_pair(pair_731361, find_or_add_symbol("pointer-int-get"), &cvar_731360); + make_cvar(cvar_731362, (object *)&__glo_pointer_91unsigned_91short_91get_foreign_c_primitives_91cyclone);make_pair(pair_731363, find_or_add_symbol("pointer-unsigned-short-get"), &cvar_731362); + make_cvar(cvar_731364, (object *)&__glo_pointer_91short_91get_foreign_c_primitives_91cyclone);make_pair(pair_731365, find_or_add_symbol("pointer-short-get"), &cvar_731364); + make_cvar(cvar_731366, (object *)&__glo_pointer_91char_91get_foreign_c_primitives_91cyclone);make_pair(pair_731367, find_or_add_symbol("pointer-char-get"), &cvar_731366); + make_cvar(cvar_731368, (object *)&__glo_pointer_91uint64_91get_foreign_c_primitives_91cyclone);make_pair(pair_731369, find_or_add_symbol("pointer-uint64-get"), &cvar_731368); + make_cvar(cvar_731370, (object *)&__glo_pointer_91int64_91get_foreign_c_primitives_91cyclone);make_pair(pair_731371, find_or_add_symbol("pointer-int64-get"), &cvar_731370); + make_cvar(cvar_731372, (object *)&__glo_pointer_91uint32_91get_foreign_c_primitives_91cyclone);make_pair(pair_731373, find_or_add_symbol("pointer-uint32-get"), &cvar_731372); + make_cvar(cvar_731374, (object *)&__glo_pointer_91int32_91get_foreign_c_primitives_91cyclone);make_pair(pair_731375, find_or_add_symbol("pointer-int32-get"), &cvar_731374); + make_cvar(cvar_731376, (object *)&__glo_pointer_91uint16_91get_foreign_c_primitives_91cyclone);make_pair(pair_731377, find_or_add_symbol("pointer-uint16-get"), &cvar_731376); + make_cvar(cvar_731378, (object *)&__glo_pointer_91int16_91get_foreign_c_primitives_91cyclone);make_pair(pair_731379, find_or_add_symbol("pointer-int16-get"), &cvar_731378); + make_cvar(cvar_731380, (object *)&__glo_pointer_91uint8_91get_foreign_c_primitives_91cyclone);make_pair(pair_731381, find_or_add_symbol("pointer-uint8-get"), &cvar_731380); + make_cvar(cvar_731382, (object *)&__glo_pointer_91int8_91get_foreign_c_primitives_91cyclone);make_pair(pair_731383, find_or_add_symbol("pointer-int8-get"), &cvar_731382); + make_cvar(cvar_731384, (object *)&__glo_c_91bytevector_91pointer_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731385, find_or_add_symbol("c-bytevector-pointer-set!"), &cvar_731384); + make_cvar(cvar_731386, (object *)&__glo_pointer_91double_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731387, find_or_add_symbol("pointer-double-set!"), &cvar_731386); + make_cvar(cvar_731388, (object *)&__glo_pointer_91float_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731389, find_or_add_symbol("pointer-float-set!"), &cvar_731388); + make_cvar(cvar_731390, (object *)&__glo_pointer_91unsigned_91long_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731391, find_or_add_symbol("pointer-unsigned-long-set!"), &cvar_731390); + make_cvar(cvar_731392, (object *)&__glo_pointer_91long_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731393, find_or_add_symbol("pointer-long-set!"), &cvar_731392); + make_cvar(cvar_731394, (object *)&__glo_pointer_91unsigned_91int_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731395, find_or_add_symbol("pointer-unsigned-int-set!"), &cvar_731394); + make_cvar(cvar_731396, (object *)&__glo_pointer_91int_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731397, find_or_add_symbol("pointer-int-set!"), &cvar_731396); + make_cvar(cvar_731398, (object *)&__glo_pointer_91unsigned_91short_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731399, find_or_add_symbol("pointer-unsigned-short-set!"), &cvar_731398); + make_cvar(cvar_731400, (object *)&__glo_pointer_91short_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731401, find_or_add_symbol("pointer-short-set!"), &cvar_731400); + make_cvar(cvar_731402, (object *)&__glo_pointer_91char_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731403, find_or_add_symbol("pointer-char-set!"), &cvar_731402); + make_cvar(cvar_731404, (object *)&__glo_pointer_91uint64_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731405, find_or_add_symbol("pointer-uint64-set!"), &cvar_731404); + make_cvar(cvar_731406, (object *)&__glo_pointer_91int64_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731407, find_or_add_symbol("pointer-int64-set!"), &cvar_731406); + make_cvar(cvar_731408, (object *)&__glo_pointer_91uint32_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731409, find_or_add_symbol("pointer-uint32-set!"), &cvar_731408); + make_cvar(cvar_731410, (object *)&__glo_pointer_91int32_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731411, find_or_add_symbol("pointer-int32-set!"), &cvar_731410); + make_cvar(cvar_731412, (object *)&__glo_pointer_91uint16_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731413, find_or_add_symbol("pointer-uint16-set!"), &cvar_731412); + make_cvar(cvar_731414, (object *)&__glo_pointer_91int16_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731415, find_or_add_symbol("pointer-int16-set!"), &cvar_731414); + make_cvar(cvar_731416, (object *)&__glo_pointer_91uint8_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731417, find_or_add_symbol("pointer-uint8-set!"), &cvar_731416); + make_cvar(cvar_731418, (object *)&__glo_pointer_91int8_91set_67_foreign_c_primitives_91cyclone);make_pair(pair_731419, find_or_add_symbol("pointer-int8-set!"), &cvar_731418); + make_cvar(cvar_731420, (object *)&__glo_shared_91object_91load_foreign_c_primitives_91cyclone);make_pair(pair_731421, find_or_add_symbol("shared-object-load"), &cvar_731420); + make_cvar(cvar_731422, (object *)&__glo_define_91c_91library_foreign_c_primitives_91cyclone);make_pair(pair_731423, find_or_add_symbol("define-c-library"), &cvar_731422); + make_cvar(cvar_731424, (object *)&__glo_pointer_91address_foreign_c_primitives_91cyclone);make_pair(pair_731425, find_or_add_symbol("pointer-address"), &cvar_731424); + make_cvar(cvar_731426, (object *)&__glo_align_91of_91type_foreign_c_primitives_91cyclone);make_pair(pair_731427, find_or_add_symbol("align-of-type"), &cvar_731426); + make_cvar(cvar_731428, (object *)&__glo_size_91of_91type_foreign_c_primitives_91cyclone);make_pair(pair_731429, find_or_add_symbol("size-of-type"), &cvar_731428); + make_cvar(cvar_731430, (object *)&__glo_define_91c_91callback_foreign_c_primitives_91cyclone);make_pair(pair_731431, find_or_add_symbol("define-c-callback"), &cvar_731430); + make_cvar(cvar_731432, (object *)&__glo_define_91c_91procedure_foreign_c_primitives_91cyclone);make_pair(pair_731433, find_or_add_symbol("define-c-procedure"), &cvar_731432); + make_cvar(cvar_731434, (object *)&__glo_c_91bytevector_127_foreign_c_primitives_91cyclone);make_pair(pair_731435, find_or_add_symbol("c-bytevector?"), &cvar_731434); +make_pair(c_731483, &pair_731340,Cyc_global_variables); +make_pair(c_731482, &pair_731343, &c_731483); +make_pair(c_731481, &pair_731345, &c_731482); +make_pair(c_731480, &pair_731347, &c_731481); +make_pair(c_731479, &pair_731349, &c_731480); +make_pair(c_731478, &pair_731351, &c_731479); +make_pair(c_731477, &pair_731353, &c_731478); +make_pair(c_731476, &pair_731355, &c_731477); +make_pair(c_731475, &pair_731357, &c_731476); +make_pair(c_731474, &pair_731359, &c_731475); +make_pair(c_731473, &pair_731361, &c_731474); +make_pair(c_731472, &pair_731363, &c_731473); +make_pair(c_731471, &pair_731365, &c_731472); +make_pair(c_731470, &pair_731367, &c_731471); +make_pair(c_731469, &pair_731369, &c_731470); +make_pair(c_731468, &pair_731371, &c_731469); +make_pair(c_731467, &pair_731373, &c_731468); +make_pair(c_731466, &pair_731375, &c_731467); +make_pair(c_731465, &pair_731377, &c_731466); +make_pair(c_731464, &pair_731379, &c_731465); +make_pair(c_731463, &pair_731381, &c_731464); +make_pair(c_731462, &pair_731383, &c_731463); +make_pair(c_731461, &pair_731385, &c_731462); +make_pair(c_731460, &pair_731387, &c_731461); +make_pair(c_731459, &pair_731389, &c_731460); +make_pair(c_731458, &pair_731391, &c_731459); +make_pair(c_731457, &pair_731393, &c_731458); +make_pair(c_731456, &pair_731395, &c_731457); +make_pair(c_731455, &pair_731397, &c_731456); +make_pair(c_731454, &pair_731399, &c_731455); +make_pair(c_731453, &pair_731401, &c_731454); +make_pair(c_731452, &pair_731403, &c_731453); +make_pair(c_731451, &pair_731405, &c_731452); +make_pair(c_731450, &pair_731407, &c_731451); +make_pair(c_731449, &pair_731409, &c_731450); +make_pair(c_731448, &pair_731411, &c_731449); +make_pair(c_731447, &pair_731413, &c_731448); +make_pair(c_731446, &pair_731415, &c_731447); +make_pair(c_731445, &pair_731417, &c_731446); +make_pair(c_731444, &pair_731419, &c_731445); +make_pair(c_731443, &pair_731421, &c_731444); +make_pair(c_731442, &pair_731423, &c_731443); +make_pair(c_731441, &pair_731425, &c_731442); +make_pair(c_731440, &pair_731427, &c_731441); +make_pair(c_731439, &pair_731429, &c_731440); +make_pair(c_731438, &pair_731431, &c_731439); +make_pair(c_731437, &pair_731433, &c_731438); +make_pair(c_731436, &pair_731435, &c_731437); +Cyc_global_variables = &c_731436; +object buf[1]; buf[0] = ((closure1_type *)clo)->element; +(((closure)__glo_lib_91init_117foreigncprimitives_19191cyclone_foreign_c_primitives_91cyclone)->fn)(data, buf[0], 1, buf); +} +void c_foreigncprimitives_91cyclone_entry_pt(void *data, object cont, int argc, object value){ + register_library("foreign_c_primitives_91cyclone"); + c_foreigncprimitives_91cyclone_entry_pt_first_lambda(data, cont, argc, value); +} diff --git a/foreign/c/cyclones-primitives.scm b/foreign/c/cyclone-primitives.scm similarity index 98% rename from foreign/c/cyclones-primitives.scm rename to foreign/c/cyclone-primitives.scm index e52feda..8c7f0b7 100644 --- a/foreign/c/cyclones-primitives.scm +++ b/foreign/c/cyclone-primitives.scm @@ -93,6 +93,9 @@ ((equal? type 'double) (c-value "sizeof(double)" int)) ((equal? type 'pointer) (c-value "sizeof(void*)" int))))) +;; FIXME +(define align-of-type size-of-type) + (define-c pointer-address "(void *data, int argc, closure _, object k, object pointer)" "make_c_opaque(opq, &(void*)opaque_ptr(pointer)); @@ -226,13 +229,13 @@ *p = double_value(value); return_closcall1(data, k, make_boolean(boolean_t));") -(define-c pointer-pointer-set! +(define-c c-bytevector-pointer-set! "(void *data, int argc, closure _, object k, object pointer, object offset, object value)" "uintptr_t* p = opaque_ptr(pointer) + obj_obj2int(offset); *p = (uintptr_t)&opaque_ptr(value); return_closcall1(data, k, make_boolean(boolean_t));") -(define pointer-set! +#;(define pointer-set! (lambda (pointer type offset value) (cond ((equal? type 'int8) (pointer-int8-set! pointer offset value)) @@ -341,15 +344,15 @@ alloca_double(d, *p); return_closcall1(data, k, d);") -(define-c pointer-pointer-get +(define-c c-bytevector-pointer-ref "(void *data, int argc, closure _, object k, object pointer, object offset)" "make_c_opaque(opq, (void*)opaque_ptr(pointer) + obj_obj2int(offset)); return_closcall1(data, k, &opq);") -#;(define c-bytevector-u8-set! pointer-uint8-set!) +(define c-bytevector-u8-set! pointer-uint8-set!) (define c-bytevector-u8-ref pointer-uint8-get) -(define pointer-get +#;(define pointer-get (lambda (pointer type offset) (cond ((equal? type 'int8) (pointer-int8-get pointer offset)) diff --git a/foreign/c/cyclone-primitives.sld b/foreign/c/cyclone-primitives.sld index fc0a263..8ba81fe 100644 --- a/foreign/c/cyclone-primitives.sld +++ b/foreign/c/cyclone-primitives.sld @@ -7,7 +7,7 @@ (scheme inexact) (scheme process-context) (cyclone foreign) - (scheme cyclone primitives))) + (scheme cyclone primitives)) (export size-of-type align-of-type shared-object-load @@ -18,4 +18,4 @@ c-bytevector-u8-set! c-bytevector-pointer-ref c-bytevector-pointer-set!) - (include "primitives-cyclone.scm")) + (include "cyclone-primitives.scm")) diff --git a/foreign/c/gauche-primitives.scm b/foreign/c/gauche-primitives.scm new file mode 100644 index 0000000..bd0461a --- /dev/null +++ b/foreign/c/gauche-primitives.scm @@ -0,0 +1,26 @@ + +;;;; This file is dependent on content of other files added trough (include...) +;;;; And that's why it is separated + +(define make-c-function + (lambda (shared-object c-name return-type argument-types) + (dlerror) ;; Clean all previous errors + (let ((c-function (dlsym shared-object c-name)) + (maybe-dlerror (dlerror))) + (lambda arguments + (let ((return-pointer (internal-ffi-call (length argument-types) + (type->libffi-type-number return-type) + (map type->libffi-type-number argument-types) + c-function + (size-of-type return-type) + arguments))) + (c-bytevector-get return-pointer return-type 0)))))) + +(define-syntax define-c-procedure + (syntax-rules () + ((_ scheme-name shared-object c-name return-type argument-types) + (define scheme-name + (make-c-function shared-object + (symbol->string c-name) + return-type + argument-types))))) diff --git a/foreign/c/kawa-primitives.scm b/foreign/c/kawa-primitives.scm index dc53475..9c09516 100644 --- a/foreign/c/kawa-primitives.scm +++ b/foreign/c/kawa-primitives.scm @@ -155,7 +155,6 @@ (list (cons 'linker linker) (cons 'lookup lookup))))) -(define null-pointer (make-c-null)) (define u8-value-layout (invoke (static-field java.lang.foreign.ValueLayout 'JAVA_BYTE) 'withByteAlignment