ruby / ruby/ruby.wasm

Gems with native extensions

Offen
#453 7 Kommentare 1 Reaktion 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

Vorherrschende Sprache
Ruby
Sterne
875
Forks
68
Ø Merge
9 T. 5 Std.
Gemergte PRs (30 T.)
1

Beschreibung

Can we use gems with native extensions? I've read somewhere that it is possible, and it makes sense for it to be possible. However, I'm struggling to get even a basic example to compile. There doesn't seem to be any documentation as to how to set it up.

If I try statically linking, I get the error "Could not create Makefile due to some reason". Checking the mkmf log does not yield any useful information.

If I try dynamically linking with RUBY_WASM_EXPERIMENTAL_DYNAMIC_LINKING, I get the error ld: unknown option: -Xlinker

I've created a minimal repo to test: https://github.com/danini-the-panini/rbwasm-foo

If it makes a difference, I'm running on Apple silicon.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, das minimale Beispiel im verlinkten Repository rbwasm-foo zu reproduzieren, und untersuche dann das mkmf-Log sowie die hier beschriebenen Fehler beim static-linking und dynamic-linking. Dokumentiere, ob Gems mit nativen Erweiterungen unterstützt werden, welche Einrichtung erforderlich ist und wie eine erfolgreiche Kompilierung aussehen sollte, einschließlich des Falls Apple silicon.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
ruby, wasm
Bereich
build-system
Issue-Typ
Dokumentation
Schwierigkeit
5/5
Geschätzter Aufwand
Über eine Woche
Aktivitätsstatus
Veraltet
Klarheit
Muss geklärt werden
Anfängerfreundlichkeit
25/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.