Kumpera.net delírios sobre linguagens de programação

Meus achados sobre tecnologia

MonoSummit2007

December 9th, 2007 · 5 Comments

Semana passada ocorreu a MonoSummit2007, evento para conhecer os colegas do time, membros da comunidade, discutir sobre o mono e, principalmente, nos planejar. O evento foi uma ótima oportunidade de conhecer gente muito interessante e discutir sobre tópicos que não é normalmente possível nos eventos que acontecem por ai.

Tive o prazer de conhecer o Rodrigo Oliveira, autor da linguagem boo. Fiquei feliz em vez que finalmente implementaram code quotation, ou quasi-quotations para quem preferir, e pattern matching, de maneira a tornar divertido o uso macros e não a tarefa penosa que era antes disso. Discutindo com ele sobre o DB4O, fiquei muito interessado na forma como eles pretendem implementar transações usando STM. Pessoalmente acho que sistemas prevalentes, o prevayler em especial, são implementações patéticas de um problema que não existe. Por outro lado, com Software Transactional Memory é possivel eliminar aquela coisa horrivel que é a exigência de toda mutação ocorrer através de comandos.

Discuti, ou melhor, tive uma aula com o Massi sobre como fazer a transição para forma SSA de maneira barata e quase linear, além disso ele me apresentou ao conceito de HSSA (Hashed Static Single Assignment), que permite realizar enumeração global de valores enquanto faz a renomeação para SSA - que permite eliminar redundâncias de forma mais agressiva que via CSE. Fora isso ele falou da idéia de que é viável construir um bom alocador de registradores como um passo unificado ao que sai do formato SSA, aproveitando que SSA dá quase que de graça use-def e liveness.

Conheci o Jim Purbrick, o cara da LidenLabs que está usando mono para executar as bilhões de linhas de código de LSL do Second Life. O “pequeno” problema que eles tem é que são dezenas de milhares de scripts executando em paralelo em um mesmo simulador - algo que não é fácil de fazer usando threads. A solução que eles adotaram foi implementar um compilador que transforma todos IL em Continuation Passing Style. Basicamente criando suporte a micro-threading e scheduling cooperativo. Não é algo para quem tem estomago fraco, mas funciona e eles esperam ganhos de performance de duas ordens de magnitude.

Foi muito interessante discutir com meus colegas que também contribuem no runtime e pude verificar que não sou o único que acha que generics é uma coisa extremamente complexa. Em breve estará sendo publicada o roadmap do projeto para o ano de 2008 e tem muita coisa legal adiante - aguardem.

Tags: Programming · mono

5 responses so far ↓

  • 1 Phillip Calçado // Dec 9, 2007 at 6:07 pm

    Este case da Linden devia ser mais dvulado. Se alguém me perguntasse ‘quem usa Mono?’ eu não saberia resonder…

  • 2 Diego Pires Plentz // Dec 9, 2007 at 10:46 pm

    Louds, tu tem que começar a escrever inglês. Posts como esse devem ter no máximo 2 brazucas que conseguem entender 50% ;)

  • 3 kumpera // Dec 10, 2007 at 12:31 am

    Phillip, o pessoal da Linden ainda está desenvolvendo o novo simulador usando mono. De oficial só os blog posts do Jim sobre o assunto.

  • 4 V. // Dec 12, 2007 at 4:04 pm

    Nossa, depois desse monte de coisa complexa que você entende, você vira e fala que Generics é complicado… rsrs

    Impressionante. (;

    parabéns pelo projeto.

  • 5 Doidao$ // Jan 29, 2008 at 11:20 pm

    hehehehe,

    entendo nada destas coisas aí….. e programo muito bem …..

    O importante na minha opiniao é a bola da vez….
    E fazer o gol ($) é o mais complicado. Como???…. até hoje só foi programando. Então sou bom programador.

    Hehehehehe.

Leave a Comment