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.
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