4525295943286785564630898738613180402752865746514908141289658206399306834966472673922031069344230677865113693205407878709601660268[]s Como o Blogger.com resolveu restringir as possibilidades de edicao, estamos transferindo o Kodumaro para minha pagina pessoal.O nome endereco e Cacilh.INFO/Kodumaro. Voce ja pode acessar nosso primeiro artigo: Standard ML.[]s Atualizado no blog novo.Colocar MoonScript para trabalhar com LuaJIT nao e trivial. E preciso uma serie de pequenos hacks pra funcionar.Vamos comecar pelas dependencias.DependenciasMoonScript depende de quatro outros modulos para funcionar:alt-getoptLuaFileSystemLPegInstale alt-getopt normalmente no LUA_PATH de seu LuaJIT. Aqui para mim e /usr/share/lua/jit.Para instalar LuaFileSystem, clone o repositorio do GitHUB e nao se esqueca de editar o arquivo config. As mudancas principais sao:PREFIX=/usrLUA_LIBDIR=$(PREFIX)/lib/lua/jitLUA_INC=$(PREFIX)/include/luajit-2.0Isso considerando que seu LUA_CPATH esteja em /usr/lib/lua/jit.Compile e instale normalmente.Ja LPeg merece uma atencao extra, ja que ele nao funciona com LuaJIT. No lugar, use LPegLJ.Clone e instale LPegLJ no seu LUA_PATH, depois execute o seguinte comando:cd /usr/share/lua/jit/sudo ln -s lpeglj.lua lpeg.luaIsso fara com que MoonScript pense tratar-se do LPeg original.Instalando MoonScriptCom as tres dependencias instaladas, clone o projeto do GitHUB. Edite o Makefile, substituindo as ocorrencias de lua5.1 e lua por luajit.Remova as entradas local e global do Makefile.Edite o hashbang dos arquivos bin/moon e bin/moonc trocando lua por luajit.Execute make compile.Copie os diretorios moon/ e moonscript/ para seu LUA_PATH.Copie os arquivos bin/moon e bin/moonc para o diretorio /usr/bin do sistema.E pronto! Ja deve estar funcionando! Qualquer duvida, me avisem pra eu revisar o texto.[]s Ontem fiz uma pequena introducao ao Cython.Cython e uma plataforma que traduz codigo Python para C e o compila em biblioteca compartilhada importavel no proprio Python. A linguagem em si e um superset de Python, com tipagem estatica ou dinamica (duck-typing) e suporte a codigo especial que pode ser traduzido diretamente para C.Uma parte importante de Cython e sua tipagem estatica, mas os tipos pode ser um pouco diferentes de Python.Ha tipos especificos, como struct e enum, que sao traduzidos diretamente para o equivalente C, e tipo de extensao (cdef class). Entre eles:Tipo CythonTipo CCoercao para Python 3boolPyLongObject *boolbintintboolsize_tsize_tintcharcharintunsigned charunsigned charintintintintlonglongintlong longlong longintfloatfloatfloatdoubledoublefloatconst char *const char *bytesbytesPyBytesObject *bytesconst Py_UNICODE *const Py_UNICODE *strunicodestruct PyUnicodeObjectstrobjectPyObject *objectlistPyListObject *listdictPyDictObject *dictsetPySetObject *settuplePyTupleObject *tuplevoid *void *sem equivalenciastruct Sstruct Sdictenum Eenum EintTodos os modificadores C (unsigned, const, long, *...) sao aceitos. Na coercao de tipos, tambem e aceito &. Se um valor numerico for recebido por uma variavel do tipo object, sera usado PyLongObject * (inteiro de tamanho arbitrario) ou PyFloatObject * (ponto flutuante, equivalente a double de C).[]sCacilh, La Batalema Adaptado no blog novo. Ha muito pouco tempo atras um amigo meu me sugeriu dar atencao a MoonScript. Admito que eu via a linguagem com preconceito, mesmo assim resolvi dar uma olhada.Resultado: todos os meus codigos em Lua acabaram convertidos para MoonScript. :-)A linguagem e extremamente enxuta, limpa e poderosa. Nao vou entrar em detalhes, se estiver curioso, leia o guia da linguagem.Mas tambem nao puxei assunto por nada, vou dar alguns exemplos.Paradigma FuncionalPara lidar com o paradigma funcional, a sintaxe de MoonScript e bem mais concisa e que a de Lua. Por exemplo, o combinador Y.Lua e uma linguagem estrita e nao suporta o combinador Y em sua forma lazy. Como MoonScript e compilado para codigo Lua,