The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

Changes for version 6.0.22 - 2022-05-20

  • Jean-Damien Durand <jeandamiendurand@free.fr>
    • Version 6.0.22
    • src/marpaESLIF.c: Fixed some warnings found by cl [ci skip]
    • internal/iqsort.h: Align to original version that suggests register for _run_ptr variable
    • src/marpaESLIF.c: Macro to switch between classic and inlined qsort
    • src/marpaESLIF.c: inline qsort
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_pointers_cleanupb(), get out immediately if there is nothing to do [ci skip]
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_discard_tryb(), discard looks like a lexeme
    • Move isExpectedArraybp from grammarp to marpaESLIFRecognizerp [ci skip]
    • dev+ [ci skip]
    • Merge commit '4cb7f7e0ae01fd905a01e950319e1c4a8aba5f29'
    • Squashed '3rdparty/github/marpaWrapper/' changes from a7a6c7ea..d0f79ebb
    • include/marpaESLIF.h: C++ compatible [ci skip]
    • src/marpaESLIF.c: Removed a non-needed call to GENERICSTACK_ERROR in production mode [ci skip]
    • src/marpaESLIF.c: Added missing parenthesis and remove one unneeded instruction [ci skip]
    • Squashed '3rdparty/github/cmake-utils/' changes from 3a9719e5..d346a5f6
    • Merge commit 'bdc167e3f618c6b53138b1f2a8a53f81f32b2978'
    • src/marpaESLIF.c: Changed a MARPAESLIF_UNLIKELY() to MARPAESLIF_LIKELY()
      • ci skip
    • Version 6.0.21 [ci skip]
    • Implement ASCII and UTF-8 success predicion when possible [ci skip]
    • Support of utf character class failure prediction (first 256 codepoints)
      • ci skip
    • Version 6.0.20
    • t+: swiftTester memory free fix [ci skip]
    • t+ selfTester restore [ci skip]
    • t+ adventTester restore [ci skip]
    • src/json.c: Comment fixes [ci skip]
    • src/marpaESLIF.c: It is illegal to read on a stream that is already at eof [ci skip]
    • src/marpaESLIF.c: memory leak issue [ci skip]
    • src/marpaESLIF.c: Moved pragma GCC diagnostic outside of function body and protect it for __GNUC__ >= 5 [ci skip]
    • Version 6.0.19
    • test/swiftTester.c: run all tests [ci skip]
    • src/marpaESLIF.c: explicit method _marpaESLIFRecognizer_getNextLineAndColumnb() [ci skip]
    • t/swiftTester t+ [ci skip]
    • Better support of lexemes: they may not always reach full completion at the end of parsing [ci skip]
    • Version 6.0.18
    • src/marpaESLIF.c: Fix broken :discard [ci skip]
    • Version 6.0.17
    • YAML t+ [ci skip]
    • src/marpaESLIF.c: :sol cannot be if :eof is set [ci skip]
    • src/marpaESLIF.c: Add missing trace macros in marpaESLIFRecognizer_symbol_tryb() [ci skip]
    • t+ [ci skip]
    • src/marpaESLIF.c: New macro MARPAESLIFRECOGNIZER_IS_INTERACTIVE(marpaESLIFRecognizerp) [ci skip]
    • Recognizer proxy logger [ci skip]
    • Fix warnings and genericLoggerp propagation [ci skip]
    • Fix warnings [ci skip]
    • dev+ lexemeModeb, parentLinel and parentColumnl [ci skip]
    • test/yamlGrammar.c: more debug prints [ci skip]
    • Fix sharev v.s. linel/columnl [ci skip]
    • src/marpaESLIFLua.c: Compliance with old compilers [ci skip]
    • bindings/README.pod: Cosmetic fix
    • src/marpaESLIF.c: In _marpaESLIF_eslif2hostb(), silent -Wswitch when we abuse the marpaESLIFValueResultWorkp-->type enum [ci skip]
    • Fix last discard loop, added missing propagation of defaultSymbolActionp and symbolActionp in bootstrap grammar clone [ci skip]
    • t/test.t: Fix test [ci skip]
    • src/marpaESLIF.c: :eol and :sol v.s. charconvb fixes, memory leak fixed in name and discard try [ci skip]
    • test/marpaESLIFTester.c: Better handle events before first read [ci skip]
    • src/marpaESLIF.c: Fix when this is a lookahead, matchedLengthl is always 0 [ci skip]
    • test/jsonTester.c: Prevent traces at the very beginning [ci skip]
    • src/marpaESLIF.c: In _marpaESLIFGrammar_bootstrap_transferb(), fix propagation of luascript. Add missing calls to MARPAESLIF_UNLIKELY() [ci skip]
    • src/bootstrap.c: Fix _marpaESLIF_bootstrap_G1_action_luascript_statementb() [ci skip]
    • src/marpaESLIF.c: Fix last discard loop [ci skip]
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_errorv(), restore initial log indices [ci skip]
    • src/bootstrap.c: Renamed _marpaESLIF_bootstrap_find_terminal_by_nameb() to _marpaESLIF_bootstrap_find_terminal_by_namep() [ci skip]
    • In _marpaESLIF_grammar_bootstrap_clonep, fix missing eventual name overwrite of a symbol [ci skip]
    • Removed some gcc warnings [ci skip]
    • Fix fault at free() in bootstrap [ci skip]
    • :empty pseudo terminal [ci skip]
    • Debug [ci skip]
    • Internal renamings [ci skip]
    • grammarp->startp new member [ci skip]
    • src/marpaESLIF.c: bootstrap clone [ci skip]
    • src/marpaESLIF.c: Fix a memory leak, bootstrap grammar clonep preparation [ci skip]
    • yaml t+ [ci skip]
    • src/marpaESLIF.c: Work on action generator [ci skip]
    • Fix regression on <bracketed name string> [ci skip]
    • src/marpaESLIF.c: Work on generated action [ci skip]
    • Work on generated rhs that are not "standalone" [ci skip]
    • generator callback work [ci skip]
    • src/marpaESLIF.c: Fixed potential use of uninitilalized variable [ci skip]
    • Version 6.0.16
    • test/jsonTesterStrictExternal.h: Cosmetic lua action changes [ci skip]
    • test/jsonTesterStrictExternal.h: Playing with priority [ci skip]
    • lookahead optimization when it consist of a single terminal [ci skip]
    • src/marpaELIF.c: dev+ [ci skip]
    • Use predicted failures in _marpaESLIFRecognizer_resume_oneb-) [ci skip]
    • In _marpaESLIFRecognizer_resume_oneb(): Use a symbolpp array, slightly faster that reindexing symbolArraypp[iteratorl] [ci skip]
    • src/marpaESLIF.c: Removed a call to abort() left previously for debugging [ci skip]
    • Use only accessible grammar terminals when scanning [ci skip]
    • Internal renamings in grammar and meta structures [ci skip]
    • Removed unused terminalIdArrayp [ci skip]
    • src/marpaESLIF.c: Use _marpaESLIFRecognizer_expectedTerminals_yieldb()
      • ci skip
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_resume_oneb() move the test on number of symbols inside the test on matchedd symbols [ci skip]
    • dev+ and bypass GENERICSTACK_RESET that is forgetting to call GENERICSTACK_INIT [ci skip]
    • src/marpaESLIFLua.c: marpaESLIFLua_lua_seti() and marpaESLIFLua_metatypeb() fixes [ci skip]
    • src/marpaESLIFLua.c: Added missing marpaESLIFLua_lua_assertstack() in marpaESLIFLua_luaL_getmetafield() [ci skip]
    • lua: pre-reference most accessed globals [ci skip]
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_symbol_matcherb() take terminalp early instead of symbolp->u.terminalp [ci skip]
    • src/marpaESLIF.c: Fix *funcs in _marpaESLIFRecognizer_expectedTerminals_notpristine_oneb() [ci skip]
    • perl/dist.ini: Add -DNDEBUG
    • src/marpaESLIF.c: work on limiting number of instructions/calls [ci skip]
    • Work on symbol priority [ci skip]
    • src/marpaESLIF.c: Add symbol priority in internal trace [ci skip]
    • Removed historical and not-used passthrough code ctd
    • Removed historical and not-used passthrough code
    • src/marpaESLIF.c: Removed unnecessary instructions
    • src/marpaESLIF.c: In _marpaESLIF_symbol_action___transferb() avoid calls to malloc
    • src/marpESLIF.c: Removed unnecessary instructions in _marpaESLIFRecognizer_symbol_matcherb() [ci skip]
    • Apply same optimization on rule internal find [ci skip]
    • src/marpaESLIF.c: Fix comment [ci skip]
    • src/marpaESLIFLua.c: Fix marpaESLIFLua_push_objectb() prototype [ci skip]
    • Version 6.0.15
    • src/marpaESLIF.c: Fix the hideseparator hook in _marpaESLIF_rule_action___rowb and _marpaESLIF_rule_action___tableb
    • ESLIF/RegexCallout.pm: Use $_[0] for faster access to this "internal" class
    • src/marpaESLIFLua.c: Fix calls to marpaESLIFLua_luaL_errorf
    • External symbol uses its dedidated importer
    • Lookup predicted failures for non-UTF anchored regexes
    • src/marpaESLIF.c: Remove few unneeded instructions
    • Version 6.0.14
    • Try to limit instructions in _marpaESLIFRecognizer_terminal_matcherb
    • Avoid unneeded internal memcpys
    • test fixes [ci skip]
    • Tiny revisit of _marpaESLIFRecognizer_terminal_matcherb [ci skip]
    • src/marpaESLIF.c: Removed a non-needed call to pcre2_set_callout [ci skip]
    • Merge commit 'e8f20d6f4d5bb82b3bf1fd3060bd441bff2bafbe'
    • Squashed '3rdparty/github/tconv/' changes from bf51db9d..6bc4e98a
    • src/marpaESLIF.c: Work on limiting the number of instructions in _marpaESLIFRecognizer_resume_oneb() [ci skip]
    • src/marpESLIF.c: try to limit calls to memcmp [ci skip]
    • README.pod: Fix typo "PCRE2_UTF82" => "PCRE2_UTF" [ci skip]
    • README.pod: Fix type "In such ca case" => "In such a case" [ci skip]
    • src/marpaESLIFLua.c: lua_createtable calls fixes (confusion between narr and nrec) [ci skip]
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_expectedTerminalsb avoid a jump by reverting if to the most probable case
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_symbol_matcherb() add a MARPAESLIF_LIKELY()
    • src/marpaESLIF.c: Limit the number of calls to malloc()/free() via genericStacj in the marpaESLIFValue structure
    • src/marpaESLIF.c: Fix potential uninitialized values
    • Revert "src/marpESLIF.c: Avoid unnecessary instructions in _marpaESLIFRecognizer_terminal_matcherb() [ci skip]"
    • src/marpaESLIFLua.c: inline promotion when possible
    • Minimize luaunpanic internal setjmp overhead by selecting which calls are candidate for luaunpanic
    • src/marpESLIF.c: Avoid unnecessary instructions in _marpaESLIFRecognizer_terminal_matcherb() [ci skip]
    • src/bootstrap.c: Tiny optimization [ci skip]
    • Version 6.0.13
    • Revert "src/marpaESLIF.c: Prefer single call to marpaWrapperRecognizer_expectedb() instead of a loop on marpaWrapperRecognizer_isExpectedb()"
    • src/marpaESLIF.c: Prefer single call to marpaWrapperRecognizer_expectedb() instead of a loop on marpaWrapperRecognizer_isExpectedb()
    • Version 6.0.12
    • add haveUndefb in the importers
    • Revert "src/marpaESLIFLua.c: no need of lua_seti in out internal data - use lua_rawseti instead [ci skip]"
    • src/marpaESLIFLua.c: no need of lua_seti in out internal data - use lua_rawseti instead [ci skip]
    • Optimizations dev+ [ci skip]
    • Add test/allluacallbacks.c
    • Back temporarly to lua new states, use lua_call instead of lua_pcall, restored lua stack check [ci skip]
    • src/lua.c: _marpaESLIF_lua_recognizerlua_newp renamed to _marpaESLIF_lua_recognizer_newp [ci skip]
    • src/lua.c: use lua_call instead of lua_pcall (ok because the underlying lua is our luaunpanic ;)) [ci skip]
    • src/lua.c: error reporting revisited [ci skip]
    • Internal lua renamings [ci skip]
    • src/lua.c: Moved a call to lua_settop at its correct place [ci skip]
    • src/lua.c: Prefer the macros in this source file [ci skip]
    • Back to one lua main state per grammar, removed unnecessary calls to luaL_checkstack [ci skip]
    • Version 6.0.11
    • src/marpaESLIFLua.c: Tentative code marked with MARPAESLIFLUA_IMPORT_DETECT_NIL
    • src/marpaESLIFLua.c: Removed unused marpaESLIFLuaRecognizerContextp->calloutTable_r
    • Revert "src/marpaESLIF.c: No fetch of grammar events and the recognizer has noeventb set"
    • Revert "src/marpaESLIF.c: No fetch of grammar events and the recognizer has noeventb set - reformatting"
    • src/marpaESLIF.c: No fetch of grammar events and the recognizer has noeventb set - reformatting
    • src/marpaESLIF.c: No fetch of grammar events and the recognizer has noeventb set
    • src/lua.c: Revisit macros [ci skip]
    • Version 6.0.10
    • perl/ESLIF.xs: Issue with stash that should not be freed
    • Version 6.0.9
    • perl/ESLIF.xs: newSv(0) instead of &PL_sv_undef when storing in AV or HV
    • perl/ESLIF.xs: Removed some unused variables
    • perl/ESLIF.xs: Fix previous commit -;
    • CMakeObjects.PL: try_link for __builtin_expect bix
    • CMakeObjects.PL: try_link for __builtin_expect
    • Squashed '3rdparty/github/marpaWrapper/' changes from d133cc6b..a7a6c7ea
    • Merge commit '0f2bd8ea0714557a4fa6362b2bc58705701b2e28'
    • Merge commit 'f55b80ffac28d35ecd9a776a72b01d30a4c90b94'
    • Squashed '3rdparty/github/tconv/' changes from 02ca365f..bf51db9d
    • Squashed '3rdparty/github/genericHash/' changes from 6f36155c..ef66a0cc
    • Merge commit '6acd67c60d45aca8f36bc9f3bff22e287d6d03e6'
    • Merge commit '3e098edc43c5323d2e5c4c1ae4e9b371b991390b'
    • Squashed '3rdparty/github/genericLogger/' changes from 633accf8..3312f127
    • gh actions t+
    • gh actions, _marpaESLIF_inlined_ptrhashi for 64bits warning fix
    • gh action t+
    • README.pod: Remove travis-ci
    • src/marpaESLIFLua.c: Fix compilation for old cls
    • Fix some unreferenced local variables
    • .appveyor.yml: Visual Studio 2022 dev+
    • .appveyor.yml: Add Visual Studio 2022 bis
    • .appveyor.yml: Update doc and add Visual Studio 2022
    • src/marpaESLIF.c: Fixed a ;; that causes old cl to fail
    • API/README.pod: POD fixes
    • include/marpaESLIF.h: Fix duplicate typedef definition
    • perl/dist.ini: Try to enable -Werror for version of gcc that do not yell on -qstrict
    • Version 6.0.8
    • Fix traces
    • src/marpaESLIFLua.c: Fix warning detected by cl
    • Version 6.0.7
    • src/json.c: Tiny optimization on order in a || test
    • marpaESLIFRecognizer_symbol_tryb is using recognizers importer, marpaESLIFSymbol_tryb is using symbols importer
    • Version 6.0.6
    • perl/ESLIF.xs: Optimize calls to setRecognizer
    • src/marpaESLIFLua.c: Optimizer calls to setRecognizer
    • test/marpaESLIFLuaTest.lua: Log calls to setRecognizer and getRecognizer
    • perl/ESLIF.xs: Use marpaESLIFPerl_arraycopyp() also for string containers
    • t/test.t: Fix lua_regexAction
    • test/jsonTesterLua.c: Back to normal ::concat for *chars ::= filled
    • test/marpaESLIFLuaTest.lua: Fix a log
    • perl/ESLIF.xs: Avoid copying data in recognizer callbacks
    • lua: arraycopy t+
    • test/selfTester.c: event-action fix, marpaESLIFRecognizer:input() now returns an xstring
    • test/jsonTesterLua.c: Revert the changes after the fix done by previous commit
    • src/marpaESLIFLua.c: fix logic with arraycopy
    • Lua: xstring fixes
    • src/marpaESLIF.c: _marpaESLIF_cleanup_sorti fix
    • Lua: Cache a dummy regex callback object to make sure that strings used as keys are never garbage collected
    • src/marpaESLIFLua.c: Internal renamings
    • dev+
    • API/README.pod: Documentation of regex callout, on strings and arrays lifetime
    • When cleanup pointers, use a sorted stack instead of a hash
    • bootstrap optimization
    • Internal management of hiden separator instead of relying on the automatic stack switches
    • BNF/README.pod: Document that hide-separator and (-...-) have a cost
    • src/marpaESLIF.c: Use stack switch instead of internal copy when processing hiden (- ... -) stack indices
    • test/jsonTester.c: Dump external JSON grammar
    • src/marpaESLIF.c: Use GENERICSTACK_SWITCH when hiding separator stack indices
    • test/jsonTester.c: Factorize parsing function to ease profiling
    • JSON tests using an external grammar
    • src/marpaESLIF.c: Work on stack debug
    • src/bootstrap.c: Fix compilation issue when #undef MARPAESLIF_NTRACE
    • perl/ESLIF.xs: av_extend and hv_ksplit
    • perl/ESLIF.xs: Use av_extend before filling the AV bis - missing parenthesis after the SSize_t cast
    • perl/ESLIF.xs: Use av_extend before filling the AV
    • Set discard-is-fallback for internal grammars (ESLIF, JSON strict, JSON extended)
    • discard-is-fallback doc and test
    • discard-is-fallback grammar adverb
    • Version 6.0.5
    • No need to reinject marpaESLIFRecognizerp when we previously injected the same in Lua
    • Removed marpaESLIFLuaSymbolContextp that appears to not be needed
    • src/marpaESLIF.c: Add missing symbolp->marpaESLIFLuaSymbolContextp initialization
    • Symbol import should always use its userDatavp/importer setting, even when used in a recognizer context
    • Version 6.0.4-TRIAL
    • perl/ESLIF.xs: Missing av_push in marpaESLIFPerl_recognizerRegexCallbackb
    • Version 6.0.3-TRIAL
    • Added missing interface to marpaESLIFRecognizer_discardb()
    • src/marpaESLIf.c: search symbol in silent mode if there is an explicit trace after the call in cas of failure
    • Version 6.0.2-TRIAL
    • test/selfTester.c: Fix tests
    • lua: case of embedded functions in the embedded grammars: then marpaESLIFRecognizer is available through a global. Finally, test the existence of setRecognizer everytime
    • lua: Injection of recognizer in recognizer interface dev+
    • java: Optimize the calls to setEslifRecognizer in the recognizer interface, make sure that all actions that run in the recognizer interface (event-action, if-action, regex-action, generator-action) have an update if needed of the shallow recognizer instance
    • java: Restored all tests
    • java: injection of shallow recognizer instance in the recognizer interface for the callbacks
    • java: Add missing generatorAction in ESLIFGrammarSymbolProperties
    • perl: Add generatorAction in symbol properties, change verbose from 1/0 to yes/no
    • Back to a global regex-action in :default t+
    • Back to a global regex-action in :default
    • Work on structure, introducing effective actions
    • API/README.pod: Say that for external symbols, the stringp in argument is the thing inside the delimiters
    • internal/json.h: Added missing file
    • marpa/AppThread.java: Reduce range of a test on input()
    • java: fix explicit call to logger in jniInput(), prepare for shallow recognizer instance
    • Java & recognizer in the interface dev+
    • Java renamings and ESLIFRecognizerInterface new methods for callbacks dev+
    • Support of explicit regex-action in :symbol rule
    • test/selfTester.c: fix test on discard event
    • test/selfTester.c: t+
    • cache regexAction in terminalp for performance
    • perl: Access to recognizer instance in the recognizer callbacks that are in the interface namespace...
    • src/marpaESLIF.c: Prevent regex callbacks if not in the top-recognizer
    • internal/structures.h: Say explicitely that the marpaESLIFRecognizerTopp is only for lua (because the lua VM is created and owned only the top-level recognizer. We want to remember it for performance reasons)
    • src/marpaESLIF.c: Prevent recognizer callbacks anytime it is not the top-level recognizer, including discard (that is sometimes executed under the top recognizer in case of "fast" discard...) - Implemented helper macros MARPAESLIFRECOGNIZER_IS_TOP() and MARPAESLIFRECOGNIZER_IS_CHILD()
    • test/*.c: Fix missing initializations and added a callback (that would SEGV if executed) in adventTester.c
    • perl: backward compatiliby with version 5
    • perl/ESLIF.xs: marpaESLIFPerl_importb() optimization
    • Revert "utf82ord optimization"
    • utf82ord optimization
    • Optimization of pcre2 contexts
    • Add grammar_level and symbol_id in regex callouts
    • test/selfTester.c: Fix test (name adverb in not allowed on meta symbols)
    • src/bootstrap.c: Improve logging in __marpaESLIF_bootstrap_G1_action_symbol_ruleb
    • In all binding language, add offset parameter and optionel length parameter on the interface to marpaESLIFRecognizer_input(), because we cannot affort to always copy the full itnernal buffer to host engine every time
    • src/json.c: Emit error if the loop on recognizer did not bring us to the err label
    • src/marpaESLIF.c: If grammar exhaustion is an error, log the recognizer state
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_alternative_and_valueb, change a little the error message
    • src/marpaESLIF.c: When an alternative fails, log the full recognizer state in error
    • src/marpaESLIF.c: _marpaESLIF_numberb can modify input in place. When that happens keep a copy of original and restore it at method return
    • perl/ESLIF.xs: Clean some unused variables
    • Restrict name adverb to terminals, make sure it is unique, support $name notation in rhs primary
    • BNF/README.pod: Fix missing <symbol rule>
    • BNF/README.pod: Add missing <symbol rule>
    • JSON external symbols dev+
    • Make _marpaESLIFRecognizer_discardb available to internal API with the external prototype
    • Tutorial/Calculator.pod: Update
    • Global deprecation of :lexeme and :terminal in favour of :symbol
    • BNF/README.pod: Update section on naming
    • Version 6.0.1 (trial)
    • Version 6.0.0 (trial)
    • t/json.t: Some more tests from JSON Parsing Test Suite (c)
    • src/json.c: Fix MARPAESLIFJSON_DQUOTE constant
    • src/json.c: Fix \\r and \\n inversion
    • Changed marpaESLIF_numberb() prototype, fixed regex callout usage callback and UTF-16 to UTF-8 transformation
    • perl/ESLIF.xs: Fixed a comment
    • etc/callout_inspect.pl: Helper to understand PCRE2 callouts
    • src/json*.c: Use regex callbacks instead of symbol events
    • src/marpaESLIF.c: Fix symbol display in _marpaESLIFRecognizer_errorv
    • include/marpaESLIF.h: More info for developpers using marpaESLIFCalloutBlock_t
    • API/README.pod: Fix
    • src/marpaESLIF.c: _marpaESLIFGrammar_symbolDescriptionCallback fix
    • Some more internal versions (no need of extra checks reserved to the case where it is an external API call)
    • src/json*.c: Removed lexemes from the grammar
    • Tutorial/propositionalLogic: Fix
    • Calculator/Calculator.sh: Fix
    • A complete revisit of the API, opening implicitly terminals into the interface
    • Open name adverb to :lexeme and :terminal rules
    • Renamed lexeme data to symbol data
    • src/marpaESLIF.c: Add marpaESLIF_symbol_type_t argument to _marpaESLIF_symbol_findp()
    • src/json.c: Fixed y_structure_capitalized_True test
    • src/json.c: Reduce structures
    • src/json*.c: Renamed DQUOTE to dquote
    • t/json.t: Restored some tests removed by previous commit
    • src/json.c: ROW and TABLE containers must be initialized for proper export
    • JSON callbacks during recognition uses the recognizer context
    • src/json.c: Fix propagation of final value
    • t/json.t: Removed unfortunate read of STDIN introduced for debugging locally...
    • src/json.c: Setted MARPAESLIF_UNLIKELY() macro where relevant
    • src/json*.c: Merged CNTRL_CHAR into CHAR lexeme
    • src/json*.c: Replaced the CNTRL_CHAR lexeme by an explicit terminal
    • src/json*.c: Merged number and constant in the same lexeme
    • src/json*.c: Removed the DQUOTE_START and DQUOTE_END lexemes
    • src/json.c: Fix memory leak
    • src/marpaESLIF.c: Fix again last commit...
    • src/marpaESLIF.c: Recomment a statement uncommended and commited by error
    • src/json.c: dev+
    • internal/logging.h: Fix macros when #ifndef MARPAESLIF_NTRACE
    • Merge commit 'e6492742a76d5f2e621e9fb26b35861b024d0433' into json_optimization_v2
    • Squashed '3rdparty/github/tconv/' changes from cda1cb9d..02ca365f
    • Fix includes of json grammars
    • JSON optimization using recognizer only dev+
    • src/marpaESLIF.c: Make _marpaESLIFRecognizer_lexeme_readb truely internal
    • Fix internal logging macros (bis)
    • Fix internal logging macros
    • API/README.pod: update
    • src/marpaESLIF.c: Rework of exhaustion event - ESLIF extends native marpa exhaustion to this case: if during scan/resume no alternative is found but last progress shows start symbol completion (typical case of a start symbol that is a sequence for example)
    • Fix last discard loop v.s. events and internalize some methods needed for the next JSON parser
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_lexeme_completeb, push ESLIF events before fetching grammar events
    • t/test.c: Test of inputLength(), input() and error()
    • inputLength, error binding interfaces, marpaESLIFRecognizer_lexeme_expectedb fix
    • New method marpaESLIFRecognizer_errorb
    • Allow resume to be called, even if scan was not called, when at least one lexeme alternative was pushed
    • When recognizer forced an exhaustion event, make sure it is not removed by upper layer that realise that this is a fake event by asking diretly marpa
    • t/advent.t: Fix logging
    • src/json.c: Renamed internal pause after events from xxx[] to xxx$
    • src/marpaESLIF.c: Fixed issue with initial events at scan() call and when there are also predicted lexemes
    • src/marpaESLIF.c: Prevent propagating a tconvp that failed if needed needed, and stay silent in lexeme mode when appending data
    • src/marpaESLIF.c: micro optimization in _marpaESLIFRecognizer_terminal_matcherb
    • marpaESLIF_internal_symbol_action dev+
    • marpaESLIF_internal_rule_action_t dev+
    • marpaESLIF_internal_event_action dev+
    • Optimizations dev+
    • Removed non needed internal _marpaESLIFValueResultAfterStack
    • src/json.c: Bug fix when shallowing entries
    • Squashed '3rdparty/github/genericStack/' changes from b47da89f..35e49cdc
    • Merge commit 'fd81a35452728b9b61961dea43b68ac38f2bfd9b'
    • src/json.c: #9 - Tiny optimization replacing if/else/elsef if with a switch
    • In _marpaESLIFRecognizer_terminal_matcherb, having a parent recognizer is much more likely to happen than being at eof
    • In _marpaESLIFRecognizer_internalStack_i_setb(), stop pretending we are better than the compiler ;)
    • #9: Avoid hash table lookup when possible
    • #9: Round 2 - Removed an unnecessary costly memcpy in the very central method _marpaESLIFRecognizer_symbol_matcherb() (revealed by callgrind)
    • #9: Round 2 - rearrange structures and use offsetof to suppress unpredictable switch() branch jumps
    • #9: removed old comment
    • #9: work on optimization - a better version, though still not excellent
    • src/marpaESLIF.c: _marpaESLIF_ptrhashi update
    • Squashed '3rdparty/github/marpaWrapper/' changes from 82dcfe1f..d133cc6b
    • Merge commit 'c20741bc3954d29be405cc835d387b1b53b95894'
    • Merge commit '3d8246088d3679594f831ddcaef417f7a1e49fd5'
    • Squashed '3rdparty/github/genericHash/' changes from 5ce9852b..6f36155c
    • test/jsonTester.c: Eventually parse stdin, usage is: jsonTester[Not]Strict - < file.json
    • BNF/README.pod: Add lookahead rules in the BNF
    • lookahead doc+ [ci skip]
    • Internal flag in grammar to remember if it has a lookahead meta
    • README.pod: Removed -DALL_IN_ONE=TRUE from build instructions
    • test/marpaESLIFLuaTest.lua: parameterized test t+
    • BNF/README.pod: Section on parameterized rules
    • README.pod: Mention parameterized rules and dynamic sub-grammars
    • src/marpaESLIF.c: Get context before processing the action
    • src/bootstrap.c: skip symbol checks when we know we in a dynamic symbol generator context
    • Revert "src/bootstrap.c: skip symbol checks when we know a new one will be created anyway"
    • src/bootstrap.c: skip symbol checks when we know a new one will be created anyway
    • test/marpaESLIFLuaTest.lua: Fix parameterized test
    • t/parameterizedRules.t: Fix
    • src/bootstrap.c: Fixed a bootstrapLhsp memory leak
    • BNF/README.pod: <symbol> should be <lhs> in event declarations
    • src/bootstrap.c: Removed a shallow pointer, this is also fixes a SEGV
    • src/bootstrap.c: Removed old symbolShallowp confusing variable, fixed some calls to check_meta
    • src/bootstrap.c: bug shown when separatorcallp is uncommented dev+
    • src/*.c: Fix some errors founds by gcc -Wall
    • src/marpaESLIFLua.c: Lua 5.2 compat for lua_isinteger
    • marpa/AppParse.java: Enable all tests
    • t/test.t: Fix
    • test/parameterizedTester.c: Fix
    • With java, it is recommended to explicitely type lua string as sequence of characters for interoperability else java will see a sequence of bytes, not a string
    • test/parameterizedTester.c: generator callback in C t+
    • bindings/README.pod: Give a hint how to create a true Lua string object for language interoperability using ESLIF
    • src/marpaESLIFLua.c: Fix typos in comments
    • bindings/README.pod: Fix typo
    • test/marpaESLIFTester.c: Fix condition
    • Java and generator callback dev+
    • test/*c: t+
    • test/parameterizedTester.c: t+
    • t/parameterizedRules.t: t+
    • t/parameterizedRules.t: use lexeme in dynamic grammar
    • Move lexemeGrammarHash to marpaESLIFGrammar
    • In _marpaESLIFRecognizer_meta_matcherb(), initialize generatedValueResult.u.s before passing it
    • marpaESLIFPerl_recognizerGeneratorCallbackb update: use marpaESLIFPerl_sv2byte() explicitely
    • perl/ESLIF.xs: generator action
    • In marpaESLIFLua_generatorCallbackb(), nargs is a size_t
    • Use our coding convention for err/done etc
    • Encoding test
    • Fix and use of the MARPAESLIFLUA_STRING_ENCODINGS() macro
    • BNF/README.pod: Add missing <lua functioncall> after <generation action> in <rhs primary> rule
    • Cache generated lexeme grammars in the top recognizer [ci skip]
    • Lexeme to grammar dev+ [ci skip]
    • Make all context operations internal
    • Squashed '3rdparty/github/luaunpanic/' changes from 2ea5626d..78f5dd04
    • Merge commit '4a07d2940c83befd32d1ccf4ba21a8803e45b7cb' into lua_external_symbol
    • Send arguments to generator callback [ci skip]
    • Merge commit '344d2c1dc011f35181f97636b0e1e2d91e324af0' into lua_external_symbol [ci skip]
    • Squashed '3rdparty/github/luaunpanic/' changes from 1c69b6f8..2ea5626d
    • luaunpanic subtree update impact [ci skip]
    • git_subtree_pull.zsh should work on current branch when doing hard reset
      • ci skip
    • Squashed '3rdparty/github/luaunpanic/' changes from fd2baa3e..1c69b6f8
    • Merge commit 'e7ed60aee1d36a55f6eeaafa27f52cca9ab89eab' into lua_external_symbol [ci skip]
    • Merge commit '73ffb7a1cf9106f85895af6476f52bb244278e02' into lua_external_symbol [ci skip]
    • Squashed '3rdparty/github/marpaWrapper/' changes from 9ea206a5..82dcfe1f
    • Fix external marpaESLIFRecognizer_contextb -> marpaESLIFRecognizer_context_getp [ci skip]
    • generator action dev+ [ci skip]
    • CMakeLists.txt fix [ci skip]
    • Back to terminals that cannot be parameterized [ci skip]
    • Fix printout of grammar, starting allowing parameterized terminals for templating [ci skip]
    • lua template engine dev+ [ci skip]
    • Merge commit '9b80fe534b221fc9ae2b2faa702780913d40f210' as '3rdparty/github/lua-template-engine'
    • Squashed '3rdparty/github/lua-template-engine/' content from commit 2a0d6a9f
    • Protect recognizer calls when in a sub-recognizer [ci skip]
    • test/parameterizedTester.c
    • perl/ESLIF.xs: Fix an indentation
    • Alleviate exception statement restrictions
    • test/yamlTester.c t+ [ci skip]
    • test/yamlTester.c: t+ [ci skip]
    • yamlTester dev+ [ci skip]
    • test/selfTester.c: back to original grammar [ci skip]
    • Replaced paramb by marpaESLIFValueResultForcedValuationp [ci skip]
    • Unused variables cleanup [ci skip]
    • Removed context from generator-callback parameters, it can be retreived using the recognizer [ci skip]
    • Fix symbol dump [ci skip]
    • dev+ Fix memory leak when propagating context to sub-recognizers [ci skip]
    • symbol generator dev+ [ci skip]
    • Propagate context to sub-recognizers [ci skip]
    • Back to internal event [ci skip]
    • src/bootstrap.c: Fixed an error text [ci skip]
    • src/marpaESLIF.c: dev+ [ci skip]
    • src/bootstrap.c: Make sure terminals are not parameterized [ci skip]
    • lua: niledtablek constructor [ci skip]
    • Renamed lexemeInputStack to lexemeStack [ci skip]
    • Fixed potential memory leak when freeing lexemeInputStack
    • t/test.t: Fix top attribute (plain wrong since the beginning)
    • src/marpaESLIF.c: Restored the top attribute [ci skip]
    • test/marpaESLIFLuaTest.lua: Update [ci skip]
    • t/jsonWithSharedStream.t: Update
    • src/bindings/*: Update [ci skip]
    • src/marpaESLIF.c: Fix MARPAESLIF_MAKE_MARPAESLIFVALUERESULTP_SHALLOW() macro [ci skip]
    • src/marpaESLIF.c: Removed marpaESLIFValueResultParameterizedp notion [ci skip]
    • src/marpaESLIF.c: Removed unneeded test on symbolp->type [ci skip]
    • src/marpaESLIF.c: fast_done version in marpaESLIFValue_valueb() [ci skip]
    • src/marpaESLIF.c: make proxy rule explicitely as internal [ci skip]
    • Fix symbol creation when it is referenced symbol [ci skip]
    • Lexeme event is not allowed on parameterized rhs [ci skip]
    • Suppress exceptioncallp, changed int rhsi to size_t rhsl [ci skip]
    • Renamed MARPAESLIF_MAKE_MARPAESLIFVALUERESULT_SHALLOWP macro to MARPAESLIF_MAKE_MARPAESLIFVALUERESULTP_SHALLOW [ci skip]
    • Reserve parameters to lexemes [ci skip]
    • Back to RHS terminal [ci skip]
    • Use internal rule for context transition [ci skip]
    • src/marpaESLIF.c: Make sure runtime variable are reset at retry [ci skip]
    • src/marpaESLIF.c: Move lua precompilation at the beginning of grammar validation, otherwise lexeme symbols will not inherit <luascript> [ci skip]
    • Try another model using true lexmes for parameterized symbols [ci skip]
    • Work on internal neightbour symbols v.s. stack and events [ci skip]
    • Removed context-action [ci skip]
    • context-action [ci skip]
    • Prepare context-action [ci skip]
    • Fix some includes and prepare for lua context call [ci skip]
    • src/marpaESLIF.c: MARPAESLIF_SYMBOL_CREATESHOW() for neighbour meta [ci skip]
    • test/marpaESLIFTester.c: Fix
    • Update perl interface
    • src/bootstrap.c: Fix unitialized variables [ci skip]
    • Number of expressions [ci skip]
    • Number of parameters [ci skip]
    • test/selfTester.c: Removed a debug call [ci skip]
    • Handle exception and separator symbols [ci skip]
    • BNF/README.pod: Cosmetic alignment fix [ci skip]
    • start symbol and more dev+ [ci skip]
    • functiondecl dev+ [ci skip]
    • t/test.c: Fix [ci skip]
    • C++ comment :discard update [ci skip]
    • src/marpaESLIF.c: grammar show fixes
    • eslif/G1.h: :discard update
    • BNF/README.pod: Cosmetic spaces again [ci skip]
    • BNF/README.pod: Added a space in some rules for readibilty [ci skip]
    • BNF/README.pod: :discard rule update [ci skip]
    • BNF/README.pod: Removed \\z from self grammar [ci skip]
    • BNF/README.pod: Self grammar update bis [ci skip]
    • BNF/README.pod: Self grammar update [ci skip]
    • perl/dist.ini: Cosmetic changes [ci skip]
    • src/lua.c: <lua optional parlist> fix [ci skip]
    • Use ::luac->function in the top example and in t/allluacallbacks.t [ci skip]
    • README.pod: Mention declarative lua action directly into the grammar [ci skip]
    • Support of ::luac->function
    • Stop precompiling actions in bootstrap: we trust our grammar, and if we are wrong, lua will yell at runtime
    • t/allluacallbacks.t: Add test with lua anonymous functions
    • Lua anonymous functions for actions
    • Renamed macro MARPAESLIF_HEXDUMPV() to MARPAESLIFRECOGNIZER_HEXDUMPV(), use it when problem scanning a lexeme at bootstrap [ci skip]
    • test/selfTester.c: Removed lua grammar (now in src/lua.c) [ci skip]
    • verbose adverb list item for lexemes
    • src/marpaESLIFLua.c: When running embedded, objects can be either injected, either created in Lua
    • src/marpaESLIFLua.c: Indexing of events should start at 1
    • BNF/README.pod: lua:: should read ::lua [ci skip]
    • Lua 5.3 grammar, enable :discard when trying to match a lexeme
    • src/bindings/perl/t/jsonWithSharedStream.t: Changed logs from info to debug (output too big for travis)
    • t/*t: Changed default log level to INFO (output too big for travis)
    • Update self grammar
    • src/marpaESLIF.c: Improve self-grammar representation, fix rule show in case of :discard [ci skip]
    • Renamed Examples/Lua5.3.txt to Examples/Lua5.3.4.txt
    • Examples/Lua5.3.txt: Add [ci skip]
    • src/bootstrap.c: Action G1_action_space_concat for future usage [ci skip]
    • Revert "src/bootstrap.c: Action G1_action_space_concat for future usage [ci skip]"
    • internal/bootstrap.h: Suppressed unused constant MARPAESLIF_BOOTSTRAP_STACK_TYPE_LHS [ci skip]
    • src/json.c: Simplified json :discard for maintanabilty
    • Revert "src/marpaESLIF.c: Better trace [ci skip]"
    • _marpaESLIFRecognizer_resume_oneb: reset alternativeStackSymboli in case of internal retry after successful discard
    • src/marpaESLIF.c: Better trace [ci skip]
    • _marpaESLIFRecognizer_discardParseb: Fix
    • Fix marpaESLIFRecognizer_symbol_tryb for meta symbol
    • src/marpaESLIF.c: In _marpaESLIFRecognizer_resume_oneb(), fix a potentially uninitialized variable [ci skip]
    • ESLIF/Recognizer.pm: More detail about the newFrom [ci skip]
    • java: external meta symbol support
    • perl: external meta symbol support
    • lua: external meta symbol support and test
    • src/marpaESLIF.c: Fix :start show
    • src/marpaESLIF.c: Fix _marpaESLIFSymbol_meta_newp
    • test/selfTester.c: Fix self grammar and external meta symbol test
    • API/README.pod: Fix typo for marpaESLIFRecognizer_discardb
    • marpaESLIFRecognizer_peekb() dev+ [ci skip]
    • New method marpaESLIFRecognizer_discardb(), fix logic when appending data in internal buffer
    • src/marpaESLIFLua.c: Fix comment [ci skip]
    • test/marpaESLIFLuaTest.lua: External symbol test [ci skip]
    • meta external symbol [ci skip]
    • meta external symbol test comment fix [ci skip]
    • meta external symbol doc [ci skip]
    • test/selfTester.c: t+ [ci skip]
    • marpaESLIFSymbolOption_t dev+
    • Java: Interface to progress(), latestEarleySetId() and earleme()
    • marpa/ESLIFProgress.java: Add [ci skip]
    • java/marpaESLIFJava.c: Review the name of all internal structures definitions [ci skip]
    • Add progress(), latestEarleySetId() and earleme() interfaces to Lua, remove earlemei and earlemeOrigi from marpaESLIFRecognizerProgress_t [ci skip]
    • marpaESLIFRecognizer_latestEarleySetIdb() and marpaESLIFRecognizer_earlemeb() new methods [ci skip]
    • marpaESLIFRecognizer_progressb() doc [ci skip]
    • perl: MarpaX::ESLIF::Recognizer::progress(start, end) interface [ci skip]
    • Add earlemei and earlemeOrigi to progress [ci skip]
    • New method marpaESLIFRecognizer_progressb()
    • Interface to recognizer context [ci skip]
    • marpa/AppJSON.java: Add re-encoding to JSON test
    • *stringbp doc [ci skip] dev+
    • Add a *stringbp parameter to representation callback
    • test/marpaESLIFTester.c: Fix memory leak [ci skip]
    • :sol pseudo flag for "Start Of Line"
    • test/marpaESLIFTester.c: print current input [ci skip]
    • src/bootstrap.c: Bug fix in _marpaESLIF_bootstrap_search_terminal_pseudob [ci skip]
    • Merge commit 'f5abce9f71ae14785467bfd03b799e374654c30f'
    • Squashed '3rdparty/github/cmake-utils/' changes from 34733e7f..3a9719e5
    • Version 5.0.7
    • BNF/README.pod: Fix for events [ci skip]
    • API/README.pod: Fix [ci skip]
    • API/README.pod: Update [ci skip]
    • json: avoid a malloc very often not necessary
    • src/json.c: Fix lvalue on a realloc
    • Version 5.0.6 [ci skip]
    • .travis.yml: -DCMAKE_BUILD_TYPE=Release
    • .travis.yml: debug
    • .travis.yml: asan
    • .travis.yml: java under valgrind
    • .travis.yml: -DCMAKE_BUILD_TYPE=RelWithDebInfo
    • src/json: missing memcpy
    • Work on Int, Nan and number helpers
    • perl/dist.ini: Fix META for bugtracker [ci skip]
    • New method marpaESLIFRecognizer_numberb [ci skip]
    • BNF/README.pod: Update ESLIF :discard definition take 2[ci skip]
    • BNF/README.pod: Update ESLIF :discard definition [ci skip]
    • Version 5.0.5
    • t/import_export.t: Better logging
    • MarpaX/ESLIF.pm: Put explicit Encode dependency just before the call to XSLoader
    • ESLIF/String.pm: Back to an old-style perl mode, this remove runtime dependency on Moo
    • perl/ESLIF.xs: Renaming of external dependencies for clarity
    • .travis.yml: Changed namespace::autoclean to namespace::clean to hardcoded perl imports for CMakeObjects.PL [ci skip]
    • ESLIF/String.pm: use namespace::sweep instead of namespace::autoclean, the later breaking overload
    • src/marpaESLIF.c: Fix compilation in trace mode [ci skip]
    • Version 5.0.4
    • perl/dist.ini: Fix detection of Sun C compiler [ci skip]
    • src/bootstrap.c: if-action support on :terminal was missing [ci skip]
    • Version 5.0.3
    • perl/ESLIF.xs: genericStack internals have changed and conflict again with perl's macro that redefine malloc, realloc, free etc.
    • perl/dist.ini: Change bugtracker.rt to bugtracker.github [ci skip]
    • Version 5.0.2
  • Jeffrey Kegler <jeffreykegler@jeffreykegler.com>
    • More typos in README.pod
    • Update README.pod
  • Jeffrey Kegler <jeffreykegler@protonmail.com>
    • Replace "transverse" in docs/comments"
  • jddurand <jeandamiendurand@free.fr>
    • Create cmake.yml

Modules

ESLIF is Extended ScanLess InterFace
ESLIF base
ESLIF Event Types
MarpaX::ESLIF's grammar
ESLIF Grammar Properties
ESLIF Grammar Rule Properties
ESLIF Grammar Symbol Properties
ESLIF's JSON interface
ESLIF's JSON decoder interface
MarpaX::ESLIF::JSON Recognizer Interface
ESLIF's JSON encoder interface
ESLIF Logger levels
MarpaX::ESLIF's recognizer
ESLIF Regex Callout
ESLIF Rule Property Bit Set
ESLIF String is any string value with encoding attribute
MarpaX::ESLIF's symbol
ESLIF Symbol Event Bit Set
ESLIF Symbol Property Bit Set
ESLIF Symbol Type
MarpaX::ESLIF's value
ESLIF Value Types