Revision history for XS-Parse-Keyword

0.31    2022-12-25
        [CHANGES]
         * PL_infix_plugin now exists in 5.37.7
         * Support the new infix operator precedence levels added by
           perl v5.37.7
         * Various updates to hax/ support files

0.30    2022-12-03
        [CHANGES]
         * Added XPK_STAGED_ANONSUB; inspired a bit by XS::Parse::Sublike for
           customising the parsing of anonmethod

0.29    2022-12-01
        [CHANGES]
         * Added XPK_PREFIXED_TERMEXPR_ENTERLEAVE

        [BUGFIXES]
         * Don't try to call `SvPVX()` on a `newSV(0)` because -DDEBUGGING
           perls get upset (RT145278)
         * Remember to `break` out of switch block cases when testing for
           `KEYWORD_PLUGIN_*` return values

0.28    2022-11-25
        [CHANGES]
         * Include a XSParseInfixClassification field in the XSParseInfixInfo
           structure
         * Do not permit mixed identifier/non characters in the names of
           registered infix operators
         * No longer supports XSParseInfix ABI version 0

        [BUGFIXES]
         * When parsing an infix operator name, make sure not to be confused
           by additional identifier characters immediately after it

0.27    2022-10-31
        [CHANGES]
         * Updates to XS::Parse::Infix for latest `infix-plugin` perl5 branch
            + parsedata field is now an SV **, not an ANY *
         * Expose parse_infix() as a real ABI function, allowing infix
           operators to be hyper-operators and parse other operator names

0.26    2022-10-24
        [CHANGES]
         * Updates to XS::Parse::Infix for latest `infix-plugin` perl5 branch
            + Requires classification to set the operator precedence
            + No longer need XPI_OPERAND_ARITH or XPI_OPERAND_TERM; most of
              .lhs_flags and .rhs_flags are redundant now
            + No longer support XPI_OPERAND_CUSTOM
            + Optional `parse` phase for parametric/hyper-operators
         * Bump XS::Parse::Infix ABI version to 2
         * Declare XPI ABI v0 as deprecated, soon to be removed

0.25    2022-07-25
        [CHANGES]
         * Permit infix operators to consume fewer than all the available
           symbols; allowing for RHS operands that begin with symbols without
           intervening whitespace
         * Improved unit-testing of infix operator parser precedence issues
         * Added `XPI_OPERAND_ARITH`; renumbered `XPI_OPERAND_TERM` to be
           non-zero. Currently zero is accepted for back-compat

0.24    2022-06-26
        [CHANGES]
         * Skip attempting to create duplicate wrapper funcs, in case of
           multiple registrations of the same operator with different
           spellings

        [BUGFIXES]
         * Arrange extra_linker_flags correctly while building probe program
           for PL_infix_plugin

0.23    2022-05-18
        [CHANGES]
         * Defined XPK_KEYWORD, a better version of XPK_LITERAL for
           keyword-like tokens
         * Defined XPK_ARITHEXPR, a higher-precedence version of XPK_TERMEXPR
         * Defined XPK_ARGSCOPE, a variant of XPK_PARENSCOPE where the parens
           themselves are optional
         * Undocument the old XPK_STRING token type

        [BUGFIXES]
         * Fixes for bugs that affect -DDEBUGGING-enabled perls
            + Remember to clear OPf_KIDS when stealing the op_first of a
              LISTOP (RT142770)
            + Don't call cv_clone() at compiletime when unit testing; generate
              an OP_ANONCODE instead (RT142771)

