2016-05-06 5 views
0

Ich beginne mit mruby, und ich brauche ein wenig in der Erzeugung von lesbarem .c-Code mit mrbc. Ich habe folgende this article:mruby: Generierung von lesbarem c-Code

hier erwähnt wird:

$ mruby/bin/mrbc -Cinit_tester test_program.rb 

produzieren test_program.c mit Inhalt.

aber auf meinem Rechner, wenn ich diesen Befehl ausführen heißt es:

MRBC: Ausgabedatei angegeben werden, sollten mehrere Dateien

Dann habe ich versucht

$ mruby/bin/mrbc -Binit_tester test_program.rb 

zu erstellen, die funktioniert, erzeugt c-Dateien, aber sein Inhalt ist nur Bytecode:

#include <stdint.h> 
const uint8_t init_tester[] = {0x45,0x54,0x49,0x52,0x30,0x30,0x30,0x33,0x73,0x0d,0x00,0x00,0x00,0x65,0x4d,0x41,0x54,0x5a,0x30,0x30,0x30,0x30,0x49,0x52,0x45,0x50,0x00,0x00,0x00,0x47,0x30,0x30,0x30,0x30,0x00,0x00,0x00,0x3f,0x00,0x01,0x00,0x04,0x00,0x00,0x00,0x00,0x00,0x04,0x06,0x00,0x80,0x00,0x3d,0x00,0x00,0x01,0xa0,0x00,0x80,0x00,0x4a,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x0b,0x68,0x65,0x6c,0x6c,0x6f,0x20,0x77,0x6f,0x72,0x6c,0x64,0x00,0x00,0x00,0x01,0x00,0x04,0x70,0x75,0x74,0x73,0x00,0x45,0x4e,0x44,0x00,0x00,0x00,0x00,0x08, }; 

Das ist im Grunde Byte-Code des mruby-Codes, den wir in c-Code haben.

Wenn Sie den Blog m unter Abschnitt Lesbarer C-Code (.c) betrachten, sollte dies eigentlich C-Code generiert haben.

Warum erzeugt der MRCC keinen lesbaren C-Code?

+0

Das Beispiel auf dieser Seite ist nicht durch die Optionen in der Dokumentation gesichert: http://mruby.org/docs/articles/executing-ruby-code-with-mruby.html –

Antwort

0

Warum erzeugt der MRCC keinen lesbaren c-Code?

Nun, mrbc ein Compiler ist das Binärformat von Ruby Code mit RiteVM zu erzeugen versteht, so gibt es keine Möglichkeit, einen lesbaren Code C zu erzeugen.

Statt mit -v Option können Sie AST und VM-Codes des Codes sehen (ich ziehe -c Option auch da mrbc*.mrb Dateien erzeugen, ohne sie zu übergeben).