GNU Guile 2.1.1 released
lists.gnu.org
lists.gnu.org
Complete Emacs-compatible Elisp implementation
Thanks to the work of BT Templeton, Guile's Elisp implementation is now fully Emacs-compatible, implementing all of Elisp's features and quirks in the same way as the editor we know and love.
So where's my guile-based emacs build? Not holding my breath, but it certainly would be a very nice christmas present (not sure about the year though)!
(yeah, I know emacs is a lot more than just it's elisp implementation...)
Honestly I love emacs but it is not the most performant thing on the planet. Redrawing taking tons of time bugs that have existed for years, non blocking i/o to things like processes doesn't really exist etc...
It could do for a lot of spit and polish in the concurrency/threading land.
It's still in an early stage, but it works. That emacswiki post points you in the right direction, but if you use the Guix package manager, you can give it a try: "guix package -i guile-emacs"
Mostly at this point it needs people working on it and playing around with it. Considering you're fairly excited about it, maybe you should give it a spin? :)
The website could feature a few more projects.
I've embedded Guile into some of my own projects, and it's a great and fun way to bring a bit of life in "dead" compiled code. Many more projects would benefit from this.
2016 will be the year of Guile on GNU/Hurd.
BTW, what's this 2.1.1 vs 2.2 thing? I see they are used interchangeably.
Gnome does this as well - 3.17.x was beta, 3.18.x stable.
Linux was one of the first projects to use this pattern, but hasn't since early 2.6.x.
The 'website' is really just Jeff Siskind's page with a listing of what he's done.
It seems mostly dead nowadays and there's very little info to find on it. The following page is pretty much the most amount of actual information I could find:
As for using Stalin, I would argue that nowadays it is better to use the CHICKEN port of Stalin [1], as it is a bit more up-to-date and provides some extensions (such as using '\n' in string literals, something Stalin didn't provide from the outset!!!). In any case, it's nice to see the variety in Scheme implementations, but in the case of Stalin I personally turn my nose up, as CHICKEN is often fast enough on it's own (or can be made to be), without restricting myself to a very tiny set of tools and libraries. That's not to say the work on Stalin hasn't been appreciated, I'm sure Gambit and CHICKEN have taken their fair share of ideas from Stalin as time has gone on.
The VM written in C that runs the bytecode actually relatively small... most of Guile, including the interpreter and the compilers, are written in Guile itself and run on top of the VM. Those components are compiled object files... they use the ELF format but are not actually executables. IIRC code is loaded by memory mapping the files and Guile has its own way of linking them. I supposed that embedding these files into an executable would require a different mechanism of linking which I am not sure exists. Maybe it does, I just haven't dug that far down into it. The compiler and interpreter take forever to compile BTW... it is definitely preferable to just get Guile from your distro if you can.
> (use-modules (srfi srfi-19))
Couldn't they have picked a better name for these modules? seems like it would be quite obnoxious to remember all these by their number instead of a nice name.
SRFIs (Scheme Requests for Implementation) are something like RFC's for the Scheme language.
They are proposed features that are not standardized in the Scheme Report. Their numbers identify the proposal.
So if we see srfi-19 being referenced in Guile code, it is cryptic, but it references the proposal which gives the requirements for that feature.
If you're porting code from Guile which depends on srfi-19 to another Scheme, the consistency of the reference will make it easy.
They may want to alias these to memorable names, like 'sfri-time', for this one. There are probably drawbacks to using such a scheme, though, like possible ambiguities if two SFRIs cover the same topic differently.
On the subject of SRFIs, which ones do you fellow Schemers use? I think the ones I use most often are SRFI-1, SRFI-9, SRFI-11, SRFI-26, SRFI-37, and SRFI-41.
...sounds like a good candidate for an SRFI...