[parrot/parrot] b6bf4d: [cage] fix PARROT_CANNOT_RETURN_NULL, add HASATTRI...

GitHub noreply at github.com
Fri Jan 2 14:23:35 UTC 2015


  Branch: refs/heads/master
  Home:   https://github.com/parrot/parrot
  Commit: b6bf4d990fd56be603c52839e16f3c9c5f41a18b
      https://github.com/parrot/parrot/commit/b6bf4d990fd56be603c52839e16f3c9c5f41a18b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-12-30 (Tue, 30 Dec 2014)

  Changed paths:
    M config/auto/attributes.pm
    M config/auto/attributes/test_c.in
    M include/parrot/call.h
    M include/parrot/compiler.h
    M include/parrot/gc_api.h
    M include/parrot/io.h
    M include/parrot/packfile.h
    M src/call/context.c
    M src/gc/api.c
    M src/gc/string_gc.c
    M src/io/api.c
    M src/packfile/pf_items.c

  Log Message:
  -----------
  [cage] fix PARROT_CANNOT_RETURN_NULL, add HASATTRIBUTE_FORMAT_* variants

* PARROT_CANNOT_RETURN_NULL was empty, thus never detected when used on
  wrong declarations. Implement it now,
  e.g. ./include/parrot/packfile.h:353:9:
  error: returns_nonnull attribute on a function not returning a pointer
* HASATTRIBUTE_FORMAT has multiple variants. try gun_printf, ms_printf
  or printf. Not yet used.
* bring together the definition and it's non-defined counterpart. they are
  currently seperated.  if you add one, you should not forget to add the
  other part.

See GH #1163.


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

  Changed paths:
    M config/gen/config_h/config_h.in

  Log Message:
  -----------
  [cage] better whitespace alignment in generated config.h


  Commit: 494cb827fe8a66db3e140e3bdb98c5c8fcd52c65
      https://github.com/parrot/parrot/commit/494cb827fe8a66db3e140e3bdb98c5c8fcd52c65
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-12-30 (Tue, 30 Dec 2014)

  Changed paths:
    M compilers/imcc/api.c
    M compilers/imcc/imc.h
    M compilers/imcc/parser_util.c
    M include/imcc/api.h
    M include/parrot/compiler.h
    M include/parrot/string_funcs.h
    M lib/Parrot/Headerizer.pm
    M lib/Parrot/Headerizer/Functions.pm
    M src/pmc/socket.pmc
    M src/string/api.c
    M src/string/spf_render.c
    M src/string/sprintf.c

  Log Message:
  -----------
  [cage] add ARGIN_FORMAT decl

which sets  __attribute__format__(n, x) automatically.
x = n+1 when the next arg is ... or otherwise 0.

replace some wrong PARROT_CANNOT_RETURN_NULL with PARROT_WARN_UNUSED_RESULT.

add forgotten PARROT_DEPRECATED, PARROT_EXPOSED as known headerizer macros

add required return value check for the Socket.socket method and use it.

See GH #1163


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

  Changed paths:
    M include/parrot/io.h
    M src/io/api.c
    M src/pmc/socket.pmc

  Log Message:
  -----------
  [cage] more ARGIN_FORMAT decl in io

also add a WB for Socket.destroy


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

  Changed paths:
    M compilers/imcc/imc.h
    M include/parrot/compiler.h
    M include/parrot/io.h
    M include/parrot/string_funcs.h
    M lib/Parrot/Headerizer.pm
    M lib/Parrot/Headerizer/Functions.pm
    M tools/dev/pbc_to_exe.winxed

  Log Message:
  -----------
  [cage] Fix some more compiler attributes, disable gcc returns_nonnull

Found a new unknown gcc bug with __attribute__((returns_nonnull)), tested ok
with MSVC and clang.  Will be hard to track down where in gimple and in
which of our function exactly.

Add the _Check_return_ MSVC SAL variant,
the new _Ret_maybenull_ variant which replaces __maybenull not yet.

Remove one more wrong PARROT_CANNOT_RETURN_NULL in pbc_to_exe generation.

See GH #1163


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

  Changed paths:
    M include/parrot/io.h
    M include/parrot/packfile.h
    M src/io/api.c
    M src/packfile/api.c

  Log Message:
  -----------
  deprecations: add the DEPRECATED attribute to all deprecated functions

