Bonjour à tous,

La semaine dernière, je suis allée à la conférence DConf 2013, qui se déroulait au Facebook HQ à Menlo Park. La conférence était organizée par Andrei Alexandrescu et Walter Bright, les co-créateurs du langage de programmation D. Il y avait environ 80-90 personnes, une vingtaine de talks au total. La qualité des talks était assez bonne en général. On a eu droit à des présentations sur plusieurs sujets reliés au langage, incluant des présentations sur GDC et LDC, les compilateurs D basés sur GCC et LLVM respectivement. Le compilateur principal, DMD, a son propre backend.

Pour ma présentation, je m'inquiétait un peu. J'avais environ 70 slides et un slot de 60 minutes, questions incluses. Je trouvais aussi que ma présentation couvrait probablement trop de sujets différents. Une intro aux langages dynamiques, au travail d'optimisation, à ma recherche et Higgs, puis une critique de plusieurs aspects du langage D. Il semble que j'ai réussi à threader tout ça assez bien. J'ai eu plusieurs compliments sur mon talk. Il devrait y avoir un vidéo de la présentation sur YouTube prochainement si ça vous intéresse.

Côté social, j'ai appris qu'Andrei travaille dans l'équipe du compilateur HipHop VM chez Facebook. J'ai pu parler à plusieurs membres de l'équipe en question. En gros, ils ont leur propre compilateur JIT pour PHP. Ce compilateur est utilisé en production et c'est ce sur quoi tout Facebook fonctionne. Ils étaient très intéressés par ma recherche, qui, semble-t-il, est très proche du genre d'optimisations sur lesquelles ils travaillent. Ils m'ont proposé à plusieurs reprises de venir faire un internship chez eux.

Ils auraient voulu que je les rejoigne immédiatement. Je leur ai dit que ce n'était pas possible dans le moment, mais que je considérerais peut-être pour l'été prochain. Ça vaudrait peut-être la peine de maintenir des contacts avec cette équipe chez Facebook. Leur travail semble véritablement relié à ce qui nous intéresse et ça pourrait mener à plusieurs opportunités d'internships pour les membres du DLTeam. Ils me disent aussi que Facebook est maintenant beaucoup plus ouvert à l'idée de publier.

Après la conférence, je me suis dirigée vers San Francisco en train. J'ai fait un peu de tourisme ce weekend, et puis je suis allée voir Shu et Michael chez Mozilla hier. J'ai été un peu déçue parce que, malgré que j'ai communiqué avec eux d'avance, Michael avait quitté la ville (il avait complètement oublié). Shu, pour sa part, n'était pas disponible avant 3PM. Heureusement, on a pu faire une téléconférence avec Michael et la rencontre a été productive quand même. Ils ont soulevés plusieurs points importants par rapport à l'idée de clonage de blocs et ont apporté une perspective assez différente de la nôtre. Je vous en dirai davantage à notre prochaine rencontre.

Je crois aussi avoir trouvé certaines failles dans mon système qui pourraient mener à une explosion du code. Si on inline une opération comme l'opérateur +, par exemple, on a le problème qu'il y a un chemin "normal" et un chemin d'overflow. Ces deux chemins mènent à des types différents. Idéalement, il faudrait éviter de dupliquer du code inutilement à cause du chemin d'overflow. Ceci nécessite de savoir que l'overflow ne se produira probablement pas au point d'inlining. Je crois que c'est un autre point en faveur d'un switch éventuel vers un modèle de compilateur incrémental, parce qu'un compilateur qui compile incrémentalement les blocs éviterait de dupliquer des blocs pour des chemins d'exécution qui ne se produiront jamais.

Aujourd'hui, je suis au dernier jour de mon voyage. Je rentre à Montréal ce soir. J'anticipe que ce sera assez stressant. J'ai presque manqué une connection à Chicago en venant ici, et j'ai deux connections à faire.

Bonne semaine et à bientôt,

- Maxime