From 136e313af78beaeb57525f8c94680f31748691d0 Mon Sep 17 00:00:00 2001 From: sperber Date: Mon, 3 Dec 2001 15:21:46 +0000 Subject: [PATCH] New implementation of (no-inheritance) thread-local cells and thread fluids. New implementation of syslog. Both are to be compatible with what's actually probably going into Scheme 48. --- build/initial.image | Bin 0 -> 623933 bytes scheme/big/enum-set.scm | 187 ++++++++++++++ .../{thread-fluids.scm => thread-fluid.scm} | 59 ++--- scheme/env/command-level.scm | 10 +- scheme/interfaces.scm | 26 +- scheme/more-interfaces.scm | 20 +- scheme/more-packages.scm | 18 +- scheme/rts-packages.scm | 20 +- scheme/rts/root-scheduler.scm | 1 - scheme/rts/scheduler.scm | 3 +- scheme/rts/{fluid.scm => thread-env.scm} | 59 ++++- scheme/rts/thread.scm | 36 +-- scsh/scsh-interfaces.scm | 26 +- scsh/scsh-package.scm | 8 +- scsh/syslog.scm | 241 +++++++----------- scsh/syslog1.c | 189 ++++++++------ 16 files changed, 552 insertions(+), 351 deletions(-) create mode 100644 build/initial.image create mode 100644 scheme/big/enum-set.scm rename scheme/big/{thread-fluids.scm => thread-fluid.scm} (50%) rename scheme/rts/{fluid.scm => thread-env.scm} (68%) diff --git a/build/initial.image b/build/initial.image new file mode 100644 index 0000000000000000000000000000000000000000..aba9e6dece1483b7542238fbf8db2671e0551fc6 GIT binary patch literal 623933 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

