[parrot/parrot] 8fe67f: [pmc2c] inline gc write barriers into vtable metho...

GitHub noreply at github.com
Fri May 30 01:16:22 UTC 2014


  Branch: refs/heads/rurban/pmc2c_orig2
  Home:   https://github.com/parrot/parrot
  Commit: 8fe67f1f76ebe1a05afe84279c9cb2075c507936
      https://github.com/parrot/parrot/commit/8fe67f1f76ebe1a05afe84279c9cb2075c507936
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M lib/Parrot/Pmc2c/Emitter.pm
    M lib/Parrot/Pmc2c/Method.pm
    M lib/Parrot/Pmc2c/PCCMETHOD.pm
    M lib/Parrot/Pmc2c/PMC.pm
    M lib/Parrot/Pmc2c/PMC/Object.pm
    M lib/Parrot/Pmc2c/Parser.pm
    M src/io/io_private.h
    M src/pmc/alarm.pmc
    M src/pmc/arrayiterator.pmc
    M src/pmc/bigint.pmc
    M src/pmc/boolean.pmc
    M src/pmc/bytebuffer.pmc
    M src/pmc/continuation.pmc
    M src/pmc/env.pmc
    M src/pmc/eventhandler.pmc
    M src/pmc/exception.pmc
    M src/pmc/exceptionhandler.pmc
    M src/pmc/fixedbooleanarray.pmc
    M src/pmc/fixedintegerarray.pmc
    M src/pmc/handle.pmc
    M src/pmc/hashiterator.pmc
    M src/pmc/hashiteratorkey.pmc
    M src/pmc/imageiofreeze.pmc
    M src/pmc/imageiosize.pmc
    M src/pmc/imageiostrings.pmc
    M src/pmc/imageiothaw.pmc
    M src/pmc/imccompiler.pmc
    M src/pmc/integer.pmc
    M src/pmc/iterator.pmc
    M src/pmc/key.pmc
    M src/pmc/lexpad.pmc
    M src/pmc/managedstruct.pmc
    M src/pmc/nativepccmethod.pmc
    M src/pmc/nci.pmc
    M src/pmc/object.pmc
    M src/pmc/opcode.pmc
    M src/pmc/oplib.pmc
    M src/pmc/packfileannotation.pmc
    M src/pmc/packfilesegment.pmc
    M src/pmc/packfileview.pmc
    M src/pmc/parrotinterpreter.pmc
    M src/pmc/parrotlibrary.pmc
    M src/pmc/pointer.pmc
    M src/pmc/ptrbuf.pmc
    M src/pmc/resizablepmcarray.pmc
    M src/pmc/scheduler.pmc
    M src/pmc/schedulermessage.pmc
    M src/pmc/sockaddr.pmc
    M src/pmc/sub.pmc
    M src/pmc/task.pmc
    M src/pmc/unmanagedstruct.pmc

  Log Message:
  -----------
  [pmc2c] inline gc write barriers into vtable methods

:no_wb detection of :manual_wb, allow RETURN(decl var) also for VTABLE methods

add_write_barrier() now calls Parrot::Pmc2c::PCCMETHOD::rewrite_RETURNS.
Also add automatic WB for 0 or 1 return statements in the method body.
Other need either a RETURN or :manual_wb or :no_wb annotations.

Set manual_wb for :no_wb and PARROT_GC_WRITE_BARRIER in --dump
Detect it now earlier, in the parser

