[parrot/parrot] cfc0ae: Rewrite native_pbc number converters and fix forma...

GitHub noreply at github.com
Wed Dec 12 19:32:38 UTC 2012


  Branch: refs/heads/native_pbc2
  Home:   https://github.com/parrot/parrot
  Commit: cfc0aee7c6f0b7ec23a3bd1eb17caee915230ff6
      https://github.com/parrot/parrot/commit/cfc0aee7c6f0b7ec23a3bd1eb17caee915230ff6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M compilers/imcc/optimizer.c
    M config/auto/format.pm
    M config/auto/sizes.pm
    M include/parrot/packfile.h
    M src/packfile/api.c
    M src/packfile/pf_items.c
    M t/native_pbc/integer_4_le.pbc
    M t/native_pbc/number.t
    M t/native_pbc/number_4_8_le.pbc
    M t/native_pbc/testdata/number.pasm

  Log Message:
  -----------
  Rewrite native_pbc number converters and fix format errors

Fix wrong layout of intel 80-bit long double, it is 10-byte + 2/6 byte padding
in i386 resp. x86_64/itanium. Renamed to FLOATTYPE_10.
Older pbc contain a wrong floattype=2 for this format.
It only depends on the word size: on 32bit padded to 12 byte, on 64 to 16byte.
Fixed the header writer logic accordingly.

Add single float support FLOATTYPE_4.

Add detection of yet unsupported special ppc, mips and aix variants
and the official IEEE-754 __float128 (quad double) format, which only
Sparc64 supports.

Simplify endianizers on number converters to reduce complexity.
Use native byteswap.h if detected (not yet).
New and better number.pasm values.


  Commit: 596c622292a270bde80618d5bb093f6a6d61cc9a
      https://github.com/parrot/parrot/commit/596c622292a270bde80618d5bb093f6a6d61cc9a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/format.pm
    M config/auto/sizes.pm
    M config/gen/config_h/config_h.in
    M src/packfile/api.c
    M t/native_pbc/number.t
    M t/native_pbc/number_4_12_le.pbc
    M t/native_pbc/number_8_16_le.pbc
    M t/native_pbc/number_8_8_le.pbc

  Log Message:
  -----------
  pre-calculate FLOATTYPE

FLOATTYPE is cpu dependent for long double. Better do that
in a config step, not at run-time.
Improve __float128 support.

Conflicts:
	t/native_pbc/number_4_12_le.pbc
	t/native_pbc/number_8_16_le.pbc
	t/native_pbc/number_8_8_le.pbc


  Commit: 3c51cfcf6160f00551426736ebea52bca26229ab
      https://github.com/parrot/parrot/commit/3c51cfcf6160f00551426736ebea52bca26229ab
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M t/native_pbc/number.t
    M t/native_pbc/testdata/number.pasm

  Log Message:
  -----------
  remove instable number

on 32-bit the highest number is printed differently


  Commit: 8ebdef0457d4d9db25d46b4b90ef45c16743fd8c
      https://github.com/parrot/parrot/commit/8ebdef0457d4d9db25d46b4b90ef45c16743fd8c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M tools/dev/mk_native_pbc

  Log Message:
  -----------
  rewrite tools/dev/mk_native_pbc

Support all possible floattypes, simplify logic
Remove bashism

Conflicts:
	tools/dev/mk_native_pbc


  Commit: 2744cd85bd8b215ee55e18dea313569f3e3a81d9
      https://github.com/parrot/parrot/commit/2744cd85bd8b215ee55e18dea313569f3e3a81d9
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c
    R t/native_pbc/integer_4_be.pbc
    M t/native_pbc/integer_4_le.pbc
    R t/native_pbc/number_4_12_le.pbc
    R t/native_pbc/number_4_16_be.pbc
    R t/native_pbc/number_4_8_be.pbc
    M t/native_pbc/number_4_8_le.pbc
    M t/native_pbc/number_8_16_le.pbc
    M t/native_pbc/number_8_8_le.pbc
    R t/native_pbc/string_4_be.pbc
    M tools/dev/mk_native_pbc

  Log Message:
  -----------
  native_pbc: float 4 fixes, mk_native_pbc

