From 9562137f340df89c16e27ed2ca59decb96f49797 Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 6 Jul 2015 22:13:23 -0400 Subject: [PATCH] Stubbing-out Cyc-reserved-symbol? --- Makefile | 8 ++++++++ cgen.scm | 7 ++++--- runtime.c | 5 +++++ runtime.h | 1 + transforms.scm | 1 + 5 files changed, 19 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 292748e6..61d14817 100644 --- a/Makefile +++ b/Makefile @@ -77,6 +77,14 @@ self: ./cyclone scheme/cyclone/cgen.sld ./cyclone cyclone-self.scm +.PHONY: self2 +self2: + ./cyclone-self scheme/cyclone/common.sld + ./cyclone-self scheme/cyclone/libraries.sld + ./cyclone-self scheme/cyclone/transforms.sld + ./cyclone-self scheme/cyclone/cgen.sld + ./cyclone-self cyclone-self.scm + .PHONY: test test: $(TESTFILES) cyclone $(foreach f,$(TESTSCM), echo tests/$(f) ; ./cyclone tests/$(f).scm && tests/$(f) && rm -rf tests/$(f);) diff --git a/cgen.scm b/cgen.scm index 12df6a1f..2051cbaf 100644 --- a/cgen.scm +++ b/cgen.scm @@ -392,6 +392,7 @@ ((eq? p 'Cyc-set-cvar!) "Cyc_set_cvar") ((eq? p 'Cyc-cvar?) "Cyc_is_cvar") ((eq? p 'Cyc-has-cycle?) "Cyc_has_cycle") + ((eq? p 'Cyc-reserved-symbol?) "Cyc_is_reserved_symbol") ((eq? p 'Cyc-stdout) "Cyc_stdout") ((eq? p 'Cyc-stdin) "Cyc_stdin") ((eq? p 'Cyc-stderr) "Cyc_stderr") @@ -810,10 +811,10 @@ (define *symbols* '()) -; These are (at least for now) preallocated by the runtime -(define *reserved-symbols* '(Cyc_procedure)) - (define (allocate-symbol sym) + ; These are (at least for now) preallocated by the runtime + (define *reserved-symbols* (list 'Cyc_procedure)) + (if (and (not (member sym *symbols*)) (not (member sym *reserved-symbols*))) (set! *symbols* (cons sym *symbols*)))) diff --git a/runtime.c b/runtime.c index cb7b6c12..df04ad59 100644 --- a/runtime.c +++ b/runtime.c @@ -613,6 +613,11 @@ object Cyc_is_symbol(object o){ return boolean_t; return boolean_f;} +object Cyc_is_reserved_symbol(object o) { + if (Cyc_is_symbol(o) == boolean_t && equalp(o, quote_Cyc_191procedure)) + return boolean_t; + return boolean_f; } + object Cyc_is_vector(object o){ if (!nullp(o) && !is_value_type(o) && ((list)o)->tag == vector_tag) return boolean_t; diff --git a/runtime.h b/runtime.h index abf75d16..f14272d0 100644 --- a/runtime.h +++ b/runtime.h @@ -133,6 +133,7 @@ object Cyc_is_integer(object o); object Cyc_is_vector(object o); object Cyc_is_port(object o); object Cyc_is_symbol(object o); +object Cyc_is_reserved_symbol(object o); object Cyc_is_string(object o); object Cyc_is_char(object o); object Cyc_is_procedure(object o); diff --git a/transforms.scm b/transforms.scm index b91df488..a0231550 100644 --- a/transforms.scm +++ b/transforms.scm @@ -512,6 +512,7 @@ Cyc-set-cvar! Cyc-cvar? ;; Cyclone-specific Cyc-has-cycle? + Cyc-reserved-symbol? Cyc-stdout Cyc-stdin Cyc-stderr