From c3beec9f73639da0da45c31b6a8e011111037749 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Tue, 23 Oct 2018 14:08:56 -0700 Subject: [PATCH] Change cref/generate-trivial-constructor to default os-types compatibly. --- src/cref/toplev.scm | 47 +++++++++++++++++++-------------------------- src/edwin/edwin.sf | 2 +- 2 files changed, 21 insertions(+), 28 deletions(-) diff --git a/src/cref/toplev.scm b/src/cref/toplev.scm index 2223c9e12..c6cdbce6d 100644 --- a/src/cref/toplev.scm +++ b/src/cref/toplev.scm @@ -30,35 +30,28 @@ USA. (define (generate/common kernel) (lambda (filename #!optional os-type) - (let ((do-type - (let ((pathname (merge-pathnames filename))) - (lambda (os-type) - (let ((pmodel (read-package-model pathname os-type))) - (let ((changes? (read-file-analyses! pmodel os-type))) - (resolve-references! pmodel) - (kernel pathname pmodel changes? os-type))))))) - (cond ((default-object? os-type) (do-type microcode-id/operating-system)) - ((eq? os-type 'all) (for-each do-type os-types)) - ((memq os-type os-types) (do-type os-type)) - (else (error:bad-range-argument os-type #f)))))) + (for-each-os-type os-type + (let ((pathname (merge-pathnames filename))) + (lambda (os-type) + (let ((pmodel (read-package-model pathname os-type))) + (let ((changes? (read-file-analyses! pmodel os-type))) + (resolve-references! pmodel) + (kernel pathname pmodel changes? os-type)))))))) (define (cref/generate-trivial-constructor filename #!optional os-type) - (let* ((pathname (merge-pathnames filename)) - (do-type - (lambda (os-type) - (write-external-descriptions - pathname - (read-package-model pathname os-type) - #f - os-type)))) - (cond ((or (default-object? os-type) - (eq? os-type 'all)) - (for-each do-type os-types)) - ((eq? os-type #f) - (do-type microcode-id/operating-system)) - ((memq os-type os-types) - (do-type os-type)) - (else (error:bad-range-argument os-type #f))))) + (for-each-os-type os-type + (let ((pathname (merge-pathnames filename))) + (lambda (os-type) + (write-external-descriptions pathname + (read-package-model pathname os-type) + #f + os-type))))) + +(define (for-each-os-type os-type procedure) + (cond ((default-object? os-type) (procedure microcode-id/operating-system)) + ((eq? os-type 'all) (for-each procedure os-types)) + ((memq os-type os-types) (procedure os-type)) + (else (error:bad-range-argument os-type #f)))) (define (cref/package-files filename os-type) (append-map package/files diff --git a/src/edwin/edwin.sf b/src/edwin/edwin.sf index f2aad22d7..35b4ce744 100644 --- a/src/edwin/edwin.sf +++ b/src/edwin/edwin.sf @@ -29,7 +29,7 @@ USA. (if (not (name->package '(edwin))) (let ((package-set (package-set-pathname "edwin"))) (if (not (file-exists? package-set)) - (cref/generate-trivial-constructor "edwin" #f)) + (cref/generate-trivial-constructor "edwin")) (construct-packages-from-file (fasload package-set)))) (if (lexical-unreferenceable? (->environment '(edwin string)) -- 2.25.1