From: skaller <skaller@users.sourceforge.net>
To: Martin Jambon <martin_jambon@emailuser.net>
Cc: Xavier Leroy <Xavier.Leroy@inria.fr>,
Christophe TROESTLER <Christophe.Troestler@umh.ac.be>,
"O'Caml Mailing List" <caml-list@inria.fr>
Subject: Re: [Caml-list] Thread safe Str
Date: 11 Jan 2005 14:54:30 +1100 [thread overview]
Message-ID: <1105415669.3534.55.camel@pelican.wigram> (raw)
In-Reply-To: <Pine.LNX.4.44.0501101103500.1591-100000@localhost>
On Tue, 2005-01-11 at 07:25, Martin Jambon wrote:
> However, my concerns are more about how to integrate regular expressions
> in the language so that they can be checked at compile-time just like the
> rest of the program. My Camlp4 syntax extension
> (http://martin.jambon.free.fr/micmatch.html) works just fine for this
> purpose and I am not asking for any change in the core OCaml syntax ;-)
But Str is a hack. Like all NFA based solutions, it's unreliable
because it is unsound: possible infinite recursion, indeterminate
capture results, and exponential performance.
In addition, regular expressions have poor scalability and
fail to provide simple i18n support.
I think Felix does this the right way: core language support
for regular definitions, linear classification and tokensisation,
and no captures. If you want captures use the proper tool,
namely a parser, which is also supported directly in the language
(this is more problematic due to the number of parsers around,
Felix currently provides the GLR parser Elkhound).
So I would love to see integration of regexp support in Ocaml
but I'm very much against Str. If some technology is to
be integrated, please use the right technology and
integrate Ocamllex.
See the ulex package for a model. The problem with micmatch
is precisely that it does use Str.
BTW: it probably doesn't work either, due to the bug in Str
I mentioned in an earlier post.
--
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:[~2005-01-11 3:54 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-01-09 19:30 Christophe TROESTLER
2005-01-09 20:57 ` [Caml-list] " Gerd Stolpmann
2005-01-10 9:57 ` Alex Baretta
2005-01-10 15:49 ` Xavier Leroy
2005-01-10 16:39 ` Richard Jones
2005-01-10 18:21 ` Eric C. Cooper
2005-01-10 20:25 ` Martin Jambon
2005-01-11 3:54 ` skaller [this message]
2005-01-11 7:03 ` Chris King
2005-01-11 8:06 ` skaller
2005-01-11 12:08 ` Gerd Stolpmann
2005-01-11 17:55 ` skaller
2005-01-11 20:30 ` Gerd Stolpmann
2005-01-12 7:42 ` skaller
[not found] ` <875c7e070501111007dc3e86d@mail.gmail.com>
[not found] ` <1105471138.2574.88.camel@pelican.wigram>
[not found] ` <875c7e07050111115618692184@mail.gmail.com>
2005-01-11 19:58 ` Chris King
2005-01-11 20:53 ` Martin Jambon
2005-01-12 7:59 ` skaller
2005-01-12 20:12 ` Martin Jambon
2005-01-11 6:41 ` Chris King
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=1105415669.3534.55.camel@pelican.wigram \
--to=skaller@users.sourceforge.net \
--cc=Christophe.Troestler@umh.ac.be \
--cc=Xavier.Leroy@inria.fr \
--cc=caml-list@inria.fr \
--cc=martin_jambon@emailuser.net \
/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