Hi All,

For those unfamiliar with nyacc, the nominal release message appears below.

This release of nyacc is significant in that I have performed a major update of the C99 preprocessor.  It is fully token based now.   There is a risk that I missed
something.  Please report any issues.

Also, I'm targeting for V4 to separate the cdata code.  To that end, I've created
a repo for cdata now.  It's at https://github.com/mwette/guile-cdata.


NYACC, for Not Yet Another Compiler Compiler, is set of guile modules for
generating parsers and lexical analyzers.  It also provides sample parsers
and pretty-printers using SXML trees as an intermediate representation.

It provides a decent C parser and a `FFI Helper' tool to help create
Guile Scheme bindings for C-based libraries.

It provides (partially implemented) compilers based on above mentioned
parsers to allow execution with Guile as extension languages.

Updates since V3.02.1:
* Reworked C99 preprocessor to be token-based. Tests show
  the C parser is running more than 15% faster on my x86_64 laptop.
  + For guild compoile-ffi ffi/gtk2.ffi, 3.03 is 15% faster than 3.02:
    3.02.0: 9m20s
    3.03.0: 7m56s
  Please report any issues.
* For C, define __has_include and __has_include_next in util.scm.
* Updated arch-info to add `-linux' to most arch names.
  In the future use `(with-arch "x86_64-linux"' to be more specific.
* removed c99/mach.d/*; c99 now uses module mach.scm directly
  + no intermediate files in mach.d/*, but more dependencies for parser
* for mes, added hooks for simple-match
* fixed bad (int8_t) arch-info for aarch64 and riscv64
* removed pdf files from distribution
* added guix.scm and etc/nyacc-guix.scm
* added `--external-cdata` option to compile-ffi; planning separation
  of (nyacc foreign cdata) to a separate package (foreign cdata);
  + see https://github.com/mwette/guile-cdata
  + for nyacc V4.0 release we will remove
      nyacc/foreign/{arch-info,cdata}.scm
* removed NYACC version number from documents

NYACC maturity is production/stable level.

NYACC is free software; the full source distribution is available through

* the tarball repository:
    https://github.com/mwette/nyacc/releases
  pre 3.00:
    https://download.savannah.gnu.org/releases/nyacc

* the git repository:
    git://github.com:mwette/nyacc.git
  pre 3.00:
    git://git.savannah.nongnu.org/nyacc.git

home page, project page and user's guides:
  https://github.com/mwette/nyacc/wiki

Report bugs:
  https://github.com/mwette/nyacc/issues

Copyright (C) 2017-2025 Matthew Wette

Copying and distribution of this file, with or without modification,
are permitted in any medium without royalty provided the copyright
notice and this notice are preserved.  This file is offered as-is,
without any warranty.



Reply via email to