In one of my program, i parse lot of small files. Most of the time was consume by the GC, because lot of string was created. File are read into string then converted to data structure, but those string buffer are not easly reusable for the next file. So the GC have a hard work.

Maybe ocaml need a way to enable the reuse of string to reduce the pressure on the GC, and reduce the need of mutable string.

Regards,
Nicolas


2014-07-09 20:04 GMT+02:00 Gerd Stolpmann <info@gerd-stolpmann.de>:
Am Mittwoch, den 09.07.2014, 15:54 +0200 schrieb Alain Frisch:
> On 07/08/2014 02:24 PM, Gerd Stolpmann wrote:
> > It will create confusion even with actively maintained code bases. What
> > could help here is very clear communication when the change will be the
> > standard behavior, and how the migration will take place.
>
> It's a very different kind of criticism from your initial point about
> the decision of going into the current direction.

Right, but the question how the user process will look like is just the
next one. The design of the change so far is minimalistic, and it is
obvious that some abstraction is missing, and my only explanation is
that there wasn't a consensus in the OCaml team (but that's just a wild
guess). I don't want to say that the OCaml team is ignoring any
problems, but it looks like the missing abstraction is somehow offloaded
to the users, namely whether it is needed at all in the stdlib (maybe
nobody is complaining), or which style is preferred. (I just want to say
that there is IMHO a connection between the minimalistic design, and the
social embedding.)

>   Point taken: the
> development team will need to communicate about the expected timeline
> and migrate path.  But note that 4.02 is not even out, and since the
> default behavior is the previous one, there is no hurry, and it's fine
> if people wait a few months before trying the new mode.

My thinking here is that 95% of the users will have no problems at all
when they convert their programs. It's the other 5% for which the
current design is not really sufficient. Let's just hope these users
aren't immediately discouraged when they find it out.

>    It doesn't
> seem crazy to wait for some early user feedback and synchronize with
> them before deciding on a more precise plan for the wider community. For
> instance, you feedback about porting ocamlnet is quite useful and the
> current discussion shows that several solutions compete and need further
> thought.  Without the new compiler switch, this discussion would not
> have taken place.

Fully agreed.

> > I think it would be quite important to have that in the stdlib:
> >
> >   - This sets a standard for interoperability between libraries
> >   - The stdlib can exploit the details of the representation
> >   - It would be possible to use stringlike directly in C interfaces
>
> Note that if it goes to stdlib, one cannot refer to bigarrays.  (One
> might want to have bigarrays in stdlib, but we are not there yet.)

Right, but this isn't a big deal. (Bigarray also uses Unix.file_descr,
but this dep is easy to work around by anchoring file_descr in
Pervasives.)


Gerd
--
------------------------------------------------------------
Gerd Stolpmann, Darmstadt, Germany    gerd@gerd-stolpmann.de
My OCaml site:          http://www.camlcity.org
Contact details:        http://www.camlcity.org/contact.html
Company homepage:       http://www.gerd-stolpmann.de
------------------------------------------------------------