EPICS Controls Argonne National Laboratory

Experimental Physics and
Industrial Control System

1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024  Index 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
<== Date ==> <== Thread ==>

Subject: Re: perl under
From: "Johnson, Andrew N." <[email protected]>
To: "[email protected]" <[email protected]>
Date: Mon, 8 Oct 2018 17:12:00 +0000
Hi Hinko,

On 10/08/2018 11:46 AM, Hinko Kocevar wrote:
> Looking at this old post, 
> https://epics.anl.gov/tech-talk/2017/msg01571.php, did you manage to
> solve perl issues?
> 
> I'm using base R3.15.5. Maybe there is a temporary fix avoid long
> waiting between IOC rebuild?

Yes, I modified the regular expression to avoid the particular construct
that was causing the slow-up. This change will be in 3.15.6:

> commit 32a6f6c4f1672d4c7b3a7008de89b9ed4eb97a04
> Author: Andrew Johnson <[email protected]>
> Date:   Mon Oct 9 14:45:01 2017 +0200
> 
>     Fix DBD parsing slow-up with Perl 5.20 and later
> 
> diff --git a/src/tools/DBD/Parser.pm b/src/tools/DBD/Parser.pm
> index 9014206..113ef42 100644
> --- a/src/tools/DBD/Parser.pm
> +++ b/src/tools/DBD/Parser.pm
> @@ -78,8 +78,13 @@ sub parseCommon {
>          m/\G \s* /oxgc;
>  
>          # Extract POD
> -        if (m/\G ( = [a-zA-Z] .* ) \n/oxgc) {
> -            $obj->add_pod($1, &parsePod);
> +        if (m/\G ( = [a-zA-Z] )/xgc) {
> +           # The above regex was split from the one below for performance.
> +           # Using m/\G ( = [a-zA-Z] .* ) \n/ is slow in Perl 5.20 and later.
> +           my $directive = $1;
> +           m/\G ( .* ) \n/xgc;
> +           $directive .= $1;
> +            $obj->add_pod($directive, &parsePod);
>          }
>          elsif (m/\G \# /oxgc) {
>              if (m/\G \# ! BEGIN \{ ( [^}]* ) \} ! \# \# \n/oxgc) {

HTH,

- Andrew


-- 
Arguing for surveillance because you have nothing to hide is no
different than making the claim, "I don't care about freedom of
speech because I have nothing to say." -- Edward Snowdon

Replies:
RE: perl under Hinko Kocevar
References:
perl under Hinko Kocevar

Navigate by Date:
Prev: perl under Hinko Kocevar
Next: RE: perl under Hinko Kocevar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
Navigate by Thread:
Prev: perl under Hinko Kocevar
Next: RE: perl under Hinko Kocevar
Index: 1994  1995  1996  1997  1998  1999  2000  2001  2002  2003  2004  2005  2006  2007  2008  2009  2010  2011  2012  2013  2014  2015  2016  2017  <20182019  2020  2021  2022  2023  2024 
ANJ, 08 Oct 2018 Valid HTML 4.01! · Home · News · About · Base · Modules · Extensions · Distributions · Download ·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing ·