Version française
Home     About     Download     Resources     Contact us    
Browse thread
Retyping module to a new signature
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ 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