<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/ocaml.git/stdlib/stream.ml, branch flambda</title>
<subtitle>github.com: ocaml/ocaml
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/'/>
<entry>
<title>PR#5644: a dumbed-down fix to fix the observable effect (Stream.of_string) with no change to the underlying code (to avoid regressions)</title>
<updated>2013-07-21T20:03:52+00:00</updated>
<author>
<name>Gabriel Scherer</name>
<email>gabriel.scherer@gmail.com</email>
</author>
<published>2013-07-21T20:03:52+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=cdd43f280062f7d6693eabec6439623ccece6030'/>
<id>cdd43f280062f7d6693eabec6439623ccece6030</id>
<content type='text'>
As I learned the hard way, it is essentially impossible to get
a satisfying behavior in presence of a mix of updates, concatenations
and counts. The best thing to do is thus to not change anything
(a good way to preserve compatibility), and only fix the
Stream.of_string function to assume nothing of the count passed to the
[from] function.

I also modified the mli documentation of [Stream.from] to warn other
users of this potential pitfall.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13915 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
As I learned the hard way, it is essentially impossible to get
a satisfying behavior in presence of a mix of updates, concatenations
and counts. The best thing to do is thus to not change anything
(a good way to preserve compatibility), and only fix the
Stream.of_string function to assume nothing of the count passed to the
[from] function.

I also modified the mli documentation of [Stream.from] to warn other
users of this potential pitfall.


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13915 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>Revert the changes of revision 12682 (PR#5644 Stream.count broken when used with Sapp or Slazy nodes) because of regressions identified by hongboz</title>
<updated>2013-07-21T20:02:29+00:00</updated>
<author>
<name>Gabriel Scherer</name>
<email>gabriel.scherer@gmail.com</email>
</author>
<published>2013-07-21T20:02:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=4574c718f8b822ae52095e89239df237c4288dfb'/>
<id>4574c718f8b822ae52095e89239df237c4288dfb</id>
<content type='text'>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13914 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13914 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>remove all $Id keywords</title>
<updated>2012-10-15T17:50:56+00:00</updated>
<author>
<name>Damien Doligez</name>
<email>damien.doligez-inria.fr</email>
</author>
<published>2012-10-15T17:50:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=def31744f996fecdb187d43de38ddae2ff3ab881'/>
<id>def31744f996fecdb187d43de38ddae2ff3ab881</id>
<content type='text'>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@13013 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>clean up TABs and whitespace</title>
<updated>2012-07-30T18:04:46+00:00</updated>
<author>
<name>Damien Doligez</name>
<email>damien.doligez-inria.fr</email>
</author>
<published>2012-07-30T18:04:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=997a678d5ee774930288bfec23d4b145ce45c078'/>
<id>997a678d5ee774930288bfec23d4b145ce45c078</id>
<content type='text'>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12799 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12799 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>PR#5644: Stream.count broken when used with Sapp or Slazy nodes</title>
<updated>2012-07-10T09:58:38+00:00</updated>
<author>
<name>Gabriel Scherer</name>
<email>gabriel.scherer@gmail.com</email>
</author>
<published>2012-07-10T09:58:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=bc139ae14e8d772b73e039e8a236eff714b5b3f6'/>
<id>bc139ae14e8d772b73e039e8a236eff714b5b3f6</id>
<content type='text'>
There is a bug in the way concatenating operations work when combined
with `Sgen`-defined stream (Stream.from, Stream.of_string): the
concatenation functions reset the `count` field to 0, which disturbs
the Sgen producer.

While the fix in the Scons case is easy (instead of 0, set
the count to `original_count - 1`), fixing the Sapp case is more
delicate (we can't predict the size of the prepended stream). Our
technique is to change the stored left-hand-side to not the stream
data only, but the whole stream, count included.
Once we detect the prepended stream was completely consumed, we can
then restore the count to its previous value, so that Sgen's function
can be provided correct count information. This required a change in
the internal `get_data` implementation.

Slazy-constructed streams have the exact same issue: we don't know
their count before forcin them. Again, `get_data` is changed to
dynamically update the count at forcing time.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12682 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a bug in the way concatenating operations work when combined
with `Sgen`-defined stream (Stream.from, Stream.of_string): the
concatenation functions reset the `count` field to 0, which disturbs
the Sgen producer.

While the fix in the Scons case is easy (instead of 0, set
the count to `original_count - 1`), fixing the Sapp case is more
delicate (we can't predict the size of the prepended stream). Our
technique is to change the stored left-hand-side to not the stream
data only, but the whole stream, count included.
Once we detect the prepended stream was completely consumed, we can
then restore the count to its previous value, so that Sgen's function
can be provided correct count information. This required a change in
the internal `get_data` implementation.

Slazy-constructed streams have the exact same issue: we don't know
their count before forcin them. Again, `get_data` is changed to
dynamically update the count at forcing time.



git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@12682 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>renaming of Objective Caml to OCaml and cleanup of copyright headers</title>
<updated>2011-07-27T14:17:02+00:00</updated>
<author>
<name>Damien Doligez</name>
<email>damien.doligez-inria.fr</email>
</author>
<published>2011-07-27T14:17:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=3b507dd1aa286684543a35cc7da763feebf9aa8d'/>
<id>3b507dd1aa286684543a35cc7da763feebf9aa8d</id>
<content type='text'>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@11156 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove restrictions to stream concatenation, and use Lazy.t for the argument</title>
<updated>2008-06-18T15:35:02+00:00</updated>
<author>
<name>Michel Mauny</name>
<email>Michel.Mauny@ensta.fr</email>
</author>
<published>2008-06-18T15:35:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=d0d6af3c16e970367b5f7a7c7a1066484e4e60a2'/>
<id>d0d6af3c16e970367b5f7a7c7a1066484e4e60a2</id>
<content type='text'>
of the Slazy data constructor.
Affected files: stdlib/{stream.ml,.depend,Makefile}


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8893 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
of the Slazy data constructor.
Affected files: stdlib/{stream.ml,.depend,Makefile}


git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8893 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>MAJ en-tetes pour mentionner la 'special exception' sur la LGPL</title>
<updated>2001-12-07T13:41:02+00:00</updated>
<author>
<name>Xavier Leroy</name>
<email>xavier.leroy@inria.fr</email>
</author>
<published>2001-12-07T13:41:02+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=7501784c805833fd9e633d88b4aa80924976d82a'/>
<id>7501784c805833fd9e633d88b4aa80924976d82a</id>
<content type='text'>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4144 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@4144 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>Changement de la licence</title>
<updated>1999-11-17T18:59:06+00:00</updated>
<author>
<name>Xavier Leroy</name>
<email>xavier.leroy@inria.fr</email>
</author>
<published>1999-11-17T18:59:06+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=cc0f32b05439bb7018e8ad62a54d6371b01aab9f'/>
<id>cc0f32b05439bb7018e8ad62a54d6371b01aab9f</id>
<content type='text'>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2553 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2553 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
<entry>
<title>Ajout de Pervasives.ignore.  List.remove -&gt; List.remove_ass*</title>
<updated>1999-02-24T15:21:50+00:00</updated>
<author>
<name>Xavier Leroy</name>
<email>xavier.leroy@inria.fr</email>
</author>
<published>1999-02-24T15:21:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ocaml.git/commit/?id=5038f3cdb6377dfc84e4642b710c1a1949060e1d'/>
<id>5038f3cdb6377dfc84e4642b710c1a1949060e1d</id>
<content type='text'>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2304 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@2304 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
</pre>
</div>
</content>
</entry>
</feed>
