The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Changes for version 0.41

  • 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.

Documentation

Modules

embeding a fast C compiler directly into your Perl parser
base package for writing filters for C::Blocks
invoke methods succinctly
C interface for interacting with Perl
Enabling stretchy buffers in your context
type classes for basic C data types for C::Blocks

Provides

in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm
in lib/C/Blocks/Types.pm