You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Now that we've dropped support for OCaml 4.02.3 (#673), we can make use of some of the new features in OCaml 4.03. The following seem like reasonable candidates:
[@unbox ] attributes for externals ocaml/ocaml#167: allow to annotate externals' arguments and result types so they can be unboxed or untagged: [@unboxed], [@untagged]. Supports untagging int and unboxing int32, int64, nativeint and float.
Expose caml_string_equal &c to OCaml ocaml/ocaml#6494: Add equal functions in modules Bytes, Char, Digest, Int32, Int64, Nativeint, and String. Users defining their own modules with signature module type of Int32 have to extend their implementation.
Now that we've dropped support for OCaml 4.02.3 (#673), we can make use of some of the new features in OCaml 4.03. The following seem like reasonable candidates:
Inline records for constructor arguments ocaml/ocaml#5528: inline records for constructor arguments
A single wildcard for n-ary type constructors ocaml/ocaml#6374: allow
_ t
as a short-hand for(_, _, ..) t
for n-ary type constructorsSyntax shortcut for putting a type annotation on a record field ocaml/ocaml#6806: Allow type annotations before the
->
infun <args> -> <expr>
:fun x y : (int * int) -> (x, y)
support for "(type a b ..)" as syntactic sugar for "(type a) (type b) ..." ocaml/ocaml#26: support for
(type a b)
as syntactic sugar for(type a) (type b)
Short functor type syntax ocaml/ocaml#42: short functor type syntax:
S -> T
forfunctor (_ : S) -> T
[@unbox ] attributes for externals ocaml/ocaml#167: allow to annotate externals' arguments and result types so they can be unboxed or untagged:
[@unboxed]
,[@untagged]
. Supports untagging int and unboxingint32
,int64
,nativeint
andfloat
.Replace "noalloc" and "float" by attributes ocaml/ocaml#240: replace special annotations on externals by attributes:
float
is generalized to[@@unboxed]
noalloc
becomes[@@noalloc]
Deprecate
float
andnoalloc
.make string/bytes distinguishable in the underlying compiler implementation ocaml/ocaml#596: make
string
/bytes
distinguishable in the underlying compiler implementation;caml_fill_string
andcaml_create_string
are deprecated and will be removed in the future, please usecaml_fill_bytes
andcaml_create_bytes
for migrationIt would be nice if <caml/*.h> didn't define types like "int64" ocaml/ocaml#6517: use ISO C99 types
{,u}int{32,64}_t
in preference to our homegrown types{,u}int{32,64}
. C stubs may have to be updated as{,u}int{32,64}_t
are not defined anymore.Enrichir Array ocaml/ocaml#7848, Array functions ocaml/ocaml#230:
Array.map2
,Array.iter2
Expose caml_string_equal &c to OCaml ocaml/ocaml#6494: Add
equal
functions in modulesBytes
,Char
,Digest
,Int32
,Int64
,Nativeint
, andString
. Users defining their own modules with signaturemodule type of Int32
have to extend their implementation.Simple array functions ocaml/ocaml#329: Add
exists
,for_all
,mem
andmemq
functions inArray
Add Misc.fatal_errorf ocaml/ocaml#356: Add
Format.kasprintf
The text was updated successfully, but these errors were encountered: