Re: [ANN] Nyacc version 0.83.0 released

2018-04-07 Thread Jan Nieuwenhuizen
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

2018-04-07 Thread Samuel Barreto
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

2018-04-07 Thread Mike Gran
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