Hat jemand versucht, Discourse auf TruffleRuby laufen zu lassen?
Sinnvoll, in diese Richtung zu schauen?
Interessant. Ich frage mich, warum sie sich dafür entschieden haben, einen Fork zu erstellen, anstatt beizutragen.
@merefield Truffleruby ist eine Implementierung von Ruby für GraalVM von den Oracle-Mitarbeitern. Gute Performance und Interoperabilität mit anderen Sprachen auf GraalVM.
Es ist kein Fork.
Ich habe einige Erfahrung mit Rails auf Truffleruby und möchte nächste Woche Discourse ausprobieren.
Einige zusätzliche Informationen – Running Rack and Rails Faster with TruffleRuby - Speaker Deck
Das klingt faszinierend. Würden Sie erwarten, dass die bestehende Discourse-Codebasis ohne wesentliche Änderungen ausgeführt werden kann? Welche Art von Änderungen könnte erforderlich sein?
Kurze Antwort: Nein, es funktioniert derzeit nicht mit TruffleRuby.
@gerhard Danke für den Link, das wird es mir erleichtern, die bestehenden Probleme zu verstehen.
Der aktuelle Blocker ist mini_racer, siehe mini_racer: `rb_context_init_unsafe': External function cannot be found. · Issue #1827 · truffleruby/truffleruby · GitHub
Trotzdem lassen sich zumindest alle Gems auf TruffleRuby installieren; wir testen dies in CI (für eine etwas ältere Version von Discourse).
Dieses Problem wurde vor 5 Tagen behoben.
Leider wird Mastodon, nicht Discourse, das erste sein, das an TruffleRuby arbeitet ![]()
@volanar ja - ich habe im Moment keine Zeit, auf diese Frage zurückzukommen - intensiver Hauptjob.
@eregon ist hier, und mir sind keine Blocker bei Truffle bekannt. Wir haben letztes Jahr die Korrekturen für Mini Racer zusammengeführt.
Brandon hat vor einem Jahr Discourse zum Laufen gebracht:
https://twitter.com/brandonfish/status/1486755128577253376
https://twitter.com/brandonfish/status/1519726230936993792
Ein Problem, wenn ich mich recht erinnere, war, dass einige Gems auf Hash angewiesen sind, das Thread-sicher ist, wofür wir eine allgemeine Lösung haben, die aber in TruffleRuby noch nicht zusammengeführt/integriert ist. Andererseits ist es sehr selten richtig, Hash einfach gleichzeitig zu verwenden, es führt oft dazu, dass Nebenläufigkeitsfehler auf schwerer zu findende Weise verborgen werden. Daher ist es wohl besser, die Gems, die sich darauf verlassen, einfach zu korrigieren, aber das braucht Zeit.
Wir müssen die Leistung benchmarken, und damit diese aussagekräftig/repräsentativ ist, sollten wir Multi-Threading benchmarken. Dafür wird A way to mark C extensions as thread-safe, so they can be executed in parallel · Issue #2136 · truffleruby/truffleruby · GitHub benötigt.
Ich hoffe, es wird schnell gelöst ![]()
Wie stark schätzen Sie die Leistungsindikatoren von Discourse bei der Verwendung von TruffleRuby (TTFB, Gesamtleistung usw.)?
Ist Brandon auf diesem Server?
@Matthias_Schuster Eine schnelle Suche bringt Folgendes hervor:
hier auf Meta.