From: skaller <skaller@users.sourceforge.net>
To: "Christopher A. Watford" <christopher.watford@gmail.com>
Cc: David Brown <caml-list@davidb.org>,
William Lovas <wlovas@stwing.upenn.edu>,
caml-list@yquem.inria.fr
Subject: Re: [Caml-list] Str.string_match incorrect
Date: 25 Dec 2004 15:24:04 +1100 [thread overview]
Message-ID: <1103948644.6201.336.camel@pelican.wigram> (raw)
In-Reply-To: <8008871f041224190768113639@mail.gmail.com>
On Sat, 2004-12-25 at 14:07, Christopher A. Watford wrote:
> >From the documentation, as you have pointed out (now I see what you
> mean), it does not make this constraint obvious. It appears that
> string_match's documentation should include that an implicit ^ is
> added. string_partial_match makes this clear however.
Except even that isn't quite correct -- ^ matches a newline
as well as start of string.
When matching on a 'string' the special handling of newline
is out of place -- newlines are ordinary characters.
When matching on a whole file, as in awk/sed/perl style
of tools, the line orientation makes some sense.
In any case, the bug is a mismatch, IMHO, between what the
function does and what the documentation says it does.
I had expected string_match to match a whole string or fail,
because that's what the documentation says it does.
However there are two compatibility arguments for
changing the documentation instead -- non Ocaml user
expectations (clearly indicated in replies to my post),
and breaking of existing Ocaml code that relies on
the actual behaviour not the documented behaviour,
misreading it as others seem to have done, and assuming
PCRE/Emacs/awk/sed ... or whatever .. semantics.
If that path is chosen I think it would be nice
to provide a function that actually does what the
documentation *originally* specified (that is,
what it says right now): match a whole string.
This is because the obvious hack:
^r$
does not in fact work if the string contains newlines --
according to the documentation anyhow :)
I'm not a heavy user of Str -- I would never use it
in a serious application. However I used it in
the program I wrote to build test harness for
ExtLib (there is now an extlib-test module in CVS
which tests ExtLib) and it didn't work.
I did indeed fix the problem with ^r$, because I'm
checking filenames which seem unlikely to have any
newlines in them.
Anyhow .. it's up to Xavier: I posted the original
note into the bugtracker too :)
--
John Skaller, mailto:skaller@users.sf.net
voice: 061-2-9660-0850,
snail: PO BOX 401 Glebe NSW 2037 Australia
Checkout the Felix programming language http://felix.sf.net
next prev parent reply other threads:[~2004-12-25 4:24 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-22 3:49 skaller
2004-12-22 7:44 ` [Caml-list] " Evan Martin
2004-12-22 8:00 ` William Lovas
2004-12-22 8:38 ` Evan Martin
2004-12-22 10:37 ` Gerd Stolpmann
2004-12-22 15:57 ` skaller
2004-12-22 16:58 ` David Brown
2004-12-23 2:33 ` skaller
2004-12-24 17:40 ` Christopher A. Watford
2004-12-25 0:57 ` skaller
2004-12-25 3:07 ` Christopher A. Watford
2004-12-25 4:24 ` skaller [this message]
2004-12-26 1:14 ` William Lovas
2004-12-22 17:26 ` Kurt Welgehausen
2004-12-23 2:09 ` skaller
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=1103948644.6201.336.camel@pelican.wigram \
--to=skaller@users.sourceforge.net \
--cc=caml-list@davidb.org \
--cc=caml-list@yquem.inria.fr \
--cc=christopher.watford@gmail.com \
--cc=wlovas@stwing.upenn.edu \
/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