Browse thread
Retyping module to a new signature
-
Piotr Wieczorek
-
Jean-Marie Gaillourdet
- Piotr Wieczorek
-
Jean-Marie Gaillourdet
[
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: | -- (:) |
| From: | Piotr Wieczorek <p.wieczorek@e...> |
| Subject: | Re: [Caml-list] Retyping module to a new signature |
> Hi, > > On 28.06.2006, at 12:49, Piotr Wieczorek wrote: > >> Hi! >> I'm trying for quite a time, to make patch to Ocaml compiler which makes >> possible taking a bytecompiled module and producing identical module but >> conforming to a new signature. >> I've used some code from bytepackager to calculate coercion and copy >> bytecode from original module to target one. >> It works ok. But if order of functions in target signature is different >> then in source signature, calling a function may cause not running right >> one, but another. >> Can you tell me what may I be doing wrong, or wether what i'm trying to >> accomplish is possible. >> > > Why do you try do that in the first place? Let us assume you have a > module Foo which is stored in byte code file foo.cmo, which was compiled > frome the file foo.ml > - -- foo.ml -- > let foo x y= x + y > > let bar x = x > - ------------ > > If you want to constraint Foo to a module Bar which includes only the > first function you could use the following source: > - -- bar.mli ---- > val foo : int -> int -> int > - --------------- > - -- bar.ml ----- > include Foo > - --------------- > > I compiled everything with: > > $ ocamlc foo.ml > $ ocamlc bar.mli > $ ocamlc foo.cmo bar.ml > > The first step is in your step eventually not necessary, because you > wanted to start with a binary module. > Hope this helps. > > Best regards, > Jean-Marie Well, imagine following situation I got program as bunch of bytecompiled modules. Some of them are third-party libraries. Thereis new version of library released with compatible but not necessary identical signatures. I want now to have module with identical name as source module but consistent with new signature. Using Your method, I think, I cannot use the name name of new module as of the source module. Piotr Wieczorek ------------------------------------------------------------------------ CIEP?E KRAJE - CIEP?E MORZA. Szukasz atrakcyjnego wypoczynku w przyst?pnej cenie, zapoznaj si? z nasz? ofert?. ZAPRASZAMY www.skarpatravel.pl