floattype_4 needs some prev. undefined helpers
improve mk_native_pbc
regenerate 32-bit le pbc's

Conflicts:
	t/native_pbc/integer_4_be.pbc
	t/native_pbc/number_4_16_be.pbc
	t/native_pbc/number_4_8_be.pbc
	t/native_pbc/string_4_be.pbc
	t/native_pbc/string_4_le.pbc
	tools/dev/mk_native_pbc


  Commit: f41e29e93c10fe600f62403bdd74ce71cdf256a6
      https://github.com/parrot/parrot/commit/f41e29e93c10fe600f62403bdd74ce71cdf256a6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/format.pm
    M t/native_pbc/number.t
    M tools/dev/mk_native_pbc

  Log Message:
  -----------
  adjust number.t to new floattypes, do not use %Qg


  Commit: 1eff94f35d96a282dcf63912cce8e32f56af7e5a
      https://github.com/parrot/parrot/commit/1eff94f35d96a282dcf63912cce8e32f56af7e5a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    A t/native_pbc/number_8_10_le.pbc
    A t/native_pbc/number_8_4_le.pbc

  Log Message:
  -----------
  native_pbc: update 8_le


  Commit: 157b2419c2b49437bdd287cdd16fbe15ee5f9b44
      https://github.com/parrot/parrot/commit/157b2419c2b49437bdd287cdd16fbe15ee5f9b44
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M tools/dev/mk_native_pbc

  Log Message:
  -----------
  fix mk_native_pbc syntax error


  Commit: 1f33e55fa40c73de285e76ce827f2605c43bd697
      https://github.com/parrot/parrot/commit/1f33e55fa40c73de285e76ce827f2605c43bd697
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    A t/native_pbc/number_4_4_le.pbc

  Log Message:
  -----------
  t/native_pbc/number_4_4_le.pbc added


  Commit: ef81b332434507a6bbd7c60fc669b3e158e1bd85
      https://github.com/parrot/parrot/commit/ef81b332434507a6bbd7c60fc669b3e158e1bd85
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M MANIFEST
    M config/auto/byteorder.pm
    A config/auto/byteorder/bswap_c.in
    A include/parrot/bswap.h

  Log Message:
  -----------
  add native include/parrot/bswap.h and probe

probe for endian.h, byteswap.h or OSX header for
native bswap inline functions/macros.


  Commit: cfd3aafd8304220a4bac6901b8a08f0a7428a94a
      https://github.com/parrot/parrot/commit/cfd3aafd8304220a4bac6901b8a08f0a7428a94a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/sizes.pm

  Log Message:
  -----------
  add HAS_FLOAT128 in config hash

__float128 is binary compatible to 16-bit big-endian sparc/s390
long double formats. Available since gcc 4.6


  Commit: e482130f698e4dee4145a21ee9bb724b2a79a6db
      https://github.com/parrot/parrot/commit/e482130f698e4dee4145a21ee9bb724b2a79a6db
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/byteorder.pm
    M config/auto/byteorder/bswap_c.in
    M config/gen/makefiles/root.in
    M include/parrot/bswap.h
    M src/packfile/pf_items.c

  Log Message:
  -----------
  Fix and improve bswap.h

Add missing libkern/OSByteOrder.h
Abstract macros into static inline functions
Use fast replacement macros
Use bswap in pf_items.c


  Commit: 53f9df45f302d60066b0302c1d93634da068197f
      https://github.com/parrot/parrot/commit/53f9df45f302d60066b0302c1d93634da068197f
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M include/parrot/bswap.h

  Log Message:
  -----------
  Fix byteswap.h and 64bit fallback macro

