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