From: Jesse G. <je...@wi...> - 2004-07-20 22:15:35
|
Hello, Is a version of extlib that is compatible with 3.08 available yet? I'm running into a lot of problems in bitSet.ml with external references like "create_string","blit_string",etc... needing to be renamed "caml_create_string","caml_blit_string",etc... -- Jesse Guardiani, Systems Administrator WingNET Internet Services, P.O. Box 2605 // Cleveland, TN 37320-2605 423-559-LINK (v) 423-559-5145 (f) http://www.wingnet.net |
From: Jesse G. <je...@wi...> - 2004-07-23 14:17:43
|
On Wednesday 21 July 2004 03:10, you wrote: > > Hello, > > > > Is a version of extlib that is compatible with 3.08 available yet? > > > > I'm running into a lot of problems in bitSet.ml with external references > > like "create_string","blit_string",etc... needing to be renamed > > "caml_create_string","caml_blit_string",etc... > > The CVS version is up-to-date. > I will make an official release when I have some spare time (if someone > want to be release manager on SourceForge, please drop me an email). > > Nicolas Cannasse Yes, the CVS version works great. Could you explain to me how you fixed it? I see that you prepended a percent sign to all of the externals. Is this an ocaml compiler feature? Or is it being preprocessed by sed or something? I'm guessing that this allows extlib to compile under 3.07 and 3.08. I've seen a few other projects wrestling with this issue, so if you could explain what you did then I can help them make their projects compile on 3.07 and 3.08 too. Thanks! -- Jesse Guardiani, Systems Administrator WingNET Internet Services, P.O. Box 2605 // Cleveland, TN 37320-2605 423-559-LINK (v) 423-559-5145 (f) http://www.wingnet.net |
From: Nicolas C. <war...@fr...> - 2004-07-23 15:07:45
|
> > The CVS version is up-to-date. > > I will make an official release when I have some spare time (if someone > > want to be release manager on SourceForge, please drop me an email). > > > > Nicolas Cannasse > > Yes, the CVS version works great. Could you explain to me how you fixed > it? I see that you prepended a percent sign to all of the externals. Is this > an ocaml compiler feature? Or is it being preprocessed by sed or something? There is two kind of externals, "real" externals : they have a primitive name. This kind of primitive : external imake : int -> int -> 'a intern = "obj_is_block" need now to be prefixed with "caml_" in order to compiler under 3.08 : external imake : int -> int -> 'a intern = "caml_obj_is_block" but was also used by the Obj module, so I wrote : let imake tag len = (Obj.magic (Obj.new_block tag len) : 'a intern) so it use current Obj module primitive , with an additional access per-call tradeoff. Other externals, the ones prexifed with "%" are built-in directly into the compiler, so does not actually wrap a C primitive, they are then > I'm guessing that this allows extlib to compile under 3.07 and 3.08. I've > seen a few other projects wrestling with this issue, so if you could explain > what you did then I can help them make their projects compile on 3.07 and > 3.08 too. > > Thanks! They need to use the same trick and check where in OCaml stdlib the primitive they need is defined. Nicolas Cannasse |
From: Jesse G. <je...@wi...> - 2004-07-23 19:47:37
|
Nicolas Cannasse wrote: >> > The CVS version is up-to-date. >> > I will make an official release when I have some spare time (if someone >> > want to be release manager on SourceForge, please drop me an email). >> > >> > Nicolas Cannasse >> >> Yes, the CVS version works great. Could you explain to me how you fixed >> it? I see that you prepended a percent sign to all of the externals. Is > this >> an ocaml compiler feature? Or is it being preprocessed by sed or > something? > > There is two kind of externals, "real" externals : they have a primitive > name. > This kind of primitive : > external imake : int -> int -> 'a intern = "obj_is_block" > need now to be prefixed with "caml_" in order to compiler under 3.08 : > external imake : int -> int -> 'a intern = "caml_obj_is_block" > but was also used by the Obj module, so I wrote : > let imake tag len = (Obj.magic (Obj.new_block tag len) : 'a intern) > so it use current Obj module primitive , with an additional access > per-call tradeoff. > > Other externals, the ones prexifed with "%" are built-in directly into the > compiler, so does not actually wrap a C primitive, they are then This sentence looks truncated. Is there more? >> I'm guessing that this allows extlib to compile under 3.07 and 3.08. I've >> seen a few other projects wrestling with this issue, so if you could > explain >> what you did then I can help them make their projects compile on 3.07 and >> 3.08 too. >> >> Thanks! > > They need to use the same trick and check where in OCaml stdlib the > primitive they need is defined. > > Nicolas Cannasse > > > > ------------------------------------------------------- > This SF.Net email is sponsored by BEA Weblogic Workshop > FREE Java Enterprise J2EE developer tools! > Get your free copy of BEA WebLogic Workshop 8.1 today. > http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click -- Jesse Guardiani, Systems Administrator WingNET Internet Services, P.O. Box 2605 // Cleveland, TN 37320-2605 423-559-LINK (v) 423-559-5145 (f) http://www.wingnet.net |
From: Nicolas C. <war...@fr...> - 2004-07-23 20:08:10
|
> > This sentence looks truncated. Is there more? My mistake, "Other externals, the ones prexifed with "%" are built-in directly into the compiler, so does not actually wrap a C primitive, they are then not causing linking problems and have not been renamed with the 'caml_' prefix in 3.08" NC |
From: Jesse G. <je...@wi...> - 2004-07-23 20:19:16
|
Nicolas Cannasse wrote: >> >> This sentence looks truncated. Is there more? > > My mistake, > > "Other externals, the ones prexifed with "%" are built-in directly into > the compiler, so does not actually wrap a C primitive, they are then not > causing linking problems and have not been renamed with the 'caml_' prefix > in 3.08" I'm sorry to keep bothering you, but what does the percent sign *DO*? Is there a page in the 3.08 manual that describes it? -- Jesse Guardiani, Systems Administrator WingNET Internet Services, P.O. Box 2605 // Cleveland, TN 37320-2605 423-559-LINK (v) 423-559-5145 (f) http://www.wingnet.net |