Forgot to define bswap macros with GNU byteswap.h
Fixed bswap_64 fallback.


  Commit: fe246dac2062196bc0d140cc43f43fb7c1664be2
      https://github.com/parrot/parrot/commit/fe246dac2062196bc0d140cc43f43fb7c1664be2
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M include/parrot/bswap.h
    M include/parrot/packfile.h
    M src/packfile/pf_items.c

  Log Message:
  -----------
  fix and optimize bswap

Also allow FLOATTYPE_16PPC, but this format seems to be double-double, not __float128


  Commit: cc7c19e5af5f72b84e0ab9902ec0f2a16195a53b
      https://github.com/parrot/parrot/commit/cc7c19e5af5f72b84e0ab9902ec0f2a16195a53b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/format.pm
    A t/native_pbc/integer_4_be.pbc
    A t/native_pbc/number_4_16PPC_be.pbc
    A t/native_pbc/string_4_be.pbc

  Log Message:
  -----------
  Fix nvsize in config/auto/format.pm, number_4*_be pbcs

nvsize should be the same as numvalsize, probed in auto::sizes,
but not one of floatvalsize, doublevalsize or hugefloatvalsize.
E.g. with long double used and __float128 possible hugefloatvalsize
is 16

Add generated ppc pbcs


  Commit: 68583d964d06fb60f777b1f7e384137c1230dd22
      https://github.com/parrot/parrot/commit/68583d964d06fb60f777b1f7e384137c1230dd22
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M include/parrot/bswap.h
    M include/parrot/packfile.h
    M src/packfile/pf_items.c
    M t/native_pbc/integer_4_le.pbc
    M t/native_pbc/number.t
    M t/native_pbc/string_4_le.pbc

  Log Message:
  -----------
  Add ppc converters, add PF_floattype_names

Added and document converters, ppc needs intermediate helpers.
The ppc long double is the sum of two doubles stored one
after the other: double-double.


  Commit: 13551a0bdd9fd91623ed0c69a762b3051bcdf86d
      https://github.com/parrot/parrot/commit/13551a0bdd9fd91623ed0c69a762b3051bcdf86d
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    A t/native_pbc/number_4_10_le.pbc

  Log Message:
  -----------
  t/native_pbc/number_4_10_le.pbc added


  Commit: 02576872a59209c101b59a9ff599a5c48866927f
      https://github.com/parrot/parrot/commit/02576872a59209c101b59a9ff599a5c48866927f
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c
    M t/native_pbc/integer_4_le.pbc
    M t/native_pbc/integer_8_le.pbc
    M t/native_pbc/string_4_le.pbc

  Log Message:
  -----------
  More converter fixes

Some ptr and logical errors.
such as use __float128 FLOATVAL for 16-byte nums, not long double.

Update some non-numeric pbcs

TODO: rounding


  Commit: 301e71b62cbcfc5315e0e2706dd5a5eef9264cbd
      https://github.com/parrot/parrot/commit/301e71b62cbcfc5315e0e2706dd5a5eef9264cbd
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  no unneeded numval transforms


  Commit: c9404c97ae0eaf9d36cbaf480adfe2f96869ff01
      https://github.com/parrot/parrot/commit/c9404c97ae0eaf9d36cbaf480adfe2f96869ff01
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M frontend/pbc_dump/main.c

  Log Message:
  -----------
  pbc_dump -h: print floattype and floatsize


  Commit: f86ea76a0d2eca36a6d0ef0d1e6578ec402cfb74
      https://github.com/parrot/parrot/commit/f86ea76a0d2eca36a6d0ef0d1e6578ec402cfb74
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c
    M t/native_pbc/number.t
    R t/native_pbc/number_8_4_le.pbc

  Log Message:
  -----------
  fix 16ppc readers, rounding not yet


  Commit: d6205d386ffa32028260e0e12e4194870f8a8566
      https://github.com/parrot/parrot/commit/d6205d386ffa32028260e0e12e4194870f8a8566
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/byteorder.pm
    M config/auto/byteorder/bswap_c.in
    M include/parrot/bswap.h

  Log Message:
  -----------
  Harmonize byteorder/bswap_c.in with bswap.h

