[parrot/parrot] 2586ee: [test] add easily repro GC testcase for GH #1159

GitHub noreply at github.com
Fri Dec 19 13:51:13 UTC 2014


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

  Changed paths:
    M t/stress/gc.t

  Log Message:
  -----------
  [test] add easily repro GC testcase for GH #1159


  Commit: 1e416f1bbfee0c9637ce0269af6ac37c1d6d8caa
      https://github.com/parrot/parrot/commit/1e416f1bbfee0c9637ce0269af6ac37c1d6d8caa
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-12-18 (Thu, 18 Dec 2014)

  Changed paths:
    M include/parrot/gc_api.h
    M src/gc/api.c
    M src/gc/gc_gms.c
    M src/gc/gc_private.h
    M src/interp/api.c
    M src/pmc/resizablepmcarray.pmc
    M t/op/gc-leaky-box.t
    M t/op/gc-leaky-call.t
    M t/stress/gc.t

  Log Message:
  -----------
  [core] add INTERPINFO_MAX_GENERATIONS api

Returns the defined constant for gms (changed from 4 to 3), or 0.
Allow -DGC_MAX_GENERATIONS=n to be set via --ccflags.
benchmarked with parrot-bench: 3 and 4 are the best, 8 is also interesting.

Todo string collects in t/op/gc-leaky-call.t and ..box.t
  There's no apparent need to collect strings, when none are
  allocated during a cycle.
  But add a collectable string for the lulz


  Commit: 2249402a43e4a8745a463df5a3116846cf8d40ab
      https://github.com/parrot/parrot/commit/2249402a43e4a8745a463df5a3116846cf8d40ab
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-12-19 (Fri, 19 Dec 2014)

  Changed paths:
    M include/parrot/pobj.h
    M src/gc/gc_gms.c
    M t/stress/gc.t

  Log Message:
  -----------
  [gc] enable on_dirty_list assertion, document pobj flags

and improve the GH #1159 testcase. It was too slow


  Commit: 45758d20a34fd79f20c52dd2b3e884503f45733a
      https://github.com/parrot/parrot/commit/45758d20a34fd79f20c52dd2b3e884503f45733a
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-12-19 (Fri, 19 Dec 2014)

  Changed paths:
    M src/gc/gc_gms.c

  Log Message:
  -----------
  [gc] Change semantics of GC_MAX_GENERATIONS

GC_MAX_GENERATIONS=3 means now 3 generations: 0,1,2.
It was too odd and head-scratching to define 4 for max 3 generations


  Commit: 6aa51883f931cf50c2dfb26c52699d8ddc73edd9
      https://github.com/parrot/parrot/commit/6aa51883f931cf50c2dfb26c52699d8ddc73edd9
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-12-19 (Fri, 19 Dec 2014)

  Changed paths:
    M ChangeLog
    M src/pmc/resizablepmcarray.pmc
    M t/stress/gc.t

  Log Message:
  -----------
  [gc] fix the GC regression GH #1159 in resizablepmcarray

Always do PARROT_GC_WRITE_BARRIER with rpa unshift, even with the fast case.
The same with resize skip, where only the right side is adjusted.
Just skip the WB when the old size == new size.

This should fix the gc errors on small machines with big programs.
parrot-bench is now 1.2% slower.


Compare: https://github.com/parrot/parrot/compare/d0d0694462ce...6aa51883f931


More information about the parrot-commits mailing list