diff --git a/documentation/bookmark/advice.md b/documentation/bookmark/advice.md new file mode 100644 index 0000000000..b1b8225ec2 --- /dev/null +++ b/documentation/bookmark/advice.md @@ -0,0 +1,4 @@ +# Reference + +1. [97 Things Every Programmer Should Know](https://chemaclass.es/readings/97-things-every-programmer-should-know/) + diff --git a/documentation/bookmark/floating_point.md b/documentation/bookmark/floating_point.md index fe22137dc2..bdc3d3bb91 100644 --- a/documentation/bookmark/floating_point.md +++ b/documentation/bookmark/floating_point.md @@ -1,5 +1,6 @@ -# Half-precision +# Precision +1. [Accuracy of Mathematical Functions in Single, Double, Double Extended, and Quadruple Precision](https://members.loria.fr/PZimmermann/papers/accuracy.pdf) 1. [Supporting half-precision floats is really annoying](https://futhark-lang.org/blog/2021-08-05-half-precision-floats.html) # Debugging diff --git a/documentation/bookmark/game_programming.md b/documentation/bookmark/game_programming.md index 3191e7087b..d04e0def15 100644 --- a/documentation/bookmark/game_programming.md +++ b/documentation/bookmark/game_programming.md @@ -96,6 +96,7 @@ # Reference +1. [How to Make an RPG](https://howtomakeanrpg.com/) 1. https://mod.io/ 1. https://www.amazon.com/Game-Engine-Black-Book-Wolfenstein/dp/1539692876 1. http://shaderbits.com/blog/octahedral-impostors/ diff --git a/documentation/bookmark/open_source.md b/documentation/bookmark/open_source.md new file mode 100644 index 0000000000..467a546624 --- /dev/null +++ b/documentation/bookmark/open_source.md @@ -0,0 +1,4 @@ +# Reference + +1. [Why Modern Open Source Projects Fail](https://arxiv.org/abs/1707.02327) + diff --git a/documentation/bookmark/optimization.md b/documentation/bookmark/optimization.md index e9e6f21092..6a773a9293 100644 --- a/documentation/bookmark/optimization.md +++ b/documentation/bookmark/optimization.md @@ -24,6 +24,7 @@ # Reference +1. [CompilerGym: Making compiler optimizations accessible to all](https://ai.facebook.com/blog/compilergym-making-compiler-optimizations-accessible-to-all) 1. [Do Low-level Optimizations Matter?](https://cantrip.org/sortfast.html) 1. [Inline caching](https://bernsteinbear.com/blog/inline-caching/) 1. [Weird and Wonderful Division Tricks](https://saml98.github.io/jekyll/update/2020/02/21/weird-division.htmls) diff --git a/documentation/bookmark/performance.md b/documentation/bookmark/performance.md new file mode 100644 index 0000000000..a5009abf5a --- /dev/null +++ b/documentation/bookmark/performance.md @@ -0,0 +1,4 @@ +# Reference + +1. [CppCon 2019: Chandler Carruth “There Are No Zero-cost Abstractions”](https://www.youtube.com/watch?v=rHIkrotSwcc) + diff --git a/documentation/bookmark/probabilistic_data_structure.md b/documentation/bookmark/probabilistic_data_structure.md index 8e74baea74..3d6c3bf84a 100644 --- a/documentation/bookmark/probabilistic_data_structure.md +++ b/documentation/bookmark/probabilistic_data_structure.md @@ -30,6 +30,8 @@ ## Bloom filter +1. [Word-aligned Bloom filters](https://lemire.me/blog/2021/10/03/word-aligned-bloom-filters/) +1. [Bloom Filters by Example](https://llimllib.github.io/bloomfilter-tutorial/) 1. [Bloom Filters - Much, much more than a space efficient hashmap!](https://boyter.org/posts/bloom-filter/) 1. [Teaching Bloom Filters new tricks](https://toao.com/blog/teaching-bloom-filters-new-tricks) 1. http://www.partow.net/programming/bloomfilter/idx.html diff --git a/documentation/bookmark/rendering.md b/documentation/bookmark/rendering.md index 7933678682..e8fb726586 100644 --- a/documentation/bookmark/rendering.md +++ b/documentation/bookmark/rendering.md @@ -1,5 +1,6 @@ # Ray Tracing +1. [Ray Tracing in One Weekend - The Book Series](https://raytracing.github.io/) 1. [Ray Tracing Gems II Available Today as Free Digital Download](https://developer.nvidia.com/blog/ray-tracing-gems-ii-available-today-as-free-digital-download/) 1. [Ray Tracing Gems II](https://link.springer.com/book/10.1007/978-1-4842-7185-8) diff --git a/documentation/bookmark/security.md b/documentation/bookmark/security.md index 524d1651c4..ba0d282f29 100644 --- a/documentation/bookmark/security.md +++ b/documentation/bookmark/security.md @@ -1,3 +1,7 @@ +# Restraint | Sand-boxing + +1. [JavaScript Restrictor](https://polcak.github.io/jsrestrictor/) + # Memory 1. [Provably Safe Pointers for a Parallel World](https://www.youtube.com/watch?v=ugf58HNd7Rg) diff --git a/documentation/bookmark/tool/text_editor.md b/documentation/bookmark/tool/text_editor.md index a3f7dcbee4..3cd6aea03b 100644 --- a/documentation/bookmark/tool/text_editor.md +++ b/documentation/bookmark/tool/text_editor.md @@ -55,6 +55,7 @@ # Reference +1. [Deft for Emacs](https://jblevins.org/projects/deft/) 1. [Text Editing Hates You Too](https://lord.io/text-editing-hates-you-too/) 1. [Build Your Own Text Editor](https://viewsourcecode.org/snaptoken/kilo/index.html) 1. [On the design of text editors](https://arxiv.org/abs/2008.06030) diff --git a/documentation/bookmark/type_theory/dependent_types.md b/documentation/bookmark/type_theory/dependent.md similarity index 98% rename from documentation/bookmark/type_theory/dependent_types.md rename to documentation/bookmark/type_theory/dependent.md index 2ba13222b1..abdc019426 100644 --- a/documentation/bookmark/type_theory/dependent_types.md +++ b/documentation/bookmark/type_theory/dependent.md @@ -1,5 +1,6 @@ # Exemplar +1. [POMPOM LANGUAGE](https://github.com/caotic123/PomPom-Language) 1. [A simple type-theoretic language: Mini-TT](http://www.cse.chalmers.se/~bengt/papers/GKminiTT.pdf) 1. https://cedille.github.io/ diff --git a/lux-bootstrapper/project.clj b/lux-bootstrapper/project.clj index ba42e7c05c..4fb1b90cd4 100644 --- a/lux-bootstrapper/project.clj +++ b/lux-bootstrapper/project.clj @@ -1,8 +1,8 @@ -(defproject com.github.luxlang/lux-bootstrapper "0.6.0" +(defproject com.github.luxlang/lux-bootstrapper "0.6.2" :min-lein-version "2.1.0" ;; 2.1.0 introduced jar classifiers :description "The JVM (bootstrapping) compiler for the Lux programming language." :url "https://github.com/LuxLang/lux" - :license {:name "Lux License v0.1.1" + :license {:name "Lux License v0.1.2" :url "https://github.com/LuxLang/lux/blob/master/license.txt"} :deploy-repositories [["releases" {:url "https://oss.sonatype.org/service/local/staging/deploy/maven2/" :creds :gpg}] @@ -14,15 +14,18 @@ :dependencies [[org.clojure/clojure "1.6.0"] [org.clojure/core.match "0.2.1"] ;; Prefer when building Lua compiler. - ;; [org.ow2.asm/asm-all "5.0.3"] + ;; [org.ow2.asm/asm "5.0.3"] + ;; [org.ow2.asm/asm-commons "5.0.3"] + ;; [org.ow2.asm/asm-analysis "5.0.3"] + ;; [org.ow2.asm/asm-tree "5.0.3"] + ;; [org.ow2.asm/asm-util "5.0.3"] ;; Prefer when building JS compiler. [org.ow2.asm/asm "7.3.1"] [org.ow2.asm/asm-commons "7.3.1"] [org.ow2.asm/asm-analysis "7.3.1"] [org.ow2.asm/asm-tree "7.3.1"] - [org.ow2.asm/asm-util "7.3.1"] - ] + [org.ow2.asm/asm-util "7.3.1"]] :warn-on-reflection true :repositories [["snapshots" "https://oss.sonatype.org/content/repositories/snapshots/"]] :source-paths ["src"] diff --git a/lux-js/commands.md b/lux-js/commands.md index 6d2b1d54e4..5c6da5e51e 100644 --- a/lux-js/commands.md +++ b/lux-js/commands.md @@ -8,6 +8,11 @@ cd ~/lux/lux-js/ && lein clean && lein lux auto test # Build ``` +cd ~/lux/lux-js/ \ +&& lux clean \ +&& lux with js build \ +&& mv target/program.js lux.js + ## Develop cd ~/lux/lux-js/ \ && lein clean \ @@ -47,6 +52,6 @@ cd ~/lux/stdlib/ \ ``` cd ~/lux/lux-js/ \ -&& mvn install:install-file -Dfile=lux.js -DgroupId=com.github.luxlang -DartifactId=lux-js -Dversion=0.6.0-SNAPSHOT -Dpackaging=js +&& mvn install:install-file -Dfile=lux.js -DgroupId=com.github.luxlang -DartifactId=lux-js -Dversion=0.7.0-SNAPSHOT -Dpackaging=js ``` diff --git a/lux-js/project.clj b/lux-js/project.clj index 35ab4a21cb..280b9fb901 100644 --- a/lux-js/project.clj +++ b/lux-js/project.clj @@ -1,4 +1,4 @@ -(def version "0.6.0") +(def version "0.6.2") (def repo "https://github.com/LuxLang/lux") (def sonatype-releases "https://oss.sonatype.org/service/local/staging/deploy/maven2/") (def sonatype-snapshots "https://oss.sonatype.org/content/repositories/snapshots/") @@ -6,7 +6,7 @@ (defproject com.github.luxlang/lux-js #=(identity version) :description "A JavaScript compiler for Lux." :url ~repo - :license {:name "Lux License v0.1.1" + :license {:name "Lux License v0.1.2" :url ~(str repo "/blob/master/license.txt")} :scm {:name "git" :url ~(str repo ".git")} diff --git a/lux-js/project.lux b/lux-js/project.lux index e9b44e3753..5bd0019e2e 100644 --- a/lux-js/project.lux +++ b/lux-js/project.lux @@ -1,17 +1,28 @@ -{"" - [#identity ["com.github.luxlang" "lux-js" "0.6.0"] - #description "A JavaScript compiler for Lux." +["" + ["identity" ["com.github.luxlang" "lux-js" "0.6.2"] + "info" ["url" "https://github.com/LuxLang/lux" + "scm" "https://github.com/LuxLang/lux.git" + "licenses" [["name" "Lux License v0.1.2" + "url" "https://github.com/LuxLang/lux/blob/master/license.txt" + "type" "repo"]] + "developers" [["name" "Eduardo Julian" + "url" "https://github.com/eduardoejp"]]] + "description" "A JavaScript compiler for Lux." - #deploy_repositories {"snapshots" "https://oss.sonatype.org/content/repositories/snapshots/" - "releases" "https://oss.sonatype.org/service/local/staging/deploy/maven2/"} + "deploy_repositories" {"snapshots" "https://oss.sonatype.org/content/repositories/snapshots/" + "releases" "https://oss.sonatype.org/service/local/staging/deploy/maven2/"} - #repositories ["https://oss.sonatype.org/content/repositories/snapshots/" - "https://oss.sonatype.org/service/local/staging/deploy/maven2/"] + "repositories" ["https://oss.sonatype.org/content/repositories/snapshots/" + "https://oss.sonatype.org/service/local/staging/deploy/maven2/"] - #dependencies [["com.github.luxlang" "stdlib" "0.6.0" "tar"]] + "dependencies" [["com.github.luxlang" "stdlib" "0.6.2" "tar"]] - #program "program"] + "program" "program"] + + "js" + ["compiler" ["com.github.luxlang" "lux-js" "0.6.1" "js"] + "dependencies" [["org.openjdk.nashorn" "nashorn-core" "15.1" "jar"]]] "jvm" - [#compiler ["com.github.luxlang" "lux-jvm" "0.6.0" "jar"] - #dependencies [["org.openjdk.nashorn" "nashorn-core" "15.1" "jar"]]]} + ["compiler" ["com.github.luxlang" "lux-jvm" "0.6.2" "jar"] + "dependencies" [["org.openjdk.nashorn" "nashorn-core" "15.1" "jar"]]]] diff --git a/lux-jvm/commands.md b/lux-jvm/commands.md index 2dd7cb2f55..e9da3e7328 100644 --- a/lux-jvm/commands.md +++ b/lux-jvm/commands.md @@ -40,14 +40,14 @@ cd ~/lux/stdlib/ \ ``` cd ~/lux/lux-jvm/ \ -&& mvn install:install-file -Dfile=target/program.jar -DgroupId=com.github.luxlang -DartifactId=lux-jvm -Dversion=0.6.0-SNAPSHOT -Dpackaging=jar +&& mvn install:install-file -Dfile=target/program.jar -DgroupId=com.github.luxlang -DartifactId=lux-jvm -Dversion=0.6.1-SNAPSHOT -Dpackaging=jar cd ~/lux/lux-jvm/ && mvn deploy:deploy-file \ -Durl=https://:@oss.sonatype.org/content/repositories/snapshots/ \ -Dfile=target/program.jar \ -DgroupId=com.github.luxlang \ -DartifactId=lux-jvm \ --Dversion=0.6.0-SNAPSHOT \ +-Dversion=0.6.1-SNAPSHOT \ -Dpackaging=jar ``` diff --git a/lux-jvm/project.clj b/lux-jvm/project.clj index f6bc06844b..e60892f36a 100644 --- a/lux-jvm/project.clj +++ b/lux-jvm/project.clj @@ -1,4 +1,4 @@ -(def version "0.6.0") +(def version "0.6.2") (def repo "https://github.com/LuxLang/lux") (def sonatype "https://oss.sonatype.org") (def sonatype-releases (str sonatype "/service/local/staging/deploy/maven2/")) @@ -7,7 +7,7 @@ (defproject com.github.luxlang/lux-jvm #=(identity version) :description "A JVM compiler for Lux." :url ~repo - :license {:name "Lux License v0.1.1" + :license {:name "Lux License v0.1.2" :url ~(str repo "/blob/master/license.txt")} :plugins [[com.github.luxlang/lein-luxc ~version]] :deploy-repositories [["releases" {:url ~sonatype-releases :creds :gpg}] @@ -22,7 +22,11 @@ :dependencies [[com.github.luxlang/lux-bootstrapper ~version] ;; [com.github.luxlang/stdlib ~version] ;; JVM Bytecode (TODO: Remove ASAP) - [org.ow2.asm/asm-all "5.0.3"]] + [org.ow2.asm/asm "7.3.1"] + [org.ow2.asm/asm-commons "7.3.1"] + [org.ow2.asm/asm-analysis "7.3.1"] + [org.ow2.asm/asm-tree "7.3.1"] + [org.ow2.asm/asm-util "7.3.1"]] :manifest {"lux" ~version} :source-paths ["source"] diff --git a/lux-lein/project.clj b/lux-lein/project.clj index 3fc049c64d..ef6c1a7f4b 100644 --- a/lux-lein/project.clj +++ b/lux-lein/project.clj @@ -1,7 +1,7 @@ -(defproject com.github.luxlang/lein-luxc "0.6.0" +(defproject com.github.luxlang/lein-luxc "0.6.2" :description "The Leiningen plugin for the Lux programming language." :url "https://github.com/LuxLang/lein-luxc" - :license {:name "Lux License v0.1.1" + :license {:name "Lux License v0.1.2" :url "https://github.com/LuxLang/lux/blob/master/license.txt"} :dependencies [[org.clojure/clojure "1.6.0"]] :deploy-repositories [["releases" {:url "https://oss.sonatype.org/service/local/staging/deploy/maven2/" diff --git a/lux-lua/project.clj b/lux-lua/project.clj index e6848ccb1b..73d84ef7a8 100644 --- a/lux-lua/project.clj +++ b/lux-lua/project.clj @@ -1,4 +1,4 @@ -(def version "0.6.0") +(def version "0.6.2") (def repo "https://github.com/LuxLang/lux") (def sonatype-releases "https://oss.sonatype.org/service/local/staging/deploy/maven2/") (def sonatype-snapshots "https://oss.sonatype.org/content/repositories/snapshots/") @@ -6,7 +6,7 @@ (defproject com.github.luxlang/lux-lua #=(identity version) :description "A Lua compiler for Lux." :url ~repo - :license {:name "Lux License v0.1.1" + :license {:name "Lux License v0.1.2" :url ~(str repo "/blob/master/license.txt")} :scm {:name "git" :url ~(str repo ".git")} diff --git a/lux-lua/project.lux b/lux-lua/project.lux index e03946c59a..df20f4029f 100644 --- a/lux-lua/project.lux +++ b/lux-lua/project.lux @@ -1,5 +1,5 @@ {"" - [#identity ["com.github.luxlang" "lux-lua" "0.6.0"] + [#identity ["com.github.luxlang" "lux-lua" "0.6.2"] #deploy_repositories {"snapshots" "https://oss.sonatype.org/content/repositories/snapshots/" "releases" "https://oss.sonatype.org/service/local/staging/deploy/maven2/"} @@ -7,8 +7,8 @@ #repositories ["https://oss.sonatype.org/content/repositories/snapshots/" "https://oss.sonatype.org/service/local/staging/deploy/maven2/"] - #compiler ["com.github.luxlang" "lux-jvm" "0.6.0" "jar"] - #dependencies [["com.github.luxlang" "stdlib" "0.6.0" "tar"] + #compiler ["com.github.luxlang" "lux-jvm" "0.6.2" "jar"] + #dependencies [["com.github.luxlang" "stdlib" "0.6.2" "tar"] ["net.sandius.rembulan" "rembulan-runtime" "0.1-SNAPSHOT" "jar"] ["net.sandius.rembulan" "rembulan-stdlib" "0.1-SNAPSHOT" "jar"] ["net.sandius.rembulan" "rembulan-compiler" "0.1-SNAPSHOT" "jar"]] diff --git a/lux-python/commands.md b/lux-python/commands.md index f33ea9f3fa..177c1ec3c4 100644 --- a/lux-python/commands.md +++ b/lux-python/commands.md @@ -12,12 +12,6 @@ cd ~/lux/lux-python/ && lein clean && lein lux auto test cd ~/lux/lux-python/ \ && lux clean \ && lux auto build - -## Build JVM-based compiler -cd ~/lux/lux-python/ \ -&& lux clean \ -&& lux build \ -&& mv target/program.jar jvm_based_compiler.jar ``` # Try @@ -25,7 +19,7 @@ cd ~/lux/lux-python/ \ ``` ## Compile Lux's Standard Library's tests using a JVM-based compiler. cd ~/lux/stdlib/ \ -&& lein clean \ +&& lux clean \ && java -jar ~/lux/lux-python/target/program.jar build --source ~/lux/stdlib/source --target ~/lux/stdlib/target --module test/lux \ && python3 ~/lux/stdlib/target/program.py ``` @@ -34,6 +28,6 @@ cd ~/lux/stdlib/ \ ``` cd ~/lux/lux-python/ \ -&& mvn install:install-file -Dfile=target/program.jar -DgroupId=com.github.luxlang -DartifactId=lux-python -Dversion=0.6.0-SNAPSHOT -Dpackaging=jar +&& mvn install:install-file -Dfile=target/program.jar -DgroupId=com.github.luxlang -DartifactId=lux-python -Dversion=0.7.0-SNAPSHOT -Dpackaging=jar ``` diff --git a/lux-python/project.clj b/lux-python/project.clj index 3367a28193..e174ca27d7 100644 --- a/lux-python/project.clj +++ b/lux-python/project.clj @@ -1,4 +1,4 @@ -(def version "0.6.0") +(def version "0.6.2") (def repo "https://github.com/LuxLang/lux") (def sonatype-releases "https://oss.sonatype.org/service/local/staging/deploy/maven2/") (def sonatype-snapshots "https://oss.sonatype.org/content/repositories/snapshots/") @@ -6,7 +6,7 @@ (defproject com.github.luxlang/lux-python #=(identity version) :description "A Python compiler for Lux." :url ~repo - :license {:name "Lux License v0.1.1" + :license {:name "Lux License v0.1.2" :url ~(str repo "/blob/master/license.txt")} :scm {:name "git" :url ~(str repo ".git")} diff --git a/lux-python/project.lux b/lux-python/project.lux index 4c0b4dfa46..9a3b08fa9f 100644 --- a/lux-python/project.lux +++ b/lux-python/project.lux @@ -1,5 +1,13 @@ ["" - ["identity" ["com.github.luxlang" "lux-python" "0.6.0"] + ["identity" ["com.github.luxlang" "lux-python" "0.6.2"] + "description" "A Python compiler for Lux." + "info" ["url" "https://github.com/LuxLang/lux" + "scm" "https://github.com/LuxLang/lux.git" + "licenses" [["name" "Lux License v0.1.2" + "url" "https://github.com/LuxLang/lux/blob/master/license.txt" + "type" "repo"]] + "developers" [["name" "Eduardo Julian" + "url" "https://github.com/eduardoejp"]]] "deploy_repositories" ["snapshots" "https://oss.sonatype.org/content/repositories/snapshots/" "releases" "https://oss.sonatype.org/service/local/staging/deploy/maven2/"] @@ -7,8 +15,8 @@ "repositories" ["https://oss.sonatype.org/content/repositories/snapshots/" "https://oss.sonatype.org/service/local/staging/deploy/maven2/"] - "compiler" ["com.github.luxlang" "lux-jvm" "0.6.0" "jar"] - "dependencies" [["com.github.luxlang" "stdlib" "0.6.0" "tar"] + "compiler" ["com.github.luxlang" "lux-jvm" "0.6.2" "jar"] + "dependencies" [["com.github.luxlang" "stdlib" "0.6.2" "tar"] ["org.python" "jython-standalone" "2.7.2" "jar"]] "program" "program"]] diff --git a/lux-ruby/commands.md b/lux-ruby/commands.md index 2b2be3a06e..f5439ea642 100644 --- a/lux-ruby/commands.md +++ b/lux-ruby/commands.md @@ -34,6 +34,6 @@ cd ~/lux/stdlib/ \ ``` cd ~/lux/lux-ruby/ \ -&& mvn install:install-file -Dfile=target/program.jar -DgroupId=com.github.luxlang -DartifactId=lux-ruby -Dversion=0.6.0-SNAPSHOT -Dpackaging=jar +&& mvn install:install-file -Dfile=target/program.jar -DgroupId=com.github.luxlang -DartifactId=lux-ruby -Dversion=0.7.0-SNAPSHOT -Dpackaging=jar ``` diff --git a/lux-ruby/project.clj b/lux-ruby/project.clj index f689a8c336..80ddde6d3d 100644 --- a/lux-ruby/project.clj +++ b/lux-ruby/project.clj @@ -1,4 +1,4 @@ -(def version "0.6.0") +(def version "0.6.2") (def repo "https://github.com/LuxLang/lux") (def sonatype-releases "https://oss.sonatype.org/service/local/staging/deploy/maven2/") (def sonatype-snapshots "https://oss.sonatype.org/content/repositories/snapshots/") @@ -6,7 +6,7 @@ (defproject com.github.luxlang/lux-ruby #=(identity version) :description "A Ruby compiler for Lux." :url ~repo - :license {:name "Lux License v0.1.1" + :license {:name "Lux License v0.1.2" :url ~(str repo "/blob/master/license.txt")} :scm {:name "git" :url ~(str repo ".git")} diff --git a/lux-ruby/project.lux b/lux-ruby/project.lux index ab142f3c4e..a7b17ec98f 100644 --- a/lux-ruby/project.lux +++ b/lux-ruby/project.lux @@ -1,15 +1,22 @@ -{"" - [#identity ["com.github.luxlang" "lux-ruby" "0.6.0"] - #description "A Ruby compiler for Lux." +["" + ["identity" ["com.github.luxlang" "lux-ruby" "0.6.2"] + "description" "A Ruby compiler for Lux." + "info" ["url" "https://github.com/LuxLang/lux" + "scm" "https://github.com/LuxLang/lux.git" + "licenses" [["name" "Lux License v0.1.2" + "url" "https://github.com/LuxLang/lux/blob/master/license.txt" + "type" "repo"]] + "developers" [["name" "Eduardo Julian" + "url" "https://github.com/eduardoejp"]]] - #deploy_repositories {"snapshots" "https://oss.sonatype.org/content/repositories/snapshots/" - "releases" "https://oss.sonatype.org/service/local/staging/deploy/maven2/"} + "deploy_repositories" {"snapshots" "https://oss.sonatype.org/content/repositories/snapshots/" + "releases" "https://oss.sonatype.org/service/local/staging/deploy/maven2/"} - #repositories ["https://oss.sonatype.org/content/repositories/snapshots/" - "https://oss.sonatype.org/service/local/staging/deploy/maven2/"] + "repositories" ["https://oss.sonatype.org/content/repositories/snapshots/" + "https://oss.sonatype.org/service/local/staging/deploy/maven2/"] - #compiler ["com.github.luxlang" "lux-jvm" "0.6.0" "jar"] - #dependencies [["com.github.luxlang" "stdlib" "0.6.0" "tar"] - ["org.jruby" "jruby-complete" "9.2.15.0" "jar"]] + "compiler" ["com.github.luxlang" "lux-jvm" "0.6.2" "jar"] + "dependencies" [["com.github.luxlang" "stdlib" "0.6.2" "tar"] + ["org.jruby" "jruby-complete" "9.2.15.0" "jar"]] - #program "program"]} + "program" "program"]] diff --git a/stdlib/commands.md b/stdlib/commands.md index a2329b8f0e..27d476e1b9 100644 --- a/stdlib/commands.md +++ b/stdlib/commands.md @@ -100,6 +100,11 @@ cd ~/lux/stdlib/ \ && lein clean \ && lein with-profile aedifex lux auto build +cd ~/lux/stdlib/ \ +&& lein clean \ +&& lein with-profile aedifex lux build \ +&& mv target/program.jar aedifex.jar + cd ~/lux/stdlib/ \ && lux clean \ && lux with jvm with aedifex auto build diff --git a/stdlib/project.clj b/stdlib/project.clj index 64cb8d3b7a..9cc874af8c 100644 --- a/stdlib/project.clj +++ b/stdlib/project.clj @@ -1,4 +1,4 @@ -(def version "0.6.0") +(def version "0.6.2") (def repo "https://github.com/LuxLang/lux") (def sonatype-releases "https://oss.sonatype.org/service/local/staging/deploy/maven2/") (def sonatype-snapshots "https://oss.sonatype.org/content/repositories/snapshots/") @@ -7,7 +7,7 @@ :description "Standard library for the Lux programming language." :url ~repo - :license {:name "Lux License v0.1.1" + :license {:name "Lux License v0.1.2" :url ~(str repo "/blob/master/license.txt")} :plugins [[com.github.luxlang/lein-luxc ~version]] :deploy-repositories [["releases" {:url ~sonatype-releases :creds :gpg}] diff --git a/stdlib/project.lux b/stdlib/project.lux index a5a2df7d79..496763b009 100644 --- a/stdlib/project.lux +++ b/stdlib/project.lux @@ -2,12 +2,12 @@ [... An optional identity for the project. ... It can also be specified or overriden in a non-default profile. ... This will be the name given to the project when installed/deployed as a dependency. - "identity" ["com.github.luxlang" "stdlib" "0.6.0"] + "identity" ["com.github.luxlang" "stdlib" "0.6.2"] ... Every piece of information, and the whole "info" bundle, are optional. "info" ["url" "https://github.com/LuxLang/lux" "scm" "https://github.com/LuxLang/lux.git" - "licenses" [["name" "Lux License v0.1.1" + "licenses" [["name" "Lux License v0.1.2" "url" "https://github.com/LuxLang/lux/blob/master/license.txt" "type" "repo"]] ... "organization" [["name" "Lux Foundation" @@ -41,36 +41,36 @@ ... The following are alternative profiles to use in various situations. "jvm" [... "compiler" specifies the dependency to fetch and use as the compiler. - "compiler" ["com.github.luxlang" "lux-jvm" "0.6.0" "jar"] + "compiler" ["com.github.luxlang" "lux-jvm" "0.6.2" "jar"] ... "dependencies" is an optional list of dependencies to fetch. ... The dependencies have the same shape as when specifying the compiler. ... When omitting the packaging format of the dependency, "tar" will be assumed. ... "dependencies" [["org.ow2.asm" "asm-all" "5.0.3" "jar"] - ... ["com.github.luxlang" "stdlib" "0.6.0"]] + ... ["com.github.luxlang" "stdlib" "0.6.2"]] ... The OS command to use when running JVM tests. The default is described below. ... "java" ["java" "-jar"] ] "js" - ["compiler" ["com.github.luxlang" "lux-js" "0.6.0" "js"] + ["compiler" ["com.github.luxlang" "lux-js" "0.6.2" "js"] ... The OS command to use when running JS tests. The default is described below. ... "js" ["node" "--stack_size=8192"] ] "python" - ["compiler" ["com.github.luxlang" "lux-python" "0.6.0" "jar"] + ["compiler" ["com.github.luxlang" "lux-python" "0.6.2" "jar"] ... The OS command to use when running Python tests. The default is described below. ... "python" ["python3"] ] "lua" - ["compiler" ["com.github.luxlang" "lux-lua" "0.6.0" "jar"] + ["compiler" ["com.github.luxlang" "lux-lua" "0.6.2" "jar"] ... The OS command to use when running Lua tests. The default is described below. ... "lua" ["lua"] ] "ruby" - ["compiler" ["com.github.luxlang" "lux-ruby" "0.6.0" "jar"] + ["compiler" ["com.github.luxlang" "lux-ruby" "0.6.2" "jar"] ... The OS command to use when running Ruby tests. The default is described below. ... "ruby" ["ruby"] ] diff --git a/stdlib/source/library/lux/tool/compiler/language/lux/version.lux b/stdlib/source/library/lux/tool/compiler/language/lux/version.lux index de36f2803a..733188447d 100644 --- a/stdlib/source/library/lux/tool/compiler/language/lux/version.lux +++ b/stdlib/source/library/lux/tool/compiler/language/lux/version.lux @@ -6,4 +6,4 @@ (def: .public version Version - 00,06,00) + 00,06,02) diff --git a/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux b/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux index fc1642ba26..9d1fca9af5 100644 --- a/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux +++ b/stdlib/source/library/lux/tool/compiler/meta/packager/jvm.lux @@ -222,8 +222,10 @@ (let [entry_path (java/util/zip/ZipEntry::getName entry) entry_size (java/util/zip/ZipEntry::getSize entry)] (if (not (or (java/util/zip/ZipEntry::isDirectory entry) - (text.starts_with? "META-INF/maven/" entry_path) - (text.starts_with? "META-INF/leiningen/" entry_path))) + (or (text.starts_with? "META-INF/maven/" entry_path) + (text.starts_with? "META-INF/leiningen/" entry_path)) + (or (text.ends_with? ".SF" entry_path) + (text.ends_with? ".DSA" entry_path)))) (case (java/util/jar/JarOutputStream::putNextEntry (java/util/jar/JarEntry::new entry_path) sink) {try.#Failure error} (again entries diff --git a/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux b/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux index 9ce004ab5d..f01c015228 100644 --- a/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux +++ b/stdlib/source/program/aedifex/artifact/snapshot/version/value.lux @@ -29,16 +29,16 @@ (def: .public snapshot "SNAPSHOT") -(def: .public (format (^open "[0]")) +(def: .public (format (^open "/[0]")) (%.Format Value) - (case snapshot + (case /#snapshot {///.#Local} - version + /#version {///.#Remote stamp} - (let [(^open "[0]") stamp] + (let [(^open "/[0]") stamp] (%.format (text.replaced ..snapshot - (///time.format time) - version) + (///time.format /#time) + /#version) ..separator - (%.nat build))))) + (%.nat /#build))))) diff --git a/stdlib/source/program/aedifex/command/build.lux b/stdlib/source/program/aedifex/command/build.lux index 8ad4c15f69..9fbc345420 100644 --- a/stdlib/source/program/aedifex/command/build.lux +++ b/stdlib/source/program/aedifex/command/build.lux @@ -1,46 +1,46 @@ (.using - [library - [lux "+" - ["[0]" ffi {"+" import:}] - [abstract - [order {"+" Order}] - [monad {"+" do}]] - [control - ["[0]" try {"+" Try}] - ["[0]" exception {"+" exception:}] - ["[0]" io {"+" IO}] - [concurrency - ["[0]" async {"+" Async} ("[1]#[0]" monad)]]] - [data - ["[0]" product] - ["[0]" text ("[1]#[0]" order) - ["%" format {"+" format}]] - [collection - ["[0]" list ("[1]#[0]" functor mix)] - ["[0]" dictionary {"+" Dictionary}] - ["[0]" set]]] - [math - [number - ["n" nat] - ["i" int]]] - [world - ["[0]" program {"+" Program}] - ["[0]" file {"+" Path}] - ["[0]" shell {"+" Exit Process Shell}] - ["[0]" console {"+" Console}] - [net - ["[0]" uri]]]]] - ["[0]" /// "_" - ["[1]" profile] - ["[1][0]" action] - ["[1][0]" command {"+" Command}] - ["[1][0]" local] - ["[1][0]" repository] - ["[1][0]" runtime] - ["[1][0]" dependency {"+" Dependency} - ["[1]/[0]" resolution {"+" Resolution}]] - ["[1][0]" artifact {"+" Group Name Version Artifact} - ["[1]/[0]" type]]]) + [library + [lux "*" + ["[0]" ffi {"+" import:}] + [abstract + [order {"+" Order}] + [monad {"+" do}]] + [control + ["[0]" try {"+" Try}] + ["[0]" exception {"+" exception:}] + ["[0]" io {"+" IO}] + [concurrency + ["[0]" async {"+" Async} ("[1]#[0]" monad)]]] + [data + ["[0]" product] + ["[0]" text ("[1]#[0]" order) + ["%" format {"+" format}]] + [collection + ["[0]" list ("[1]#[0]" functor mix)] + ["[0]" dictionary {"+" Dictionary}] + ["[0]" set]]] + [math + [number + ["n" nat] + ["i" int]]] + [world + ["[0]" program {"+" Program}] + ["[0]" file {"+" Path}] + ["[0]" shell {"+" Exit Process Shell}] + ["[0]" console {"+" Console}] + [net + ["[0]" uri]]]]] + ["[0]" /// "_" + ["[1]" profile] + ["[1][0]" action] + ["[1][0]" command {"+" Command}] + ["[1][0]" local] + ["[1][0]" repository] + ["[1][0]" runtime] + ["[1][0]" dependency {"+" Dependency} + ["[1]/[0]" resolution {"+" Resolution}]] + ["[1][0]" artifact {"+" Group Name Version Artifact} + ["[1]/[0]" type]]]) (type: Finder (-> Resolution (Maybe Dependency))) @@ -222,7 +222,7 @@ read!))] [log_output! read] - [log_error! error] + [log_error! fail] ) (import: java/lang/System diff --git a/stdlib/source/program/aedifex/command/deps.lux b/stdlib/source/program/aedifex/command/deps.lux index a8602cd3f0..4e32a73b1b 100644 --- a/stdlib/source/program/aedifex/command/deps.lux +++ b/stdlib/source/program/aedifex/command/deps.lux @@ -1,35 +1,35 @@ (.using - [library - [lux "*" - [abstract - [monad {"+" do}]] - [control - ["[0]" exception] - [concurrency - ["[0]" async {"+" Async}]]] - [data - [collection - ["[0]" set {"+" Set}] - ["[0]" list ("[1]#[0]" mix)] - ["[0]" dictionary]] - [text - ["%" format]]] - [world - [net {"+" URL}] - [program {"+" Program}] - ["[0]" file] - ["[0]" console {"+" Console}]]]] - ["[0]" // "_" - ["[1][0]" clean] - ["/[1]" // "_" - [command {"+" Command}] - [repository {"+" Repository}] - ["[1]" profile] - ["[1][0]" action {"+" Action}] - ["[1][0]" artifact {"+" Artifact}] - ["[1][0]" dependency {"+" Dependency} - ["[1]/[0]" resolution {"+" Resolution}] - ["[1]/[0]" deployment]]]]) + [library + [lux "*" + [abstract + [monad {"+" do}]] + [control + ["[0]" exception] + [concurrency + ["[0]" async {"+" Async}]]] + [data + [collection + ["[0]" set {"+" Set}] + ["[0]" list ("[1]#[0]" mix)] + ["[0]" dictionary]] + [text + ["%" format]]] + [world + [net {"+" URL}] + [program {"+" Program}] + ["[0]" file] + ["[0]" console {"+" Console}]]]] + ["[0]" // "_" + ["[1][0]" clean] + ["/[1]" // "_" + [command {"+" Command}] + [repository {"+" Repository}] + ["[1]" profile] + ["[1][0]" action {"+" Action}] + ["[1][0]" artifact {"+" Artifact}] + ["[1][0]" dependency {"+" Dependency} + ["[1]/[0]" resolution {"+" Resolution}] + ["[1]/[0]" deployment]]]]) (def: format (%.Format Dependency) diff --git a/stdlib/source/program/aedifex/dependency/deployment.lux b/stdlib/source/program/aedifex/dependency/deployment.lux index 318475c26e..7098505d42 100644 --- a/stdlib/source/program/aedifex/dependency/deployment.lux +++ b/stdlib/source/program/aedifex/dependency/deployment.lux @@ -1,44 +1,44 @@ (.using - [library - [lux "*" - [abstract - [codec {"+" Codec}] - ["[0]" monad {"+" do}]] - [control - ["[0]" try {"+" Try}] - [concurrency - ["[0]" async {"+" Async}]]] - [data - [binary {"+" Binary}] - ["[0]" product] - [text - ["%" format {"+" format}] - [encoding - ["[0]" utf8]]] - [collection - ["[0]" dictionary] - ["[0]" set {"+" Set}] - ["[0]" list ("[1]#[0]" monoid)]]] - [time - ["[0]" instant {"+" Instant}]]]] - ["[0]" /// "_" - [repository {"+" Repository}] - ["[1][0]" hash {"+" Hash}] - ["[1][0]" package {"+" Package}] - ["[1][0]" artifact {"+" Artifact} - ["[1]/[0]" time] - ["[1]/[0]" type] - ["[1]/[0]" extension {"+" Extension}] - ["[1]/[0]" versioning] - ["[1]/[0]" snapshot - ["[1]/[0]" version - ["[1]/[0]" value]]]] - ["[1][0]" metadata "_" - ["[1]/[0]" artifact] - ["[1]/[0]" snapshot {"+" Metadata}]] - ["[1][0]" dependency {"+" Dependency} - [resolution {"+" Resolution}] - ["[1]/[0]" status {"+" Status}]]]) + [library + [lux "*" + [abstract + [codec {"+" Codec}] + ["[0]" monad {"+" do}]] + [control + ["[0]" try {"+" Try}] + [concurrency + ["[0]" async {"+" Async}]]] + [data + [binary {"+" Binary}] + ["[0]" product] + [text + ["%" format {"+" format}] + [encoding + ["[0]" utf8]]] + [collection + ["[0]" dictionary] + ["[0]" set {"+" Set}] + ["[0]" list ("[1]#[0]" monoid)]]] + [time + ["[0]" instant {"+" Instant}]]]] + ["[0]" /// "_" + [repository {"+" Repository}] + ["[1][0]" hash {"+" Hash}] + ["[1][0]" package {"+" Package}] + ["[1][0]" artifact {"+" Artifact} + ["[1]/[0]" time] + ["[1]/[0]" type] + ["[1]/[0]" extension {"+" Extension}] + ["[1]/[0]" versioning] + ["[1]/[0]" snapshot + ["[1]/[0]" version + ["[1]/[0]" value]]]] + ["[1][0]" metadata "_" + ["[1]/[0]" artifact] + ["[1]/[0]" snapshot {"+" Metadata}]] + ["[1][0]" dependency {"+" Dependency} + [resolution {"+" Resolution}] + ["[1]/[0]" status {"+" Status}]]]) (def: (with_status repository version_template [artifact type] [data status]) (-> (Repository Async) ///artifact.Version Dependency [Binary Status] (Async (Try Any))) diff --git a/stdlib/source/program/aedifex/dependency/resolution.lux b/stdlib/source/program/aedifex/dependency/resolution.lux index 4b0aee23d7..ffea5d458e 100644 --- a/stdlib/source/program/aedifex/dependency/resolution.lux +++ b/stdlib/source/program/aedifex/dependency/resolution.lux @@ -1,63 +1,62 @@ (.using - [library - [lux "*" - ["@" target] - ["[0]" debug] - ["[0]" ffi {"+" import:}] - [abstract - [codec {"+" Codec}] - [equivalence {"+" Equivalence}] - [monad {"+" do}] - ["[0]" predicate {"+" Predicate}]] - [control - ["[0]" maybe] - ["[0]" try {"+" Try} ("[1]#[0]" functor)] - ["[0]" exception {"+" Exception exception:}] - ["<>" parser - ["<[0]>" xml {"+" Parser}]] - [concurrency - ["[0]" async {"+" Async}]]] - [data - ["[0]" binary {"+" Binary}] - ["[0]" name] - ["[0]" text - ["%" format {"+" format}] - [encoding - ["[0]" utf8]]] - [format - ["[0]" xml {"+" Tag XML}]] - [collection - ["[0]" dictionary {"+" Dictionary}] - ["[0]" set] - ["[0]" list ("[1]#[0]" functor monoid)]]] - [math - [number - ["n" nat] - ["[0]" i64]]] - [world - [console {"+" Console}] - [net {"+" URL} - ["[0]" uri] - ["[0]" http "_" - ["[1]" client]]]]]] - ["[0]" // {"+" Dependency} - ["[1][0]" status {"+" Status}] - ["/[1]" // "_" - ["/" profile] - ["[1][0]" hash {"+" Hash SHA-1 MD5}] - ["[1][0]" pom] - ["[1][0]" package {"+" Package}] - ["[1][0]" artifact {"+" Version Artifact} - ["[1]/[0]" extension {"+" Extension}] - ["[1]/[0]" versioning] - ["[0]" snapshot - [version - ["[0]" value]]]] - ["[1][0]" repository {"+" Repository} - ["[1]/[0]" remote {"+" Address}] - ["[1]/[0]" origin {"+" Origin}]] - ["[1][0]" metadata - ["[1]/[0]" snapshot]]]]) + [library + [lux "*" + ["@" target] + ["[0]" debug] + ["[0]" ffi {"+" import:}] + [abstract + [codec {"+" Codec}] + [equivalence {"+" Equivalence}] + [monad {"+" do}] + ["[0]" predicate {"+" Predicate}]] + [control + ["[0]" maybe] + ["[0]" try {"+" Try} ("[1]#[0]" functor)] + ["[0]" exception {"+" Exception exception:}] + ["<>" parser + ["<[0]>" xml {"+" Parser}]] + [concurrency + ["[0]" async {"+" Async}]]] + [data + ["[0]" binary {"+" Binary}] + ["[0]" text + ["%" format {"+" format}] + [encoding + ["[0]" utf8]]] + [format + ["[0]" xml {"+" Tag XML}]] + [collection + ["[0]" dictionary {"+" Dictionary}] + ["[0]" set] + ["[0]" list ("[1]#[0]" functor monoid)]]] + [math + [number + ["n" nat] + ["[0]" i64]]] + [world + [console {"+" Console}] + [net {"+" URL} + ["[0]" uri] + ["[0]" http "_" + ["[1]" client]]]]]] + ["[0]" // {"+" Dependency} + ["[1][0]" status {"+" Status}] + ["/[1]" // "_" + ["/" profile] + ["[1][0]" hash {"+" Hash SHA-1 MD5}] + ["[1][0]" pom] + ["[1][0]" package {"+" Package}] + ["[1][0]" artifact {"+" Version Artifact} + ["[1]/[0]" extension {"+" Extension}] + ["[1]/[0]" versioning] + ["[0]" snapshot + [version + ["[0]" value]]]] + ["[1][0]" repository {"+" Repository} + ["[1]/[0]" remote {"+" Address}] + ["[1]/[0]" origin {"+" Origin}]] + ["[1][0]" metadata + ["[1]/[0]" snapshot]]]]) (template [] [(exception: .public ( [artifact Artifact diff --git a/stdlib/source/program/aedifex/metadata/artifact.lux b/stdlib/source/program/aedifex/metadata/artifact.lux index cebd4a826f..27448f1549 100644 --- a/stdlib/source/program/aedifex/metadata/artifact.lux +++ b/stdlib/source/program/aedifex/metadata/artifact.lux @@ -1,42 +1,42 @@ (.using - [library - [lux "*" - [abstract - [monad {"+" do}] - [equivalence {"+" Equivalence}]] - [control - [pipe {"+" do>}] - ["[0]" try {"+" Try}] - ["<>" parser - ["<[0]>" xml {"+" Parser}] - ["<[0]>" text]] - [concurrency - ["[0]" async {"+" Async}]]] - [data - ["[0]" product] - ["[0]" text - ["%" format] - [encoding - ["[0]" utf8]]] - [format - ["[0]" xml {"+" XML}]] - [collection - ["[0]" list ("[1]#[0]" functor)]]] - [math - [number - ["n" nat]]] - ["[0]" time {"+" Time} - ["[0]" instant {"+" Instant}] - ["[0]" date {"+" Date}] - ["[0]" year] - ["[0]" month]] - [world - [net - ["[0]" uri {"+" URI}]]]]] - ["[0]" // - ["/[1]" // "_" - [repository {"+" Repository}] - ["[1][0]" artifact {"+" Group Name Version Artifact}]]]) + [library + [lux "*" + [abstract + [monad {"+" do}] + [equivalence {"+" Equivalence}]] + [control + [pipe {"+" do>}] + ["[0]" try {"+" Try}] + ["<>" parser + ["<[0]>" xml {"+" Parser}] + ["<[0]>" text]] + [concurrency + ["[0]" async {"+" Async}]]] + [data + ["[0]" product] + ["[0]" text + ["%" format] + [encoding + ["[0]" utf8]]] + [format + ["[0]" xml {"+" XML}]] + [collection + ["[0]" list ("[1]#[0]" functor)]]] + [math + [number + ["n" nat]]] + ["[0]" time {"+" Time} + ["[0]" instant {"+" Instant}] + ["[0]" date {"+" Date}] + ["[0]" year] + ["[0]" month]] + [world + [net + ["[0]" uri {"+" URI}]]]]] + ["[0]" // + ["/[1]" // "_" + [repository {"+" Repository}] + ["[1][0]" artifact {"+" Group Name Version Artifact}]]]) (type: .public Metadata (Record @@ -149,6 +149,8 @@ (.somewhere (..text ..)) (.somewhere (..text ..)) (<| (.node ..) + ... Handle any ignorable tag. + (<>.before (<>.some .any)) ($_ <>.and (<| .somewhere (.node ..) @@ -178,8 +180,8 @@ (do async.monad [project (# repository download (..uri artifact))] (case project - {try.#Success project} - (in (|> project + {try.#Success binary_metadata} + (in (|> binary_metadata (do> try.monad [(# utf8.codec decoded)] [(# xml.codec decoded)] diff --git a/stdlib/source/program/aedifex/metadata/snapshot.lux b/stdlib/source/program/aedifex/metadata/snapshot.lux index 7ac0b1c0e1..487b91b8e0 100644 --- a/stdlib/source/program/aedifex/metadata/snapshot.lux +++ b/stdlib/source/program/aedifex/metadata/snapshot.lux @@ -69,15 +69,15 @@ [version_format Version .. (|>)] ) -(def: .public (format (^open "[0]")) +(def: .public (format (^open "/[0]")) (-> Metadata XML) - (let [(^open "[0]") #artifact] + (let [(^open "//[0]") /#artifact] {xml.#Node .. xml.attributes - (list (..group_format group) - (..name_format name) - (..version_format version) - (///artifact/versioning.format #versioning))})) + (list (..group_format //#group) + (..name_format //#name) + (..version_format //#version) + (///artifact/versioning.format /#versioning))})) (def: (text tag) (-> xml.Tag (Parser Text)) diff --git a/stdlib/source/program/aedifex/pom.lux b/stdlib/source/program/aedifex/pom.lux index d1294987be..26dd353481 100644 --- a/stdlib/source/program/aedifex/pom.lux +++ b/stdlib/source/program/aedifex/pom.lux @@ -1,33 +1,34 @@ (.using - [library - [lux "*" - [abstract - [monad {"+" do}]] - [control - [pipe {"+" case>}] - ["[0]" maybe ("[1]#[0]" functor)] - ["[0]" try {"+" Try}] - ["[0]" exception] - ["<>" parser - ["<[0]>" xml {"+" Parser}]]] - [data - ["[0]" name] - ["[0]" text] - [format - ["_" xml {"+" Tag XML}]] - [collection - ["[0]" list ("[1]#[0]" monoid functor mix)] - ["[0]" set] - ["[0]" dictionary]]] - [world - ["[0]" file]]]] - ["[0]" // "_" - ["/" profile] - ["[1][0]" dependency {"+" Dependency}] - [repository - [remote {"+" Address}]] - ["[1][0]" artifact {"+" Artifact} - ["[1]/[0]" type]]]) + [library + [lux "*" + [abstract + [monad {"+" do}]] + [control + [pipe {"+" case>}] + ["[0]" maybe ("[1]#[0]" functor)] + ["[0]" try {"+" Try}] + ["[0]" exception] + ["<>" parser + ["<[0]>" xml {"+" Parser}]]] + [data + ["[0]" text] + [format + ["_" xml {"+" Tag XML}]] + [collection + ["[0]" list ("[1]#[0]" monoid functor mix)] + ["[0]" set] + ["[0]" dictionary]]] + [meta + ["[0]" symbol]] + [world + ["[0]" file]]]] + ["[0]" // "_" + ["/" profile] + ["[1][0]" dependency {"+" Dependency}] + [repository + [remote {"+" Address}]] + ["[1][0]" artifact {"+" Artifact} + ["[1]/[0]" type]]]) ... https://maven.apache.org/pom.html @@ -165,7 +166,7 @@ (def: (dependency_parser own_version parent_version) (-> Text Text (Parser Dependency)) (do [! <>.monad] - [properties (# ! each (dictionary.of_list name.hash) + [properties (# ! each (dictionary.of_list symbol.hash) (<| (.node ["" ..dependency_tag]) (<>.some ..property_parser)))] (<| <>.lifted diff --git a/stdlib/source/program/aedifex/repository/remote.lux b/stdlib/source/program/aedifex/repository/remote.lux index 32851902f8..9e50e71a68 100644 --- a/stdlib/source/program/aedifex/repository/remote.lux +++ b/stdlib/source/program/aedifex/repository/remote.lux @@ -69,11 +69,11 @@ http))] (case status (^ (static http/status.ok)) - (# ! each product.right ((value@ #@http.body message) {.#None})) + (# ! each product.right ((value@ @http.#body message) {.#None})) _ (do ! - [_ ((value@ #@http.body message) {.#Some 0})] + [_ ((value@ @http.#body message) {.#Some 0})] (# io.monad in (exception.except ..download_failure [(format address uri) status])))))) (def: (upload uri content) @@ -89,7 +89,7 @@ ..base_headers))) {.#Some content} http)) - _ ((value@ #@http.body message) {.#Some 0})] + _ ((value@ @http.#body message) {.#Some 0})] (case status (^ (static http/status.created)) (in []) diff --git a/stdlib/source/test/aedifex/dependency/deployment.lux b/stdlib/source/test/aedifex/dependency/deployment.lux index ef6d7a4e74..4a3946a536 100644 --- a/stdlib/source/test/aedifex/dependency/deployment.lux +++ b/stdlib/source/test/aedifex/dependency/deployment.lux @@ -1,59 +1,59 @@ (.using - [library - [lux "*" - ["_" test {"+" Test}] - [abstract - [monad {"+" do}] - ["[0]" hash {"+" Hash}]] - [control - ["[0]" io {"+" IO}] - ["[0]" maybe ("[1]#[0]" functor)] - ["[0]" try ("[1]#[0]" functor)] - [concurrency - ["[0]" atom {"+" Atom}] - ["[0]" async]]] - [data - ["[0]" product] - ["[0]" binary {"+" Binary} ("[1]#[0]" equivalence)] - ["[0]" text - ["%" format {"+" format}]] - [collection - ["[0]" dictionary {"+" Dictionary}] - ["[0]" set] - ["[0]" list ("[1]#[0]" mix)]]] - [math - ["[0]" random {"+" Random}] - [number - ["n" nat]]] - [world - [net {"+" URL} - ["[0]" uri {"+" URI}] - ["[0]" http "_" - ["[1]" client] - ["[1]/[0]" status] - ["@[1]" /]]]]]] - ["$[0]" // - ["[1]/" // "_" - ["[1][0]" package]]] - [\\program - ["[0]" / - [// {"+" Dependency} - ["[0]" resolution] - [// - ["[0]" profile] - ["[0]" metadata] - ["[0]" package {"+" Package}] - ["[0]" artifact {"+" Artifact} ("[1]#[0]" equivalence) - ["[1]/[0]" type] - ["[1]/[0]" extension]] - ["[0]" repository - ["[0]" remote]]]]]]) + [library + [lux "*" + ["_" test {"+" Test}] + [abstract + [monad {"+" do}] + ["[0]" hash {"+" Hash}]] + [control + ["[0]" io {"+" IO}] + ["[0]" maybe ("[1]#[0]" functor)] + ["[0]" try ("[1]#[0]" functor)] + [concurrency + ["[0]" atom {"+" Atom}] + ["[0]" async]]] + [data + ["[0]" product] + ["[0]" binary {"+" Binary} ("[1]#[0]" equivalence)] + ["[0]" text + ["%" format {"+" format}]] + [collection + ["[0]" dictionary {"+" Dictionary}] + ["[0]" set] + ["[0]" list ("[1]#[0]" mix)]]] + [math + ["[0]" random {"+" Random}] + [number + ["n" nat]]] + [world + [net {"+" URL} + ["[0]" uri {"+" URI}] + ["[0]" http "_" + ["[1]" client] + ["[1]/[0]" status] + ["@[1]" /]]]]]] + ["$[0]" // + ["[1]/" // "_" + ["[1][0]" package]]] + [\\program + ["[0]" / + [// {"+" Dependency} + ["[0]" resolution] + [// + ["[0]" profile] + ["[0]" metadata] + ["[0]" package {"+" Package}] + ["[0]" artifact {"+" Artifact} ("[1]#[0]" equivalence) + ["[1]/[0]" type] + ["[1]/[0]" extension]] + ["[0]" repository + ["[0]" remote]]]]]]) (def: good_upload (@http.Response IO) [http/status.created - [#@http.headers (http.headers (list)) - #@http.body (function (_ _) + [@http.#headers (http.headers (list)) + @http.#body (function (_ _) (|> [0 (binary.empty 0)] {try.#Success} io.io))]]) @@ -68,7 +68,7 @@ (do io.monad [_ (: (IO Any) (case [method input] - [{#@http.Put} {.#Some input}] + [{@http.#Put} {.#Some input}] (atom.update! (dictionary.has url input) cache) _ diff --git a/stdlib/source/test/aedifex/repository/remote.lux b/stdlib/source/test/aedifex/repository/remote.lux index fc4ccbff15..9cfc118b92 100644 --- a/stdlib/source/test/aedifex/repository/remote.lux +++ b/stdlib/source/test/aedifex/repository/remote.lux @@ -1,35 +1,35 @@ (.using - [library - [lux "*" - ["_" test {"+" Test}] - [abstract - [monad {"+" do}]] - [control - ["[0]" io {"+" IO}] - ["[0]" maybe ("[1]#[0]" functor)] - ["[0]" try ("[1]#[0]" monad)] - ["[0]" exception] - ["[0]" function]] - [data - ["[0]" binary ("[1]#[0]" equivalence)] - ["[0]" text ("[1]#[0]" equivalence) - ["%" format {"+" format}] - [encoding - ["[0]" utf8]]] - [collection - ["[0]" dictionary]]] - [math - ["[0]" random {"+" Random}]] - [world - [net {"+" URL} - ["[0]" http "_" - ["[1]" client] - ["[1]/[0]" status] - ["@[1]" /]]]]]] - [\\program - ["[0]" / - ["/[1]" // "_" - ["[1][0]" identity]]]]) + [library + [lux "*" + ["_" test {"+" Test}] + [abstract + [monad {"+" do}]] + [control + ["[0]" io {"+" IO}] + ["[0]" maybe ("[1]#[0]" functor)] + ["[0]" try ("[1]#[0]" monad)] + ["[0]" exception] + ["[0]" function]] + [data + ["[0]" binary ("[1]#[0]" equivalence)] + ["[0]" text ("[1]#[0]" equivalence) + ["%" format {"+" format}] + [encoding + ["[0]" utf8]]] + [collection + ["[0]" dictionary]]] + [math + ["[0]" random {"+" Random}]] + [world + [net {"+" URL} + ["[0]" http "_" + ["[1]" client] + ["[1]/[0]" status] + ["@[1]" /]]]]]] + [\\program + ["[0]" / + ["/[1]" // "_" + ["[1][0]" identity]]]]) (def: (url_body url) (-> URL (@http.Body IO)) @@ -42,8 +42,8 @@ (implementation (def: (request method url headers input) (with_expansions [ [http/status.bad_request - [#@http.headers (http.headers (list)) - #@http.body (..url_body "")]]] + [@http.#headers (http.headers (list)) + @http.#body (..url_body "")]]] (<| io.io {try.#Success} (if (|> headers @@ -51,19 +51,19 @@ (maybe#each (same? /.user_agent)) (maybe.else false)) (case [method input] - [#@http.Get {.#None}] + [@http.#Get {.#None}] [http/status.ok - [#@http.headers (http.headers (list)) - #@http.body (..url_body url)]] + [@http.#headers (http.headers (list)) + @http.#body (..url_body url)]] - [#@http.Put {.#Some input}] + [@http.#Put {.#Some input}] (if (|> headers (dictionary.value "Authorization") (maybe#each (text#= (//identity.basic_auth user password))) (maybe.else false)) [http/status.created - [#@http.headers (http.headers (list)) - #@http.body (..url_body url)]] + [@http.#headers (http.headers (list)) + @http.#body (..url_body url)]] ) _ @@ -77,8 +77,8 @@ (<| io.io {try.#Success} [http/status.bad_request - [#@http.headers (http.headers (list)) - #@http.body (..url_body "")]])))) + [@http.#headers (http.headers (list)) + @http.#body (..url_body "")]])))) (def: .public test Test