Add ppc/darwin login (machine/endian.h)


  Commit: e48f406809df0c51c0ea4e290cf2201ddcd8f887
      https://github.com/parrot/parrot/commit/e48f406809df0c51c0ea4e290cf2201ddcd8f887
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M t/native_pbc/Test.pm
    M t/native_pbc/number.t

  Log Message:
  -----------
  dabble with native_pbc number rounding on tests


  Commit: 30adf34e939dc816891112a4c47357e00f19a0a9
      https://github.com/parrot/parrot/commit/30adf34e939dc816891112a4c47357e00f19a0a9
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M include/parrot/bswap.h

  Log Message:
  -----------
  fix bswap.h syntax error from prev commit


  Commit: 37a4d9fda6a4ecba6b115187d500498ddc92558c
      https://github.com/parrot/parrot/commit/37a4d9fda6a4ecba6b115187d500498ddc92558c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M t/native_pbc/integer_4_be.pbc
    M t/native_pbc/number.t
    A t/native_pbc/number_4_8_be.pbc
    M t/native_pbc/string_4_be.pbc

  Log Message:
  -----------
  ppc native pbc updates


  Commit: ca9241af8f30f460a3a78ec6b1423dcfe354ca6a
      https://github.com/parrot/parrot/commit/ca9241af8f30f460a3a78ec6b1423dcfe354ca6a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c
    M t/native_pbc/Test.pm
    M t/native_pbc/integer_4_be.pbc
    M t/native_pbc/number.t
    M t/native_pbc/string_4_be.pbc

  Log Message:
  -----------
  fix size 4+8 bswap, fix dest arch in tests, fix 16PPC converters


  Commit: 7835fff87c239901e058c005cd144372f121733a
      https://github.com/parrot/parrot/commit/7835fff87c239901e058c005cd144372f121733a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M MANIFEST
    M config/auto/format.pm

  Log Message:
  -----------
  set auto::format back to prev imcc FLOATVAL_FMT values


  Commit: 32a962a87875087b84184fe2f1d0c8aa6ca75726
      https://github.com/parrot/parrot/commit/32a962a87875087b84184fe2f1d0c8aa6ca75726
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/format.pm
    A config/auto/format/test_c.in

  Log Message:
  -----------
  probe for numeric sprintf formats

auto::format now tests stable round-strips for numbers
and decreases precision (does more rounding) until 5 digits.
Die if you only got 5 digits precision


  Commit: 456d3a0f2119618aaba60a74819a9af24312be4f
      https://github.com/parrot/parrot/commit/456d3a0f2119618aaba60a74819a9af24312be4f
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M compilers/imcc/optimizer.c

  Log Message:
  -----------
  minor imcc initialization improvement


  Commit: 4915429774d947c2841fb81f6c3b7f4c57fac1e3
      https://github.com/parrot/parrot/commit/4915429774d947c2841fb81f6c3b7f4c57fac1e3
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  stabilize the number of compiled converters


  Commit: b66b7fa0626ac75611aacd06204c9ba3fbc550b6
      https://github.com/parrot/parrot/commit/b66b7fa0626ac75611aacd06204c9ba3fbc550b6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  forgot about cvt_num16ppc_num8

Check some other converters with the more stable FLOATTYPE also.


  Commit: 34b6597701e1fe33b7cd9bb6306c6cf2c68dca46
      https://github.com/parrot/parrot/commit/34b6597701e1fe33b7cd9bb6306c6cf2c68dca46
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/format.pm
    M t/native_pbc/integer_8_le.pbc
    M t/native_pbc/number.t
    M t/native_pbc/number_8_10_le.pbc
    M t/native_pbc/string_8_le.pbc

  Log Message:
  -----------
  More work on numeric precision probing and testing


  Commit: ecc36998f330ac92fbaf3f2219da419bbbfc1829
      https://github.com/parrot/parrot/commit/ecc36998f330ac92fbaf3f2219da419bbbfc1829
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c
    M t/native_pbc/Test.pm
    M t/native_pbc/number.t
    M t/native_pbc/number_8_16_le.pbc

  Log Message:
  -----------
  improve precision tests, improve cvt_num16_num8 precision

