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

Dave Peticolas <>
Fri Jun 17 03:55:56 CEST 2011


And for the final record, rebuilding R14B03 with gcc 4.5.3 fixes the
problem.

2011/6/11 Dave Peticolas <>

> 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/20110616/98572b26/attachment.html>


More information about the erlang-bugs mailing list