#| -*-Scheme-*-
-$Id: runtime.pkg,v 14.616 2007/04/29 19:25:27 cph Exp $
+$Id: runtime.pkg,v 14.617 2007/05/02 00:11:05 cph Exp $
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
microcode-error/code->name
microcode-error/code-limit
microcode-error/name->code
+ microcode-id/compiled-code-type
microcode-id/floating-epsilon
microcode-id/floating-mantissa-bits
microcode-id/machine-type
#| -*-Scheme-*-
-$Id: utabs.scm,v 14.24 2007/04/15 15:50:42 cph Exp $
+$Id: utabs.scm,v 14.25 2007/05/02 00:11:10 cph Exp $
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
(set! system-call-names-slot (fixed-object/name->code 'SYSTEM-CALL-NAMES))
(set! system-call-errors-slot (fixed-object/name->code 'SYSTEM-CALL-ERRORS))
(set! microcode-version-string
- (let ((version (microcode-identification-item 'MICROCODE-VERSION)))
- (if (string? version)
- version
- (string-append
- (number->string version)
- "."
- (number->string
- (microcode-identification-item 'MICROCODE-MODIFICATION))))))
+ (microcode-identification-item 'MICROCODE-VERSION))
(set! char:newline (microcode-identification-item 'NEWLINE-CHAR))
(set! microcode-id/floating-mantissa-bits
(microcode-identification-item 'FLONUM-MANTISSA-LENGTH))
((not string) 'STANDARD)
(else (error "Illegal stack type:" string)))))
(set! microcode-id/machine-type
- (if (microcode-table-search identifications-slot 'MACHINE-TYPE-STRING)
- (microcode-identification-item 'MACHINE-TYPE-STRING)
+ (or (microcode-identification-item 'MACHINE-TYPE-STRING #f)
"unknown-machine"))
+ (set! microcode-id/compiled-code-type
+ (intern (or (microcode-identification-item 'CC-ARCH-STRING #f)
+ "unknown")))
(set! microcode-id/tty-x-size
(microcode-identification-item 'CONSOLE-WIDTH))
(set! microcode-id/tty-y-size
(define microcode-id/operating-system-variant)
(define microcode-id/stack-type)
(define microcode-id/machine-type)
+(define microcode-id/compiled-code-type)
\f
(define-integrable fixed-objects-slot 15)
(define non-object-slot)
(define identifications-slot)
(define identification-vector)
-(define (microcode-identification-vector-slot name)
- (or (microcode-table-search identifications-slot name)
- (error:bad-range-argument name 'MICROCODE-IDENTIFICATION-VECTOR-SLOT)))
+(define (microcode-identification-vector-slot name #!optional error?)
+ (let ((v (microcode-table-search identifications-slot name)))
+ (if (and (not v) (if (default-object? error?) #t error?))
+ (error:bad-range-argument name 'MICROCODE-IDENTIFICATION-VECTOR-SLOT))
+ v))
-(define (microcode-identification-item name)
- (vector-ref identification-vector
- (microcode-identification-vector-slot name)))
+(define (microcode-identification-item name #!optional error?)
+ (let ((slot (microcode-identification-vector-slot name error?)))
+ (and slot
+ (vector-ref identification-vector slot))))
(define system-call-names-slot)