diff --git a/scheme/cyclone/cgen.sld b/scheme/cyclone/cgen.sld index 285771cd..19c73b62 100644 --- a/scheme/cyclone/cgen.sld +++ b/scheme/cyclone/cgen.sld @@ -986,6 +986,12 @@ "\n" "continue;")))) + ((eq? 'Cyc-foreign-code fun) + (c-code/vars + (string-append + "boolean_f") + args)) + ((prim? fun) (let* ((c-fun (c-compile-prim fun cont ast-id)) diff --git a/scheme/cyclone/primitives.sld b/scheme/cyclone/primitives.sld index 0d268a8d..7ff22701 100644 --- a/scheme/cyclone/primitives.sld +++ b/scheme/cyclone/primitives.sld @@ -89,6 +89,7 @@ Cyc-stderr Cyc-list Cyc-if + Cyc-foreign-code Cyc-fast-plus Cyc-fast-sub Cyc-fast-mul @@ -238,6 +239,7 @@ (Cyc-stdin 0 0) (Cyc-stderr 0 0) (Cyc-if 3 3) + (Cyc-foreign-code 1 #f) (Cyc-fast-plus 2 2) (Cyc-fast-sub 2 2) (Cyc-fast-mul 2 2) @@ -529,6 +531,7 @@ ((eq? p 'Cyc-stderr) "Cyc_stderr") ((eq? p 'Cyc-list) "Cyc_list") ((eq? p 'Cyc-if) "Cyc_if") + ((eq? p 'Cyc-foreign-code) "TODO") ((eq? p 'Cyc-fast-plus) "Cyc_fast_sum") ((eq? p 'Cyc-fast-sub) "Cyc_fast_sub") ((eq? p 'Cyc-fast-mul) "Cyc_fast_mul") @@ -701,6 +704,7 @@ (or (memq p '( Cyc-list + Cyc-foreign-code Cyc-fast-plus Cyc-fast-sub Cyc-fast-mul