[GHC] #12974: Solution to regular expression is no longer valid

GHC ghc-devs at haskell.org
Sun Apr 30 19:42:15 UTC 2017


#12974: Solution to regular expression is no longer valid
---------------------------------+--------------------------------------
        Reporter:  pjljvdlaar    |                Owner:  (none)
            Type:  bug           |               Status:  new
        Priority:  normal        |            Milestone:
       Component:  Compiler      |              Version:  8.0.1
      Resolution:                |             Keywords:  regex
Operating System:  Windows       |         Architecture:  x86_64 (amd64)
 Type of failure:  None/Unknown  |            Test Case:
      Blocked By:                |             Blocking:
 Related Tickets:                |  Differential Rev(s):
       Wiki Page:                |
---------------------------------+--------------------------------------

Comment (by RyanGlScott):

 Since I was curious to learn //how// the second test was failing, I cooked
 up a slight variant of the program:

 {{{#!hs
 {-# LANGUAGE PackageImports #-}
 module Main (main) where

 import "regex-compat" Text.Regex

 main :: IO ()
 main = do
   print $ matchRegexAll (mkRegex "^(a)|(p)$") "p"
   print $ matchRegexAll (mkRegex "^(ab+c*d?)|(ef{2}g{3,6}h{3,})|(p)$") "p"
 }}}

 This requires the `regex-compat` package (a thin shim on top of `regex-
 posix`).

 With 32-bit Windows GHC, running this program gives you:

 {{{
 Just ("","p","",[])
 Just ("","p","",[])
 }}}

 With 64-bit Windows GHC:

 {{{
 Just ("","p","",["","p"])
 Nothing
 }}}

 With 64-bit Linux GHC:

 {{{
 Just ("","p","",["","p"])
 Just ("","p","",["","","p"])
 }}}

 The most likely culprits are the C files (`regex.h` and friends) that are
 shipped with `regex-posix`, as they're most likely quite old. I'll see if
 I can find a more up-to-date version.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12974#comment:12>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list