[erlang-patches] [patch] binary to/from integer
Serge Aleynikov
serge@REDACTED
Thu Jan 10 20:31:34 CET 2013
Thanks for the explanation! The API naming is a headache indeed.
It does make sense to define these functions in the binary module.
Though while binary:string_to_integer/1 is intuitive, I think
binary:integer_to_string/1 would be a more intuitive name than
binary:string_from_integer/1 (this also would be more consistent with
binary:{bin,list}_to_{list,bin}.
On 1/10/2013 1:50 PM, Björn-Egil Dahlberg wrote:
> On 2013-01-10 18:55, Serge Aleynikov wrote:
>> I was under impression that Lucas would take care of modifications he
>> proposed in the thread you quoted. Meanwhile I'll see if I can find
>> time to do this.
> I think the key words were "if it gets prioritized" =)
> Granted, we could be more clear on intention. I think in this case we
> supposedly had time which drastically changed at some point ..
>
>>
>> Do you already have an implementation of binary <-> integer? If not,
>> maybe I could look at that one as well when I poke around the BIFs,
>> since this is also something very commonly needed.
> Right, what I did was to take the list conversions to integer and made
> it binary comprehensible.
>
> That was the easy bit.
>
> However,
> Now I have
> * erlang:binary_to_integer/1 and
> * erlang:integer_to_binary/1
> which seems fine. The compiler will auto-import them as well.
>
> After I did that I began to reconsider this choice. Perhaps it should be
>
> * binary:to_integer/1 and binary:from_integer/1 instead? Or,
> * binary:string_from_integer/1 and binary:string_to_integer/1,
> emphasizing that this is a textual representation of integer in binary
> format. Then I got a headache.
>
> The arguments for the first one (current) is:
> * list_to_integer has same type of ideas, same type of behavior. Avoids
> confusion.
> The arguments against the first one,
> * Clutters the erlang module with yet more BIF's
> * We already have a binary module, let's use it!
> * And finally: avoid confusion! Does erlang:integer_to_binary(102341)
> mean <<0,1,143,197>> or <<"102341">> ?
>
> I'm leaning towards the latter.
>
> Also, I didn't implement base conversion, so that needs doing. I think
> the list conversion is done in Erlang which seems backwards.
>
> Anyways, the current implementation is at:
> https://github.com/psyeugenic/otp/commits/egil/r16/binary_to_integer
>
> But the real work is taking a position on the API and consider the
> different ramifications. I still have that headache ..
>
> Yet another also, perhaps this implementation isn't the way to go. From
> what I remember erlang:binary_to_integer didn't have the speedup I first
> envisioned. Ofc, it was faster than doing
> binary_to_list(list_to_integer(X)) but binary_to_integer was on par with
> this list_to_integer .. which seemed a bit off.
>
> I want to refrain from using strtol directly (I think that
> implementation is similar anyways and we still need to handle bignums).
>
> I think I want to change the current implementation to taking the base
> as argument to the BIF and perhaps using arity one function as an erlang
> wrapper. (And doing the same for list_to_integer). The arguments against
> that is, surely the arity one functions is far more used and it should
> be slightly faster to that call directly.
>
> // Björn-Egil
>
>>
>> On 1/10/2013 12:41 PM, Björn-Egil Dahlberg wrote:
>>> On 2013-01-10 18:08, Serge Aleynikov wrote:
>>>> Not quite - in two days my "new float_to_list/2" patch is celebrating
>>>> its 2 year anniversary sitting in the awaiting mode. ;-)
>>> Nice =o
>>> However, it is not really as you imply. A simple patch that has been
>>> ignored for two years =)
>>>
>>> I checked in Monitor/OTP:
>>> * sal/float_to_list_2
>>> * status: unassigned
>>> * location: limbo (not present in any active backlog)
>>> * notes: waiting for response from author (noted by Lukas)
>>>
>>> Lukas is currently on a mountain somewhere in south america so I can't
>>> really ask him about it.
>>>
>>> As I recall, your patch had some controversy about precision?
>>>
>>> And the last mail conversation mention something about modifications
>>> needed and if we were to do it we had to prioritize it along with
>>> already planned work. Needless to say, it hasn't been prioritized.
>>>
>>> http://erlang.org/pipermail/erlang-patches/2012-August/002980.html
>>>
>>> Personally trying to find time to get binary (text) <-> integer
>>> conversions into the backlog.
>>>
>>> Being realistic, neither your float conversion nor mine will make it to
>>> r16. *sadface*
>>>
>>>
>>> // Björn-Egil
>>>
>>>> On 1/10/2013 10:51 AM, Max Lapshin wrote:
>>>>> Serge, you seems to be a fast way to pull patch into upstream =)
>>>>>
>>>>>
>>>>> On Thu, Jan 10, 2013 at 7:24 PM, Serge Aleynikov <serge@REDACTED
>>>>> <mailto:serge@REDACTED>> wrote:
>>>>>
>>>>> That was the fastest acceptance of a patch I ever submitted.
>>>>> ;-)
>>>>>
>>>>> On 1/10/2013 10:03 AM, Fredrik wrote:
>>>>> > Hello Serge,
>>>>> > Your patch is now in the 'master-pu' branch.
>>>>> > Thanks for your contribution!
>>>>> >
>>>>> > BR Fredrik Gustafsson
>>>>> > Erlang OTP Team
>>>>> > On 01/10/2013 03:31 PM, Serge Aleynikov wrote:
>>>>> >> Added an application:get_env/3 function variant that
>>>>> provides a
>>>>> default
>>>>> >> value for a configuration parameter:
>>>>> >>
>>>>> >> application:get_env(App, Key, Default) -> Value.
>>>>> >>
>>>>> >> git fetch git://github.com/saleyn/otp.git
>>>>> <http://github.com/saleyn/otp.git> get_env
>>>>> >>
>>>>> >> https://github.com/saleyn/otp/compare/erlang:master...get_env
>>>>> >>
>>>>> https://github.com/saleyn/otp/compare/erlang:master...get_env.patch
>>>>> >> _______________________________________________
>>>>> >> erlang-patches mailing list
>>>>> >> erlang-patches@REDACTED <mailto:erlang-patches@REDACTED>
>>>>> >> http://erlang.org/mailman/listinfo/erlang-patches
>>>>> >
>>>>> _______________________________________________
>>>>> erlang-patches mailing list
>>>>> erlang-patches@REDACTED <mailto:erlang-patches@REDACTED>
>>>>> http://erlang.org/mailman/listinfo/erlang-patches
>>>>>
>>>>>
>>>> _______________________________________________
>>>> erlang-patches mailing list
>>>> erlang-patches@REDACTED
>>>> http://erlang.org/mailman/listinfo/erlang-patches
>>>>
>>>>
>>> _______________________________________________
>>> erlang-patches mailing list
>>> erlang-patches@REDACTED
>>> http://erlang.org/mailman/listinfo/erlang-patches
>>
>
More information about the erlang-patches
mailing list