1 points par GN⁺ 2025-11-02 | 1 commentaires | Partager sur WhatsApp
  • 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

 
GN⁺ 2025-11-02
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

    • Mon hypothèse est que cette approche pourrait être assez rapide. Ça vaut le coup de la tester directement
  • 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

    • Ce dont tu parles, c’est de « GHC Haskell ». C’est l’implémentation dominante, donc j’imagine que ce sera résolu un jour Mais on peut déjà faire pas mal de Haskell sans GHC. Par exemple, MicroHs devient de plus en plus puissant, et je pense qu’il a un fort potentiel de bootstrap
    • Dans ce fil, des gens essaient aussi de reproduire l’ancien processus de build pour bootstrapper GHC
    • À mon avis, en combinant l’ancien Hugs et le nouveau MicroHs, c’est tout à fait faisable. Je ne sais juste pas si la communauté s’y intéressera suffisamment
    • Je me demande pourquoi la capacité de bootstrap d’un langage est si importante. Je pensais qu’on regardait surtout la stabilité, la popularité et la maturité de la toolchain
    • Je me demande comment GHC est compilé sans bootstrap. Il y a des binaires non reproductibles inclus dans l’arborescence ? J’ai déjà compilé GHC plusieurs fois sans problème
  • 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’était probablement Hugs
  • 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

    • Sur Safari (iPhone), il est impossible de coller dans l’éditeur
  • 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

    • GHC (Glasgow Haskell Compiler) est de fait l’implémentation standard et l’outil central de la recherche autour du langage Mais les changements de fonctionnalités étaient trop fréquents, et comme il n’y avait pas de style stable bien établi, j’ai fini par passer à Standard ML (C’était à l’époque où les changements autour des type families battaient leur plein)
  • Je me demande si ce projet utilise WasmGC, ou s’il embarque son propre garbage collector

    • WasmGC s’accorde mal avec la lazy evaluation. Les valeurs paresseuses de Haskell existent toujours sous forme de closures sur le tas Elles ne sont évaluées qu’au moment nécessaire, puis remplacées par un black hole pour éviter les appels dupliqués Mais WasmGC a des types statiques, donc il gère mal ce genre de structure dynamique On peut contourner ça avec des références indirectes ou de la defunctionalization, mais le coût en performances est élevé En plus, Haskell prend aussi en charge les finalizers, donc WasmGC devrait savoir les gérer
    • WasmGC n’en est encore qu’à la version 1.0, donc il ne prend pas encore en charge toute la sémantique GC nécessaire à des langages comme C# ou Go. Par exemple, il ne sait pas gérer les interior pointers
  • 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

    • Ce tutoriel et ce cookbook étaient pas mal. Et joyful.com/Haskell+map vaut aussi le détour. Sinon, le mieux est peut-être simplement de lire du code, puis de demander de l’aide à la communauté quand on bloque
    • Il existe très peu de ressources pour des gens de ce niveau. À la place, la série de billets du blog Monday Morning Haskell propose des exemples pratiques Par exemple, cet article peut être utile
    • Tu peux essayer de créer un jeu Snake étape par étape, ou regarder l’exemple snake-fury Ou bien construire une petite webapp comme dans ce tutoriel
    • Demander à ChatGPT ou Claude des explications adaptées à ton niveau de compréhension peut aussi être efficace
    • On demande aussi si tu as essayé Real World Haskell