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

GitHub noreply at github.com
Fri Dec 7 22:10:11 UTC 2012


  Branch: refs/heads/native_pbc2
  Home:   https://github.com/parrot/parrot
  Commit: da6ba931689ace4ef65d86d8aae5249a4811dedb
      https://github.com/parrot/parrot/commit/da6ba931689ace4ef65d86d8aae5249a4811dedb
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: a03de2a327339ab310f2c085e10832d9f0213f77
      https://github.com/parrot/parrot/commit/a03de2a327339ab310f2c085e10832d9f0213f77
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: e4b5ba7a65e216f9459212fe28572e406c2438e2
      https://github.com/parrot/parrot/commit/e4b5ba7a65e216f9459212fe28572e406c2438e2
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 67bb07588877dedde5661513b24b264605ad8969
      https://github.com/parrot/parrot/commit/67bb07588877dedde5661513b24b264605ad8969
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 05b2398d38f2bd44e808d4d28aed02e6863357bf
      https://github.com/parrot/parrot/commit/05b2398d38f2bd44e808d4d28aed02e6863357bf
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 595b72cdb242ba99c1f739647c8be86d14172ed9
      https://github.com/parrot/parrot/commit/595b72cdb242ba99c1f739647c8be86d14172ed9
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: fce04ff1f5d409ba7ef84361b3cc43ad5ab0d58e
      https://github.com/parrot/parrot/commit/fce04ff1f5d409ba7ef84361b3cc43ad5ab0d58e
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 8646143b0289ab82ff6170c680806aea3d225f9b
      https://github.com/parrot/parrot/commit/8646143b0289ab82ff6170c680806aea3d225f9b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M tools/dev/mk_native_pbc

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


  Commit: 220656062d97012b3250b8728b0e277f6b394f4e
      https://github.com/parrot/parrot/commit/220656062d97012b3250b8728b0e277f6b394f4e
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: e254db4abb13eba8635527e411afff0443696bd4
      https://github.com/parrot/parrot/commit/e254db4abb13eba8635527e411afff0443696bd4
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: e595f1d8f6955bae10faa2521366cd997c953a87
      https://github.com/parrot/parrot/commit/e595f1d8f6955bae10faa2521366cd997c953a87
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 2982cefa002457bf2b48d7899e61199ce36d569e
      https://github.com/parrot/parrot/commit/2982cefa002457bf2b48d7899e61199ce36d569e
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: e2b85cb0d5639492ef11ca3844277b6bbd3d3a6b
      https://github.com/parrot/parrot/commit/e2b85cb0d5639492ef11ca3844277b6bbd3d3a6b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 57a74ab4b2687b3c62a12cedc663b7539001a176
      https://github.com/parrot/parrot/commit/57a74ab4b2687b3c62a12cedc663b7539001a176
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 8c0612eacd3b94a066d26fce59242d875d9ca641
      https://github.com/parrot/parrot/commit/8c0612eacd3b94a066d26fce59242d875d9ca641
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: c7342357809443238df41468ee05b1f7c6c1db29
      https://github.com/parrot/parrot/commit/c7342357809443238df41468ee05b1f7c6c1db29
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: dcbfee8606c5603f637ef091c61dfd9a416587de
      https://github.com/parrot/parrot/commit/dcbfee8606c5603f637ef091c61dfd9a416587de
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: afb746e516abe9c6617c374208a4752ad342b9d3
      https://github.com/parrot/parrot/commit/afb746e516abe9c6617c374208a4752ad342b9d3
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: fda37d17f462155cf047963470fe5d58f7794004
      https://github.com/parrot/parrot/commit/fda37d17f462155cf047963470fe5d58f7794004
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

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


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

  Changed paths:
    M frontend/pbc_dump/main.c

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


  Commit: 5ca295505569058692140e60d7acae6a69b5db80
      https://github.com/parrot/parrot/commit/5ca295505569058692140e60d7acae6a69b5db80
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: f3d0c8d6af2588276bf2e8c8ea3023ac6a26ac31
      https://github.com/parrot/parrot/commit/f3d0c8d6af2588276bf2e8c8ea3023ac6a26ac31
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: e66e4821eb1382b86e8ded05e78d7afa080911bc
      https://github.com/parrot/parrot/commit/e66e4821eb1382b86e8ded05e78d7afa080911bc
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: c64b443d08e0ffb47c6e7715b04ffed33a1f8fdf
      https://github.com/parrot/parrot/commit/c64b443d08e0ffb47c6e7715b04ffed33a1f8fdf
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M include/parrot/bswap.h

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


  Commit: 01f6a9336bab434e74e27680d9baaf13fee07584
      https://github.com/parrot/parrot/commit/01f6a9336bab434e74e27680d9baaf13fee07584
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 3a0ce97eaf1bd65226a0f976f0c95d47988eb750
      https://github.com/parrot/parrot/commit/3a0ce97eaf1bd65226a0f976f0c95d47988eb750
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 4b65d34340a9ab15816512131eacc0de80011631
      https://github.com/parrot/parrot/commit/4b65d34340a9ab15816512131eacc0de80011631
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

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

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


  Commit: a2ee2e868942ea4aebd4aa4a430db8f3ba6ad386
      https://github.com/parrot/parrot/commit/a2ee2e868942ea4aebd4aa4a430db8f3ba6ad386
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 8607083afba43fac3ce8813385e198f7d822deaf
      https://github.com/parrot/parrot/commit/8607083afba43fac3ce8813385e198f7d822deaf
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M compilers/imcc/optimizer.c

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


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

  Changed paths:
    M src/packfile/pf_items.c

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


  Commit: 1455cc1830d28369cd480da73a33acaa60a2ef60
      https://github.com/parrot/parrot/commit/1455cc1830d28369cd480da73a33acaa60a2ef60
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 6cea1fd9db38401ec7befdb78a62488c9c2b920e
      https://github.com/parrot/parrot/commit/6cea1fd9db38401ec7befdb78a62488c9c2b920e
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 738c5970f33c31eab514472ad7d238837b1ae8c4
      https://github.com/parrot/parrot/commit/738c5970f33c31eab514472ad7d238837b1ae8c4
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 9c98071e0fdb8915e9a392027e29f32370515a7b
      https://github.com/parrot/parrot/commit/9c98071e0fdb8915e9a392027e29f32370515a7b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M t/native_pbc/number.t

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


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

  Changed paths:
    M t/native_pbc/header.t

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


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

  Changed paths:
    M t/native_pbc/number.t

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


  Commit: fa1df26dbb7bff27f4be5c2c7d9815858ca99892
      https://github.com/parrot/parrot/commit/fa1df26dbb7bff27f4be5c2c7d9815858ca99892
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 6aeb050eef442ac5059d5f2c72f31f55aca53a75
      https://github.com/parrot/parrot/commit/6aeb050eef442ac5059d5f2c72f31f55aca53a75
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

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

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


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

  Changed paths:
    M src/packfile/pf_items.c

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


  Commit: 70c3f6a606be0f4dd99559e2808e37fccee5643d
      https://github.com/parrot/parrot/commit/70c3f6a606be0f4dd99559e2808e37fccee5643d
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 1a8ede3643966e0a4a00436744e6c8b7e19ed9a1
      https://github.com/parrot/parrot/commit/1a8ede3643966e0a4a00436744e6c8b7e19ed9a1
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 018cb010f5c480c04fefac13baad8b548fea1487
      https://github.com/parrot/parrot/commit/018cb010f5c480c04fefac13baad8b548fea1487
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 4335164affc62e5e09c8a359dc97578a9b93a14b
      https://github.com/parrot/parrot/commit/4335164affc62e5e09c8a359dc97578a9b93a14b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: ac469dd337a1dd6803c623253547cd263273d4bf
      https://github.com/parrot/parrot/commit/ac469dd337a1dd6803c623253547cd263273d4bf
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

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


  Commit: 1d2a297cfd00f51ee9f01c0807ee140410170e28
      https://github.com/parrot/parrot/commit/1d2a297cfd00f51ee9f01c0807ee140410170e28
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 60c2d800708739edce97c1629d6613a57071640b
      https://github.com/parrot/parrot/commit/60c2d800708739edce97c1629d6613a57071640b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    A t/native_pbc/number_4_4_be.pbc

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


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

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

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


  Commit: fdbe8dfbaebd953c09c40e876b2fddc153f6527f
      https://github.com/parrot/parrot/commit/fdbe8dfbaebd953c09c40e876b2fddc153f6527f
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 0b4182c63be2d3dea6e385b495e3e3721004b931
      https://github.com/parrot/parrot/commit/0b4182c63be2d3dea6e385b495e3e3721004b931
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: f9689cbb6d603c1eaf9dc7ebc025c20f87b0d77a
      https://github.com/parrot/parrot/commit/f9689cbb6d603c1eaf9dc7ebc025c20f87b0d77a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 528a93ce133d0dda49bf271981ba946dc5c92ed6
      https://github.com/parrot/parrot/commit/528a93ce133d0dda49bf271981ba946dc5c92ed6
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: ec3851915ac30926a887827d1a83969a56fd63c7
      https://github.com/parrot/parrot/commit/ec3851915ac30926a887827d1a83969a56fd63c7
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 3594f82404175a6d3a075db216c3c35b06baac7a
      https://github.com/parrot/parrot/commit/3594f82404175a6d3a075db216c3c35b06baac7a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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
    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: f39eac8be7cbfcd1a0a053932b647f13f232724a
      https://github.com/parrot/parrot/commit/f39eac8be7cbfcd1a0a053932b647f13f232724a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: adaf1bc93b1bf7204063b9af42a4be5607507a17
      https://github.com/parrot/parrot/commit/adaf1bc93b1bf7204063b9af42a4be5607507a17
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M src/packfile/pf_items.c

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


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

  Changed paths:
    M src/packfile/pf_items.c

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


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

  Changed paths:
    M lib/Parrot/Test.pm

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


  Commit: 8b43dd6a853e6cd5c76dc9dbde3ad4c36b90faa9
      https://github.com/parrot/parrot/commit/8b43dd6a853e6cd5c76dc9dbde3ad4c36b90faa9
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 6db34cef09d0c0509c3afa0d19cef75e8727c41a
      https://github.com/parrot/parrot/commit/6db34cef09d0c0509c3afa0d19cef75e8727c41a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 26d86cd214a3f70d612cac395a7cf69b8f744309
      https://github.com/parrot/parrot/commit/26d86cd214a3f70d612cac395a7cf69b8f744309
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 19d5d0119dd02d8a23493977fb32e2f5a1319b1d
      https://github.com/parrot/parrot/commit/19d5d0119dd02d8a23493977fb32e2f5a1319b1d
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 1df9652fe64bed27bf299040422785a0fc0470bc
      https://github.com/parrot/parrot/commit/1df9652fe64bed27bf299040422785a0fc0470bc
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 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: 65fd1e682bf2b6d496d5fe10ef14742fd54e54ea
      https://github.com/parrot/parrot/commit/65fd1e682bf2b6d496d5fe10ef14742fd54e54ea
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2012-12-07 (Fri, 07 Dec 2012)

  Changed paths:
    M PBC_COMPAT
    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_4_le.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_le.pbc
    M t/native_pbc/string_8_le.pbc

  Log Message:
  -----------
  PBC_COMPAT: bump to 14.0

replaced floatsize by floattype in pbc header
Regenerate intel native_pbc test pbcs


Compare: https://github.com/parrot/parrot/compare/da6ba931689a^...65fd1e682bf2


More information about the parrot-commits mailing list