diff --git a/include/cyclone/runtime.h b/include/cyclone/runtime.h index 8fe19f8f..44d852bc 100644 --- a/include/cyclone/runtime.h +++ b/include/cyclone/runtime.h @@ -292,6 +292,7 @@ extern const object primitive_Cyc_91global_91vars; extern const object primitive_Cyc_91get_91cvar; extern const object primitive_Cyc_91set_91cvar_67; extern const object primitive_Cyc_91cvar_127; +extern const object primitive_Cyc_91opaque_127; extern const object primitive_Cyc_91has_91cycle_127; extern const object primitive_Cyc_91spawn_91thread_67; extern const object primitive_Cyc_91end_91thread_67; diff --git a/runtime.c b/runtime.c index ae1916b6..fad67cf7 100644 --- a/runtime.c +++ b/runtime.c @@ -2709,6 +2709,12 @@ void _Cyc_91cvar_127(void *data, object cont, object args) return_closcall1(data, cont, Cyc_is_cvar(car(args))); } +void _Cyc_91opaque_127(void *data, object cont, object args) +{ + Cyc_check_num_args(data, "Cyc-opaque?", 1, args); + return_closcall1(data, cont, Cyc_is_opaque(car(args))); +} + void _boolean_127(void *data, object cont, object args) { Cyc_check_num_args(data, "boolean?", 1, args); @@ -3720,6 +3726,8 @@ static primitive_type Cyc_91set_91cvar_67_primitive = { {0}, primitive_tag, "Cyc-set-cvar!", &_Cyc_91set_91cvar_67 }; static primitive_type Cyc_91cvar_127_primitive = { {0}, primitive_tag, "Cyc-cvar?", &_Cyc_91cvar_127 }; +static primitive_type Cyc_91opaque_127_primitive = + { {0}, primitive_tag, "Cyc-opaque?", &_Cyc_91opaque_127 }; static primitive_type Cyc_91has_91cycle_127_primitive = { {0}, primitive_tag, "Cyc-has-cycle?", &_Cyc_91has_91cycle_127 }; static primitive_type Cyc_91spawn_91thread_67_primitive = @@ -3963,6 +3971,7 @@ const object primitive_Cyc_91global_91vars = &Cyc_91global_91vars_primitive; const object primitive_Cyc_91get_91cvar = &Cyc_91get_91cvar_primitive; const object primitive_Cyc_91set_91cvar_67 = &Cyc_91set_91cvar_67_primitive; const object primitive_Cyc_91cvar_127 = &Cyc_91cvar_127_primitive; +const object primitive_Cyc_91opaque_127 = &Cyc_91opaque_127_primitive; const object primitive_Cyc_91has_91cycle_127 = &Cyc_91has_91cycle_127_primitive; const object primitive_Cyc_91spawn_91thread_67 = &Cyc_91spawn_91thread_67_primitive; diff --git a/scheme/cyclone/cgen.sld b/scheme/cyclone/cgen.sld index 6202bcc3..d1790828 100644 --- a/scheme/cyclone/cgen.sld +++ b/scheme/cyclone/cgen.sld @@ -512,7 +512,7 @@ ((eq? p 'Cyc-get-cvar) "Cyc_get_cvar") ((eq? p 'Cyc-set-cvar!) "Cyc_set_cvar") ((eq? p 'Cyc-cvar?) "Cyc_is_cvar") - ; TODO: ((eq? p 'Cyc-opaque?) "Cyc_is_opaque") + ((eq? p 'Cyc-opaque?) "Cyc_is_opaque") ((eq? p 'Cyc-has-cycle?) "Cyc_has_cycle") ((eq? p 'Cyc-spawn-thread!) "Cyc_spawn_thread") ((eq? p 'Cyc-end-thread!) "Cyc_end_thread") diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index 71cbab1d..cd90dfa6 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -451,6 +451,7 @@ Cyc-get-cvar Cyc-set-cvar! Cyc-cvar? ;; Cyclone-specific + Cyc-opaque? Cyc-has-cycle? Cyc-spawn-thread! Cyc-end-thread! @@ -567,6 +568,7 @@ Cyc-get-cvar Cyc-set-cvar! Cyc-cvar? + Cyc-opaque? Cyc-spawn-thread! Cyc-end-thread! apply diff --git a/scheme/eval.sld b/scheme/eval.sld index 63ddce53..7ae08392 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -164,6 +164,7 @@ (list 'Cyc-get-cvar Cyc-get-cvar) (list 'Cyc-set-cvar! Cyc-set-cvar!) (list 'Cyc-cvar? Cyc-cvar?) + (list 'Cyc-opaque? Cyc-opaque?) (list 'Cyc-has-cycle? Cyc-has-cycle?) (list 'Cyc-spawn-thread! Cyc-spawn-thread!) (list 'Cyc-end-thread! Cyc-end-thread!)