File: template.scm

package info (click to toggle)
scheme48 1.9.2-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 18,232 kB
  • sloc: lisp: 88,907; ansic: 87,519; sh: 3,224; makefile: 771
file content (33 lines) | stat: -rw-r--r-- 1,126 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
; -*- Mode: Scheme; Syntax: Scheme; Package: Scheme; -*-
; Part of Scheme 48 1.9.  See file COPYING for notices and license.

; Authors: Richard Kelsey, Jonathan Rees

; Somewhat redundant with vm/istruct.scm.  Fix this some day.

; Templates
;  Templates are made only by the compiler.

;(define make-template make-vector)

;(define (template? obj)
;  (and (vector? obj)
;       (>= (vector-length obj) template-overhead)
;       (code-vector? (template-code obj))
;       ))

;(define template-length vector-length)
;(define template-ref vector-ref)
;(define template-set! vector-set!)

(define template-overhead 4)

(define (template-code       tem) (template-ref tem 0))
(define (template-byte-code  tem) (template-ref tem 1))
(define (template-info       tem) (template-ref tem 2))
(define (template-package-id tem) (template-ref tem 3))
(define (set-template-code!       tem cv)   (template-set! tem 0 cv))
(define (set-template-byte-code!  tem cv)   (template-set! tem 1 cv))
(define (set-template-info!       tem info) (template-set! tem 2 info))
(define (set-template-package-id! tem id)   (template-set! tem 3 id))