Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Revert "Move unboxed definitions from Stdlib to Stable" #2580

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions ocaml/Makefile.common-jst
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ dune_config_targets = \
$(ocamldir)/duneconf/dirs-to-ignore.inc \
$(ocamldir)/duneconf/jst-extra.inc \
dune-project \
$(ocamldir)/stdlib/ocaml_compiler_internal_params \
$(ocamldir)/dune.runtime_selection \
$(ocamldir)/otherlibs/dune

Expand Down Expand Up @@ -199,6 +200,12 @@ _install: compiler
install: _install
mkdir -p '$(prefix)'
rsync --chmod=u+rw,go+r -rl _install/ '$(prefix)'
rm -f '$(prefix)/lib/ocaml/ocaml_compiler_internal_params'
# rm `ocaml_compiler_internal_params`, which is used to compile the
# stdlib `Float_u` module with `-extension layouts_alpha`, because we
# don't want user programs that happened to be named
# `ocaml/stdlib/float_u.ml` to get the flag automatically.


# Same as above, but relies on a successfull earlier _install
install_for_opam:
Expand Down
5 changes: 1 addition & 4 deletions ocaml/otherlibs/stable/stable.ml
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
module Float_u = Float_u
module Int32_u = Int32_u
module Int64_u = Int64_u
module Nativeint_u = Nativeint_u
module Float_u = Stdlib__Float_u
module Iarray = Stdlib__Iarray
module IarrayLabels = Stdlib__IarrayLabels
5 changes: 1 addition & 4 deletions ocaml/otherlibs/stable/stable.mli
Original file line number Diff line number Diff line change
@@ -1,6 +1,3 @@
module Float_u = Float_u
module Int32_u = Int32_u
module Int64_u = Int64_u
module Nativeint_u = Nativeint_u
module Float_u = Stdlib__Float_u
module Iarray = Stdlib__Iarray
module IarrayLabels = Stdlib__IarrayLabels
46 changes: 46 additions & 0 deletions ocaml/stdlib/.depend
Original file line number Diff line number Diff line change
Expand Up @@ -358,6 +358,16 @@ stdlib__Float.cmx : float.ml \
stdlib__Float.cmi : float.mli \
stdlib.cmi \
stdlib__Seq.cmi
stdlib__Float_u.cmo : float_u.ml \
stdlib.cmi \
stdlib__Float.cmi \
stdlib__Float_u.cmi
stdlib__Float_u.cmx : float_u.ml \
stdlib.cmx \
stdlib__Float.cmx \
stdlib__Float_u.cmi
stdlib__Float_u.cmi : float_u.mli \
stdlib.cmi
stdlib__Format.cmo : format.ml \
stdlib__String.cmi \
stdlib.cmi \
Expand Down Expand Up @@ -512,6 +522,16 @@ stdlib__Int32.cmx : int32.ml \
stdlib__Int32.cmi
stdlib__Int32.cmi : int32.mli \
stdlib.cmi
stdlib__Int32_u.cmo : int32_u.ml \
stdlib.cmi \
stdlib__Int32.cmi \
stdlib__Int32_u.cmi
stdlib__Int32_u.cmx : int32_u.ml \
stdlib.cmx \
stdlib__Int32.cmx \
stdlib__Int32_u.cmi
stdlib__Int32_u.cmi : int32_u.mli \
stdlib.cmi
stdlib__Int64.cmo : int64.ml \
stdlib.cmi \
stdlib__Int64.cmi
Expand All @@ -520,6 +540,20 @@ stdlib__Int64.cmx : int64.ml \
stdlib__Int64.cmi
stdlib__Int64.cmi : int64.mli \
stdlib.cmi
stdlib__Int64_u.cmo : int64_u.ml \
stdlib__Nativeint_u.cmi \
stdlib__Int32_u.cmi \
stdlib.cmi \
stdlib__Int64.cmi \
stdlib__Int64_u.cmi
stdlib__Int64_u.cmx : int64_u.ml \
stdlib__Nativeint_u.cmx \
stdlib__Int32_u.cmx \
stdlib.cmx \
stdlib__Int64.cmx \
stdlib__Int64_u.cmi
stdlib__Int64_u.cmi : int64_u.mli \
stdlib.cmi
stdlib__Lazy.cmo : lazy.ml \
stdlib.cmi \
stdlib__Obj.cmi \
Expand Down Expand Up @@ -635,6 +669,18 @@ stdlib__Nativeint.cmx : nativeint.ml \
stdlib__Nativeint.cmi
stdlib__Nativeint.cmi : nativeint.mli \
stdlib.cmi
stdlib__Nativeint_u.cmo : nativeint_u.ml \
stdlib__Int32_u.cmi \
stdlib.cmi \
stdlib__Nativeint.cmi \
stdlib__Nativeint_u.cmi
stdlib__Nativeint_u.cmx : nativeint_u.ml \
stdlib__Int32_u.cmx \
stdlib.cmx \
stdlib__Nativeint.cmx \
stdlib__Nativeint_u.cmi
stdlib__Nativeint_u.cmi : nativeint_u.mli \
stdlib.cmi
stdlib__Obj.cmo : obj.ml \
stdlib__Sys.cmi \
stdlib.cmi \
Expand Down
24 changes: 24 additions & 0 deletions ocaml/stdlib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -207,6 +207,30 @@ stdlib.cmx: stdlib.ml
$(CAMLOPT) $(COMPFLAGS) $(OPTCOMPFLAGS) \
-pp "$(AWK) -f ./expand_module_aliases.awk" -c $<


