From: Guillermo J. Rozas Date: Sat, 21 Nov 1987 18:43:08 +0000 (+0000) Subject: Primitives are no longer considered non-pointers by the compiler. X-Git-Tag: 20090517-FFI~13048 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=e19aed754d5c65a7cb3d806eaf13c8b6d3f597c7;p=mit-scheme.git Primitives are no longer considered non-pointers by the compiler. They must appear in the constant block (rather than as immediate constants in the instruction stream) so the fasloader can renumber them. --- diff --git a/v7/src/compiler/base/utils.scm b/v7/src/compiler/base/utils.scm index f802090e5..956bfacd7 100644 --- a/v7/src/compiler/base/utils.scm +++ b/v7/src/compiler/base/utils.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/utils.scm,v 1.91 1987/08/27 21:32:46 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/base/utils.scm,v 1.92 1987/11/21 18:43:08 jinx Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -347,13 +347,16 @@ MIT in each case. |# (define lambda-tag:delay (make-named-tag "DELAY-LAMBDA")) +;; Primitives are non pointers, but need to be updated by the fasloader; +;; they cannot appear as immediate constants in the instruction stream. +;; Therefore, for the purposes of compilation, they are treated as pointers. + (define (non-pointer-object? object) (or (primitive-type? (ucode-type false) object) (primitive-type? (ucode-type true) object) (primitive-type? (ucode-type fixnum) object) (primitive-type? (ucode-type character) object) (primitive-type? (ucode-type unassigned) object) - (primitive-type? (ucode-type primitive) object) (primitive-type? (ucode-type the-environment) object) (primitive-type? (ucode-type manifest-nm-vector) object) (primitive-type? (ucode-type manifest-special-nm-vector) object)))