¿Alguien ha probado tener Discourse en truffleruby?
¿Tiene sentido mirar en esta dirección?
Interesante. Me pregunto por qué decidieron hacer un fork en lugar de contribuir.
@merefield Truffleruby es una implementación de Ruby para GraalVM desarrollada por el equipo de Oracle. Ofrece un buen rendimiento y compatibilidad con otros lenguajes en GraalVM.
No es un fork.
Tengo algo de experiencia con Rails en Truffleruby y quiero probar Discourse la próxima semana.
Alguna información adicional: Running Rack and Rails Faster with TruffleRuby - Speaker Deck
Suena fascinante. ¿Crees que podrías ejecutar la base de código existente de Discourse sin cambios significativos? ¿Qué tipo de cambios podrían ser necesarios?
Respuesta corta: No, actualmente no funciona en TruffleRuby.
@gerhard Gracias por el enlace, me ayudará a entender mejor los problemas existentes.
El bloqueo actual es mini_racer, ver mini_racer: `rb_context_init_unsafe': External function cannot be found. · Issue #1827 · truffleruby/truffleruby · GitHub
Dicho esto, al menos todas las gemas se instalan en TruffleRuby; lo verificamos en CI (para una versión de Discourse ligeramente más antigua).
Este problema se solucionó hace 5 días.
Lamentablemente, Mastodon, no Discourse, será el primero en funcionar con TruffleRuby ![]()
@volanar sí - no tengo tiempo suficiente para volver a esta pregunta ahora mismo - trabajo intensivo a tiempo completo.
@eregon está aquí, y no tengo conocimiento de ningún bloqueo en truffle, fusionamos las correcciones para mini racer el año pasado.
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
Espero que se resuelva rápidamente ![]()
¿Cuánto crees que mejorarán los indicadores de rendimiento de Discourse con el uso de TruffleRuby (TTFB, rendimiento general, etc.)?
¿Está Brandon en este servidor?
@Matthias_Schuster Una búsqueda rápida muestra
aquí en Meta.