[parrot/parrot] 63ed0d: [pmc] rpa: fix visit

GitHub noreply at github.com
Tue Dec 2 11:27:50 UTC 2014


  Branch: refs/heads/smoke-me/rpa-offset-gh1152
  Home:   https://github.com/parrot/parrot
  Commit: 63ed0d42460bed1bebbbdffc2a4e4379bf284536
      https://github.com/parrot/parrot/commit/63ed0d42460bed1bebbbdffc2a4e4379bf284536
  Author: Reini Urban <rurban at cpanel.net>
  Date:   2014-12-01 (Mon, 01 Dec 2014)

  Changed paths:
    M src/pmc/fixedpmcarray.pmc
    M src/pmc/resizablepmcarray.pmc

  Log Message:
  -----------
  [pmc] rpa: fix visit

we need an offset for visit, we cannot use the fixedpmcarray
method.


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

  Changed paths:
    M src/pmc/resizablepmcarray.pmc
    M t/pmc/resizablepmcarray.t

  Log Message:
  -----------
  [pmc] rpa: fix resize with offset optimization

we moved the wrong items, and had wrong slack overwrites.
Add testcases.


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

  Changed paths:
    M src/pmc/fixedpmcarray.pmc
    M src/pmc/imageiofreeze.pmc
    M src/pmc/resizablepmcarray.pmc
    M t/pmc/freeze.t

  Log Message:
  -----------
  [pmc]: various minor refactors

* Access attr struct more directly.
* Fix one syntax problem with UNLIKELY with non-std compilers.
* Optimize *1.5 by using integer math.
* Change rpa overallocation to use 1.5, not 2. This is better to handle
  free blocks.
* Always fill slack space, as we extend rpa via set. In a better version we
  should fill the slack space only when needed: only on set.
* Change push_{non-pmc} to use push_pmc and not set_keyed_int.
  push is offset optimized, set not.

Still WIP. object was probably modified after being freed


Compare: https://github.com/parrot/parrot/compare/5ff0fc926be9...c8a7211520f9


More information about the parrot-commits mailing list