#`F(iCPZ;YVALc>_Gaub^!VK4vZ`gKJ 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ÀgnJ6uJ#qz3aC+ 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 Y!uaxE;#y$5>hIj1*)U#lUsCt~AEk#_cmMzZ literal 0 HcmV?d00001 diff --git a/scheme/big/enum-set.scm b/scheme/big/enum-set.scm new file mode 100644 index 0000000..1972b9b --- /dev/null +++ b/scheme/big/enum-set.scm @@ -0,0 +1,187 @@ +; Copyright (c) 1993-2001 by Richard Kelsey and Jonathan Rees. See file COPYING. + +; Sets over finite types. +; +; (define-enum-set-type id type-name predicate constructor +; element-syntax element-predicate all-elements element-index-ref) +; +; Defines ID to be syntax for constructing sets, PREDICATE to be a predicate +; for those sets, and CONSTRUCTOR an procedure for constructing one +; from a list. +; +; (enum-set->list ) -> +; (enum-set-member? ) -> +; (enum-set=? ) -> +; (enum-set-union ) -> +; (enum-set-intersection ) -> +; (enum-set-negation ) -> +; +; Given an enumerated type: +; (define-enumerated-type color :color +; color? +; colors +; color-name +; color-index +; (red blue green)) +; we can define sets of colors: +; (define-enum-set-type color-set :color-set +; color-set? +; make-color-set +; color color? colors color-index) +; +; (enum-set->list (color-set red blue)) +; -> (#{Color red} #{Color blue}) +; (enum-set->list (enum-set-negation (color-set red blue))) +; -> (#{Color green}) +; (enum-set-member? (color-set red blue) (color blue)) +; -> #t + +(define-syntax define-enum-set-type + (syntax-rules () + ((define-enum-set-type id type predicate constructor + element-syntax element-predicate all-elements element-index-ref) + (begin + (define type + (make-enum-set-type 'id + element-predicate + all-elements + element-index-ref)) + (define (predicate x) + (and (enum-set? x) + (eq? (enum-set-type x) + type))) + (define (constructor elements) + (if (every element-predicate elements) + (make-enum-set type (elements->mask elements element-index-ref)) + (error "invalid set elements" element-predicate elements))) + (define-enum-set-maker id constructor element-syntax))))) + +; (define-enum-set-maker id constructor element-syntax) + +(define-syntax define-enum-set-maker + (lambda (e r c) + (let ((id (list-ref e 1)) + (constructor (list-ref e 2)) + (element-syntax (list-ref e 3)) + (%define-syntax (r 'define-syntax))) + `(,%define-syntax ,id + (syntax-rules () + ((,id element ...) + (,constructor (list (,element-syntax element) ...)))))))) + +(define-record-type enum-set-type :enum-set-type + (make-enum-set-type id predicate values index-ref) + enum-set-type? + (id enum-set-type-id) + (predicate enum-set-type-predicate) + (values enum-set-type-values) + (index-ref enum-set-type-index-ref)) + +(define-record-discloser :enum-set-type + (lambda (e-s-t) + (list 'enum-set-type (enum-set-type-id e-s-t)))) + +; The mask is settable to allow for destructive operations. There aren't +; any such yet. + +(define-record-type enum-set :enum-set + (make-enum-set type mask) + enum-set? + (type enum-set-type) + (mask enum-set-mask set-enum-set-mask!)) + +(define-record-discloser :enum-set + (lambda (e-s) + (cons (enum-set-type-id (enum-set-type e-s)) + (enum-set->list e-s)))) + +(define (enum-set-has-type? enum-set enum-set-type) + (eq? (enum-set-type enum-set) enum-set-type)) + +(define enum-set->integer enum-set-mask) + +(define integer->enum-set make-enum-set) + +(define-exported-binding "enum-set?" enum-set?) +(define-exported-binding "enum-set->integer" enum-set->integer) +(define-exported-binding "integer->enum-set" integer->enum-set) +(define-exported-binding "enum-set-has-type?" enum-set-has-type?) + +(define (make-set-constructor id predicate values index-ref) + (let ((type (make-enum-set-type id predicate values index-ref))) + (lambda elements + (if (every predicate elements) + (make-enum-set type (elements->mask elements index-ref)) + (error "invalid set elements" predicate elements))))) + +(define (elements->mask elements index-ref) + (do ((elements elements (cdr elements)) + (mask 0 + (bitwise-ior mask + (arithmetic-shift 1 (index-ref (car elements)))))) + ((null? elements) + mask))) + +(define (enum-set-member? enum-set element) + (if ((enum-set-type-predicate (enum-set-type enum-set)) + element) + (not (= (bitwise-and (enum-set-mask enum-set) + (element-mask element (enum-set-type enum-set))) + 0)) + (call-error "invalid arguments" enum-set-member? enum-set element))) + +(define (enum-set=? enum-set0 enum-set1) + (if (eq? (enum-set-type enum-set0) + (enum-set-type enum-set1)) + (= (enum-set-mask enum-set0) + (enum-set-mask enum-set1)) + (call-error "invalid arguments" enum-set=? enum-set0 enum-set1))) + +(define (element-mask element enum-set-type) + (arithmetic-shift 1 + ((enum-set-type-index-ref enum-set-type) element))) + +; To reduce the number of bitwise operations required we bite off two bytes +; at a time. + +(define (enum-set->list enum-set) + (let ((values (enum-set-type-values (enum-set-type enum-set)))) + (do ((i 0 (+ i 16)) + (mask (enum-set-mask enum-set) (arithmetic-shift mask -16)) + (elts '() + (do ((m (bitwise-and mask #xFFFF) (arithmetic-shift m -1)) + (i i (+ i 1)) + (elts elts (if (odd? m) + (cons (vector-ref values i) + elts) + elts))) + ((= m 0) + elts)))) + ((= mask 0) + (reverse elts))))) + +(define (enum-set-union enum-set0 enum-set1) + (if (eq? (enum-set-type enum-set0) + (enum-set-type enum-set1)) + (make-enum-set (enum-set-type enum-set0) + (bitwise-ior (enum-set-mask enum-set0) + (enum-set-mask enum-set1))) + (call-error "invalid arguments" enum-set-union enum-set0 enum-set1))) + +(define (enum-set-intersection enum-set0 enum-set1) + (if (eq? (enum-set-type enum-set0) + (enum-set-type enum-set1)) + (make-enum-set (enum-set-type enum-set0) + (bitwise-and (enum-set-mask enum-set0) + (enum-set-mask enum-set1))) + (call-error "invalid arguments" enum-set-union enum-set0 enum-set1))) + +(define (enum-set-negation enum-set) + (let* ((type (enum-set-type enum-set)) + (mask (- (arithmetic-shift 1 + (vector-length (enum-set-type-values type))) + 1))) + (make-enum-set type + (bitwise-and (bitwise-not (enum-set-mask enum-set)) + mask)))) + diff --git a/scheme/big/thread-fluids.scm b/scheme/big/thread-fluid.scm similarity index 50% rename from scheme/big/thread-fluids.scm rename to scheme/big/thread-fluid.scm index 79e253d..1f7c5f2 100644 --- a/scheme/big/thread-fluids.scm +++ b/scheme/big/thread-fluid.scm @@ -1,18 +1,14 @@ ; Copyright (c) 1993-2001 by Richard Kelsey and Jonathan Rees. See file COPYING. (define-record-type thread-fluid :thread-fluid - (really-make-thread-fluid top cell) + (really-make-thread-fluid cell) thread-fluid? - (top thread-fluid-top-level-value) (cell thread-fluid-cell set-thread-fluid-cell!)) (define *no-fluid-value* (list 'no-fluid-value)) (define (thread-fluid thread-fluid) - (let ((val (thread-cell-ref (thread-fluid-cell thread-fluid)))) - (if (eq? val *no-fluid-value*) - (thread-fluid-top-level-value thread-fluid) - val))) + (thread-cell-ref (thread-fluid-cell thread-fluid))) (define (set-thread-fluid! thread-fluid val) (thread-cell-set! (thread-fluid-cell thread-fluid) val)) @@ -50,35 +46,26 @@ (loop (cddr args) (cdr old-vals)))))))))) (define (make-thread-fluid top) - (really-make-thread-fluid top (make-thread-cell *no-fluid-value*))) + (really-make-thread-fluid (make-thread-cell top))) +(define *preserved-fluids* (make-population)) -;; (define-record-type thread-fluid :thread-fluid -;; (really-make-thread-fluid fluid) -;; thread-fluid? -;; (fluid thread-fluid-fluid)) -;; -;; (define (make-thread-fluid top) -;; (really-make-thread-fluid (make-fluid (make-thread-cell top)))) -;; -;; (define (thread-fluid t-fluid) -;; (thread-cell-ref (fluid (thread-fluid-fluid t-fluid)))) -;; -;; (define (set-thread-fluid! thread-fluid val) -;; (thread-cell-set! (fluid (thread-fluid-fluid thread-fluid)) val)) -;; -;; (define (let-thread-fluid t-fluid val thunk) -;; (let-fluid (thread-fluid-fluid t-fluid) -;; (make-thread-cell val) -;; thunk)) -;; -;; ;; avoid creating too many dynamic environments -;; (define (let-thread-fluids . args) -;; (let loop ((args args) (rev-new-args '())) -;; (if (not (null? (cdr args))) -;; (loop (cddr args) -;; (cons (make-thread-cell (cadr args)) -;; (cons (thread-fluid-fluid (car args)) -;; rev-new-args))) -;; ;; we're done -;; (apply let-fluids (reverse (cons (car args) rev-new-args)))))) +(define (make-preserved-thread-fluid top) + (let* ((t-fluid (make-thread-fluid top))) + (add-to-population! t-fluid *preserved-fluids*) + t-fluid)) + +(define (preserve-thread-fluids thunk) + (let ((args (list thunk))) + (walk-population + (lambda (t-fluid) + (set! args + (cons t-fluid + (cons (thread-fluid t-fluid) + args)))) + *preserved-fluids*) + (lambda () + (apply let-thread-fluids args)))) + +(define (fork-thread thunk) + (spawn (preserve-thread-fluids thunk))) diff --git a/scheme/env/command-level.scm b/scheme/env/command-level.scm index 7de9875..4841462 100644 --- a/scheme/env/command-level.scm +++ b/scheme/env/command-level.scm @@ -168,11 +168,8 @@ ; that when it is rescheduled after blocking it can be put on the correct ; run queue. -(define (spawn-on-command-level level thunk cell-values id) - (let ((thread (make-thread thunk - (command-level-dynamic-env level) - cell-values - id))) +(define (spawn-on-command-level level thunk id) + (let ((thread (make-thread thunk (command-level-dynamic-env level) id))) (set-thread-scheduler! thread (command-thread)) (set-thread-data! thread level) (enqueue-thread! (command-level-queue level) thread) @@ -184,7 +181,6 @@ (define (spawn-repl-thread! level) (let ((thread (spawn-on-command-level level (command-level-repl-thunk level) - (empty-cell-values) 'command-loop))) (set-command-level-repl-thread! level thread))) @@ -357,7 +353,7 @@ (lambda (event args) (enum-case event-type event ((spawned) - (spawn-on-command-level level (car args) (cadr args) (caddr args)) + (spawn-on-command-level level (car args) (cadr args)) #t) ((runnable) (let* ((thread (car args)) diff --git a/scheme/interfaces.scm b/scheme/interfaces.scm index e81e800..e475f9c 100644 --- a/scheme/interfaces.scm +++ b/scheme/interfaces.scm @@ -390,16 +390,6 @@ really-string->number &really-string->number ;exactness argument string->integer)) -(define-interface thread-cells-interface - (export make-thread-cell - thread-cell-ref - thread-cell-set!)) - -(define-interface thread-cells-internal-interface - (export get-cell-values - empty-cell-values ; env/command-level.scm - initialize-dynamic-state!)) - (define-interface fluids-interface (export make-fluid let-fluid @@ -408,13 +398,23 @@ set-fluid!)) (define-interface fluids-internal-interface - (export current-thread + (export initialize-dynamic-state! + current-thread set-current-thread! get-dynamic-env ; wind.scm, env/command-level.scm set-dynamic-env! ; wind.scm get-dynamic-point ; wind.scm - set-dynamic-point! ; wind.scm - empty-dynamic-env)) ; thread-cell.scm + set-dynamic-point!)) ; wind.scm + +(define-interface thread-cells-internal-interface + (export get-thread-cell-env + set-thread-cell-env! + empty-thread-cell-env)) + +(define-interface thread-cells-interface + (export make-thread-cell + thread-cell-ref + thread-cell-set!)) (define-interface enumerated-interface (export (define-enumeration :syntax) diff --git a/scheme/more-interfaces.scm b/scheme/more-interfaces.scm index 9112f82..6434f88 100644 --- a/scheme/more-interfaces.scm +++ b/scheme/more-interfaces.scm @@ -327,12 +327,30 @@ array->vector ; array)) ; . +(define-interface enum-sets-interface + (export (define-enum-set-type :syntax) + enum-set->list + enum-set-member? + enum-set=? + enum-set-union + enum-set-intersection + enum-set-negation)) + +(define-interface enum-sets-internal-interface + (export enum-set-has-type? + enum-set? + enum-set-type + enum-set->integer + integer->enum-set)) + (define-interface thread-fluids-interface (export make-thread-fluid thread-fluid let-thread-fluid let-thread-fluids - set-thread-fluid!)) + set-thread-fluid! + make-preserved-thread-fluid + fork-thread)) (define-interface search-trees-interface (export make-search-tree diff --git a/scheme/more-packages.scm b/scheme/more-packages.scm index 8a28685..43973e3 100644 --- a/scheme/more-packages.scm +++ b/scheme/more-packages.scm @@ -72,7 +72,6 @@ util ; unspecific channel-i/o ; steal-channel-port fluids-internal ; get-dynamic-env, set-dynamic-env! - thread-cells-internal ; empty-cell-values root-scheduler ; call-when-deadlocked! conditions) ; define-condition-type (files (env command-level))) @@ -477,11 +476,23 @@ primitives) ; unspecific (files (big defrecord))) +(define-structures ((enum-sets enum-sets-interface) + (enum-sets-internal enum-sets-internal-interface)) + (open scheme define-record-types + finite-types + bitwise + util + signals + external-calls) + (optimize auto-integrate) + (files (big enum-set))) + (define general-tables tables) ; backward compatibility (define-structure thread-fluids thread-fluids-interface - (open scheme define-record-types thread-cells fluids) - (files (big thread-fluids))) + (open scheme define-record-types weak + threads thread-cells fluids) + (files (big thread-fluid))) (define-structure big-util big-util-interface (open scheme-level-2 @@ -687,6 +698,7 @@ dump/restore dynamic-externals enum-case + enum-sets extended-numbers extended-ports externals diff --git a/scheme/rts-packages.scm b/scheme/rts-packages.scm index 9c72554..c0ebcc0 100644 --- a/scheme/rts-packages.scm +++ b/scheme/rts-packages.scm @@ -49,15 +49,11 @@ (files (rts numio))) (define-structures ((fluids fluids-interface) - (fluids-internal fluids-internal-interface)) + (fluids-internal fluids-internal-interface) + (thread-cells thread-cells-interface) + (thread-cells-internal thread-cells-internal-interface)) (open scheme-level-1 define-record-types primitives) - (files (rts fluid)) - (optimize auto-integrate)) - -(define-structures ((thread-cells thread-cells-interface) - (thread-cells-internal thread-cells-internal-interface)) - (open scheme-level-1 define-record-types primitives fluids-internal) - (files (rts thread-cell)) + (files (rts thread-env)) (optimize auto-integrate)) (define-structure wind wind-interface @@ -245,7 +241,7 @@ wind fluids fluids-internal ;get-dynamic-env - thread-cells-internal ;get-cell-values + thread-cells-internal ;get-thread-cell-env, empty-thread-cell-env escapes ;primitive-cwcc conditions ;error? handle ;with-handler @@ -260,8 +256,7 @@ (files (rts thread) (rts sleep))) (define-structure scheduler scheduler-interface - (open scheme-level-1 threads threads-internal thread-cells-internal - enumerated enum-case + (open scheme-level-1 threads threads-internal enumerated enum-case debug-messages signals) ;error (files (rts scheduler))) @@ -279,7 +274,6 @@ writing ;display i/o-internal ;output-port-forcer, output-forcer-id fluids-internal ;get-dynamic-env - thread-cells-internal ;get-cell-values interrupts ;with-interrupts-inhibited wind ;call-with-current-continuation channel-i/o ;waiting-for-i/o? @@ -328,7 +322,7 @@ i/o ;initialize-i/o, etc. channel-i/o ;{in,out}put-channel->port, initialize-channel-i/o session-data ;initialize-session-data! - thread-cells-internal ;initialize-dynamic-state! + fluids-internal ;initialize-dynamic-state! exceptions ;initialize-exceptions! interrupts ;initialize-interrupts! rts-sigevents-internal ;initialize-sigevents! diff --git a/scheme/rts/root-scheduler.scm b/scheme/rts/root-scheduler.scm index 1da0383..ba40533 100644 --- a/scheme/rts/root-scheduler.scm +++ b/scheme/rts/root-scheduler.scm @@ -30,7 +30,6 @@ (safe-dynamic-env (with-handler root-handler get-dynamic-env)) (thread (make-thread thunk (get-dynamic-env) - (get-cell-values) 'scheduler-initial-thread))) (increment-counter! thread-count) (enqueue-thread! runnable thread) diff --git a/scheme/rts/scheduler.scm b/scheme/rts/scheduler.scm index 0a89307..0eabbb6 100644 --- a/scheme/rts/scheduler.scm +++ b/scheme/rts/scheduler.scm @@ -100,8 +100,7 @@ (enqueue-thread! runnable (make-thread (car event-data) dynamic-env - (cadr event-data) - (caddr event-data)))) + (cadr event-data)))) ((no-event) (values)) (else diff --git a/scheme/rts/fluid.scm b/scheme/rts/thread-env.scm similarity index 68% rename from scheme/rts/fluid.scm rename to scheme/rts/thread-env.scm index 076047c..4937b62 100644 --- a/scheme/rts/fluid.scm +++ b/scheme/rts/thread-env.scm @@ -1,4 +1,4 @@ -; Copyright (c) 1993-1999 by Richard Kelsey and Jonathan Rees. See file COPYING. +; Copyright (c) 1993-2001 by Richard Kelsey and Jonathan Rees. See file COPYING. ; This is file fluid.scm. @@ -23,17 +23,10 @@ ; efficiency concerns. (define-record-type thread :thread - (make-thread dynamic-env dynamic-point) - (dynamic-env thread-dynamic-env) - (dynamic-point thread-dynamic-point)) - -;; (define *dynamic-env* (make-thread-cell (empty-dynamic-env))) -;; -;; (define (get-dynamic-env) -;; (thread-cell-ref *dynamic-env*)) -;; -;; (define (set-dynamic-env! env) -;; (thread-cell-set! *dynamic-env* env)) + (make-thread dynamic-env dynamic-point cell-env) + (dynamic-env thread-dynamic-env) + (dynamic-point thread-dynamic-point) + (cell-env thread-cell-env)) (define (get-dynamic-env) (record-ref (current-thread) 1)) @@ -41,7 +34,7 @@ (define (set-dynamic-env! env) (record-set! (current-thread) 1 env)) -; The dynamic-wind point used to be just an ordinary fluid variable, which +; The dynamic-wind point used to be just an ordinary fluid variable, but that ; doesn't work well with threads. (define (get-dynamic-point) @@ -78,6 +71,8 @@ (let ((probe (assq f (get-dynamic-env)))) (if probe (cdr probe) (fluid-top-level-value f)))) +; Deprecated. + (define (set-fluid! f val) (let ((probe (assq f (get-dynamic-env)))) (if probe (set-cdr! probe val) (set-fluid-top-level-value! f val)))) @@ -92,3 +87,41 @@ (with-dynamic-env env (car args)) (loop (cddr args) (cons (cons (car args) (cadr args)) env))))) + +; Thread cells + +(define-record-type thread-cell :thread-cell + (make-thread-cell default) + (default thread-cell-default)) + +(define (get-thread-cell-env) + (record-ref (current-thread) 3)) + +(define (set-thread-cell-env! value) + (record-set! (current-thread) 3 value)) + +(define (empty-thread-cell-env) '()) + +(define (thread-cell-ref thread-cell) + (let ((probe (assq thread-cell (get-thread-cell-env)))) + (if probe + (cdr probe) + (thread-cell-default thread-cell)))) + +(define (thread-cell-set! thread-cell value) + (let ((probe (assq thread-cell (get-thread-cell-env)))) + (if probe + (set-cdr! probe value) + (set-thread-cell-env! (cons (cons thread-cell + value) + (get-thread-cell-env)))))) + + +; Initialize + +(define (initialize-dynamic-state!) + (set-current-thread! + (make-thread (empty-dynamic-env) #f (empty-thread-cell-env)))) + +(initialize-dynamic-state!) + diff --git a/scheme/rts/thread.scm b/scheme/rts/thread.scm index 338aa0a..2f90099 100644 --- a/scheme/rts/thread.scm +++ b/scheme/rts/thread.scm @@ -39,8 +39,7 @@ ; the list is spliced back together and eN's continuation is resumed. (define-record-type thread :thread - (really-make-thread dynamic-env dynamic-point - cell-values own-cell-values? + (really-make-thread dynamic-env dynamic-point cell-env continuation scheduler queues arguments events current-task uid name) @@ -48,11 +47,7 @@ (dynamic-env thread-dynamic-env) ;Must be first! (See fluid.scm) (dynamic-point thread-dynamic-point set-thread-dynamic-point!) ;Must be second! (See fluid.scm) - - ;Must be third! (See thread-cell.scm) - (cell-values thread-cell-values set-thread-cell-values!) - ;Must be fourth! (See thread-cell.scm) - (own-cell-values? thread-own-cell-values? set-thread-own-values?!) + (cell-env thread-cell-env) ;Must be fourth! (See thread-env.scm) (continuation thread-continuation set-thread-continuation!) (queues thread-queues set-thread-queues!) (arguments thread-arguments set-thread-arguments!) @@ -75,11 +70,10 @@ (define *thread-uid* 0) -(define (make-thread thunk dynamic-env cell-values name) +(define (make-thread thunk dynamic-env name) (let ((thread (really-make-thread dynamic-env #f ; dynamic-point root - cell-values - #f ; own-cell-values? + (empty-thread-cell-env) (thunk->continuation (thread-top-level thunk)) (current-thread) ; scheduler @@ -576,29 +570,20 @@ ; scheduler. (define (spawn thunk . id) - (set-thread-own-values?! (current-thread) #f) - (apply spawn-on-scheduler - (thread-scheduler (current-thread)) - thunk - (thread-cell-values (current-thread)) - id)) + (apply spawn-on-scheduler (thread-scheduler (current-thread)) thunk id)) (define (spawn-on-root thunk . id) (if (root-scheduler) - (begin - (set-thread-own-values?! (current-thread) #f) - (apply spawn-on-scheduler - (root-scheduler) - thunk - (thread-cell-values (current-thread)) - id)) + (apply spawn-on-scheduler + (root-scheduler) + thunk + id) (thunk))) -(define (spawn-on-scheduler scheduler thunk cell-values . id) +(define (spawn-on-scheduler scheduler thunk . id) (schedule-event scheduler (enum event-type spawned) thunk - cell-values (if (null? id) #f (car id)))) ; Enqueue a RUNNABLE for THREAD's scheduler. @@ -666,7 +651,6 @@ (set! *thread-uid* 0) (let ((thread (make-thread #f ; thunk (get-dynamic-env) - (get-cell-values) 'initial-thread))) (set-thread-scheduler! thread #f) (set-thread-time! thread #f) diff --git a/scsh/scsh-interfaces.scm b/scsh/scsh-interfaces.scm index 9eaa9df..7e144d4 100644 --- a/scsh/scsh-interfaces.scm +++ b/scsh/scsh-interfaces.scm @@ -1088,33 +1088,33 @@ (define-interface syslog-interface (export (syslog-option :syntax) + syslog-option? + make-syslog-options - syslog-options->list syslog-options? (syslog-options :syntax) - syslog-options-on? - syslog-options=? (syslog-facility :syntax) syslog-facility? - syslog-facility=? (syslog-level :syntax) syslog-level? - syslog-level=? - levels->syslog-mask + make-syslog-mask + syslog-mask? (syslog-mask :syntax) - syslog-mask->levels syslog-mask-all syslog-mask-upto - syslog-mask-levels-on? - syslog-mask? - syslog-mask=? - - open-syslog-channel - close-syslog-channel with-syslog-destination + set-syslog-destination! + syslog)) +(define-interface syslog-channels-interface + (export open-syslog-channel + close-syslog-channel + set-syslog-channel! + with-syslog-channel)) + + diff --git a/scsh/scsh-package.scm b/scsh/scsh-package.scm index a8e4be7..9268afe 100644 --- a/scsh/scsh-package.scm +++ b/scsh/scsh-package.scm @@ -464,10 +464,12 @@ threads) ; sleep (files dot-locking)) -(define-structure syslog syslog-interface - (open scheme define-record-types finite-types +(define-structures ((syslog syslog-interface) + (syslog-channels syslog-channels-interface)) + (open scheme + define-record-types finite-types enum-sets locks thread-fluids external-calls - scsh-utilities bitwise) (files syslog)) + diff --git a/scsh/syslog.scm b/scsh/syslog.scm index 990ee94..08e1c4e 100644 --- a/scsh/syslog.scm +++ b/scsh/syslog.scm @@ -2,64 +2,31 @@ ;; Options for openlog -(define-finite-type syslog-option :syslog-option - (mask) +(define-enumerated-type syslog-option :syslog-option syslog-option? the-syslog-options syslog-option-name syslog-option-index - (mask syslog-option-mask) - ;; These values are known to the C code. - ((console #o01) - (delay #o02) - (no-delay #o04) - (log-pid #o10))) + ;; The order of these is known to the C code. + (console + delay + no-delay + log-pid)) -(define-record-type syslog-options :syslog-options - (really-make-syslog-options value) +(define-exported-binding "syslog-options" the-syslog-options) + +(define-enum-set-type syslog-options :syslog-options syslog-options? - (value syslog-options-value)) + make-syslog-options + + syslog-option + syslog-option? + the-syslog-options + syslog-option-index) -(define syslog-options=? eq?) +(define-exported-binding "syslog-options?" syslog-options?) -(define-exported-binding "syslog-options-type" :syslog-options) - -(define (syslog-options-on? options0 options1) - (= 0 (bitwise-and (syslog-options-value options1) - (bitwise-not (syslog-options-value options0))))) - -(define (make-syslog-options options) - (really-make-syslog-options - (apply bitwise-ior (map syslog-option-mask options)))) - -(define default-syslog-options (make-syslog-options '())) - -(define (make-mask-record->list get-value get-mask record-vector) - (lambda (mask-record) - (let ((value (get-value mask-record)) - (n-syslog-options (vector-length record-vector))) - (let loop ((i 0) (list '())) - (cond - ((>= i n-syslog-options) - list) - ((zero? (bitwise-and value - (get-mask (vector-ref record-vector i)))) - (loop (+ 1 i) list)) - (else - (loop (+ 1 i) (cons (vector-ref record-vector i) - list)))))))) - -(define syslog-options->list - (make-mask-record->list syslog-options-value - syslog-option-mask - the-syslog-options)) - -; Simplifying syntax, e.g. (syslog-options delay console) - -(define-syntax syslog-options - (syntax-rules () - ((syslog-options name ...) - (make-syslog-options (list (syslog-option name) ...))))) +(define default-syslog-options (syslog-options)) (define-enumerated-type syslog-facility :syslog-facility syslog-facility? @@ -79,73 +46,50 @@ uucp local0 local1 local2 local3 local4 local5 local6 local7)) -(define syslog-facility=? eq?) - (define default-syslog-facility (syslog-facility user)) (define-exported-binding "syslog-facility-type" :syslog-facility) (define-exported-binding "syslog-facilities" syslog-facilities) -(define-finite-type syslog-level :syslog-level - (mask) +(define-enumerated-type syslog-level :syslog-level syslog-level? syslog-levels syslog-level-name syslog-level-index - (mask syslog-level-mask) - ;; Options for syslog - ;; The order and the values of these is known to the C code. - ((emergency #o001) - (alert #o002) - (critical #o004) - (error #o010) - (warning #o020) - (notice #o040) - (info #o100) - (debug #o200))) - -(define syslog-level=? eq?) + ;; The order of these is known to the C code. + (emergency + alert + critical + error + warning + notice + info + debug)) (define-exported-binding "syslog-level-type" :syslog-level) (define-exported-binding "syslog-levels" syslog-levels) -(define-record-type syslog-mask :syslog-mask - (make-syslog-mask value) +(define-enum-set-type syslog-mask :syslog-mask syslog-mask? - (value syslog-mask-value)) + make-syslog-mask -(define (syslog-mask=? mask-1 mask-2) - (= (syslog-mask-value mask-1) - (syslog-mask-value mask-2))) + syslog-level + syslog-level? + syslog-levels + syslog-level-index) -(define-exported-binding "syslog-mask-type" :syslog-mask) - -(define (syslog-mask-levels-on? mask-1 mask-2) - (= 0 (bitwise-and (syslog-mask-value mask-2) - (bitwise-not (syslog-mask-value mask-1))))) - -(define (levels->syslog-mask levels) - (make-syslog-mask - (apply bitwise-ior - (map syslog-level-mask levels)))) - -(define syslog-mask->levels - (make-mask-record->list syslog-mask-value - syslog-level-mask - syslog-levels)) - -(define-syntax syslog-mask - (syntax-rules () - ((syslog-mask name ...) - (levels->syslog-mask (list (syslog-level name) ...))))) +(define-exported-binding "syslog-mask?" syslog-mask?) +(define-exported-binding ":syslog-mask" :syslog-mask) (define (syslog-mask-upto level) (let loop ((index (syslog-level-index level)) (levels '())) (if (< index 0) - (levels->syslog-mask levels) - (loop (- index 1) (cons index levels))))) + (make-syslog-mask levels) + (loop (- index 1) + (cons (vector-ref syslog-levels index) + levels))))) -(define syslog-mask-all (levels->syslog-mask (vector->list syslog-levels))) +(define syslog-mask-all (make-syslog-mask (vector->list syslog-levels))) (define default-syslog-mask syslog-mask-all) @@ -169,11 +113,11 @@ (define (syslog-channel-equivalent? channel-1 channel-2) (and (string=? (syslog-channel-ident channel-1) (syslog-channel-ident channel-2)) - (syslog-options=? (syslog-channel-options channel-1) - (syslog-channel-options channel-2)) + (enum-set=? (syslog-channel-options channel-1) + (syslog-channel-options channel-2)) ;; facility can be specified with each syslog-write - (syslog-mask=? (syslog-channel-mask channel-1) - (syslog-channel-mask channel-2)))) + (enum-set=? (syslog-channel-mask channel-1) + (syslog-channel-mask channel-2)))) (define current-syslog-channel 'unitinialized) (define current-syslog-channel-lock 'unitinialized) @@ -191,24 +135,27 @@ (closelog)) (release-lock current-syslog-channel-lock)) -;; THUNK must not escape (define (with-syslog-channel channel thunk) - (obtain-lock current-syslog-channel-lock) - (if (or (not current-syslog-channel) - (not (syslog-channel-equivalent? channel - current-syslog-channel))) - (begin - (if current-syslog-channel - (closelog)) - (openlog (syslog-channel-ident channel) - (syslog-channel-options channel) - (syslog-channel-facility channel)) - (if (not (syslog-mask=? (syslog-channel-mask channel) + (dynamic-wind + (lambda () + (obtain-lock current-syslog-channel-lock)) + (lambda () + (if (or (not current-syslog-channel) + (not (syslog-channel-equivalent? channel + current-syslog-channel))) + (begin + (if current-syslog-channel + (closelog)) + (openlog (syslog-channel-ident channel) + (syslog-channel-options channel) + (syslog-channel-facility channel)) + (if (not (enum-set=? (syslog-channel-mask channel) default-syslog-mask)) - (setlogmask! (syslog-channel-mask channel))) - (set! current-syslog-channel channel))) - (thunk) - (release-lock current-syslog-channel-lock)) + (setlogmask! (syslog-channel-mask channel))) + (set! current-syslog-channel channel))) + (thunk)) + (lambda () + (release-lock current-syslog-channel-lock)))) (define (syslog-write level message channel) (with-syslog-channel @@ -216,44 +163,36 @@ (lambda () (unix-syslog level (syslog-channel-facility channel) message)))) -(define (list-ref-carefully list n default) - (cond - ((null? list) default) - ((zero? n) (car list)) - (else - (list-ref-carefully (cdr list) (- n 1) default)))) - -(define (change-syslog-channel channel . rest) - (let ((ident (list-ref-carefully rest 0 #f)) - (options (list-ref-carefully rest 1 #f)) - (facility (list-ref-carefully rest 2 #f)) - (mask (list-ref-carefully rest 3 #f))) - (make-syslog-channel (or ident - (syslog-channel-ident channel)) - (or options - (syslog-channel-options channel)) - (or facility - (syslog-channel-facility channel)) - (or mask - (syslog-channel-mask channel))))) +(define (change-syslog-channel channel ident options facility mask) + (make-syslog-channel (or ident + (syslog-channel-ident channel)) + (or options + (syslog-channel-options channel)) + (or facility + (syslog-channel-facility channel)) + (or mask + (syslog-channel-mask channel)))) (define dynamic-syslog-channel - (make-thread-fluid - (make-syslog-channel "scheme48" + (make-preserved-thread-fluid + (make-syslog-channel "scsh" default-syslog-options default-syslog-facility default-syslog-mask))) (define (syslog level message . rest) (syslog-write level message - (if (and (not (null? rest)) - (null? (cdr rest)) - (syslog-channel? (car rest))) - (car rest) - ;; this might be a little excessive allocation - (apply change-syslog-channel - (thread-fluid dynamic-syslog-channel) - rest)))) + (cond + ((null? rest) + (thread-fluid dynamic-syslog-channel)) + ((and (null? (cdr rest)) + (syslog-channel? (car rest))) + (car rest)) + (else + ;; this might be a little excessive allocation + (apply change-syslog-channel + (thread-fluid dynamic-syslog-channel) + (append rest '(#f))))))) (define (with-syslog-destination ident options facility mask thunk) (let-thread-fluid dynamic-syslog-channel @@ -262,6 +201,16 @@ ident options facility mask) thunk)) +(define (set-syslog-channel! channel) + (set-thread-fluid! dynamic-syslog-channel + channel)) + +(define (set-syslog-destination! ident options facility mask) + (set-thread-fluid! dynamic-syslog-channel + (change-syslog-channel + (thread-fluid dynamic-syslog-channel) + ident options facility mask))) + ;---------------- ; A record type whose only purpose is to run some code when we start up an ; image. diff --git a/scsh/syslog1.c b/scsh/syslog1.c index f7330f5..24b2402 100644 --- a/scsh/syslog1.c +++ b/scsh/syslog1.c @@ -16,13 +16,18 @@ static s48_value sch_openlog(s48_value sch_ident, /* * Record types imported from Scheme. */ -static s48_value syslog_options_type_binding = S48_FALSE; +static s48_value is_syslog_options_binding = S48_FALSE; static s48_value syslog_facility_type_binding = S48_FALSE; static s48_value syslog_facilities_binding = S48_FALSE; static s48_value syslog_level_type_binding = S48_FALSE; static s48_value syslog_levels_binding = S48_FALSE; +static s48_value is_syslog_mask_binding = S48_FALSE; static s48_value syslog_mask_type_binding = S48_FALSE; +static s48_value is_enum_set_binding = S48_FALSE; +static s48_value enum_set2integer_binding = S48_FALSE; +static s48_value integer2enum_set_binding = S48_FALSE; + /* * Install all exported functions in Scheme 48. */ @@ -34,9 +39,9 @@ s48_init_syslog(void) S48_EXPORT_FUNCTION(sch_setlogmask); S48_EXPORT_FUNCTION(sch_closelog); - S48_GC_PROTECT_GLOBAL(syslog_options_type_binding); - syslog_options_type_binding = - s48_get_imported_binding("syslog-options-type"); + S48_GC_PROTECT_GLOBAL(is_syslog_options_binding); + is_syslog_options_binding = + s48_get_imported_binding("syslog-options?"); S48_GC_PROTECT_GLOBAL(syslog_facility_type_binding); syslog_facility_type_binding = @@ -52,45 +57,106 @@ s48_init_syslog(void) syslog_levels_binding = s48_get_imported_binding("syslog-levels"); + S48_GC_PROTECT_GLOBAL(is_syslog_mask_binding); + is_syslog_mask_binding = + s48_get_imported_binding("syslog-mask?"); + S48_GC_PROTECT_GLOBAL(syslog_mask_type_binding); syslog_mask_type_binding = - s48_get_imported_binding("syslog-mask-type"); + s48_get_imported_binding(":syslog-mask"); + + S48_GC_PROTECT_GLOBAL(is_enum_set_binding); + is_enum_set_binding = + s48_get_imported_binding("enum-set?"); + + S48_GC_PROTECT_GLOBAL(enum_set2integer_binding); + enum_set2integer_binding = + s48_get_imported_binding("enum-set->integer"); + + S48_GC_PROTECT_GLOBAL(integer2enum_set_binding); + integer2enum_set_binding = + s48_get_imported_binding("integer->enum-set"); +} + +/* ************************************************************ + * General procedures + */ + +static int +is_enum_set(s48_value sch_thing) +{ + S48_SHARED_BINDING_CHECK(is_enum_set_binding); + + return !S48_FALSE_P + (s48_call_scheme(S48_SHARED_BINDING_REF(is_enum_set_binding), + 1, + sch_thing)); +} + +static void +check_enum_set(s48_value sch_thing) +{ + if (!is_enum_set(sch_thing)) + s48_raise_argument_type_error(sch_thing); +} + +static long +enum_set2integer(s48_value sch_enum_set) +{ + check_enum_set(sch_enum_set); + + S48_SHARED_BINDING_CHECK(enum_set2integer_binding); + + return s48_extract_fixnum + (s48_call_scheme(S48_SHARED_BINDING_REF(enum_set2integer_binding), + 1, + sch_enum_set)); +} + +static s48_value +integer2enum_set(s48_value sch_enum_type, long mask) +{ + S48_SHARED_BINDING_CHECK(integer2enum_set_binding); + + return s48_call_scheme(S48_SHARED_BINDING_REF(integer2enum_set_binding), + 2, + sch_enum_type, + s48_enter_fixnum(mask)); } /* ************************************************************ */ /* Syslog options. * - * We translate the local bits into our own bits and vice versa. + * We translate the our own bits into local bits */ -static s48_value -s48_enter_syslog_options(int syslog_options) +static int +is_syslog_options(s48_value sch_thing) { - s48_value sch_syslog_options; - int my_syslog_options; + S48_SHARED_BINDING_CHECK(is_syslog_options_binding); - my_syslog_options = - (LOG_CONS & syslog_options ? 00001 : 0) | - (LOG_ODELAY & syslog_options ? 00002 : 0) | - (LOG_NDELAY & syslog_options ? 00004 : 0) | - (LOG_PID & syslog_options ? 00010 : 0); + return !S48_FALSE_P + (s48_call_scheme(S48_SHARED_BINDING_REF(is_syslog_options_binding), + 1, + sch_thing)); +} - sch_syslog_options = s48_make_record(syslog_options_type_binding); - S48_UNSAFE_RECORD_SET(sch_syslog_options, 0, s48_enter_fixnum(my_syslog_options)); - - return sch_syslog_options; +static void +check_syslog_options(s48_value sch_thing) +{ + if (!is_syslog_options(sch_thing)) + s48_raise_argument_type_error(sch_thing); } static int s48_extract_syslog_options(s48_value sch_syslog_options) { int c_syslog_options; - int syslog_options; + long syslog_options; - s48_check_record_type(sch_syslog_options, syslog_options_type_binding); + check_syslog_options(sch_syslog_options); - syslog_options = - s48_extract_fixnum(S48_UNSAFE_RECORD_REF(sch_syslog_options, 0)); + syslog_options = enum_set2integer(sch_syslog_options); c_syslog_options = (00001 & syslog_options ? LOG_CONS : 0) | @@ -123,26 +189,6 @@ static int syslog_facilities[] = { }; -static s48_value -s48_enter_syslog_facility(int syslog_facility) -{ - s48_value sch_syslog_facility; - int my_syslog_facility; - - for (my_syslog_facility = 0; - my_syslog_facility < (sizeof(syslog_facilities) / sizeof(int)); - ++my_syslog_facility) { - if (syslog_facility == my_syslog_facility) - break; - } - - sch_syslog_facility = - S48_VECTOR_REF(S48_SHARED_BINDING_REF(syslog_facilities_binding), - my_syslog_facility); - - return sch_syslog_facility; -} - static s48_value s48_extract_syslog_facility(s48_value sch_syslog_facility) { @@ -179,26 +225,6 @@ static int syslog_levels[] = { }; -static s48_value -s48_enter_syslog_level(int syslog_level) -{ - s48_value sch_syslog_level; - int my_syslog_level; - - for (my_syslog_level = 0; - my_syslog_level < (sizeof(syslog_levels) / sizeof(int)); - ++my_syslog_level) { - if (syslog_level == my_syslog_level) - break; - } - - sch_syslog_level = - S48_VECTOR_REF(S48_SHARED_BINDING_REF(syslog_levels_binding), - my_syslog_level); - - return sch_syslog_level; -} - static s48_value s48_extract_syslog_level(s48_value sch_syslog_level) { @@ -224,7 +250,6 @@ s48_extract_syslog_level(s48_value sch_syslog_level) static s48_value s48_enter_syslog_mask(int syslog_mask) { - s48_value sch_syslog_mask; int my_syslog_mask; my_syslog_mask = @@ -237,10 +262,28 @@ s48_enter_syslog_mask(int syslog_mask) (LOG_MASK(LOG_INFO) & syslog_mask ? 00100 : 0) | (LOG_MASK(LOG_DEBUG) & syslog_mask ? 00200 : 0); - sch_syslog_mask = s48_make_record(syslog_mask_type_binding); - S48_UNSAFE_RECORD_SET(sch_syslog_mask, 0, s48_enter_fixnum(my_syslog_mask)); - return sch_syslog_mask; + return integer2enum_set + (S48_SHARED_BINDING_REF(syslog_mask_type_binding), + my_syslog_mask); +} + +static int +is_syslog_mask(s48_value sch_thing) +{ + S48_SHARED_BINDING_CHECK(is_enum_set_binding); + + return !S48_FALSE_P + (s48_call_scheme(S48_SHARED_BINDING_REF(is_syslog_mask_binding), + 1, + sch_thing)); +} + +static void +check_syslog_mask(s48_value sch_thing) +{ + if (!is_syslog_mask(sch_thing)) + s48_raise_argument_type_error(sch_thing); } static int @@ -249,11 +292,10 @@ s48_extract_syslog_mask(s48_value sch_syslog_mask) int c_syslog_mask; int syslog_mask; - s48_check_record_type(sch_syslog_mask, syslog_mask_type_binding); - - syslog_mask = - s48_extract_fixnum(S48_UNSAFE_RECORD_REF(sch_syslog_mask, 0)); + check_syslog_mask(sch_syslog_mask); + syslog_mask = enum_set2integer(sch_syslog_mask); + c_syslog_mask = (00001 & syslog_mask ? LOG_MASK(LOG_EMERG) : 0) | (00002 & syslog_mask ? LOG_MASK(LOG_ALERT) : 0) | @@ -287,7 +329,6 @@ sch_openlog(s48_value sch_ident, if (syslog_open) s48_raise_string_os_error("syslog is already open"); - /* sch_ident may be copied to a different location by GC, and openlog doesn't copy the input string, at least not on every system. That's just great. */ @@ -301,7 +342,7 @@ sch_openlog(s48_value sch_ident, syslog_ident[i] = '\0'; openlog(syslog_ident, - s48_extract_syslog_options(sch_options), + s48_extract_syslog_options(sch_options), s48_extract_syslog_facility(sch_facility)); syslog_open = 1; return S48_UNSPECIFIC; @@ -334,10 +375,10 @@ sch_syslog(s48_value sch_level, s48_value sch_opt_facility, static s48_value sch_closelog(void) { - if (!syslog_open) s48_raise_string_os_error("syslog isn't open"); closelog(); syslog_open = 0; return S48_UNSPECIFIC; } +