Several of the packfile API functions are still used by us.


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

  Changed paths:
    M ChangeLog
    M config/auto/attributes.pm
    M config/auto/attributes/test_c.in
    M config/gen/config_h.pm
    M config/gen/config_h/has_header_h.in
    M include/parrot/compiler.h

  Log Message:
  -----------
  [config] move HASATTRIBUTE_* from ccflags to has_header.h

also undefine a HASATTRIBUTE_ on any warning or error.
override the gcc bugfix in compile.h for returns_nonnull in the probe,
so that the probe does not lie.

Closes GH #1163


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

  Changed paths:
    M compilers/imcc/symreg.c
    M src/packfile/segments.c

  Log Message:
  -----------
  fix 4 more wrong PARROT_CANNOT_RETURN_NULL

where they do


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

  Changed paths:
    M t/tools/dev/headerizer/01_functions.t

  Log Message:
  -----------
  [codingstd] Fix headerizer/01_functions.t

We changed the warning


  Commit: e4c235f3575844100a1a8b2bde652622fdc19def
      https://github.com/parrot/parrot/commit/e4c235f3575844100a1a8b2bde652622fdc19def
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-01 (Thu, 01 Jan 2015)

  Changed paths:
    M compilers/imcc/debug.c
    M compilers/imcc/main.c
    M compilers/imcc/parser_util.c
    M examples/c/pbc_info.c
    M frontend/pbc_dump/main.c
    M frontend/pbc_dump/packdump.c
    M frontend/pbc_merge/main.c
    M include/parrot/compiler.h
    M include/parrot/packfile.h
    M src/debug.c
    M src/disassemble.c
    M src/dynoplibs/io.ops
    M src/dynpmc/pccmethod_test.pmc
    M src/embed/bytecode.c
    M src/exceptions.c
    M src/ops/core_ops.c
    M src/ops/io.ops
    M src/packfile/api.c
    M src/packfile/segments.c
    M src/pmc/capture.pmc
    M src/pmc/handle.pmc
    M src/pmc/hash.pmc
    M src/pmc/imageiofreeze.pmc
    M src/pmc/imageiothaw.pmc
    M src/pmc/packfile.pmc
    M src/pmc/packfiledirectory.pmc
    M src/runcore/cores.c
    M src/runcore/trace.c
    M src/string/sprintf.c
    M src/warnings.c

  Log Message:
  -----------
  Change deprecated calls to use the new version

Fixed instances of: PackFile_new, PackFile_destroy, Parrot_io_putps, Parrot_io_open_handle,
  Parrot_io_close_handle, Parrot_io_readline, PackFile_unpack, Parrot_io_flush_handle,
  Parrot_io_puts

Add Parrot_pf_unpack.
Also fix some format strings.


  Commit: df5a1fab01d4faf890aef7e8b583bda9b1e8da5e
      https://github.com/parrot/parrot/commit/df5a1fab01d4faf890aef7e8b583bda9b1e8da5e
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-01 (Thu, 01 Jan 2015)

  Changed paths:
    M src/dynoplibs/Rules.in

  Log Message:
  -----------
  [codingsstd] add a new make dependency for dynoplibs/io_ops


  Commit: 55ed0eb38b32e5e30d29a74f1a3d44fb4acad44f
      https://github.com/parrot/parrot/commit/55ed0eb38b32e5e30d29a74f1a3d44fb4acad44f
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-01 (Thu, 01 Jan 2015)

  Changed paths:
    M frontend/pbc_dump/packdump.c
    M src/debug.c
    M src/dynpmc/pccmethod_test.pmc
    M src/io/api.c
    M src/string/sprintf.c
    M src/warnings.c
    M t/tools/dev/headerizer/01_functions.t

  Log Message:
  -----------
  [codingstd] more codingstd fixes for the latest changes


  Commit: f42ffd9d46cb93bedc180d441f22f905c6ad78d2
      https://github.com/parrot/parrot/commit/f42ffd9d46cb93bedc180d441f22f905c6ad78d2
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-01 (Thu, 01 Jan 2015)

  Changed paths:
    M config/auto/attributes/test_c.in
    M include/parrot/compiler.h
    M include/parrot/scheduler.h
    M src/ops/core.ops
    M src/ops/core_ops.c
    M src/scheduler.c

  Log Message:
  -----------
  [core] fix wrong returns_null for cx_check_scheduler

The branch op checks the result of cx_check_scheduler == 0.
Only gcc removed this branch because of the returns_null attribute.

