GNU Guile

Is GNU Guile a good Scheme implementation for practical purposes? I realize Guix uses it, but it could have used pretty much any other Scheme.

Attached: GNU-Guile-logo.png (1200x646, 57K)

Other urls found in this thread:

ecraven.github.io/r7rs-benchmarks/
wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations
twitter.com/NSFWRedditImage

use chicken scheme

not the easiest to use but its pretty fast and light.

Why?

>I realize Guix uses it, but it could have used pretty much any other Scheme.
Guile is fairly old among still-maintained Scheme implementations, and it's the in-house GNU implementation of Scheme, so I wouldn't take its use in GNU projects as a sign of quality.

"Practical purposes" is kinda vague, since true RNRS versions of Scheme aren't too practical (seriously, R6RS is considered bloat to many, yet it only added minimal features to R5RS). Every implementation will include things they think are practical and/or philosophically sound and exclude everything extraneous. Similarly, every implementation can include things like SRFIs and SLIB, along with all other kinds of libraries, to be more useful to the programmer.

IMO:
* Pick something reasonably fast.
(ecraven.github.io/r7rs-benchmarks/ is one set of benchmarks, although not every implementation has an official-ish implementation of R7RS, which the benchmarks are based on) Guile isn't too bad, since it at least placed in the top 10 in a handful of tests.
* Be sure that you're willing to look up information about how a given Scheme does things. Racket's documentation, for instance, is good as hell; other implementations' docs can vary (Chicken Scheme's is another positive highlight; Chez Scheme's docs are the "professional" standard, which can be terse).
* Out-of-the-box support for "practical" stuff (e.g. networking) comes with Gambit, Racket, MIT/GNU Scheme, Chicken, and others.

But really, I think:
wingolog.org/archives/2013/01/07/an-opinionated-guide-to-scheme-implementations
hits it on the head. At the end of the day, it doesn't *really* matter as much you might think.

Looks like it's worth picking Racket for its superior standard library.

You can write portable scheme code these days.
Use r7rs implementations like chibi-scheme and gauche which are both very good.

Isn't guix purpose to use as much gnu programs as possible?

Not really because of tons of undocumented undefined behavior. For example, if you operate on a binding whose initial value was from a literal, the compiler may decide to have placed all similar literals at the same memory location and thus all bindings in the program referring to the literal will be modified. I recommend either chicken or racket instead. It's too bad too because guile is well designed on the frontend.

Not really, it's just the configured repo. You could easily change the build chain to use clang and other things.

Is there a way to convert ebuilds to guix whatevertheycallit packages?

For me it's not the languages itself, but the lack of libraries. If you already know guile has the libraries you need, go for it. I wanted to learn a lisp but I also wanted webdriver and gui libraries, so I went clojure.

But I imagine C11 Generics work differently, say, from Java.

Just learn how to package them; it's dead simple.

But I don't want to tread through the undoubtedly very complex methodology involved to get nvidia drivers or such.

>Is GNU Guile a good Scheme implementation for practical purposes?
It's pretty weird. Their logo says "extension language" and at some point this may have been the priority, but nowadays it seems they just want to make it another muh lisp language kit.

Guile is designed for embedding, It's more comparable to Lua.

it's made by super SJWs, they literally call each other comrades and shit like that. Avoid.

>they literally call each other comrades and shit like that
Proof?

So why did guix decide to rewrite their frontend to nix for it?
What autism says "gee I dislike the syntax of nix, lets not add syntastic sugar and instead use an archaic syntax of lisp"

In the past few years some smart people working on the internals have delivered major performance improvements, so it's actually competitive with other Scheme implementations to some extent
Versions before 2.0 were total shit, so if you go back and read articles from those days, you'll see a lot of people ripping ass directly into it, for good reason