Com o MacPort dá para instalar o feijão com arroz: Mysql, Postgres, Apache2, Ruby, Rails, etc. Tem o emacs tb, mas a melhor opção é utilizar o beta do emacs22 que tem suporta nativo para o Carbon (Uma das API's gráficas do OS X). Ok, temos emacs funcionando maravilhosamente bem. O segundo passo é escolher qual Lisp usar. O mundo apple conta com OpenMCL, porém ele só suporta PPC e x64, bad news, só tenho um Core Duo 1 que não aceita extenção de 64 bits :-(
Mas tudo bem, a minha primeira escolha de Lisp era o SBCL. A versão do sita, tanto o binário quanto a source funcionam muito bem (versão 1.0.4 e 1.0.5). O próximo passo é instalar alguns pacotes. Primeiro os mais fáceis, cl-ppcre, split-sequence. Tudo ok. Em seguida um mais difícil hunchentoot. Primeiro problema, a CL+SSL não acha a lib ssl em /usr/lib/libssl.so, isso é porque no darwin as bibliotecas não tem terminação .so e sim .dylib. Modifiquei o CL+SSL para procurar a versão do MacPort em /opt/local/lib/libssl.dylib, tudo funciona perfeitamente. Mandei um patch para os autores da biblioteca.
Segundo problema, o slime esta esquisito e o hunchentoot trava o REPL quando invocado. Tendo criar um thread e descubro que o SBCL foi configurado para unitrheads. Bad news. Lendo o arquivo INSTALL descubro como ativar as threads, deve-se criar um arquivo chamado customize-targets-features.lisp com o seguinte conteúdo:
(lambda (features)
(flet ((enable (x)
(pushnew x features))
(disable (x)
(setf features (remove x features))))
;; Threading support, available only on x86/x86-64 Linux, x86 Solaris
;; and x86 Mac OS X (experimental).
(enable :sb-thread)))
Recompilar e pronto. Beleza, tudo funcionando, porém estou vivendo no wild world do software experimental.
Nenhum comentário:
Postar um comentário