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

GitHub noreply at github.com
Thu Dec 13 04:03:33 UTC 2012


  Branch: refs/heads/native_pbc2
  Home:   https://github.com/parrot/parrot
  Commit: a02d37828c14861eeba6dc34987bdf8b15d8c315
      https://github.com/parrot/parrot/commit/a02d37828c14861eeba6dc34987bdf8b15d8c315
  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: 5516bc03376e616b104d900ae392da97fe9e629b
      https://github.com/parrot/parrot/commit/5516bc03376e616b104d900ae392da97fe9e629b
  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: 3fd81e5b8aafe08ce8541f1f079f8a1c5f60b294
      https://github.com/parrot/parrot/commit/3fd81e5b8aafe08ce8541f1f079f8a1c5f60b294
  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: 73749fd9ee3d15efe16e340020e9cb4446bf1325
      https://github.com/parrot/parrot/commit/73749fd9ee3d15efe16e340020e9cb4446bf1325
  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: 62bb139f3f4e7b5bdcc63b8e25c3ce136d1843f6
      https://github.com/parrot/parrot/commit/62bb139f3f4e7b5bdcc63b8e25c3ce136d1843f6
  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: 821a098b2b3478572505ddeb9cb1b373472fe59b
      https://github.com/parrot/parrot/commit/821a098b2b3478572505ddeb9cb1b373472fe59b
  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: 5c8fdd4256656578f6ecf142d342c368cdcb68ec
      https://github.com/parrot/parrot/commit/5c8fdd4256656578f6ecf142d342c368cdcb68ec
  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: 50d4bdd90feabceb60dd726a0a7604f4f2136455
      https://github.com/parrot/parrot/commit/50d4bdd90feabceb60dd726a0a7604f4f2136455
  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: d6013d30674618d54c95a09c4a62f900f086b18a
      https://github.com/parrot/parrot/commit/d6013d30674618d54c95a09c4a62f900f086b18a
  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: c8f612416718f4c7fffcb8707423cd17740d435a
      https://github.com/parrot/parrot/commit/c8f612416718f4c7fffcb8707423cd17740d435a
  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: da1baefcac35c6805e16ff4e5d9e442d3ae0447c
      https://github.com/parrot/parrot/commit/da1baefcac35c6805e16ff4e5d9e442d3ae0447c
  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: 62a4b581258f53b45ec0d401620bbcd8d66ea5b2
      https://github.com/parrot/parrot/commit/62a4b581258f53b45ec0d401620bbcd8d66ea5b2
  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: 060ded767907ec76f2f71ffc0bb8e9da9fc2fba5
      https://github.com/parrot/parrot/commit/060ded767907ec76f2f71ffc0bb8e9da9fc2fba5
  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: 1ec51ebe8e84757e212880c29ec8e8defbe80a25
      https://github.com/parrot/parrot/commit/1ec51ebe8e84757e212880c29ec8e8defbe80a25
  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: af2eb6a0963c8b792402f1ad38701d748584bffc
      https://github.com/parrot/parrot/commit/af2eb6a0963c8b792402f1ad38701d748584bffc
  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: 0e63a1ca102ca2f79f7d337385b034bf6d381bfe
      https://github.com/parrot/parrot/commit/0e63a1ca102ca2f79f7d337385b034bf6d381bfe
  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: 6a9396e8906ff9bf9bf712bfd48070ecf7dec4b6
      https://github.com/parrot/parrot/commit/6a9396e8906ff9bf9bf712bfd48070ecf7dec4b6
  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: 3be7f6bae0011a1d204e903703209ae22aed1231
      https://github.com/parrot/parrot/commit/3be7f6bae0011a1d204e903703209ae22aed1231
  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: bf70f88bbf4dc62a80c6dbbafa1f392c9835c4aa
      https://github.com/parrot/parrot/commit/bf70f88bbf4dc62a80c6dbbafa1f392c9835c4aa
  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: 23c1be85373b4a373f22a4d9b0e420671e9c2ee1
      https://github.com/parrot/parrot/commit/23c1be85373b4a373f22a4d9b0e420671e9c2ee1
  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: 13d38af7be5bfc76667c3bd64b9d6ffe07504b62
      https://github.com/parrot/parrot/commit/13d38af7be5bfc76667c3bd64b9d6ffe07504b62
  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: 22057668b51ac99994c99e860615ba7bf2f89498
      https://github.com/parrot/parrot/commit/22057668b51ac99994c99e860615ba7bf2f89498
  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: ab69eeac391046902c8f0c225600f57ebb5604ea
      https://github.com/parrot/parrot/commit/ab69eeac391046902c8f0c225600f57ebb5604ea
  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: fd55d609cd8713fa592302a04510b2d51eb09649
      https://github.com/parrot/parrot/commit/fd55d609cd8713fa592302a04510b2d51eb09649
  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: e3e10b150f49e0d5d933cf3c5d3854a3a5c6ea05
      https://github.com/parrot/parrot/commit/e3e10b150f49e0d5d933cf3c5d3854a3a5c6ea05
  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: f67415f801cae910935b4da50d28b673819a597a
      https://github.com/parrot/parrot/commit/f67415f801cae910935b4da50d28b673819a597a
  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: 2a4a94290e0e3caec83acbfbdbc6730177205247
      https://github.com/parrot/parrot/commit/2a4a94290e0e3caec83acbfbdbc6730177205247
  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: 1371567b480c08de21b5b4871a217b0b1931aab7
      https://github.com/parrot/parrot/commit/1371567b480c08de21b5b4871a217b0b1931aab7
  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: 130c16362d99ca080a9ba5f6ac7fd8b88b9f9bab
      https://github.com/parrot/parrot/commit/130c16362d99ca080a9ba5f6ac7fd8b88b9f9bab
  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: 4c6ade33c25adc3b1c1caaf98c8cacb07ee55c4f
      https://github.com/parrot/parrot/commit/4c6ade33c25adc3b1c1caaf98c8cacb07ee55c4f
  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: e3433835d2dab5b5ed85e7b40c792c9ed7ccc8ae
      https://github.com/parrot/parrot/commit/e3433835d2dab5b5ed85e7b40c792c9ed7ccc8ae
  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: 8fd2fb68c835602e4df4248151a20fd86bea87e2
      https://github.com/parrot/parrot/commit/8fd2fb68c835602e4df4248151a20fd86bea87e2
  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: b5a327ad0a8fd45606e8bea23e74a44b877156fa
      https://github.com/parrot/parrot/commit/b5a327ad0a8fd45606e8bea23e74a44b877156fa
  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: 1515f4aa0b2c2c223e9a5de7c81b0ead62b9d64c
      https://github.com/parrot/parrot/commit/1515f4aa0b2c2c223e9a5de7c81b0ead62b9d64c
  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: 4c6f01def41e8691ed923e272acdb3e833202ef8
      https://github.com/parrot/parrot/commit/4c6f01def41e8691ed923e272acdb3e833202ef8
  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: 3a819beec6d91e92f6d0a4b8977baed64bd62674
      https://github.com/parrot/parrot/commit/3a819beec6d91e92f6d0a4b8977baed64bd62674
  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: cd9b8dffbd16c54baf69e6178cca9129e7de05aa
      https://github.com/parrot/parrot/commit/cd9b8dffbd16c54baf69e6178cca9129e7de05aa
  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: 88107b0b5970f3539dc8365f0afc182cebfdbc8a
      https://github.com/parrot/parrot/commit/88107b0b5970f3539dc8365f0afc182cebfdbc8a
  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: fbe214c5d3cb14865ab032b4b490a4753d7b5a5e
      https://github.com/parrot/parrot/commit/fbe214c5d3cb14865ab032b4b490a4753d7b5a5e
  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: 0e6465b5ed9048a4f8238cb55488fa8bdec11cbd
      https://github.com/parrot/parrot/commit/0e6465b5ed9048a4f8238cb55488fa8bdec11cbd
  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: 4d2aec5f128ab2d71d3bf2f5a49b04cbffc3e01e
      https://github.com/parrot/parrot/commit/4d2aec5f128ab2d71d3bf2f5a49b04cbffc3e01e
  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: 13df9086aa0c4ae9e167f88100089de49f00988d
      https://github.com/parrot/parrot/commit/13df9086aa0c4ae9e167f88100089de49f00988d
  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: 443751fd04ce4b176f808af8ada63e150c0035ba
      https://github.com/parrot/parrot/commit/443751fd04ce4b176f808af8ada63e150c0035ba
  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: d255c5649152af6208909d8fb6f0b78895dd1f00
      https://github.com/parrot/parrot/commit/d255c5649152af6208909d8fb6f0b78895dd1f00
  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: ce36270fe85beaa590148a5e5108e658fd51585b
      https://github.com/parrot/parrot/commit/ce36270fe85beaa590148a5e5108e658fd51585b
  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: f94c4f31430ad49ab3fd02bb5364d838f82a873e
      https://github.com/parrot/parrot/commit/f94c4f31430ad49ab3fd02bb5364d838f82a873e
  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: af143a722b068676e49eb458e36f2902c11299dc
      https://github.com/parrot/parrot/commit/af143a722b068676e49eb458e36f2902c11299dc
  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: 2a69929de90b7a2d4ec60cc0e1427fe070729737
      https://github.com/parrot/parrot/commit/2a69929de90b7a2d4ec60cc0e1427fe070729737
  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: a7195e4a7fb62af2163be3be8de98e1401269fa3
      https://github.com/parrot/parrot/commit/a7195e4a7fb62af2163be3be8de98e1401269fa3
  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: 49c7a8b3ef0659579ebaacf875bb54e90c71176e
      https://github.com/parrot/parrot/commit/49c7a8b3ef0659579ebaacf875bb54e90c71176e
  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: fcd1deaaae6a02d9abae4e44d522eac925efee1b
      https://github.com/parrot/parrot/commit/fcd1deaaae6a02d9abae4e44d522eac925efee1b
  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: fdc00fa557bd2486d1133f3ca5eaa1b0e8245309
      https://github.com/parrot/parrot/commit/fdc00fa557bd2486d1133f3ca5eaa1b0e8245309
  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: db2f6277643f76e9aec452971958f0ab53c9247c
      https://github.com/parrot/parrot/commit/db2f6277643f76e9aec452971958f0ab53c9247c
  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: 31a0740b4839976c558362dbeb262c494a41e6dd
      https://github.com/parrot/parrot/commit/31a0740b4839976c558362dbeb262c494a41e6dd
  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: 697d5bd56706e3bd64a5697139da3b5256756c52
      https://github.com/parrot/parrot/commit/697d5bd56706e3bd64a5697139da3b5256756c52
  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: 5d7ff8cdbd6dfdce87fdbc9e3b83af7d0505c0a1
      https://github.com/parrot/parrot/commit/5d7ff8cdbd6dfdce87fdbc9e3b83af7d0505c0a1
  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: a1fd1efca64c2ef0b3f7257313ba4ced1acd9627
      https://github.com/parrot/parrot/commit/a1fd1efca64c2ef0b3f7257313ba4ced1acd9627
  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: eb6c4757f10a340660e4813fe61190cc3893860b
      https://github.com/parrot/parrot/commit/eb6c4757f10a340660e4813fe61190cc3893860b
  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: f6b85d3afcad24a40d8fdd19c26df58e250d6ffd
      https://github.com/parrot/parrot/commit/f6b85d3afcad24a40d8fdd19c26df58e250d6ffd
  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: d5a98a3b58497f671fe58d1cb39df53e4cda63dd
      https://github.com/parrot/parrot/commit/d5a98a3b58497f671fe58d1cb39df53e4cda63dd
  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: 122ca5a4177b0598ac2f5798f866349a8ac99e31
      https://github.com/parrot/parrot/commit/122ca5a4177b0598ac2f5798f866349a8ac99e31
  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: 7564c43b4aa971a8f89c48bc92ee80b5cef0c22e
      https://github.com/parrot/parrot/commit/7564c43b4aa971a8f89c48bc92ee80b5cef0c22e
  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: d7150365faef50e634478da3edeb4436fcefeadc
      https://github.com/parrot/parrot/commit/d7150365faef50e634478da3edeb4436fcefeadc
  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: 5c141823a070cb93bdc7b23bec56fb815825686b
      https://github.com/parrot/parrot/commit/5c141823a070cb93bdc7b23bec56fb815825686b
  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: 5310dfb76c697932b52e9b0c41b6efa5e3d8ac67
      https://github.com/parrot/parrot/commit/5310dfb76c697932b52e9b0c41b6efa5e3d8ac67
  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: 0e8621efe647819eb6844501bc4b20b8a108fd57
      https://github.com/parrot/parrot/commit/0e8621efe647819eb6844501bc4b20b8a108fd57
  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: 3421639686dc0b6fa6593b14fbd12973e70ba60f
      https://github.com/parrot/parrot/commit/3421639686dc0b6fa6593b14fbd12973e70ba60f
  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: 11d0b5dd868639f47e226ae8e551833539864395
      https://github.com/parrot/parrot/commit/11d0b5dd868639f47e226ae8e551833539864395
  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: dabcceacf1750de954e6d4fc2624bd5eb0356591
      https://github.com/parrot/parrot/commit/dabcceacf1750de954e6d4fc2624bd5eb0356591
  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


  Commit: e5c179cd9f1c9598b1da412754a49bb564b41545
      https://github.com/parrot/parrot/commit/e5c179cd9f1c9598b1da412754a49bb564b41545
  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 8_10_le=>8_8_le converter

Do not memcpy 16 to 10.


Compare: https://github.com/parrot/parrot/compare/b40373b6dffa...e5c179cd9f1c


More information about the parrot-commits mailing list