[erlang-bugs] error in re:split on R14B02 and R14B03

Dave Peticolas <>
Sat Jun 11 21:18:49 CEST 2011


For the record, it looks like a compiler bug. I found that on line 551 in
erl_bif_re.c, the
'else if' branch is not taken, even though the 'ri' variable is initialized
to the address of
the local 'defri' structure and the boolean condition should be true. Moving
'defri' to a static
module variable fixes the problem. I'm going to try rebuilding with a newer
gcc (currently
using the 4.2.3 that comes with the distro).

dave

2011/6/9 Dave Peticolas <>

> Fair enough. To the debugger!
>
>
> 2011/6/9 Patrick Baggett <>
>
>> Well the point was to check if there might be a reason like compiler
>> optimization that was causing it. Usually debug builds don't have extremely
>> heavy optimization enabled and if that was the cause, it would automagically
>> disappear. Since it isn't the problem, I don't really have good ideas other
>> than debugging Erlang itself.
>>
>> Patrick
>>
>>
>> On Thu, Jun 9, 2011 at 10:19 PM, Dave Peticolas <
>> > wrote:
>>
>>> I built a debug emulator, but I'm not sure what I should do with it,
>>> other than re-run that test which produces the same failing result.
>>>
>>>
>>> 2011/6/7 Dave Peticolas <>
>>>
>>>> Thanks, I will give that a try.
>>>>
>>>>
>>>> 2011/6/7 Patrick Baggett <>
>>>>
>>>>> Maybe it is compiler options / optimizations producing wrong code? I'd
>>>>> make 100% sure all *.o files are gone and then retry with a debug build.
>>>>> Other than that, I don't know what to tell you. :\
>>>>>
>>>>>
>>>>> On Tue, Jun 7, 2011 at 10:17 PM, Dave Peticolas <
>>>>> > wrote:
>>>>>
>>>>>> I should mention it works fine on my Linux desktop as well.
>>>>>> I'd say something was wrong with my netbook, except 01
>>>>>> works just fine.
>>>>>>
>>>>>>
>>>>>> 2011/6/7 Patrick Baggett <>
>>>>>>
>>>>>>> Not seeing it here (Win32 platform)
>>>>>>>
>>>>>>> Erlang R14B03 (erts-5.8.4) [smp:4:4] [rq:4] [async-threads:0]
>>>>>>>
>>>>>>> Eshell V5.8.4  (abort with ^G)
>>>>>>> 1> re:split("abc","b").
>>>>>>> [<<"a">>,<<"c">>]
>>>>>>> 2>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jun 7, 2011 at 10:00 PM, Dave Peticolas <
>>>>>>> > wrote:
>>>>>>>
>>>>>>>> Hello, I recently tried to build both R14B02 and 03 on my Dell
>>>>>>>> Inspiron Mini (Intel Atom)
>>>>>>>> running Ubuntu 8.04. I already had R14B01 running fine. I found that
>>>>>>>> re:split no longer
>>>>>>>> worked. I built all the versions from source. Here is an example of
>>>>>>>> 01 output:
>>>>>>>>
>>>>>>>> Erlang R14B01 (erts-5.8.2) [source] [smp:2:2] [rq:2]
>>>>>>>> [async-threads:0] [hipe] [kernel-poll:false]
>>>>>>>>
>>>>>>>> Eshell V5.8.2  (abort with ^G)
>>>>>>>> 1> re:split("abc", "b").
>>>>>>>> [<<"a">>,<<"c">>]
>>>>>>>> 2> q().
>>>>>>>> ok
>>>>>>>>
>>>>>>>>
>>>>>>>> And here is what I get on 02 (same as 03 except for the version
>>>>>>>> numbers):
>>>>>>>>
>>>>>>>> Erlang R14B02 (erts-5.8.3) [source] [smp:2:2] [rq:2]
>>>>>>>> [async-threads:0] [hipe] [kernel-poll:false]
>>>>>>>>
>>>>>>>> Eshell V5.8.3  (abort with ^G)
>>>>>>>> 1> re:split("abc", "b").
>>>>>>>> ** exception error: no case clause matching {match,["b"]}
>>>>>>>>      in function  re:run/3
>>>>>>>>         called as re:run(<<"abc">>,
>>>>>>>>                          {re_pattern,0,0,
>>>>>>>>
>>>>>>>>  <<69,82,67,80,49,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,98,0,0,...>>},
>>>>>>>>                          [global])
>>>>>>>>      in call from re:split/3
>>>>>>>> 2>
>>>>>>>>
>>>>>>>> In case the existing build was somehow getting tangled with the new
>>>>>>>> one,
>>>>>>>> I tried removing the 01 build completely and rebuilding 02 and got
>>>>>>>> the same
>>>>>>>> results.
>>>>>>>>
>>>>>>>> thanks,
>>>>>>>> dave
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> erlang-bugs mailing list
>>>>>>>> 
>>>>>>>> http://erlang.org/mailman/listinfo/erlang-bugs
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-bugs/attachments/20110611/aa58906e/attachment.html>


More information about the erlang-bugs mailing list