./devel/re2c, Deterministic Finite State Automaton generator

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 4.0.2nb1, Package name: re2c-4.0.2nb1, Maintainer: pkgsrc-users

re2c is a preprocessor that generates C-based recognizers from regular
expressions. The input to re2c consists of C/C++ source interleaved
with comments of the form /*!re2c ... */ which contain scanner
specifications. In the output these comments are replaced with code
that, when executed, will find the next input token and then execute
some user-supplied token-specific code.


Required to build:
[pkgtools/cwrappers]

Master sites:

Filesize: 1760.527 KB

Version history: (Expand)


CVS history: (Expand)


   2024-12-31 18:15:30 by Thomas Klausner | Files touched by this commit (1)
Log message:
re2c: can't use ninja to build this, hard-code make
   2024-12-31 15:56:28 by Thomas Klausner | Files touched by this commit (2)
Log message:
re2c: switch to CMake build system

Consistently installs re2java now.

Bump PKGREVISION.
   2024-12-30 19:49:09 by Thomas Klausner | Files touched by this commit (1)
Log message:
ire2c: disable java detection
   2024-12-26 12:47:46 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
re2c: update to 4.0.2.

4.0.2 (2024-12-11)
~~~~~~~~~~~~~~~~~~

- CMake build system: fixed bug
  `#515 <https://github.com/skvadrik/re2c/issues/515>`_ where language-specific
  binaries erroneously defaulted to generating code for C.

- Playground: address bar now reflects navigation between examples, editors use
  a more high-contrast CSS theme.

4.0.1 (2024-11-25)
~~~~~~~~~~~~~~~~~~

- Added missing doc sources to the distribution tarball
  (`#503 <https://github.com/skvadrik/re2c/issues/503>`_)

- Reworked C/C++ examples to avoid using new configuration aliases until the
  world has updated to re2c 4.0, made them compatible with C.

- A few build system changes: increased CMake minimum required version to 3.15,
  added missing dependencies on doc sources in Makefile.am.

- Fixed typos in docs.

4.0 (2024-11-19)
~~~~~~~~~~~~~~~~

- Added a generic technique for describing language backends based on the idea
  of syntax files (`#450 <https://github.com/skvadrik/re2c/issues/450>`_).

- Added support for new languages: D, Haskell, Java, JavaScript, OCaml, Python,
  V, Zig.

- Added new record API for all languages (enabled with ``--api record``,
  ``re2c:api = record``) and made it the default API for Haskell and OCaml.

- Renamed former "default API" to "simple API", implemented \ 
it for all backends
  except Haskell and OCaml, and enabled by default API for C, D, Java,
  JavaScript, Python, V and Zig.

- Added new code generation model - recursive functions (enabled with
  ``--recursive-functions``), primarily to be used for functional languages.

- Added options:

  + ``--syntax <file>``
  + ``--api simple``
  + ``--api generic``
  + ``--api record``
  + ``--goto-label``
  + ``--recursive-functions``
  + ``--lang none``
  + ``--lang d``
  + ``--lang haskell``
  + ``--lang java``
  + ``--lang js``
  + ``--lang ocaml``
  + ``--lang python``
  + ``--lang v``
  + ``--lang zig``
  + ``--leftmost-captvars``
  + ``--posix-captvars``
  + ``--captvars`` (alias for ``--leftmost-captvars``)
  + ``--captures`` (alias for ``--leftmost-captures``)

- Added configurations:

  + ``re2c:api = simple`` (alias for ``re2c:api = default``)
  + ``re2c:api = generic`` (alias for ``re2c:api = custom``)
  + ``re2c:api = record``
  + ``re2c:computed-gotos`` (alias for ``re2c:cgoto``)
  + ``re2c:cond:abort``
  + ``re2c:tags:negative``
  + ``re2c:leftmost-captvars``
  + ``re2c:posix-captvars``
  + ``re2c:captvars`` (alias for ``re2c:leftmost-captvars``)
  + ``re2c:captures`` (alias for ``re2c:leftmost-captures``)
  + ``re2c:monadic``
  + ``re2c:fn:sep``
  + ``re2c:[define:]YYFN``
  + ``re2c:[define:]YYINPUT``
  + ``re2c:[define:]YYGETACCEPT``
  + ``re2c:[define:]YYSETACCEPT``
  + ``re2c:[define:]YYCOPYSTAG``
  + ``re2c:[define:]YYCOPYMTAG``
  + ``re2c:[define:]YYGETCOND`` (alias for ``re2c:[define:]YYGETCONDITION``)
  + ``re2c:[define:]YYSETCOND`` (alias for ``re2c:[define:]YYSETCONDITION``)
  + ``re2c:[variable:]yyfill``
  + ``re2c:[variable:]yynmatch``
  + ``re2c:[variable:]yypmatch``
  + ``re2c:[variable:]yych:literals``

