diff options
author | Eduardo Julian | 2018-08-20 18:57:06 -0400 |
---|---|---|
committer | Eduardo Julian | 2018-08-20 18:57:06 -0400 |
commit | 7dc94b0ba528b40d13e88732ba307a1a24ac93c3 (patch) | |
tree | e53a0caa7f2bccbe59e07de0874c655baf654681 /stdlib/source | |
parent | bd1523278490c1d07a82ad9deb481ebf29e61fdb (diff) |
- Fixed ordering issue with Lux arithmetic extensions.
- Fixed naming issue with extensions.
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux.lux | 22 | ||||
-rw-r--r-- | stdlib/source/lux/compiler/default/phase/extension.lux | 5 | ||||
-rw-r--r-- | stdlib/source/lux/compiler/default/phase/extension/analysis/common.lux | 5 |
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))))))) |