[parrot/parrot] da6c0b: [GH# 828] Avoid passsing non-double through va_lis...
GitHub
noreply at github.com
Fri Nov 21 15:39:46 UTC 2014
Branch: refs/heads/rurban/va_arg_print_n
Home: https://github.com/parrot/parrot
Commit: da6c0b43a467e5db862f1274dbb54c7d9e9302d3
https://github.com/parrot/parrot/commit/da6c0b43a467e5db862f1274dbb54c7d9e9302d3
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-11-21 (Fri, 21 Nov 2014)
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: afaf0c4330c110773421975f28ea4fb3645c6d0f
https://github.com/parrot/parrot/commit/afaf0c4330c110773421975f28ea4fb3645c6d0f
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-11-21 (Fri, 21 Nov 2014)
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: a993b2eb8bda2a9d51574246ea25dcae9214aa1b
https://github.com/parrot/parrot/commit/a993b2eb8bda2a9d51574246ea25dcae9214aa1b
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-11-21 (Fri, 21 Nov 2014)
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.
Commit: 1ef872887bd88d24962c6a99bc7eb11858671569
https://github.com/parrot/parrot/commit/1ef872887bd88d24962c6a99bc7eb11858671569
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-11-21 (Fri, 21 Nov 2014)
Changed paths:
M config/auto/va_ptr.pm
M config/auto/va_ptr/test_c.in
M config/gen/config_h/feature_h.in
M src/call/args.c
Log Message:
-----------
[GH #828] Probe if double is needed for va_arg or if native floatval does fine
Set new feature.h PARROT_VA_PTR_FLOATVAL to double or the given floatval,
and use it in src/call/args.c
Print "stack|register (double)" in Configure va_arg result if a cast is
required and precision is lost.
Still some va_arg casts missing, multidispatch.t and nci.t fail.
Commit: 1deee7f9f6c2169ee1423cd0da0e7648267e3b54
https://github.com/parrot/parrot/commit/1deee7f9f6c2169ee1423cd0da0e7648267e3b54
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-11-21 (Fri, 21 Nov 2014)
Changed paths:
M src/call/args.c
M src/string/spf_vtable.c
Log Message:
-----------
[GH #828] Use more va_arg PARROT_VA_PTR_FLOATVAL
Commit: cb356839ba58ddc2cd3e5d5bfdd9fe2662739cc8
https://github.com/parrot/parrot/commit/cb356839ba58ddc2cd3e5d5bfdd9fe2662739cc8
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-11-21 (Fri, 21 Nov 2014)
Changed paths:
M config/gen/config_h/feature_h.in
Log Message:
-----------
[cage] ident #define properly
Commit: b941590b33210b8f7f612d227c6b241523d7be15
https://github.com/parrot/parrot/commit/b941590b33210b8f7f612d227c6b241523d7be15
Author: Reini Urban <rurban at cpanel.net>
Date: 2014-11-21 (Fri, 21 Nov 2014)
Changed paths:
M src/pmc/float.pmc
Log Message:
-----------
use PARROT_VA_PTR_FLOATVAL in float.pmc
Compare: https://github.com/parrot/parrot/compare/4902b3aa72f2...b941590b3321
More information about the parrot-commits
mailing list