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

È stato utile?

Soluzione

Dato il contesto, sembra abbastanza chiaro che significa in rubino , non puoi semplicemente rilasciare qualcosa di pazzo come:

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top