[#393742] Getting the class of an object. — Ralph Shnelvar <ralphs@...32.com>

Consider;

14 messages 2012/03/06

[#393815] arcadia IDE requires tcl/tk and ruby-tk — Thufir Hawat <hawat.thufir@...>

which or where tcl and tk does arcadia require? Is this a gem which I

13 messages 2012/03/13

[#393952] What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...>

Hi!

18 messages 2012/03/21
[#393953] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

Active Support has recently added qualified_const_* methods to Module

[#393954] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

Ah, that won't work in 1.8.

[#393959] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/21

On Wed, Mar 21, 2012 at 16:43, Xavier Noria <fxn@hashref.com> wrote:

[#393960] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

On Wed, Mar 21, 2012 at 8:17 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#393961] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/21

On Wed, Mar 21, 2012 at 20:48, Xavier Noria <fxn@hashref.com> wrote:

[#393962] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/21

On Wed, Mar 21, 2012 at 9:51 PM, Nikolai Weibull <now@bitwi.se> wrote:

[#393967] Re: What’s the best way to check if a feature/class has been loaded? — Nikolai Weibull <now@...> 2012/03/22

On Wed, Mar 21, 2012 at 22:11, Xavier Noria <fxn@hashref.com> wrote:

[#393969] Re: What’s the best way to check if a feature/class has been loaded? — Xavier Noria <fxn@...> 2012/03/22

On Thu, Mar 22, 2012 at 6:15 AM, Nikolai Weibull <now@bitwi.se> wrote:

[#394154] uninitialized constant SOCKSSocket — Resident Moron <lists@...>

I am running ruby 1.9.3 on a linux box. I would like to use

10 messages 2012/03/29

[#394160] Why z = Complex(1,2) rather than z = Complex.new(1,2)? — Ori Ben-Dor <lists@...>

What's this syntax, z = Complex(1,2), as opposed to z =

14 messages 2012/03/29

[#394175] shoes no such file to load -- rubygems — Mr theperson <lists@...>

I have installed shoes to develop GUI applications but when I try and

13 messages 2012/03/29

[#394201] Can't open url with a subdomain with an underscore — Jeroen van Ingen <lists@...>

I try to open the following URL: http://auto_diversen.marktplaza.nl/

10 messages 2012/03/30

[#394222] Ruby openssl ECC help plz — no name <lists@...>

I am confused on how to properly export public ECC key. I can see it

13 messages 2012/03/31

Re: Problem replacing $data[abc] with $data['abc'] using gsub

From: Bartosz Dziewoński <matma.rex@...>
Date: 2012-03-13 20:42:27 UTC
List: ruby-talk #393827
2012/3/13 Brian Candler <b.candler@pobox.com>:
> Jan E. wrote in post #1051180:
>> The part ".*?" of the regular expression is very inefficient
>
> Is it? Have you measured it?
>
>>, because it
>> will at first consume every character until the end of the line and then
>> try to find the minimum of characters needed.
>
> Does it? There are many implementations of ruby, which particular one(s)
> are you referring to?
>
> Your argument suggests that
>
> =C2=A0 =C2=A0/(.+?)(.+?)(.+?)(.+?)(.+?)/ =3D~ "a"*1_000_000
>
> would be extremely inefficient, but actually it runs very fast for me.
>
> So let's demonstrate if you are right or wrong:
>
> <snip>

Sorry, but you're both wrong. :) The expression, as far as I know,
*will not* first consume eveyrthing, and then back off (or at least
this is implementation-defined). Such regexps can, however, be slow.
(Although .+ can be slow as well.)

Let's try something a tiny bit more complicated (but still simple).

irb(main):001:0> re =3D /.+?a.+?b/
=3D> /.+?a.+?b/
irb(main):002:0> s =3D "ac"*1_000_000 + "b"; nil
=3D> nil
irb(main):003:0> s =3D~ re
=3D> 0

This run fasts. Now, what if it can't match?

irb(main):004:0> s =3D "ac"*1_000_000; nil
=3D> nil
irb(main):005:0> s =3D~ re

I have no idea what the output is - it's been running for a few
minutes... the same happens if you substitute .+? with .+.

This is a bad case of catastrophic backtracking -
http://www.regular-expressions.info/catastrophic.html - and stems from
the fact that matching a regex to a string is asymptotically
exponential.

In short - you should never use .+ or .+?, unless you have a very good
reason or know precisely what kinds of input you will get.

In This Thread