From: Matt Wette <matt.wette@gmail.com>
To: guile-user@gnu.org
Subject: [ANN] Nyacc version 0.83.0 released
Date: Sun, 21 Jan 2018 10:19:11 -0800 [thread overview]
Message-ID: <c275dcbc-18bf-16bd-54d1-da9d1031719b@gmail.com> (raw)
Nyacc version 0.83.0 has been released. Nyacc is a set of Guile
modules for generating parsers,
parsing C code, and converting C headers to Guile Scheme.
Version 0.83.0 includes the following changes over version 0.82.4:
1) changes to nyacc/lex.scm to read octal constants
2) change in C99 parser to allow lone `;' in structs and unions
3) fixed but in C99 parser which was truncating long CPP defines
4) change in C99 parser to make get-gcc-inc-dirs more accurate
5) updated C99 pretty printer to handle initializer lists
6) many changes to the ffi-helper
Some FFI Helper changes:
1) many code updates, api changes, etc
2) updates to the documentation (see examples/nyacc/lang/c99/ffi-help.texi)
3) added procedure "load-include-file", which is feature Ludo asked for:
guile> (load-include-file "cairo.h" #:pkg-config "cairo")
This will load FFIs for all C declarations in cairo.h into the
current module.
Not flushed out.
4) added procedure "fh-cnvt-cdecl" for playing around with the FH.
guile> (use-modules (nyacc lang c99 ffi-help))
guile> (use-modules (bytestructures guile))
guile> (use-modules (system ffi-help-rt))
guile> (use-modules ((system foreign) #:prefix ffi:))
guile> (define fh-llibs '())
guile> (define fexp (fh-cnvt-cdecl "fmod" "double fmod(double
x,double y);")
guile> ,pp exp
$1 = (begin
(define ~fmod
(delay (fh-link-proc
ffi:double
"fmod"
(list ffi:double ffi:double)
fh-llibs)))
(define (fmod x y)
(let ((~x (unwrap~float x)) (~y (unwrap~float y)))
((force ~fmod) ~x ~y)))
(export fmod))
guile> (eval exp (current-module))
guile> (fmod 2.3 0.5)
$2 = 0.2999999999999998
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.
NYACC maturity is beta level.
NYACC is free software; the full source distribution is available through
* the tarball repository:
https://download.savannah.gnu.org/releases/nyacc/
* the git repository:
git://git.savannah.nongnu.org/nyacc.git
home page, project page and user's guide:
* http://www.nongnu.org/nyacc
* https://savannah.nongnu.org/projects/nyacc
* http://www.nongnu.org/nyacc/nyacc-ug.html
For support see:
https://savannah.nongnu.org/support/?group=nyacc
mwette$
next reply other threads:[~2018-01-21 18:19 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-21 18:19 Matt Wette [this message]
2018-04-06 12:38 ` [ANN] Nyacc version 0.83.0 released Jan Nieuwenhuizen
2018-04-07 0:16 ` Matt Wette
2018-04-07 0:20 ` Matt Wette
2018-04-07 12:21 ` Jan Nieuwenhuizen
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=c275dcbc-18bf-16bd-54d1-da9d1031719b@gmail.com \
--to=matt.wette@gmail.com \
--cc=guile-user@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).