You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.

40 lines
1.3 KiB
Scheme

;;; ubify.ss
;;; Copyright 1984-2017 Cisco Systems, Inc.
;;;
;;; Licensed under the Apache License, Version 2.0 (the "License");
;;; you may not use this file except in compliance with the License.
;;; You may obtain a copy of the License at
;;;
;;; http://www.apache.org/licenses/LICENSE-2.0
;;;
;;; Unless required by applicable law or agreed to in writing, software
;;; distributed under the License is distributed on an "AS IS" BASIS,
;;; WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
;;; See the License for the specific language governing permissions and
;;; limitations under the License.
(for-each
(let ()
(define-record-type ub
(fields (immutable x))
(nongenerative)
(sealed #t))
(record-writer (type-descriptor ub)
(lambda (x p wr)
(display "#<unbound " p)
(wr (ub-x x) p)
(display ">" p)))
(lambda (x)
(unless ($top-level-bound? x)
($set-top-level-value! x (make-ub x)))))
(oblist))
(set-who! compile (lambda args ($oops who "disabled when cross compiling")))
(set-who! $compile-backend
(lambda (x)
(lambda ()
(lambda (fp-entry)
(lambda fp-args
(pretty-print ($uncprep x))
($oops who "attempt to call foreign-procedure created while cross compiling"))))))