<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      http-equiv="Content-Type">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <div class="moz-cite-prefix">In review .. again =)<br>
      <br>
      I think we have covered default behaviours.<br>
      <br>
      Is the following intended behaviour? =)<br>
      <br>
      1> erlang:float_to_list(3/7, [{decimals, 314},
      compact]).                     <br>
      [48,46,52,50,56,53,55,49,52,50,56,53,55,49,52,50,56,53,52,<br>
       55,54,51,56,48,55,56,48,52,51|...]<br>
      <br>
      2> erlang:float_to_list(3/7, [{scientific, 314},
      compact]).               <br>
"4.2857142857142854763807804374664556235074996948242187500000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"<br>
      <br>
      ?<br>
      <br>
      // Björn-Egil<br>
      <br>
      On 2013-01-14 10:10, Fredrik wrote:<br>
    </div>
    <blockquote cite="mid:50F3CB77.8020508@erlang.org" type="cite">
      <meta content="text/html; charset=ISO-8859-1"
        http-equiv="Content-Type">
      Hello,<br>
      This testcase is failing: <br>
      Suite: bif_SUITE<br>
      Testcase: specs<br>
      Reason:
      <meta http-equiv="content-type" content="text/html;
        charset=ISO-8859-1">
      <pre style="color: rgb(0, 0, 0); font-family: Monaco, 'Andale Mono', Consolas, monospace; font-size: 0.8em; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: -webkit-auto; text-indent: 0px; text-transform: none; widows: 2; word-spacing: 0px; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; ">The following BIFs don't have specs:

erlang:float_to_list/2
</pre>
      Give me notice when this is done,<br>
      BR Fredrik Gustafsson<br>
      Erlang OTP Team<br>
      On 01/11/2013 04:55 PM, Serge Aleynikov wrote:
      <blockquote cite="mid:50F03609.6000809@aleynikov.org" type="cite">
        <pre wrap="">Sorry the test case line was the "last moment" add on.  It is fixed now
in my branch below.

On 1/11/2013 10:44 AM, Fredrik wrote:
</pre>
        <blockquote type="cite">
          <pre wrap="">Hey,
Your patch does not build:
"

emulator_test ../emulator_test/num_bif_SUITE.erl:130: illegal pattern
"


Please have a look at it, and give me notice when you are done.

BR Fredrik Gustafsson
Erlang OTP Team
On 01/11/2013 03:11 PM, Serge Aleynikov wrote:
</pre>
          <blockquote type="cite">
            <pre wrap="">Ok. Here's the patch rebased to master:

git fetch <a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/tree/float_to_list_2">https://github.com/saleyn/otp/tree/float_to_list_2</a>

<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/compare/master...float_to_list_2">https://github.com/saleyn/otp/compare/master...float_to_list_2</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/compare/master...float_to_list_2.patch">https://github.com/saleyn/otp/compare/master...float_to_list_2.patch</a>

Regards,

Serge

On 1/11/2013 8:53 AM, Björn-Egil Dahlberg wrote:
</pre>
            <blockquote type="cite">
              <pre wrap="">On 2013-01-11 14:24, Serge Aleynikov wrote:
</pre>
              <blockquote type="cite">
                <pre wrap="">While looking at this I see that the code in folder
"erts/emulator/sys/vxworks" is present in maint but missing in the
master branch.  Is this intentional?  If so, should I remove the
part of
the patch designed for vxworks?
</pre>
              </blockquote>
              <pre wrap="">Yes. Any and all vxworks support has been removed in R16 from OTP except
for epmd, erl_interface and ic.

// Björn-Egil
</pre>
              <blockquote type="cite">
                <pre wrap="">On 1/11/2013 3:52 AM, Fredrik wrote:
</pre>
                <blockquote type="cite">
                  <pre wrap="">Hey,
Could you please rebase this on current 'master' branch?

BR Fredrik Gustafsson
Erlang OTP Team
On 01/11/2013 04:06 AM, Serge Aleynikov wrote:
</pre>
                  <blockquote type="cite">
                    <pre wrap="">I implemented Lukas's recommendations that were presenting an
