Some time ago I was strug­gling with supe­rior arro­gance — I was try­ing to make Com­mon LISP work on Win­dows. This is royal pain.

Worth to men­tion that my col­league spends his days try­ing the same, pok­ing our self-​proclaimed LISP guru (no offence, he knows LISP) every time something’s wrong. And there are lots of things that go lat­ter way. I gonna put a list of things that can be con­sid­ered hor­ren­dous for any generic user, whose pri­mary OS is Windows.

  • The thing any LISPer will tell you is that CPAN, gem and so on are worth­less — LISP has won­der­ful asdf-​install and cliky​.net (and you even can fix unre­solved depen­dency your­self ’cause clicky​.net is wiki open for any­one, not only for project main­tain­ers and so on — just put a page with link to tar­ball up). Poor win­dows user should know the pain and shame — he’ll need tar, shell, gzip and so on! You have no Cyg­win installed? No MinGW? In this case you will not be able to use LISP imple­men­ta­tions like SBCL (yeah, steel bank head-​banging awaits you) or ECL. Even Clozure CL needs tar and gzip for asdf-​install to work. Yes, this util­i­ties are nec­es­sary for pack­age unpack­ing, but if you dis­trib­ute your port for win32 and include asdf-​install, why can’t you include this two bina­ries as well???
  • As win32 is no POSIX, why try to put POSIX scheme over it? Why user have to guess, where is his $HOME, why he has to put autoload­ing .lisp file there, not in “Appli­ca­tion Data”, why asdf-​install puts tons of garbage in users direc­tory (yeah, win­dows doesn’t mast files start­ing with period)? I sup­pose code dif­fers for UNIX and win32, there are lots if #ifdef’s and so on, then why we should keep suffering?
  • And there is noto­ri­ous win64! Lately it has become usable like any other ver­sion of Win­dows (since win7), lots of soft­ware work seam­lessly, but not LISP! There are two bina­ries shipped with Clozure CL — one for win32, and other for win64. Sur­pris­ingly, win32 can’t work on win64. It is a fea­ture — .exe just exits com­plain­ing! The devel­op­ers are respond­ing: “The 32-​bit port should run on 32-​bit ver­sions of XP and Vista. (For obscure rea­sons, the 32-​bit port doesn’t run on 64-​bit OS ver­sions at this point. We intend to address that, if only to avoid hav­ing to explain that it doesn’t and why it doesn’t.).”
  • In case you will try to install cells-​gtk you will fail! Then you will loot hand­ful of libraries, recom­pile some with MSVS of gcc (com­pil­ers give dif­fer­ent flavours) and poke your LISP guru non­stop… Then it will work. Prob­a­bly. With Clozure CL.
  • Win­dows port of SBCL does not sup­port threads. No cells-​gtk for you. Whine in wait for next SBCL release. Never. Give. Up. Hope.
  • In win64 case you’ll fail even in case of Clozure CL. Because for every of two dozens required libraries you’ll either need to find win64 pre­built binary (in most cases give it up) or recom­pile it. Unex­pected things to come… For exam­ple, freeg­lut won’t com­pile with MSVS into 64-​bit tar­get. I found some patch (not for freeg­lut, but for Cry­sis (or what was it???) engine), it com­piled, but still buggy — gl-​gears dis­play only Male­vich square. Then I counted libraries nec­es­sary for cells-​gtk and gave up…
  • SBCL on win64 shocked not only me but even local LISP guru. It bitched about POSIX incompatibility…

And so on… Look, LISPers are arro­gant enough to ignore any­one who uses Win­dows! They just want to make there life with LISP painful to that extent peo­ple would give up either Win­dows or LISP. Lat­ter has much higher prob­a­bil­ity, but for ones trapped inside ivory tower it does not mat­ter at all.

Leave a Reply

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>