À la base en 2013 le projet s'appelait ViperVM et le but était de faire un support exécutif pour les architectures hétérogènes (GPGPU, etc.) pour ma thèse. cf https://dl.acm.org/citation.cfm?doid=2502323.2502329
En 2014 j'ai réorienté le projet dans le sens actuel, donc on peut dire que ça fait 3 ans.
Côté Haskell, je n'ai pas eu trop de problèmes techniques (seulement un patch pour le runtime system de GHC afin de pouvoir exécuter un binaire statique dans un initramfs sans avoir besoin des fichiers de iconv et un autre pour que le runtime system utilise timerfd plutôt que des signaux).
Il reste des problématiques de type "recherche" par contre. Par exemple, je ne veux pas utiliser d'exception pour propager et traiter les erreurs renvoyées par les appels systèmes. Je veux que le compilo vérifie que tous les cas sont traités. Du coup j'ai conçu un système qui ressemble aux Checked exceptions de Java mais en mieux (avec du polymorphisme, etc.) mais on atteint un peu les limites du type-checker en terme de performances (à la compilation, pas le code généré).
[^] # Re: Bravo
Posté par hsyl20 (site web personnel) . En réponse au journal Sortie de haskus-system 0.7. Évalué à 8.
À la base en 2013 le projet s'appelait ViperVM et le but était de faire un support exécutif pour les architectures hétérogènes (GPGPU, etc.) pour ma thèse. cf https://dl.acm.org/citation.cfm?doid=2502323.2502329
En 2014 j'ai réorienté le projet dans le sens actuel, donc on peut dire que ça fait 3 ans.
Pour les retours, globalement ça marche plutôt bien. Côté Linux, il faut parfois réussir à trouver de la documentation. J'ai noté quelques détails qui pourraient être améliorés :
https://github.com/hsyl20/haskus-system/issues
http://hsyl20.fr/home/posts/2016-04-05-predefined-shared-error-sets-considered-harmful.html
Je regrette aussi que l'API "atomic" de DRM ne soit pas encore supportée par tous les drivers.
Côté Haskell, je n'ai pas eu trop de problèmes techniques (seulement un patch pour le runtime system de GHC afin de pouvoir exécuter un binaire statique dans un initramfs sans avoir besoin des fichiers de iconv et un autre pour que le runtime system utilise timerfd plutôt que des signaux).
Il reste des problématiques de type "recherche" par contre. Par exemple, je ne veux pas utiliser d'exception pour propager et traiter les erreurs renvoyées par les appels systèmes. Je veux que le compilo vérifie que tous les cas sont traités. Du coup j'ai conçu un système qui ressemble aux Checked exceptions de Java mais en mieux (avec du polymorphisme, etc.) mais on atteint un peu les limites du type-checker en terme de performances (à la compilation, pas le code généré).