Discurso sobre Truffleruby

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

2 Me gusta

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

2 Me gusta

@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 me gusta

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 me gusta

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

5 Me gusta

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

1 me gusta

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 Me gusta

Este problema se solucionó hace 5 días.

2 Me gusta

Lamentablemente, Mastodon, no Discourse, será el primero en funcionar con TruffleRuby :dotted_line_face:

1 me gusta

@volanar sí - no tengo tiempo suficiente para volver a esta pregunta ahora mismo - trabajo intensivo a tiempo completo.

1 me gusta

@eregon está aquí, y no tengo conocimiento de ningún bloqueo en truffle, fusionamos las correcciones para mini racer el año pasado.

1 me gusta

Brandon puso Discourse en funcionamiento hace un año:
https://twitter.com/brandonfish/status/1486755128577253376
https://twitter.com/brandonfish/status/1519726230936993792

Un problema, si mal no recuerdo, fue que algunas gemas dependen de que Hash sea seguro para subprocesos (thread-safe), para lo cual tenemos una solución general pero que aún no se ha fusionado/integrado en TruffleRuby. Por otro lado, es muy raro que sea correcto usar Hash de forma concurrente, a menudo resulta en ocultar errores de concurrencia de maneras más difíciles de encontrar. Por lo tanto, es discutiblemente mejor simplemente corregir las gemas que dependen de eso, pero eso lleva tiempo.
Necesitamos evaluar el rendimiento y, para que sea significativo/representativo, deberíamos evaluar con subprocesos múltiples. Eso necesita A way to mark C extensions as thread-safe, so they can be executed in parallel · Issue #2136 · truffleruby/truffleruby · GitHub

3 Me gusta

Espero que se resuelva rápidamente :face_with_peeking_eye:
¿Cuánto crees que mejorarán los indicadores de rendimiento de Discourse con el uso de TruffleRuby (TTFB, rendimiento general, etc.)?

2 Me gusta

¿Está Brandon en este servidor?

@Matthias_Schuster Una búsqueda rápida muestra

aquí en Meta.

2 Me gusta