<lloda2>I've sent a patch/hack to guile-devel re: truncating the exception output <lloda2>I couldn't think of a cleaner way to do it... <hiphish>Hello schemers. I have a (hopefully) quick question about embedding Guile. I was considering it as the scripting language for a game engine and I have been looking around what already exists. <hiphish>The ones I have seen (GNUMaku, Chickadee) are all mostly pure Scheme and just load a shared object written in C for some parts. <hiphish>Is that The Right Way or just the author's preference? <hiphish>The Guile manual when talking about embedding Scheme in a C application always starts a Scheme REPL, which isn't what I want. <davexunit>hiphish: this the "embedding vs. extending" debate. guile allows embedding, but recommends extending instead. <hiphish>What I was thinking about was more akin to a C program that looks for a Scheme bunch of Scheme modules distributed along the binary. If it doesn't find anything it terminates, and if it does find like a "pong.scm" file it loads that and runs the game logic form there. <davexunit>you can certainly embed guile into a c program <hiphish>I would also like to have modding support so players can drop some scripts in a particular directory and the engine picks up those scripts as well. <davexunit>chickadee is a guile library, so that is extending, not embedding. ***hiphish is now known as HiPhish
<HiPhish>I have taken a look at gnumaku, but there is no <davexunit>I have no idea if gnumaku would even still build with the latest guile. I abandoned it years ago. it was my first foray into guile. <HiPhish>'int main()'. It looks like you just compile the C source to a shared objects which are loaded by Guile. Am I mistaken? <davexunit>there's a main C program that provides the "engine", and it makes calls to the guile part of the program <HiPhish>davexunit: Is the gnumaku repository on GitHub outdated? Because I typed "main" into the search box and it only shows the name main in two Guile files. <davexunit>HiPhish: I haven't looked at the source in so long. it's the latest, though. <HiPhish>davexunit: I think I got it, you last commit deleted the 'main <HiPhish>Yeah, there is no main function there in the last commit anymore. But thanks, I'll try to see if I can learn anything from older commits, I was just looking for a point to start. <HiPhish>BTW, is there any particular reason you went from embedding to extending? <lloda`>does anyone know why the Guile source files are randomly sprinkled with ^L (form feed?) characters? <davexunit>they're to separate logical sections of source files <davexunit>so you can easily jump between "pages" in emacs <lloda`>is there a special command for that? <daviid>ot: any one knows what and where is the css file used with/for texinfo -> html 'gnu doc' online, so I could grab it and use it locally ? <janneke>but it feels terribly clumsy, and wrong [%load-compiled-path] <rekado>janneke: I set the geiser load path with “(setq geiser-guile-load-path '("~/dev/guix-wip"))” <paroneayea>hoo! the "game level" (just content, not the engine) I'll be showing off at FOSDEM is probably way bigger than necessary... <nks>Dear GNU Team, My name is Nikhil Soni, I am a senior year student at IIT Roorkee, India. I want to contribute to GNU Project and participate in GSoC this year. I am particularly very interested in a project idea mentioned in GNU Guix idea page i.e. "Write a Bourne-shell compiler front-end for Guile". I have woked with C/C++, Bash scripting, web applications on Ruby and PHP. Can anyone please point me in the right direction on where to start with this project idea <nks>and how could I know more about it. <nks>Any guidance would be very much appreciated. <rekado>nks: nice! This project is very dear to me, too. <janneke>i work on guile, on mes, on projects for clients, try-out websockets, 8sync <janneke>i thought about writing something in elisp to set/switch guile-load-[compiled]paths...but then wrote this <rekado>nks: you may want to play around with Guile first because the implementation would be in Guile. <janneke>i think it would be nice if guile projects would come with a built-in ready to use geiser solution instead of each of us brewing their own? <rekado>janneke: ah, this makes sense. Yeah, that would be nice. <janneke>(and for me, i was frustrated for quite some time that I couldn't get geiser to work) <janneke>turned out that there was a time it didn't work with guile-2.1...and i thought *everyone* used that...i just feel a bit disconnected sometimes ;-) <OrangeShark>I just use this one command in geiser to set the load path <janneke>rekado: yes...so i "invested" some time to find a sort of nice solution for one project...now to see if it makes sense to share this, or improve on it, change it entirely <nks>Thank you rekado for suggestion, I will explore the Guile. <nks>Can you please tell me more about this project as it doesn't have much info on wiki page and who might be the mentor for this project? <nks>Or point me to where I can get more info on this? <rekado>nks: as far as I understand the goal is to be able to implement many features of a Bourne shell in Guile, so that one can run a configure shell script with just Guile. <rekado>nks: currently GNU Guix provides a “bournish” language <rekado>nks: to improve it one would probably use “(ice-9 peg)” to write a grammar for shell syntax <rekado>(looks like it’s only available in the development version of Guile, not in the latest stable release.) <rekado>nks: have you previously worked with grammars and parsers? <nks>rekado: no but I am reading about it and want to learn Guix better <dsmith-work>Woah! Using bash syntax as a guile language frontend? Wow. <rekado>nks: you should also take a look at the file guix/build/bournish.scm in the Guix source tree. <rekado>nks: it’s the current implementation, which cannot easily be extended to cover more syntax. <rekado>instead of using “string-tokenize” to split a line into words you’d use a grammar to split the string into tokens <rekado>the tokens can be tagged so that you can distinguish if something is a built-in command, an argument, a pipe, a redirection, etc. <rekado>the grammar would need to be tested well to ensure that position-dependent characters really are parsed with the expected meaning. <nks>rekado: I think this gives me some idea about the project, I will try to understand the current bournish.scm implementation and explore the grammer. <nks>rekado: if there is anything else, you think I should familiarize myself with?