Browse thread
Bytecode object files structure
-
Pierre-Etienne Meunier
- Alain Frisch
- Yann_Régis-Gianas
- Pierre-Etienne Meunier
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: | 2006-11-13 (11:34) |
From: | Pierre-Etienne Meunier <pierreetienne.meunier@e...> |
Subject: | Re: [Caml-list] Bytecode object files structure |
Hello, I'd like to write an assembler, to be able to understand how the vm really works. I've to work on this for a school project (a compiler, I want it to output caml bytecode object files). I've understood that the data part, after the code itself, was generated using output_value (I didn't know this function before). What I don't get now are the cu_reloc, cu_primitives and cu_imports fields of the compilation_unit type. If you can help on this, Thanks P.E. Meunier On Monday 13 November 2006 11:53, Xavier Clerc wrote: > Hello, > > As I read a substancial part of the ocaml source code, I may help you > understanding file formats. > Could you be more precise about what you are particularly interested > in : > - file type : bytecode file, cmo file, cmi file ? > - code or data section of these files ? > > May I also ask you what you are trying to do using these elements ? > > > Cordially, > > Xavier Clerc > > Le 12 nov. 06 à 15:42, Pierre-Etienne Meunier a écrit : > > Hi, > > > > I'm trying to decrypt .cmo files produced by simple programs, such as > > 1+1;; > > or > > print_string "string";; > > or > > List.length [1;2;3;4;5];; > > > > According to the source of Ocaml, there's something called the > > "cmo_magic_number", systematically written at the beginning of > > all .cmo > > files. Does it have a real function for executing the programs, or > > is it just > > a way to make sure the file contains ocaml bytecode ? > > > > Then, there's the address of what seems to be the last bytecode > > instruction. > > Then, the bytecode instructions, as documented in opcodes.ml. > > > > After that, I can't understand anything : there vaguely seems to be > > some > > information related to linking or so... What is the precise > > structure of this > > part ? Is there some kind of a bytecode assembler ? > > > > Thanks, > > P.E. Meunier (pierreetienne.meunier@ens-lyon.fr) > > > > _______________________________________________ > > Caml-list mailing list. Subscription management: > > http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list > > Archives: http://caml.inria.fr > > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > > Bug reports: http://caml.inria.fr/bin/caml-bugs