Discours sur Truffleruby

Has anyone tried having Discourse on the truffleruby?
Does it make sense to look in this direction?

2 « J'aime »

Interesting. Why did they decide to fork not contribute I wonder?

2 « J'aime »

@merefield Truffleruby is an implementation of Ruby for GraalVM by Oracle guys. Good performance and interoperability with other languages on GraalVM.
It’s not a fork.

I have some experience with Rails on Truffleruby and want to check Discourse next week.

Some additional information - Running Rack and Rails Faster with TruffleRuby - Speaker Deck

1 « J'aime »

Sounds fascinating. Would you expect to be able to run the existing Discourse codebase without significant changes? What kind of changes might be needed?

1 « J'aime »

Short answer: No, it currently doesn’t work on TruffleRuby.

5 « J'aime »

@gerhard Thanks for the link, It will be easier for me to understand existing issues.

1 « J'aime »

The current blocker is mini_racer, see https://github.com/oracle/truffleruby/issues/1827

That said, at least all gems install on TruffleRuby, we test that in CI (for some slightly older Discourse).

4 « J'aime »

Ce problème a été résolu il y a 5 jours.

2 « J'aime »

Malheureusement, mastodon, et non discourse, sera le premier à fonctionner sur truffleruby :dotted_line_face:

1 « J'aime »

@volanar ouais - je n’ai pas assez de temps pour revenir sur cette question maintenant - journée de travail intensive.

1 « J'aime »

@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

1 « J'aime »

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

3 « J'aime »

J’espère que cela sera résolu rapidement :face_with_peeking_eye:
À quel point pensez-vous que les indicateurs de performance de Discourse s’amélioreront avec l’utilisation de TruffleRuby (TTFB, performances globales, etc.) ?

2 « J'aime »

Brandon est-il sur ce serveur ?

@Matthias_Schuster Une recherche rapide donne

ici sur Meta.

2 « J'aime »