[#20675] RCR: non-bang equivalent to []= — Tobias Reif <tobiasreif@...>

Hi,

49 messages 2001/09/01
[#20774] Re: RCR: non-bang equivalent to []= — Tobias Reif <tobiasreif@...> 2001/09/03

I wrote:

[#20778] Re: RCR: non-bang equivalent to []= — Kevin Smith <kevinbsmith@...> 2001/09/03

--- Tobias Reif <tobiasreif@pinkjuice.com> wrote:

[#20715] oreilly buch von matz - website online — markus jais <info@...>

hi

43 messages 2001/09/02
[#20717] Re: OReilly Ruby book has snail on cover — ptkwt@...1.aracnet.com (Phil Tomson) 2001/09/02

Actually, thanks for posting it here. I was trying to search OReilly's

[#20922] Re: OReilly Ruby book has snail on cover — Paul Brannan <pbrannan@...> 2001/09/05

On Mon, 3 Sep 2001, Phil Tomson wrote:

[#20768] Minor cgi.rb question — "Hal E. Fulton" <hal9000@...>

I don't have much experience with

25 messages 2001/09/03

[#20770] Calling member methods from C++ — jglueck@... (Bernhard Glk)

Some quetsions have been solved for me, but my message system does not

12 messages 2001/09/03

[#20976] destructor — Frank Sonnemans <ruby@...>

Does Ruby have a destructor as in C++?

25 messages 2001/09/07

[#21218] Ruby objects <-> XML: anyone working on this? — senderista@... (Tobin Baker)

Are there any Ruby analogs of these two Python modules (xml_pickle,

13 messages 2001/09/15

[#21296] nested require files need path internally — Bob Gustafson <bobgus@...>

Version: 1.64

29 messages 2001/09/18
[#21298] Re: nested require files need path internally — David Alan Black <dblack@...> 2001/09/18

Hello --

[#21302] Re: nested require files need path internally — Bob Gustafson <bobgus@...> 2001/09/18

On Tue, 18 Sep 2001, David Alan Black wrote:

[#21303] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/18

Hi,

[#21306] Re: nested require files need path internally — Lars Christensen <larsch@...> 2001/09/18

On Tue, 18 Sep 2001, Yukihiro Matsumoto wrote:

[#21307] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/18

Hi,

[#21331] Re: nested require files need path internally — Paul Brannan <pbrannan@...> 2001/09/18

> The big difference is C++ search done in compile time, Ruby search

[#21340] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/18

Hi,

[#21353] Re: nested require files need path internally — Paul Brannan <pbrannan@...> 2001/09/18

On Wed, 19 Sep 2001, Yukihiro Matsumoto wrote:

[#21366] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/19

Hi,

[#21368] Re: nested require files need path internally — "Julian Fitzell" <julian-ml@...4.com> 2001/09/19

On 19/09/2001 at 10:12 AM matz@ruby-lang.org wrote:

[#21376] Re: nested require files need path internally — matz@... (Yukihiro Matsumoto) 2001/09/19

Hi,

[#21406] Re: nested require files need path internally — Paul Brannan <pbrannan@...> 2001/09/19

On Wed, 19 Sep 2001, Yukihiro Matsumoto wrote:

[#21315] Suggestions for new CGI lib — anders@... (Anders Johannsen)

From the comp.lang.ruby thread "Minor cgi.rb question" (2001-09-03), I

21 messages 2001/09/18

[#21413] Ruby/objects book in style of The Little Lisper — Brian Marick <marick@...>

I fell in love with Lisp in the early 80's. Back then, I read a book called

36 messages 2001/09/19
[#21420] Re: Ruby/objects book in style of The Little Lisper — Christopher Sawtell <csawtell@...> 2001/09/20

On 20 Sep 2001 06:19:44 +0900, Brian Marick wrote:

[#21479] Re: Ruby/objects book in style of The Little Lisper — Kevin Smith <kevinbsmith@...> 2001/09/21

--- Christopher Sawtell <csawtell@paradise.net.nz> wrote:

[#21491] SV: Re: Ruby/objects book in style of The Little Lisper — "Mikkel Damsgaard" <mikkel_damsgaard@...> 2001/09/21

[#21494] Re: SV: Re: Ruby/objects book in style of The Little Lisper — Kevin Smith <kevinbsmith@...> 2001/09/21

--- Mikkel Damsgaard <mikkel_damsgaard@mailme.dk> wrote:

[#21510] Re: SV: Re: Ruby/objects book in style of The Little Lisper — Todd Gillespie <toddg@...> 2001/09/22

On Sat, 22 Sep 2001, Kevin Smith wrote:

[#21514] Re: SV: Re: Ruby/objects book in style of The Little Lisper — Kevin Smith <kevinbsmith@...> 2001/09/22

--- Todd Gillespie <toddg@mail.ma.utexas.edu> wrote:

[#21535] irb — Fabio <fabio.spelta@...>

Hello. :) I'm new here, and I have not found an archive of the previous

15 messages 2001/09/22

[#21616] opening a named pipe? — "Avdi B. Grimm" <avdi@...>

I'm having trouble reading from a named pipe in linux. basicly, I'm

12 messages 2001/09/24

[#21685] manipulating "immutable" objects such as Fixnum from within callbacks & al... — Guillaume Cottenceau <gc@...>

Hello,

15 messages 2001/09/25

[#21798] Ruby internal (guide to the source) — "Benoit Cerrina" <benoit.cerrina@...>

Hi,

22 messages 2001/09/28

[ruby-talk:21482] Regexp hangs

From: Wyss Clemens <WYS@...>
Date: 2001-09-21 08:51:17 UTC
List: ruby-talk #21482
Good morning (evening to Matz and Co ;-)),
Sorry for the long appendix.
We have a regexp(in line 159) which seems to "hang", at least it takes a
verrrry long time to match. To me it looks like this is a bug or a special
case, which might need special hadling.
The regexp tries to match function declarations. If we put the function name
of the first function declaration also to the end (i.e. line 19 -> end
H_LINT_2_UNSIGNED_INTEGER;) the regexp matches immediately. If the name is
omitted (or wrong) it takes almost 2 minutes before the script terminates.
And this time seems to increase exponentially depending on str's size. Also,
when we remove the \1 in the regexp the "problem" disappears.

A  bug, or are making wrong use of regexps (maybe the \1)?
Thanks for any feedback
Clemens
--------- appendix --------------------
#!/usr/bin/env ruby 
str = "
function H_LINT_2_UNSIGNED_INTEGER (VALUE : in LONG_INTEGER)
return UNSIGNED_INTEGER is
  CASTED_VAL : array [2] of UNSIGNED_INTEGER;
  TEMP : LONG_INTEGER;
begin
  if (VALUE < 0) then
    CASTED_VAL[1] := 0;
  else
    if (VALUE > H#FFFF#) then
      CASTED_VAL[1] := H#FFFF#;
    else
      // Value is valid
      CASTED_VAL := BI.LINT_2_UINT (VALUE);
    end if;
  end if;
  return (CASTED_VAL[1]);
end ddd ;
// ^ the function name should be here!

procedure GET_ALICE_LCL_STATUS 
  (
    P_LATCH : in INTEGER;
    P_ALICE_IS_ON : BOOLEAN;
    P_DP_READ_RESULT : BOOLEAN
  ) is
LCL_STATUS : LONG_INTEGER;
begin
  P_ALICE_IS_ON := FALSE;

  if (P_LATCH = K_PAR1_LCL_A) then
    // Get the state of LCL A
    DP.READ_SPECIFIC_BITS (PPK_NPWDA11D_ACCESS_DESC, LCL_STATUS,
                          P_DP_READ_RESULT, PPK_NPWDA11D_MASK,
                           INTEGER(PPK_NPWDA11D_SHIFT));
    if (LCL_STATUS = PPK_NPWDA11D_ON) then
      // ALICE LCL A is ON 
      P_ALICE_IS_ON := TRUE;
    end if;
  else
    // Get the value of LCL B
    DP.READ_SPECIFIC_BITS (PPK_NPWDA23D_ACCESS_DESC, LCL_STATUS,
                           P_DP_READ_RESULT, PPK_NPWDA23D_MASK,
                           INTEGER(PPK_NPWDA23D_SHIFT));
    if (LCL_STATUS = PPK_NPWDA23D_ON) then
      // ALICE LCL B is ON 
      P_ALICE_IS_ON := TRUE;
    end if;
  end if;
end GET_ALICE_LCL_STATUS;

function IS_PRECONDITION_VALID () return BOOLEAN is
RET_VALUE         : BOOLEAN;
EVENT_RESULT      : BOOLEAN;
IS_LCL_ON         : BOOLEAN;
DP_READ_RESULT    : BOOLEAN;
begin
  RET_VALUE := TRUE;

  // Check if ALICE LCL A is OFF
  GET_ALICE_LCL_STATUS (K_PAR1_LCL_A, IS_LCL_ON, DP_READ_RESULT);
  if IS_LCL_ON then
    // ALICE LCL A is ON 
    EVENT_RESULT := MSG.SEND_REPORT (K_EVENT_3 [0], K_EVENT_3 [1],
                                     K_EVENT_3 [2],
                                     K_EMPTY_EVENT_PARAM_LIST);
    RET_VALUE := FALSE;
  end if;

  if RET_VALUE then
    // Check if ALICE LCL B is OFF
    GET_ALICE_LCL_STATUS (K_PAR1_LCL_B, IS_LCL_ON, DP_READ_RESULT);
    if IS_LCL_ON then
      // ALICE LCL B is ON  
      EVENT_RESULT := MSG.SEND_REPORT (K_EVENT_4 [0], K_EVENT_4 [1],
                                       K_EVENT_4 [2],
                                       K_EMPTY_EVENT_PARAM_LIST);
      RET_VALUE := FALSE;
    end if;
  end if;

  if (RET_VALUE) then
    // The preconditions are valid
    EVENT_RESULT := MSG.SEND_REPORT (K_EVENT_50 [0], K_EVENT_50 [1], 
                                     K_EVENT_50 [2],
K_EMPTY_EVENT_PARAM_LIST);
  end if;

  return (RET_VALUE);
end IS_PRECONDITION_VALID;

function IS_SWITCH_LCL_OFF_SUCCESSFUL
  (
    P_LATCH : in INTEGER
  ) return BOOLEAN is
RET_VALUE      : BOOLEAN;
TC_RESULT      : BOOLEAN;
IS_ALICE_ON     : BOOLEAN;
IS_CHECK_VALID : BOOLEAN;
begin
  RET_VALUE := TRUE;

  // Switch ALICE LCL OFF
  if (P_LATCH = K_PAR1_LCL_A) then
    TC_RESULT := MSG.SEND_TC_AND_CONTINUE (PPK_TC_ZPWMA030SWOF_BUFFER);
    TC_RESULT := MSG.SEND_TC_AND_CONTINUE (PPK_TC_ZPWMB030SWOF_BUFFER);
  else
    TC_RESULT := MSG.SEND_TC_AND_CONTINUE (PPK_TC_ZPWMA287SWOF_BUFFER);
    TC_RESULT := MSG.SEND_TC_AND_CONTINUE (PPK_TC_ZPWMB287SWOF_BUFFER);
  end if;

  // Wait for the LCL reaction
  BI.WAIT_DELAY (K_TM_UPDATE_CYCLE_TIME);

  // Verify if ALICE LCL is off
  GET_ALICE_LCL_STATUS (P_LATCH, IS_ALICE_ON, IS_CHECK_VALID);
  if (IS_ALICE_ON) then
    RET_VALUE := FALSE;
  end if;

  return (RET_VALUE);
end IS_SWITCH_LCL_OFF_SUCCESSFUL;

function IS_SWITCH_LCL_OFF_SUCCESSFUL
  (
    P_LATCH : in INTEGER
  ) return BOOLEAN is
RET_VALUE      : BOOLEAN;
TC_RESULT      : BOOLEAN;
IS_ALICE_ON     : BOOLEAN;
IS_CHECK_VALID : BOOLEAN;
begin
  RET_VALUE := TRUE;

  // Switch ALICE LCL OFF
  if (P_LATCH = K_PAR1_LCL_A) then
    TC_RESULT := MSG.SEND_TC_AND_CONTINUE (PPK_TC_ZPWMA030SWOF_BUFFER);
    TC_RESULT := MSG.SEND_TC_AND_CONTINUE (PPK_TC_ZPWMB030SWOF_BUFFER);
  else
    TC_RESULT := MSG.SEND_TC_AND_CONTINUE (PPK_TC_ZPWMA287SWOF_BUFFER);
    TC_RESULT := MSG.SEND_TC_AND_CONTINUE (PPK_TC_ZPWMB287SWOF_BUFFER);
  end if;

  // Wait for the LCL reaction
  BI.WAIT_DELAY (K_TM_UPDATE_CYCLE_TIME);

  // Verify if ALICE LCL is off
  GET_ALICE_LCL_STATUS (P_LATCH, IS_ALICE_ON, IS_CHECK_VALID);
  if (IS_ALICE_ON) then
    RET_VALUE := FALSE;
  end if;

  return (RET_VALUE);
end IS_SWITCH_LCL_OFF_SUCCESSFUL;
  
"

# The ominous regexp ;-)
str =~
/^function\s*(.*?)\s*[(](.*?)[)]\s*return\s*(.*?)\s*is\s*(.*?)begin\s*(.*?)e
nd\s*\1\s*[;]/m
 

In This Thread

Prev Next