Live data from Hacker News

Stalin: a global optimizing compiler for Scheme

github.com

71–75 of 75 posts

Re: Stalin: a global optimizing compiler for Scheme

#71

oh you nerds. HN doesn't even let me post the alternative names as the post gets autodeleted. so some names are really, really bad - but hey, let's offend people for fun. as if the whole sexism debate wasn't enough. as to why it is more offensive than genghis khan, i guess it needs to be explained to the ignorant neckbeard crowd: there are enough people still alive today that suffered due this mass murderer. if even…

It's geek sociopathy at its finest. Or maybe that's the "Oh, come on, stop talking about the deliberately chosen name that could have been anything else and talk about the technical details!" attitude.

It's especially farcical given that without the name and the resulting offended people, butthurt Russians, and random assholes yammering about "political correctness", this post would have probably never made the front page.

Re: Stalin: a global optimizing compiler for Scheme

#72
post #70

Earlier quoted context omitted.

SBCL doesn't currently have whole-program optimization. Its focus has been on standard Common Lisp, which is quite dynamic and can't make the kind of closed-world assumption used by whole-program optimization (i.e. we know the entire program at compile-time). It has quite a lot of optimizations, but they operate function-at-a-time. Its predecessor, CMUCL, did have a mode called "block compilation" that has some simil…

'whole program optimization' is also kind of unpractical, since these compilers are typically very slow. Lucid CL had two compilers, a fast incremental one and a slow one, capable of block compilation. KCL (the early Lisp to C compiler) used block compilation. LispWorks should also support it in some form. Usually 'block compilation' in Lisp means compiling a set of functions together, instead of compiling each funct…

> Block compilation in Common Lisp was and is used mostly for application delivery

The main place I've personally encountered people who care about block compilation in CL isn't so much delivery (as in, to an external client) as getting it ready to run "for real", mostly numerical stuff that is being prepared to run in batch mode on a giant dataset. I guess that's a kind of deployment though, even if the operator and developer is the same research group.

I could be imagining things, but one downside I think I see in not having block compilation in SBCL is that people writing numerical code targeting it have a tendency to pack as much as possible into flet and labels, using one big function as the poor man's compilation block (since within a single function most of CL's dynamic features aren't in play).

I tend not to like code like that when hacking on it. Besides often reading less clearly and sometimes leading to duplicate or near-duplicate code, separate functions are more flexible: they can be dynamically redefined while tinkering with things, they can be called on their own, etc. Of course, that's precisely why the compiler can't perform certain optimizations on full calls. But I think people would be more free with the defun if they knew the compiler would take care of optimizing everything when deployed.

Re: Stalin: a global optimizing compiler for Scheme

#73
post #70

Earlier quoted context omitted.

'whole program optimization' is also kind of unpractical, since these compilers are typically very slow. Lucid CL had two compilers, a fast incremental one and a slow one, capable of block compilation. KCL (the early Lisp to C compiler) used block compilation. LispWorks should also support it in some form. Usually 'block compilation' in Lisp means compiling a set of functions together, instead of compiling each funct…

> Block compilation in Common Lisp was and is used mostly for application delivery The main place I've personally encountered people who care about block compilation in CL isn't so much delivery (as in, to an external client) as getting it ready to run "for real", mostly numerical stuff that is being prepared to run in batch mode on a giant dataset. I guess that's a kind of deployment though, even if the operator and…

> as getting it ready to run "for real"

That's often called 'delivery' in Lisp. It means creating an executable application or library. It does not mean the actual act of shipping something to external clients.

If you compile your code to create an application which then is used in 'production' (internal or external), this is the process of 'delivery'.

http://franz.com/support/documentation/current/doc/delivery....

http://www.lispworks.com/documentation/lw61/DV/html/delivery...

Re: Stalin: a global optimizing compiler for Scheme

#74

oh you nerds. HN doesn't even let me post the alternative names as the post gets autodeleted. so some names are really, really bad - but hey, let's offend people for fun. as if the whole sexism debate wasn't enough. as to why it is more offensive than genghis khan, i guess it needs to be explained to the ignorant neckbeard crowd: there are enough people still alive today that suffered due this mass murderer. if even…

The name is a joke, from wikipedia, "Stalin brutally optimizes". Very much true. You know, it would be quite an undertaking to find russian tech guys offended by this name.

And I've also found https://github.com/n4kz/stalin.js by a russian guy - Joseph Stalin => stalin.js - Badass mustache compiler

Re: Stalin: a global optimizing compiler for Scheme

#75

oh you nerds. HN doesn't even let me post the alternative names as the post gets autodeleted. so some names are really, really bad - but hey, let's offend people for fun. as if the whole sexism debate wasn't enough. as to why it is more offensive than genghis khan, i guess it needs to be explained to the ignorant neckbeard crowd: there are enough people still alive today that suffered due this mass murderer. if even…

The name is a joke, from wikipedia, "Stalin brutally optimizes". Very much true. You know, it would be quite an undertaking to find russian tech guys offended by this name. And I've also found https://github.com/n4kz/stalin.js by a russian guy - Joseph Stalin => stalin.js - Badass mustache compiler

russians not offended is one thing, you'll find more people offended by it in the surrounding ex-colonies.

just like the people most offended by nazi glorification do not live in germany. just like people offended by war japan glorification do not live in japan. just like people offended by confederate glorification are not white. sexism, not male, etc etc etc.

is it that hard of a concept? empathy towards others?

Post reply on HN