Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0007772OCamlstandard librarypublic2018-04-13 15:372018-06-26 23:28
Reporterhhugo 
Assigned To 
PrioritynormalSeverityfeatureReproducibilityN/A
StatusnewResolutionopen 
PlatformOSOS Version
Product Version 
Target VersionFixed in Version 
Summary0007772: Add a bigstring module to the stdlib
DescriptionQuoting description from https://github.com/inhabitedtype/bigstringaf: [^]

The OCaml compiler has a bunch of intrinsics for Bigstrings, but they're not widely-known, sometimes misused, and programs that use Bigstrings are slower than they have to be.
TagsNo tags attached.
Attached Files

- Relationships

-  Notes
(0019028)
nojebar (developer)
2018-04-13 20:19
edited on: 2018-04-13 20:19

The linked library is essentially the BigString module of the library ocplib-endian library https://github.com/OCamlPro/ocplib-endian, [^] which exposes the family of primitives caml_{bytes,string,bigstring}_{get,set}{16,32,64).

Personally I think it makes sense to exposed these primitives in the standard library. If there is a consensus to do so, I can put together a PR, but am not familiar with the history here: why where these primitives introduced but not exposed in the first place?

(0019029)
hhugo (reporter)
2018-04-14 09:12

existing implementations:
- https://github.com/c-cube/ocaml-bigstring [^]
- https://github.com/inhabitedtype/bigstringaf [^]
- https://github.com/janestreet/core_kernel/blob/master/src/bigstring.mli [^]
- https://github.com/OCamlPro/ocplib-endian/blob/master/src/endianBigstring.cppo.mli [^]
(0019037)
dim (developer)
2018-04-16 13:28

I'm for exposing these primitives as well. I don't think there is a particular reason why they were not exposed initially. My guess is that there were no good places to put them and adding a new module was complicated.
(0019216)
frisch (developer)
2018-06-26 23:28

The primitives has been introduced in 0005771 and 0005774.

Since the hard work is behind us, I find it unfortunate to not expose primitives understood by the compiler and runtime system, and to force a dependency on a third-party library.

See also https://github.com/ocaml/ocaml/pull/1864 [^]

- Issue History
Date Modified Username Field Change
2018-04-13 15:37 hhugo New Issue
2018-04-13 20:19 nojebar Note Added: 0019028
2018-04-13 20:19 nojebar Note Edited: 0019028 View Revisions
2018-04-14 09:12 hhugo Note Added: 0019029
2018-04-16 13:28 dim Note Added: 0019037
2018-06-26 23:28 frisch Note Added: 0019216


Copyright © 2000 - 2011 MantisBT Group
Powered by Mantis Bugtracker