diff --git a/include/cyclone/runtime.h b/include/cyclone/runtime.h index c08d4fad..9e4a6f09 100644 --- a/include/cyclone/runtime.h +++ b/include/cyclone/runtime.h @@ -233,7 +233,6 @@ extern const object primitive_Cyc_91cvar_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; -extern const object primitive_Cyc_91minor_91gc; extern const object primitive__87; extern const object primitive__91; extern const object primitive__85; diff --git a/runtime.c b/runtime.c index a8c05a7b..75280e57 100644 --- a/runtime.c +++ b/runtime.c @@ -1783,8 +1783,6 @@ void _Cyc_91spawn_91thread_67(void *data, object cont, object args) { void _Cyc_91end_91thread_67(void *data, object cont, object args) { Cyc_end_thread((gc_thread_data *)data); return_closcall1(data, cont, boolean_f); } -void _Cyc_91minor_91gc_primitive(void *data, object cont, object args){ - Cyc_trigger_minor_gc(data, cont); } void __87(void *data, object cont, object args) { integer_type argc = Cyc_length(data, args); dispatch(data, argc.value, (function_type)dispatch_sum, cont, cont, args); } @@ -2523,7 +2521,6 @@ static primitive_type Cyc_91cvar_127_primitive = {{0}, primitive_tag, "Cyc-cvar? 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 = {{0}, primitive_tag, "Cyc-spawn-thread!", &_Cyc_91spawn_91thread_67}; static primitive_type Cyc_91end_91thread_67_primitive = {{0}, primitive_tag, "Cyc-end-thread!", &_Cyc_91end_91thread_67}; -static primitive_type Cyc_91minor_91gc_primitive = {{0}, primitive_tag, "Cyc-minor-gc", &_Cyc_91minor_91gc_primitive}; static primitive_type _87_primitive = {{0}, primitive_tag, "+", &__87}; static primitive_type _91_primitive = {{0}, primitive_tag, "-", &__91}; static primitive_type _85_primitive = {{0}, primitive_tag, "*", &__85}; @@ -2647,7 +2644,6 @@ const object primitive_Cyc_91cvar_127 = &Cyc_91cvar_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; const object primitive_Cyc_91end_91thread_67 = &Cyc_91end_91thread_67_primitive; -const object primitive_Cyc_91minor_91gc = &Cyc_91minor_91gc_primitive; const object primitive__87 = &_87_primitive; const object primitive__91 = &_91_primitive; const object primitive__85 = &_85_primitive; diff --git a/scheme/cyclone/cgen.sld b/scheme/cyclone/cgen.sld index 26ce0363..1b7d9acc 100644 --- a/scheme/cyclone/cgen.sld +++ b/scheme/cyclone/cgen.sld @@ -540,7 +540,6 @@ ((eq? p 'mutex?) "Cyc_is_mutex") ((eq? p 'Cyc-installation-dir) "Cyc_installation_dir") ((eq? p 'command-line-arguments) "Cyc_command_line_arguments") - ((eq? p 'Cyc-minor-gc) "Cyc_trigger_minor_gc") ((eq? p 'system) "Cyc_system") ((eq? p 'assq) "assq") ((eq? p 'assv) "assq") @@ -626,7 +625,6 @@ mutex-unlock! Cyc-installation-dir command-line-arguments - Cyc-minor-gc assq assv assoc @@ -665,7 +663,6 @@ ((eq? p 'read-char) "object") ((eq? p 'peek-char) "object") ((eq? p 'command-line-arguments) "object") - ((eq? p 'Cyc-minor-gc) "object") ((eq? p 'number->string) "object") ((eq? p 'symbol->string) "object") ((eq? p 'substring) "object") @@ -699,7 +696,6 @@ command-line-arguments ;make-mutex mutex-lock! mutex-unlock! - Cyc-minor-gc Cyc-read-line read-char peek-char cons length vector-length cell)))) @@ -707,7 +703,7 @@ ;; Pass continuation as the function's first parameter? (define (prim:cont? exp) (and (prim? exp) - (member exp '(Cyc-read-line apply command-line-arguments Cyc-minor-gc number->string + (member exp '(Cyc-read-line apply command-line-arguments number->string read-char peek-char mutex-lock! symbol->string list->string substring string-append make-vector list->vector Cyc-installation-dir)))) @@ -715,7 +711,7 @@ ;; Primitive functions that pass a continuation or thread data but have no other arguments (define (prim:cont/no-args? exp) (and (prim? exp) - (member exp '(command-line-arguments make-mutex Cyc-minor-gc Cyc-current-exception-handler)))) + (member exp '(command-line-arguments make-mutex Cyc-current-exception-handler)))) ;; Pass an integer arg count as the function's first parameter? (define (prim:arg-count? exp) diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index 39f7da53..04698f9b 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -454,7 +454,6 @@ Cyc-has-cycle? Cyc-spawn-thread! Cyc-end-thread! - Cyc-minor-gc Cyc-stdout Cyc-stdin Cyc-stderr @@ -564,7 +563,6 @@ Cyc-cvar? Cyc-spawn-thread! Cyc-end-thread! - Cyc-minor-gc apply %halt exit diff --git a/scheme/eval.sld b/scheme/eval.sld index e7bec766..d57c07dc 100644 --- a/scheme/eval.sld +++ b/scheme/eval.sld @@ -156,7 +156,6 @@ (list 'Cyc-installation-dir Cyc-installation-dir) (list 'system system) (list 'command-line-arguments command-line-arguments) - (list 'Cyc-minor-gc Cyc-minor-gc) (list 'error error) (list 'cons cons) (list 'cell-get cell-get) diff --git a/srfi/18.sld b/srfi/18.sld index dab54709..46f384d3 100644 --- a/srfi/18.sld +++ b/srfi/18.sld @@ -40,6 +40,7 @@ ;; Non-standard functions: ->heap + Cyc-minor-gc ) (begin ;; Threading @@ -88,4 +89,10 @@ "(void *data, int argc, closure _, object k, object obj)" " object heap_obj = copy2heap(data, obj); return_closcall1(data, k, heap_obj); ") + ;; Trigger a minor garbage collection. + ;; This is potentially useful to evacuate all objects from + ;; a thread's stack to the heap. + (define-c Cyc-minor-gc + "(void *data, int argc, closure _, object k)" + " Cyc_trigger_minor_gc(data, k); ") ))