- Le compilateur Haskell GHC peut désormais s’exécuter entièrement côté client dans le navigateur
- Grâce à la démo Haskell Playground fournie, les utilisateurs peuvent exécuter du code dans le navigateur sans installation séparée
- Cette fonctionnalité est présentée comme un exemple montrant les progrès du backend WebAssembly (WasM) de GHC
- Dans le navigateur Brave, le chargement s’effectue après une brève pause, et si la création d’un web worker échoue, le code s’exécute sur le thread principal
- Dans le navigateur Safari, le même message d’avertissement s’affiche, mais le bouton Run reste désactivé
Démo de GHC dans le navigateur
- GHC s’exécute côté client dans le navigateur et peut compiler et exécuter du code Haskell sans dépendre d’un serveur
- L’auteur a publié cela sous la forme d’une démo Haskell Playground
- Des explications détaillées seront fournies séparément plus tard
- Cette démonstration est mentionnée comme un exemple illustrant le niveau d’avancement du backend WebAssembly de GHC
Retours de fonctionnement selon les navigateurs
- Dans le navigateur Brave, le chargement s’achève après quelques secondes initiales sans réponse
- Un message indiquant « impossible de créer un web worker » s’affiche, et l’exécution du code est basculée sur le thread principal
- Cela peut entraîner un blocage de l’interface utilisateur
- Dans le navigateur Safari, le même message s’affiche, mais le bouton Run est désactivé, ce qui empêche l’exécution du code
- Le message inclut un avertissement lié à Monaco Editor et mentionne la nécessité de définir
MonacoEnvironment.getWorkerUrl ou getWorker
Portée technique
- Le fait que GHC s’exécute directement dans le navigateur via WebAssembly améliore l’accessibilité de l’environnement de développement Haskell
- Le point clé de cette avancée est qu’un compilateur peut fonctionner dans un environnement purement client, sans serveur
- Le texte original ne contient pas de détails techniques supplémentaires ni de comparaison de performances
1 commentaires
Commentaire Hacker News
Le vrai titre est en fait « GHC now runs in your browser »
Grâce à QEMU-WASM, je me demande maintenant ce qui ne peut pas tourner dans le navigateur Ce n’est pas une critique, au contraire je trouve ce genre d’initiative vraiment excellent pour découvrir facilement de nouveaux langages
C’est dommage qu’il n’existe toujours pas de moyen de bootstrapper complètement Haskell (ou un langage basé dessus) Du coup, j’ai l’impression qu’il est difficile d’utiliser Haskell dans une distribution Linux à forte exigence de confiance L’exécuter dans un sandbox de navigateur réduit le risque comme solution temporaire, mais si on ne peut pas bootstrapper depuis les sources, il est difficile de faire confiance au langage
Je me souviens avoir fait tourner un interpréteur Haskell sur un HP Jornada avec Jlime Linux Pendant les cours de maths, c’était bien meilleur qu’une calculatrice scientifique parce qu’on pouvait saisir les formules facilement Comme ça tournait depuis une carte CF, ce n’était sûrement pas aussi gros que GHC, mais je ne me souviens plus du nom
C’est vraiment impressionnant. J’avais déjà créé un site web éducatif pour les maths et l’art (mathvas.com) en Haskell, et avec un tel outil ça aurait été beaucoup plus simple
Oui. On peut aussi voir des projets liés sur haskell-miso
Pour ceux qui ne connaissent pas bien Haskell, GHC est le compilateur principal et environnement interactif de Haskell
Je me demande si ce projet utilise WasmGC, ou s’il embarque son propre garbage collector
J’aimerais comprendre la différence entre cette fonctionnalité et une technologie comme Blazor Wasm. Dans les deux cas, on dirait qu’on peut écrire le frontend sans JS
Je cherche un tutoriel Haskell pratique pour des gens qui connaissent déjà la programmation fonctionnelle Je comprends les monades, les typeclasses et le concept de HKT, mais je suis incapable d’écrire ne serait-ce qu’une appli ToDo en pratique