diff options
Diffstat (limited to 'stdlib/source/lux/target/jvm/encoding/signed.lux')
-rw-r--r-- | stdlib/source/lux/target/jvm/encoding/signed.lux | 106 |
1 files changed, 0 insertions, 106 deletions
diff --git a/stdlib/source/lux/target/jvm/encoding/signed.lux b/stdlib/source/lux/target/jvm/encoding/signed.lux deleted file mode 100644 index 934d48ce2..000000000 --- a/stdlib/source/lux/target/jvm/encoding/signed.lux +++ /dev/null @@ -1,106 +0,0 @@ -(.module: - [lux (#- int) - [abstract - [equivalence (#+ Equivalence)] - [order (#+ Order)]] - [control - ["." try (#+ Try)] - ["." exception (#+ exception:)]] - [data - [text - ["%" format (#+ format)]] - ["." format #_ - ["#" binary (#+ Writer)]]] - [macro - ["." template]] - [math - [number - ["." i64] - ["n" nat] - ["i" int]]] - [type - abstract]]) - -(abstract: #export (Signed brand) - Int - - (def: #export value - (-> (Signed Any) Int) - (|>> :representation)) - - (implementation: #export equivalence - (All [brand] (Equivalence (Signed brand))) - (def: (= reference sample) - (i.= (:representation reference) (:representation sample)))) - - (implementation: #export order - (All [brand] (Order (Signed brand))) - - (def: &equivalence ..equivalence) - (def: (< reference sample) - (i.< (:representation reference) (:representation sample)))) - - (exception: #export (value_exceeds_the_scope {value Int} - {scope Nat}) - (exception.report - ["Value" (%.int value)] - ["Scope (in bytes)" (%.nat scope)])) - - (template [<bytes> <name> <size> <constructor> <maximum> <+> <->] - [(with_expansions [<raw> (template.identifier [<name> "'"])] - (abstract: #export <raw> Any) - (type: #export <name> (Signed <raw>))) - - (def: #export <size> <bytes>) - - (def: #export <maximum> - <name> - (|> <bytes> (n.* i64.bits_per_byte) dec i64.mask :abstraction)) - - (def: #export <constructor> - (-> Int (Try <name>)) - (let [positive (|> <bytes> (n.* i64.bits_per_byte) i64.mask) - negative (|> positive .int (i.right_shift 1) i64.not)] - (function (_ value) - (if (i.= (if (i.< +0 value) - (i64.or negative value) - (i64.and positive value)) - value) - (#try.Success (:abstraction value)) - (exception.throw ..value_exceeds_the_scope [value <size>]))))) - - (template [<abstract_operation> <concrete_operation>] - [(def: #export (<abstract_operation> parameter subject) - (-> <name> <name> (Try <name>)) - (<constructor> - (<concrete_operation> (:representation parameter) - (:representation subject))))] - - [<+> i.+] - [<-> i.-] - )] - - [1 S1 bytes/1 s1 maximum/1 +/1 -/1] - [2 S2 bytes/2 s2 maximum/2 +/2 -/2] - [4 S4 bytes/4 s4 maximum/4 +/4 -/4] - ) - - (template [<name> <from> <to>] - [(def: #export <name> - (-> <from> <to>) - (|>> :transmutation))] - - [lift/2 S1 S2] - [lift/4 S2 S4] - ) - - (template [<writer_name> <type> <writer>] - [(def: #export <writer_name> - (Writer <type>) - (|>> :representation <writer>))] - - [writer/1 S1 format.bits/8] - [writer/2 S2 format.bits/16] - [writer/4 S4 format.bits/32] - ) - ) |