caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Markus Mottl <markus@oefai.at>
To: Yutaka OIWA <oiwa@yl.is.s.u-tokyo.ac.jp>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] ANNOUNCE: mod_caml 1.0.6 - includes security patch
Date: Fri, 16 Jan 2004 20:20:09 +0100	[thread overview]
Message-ID: <20040116192009.GC26828@fichte.ai.univie.ac.at> (raw)
In-Reply-To: <vfizncnlo91.fsf@tuba.is.s.u-tokyo.ac.jp>

On Sat, 17 Jan 2004, Yutaka OIWA wrote:
> The code generated by current Regexp/OCaml is something similar to the
> above, (however, pattern compilations are performed only once per
> execution per each pattern.) but if the backend regexp engine
> (currently Regexp/OCaml uses PCRE/OCaml) supports optimization for
> multiple regular expression matching, Regexp/OCaml can easily
> utilize it.  Analysis for patterns may be performed at compilation
> (camlp4-translation) phase, if required.

As mentioned in a previous post, this could be done using the callout
features of PCRE-OCaml. Only problem: the string to be matched is
internally copied to the C-heap (once), because the OCaml-GC could
theoretically move the string to another memory location in the OCaml-heap
during callouts.

Thus, it may not be as efficient as you expect, and possibly only pay
off if the patterns match the same, long string prefixes. Unfortunately,
there is no workaround for this: you'd either have to rewrite PCRE so
that you can return pointers to new string locations after each callout
(no, thanks ;) or somehow be able to temporarily protect strings from
being moved by the GC (not feasible either, I suppose; would, however,
work with character strings in char Bigarrays if I am not mistaken).

Regards,
Markus

-- 
Markus Mottl          http://www.oefai.at/~markus          markus@oefai.at

-------------------
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


  reply	other threads:[~2004-01-16 19:20 UTC|newest]

Thread overview: 42+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-01-15 14:03 Richard Jones
     [not found] ` <4006AC01.F2AD2741@decis.be>
2004-01-15 15:42   ` Richard Jones
2004-01-15 16:19     ` Markus Mottl
2004-01-15 16:53       ` Richard Jones
2004-01-16  6:15         ` james woodyatt
2004-01-16  9:34           ` Richard Jones
2004-01-16 19:05             ` Brian Hurt
2004-01-16 18:52               ` Yutaka OIWA
2004-01-16 19:20                 ` Markus Mottl [this message]
2004-01-16 19:01               ` Markus Mottl
2004-01-19 10:13               ` Luc Maranget
2004-01-19 11:36                 ` Richard Jones
2004-01-19 14:43                   ` Luc Maranget
2004-01-19 16:10                     ` Richard Jones
2004-01-19 17:46                       ` Markus Mottl
2004-01-19 18:05                         ` Richard Jones
2004-01-19 21:45                           ` Eray Ozkural
2004-01-20 11:31                             ` Markus Mottl
2004-01-20 12:30                               ` Eray Ozkural
2004-01-21 14:01                               ` skaller
2004-01-20 17:34                             ` Michal Moskal
2004-01-20 17:52                               ` Eray Ozkural
2004-01-20 18:54                                 ` Michal Moskal
2004-01-20 19:21                                   ` Markus Mottl
2004-01-20 19:37                                   ` David Brown
2004-01-20 20:38                                     ` Eray Ozkural
2004-01-21 19:07                                     ` Max Kirillov
     [not found]                                       ` <Pine.GSO.4.53.0401211150520.10508@cascade.cs.ubc.ca>
2004-01-22  2:15                                         ` Max Kirillov
2004-01-20 23:00                               ` Brian Hurt
2004-01-20 23:48                                 ` Eray Ozkural
2004-01-21  0:34                                   ` David Brown
2004-01-21  2:32                                     ` Eray Ozkural
2004-01-21  2:34                                     ` Eray Ozkural
2004-01-21  2:34                                       ` Shawn Wagner
2004-01-21  9:43                                     ` Andreas Rossberg
2004-01-21  5:16                                   ` Brian Hurt
2004-01-19 21:59                           ` Kenneth Knowles
2004-01-19 18:18                         ` David Brown
2004-01-19 19:15                           ` Markus Mottl
2004-01-19 19:19                             ` David Brown
     [not found]                       ` <20040119185746.A12690@beaune.inria.fr>
2004-01-19 18:07                         ` Richard Jones
2004-01-20  1:29                 ` 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=20040116192009.GC26828@fichte.ai.univie.ac.at \
    --to=markus@oefai.at \
    --cc=caml-list@inria.fr \
    --cc=oiwa@yl.is.s.u-tokyo.ac.jp \
    /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;
as well as URLs for NNTP newsgroup(s).