Fix the attribute and check against NULL.
See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64459
and https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64463


  Commit: 48c30847d9e1a89ec5f3b8ab63ff2451f730a4d0
      https://github.com/parrot/parrot/commit/48c30847d9e1a89ec5f3b8ab63ff2451f730a4d0
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M include/parrot/nci.h
    M include/parrot/scheduler.h
    M src/gc/fixed_allocator.c
    M src/gc/fixed_allocator.h
    M src/nci/signatures.c
    M src/scheduler.c

  Log Message:
  -----------
  fix error: expected unqualified-id before string constant

PARROT_EXPORT needs to be the first function attribute. See GH #1164.
This error appears now with c++ compilers, because now returns_null is
only now enabled.


  Commit: 19e74d472b35f3bab43834d780794ac3a9346d1b
      https://github.com/parrot/parrot/commit/19e74d472b35f3bab43834d780794ac3a9346d1b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M ChangeLog
    M lib/Parrot/Headerizer.pm
    M lib/Parrot/Headerizer/Functions.pm
    M t/tools/dev/headerizer/01_functions.t

  Log Message:
  -----------
  [test] Add tests for #1164, that PARROT_EXPORT is the first

also allow PARROT_DOES_NOT_RETURN as only attribute for functions
with make headerizer.


  Commit: e3bffab1101c17e66c54800111c9cd682b83eb50
      https://github.com/parrot/parrot/commit/e3bffab1101c17e66c54800111c9cd682b83eb50
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M src/string/encoding/shared.c
    M src/string/encoding/shared.h

  Log Message:
  -----------
  Replace PARROT_CANNOT_RETURN_NULL with PARROT_DOES_NOT_RETURN

in some NYI function which do not return. (encoding/shared.c only)
This is better than just PARROT_CANNOT_RETURN_NULL


  Commit: c1ec9f4c533cb6df9f73f3911b2e091a1d4c61ef
      https://github.com/parrot/parrot/commit/c1ec9f4c533cb6df9f73f3911b2e091a1d4c61ef
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M Configure.pl
    M config/auto/attributes/test_c.in
    M include/parrot/compiler.h
    M include/parrot/exit.h
    M include/parrot/thr_pthread.h
    M lib/Parrot/Configure/Messages.pm
    M src/dynoplibs/trans.ops
    M src/exit.c
    M src/ops/core.ops

  Log Message:
  -----------
  Bump copyright to 2015, remove unneeded casts

Also add a ARGIN_FORMAT to Parrot_x_force_error_exit.


  Commit: 75b6710e5f890f02d5ee1976c9c548e43da3cbb3
      https://github.com/parrot/parrot/commit/75b6710e5f890f02d5ee1976c9c548e43da3cbb3
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M src/exceptions.c

  Log Message:
  -----------
  [cage] improve die_from_exception

fix -Wunused-result for Parrot_io_STDOUT,
do not calculate Parrot_io_STDOUT and Parrot_io_STDerr twice.


  Commit: d74d1ffef42f8eea121c1e2c81a1f953e49d8a75
      https://github.com/parrot/parrot/commit/d74d1ffef42f8eea121c1e2c81a1f953e49d8a75
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M compilers/imcc/cfg.c
    M compilers/imcc/imcc.l
    M compilers/imcc/pbc.c
    M compilers/imcc/reg_alloc.c
    M include/parrot/pobj.h
    M src/debug.c
    M src/dynoplibs/math.ops
    M src/dynpmc/rational.pmc
    M src/gc/alloc_memory.c
    M src/gc/alloc_resources.c
    M src/gc/gc_gms.c
    M src/gc/gc_private.h
    M src/io/buffer.c
    M src/packfile/pf_items.c
    M src/packfile/segments.c
    M src/runcore/main.c
    M src/runcore/profiling.c
    M src/runcore/subprof.c
    M src/string/api.c
    M src/string/encoding/utf16.c
    M src/string/spf_render.c
    M src/string/spf_vtable.c

  Log Message:
  -----------
  [cage] fix some -Wuseless-cast

improves code quality


  Commit: 0ea5632c651cccf42642b9e9a71be404720c094e
      https://github.com/parrot/parrot/commit/0ea5632c651cccf42642b9e9a71be404720c094e
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M compilers/imcc/debug.c
    M src/pmc/capture.pmc
    M src/pmc/hash.pmc

  Log Message:
  -----------
  [cage] fix some -Wformat wrong type warnings

