(Jérémie Dimino)
- use inline-records to avoid using Obj.magic while keeping
indirections to the minumum
- change the representation from a cyclic list to a simply-linked
list. The drawback is one more word per queue, but it makes the
implementation clearer
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16545 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
to warn when the argument is matches against a constant pattern.
This attributes is applied on predefined exception constructors
which take an purely informational (with no stability guarantee)
message.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16502 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
(Pierre Chambart)
Turn Stream.data into a GADT to ensure that streams built with the
Sbuffio constructor are char streams.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16470 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
(Pierre Chambart)
Stream used to modify blocks allocated as immutable. This Get rid of
most Obj module invocations in this module.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16469 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
breaking, consistent usage of splitting and split; simpler explanation for
break hints and new documentation for pretty-printing boxes.
Tabulation boxes get deprecated: this mechanism does not interact nicely with
the rest of the pretty-printing engine and should be completely revisited...
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16444 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
flush_str_formatter rewritten using flush_buffer_formatter.
Consistent naming of pretty-printer formatter as ppf not strange x or o
parameters.
Function ksprintf purposedly defines a new continuation embedding the old
one.
Function asprintf rewritten in a more natural way; spurious pp_flush_queue
deleted in the conitnuation, since it is already done via following
flush_buffer_formatter call.
Indent.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16429 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Turn CamlinternalOO.tables into a GADT with cases distinguished by a
polymorphic variant. This allows to consider the Cons case almost like a
record. There is still one assumption that cannot be checked by typing:
when a key is found in the table, the data field is assumed to be a
Cons. This is dynamically checked. The cost is assumed to be
negligible (The branch should be well predicted by the processor).
CamlinternalOO used to modify fields of blocks allocated as immutable,
which is unsafe and is going to become even more unsafe. An inline
record is used to allow marking a sum type as mutable.
line, it accepted any amount of \r followed by \n.
Float scanning code revisited, commenting the code and avoiding side effect
in function application.
Type file_name now used to define in_channel_name, hence its definition goes
before in_channel_name.
open/close_in --> Pervasives.open/close_in when necessary.
Indentation revisited.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16421 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
The approach implemented is the second one suggested by Benoît Vaugon in the PR:
- The int_of_string functions accept a "0u" prefix meaning "decimal unsigned".
- The '%u' format of the scanf functions adds this "0u" prefix before conversion.
This is consistent with the current handling of unsigned hexa, octal, and binary numbers.
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@16241 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02