Skip to content

Releases: kingletbv/carburetta

Carburetta v0.8.28

11 Jan 14:02

Choose a tag to compare

  • #line is emitted by default, substantially improving the usability of carburetta (compilers will now jump to the .cbrt location and not the generated code, whenever there is a compilation error.)
  • You can generate an internal "symbol_names_" name table for all the symbol ordinals.
  • Will now read from stdin if '-' is specified for the input grammar filename.

Carburetta v0.8.26

14 Apr 08:53

Choose a tag to compare

  • %visit and %visit_params directives, allowing users to visit all symbol (tokens and non-terminals) currently inside a stack, executing a custom snippet of code depending on the type.

Carburetta v0.8.24

10 Feb 12:40

Choose a tag to compare

  • Fixed a bug where the generated parser would not correctly handle
    %type with no %constructor, %destructor or %move (so a plain %type
    with no initialization, destruction, nor any special data moving
    operation).
    This would cause the parser not to correctly move the data when
    resizing buffers. This did not impact %class which defines these
    operations implicitly.

  • Disabled the address sanitizer (ASAN) on MSVC for the x86 debug
    build, it trips a bug that appears to be unrelated to Carburetta
    itself. ASAN is still enabled for the x64 build.

  • Added the "kc" C99 compiler front-end and interpreter as an example.
    Currently only builds on the MSVC build for x64 because the interpeter
    uses x64 assembly to build a trampoline for function pointers, which
    is both platform and machine specific (hence MSVC x64). The build
    currently only builds a library and not yet a test program, and so is
    a work in progress.

Carburetta v0.8.22

31 Dec 11:29

Choose a tag to compare

  • Fixes and a substantial ease-of-life change on %move; if you are on C (%type) and were having issues with needing
    %move to explicitly null out the source, this will help immensely.
  • %on_scan_token snippet, $set_token(token-id) special function.
  • For a more complete OpenGL ES 2.0 GLSL implementation example: https://github.com/kingletbv/aex-gl
  • Substantial updates to the Tilly machine code instruction tile matcher. Still work in progress.

Carburetta v0.8.20

14 Sep 11:36

Choose a tag to compare

  • C++ generated code should rely on <utility> for std::move and not assume <type_traits> pulls it in (crit fix; gcc recent versions won't complete
    the build otherwise.)

Carburetta v0.8.18

13 Sep 07:48

Choose a tag to compare

  • UTF-8 is now the default encoding breaking change
    Use --x-raw to specify the old raw behavior.
  • Plain %type with no %constructor, %destructor or %move
    now fixed.
  • Fix for %% .. %% code snippets inside { ... }
  • New Tilly example (work in progress)

Carburetta v0.8.16

14 Jul 10:16

Choose a tag to compare

  • %header% section directive
  • %externc and %no_externc directives
  • New default behavior on when to generate extern "C" in the header
  • Critical fixes
  • Test case t4 improved

See CHANGES.txt for details, or examine the manual at https://carburetta.com/manual.html

Carburetta v0.8.14

21 Jun 11:04

Choose a tag to compare

  • %common_class directive

  • <prefix>token_common_data() function

  • important fixes, in particular if you were using %common_type with %move before.

  • test cases t12, t13, t14, t15

See CHANGES.txt for details, or examine the manual at https://carburetta.com/manual.html

Carburetta v0.8.12

02 Jun 12:31

Choose a tag to compare

  • %class directive (C++ specific)

  • %move directive

  • t9/t10/t11 test cases

  • fixed unwanted whitespace injection in generated code

Please see CHANGES.txt for details, or examine the manual at https://carburetta.com/manual.html

Carburetta v0.8.10

04 May 16:25

Choose a tag to compare

  • bring C++ back up from regressions - please be careful to read
    about the limitations in the manual.

  • add t8 C++ simple calculator test case

  • added GNU style --version and --help flags

  • clear warnings across MSVC, GCC and Clang on C and C++.

  • various important fixes.