Diskurs über Truffleruby

Hat jemand versucht, Discourse auf TruffleRuby laufen zu lassen?
Sinnvoll, in diese Richtung zu schauen?

2 „Gefällt mir“

Interessant. Ich frage mich, warum sie sich dafür entschieden haben, einen Fork zu erstellen, anstatt beizutragen.

2 „Gefällt mir“

@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

1 „Gefällt mir“

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?

1 „Gefällt mir“

Kurze Antwort: Nein, es funktioniert derzeit nicht mit TruffleRuby.

5 „Gefällt mir“

@gerhard Danke für den Link, das wird es mir erleichtern, die bestehenden Probleme zu verstehen.

1 „Gefällt mir“

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

4 „Gefällt mir“

Dieses Problem wurde vor 5 Tagen behoben.

2 „Gefällt mir“

Leider wird Mastodon, nicht Discourse, das erste sein, das an TruffleRuby arbeitet :dotted_line_face:

1 „Gefällt mir“

@volanar ja - ich habe im Moment keine Zeit, auf diese Frage zurückzukommen - intensiver Hauptjob.

1 „Gefällt mir“

@eregon ist hier, und mir sind keine Blocker bei Truffle bekannt. Wir haben letztes Jahr die Korrekturen für Mini Racer zusammengeführt.

1 „Gefällt mir“

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.

3 „Gefällt mir“

Ich hoffe, es wird schnell gelöst :face_with_peeking_eye:
Wie stark schätzen Sie die Leistungsindikatoren von Discourse bei der Verwendung von TruffleRuby (TTFB, Gesamtleistung usw.)?

2 „Gefällt mir“

Ist Brandon auf diesem Server?

@Matthias_Schuster Eine schnelle Suche bringt Folgendes hervor:

hier auf Meta.

2 „Gefällt mir“