- All configurations that have ``define:`` or ``variable:`` part in their name
  now have an alias without this part.

- Added new block types:

  + ``/*!svars:re2c ... */``
  + ``/*!mvars:re2c ... */``

- Flex-style opening/closing braces ``%{`` and ``%}`` for block start/end
  markers now work for all block types.

- Added syntax file feature lists:

  + ``supported_apis`` with values from the list:
    ``simple``, ``generic``, ``record``

  + ``supported_api_styles`` with values from the list:
    ``free-form``, ``functions``

  + ``supported_code_models`` with values from the list:
    ``goto-label``, ``loop-switch``, ``recursive-functions``

  + ``supported_targets`` with values from the list:
    ``code``, ``dot``, ``skeleton``

  + ``supported_features`` with values from the list:
    ``nested-ifs``, ``bitmaps``, ``computed-gotos``, ``case-ranges``,
    ``tags``, ``captures``, ``captvars``, ``monadic``, ``unsafe``

- Added syntax file language-specific options:

  + ``semicolons``
  + ``backtick_quoted_strings``
  + ``single_quoted_strings``
  + ``indentation_sensitive``
  + ``wrap_blocks_in_braces``

- Added syntax file code templates:

  + ``code:var_local``
  + ``code:var_global``
  + ``code:const_local``
  + ``code:const_global``
  + ``code:array_local``
  + ``code:array_global``
  + ``code:array_elem``
  + ``code:enum``
  + ``code:enum_elem``
  + ``code:assign``
  + ``code:type_int``
  + ``code:type_uint``
  + ``code:type_cond_enum``
  + ``code:type_yybm``
  + ``code:type_yytarget``
  + ``code:cmp_eq``
  + ``code:cmp_ne``
  + ``code:cmp_lt``
  + ``code:cmp_gt``
  + ``code:cmp_le``
  + ``code:cmp_ge``
  + ``code:if_then_else``
  + ``code:if_then_else_oneline``
  + ``code:switch``
  + ``code:switch_cases``
  + ``code:switch_cases_oneline``
  + ``code:switch_case_range``
  + ``code:switch_case_default``
  + ``code:loop``
  + ``code:continue``
  + ``code:goto``
  + ``code:fndecl``
  + ``code:fndef``
  + ``code:fncall``
  + ``code:tailcall``
  + ``code:recursive_functions``
  + ``code:fingerprint``
  + ``code:line_info``
  + ``code:abort``
  + ``code:yydebug``
  + ``code:yypeek``
  + ``code:yyskip``
  + ``code:yybackup``
  + ``code:yybackupctx``
  + ``code:yyskip_yypeek``
  + ``code:yypeek_yyskip``
  + ``code:yyskip_yybackup``
  + ``code:yybackup_yyskip``
  + ``code:yybackup_yypeek``
  + ``code:yyskip_yybackup_yypeek``
  + ``code:yybackup_yypeek_yyskip``
  + ``code:yyrestore``
  + ``code:yyrestorectx``
  + ``code:yyrestoretag``
  + ``code:yyshift``
  + ``code:yyshiftstag``
  + ``code:yyshiftmtag``
  + ``code:yystagp``
  + ``code:yymtagp``
  + ``code:yystagn``
  + ``code:yymtagn``
  + ``code:yycopystag``
  + ``code:yycopymtag``
  + ``code:yygetaccept``
  + ``code:yysetaccept``
  + ``code:yygetcond``
  + ``code:yysetcond``
  + ``code:yygetstate``
  + ``code:yysetstate``
  + ``code:yylessthan``
  + ``code:yybm_filter``
  + ``code:yybm_match``

- Added global variables in syntax files:

  + ``nl``
  + ``indent``
  + ``dedent``
  + ``topindent``

- Added global conditionals in syntax files:

  + ``.api.simple``
  + ``.api.generic``
  + ``.api.record``
  + ``.api_style.functions``
  + ``.api_style.freeform``
  + ``.case_ranges``
  + ``.code_model.goto_label``
  + ``.code_model.loop_switch``
  + ``.code_model.recursive_functions``
  + ``.date``
  + ``.loop_label``
  + ``.monadic``
  + ``.start_conditions``
  + ``.storable_state``
  + ``.unsafe``
  + ``.version``

- Added warning ``-Wundefined-syntax-config``.

