I've added a new Tools catagory; this covers things like swig & g-wrap. Note: I can't get through to the linuxbox.com sites (sucks, because I'd like to check those two out)... any alternate sites for those (or ip addresses)? The classification isn't great (or well named... addon? What the hell's an addon?), and it looks really ugly right now, but this is simply for info only. An actual entry on the web page will look much nicer than this. So yes, I know it's cluttered, sort of weird looking, offensive to those with delicate sensibilities, and dangerous for really old folk, but that'll get better. Also, I haven't taken many editing liberties (partly because I'm busy messing with all the cool stuff this unearthed :), so it's starting to get a bit long. Known guile projects: *Addons: guile-gtk: Location: http://www.ping.de/sites/zagadka/guile-gtk/ Description: interface to gtk from guile Status: recently been updated to work with gtk+ v1.[23] Author: Marius Vollmer sybguile: Location: http://idt.net/~mcmanus/ Description: bindings for Sysbase's dblib Author: Russ McManus guile-pg: Location: http://www.damtp.cam.ac.uk/user/ig206/guile-pg Description: interface to PostgreSQL from guile Author: Ian Grant guile-hobbit: Location: ftp://ftp.red-bean.com/pub/guile/contrib Description: a scheme->c compiler for guile Author: Bernard Urban Sart: Location: http://helga.zesoi.fer.hr/~silovic/sart/ Description: a guile library for raytracing and high-complexity 3d modelling Author: Miroslav Silovic Text buffers: Location: http://home.thezone.net/~gharvey/guile Description: supposed to be an implementation of text buffers for guile, the current release is far too buggy to be used. Author: Greg Harvey (with a bag over my head). Status: as I said, it isn't in a particularly nice state; given that GOOPS looks to be getting close, I'm probably not going to spend much more time on the current implementation, since it's quite limited in it's uses. Basically, I'm going to fix up the current bugs, and soon release a version that includes searching capabilities, then wait for GOOPS, so I can implement buffers that can be used for arbitrary content and purposes (like displayed editor buffers). Guile generic database package: any work going on here? (maybe this should be core?). xscheme: Location: (old version is at ftp://ftp.red-bean.com/pub/guile/contrib), new version is under development. Description: (mo)lesstif and Xaw widget bindings based on xscm. New version is thread friendly (for guile's built in qthreads), and has bindings for some neat widgets like SciPlot and XmHTML. Author: J. Satchell Status: Chris Bitmead offered to take this over, but has since lost interest; I am not sure if he is working on this anymore *Applications: scwm: Location: http://huis-clos.mit.edu/scwm/ Description: an X11 window manager, configurable and extensible via guile Authors: Maciej Stachowiak, Greg Badros galway html editor: Location: http://erin.linuxbox.com/galway Descriptions: an html editor based on guile-gtk Author: Ariel Rios Sula Primerix: Location: http://members.xoom.com/sprimerix Description: An irc client, extensible via guile Author: Tano Fotang Scirc: Location: http://webserver.de/forcer/scirc.html Description: An irc client, written in guile Author: forcer . Status: forcer says "After a somewhat long time of doing nothing (lazy me), i got back, looked at the source, got sick and rewrote it :] ScIRC was initiated by me to have some bigger project to train my Scheme on... But i like it alot, so i guess i'll continue it. ScIRC 0.50's framework is done, i mostly need to write the glue... One big part not done yet is the user interface. " greg: Location: http://www.gnu.org/software/greg Description: A testing framework built around guile (editor note: what's even more of a coincidence is that this was a sort of wishlist thing for me... too cool; I'm working on testcases for the text buffers based on this) Author: Richard Frith-Macdonald Gush: Location: http://www.gnu.org/software/gush/gush.html Description: a shell built around guile (is this an appropriate description?) Author: Gordon Matzigkeit Goose: Location: (no homepage yet) Description: C++ statistical library with Guile bindings, will build on GSL. Author: Jon Trowbridge Guppi: Location: http://www.gnome.org/guppi/ Description: Interactive/user-friendly plot/chart program with Guile scripting. Will probably have a command line version, possibly written in Guile. Builds on Goose and Goose bindings are available within the app. Author: Havoc Pennington Feast: Location: http://feast.linuxbox.com Description: an extensible toolkit for area-based simulation games, like city-administration simulators or empire-building strategy games, like Lincity (http://www.floot.demon.co.uk/lincity.html) or FreeCiv (www.freeciv.org). Author: Lalo Martins Status: appears to be in the early stages of development. Tcl->Scheme: Location: http://www.cs.earlham.edu/~bickiia/tcl-scheme/ Description: Translator from Tcl to Guile/Scheme. Author: Ian Bicking Status: Development in progress, but capable of doing quite a bit already (not quite sure of where to go with it next). Logo->Scheme: Location: http://www.cs.earlham.edu/~bickiia/logo-scheme Description: A translator from Logo to Guile/Scheme. Author: Ian Bicking . Status: set aside while I work on Tcl->Scheme. It is in the middle of a rewrite as I try to save some of the Logo-ness of the resulting language and make it self-hosting (i.e., a Logo translator written in Logo). Emacs/guile: Location: none yet Description: work towards emacs with guile Author: Ken Raeburn Status: Here's what Ken has to say (a bit long, but I'm currently trying to get I've been hacking on Emacs. Currently I have an Emacs using Scheme objects for cons cells and numbers, and the Guile allocator and garbage collector; Scheme strings are in the works. Currently Emacs strings (with text properties) and symbols and "vectorlike" and "misc" objects and so on are all smobs. The Emacs Lisp engine is still used; no Scheme code is run, and even if it were, there's no handle on the Emacs Lisp objects that would be accessible from Scheme. (edit note: on the page, the rest of the mail would go here, but I'm trying to keep this list fairly small... not to worry, I have saved the mail :) Gil: Location: http://www.cc.gatech.edu/GiL/ (not yet released) Description: an environment for prototyping new compiler technologies, based on gcc & guile. Author: Maurizio Vitale (http://www.cc.gatech.edu/home/mav/index.html) Thud: Location: http://www.glug.org/projects/thud Description: THUD is a register transfer level (RTL) simulation environment optimized for cycle-based designs. The design is expressed in TH, a Scheme-based hardware description language (HDL). Author: Thien-Thi Nguyen Siag office: Location: http://www.edu.stockholm.se/~ulric/siag/ Description: a collection of ``office utilities'', including Siag (Scheme in a Grid), a spreadsheet; PW (Pathetic Writer), a word processor; and Egon Animator, an animation development tool. Author: Ulric Eriksson screen2jsim: Location: none yet. Description: simulation/ development environment for single flux quantum circuits. Implemented in xguile, with many features written entirely in scheme. Author: J. Satchell (satchell@dera.gov.uk). Status: This is (at present anyway) a purely in house project, and as such such may not qualify. If you are going to add a page of guile applications it would help bulk things out (editors note: currently, I could probably live with a little less bulking ;). *Tools: SWIG: Location: http://www.swig.org Description: SWIG is the Simplified Wrapper and Interface Generator, which makes it fairly easy and painless to generate a scripting language interface or wrapper to a program written in C, C++, or Objective C. Guile is among the scripting languages supported. Author: Dave Beazley *Core Projects: A new port buffering implementation: Location: http://easyweb.easynet.co.uk/ghouston/ Description: implements buffering for all ports via the ptobs interface Author: Gary Houston Status: Here's what Gary has to say: The result is that the buffer becomes part of the interface to a port: code that wants to do I/O can use the buffer directly (as I've rewritten getc/read-line etc., to do, but there's probably other code that would benefit from the possibility.) The ptob interface is changed so that an implementation of a particular kind of port must setup and maintain the buffer. It will receive requests to fill/flush the buffer instead of getc/gets etc. The string-port ptob supplies its own string as the buffer. Object system: Location: (none yet) Authors: Mikael Djurfeldt and Christian Lynbech Status: Here's what Mikael has to say: It is called GOOPS (Guile Object Oriented Programming System) and is basically a port of STKlos + modifications in the tiny-clos direction. For those who aren't familiar with STKlos and tiny-clos, GOOPS is an OOP system based upon generic functions with multi-method dispatch and multiple inheritance. It is up and running now but release won't happen until four things are finished: 1. Modifications in the tiny-clos direction. STKlos is trying to be close to Common LISP's CLOS, which, among other things, means that a class or a generic function is basically represented by it's name. As in tiny-clos, GOOPS is instead centered around objects. (Compare with the representation of functions: In LISP you pass the name (a symbol) of a function to a higer-order function. In Scheme you pass a procedure object.) (It should be noted that these differences aren't visible on the "surface". Goops is still compatible with many STKlos programs.) 2. Automatic generation of smob classes. 3. Goops is dependent on some code which needs to be added to guile-core. This code currently lives on a CVS branch. This branch needs to be merged into the trunk. (It would be good if this happened before release 1.3.2.) 4. Documentation (editor note: I'm officially drooling ;) Module system: anyone even thinking about working on this sometime in the near future? Discussion has been intended for months, but so far, nada. Bytecode compiler: status? Posix threads: Location: ftp://akebono.etl.go.jp/project/guile-pthread-19980622.diff Description: this is an initial patch to introduce posix threads to guile. Author: Niibe Yutaka Status: Niibe says (apologies if I'm screwing up naming conventions here): After the first implementation, I've found that we have to define the behavior of signal handler with threads, and did a little survey for signal handling in scripting languages (please check Guile mailing list archive). Project would go with following steps: (1) Define signal handling with threads, changing the semantics. (2) Change Guile according to the design of (1), which may remove all DEFER_INTS. (3) Introduce POSIX Threads Support. It will open some critical regions unprotected, and/or result dead locks. (4) Protect critical regions unprotected, resolve dead locks. Step #3 is not so hard, but step #2 results many changes in the code base of Guile, and it also change the way how to write code for guile. Before introducing such major change, we should have consensus somewhat. I'll write for proposed change of singal handling in Guile and why it is required. Umm... Around end of March, perhaps. (editor note: can't say I'd miss SCM_DEFER_INTS) Documentation: I'm trying to get something going here; what about the state of the official manual? Garbage collector: Location: http://home.thezone.net/~gharvey/guile Description: working towards a generational gc for guile. Author: Greg Harvey Status: It's currently a little bit iffy for a few reasons: 1) I keep taking on other things (this, for example). 2) My guile tree is growing very unwieldy (in terms of generating patches against the main source). I'm hoping that the currently available non-generational changes can make it into the core, so that there's a fairly solid base to work from. The most up-to-date version of the modified gc is available in thing (http://home.thezone.net/~gharvey/guile/thing-0.04.tar.bz2), which is a somewhat heavily modified version of guile. Contributors: Havoc Pennington: submitted Goose & Guppi Lalo Martins: corrected the placement of Feast Forcer: status for ScIRC & email addy Ian Bicking: submitted Tcl->Scheme & Logo->Scheme Gary Houston: provided the info on the work he's done with the port buffers, and the link. Mikael Djurfeldt: info on GOOPS. Niibe Yutaka: info on the work with posix threads. Julian Satchell: info on xguile and screen2jsim