#| -*-Scheme-*-
-$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/pmerly.scm,v 1.7 1988/06/14 08:32:44 cph Rel $
+$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/pmerly.scm,v 1.8 1994/02/02 03:35:09 adams Exp $
Copyright (c) 1988 Massachusetts Institute of Technology
(let ((name (car var+pattern))
(expression (cdr var+pattern)))
(let ((var (assq name variables)))
- (cond ((null? var)
+ (cond ((not var)
(error "match-bind: nonexistent variable"
name variables))
((null? (cdr var))
(define (path-step step path expression receiver)
(let ((info (assq path path-compressions)))
- (cond ((null? info)
+ (cond ((not info)
(receiver step expression))
((null? (cadr info))
(receiver step
(define (find-transformer expression)
(and (symbol? expression)
(let ((place (assq expression *transformers*)))
- (and (not (null? place))
+ (and place
(cdr place)))))
\f
;;;; Database transformers
(receiver false false))
((symbol? exp)
(let ((pair (assq exp alist)))
- (if (null? pair)
+ (if (not pair)
(transformer-fail receiver)
(transformer-result receiver name rename (cdr pair) exp))))
((evaluation? exp)
(apply-transformer texp name rename exp receiver))
(else
(let ((place (assq (car symbols) alist)))
- (if (null? place)
+ (if (not place)
(transformer-fail receiver)
(begin (bit-string-set! mask (cdr place))
(loop (cdr symbols))))))))
#| -*-Scheme-*-
-$Id: proced.scm,v 4.18 1994/02/02 01:48:25 gjr Exp $
+$Id: proced.scm,v 4.19 1994/02/02 03:32:52 adams Exp $
-Copyright (c) 1988-1994 Massachusetts Institute of Technology
+Copyright (c) 1988, 1989, 1990 Massachusetts Institute of Technology
This material was developed by the Scheme project at the Massachusetts
Institute of Technology, Department of Electrical Engineering and
(list-copy optional)
(if (eq? type continuation-type/procedure)
rest
- '())
- (generate-label name) ; label
- false ; applications
- false ; always-known-operator?
- false ; closure-cons
- false ; closure-context
- false ; closure-offset
- false ; register
- false ; closure-size
- false ; target-block
- false ; initial-callees
- false ; free-callees/callees
- false ; free-callers/callers
- false ; virtual-closure?
- '() ; closure-reasons
- '() ; variables/side-effects
- '() ; alist
- false ; debugging-info
+ '()) ;initial continuation/combinations
+ (generate-label name)
+ '() ;applications
+ false ;always-known-operator?
+ false ;closure-cons
+ false ;closure-context
+ false ;closure-offset
+ false ;register
+ false ;closure-size
+ false ;target-block
+ '() ;initial-callees
+ '() ;[free-]callees
+ '() ;[free-]callers
+ false ;virtual-closure?
+ '() ;closure-reasons
+ '() ;variables or side-effects
+ '() ;alist
+ false ;debugging-info
)))
(set! *procedures* (cons procedure *procedures*))
(set-block-procedure! block procedure)
(define (add-closure-reason! procedure reason1 reason2)
(let ((reasons (procedure-closure-reasons procedure)))
(let ((slot (assq reason1 reasons)))
- (cond ((null? slot)
+ (cond ((false? slot)
(set-procedure-closure-reasons!
procedure
(cons (cons reason1