Missing write barriers typically cause the following errors:
t/examples/shootout.t: 16 examples/shootout/regexdna.pir SEGV
t/op/gc.t
t/pmc/*.t


  Commit: 9bedf7d4390bd7e23ccb690e5a93491a918e4c81
      https://github.com/parrot/parrot/commit/9bedf7d4390bd7e23ccb690e5a93491a918e4c81
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/arrayiterator.pmc
    M src/pmc/capture.pmc

  Log Message:
  -----------
  [pmc] partially use new WB markers


  Commit: 2df7a82d606bd263655e45dd7596c7ebd8ba74ea
      https://github.com/parrot/parrot/commit/2df7a82d606bd263655e45dd7596c7ebd8ba74ea
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    A .project
    M src/pmc/arrayiterator.pmc

  Log Message:
  -----------
  [pmc] GSOC start. arrayiterator :no_wb, removed unnecessary :manual_wb

Start of GSOC 2014 work. Task 1: improve GC write barriers.
See GH issue #1069


  Commit: 6712c13d401ccff2b429c238b7d2581ea6e034b9
      https://github.com/parrot/parrot/commit/6712c13d401ccff2b429c238b7d2581ea6e034b9
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/callcontext.pmc

  Log Message:
  -----------
  [pmc] callcontext: manual WBs for shift_pmc & shift_string


  Commit: e8d13dd6acc861829aefaf73f15840c55786e6f9
      https://github.com/parrot/parrot/commit/e8d13dd6acc861829aefaf73f15840c55786e6f9
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/key.pmc
    M src/pmc/task.pmc

  Log Message:
  -----------
  [pmc] key, task: manual WBs for shift_*, pop_*


  Commit: 00b3172c92573fd503bfeeaa969e86481fc4db48
      https://github.com/parrot/parrot/commit/00b3172c92573fd503bfeeaa969e86481fc4db48
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/arrayiterator.pmc
    M src/pmc/callcontext.pmc

  Log Message:
  -----------
  [pmc] callcontext :no_wb and :manual_wb


  Commit: 1150890d7cdefbcc9f3f82fcfb47b7542dca993b
      https://github.com/parrot/parrot/commit/1150890d7cdefbcc9f3f82fcfb47b7542dca993b
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/key.pmc

  Log Message:
  -----------
  [pmc] key WBs


  Commit: 9f7ceca2d501be8298afd88a4fd5527467c24fd1
      https://github.com/parrot/parrot/commit/9f7ceca2d501be8298afd88a4fd5527467c24fd1
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/arrayiterator.pmc
    M src/pmc/callcontext.pmc
    M src/pmc/key.pmc
    M src/pmc/task.pmc

  Log Message:
  -----------
  [pmc] arrayiterator, callcontext, key, task: WBs


  Commit: 16a388de6c9df6070c22a19dddcab38d30c2fc7a
      https://github.com/parrot/parrot/commit/16a388de6c9df6070c22a19dddcab38d30c2fc7a
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/capture.pmc
    M src/pmc/hashiterator.pmc
    M src/pmc/imageiothaw.pmc

  Log Message:
  -----------
  [pmc] capture, HashIterator, ImageIoThaw: WBs


  Commit: eefcdf9f756966b1ad2097d80ef11d2732b5c1b3
      https://github.com/parrot/parrot/commit/eefcdf9f756966b1ad2097d80ef11d2732b5c1b3
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/default.pmc
    M src/pmc/object.pmc
    M src/pmc/orderedhashiterator.pmc
    M src/pmc/pmclist.pmc
    M src/pmc/resizablepmcarray.pmc

  Log Message:
  -----------
  [pmc] default, object, orderedHashIterator, pmcList, resizablePmcArray: WBs


  Commit: 3e8c9c926cfe85405d7002ee0612fba58b526d18
      https://github.com/parrot/parrot/commit/3e8c9c926cfe85405d7002ee0612fba58b526d18
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/callcontext.pmc
    M src/pmc/default.pmc
    M src/pmc/hashiterator.pmc
    M src/pmc/imageiothaw.pmc
    M src/pmc/object.pmc
    M src/pmc/orderedhashiterator.pmc
    M src/pmc/pmclist.pmc
    M src/pmc/resizablepmcarray.pmc

  Log Message:
  -----------
  [pmc] fix some mixed c99 declarations with generated WBs

DEBUGGED - ISO C90 forbids mixed declarations =
Solved by adding WB after declarations ; expected declaration specifiers before ‘:’ token
Solved by removing :no_wb attributes for the flagged functions


  Commit: ab201b1657795217c95c7f62c8f1bf71418687b0
      https://github.com/parrot/parrot/commit/ab201b1657795217c95c7f62c8f1bf71418687b0
  Author: ZYROz <ZYROz at users.noreply.github.com>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/task.pmc

  Log Message:
  -----------
  [pmc] task: WB related errors


  Commit: e307d3b56a81416f39c799a21c33e3a60d7fb92b
      https://github.com/parrot/parrot/commit/e307d3b56a81416f39c799a21c33e3a60d7fb92b
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/fixedintegerarray.pmc
    M src/pmc/fixedstringarray.pmc

  Log Message:
  -----------
  [pmc] add RETURN and WB attrs to fixedintegerarray, fixedstringarray


  Commit: b19be975bf2242500fc1d43846503f9586fe0858
      https://github.com/parrot/parrot/commit/b19be975bf2242500fc1d43846503f9586fe0858
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/callcontext.pmc

  Log Message:
  -----------
  [pmc] re-add some WBs to callcontext


  Commit: b23618cd4fce68788f332d58a48647e6f414f00f
      https://github.com/parrot/parrot/commit/b23618cd4fce68788f332d58a48647e6f414f00f
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/class.pmc
    M src/pmc/imccompiler.pmc
    M src/pmc/key.pmc
    M src/pmc/namespace.pmc
    M src/pmc/nci.pmc
    M src/pmc/opcode.pmc
    M src/pmc/packfileview.pmc
    M src/pmc/parrotlibrary.pmc
    M src/pmc/sockaddr.pmc
    M src/pmc/socket.pmc
    M src/pmc/timer.pmc

  Log Message:
  -----------
  [pmc] fix wrong C99 UNUSED macros and add a few :no_wb

class,imccompiler,key,namespace,nci,opcode,packfileview,parrotlibrary,
sockaddr,socket,timer


  Commit: 8189a6bf6cfc32c427c19548792b4a8519863d84
      https://github.com/parrot/parrot/commit/8189a6bf6cfc32c427c19548792b4a8519863d84
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M src/pmc/arrayiterator.pmc
    M src/pmc/callcontext.pmc
    M src/pmc/continuation.pmc
    M src/pmc/filehandle.pmc
    M src/pmc/fixedstringarray.pmc
    M src/pmc/imageiothaw.pmc
    M src/pmc/integer.pmc
    M src/pmc/key.pmc
    M src/pmc/object.pmc
    M src/pmc/packfileview.pmc
    M src/pmc/resizablepmcarray.pmc
    M src/pmc/task.pmc

  Log Message:
  -----------
  [pmc] fix wrong WB annotations

and add needed manual WBs


  Commit: c6cadd8e1ccdaac595bbd9a0a47927593bc7890c
      https://github.com/parrot/parrot/commit/c6cadd8e1ccdaac595bbd9a0a47927593bc7890c
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M lib/Parrot/Pmc2c/Method.pm

  Log Message:
  -----------
  [pmc2c] Method::decl fix Possibly forgotten UNUSED warning

for the WB rewrite.


  Commit: 87eae0793fdbf87a809bb4f3faf48902d6bcc553
      https://github.com/parrot/parrot/commit/87eae0793fdbf87a809bb4f3faf48902d6bcc553
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M lib/Parrot/Pmc2c/PCCMETHOD.pm

  Log Message:
  -----------
  [pmc] support RETURN(PMC* const ...) and (INTVAL pos>>32)

const is no variable name.
And allow full expressions as return value, not just names.
just skip ptr dereferences /^\**/


  Commit: acf468a89a05f540da1b2580cb51fe883dcf2a05
      https://github.com/parrot/parrot/commit/acf468a89a05f540da1b2580cb51fe883dcf2a05
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-05-29 (Thu, 29 May 2014)

  Changed paths:
    M t/pmc/fixedstringarray.t

  Log Message:
  -----------
  [test] move test_gc to the end of t/pmc/fixedstringarray.t

all other tests pass fine, even with wrong write barriers


Compare: https://github.com/parrot/parrot/compare/8fe67f1f76eb^...acf468a89a05


More information about the parrot-commits mailing list