From 36e590610b5a6d58b7c04aa27de3eb990e95adbd Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 28 Nov 2016 18:12:08 -0500 Subject: [PATCH] WIP - Cyc-list for anonymous vararg lambdas --- scheme/cyclone/transforms.sld | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/scheme/cyclone/transforms.sld b/scheme/cyclone/transforms.sld index af29e9e8..ee83c405 100644 --- a/scheme/cyclone/transforms.sld +++ b/scheme/cyclone/transforms.sld @@ -1297,11 +1297,15 @@ ;; Do conversion (cps-list (app->args ast) (lambda (vals) - (cons (ast:make-lambda - (lambda->formals fn) - (list (cps-seq (cddr fn) ;(ast-subx fn) - cont-ast))) - vals)))) + (let ((code + (cons (ast:make-lambda + (lambda->formals fn) + (list (cps-seq (cddr fn) ;(ast-subx fn) + cont-ast))) + vals))) + (if (equal? (lambda-formals-type fn) 'args:varargs) + (cons 'Cyc-list code) ;; Manually build up list + code))))) (else (cps-list ast ;(ast-subx ast) (lambda (args)