Re: [ANN] Nyacc version 0.83.0 released
Matt Wette writes: > I think it will take me a while to make a release. That's fine. Although all my tests pass, I found that to compile mes.c I need string-fold-right. So I added that to Mes. After that, tcc.c hangs while parsing. Will have to investigate later, for now I'm reverting to 0.80.42. >> I added some tracing >> to stderr. Possibly you have a better way to do this, esp. the >> NYACC_TRACE environment variable kludge... > > There is a #:debug option to the parser that provide a trace through > the parsing. Yes, I'm using that; great. > And if you look in examples/nyacc/lang/c99/Tmach.scm there is code to > show how > to generate a file with parser states. OK. The NYACC_TRACE=1 feature is meant for users. Parsing tcc with Mes+MesCC currently takes ~1h (with Guile+MesCC only 40s), so printing some minimal feedback to the user (e.g., al functions and global variables) is helpful. I'll try to change my patch to use something like #:trace '(function global) similar to #debug. Greetings, janneke -- Jan Nieuwenhuizen | GNU LilyPond http://lilypond.org Freelance IT http://JoyofSource.com | AvatarĀ® http://AvatarAcademy.com
snarfing docstrings in c extensions
Hi everyone, I'm trying to write a GSL wrapper in guile. I have written a lot of simple functions using SCM_DEFINE and documented them using the last SCM_DEFINE macro argument. Now I'd like to make those docstrings accessible from Scheme code. The way I do it for now is with this makefile instructions: %.doc: %.c /wherevere/guile/source/code/is/libguile/guile-snarf-docs -o $@ $< \ -- $(CFLAGS) %.texi: %.doc cat $< | guild snarf-check-and-output-texi > $@ And then call makeinfo on it. (I had to change some hardcoded path in the guile-snarf-docs scripts so that it worked from another directory btw.) So I do am able to generate the info files that I want. My two problems are: 1. how to use guile-snarf-docs portably ? (I have hardcoded them in my Makefile for now.) 2. how to "link" them with functions defined in the extensions ? (I have tried to (set! documentation-files "PATH/TO/doc.txt") but I think I miss a step so that (procedure-documentation my-gsl-function) returns the docstring I want) And from a broader perspective, is it the way it is supposed to work ? I mean, am I doing it the right way or are other "guile-extension-writers" doing it otherwise ? Thank you for your help, samuel
[ANN] Burro, a game engine
I'd like to introduce a project I've been working on, called Burro Engine. This is an experiment where I tried to write an interactive fiction game engine rather like the popular Twine game engine, except using GTK3 instead of the browser as the rendering engine. Burro Engine is written in a mixture of C and Scheme, and it uses an embedded Guile interpreter: the game scripts are written in a subset of Scheme. This subset consists of the procedures in (ice-9 sandbox) plus a handful of procedures provided by Burro itself. The use of 'ice-9 sandbox' is to provide some security from maliciously written game scripts. It builds and runs, but it is early. See the TODO.org for information on what needs to be done. There are no docs yet, but, the game script in "games/demo.burro" https://raw.githubusercontent.com/spk121/burro/master/game/demo.burro If you've spent enough time staring at Scheme, and SXML, then the game script should be 'self-documenting', lol. I don't really like how the game scripts turned out. They are still too complicated and intimidating looking. I need to figure out how to make them much simpler. There is a gameplay video of me playing the demo at https://raw.githubusercontent.com/spk121/burro/master/game/screencast01.webm You can browse the repo at https://github.com/spk121/burro You can clone the repo with git https://github.com/spk121/burro.git You can download the repo at https://github.com/spk121/burro/archive/master.zip There is no proper release yet. The proper release will occur when I've completed the associated game. The game is called "Visiting Day", an interactive fiction about the experience of visiting one's child in jail. -- This program was built with many dependencies gtk+-3.0, version 3.22 gio-2.0, version 2.54 glib-2.0, version 2.54 cairo, version 1.15.10 pango, version 1.40.13 pangocairo libpulse, which is part of pulseaudio 11.1 libpluse-mainloop-glib, but this is probably going away vorbisfile, version 1.3.5 guile-2.2 Thanks, Mike Gran