cvt_num16_num8 still gets only 3 digits right with 4.398046511104: 4.39217962522095


  Commit: f93f9964a3658bb531f5b9c6698d5c71bbfde31d
      https://github.com/parrot/parrot/commit/f93f9964a3658bb531f5b9c6698d5c71bbfde31d
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M t/native_pbc/number.t

  Log Message:
  -----------
  update testmatrix for 16PPC, precision tests still not good


  Commit: ad48a452df434cea527c653d653ad92fb50bd962
      https://github.com/parrot/parrot/commit/ad48a452df434cea527c653d653ad92fb50bd962
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M t/native_pbc/header.t

  Log Message:
  -----------
  native_pbc/header.t: FLOATTYPE_MAX is now 4 (16PPC)


  Commit: 6e948e88d949fd2894fdb922a56e76d717c0d2ff
      https://github.com/parrot/parrot/commit/6e948e88d949fd2894fdb922a56e76d717c0d2ff
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M t/native_pbc/number.t

  Log Message:
  -----------
  improve precision tests, looks quite sane now


  Commit: e6fbb61048a8674aab649b0afd14034d89e1e5dc
      https://github.com/parrot/parrot/commit/e6fbb61048a8674aab649b0afd14034d89e1e5dc
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c
    M t/native_pbc/number.t
    M t/native_pbc/number_8_10_le.pbc

  Log Message:
  -----------
  Better bitfiddling with the intel 63 normalize bit

cvt_num16_num10 clears now bit 63
cvt_num10_num16 tries to shift-copy the mantissa ignoring this bit

Test precision regex seems to be stable now.


  Commit: a82deac83e582264a793e44cfb0f4467286eb17c
      https://github.com/parrot/parrot/commit/a82deac83e582264a793e44cfb0f4467286eb17c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c
    M t/native_pbc/number.t

  Log Message:
  -----------
  native numbers: document intel bit63


  Commit: c76caa7cd1f63c627c2d119cbca9a5aabb3480b4
      https://github.com/parrot/parrot/commit/c76caa7cd1f63c627c2d119cbca9a5aabb3480b4
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  pf_items: keep const qualifiers


  Commit: ae9be9f63b6c89e6cdbd107c572906853c4f658c
      https://github.com/parrot/parrot/commit/ae9be9f63b6c89e6cdbd107c572906853c4f658c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/format.pm
    M config/auto/format/test_c.in
    M config/auto/sizes.pm
    M config/auto/sizes/test_c.in
    M src/packfile/pf_items.c

  Log Message:
  -----------
  Configure probes for format, sizes, ranges and digits

Probe FLOATVAL_FMT/floatvalfmt with float round-trip precision tests.
Found that long double and __float128 on intel are
stable only with %17Lg. I.e. 17 digits precision in number-string round
trips. Do the precision test for all float types.

Also test for the cpp defines of ranges and DBL|FLT_DIG
(precision digits).

New config hash value for floatvaldig, the number of compiler
precision digits, which be different to the tested floatvalfmt.

Improved HAS_FLOAT128 detection.

Use HAS_INT64 instead of HAS_LONGLONG for bswap64.


  Commit: a4eef2200fbd572da8a5bd6f594a485aa72d4a01
      https://github.com/parrot/parrot/commit/a4eef2200fbd572da8a5bd6f594a485aa72d4a01
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  check for HAS_LONGLONG with Parrot_UInt8 cast, fix syntax error in temp. code


  Commit: 587c4ae008556d91cb1c4e61fbde07b176aca0b1
      https://github.com/parrot/parrot/commit/587c4ae008556d91cb1c4e61fbde07b176aca0b1
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M compilers/imcc/optimizer.c
    M src/call/context.c
    M src/io/api.c

  Log Message:
  -----------
  fix various typos, use FLOATVAL_FMT directly in imcc


  Commit: 3b073875bf78fc0abfe6a5f97395cbeb45b6add1
      https://github.com/parrot/parrot/commit/3b073875bf78fc0abfe6a5f97395cbeb45b6add1
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/call/args.c
    M src/string/spf_vtable.c
    M t/native_pbc/number_8_8_le.pbc

  Log Message:
  -----------
  promote float to double va va_arg()...

