Cadere giù in assemblea da rubino mediante c?
-
20-12-2019 - |
Domanda
Dal momento che Ruby ti consente di scendere in c per qualsiasi bit in cui la performance è critica e il rubino cruciale non è all'altezza del compito, e poiché c ti consente di scendere in assemblaggio per lo stesso tipo di circostanza, mi chiedevo sempre se Sarebbe possibile incorporare il linguaggio di assemblaggio all'interno del tuo codice rubino, abbassarsi prima a c e poi dall'interno del codice C cadere fino al montaggio.
Ho sempre sperato che sia stato possibile, ma mai fino ad ora trovato nulla per confermare o negarlo. A causa della ricerca su Qt (e quindi c ++) per un progetto laterale, sono accaduto su una dichiarazione su Confronto di rubino ruby-lang.com con C & C ++ che in Ruby
..
- Non è possibile rilasciare al montaggio
Questo significa semplicemente che non puoi andare direttamente al montaggio o che non puoi farlo attraverso c a tutti? Che dire se stai scrivendo un'estensione per rubino in c: posso presumere che dal momento che è solo c (non incorporato in rubino) puoi ancora usare il montaggio e rubino può ancora usare l'estensione C con assemblaggio in esso? .
Soluzione
Dato il contesto, sembra abbastanza chiaro che significa in
def func1(arr)
arr.map { |v| func2(v) }
end
def func2(val)
asm do
mov ax, 1234h
mov bx, ax
end
end
.
Ruby non può impedirti di usare qualcosa del genere in un oggetto c collegato.
Ma, avendo visto che come esempio, sarebbe una biblioteca piuttosto fresca se qualcuno lo ha fatto.:)