Quelqu’un a-t-il déjà essayé d’installer Discourse sur truffleruby ?
Est-ce une direction qui vaut la peine d’être explorée ?
Intéressant. Je me demande pourquoi ils ont décidé de faire un fork au lieu de contribuer.
@merefield Truffleruby est une implémentation de Ruby pour GraalVM par les équipes d’Oracle. Excellentes performances et interopérabilité avec d’autres langages sur GraalVM.
Ce n’est pas un fork.
J’ai une certaine expérience avec Rails sur Truffleruby et je souhaite tester Discourse la semaine prochaine.
Quelques informations supplémentaires - Running Rack and Rails Faster with TruffleRuby - Speaker Deck
Cela semble fascinant. Pensez-vous pouvoir exécuter la base de code Discourse existante sans modifications majeures ? Quels types de modifications pourraient être nécessaires ?
Réponse courte : Non, cela ne fonctionne pas actuellement sur TruffleRuby.
@gerhard Merci pour le lien, cela me permettra de mieux comprendre les problèmes existants.
Le blocage actuel est mini_racer, voir mini_racer: `rb_context_init_unsafe': External function cannot be found. · Issue #1827 · truffleruby/truffleruby · GitHub
Cela dit, au moins toutes les gems s’installent sur TruffleRuby ; nous le testons en CI (pour une version légèrement plus ancienne de Discourse).
Ce problème a été résolu il y a 5 jours.
Malheureusement, mastodon, et non discourse, sera le premier à fonctionner sur truffleruby ![]()
@volanar ouais - je n’ai pas assez de temps pour revenir sur cette question maintenant - journée de travail intensive.
@eregon est là, et je ne suis au courant d’aucun blocage sur truffle, nous avons fusionné les correctifs pour mini racer l’année dernière
Brandon a fait fonctionner Discourse il y a un an :
https://twitter.com/brandonfish/status/1486755128577253376
https://twitter.com/brandonfish/status/1519726230936993792
Un problème dont je me souviens était que certaines gems dépendaient de la thread-safety de Hash, pour laquelle nous avons une solution générale mais qui n’est pas encore fusionnée/intégrée dans TruffleRuby. D’un autre côté, il est très rarement correct d’utiliser simplement Hash de manière concurrente, cela conduit souvent à masquer des bugs de concurrence de manière plus difficile à trouver. Il est donc sans doute préférable de simplement corriger les gems qui en dépendent, mais cela prend du temps.
Nous devons évaluer les performances, et pour que cela soit significatif/représentatif, nous devrions évaluer en multi-thread. Cela nécessite A way to mark C extensions as thread-safe, so they can be executed in parallel · Issue #2136 · truffleruby/truffleruby · GitHub
J’espère que cela sera résolu rapidement ![]()
À quel point pensez-vous que les indicateurs de performance de Discourse s’amélioreront avec l’utilisation de TruffleRuby (TTFB, performances globales, etc.) ?
Brandon est-il sur ce serveur ?
@Matthias_Schuster Une recherche rapide donne
ici sur Meta.