acceptance
issue of the new function, so the current version of the patch does:

1. float_to_list/1 is backwards compatible.
2. float_to_list(X,[]) gives the same result as float_to_list(X).
3. float_to_list(X,[{decimals,N}]) uses the new fast implementation
(with the optional compact option).
4. float_to_list(X,[{scientific,M}]) gives the same result as
float_to_list(X) with the ability to control the number of decimals.

The only item from Lucas's list that I left unchanged was the
modification to erts/lib_src/common/erl_printf_format.c to take
advantage of the speed improvement of the new implementation.  I am
including a patch in this email that implements this logic, but I
decided to leave the integration task to the OTP team since
erl_printf_format.c is actually compiled into a liberts_internal.a
library and I didn't want to introduce a dependency of it on other
code
- this should be decided by maintainers.

The test cases of float_to_list/{1,2} have been updated.

git fetch <a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/tree/float_to_list_2">https://github.com/saleyn/otp/tree/float_to_list_2</a>

<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/compare/maint...float_to_list_2">https://github.com/saleyn/otp/compare/maint...float_to_list_2</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/compare/maint...float_to_list_2.patch">https://github.com/saleyn/otp/compare/maint...float_to_list_2.patch</a>

Regards,

Serge

On 8/23/2012 5:10 AM, Lukas Larsson wrote:
</pre>
                    <blockquote type="cite">
                      <pre wrap="">Hi,

I'll put it in the backlog and we'll see if it gets prioritized for
R16B.

As always if you (or someone else) wants make sure it gets in, the
best
way to ensure that is to send an updated patch.

Lukas


On 22/08/12 21:17, Serge Aleynikov wrote:
</pre>
                      <blockquote type="cite">
                        <pre wrap="">I am certainly very happy to hear that you finally agreed to
include
this in the distribution.  The changes proposed below seem
reasonable
and simple.  Will the OTP team be able to modify my patch to
implement
them?

On 8/22/2012 12:01 PM, Lukas Larsson wrote:
</pre>
                        <blockquote type="cite">
                          <pre wrap="">Hello Serge!

I think we have finally agreed how we want this functionality to
work.

float_to_list/1 should be left as it is now for backwards
compatibility.
float_to_list(1.0,[]) should give the same as float_to_list(1.0).
float_to_list(1.0,[{decimals,X}]) should use your faster
implementation
(with the optional compact option).
float_to_list(1.0,[{scientific,Y}]) should give the same as
float_to_list(1.0) if Y is 20.

We would also like the string rendering part of
sys_double_to_chars_fast
to be put into
erts/lib_src/common/erl_printf_format.c:fmt_double. This
way other parts of the vm which print floats will benefit from
your
changes!

I hope our indecisiveness have not caused you to shy away from
taking
this feature into Erlang/OTP. If you have any further questions or
ponderings just let me know.

Lukas

On 18/07/12 20:47, Serge Aleynikov wrote:
</pre>
                          <blockquote type="cite">
                            <pre wrap="">On 7/18/2012 5:18 AM, Lukas Larsson wrote:
</pre>
                            <blockquote type="cite">
                              <pre wrap="">However, I would also like the fast functionality to be used by
float_to_list_1 as well, is possible to do this and stay
backwards
compatible? Hopefully you just have to shift the comma and add
e+XX at
the end of the optimized case and call sys_double_to_chars
for the
unoptimized.
</pre>
                            </blockquote>
                            <pre wrap="">See my comments below regarding 'scientific' option.  Since
float_to_list_2 is a new function I would think that you are
questioning
the issue of backward compatibility only in terms of converting
float_to_list_1 to use float_to_list_2 implementation. 
However, I
think
that this will have adverse performance tax on float_to_list_2,
which
will diminish the benefit.  It's been a while however, since I
wrote
that patch, perhaps there's a way to retrofit scientific notation
without a performance penalty.

It's more than simple shifting of the comma, since there's also
rounding
involved.

This case is easy:

