summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStephane Glondu <steph@glondu.net>2021-12-04 17:41:14 +0100
committerStephane Glondu <steph@glondu.net>2021-12-04 17:41:14 +0100
commit337221ce104372301ecf4a17beca912e2a6b8331 (patch)
treeaee7ea0c26a2d6c9af6f2debe9767517476c2c45
parent0d989ae5beb9b9995c2f4da5bdde345bc6df727e (diff)
parentf831322eb38c955f97a3b5c7e4ec0aa1918bc997 (diff)
Update upstream source from tag 'upstream/1.2'
Update to upstream version '1.2' with Debian dir eb29899c6decc6f853b3b0dedcf8f86b07b273e1
-rw-r--r--CHANGES.md8
-rw-r--r--appveyor.yml13
-rw-r--r--ocplib-endian.opam4
-rw-r--r--src/be_ocaml_401.ml9
-rw-r--r--src/common.ml16
-rw-r--r--src/common_float.ml8
-rw-r--r--src/endianBigstring.cppo.ml4
-rw-r--r--src/endianBytes.cppo.ml4
-rw-r--r--src/endianString.cppo.ml11
-rw-r--r--src/endianString.cppo.mli7
-rw-r--r--src/le_ocaml_401.ml9
-rw-r--r--src/ne_ocaml_401.ml9
-rw-r--r--tests/test_string.cppo.ml3
13 files changed, 92 insertions, 13 deletions
diff --git a/CHANGES.md b/CHANGES.md
index bedaa36..eef35a7 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -1,3 +1,11 @@
+1.2
+---
+
+* Fix for js-of-ocaml (@hhugo)
+* Bump minimal OCaml version to 4.03.0
+* Add [@@ocaml.inline] annotations where relevant
+* Add [@@ocaml.deprecated] annotations on EndianString.set_* functions
+
1.1
---
diff --git a/appveyor.yml b/appveyor.yml
new file mode 100644
index 0000000..74ee06f
--- /dev/null
+++ b/appveyor.yml
@@ -0,0 +1,13 @@
+platform:
+ - x86
+
+environment:
+ FORK_USER: ocaml
+ FORK_BRANCH: master
+ CYG_ROOT: C:\cygwin64
+
+install:
+ - ps: iex ((new-object net.webclient).DownloadString("https://raw.githubusercontent.com/$env:FORK_USER/ocaml-ci-scripts/$env:FORK_BRANCH/appveyor-install.ps1"))
+
+build_script:
+ - call %CYG_ROOT%\bin\bash.exe -l %APPVEYOR_BUILD_FOLDER%\appveyor-opam.sh
diff --git a/ocplib-endian.opam b/ocplib-endian.opam
index 642829c..9cbae80 100644
--- a/ocplib-endian.opam
+++ b/ocplib-endian.opam
@@ -14,9 +14,9 @@ bug-reports: "https://github.com/OCamlPro/ocplib-endian/issues"
doc: "https://ocamlpro.github.io/ocplib-endian/ocplib-endian/"
depends: [
"base-bytes"
- "ocaml" {>= "4.02.3"}
+ "ocaml" {>= "4.03.0"}
"cppo" {>= "1.1.0" & build}
- "dune" {build & >= "1.0"}
+ "dune" {>= "1.0"}
]
build: [
["dune" "build" "-p" name "-j" jobs
diff --git a/src/be_ocaml_401.ml b/src/be_ocaml_401.ml
index 38de28c..21bba0b 100644
--- a/src/be_ocaml_401.ml
+++ b/src/be_ocaml_401.ml
@@ -2,31 +2,38 @@
if not Sys.big_endian
then swap16 (get_16 s off)
else get_16 s off
+ [@@ocaml.inline]
let get_int16 s off =
- ((get_uint16 s off) lsl ( Sys.word_size - 17 )) asr ( Sys.word_size - 17 )
+ ((get_uint16 s off) lsl ( Sys.int_size - 16 )) asr ( Sys.int_size - 16 )
+ [@@ocaml.inline]
let get_int32 s off =
if not Sys.big_endian
then swap32 (get_32 s off)
else get_32 s off
+ [@@ocaml.inline]
let get_int64 s off =
if not Sys.big_endian
then swap64 (get_64 s off)
else get_64 s off
+ [@@ocaml.inline]
let set_int16 s off v =
if not Sys.big_endian
then (set_16 s off (swap16 v))
else set_16 s off v
+ [@@ocaml.inline]
let set_int32 s off v =
if not Sys.big_endian
then set_32 s off (swap32 v)
else set_32 s off v
+ [@@ocaml.inline]
let set_int64 s off v =
if not Sys.big_endian
then set_64 s off (swap64 v)
else set_64 s off v
+ [@@ocaml.inline]
diff --git a/src/common.ml b/src/common.ml
index 54df23e..9ef8bc9 100644
--- a/src/common.ml
+++ b/src/common.ml
@@ -1,24 +1,32 @@
[@@@warning "-32"]
let sign8 v =
- (v lsl ( Sys.word_size - 9 )) asr ( Sys.word_size - 9 )
+ (v lsl ( Sys.int_size - 8 )) asr ( Sys.int_size - 8 )
+ [@@ocaml.inline]
let sign16 v =
- (v lsl ( Sys.word_size - 17 )) asr ( Sys.word_size - 17 )
+ (v lsl ( Sys.int_size - 16 )) asr ( Sys.int_size - 16 )
+ [@@ocaml.inline]
let get_uint8 s off =
Char.code (get_char s off)
+ [@@ocaml.inline]
let get_int8 s off =
- ((get_uint8 s off) lsl ( Sys.word_size - 9 )) asr ( Sys.word_size - 9 )
+ ((get_uint8 s off) lsl ( Sys.int_size - 8 )) asr ( Sys.int_size - 8 )
+ [@@ocaml.inline]
let set_int8 s off v =
(* It is ok to cast using unsafe_chr because both String.set
and Bigarray.Array1.set (on bigstrings) use the 'store unsigned int8'
primitives that effectively extract the bits before writing *)
set_char s off (Char.unsafe_chr v)
+ [@@ocaml.inline]
let unsafe_get_uint8 s off =
Char.code (unsafe_get_char s off)
+ [@@ocaml.inline]
let unsafe_get_int8 s off =
- ((unsafe_get_uint8 s off) lsl ( Sys.word_size - 9 )) asr ( Sys.word_size - 9 )
+ ((unsafe_get_uint8 s off) lsl ( Sys.int_size - 8 )) asr ( Sys.int_size - 8 )
+ [@@ocaml.inline]
let unsafe_set_int8 s off v =
unsafe_set_char s off (Char.unsafe_chr v)
+ [@@ocaml.inline]
diff --git a/src/common_float.ml b/src/common_float.ml
index 3d28d2d..d760492 100644
--- a/src/common_float.ml
+++ b/src/common_float.ml
@@ -1,5 +1,5 @@
-let get_float buff i = Int32.float_of_bits (get_int32 buff i)
-let get_double buff i = Int64.float_of_bits (get_int64 buff i)
-let set_float buff i v = set_int32 buff i (Int32.bits_of_float v)
-let set_double buff i v = set_int64 buff i (Int64.bits_of_float v)
+let get_float buff i = Int32.float_of_bits (get_int32 buff i) [@@ocaml.inline]
+let get_double buff i = Int64.float_of_bits (get_int64 buff i) [@@ocaml.inline]
+let set_float buff i v = set_int32 buff i (Int32.bits_of_float v) [@@ocaml.inline]
+let set_double buff i v = set_int64 buff i (Int64.bits_of_float v) [@@ocaml.inline]
diff --git a/src/endianBigstring.cppo.ml b/src/endianBigstring.cppo.ml
index b7a6aba..907d1ab 100644
--- a/src/endianBigstring.cppo.ml
+++ b/src/endianBigstring.cppo.ml
@@ -84,12 +84,16 @@ end
let get_char (s:bigstring) off =
Array1.get s off
+ [@@ocaml.inline]
let set_char (s:bigstring) off v =
Array1.set s off v
+ [@@ocaml.inline]
let unsafe_get_char (s:bigstring) off =
Array1.unsafe_get s off
+ [@@ocaml.inline]
let unsafe_set_char (s:bigstring) off v =
Array1.unsafe_set s off v
+ [@@ocaml.inline]
#include "common.ml"
diff --git a/src/endianBytes.cppo.ml b/src/endianBytes.cppo.ml
index 419f063..dd5900e 100644
--- a/src/endianBytes.cppo.ml
+++ b/src/endianBytes.cppo.ml
@@ -80,12 +80,16 @@ end
let get_char (s:Bytes.t) off =
Bytes.get s off
+ [@@ocaml.inline]
let set_char (s:Bytes.t) off v =
Bytes.set s off v
+ [@@ocaml.inline]
let unsafe_get_char (s:Bytes.t) off =
Bytes.unsafe_get s off
+ [@@ocaml.inline]
let unsafe_set_char (s:Bytes.t) off v =
Bytes.unsafe_set s off v
+ [@@ocaml.inline]
#include "common.ml"
diff --git a/src/endianString.cppo.ml b/src/endianString.cppo.ml
index df8ccd4..4a2439f 100644
--- a/src/endianString.cppo.ml
+++ b/src/endianString.cppo.ml
@@ -52,36 +52,47 @@ module type EndianStringSig = sig
[Int64.float_of_bits (get_int64 buff i)] *)
val set_char : Bytes.t -> int -> char -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_char instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_char}. *)
val set_int8 : Bytes.t -> int -> int -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_int8 instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_int8}. *)
val set_int16 : Bytes.t -> int -> int -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_int16 instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_int16}. *)
val set_int32 : Bytes.t -> int -> int32 -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_int13 instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_int32}. *)
val set_int64 : Bytes.t -> int -> int64 -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_int64 instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_int64}. *)
val set_float : Bytes.t -> int -> float -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_float instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_float}. *)
val set_double : Bytes.t -> int -> float -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_double instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_double}. *)
end
let get_char (s:string) off =
String.get s off
+ [@@ocaml.inline]
let set_char (s:Bytes.t) off v =
Bytes.set s off v
+ [@@ocaml.inline]
let unsafe_get_char (s:string) off =
String.unsafe_get s off
+ [@@ocaml.inline]
let unsafe_set_char (s:Bytes.t) off v =
Bytes.unsafe_set s off v
+ [@@ocaml.inline]
#include "common.ml"
diff --git a/src/endianString.cppo.mli b/src/endianString.cppo.mli
index 2b703d6..32dee4c 100644
--- a/src/endianString.cppo.mli
+++ b/src/endianString.cppo.mli
@@ -52,24 +52,31 @@ module type EndianStringSig = sig
[Int64.float_of_bits (get_int64 buff i)] *)
val set_char : Bytes.t -> int -> char -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_char instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_char}. *)
val set_int8 : Bytes.t -> int -> int -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_int8 instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_int8}. *)
val set_int16 : Bytes.t -> int -> int -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_int16 instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_int16}. *)
val set_int32 : Bytes.t -> int -> int32 -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_int13 instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_int32}. *)
val set_int64 : Bytes.t -> int -> int64 -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_int64 instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_int64}. *)
val set_float : Bytes.t -> int -> float -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_float instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_float}. *)
val set_double : Bytes.t -> int -> float -> unit
+ [@@ocaml.deprecated "Use EndianBytes.set_double instead."]
(** @deprecated This is a deprecated alias of {!endianBytes.set_double}. *)
end
diff --git a/src/le_ocaml_401.ml b/src/le_ocaml_401.ml
index b65184c..9708444 100644
--- a/src/le_ocaml_401.ml
+++ b/src/le_ocaml_401.ml
@@ -2,31 +2,38 @@
if Sys.big_endian
then swap16 (get_16 s off)
else get_16 s off
+ [@@ocaml.inline]
let get_int16 s off =
- ((get_uint16 s off) lsl ( Sys.word_size - 17 )) asr ( Sys.word_size - 17 )
+ ((get_uint16 s off) lsl ( Sys.int_size - 16 )) asr ( Sys.int_size - 16 )
+ [@@ocaml.inline]
let get_int32 s off =
if Sys.big_endian
then swap32 (get_32 s off)
else get_32 s off
+ [@@ocaml.inline]
let get_int64 s off =
if Sys.big_endian
then swap64 (get_64 s off)
else get_64 s off
+ [@@ocaml.inline]
let set_int16 s off v =
if Sys.big_endian
then (set_16 s off (swap16 v))
else set_16 s off v
+ [@@ocaml.inline]
let set_int32 s off v =
if Sys.big_endian
then set_32 s off (swap32 v)
else set_32 s off v
+ [@@ocaml.inline]
let set_int64 s off v =
if Sys.big_endian
then set_64 s off (swap64 v)
else set_64 s off v
+ [@@ocaml.inline]
diff --git a/src/ne_ocaml_401.ml b/src/ne_ocaml_401.ml
index 2348135..1029db8 100644
--- a/src/ne_ocaml_401.ml
+++ b/src/ne_ocaml_401.ml
@@ -1,20 +1,27 @@
let get_uint16 s off =
get_16 s off
+ [@@ocaml.inline]
let get_int16 s off =
- ((get_uint16 s off) lsl ( Sys.word_size - 17 )) asr ( Sys.word_size - 17 )
+ ((get_uint16 s off) lsl ( Sys.int_size - 16 )) asr ( Sys.int_size - 16 )
+ [@@ocaml.inline]
let get_int32 s off =
get_32 s off
+ [@@ocaml.inline]
let get_int64 s off =
get_64 s off
+ [@@ocaml.inline]
let set_int16 s off v =
set_16 s off v
+ [@@ocaml.inline]
let set_int32 s off v =
set_32 s off v
+ [@@ocaml.inline]
let set_int64 s off v =
set_64 s off v
+ [@@ocaml.inline]
diff --git a/tests/test_string.cppo.ml b/tests/test_string.cppo.ml
index dec2521..f108e8c 100644
--- a/tests/test_string.cppo.ml
+++ b/tests/test_string.cppo.ml
@@ -1,6 +1,9 @@
open EndianString
[@@@warning "-52"]
+(* Allow testing deprecated string_set functions *)
+[@@@warning "-3"]
+
let to_t = Bytes.unsafe_to_string
(* do not allocate to avoid breaking tests *)