[parrot/parrot] 85d930: [GH# 828] Avoid passsing non-double through va_lis...
GitHub
noreply at github.com
Sat Sep 15 04:21:19 UTC 2012
Branch: refs/heads/rurban/va_arg_print_n
Home: https://github.com/parrot/parrot
Commit: 85d9301aab75fd43c0b590e812c8643b1afa8839
https://github.com/parrot/parrot/commit/85d9301aab75fd43c0b590e812c8643b1afa8839
Author: Reini Urban <rurban at cpanel.net>
Date: 2012-09-14 (Fri, 14 Sep 2012)
Changed paths:
M src/pmc/float.pmc
M t/src/embed/pmc.t
M t/src/extend_vtable.t
Log Message:
-----------
[GH# 828] Avoid passsing non-double through va_list
va_list does not support float, long double nor __float128 on most systems.
Promote FLOATVAL to double to avoid that.
Commit: 6f0e533ca1d706f51f9ec517e7634022e96270ef
https://github.com/parrot/parrot/commit/6f0e533ca1d706f51f9ec517e7634022e96270ef
Author: Reini Urban <rurban at cpanel.net>
Date: 2012-09-14 (Fri, 14 Sep 2012)
Changed paths:
M runtime/parrot/library/Test/More.pir
M src/dynoplibs/sys.ops
M t/dynoplibs/sysinfo.t
M t/dynpmc/rational.t
M t/library/test_more.t
M t/pmc/integer.t
M t/pmc/testlib/packfile_common.pir
Log Message:
-----------
[GH #828] Fix most tests for non-double floatval
Add more needed precisions to numeric tests, tested with intel long double.
Change a magic number in t/library/test_more.t 888.81<=>888.82 1e-2
was not stable enough for intel long double
Use t/pmc/testlib/annotations.pbc for binary comparisons of packfiles since
stringifying non-double numbers is not stable enough.
Fix src/dynoplibs/sys.ops doublesize to numvalsize. This only works for double.
Commit: 29582199aef9ea94622b4202aee129521bc649a1
https://github.com/parrot/parrot/commit/29582199aef9ea94622b4202aee129521bc649a1
Author: Reini Urban <rurban at cpanel.net>
Date: 2012-09-14 (Fri, 14 Sep 2012)
Changed paths:
M src/ops/core_ops.c
M src/ops/io.ops
Log Message:
-----------
[GH #828] Optimize print_n/i and say_n/i
print_n/nc/i/ic and the say variants go through a full Parrot_io_printf with
3 va_start/va_end scenarios and a custom format string parser,
and through char* -> STRING->char* conversion until the fixed
FLOATVAL_FMT or INTVAL_FMT printf is done.
Just to print a single int or number.
This also lost precision for non-double floatval's - if cast to (double).
Now avoided.
Compare: https://github.com/parrot/parrot/compare/85d9301aab75^...29582199aef9
More information about the parrot-commits
mailing list