[Pharo-dev] [Glass] Bug in Regex?

Max Leske maxleske at gmail.com
Fri Feb 22 01:32:00 EST 2019


On 21 Feb 2019, at 16:25, Mariano Martinez Peck wrote:

> Hi Max,
>
> I opened this case [1] with the explanation and the fix. If you can give it
> a try, that would be great. I would also like to improve the test I wrote,
> so if you have more edge cases or ideas I can assert, let me know.

Great. I'll take a look when I get a chance.

>
> [1] https://github.com/pharo-project/pharo/issues/2679
>
> Cheers,
>
>
> On Thu, Feb 21, 2019 at 10:44 AM Max Leske <maxleske at gmail.com> wrote:
>
>> On 21 Feb 2019, at 13:40, Mariano Martinez Peck wrote:
>>
>>> Vassili Bykov Hi Max,
>>>
>>> It looks like it was fixed on a later version of VBRegex. I was able
>>> to
>>> extract the 2 little changes to make it work. Do you know if there is
>>> an
>>> issue already open for this so that I can submit the changes?
>>>
>>> BTW, I am trying to understand the history of Regex. It's clear that
>>> the
>>> original implementation was done by Vassili Bykov and the packages
>>> were
>>> called VBRegex and that was in VW under the Public Store. I guess, at
>>> some
>>> point, that code was ported to Pharo. In Pharo 1.1 the packages are
>>> still
>>> called 'VB-Regex' but on recent ones its called "Regex".
>>>
>>
>> The package name changed between Pharo 1.1.2 and Pharo 1.2.2, as far as
>> I can tell from the images I have on my machine.
>>
>>> What I cannot confirm is which version Pharo (or maybe this was even
>>> en
>>> Squeak before Pharo forked) ported from VW.  All I could find is a
>>> class
>>> comment on RxMatcher saying "-- Regular Expression Matcher v 1.1 (C)
>>> 1996,
>>> 1999 Vassili Bykov". As  you can see, that is 1999. VW has newer
>>> versions
>>> from 1.2.x to 1.4.x, latest commit being on 2014.
>>
>> The oldest images I have is Squeak3.9 of 7 November 2006 update 7067,
>> and that already contains VBRegex.
>>
>>>
>>> The particular problem we are discussing in this thread was fixed in
>>> 1.3.1.
>>>
>>> So I am not sure if someone ever tried porting again a newer version
>>> to
>>> Pharo? It doesn't seem the case.
>>
>> It would certainly be great to get those fixes!
>>
>>>
>>> Anyone knows a bit more the history here?
>>>
>>> Thanks
>>>
>>>
>>> On Thu, Feb 21, 2019 at 5:18 AM Max Leske <maxleske at gmail.com> wrote:
>>>
>>>> Hi Mariano,
>>>>
>>>> Yes, there is indeed such a bug (if it hasn't been fixed in an update
>>>> to
>>>> VBRegex that is). The bug is simple to work around though, as all you
>>>> have
>>>> to do is sort your branch (|) terms by length. Here's the comment
>>>> I've
>>>> written for a regex generating method is use:
>>>>
>>>> " The sorting is very important because VB-Regex aborts early on
>>>> branches.
>>>> Example: 'bl' matchesRegex: 'b|bl' --> false The solution is to sort
>>>> by
>>>> length (longest first), then alphabetically, with the short group
>>>> optimization at the end. "
>>>>
>>>> Cheers,
>>>> Max
>>>>
>>>> On 21 Feb 2019, at 3:33, Mariano Martinez Peck wrote:
>>>>
>>>>
>>>>
>>>> On Wed, Feb 20, 2019 at 5:56 PM Esteban Maringolo via Glass <
>>>> glass at lists.gemtalksystems.com> wrote:
>>>>
>>>>> What a good case to have GToolkit visualizations help debugging this
>>>>> RX
>>>>> tree ;)
>>>>>
>>>>>
>>>> Oh yeah..And look Doru, they have some stuff on the top right
>>>> "Explanation" panel: https://regex101.com/r/MqVXz8/1
>>>>
>>>>
>>>> --
>>>> Mariano
>>>> https://twitter.com/MartinezPeck
>>>> http://marianopeck.wordpress.com
>>>>
>>>>
>>>
>>> --
>>> Mariano
>>> https://twitter.com/MartinezPeck
>>> http://marianopeck.wordpress.com
>>
>>
>>
>>
>
> -- 
> Mariano
> https://twitter.com/MartinezPeck
> http://marianopeck.wordpress.com





More information about the Pharo-dev mailing list