(.require [library [lux (.except for) [abstract [equivalence (.only Equivalence)]] [data ["[0]" product] ["[0]" text (.only) ["%" \\format (.only format)]] [collection ["[0]" list (.use "[1]#[0]" monoid)] ["[0]" dictionary (.only Dictionary)]]] [meta [macro ["[0]" template]]] [world ["[0]" file]]]]) (type .public Runtime (Record [#environment (Dictionary Text Text) #program Text #parameters (List Text)])) (def .public equivalence (Equivalence Runtime) (all product.equivalence (dictionary.equivalence text.equivalence) text.equivalence (list.equivalence text.equivalence) )) (with_template [ ] [(def .public Runtime [#environment (dictionary.of_list text.hash (`` (list (,, (template.spliced ))))) #program #parameters (`` (list (,, (template.spliced ))))])] [default_java "java" [] ["-Xss16m" "--add-opens" "java.base/java.lang=ALL-UNNAMED" "-jar"]] [default_js "node" [] ["--stack_size=8192"]] [default_python "python3" [] []] [default_lua "lua" [] []] ... 2^23 [default_ruby "ruby" [["RUBY_THREAD_VM_STACK_SIZE" "8388608"]] []] ) (def .public (for runtime path) (-> Runtime file.Path Runtime) (revised #parameters (function (_ parameters) (list#composite parameters (list path))) runtime))