4>  float_to_list(1.01234).
"1.01234000000000001762e+00"
5>  float_to_list(1.01234, [{decimals, 20}]).
"1.01234000000000001762"

This case is a bit more complex (illustration of rounding
impact):

7>  float_to_list(10123412345.0123451234).
"1.01234123450123443604e+10"
8>  float_to_list(10123412345.0123451234, [{decimals, 20}]).
"10123412345.01234436035156250000"

</pre>
                            <blockquote type="cite">
                              <pre wrap="">Also float_to_list(1.0) should return the same thing as
float_to_list(1.0,[]), otherwise the API will be inconsistent
with how
other such APIs work.
</pre>
                            </blockquote>
                            <pre wrap="">Actually if you trace this subject back there was another
request that
the default number of decimals is chosen to be consistent with
what
printf() does, so I changed the implementation to accommodate
that
request:

Eshell V5.9  (abort with ^G)
1>  float_to_list(1.0, []).
"1.000000"

Which is different from the default of float_to_list/1:

2>  float_to_list(1.0).
"1.00000000000000000000e+00"

Maybe one could introduce a 'scientific' option to
float_to_list/2, to
use the float_to_list/1 implementation?

Serge

</pre>
                            <blockquote type="cite">
                              <pre wrap="">On 24/05/12 16:02, Serge Aleynikov wrote:
</pre>
                              <blockquote type="cite">
                                <pre wrap="">Henrik,

Fetch:    git fetch
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/tree/float_to_list_2">https://github.com/saleyn/otp/tree/float_to_list_2</a>
Diff:    <a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/compare/float_to_list_2">https://github.com/saleyn/otp/compare/float_to_list_2</a>

I added the definition for the new BIF to make the type checker
happy:
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/commit/f9ddbeda5426ca83cda03c06a9860220ea4a22c7">https://github.com/saleyn/otp/commit/f9ddbeda5426ca83cda03c06a9860220ea4a22c7</a>






Once you do the "otp_build tests", how do you execute all tests
suites
in $ERL_TOP or if possible only tests in a given SUITE?  I
tried the
following but all tests fail:

[otp/erts/emulator/test]$ ../../../bin/erl -noshell -s
test_server_ctrl
run_test DIR "." -s erlang halt

I did however run individual tests in bif_SUIT:types to make
sure my
patch didn't break anything.



Serge

On 5/24/2012 5:17 AM, Henrik Nord wrote:
</pre>
                                <blockquote type="cite">
                                  <pre wrap="">Hi again.


This test is not passing: emulator/bif_SUIT:types

No type information:

[{erlang,float_to_list,2}]



On 04/21/2012 07:19 AM, Serge Aleynikov wrote:
</pre>
                                  <blockquote type="cite">
                                    <pre wrap="">git fetch <a moz-do-not-send="true" class="moz-txt-link-freetext" href="https://github.com/saleyn/otp/tree/float_to_list_2">https://github.com/saleyn/otp/tree/float_to_list_2</a>
</pre>
                                  </blockquote>
                                </blockquote>
                                <pre wrap="">_______________________________________________
erlang-patches mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-patches">http://erlang.org/mailman/listinfo/erlang-patches</a>

</pre>
                              </blockquote>
                            </blockquote>
                            <pre wrap="">_______________________________________________
erlang-patches mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-patches">http://erlang.org/mailman/listinfo/erlang-patches</a>

</pre>
                          </blockquote>
                        </blockquote>
                        <pre wrap="">_______________________________________________
erlang-patches mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-patches">http://erlang.org/mailman/listinfo/erlang-patches</a>

</pre>
                      </blockquote>
                      <pre wrap="">_______________________________________________
erlang-patches mailing list
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-patches">http://erlang.org/mailman/listinfo/erlang-patches</a>
</pre>
                    </blockquote>
                  </blockquote>
                </blockquote>
              </blockquote>
            </blockquote>
          </blockquote>
        </blockquote>
      </blockquote>
      <br>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
erlang-patches mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-patches@erlang.org">erlang-patches@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-patches">http://erlang.org/mailman/listinfo/erlang-patches</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>