diff options
5 files changed, 35 insertions, 37 deletions
diff --git a/luxc/src/lux/analyser/proc/common.clj b/luxc/src/lux/analyser/proc/common.clj index f382c2ff3..8c6bd9d88 100644 --- a/luxc/src/lux/analyser/proc/common.clj +++ b/luxc/src/lux/analyser/proc/common.clj @@ -135,9 +135,9 @@ (let [inputT <input-type> outputT <output-type>] (defn <name> [analyse exo-type ?values] - (|do [:let [(&/$Cons paramC (&/$Cons subjectC (&/$Nil))) ?values] - paramA (&&/analyse-1 analyse <input-type> paramC) + (|do [:let [(&/$Cons subjectC (&/$Cons paramC (&/$Nil))) ?values] subjectA (&&/analyse-1 analyse <input-type> subjectC) + paramA (&&/analyse-1 analyse <input-type> paramC) _ (&type/check exo-type <output-type>) _cursor &/cursor] (return (&/|list (&&/|meta exo-type _cursor diff --git a/new-luxc/source/luxc/lang/translation/jvm/procedure/common.jvm.lux b/new-luxc/source/luxc/lang/translation/jvm/procedure/common.jvm.lux index b073aa3b7..1b784ee76 100644 --- a/new-luxc/source/luxc/lang/translation/jvm/procedure/common.jvm.lux +++ b/new-luxc/source/luxc/lang/translation/jvm/procedure/common.jvm.lux @@ -119,7 +119,7 @@ ### Bits (do-template [<name> <op>] - [(def: (<name> [inputI maskI]) + [(def: (<name> [maskI inputI]) Binary (|>> inputI (_.unwrap #$.Long) maskI (_.unwrap #$.Long) @@ -131,7 +131,7 @@ ) (do-template [<name> <op>] - [(def: (<name> [inputI shiftI]) + [(def: (<name> [shiftI inputI]) Binary (|>> inputI (_.unwrap #$.Long) shiftI jvm-intI @@ -162,11 +162,11 @@ <op> (_.wrap <type>)))] - [i64::+ #$.Long _.LADD] - [i64::- #$.Long _.LSUB] - [i64::* #$.Long _.LMUL] - [i64::/ #$.Long _.LDIV] - [i64::% #$.Long _.LREM] + [i64::+ #$.Long _.LADD] + [i64::- #$.Long _.LSUB] + [int::* #$.Long _.LMUL] + [int::/ #$.Long _.LDIV] + [int::% #$.Long _.LREM] [frac::+ #$.Double _.DADD] [frac::- #$.Double _.DSUB] @@ -188,7 +188,7 @@ [<eq> +0] [<lt> -1])] - [i64::= i64::< (_.unwrap #$.Long) _.LCMP] + [i64::= int::< (_.unwrap #$.Long) _.LCMP] [frac::= frac::< (_.unwrap #$.Double) _.DCMPG] ) @@ -197,11 +197,11 @@ Unary (|>> inputI <prepare> <transform>))] - [i64::to-frac (_.unwrap #$.Long) (<| (_.wrap #$.Double) _.L2D)] - [i64::char (_.unwrap #$.Long) + [int::frac (_.unwrap #$.Long) (<| (_.wrap #$.Double) _.L2D)] + [int::char (_.unwrap #$.Long) ((|>> _.L2I _.I2C (_.INVOKESTATIC "java.lang.Character" "toString" (_t.method (list _t.char) (#.Some $String) (list)) #0)))] - [frac::to-i64 (_.unwrap #$.Double) (<| (_.wrap #$.Long) _.D2L)] + [frac::int (_.unwrap #$.Double) (<| (_.wrap #$.Long) _.D2L)] [frac::encode (_.unwrap #$.Double) (_.INVOKESTATIC "java.lang.Double" "toString" (_t.method (list _t.double) (#.Some $String) (list)) #0)] [frac::decode ..check-stringI @@ -325,12 +325,12 @@ Bundle (<| (bundle.prefix "int") (|> (: Bundle bundle.empty) - (bundle.install "*" (binary i64::*)) - (bundle.install "/" (binary i64::/)) - (bundle.install "%" (binary i64::%)) - (bundle.install "<" (binary i64::<)) - (bundle.install "to-frac" (unary i64::to-frac)) - (bundle.install "char" (unary i64::char))))) + (bundle.install "*" (binary int::*)) + (bundle.install "/" (binary int::/)) + (bundle.install "%" (binary int::%)) + (bundle.install "<" (binary int::<)) + (bundle.install "frac" (unary int::frac)) + (bundle.install "char" (unary int::char))))) (def: bundle::frac Bundle @@ -346,7 +346,7 @@ (bundle.install "smallest" (nullary frac::smallest)) (bundle.install "min" (nullary frac::min)) (bundle.install "max" (nullary frac::max)) - (bundle.install "to-i64" (unary frac::to-i64)) + (bundle.install "int" (unary frac::int)) (bundle.install "encode" (unary frac::encode)) (bundle.install "decode" (unary frac::decode))))) 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))))))) |