summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2018-01-22 08:06:09 +0100
committerAndy Wingo <wingo@pobox.com>2018-01-22 08:06:09 +0100
commit5fcc761b43702fa18e768f5e9cfce7199a3c8a5c (patch)
tree15a6ef209f95e10c330b930c32fb37958bb5fd56
parent3f736c478182665f05d57ef2624f14f1f460c49d (diff)
downloadguile-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.scm40
-rw-r--r--module/ice-9/psyntax.scm4
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)))