Discorso su Truffleruby

Qualcuno ha provato a far girare Discourse su truffleruby?
Ha senso guardare in questa direzione?

2 Mi Piace

Interessante. Mi chiedo perché abbiano deciso di fare un fork invece di contribuire.

2 Mi Piace

@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

1 Mi Piace

Sembra affascinante. Ti aspetti di poter eseguire il codice esistente di Discourse senza modifiche significative? Che tipo di modifiche potrebbero essere necessarie?

1 Mi Piace

Risposta breve: No, al momento non funziona su TruffleRuby.

5 Mi Piace

@gerhard Grazie per il link, mi sarà più facile comprendere le problematiche esistenti.

1 Mi Piace

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).

4 Mi Piace

Questo problema è stato risolto 5 giorni fa.

2 Mi Piace

Purtroppo, mastodon, non discourse, sarà il primo a funzionare su truffleruby :dotted_line_face:

1 Mi Piace

@volanar sì - non ho abbastanza tempo per tornare su questa domanda adesso - lavoro a tempo pieno intensivo.

1 Mi Piace

@eregon è qui e non sono a conoscenza di alcun blocco su truffle, abbiamo unito le correzioni per mini racer l’anno scorso

1 Mi Piace

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

3 Mi Piace

Spero che venga risolto rapidamente :face_with_peeking_eye:
Quanto pensi che miglioreranno gli indicatori di performance di Discourse con l’uso di truffleruby (TTFB, prestazioni generali, ecc.)?

2 Mi Piace

C’è Brandon su questo server?

@Matthias_Schuster Una rapida ricerca porta a

qui su Meta.

2 Mi Piace