From 529585d92c02949ed83144bef14837b786b2f4fb Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Mon, 17 Apr 2017 18:11:51 -0400 Subject: [PATCH] Expose list of inlinable functions --- scheme/cyclone/cgen.sld | 31 +++++++++++++++++-------------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/scheme/cyclone/cgen.sld b/scheme/cyclone/cgen.sld index c38e24eb..e7d533b1 100644 --- a/scheme/cyclone/cgen.sld +++ b/scheme/cyclone/cgen.sld @@ -1431,20 +1431,23 @@ (let ((pairs '()) (head-pair #f)) -;; TODO: want some way of being able to get the list in scheme code -;; TODO: ;; Attempt to expose inlinable lambdas function -;; TODO: (let ((cvar-sym (mangle (gensym 'cvar))) -;; TODO: (pair-sym (mangle (gensym 'pair))) -;; TODO: (fnc (string-append -;; TODO: "c_" (lib:name->string lib-name) "_inlinable_lambdas"))) -;; TODO: (emits* -;; TODO: " make_cvar(" cvar-sym -;; TODO: ", (object *)&" fnc ");") -;; TODO: (emits* -;; TODO: "make_pair(" pair-sym ", find_or_add_symbol(\"" fnc -;; TODO: "\"), &" cvar-sym ");\n") -;; TODO: (set! pairs (cons pair-sym pairs))) -;; TODO: ;; END + ;; Expose list of inlinable lambda functions + (when (not program?) + (let ( ;(cvar-sym (mangle (gensym 'cvar))) + (pair-sym (mangle (gensym 'pair))) + (clo-sym (mangle (gensym 'clo))) + (fnc (string-append + "c_" (lib:name->string lib-name) "_inlinable_lambdas"))) + (emits* + " mclosure0(" clo-sym ", " fnc "); " + ; " make_cvar(" cvar-sym + ; ", (object *)&" fnc ");" + ) + (emits* + "make_pair(" pair-sym ", find_or_add_symbol(\"" fnc + "\"), &" clo-sym ");\n") + (set! pairs (cons pair-sym pairs)))) + ;; END (for-each (lambda (g)