diff --git a/include/cyclone/runtime.h b/include/cyclone/runtime.h index cb0ed6e6..69f4cc4d 100644 --- a/include/cyclone/runtime.h +++ b/include/cyclone/runtime.h @@ -400,6 +400,7 @@ extern const object primitive_integer_127; extern const object primitive_pair_127; extern const object primitive_procedure_127; extern const object primitive_macro_127; +extern const object primitive_Cyc_91macro_127; extern const object primitive_port_127; extern const object primitive_vector_127; extern const object primitive_bytevector_127; diff --git a/runtime.c b/runtime.c index 5564e054..c82faf2b 100644 --- a/runtime.c +++ b/runtime.c @@ -2907,6 +2907,12 @@ void _macro_127(void *data, object cont, object args) return_closcall1(data, cont, Cyc_is_macro(car(args))); } +void _Cyc_91macro_127(void *data, object cont, object args) +{ + Cyc_check_num_args(data, "Cyc-macro?", 1, args); + return_closcall1(data, cont, Cyc_is_macro(car(args))); +} + void _port_127(void *data, object cont, object args) { Cyc_check_num_args(data, "port?", 1, args); @@ -4139,6 +4145,8 @@ static primitive_type procedure_127_primitive = { {0}, primitive_tag, "procedure?", &_procedure_127 }; static primitive_type macro_127_primitive = { {0}, primitive_tag, "macro?", &_macro_127 }; +static primitive_type Cyc_91macro_127_primitive = + { {0}, primitive_tag, "Cyc-macro?", &_Cyc_91macro_127 }; static primitive_type port_127_primitive = { {0}, primitive_tag, "port?", &_port_127 }; static primitive_type bytevector_127_primitive = @@ -4300,6 +4308,7 @@ const object primitive_integer_127 = &integer_127_primitive; const object primitive_pair_127 = &pair_127_primitive; const object primitive_procedure_127 = &procedure_127_primitive; const object primitive_macro_127 = ¯o_127_primitive; +const object primitive_Cyc_91macro_127 = &Cyc_91macro_127_primitive; const object primitive_string_127 = &string_127_primitive; const object primitive_port_127 = &port_127_primitive; const object primitive_vector_127 = &vector_127_primitive; diff --git a/scheme/cyclone/primitives.sld b/scheme/cyclone/primitives.sld index 2c912885..cb27332c 100644 --- a/scheme/cyclone/primitives.sld +++ b/scheme/cyclone/primitives.sld @@ -136,6 +136,7 @@ port? procedure? macro? + Cyc-macro? vector? string? symbol? @@ -276,6 +277,7 @@ (port? 1 1) (procedure? 1 1) (macro? 1 1) + (Cyc-macro? 1 1) (vector? 1 1) (string? 1 1) (symbol? 1 1) @@ -509,6 +511,7 @@ ((eq? p 'pair?) "Cyc_is_pair") ((eq? p 'procedure?) "Cyc_is_procedure") ((eq? p 'macro?) "Cyc_is_macro") + ((eq? p 'Cyc-macro?) "Cyc_is_macro") ((eq? p 'port?) "Cyc_is_port") ((eq? p 'vector?) "Cyc_is_vector") ((eq? p 'bytevector?) "Cyc_is_bytevector") diff --git a/scheme/eval.sld b/scheme/eval.sld index 38e17eaf..5774de68 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -273,6 +273,7 @@ (list 'port? port?) (list 'procedure? procedure?) (list 'macro? macro?) + (list 'Cyc-macro? Cyc-macro?) (list 'vector? vector?) (list 'bytevector? bytevector?) (list 'string? string?)