Phorward C/C Library v1.0 finalized


After about 12 years of development, we finally decided to release the Phorward C/C++ Library as Version 1.0. It is now adequately stable, runs well and has a balanced feature set.


  • parray:
    • New data storage behind parray objects
    • New functions for set management: parray_union(), parray_diff(),
      parray_sort(), parray_concat(), providing equivalence to their
      plist counterparts
    • Changed signatures for parray iter functions
  • plist:
    • Improvements of the plist data type so that plistel provides no
      (error-prone!) back-pointer to its list anymore.
    • Speed optimization on plist_diff() and plist_union().
    • New flag PLIST_MOD_KEEPKEYS to keep key order and implement opposite hiding (last key collision will be chained to the end).
    • New function plist_getkey() to iterate over available keys in a
      hash-table configured plist object.
    • Flags generally stored as short values rather than int.
  • pccl:
    • Changed underlying data structures to the much faster parray.
  • utf8:
    • putf8_strlen() improved
  • other:
    • Switched license terms from 3-clause BSD to MIT
    • Entirely restructured src/-folder.
    • Modularization of the command-line tools pdoc, pinclude and pproto.
    • Began development of a ptest utility to perform automated tests and CI, implemented several tests cases in different modules.
    • Improved program tracing facilities, including clock measuring to indicate slow running functions.
    • Improved documentation and
    • Shell script to build stand-alone source versions of
      libphorward to be copied into other projects.
    • Moved the pany dynamic variant data type away into the phosphor repository.