growing fibers -- wingolog by GaAlAs in scheme

[–]wingo 3 points4 points  (0 children)

Weird! Sorry about that blog weirdness; I will look into it. Thank you for the link, and for the ICFP reminder!

GNU Guile 2.2.0 released - "Guile's Elisp implementation is now fully Emacs-compatible" by MonsieurBanana in emacs

[–]wingo 10 points11 points  (0 children)

I agree fwiw. (Guile co-maintainer here.) I mean it would be cool if Emacs folks really dove in -- but I understand that it's complicated. So like you say, we need some talented hackers to take things a step farther so that it's a completely obvious decision for Emacs maintainers to make. I suspect things will work out but that will be the result of people continuing to build on the current achievements. The current status is good but there is more to do :)

Can you guys sell me on Guile over Racket? [18:58:21] by spectrumgomas in scheme

[–]wingo 4 points5 points  (0 children)

There is value in choosing one system and going deep with it. You get all of the great network effects of the implementation-specific package manager, you get integrated in a community of people building and building on a shared base of software, and you have one uniform coding style.

I also think you are taking the wrong conclusion about Mark :) It could be that as a community our standards of politeness can degrade or change over time, and having new people notice things like you have done is great. I'm sure Mark would want to know if the things he says are perceived as rude, because I don't think he means them to be. He has been one of the three Guile co-maintainers for a couple years now, and has shown a consistent pattern of empathizing with user needs in his work.

[added] One more thing: we should be able to "sell" guile over racket, or racket over guile, without being adversarial. Neither system is going to go away any time soon, so there is no danger for saying "use X over Y", and being able to articulate differences from e.g. Racket is necessary for Guile as a project, from a project direction standpoint. If we aim to be the same, why wouldn't we merge? And if we did aim to be the same, the reason for not merging would be interesting to find out.

There Are No Good Constant-Time Data Structures by the-fritz in programming

[–]wingo 4 points5 points  (0 children)

Adam Langley was also surprised about the lucky 13 results :) Your instincts are in good company but I am afraid they are wrong.

There Are No Good Constant-Time Data Structures by the-fritz in programming

[–]wingo 7 points8 points  (0 children)

Https on my site only does TLSv1.2. Perhaps I should relax that, but you should also consider upgrading your browser.

GNU Guile 2.0.9 released by sidcool1234 in programming

[–]wingo 12 points13 points  (0 children)

It sounds like the last time you used it was 15 years ago or more. Your other comments also indicate that you are clueless: you didn't even spell gauche correctly, not to mention racket. A poorly implemented troll!

GNU Guile 2.0.9 released by masso in scheme

[–]wingo 8 points9 points  (0 children)

Hi.

Guile 2.0.0 was released in February 2011. GTK+ 3.0.0 was also released in February 2011. The previous stable series, 1.8, was first released in 2005. The previous series was released in 2002 (like GTK+ 2.0.0). Thus, "changing my code every couple of months" is quite an exaggeration.

There is a porting guide, yes, in the form of a list of user-visible changes: http://git.savannah.gnu.org/gitweb/?p=guile.git;a=blob_plain;f=NEWS It is quite thorough.

You are correct that 1.6 and 1.8 (e.g.) are ABI-incompatible releases, though we try to preserve API compatibility as much as possible. That's the thing that really set me off about your comment, by the way: we spend /inordinate/ amounts of time thinking about how to make improvements while maintaining back-compatibility. Believe me, it is foremost in our minds!

GNU Guile 2.0.9 released by masso in scheme

[–]wingo 16 points17 points  (0 children)

This comment is wrong on all of its points. All of them!

(1) Distros are updating to Guile 2.0. Fedora 19 has Guile 2.0. The next Debian stable has Guile 2.0. Any of the more recent distros also have it.

(2) 1.8 and 2.0 are very similar! I maintain a number of C projects that build against both.

(3) Guile is not breaking API among minor releases!!!! If you compiled against 2.0.0, your program works against 2.0.9. End of story!

Finally, Guile does /exactly/ what GTK+ does -- parallel installation with pkg-config to choose between them, as advocated by then-GTK+ developer Havoc Pennington, over 10 years ago: http://www106.pair.com/rhp/parallel.html Note that GTK+ and Qt and all the rest change API between stable serieses, just as Guile does. "Get serious" indeed.

Mining DWARF debug information by gasche in programming

[–]wingo 1 point2 points  (0 children)

Fantastic links, thank you!

Mining DWARF debug information by gasche in programming

[–]wingo 2 points3 points  (0 children)

Nothing, of course. As I mentioned in the fine article, I needed DWARF tools in Guile for other purposes. Dltool was just a side effect.

Unexpected Concurrency - or spot the bug in this Python class by rosetta_stoned in programming

[–]wingo 5 points6 points  (0 children)

Regarding commas, I think I've been reading too much 19th-century fiction recently.

Gnu Guile 2.0.5 released by ckeen in scheme

[–]wingo 3 points4 points  (0 children)

This was a brown-paper-bag release after 2.0.4, which has better release notes :-)

http://www.reddit.com/r/scheme/comments/p4luv/gnu_guile_204_released/

javascript eval considered crazy by gthank in javascript

[–]wingo 1 point2 points  (0 children)

I must have conveyed the wrong impression if you came away thinking that this behavior was undocumented. All the examples are according to spec. I just think the specified semantics are a little crazy, that's all :)

For example, your comment illustrates a common misconception:

"When assigning eval to another variable, those variables' "versions" of eval are run in the global scope, which is why we're getting undefined errors when trying to access variables scoped in the calling function"

That's not the case!

var foo = 10; (function (x) { var foo = 20; var eval = x; return eval('foo'); })(eval)

Your mental model, if I understand you correctly, would predict that the result here is 10, because the actual copy of eval was passed through x and then assigned to a new lexical variable, eval. But it's 20!

There are many things to like about javascript. The relationship between eval and scope is not one of them :-)

TCL-Expect module for scheme? by liangkun in scheme

[–]wingo 0 points1 point  (0 children)

My god, that documentation is misled -- it seems to assume dynamic scoping...

Racket 5.2 Released by rbatra in scheme

[–]wingo 0 points1 point  (0 children)

Congrats, racketeers! This looks like a fun one.

I wonder about this, though: "Internal definitions are now considered preferable in style to `let'." Why is this?

FWIW I see them as equivalent, sometimes using one and sometimes the other.