C-Blocks

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

Put changes under the appropriate header. Headers can include API CHANGES,
DIFFERENT BEHAVIOR, BUG FIXES, DEPENDENCIES, ENHANCEMENTS, NEW FEATURES, and
OTHER. Entries should be in chronological order, i.e. oldest at the top

0.42  Fri, Dec 9, 2016

  [NEW FEATURES]
  
  * It is now possible to indicate filter functions by name, rather than
    by package.
  
  [BUG FIXES]
  
  * Build.PL now removes names.txt and share/perl.h.cache. This is not
    important for basic installation, but shows up when the distribution
    is repeatedly compiled in the same directory against different
    versions of Perl.
  
  * Executable code is now relocated to a location in memory that is
    properly aligned with modern CPU page alignments. This is hard-coded
    at the moment at 4096 bytes. Without this alignment, code compiled in
    clex blocks would sometimes perform dismally. This showed up most
    obviously in the rng and random-access benchmarks that were recently
    added to the benchmarks folder. Before this fix, the C::Blocks rng
    implementation would often perform as slowly as the Perl one.

0.41  Mon, Nov 28, 2016

  [API CHANGES]
  
  * cisa has been removed! C::Blocks now uses the built-in type
    annotation facilities of Perl. Short type names are provided by
    C::Blocks::Types.
  
  [DEPENDENCIES]
  
  * Bumped Alien::TinyCCx dependency to v0.12, which fixes struct
    alignment issues and enum handling.
  
  [ENHANCEMENTS]
  
  * Perl package globals are now properly resolved. If you make a
    reference some $Some::Package::Scalar in your C code, it'll properly
    retrieve the SV named $Scalar from the package Some::Package.
  
  [NEW FEATURES]
  
  * New module C::Blocks::Types provides short type names
  
  * Double-colons are now processed by the code extractor and converted
    into double-underscores. So if you use Some::Thing in your C code
    block, it'll be immediately converted to Some__Thing.
  
  * Source filters! C::Blocks source filters are given the contents of
    the C code, start to finish, to manipulate. While it would be nicer
    to hook directly into the parser, this provides 99% of the desired
    functionality with 1% of the required effort of a parser hook.
  
0.40  Fri, Aug 12, 2016

  [DEPENDENCIES]
  
  * Bumped Alien::TinyCCx dependency to v0.11, which should properly
    support 64-bit Macs.
  
  [BUG FIXES]
  
  * Revised the perl.h symbol table caching in PerlAPI.xs.PL to use the
	tcc -run option instead of producing a shared object file. It does
	not need to produce anything---it just needs to cache the symbol
	table---but in order to get the default tcc to do that, I need to
	give it a compile target. Shared objects gave trouble on Macs, but
	tcc -run does not. An alternative fix would be to change tcc itself
	to add a "no output" target, or some such. In the meantime, this
	seems to solve the problem.
  
0.05  Thu, June 2, 2016

  [DIFFERENT BEHAVIOR]



( run in 1.014 second using v1.01-cache-2.11-cpan-71847e10f99 )