From: Henry M. Wu Date: Tue, 12 May 1992 18:19:26 +0000 (+0000) Subject: Implemented conditional loading of files to make both DOS + Unix happy. X-Git-Tag: 20090517-FFI~9416 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=4db1faf76f5cb6e96b03f4619b07ef3462a91696;p=mit-scheme.git Implemented conditional loading of files to make both DOS + Unix happy. --- diff --git a/v7/src/edwin/edwin.ldr b/v7/src/edwin/edwin.ldr index d60288c0c..2bf22d54f 100644 --- a/v7/src/edwin/edwin.ldr +++ b/v7/src/edwin/edwin.ldr @@ -1,133 +1,161 @@ ;;; -*-Scheme-*- -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/edwin.ldr,v 1.29 1992/04/22 21:31:06 mhwu Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/edwin.ldr,v 1.30 1992/05/12 18:18:34 mhwu Exp $ ;;; program to load package contents ;;; **** This program (unlike most .ldr files) is not generated by a program. (declare (usual-integrations)) -(lambda (load key-alist) - key-alist - (let ((environment (->environment '(EDWIN)))) - (load "utils" environment) - (load "nvector" environment) - (load "ring" environment) - (load "strtab" environment) - (load "strpad" environment) - (load "macros" (->environment '(EDWIN MACROS))) - (load "class" environment) - (load "clscon" (->environment '(EDWIN CLASS-CONSTRUCTOR))) - (load "clsmac" (->environment '(EDWIN CLASS-MACROS))) - (load "xform" - (->environment '(EDWIN CLASS-MACROS TRANSFORM-INSTANCE-VARIABLES))) - (load "paths" environment) - (load "struct" environment) - (load "grpops" (->environment '(EDWIN GROUP-OPERATIONS))) - (load "regops" environment) - (load "motion" environment) - (load "search" environment) - (load "image" environment) - (load "comman" environment) - (load "comtab" (->environment '(EDWIN COMTAB))) - (load "modes" environment) - (load "buffer" environment) - (load "bufset" environment) - (load "undo" (->environment '(EDWIN UNDO))) - (load "display" (->environment '(EDWIN DISPLAY-TYPE))) - (load "screen" (->environment '(EDWIN SCREEN))) - (load "winren" (->environment '(EDWIN))) - (let ((environment (->environment '(EDWIN WINDOW)))) - (load "window" environment) - (load "utlwin" environment) - (load "bufwin" environment) - (load "bufwfs" environment) - (load "bufwiu" environment) - (load "bufwmc" environment) - (load "comwin" (->environment '(EDWIN WINDOW COMBINATION))) - (load "modwin" environment) - (load "buffrm" environment) - (load "edtfrm" environment)) - (let ((env (->environment '(EDWIN X-SCREEN)))) - (load "xterm" env) - ((access initialize-package! env))) - (let ((env (->environment '(EDWIN KEYS)))) - (load "key" env) - ((access initialize-package! env))) - (let ((env (->environment '(EDWIN CONSOLE-SCREEN)))) - (load "termcap" env) - (load "ansi" env) - (load "tterm" env) - ((access initialize-package! env))) - (load "edtstr" environment) - (load "editor" environment) - (load "curren" environment) - (load "simple" environment) - (load "debuge" environment) - (load "calias" environment) - (load "modlin" (->environment '(EDWIN MODELINE-STRING))) - (load "input" (->environment '(EDWIN KEYBOARD))) - (load "prompt" (->environment '(EDWIN PROMPT))) - (load "comred" (->environment '(EDWIN COMMAND-READER))) - (load "bufinp" (->environment '(EDWIN BUFFER-INPUT-PORT))) - (load "bufout" (->environment '(EDWIN BUFFER-OUTPUT-PORT))) - (load "winout" (->environment '(EDWIN WINDOW-OUTPUT-PORT))) - (load "things" environment) - (load "tparse" environment) - (load "syntax" environment) - (load "regexp" (->environment '(EDWIN REGULAR-EXPRESSION))) - (load "rgxcmp" (->environment '(EDWIN REGULAR-EXPRESSION-COMPILER))) - (load "linden" (->environment '(EDWIN LISP-INDENTATION))) - (load "unix" environment) - (load "fileio" environment) - (load-option 'SUBPROCESS) - (load "process" (->environment '(EDWIN PROCESS))) - (load "argred" (->environment '(EDWIN COMMAND-ARGUMENT))) - (load "autold" environment) - (load "autosv" environment) - (load "basic" environment) - (load "bufcom" environment) - (load "bufmnu" (->environment '(EDWIN BUFFER-MENU))) - (load "c-mode" environment) - (load "cinden" (->environment '(EDWIN C-INDENTATION))) - (load "comint" environment) - (load "compile" environment) - (load "debug" (->environment '(EDWIN DEBUGGER))) - (load "dired" (->environment '(EDWIN DIRED))) - (load "evlcom" environment) - (load "filcom" environment) - (load "fill" environment) - (load "hlpcom" environment) - (load "info" (->environment '(EDWIN INFO))) - (load "intmod" (->environment '(EDWIN INFERIOR-REPL))) - (load "keymap" (->environment '(EDWIN COMMAND-SUMMARY))) - (load "kilcom" environment) - (load "kmacro" environment) - (load "lincom" environment) - (load "lspcom" environment) - (load "malias" (->environment '(EDWIN MAIL-ALIAS))) - (load "motcom" environment) - (load "occur" (->environment '(EDWIN OCCURRENCE))) - (load "rcs" (->environment '(EDWIN RCS))) - (load "reccom" (->environment '(EDWIN RECTANGLE))) - (load "regcom" (->environment '(EDWIN REGISTER-COMMAND))) - (load "replaz" environment) - (load "rmail" (->environment '(EDWIN RMAIL))) - (load "rmailsrt" (->environment '(EDWIN RMAIL))) - (load "schmod" environment) - (load "sendmail" (->environment '(EDWIN SENDMAIL))) - (load "sercom" environment) - (load "iserch" (->environment '(EDWIN INCREMENTAL-SEARCH))) - (load "shell" environment) - (load "tags" (->environment '(EDWIN TAGS))) - (load "texcom" environment) - (load "wincom" environment) - (load "scrcom" environment) - (load "xcom" (->environment '(EDWIN X-COMMANDS))) - (load "modefs" environment) - (load "rename" environment) - (load "loadef" environment) - (let ((env (->environment '(EDWIN BOCHSER)))) - (load "bochser" env) - (load "bochsmod" env) - ((access initialize-bochser-mode! env))) - (load "notify" environment) - (load "outline" environment))) \ No newline at end of file +(lambda (package/loader key-alist) + (let ((to-avoid-list (if (file-exists? "edwin.bad") + (fasload "edwin.bad") + '()))) + (define (load file env) + (if (string-member? file to-avoid-list) + (begin (newline) + (write-string "* skipping ") + (write-string file) + false) + (begin (package/loader file env) + true))) + (define (load-set-and-initialize! files env) + (define (load-all files) + (if (null? files) + true + (let ((val (load (car files) env))) + (boolean-and val (load-all (cdr files)))))) + (and (load-all files) + ((access initialize-package! env)))) + (define (lookup var) + (cond ((assq var key-alist) => cdr) + (else false))) + (define (load-case var alist env) + (for-each (lambda (key/file) + (and (eq? (lookup var) (car key/file)) + (load (cdr key/file) env))) + alist)) + (define string-member? (member-procedure string=?)) + (define (boolean-and a b) (and a b)) + + (let ((environment (->environment '(EDWIN)))) + (load "utils" environment) + (load "nvector" environment) + (load "ring" environment) + (load "strtab" environment) + (load "strpad" environment) + (load "macros" (->environment '(EDWIN MACROS))) + (load "class" environment) + (load "clscon" (->environment '(EDWIN CLASS-CONSTRUCTOR))) + (load "clsmac" (->environment '(EDWIN CLASS-MACROS))) + (load "xform" + (->environment '(EDWIN CLASS-MACROS TRANSFORM-INSTANCE-VARIABLES))) + (load "paths" environment) + (load "struct" environment) + (load "grpops" (->environment '(EDWIN GROUP-OPERATIONS))) + (load "regops" environment) + (load "motion" environment) + (load "search" environment) + (load "image" environment) + (load "comman" environment) + (load "comtab" (->environment '(EDWIN COMTAB))) + (load "modes" environment) + (load "buffer" environment) + (load "bufset" environment) + (load "undo" (->environment '(EDWIN UNDO))) + (load "display" (->environment '(EDWIN DISPLAY-TYPE))) + (load "screen" (->environment '(EDWIN SCREEN))) + (load "winren" (->environment '(EDWIN))) + (let ((environment (->environment '(EDWIN WINDOW)))) + (load "window" environment) + (load "utlwin" environment) + (load "bufwin" environment) + (load "bufwfs" environment) + (load "bufwiu" environment) + (load "bufwmc" environment) + (load "comwin" (->environment '(EDWIN WINDOW COMBINATION))) + (load "modwin" environment) + (load "buffrm" environment) + (load "edtfrm" environment)) + (load-set-and-initialize! '("xterm") + (->environment '(EDWIN X-SCREEN))) + (load-set-and-initialize! '("key") + (->environment '(EDWIN KEYS))) + (load-set-and-initialize! '("termcap" "ansi" "tterm") + (->environment '(EDWIN CONSOLE-SCREEN))) + (load "edtstr" environment) + (load "editor" environment) + (load "curren" environment) + (load "simple" environment) + (load "debuge" environment) + (load "calias" environment) + (load "modlin" (->environment '(EDWIN MODELINE-STRING))) + (load "input" (->environment '(EDWIN KEYBOARD))) + (load "prompt" (->environment '(EDWIN PROMPT))) + (load "comred" (->environment '(EDWIN COMMAND-READER))) + (load "bufinp" (->environment '(EDWIN BUFFER-INPUT-PORT))) + (load "bufout" (->environment '(EDWIN BUFFER-OUTPUT-PORT))) + (load "winout" (->environment '(EDWIN WINDOW-OUTPUT-PORT))) + (load "things" environment) + (load "tparse" environment) + (load "syntax" environment) + (load "regexp" (->environment '(EDWIN REGULAR-EXPRESSION))) + (load "rgxcmp" (->environment '(EDWIN REGULAR-EXPRESSION-COMPILER))) + (load "linden" (->environment '(EDWIN LISP-INDENTATION))) + + (load-case 'os-type '((unix . "unix") (dos . "dos")) environment) + + (load "fileio" environment) + + (if (eq? (lookup 'os-type) 'unix) + (load-option 'SUBPROCESS)) + (load-case 'os-type '((unix . "process") (dos "dosproc")) + (->environment '(EDWIN PROCESS))) + + (load "argred" (->environment '(EDWIN COMMAND-ARGUMENT))) + (load "autold" environment) + (load "autosv" environment) + (load "basic" environment) + (load "bufcom" environment) + (load "bufmnu" (->environment '(EDWIN BUFFER-MENU))) + (load "c-mode" environment) + (load "cinden" (->environment '(EDWIN C-INDENTATION))) + (load "comint" environment) + (load "compile" environment) + (load "debug" (->environment '(EDWIN DEBUGGER))) + (load "dired" (->environment '(EDWIN DIRED))) + (load "evlcom" environment) + (load "filcom" environment) + (load "fill" environment) + (load "hlpcom" environment) + (load "info" (->environment '(EDWIN INFO))) + (load "intmod" (->environment '(EDWIN INFERIOR-REPL))) + (load "keymap" (->environment '(EDWIN COMMAND-SUMMARY))) + (load "kilcom" environment) + (load "kmacro" environment) + (load "lincom" environment) + (load "lspcom" environment) + (load "malias" (->environment '(EDWIN MAIL-ALIAS))) + (load "motcom" environment) + (load "occur" (->environment '(EDWIN OCCURRENCE))) + (load "rcs" (->environment '(EDWIN RCS))) + (load "reccom" (->environment '(EDWIN RECTANGLE))) + (load "regcom" (->environment '(EDWIN REGISTER-COMMAND))) + (load "replaz" environment) + (load "rmail" (->environment '(EDWIN RMAIL))) + (load "rmailsrt" (->environment '(EDWIN RMAIL))) + (load "schmod" environment) + (load "sendmail" (->environment '(EDWIN SENDMAIL))) + (load "sercom" environment) + (load "iserch" (->environment '(EDWIN INCREMENTAL-SEARCH))) + (load "shell" environment) + (load "tags" (->environment '(EDWIN TAGS))) + (load "texcom" environment) + (load "wincom" environment) + (load "scrcom" environment) + (load "xcom" (->environment '(EDWIN X-COMMANDS))) + (load "modefs" environment) + (load "rename" environment) + (load "loadef" environment) + (load-set-and-initialize! '("bochser" "bochsmod") + (->environment '(EDWIN BOCHSER))) + (load "notify" environment) + (load "outline" environment)))) \ No newline at end of file diff --git a/v7/src/edwin/edwin.sf b/v7/src/edwin/edwin.sf index 246f56565..fac264994 100644 --- a/v7/src/edwin/edwin.sf +++ b/v7/src/edwin/edwin.sf @@ -1,6 +1,6 @@ ;;; -*-Scheme-*- ;;; -;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/edwin.sf,v 1.9 1991/03/10 05:21:17 cph Exp $ +;;; $Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/edwin.sf,v 1.10 1992/05/12 18:19:02 mhwu Exp $ ;;; ;;; Copyright (c) 1991 Massachusetts Institute of Technology ;;; @@ -101,4 +101,7 @@ "edwin")) (sf "edwin.con" "edwin.bcon") (if (not (file-processed? "edwin" "ldr" "bldr")) - (sf "edwin.ldr" "edwin.bldr")) \ No newline at end of file + (sf "edwin.ldr" "edwin.bldr")) +(if (and (file-exists? "edwin.avd") + (not (file-processed? "edwin" "avd" "bad"))) + (fasdump (read-file "edwin.avd") "edwin.bad")) \ No newline at end of file diff --git a/v7/src/edwin/make.scm b/v7/src/edwin/make.scm index 01c2a1bd2..4aa557b87 100644 --- a/v7/src/edwin/make.scm +++ b/v7/src/edwin/make.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/make.scm,v 3.69 1992/03/24 23:32:17 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/edwin/make.scm,v 3.70 1992/05/12 18:19:26 mhwu Exp $ Copyright (c) 1989-92 Massachusetts Institute of Technology @@ -36,5 +36,8 @@ MIT in each case. |# (declare (usual-integrations)) -(package/system-loader "edwin" '() 'QUERY) +(package/system-loader + "edwin" + `((os-type . ,(intern (microcode-identification-item 'OS-NAME-STRING)))) + 'QUERY) (add-system! (make-system "Edwin" 3 69 '())) \ No newline at end of file