aboutsummaryrefslogtreecommitdiff
path: root/stdlib
diff options
context:
space:
mode:
authorEduardo Julian2018-08-20 18:57:06 -0400
committerEduardo Julian2018-08-20 18:57:06 -0400
commit7dc94b0ba528b40d13e88732ba307a1a24ac93c3 (patch)
treee53a0caa7f2bccbe59e07de0874c655baf654681 /stdlib
parentbd1523278490c1d07a82ad9deb481ebf29e61fdb (diff)
- Fixed ordering issue with Lux arithmetic extensions.
- Fixed naming issue with extensions.
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux.lux22
-rw-r--r--stdlib/source/lux/compiler/default/phase/extension.lux5
-rw-r--r--stdlib/source/lux/compiler/default/phase/extension/analysis/common.lux5
3 files changed, 15 insertions, 17 deletions
diff --git a/stdlib/source/lux.lux b/stdlib/source/lux.lux
index 48540c114..bf92eb4db 100644
--- a/stdlib/source/lux.lux
+++ b/stdlib/source/lux.lux
@@ -1138,7 +1138,7 @@
(#.Cons export-meta
#.Nil))
(#Function Nat (#Function Nat Nat))
- ("lux i64 -" param subject))
+ ("lux i64 -" subject param))
(def:'' (n/* param subject)
(#.Cons (doc-meta "Nat(ural) multiplication.")
@@ -2204,9 +2204,7 @@
(def:''' low-mask
(list)
I64
- (|> 1
- ("lux i64 left-shift" 32)
- ("lux i64 -" 1)))
+ ("lux i64 -" ("lux i64 left-shift" 32 1) 1))
(def:''' (low-bits value)
(list)
@@ -2376,7 +2374,7 @@
flat ("lux int *"
("lux coerce" Int quotient)
("lux coerce" Int param))
- remainder ("lux i64 -" flat subject)]
+ remainder ("lux i64 -" subject flat)]
(if (n/< param remainder)
quotient
("lux i64 +" 1 quotient)))))
@@ -2389,7 +2387,7 @@
flat ("lux int *"
("lux coerce" Int div)
("lux coerce" Int param))]
- [div ("lux i64 -" flat subject)]))
+ [div ("lux i64 -" subject flat)]))
(def:''' #export (n/% param subject)
(list [(tag$ ["lux" "doc"])
@@ -2398,14 +2396,14 @@
(let' [flat ("lux int *"
("lux coerce" Int (n// param subject))
("lux coerce" Int param))]
- ("lux i64 -" flat subject)))
+ ("lux i64 -" subject flat)))
(do-template [<type> <name> <op> <doc>]
[(def:''' #export (<name> param subject)
(list [(tag$ ["lux" "doc"])
(text$ <doc>)])
(-> <type> <type> <type>)
- (<op> param subject))]
+ (<op> subject param))]
[ Int i/+ "lux i64 +" "Int(eger) addition."]
[ Int i/- "lux i64 -" "Int(eger) substraction."]
@@ -2476,7 +2474,7 @@
(if ("lux i64 =" +0 trailing-zeroes)
[1 ("lux i64 logical-right-shift" 1 remaining)]
[trailing-zeroes remaining]))
- shift ("lux i64 -" trailing-zeroes 64)
+ shift ("lux i64 -" 64 trailing-zeroes)
numerator ("lux i64 left-shift" shift 1)]
("lux coerce" Rev
("lux int *"
@@ -5172,11 +5170,11 @@
)]
($_ text/compose "\"" escaped "\"")))
-(do-template [<name> <special> <doc>]
- [(def: #export <name>
+(do-template [<name> <extension> <doc>]
+ [(def: #export (<name> value)
{#.doc <doc>}
(All [s] (-> (I64 s) (I64 s)))
- (|>> (<special> 1)))]
+ (<extension> value 1))]
[inc "lux i64 +" "Increment function."]
[dec "lux i64 -" "Decrement function."]
diff --git a/stdlib/source/lux/compiler/default/phase/extension.lux b/stdlib/source/lux/compiler/default/phase/extension.lux
index 99c7152c7..38ca02700 100644
--- a/stdlib/source/lux/compiler/default/phase/extension.lux
+++ b/stdlib/source/lux/compiler/default/phase/extension.lux
@@ -5,10 +5,10 @@
["ex" exception (#+ exception:)]]
[data
["." error (#+ Error)]
- ["." text
+ ["." text ("text/." Order<Text>)
format]
[collection
- [list ("list/." Functor<List>)]
+ ["." list ("list/." Functor<List>)]
["." dictionary (#+ Dictionary)]]]
["." function]]
["." //])
@@ -48,6 +48,7 @@
["Extension" (%t name)]
["Available" (|> bundle
dictionary.keys
+ (list.sort text/<)
(list/map (|>> %t (format "\n\t")))
(text.join-with ""))]))
diff --git a/stdlib/source/lux/compiler/default/phase/extension/analysis/common.lux b/stdlib/source/lux/compiler/default/phase/extension/analysis/common.lux
index a55e7b2b5..690a4accb 100644
--- a/stdlib/source/lux/compiler/default/phase/extension/analysis/common.lux
+++ b/stdlib/source/lux/compiler/default/phase/extension/analysis/common.lux
@@ -171,7 +171,7 @@
(bundle.install "/" (binary Int Int Int))
(bundle.install "%" (binary Int Int Int))
(bundle.install "<" (binary Int Int Bit))
- (bundle.install "to-frac" (unary Int Frac))
+ (bundle.install "frac" (unary Int Frac))
(bundle.install "char" (unary Int Text)))))
(def: bundle::frac
@@ -188,8 +188,7 @@
(bundle.install "smallest" (nullary Frac))
(bundle.install "min" (nullary Frac))
(bundle.install "max" (nullary Frac))
- (bundle.install "to-rev" (unary Frac Rev))
- (bundle.install "to-int" (unary Frac Int))
+ (bundle.install "int" (unary Frac Int))
(bundle.install "encode" (unary Frac Text))
(bundle.install "decode" (unary Text (type (Maybe Frac)))))))