0.22    2022-02-21
        [CHANGES]
         * Added XPK_AUTOSEMI piece type

        [BUGFIXES]
         * Don't segfault if lex_scan_lexvar() fails (RT140402)
         * Set required version of ExtUtils::ParseXS for multiple t/*.xs files

0.21    2021-10-12
        [BUGFIXES]
         * Fix for perl 5.20 - cannot use assert() as an expression

0.20    (bad MANIFEST)

0.19    2021-10-05
        [CHANGES]
         * Defined XPK_PREFIXED_BLOCK_ENTERLEAVE and XPK_SETUP for customizing
           the parser context around blocks

0.18    2021-09-28
        [CHANGES]
         * Define the XPI_OPERAND_ONLY_LOOK flag
         * Define a callchecker for list/list infix operators. Add a
           callchecker that can optimise out certain kinds of operations
           (ref to padav or pkgav, anonlist if XPI_OPERAND_ONLY_LOOK is set)

        [BUGFIXES]
         * cygwin requires deparse_infix to be declared with XS_INTERNAL()
           (RT139449)
         * Some architectures require intermediate storage for values in the
           test function pp_addpairs (RT139445)
         * Fix conditions in lexical variable type checking (RT139444)

0.17    2021-09-23
        [CHANGES]
         * Support certain kinds of list operands on LHS of infix operators
         * Generate wrapper functions around list-list infix operators, which
           unpack their argument lists from two ARRAYrefs

0.16    2021-09-21
        [CHANGES]
         * Attempt automatic deparsing of infix operators
         * Support certain kinds of list operands on RHS of infix operators

0.15    2021-09-06
        [CHANGES]
         * Optional generation of wrapper functions around scalar-infix
           operators
         * Quieter Build.PL by skipping PL_infix_plugin check on versions
           of perl known to be too old it

0.14    2021-08-31
        [CHANGES]
         * Added the entire XS::Parse::Infix subsystem
         * Added XPK_INFIX_* token types

0.13    2021-08-26
        [CHANGES]
         * Bump to ABI version 2; pass build1's arg0 param as a pointer, not a
           direct struct copy

        [BUGFIXES]
         * Back-compat for ABI version 1's build1 arg0 param not having a line
           number (RT138708)

0.12    2021-08-16
        [CHANGES]
         * Support probe on XPK_IDENT, XPK_PACKAGENAME, XPK_COMMALIST
         * Provide optional versions of XPK_IDENT and XPK_PACKAGENAME
         * Report the line number each piece was parsed from

0.11    2021-08-03
        [BUGFIXES]
         * Split Builder.pm into two parts (static + dynamic), so the static
           part can be indexed as normal by usual CPAN toolchain (RT138313)

0.10    2021-07-13
        [CHANGES]
         * Better configure-time probing for HPUX compiler support

        [BUGFIXES]
         * Fix for CHOICE/TAGGEDCHOICE corrupting the value of ->i in the
           result (RT136845)

0.09    2021-07-12
        [CHANGES]
         * Attempt to support HPUX, which may need additional compiletime
           arguments to support anonymous inner unions
         * Better compiletime error messages by attempting to include some
           source context in the same style as yyerror()
         * Slight compiletime performance boost by setting PERL_NO_GET_CONTEXT

        [BUGFIXES]
         * Check for recursive parser errors and abort (RT137458)

0.08    2021-06-17
        [CHANGES]
         * Support probe in XPK_CHOICE and XPK_TAGGEDCHOICE

        [BUGFIXES]
         * Remember to mask off the typeflags in probe_piece()

0.07    2021-06-16
        [CHANGES]
         * Added XPK_BLOCK_VOIDCTX and XPK_TERMEXPR_VOIDCTX
         * Undocumented the _flags() variants of XPK_BLOCK and XPK_TERMEXPR,
           and all the flags for them
         * Support probing in XPK_BLOCK
         * (undocumented) trial to see if all supported platforms support
           anonymous unions

0.06    2021-06-01
        [BREAKING CHANGES]
         * ABI version is now 1 - this will require a from-source rebuild of
           all modules using it.

        [CHANGES]
         * Renamed XPK_STRING to XPK_LITERAL
         * Support probe on the four bracketed scope types
         * Added _OPT-suffixed versions of the four bracketed scope types
         * Added more token types:
            + XPK_LEXVAR_MY
            + XPK_COMMA
            + XPK_PREFIXED_BLOCK
            + XPK_SEQUENCE

0.05    2021-05-31
        [CHANGES]
         * Added context-setting variants of block/expr types:
            + XPK_BLOCK_SCALARCTX, XPK_BLOCK_LISTCTX
            + XPK_TERMEXPR_SCALARCTX
            + XPK_LISTEXPR_LISTCTX

0.04    2021-05-24
        [CHANGES]
         * Added many more token types: XPK_LEXVARNAME, XPK_ATTRIBUTES,
           XPK_VSTRING, XPK_VSTRING_OPT, XPK_EQUALS
         * Added XPK_COMMALIST structure type
         * Defined hooks flags XPK_FLAG_STMT, XPK_FLAG_EXPR, XPK_FLAG_AUTOSEMI
         * API change to the way .build is invoked, allowing greater future
           compatibility for args structures

0.03    2021-04-27
        [BUGFIXES]
         * Fix the `VAR never introduced at ...` warnings from uses of
           XPK_BLOCK
         * Make sure the Builder.pm file is mentioned in META.{yml,json} so
           CPAN tools can find it

0.02    2021-04-21
        [CHANGES]
         * Back-compat to perl 5.14
         * Avoid passing user strings directly to printf, by emitting
           XPK_FAILURE using croak("%s", str)
         * Various documentation wording improvements

0.01    2021-04-14
        First version, released on an unsuspecting world.