From bc36487224f670c23002cc4575c0dba3e5dc1be1 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 15 Mar 2022 07:24:35 -0400 Subject: De-sigil-ification: ^ --- lux-jvm/source/luxc/lang/synthesis/variable.lux | 100 ------------------------ 1 file changed, 100 deletions(-) delete mode 100644 lux-jvm/source/luxc/lang/synthesis/variable.lux (limited to 'lux-jvm/source/luxc/lang/synthesis/variable.lux') diff --git a/lux-jvm/source/luxc/lang/synthesis/variable.lux b/lux-jvm/source/luxc/lang/synthesis/variable.lux deleted file mode 100644 index f1ea56e27..000000000 --- a/lux-jvm/source/luxc/lang/synthesis/variable.lux +++ /dev/null @@ -1,100 +0,0 @@ -(.using - lux - (lux (data [library - [number]] - (coll [list "list/" Mix Monoid] - ["s" set]))) - (luxc (lang ["la" analysis] - ["ls" synthesis] - ["[0]L" variable {"+" Variable}]))) - -(def: (bound-vars path) - (-> ls.Path (List Variable)) - (case path - {ls.#BindP register} - (list (.int register)) - - (^or {ls.#SeqP pre post} - {ls.#AltP pre post}) - (list/composite (bound-vars pre) (bound-vars post)) - - _ - (list))) - -(def: (path-bodies path) - (-> ls.Path (List ls.Synthesis)) - (case path - {ls.#ExecP body} - (list body) - - {ls.#SeqP pre post} - (path-bodies post) - - {ls.#AltP pre post} - (list/composite (path-bodies pre) (path-bodies post)) - - _ - (list))) - -(def: (non-arg? arity var) - (-> ls.Arity Variable Bit) - (and (variableL.local? var) - (n/> arity (.nat var)))) - -(type: Tracker (s.Set Variable)) - -(def: init-tracker Tracker (s.new number.Hash)) - -(def: (unused-vars current-arity bound exprS) - (-> ls.Arity (List Variable) ls.Synthesis (List Variable)) - (let [tracker (loop [exprS exprS - tracker (list/mix s.has init-tracker bound)] - (case exprS - {ls.#Variable var} - (if (non-arg? current-arity var) - (s.lacks var tracker) - tracker) - - {ls.#Variant tag last? memberS} - (again memberS tracker) - - {ls.#Tuple membersS} - (list/mix again tracker membersS) - - {ls.#Call funcS argsS} - (list/mix again (again funcS tracker) argsS) - - (^or {ls.#Again argsS} - {ls.#Procedure name argsS}) - (list/mix again tracker argsS) - - {ls.#Let offset inputS outputS} - (|> tracker (again inputS) (again outputS)) - - {ls.#If testS thenS elseS} - (|> tracker (again testS) (again thenS) (again elseS)) - - {ls.#Loop offset initsS bodyS} - (again bodyS (list/mix again tracker initsS)) - - {ls.#Case inputS outputPS} - (let [tracker' (list/mix s.has - (again inputS tracker) - (bound-vars outputPS))] - (list/mix again tracker' (path-bodies outputPS))) - - {ls.#Function arity env bodyS} - (list/mix s.lacks tracker env) - - _ - tracker - ))] - (s.to-list tracker))) - -... (def: (optimize-register-use current-arity [pathS bodyS]) -... (-> ls.Arity [ls.Path ls.Synthesis] [ls.Path ls.Synthesis]) -... (let [bound (bound-vars pathS) -... unused (unused-vars current-arity bound bodyS) -... adjusted (adjust-vars unused bound)] -... [(|> pathS (clean-pattern adjusted) simplify-pattern) -... (clean-expression adjusted bodyS)])) -- cgit v1.2.3