# special cases to add the extension flag when compiling float_u etc.
# CR layouts: eventually these can be just [-extension layouts]
stdlib__%_u.cmi:
$(CAMLC) $(COMPFLAGS) -extension layouts_alpha \
-o $@ -c $(filter %.mli, $^)

stdlib__%_u.cmo:
$(CAMLC) $(COMPFLAGS) -extension layouts_alpha \
-o $@ -c $(filter %.ml, $^)

stdlib__%_u.cmx:
$(CAMLOPT) $(COMPFLAGS) $(OPTCOMPFLAGS) -extension layouts_alpha \
-o $@ -c $(filter %.ml, $^)

%_u.cmi: %_u.mli
$(CAMLC) $(COMPFLAGS) -extension layouts_alpha -c $<

%_u.cmo: %_u.ml
$(CAMLC) $(COMPFLAGS) -extension layouts_alpha -c $<

%_u.cmx: %_u.ml
$(CAMLOPT) $(COMPFLAGS) $(OPTCOMPFLAGS) -extension layouts_alpha -c $<

%.cmi: %.mli
$(V_OCAMLC)$(CAMLC) $(COMPFLAGS) -c $<

Expand Down
4 changes: 4 additions & 0 deletions ocaml/stdlib/StdlibModules
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,13 @@ STDLIB_MODULE_BASENAMES = \
array \
iarray \
float \
float_u \
int32 \
int32_u \
nativeint \
nativeint_u \
int64 \
int64_u \
lexing \
parsing \
set \
Expand Down
25 changes: 25 additions & 0 deletions ocaml/stdlib/dune
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@
(install
(files
Makefile.config
ocaml_compiler_internal_params
camlheader
camlheaderd
camlheaderi
Expand Down Expand Up @@ -121,6 +122,8 @@
filename.mli
float.ml
float.mli
float_u.ml
float_u.mli
format.ml
format.mli
fun.ml
Expand All @@ -139,8 +142,12 @@
int.mli
int32.ml
int32.mli
int32_u.ml
int32_u.mli
int64.ml
int64.mli
int64_u.ml
int64_u.mli
lazy.ml
lazy.mli
lexing.ml
Expand All @@ -159,6 +166,8 @@
mutex.mli
nativeint.ml
nativeint.mli
nativeint_u.ml
nativeint_u.mli
obj.ml
obj.mli
oo.ml
Expand Down Expand Up @@ -268,6 +277,9 @@
.stdlib.objs/byte/stdlib__Float.cmi
.stdlib.objs/byte/stdlib__Float.cmt
.stdlib.objs/byte/stdlib__Float.cmti
.stdlib.objs/byte/stdlib__Float_u.cmi
.stdlib.objs/byte/stdlib__Float_u.cmt
.stdlib.objs/byte/stdlib__Float_u.cmti
.stdlib.objs/byte/stdlib__Format.cmi
.stdlib.objs/byte/stdlib__Format.cmt
.stdlib.objs/byte/stdlib__Format.cmti
Expand Down Expand Up @@ -295,9 +307,15 @@
.stdlib.objs/byte/stdlib__Int32.cmi
.stdlib.objs/byte/stdlib__Int32.cmt
.stdlib.objs/byte/stdlib__Int32.cmti
.stdlib.objs/byte/stdlib__Int32_u.cmi
.stdlib.objs/byte/stdlib__Int32_u.cmt
.stdlib.objs/byte/stdlib__Int32_u.cmti
.stdlib.objs/byte/stdlib__Int64.cmi
.stdlib.objs/byte/stdlib__Int64.cmt
.stdlib.objs/byte/stdlib__Int64.cmti
.stdlib.objs/byte/stdlib__Int64_u.cmi
.stdlib.objs/byte/stdlib__Int64_u.cmt
.stdlib.objs/byte/stdlib__Int64_u.cmti
.stdlib.objs/byte/stdlib__Lazy.cmi
.stdlib.objs/byte/stdlib__Lazy.cmt
.stdlib.objs/byte/stdlib__Lazy.cmti
Expand Down Expand Up @@ -325,6 +343,9 @@
.stdlib.objs/byte/stdlib__Nativeint.cmi
.stdlib.objs/byte/stdlib__Nativeint.cmt
.stdlib.objs/byte/stdlib__Nativeint.cmti
.stdlib.objs/byte/stdlib__Nativeint_u.cmi
.stdlib.objs/byte/stdlib__Nativeint_u.cmt
.stdlib.objs/byte/stdlib__Nativeint_u.cmti
.stdlib.objs/byte/stdlib__Obj.cmi
.stdlib.objs/byte/stdlib__Obj.cmt
.stdlib.objs/byte/stdlib__Obj.cmti
Expand Down Expand Up @@ -435,10 +456,12 @@
.stdlib.objs/native/stdlib__StdLabels.cmx
.stdlib.objs/native/stdlib__Weak.cmx
.stdlib.objs/native/stdlib__Float.cmx
.stdlib.objs/native/stdlib__Float_u.cmx
.stdlib.objs/native/stdlib__Fun.cmx
.stdlib.objs/native/stdlib__Bigarray.cmx
.stdlib.objs/native/stdlib__Array.cmx
.stdlib.objs/native/stdlib__Int32.cmx
.stdlib.objs/native/stdlib__Int32_u.cmx
.stdlib.objs/native/stdlib__Lexing.cmx
.stdlib.objs/native/stdlib__ArrayLabels.cmx
.stdlib.objs/native/stdlib__Obj.cmx
Expand All @@ -459,6 +482,7 @@
.stdlib.objs/native/stdlib__Ephemeron.cmx
.stdlib.objs/native/stdlib__String.cmx
.stdlib.objs/native/stdlib__Nativeint.cmx
.stdlib.objs/native/stdlib__Nativeint_u.cmx
.stdlib.objs/native/stdlib__Set.cmx
.stdlib.objs/native/stdlib__ListLabels.cmx
.stdlib.objs/native/stdlib__Bool.cmx
Expand All @@ -467,6 +491,7 @@
.stdlib.objs/native/stdlib__Random.cmx
.stdlib.objs/native/stdlib__Int.cmx
.stdlib.objs/native/stdlib__Int64.cmx
.stdlib.objs/native/stdlib__Int64_u.cmx
.stdlib.objs/native/stdlib__Scanf.cmx
.stdlib.objs/native/stdlib__Printf.cmx
.stdlib.objs/native/stdlib__Complex.cmx
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
8 changes: 4 additions & 4 deletions ocaml/otherlibs/stable/int64_u.ml → ocaml/stdlib/int64_u.ml
Original file line number Diff line number Diff line change
Expand Up @@ -84,15 +84,15 @@ let[@inline always] of_nativeint x = of_int64 (Int64.of_nativeint x)

let[@inline always] to_nativeint x = Int64.to_nativeint (to_int64 x)

let[@inline always] of_int32_u x = of_int64 (Int64.of_int32 (Int32_u.to_int32 x))
let[@inline always] of_int32_u x = of_int64 (Int64.of_int32 (Stdlib__Int32_u.to_int32 x))

let[@inline always] to_int32_u x = Int32_u.of_int32 (Int64.to_int32 (to_int64 x))
let[@inline always] to_int32_u x = Stdlib__Int32_u.of_int32 (Int64.to_int32 (to_int64 x))

let[@inline always] of_nativeint_u x =
of_int64 (Int64.of_nativeint (Nativeint_u.to_nativeint x))
of_int64 (Int64.of_nativeint (Stdlib__Nativeint_u.to_nativeint x))

let[@inline always] to_nativeint_u x =
Nativeint_u.of_nativeint (Int64.to_nativeint (to_int64 x))
Stdlib__Nativeint_u.of_nativeint (Int64.to_nativeint (to_int64 x))

let[@inline always] bits_of_float x = of_int64 (Int64.bits_of_float x)

Expand Down
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -97,10 +97,10 @@ let[@inline always] of_int32 x = of_nativeint (Nativeint.of_int32 x)
let[@inline always] to_int32 x = Nativeint.to_int32 (to_nativeint x)

let[@inline always] of_int32_u x =
of_nativeint (Nativeint.of_int32 (Int32_u.to_int32 x))
of_nativeint (Nativeint.of_int32 (Stdlib__Int32_u.to_int32 x))

let[@inline always] to_int32_u x =
Int32_u.of_int32 (Nativeint.to_int32 (to_nativeint x))
Stdlib__Int32_u.of_int32 (Nativeint.to_int32 (to_nativeint x))

let[@inline always] of_string x = of_nativeint (Nativeint.of_string x)

Expand Down
File renamed without changes.
10 changes: 10 additions & 0 deletions ocaml/stdlib/ocaml_compiler_internal_params
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
ocaml/stdlib/float_u.mli : extension = layouts_alpha
ocaml/stdlib/float_u.ml : extension = layouts_alpha
stdlib/float_u.mli : extension = layouts_alpha
stdlib/float_u.ml : extension = layouts_alpha
ocaml/stdlib/nativeint_u.mli : extension = layouts_alpha
ocaml/stdlib/nativeint_u.ml : extension = layouts_alpha
ocaml/stdlib/int32_u.mli : extension = layouts_alpha
ocaml/stdlib/int32_u.ml : extension = layouts_alpha
ocaml/stdlib/int64_u.mli : extension = layouts_alpha
ocaml/stdlib/int64_u.ml : extension = layouts_alpha
9 changes: 4 additions & 5 deletions ocaml/testsuite/tests/mixed-blocks/constructor_args.ml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
flags = "-extension layouts_beta -extension small_numbers";
include beta;
flambda2;
include stable;
{
native;
}{
Expand All @@ -14,10 +13,10 @@
(* Prelude: Functions on unboxed numbers *)

module Float32_u = Beta.Float32_u
module Float_u = Stable.Float_u
module Int32_u = Stable.Int32_u
module Int64_u = Stable.Int64_u
module Nativeint_u = Stable.Nativeint_u
module Float_u = Stdlib__Float_u
module Int32_u = Stdlib__Int32_u
module Int64_u = Stdlib__Int64_u
module Nativeint_u = Stdlib__Nativeint_u

let print_floatu prefix x = Printf.printf "%s: %.2f\n" prefix (Float_u.to_float x)
let print_float prefix x = Printf.printf "%s: %.2f\n" prefix x
Expand Down
19 changes: 9 additions & 10 deletions ocaml/testsuite/tests/mixed-blocks/generate_mixed_blocks_code.ml
Original file line number Diff line number Diff line change
Expand Up @@ -233,11 +233,11 @@ let type_to_field_integrity_check type_ ~access1 ~access2 ~message =
| Str -> "check_string", None
| Imm -> "check_int", None
| Float -> "check_float", None
| Float64 -> "check_float", Some "Stable.Float_u.to_float"
| Float64 -> "check_float", Some "Stdlib__Float_u.to_float"
| Float32 -> "check_float32", Some "Beta.Float32_u.to_float32"
| Bits32 -> "check_int32", Some "Stable.Int32_u.to_int32"
| Bits64 -> "check_int64", Some "Stable.Int64_u.to_int64"
| Word -> "check_int", Some "Stable.Nativeint_u.to_int"
| Bits32 -> "check_int32", Some "Stdlib__Int32_u.to_int32"
| Bits64 -> "check_int64", Some "Stdlib__Int64_u.to_int64"
| Word -> "check_int", Some "Stdlib__Nativeint_u.to_int"
in
let transform access =
match transformation with
Expand Down Expand Up @@ -566,8 +566,7 @@ let main n ~bytecode =
in
line {|(* TEST
flags = "-extension layouts_beta -extension small_numbers";
include beta;
include stable;|};
include beta;|};
if bytecode then (
line {| bytecode;|};
) else (
Expand All @@ -582,11 +581,11 @@ let main n ~bytecode =
line {|let create_int () = Random.int 0x3FFF_FFFF|};
line {|let create_float () = Random.float Float.max_float|};
line {|let create_float32 () = Beta.Float32.of_float (Random.float Float.max_float)|};
line {|let create_float_u () = Stable.Float_u.of_float (create_float ())|};
line {|let create_float_u () = Stdlib__Float_u.of_float (create_float ())|};
line {|let create_float32_u () = Beta.Float32_u.of_float32 (create_float32 ())|};
line {|let create_int32_u () = Stable.Int32_u.of_int32 (Random.int32 0x7FFF_FFFFl)|};
line {|let create_int64_u () = Stable.Int64_u.of_int64 (Random.int64 0x7FFF_FFFF_FFFF_FFFFL)|};
line {|let create_nativeint_u () = Stable.Nativeint_u.of_nativeint (Random.nativeint 0x7FFF_FFFF_FFFF_FFFFn)|};
line {|let create_int32_u () = Stdlib__Int32_u.of_int32 (Random.int32 0x7FFF_FFFFl)|};
line {|let create_int64_u () = Stdlib__Int64_u.of_int64 (Random.int64 0x7FFF_FFFF_FFFF_FFFFL)|};
line {|let create_nativeint_u () = Stdlib__Nativeint_u.of_nativeint (Random.nativeint 0x7FFF_FFFF_FFFF_FFFFn)|};
line
{|let check_gen ~equal ~to_string ~message y1 y2 =
if equal y1 y2 then () else
Expand Down
Loading
Loading