aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--documentation/research/Abstract interpretation.md4
-rw-r--r--documentation/research/Code mods.md6
-rw-r--r--documentation/research/Memory Management.md4
-rw-r--r--documentation/research/cryptography.md1
-rw-r--r--documentation/research/database.md6
-rw-r--r--documentation/research/distributed_programming.md1
-rw-r--r--documentation/research/math.md1
-rw-r--r--stdlib/source/lux/data/text/format.lux7
-rw-r--r--stdlib/source/lux/target/jvm/loader.lux2
-rw-r--r--stdlib/source/lux/target/jvm/type/alias.lux9
-rw-r--r--stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux4
-rw-r--r--stdlib/source/test/lux/target/jvm.lux2
12 files changed, 30 insertions, 17 deletions
diff --git a/documentation/research/Abstract interpretation.md b/documentation/research/Abstract interpretation.md
new file mode 100644
index 000000000..d98525f7c
--- /dev/null
+++ b/documentation/research/Abstract interpretation.md
@@ -0,0 +1,4 @@
+# Reference
+
+1. ["Easy Abstract Interpretation with SPARTA" by Arnaud Venet and Jez Ng](https://www.youtube.com/watch?v=_fA7vkVJhF8)
+
diff --git a/documentation/research/Code mods.md b/documentation/research/Code mods.md
new file mode 100644
index 000000000..8f90f91f6
--- /dev/null
+++ b/documentation/research/Code mods.md
@@ -0,0 +1,6 @@
+# Reference
+
+1. ["Parser Parser Combinators for Program Transformation" by Rijnard van Tonder](https://www.youtube.com/watch?v=JMZLBB_BFNg)
+1. [Codemod](https://github.com/facebook/codemod)
+1. [jscodeshift](https://github.com/facebook/jscodeshift)
+
diff --git a/documentation/research/Memory Management.md b/documentation/research/Memory Management.md
index 80f80ce12..0d761c700 100644
--- a/documentation/research/Memory Management.md
+++ b/documentation/research/Memory Management.md
@@ -1,3 +1,7 @@
+# Compaction
+
+1. ["Compacting the Uncompactable" by Bobby Powers](https://www.youtube.com/watch?v=c1UBJbfR-H0)
+
# Reference counting
1. [Counting Immutable Beans: Reference Counting Optimized for Purely Functional Programming](https://arxiv.org/abs/1908.05647)
diff --git a/documentation/research/cryptography.md b/documentation/research/cryptography.md
index 2dfe331e4..7eaf9cc9f 100644
--- a/documentation/research/cryptography.md
+++ b/documentation/research/cryptography.md
@@ -9,6 +9,7 @@
# Zero-knowledge proof
+1. ["Rhapsody in Zero Knowledge: Proving Without Revealing" by Tony Arcieri](https://www.youtube.com/watch?v=jKSz7W5dTgY)
1. [Zero-Knowledge Proofs: What are they, how do they work, and are they fast yet?](https://zkp.science/)
# Hash
diff --git a/documentation/research/database.md b/documentation/research/database.md
index be17fb766..5c1566fbe 100644
--- a/documentation/research/database.md
+++ b/documentation/research/database.md
@@ -1,12 +1,12 @@
# Reference
+1. ["Temporal Databases for Streaming Architectures" by Jeremy Taylor and Jon Pither](https://www.youtube.com/watch?v=ykbYNBE-V3k)
+1. ["Makings of a Modern ACID Compliant Distributed Database" by Attila Szegedi](https://www.youtube.com/watch?v=pn8mCeX3LDE)
1. https://edgedb.com/blog/a-path-to-a-10x-database/
1. https://cstack.github.io/db_tutorial/
1. http://www.sql-workbench.eu/dbms_comparison.html
1. http://www.interdb.jp/pg/index.html
-1. Foundations of Databases
-
- http://webdam.inria.fr/Alice/
+1. [Foundations of Databases](http://webdam.inria.fr/Alice/)
1. https://medium.com/textileio/building-the-firebase-for-crdts-7dd8dea8953a
# Query
diff --git a/documentation/research/distributed_programming.md b/documentation/research/distributed_programming.md
index 17f48122c..fbc6fb734 100644
--- a/documentation/research/distributed_programming.md
+++ b/documentation/research/distributed_programming.md
@@ -48,6 +48,7 @@
# Programming language
+1. ["Unison: a new distributed programming language" by Paul Chiusano](https://www.youtube.com/watch?v=gCWtkvDQ2ZI)
1. http://radicle.xyz/
1. [Lambda World 2018 - Introduction to the Unison programming language - RĂșnar Bjarnason](https://www.youtube.com/watch?v=rp_Eild1aq8)
1. https://www.infoq.com/presentations/language-design-process
diff --git a/documentation/research/math.md b/documentation/research/math.md
index 6f481936c..326d0f6db 100644
--- a/documentation/research/math.md
+++ b/documentation/research/math.md
@@ -21,6 +21,7 @@
# Topology
+1. [What is Topology?](https://medium.com/cantors-paradise/what-is-topology-963ef4cc6365)
1. [Pointless topology](https://en.wikipedia.org/wiki/Pointless_topology)
1. [ELEMENTARY APPLIED TOPOLOGY](https://www.math.upenn.edu/~ghrist/notes.html)
diff --git a/stdlib/source/lux/data/text/format.lux b/stdlib/source/lux/data/text/format.lux
index 99dbc2a73..9f47c4292 100644
--- a/stdlib/source/lux/data/text/format.lux
+++ b/stdlib/source/lux/data/text/format.lux
@@ -63,14 +63,9 @@
[instant instant.Instant instant.to-text]
[duration duration.Duration duration.encode]
[date date.Date (:: date.codec encode)]
+ [cursor Cursor .cursor-description]
)
-(def: #export (cursor [file line column])
- (Format Cursor)
- (|> (.list (..text file) (..nat line) (..nat column))
- (text.join-with ", ")
- (text.enclose ["[" "]"])))
-
(def: #export (mod modular)
(All [m] (Format (modular.Mod m)))
(let [[_ modulus] (modular.un-mod modular)]
diff --git a/stdlib/source/lux/target/jvm/loader.lux b/stdlib/source/lux/target/jvm/loader.lux
index ed82231e1..3e17d42c8 100644
--- a/stdlib/source/lux/target/jvm/loader.lux
+++ b/stdlib/source/lux/target/jvm/loader.lux
@@ -45,7 +45,7 @@
(invoke [java/lang/Object [java/lang/Object]] #try java/lang/Object))
(import: #long (java/lang/Class a)
- (getDeclaredMethod [java/lang/String [(java/lang/Class java/lang/Object)]] java/lang/reflect/Method))
+ (getDeclaredMethod [java/lang/String [(java/lang/Class [? < java/lang/Object])]] java/lang/reflect/Method))
(import: #long java/lang/Integer
(#static TYPE (java/lang/Class java/lang/Integer)))
diff --git a/stdlib/source/lux/target/jvm/type/alias.lux b/stdlib/source/lux/target/jvm/type/alias.lux
index 9d92d7b6a..cd631a251 100644
--- a/stdlib/source/lux/target/jvm/type/alias.lux
+++ b/stdlib/source/lux/target/jvm/type/alias.lux
@@ -53,13 +53,14 @@
(<>.after (<t>.this //descriptor.class-prefix))
(<>.before (<t>.this //descriptor.class-suffix))))
-(template [<name> <prefix> <constructor>]
+(template [<name> <prefix> <bound> <constructor>]
[(def: <name>
(-> (Parser (Type Class)) (Parser (Type Parameter)))
- (<>.after (<t>.this <prefix>)))]
+ (|>> (<>.after (<t>.this <prefix>))
+ (:: <>.monad map <bound>)))]
- [lower //signature.lower-prefix ..Lower]
- [upper //signature.upper-prefix ..Upper]
+ [lower //signature.lower-prefix //.lower ..Lower]
+ [upper //signature.upper-prefix //.upper ..Upper]
)
(def: (parameter aliasing)
diff --git a/stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux b/stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux
index 2d1dec4b2..63f0561c0 100644
--- a/stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux
+++ b/stdlib/source/lux/tool/compiler/phase/extension/analysis/jvm.lux
@@ -1128,7 +1128,7 @@
[inputsT (|> (java/lang/reflect/Method::getGenericParameterTypes method)
array.to-list
(monad.map @ (|>> reflection!.type ////.lift))
- (////@map (monad.map @ (reflection-type mapping)))
+ (////@map (monad.map @ (..reflection-type mapping)))
////@join)
outputT (|> method
java/lang/reflect/Method::getGenericReturnType
@@ -1139,7 +1139,7 @@
exceptionsT (|> (java/lang/reflect/Method::getGenericExceptionTypes method)
array.to-list
(monad.map @ (|>> reflection!.type ////.lift))
- (////@map (monad.map @ (reflection-type mapping)))
+ (////@map (monad.map @ (..reflection-type mapping)))
////@join)
#let [methodT (<| (type.univ-q (dictionary.size mapping))
(type.function (case method-style
diff --git a/stdlib/source/test/lux/target/jvm.lux b/stdlib/source/test/lux/target/jvm.lux
index fc7c140b4..5ffe668fc 100644
--- a/stdlib/source/test/lux/target/jvm.lux
+++ b/stdlib/source/test/lux/target/jvm.lux
@@ -67,7 +67,7 @@
(invoke [java/lang/Object [java/lang/Object]] #try java/lang/Object))
(import: #long (java/lang/Class c)
- (getDeclaredMethod [java/lang/String [(java/lang/Class java/lang/Object)]] java/lang/reflect/Method))
+ (getDeclaredMethod [java/lang/String [(java/lang/Class [? < java/lang/Object])]] java/lang/reflect/Method))
(import: #long java/lang/Object
(getClass [] (java/lang/Class java/lang/Object))