diff options
Diffstat (limited to '')
49 files changed, 364 insertions, 364 deletions
diff --git a/stdlib/source/program/aedifex.lux b/stdlib/source/program/aedifex.lux index 636487ee8..c763171c7 100644 --- a/stdlib/source/program/aedifex.lux +++ b/stdlib/source/program/aedifex.lux @@ -63,17 +63,17 @@ ["[1]/[0]" auto] ["[1]/[0]" deploy]]]) -(def: repositories +(def repositories (-> /.Profile (List (Repository Async))) (|>> (the /.#repositories) set.list (list#each (|>> (/repository/remote.repository http.default {.#None}) /repository.async)))) -(def: program (program.async program.default)) -(def: fs (file.async file.default)) -(def: local (/repository/local.repository ..program ..fs)) +(def program (program.async program.default)) +(def fs (file.async file.default)) +(def local (/repository/local.repository ..program ..fs)) -(def: (with_dependencies program console command profile) +(def (with_dependencies program console command profile) (All (_ a) (-> (Program Async) (Console Async) (-> (Console Async) (Program Async) (file.System Async) (Shell Async) Resolution (Command [Exit a])) @@ -104,17 +104,17 @@ (format (%.text name) " := " (%.text repo))) (dictionary.entries options)))) -(def: succeed! +(def succeed! (IO Any) (at program.default exit shell.normal)) -(def: (fail! error) +(def (fail! error) (-> Text (IO Any)) (exec (debug.log! error) (at program.default exit shell.error))) -(def: (command action) +(def (command action) (All (_ a) (-> (Async (Try a)) (IO Any))) (exec (do async.monad @@ -130,11 +130,11 @@ (exception: .public invalid_operation) -(`` (def: write_only +(`` (def write_only (Console IO) (implementation (~~ (with_template [<name>] - [(def: (<name> _) + [(def (<name> _) (io.io (exception.except ..invalid_operation [])))] [read] @@ -142,7 +142,7 @@ [close] )) - (def: (write it) + (def (write it) (<| io.io {try.#Success} debug.log! diff --git a/stdlib/source/program/aedifex/action.lux b/stdlib/source/program/aedifex/action.lux index fac52a5e7..1e2e25921 100644 --- a/stdlib/source/program/aedifex/action.lux +++ b/stdlib/source/program/aedifex/action.lux @@ -11,6 +11,6 @@ (type: .public (Action a) (Async (Try a))) -(def: .public monad +(def .public monad (Monad Action) (as_expected (try.with async.monad))) diff --git a/stdlib/source/program/aedifex/artifact.lux b/stdlib/source/program/aedifex/artifact.lux index 278b79ea4..3799bfb74 100644 --- a/stdlib/source/program/aedifex/artifact.lux +++ b/stdlib/source/program/aedifex/artifact.lux @@ -31,7 +31,7 @@ #name Name #version Version])) -(def: .public hash +(def .public hash (Hash Artifact) (all product.hash text.hash @@ -39,17 +39,17 @@ text.hash )) -(def: .public equivalence +(def .public equivalence (Equivalence Artifact) (at ..hash equivalence)) -(def: .public order +(def .public order (Order Artifact) (implementation - (def: equivalence + (def equivalence ..equivalence) - (def: (< reference subject) + (def (< reference subject) (<| (or (text#< (the #group reference) (the #group subject))) @@ -64,7 +64,7 @@ (the #version subject)))))) (with_template [<separator> <definition>] - [(def: <definition> + [(def <definition> Text <separator>)] @@ -73,37 +73,37 @@ [":" identity_separator] ) -(def: .public (identity artifact) +(def .public (identity artifact) (-> Artifact Text) (%.format (the #name artifact) ..version_separator (the #version artifact))) -(def: .public (format value) +(def .public (format value) (Format Artifact) (%.format (the #group value) ..identity_separator (..identity value))) -(def: .public (directory separator group) +(def .public (directory separator group) (-> Text Group Text) (|> group (text.all_split_by ..group_separator) (text.interposed separator))) -(def: .public (bundle version artifact) +(def .public (bundle version artifact) (-> Version Artifact URI) (let [/ uri.separator group (..directory / (the #group artifact)) name (the #name artifact)] (%.format group / name / version))) -(def: .public (uri version artifact) +(def .public (uri version artifact) (-> Version Artifact URI) (let [/ uri.separator] (%.format (..bundle version artifact) / (..identity artifact)))) -(def: .public (local artifact) +(def .public (local artifact) (-> Artifact (List Text)) (list#composite (|> artifact (the #group) diff --git a/stdlib/source/program/aedifex/artifact/extension.lux b/stdlib/source/program/aedifex/artifact/extension.lux index c89fd2a35..f78a4b963 100644 --- a/stdlib/source/program/aedifex/artifact/extension.lux +++ b/stdlib/source/program/aedifex/artifact/extension.lux @@ -12,19 +12,19 @@ (type: .public Extension Text) -(def: separator +(def separator ".") -(def: .public extension +(def .public extension (-> //.Type Extension) (|>> (format ..separator))) -(def: .public type +(def .public type (-> Extension //.Type) (text.replaced ..separator "")) (with_template [<name>] - [(def: .public <name> + [(def .public <name> Extension (..extension (template.symbol [//._] [<name>])))] diff --git a/stdlib/source/program/aedifex/artifact/snapshot.lux b/stdlib/source/program/aedifex/artifact/snapshot.lux index b9fde212c..4966eb80f 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot.lux @@ -21,13 +21,13 @@ {#Local} {#Remote Stamp})) -(def: any_equivalence +(def any_equivalence (Equivalence Any) (implementation - (def: (= _ _) + (def (= _ _) true))) -(def: .public equivalence +(def .public equivalence (Equivalence Snapshot) (all sum.equivalence ..any_equivalence @@ -35,28 +35,28 @@ )) (with_template [<definition> <tag>] - [(def: <definition> xml.Tag ["" <tag>])] + [(def <definition> xml.Tag ["" <tag>])] [<local_copy> "localCopy"] [<snapshot> "snapshot"] ) -(def: local_copy_value +(def local_copy_value "true") -(def: local_copy_format +(def local_copy_format XML {xml.#Node <local_copy> xml.attributes (list {xml.#Text ..local_copy_value})}) -(def: local_copy_parser +(def local_copy_parser (Parser Any) (<| (<xml>.node ..<local_copy>) (<text>.then (<text>.this ..local_copy_value)) <xml>.text)) -(def: .public (format snapshot) +(def .public (format snapshot) (-> Snapshot XML) (<| {xml.#Node ..<snapshot> xml.attributes} (case snapshot @@ -66,7 +66,7 @@ {#Remote stamp} (/stamp.format stamp)))) -(def: .public parser +(def .public parser (Parser Snapshot) (<| (<xml>.node <snapshot>) (<>.or ..local_copy_parser diff --git a/stdlib/source/program/aedifex/artifact/snapshot/build.lux b/stdlib/source/program/aedifex/artifact/snapshot/build.lux index 483da5e39..f0a0c7d18 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/build.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/build.lux @@ -20,22 +20,22 @@ (type: .public Build Nat) -(def: .public equivalence +(def .public equivalence (Equivalence Build) nat.equivalence) -(def: tag +(def tag xml.Tag ["" "buildNumber"]) -(def: .public format +(def .public format (-> Build XML) (|>> %.nat {xml.#Text} list {xml.#Node ..tag xml.attributes})) -(def: .public parser +(def .public parser (Parser Build) (<| (<xml>.node ..tag) (<text>.then (<>.codec nat.decimal (<text>.many <text>.decimal))) diff --git a/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux b/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux index 3365d685c..2f82cf020 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/stamp.lux @@ -22,36 +22,36 @@ [#time Time #build Build])) -(def: .public equivalence +(def .public equivalence (Equivalence Stamp) (all product.equivalence //time.equivalence //build.equivalence )) -(def: <timestamp> +(def <timestamp> xml.Tag ["" "timestamp"]) -(def: time_format +(def time_format (-> Time XML) (|>> //time.format {xml.#Text} list {xml.#Node ..<timestamp> xml.attributes})) -(def: .public (format (open "_[0]")) +(def .public (format (open "_[0]")) (-> Stamp (List XML)) (list (..time_format _#time) (//build.format _#build))) -(def: time_parser +(def time_parser (Parser Time) (<| (<xml>.node <timestamp>) (<text>.then //time.parser) <xml>.text)) -(def: .public parser +(def .public parser (Parser Stamp) (<>.and (<xml>.somewhere ..time_parser) (<xml>.somewhere //build.parser))) diff --git a/stdlib/source/program/aedifex/artifact/snapshot/time.lux b/stdlib/source/program/aedifex/artifact/snapshot/time.lux index 3b6fbe0ee..38a60ede0 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/time.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/time.lux @@ -24,20 +24,20 @@ (type: .public Time ///time.Time) -(def: .public equivalence +(def .public equivalence (Equivalence Time) ///time.equivalence) -(def: separator +(def separator ".") -(def: .public (format [date time]) +(def .public (format [date time]) (%.Format Time) (%.format (///time/date.format date) ..separator (///time/time.format time))) -(def: .public parser +(def .public parser (<text>.Parser Time) (do <>.monad [date ///time/date.parser diff --git a/stdlib/source/program/aedifex/artifact/snapshot/version.lux b/stdlib/source/program/aedifex/artifact/snapshot/version.lux index bf26ae259..e38534c8f 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/version.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/version.lux @@ -23,7 +23,7 @@ #value Text #updated Time])) -(def: .public equivalence +(def .public equivalence (Equivalence Version) (all product.equivalence text.equivalence @@ -32,7 +32,7 @@ )) (with_template [<definition> <tag>] - [(def: <definition> xml.Tag ["" <tag>])] + [(def <definition> xml.Tag ["" <tag>])] [<extension> "extension"] [<value> "value"] @@ -41,23 +41,23 @@ [<snapshot_version> "snapshotVersion"] ) -(def: (text_format tag value) +(def (text_format tag value) (-> xml.Tag Text XML) (|> value {xml.#Text} list {xml.#Node tag xml.attributes})) -(def: .public (format (open "_[0]")) +(def .public (format (open "_[0]")) (-> Version XML) (<| {xml.#Node ..<snapshot_version> xml.attributes} (list (..text_format ..<extension> _#extension) (..text_format ..<value> _#value) (..text_format ..<updated> (///time.format _#updated))))) -(def: (text tag) +(def (text tag) (-> xml.Tag (Parser Text)) (<| (<xml>.node tag) <xml>.text)) -(def: .public parser +(def .public parser (Parser Version) (<| (<xml>.node ..<snapshot_version>) (all <>.and diff --git a/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux b/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux index 875326058..c0b528186 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux @@ -16,20 +16,20 @@ [#version Text #snapshot Snapshot])) -(def: .public equivalence +(def .public equivalence (Equivalence Value) (all product.equivalence text.equivalence ///.equivalence )) -(def: separator +(def separator "-") -(def: .public snapshot +(def .public snapshot "SNAPSHOT") -(def: .public (format (open "/[0]")) +(def .public (format (open "/[0]")) (%.Format Value) (case /#snapshot {///.#Local} diff --git a/stdlib/source/program/aedifex/artifact/time.lux b/stdlib/source/program/aedifex/artifact/time.lux index d7be974fd..9e52e52ca 100644 --- a/stdlib/source/program/aedifex/artifact/time.lux +++ b/stdlib/source/program/aedifex/artifact/time.lux @@ -22,34 +22,34 @@ (type: .public Time [/date.Date /time.Time]) -(def: .public epoch +(def .public epoch Time [/date.epoch time.midnight]) -(def: .public (instant time) +(def .public (instant time) (-> Time Instant) (let [[date time] time] (instant.of_date_time (/date.value date) time))) -(def: .public (of_instant instant) +(def .public (of_instant instant) (-> Instant (Try Time)) (do try.monad [date (/date.date (instant.date instant))] (in [date (instant.time instant)]))) -(def: .public equivalence +(def .public equivalence (Equivalence Time) (product.equivalence /date.equivalence time.equivalence)) -(def: .public (format [date time]) +(def .public (format [date time]) (Format Time) (%.format (/date.format date) (/time.format time))) -(def: .public parser +(def .public parser (Parser Time) (do <>.monad [date /date.parser diff --git a/stdlib/source/program/aedifex/artifact/time/date.lux b/stdlib/source/program/aedifex/artifact/time/date.lux index 027ec6004..ba908f0af 100644 --- a/stdlib/source/program/aedifex/artifact/time/date.lux +++ b/stdlib/source/program/aedifex/artifact/time/date.lux @@ -23,14 +23,14 @@ [type [primitive (.except)]]]]) -(def: .public (pad value) +(def .public (pad value) (-> Nat Text) (if (n.< 10 value) (%.format "0" (%.nat value)) (%.nat value))) -(def: min_year +1,000) -(def: max_year +9,999) +(def min_year +1,000) +(def max_year +9,999) (exception: .public (year_is_out_of_range [year year.Year]) (exception.report @@ -41,11 +41,11 @@ (primitive .public Date date.Date - (def: .public epoch + (def .public epoch Date (abstraction date.epoch)) - (def: .public (date raw) + (def .public (date raw) (-> date.Date (Try Date)) (let [year (|> raw date.year year.value)] (if (or (i.< ..min_year year) @@ -53,24 +53,24 @@ (exception.except ..year_is_out_of_range [(date.year raw)]) {try.#Success (abstraction raw)}))) - (def: .public value + (def .public value (-> Date date.Date) (|>> representation)) - (def: .public equivalence + (def .public equivalence (Equivalence Date) (implementation - (def: (= reference subject) + (def (= reference subject) (date#= (representation reference) (representation subject))))) - (def: .public (format value) + (def .public (format value) (%.Format Date) (%.format (|> value representation date.year year.value .nat %.nat) (|> value representation date.month month.number ..pad) (|> value representation date.day_of_month ..pad))) - (def: .public parser + (def .public parser (Parser Date) (do <>.monad [year (<>.codec n.decimal (<text>.exactly 4 <text>.decimal)) diff --git a/stdlib/source/program/aedifex/artifact/time/time.lux b/stdlib/source/program/aedifex/artifact/time/time.lux index 01d2169d5..d02667bbc 100644 --- a/stdlib/source/program/aedifex/artifact/time/time.lux +++ b/stdlib/source/program/aedifex/artifact/time/time.lux @@ -19,14 +19,14 @@ (type: .public Time time.Time) -(def: .public (format value) +(def .public (format value) (%.Format Time) (let [(open "_[0]") (time.clock value)] (%.format (//.pad _#hour) (//.pad _#minute) (//.pad _#second)))) -(def: .public parser +(def .public parser (<text>.Parser Time) (do <>.monad [hour (<>.codec n.decimal (<text>.exactly 2 <text>.decimal)) diff --git a/stdlib/source/program/aedifex/artifact/type.lux b/stdlib/source/program/aedifex/artifact/type.lux index 53242c437..971b8757a 100644 --- a/stdlib/source/program/aedifex/artifact/type.lux +++ b/stdlib/source/program/aedifex/artifact/type.lux @@ -7,7 +7,7 @@ Text) (with_template [<type> <name>] - [(def: .public <name> + [(def .public <name> Type <type>)] diff --git a/stdlib/source/program/aedifex/artifact/versioning.lux b/stdlib/source/program/aedifex/artifact/versioning.lux index 5812e4368..811db7ab9 100644 --- a/stdlib/source/program/aedifex/artifact/versioning.lux +++ b/stdlib/source/program/aedifex/artifact/versioning.lux @@ -35,12 +35,12 @@ #last_updated //time.Time #versions (List Version)])) -(def: .public init +(def .public init [#snapshot {//snapshot.#Local} #last_updated //time.epoch #versions (list)]) -(def: .public equivalence +(def .public equivalence (Equivalence Versioning) (all product.equivalence //snapshot.equivalence @@ -49,7 +49,7 @@ )) (with_template [<definition> <tag>] - [(def: <definition> xml.Tag ["" <tag>])] + [(def <definition> xml.Tag ["" <tag>])] [<last_updated> "lastUpdated"] [<snapshot_versions> "snapshotVersions"] @@ -57,11 +57,11 @@ [<versioning> "versioning"] ) -(def: last_updated_format +(def last_updated_format (-> //time.Time XML) (|>> //time.format {xml.#Text} list {xml.#Node ..<last_updated> xml.attributes})) -(def: .public (format (open "_[0]")) +(def .public (format (open "_[0]")) (-> Versioning XML) (<| {xml.#Node ..<versioning> xml.attributes} (list (//snapshot.format _#snapshot) @@ -70,17 +70,17 @@ (list#each //snapshot/version.format) {xml.#Node ..<snapshot_versions> xml.attributes})))) -(def: (text tag) +(def (text tag) (-> xml.Tag (Parser Text)) (<| (<xml>.node tag) <xml>.text)) -(def: last_updated_parser +(def last_updated_parser (Parser //time.Time) (<| (<text>.then //time.parser) (..text ..<last_updated>))) -(def: .public parser +(def .public parser (Parser Versioning) (<| (<xml>.node ..<versioning>) (all <>.and diff --git a/stdlib/source/program/aedifex/cli.lux b/stdlib/source/program/aedifex/cli.lux index 25ab8be02..c717313cd 100644 --- a/stdlib/source/program/aedifex/cli.lux +++ b/stdlib/source/program/aedifex/cli.lux @@ -21,18 +21,18 @@ {#Build} {#Test})) -(def: any_equivalence +(def any_equivalence (Equivalence Any) (implementation - (def: (= reference subject) + (def (= reference subject) true))) -(def: compilation_equivalence +(def compilation_equivalence (Equivalence Compilation) (sum.equivalence ..any_equivalence ..any_equivalence)) -(def: compilation +(def compilation (Parser Compilation) (<>.or (cli.this "build") (cli.this "test"))) @@ -48,7 +48,7 @@ {#Compilation Compilation} {#Auto Compilation})) -(def: .public equivalence +(def .public equivalence (Equivalence Command) (all sum.equivalence ... #Version @@ -71,7 +71,7 @@ ... #Auto ..compilation_equivalence)) -(def: command' +(def command' (Parser Command) (all <>.or (cli.this "version") @@ -88,7 +88,7 @@ ..compilation) )) -(def: .public command +(def .public command (Parser [(List Name) Command]) (<>.rec (function (_ command) diff --git a/stdlib/source/program/aedifex/command/auto.lux b/stdlib/source/program/aedifex/command/auto.lux index 2e07625cb..81a1a855a 100644 --- a/stdlib/source/program/aedifex/command/auto.lux +++ b/stdlib/source/program/aedifex/command/auto.lux @@ -25,7 +25,7 @@ [dependency [resolution (.only Resolution)]]]]) -(def: (targets fs path) +(def (targets fs path) (-> (file.System Async) file.Path (Async (List file.Path))) (let [! async.monad] (|> path @@ -35,15 +35,15 @@ (at ! conjoint) (at ! each (|>> list.together (list.partial path)))))) -(def: .public delay +(def .public delay Nat 1,000) -(def: (pause delay) +(def (pause delay) (-> Nat (Async (Try Any))) (async.after delay {try.#Success []})) -(def: .public (do! delay watcher command) +(def .public (do! delay watcher command) (All (_ a) (-> Nat (Watcher Async) (-> (Console Async) (Program Async) (file.System Async) (Shell Async) Resolution (Command [Exit a])) diff --git a/stdlib/source/program/aedifex/command/build.lux b/stdlib/source/program/aedifex/command/build.lux index 168aa1971..d183b975b 100644 --- a/stdlib/source/program/aedifex/command/build.lux +++ b/stdlib/source/program/aedifex/command/build.lux @@ -56,7 +56,7 @@ (type: Finder (-> Resolution (Maybe Dependency))) -(def: (dependency_finder group name) +(def (dependency_finder group name) (-> Group Name Finder) (|>> dictionary.entries (list.one (function (_ [dependency package]) @@ -65,12 +65,12 @@ {.#Some dependency} {.#None}))))) -(def: .public lux_group +(def .public lux_group Group "com.github.luxlang") (with_template [<dependency> <definition>] - [(def: .public <definition> + [(def .public <definition> Name <dependency>)] @@ -92,13 +92,13 @@ {#Lua Dependency} {#Ruby Dependency})) -(def: (remove_dependency dependency) +(def (remove_dependency dependency) (-> Dependency (-> Resolution Resolution)) (|>> dictionary.entries (list.only (|>> product.left (same? dependency) not)) (dictionary.of_list ///dependency.hash))) -(def: (lux resolution lux_dependency) +(def (lux resolution lux_dependency) (-> Resolution Dependency (Try [Resolution Lux])) (let [[[lux_group lux_name lux_version] lux_type] lux_dependency] (case (..dependency_finder lux_group lux_name resolution) @@ -120,7 +120,7 @@ _ (exception.except ..no_available_lux [])))) -(def: (path fs home dependency) +(def (path fs home dependency) (All (_ !) (-> (file.System !) Path Dependency Path)) (let [/ (at fs separator) artifact (the ///dependency.#artifact dependency)] @@ -130,23 +130,23 @@ (format home /) (text.suffix (format "." (the ///dependency.#type dependency)))))) -(def: (libraries fs home) +(def (libraries fs home) (All (_ !) (-> (file.System !) Path Resolution (List Path))) (|>> dictionary.keys (list.only (|>> (the ///dependency.#type) (text#= ///artifact/type.lux_library))) (list#each (..path fs home)))) -(def: version_separator +(def version_separator ".") -(def: version_order +(def version_order (Order Version) (implementation - (def: equivalence + (def equivalence text.equivalence) - (def: (< left right) + (def (< left right) (loop (again [left (text.all_split_by ..version_separator left) right (text.all_split_by ..version_separator right)]) (case [left right] @@ -165,7 +165,7 @@ [{.#End} {.#End}] false))))) -(def: .public (host_dependencies fs home) +(def .public (host_dependencies fs home) (All (_ !) (-> (file.System !) Path Resolution (List Path))) (|>> dictionary.keys (list.only (|>> (the ///dependency.#type) @@ -189,20 +189,20 @@ dictionary.values (list#each (|>> product.right (..path fs home))))) -(def: (singular name) +(def (singular name) (-> Text Text (List Text)) (|>> (list name))) -(def: (plural name) +(def (plural name) (-> Text (List Text) (List Text)) (|>> (list#each (|>> (list name))) list.together)) -(def: .public start "[BUILD STARTED]") -(def: .public success "[BUILD ENDED]") -(def: .public failure "[BUILD FAILED]") +(def .public start "[BUILD STARTED]") +(def .public success "[BUILD ENDED]") +(def .public failure "[BUILD FAILED]") (with_template [<name> <capability>] - [(def: .public (<name> console process) + [(def .public (<name> console process) (-> (Console Async) (Process Async) (Async (Try Any))) ... This is a very odd way of implementing this function. ... But it's written this way because the more straightforward way (i.e. by using (try.with async.monad)) @@ -243,7 +243,7 @@ "[1]::[0]" ("static" getProperty [java/lang/String] "io" "try" java/lang/String)) -(def: windows? +(def windows? Bit (|> (java/lang/System::getProperty (ffi.as_string "os.name")) io.run! @@ -252,18 +252,18 @@ text.lower_cased (text.starts_with? "windows"))) -(def: jvm_class_path_separator +(def jvm_class_path_separator (if windows? ";" ":")) -(def: (jvm_class_path host_dependencies) +(def (jvm_class_path host_dependencies) (-> (List Path) Text) (|> host_dependencies {.#Item "."} (text.interposed ..jvm_class_path_separator))) -(def: .public (with_jvm_class_path host_dependencies runtime) +(def .public (with_jvm_class_path host_dependencies runtime) (-> (List Path) ///runtime.Runtime ///runtime.Runtime) (case host_dependencies {.#End} @@ -276,7 +276,7 @@ "--add-opens" "java.base/java.lang=ALL-UNNAMED")) runtime))) -(def: .public (do! console program fs shell resolution) +(def .public (do! console program fs shell resolution) (-> (Console Async) (Program Async) (file.System Async) (Shell Async) Resolution (Command [Exit Lux Path])) (function (_ profile) (let [target (the ///.#target profile)] diff --git a/stdlib/source/program/aedifex/command/clean.lux b/stdlib/source/program/aedifex/command/clean.lux index c16c517d6..de683bce1 100644 --- a/stdlib/source/program/aedifex/command/clean.lux +++ b/stdlib/source/program/aedifex/command/clean.lux @@ -18,7 +18,7 @@ ["[1]" profile] ["[1][0]" action (.only Action)]]) -(def: (clean_files! fs root) +(def (clean_files! fs root) (-> (file.System Async) Path (Async (Try Any))) (do [! ///action.monad] [_ (|> root @@ -27,11 +27,11 @@ (at ! conjoint))] (in []))) -(def: .public success +(def .public success (-> ///.Target Text) (|>> (format "Successfully cleaned target directory: "))) -(def: .public (do! console fs profile) +(def .public (do! console fs profile) (-> (Console Async) (file.System Async) (Command Any)) (do [! async.monad] [.let [target (the ///.#target profile)] diff --git a/stdlib/source/program/aedifex/command/deploy.lux b/stdlib/source/program/aedifex/command/deploy.lux index 0f34ba9a3..e432f5dac 100644 --- a/stdlib/source/program/aedifex/command/deploy.lux +++ b/stdlib/source/program/aedifex/command/deploy.lux @@ -23,10 +23,10 @@ ["/" profile] ["[1][0]" action]]]]) -(def: .public success +(def .public success "Successfully deployed the project.") -(def: .public (do! program shell console local remote fs artifact profile) +(def .public (do! program shell console local remote fs artifact profile) (-> (Program Async) (Shell Async) (Console Async) (Repository Async) (Repository Async) (file.System Async) Artifact (Command Any)) (do [! ///action.monad] [_ (if (/snapshot.snapshot? artifact) diff --git a/stdlib/source/program/aedifex/command/deploy/release.lux b/stdlib/source/program/aedifex/command/deploy/release.lux index 667bbf1ee..b709680ad 100644 --- a/stdlib/source/program/aedifex/command/deploy/release.lux +++ b/stdlib/source/program/aedifex/command/deploy/release.lux @@ -67,13 +67,13 @@ "[1]::[0]" ("static" getProperty [java/lang/String] "io" "try" java/lang/String)) -(def: windows? +(def windows? (IO (Try Bit)) (at (try.with io.monad) each (|>> java/lang/String::toLowerCase ffi.of_string (text.starts_with? "windows")) (java/lang/System::getProperty (ffi.as_string "os.name")))) -(def: dummy_jar +(def dummy_jar Binary (|> (packager.package (context.jvm "") (dictionary.empty text.hash) @@ -88,7 +88,7 @@ (undefined)))) (with_template [<name> <extension>] - [(def: <name> + [(def <name> (-> Text Text) (text.suffix <extension>))] @@ -100,7 +100,7 @@ ) (with_template [<name> <suffix>] - [(def: <name> + [(def <name> (-> Text Text) (|>> (text.suffix <suffix>) ..jar))] @@ -108,11 +108,11 @@ [sources "-sources"] ) -(def: .public release? +(def .public release? (Predicate Artifact) (|>> //snapshot.snapshot? not)) -(def: (install_dummies! program local fs artifact) +(def (install_dummies! program local fs artifact) (-> (Program Async) (Repository Async) (file.System Async) Artifact (Async (Try Any))) (do (try.with async.monad) [.let [$artifact (////artifact.uri (the ////artifact.#version artifact) artifact)] @@ -121,18 +121,18 @@ _ (at local upload (..sources $artifact) ..dummy_jar)] (in []))) -(def: (signed it) +(def (signed it) (-> Text [Text Text]) [it (..asc it)]) -(def: (release_unsigned_artifact! local remote uri) +(def (release_unsigned_artifact! local remote uri) (-> (Repository Async) (Repository Async) Text (Async (Try Binary))) (do [! ////action.monad] [it (at local download uri) _ (at remote upload uri it)] (in it))) -(def: (release_signed_artifact! local remote [artifact signature]) +(def (release_signed_artifact! local remote [artifact signature]) (-> (Repository Async) (Repository Async) [Text Text] (Async (Try Any))) (do [! ////action.monad] [it (..release_unsigned_artifact! local remote artifact) @@ -144,7 +144,7 @@ _ (..release_unsigned_artifact! local remote signature)] (in []))) -(def: .public (do! program shell console local remote fs artifact profile) +(def .public (do! program shell console local remote fs artifact profile) (-> (Program Async) (Shell Async) (Console Async) (Repository Async) (Repository Async) (file.System Async) Artifact (Command Any)) (do [! ////action.monad] [_ (///install.do! console fs local profile) diff --git a/stdlib/source/program/aedifex/command/deploy/snapshot.lux b/stdlib/source/program/aedifex/command/deploy/snapshot.lux index 37fc9a19b..dcfdc3ba4 100644 --- a/stdlib/source/program/aedifex/command/deploy/snapshot.lux +++ b/stdlib/source/program/aedifex/command/deploy/snapshot.lux @@ -39,12 +39,12 @@ ["[1][0]" artifact (.only Artifact) ["[1]/[0]" type]]]) -(def: .public snapshot? +(def .public snapshot? (Predicate Artifact) (|>> (the ////artifact.#version) (text.contains? "-SNAPSHOT"))) -(def: .public (do! console remote fs artifact profile) +(def .public (do! console remote fs artifact profile) (-> (Console Async) (Repository Async) (file.System Async) Artifact (Command Any)) (do [! ////action.monad] [library (|> profile diff --git a/stdlib/source/program/aedifex/command/deps.lux b/stdlib/source/program/aedifex/command/deps.lux index f2bc10fb1..682bec78c 100644 --- a/stdlib/source/program/aedifex/command/deps.lux +++ b/stdlib/source/program/aedifex/command/deps.lux @@ -31,13 +31,13 @@ ["[1]/[0]" resolution (.only Resolution)] ["[1]/[0]" deployment]]]]) -(def: format +(def format (%.Format Dependency) (|>> (the ///dependency.#artifact) ///artifact.format %.text)) -(def: .public (do! console local remotes new_repository profile) +(def .public (do! console local remotes new_repository profile) (-> (Console Async) (Repository Async) (List (Repository Async)) (-> URL (Repository Async)) (Command Resolution)) (do async.monad [.let [dependencies (|> (the ///.#dependencies profile) diff --git a/stdlib/source/program/aedifex/command/install.lux b/stdlib/source/program/aedifex/command/install.lux index 9e624a11c..f42a8fd65 100644 --- a/stdlib/source/program/aedifex/command/install.lux +++ b/stdlib/source/program/aedifex/command/install.lux @@ -45,13 +45,13 @@ ["[1][0]" artifact (.only Artifact) ["[1]/[0]" type]]]]) -(def: .public success +(def .public success "Successfully installed the project locally.") -(def: .public failure +(def .public failure "Failure: No 'identity' defined for the project.") -(def: .public (do! console fs local profile) +(def .public (do! console fs local profile) (-> (Console Async) (file.System Async) (Repository Async) (Command Any)) (case (the /.#identity profile) {.#Some identity} diff --git a/stdlib/source/program/aedifex/command/pom.lux b/stdlib/source/program/aedifex/command/pom.lux index 7b12a095b..f156e6f6b 100644 --- a/stdlib/source/program/aedifex/command/pom.lux +++ b/stdlib/source/program/aedifex/command/pom.lux @@ -22,10 +22,10 @@ ["[1][0]" action] ["[1][0]" pom]]) -(def: .public success +(def .public success (format "Successfully created POM file: " ///pom.file)) -(def: .public (do! console fs profile) +(def .public (do! console fs profile) (-> (Console Async) (file.System Async) (Command Any)) (do ///action.monad [content (|> (///pom.write profile) diff --git a/stdlib/source/program/aedifex/command/test.lux b/stdlib/source/program/aedifex/command/test.lux index 2e9e69ef8..c4eb94274 100644 --- a/stdlib/source/program/aedifex/command/test.lux +++ b/stdlib/source/program/aedifex/command/test.lux @@ -30,11 +30,11 @@ [dependency [resolution (.only Resolution)]]]]) -(def: .public start "[TEST STARTED]") -(def: .public success "[TEST ENDED]") -(def: .public failure "[TEST FAILED]") +(def .public start "[TEST STARTED]") +(def .public success "[TEST ENDED]") +(def .public failure "[TEST FAILED]") -(def: .public (do! console program fs shell resolution profile) +(def .public (do! console program fs shell resolution profile) (-> (Console Async) (Program Async) (file.System Async) (Shell Async) Resolution (Command [Exit Any])) (do async.monad [environment (program.environment async.monad program) diff --git a/stdlib/source/program/aedifex/command/version.lux b/stdlib/source/program/aedifex/command/version.lux index 506c1d93f..68293c94c 100644 --- a/stdlib/source/program/aedifex/command/version.lux +++ b/stdlib/source/program/aedifex/command/version.lux @@ -15,7 +15,7 @@ [/// [command (.only Command)]]) -(def: .public (do! console profile) +(def .public (do! console profile) (-> (Console Async) (Command Any)) (is (Async (Try Any)) (console.write_line (version.format meta/version.latest) diff --git a/stdlib/source/program/aedifex/dependency.lux b/stdlib/source/program/aedifex/dependency.lux index 11c66941f..92fe6b7ce 100644 --- a/stdlib/source/program/aedifex/dependency.lux +++ b/stdlib/source/program/aedifex/dependency.lux @@ -18,24 +18,24 @@ [#artifact Artifact #type Type])) -(def: .public hash +(def .public hash (Hash Dependency) (all product.hash //.hash text.hash )) -(def: .public equivalence +(def .public equivalence (Equivalence Dependency) (at hash equivalence)) -(def: .public order +(def .public order (Order Dependency) (implementation - (def: equivalence + (def equivalence ..equivalence) - (def: (< reference subject) + (def (< reference subject) (<| (or (//#< (the #artifact reference) (the #artifact subject))) diff --git a/stdlib/source/program/aedifex/dependency/deployment.lux b/stdlib/source/program/aedifex/dependency/deployment.lux index 7e4a427e3..85dd6fa2d 100644 --- a/stdlib/source/program/aedifex/dependency/deployment.lux +++ b/stdlib/source/program/aedifex/dependency/deployment.lux @@ -40,7 +40,7 @@ [resolution (.only Resolution)] ["[1]/[0]" status (.only Status)]]]) -(def: (with_status repository version_template [artifact type] [data status]) +(def (with_status repository version_template [artifact type] [data status]) (-> (Repository Async) ///artifact.Version Dependency [Binary Status] (Async (Try Any))) (let [artifact (format (///artifact.uri version_template artifact) (///artifact/extension.extension type)) @@ -69,7 +69,7 @@ [_ (deploy_hash ///hash.sha-1_codec ///artifact/extension.sha-1 sha-1)] (deploy_hash ///hash.md5_codec ///artifact/extension.md5 md5)))))) -(def: (artifacts type status) +(def (artifacts type status) (-> ///artifact/type.Type Status (List ///artifact/type.Type)) (with_expansions [<sha-1> (format type ///artifact/extension.sha-1) <md5> (format type ///artifact/extension.md5)] @@ -86,7 +86,7 @@ {///dependency/status.#Verified _} (list <sha-1> <md5>))))) -(def: (update_snapshot [artifact type] now snapshot) +(def (update_snapshot [artifact type] now snapshot) (-> Dependency Instant Metadata (Try Metadata)) (do try.monad [now (is (Try ///artifact/time.Time) @@ -115,7 +115,7 @@ ... (..artifacts ///artifact/type.pom (product.right (the ///package.#pom package))))) )))) -(def: .public (one repository [artifact type] package) +(def .public (one repository [artifact type] package) (-> (Repository Async) Dependency Package (Async (Try Artifact))) (do [! async.monad] [now (async.future instant.now) @@ -140,7 +140,7 @@ (///metadata/artifact.write repository artifact))] (in artifact)))) -(def: .public (all repository resolution) +(def .public (all repository resolution) (-> (Repository Async) Resolution (Async (Try (Set Artifact)))) (let [! (try.with async.monad)] (|> (dictionary.entries resolution) diff --git a/stdlib/source/program/aedifex/dependency/resolution.lux b/stdlib/source/program/aedifex/dependency/resolution.lux index 6a15823c8..08ca4d1a8 100644 --- a/stdlib/source/program/aedifex/dependency/resolution.lux +++ b/stdlib/source/program/aedifex/dependency/resolution.lux @@ -75,7 +75,7 @@ "[1]::[0]" (trim [] java/lang/String)) -(def: (verified_hash library repository version_template artifact extension hash codec exception) +(def (verified_hash library repository version_template artifact extension hash codec exception) (All (_ h) (-> Binary (Repository Async) Version Artifact Extension (-> Binary (Hash h)) (Codec Text (Hash h)) @@ -100,7 +100,7 @@ {try.#Failure error} (in {try.#Success {.#None}})))) -(def: (hashed repository version_template artifact extension) +(def (hashed repository version_template artifact extension) (-> (Repository Async) Version Artifact Extension (Async (Try [Binary Status]))) (do (try.with async.monad) [data (at repository download (///repository/remote.uri version_template artifact extension)) @@ -123,7 +123,7 @@ [{.#None} {.#None}] {//status.#Unverified})]))) -(def: .public (one repository dependency) +(def .public (one repository dependency) (-> (Repository Async) Dependency (Async (Try Package))) (let [[artifact type] dependency extension (///artifact/extension.extension type)] @@ -147,11 +147,11 @@ (type: .public Resolution (Dictionary Dependency Package)) -(def: .public empty +(def .public empty Resolution (dictionary.empty //.hash)) -(def: .public equivalence +(def .public equivalence (Equivalence Resolution) (dictionary.equivalence ///package.equivalence)) @@ -161,7 +161,7 @@ "Type" (%.text (the //.#type dependency)))) (with_template [<sigil> <name> <doing> <at>] - [(def: (<name> console repository artifact) + [(def (<name> console repository artifact) (-> (Console Async) (Repository Async) Artifact (Async (Try Any))) (at console write (format "[" <sigil> "]" " " <doing> @@ -175,7 +175,7 @@ ["X" announce_failure "Missed" "from"] ) -(def: .public (any console repositories dependency) +(def .public (any console repositories dependency) (-> (Console Async) (List (Repository Async)) Dependency (Async (Try Package))) (case repositories {.#End} @@ -198,7 +198,7 @@ [_ (..announce_failure console repository (the //.#artifact dependency))] (any console alternatives dependency)))))) -(def: .public (all console repositories new_repository dependencies resolution) +(def .public (all console repositories new_repository dependencies resolution) (-> (Console Async) (List (Repository Async)) (-> URL (Repository Async)) (List Dependency) Resolution (Async [(List Dependency) (List Dependency) diff --git a/stdlib/source/program/aedifex/dependency/status.lux b/stdlib/source/program/aedifex/dependency/status.lux index f36f85fe2..b8a962142 100644 --- a/stdlib/source/program/aedifex/dependency/status.lux +++ b/stdlib/source/program/aedifex/dependency/status.lux @@ -17,13 +17,13 @@ (Hash MD5))} {#Verified (Hash SHA-1) (Hash MD5)})) -(def: any_equivalence +(def any_equivalence (Equivalence Any) (implementation - (def: (= _ _) + (def (= _ _) true))) -(def: .public equivalence +(def .public equivalence (Equivalence Status) (all sum.equivalence ..any_equivalence @@ -35,7 +35,7 @@ ///hash.equivalence) )) -(def: .public (verified payload) +(def .public (verified payload) (-> Binary Status) {#Verified (///hash.sha-1 payload) diff --git a/stdlib/source/program/aedifex/format.lux b/stdlib/source/program/aedifex/format.lux index 6316e6287..cd10c675f 100644 --- a/stdlib/source/program/aedifex/format.lux +++ b/stdlib/source/program/aedifex/format.lux @@ -26,7 +26,7 @@ (type: .public (Format a) (-> a Code)) -(def: (license [name url type]) +(def (license [name url type]) (Format /.License) (`' [#name (~ (code.text name)) #url (~ (code.text url)) @@ -37,12 +37,12 @@ {/.#Manual} (' "manual")))])) -(def: (organization [name url]) +(def (organization [name url]) (Format /.Organization) (`' [#name (~ (code.text name)) #url (~ (code.text url))])) -(def: (developer [name url organization]) +(def (developer [name url organization]) (Format /.Developer) (case organization {.#None} @@ -54,14 +54,14 @@ #url (~ (code.text url)) #organization (~ (..organization value))]))) -(def: contributor +(def contributor (Format /.Contributor) ..developer) (type: Aggregate (Dictionary Text Code)) -(def: aggregate +(def aggregate (Format Aggregate) (|>> dictionary.entries (list#each (function (_ [key value]) @@ -69,11 +69,11 @@ list#conjoint code.tuple)) -(def: empty +(def empty Aggregate (dictionary.empty text.hash)) -(def: (on_maybe field value format aggregate) +(def (on_maybe field value format aggregate) (All (_ a) (-> Text (Maybe a) (Format a) Aggregate Aggregate)) (case value @@ -83,7 +83,7 @@ {.#Some value} (dictionary.has field (format value) aggregate))) -(def: (on_list field value format aggregate) +(def (on_list field value format aggregate) (All (_ a) (-> Text (List a) (Format a) Aggregate Aggregate)) (case value @@ -93,12 +93,12 @@ value (dictionary.has field (` [(~+ (list#each format value))]) aggregate))) -(def: (on_set field value format aggregate) +(def (on_set field value format aggregate) (All (_ a) (-> Text (Set a) (Format a) Aggregate Aggregate)) (..on_list field (set.list value) format aggregate)) -(def: (on_dictionary field value key_format value_format aggregate) +(def (on_dictionary field value key_format value_format aggregate) (All (_ k v) (-> Text (Dictionary k v) (Format k) (Format v) Aggregate Aggregate)) (if (dictionary.empty? value) @@ -112,7 +112,7 @@ code.tuple) aggregate))) -(def: (info value) +(def (info value) (Format /.Info) (|> ..empty (..on_maybe "name" (the /.#name value) code.text) @@ -125,24 +125,24 @@ (..on_list "contributors" (the /.#contributors value) ..contributor) ..aggregate)) -(def: (artifact' [group name version]) +(def (artifact' [group name version]) (-> Artifact (List Code)) (list (code.text group) (code.text name) (code.text version))) -(def: (artifact value) +(def (artifact value) (Format Artifact) (` [(~+ (..artifact' value))])) -(def: (dependency [artifact type]) +(def (dependency [artifact type]) (Format Dependency) (if (text#= //artifact/type.lux_library type) (` [(~+ (..artifact' artifact))]) (` [(~+ (..artifact' artifact)) (~ (code.text type))]))) -(def: (runtime [environment program parameters]) +(def (runtime [environment program parameters]) (Format Runtime) (` [(~+ (list#each (function (_ [var value]) (` [(~ (code.text var)) @@ -151,15 +151,15 @@ (~ (code.text program)) (~+ (list#each code.text parameters))])) -(def: (compiler [definition parameters]) +(def (compiler [definition parameters]) (Format Compiler) (` [(~ (code.symbol definition)) (~+ (list#each code.text parameters))])) -(def: .public lux_compiler_label +(def .public lux_compiler_label "lux") -(def: (profile value) +(def (profile value) (Format /.Profile) (`` (|> ..empty (..on_list "parents" (the /.#parents value) code.text) @@ -184,7 +184,7 @@ [/.#ruby])) ..aggregate))) -(def: .public project +(def .public project (Format Project) (|>> dictionary.entries (list#each (function (_ [key value]) diff --git a/stdlib/source/program/aedifex/hash.lux b/stdlib/source/program/aedifex/hash.lux index 7a2668bc7..5d5890c3a 100644 --- a/stdlib/source/program/aedifex/hash.lux +++ b/stdlib/source/program/aedifex/hash.lux @@ -40,12 +40,12 @@ (primitive .public (Hash h) Binary - (def: .public data + (def .public data (All (_ h) (-> (Hash h) Binary)) (|>> representation)) (with_template [<name> <kind> <algorithm>] - [(def: .public (<name> value) + [(def .public (<name> value) (-> Binary (Hash <kind>)) (|> (java/security/MessageDigest::getInstance [(ffi.as_string <algorithm>)]) (java/security/MessageDigest::digest [value]) @@ -55,7 +55,7 @@ [md5 ..MD5 "MD5"] ) - (def: encoded + (def encoded (Format Binary) (binary.mix (function (_ byte representation) (let [hex (at n.hex encoded byte) @@ -66,7 +66,7 @@ "")) (with_template [<factor> <name>] - [(def: <name> + [(def <name> Nat <factor>)] @@ -74,10 +74,10 @@ [16 md5::size] ) - (def: hex_per_byte + (def hex_per_byte 2) - (def: hex_per_chunk + (def hex_per_chunk (n.* hex_per_byte i64.bytes_per_i64)) (exception: .public (not_a_hash [size Nat @@ -99,7 +99,7 @@ ) (with_template [<name> <kind> <size> <exception>] - [(def: .public (<name> data) + [(def .public (<name> data) (-> Binary (Try (Hash <kind>))) (if (n.= <size> (binary.size data)) {try.#Success (abstraction data)} @@ -109,15 +109,15 @@ [as_md5 MD5 ..md5::size ..not_a_md5] ) - (def: hash_size + (def hash_size (-> Text Nat) (|>> text.size (n./ ..hex_per_byte))) - (def: encoding_size + (def encoding_size (-> Nat Nat) (n.* ..hex_per_byte)) - (def: (decoded size constructor encoded) + (def (decoded size constructor encoded) (All (_ h) (-> Nat (-> Binary (Try (Hash h))) (-> Text (Try (Hash h))))) @@ -150,20 +150,20 @@ (exception.except ..not_a_hash [(..encoding_size size) encoded])))) (with_template [<codec> <hash> <nat> <constructor>] - [(def: .public <codec> + [(def .public <codec> (Codec Text (Hash <hash>)) (implementation - (def: encoded (|>> representation ..encoded)) - (def: decoded (..decoded <nat> <constructor>))))] + (def encoded (|>> representation ..encoded)) + (def decoded (..decoded <nat> <constructor>))))] [sha-1_codec SHA-1 ..sha-1::size ..as_sha-1] [md5_codec MD5 ..md5::size ..as_md5] ) - (def: .public equivalence + (def .public equivalence (All (_ h) (Equivalence (Hash h))) (implementation - (def: (= reference subject) + (def (= reference subject) (at binary.equivalence = (representation reference) (representation subject))))) diff --git a/stdlib/source/program/aedifex/input.lux b/stdlib/source/program/aedifex/input.lux index 13d7159ba..99dc93542 100644 --- a/stdlib/source/program/aedifex/input.lux +++ b/stdlib/source/program/aedifex/input.lux @@ -30,7 +30,7 @@ ["[1][0]" project (.only Project)] ["[1][0]" parser]]) -(def: (lux_parser source_code) +(def (lux_parser source_code) (-> Text (Try Code)) (let [parse (syntax.parse "" syntax.no_aliases @@ -42,14 +42,14 @@ {.#Right [_ lux_code]} {try.#Success lux_code}))) -(def: project_parser +(def project_parser (-> Binary (Try Project)) (|>> (pipe.do try.monad [(at utf8.codec decoded)] [..lux_parser] [(list) (<code>.result //parser.project)]))) -(def: .public (read monad fs profiles) +(def .public (read monad fs profiles) (All (_ !) (-> (Monad !) (file.System !) (List Name) (! (Try Profile)))) (|> //project.file (at fs read) diff --git a/stdlib/source/program/aedifex/local.lux b/stdlib/source/program/aedifex/local.lux index 8a4aa3b1e..a6236a469 100644 --- a/stdlib/source/program/aedifex/local.lux +++ b/stdlib/source/program/aedifex/local.lux @@ -10,12 +10,12 @@ ["[0]" // ["[1][0]" artifact (.only Version Artifact)]]) -(def: / uri.separator) +(def / uri.separator) -(def: .public repository +(def .public repository URI (format ".m2" / "repository")) -(def: .public (uri version artifact) +(def .public (uri version artifact) (-> Version Artifact URI) (format ..repository / (//artifact.uri version artifact))) diff --git a/stdlib/source/program/aedifex/metadata.lux b/stdlib/source/program/aedifex/metadata.lux index 36e287325..3ba470501 100644 --- a/stdlib/source/program/aedifex/metadata.lux +++ b/stdlib/source/program/aedifex/metadata.lux @@ -11,11 +11,11 @@ ["[0]" // ["[1][0]" artifact (.only Artifact)]]) -(def: remote_file +(def remote_file Path "maven-metadata.xml") -(def: .public (remote_artifact_uri artifact) +(def .public (remote_artifact_uri artifact) (-> Artifact URI) (let [/ uri.separator] (format (//artifact.directory / (the //artifact.#group artifact)) @@ -23,21 +23,21 @@ / (the //artifact.#version artifact) / ..remote_file))) -(def: .public (remote_project_uri artifact) +(def .public (remote_project_uri artifact) (-> Artifact URI) (let [/ uri.separator] (format (//artifact.directory / (the //artifact.#group artifact)) / (the //artifact.#name artifact) / ..remote_file))) -(def: local_file +(def local_file Path "maven-metadata-local.xml") -(def: .public (local_uri remote_uri) +(def .public (local_uri remote_uri) (-> URI URI) (text.replaced_once ..remote_file ..local_file remote_uri)) -(def: .public (remote_uri local_uri) +(def .public (remote_uri local_uri) (-> URI URI) (text.replaced_once ..local_file ..remote_file local_uri)) diff --git a/stdlib/source/program/aedifex/metadata/artifact.lux b/stdlib/source/program/aedifex/metadata/artifact.lux index 0057ce119..01271437e 100644 --- a/stdlib/source/program/aedifex/metadata/artifact.lux +++ b/stdlib/source/program/aedifex/metadata/artifact.lux @@ -45,32 +45,32 @@ #versions (List Version) #last_updated Instant])) -(def: (pad value) +(def (pad value) (-> Nat Text) (if (n.< 10 value) (%.format "0" (%.nat value)) (%.nat value))) -(def: (date_format value) +(def (date_format value) (%.Format Date) (%.format (|> value date.year year.value .nat %.nat) (|> value date.month month.number ..pad) (|> value date.day_of_month ..pad))) -(def: (time_format value) +(def (time_format value) (%.Format Time) (let [(open "[0]") (time.clock value)] (%.format (..pad #hour) (..pad #minute) (..pad #second)))) -(def: (instant_format value) +(def (instant_format value) (%.Format Instant) (%.format (..date_format (instant.date value)) (..time_format (instant.time value)))) (with_template [<definition> <tag>] - [(def: <definition> xml.Tag ["" <tag>])] + [(def <definition> xml.Tag ["" <tag>])] [<group> "groupId"] [<name> "artifactId"] @@ -82,7 +82,7 @@ ) (with_template [<name> <type> <tag> <pre>] - [(def: <name> + [(def <name> (-> <type> XML) (|>> <pre> {xml.#Text} list {xml.#Node <tag> xml.attributes}))] @@ -92,11 +92,11 @@ [last_updated_format Instant ..<last_updated> ..instant_format] ) -(def: versions_format +(def versions_format (-> (List Version) XML) (|>> (list#each ..version_format) {xml.#Node ..<versions> xml.attributes})) -(def: .public (format value) +(def .public (format value) (-> Metadata XML) {xml.#Node ..<metadata> xml.attributes @@ -107,12 +107,12 @@ (list (..versions_format (the #versions value)) (..last_updated_format (the #last_updated value)))})}) -(def: (text tag) +(def (text tag) (-> xml.Tag (Parser Text)) (<| (<xml>.node tag) <xml>.text)) -(def: date_parser +(def date_parser (<text>.Parser Date) (do <>.monad [year (<>.codec n.decimal (<text>.exactly 4 <text>.decimal)) @@ -122,7 +122,7 @@ day_of_month (<>.codec n.decimal (<text>.exactly 2 <text>.decimal))] (<>.lifted (date.date year month day_of_month)))) -(def: time_parser +(def time_parser (<text>.Parser Time) (do <>.monad [hour (<>.codec n.decimal (<text>.exactly 2 <text>.decimal)) @@ -134,7 +134,7 @@ time.#second second time.#milli_second 0])))) -(def: last_updated_parser +(def last_updated_parser (Parser Instant) (<text>.then (do <>.monad [date ..date_parser @@ -142,7 +142,7 @@ (in (instant.of_date_time date time))) (..text ..<last_updated>))) -(def: .public parser +(def .public parser (Parser Metadata) (<| (<xml>.node ..<metadata>) (all <>.and @@ -158,7 +158,7 @@ (<xml>.somewhere ..last_updated_parser) ))))) -(def: .public equivalence +(def .public equivalence (Equivalence Metadata) (all product.equivalence text.equivalence @@ -167,15 +167,15 @@ instant.equivalence )) -(def: .public uri +(def .public uri (-> Artifact URI) //.remote_project_uri) -(def: epoch +(def epoch Instant (instant.of_millis +0)) -(def: .public (read repository artifact) +(def .public (read repository artifact) (-> (Repository Async) Artifact (Async (Try Metadata))) (do async.monad [project (at repository download (..uri artifact))] @@ -195,7 +195,7 @@ ..#versions (list) ..#last_updated ..epoch])})))) -(def: .public (write repository artifact metadata) +(def .public (write repository artifact metadata) (-> (Repository Async) Artifact Metadata (Async (Try Any))) (|> metadata ..format diff --git a/stdlib/source/program/aedifex/metadata/snapshot.lux b/stdlib/source/program/aedifex/metadata/snapshot.lux index 7645b556b..4479fe244 100644 --- a/stdlib/source/program/aedifex/metadata/snapshot.lux +++ b/stdlib/source/program/aedifex/metadata/snapshot.lux @@ -51,7 +51,7 @@ #versioning Versioning])) (with_template [<definition> <tag>] - [(def: <definition> xml.Tag ["" <tag>])] + [(def <definition> xml.Tag ["" <tag>])] [<group> "groupId"] [<name> "artifactId"] @@ -60,7 +60,7 @@ ) (with_template [<name> <type> <tag> <pre>] - [(def: <name> + [(def <name> (-> <type> XML) (|>> <pre> {xml.#Text} list {xml.#Node <tag> xml.attributes}))] @@ -69,7 +69,7 @@ [version_format Version ..<version> (|>)] ) -(def: .public (format (open "/[0]")) +(def .public (format (open "/[0]")) (-> Metadata XML) (let [(open "//[0]") /#artifact] {xml.#Node ..<metadata> @@ -79,12 +79,12 @@ (..version_format //#version) (///artifact/versioning.format /#versioning))})) -(def: (text tag) +(def (text tag) (-> xml.Tag (Parser Text)) (<| (<xml>.node tag) <xml>.text)) -(def: .public parser +(def .public parser (Parser Metadata) (<| (<xml>.node ..<metadata>) (do [! <>.monad] @@ -113,18 +113,18 @@ ///artifact.#version version] #versioning versioning])))) -(def: .public equivalence +(def .public equivalence (Equivalence Metadata) (all product.equivalence ///artifact.equivalence ///artifact/versioning.equivalence )) -(def: .public uri +(def .public uri (-> Artifact URI) //.remote_artifact_uri) -(def: .public (read repository artifact) +(def .public (read repository artifact) (-> (Repository Async) Artifact (Async (Try Metadata))) (do async.monad [project (at repository download (..uri artifact))] @@ -141,7 +141,7 @@ [#artifact artifact #versioning ///artifact/versioning.init]})))) -(def: .public (write repository artifact metadata) +(def .public (write repository artifact metadata) (-> (Repository Async) Artifact Metadata (Async (Try Any))) (|> metadata ..format diff --git a/stdlib/source/program/aedifex/package.lux b/stdlib/source/program/aedifex/package.lux index 3dc430c9c..258a80c2f 100644 --- a/stdlib/source/program/aedifex/package.lux +++ b/stdlib/source/program/aedifex/package.lux @@ -35,7 +35,7 @@ #pom [XML Binary Status]])) (with_template [<name> <tag>] - [(def: .public (<name> package) + [(def .public (<name> package) (-> Package Bit) (case (the #origin package) {<tag> _} @@ -48,7 +48,7 @@ [remote? //origin.#Remote] ) -(def: .public (local pom library) +(def .public (local pom library) (-> XML Binary Package) [#origin {//origin.#Local ""} #library [library @@ -60,7 +60,7 @@ {//status.#Verified (//hash.sha-1 binary_pom) (//hash.md5 binary_pom)}])]) -(def: .public dependencies +(def .public dependencies (-> Package (Try (Set Dependency))) (|>> (the #pom) product.left @@ -68,7 +68,7 @@ (<xml>.result //pom.parser) (try#each (the /.#dependencies)))) -(def: .public repositories +(def .public repositories (-> Package (Try (Set Address))) (|>> (the #pom) product.left @@ -76,7 +76,7 @@ (<xml>.result //pom.parser) (try#each (the /.#repositories)))) -(def: .public equivalence +(def .public equivalence (Equivalence Package) (all product.equivalence //origin.equivalence diff --git a/stdlib/source/program/aedifex/parser.lux b/stdlib/source/program/aedifex/parser.lux index 7fa14fb60..435e0fb79 100644 --- a/stdlib/source/program/aedifex/parser.lux +++ b/stdlib/source/program/aedifex/parser.lux @@ -34,49 +34,49 @@ ["[1][0]" artifact (.only Artifact) ["[1]/[0]" type]]]) -(def: (singular input tag parser) +(def (singular input tag parser) (All (_ a) (-> (Dictionary Text Code) Text (Parser a) (Parser a))) (<code>.locally (maybe.list (dictionary.value tag input)) parser)) -(def: (plural input tag parser) +(def (plural input tag parser) (All (_ a) (-> (Dictionary Text Code) Text (Parser a) (Parser (List a)))) (<code>.locally (maybe.list (dictionary.value tag input)) (<code>.tuple (<>.some parser)))) -(def: group +(def group (Parser //artifact.Group) <code>.text) -(def: name +(def name (Parser //artifact.Name) <code>.text) -(def: version +(def version (Parser //artifact.Version) <code>.text) -(def: artifact' +(def artifact' (Parser //artifact.Artifact) (all <>.and ..group ..name ..version)) -(def: artifact +(def artifact (Parser //artifact.Artifact) (<code>.tuple ..artifact')) -(def: url +(def url (Parser URL) <code>.text) -(def: scm +(def scm (Parser /.SCM) ..url) -(def: description +(def description (Parser Text) <code>.text) -(def: license +(def license (Parser /.License) (do [! <>.monad] [input (at ! each @@ -91,7 +91,7 @@ (<>.or (<code>.this (' "repo")) (<code>.this (' "manual")))))))) -(def: organization +(def organization (Parser /.Organization) (do [! <>.monad] [input (at ! each @@ -102,7 +102,7 @@ (..singular input "name" ..name) (..singular input "url" ..url)))) -(def: developer +(def developer (Parser /.Developer) (do [! <>.monad] [input (at ! each @@ -115,11 +115,11 @@ (<>.maybe (..singular input "organization" ..organization)) ))) -(def: contributor +(def contributor (Parser /.Contributor) ..developer) -(def: info +(def info (Parser /.Info) (do [! <>.monad] [input (at ! each @@ -137,15 +137,15 @@ (<>.else (list) (..plural input "contributors" ..contributor)) ))) -(def: repository +(def repository (Parser //repository.Address) ..url) -(def: type +(def type (Parser //artifact/type.Type) <code>.text) -(def: dependency +(def dependency (Parser //dependency.Dependency) (<code>.tuple (all <>.and @@ -153,7 +153,7 @@ (<>.else //artifact/type.lux_library ..type) ))) -(def: compiler +(def compiler (Parser Compiler) (<code>.tuple (all <>.and @@ -161,29 +161,29 @@ (<>.some <code>.text) ))) -(def: source +(def source (Parser /.Source) <code>.text) -(def: target +(def target (Parser /.Target) <code>.text) -(def: module +(def module (Parser Module) <code>.text) -(def: deploy_repository +(def deploy_repository (Parser [Text //repository.Address]) (<>.and <code>.text ..repository)) -(def: configuration/1 +(def configuration/1 (Parser [Text Text]) (<>.and <code>.text <code>.text)) -(def: runtime +(def runtime (Parser Runtime) (let [environment (<>#each (dictionary.of_list text.hash) (<>.some (<code>.tuple (<>.and <code>.text <code>.text))))] @@ -193,7 +193,7 @@ <code>.text (<>.some <code>.text))))) -(def: profile +(def profile (Parser /.Profile) (do [! <>.monad] [input (at ! each @@ -281,7 +281,7 @@ ^ruby ))) -(def: .public project +(def .public project (Parser Project) (at <>.monad each (dictionary.of_list text.hash) diff --git a/stdlib/source/program/aedifex/pom.lux b/stdlib/source/program/aedifex/pom.lux index 3c966930a..0f5d3b50e 100644 --- a/stdlib/source/program/aedifex/pom.lux +++ b/stdlib/source/program/aedifex/pom.lux @@ -32,93 +32,93 @@ ... https://maven.apache.org/pom.html -(def: project_tag "project") -(def: dependency_tag "dependency") -(def: dependencies_tag "dependencies") -(def: repositories_tag "repositories") -(def: repository_tag "repository") -(def: url_tag "url") -(def: group_tag "groupId") -(def: artifact_tag "artifactId") -(def: version_tag "version") - -(def: .public file +(def project_tag "project") +(def dependency_tag "dependency") +(def dependencies_tag "dependencies") +(def repositories_tag "repositories") +(def repository_tag "repository") +(def url_tag "url") +(def group_tag "groupId") +(def artifact_tag "artifactId") +(def version_tag "version") + +(def .public file file.Path "pom.xml") -(def: version +(def version XML {_.#Node ["" "modelVersion"] _.attributes (list {_.#Text "4.0.0"})}) -(def: (property tag value) +(def (property tag value) (-> Text Text XML) {_.#Node ["" tag] _.attributes (list {_.#Text value})}) -(def: (artifact value) +(def (artifact value) (-> Artifact (List XML)) (list (..property ..group_tag (the //artifact.#group value)) (..property ..artifact_tag (the //artifact.#name value)) (..property ..version_tag (the //artifact.#version value)))) -(def: distribution +(def distribution (-> /.Distribution XML) (|>> (pipe.case {/.#Repo} "repo" {/.#Manual} "manual") (..property "distribution"))) -(def: (license [name url distribution]) +(def (license [name url distribution]) (-> /.License XML) (|> (list (..property "name" name) (..property ..url_tag url) (..distribution distribution)) {_.#Node ["" "license"] _.attributes})) -(def: repository +(def repository (-> Address XML) (|>> (..property ..url_tag) list {_.#Node ["" ..repository_tag] _.attributes})) -(def: (dependency value) +(def (dependency value) (-> Dependency XML) {_.#Node ["" ..dependency_tag] _.attributes (list#composite (..artifact (the //dependency.#artifact value)) (list (..property "type" (the //dependency.#type value))))}) -(def: (group tag) +(def (group tag) (-> Text (-> (List XML) XML)) (|>> {_.#Node ["" tag] _.attributes})) -(def: scm +(def scm (-> /.SCM XML) (|>> (..property ..url_tag) list {_.#Node ["" "scm"] _.attributes})) -(def: (organization [name url]) +(def (organization [name url]) (-> /.Organization XML) (|> (list (..property "name" name) (..property ..url_tag url)) {_.#Node ["" "organization"] _.attributes})) -(def: (developer_organization [name url]) +(def (developer_organization [name url]) (-> /.Organization (List XML)) (list (..property "organization" name) (..property "organizationUrl" url))) -(def: (developer' [name email organization]) +(def (developer' [name email organization]) (-> /.Developer (List XML)) (list.partial (..property "name" name) (..property "email" email) (|> organization (maybe#each ..developer_organization) (maybe.else (list))))) (with_template [<name> <type> <tag>] - [(def: <name> + [(def <name> (-> <type> XML) (|>> ..developer' {_.#Node ["" <tag>] _.attributes}))] @@ -126,7 +126,7 @@ [contributor /.Contributor "contributor"] ) -(def: (info value) +(def (info value) (-> /.Info (List XML)) (all list#composite (|> value (the /.#name) (maybe#each (..property "name")) maybe.list) @@ -139,7 +139,7 @@ (|> value (the /.#contributors) (list#each ..contributor) (..group "contributors") list) )) -(def: .public (write value) +(def .public (write value) (-> /.Profile (Try XML)) (case (the /.#identity value) {.#Some identity} @@ -159,7 +159,7 @@ _ (exception.except /.no_identity []))) -(def: property_parser +(def property_parser (Parser [Tag Text]) (do [! <>.monad] [tag <xml>.tag] @@ -167,7 +167,7 @@ (at ! each (|>> [tag])) <xml>.text))) -(def: (dependency_parser own_version parent_version) +(def (dependency_parser own_version parent_version) (-> Text Text (Parser Dependency)) (do [! <>.monad] [properties (at ! each (dictionary.of_list symbol.hash) @@ -189,33 +189,33 @@ (dictionary.value ["" "type"]) (maybe.else //artifact/type.jvm_library))]))))) -(def: (dependencies_parser own_version parent_version) +(def (dependencies_parser own_version parent_version) (-> Text Text (Parser (List Dependency))) (<| (<xml>.node ["" ..dependencies_tag]) (<>.some (..dependency_parser own_version parent_version)))) -(def: repository_parser +(def repository_parser (Parser Address) (<| (<xml>.node ["" ..repository_tag]) (<xml>.node ["" ..url_tag]) <xml>.text)) -(def: repositories_parser +(def repositories_parser (Parser (List Address)) (<| (<xml>.node ["" ..repositories_tag]) (<>.some ..repository_parser))) -(def: own_version +(def own_version (Parser Text) (<| (<xml>.node ["" ..version_tag]) <xml>.text)) -(def: parent_version +(def parent_version (Parser Text) (<| (<xml>.node ["" "parent"]) ..own_version)) -(def: .public parser +(def .public parser (Parser /.Profile) (do [! <>.monad] [own_version (<>.else "" (<xml>.somewhere ..own_version)) diff --git a/stdlib/source/program/aedifex/profile.lux b/stdlib/source/program/aedifex/profile.lux index 90e5f3d8d..5758a3795 100644 --- a/stdlib/source/program/aedifex/profile.lux +++ b/stdlib/source/program/aedifex/profile.lux @@ -39,7 +39,7 @@ [repository [remote (.only Address)]]]) -(def: .public default_lux +(def .public default_lux Dependency [dependency.#artifact ["com.github.luxlang" "lux-jvm" "0.6.5"] dependency.#type type.jvm_library]) @@ -49,10 +49,10 @@ {#Repo} {#Manual})) -(def: distribution_equivalence +(def distribution_equivalence (Equivalence Distribution) (implementation - (def: (= reference subject) + (def (= reference subject) (case [reference subject] (^.with_template [<tag>] [[{<tag>} {<tag>}] @@ -68,7 +68,7 @@ URL Distribution]) -(def: license_equivalence +(def license_equivalence (Equivalence License) (all product.equivalence text.equivalence @@ -82,7 +82,7 @@ [Text URL]) -(def: organization_equivalence +(def organization_equivalence (Equivalence Organization) (all product.equivalence text.equivalence @@ -96,7 +96,7 @@ Email (Maybe Organization)]) -(def: developer_equivalence +(def developer_equivalence (Equivalence Developer) (all product.equivalence text.equivalence @@ -117,7 +117,7 @@ #developers (List Developer) #contributors (List Contributor)])) -(def: info_equivalence +(def info_equivalence (Equivalence Info) (all product.equivalence (maybe.equivalence text.equivalence) @@ -129,7 +129,7 @@ (list.equivalence ..developer_equivalence) (list.equivalence ..developer_equivalence))) -(def: .public default_info +(def .public default_info Info [#name {.#None} #url {.#None} @@ -143,25 +143,25 @@ (type: .public Source Path) -(def: .public default_source +(def .public default_source Source "source") (type: .public Target Path) -(def: .public default_target +(def .public default_target Target "target") -(def: .public default_repository +(def .public default_repository Address "https://repo1.maven.org/maven2/") (type: .public Name Text) -(def: .public default +(def .public default Name "") @@ -186,7 +186,7 @@ #lua Runtime #ruby Runtime])) -(def: .public equivalence +(def .public equivalence (Equivalence Profile) (all product.equivalence ... #parents @@ -226,10 +226,10 @@ ... #ruby runtime.equivalence)) -(def: .public monoid +(def .public monoid (Monoid Profile) (implementation - (def: identity + (def identity [#parents (list) #identity {.#None} #info {.#None} @@ -249,7 +249,7 @@ #lua runtime.default_lua #ruby runtime.default_ruby]) - (def: (composite override baseline) + (def (composite override baseline) (template.let [(!runtime <tag> <runtime>) [(if (runtime#= <runtime> (the <tag> override)) (the <tag> baseline) diff --git a/stdlib/source/program/aedifex/project.lux b/stdlib/source/program/aedifex/project.lux index 868fb7691..0d1fb6559 100644 --- a/stdlib/source/program/aedifex/project.lux +++ b/stdlib/source/program/aedifex/project.lux @@ -18,27 +18,27 @@ ["[0]" // ["[1]" profile (.only Name Profile)]]) -(def: .public file +(def .public file "project.lux") (type: .public Project (Dictionary Name Profile)) -(def: .public (project name profile) +(def .public (project name profile) (-> Name Profile Project) (dictionary.of_list text.hash (list [name profile]))) -(def: .public equivalence +(def .public equivalence (Equivalence Project) (dictionary.equivalence //.equivalence)) -(def: .public monoid +(def .public monoid (Monoid Project) (implementation - (def: identity + (def identity (dictionary.empty text.hash)) - (def: composite + (def composite (dictionary.composite_with (at //.monoid composite))))) (exception: .public (unknown_profile [name Name]) @@ -51,7 +51,7 @@ "Dependent" (%.text dependent) "Dependee" (%.text dependee))) -(def: (profile' lineage project name) +(def (profile' lineage project name) (-> (Set Name) Project Name (Try Profile)) (case (dictionary.value name project) {.#Some profile} @@ -72,6 +72,6 @@ {.#None} (exception.except ..unknown_profile [name]))) -(def: .public profile +(def .public profile (-> Project Name (Try Profile)) (..profile' (set.empty text.hash))) diff --git a/stdlib/source/program/aedifex/repository.lux b/stdlib/source/program/aedifex/repository.lux index 395eefc20..2b092ad41 100644 --- a/stdlib/source/program/aedifex/repository.lux +++ b/stdlib/source/program/aedifex/repository.lux @@ -24,15 +24,15 @@ (is (-> URI Binary (! (Try Any))) upload))) -(def: .public (async repository) +(def .public (async repository) (-> (Repository IO) (Repository Async)) (implementation - (def: description + (def description (at repository description)) - (def: (download uri) + (def (download uri) (async.future (at repository download uri))) - (def: (upload uri content) + (def (upload uri content) (async.future (at repository upload uri content))) )) @@ -45,14 +45,14 @@ (is (-> URI Binary s (Try s)) on_upload))) -(def: .public (mock mock init) +(def .public (mock mock init) (All (_ s) (-> (Mock s) s (Repository Async))) (let [state (stm.var init)] (implementation - (def: description + (def description (at mock the_description)) - (def: (download uri) + (def (download uri) (stm.commit! (do [! stm.monad] [|state| (stm.read state)] @@ -65,7 +65,7 @@ {try.#Failure error} (in {try.#Failure error}))))) - (def: (upload uri content) + (def (upload uri content) (stm.commit! (do [! stm.monad] [|state| (stm.read state)] diff --git a/stdlib/source/program/aedifex/repository/identity.lux b/stdlib/source/program/aedifex/repository/identity.lux index d6b14b12b..634423e7c 100644 --- a/stdlib/source/program/aedifex/repository/identity.lux +++ b/stdlib/source/program/aedifex/repository/identity.lux @@ -22,7 +22,7 @@ [#user User #password Password])) -(def: .public equivalence +(def .public equivalence (Equivalence Identity) (all product.equivalence text.equivalence @@ -37,7 +37,7 @@ "[1]::[0]" ("static" getEncoder [] java/util/Base64$Encoder)) -(def: .public (basic_auth user password) +(def .public (basic_auth user password) (-> User Password Text) (let [credentials (at utf8.codec encoded (format user ":" password))] (|> (java/util/Base64::getEncoder) diff --git a/stdlib/source/program/aedifex/repository/local.lux b/stdlib/source/program/aedifex/repository/local.lux index 1a7fb0ffd..b491e6d12 100644 --- a/stdlib/source/program/aedifex/repository/local.lux +++ b/stdlib/source/program/aedifex/repository/local.lux @@ -20,35 +20,35 @@ ["[1][0]" local] ["[1][0]" metadata]]]) -(def: .public (root program fs) +(def .public (root program fs) (-> (Program Async) (file.System Async) file.Path) (let [/ (at fs separator)] (|> ///local.repository (text.replaced uri.separator /) (format (at program home) /)))) -(def: (path /) +(def (path /) (-> Text (-> URI file.Path)) (text.replaced uri.separator /)) -(def: (absolute_path program fs) +(def (absolute_path program fs) (-> (Program Async) (file.System Async) (-> URI file.Path)) (let [/ (at fs separator)] (|>> ///metadata.local_uri (..path /) (format (..root program fs) /)))) -(def: .public (repository program fs) +(def .public (repository program fs) (-> (Program Async) (file.System Async) (//.Repository Async)) (implementation - (def: description + (def description (..root program fs)) - (def: download + (def download (|>> (..absolute_path program fs) (at fs read))) - (def: (upload uri content) + (def (upload uri content) (do [! async.monad] [.let [absolute_path (..absolute_path program fs uri)] ? (at fs file? absolute_path) diff --git a/stdlib/source/program/aedifex/repository/origin.lux b/stdlib/source/program/aedifex/repository/origin.lux index c69337877..b8556c4c4 100644 --- a/stdlib/source/program/aedifex/repository/origin.lux +++ b/stdlib/source/program/aedifex/repository/origin.lux @@ -15,7 +15,7 @@ {#Local Path} {#Remote URL})) -(def: .public equivalence +(def .public equivalence (Equivalence Origin) (all sum.equivalence text.equivalence diff --git a/stdlib/source/program/aedifex/repository/remote.lux b/stdlib/source/program/aedifex/repository/remote.lux index cbe1ffd8e..d91047f7c 100644 --- a/stdlib/source/program/aedifex/repository/remote.lux +++ b/stdlib/source/program/aedifex/repository/remote.lux @@ -45,23 +45,23 @@ [upload_failure] ) -(def: .public (uri version_template artifact extension) +(def .public (uri version_template artifact extension) (-> Version Artifact Extension URI) (format (///artifact.uri version_template artifact) extension)) -(def: .public user_agent +(def .public user_agent (format "LuxAedifex/" (version.format meta/version.latest))) -(def: base_headers +(def base_headers (List [Text Text]) (list ["User-Agent" ..user_agent])) -(def: .public (repository http identity address) +(def .public (repository http identity address) (All (_ s) (-> (http.Client IO) (Maybe Identity) Address (//.Repository IO))) (implementation - (def: description + (def description address) - (def: (download uri) + (def (download uri) (do [! (try.with io.monad)] [[status message] (is (IO (Try (@http.Response IO))) (http.get (format address uri) @@ -77,7 +77,7 @@ [_ ((the @http.#body message) {.#Some 0})] (at io.monad in (exception.except ..download_failure [(format address uri) status])))))) - (def: (upload uri content) + (def (upload uri content) (do (try.with io.monad) [[status message] (is (IO (Try (@http.Response IO))) (http.put (format address uri) diff --git a/stdlib/source/program/aedifex/runtime.lux b/stdlib/source/program/aedifex/runtime.lux index 47bcfbb43..401a9fa7c 100644 --- a/stdlib/source/program/aedifex/runtime.lux +++ b/stdlib/source/program/aedifex/runtime.lux @@ -21,7 +21,7 @@ #program Text #parameters (List Text)])) -(def: .public equivalence +(def .public equivalence (Equivalence Runtime) (all product.equivalence (dictionary.equivalence text.equivalence) @@ -30,7 +30,7 @@ )) (with_template [<name> <command> <environment> <parameters>] - [(def: .public <name> + [(def .public <name> Runtime [#environment (dictionary.of_list text.hash (`` (list (~~ (template.spliced <environment>))))) #program <command> @@ -44,7 +44,7 @@ [default_ruby "ruby" [["RUBY_THREAD_VM_STACK_SIZE" "8388608"]] []] ) -(def: .public (for runtime path) +(def .public (for runtime path) (-> Runtime file.Path Runtime) (revised #parameters (function (_ parameters) |