- Warnings that indicate serious issues are now turned on by default
  (and can be disabled with ``-Wno-<warning>`` options.

- Added configure options:

  + ``--enable-syntax`` (Autoconf)
  + ``RE2C_REBUILD_SYNTAX`` (CMake)

- Dropped support for function-like API style for Rust.
  (it was hard to use, if at all possible)

- Added online playground that allows one to run re2c in a web browser:
  https://re2c.org/playground.

- Infra work on Github Actions CI.
   2023-08-24 14:25:32 by Thomas Klausner | Files touched by this commit (2) | Package updated
Log message:
re2c: update to 3.1.

3.1 (2023-07-19)
~~~~~~~~~~~~~~~~

- Added capturing groups with leftmost greedy semantics:

  + Enabled with ``--leftmost-captures`` option or ``re2c:leftmost_captures``
    configuration

- Added non-capturing groups:

  + Added new syntax ``(! ...)`` for non-capturing groups

  + Added the ability to flip defaults: make ``(...)`` capturing and ``(! ...)``
    non-capturing with ``--invert-captures`` option or ``re2c:invert_captures``
    configuration

- Regenerated Unicode include header to support a newer standard

- Published TDFA paper: https://arxiv.org/abs/2206.01398, co-authored with
  Angelo Borsotti

- Removed experimental algorithms that are superseded by TDFA(1) and
  generally less efficient:

  + Removed staDFA algorithm and deprecated ``--stadfa`` option

  + Removed TDFA(0) algorithm and deprecated ``--no-lookahead`` option

  + (libre2c) Removed backward-matching algorithm

  + (libre2c) Removed Kuklewicz POSIX disambiguation algorithm

  + (libre2c) Removed GTOP shortest path finding algorithm

- Bug fixes:

  + Fixed parsing of raw UTF-8 characters in Flex compatibility mode

  + Added header file to the dependencies generated with ``--depfile`` option

  + Fixed stack overflow on large regular expressions by rewriting recursive
    functions in iterative form
    and limited stack to 256K on GithubActions CI

- Build system:

  + Added minimal http://bazel.build integration

  + Added configure option ``--enable-parsers`` that regenerates bison parsers

  + Added CMake option ``RE2C_REBUILD_PARSERS``

  + With CMake, fixed documentation generation on Windows.

- Codebase improvements:

  + Moved the entire codebase to C++11.
  + Added uniform error handling (return codes are now properly checked and
    returned to the caller).
  + Reorganized codegen subsystem in four well-defined phases (analyze,
    generate, fixup, render) and separated codegen from parsing phase.
  + Improved memory allocation by using slab allocators instead of global free
    lists.
  + Moved to pure API for bison parsers.
  + Unified code style.

- Testing:

  + Added ``--verbose`` flag to run_tests.py and suppressed verbose output by
    default.
  + Multiple improvements of continuous testing with GithubActions.
   2023-08-14 07:25:36 by Thomas Klausner | Files touched by this commit (1247)
Log message:
*: recursive bump for Python 3.11 as new default
   2023-04-26 21:17:44 by Thomas Klausner | Files touched by this commit (3) | Package updated
Log message:
re2c: update to 3.0.

3.0 (2022-01-27)
~~~~~~~~~~~~~~~~

- Added code generation backend for Rust:

  + Enabled with ``--lang rust`` option.
  + A new ``re2rust`` binary (built by default, or configured with
    ``--enable-rust`` Autoconf option and ``RE2C_BUILD_RE2RUST`` CMake option).

- Added options:

  + ``--loop-switch``
  + ``--no-unsafe``

- Added configurations;

  + ``re2c:label:yyloop``
  + ``re2c:unsafe``

- Renamed options to use common naming scheme. The old names are supported as
  aliases, so the change does not break existing code. Documentation has been
  updated to use new names.

  + ``--api`` is a new alias for ``--input``
  + ``--ebcdic`` is a new alias for ``--ecb``
  + ``--ucs2`` is a new alias for ``--wide-chars``
  + ``--utf32`` is a new alias for ``--unicode``
  + ``--utf16`` is a new alias for ``--utf-16``
  + ``--utf8`` is a new alias for ``--utf-8``
  + ``--header`` is a new alias for ``--type-header``

- Renamed configurations to use common naming scheme and support proper scoping
  under subcategories such as ``:define``, ``:label``, ``:variable``, etc. The
  old names are supported as aliases, so the change does not break existing
  code. Documentation has been updated to use new names.

  + ``re2c:api`` is a new alias for ``re2c:flags:input``
  + ``re2c:bit-vectors`` is a new alias for ``re2c:flags:bit-vectors``
  + ``re2c:case-insensitive`` is a new alias for ``re2c:flags:case-insensitive``
  + ``re2c:case-inverted`` is a new alias for ``re2c:flags:case-inverted``
  + ``re2c:case-ranges`` is a new alias for ``re2c:flags:case-ranges``
  + ``re2c:cond:prefix`` is a new alias for ``re2c:condprefix``
  + ``re2c:cond:enumprefix`` is a new alias for ``re2c:condenumprefix``
  + ``re2c:computed-gotos`` is a new alias for ``re2c:flags:computed-gotos``
  + ``re2c:computed-gotos:threshold`` is a new alias for ``re2c:cgoto:threshold``
  + ``re2c:debug-output`` is a new alias for ``re2c:flags:debug-output``
  + ``re2c:encoding:ebcdic`` is a new alias for ``re2c:flags:ecb``
  + ``re2c:encoding:utf32`` is a new alias for ``re2c:flags:unicode``
  + ``re2c:encoding:ucs2`` is a new alias for ``re2c:flags:wide-chars``
  + ``re2c:encoding:utf16`` is a new alias for ``re2c:flags:utf-16``
  + ``re2c:encoding:utf8`` is a new alias for ``re2c:flags:utf-8``
  + ``re2c:encoding-policy`` is a new alias for ``re2c:flags:encoding-policy``
  + ``re2c:empty-class`` is a new alias for ``re2c:flags:empty-class``
  + ``re2c:header`` is a new alias for ``re2c:flags:type-header``
  + ``re2c:label:prefix`` is a new alias for ``re2c:labelprefix``
  + ``re2c:label:yyfill`` is a new alias for ``re2c:label:yyFillLabel``
  + ``re2c:label:start`` is a new alias for ``re2c:startlabel``
  + ``re2c:nested-ifs`` is a new alias for ``re2c:flags:nested-ifs``
  + ``re2c:posix-captures`` is a new alias for ``re2c:flags:posix-captures``
  + ``re2c:tags`` is a new alias for ``re2c:flags:tags``
  + ``re2c:variable:yych:conversion`` is a new alias for ``re2c:yych:conversion``
  + ``re2c:variable:yych:emit`` is a new alias for ``re2c:yych:emit``
  + ``re2c:variable:yybm:hex`` is a new alias for ``re2c:yybm:hex``
  + ``re2c:unsafe`` is a new alias for ``re2c:flags:unsafe``

- Added directive alias ``conditions:re2c`` for ``types:re2c``.

- Multiple small changes in code generation, including some formatting changes
  that result in large diffs in the generated code:

  + Do not allocate indices for unused state labels (this results in a change in
    state enumeration), commits
    `919570c4 <https://github.com/skvadrik/re2c/commit/919570c4>`_ and
    `82b704f6 <https://github.com/skvadrik/re2c/commit/82b704f6>`_.
  + Do not generate redundant ``YYPEEK`` statements, commit
    `cca31d22 <https://github.com/skvadrik/re2c/commit/cca31d22>`_.
  + Do not generate ``YYDEBUG`` statements for unused states labels, commit
    `a46f01e6 <https://github.com/skvadrik/re2c/commit/a46f01e6>`_.
  + C backend: change formatting of switch statements, commit
    `ed88e12e <https://github.com/skvadrik/re2c/commit/ed88e12e>`_.
  + Go backend: render continuous character ranges in compact form, commit
    `09161b14 <https://github.com/skvadrik/re2c/commit/09161b14>`_.
  + Mark start and end of included .re files with line directives, commit
    `48e83fca <https://github.com/skvadrik/re2c/commit/48e83fca>`_.

- A fix to limit maximum allowed NFA and DFA size (to avoid out of memory
  crashes and stack overflows), commit
  `a3473fd7 <https://github.com/skvadrik/re2c/commit/a3473fd7>`_.

- A fix to correctly compute fixed tags in trailing context, commit
  `68e1ab71 <https://github.com/skvadrik/re2c/commit/68e1ab71>`_.

- A fix to generate non-overlapping names for s-tag and m-tag variables, commit
  `7c6b5c95 <https://github.com/skvadrik/re2c/commit/7c6b5c95>`_.

- Infrastructural: added support for CMake presets.

- Updated documentation.

- Backwards-incompatible changes that are unlikely to affect any users:

  + Restrict lexical contexts where ``%{`` is recognized as a block start,
    commit `dba7d055 <https://github.com/skvadrik/re2c/commit/dba7d055>`_.
  + Emit an error when repetition lower bound exceeds upper bound, commit
    `039c1894 <https://github.com/skvadrik/re2c/commit/039c1894>`_.
   2021-10-26 12:20:11 by Nia Alarie | Files touched by this commit (3016)
Log message:
archivers: Replace RMD160 checksums with BLAKE2s checksums

All checksums have been double-checked against existing RMD160 and
SHA512 hashes

Could not be committed due to merge conflict:
devel/py-traitlets/distinfo

The following distfiles were unfetchable (note: some may be only fetched
conditionally):

./devel/pvs/distinfo pvs-3.2-solaris.tgz
./devel/eclipse/distinfo eclipse-sourceBuild-srcIncluded-3.0.1.zip