native_pbc branch: Revive pbc

Reini Urban rurban at
Sat Sep 1 20:26:30 UTC 2012

The native_pbc branch is ready to be merged.

The tests are now stable, and the pbc format has been cleaned up to include
no hard-coded parrot version number. The opslib header and init
function contains
now the PBC_COMPAT version number, which enables parrot to read pbc files
from older but still pbc compatible parrots. The whole exercise to
have such a number.

See below:

---------- Forwarded message ----------
From: GitHub <noreply at>
Date: Sat, Sep 1, 2012 at 2:18 PM
Subject: [parrot/parrot] ea86d0: Revive pbc
To: parrot-commits at

  Branch: refs/heads/native_pbc
  Commit: ea86d0f04a4486b1cb49bc27ded4675b575c82a2
  Author: Reini Urban <rurban at>
  Date:   2012-09-01 (Sat, 01 Sep 2012)

  Changed paths:
    M compilers/opsc/Rules.mak
    M compilers/opsc/src/Ops/
    M compilers/opsc/src/Ops/
    M config/auto/
    M config/gen/config_h/
    M config/gen/
    M config/gen/config_pm/
    M config/gen/makefiles/
    M frontend/pbc_dump/main.c
    M include/parrot/oplib.h
    M include/parrot/oplib/core_ops.h
    M src/ops/core_ops.c
    M src/packfile/segments.c
    M src/pmc/oplib.pmc
    M src/pmc/packfile.pmc
    M t/compilers/opsc/06-opsfile.t
    M t/compilers/opsc/08-emitter.t
    M t/native_pbc/testdata/annotations.pir

  Log Message:
  Revive pbc

The parrot utils could not load pbc compatible, but older pbc fils anymore
because opslib directories and the init function hardcoded the parrot version
(even with patch!) and not the PBC_COMPAT version.

Replaced all parrot version triples in the pbc format with the PBC
version duple.
parrot utils can now load older but compatible pbc files (again).

Replaced the hardcoded version numbers with c preprocessor macros in the
bootstrapped opslib sources and headers, to be more independent and simplier
implementation. If the ops did not change, the ops do not need to get
anymore for each version bump.
The Ops::Emitter version method is not used anymore, since bootstrap-ops has
been simplified.

Sanified the Makefile by adding missing dependencies and do proper identation
for depends and commands. Prev. line-broken depends were not visually
indistuingishible from commands, and line-broken commands neither.

Store PBC_MAJOR and PBC_MINOR in the config hash, stored by auto::revision.

Bump PBC_COMPAT to 13.0, the opslib directories store now only two version
numbers, not three.


Reini Urban

More information about the parrot-dev mailing list