From 96e777743c0007ecb3bfa45f88c9922222c30f9b Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 29 Jun 2015 21:06:49 -0400 Subject: [PATCH] Bugfixes for pure varargs More is still needed, but this is enough to at least get the compiler to build. --- cgen.scm | 4 +++- transforms.scm | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/cgen.scm b/cgen.scm index 0ea35bf1..a3846ef8 100644 --- a/cgen.scm +++ b/cgen.scm @@ -913,7 +913,9 @@ (lambda->formals exp) (lambda-formals-type exp))) (tmp-ident (if (> (length (lambda-formals->list exp)) 0) - (mangle (car (lambda->formals exp))) + (mangle (if (pair? (lambda->formals exp)) + (car (lambda->formals exp)) + (lambda->formals exp))) "")) (has-closure? (and diff --git a/transforms.scm b/transforms.scm index f3ef815a..8f874670 100644 --- a/transforms.scm +++ b/transforms.scm @@ -387,7 +387,7 @@ (define (lambda-varargs-var exp) (if (lambda-varargs? exp) (if (equal? (lambda-formals-type exp) 'args:varargs) - (lambda-formals exp) ; take symbol directly + (lambda->formals exp) ; take symbol directly (car (reverse (lambda-formals->list exp)))) ; Last arg is varargs #f))