(FILECREATED "10-Sep-86 13:08:31" {ERIS}<TAMARIN>TSIM>NOREFCOUNT.;2 2383
changes to: (VARS NOREFCOUNTCOMS)
(FNS GC-OFF)
previous date: "25-Aug-86 12:46:48" {ERIS}<TAMARIN>TSIM>NOREFCOUNT.;1)
(* Copyright (c) 1986 by Xerox Corporation. All rights reserved.)
(PRETTYCOMPRINT NOREFCOUNTCOMS)
(RPAQQ NOREFCOUNTCOMS [(* * To make a datatype non-garbage-collectable. This saves us the effort of
maintaining reference counts - To use, declare the datatype and then call
(Make-Not-Reference-Counted data-type-name)
before creating any instances of the datatype.)
(FNS Make-Not-Reference-Counted GC-OFF)
(DECLARE: EVAL@COMPILE DONTCOPY (FILES (LOADCOMP)
LLDATATYPE)
(EXPORT (MACROS \GETDTD])
(* * To make a datatype non-garbage-collectable. This saves us the effort of maintaining
reference counts - To use, declare the datatype and then call (Make-Not-Reference-Counted
data-type-name) before creating any instances of the datatype.)
(DEFINEQ
(Make-Not-Reference-Counted
[LAMBDA (TYPENAME) (* smL " 4-Jun-86 09:57")
(* * Make datatype TYPENAME not ref counted. Must not have allocated any yet)
(* Thanks to bvm for this magic)
(LET ((DTD (\GETDTD (\TYPENUMBERFROMNAME TYPENAME)))
NEW BITS)
[replace DTDTYPEENTRY of DTD with (SETQ BITS (LOGOR 32768 (fetch DTDTYPEENTRY
of DTD]
(COND
((SETQ NEW (fetch DTDFREE of DTD)) (* Have to fix type of already allocated page, if any)
(\MAKEMDSENTRY (IPLUS (LLSH (\HILOC NEW)
8)
(LRSH (\LOLOC NEW)
8))
BITS])
(GC-OFF
[LAMBDA NIL (* edited: "10-Sep-86 13:08")
(Make-Not-Reference-Counted (QUOTE node))
(Make-Not-Reference-Counted (QUOTE trans])
)
(DECLARE: EVAL@COMPILE DONTCOPY
(FILESLOAD (LOADCOMP)
LLDATATYPE)
(* FOLLOWING DEFINITIONS EXPORTED)
(DECLARE: EVAL@COMPILE
[PUTPROPS \GETDTD MACRO ((typeNum)
(ADDBASE \DTDSpaceBase (LLSH typeNum 4]
)
(* END EXPORTED DEFINITIONS)
)
(PUTPROPS NOREFCOUNT COPYRIGHT ("Xerox Corporation" 1986))
(DECLARE: DONTCOPY
(FILEMAP (NIL (1016 2054 (Make-Not-Reference-Counted 1026 . 1835) (GC-OFF 1837 . 2052)))))
STOP