From: Bruno.Verlyck@inria.fr
To: jgoerzen@complete.org
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] Dynamically evaluating OCaml code
Date: Fri, 9 Apr 2004 15:44:36 +0200 [thread overview]
Message-ID: <200404091344.i39DiaO9015464@waco.inria.fr> (raw)
In-Reply-To: <20040408175519.GB1291@excelhustler.com> (jgoerzen@complete.org)
Date: Thu, 8 Apr 2004 12:55:19 -0500
From: John Goerzen <jgoerzen@complete.org>
On Thu, Apr 08, 2004 at 06:44:15PM +0200, Bruno.Verlyck@inria.fr wrote:
> - read-write file handles: You can get them with Unix.openfile
> and Unix.dup. Then with Unix.{in,out}_channel_of_descr, you
> can use the Pervasives I/O functions.
I have discovered that, but it seems that I don't fully understand
the buffering semantics over on the Pervasives side. For instance,
it's not entirely clear what happens if I write something to an out
channel, then seek somewhere via that channel, then read via the
other channel. The results have not always been what I expected.
You aren't a lot better in C. What does Posix/SUS V2 says for fopen ?
When a file is opened with update mode (+ as the second or third
character in the mode argument), both input and output may be
performed on the associated stream. However, output must not be
directly followed by input without an intervening call to fflush()
or to a file positioning function (fseek, fsetpos() or rewind()),
and input must not be directly followed by output without an
intervening call to a file positioning function, unless the input
operation encounters end-of-file.
This is error-prone at least.
As for OCaml buffering semantics:
- you begin to understand why there's no read-write channel: a lot of
complexity for a seldom used functionality;
- those having been banned, the OCaml I/O system makes no effort to
ease things for you: the two channels are independently buffered,
they don't known of each other, reading won't see your last
modifications if nothing forces an update of the buffer.
Beware: this is what I remember, io.c is of course the ultimate
reference.
(Pervasives appears to sometimes make an underlying call to read or
write a different number of bytes than I requested -- which can be
This is called (you guessed it) buffering.
a problem for network protocols where this can cause deadlock)
If it gets in your way, don't use Pervasives (but Unix.{read,write}).
> - string handling: look at my (rather full-featured) Cstr library
> (http://pauillac.inria.fr/cash/cstr/);
That looks great. Has a lot of stuff I'd use. It looks like it's
separate from cash; is that correct? (If so, I'll package it up
for Debian right away <g>)
That's correct. Thank you for the packaging. Some bugs are fixed in
the CVS version (hopefully none introduced.. :-).
Bruno.
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
next prev parent reply other threads:[~2004-04-09 13:44 UTC|newest]
Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-07 18:47 John Goerzen
2004-04-07 20:37 ` Samuel Mimram
2004-04-07 21:05 ` Basile Starynkevitch
2002-01-04 0:43 ` Issac Trotts
2004-04-08 0:58 ` Dustin Sallings
2004-04-08 6:24 ` Brian Hurt
2004-04-08 7:47 ` Oleg Trott
2004-04-08 8:04 ` Ville-Pertti Keinonen
2004-04-08 7:52 ` Ville-Pertti Keinonen
2004-04-08 8:15 ` Dustin Sallings
2004-04-08 13:37 ` John Goerzen
2004-04-08 14:56 ` Markus Mottl
2004-04-08 15:14 ` Richard Jones
2004-04-08 15:26 ` Markus Mottl
2004-04-08 15:39 ` Jon Harrop
2004-04-08 15:58 ` John Goerzen
2004-04-08 17:59 ` Jean-Marc EBER
2004-04-08 18:20 ` Kenneth Knowles
2004-04-08 18:39 ` John Goerzen
2004-04-08 19:21 ` Kenneth Knowles
2004-04-08 18:29 ` John Goerzen
2004-04-13 6:15 ` Trevor Andrade
2004-04-13 11:17 ` Gerd Stolpmann
2004-04-13 13:16 ` skaller
2004-04-13 14:24 ` John Goerzen
2004-04-13 14:53 ` Gerd Stolpmann
2004-04-13 18:07 ` [Caml-list] Re: GODI (was: Dynamically evaluating OCaml code) Christophe TROESTLER
2004-04-13 19:30 ` Gerd Stolpmann
2004-04-13 19:57 ` [Caml-list] Re: GODI Christophe TROESTLER
2004-04-13 20:45 ` Brandon J. Van Every
2004-04-14 0:34 ` Gerd Stolpmann
2004-04-14 5:35 ` Brandon J. Van Every
2004-04-14 6:00 ` james woodyatt
2004-04-14 6:21 ` Kenneth Knowles
2004-04-14 9:17 ` james woodyatt
2004-04-14 6:16 ` Kenneth Knowles
2004-04-14 7:38 ` [Caml-list] BSD vs. GPL Brandon J. Van Every
2004-04-14 8:32 ` Matt Gushee
2004-04-14 8:48 ` Wolfgang Müller
2004-04-14 8:40 ` Kenneth Knowles
2004-04-14 17:14 ` David Brown
2004-04-14 18:50 ` [Caml-list] benefit of package management Brandon J. Van Every
2004-04-15 6:46 ` [Caml-list] BSD vs. GPL Kenneth Knowles
2004-04-14 15:05 ` John Goerzen
2004-04-15 0:20 ` skaller
2004-04-15 2:36 ` John Goerzen
2004-04-15 17:48 ` Benjamin Geer
2004-04-14 10:50 ` [Caml-list] Re: GODI skaller
2004-04-14 1:04 ` John Goerzen
2004-04-14 2:52 ` Jacques GARRIGUE
2004-04-14 5:14 ` [Caml-list] Re: GODI vs. Ocamake Brandon J. Van Every
2004-04-14 6:53 ` Jacques GARRIGUE
2004-04-14 6:57 ` Kenneth Knowles
[not found] ` <407D2075.2070104@jollys.org>
2004-04-14 16:14 ` ocamlconf on Cygwin (Re: [Caml-list] Re: GODI vs. Ocamake) Kenneth Knowles
2004-04-14 7:50 ` [Caml-list] Re: GODI vs. Ocamake Nicolas Cannasse
2004-04-14 11:54 ` skaller
2004-04-14 16:49 ` Kenneth Knowles
2004-04-15 1:05 ` skaller
2004-04-15 6:34 ` Kenneth Knowles
2004-04-15 7:33 ` skaller
2004-04-15 16:00 ` Kenneth Knowles
[not found] ` <1082049025.20677.1250.camel@pelican>
2004-04-15 17:38 ` Kenneth Knowles
2004-04-15 23:58 ` Brandon J. Van Every
2004-04-16 1:16 ` Kenneth Knowles
2004-04-16 6:31 ` [Caml-list] build tools - good vs. fast, both cheap Brandon J. Van Every
2004-04-16 14:38 ` skaller
2004-04-16 15:16 ` Richard Jones
2004-04-16 16:12 ` Kenneth Knowles
2004-04-16 16:17 ` Richard Jones
2004-04-16 16:39 ` Kenneth Knowles
2004-04-17 6:01 ` Jacques GARRIGUE
2004-04-17 6:25 ` Kenneth Knowles
2004-04-17 9:19 ` Alain.Frisch
2004-04-16 21:53 ` William Lovas
2004-04-17 2:30 ` skaller
2004-04-17 5:47 ` Blair Zajac
2004-04-17 6:28 ` Kenneth Knowles
2004-04-16 14:52 ` skaller
2004-04-16 16:06 ` Kenneth Knowles
2004-04-16 18:10 ` skaller
2004-04-16 18:43 ` Kenneth Knowles
2004-04-16 19:55 ` skaller
2004-04-16 18:46 ` John Goerzen
2004-04-16 18:55 ` Kenneth Knowles
2004-04-16 20:22 ` skaller
2004-04-16 19:39 ` Richard Jones
2004-04-16 21:00 ` skaller
2004-04-15 9:47 ` [Caml-list] Re: GODI vs. Ocamake Markus Mottl
2004-04-15 16:38 ` skaller
2004-04-16 1:30 ` Richard Cole
2004-04-16 14:11 ` skaller
2004-04-15 1:25 ` skaller
2004-04-14 12:19 ` skaller
2004-04-14 18:21 ` [Caml-list] recompiling bytecode Brandon J. Van Every
2004-04-14 18:54 ` John Goerzen
2004-04-14 20:26 ` Issac Trotts
2004-04-14 20:35 ` Basile Starynkevitch
2004-04-15 1:39 ` skaller
2004-04-14 13:03 ` [Caml-list] Re: GODI vs. Ocamake Gerd Stolpmann
2004-04-14 12:45 ` [Caml-list] Re: GODI Gerd Stolpmann
2004-04-13 15:03 ` [Caml-list] Dynamically evaluating OCaml code Matt Gushee
2004-04-13 17:24 ` Benjamin Geer
2004-04-09 5:40 ` skaller
2004-04-08 15:30 ` John Goerzen
2004-04-08 16:08 ` Xavier Leroy
2004-04-08 16:44 ` Markus Mottl
2004-04-08 17:35 ` John Goerzen
2004-04-09 6:41 ` skaller
2004-04-08 19:44 ` Issac Trotts
2004-04-09 6:23 ` skaller
2004-04-09 6:33 ` Remi Vanicat
2004-04-09 7:37 ` skaller
2004-04-09 8:17 ` Remi Vanicat
2004-04-09 8:35 ` OT: licences (was Re: [Caml-list] Dynamically evaluating OCaml code) Benjamin Geer
2004-04-10 10:10 ` skaller
2004-04-09 8:36 ` [Caml-list] Dynamically evaluating OCaml code Markus Mottl
2004-04-10 9:59 ` skaller
2004-04-09 9:09 ` james woodyatt
2004-04-08 16:44 ` Bruno.Verlyck
2004-04-08 17:55 ` John Goerzen
2004-04-09 13:44 ` Bruno.Verlyck [this message]
2004-04-08 15:31 ` Jon Harrop
2004-04-08 19:52 ` Issac Trotts
2004-04-25 23:07 ` [Caml-list] Is GCaml Dead Again? Greg K
2004-04-08 15:04 ` [Caml-list] Dynamically evaluating OCaml code Fernando Alegre
2004-04-08 15:22 ` Jean-Marc EBER
2004-04-09 6:44 ` Pierre Weis
2004-04-08 15:23 ` Kenneth Knowles
2004-04-08 15:38 ` John Goerzen
2004-04-08 22:31 ` Markus Mottl
2004-04-08 18:28 ` Nicolas Cannasse
2004-04-08 17:15 ` Brian Hurt
2004-04-08 18:32 ` Gerd Stolpmann
2004-04-09 5:04 ` skaller
2004-04-08 17:25 ` Issac Trotts
2004-04-08 7:10 ` Basile Starynkevitch
2004-04-08 17:09 ` Issac Trotts
2004-04-07 21:32 ` Vitaly Lugovsky
2004-04-07 20:39 ` John Goerzen
2004-04-07 21:47 ` Vitaly Lugovsky
2004-04-07 22:14 ` Benjamin Geer
2004-04-08 7:49 ` skaller
2004-04-08 19:11 ` Christophe TROESTLER
[not found] ` <200404072306.15109.clement.capel@free.fr>
2004-04-07 23:25 ` clement capel
2004-04-13 21:25 ` [Caml-list] eval for OCaml Brock
2004-04-08 0:17 ` [Caml-list] Dynamically evaluating OCaml code Jon Harrop
2004-04-08 17:31 ` Walid Taha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200404091344.i39DiaO9015464@waco.inria.fr \
--to=bruno.verlyck@inria.fr \
--cc=caml-list@inria.fr \
--cc=jgoerzen@complete.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox