environment arguments.
* Move `vector-binary-search' to the global environment. Fix a bug in
it -- a confusion between the < used for comparing integers, and that
for comparing keys.
* New variable `load/suppress-loading-message?' prevents the file
loader from printing the "loading -- done" messages.
* Implement `pathname-relative?' which accepts two pathnames; if the
second has a directory part which is a "prefix" of the first, this
returns a copy of the first pathname with the "prefix" removed.
Example:
(pathname-relative? (->pathname "/usr/bin")
(->pathname "/usr/"))
==> #[pathname 5 "bin"]
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/global.scm,v 14.11 1989/08/07 07:36:38 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/global.scm,v 14.12 1989/08/12 08:18:06 cph Exp $
Copyright (c) 1988, 1989 Massachusetts Institute of Technology
;; Environment
lexical-reference lexical-assignment local-assignment
lexical-unassigned? lexical-unbound? lexical-unreferenceable?
- environment-link-name
;; Pointers
(object-type 1)
(let () (the-environment)))
(define user-initial-prompt
- "]=>")\f
+ "]=>")
+
+(define (environment-link-name to from name)
+ ((ucode-primitive environment-link-name)
+ (->environment to)
+ (->environment from)
+ name))
+\f
(define (copy-program exp)
(if (not (object-type? (ucode-type compiled-entry) exp))
(error "COPY-PROGRAM: Can only copy compiled programs" exp))
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/infutl.scm,v 1.7 1989/01/06 21:00:16 cph Rel $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/infutl.scm,v 1.8 1989/08/12 08:18:14 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
(define (dbg-labels/find-offset labels offset)
(vector-binary-search labels < dbg-label/offset offset))
-
-(define (vector-binary-search vector < unwrap-key key)
- (let loop ((start 0) (end (vector-length vector)))
- (and (< start end)
- (let ((midpoint (quotient (+ start end) 2)))
- (let ((item (vector-ref vector midpoint)))
- (let ((key* (unwrap-key item)))
- (cond ((< key key*) (loop start midpoint))
- ((< key* key) (loop (1+ midpoint) end))
- (else item))))))))\f
+\f
(define (fasload/update-debugging-info! value com-pathname)
(let ((process-block
(lambda (block)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/load.scm,v 14.5 1988/12/30 06:43:04 cph Rel $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/load.scm,v 14.6 1989/08/12 08:18:19 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
\f
(define (initialize-package!)
(set! load-noisily? false)
+ (set! load/suppress-loading-message? false)
(set! load/default-types '("com" "bin" "scm"))
(set! fasload/default-types '("com" "bin"))
(add-event-receiver! event:after-restart load-init-file))
(define load-noisily?)
+(define load/suppress-loading-message?)
(define load/default-types)
(define fasload/default-types)
(lambda (port)
(stream->list (read-stream port)))))
-(define (fasload filename #!optional quiet?)
+(define (fasload filename #!optional suppress-loading-message?)
(fasload/internal
(find-true-pathname (->pathname filename) fasload/default-types)
- (if (default-object? quiet?) false quiet?)))
+ (if (default-object? suppress-loading-message?)
+ load/suppress-loading-message?
+ suppress-loading-message?)))
-(define (fasload/internal true-pathname quiet?)
+(define (fasload/internal true-pathname suppress-loading-message?)
(let ((value
(let ((true-filename (pathname->string true-pathname)))
(let ((do-it
(lambda ()
((ucode-primitive binary-fasload) true-filename))))
- (if quiet?
+ (if suppress-loading-message?
(do-it)
(let ((port (cmdl/output-port (nearest-cmdl))))
(newline port)
(let loop ((filenames filename/s))
(if (null? (cdr filenames))
(kernel (car filenames) true)
- (begin (kernel (car filenames) false)
- (loop (cdr filenames)))))
+ (begin
+ (kernel (car filenames) false)
+ (loop (cdr filenames)))))
(kernel filename/s true)))))
(define default-object
(let ((port
(open-input-file/internal pathname (pathname->string true-pathname))))
(if (= 250 (char->ascii (peek-char port)))
- (begin (close-input-port port)
- (scode-eval
- (let ((scode (fasload/internal true-pathname false)))
- (if purify? (purify scode))
- scode)
- (if (eq? environment default-object)
- (nearest-repl/environment)
- environment)))
+ (begin
+ (close-input-port port)
+ (scode-eval
+ (let ((scode
+ (fasload/internal true-pathname
+ load/suppress-loading-message?)))
+ (if purify? (purify scode))
+ scode)
+ (if (eq? environment default-object)
+ (nearest-repl/environment)
+ environment)))
(write-stream (eval-stream (read-stream port) environment syntax-table)
(if load-noisily?
(lambda (value)
(current-parser-table)
(lambda (object)
(and (eof-object? object)
- (begin (close-input-port port)
- true)))))
+ (begin
+ (close-input-port port)
+ true)))))
(define (eval-stream stream environment syntax-table)
(stream-map stream
(if (stream-pair? stream)
(let loop ((value (stream-car stream)) (stream (stream-cdr stream)))
(if (stream-pair? stream)
- (begin (write value)
- (loop (stream-car stream) (stream-cdr stream))) value))
+ (begin
+ (write value)
+ (loop (stream-car stream) (stream-cdr stream)))
+ value))
unspecific))
\ No newline at end of file
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/pathnm.scm,v 14.5 1989/08/03 23:06:22 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/pathnm.scm,v 14.6 1989/08/12 08:18:23 cph Exp $
Copyright (c) 1988, 1989 Massachusetts Institute of Technology
(let ((directory (pathname-directory pathname)))
(and (pair? directory)
(eq? (car directory) 'ROOT))))
+
+(define (pathname-relative? pathname pathname*)
+ (and (equal? (pathname-host pathname)
+ (pathname-host pathname*))
+ (equal? (pathname-device pathname)
+ (pathname-device pathname*))
+ (let loop
+ ((directory (pathname-directory pathname))
+ (directory* (pathname-directory pathname*)))
+ (if (null? directory*)
+ (make-pathname false
+ false
+ directory
+ (pathname-name pathname)
+ (pathname-type pathname)
+ (pathname-version pathname))
+ (and (not (null? directory))
+ (equal? (car directory) (car directory*))
+ (loop (cdr directory) (cdr directory*)))))))
+
(define (pathname-directory-path pathname)
(make-pathname (pathname-host pathname)
(pathname-device pathname)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.47 1989/08/11 02:59:26 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/runtime.pkg,v 14.48 1989/08/12 08:18:31 cph Exp $
Copyright (c) 1988, 1989 Massachusetts Institute of Technology
load-noisily
load-noisily?
load/default-types
+ load/suppress-loading-message?
read-file)
(initialization (initialize-package!)))
pathname-new-host
pathname-new-name
pathname-new-type
- pathname-new-version pathname-type
+ pathname-new-version
+ pathname-relative?
+ pathname-type
pathname-version
pathname?
string->pathname
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.52 1989/08/11 02:59:31 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/runtime/version.scm,v 14.53 1989/08/12 08:17:45 cph Exp $
Copyright (c) 1988, 1989 Massachusetts Institute of Technology
'()))
(add-system! microcode-system)
(add-event-receiver! event:after-restore snarf-microcode-version!)
- (add-identification! "Runtime" 14 52))
+ (add-identification! "Runtime" 14 53))
(define microcode-system)
(define (snarf-microcode-version!)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/global.scm,v 14.11 1989/08/07 07:36:38 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/global.scm,v 14.12 1989/08/12 08:18:06 cph Exp $
Copyright (c) 1988, 1989 Massachusetts Institute of Technology
;; Environment
lexical-reference lexical-assignment local-assignment
lexical-unassigned? lexical-unbound? lexical-unreferenceable?
- environment-link-name
;; Pointers
(object-type 1)
(let () (the-environment)))
(define user-initial-prompt
- "]=>")\f
+ "]=>")
+
+(define (environment-link-name to from name)
+ ((ucode-primitive environment-link-name)
+ (->environment to)
+ (->environment from)
+ name))
+\f
(define (copy-program exp)
(if (not (object-type? (ucode-type compiled-entry) exp))
(error "COPY-PROGRAM: Can only copy compiled programs" exp))
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/infutl.scm,v 1.7 1989/01/06 21:00:16 cph Rel $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/infutl.scm,v 1.8 1989/08/12 08:18:14 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
(define (dbg-labels/find-offset labels offset)
(vector-binary-search labels < dbg-label/offset offset))
-
-(define (vector-binary-search vector < unwrap-key key)
- (let loop ((start 0) (end (vector-length vector)))
- (and (< start end)
- (let ((midpoint (quotient (+ start end) 2)))
- (let ((item (vector-ref vector midpoint)))
- (let ((key* (unwrap-key item)))
- (cond ((< key key*) (loop start midpoint))
- ((< key* key) (loop (1+ midpoint) end))
- (else item))))))))\f
+\f
(define (fasload/update-debugging-info! value com-pathname)
(let ((process-block
(lambda (block)
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/load.scm,v 14.5 1988/12/30 06:43:04 cph Rel $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/load.scm,v 14.6 1989/08/12 08:18:19 cph Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
\f
(define (initialize-package!)
(set! load-noisily? false)
+ (set! load/suppress-loading-message? false)
(set! load/default-types '("com" "bin" "scm"))
(set! fasload/default-types '("com" "bin"))
(add-event-receiver! event:after-restart load-init-file))
(define load-noisily?)
+(define load/suppress-loading-message?)
(define load/default-types)
(define fasload/default-types)
(lambda (port)
(stream->list (read-stream port)))))
-(define (fasload filename #!optional quiet?)
+(define (fasload filename #!optional suppress-loading-message?)
(fasload/internal
(find-true-pathname (->pathname filename) fasload/default-types)
- (if (default-object? quiet?) false quiet?)))
+ (if (default-object? suppress-loading-message?)
+ load/suppress-loading-message?
+ suppress-loading-message?)))
-(define (fasload/internal true-pathname quiet?)
+(define (fasload/internal true-pathname suppress-loading-message?)
(let ((value
(let ((true-filename (pathname->string true-pathname)))
(let ((do-it
(lambda ()
((ucode-primitive binary-fasload) true-filename))))
- (if quiet?
+ (if suppress-loading-message?
(do-it)
(let ((port (cmdl/output-port (nearest-cmdl))))
(newline port)
(let loop ((filenames filename/s))
(if (null? (cdr filenames))
(kernel (car filenames) true)
- (begin (kernel (car filenames) false)
- (loop (cdr filenames)))))
+ (begin
+ (kernel (car filenames) false)
+ (loop (cdr filenames)))))
(kernel filename/s true)))))
(define default-object
(let ((port
(open-input-file/internal pathname (pathname->string true-pathname))))
(if (= 250 (char->ascii (peek-char port)))
- (begin (close-input-port port)
- (scode-eval
- (let ((scode (fasload/internal true-pathname false)))
- (if purify? (purify scode))
- scode)
- (if (eq? environment default-object)
- (nearest-repl/environment)
- environment)))
+ (begin
+ (close-input-port port)
+ (scode-eval
+ (let ((scode
+ (fasload/internal true-pathname
+ load/suppress-loading-message?)))
+ (if purify? (purify scode))
+ scode)
+ (if (eq? environment default-object)
+ (nearest-repl/environment)
+ environment)))
(write-stream (eval-stream (read-stream port) environment syntax-table)
(if load-noisily?
(lambda (value)
(current-parser-table)
(lambda (object)
(and (eof-object? object)
- (begin (close-input-port port)
- true)))))
+ (begin
+ (close-input-port port)
+ true)))))
(define (eval-stream stream environment syntax-table)
(stream-map stream
(if (stream-pair? stream)
(let loop ((value (stream-car stream)) (stream (stream-cdr stream)))
(if (stream-pair? stream)
- (begin (write value)
- (loop (stream-car stream) (stream-cdr stream))) value))
+ (begin
+ (write value)
+ (loop (stream-car stream) (stream-cdr stream)))
+ value))
unspecific))
\ No newline at end of file
#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.47 1989/08/11 02:59:26 cph Exp $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v8/src/runtime/runtime.pkg,v 14.48 1989/08/12 08:18:31 cph Exp $
Copyright (c) 1988, 1989 Massachusetts Institute of Technology
load-noisily
load-noisily?
load/default-types
+ load/suppress-loading-message?
read-file)
(initialization (initialize-package!)))
pathname-new-host
pathname-new-name
pathname-new-type
- pathname-new-version pathname-type
+ pathname-new-version
+ pathname-relative?
+ pathname-type
pathname-version
pathname?
string->pathname