(.using [library [lux {"-" for} [abstract [equivalence {"+" Equivalence}]] [data ["[0]" product] ["[0]" text ["%" format {"+" format}]] [collection ["[0]" list ("[1]#[0]" monoid)] ["[0]" dictionary {"+" Dictionary}]]] [macro ["[0]" template]] [world ["[0]" file]]]]) (type: .public Runtime (Record [#environment (Dictionary Text Text) #program Text #parameters (List Text)])) (def: .public equivalence (Equivalence Runtime) ($_ product.equivalence (dictionary.equivalence text.equivalence) text.equivalence (list.equivalence text.equivalence) )) (template [ ] [(def: .public Runtime [#environment (dictionary.of_list text.hash (`` (list (~~ (template.spliced ))))) #program #parameters (`` (list (~~ (template.spliced ))))])] [default_java "java" [] ["--add-opens" "java.base/java.lang=ALL-UNNAMED" "-jar"]] [default_js "node" [] ["--stack_size=8192"]] [default_python "python3" [] []] [default_lua "lua" [] []] [default_ruby "ruby" [["RUBY_THREAD_VM_STACK_SIZE" "15700000"]] []] ) (def: .public (for runtime path) (-> Runtime file.Path Runtime) (revised #parameters (function (_ parameters) (list#composite parameters (list path))) runtime))