Skip to content

Commit 791e98b

Browse files
authored
Merge pull request #5836 from unisonweb/runarorama/littleEndianByteArray
Add little-endian reads for byte arrays
2 parents 897f245 + 49427d8 commit 791e98b

File tree

19 files changed

+1220
-883
lines changed

19 files changed

+1220
-883
lines changed

parser-typechecker/src/Unison/Builtin.hs

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,16 @@ builtinsSrc =
632632
mbytearrayt g --> nat --> Type.effect () [g, DD.exceptionType ()] nat,
633633
B "MutableByteArray.read64be" . forall1 "g" $ \g ->
634634
mbytearrayt g --> nat --> Type.effect () [g, DD.exceptionType ()] nat,
635+
B "MutableByteArray.read16le" . forall1 "g" $ \g ->
636+
mbytearrayt g --> nat --> Type.effect () [g, DD.exceptionType ()] nat,
637+
B "MutableByteArray.read24le" . forall1 "g" $ \g ->
638+
mbytearrayt g --> nat --> Type.effect () [g, DD.exceptionType ()] nat,
639+
B "MutableByteArray.read32le" . forall1 "g" $ \g ->
640+
mbytearrayt g --> nat --> Type.effect () [g, DD.exceptionType ()] nat,
641+
B "MutableByteArray.read40le" . forall1 "g" $ \g ->
642+
mbytearrayt g --> nat --> Type.effect () [g, DD.exceptionType ()] nat,
643+
B "MutableByteArray.read64le" . forall1 "g" $ \g ->
644+
mbytearrayt g --> nat --> Type.effect () [g, DD.exceptionType ()] nat,
635645
B "MutableArray.write" . forall2 "g" "a" $ \g a ->
636646
marrayt g a --> nat --> a --> Type.effect () [g, DD.exceptionType ()] unit,
637647
B "MutableByteArray.write8" . forall1 "g" $ \g ->
@@ -642,6 +652,12 @@ builtinsSrc =
642652
mbytearrayt g --> nat --> nat --> Type.effect () [g, DD.exceptionType ()] unit,
643653
B "MutableByteArray.write64be" . forall1 "g" $ \g ->
644654
mbytearrayt g --> nat --> nat --> Type.effect () [g, DD.exceptionType ()] unit,
655+
B "MutableByteArray.write16le" . forall1 "g" $ \g ->
656+
mbytearrayt g --> nat --> nat --> Type.effect () [g, DD.exceptionType ()] unit,
657+
B "MutableByteArray.write32le" . forall1 "g" $ \g ->
658+
mbytearrayt g --> nat --> nat --> Type.effect () [g, DD.exceptionType ()] unit,
659+
B "MutableByteArray.write64le" . forall1 "g" $ \g ->
660+
mbytearrayt g --> nat --> nat --> Type.effect () [g, DD.exceptionType ()] unit,
645661
B "ImmutableArray.copyTo!" . forall2 "g" "a" $ \g a ->
646662
marrayt g a
647663
--> nat
@@ -670,6 +686,16 @@ builtinsSrc =
670686
ibytearrayt --> nat --> Type.effect1 () (DD.exceptionType ()) nat,
671687
B "ImmutableByteArray.read64be" $
672688
ibytearrayt --> nat --> Type.effect1 () (DD.exceptionType ()) nat,
689+
B "ImmutableByteArray.read16le" $
690+
ibytearrayt --> nat --> Type.effect1 () (DD.exceptionType ()) nat,
691+
B "ImmutableByteArray.read24le" $
692+
ibytearrayt --> nat --> Type.effect1 () (DD.exceptionType ()) nat,
693+
B "ImmutableByteArray.read32le" $
694+
ibytearrayt --> nat --> Type.effect1 () (DD.exceptionType ()) nat,
695+
B "ImmutableByteArray.read40le" $
696+
ibytearrayt --> nat --> Type.effect1 () (DD.exceptionType ()) nat,
697+
B "ImmutableByteArray.read64le" $
698+
ibytearrayt --> nat --> Type.effect1 () (DD.exceptionType ()) nat,
673699
B "MutableArray.freeze!" . forall2 "g" "a" $ \g a ->
674700
marrayt g a --> Type.effect1 () g (iarrayt a),
675701
B "MutableByteArray.freeze!" . forall1 "g" $ \g ->

unison-runtime/src/Unison/Runtime/Builtin.hs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1211,12 +1211,20 @@ declareForeigns = do
12111211
declareForeign Untracked 2 MutableByteArray_read32be
12121212
declareForeign Untracked 2 MutableByteArray_read40be
12131213
declareForeign Untracked 2 MutableByteArray_read64be
1214+
declareForeign Untracked 2 MutableByteArray_read16le
1215+
declareForeign Untracked 2 MutableByteArray_read24le
1216+
declareForeign Untracked 2 MutableByteArray_read32le
1217+
declareForeign Untracked 2 MutableByteArray_read40le
1218+
declareForeign Untracked 2 MutableByteArray_read64le
12141219

12151220
declareForeign Untracked 3 MutableArray_write
12161221
declareForeign Untracked 3 MutableByteArray_write8
12171222
declareForeign Untracked 3 MutableByteArray_write16be
12181223
declareForeign Untracked 3 MutableByteArray_write32be
12191224
declareForeign Untracked 3 MutableByteArray_write64be
1225+
declareForeign Untracked 3 MutableByteArray_write16le
1226+
declareForeign Untracked 3 MutableByteArray_write32le
1227+
declareForeign Untracked 3 MutableByteArray_write64le
12201228

12211229
declareForeign Untracked 2 ImmutableArray_read
12221230
declareForeign Untracked 2 ImmutableByteArray_read8
@@ -1225,6 +1233,11 @@ declareForeigns = do
12251233
declareForeign Untracked 2 ImmutableByteArray_read32be
12261234
declareForeign Untracked 2 ImmutableByteArray_read40be
12271235
declareForeign Untracked 2 ImmutableByteArray_read64be
1236+
declareForeign Untracked 2 ImmutableByteArray_read16le
1237+
declareForeign Untracked 2 ImmutableByteArray_read24le
1238+
declareForeign Untracked 2 ImmutableByteArray_read32le
1239+
declareForeign Untracked 2 ImmutableByteArray_read40le
1240+
declareForeign Untracked 2 ImmutableByteArray_read64le
12281241

12291242
declareForeign Untracked 1 MutableByteArray_freeze_force
12301243
declareForeign Untracked 1 MutableArray_freeze_force

0 commit comments

Comments
 (0)