aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/target/jvm/encoding/signed.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/target/jvm/encoding/signed.lux')
-rw-r--r--stdlib/source/lux/target/jvm/encoding/signed.lux106
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]
- )
- )