cast ptr to ulong


  Commit: 4e6a7b125104bc86ad61f55431ed2f9431cf0c7a
      https://github.com/parrot/parrot/commit/4e6a7b125104bc86ad61f55431ed2f9431cf0c7a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M ChangeLog
    M Configure.pl
    M compilers/imcc/api.c
    M compilers/imcc/cfg.c
    M compilers/imcc/debug.c
    M compilers/imcc/imc.h
    M compilers/imcc/imcc.l
    M compilers/imcc/main.c
    M compilers/imcc/parser_util.c
    M compilers/imcc/pbc.c
    M compilers/imcc/reg_alloc.c
    M compilers/imcc/symreg.c
    M config/auto/attributes.pm
    M config/auto/attributes/test_c.in
    M config/gen/config_h.pm
    M config/gen/config_h/config_h.in
    M config/gen/config_h/has_header_h.in
    M examples/c/pbc_info.c
    M frontend/pbc_dump/main.c
    M frontend/pbc_dump/packdump.c
    M frontend/pbc_merge/main.c
    M include/imcc/api.h
    M include/parrot/call.h
    M include/parrot/compiler.h
    M include/parrot/exit.h
    M include/parrot/gc_api.h
    M include/parrot/io.h
    M include/parrot/nci.h
    M include/parrot/packfile.h
    M include/parrot/pobj.h
    M include/parrot/scheduler.h
    M include/parrot/string_funcs.h
    M include/parrot/thr_pthread.h
    M lib/Parrot/Configure/Messages.pm
    M lib/Parrot/Headerizer.pm
    M lib/Parrot/Headerizer/Functions.pm
    M src/call/context.c
    M src/debug.c
    M src/disassemble.c
    M src/dynoplibs/Rules.in
    M src/dynoplibs/io.ops
    M src/dynoplibs/math.ops
    M src/dynoplibs/trans.ops
    M src/dynpmc/pccmethod_test.pmc
    M src/dynpmc/rational.pmc
    M src/embed/bytecode.c
    M src/exceptions.c
    M src/exit.c
    M src/gc/alloc_memory.c
    M src/gc/alloc_resources.c
    M src/gc/api.c
    M src/gc/fixed_allocator.c
    M src/gc/fixed_allocator.h
    M src/gc/gc_gms.c
    M src/gc/gc_private.h
    M src/gc/string_gc.c
    M src/io/api.c
    M src/io/buffer.c
    M src/nci/signatures.c
    M src/ops/core.ops
    M src/ops/core_ops.c
    M src/ops/io.ops
    M src/packfile/api.c
    M src/packfile/pf_items.c
    M src/packfile/segments.c
    M src/pmc/capture.pmc
    M src/pmc/handle.pmc
    M src/pmc/hash.pmc
    M src/pmc/imageiofreeze.pmc
    M src/pmc/imageiothaw.pmc
    M src/pmc/packfile.pmc
    M src/pmc/packfiledirectory.pmc
    M src/pmc/socket.pmc
    M src/runcore/cores.c
    M src/runcore/main.c
    M src/runcore/profiling.c
    M src/runcore/subprof.c
    M src/runcore/trace.c
    M src/scheduler.c
    M src/string/api.c
    M src/string/encoding/shared.c
    M src/string/encoding/shared.h
    M src/string/encoding/utf16.c
    M src/string/spf_render.c
    M src/string/spf_vtable.c
    M src/string/sprintf.c
    M src/warnings.c
    M t/tools/dev/headerizer/01_functions.t
    M tools/dev/pbc_to_exe.winxed

  Log Message:
  -----------
  Merge branch 'smoke-me/attributes-gh1163'


  Commit: 294d71423c304b9cfd6ead0afdfca328bffc6c57
      https://github.com/parrot/parrot/commit/294d71423c304b9cfd6ead0afdfca328bffc6c57
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2015-01-02 (Fri, 02 Jan 2015)

  Changed paths:
    M ChangeLog
    M config/auto/warnings.pm

  Log Message:
  -----------
  [cage] Move -Wformat to --cage #1165

also add potential (nyi on gcc)
-Wsuggest-attribute=returns_nonnull, -Wsuggest-attribute=warn_unused_result,
-Wsuggest-attribute=hot to --cage


Compare: https://github.com/parrot/parrot/compare/7d985ad841ee...294d71423c30


More information about the parrot-commits mailing list