Qualcuno ha provato a far girare Discourse su truffleruby?
Ha senso guardare in questa direzione?
Interessante. Mi chiedo perché abbiano deciso di fare un fork invece di contribuire.
@merefield Truffleruby è un’implementazione di Ruby per GraalVM realizzata dagli sviluppatori di Oracle. Offre ottime prestazioni e interoperabilità con altri linguaggi su GraalVM.
Non è un fork.
Ho una certa esperienza con Rails su Truffleruby e vorrei provare Discourse la prossima settimana.
Alcune informazioni aggiuntive - Running Rack and Rails Faster with TruffleRuby - Speaker Deck
Sembra affascinante. Ti aspetti di poter eseguire il codice esistente di Discourse senza modifiche significative? Che tipo di modifiche potrebbero essere necessarie?
Risposta breve: No, al momento non funziona su TruffleRuby.
@gerhard Grazie per il link, mi sarà più facile comprendere le problematiche esistenti.
L’attuale blocco è mini_racer, vedi mini_racer: `rb_context_init_unsafe': External function cannot be found. · Issue #1827 · truffleruby/truffleruby · GitHub
Detto questo, almeno tutti i gem si installano su TruffleRuby; lo verifichiamo in CI (per alcune versioni leggermente più vecchie di Discourse).
Questo problema è stato risolto 5 giorni fa.
Purtroppo, mastodon, non discourse, sarà il primo a funzionare su truffleruby ![]()
@volanar sì - non ho abbastanza tempo per tornare su questa domanda adesso - lavoro a tempo pieno intensivo.
@eregon è qui e non sono a conoscenza di alcun blocco su truffle, abbiamo unito le correzioni per mini racer l’anno scorso
Brandon ha avviato Discourse un anno fa:
https://twitter.com/brandonfish/status/1486755128577253376
https://twitter.com/brandonfish/status/1519726230936993792
Un problema, se ricordo bene, era che alcune gem dipendevano da Hash per essere thread-safe, per cui abbiamo una soluzione generale ma non ancora unita/integrata in TruffleRuby. D’altra parte, è molto raramente corretto usare Hash in modo concorrente, spesso si traduce nel nascondere bug di concorrenza in modi più difficili da trovare. Quindi è probabilmente meglio correggere le gem che dipendono da ciò, ma ciò richiede tempo.
Dobbiamo misurare le prestazioni e affinché ciò sia significativo/rappresentativo dovremmo misurare in multi-thread. Ciò richiede A way to mark C extensions as thread-safe, so they can be executed in parallel · Issue #2136 · truffleruby/truffleruby · GitHub
Spero che venga risolto rapidamente ![]()
Quanto pensi che miglioreranno gli indicatori di performance di Discourse con l’uso di truffleruby (TTFB, prestazioni generali, ecc.)?
C’è Brandon su questo server?
@Matthias_Schuster Una rapida ricerca porta a
qui su Meta.