From f29d0644f15e6548af6d015ef9bb60eb6f846329 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Sat, 9 Oct 2021 04:17:44 -0400 Subject: Fixed packaging issue. --- documentation/bookmark/advice.md | 4 + documentation/bookmark/floating_point.md | 3 +- documentation/bookmark/game_programming.md | 1 + documentation/bookmark/open_source.md | 4 + documentation/bookmark/optimization.md | 1 + documentation/bookmark/performance.md | 4 + .../bookmark/probabilistic_data_structure.md | 2 + documentation/bookmark/rendering.md | 1 + documentation/bookmark/security.md | 4 + documentation/bookmark/tool/text_editor.md | 1 + documentation/bookmark/type_theory/dependent.md | 55 ++++++++++ .../bookmark/type_theory/dependent_types.md | 54 ---------- lux-bootstrapper/project.clj | 13 ++- lux-js/commands.md | 7 +- lux-js/project.clj | 4 +- lux-js/project.lux | 33 ++++-- lux-jvm/commands.md | 4 +- lux-jvm/project.clj | 10 +- lux-lein/project.clj | 4 +- lux-lua/project.clj | 4 +- lux-lua/project.lux | 6 +- lux-python/commands.md | 10 +- lux-python/project.clj | 4 +- lux-python/project.lux | 14 ++- lux-ruby/commands.md | 2 +- lux-ruby/project.clj | 4 +- lux-ruby/project.lux | 29 +++-- stdlib/commands.md | 5 + stdlib/project.clj | 4 +- stdlib/project.lux | 16 +-- .../lux/tool/compiler/language/lux/version.lux | 2 +- .../lux/tool/compiler/meta/packager/jvm.lux | 6 +- .../aedifex/artifact/snapshot/version/value.lux | 14 +-- stdlib/source/program/aedifex/command/build.lux | 86 +++++++-------- stdlib/source/program/aedifex/command/deps.lux | 62 +++++------ .../program/aedifex/dependency/deployment.lux | 80 +++++++------- .../program/aedifex/dependency/resolution.lux | 117 ++++++++++----------- .../source/program/aedifex/metadata/artifact.lux | 82 ++++++++------- .../source/program/aedifex/metadata/snapshot.lux | 12 +-- stdlib/source/program/aedifex/pom.lux | 61 +++++------ .../source/program/aedifex/repository/remote.lux | 6 +- .../source/test/aedifex/dependency/deployment.lux | 104 +++++++++--------- stdlib/source/test/aedifex/repository/remote.lux | 82 +++++++-------- 43 files changed, 543 insertions(+), 478 deletions(-) create mode 100644 documentation/bookmark/advice.md create mode 100644 documentation/bookmark/open_source.md create mode 100644 documentation/bookmark/performance.md create mode 100644 documentation/bookmark/type_theory/dependent.md delete mode 100644 documentation/bookmark/type_theory/dependent_types.md diff --git a/documentation/bookmark/advice.md b/documentation/bookmark/advice.md new file mode 100644 index 000000000..b1b8225ec --- /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 fe22137dc..bdc3d3bb9 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 3191e7087..d04e0def1 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 000000000..467a54662 --- /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 e9e6f2109..6a773a929 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 000000000..a5009abf5 --- /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 8e74baea7..3d6c3bf84 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 793367868..e8fb72658 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 524d1651c..ba0d282f2 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 a3f7dcbee..3cd6aea03 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.md b/documentation/bookmark/type_theory/dependent.md new file mode 100644 index 000000000..abdc01942 --- /dev/null +++ b/documentation/bookmark/type_theory/dependent.md @@ -0,0 +1,55 @@ +# 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/ + +# Reference + +1. [A Language Agnostic Introduction to Dependent Types](https://www.shuangrimu.com/posts/language-agnostic-intro-to-dependent-types.html) +1. [The Gentle Art of Levitation](http://lambda-the-ultimate.org/node/5526) +1. [Programming up to Congruence](http://www.cs.yale.edu/homes/vilhelm/papers/popl15congruence.pdf) +1. [From Scheme to Dependent Types in 100 lines by Gershom Bazerman (Part 1)](https://vimeo.com/134561872) +1. [From Scheme to Dependent Types in 100 Lines by Gershom Bazerman (Part 2)](https://vimeo.com/135746080) +1. [Program = Proof](http://www.lix.polytechnique.fr/Labo/Samuel.Mimram/teaching/INF551/course.pdf) +1. [Multimodal Dependent Type Theory](https://arxiv.org/abs/2011.15021) +1. [Thorsten Altenkirch - The power of Π - Lambda Days 2020](https://www.youtube.com/watch?v=3zT5eVHpQwA) +1. [A Path To DOT: Formalizing Fully Path-Dependent Types](https://arxiv.org/abs/1904.07298) +1. [Ghosts of Departed Proofs (Functional Pearl)](https://www.youtube.com/watch?v=2cAxOJEiL00) +1. [Ghosts of Departed Proofs (Functional Pearl)](https://kataskeue.com/gdp.pdf) +1. [F# Linear algebra with type-level dimensions and static checks](https://notebooks.azure.com/allisterb/projects/sylvester/html/Sylvester.Tensors.ipynb) +1. [From Scheme to Dependent Types in 100 lines by Gershom Bazerman](https://vimeo.com/134561872 &&& https://vimeo.com/135746080) +1. [A Tutorial Implementation of a Dependently Typed Lambda Calculus](https://www.andres-loeh.de/LambdaPi/) +1. [The calculus of constructions](http://www.sciencedirect.com/science/article/pii/0890540188900053#) +1. https://www.idris-lang.org/ +1. https://www.amazon.com/Type-driven-Development-Idris-Edwin-Brady/dp/1617293024/ +1. http://blog.codersbase.com/posts/2013-12-03-learning-dependent-types.html +1. http://oxij.org/note/BrutalDepTypes/ +1. https://hydraz.club/posts/2017-09-08.html +1. [Hoare Type Theory, Polymorphism and Separation](http://ynot.cs.harvard.edu/papers/jfpsep07.pdf) +1. ["Dependent Types in Haskell" by Stephanie Weirich](https://www.youtube.com/watch?v=wNa3MMbhwS4) +1. [A Little Bit of Dependent Types](https://youtu.be/WI8uA4KjQJk?t=5169) +1. [Type Checking Without Types](https://matthias.benkard.de/typecore/typecore.pdf) +1. [Cubical Type Theory: a constructive interpretation of the univalence axiom](http://www.cse.chalmers.se/~coquand/cubicaltt.pdf) +1. https://github.com/mortberg/cubicaltt +1. https://leanprover.github.io/introduction_to_lean/ +1. [Infinity](https://github.com/groupoid/infinity) +1. https://github.com/groupoid +1. http://groupoid.space/ +1. https://existentialtype.wordpress.com/2016/07/31/cubical-higher-type-theory-as-a-programming-language/ +1. https://github.com/silt-lang/silt +1. [Parametric Quantifiers for Dependent Type Theory](https://people.cs.kuleuven.be/~andreas.nuyts/ParametricQuantifiers.pdf &&& https://www.youtube.com/watch?v=lJB5MhYJ4Js) +1. [A Specification for Dependently-Typed Haskell:](http://www.seas.upenn.edu/~sweirich/papers/systemd-submission.pdf) +1. [A Specification for Dependent Types in Haskell](http://www.seas.upenn.edu/~sweirich/papers/systemd-submission.pdf &&& https://cs.brynmawr.edu/~rae/papers/2017/dep-haskell-spec/dep-haskell-spec.pdf &&& https://www.youtube.com/watch?v=0157rUxC4_8) +1. [Normalization by Evaluation for Sized Dependent Types](http://publications.lib.chalmers.se/records/fulltext/252072/local_252072.pdf &&& https://www.youtube.com/watch?v=uSP91COE_ZA) +1. https://bluishcoder.co.nz/2018/01/03/writing-basic-proofs-in-ats.html +1. [AN INTRODUCTION TO UNIVALENT FOUNDATIONS FOR MATHEMATICIANS](http://www.ams.org/journals/bull/2018-55-04/S0273-0979-2018-01616-9/S0273-0979-2018-01616-9.pdf) +1. https://medium.com/@maiavictor/about-induction-on-the-calculus-of-constructions-581fcfdb89c5 +1. [05 A Dependent Haskell Triptych](https://www.youtube.com/watch?v=soKl1IslU-I) +1. https://cs.ru.nl/~wouters/Publications/ThePowerOfPi.pdf +1. [Algebraic Presentations of Dependent Type Theories](https://arxiv.org/abs/1602.08504v3) + +# Math | Proofs + +1. http://logipedia.inria.fr/about/about.php + diff --git a/documentation/bookmark/type_theory/dependent_types.md b/documentation/bookmark/type_theory/dependent_types.md deleted file mode 100644 index 2ba13222b..000000000 --- a/documentation/bookmark/type_theory/dependent_types.md +++ /dev/null @@ -1,54 +0,0 @@ -# Exemplar - -1. [A simple type-theoretic language: Mini-TT](http://www.cse.chalmers.se/~bengt/papers/GKminiTT.pdf) -1. https://cedille.github.io/ - -# Reference - -1. [A Language Agnostic Introduction to Dependent Types](https://www.shuangrimu.com/posts/language-agnostic-intro-to-dependent-types.html) -1. [The Gentle Art of Levitation](http://lambda-the-ultimate.org/node/5526) -1. [Programming up to Congruence](http://www.cs.yale.edu/homes/vilhelm/papers/popl15congruence.pdf) -1. [From Scheme to Dependent Types in 100 lines by Gershom Bazerman (Part 1)](https://vimeo.com/134561872) -1. [From Scheme to Dependent Types in 100 Lines by Gershom Bazerman (Part 2)](https://vimeo.com/135746080) -1. [Program = Proof](http://www.lix.polytechnique.fr/Labo/Samuel.Mimram/teaching/INF551/course.pdf) -1. [Multimodal Dependent Type Theory](https://arxiv.org/abs/2011.15021) -1. [Thorsten Altenkirch - The power of Π - Lambda Days 2020](https://www.youtube.com/watch?v=3zT5eVHpQwA) -1. [A Path To DOT: Formalizing Fully Path-Dependent Types](https://arxiv.org/abs/1904.07298) -1. [Ghosts of Departed Proofs (Functional Pearl)](https://www.youtube.com/watch?v=2cAxOJEiL00) -1. [Ghosts of Departed Proofs (Functional Pearl)](https://kataskeue.com/gdp.pdf) -1. [F# Linear algebra with type-level dimensions and static checks](https://notebooks.azure.com/allisterb/projects/sylvester/html/Sylvester.Tensors.ipynb) -1. [From Scheme to Dependent Types in 100 lines by Gershom Bazerman](https://vimeo.com/134561872 &&& https://vimeo.com/135746080) -1. [A Tutorial Implementation of a Dependently Typed Lambda Calculus](https://www.andres-loeh.de/LambdaPi/) -1. [The calculus of constructions](http://www.sciencedirect.com/science/article/pii/0890540188900053#) -1. https://www.idris-lang.org/ -1. https://www.amazon.com/Type-driven-Development-Idris-Edwin-Brady/dp/1617293024/ -1. http://blog.codersbase.com/posts/2013-12-03-learning-dependent-types.html -1. http://oxij.org/note/BrutalDepTypes/ -1. https://hydraz.club/posts/2017-09-08.html -1. [Hoare Type Theory, Polymorphism and Separation](http://ynot.cs.harvard.edu/papers/jfpsep07.pdf) -1. ["Dependent Types in Haskell" by Stephanie Weirich](https://www.youtube.com/watch?v=wNa3MMbhwS4) -1. [A Little Bit of Dependent Types](https://youtu.be/WI8uA4KjQJk?t=5169) -1. [Type Checking Without Types](https://matthias.benkard.de/typecore/typecore.pdf) -1. [Cubical Type Theory: a constructive interpretation of the univalence axiom](http://www.cse.chalmers.se/~coquand/cubicaltt.pdf) -1. https://github.com/mortberg/cubicaltt -1. https://leanprover.github.io/introduction_to_lean/ -1. [Infinity](https://github.com/groupoid/infinity) -1. https://github.com/groupoid -1. http://groupoid.space/ -1. https://existentialtype.wordpress.com/2016/07/31/cubical-higher-type-theory-as-a-programming-language/ -1. https://github.com/silt-lang/silt -1. [Parametric Quantifiers for Dependent Type Theory](https://people.cs.kuleuven.be/~andreas.nuyts/ParametricQuantifiers.pdf &&& https://www.youtube.com/watch?v=lJB5MhYJ4Js) -1. [A Specification for Dependently-Typed Haskell:](http://www.seas.upenn.edu/~sweirich/papers/systemd-submission.pdf) -1. [A Specification for Dependent Types in Haskell](http://www.seas.upenn.edu/~sweirich/papers/systemd-submission.pdf &&& https://cs.brynmawr.edu/~rae/papers/2017/dep-haskell-spec/dep-haskell-spec.pdf &&& https://www.youtube.com/watch?v=0157rUxC4_8) -1. [Normalization by Evaluation for Sized Dependent Types](http://publications.lib.chalmers.se/records/fulltext/252072/local_252072.pdf &&& https://www.youtube.com/watch?v=uSP91COE_ZA) -1. https://bluishcoder.co.nz/2018/01/03/writing-basic-proofs-in-ats.html -1. [AN INTRODUCTION TO UNIVALENT FOUNDATIONS FOR MATHEMATICIANS](http://www.ams.org/journals/bull/2018-55-04/S0273-0979-2018-01616-9/S0273-0979-2018-01616-9.pdf) -1. https://medium.com/@maiavictor/about-induction-on-the-calculus-of-constructions-581fcfdb89c5 -1. [05 A Dependent Haskell Triptych](https://www.youtube.com/watch?v=soKl1IslU-I) -1. https://cs.ru.nl/~wouters/Publications/ThePowerOfPi.pdf -1. [Algebraic Presentations of Dependent Type Theories](https://arxiv.org/abs/1602.08504v3) - -# Math | Proofs - -1. http://logipedia.inria.fr/about/about.php - diff --git a/lux-bootstrapper/project.clj b/lux-bootstrapper/project.clj index ba42e7c05..4fb1b90cd 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 6d2b1d54e..5c6da5e51 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 35ab4a21c..280b9fb90 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 e9b44e375..5bd0019e2 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 2dd7cb2f5..e9da3e732 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 f6bc06844..e60892f36 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 3fc049c64..ef6c1a7f4 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 e6848ccb1..73d84ef7a 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 e03946c59..df20f4029 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 f33ea9f3f..177c1ec3c 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 3367a2819..e174ca27d 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 4c0b4dfa4..9a3b08fa9 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 2b2be3a06..f5439ea64 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 f689a8c33..80ddde6d3 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 ab142f3c4..a7b17ec98 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 a2329b8f0..27d476e1b 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 64cb8d3b7..9cc874af8 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 a5a2df7d7..496763b00 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 de36f2803..733188447 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 fc1642ba2..9d1fca9af 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 9ce004ab5..f01c01522 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 8ad4c15f6..9fbc34542 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 a8602cd3f..4e32a73b1 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 318475c26..7098505d4 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 4b0aee23d..ffea5d458 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 cebd4a826..27448f154 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 7ac0b1c0e..487b91b8e 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 d1294987b..26dd35348 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 32851902f..9e50e71a6 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 ef6d7a4e7..4a3946a53 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 fc4ccbff1..9cfc118b9 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 -- cgit v1.2.3