Le Thread module dans la bibliothèque standard fournit des primitives d'accès simultané , et a été aro et pendant un bon moment. Il existe également third partie libraries qui fournissent des API de concurrence de niveau supérieur/différent. Il semble que vous soyez conflating concurrency and parallelism. OCaml, bien sûr, n'obstrue pas le parallélisme. Vous pouvez exécuter OCaml sur des milliers ou des millions de machines en même temps. Il existe même MPI bindings pour faciliter la programmation de supercalculateurs massivement parallèles. Mais l'implémentation OCaml de référence actuelle ne va pas automatiquement paralléliser les programmes concurrents, ce qui m'intéresse beaucoup plus.
Vous pouvez être intéressé par le Multicore OCaml qui fournit un meilleur support pour le parallélisme de la mémoire partagée, car les ordinateurs SMP sont devenus assez répandue au cours des deux dernières décennies et il serait vraiment agréable d'optimiser plus facilement pour eux. Ils semblent faire des progrès lents mais réguliers et essayer de faire les choses correctement.
Je ne suis pas prêt à fouiller dans les archives tout à l'heure, mais je suis sûr qu'il y a eu des discussions plus récentes où des sentiments similaires ont été exprimés. L'INRIA se concentre sur la prise en charge du langage OCaml tel quel, sans avancer avec de nouvelles fonctionnalités telles que LWP ou une exécution simultanée. N'est-ce pas en partie le point de HLVM de Jon Harrop? –
ocaml4multicore est disponible (avec des limitations), voir: http: //www.algo-prog.info/ocmc/web/ – nlucaroni
À noter: ce qu'a dit M. Leroy à la liste OCaml en 2002, c'était que les machines SMP n'étaient pas aussi répandues qu'aujourd'hui. Reste à savoir si l'ajout d'un parallélisme de mémoire partagée au runtime OCaml est une victoire par rapport à l'approche plus traditionnelle de l'optimisation pour les systèmes SMP: fork/exec et communication interprocessus. Il semble que l'INRIA n'ait pas encore annoncé que son esprit collectif a changé. –