template.scm 1.1 KB

12345678910111213141516171819202122232425262728293031323334
  1. ; -*- Mode: Scheme; Syntax: Scheme; Package: Scheme; -*-
  2. ; Part of Scheme 48 1.9. See file COPYING for notices and license.
  3. ; Authors: Richard Kelsey, Jonathan Rees
  4. ; Somewhat redundant with vm/istruct.scm. Fix this some day.
  5. ; Templates
  6. ; Templates are made only by the compiler.
  7. ;(define make-template make-vector)
  8. ;(define (template? obj)
  9. ; (and (vector? obj)
  10. ; (>= (vector-length obj) template-overhead)
  11. ; (code-vector? (template-code obj))
  12. ; ))
  13. ;(define template-length vector-length)
  14. ;(define template-ref vector-ref)
  15. ;(define template-set! vector-set!)
  16. (define template-overhead 4)
  17. (define (template-code tem) (template-ref tem 0))
  18. (define (template-byte-code tem) (template-ref tem 1))
  19. (define (template-info tem) (template-ref tem 2))
  20. (define (template-package-id tem) (template-ref tem 3))
  21. (define (set-template-code! tem cv) (template-set! tem 0 cv))
  22. (define (set-template-byte-code! tem cv) (template-set! tem 1 cv))
  23. (define (set-template-info! tem info) (template-set! tem 2 info))
  24. (define (set-template-package-id! tem id) (template-set! tem 3 id))