intel and pcc does not support va_arg float arguments. Sounds weird but
so it is.
float still has problems


  Commit: f2257be8196ef7d93d037f8f1f4bc0f4ffd1fc8c
      https://github.com/parrot/parrot/commit/f2257be8196ef7d93d037f8f1f4bc0f4ffd1fc8c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  fix cvt_num8_num4


  Commit: 65d87129f4c22c931d25df02f78a07634876d1db
      https://github.com/parrot/parrot/commit/65d87129f4c22c931d25df02f78a07634876d1db
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M lib/Parrot/Test.pm
    M src/packfile/pf_items.c
    M t/native_pbc/Test.pm
    M t/native_pbc/number.t

  Log Message:
  -----------
  test with precision (numcmp)

All tests pass now, just __float128 has problems printing certain numbers
properly. E.g. __float128 is probed for %.17Lg fmt, which prints 3.8
as 3.7999999999999998


  Commit: 444c01a5dc9be41f5df5309c789d82f3f7c9d0c6
      https://github.com/parrot/parrot/commit/444c01a5dc9be41f5df5309c789d82f3f7c9d0c6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    A t/native_pbc/number_4_4_be.pbc

  Log Message:
  -----------
  native_pbc/number_4_4_be.pbc added


  Commit: 22f181897fb85e6c0f7db23280b731a08cecd147
      https://github.com/parrot/parrot/commit/22f181897fb85e6c0f7db23280b731a08cecd147
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/gen/config_pm/myconfig.in

  Log Message:
  -----------
  display FLOATTYPE_? in myconfig


  Commit: b04e0c8f246fe68ee301f26acb5e0792eb733a51
      https://github.com/parrot/parrot/commit/b04e0c8f246fe68ee301f26acb5e0792eb733a51
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/sizes.pm
    M config/gen/config_h/config_h.in

  Log Message:
  -----------
  use PARROT_FLOATVAL_DIG for rounding, set i_quadmath


  Commit: c479a4df0efd545c1d6959d713195899198c1df8
      https://github.com/parrot/parrot/commit/c479a4df0efd545c1d6959d713195899198c1df8
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M include/parrot/bswap.h
    M include/parrot/packfile.h
    M src/packfile/pf_items.c
    M t/native_pbc/number.t

  Log Message:
  -----------
  [GH #807] Refactor native_pbc endianness, bswap64. Add header argument to converters

Convert endianness upfront does not work.
Some converters work on native floats, to do compiler casts. They
need to know the packfile byteorder.
Other bitfiddling converters work only on little-endian, so we also need
to know the packfile byteorder, and they also need to convert endianness
back to to the target format.

Refactor bswap64, as it only works with 64bit registers. Tested with HAS_INT64.
So there are two bswap64 API's, one for fast native conversion via a register
and one with two unsigned char * args, which might point to the same buffer,
for easier in-place conversion.

Added dummy ROUND_NUM_TO macro, which needs to round a long number down to the given
precision (when converting upwards). Can be done with sprintf, but need to find a
better way.

Simplify converter casts with unions.

Replace SWAB_12 with SWAB_10. TODO: Need to check the last two bytes.


  Commit: 8dcfc4e28e98a9b222f68c39309f13e752d247b6
      https://github.com/parrot/parrot/commit/8dcfc4e28e98a9b222f68c39309f13e752d247b6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    A t/native_pbc/number_8_4_le.pbc

  Log Message:
  -----------
  add t/native_pbc/number_8_4_le.pbc (it crashes on different ptrsizes)


  Commit: 81e9bff8fb0fc85b2ab1c129b3359764fc8f2de5
      https://github.com/parrot/parrot/commit/81e9bff8fb0fc85b2ab1c129b3359764fc8f2de5
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M lib/Parrot/Test.pm
    M t/native_pbc/number.t

  Log Message:
  -----------
  Improve number.t output (print desc)

Update testmatrix.


  Commit: 7857a12a75ff32fb8e2ed27773f092edbe9d14e6
      https://github.com/parrot/parrot/commit/7857a12a75ff32fb8e2ed27773f092edbe9d14e6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 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: 30ea2e0a4a893cbb7800e610934d7ea9bad0f064
      https://github.com/parrot/parrot/commit/30ea2e0a4a893cbb7800e610934d7ea9bad0f064
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 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

  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

Fix src/dynoplibs/sys.ops doublesize to numvalsize. This only works for double.


  Commit: 9c0147f2131afdefafe96a1a02f33897b007b333
      https://github.com/parrot/parrot/commit/9c0147f2131afdefafe96a1a02f33897b007b333
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 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.


  Commit: 238639f0e13a6092fb34f4f1be3647d85fec33d8
      https://github.com/parrot/parrot/commit/238639f0e13a6092fb34f4f1be3647d85fec33d8
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  PF_fetch_number: revert union back to cast


  Commit: 2282b1569c9f7e6f96b58d1f3c864ce6b8d47832
      https://github.com/parrot/parrot/commit/2282b1569c9f7e6f96b58d1f3c864ce6b8d47832
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  typo in cvt_num16ppc_num10 (d1 uninitialized)


  Commit: c3cd001782f8e5ca132752ec330042048fc5b86d
      https://github.com/parrot/parrot/commit/c3cd001782f8e5ca132752ec330042048fc5b86d
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M lib/Parrot/Test.pm

  Log Message:
  -----------
  Test::Builder::_normalize handle inf/nan


  Commit: e6f4d57da26d95af00e49f63e6fba3c0a8aeb93a
      https://github.com/parrot/parrot/commit/e6f4d57da26d95af00e49f63e6fba3c0a8aeb93a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/sizes.pm
    M config/gen/config_h/config_h.in
    M config/gen/makefiles/root.in
    M config/inter/progs.pm
    M src/packfile/pf_items.c

  Log Message:
  -----------
  Add _DIG defines to config.h, fix cvt_num8_num16, add -lquadmath

The __float128 cast does not work, so use snprintf and strtoflt128.
Add -lquadmath to gcc when i_quadmath succeeds.
Fixed ROUND_NUM_TO 3rd arguments with the new _DIG defines


  Commit: 1280278613376d9ebbde53e02a649eecb605ab16
      https://github.com/parrot/parrot/commit/1280278613376d9ebbde53e02a649eecb605ab16
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

  Log Message:
  -----------
  Add new 3arg fetch_buf_nn() converters, fix constness

The old fetch_buf_?e_nn() converters took only 2 args, but the
nv converters take now 3. So add intermediate inlined special versions.

Fixed a couple of remaining const'ness issues and bswap64 lines.

Hardcode "%.16g" for the strtoflt128 buf. Still does not work yet though.


  Commit: a6e3c725530ef6f1a96a7d13b53eb1197b14a12c
      https://github.com/parrot/parrot/commit/a6e3c725530ef6f1a96a7d13b53eb1197b14a12c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/nci/libffi.c

  Log Message:
  -----------
  nci/libffi.c: check FLOATTYPE, not NUMVAL_SIZE

NUMVAL_SIZE is not good enough, esp. wrong for x86_64


  Commit: 89a198464f5a0245b43679624517fc46c0c8d4e6
      https://github.com/parrot/parrot/commit/89a198464f5a0245b43679624517fc46c0c8d4e6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M MANIFEST
    M MANIFEST.generated
    M config/gen/makefiles/root.in
    A tools/dev/mk_testnumbers.pl

  Log Message:
  -----------
  tools/dev/mk_testnumbers.pl: create script for make number_tests


  Commit: c89d7540c3f83b2c2d26cc6f9c00877df3ce5b1c
      https://github.com/parrot/parrot/commit/c89d7540c3f83b2c2d26cc6f9c00877df3ce5b1c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M tools/dev/mk_native_pbc

  Log Message:
  -----------
  tools/dev/mk_native_pbc: reconfig if no parrot_config is found


  Commit: fb57e408e4efc387ad05a4ce76dbbfe1fc979d84
      https://github.com/parrot/parrot/commit/fb57e408e4efc387ad05a4ce76dbbfe1fc979d84
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M .gitignore

  Log Message:
  -----------
  add new generated files tools/dev/testnumbers to .gitignore


  Commit: 4218541a0d025bd6800ba7b9af9b0dfa89da85c1
      https://github.com/parrot/parrot/commit/4218541a0d025bd6800ba7b9af9b0dfa89da85c1
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/gen/makefiles/root.in

  Log Message:
  -----------
  fix Makefile to call tools/dev/mk_testnumbers.pl


  Commit: 70cb10f7d8fcb3297fc5099764a88fed539ad5fa
      https://github.com/parrot/parrot/commit/70cb10f7d8fcb3297fc5099764a88fed539ad5fa
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M config/auto/byteorder/bswap_c.in

  Log Message:
  -----------
  fix auto::byteorder probe on sys/byteorder.h

Silences probe on darwin and fixes probe on Solaris.


  Commit: 8e17ca8fd2a983ff5ca1a32786b202832413400b
      https://github.com/parrot/parrot/commit/8e17ca8fd2a983ff5ca1a32786b202832413400b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M tools/dev/mk_native_pbc

  Log Message:
  -----------
  {tools] Improve mk_native_pbc

Various minor improvements: add default args properly with --noconf
export *LD_LIBRARY_PATH if there is an already installed shared libparrot
do not conf if only make parrot_config is needed


  Commit: fd7cf723d43b0327188ea5ba2537e7e61c786144
      https://github.com/parrot/parrot/commit/fd7cf723d43b0327188ea5ba2537e7e61c786144
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M t/native_pbc/integer_4_be.pbc
    M t/native_pbc/integer_4_le.pbc
    M t/native_pbc/integer_8_le.pbc
    M t/native_pbc/number_4_10_le.pbc
    M t/native_pbc/number_4_16PPC_be.pbc
    M t/native_pbc/number_4_4_be.pbc
    M t/native_pbc/number_4_4_le.pbc
    M t/native_pbc/number_4_8_be.pbc
    M t/native_pbc/number_4_8_le.pbc
    M t/native_pbc/number_8_10_le.pbc
    M t/native_pbc/number_8_16_le.pbc
    M t/native_pbc/number_8_4_le.pbc
    M t/native_pbc/number_8_8_le.pbc
    M t/native_pbc/string_4_be.pbc
    M t/native_pbc/string_4_le.pbc
    M t/native_pbc/string_8_le.pbc

  Log Message:
  -----------
  Update native_pbc testfiles: PBC 13.0


  Commit: 7ac034e73cb007fafe3f92c60273566316da94b6
      https://github.com/parrot/parrot/commit/7ac034e73cb007fafe3f92c60273566316da94b6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M src/ops/core_ops.c
    M src/ops/io.ops

  Log Message:
  -----------
  [GH #828] Fix print_n/i and say_n/i void return warnings


  Commit: 696e3ab915b4ff6a2a0e02e829120d8518700fa4
      https://github.com/parrot/parrot/commit/696e3ab915b4ff6a2a0e02e829120d8518700fa4
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-12 (Wed, 12 Dec 2012)

  Changed paths:
    M ChangeLog

  Log Message:
  -----------
  fixme ChangeLog for packfile_fetch_nv_t


Compare: https://github.com/parrot/parrot/compare/cfc0aee7c6f0^...696e3ab915b4


More information about the parrot-commits mailing list