From 879d0560e9d09ca997bf81de498fe9740ef36434 Mon Sep 17 00:00:00 2001 From: Eduardo Julian Date: Tue, 18 May 2021 00:45:15 -0400 Subject: Got rid of the {}s in ":share" and made it pipe-able. --- documentation/bookmark/Graphics.md | 5 -- documentation/bookmark/Optimization.md | 40 --------- documentation/bookmark/Security.md | 96 --------------------- .../bookmark/Type theory/Cost analysis.md | 4 - .../bookmark/Type theory/Dependent types.md | 49 ----------- documentation/bookmark/Type theory/Refinement.md | 4 - .../bookmark/Type theory/Row polymorphism.md | 4 - .../bookmark/Type theory/Type checking.md | 4 - documentation/bookmark/database.md | 1 + documentation/bookmark/dec64.md | 4 + documentation/bookmark/graphics.md | 6 ++ documentation/bookmark/math.md | 5 ++ documentation/bookmark/music.md | 4 + documentation/bookmark/optimization.md | 42 ++++++++++ documentation/bookmark/security.md | 98 ++++++++++++++++++++++ documentation/bookmark/text_editor & ide.md | 1 + documentation/bookmark/tool/Search.md | 4 - documentation/bookmark/tool/search.md | 6 ++ .../bookmark/type_theory/cost_analysis.md | 4 + .../bookmark/type_theory/dependent_types.md | 51 +++++++++++ documentation/bookmark/type_theory/refinement.md | 4 + .../bookmark/type_theory/row_polymorphism.md | 4 + .../bookmark/type_theory/type_checking.md | 4 + stdlib/source/lux/control/concurrency/actor.lux | 22 ++--- stdlib/source/lux/control/concurrency/frp.lux | 11 +-- stdlib/source/lux/control/parser/binary.lux | 9 +- .../source/lux/data/collection/queue/priority.lux | 5 +- stdlib/source/lux/data/collection/tree/finger.lux | 2 +- stdlib/source/lux/data/text/unicode/set.lux | 5 +- stdlib/source/lux/math/number/i16.lux | 10 ++- stdlib/source/lux/math/number/i32.lux | 10 ++- stdlib/source/lux/math/number/i8.lux | 10 ++- .../lux/tool/compiler/meta/archive/document.lux | 11 +-- stdlib/source/lux/type.lux | 12 +-- stdlib/source/lux/type/quotient.lux | 6 +- stdlib/source/lux/type/refinement.lux | 5 +- stdlib/source/test/lux/control/region.lux | 18 ++-- .../test/lux/data/collection/tree/finger.lux | 5 +- stdlib/source/test/lux/data/text/format.lux | 3 +- stdlib/source/test/lux/type.lux | 4 +- 40 files changed, 320 insertions(+), 272 deletions(-) delete mode 100644 documentation/bookmark/Graphics.md delete mode 100644 documentation/bookmark/Optimization.md delete mode 100644 documentation/bookmark/Security.md delete mode 100644 documentation/bookmark/Type theory/Cost analysis.md delete mode 100644 documentation/bookmark/Type theory/Dependent types.md delete mode 100644 documentation/bookmark/Type theory/Refinement.md delete mode 100644 documentation/bookmark/Type theory/Row polymorphism.md delete mode 100644 documentation/bookmark/Type theory/Type checking.md create mode 100644 documentation/bookmark/dec64.md create mode 100644 documentation/bookmark/graphics.md create mode 100644 documentation/bookmark/music.md create mode 100644 documentation/bookmark/optimization.md create mode 100644 documentation/bookmark/security.md delete mode 100644 documentation/bookmark/tool/Search.md create mode 100644 documentation/bookmark/tool/search.md create mode 100644 documentation/bookmark/type_theory/cost_analysis.md create mode 100644 documentation/bookmark/type_theory/dependent_types.md create mode 100644 documentation/bookmark/type_theory/refinement.md create mode 100644 documentation/bookmark/type_theory/row_polymorphism.md create mode 100644 documentation/bookmark/type_theory/type_checking.md diff --git a/documentation/bookmark/Graphics.md b/documentation/bookmark/Graphics.md deleted file mode 100644 index 5438adeff..000000000 --- a/documentation/bookmark/Graphics.md +++ /dev/null @@ -1,5 +0,0 @@ -# 2D - -1. [Einar Høst - Composition by Juxtaposition: A PostScript on Functional Geometry - Lambda Days 2020](https://www.youtube.com/watch?v=GvTh0MmVPQI) -1. [Functional geometry](https://dl.acm.org/doi/10.1145/800068.802148) - diff --git a/documentation/bookmark/Optimization.md b/documentation/bookmark/Optimization.md deleted file mode 100644 index 289980282..000000000 --- a/documentation/bookmark/Optimization.md +++ /dev/null @@ -1,40 +0,0 @@ -# Pre-fetching - -1. [Prefetching in Functional Languages](https://www.cl.cam.ac.uk/~tmj32/papers/docs/ainsworth20-ismm.pdf) - -# Partial evaluation - -1. [AnyDSL - A Partial Evaluation Framework for Programming High-Performance Libraries](https://anydsl.github.io/) - -# For the compiler - -1. [Self Hosting a Million-Lines-Per-Second Parser](https://bjou-lang.org/blog/7-10-2019-self-hosting-a-million-lines-per-second-parser/7-10-2019-self-hosting-a-million-lines-per-second-parser.html) - -# Reference - -1. [Weird and Wonderful Division Tricks](https://saml98.github.io/jekyll/update/2020/02/21/weird-division.htmls) -1. [Towards a Domain-Extensible Compiler: Optimizingan Image Processing Pipeline on Mobile CPUs](https://thok.eu/publications/2021/cgo.pdf) -1. [Compiler Detection of Function Call Side Effects](https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=B3D92D05C88C3D9C165785594350C169?doi=10.1.1.70.2096&rep=rep1&type=pdf) -1. [A Language for Describing Optimization Strategies](https://arxiv.org/abs/2002.02268) -1. https://docs.google.com/presentation/d/1tpeJZFObkeick4CF-mx0L3CeCgvT15B96aJeRpxEPcE/preview?slide=id.p -1. https://www.quora.com/What-is-the-future-of-optimizing-compilers?share=1 -1. https://advancedweb.hu/2016/05/27/jvm_jit_optimization_techniques/ &&& https://advancedweb.hu/2016/06/28/jvm_jit_optimization_techniques_part_2/ -1. http://www.scala-native.org/en/latest/blog/interflow.html -1. https://github.com/roman01la/closure-compiler-handbook -1. http://hubicka.blogspot.com/2018/06/gcc-8-link-time-and-interprocedural.html -1. [CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”](https://www.youtube.com/watch?v=bSkpMdDe4g4) -1. http://duriansoftware.com/joe/Optimizing-is-multiple-checks-with-modular-arithmetic.html? -1. https://www.ericsson.com/research-blog/outperforming-state-art-compilers-unison/ -1. http://compileroptimizations.com/index.html -1. https://polly.llvm.org/ -1. http://paulcavallaro.com/blog/optimizing-function-placement-with-call-chain-clustering/ -1. http://leto.net/docs/C-optimization.php -1. https://engineering.purdue.edu/~eigenman/ECE663/Handouts/bacon-compiling4hpc.pdf -1. http://venge.net/graydon/talks/CompilerTalk-2019.pdf -1. http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/6620/pdf/imm6620.pdf -1. [Lost in translation: Exposing hidden compiler optimization opportunities](https://arxiv.org/pdf/1903.11397.pdf) -1. https://kristerw.blogspot.com/2019/04/how-llvm-optimizes-geometric-sums.html -1. https://nfrechette.github.io/2019/05/08/sign_flip_optimization/ -1. https://grin-tech.github.io/ -1. [Loop Optimizations in LLVM - Michael Kruse](https://www.youtube.com/watch?v=oAPgGYr8T3Y) - diff --git a/documentation/bookmark/Security.md b/documentation/bookmark/Security.md deleted file mode 100644 index 4ea9b1b46..000000000 --- a/documentation/bookmark/Security.md +++ /dev/null @@ -1,96 +0,0 @@ -# Homomorphic encryption - -1. https://github.com/Microsoft/SEAL - -# Privacy - -1. [Programming Differential Privacy](https://uvm-plaid.github.io/programming-dp/intro.html) -1. https://privacypatterns.org/ - -# Inspiration - -1. [Kasm: Desktop and Browser Isolation Platform](https://www.kasmweb.com/) -1. https://www.mailvelope.com - -# Finger-printing - -1. [How Browser Fingerprinting Works](https://kevq.uk/how-browser-fingerprinting-works/) -1. https://github.com/Valve/fingerprintjs2 - -# Access Control List - -1. [Capirca: Multi-platform ACL generation system](https://github.com/google/capirca) - -# Return-oriented programming - -1. https://github.com/immunant/selfrando - -# Static analysis - -1. [Cam Tenny - Beyond the Paper - End-to-End Program Analysis](https://www.youtube.com/watch?v=hmDz0Rv6hKI) -1. https://www.curry-on.org/2019/sessions/beyond-the-paper-end-to-end-program-analysis.html - -# Programming language - -1. [Secure Compilation](https://blog.sigplan.org/2019/07/01/secure-compilation/) - -# Cautionary tale - -1. [Thou Shalt Not Depend on Me: A look at JavaScript libraries in the wild](https://queue.acm.org/detail.cfm?id=3205288) -1. https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d - -# Surface area - -1. [Towards Automated Application-Specific Software Stacks](https://arxiv.org/pdf/1907.01933.pdf) - -# Vulnerability - -1. [Against Cipher Agility in Cryptography Protocols](https://paragonie.com/blog/2019/10/against-agility-in-cryptography-protocols) -1. [Padding the struct: How a compiler optimization can disclose stack memory](https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2019/october/padding-the-struct-how-a-compiler-optimization-can-disclose-stack-memory/) -1. [PCG generators are easily “crackable”](https://news.ycombinator.com/item?id=21475210) -1. [Safely Creating And Using Temporary Files](https://www.netmeister.org/blog/mktemp.html) -1. [CSS Injection Primitives](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/) -1. https://medium.com/@shnatsel/how-rusts-standard-library-was-vulnerable-for-years-and-nobody-noticed-aebf0503c3d6 -1. [ACLs don’t](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.406.4684&rep=rep1&type=pdf) -1. https://www.cs.auckland.ac.nz/~pgut001/pubs/book.pdf -1. https://pwnedkeys.com/ -1. [What Spectre Means for Lanugage Implementers - Ben Titzer - PLISS 2019](https://www.youtube.com/watch?v=FGX-KD5Nh2g) -1. https://rambleed.com/ -1. https://browserleaks.com/ - -# Reference - -1. [Don't get pwned: practicing the principle of least privilege](https://cloud.google.com/blog/products/identity-security/dont-get-pwned-practicing-the-principle-of-least-privilege) -1. [Good Practices for Capability URLs](https://www.w3.org/TR/capability-urls/) -1. [Secure Socket API](https://securesocketapi.org/) -1. [Mind your Language(s): A discussion about languages and security](https://www.ssi.gouv.fr/uploads/IMG/pdf/Mind_Your_Languages_-_version_longue.pdf) -1. https://www.microsoft.com/en-us/research/blog/scaling-the-everest-of-software-security-with-dr-jonathan-protzenko/ -1. https://www.owasp.org/index.php/Main_Page -1. https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project -1. https://wiki.sei.cmu.edu/confluence/display/seccode/Top+10+Secure+Coding+Practices -1. https://www.archive.ece.cmu.edu/~grey/ -1. http://www.cs.umd.edu/projects/PL/selinks/ -1. http://www.cis.upenn.edu/~stevez/sol/related.html -1. https://www.bsimm.com/ -1. https://www.microsoft.com/en-us/securityengineering/sdl/ -1. https://www.engineeringtrustworthysystems.com/ -1. http://www.ats-lang.org/ -1. http://www.cis.upenn.edu/~stevez/papers/publications.html -1. http://collingreene.com/6_buckets_of_prodsec.html -1. [On Post-Compromise Security](https://eprint.iacr.org/2016/221.pdf) -1. https://messaginglayersecurity.rocks/ -1. https://github.blog/2019-05-23-introducing-new-ways-to-keep-your-code-secure/ -1. [RustBelt](https://plv.mpi-sws.org/rustbelt/popl18/) -1. https://github.com/dckc/awesome-ocap -1. https://projects.csail.mit.edu/jeeves/ -1. https://www.sans.org/top25-software-errors/ -1. https://www.owasp.org/index.php/Top_10_2013-Top_10 -1. https://nvd.nist.gov/cwe.cfm -1. https://en.wikipedia.org/wiki/Software_Development_Security -1. http://gigi.nullneuron.net/gigilabs/the-sorry-state-of-the-web-in-2016/ -1. http://www.ranum.com/security/computer_security/editorials/dumb/index.html -1. [Information Technology — Programming languages — Guidance to avoiding vulnerabilities in programming languages](http://www.open-std.org/jtc1/sc22/wg23/docs/ISO-IECJTC1-SC22-WG23_N0751-tr24772-1-after-pre-meeting-51-webex-20171016.pdf) - -# Control-flow integrity -1. [On the Effectiveness of Type-based Control Flow Integrity](https://sajjadium.github.io/files/acsac2018typecfi_paper.pdf) - diff --git a/documentation/bookmark/Type theory/Cost analysis.md b/documentation/bookmark/Type theory/Cost analysis.md deleted file mode 100644 index 6e92c792e..000000000 --- a/documentation/bookmark/Type theory/Cost analysis.md +++ /dev/null @@ -1,4 +0,0 @@ -# Reference - -1. [Liquidate Your Assets: Reasoning about Resource Usage in Liquid Haskell](http://www.cs.nott.ac.uk/~pszgmh/liquidate.pdf) - diff --git a/documentation/bookmark/Type theory/Dependent types.md b/documentation/bookmark/Type theory/Dependent types.md deleted file mode 100644 index b2afc30bd..000000000 --- a/documentation/bookmark/Type theory/Dependent types.md +++ /dev/null @@ -1,49 +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. [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/Refinement.md b/documentation/bookmark/Type theory/Refinement.md deleted file mode 100644 index f0d0a1f06..000000000 --- a/documentation/bookmark/Type theory/Refinement.md +++ /dev/null @@ -1,4 +0,0 @@ -# Reference - -1. [Refinement Kinds: Type-safe Programming with Practical Type-level Computation (Extended Version)](https://arxiv.org/abs/1908.00441) - diff --git a/documentation/bookmark/Type theory/Row polymorphism.md b/documentation/bookmark/Type theory/Row polymorphism.md deleted file mode 100644 index 3194405ff..000000000 --- a/documentation/bookmark/Type theory/Row polymorphism.md +++ /dev/null @@ -1,4 +0,0 @@ -# Reference - -1. [Row Polymorphism without the Jargon](https://jadon.io/blog/row-polymorphism) - diff --git a/documentation/bookmark/Type theory/Type checking.md b/documentation/bookmark/Type theory/Type checking.md deleted file mode 100644 index d26019e88..000000000 --- a/documentation/bookmark/Type theory/Type checking.md +++ /dev/null @@ -1,4 +0,0 @@ -# Reference - -1. [Let Should Not Be Generalised](https://www.microsoft.com/en-us/research/publication/let-should-not-be-generalised/) - diff --git a/documentation/bookmark/database.md b/documentation/bookmark/database.md index e3c5055cf..8441522df 100644 --- a/documentation/bookmark/database.md +++ b/documentation/bookmark/database.md @@ -197,6 +197,7 @@ 1. https://juxt.pro/crux/docs/index.html 1. https://github.com/juxt/crux 1. [The Crux of Bitemporality - Jon Pither](https://www.youtube.com/watch?v=3Stja6YUB94) +1. [Bitemporality: More Than a Design Pattern](https://juxt.pro/blog/bitemporality-more-than-a-design-pattern) ## Column diff --git a/documentation/bookmark/dec64.md b/documentation/bookmark/dec64.md new file mode 100644 index 000000000..3ac7c3eec --- /dev/null +++ b/documentation/bookmark/dec64.md @@ -0,0 +1,4 @@ +# Reference + +1. [DEC64: Decimal Floating Point](https://www.crockford.com/dec64.html) + diff --git a/documentation/bookmark/graphics.md b/documentation/bookmark/graphics.md new file mode 100644 index 000000000..5a1abe21c --- /dev/null +++ b/documentation/bookmark/graphics.md @@ -0,0 +1,6 @@ +# 2D + +1. [Einar Høst - Composition by Juxtaposition: A PostScript on Functional Geometry - Lambda Days 2020](https://www.youtube.com/watch?v=GvTh0MmVPQI) +1. [Functional geometry](https://dl.acm.org/doi/10.1145/800068.802148) +1. [Bresenham's Circle Drawing Algorithm](https://funloop.org/post/2021-03-15-bresenham-circle-drawing-algorithm.html) + diff --git a/documentation/bookmark/math.md b/documentation/bookmark/math.md index 6f40b8fee..f50c1fc50 100644 --- a/documentation/bookmark/math.md +++ b/documentation/bookmark/math.md @@ -1,3 +1,7 @@ +# Ball arithmetic + +1. [Ball arithmetic](http://www.texmacs.org/joris/ball/ball.html) + # Arithmetic 1. [The Definitive Higher Math Guide on Integer Long Division (and Its Variants)](https://mathvault.ca/long-division/) @@ -327,6 +331,7 @@ # Knot theory +1. [KNOT THEORY and ITS APPLICATIONS](https://www.maths.ed.ac.uk/~v1ranick/papers/murasug3.pdf) 1. [Primes and Knots - Akshay Venkatesh](https://www.youtube.com/watch?v=jvoYgNYKyk0) 1. [The Knot Book](http://math.harvard.edu/~ctm/home/text/books/adams/knot_book/knot_book.pdf) diff --git a/documentation/bookmark/music.md b/documentation/bookmark/music.md new file mode 100644 index 000000000..e4a6124d2 --- /dev/null +++ b/documentation/bookmark/music.md @@ -0,0 +1,4 @@ +# Reference + +1. [Open Music Theory](http://openmusictheory.com/) + diff --git a/documentation/bookmark/optimization.md b/documentation/bookmark/optimization.md new file mode 100644 index 000000000..f94497546 --- /dev/null +++ b/documentation/bookmark/optimization.md @@ -0,0 +1,42 @@ +# Pre-fetching + +1. [Prefetching in Functional Languages](https://www.cl.cam.ac.uk/~tmj32/papers/docs/ainsworth20-ismm.pdf) + +# Partial evaluation + +1. [AnyDSL - A Partial Evaluation Framework for Programming High-Performance Libraries](https://anydsl.github.io/) + +# For the compiler + +1. [Self Hosting a Million-Lines-Per-Second Parser](https://bjou-lang.org/blog/7-10-2019-self-hosting-a-million-lines-per-second-parser/7-10-2019-self-hosting-a-million-lines-per-second-parser.html) + +# Reference + +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) +1. [Towards a Domain-Extensible Compiler: Optimizingan Image Processing Pipeline on Mobile CPUs](https://thok.eu/publications/2021/cgo.pdf) +1. [Compiler Detection of Function Call Side Effects](https://citeseerx.ist.psu.edu/viewdoc/download;jsessionid=B3D92D05C88C3D9C165785594350C169?doi=10.1.1.70.2096&rep=rep1&type=pdf) +1. [A Language for Describing Optimization Strategies](https://arxiv.org/abs/2002.02268) +1. https://docs.google.com/presentation/d/1tpeJZFObkeick4CF-mx0L3CeCgvT15B96aJeRpxEPcE/preview?slide=id.p +1. https://www.quora.com/What-is-the-future-of-optimizing-compilers?share=1 +1. https://advancedweb.hu/2016/05/27/jvm_jit_optimization_techniques/ &&& https://advancedweb.hu/2016/06/28/jvm_jit_optimization_techniques_part_2/ +1. http://www.scala-native.org/en/latest/blog/interflow.html +1. https://github.com/roman01la/closure-compiler-handbook +1. http://hubicka.blogspot.com/2018/06/gcc-8-link-time-and-interprocedural.html +1. [CppCon 2017: Matt Godbolt “What Has My Compiler Done for Me Lately? Unbolting the Compiler's Lid”](https://www.youtube.com/watch?v=bSkpMdDe4g4) +1. http://duriansoftware.com/joe/Optimizing-is-multiple-checks-with-modular-arithmetic.html? +1. https://www.ericsson.com/research-blog/outperforming-state-art-compilers-unison/ +1. http://compileroptimizations.com/index.html +1. https://polly.llvm.org/ +1. http://paulcavallaro.com/blog/optimizing-function-placement-with-call-chain-clustering/ +1. http://leto.net/docs/C-optimization.php +1. https://engineering.purdue.edu/~eigenman/ECE663/Handouts/bacon-compiling4hpc.pdf +1. http://venge.net/graydon/talks/CompilerTalk-2019.pdf +1. http://www2.imm.dtu.dk/pubdb/views/edoc_download.php/6620/pdf/imm6620.pdf +1. [Lost in translation: Exposing hidden compiler optimization opportunities](https://arxiv.org/pdf/1903.11397.pdf) +1. https://kristerw.blogspot.com/2019/04/how-llvm-optimizes-geometric-sums.html +1. https://nfrechette.github.io/2019/05/08/sign_flip_optimization/ +1. https://grin-tech.github.io/ +1. [Loop Optimizations in LLVM - Michael Kruse](https://www.youtube.com/watch?v=oAPgGYr8T3Y) +1. [Don’t think, just defunctionalize](https://www.joachim-breitner.de/blog/778-Don%E2%80%99t_think%2C_just_defunctionalize) + diff --git a/documentation/bookmark/security.md b/documentation/bookmark/security.md new file mode 100644 index 000000000..6809cd624 --- /dev/null +++ b/documentation/bookmark/security.md @@ -0,0 +1,98 @@ +# Homomorphic encryption + +1. https://github.com/Microsoft/SEAL + +# Privacy + +1. [Programming Differential Privacy](https://uvm-plaid.github.io/programming-dp/intro.html) +1. https://privacypatterns.org/ + +# Inspiration + +1. [Kasm: Desktop and Browser Isolation Platform](https://www.kasmweb.com/) +1. https://www.mailvelope.com + +# Finger-printing + +1. [How Browser Fingerprinting Works](https://kevq.uk/how-browser-fingerprinting-works/) +1. https://github.com/Valve/fingerprintjs2 + +# Access Control List + +1. [Capirca: Multi-platform ACL generation system](https://github.com/google/capirca) + +# Return-oriented programming + +1. https://github.com/immunant/selfrando + +# Static analysis + +1. [Cam Tenny - Beyond the Paper - End-to-End Program Analysis](https://www.youtube.com/watch?v=hmDz0Rv6hKI) +1. https://www.curry-on.org/2019/sessions/beyond-the-paper-end-to-end-program-analysis.html + +# Programming language + +1. [Secure Compilation](https://blog.sigplan.org/2019/07/01/secure-compilation/) + +# Cautionary tale + +1. [Thou Shalt Not Depend on Me: A look at JavaScript libraries in the wild](https://queue.acm.org/detail.cfm?id=3205288) +1. https://medium.com/@nodepractices/were-under-attack-23-node-js-security-best-practices-e33c146cb87d + +# Surface area + +1. [Towards Automated Application-Specific Software Stacks](https://arxiv.org/pdf/1907.01933.pdf) + +# Vulnerability + +1. [Against Cipher Agility in Cryptography Protocols](https://paragonie.com/blog/2019/10/against-agility-in-cryptography-protocols) +1. [Padding the struct: How a compiler optimization can disclose stack memory](https://www.nccgroup.trust/us/about-us/newsroom-and-events/blog/2019/october/padding-the-struct-how-a-compiler-optimization-can-disclose-stack-memory/) +1. [PCG generators are easily “crackable”](https://news.ycombinator.com/item?id=21475210) +1. [Safely Creating And Using Temporary Files](https://www.netmeister.org/blog/mktemp.html) +1. [CSS Injection Primitives](https://x-c3ll.github.io/posts/CSS-Injection-Primitives/) +1. https://medium.com/@shnatsel/how-rusts-standard-library-was-vulnerable-for-years-and-nobody-noticed-aebf0503c3d6 +1. [ACLs don’t](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.406.4684&rep=rep1&type=pdf) +1. https://www.cs.auckland.ac.nz/~pgut001/pubs/book.pdf +1. https://pwnedkeys.com/ +1. [What Spectre Means for Lanugage Implementers - Ben Titzer - PLISS 2019](https://www.youtube.com/watch?v=FGX-KD5Nh2g) +1. https://rambleed.com/ +1. https://browserleaks.com/ + +# Reference + +1. https://www.nomoreransom.org/en/index.html +1. [Open Source Security Foundation (OpenSSF)](https://openssf.org/) +1. [Don't get pwned: practicing the principle of least privilege](https://cloud.google.com/blog/products/identity-security/dont-get-pwned-practicing-the-principle-of-least-privilege) +1. [Good Practices for Capability URLs](https://www.w3.org/TR/capability-urls/) +1. [Secure Socket API](https://securesocketapi.org/) +1. [Mind your Language(s): A discussion about languages and security](https://www.ssi.gouv.fr/uploads/IMG/pdf/Mind_Your_Languages_-_version_longue.pdf) +1. https://www.microsoft.com/en-us/research/blog/scaling-the-everest-of-software-security-with-dr-jonathan-protzenko/ +1. https://www.owasp.org/index.php/Main_Page +1. https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project +1. https://wiki.sei.cmu.edu/confluence/display/seccode/Top+10+Secure+Coding+Practices +1. https://www.archive.ece.cmu.edu/~grey/ +1. http://www.cs.umd.edu/projects/PL/selinks/ +1. http://www.cis.upenn.edu/~stevez/sol/related.html +1. https://www.bsimm.com/ +1. https://www.microsoft.com/en-us/securityengineering/sdl/ +1. https://www.engineeringtrustworthysystems.com/ +1. http://www.ats-lang.org/ +1. http://www.cis.upenn.edu/~stevez/papers/publications.html +1. http://collingreene.com/6_buckets_of_prodsec.html +1. [On Post-Compromise Security](https://eprint.iacr.org/2016/221.pdf) +1. https://messaginglayersecurity.rocks/ +1. https://github.blog/2019-05-23-introducing-new-ways-to-keep-your-code-secure/ +1. [RustBelt](https://plv.mpi-sws.org/rustbelt/popl18/) +1. https://github.com/dckc/awesome-ocap +1. https://projects.csail.mit.edu/jeeves/ +1. https://www.sans.org/top25-software-errors/ +1. https://www.owasp.org/index.php/Top_10_2013-Top_10 +1. https://nvd.nist.gov/cwe.cfm +1. https://en.wikipedia.org/wiki/Software_Development_Security +1. http://gigi.nullneuron.net/gigilabs/the-sorry-state-of-the-web-in-2016/ +1. http://www.ranum.com/security/computer_security/editorials/dumb/index.html +1. [Information Technology — Programming languages — Guidance to avoiding vulnerabilities in programming languages](http://www.open-std.org/jtc1/sc22/wg23/docs/ISO-IECJTC1-SC22-WG23_N0751-tr24772-1-after-pre-meeting-51-webex-20171016.pdf) + +# Control-flow integrity +1. [On the Effectiveness of Type-based Control Flow Integrity](https://sajjadium.github.io/files/acsac2018typecfi_paper.pdf) + diff --git a/documentation/bookmark/text_editor & ide.md b/documentation/bookmark/text_editor & ide.md index 8ffbb5bb9..62e953e7b 100644 --- a/documentation/bookmark/text_editor & ide.md +++ b/documentation/bookmark/text_editor & ide.md @@ -50,6 +50,7 @@ # Reference +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) 1. [The Piece Table - the Unsung Hero of Your Text Editor](https://darrenburns.net/posts/piece-table/) 1. [Build Your Own Text Editor](https://viewsourcecode.org/snaptoken/kilo/) diff --git a/documentation/bookmark/tool/Search.md b/documentation/bookmark/tool/Search.md deleted file mode 100644 index 323f9e8bb..000000000 --- a/documentation/bookmark/tool/Search.md +++ /dev/null @@ -1,4 +0,0 @@ -# Semantic search - -1. https://github.com/returntocorp/semgrep - diff --git a/documentation/bookmark/tool/search.md b/documentation/bookmark/tool/search.md new file mode 100644 index 000000000..edc2a2df6 --- /dev/null +++ b/documentation/bookmark/tool/search.md @@ -0,0 +1,6 @@ +# Semantic search + +1. [The SOUL program query language](http://soft.vub.ac.be/SOUL/) +1. [Git - how do I view the change history of a method/function?](https://stackoverflow.com/questions/4781405/git-how-do-i-view-the-change-history-of-a-method-function) +1. https://github.com/returntocorp/semgrep + diff --git a/documentation/bookmark/type_theory/cost_analysis.md b/documentation/bookmark/type_theory/cost_analysis.md new file mode 100644 index 000000000..6e92c792e --- /dev/null +++ b/documentation/bookmark/type_theory/cost_analysis.md @@ -0,0 +1,4 @@ +# Reference + +1. [Liquidate Your Assets: Reasoning about Resource Usage in Liquid Haskell](http://www.cs.nott.ac.uk/~pszgmh/liquidate.pdf) + diff --git a/documentation/bookmark/type_theory/dependent_types.md b/documentation/bookmark/type_theory/dependent_types.md new file mode 100644 index 000000000..68fef10f3 --- /dev/null +++ b/documentation/bookmark/type_theory/dependent_types.md @@ -0,0 +1,51 @@ +# 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. [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/refinement.md b/documentation/bookmark/type_theory/refinement.md new file mode 100644 index 000000000..f0d0a1f06 --- /dev/null +++ b/documentation/bookmark/type_theory/refinement.md @@ -0,0 +1,4 @@ +# Reference + +1. [Refinement Kinds: Type-safe Programming with Practical Type-level Computation (Extended Version)](https://arxiv.org/abs/1908.00441) + diff --git a/documentation/bookmark/type_theory/row_polymorphism.md b/documentation/bookmark/type_theory/row_polymorphism.md new file mode 100644 index 000000000..3194405ff --- /dev/null +++ b/documentation/bookmark/type_theory/row_polymorphism.md @@ -0,0 +1,4 @@ +# Reference + +1. [Row Polymorphism without the Jargon](https://jadon.io/blog/row-polymorphism) + diff --git a/documentation/bookmark/type_theory/type_checking.md b/documentation/bookmark/type_theory/type_checking.md new file mode 100644 index 000000000..d26019e88 --- /dev/null +++ b/documentation/bookmark/type_theory/type_checking.md @@ -0,0 +1,4 @@ +# Reference + +1. [Let Should Not Be Generalised](https://www.microsoft.com/en-us/research/publication/let-should-not-be-generalised/) + diff --git a/stdlib/source/lux/control/concurrency/actor.lux b/stdlib/source/lux/control/concurrency/actor.lux index 584bf614e..f4d63c00f 100644 --- a/stdlib/source/lux/control/concurrency/actor.lux +++ b/stdlib/source/lux/control/concurrency/actor.lux @@ -81,11 +81,12 @@ (All [o s] (-> (Behavior o s) o (IO (Actor s)))) (io (let [[on_init on_mail] behavior self (:share [o s] - {(Behavior o s) - behavior} - {(Actor s) - (:abstraction {#obituary (promise.promise []) - #mailbox (atom (promise.promise []))})}) + (Behavior o s) + behavior + + (Actor s) + (:abstraction {#obituary (promise.promise []) + #mailbox (atom (promise.promise []))})) process (loop [state (on_init init) [|mailbox| _] (io.run (atom.read (get@ #mailbox (:representation self))))] (do {! promise.monad} @@ -159,11 +160,12 @@ (def: (mail message) (All [s o] (-> (Message s o) [(Promise (Try o)) (Mail s)])) (let [[promise resolve] (:share [s o] - {(Message s o) - message} - {[(Promise (Try o)) - (Resolver (Try o))] - (promise.promise [])})] + (Message s o) + message + + [(Promise (Try o)) + (Resolver (Try o))] + (promise.promise []))] [promise (function (_ state self) (do {! promise.monad} diff --git a/stdlib/source/lux/control/concurrency/frp.lux b/stdlib/source/lux/control/concurrency/frp.lux index 0c5303f46..868bc4153 100644 --- a/stdlib/source/lux/control/concurrency/frp.lux +++ b/stdlib/source/lux/control/concurrency/frp.lux @@ -58,11 +58,12 @@ (do {! io.monad} [current (atom.read sink) #let [[next resolve_next] (:share [a] - {(promise.Resolver (Maybe [a (Channel a)])) - current} - {[(Promise (Maybe [a (Channel a)])) - (promise.Resolver (Maybe [a (Channel a)]))] - (promise.promise [])})] + (promise.Resolver (Maybe [a (Channel a)])) + current + + [(Promise (Maybe [a (Channel a)])) + (promise.Resolver (Maybe [a (Channel a)]))] + (promise.promise []))] fed? (current (#.Some [value next]))] (if fed? ## I fed the sink. diff --git a/stdlib/source/lux/control/parser/binary.lux b/stdlib/source/lux/control/parser/binary.lux index 1dcba78cb..423cff74f 100644 --- a/stdlib/source/lux/control/parser/binary.lux +++ b/stdlib/source/lux/control/parser/binary.lux @@ -188,10 +188,11 @@ )] (loop [index 0 output (:share [v] - {(Parser v) - valueP} - {(Row v) - row.empty})] + (Parser v) + valueP + + (Row v) + row.empty)] (if (n.< count index) (do //.monad [value valueP] diff --git a/stdlib/source/lux/data/collection/queue/priority.lux b/stdlib/source/lux/data/collection/queue/priority.lux index 0f2b1e039..b7f971dd2 100644 --- a/stdlib/source/lux/data/collection/queue/priority.lux +++ b/stdlib/source/lux/data/collection/queue/priority.lux @@ -25,8 +25,9 @@ (def: :@: (:by_example [@] - {(tree.Builder @ Priority) - ..builder} + (tree.Builder @ Priority) + ..builder + @)) (abstract: #export (Queue a) diff --git a/stdlib/source/lux/data/collection/tree/finger.lux b/stdlib/source/lux/data/collection/tree/finger.lux index 96f7af432..ae30c294a 100644 --- a/stdlib/source/lux/data/collection/tree/finger.lux +++ b/stdlib/source/lux/data/collection/tree/finger.lux @@ -6,7 +6,7 @@ [data [collection ["." list ("#\." monoid)]]] - [type (#+ :by_example) + [type [abstract (#+ abstract: :abstraction :representation)]]]) (abstract: #export (Tree @ t v) diff --git a/stdlib/source/lux/data/text/unicode/set.lux b/stdlib/source/lux/data/text/unicode/set.lux index 1ac443d1a..c7b5748e4 100644 --- a/stdlib/source/lux/data/text/unicode/set.lux +++ b/stdlib/source/lux/data/text/unicode/set.lux @@ -20,8 +20,9 @@ (def: :@: (:by_example [@] - {(tree.Builder @ Block) - ..builder} + (tree.Builder @ Block) + ..builder + @)) (abstract: #export Set diff --git a/stdlib/source/lux/math/number/i16.lux b/stdlib/source/lux/math/number/i16.lux index 9168b5925..ba4f9cd02 100644 --- a/stdlib/source/lux/math/number/i16.lux +++ b/stdlib/source/lux/math/number/i16.lux @@ -10,10 +10,12 @@ (def: sub (maybe.assume (i64.sub 16))) -(def: #export I16 (:by_example [size] - {(Sub size) - ..sub} - (I64 size))) +(def: #export I16 + (:by_example [size] + (Sub size) + ..sub + + (I64 size))) (def: #export equivalence (Equivalence I16) (\ ..sub &equivalence)) (def: #export width Nat (\ ..sub width)) diff --git a/stdlib/source/lux/math/number/i32.lux b/stdlib/source/lux/math/number/i32.lux index 3a1811b81..9141c175d 100644 --- a/stdlib/source/lux/math/number/i32.lux +++ b/stdlib/source/lux/math/number/i32.lux @@ -10,10 +10,12 @@ (def: sub (maybe.assume (i64.sub 32))) -(def: #export I32 (:by_example [size] - {(Sub size) - ..sub} - (I64 size))) +(def: #export I32 + (:by_example [size] + (Sub size) + ..sub + + (I64 size))) (def: #export equivalence (Equivalence I32) (\ ..sub &equivalence)) (def: #export width Nat (\ ..sub width)) diff --git a/stdlib/source/lux/math/number/i8.lux b/stdlib/source/lux/math/number/i8.lux index bea35ff22..d6184315c 100644 --- a/stdlib/source/lux/math/number/i8.lux +++ b/stdlib/source/lux/math/number/i8.lux @@ -10,10 +10,12 @@ (def: sub (maybe.assume (i64.sub 8))) -(def: #export I8 (:by_example [size] - {(Sub size) - ..sub} - (I64 size))) +(def: #export I8 + (:by_example [size] + (Sub size) + ..sub + + (I64 size))) (def: #export equivalence (Equivalence I8) (\ ..sub &equivalence)) (def: #export width Nat (\ ..sub width)) diff --git a/stdlib/source/lux/tool/compiler/meta/archive/document.lux b/stdlib/source/lux/tool/compiler/meta/archive/document.lux index a8c656ff9..b60d77246 100644 --- a/stdlib/source/lux/tool/compiler/meta/archive/document.lux +++ b/stdlib/source/lux/tool/compiler/meta/archive/document.lux @@ -6,7 +6,7 @@ ["." try (#+ Try)] ["." exception (#+ exception:)] ["<>" parser - ["" binary (#+ Parser)]]] + [binary (#+ Parser)]]] [data [collection ["." dictionary (#+ Dictionary)]] @@ -35,10 +35,11 @@ (key.signature key) document//signature) (#try.Success (:share [e] - {(Key e) - key} - {e - (:assume document//content)})) + (Key e) + key + + e + (:assume document//content))) (exception.throw ..invalid-signature [(key.signature key) document//signature])))) diff --git a/stdlib/source/lux/type.lux b/stdlib/source/lux/type.lux index 77060876f..72375519d 100644 --- a/stdlib/source/lux/type.lux +++ b/stdlib/source/lux/type.lux @@ -414,7 +414,7 @@ (def: typed (Parser Typed) - (.record (<>.and .any .any))) + (<>.and .any .any)) ## TODO: Make sure the generated code always gets optimized away. (syntax: #export (:share {type_vars ..type_parameters} @@ -433,7 +433,9 @@ {extraction .any}) (wrap (list (` (:of ((~! :share) [(~+ (list\map code.local_identifier type_vars))] - {(~ (get@ #type exemplar)) - (~ (get@ #expression exemplar))} - {(~ extraction) - (:assume [])})))))) + + (~ (get@ #type exemplar)) + (~ (get@ #expression exemplar)) + + (~ extraction) + (:assume []))))))) diff --git a/stdlib/source/lux/type/quotient.lux b/stdlib/source/lux/type/quotient.lux index 8db23a9a2..f85f8b56c 100644 --- a/stdlib/source/lux/type/quotient.lux +++ b/stdlib/source/lux/type/quotient.lux @@ -42,8 +42,10 @@ (with_gensyms [g!t g!c g!%] (wrap (list (` ((~! type.:by_example) [(~ g!t) (~ g!c) (~ g!%)] - {(..Class (~ g!t) (~ g!c) (~ g!%)) - (~ class)} + + (..Class (~ g!t) (~ g!c) (~ g!%)) + (~ class) + (..Quotient (~ g!t) (~ g!c) (~ g!%)))))))) (structure: #export (equivalence super) diff --git a/stdlib/source/lux/type/refinement.lux b/stdlib/source/lux/type/refinement.lux index f99c9216c..5bbc90149 100644 --- a/stdlib/source/lux/type/refinement.lux +++ b/stdlib/source/lux/type/refinement.lux @@ -82,6 +82,7 @@ (syntax: #export (type refiner) (macro.with_gensyms [g!t g!%] (wrap (list (` ((~! type.:by_example) [(~ g!t) (~ g!%)] - {(..Refiner (~ g!t) (~ g!%)) - (~ refiner)} + (..Refiner (~ g!t) (~ g!%)) + (~ refiner) + (..Refined (~ g!t) (~ g!%)))))))) diff --git a/stdlib/source/test/lux/control/region.lux b/stdlib/source/test/lux/control/region.lux index 1023822ea..3fb0d1d82 100644 --- a/stdlib/source/test/lux/control/region.lux +++ b/stdlib/source/test/lux/control/region.lux @@ -59,15 +59,17 @@ (Comparison (All [a] (All [! r] (Region r (Thread !) a)))) (function (_ == left right) (case [(:share [a] - {(Equivalence a) - ==} - {(Try a) - (thread.run (:assume (/.run thread.monad left)))}) + (Equivalence a) + == + + (Try a) + (thread.run (:assume (/.run thread.monad left)))) (:share [a] - {(Equivalence a) - ==} - {(Try a) - (thread.run (:assume (/.run thread.monad right)))})] + (Equivalence a) + == + + (Try a) + (thread.run (:assume (/.run thread.monad right))))] [(#try.Success left) (#try.Success right)] (== left right) diff --git a/stdlib/source/test/lux/data/collection/tree/finger.lux b/stdlib/source/test/lux/data/collection/tree/finger.lux index 33b333396..55c3d9118 100644 --- a/stdlib/source/test/lux/data/collection/tree/finger.lux +++ b/stdlib/source/test/lux/data/collection/tree/finger.lux @@ -21,8 +21,9 @@ (def: :@: (:by_example [@] - {(/.Builder @ Text) - ..builder} + (/.Builder @ Text) + ..builder + @)) (def: #export test diff --git a/stdlib/source/test/lux/data/text/format.lux b/stdlib/source/test/lux/data/text/format.lux index 0f61caa1f..8b1e9a700 100644 --- a/stdlib/source/test/lux/data/text/format.lux +++ b/stdlib/source/test/lux/data/text/format.lux @@ -19,7 +19,7 @@ ["." json]] [collection ["." list ("#\." functor)]]] - [time + ["." time ["." instant] ["." duration] ["." date]] @@ -106,6 +106,7 @@ [/.instant instant.codec random.instant] [/.duration duration.codec random.duration] [/.date date.codec random.date] + [/.time time.codec random.time] [/.nat/2 nat.binary random.nat] [/.nat/8 nat.octal random.nat] diff --git a/stdlib/source/test/lux/type.lux b/stdlib/source/test/lux/type.lux index 0b3f3b4d8..b490469cf 100644 --- a/stdlib/source/test/lux/type.lux +++ b/stdlib/source/test/lux/type.lux @@ -164,7 +164,9 @@ #.None)] (/\= (.type (List Nat)) (/.:by_example [a] - {(Maybe a) example} + (Maybe a) + example + (List a))))) /abstract.test -- cgit v1.2.3