[erlang-patches] Forbid local fun names in Core Erlang guards
Fredrik
fredrik@REDACTED
Fri Jan 18 10:41:59 CET 2013
Graduated to master!
Thanks for your contribution!
BR Fredrik Gustafsson
Erlang OTP Team
On 01/16/2013 03:09 PM, Anthony Ramine wrote:
> The inliner seems to use integer for new variables.
>
> I amended my patch and its message accordingly, please refetch.
>
> -- Anthony Ramine Le 16 janv. 2013 à 14:47, Anthony Ramine a écrit :
>> > Oops.
>> >
>> > I was simply trying to replicate this in my rm-reverse-eta-conversion branch.
>> >
>> > Will investigate on the proper branch now.
>> >
>> > Regards,
>> >
>> > --
>> > Anthony Ramine
>> >
>> > Le 16 janv. 2013 à 14:29, Anthony Ramine a écrit :
>> >
>>> >> Thanks for the details.
>>> >>
>>> >> I'll rebase against current master and try again, line 428 of compilation_SUITE
>>> >> can't fail that way in my current branch.
>>> >>
>>> >> --
>>> >> Anthony Ramine
>>> >>
>>> >> Le 16 janv. 2013 à 14:24, Fredrik a écrit :
>>> >>
>>>> >>> It was not the bootstrap, I think you have to take a look at those testcases,
>>>> >>> Here's the reason's:
>>>> >>> compilation_SUITE:self_compile_1
>>>> >>> failed on line 428
>>>> >>> Reason: suite_failed
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>> inline_SUITE:try_inline failed on line 117
>>>> >>> Reason: {badmatch,error}
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>>
>>>> >>> inline_SUITE:try_inline
>>>> >>> failed on line 117
>>>> >>> Reason: {badmatch,error}
>>>> >>>
>>>> >>>
>>>> >>> BR Fredrik Gustafsson
>>>> >>> Erlang OTP Team
>>>> >>> On 01/16/2013 12:02 PM, Anthony Ramine wrote:
>>>>> >>>> I can't reproduce any of these failures.
>>>>> >>>>
>>>>> >>>> Could I have more informations about how they failed?
>>>>> >>>>
>>>>> >>>> My wild guess is that it is related (maybe) to the bootstrap compiler,
>>>>> >>>> but I'm probably wrong.
>>>>> >>>>
>>>>> >>>> Björn, any idea?
>>>>> >>>>
>>>>> >>>> Regards,
>>>>> >>>>
>>>>> >>>>
>>>>> >>>> --
>>>>> >>>> Anthony Ramine
>>>>> >>>>
>>>>> >>>> Le 16 janv. 2013 à 11:46, Fredrik a écrit :
>>>>> >>>>
>>>>> >>>>
>>>>>>> >>>>>>
>>>>>> >>>>> Hello Anthony,
>>>>>> >>>>>
>>>>>>> >>>>>>
>>>>>> >>>>> Your patch is failing the following testsuites and testcases:
>>>>>> >>>>>
>>>>>>> >>>>>>
>>>>>> >>>>> compilation_SUITE : self_compile
>>>>>> >>>>>
>>>>>>> >>>>>>
>>>>>> >>>>> inline_SUITE : decode1
>>>>>> >>>>>
>>>>>>> >>>>>>
>>>>>> >>>>> inline_SUITE : pseudoknot
>>>>>> >>>>>
>>>>>>> >>>>>>
>>>>>>> >>>>>>
>>>>>> >>>>> Please correct and give me notice,
>>>>>> >>>>>
>>>>>>> >>>>>>
>>>>>>> >>>>>>
>>>>>> >>>>> BR Fredrik Gustafsson
>>>>>> >>>>>
>>>>>>> >>>>>>
>>>>>> >>>>> Erlang OTP Team
>>>>>> >>>>>
>>>>>>> >>>>>>
>>>>>> >>>>> On 01/15/2013 11:40 AM, Fredrik wrote:
>>>>>> >>>>>
>>>>>>>>> >>>>>>>> Hello Anthony;)
>>>>>>>>> >>>>>>>>
>>>>>>> >>>>>> It is now in the 'master-pu' branch.
>>>>>>> >>>>>>
>>>>>>>>> >>>>>>>>
>>>>>>> >>>>>> Thanks,
>>>>>>> >>>>>>
>>>>>>>>> >>>>>>>>
>>>>>>>>> >>>>>>>>
>>>>>>> >>>>>> BR Fredrik Gustafsson
>>>>>>> >>>>>>
>>>>>>>>> >>>>>>>>
>>>>>>> >>>>>> Erlang OTP Team
>>>>>>> >>>>>>
>>>>>>>>> >>>>>>>>
>>>>>>> >>>>>> On 01/15/2013 11:28 AM, Anthony Ramine wrote:
>>>>>>> >>>>>>
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>> >>>>>>> Repost on only erlang-patches so that Fredrik's MUA see it;)
>>>>>>>> >>>>>>>
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>> >>>>>>> -- Anthony Ramine Début du message réexpédié :
>>>>>>>> >>>>>>>
>>>>>>>>>>>>>>> >>>>>>>>>>>>>> De : Anthony Ramine<n.oxyde@REDACTED>
>>>>>>>>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>>>> >>>>>>>>> Objet : Rép : Local function names in Core Erlang guards
>>>>>>>>>> >>>>>>>>>
>>>>>>>>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>>>> >>>>>>>>> Date : 11 janvier 2013 17:12:37 HNEC
>>>>>>>>>> >>>>>>>>>
>>>>>>>>>>>>>>> >>>>>>>>>>>>>> À : erlang-bugs Bugs<erlang-bugs@REDACTED>, erlang patches<erlang-patches@REDACTED>
>>>>>>>>>>>>>>> >>>>>>>>>>>>>> Cc : Bjorn Gustavsson<bjorn@REDACTED>
>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>>>>> >>>>>>>>>> Hi,
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>>>>> >>>>>>>>>> I wrote a really small patch to forbid local fun variables in Core Erlang guards.
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>>>> >>>>>>>>> There is no test case as there is no test suite for core_lint.
>>>>>>>>>> >>>>>>>>>
>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>>>>> >>>>>>>>>> I know the code freeze for R16 is soon but this is really a very small thing.
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>>>>> >>>>>>>>>> git fetchhttps://github.com/nox/otp.git forbid-locals-in-core-guards
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>> https://github.com/nox/otp/compare/erlang:master...forbid-locals-in-core-guards
>>>>>>>>>>>>>>> >>>>>>>>>>>>>> https://github.com/nox/otp/compare/erlang:master...forbid-locals-in-core-guards.patch
>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>>>>> >>>>>>>>>> Regards,
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>>>>> >>>>>>>>>> -- > Anthony Ramine
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>
>>>>>>>>>>> >>>>>>>>>> Le 19 nov. 2012 à 11:02, Anthony Ramine a écrit :
>>>>>>>>>>> >>>>>>>>>>
>>>>>>>>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>>>>>> >>>>>>>>>>> Hi,
>>>>>>>>>>>> >>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> >>>>>>>>>>>>> While patching the compiler to allow substitutions of variables which values are
>>>>>>>>>>>>>> >>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>>>>>> >>>>>>>>>>> local function names [1], I discovered that core_lint doesn't forbid them in guards,
>>>>>>>>>>>> >>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>>>>>> >>>>>>>>>>> even though that makes the compiler passes further down the road generate badly-formed
>>>>>>>>>>>> >>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>>>>>> >>>>>>>>>>> BEAM code.
>>>>>>>>>>>> >>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> >>>>>>>>>>>>> Is that a bug in core_lint or a bug in the BEAM code generation? Should local function
>>>>>>>>>>>>>> >>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>>>>>> >>>>>>>>>>> names be allowed in guards?
>>>>>>>>>>>> >>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> >>>>>>>>>>>>> If it is a bug in core_lint, I can make a patch for that; if it is a bug in the BEAM
>>>>>>>>>>>>>> >>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>>>>>> >>>>>>>>>>> code generation I would love to fix it and remove the code I wrote to avoid the
>>>>>>>>>>>> >>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>>>>>> >>>>>>>>>>> substitution in guards... but I lack knowledge about the BEAM innards.
>>>>>>>>>>>> >>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> >>>>>>>>>>>>> Regards,
>>>>>>>>>>>>>> >>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>> [1]http://erlang.org/pipermail/erlang-patches/2012-November/003137.html
>>>>>>>>>>>>>> >>>>>>>>>>>>>
>>>>>>>>>>>>>> >>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>> >>>>>>>>>>>>> -- >> Anthony Ramine
>>>>>>>>>>>>>> >>>>>>>>>>>>>
>>>>>>>>>>>>>>>>>>> >>>>>>>>>>>>>>>>>>
>>>>>>>>>>>>>>> >>>>>>>>>>>>>>
>>>>>>>>> >>>>>>>>
>>>>>>>>> >>>>>>>>
>>>>>>> >>>>>> _______________________________________________
>>>>>>> >>>>>>
>>>>>>>>> >>>>>>>>
>>>>>>> >>>>>> erlang-patches mailing list
>>>>>>> >>>>>>
>>>>>>>>> >>>>>>>> erlang-patches@REDACTED
>>>>>>>>> >>>>>>>> http://erlang.org/mailman/listinfo/erlang-patches
>>>>>>> >>>>>>
>>>> >>>
>>> >>
>> >
More information about the erlang-patches
mailing list