diff options
author | Andy Wingo <wingo@pobox.com> | 2018-01-22 08:06:09 +0100 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-01-22 08:06:09 +0100 |
commit | 5fcc761b43702fa18e768f5e9cfce7199a3c8a5c (patch) | |
tree | 15a6ef209f95e10c330b930c32fb37958bb5fd56 | |
parent | 3f736c478182665f05d57ef2624f14f1f460c49d (diff) | |
download | guile-5fcc761b43702fa18e768f5e9cfce7199a3c8a5c.tar.gz |
Use make-struct/simple in psyntax
* module/ice-9/psyntax.scm (define-expansion-constructors): Use
make-struct/simple, so we can inline allocations.
* module/ice-9/psyntax-pp.scm: Regenerate.
-rw-r--r-- | module/ice-9/psyntax-pp.scm | 40 | ||||
-rw-r--r-- | module/ice-9/psyntax.scm | 4 |
2 files changed, 20 insertions, 24 deletions
diff --git a/module/ice-9/psyntax-pp.scm b/module/ice-9/psyntax-pp.scm index be0f524c1..532e80f04 100644 --- a/module/ice-9/psyntax-pp.scm +++ b/module/ice-9/psyntax-pp.scm @@ -9,23 +9,19 @@ (letrec* ((make-void (lambda (src) - (make-struct/no-tail (vector-ref %expanded-vtables 0) src))) + (make-struct/simple (vector-ref %expanded-vtables 0) src))) (make-const (lambda (src exp) - (make-struct/no-tail (vector-ref %expanded-vtables 1) src exp))) + (make-struct/simple (vector-ref %expanded-vtables 1) src exp))) (make-primitive-ref (lambda (src name) - (make-struct/no-tail (vector-ref %expanded-vtables 2) src name))) + (make-struct/simple (vector-ref %expanded-vtables 2) src name))) (make-lexical-ref (lambda (src name gensym) - (make-struct/no-tail - (vector-ref %expanded-vtables 3) - src - name - gensym))) + (make-struct/simple (vector-ref %expanded-vtables 3) src name gensym))) (make-lexical-set (lambda (src name gensym exp) - (make-struct/no-tail + (make-struct/simple (vector-ref %expanded-vtables 4) src name @@ -33,7 +29,7 @@ exp))) (make-module-ref (lambda (src mod name public?) - (make-struct/no-tail + (make-struct/simple (vector-ref %expanded-vtables 5) src mod @@ -41,7 +37,7 @@ public?))) (make-module-set (lambda (src mod name public? exp) - (make-struct/no-tail + (make-struct/simple (vector-ref %expanded-vtables 6) src mod @@ -50,16 +46,16 @@ exp))) (make-toplevel-ref (lambda (src name) - (make-struct/no-tail (vector-ref %expanded-vtables 7) src name))) + (make-struct/simple (vector-ref %expanded-vtables 7) src name))) (make-toplevel-set (lambda (src name exp) - (make-struct/no-tail (vector-ref %expanded-vtables 8) src name exp))) + (make-struct/simple (vector-ref %expanded-vtables 8) src name exp))) (make-toplevel-define (lambda (src name exp) - (make-struct/no-tail (vector-ref %expanded-vtables 9) src name exp))) + (make-struct/simple (vector-ref %expanded-vtables 9) src name exp))) (make-conditional (lambda (src test consequent alternate) - (make-struct/no-tail + (make-struct/simple (vector-ref %expanded-vtables 10) src test @@ -67,19 +63,19 @@ alternate))) (make-call (lambda (src proc args) - (make-struct/no-tail (vector-ref %expanded-vtables 11) src proc args))) + (make-struct/simple (vector-ref %expanded-vtables 11) src proc args))) (make-primcall (lambda (src name args) - (make-struct/no-tail (vector-ref %expanded-vtables 12) src name args))) + (make-struct/simple (vector-ref %expanded-vtables 12) src name args))) (make-seq (lambda (src head tail) - (make-struct/no-tail (vector-ref %expanded-vtables 13) src head tail))) + (make-struct/simple (vector-ref %expanded-vtables 13) src head tail))) (make-lambda (lambda (src meta body) - (make-struct/no-tail (vector-ref %expanded-vtables 14) src meta body))) + (make-struct/simple (vector-ref %expanded-vtables 14) src meta body))) (make-lambda-case (lambda (src req opt rest kw inits gensyms body alternate) - (make-struct/no-tail + (make-struct/simple (vector-ref %expanded-vtables 15) src req @@ -92,7 +88,7 @@ alternate))) (make-let (lambda (src names gensyms vals body) - (make-struct/no-tail + (make-struct/simple (vector-ref %expanded-vtables 16) src names @@ -101,7 +97,7 @@ body))) (make-letrec (lambda (src in-order? names gensyms vals body) - (make-struct/no-tail + (make-struct/simple (vector-ref %expanded-vtables 17) src in-order? diff --git a/module/ice-9/psyntax.scm b/module/ice-9/psyntax.scm index 262b4e7d7..adc699713 100644 --- a/module/ice-9/psyntax.scm +++ b/module/ice-9/psyntax.scm @@ -1,6 +1,6 @@ ;;;; -*-scheme-*- ;;;; -;;;; Copyright (C) 2001, 2003, 2006, 2009, 2010-2017 +;;;; Copyright (C) 2001, 2003, 2006, 2009, 2010-2018 ;;;; Free Software Foundation, Inc. ;;;; ;;;; This library is free software; you can redistribute it and/or @@ -184,7 +184,7 @@ (sfields (map (lambda (f) (datum->syntax x f)) fields)) (ctor (datum->syntax x (symbol-append 'make- stem)))) (cons #`(define (#,ctor #,@sfields) - (make-struct/no-tail + (make-struct/simple (vector-ref %expanded-vtables #,n) #,@sfields)) out))) |