6 ms·
GNU Guile 2.1.1 released
- Kjeldahl 11y agoFrom the announcement: 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...)
- mitchty 11y agoCool, so if/when the guile vm is default, does that mean we could finally get better process control in emacs? 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.
- sooheon 11y agoHow much of that is limited by the C core as well? Waiting for that to be fixed seems like another level of infinity than guile-emacs.
- paroneayea 11y agoSo yeah, Guile-powered Emacs exists! http://www.emacswiki.org/emacs/GuileEmacs http://www.emacswiki.org/emacs/GuileEmacs 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? :)
- agumonkey 11y agoI wonder how guile-elisp would fare on benchmarks...
- Scarbutt 11y agonice website! for some people this makes a huge a difference. BTW, what's this 2.1.1 vs 2.2 thing? I see they are used interchangeably.
- ploxiln 11y agoThis is the not-entirely-unique practice of using odd minor numbers for beta releases and even minor numbers for stable releases. 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.
- ubercow 11y agoFirst time looking at Guile and I see this: > (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.
- kazinator 11y agoThe SRFI numbering is Scheme-language-wide; it's not a Guile thing. 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.
- ubercow 11y agoThat makes a little more sense. Thanks!
- dragontamer 11y agosrfi is how scheme does things however. Virtually every other scheme interpreter that supports these modules have the same naming scheme.
- pygy_ 11y agoIt refers to the SRFI process and proposals (http://srfi.schemers.org/srfi-process.html http://srfi.schemers.org/srfi-process.html), specifically: http://srfi.schemers.org/srfi-19/srfi-19.html http://srfi.schemers.org/srfi-19/srfi-19.html 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.
- davexunit 11y agoAs others have said, this has to do with the numbering system for Scheme Requests For Implementation at <http://srfi.schemers.org/> http://srfi.schemers.org/>, but I agree that more memorable module names like (date) would be useful for commonly used SRFIs. 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.
- ambulancechaser 11y agothe website looks great. But it's always so confusing that GNU's language of choice doesn't seem to be used by anyone. The marquee projects listed as using guile seemed a little underwhelming
- pjmlp 11y agoIt is a Scheme implementation. At very least many universities do use Scheme.
- ambulancechaser 11y agoits a flavor of scheme. But it was made to be the language of extension in GNU projects. I've just never heard of anyone actually using it. And the projects that seemed to have embraced it seem rather small for the banner or marquee projects on their website.
- rekado 11y agoThere's also Lilypond (lots of Guile) and Gimp (a little bit of Guile), which are both pretty well-known projects. Guix itself is a large project. GDB has Guile scripting support as well. The website could feature a few more projects.
- djcb 11y agoThere are also gdb and make, which are probably a bit more prominent examples of guile-integration. Perhaps one day, emacs will do so as well. 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.
- jordigh 11y agoIt was chosen as the language of the GNU project in the mid 1980's. It's just taken a while to gain adoption. :-) 2016 will be the year of Guile on GNU/Hurd.
- agumonkey 11y ago
- rtz12 11y agoThe new website looks much better than before, great job. I am planning to build something using Guile, but sadly my time is limited.
- atgreen 11y agoAwesome. I worked on Guile almost exactly 20 years ago. It's probably very different from what it looked like back then. Emacs-on-Guile was one of Stallman's ideas back then, as well as using it for a GNU tcl implementation. Sounds like we're half way there!
- agumonkey 11y agoSome old GNU ideas are popping again. Guile as a system language in GuixSD. Hurd too. Funny times.
- AceJohnny2 11y agoConsidering the speed of development of some of FSF's project, it may not be that much different than what you remember 20 years ago ;)
- Touche 11y agoGuile compiles to bytecode, is there a way to then link that to guile to create a standalone executable?
- dorfsmay 11y agoNot that I know of, but Racket and Chicken, and I believe newer versions of Gambit, can produce executable from their version of scheme. Scheme was originally meant to be embedded so compiling to an standalone executable was never part of its goals. http://racket-lang.org/ http://racket-lang.org/ http://www.call-cc.org/ http://www.call-cc.org/ http://gambitscheme.org/wiki/index.php/Main_Page http://gambitscheme.org/wiki/index.php/Main_Page
- 59nadir 11y agoThere's also Stalin, an extremely optimization-heavy compiler for Scheme to C; https://engineering.purdue.edu/~qobi/software.html https://engineering.purdue.edu/~qobi/software.html 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: http://community.schemewiki.org/?Stalin http://community.schemewiki.org/?Stalin
- ThatGeoGuy 11y agoKeep in mind that Stalin is a very small subset of R4RS (note that the current is R7RS-small), and in many ways becomes a very small portion of an already small language. This makes it easy to optimize, but can be annoying if you're coming from other languages that are less spartan. 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. [1] http://wiki.call-cc.org/eggref/4/stalin http://wiki.call-cc.org/eggref/4/stalin