caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Re: [Caml-list] Namespace clash
@ 2006-02-09 19:32 yoann padioleau
  0 siblings, 0 replies; 5+ messages in thread
From: yoann padioleau @ 2006-02-09 19:32 UTC (permalink / raw)
  To: Damien Doligez, Ocaml

> > I had not thought about this... Actually, it is not a bad idea, at  
> > least, in my build system. Ideally, the build system would have to  
> > have a way of mangling the library namespace by packaging up  
> > findlib-managed libraries in a single package. Then, it would have  
> > to isse the desired -open directives to an ad-hoc camlp4 syntax  
> > extension. It's a bit of a hack, but it could work. I wonder if it  
> > is general enough a solution to become mainstream, though.
> 
> It doesn't have to be a camlp4 extension, you could implement Alain's  
> trick
> with a preprocessor written in Bourne shell.  But it doesn't work  
> when the
> program is already compiled with -pp, since the OCaml compiler doesn't
> allow for a pipeline of preprocessors.

You still can invent a script foo that successfully call your first bourne shell script bar and then
call camlp4.
Then you just pass -pp foo    to ocaml.

Did I overlook something ? 

> 
> -- Damien
> 
> _______________________________________________
> 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
> 
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] Namespace clash
  2006-02-09 11:12   ` Alessandro Baretta
@ 2006-02-09 14:52     ` Damien Doligez
  0 siblings, 0 replies; 5+ messages in thread
From: Damien Doligez @ 2006-02-09 14:52 UTC (permalink / raw)
  To: Ocaml


On Feb 9, 2006, at 12:12, Alessandro Baretta wrote:

> I had not thought about this... Actually, it is not a bad idea, at  
> least, in my build system. Ideally, the build system would have to  
> have a way of mangling the library namespace by packaging up  
> findlib-managed libraries in a single package. Then, it would have  
> to isse the desired -open directives to an ad-hoc camlp4 syntax  
> extension. It's a bit of a hack, but it could work. I wonder if it  
> is general enough a solution to become mainstream, though.

It doesn't have to be a camlp4 extension, you could implement Alain's  
trick
with a preprocessor written in Bourne shell.  But it doesn't work  
when the
program is already compiled with -pp, since the OCaml compiler doesn't
allow for a pipeline of preprocessors.

-- Damien


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] Namespace clash
  2006-02-09  5:08 ` Alain Frisch
@ 2006-02-09 11:12   ` Alessandro Baretta
  2006-02-09 14:52     ` Damien Doligez
  0 siblings, 1 reply; 5+ messages in thread
From: Alessandro Baretta @ 2006-02-09 11:12 UTC (permalink / raw)
  To: Alain Frisch, Ocaml, metaocaml-hackers-l

Alain Frisch wrote:
> Alessandro Baretta wrote:
> 
>> Probably, all that ocaml lacks to properly handle namespacing is a 
>> -open directive, telling the compiler to imply a "open Xxxx" at the 
>> beginning of all .ml and .mli files on the command line. Given this 
>> compiler flag, the build system could take care of everything.
> 

I had not thought about this... Actually, it is not a bad idea, at least, in my 
build system. Ideally, the build system would have to have a way of mangling the 
library namespace by packaging up findlib-managed libraries in a single package. 
Then, it would have to isse the desired -open directives to an ad-hoc camlp4 
syntax extension. It's a bit of a hack, but it could work. I wonder if it is 
general enough a solution to become mainstream, though.

Alex

-- 
*********************************************************************

Ing. Alessandro Baretta

Studio Baretta
http://studio.baretta.com/

Consulenza Tecnologica e Ingegneria Industriale
Technological Consulting and Industrial Engineering

tel. +39 02 370 111 55
fax. +39 02 370 111 54


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] Namespace clash
  2006-02-08 13:28 Alessandro Baretta
  2006-02-08 23:41 ` [Caml-list] " Jonathan Roewen
@ 2006-02-09  5:08 ` Alain Frisch
  2006-02-09 11:12   ` Alessandro Baretta
  1 sibling, 1 reply; 5+ messages in thread
From: Alain Frisch @ 2006-02-09  5:08 UTC (permalink / raw)
  To: Alessandro Baretta; +Cc: OCaml

Alessandro Baretta wrote:
> Probably, all that ocaml lacks to properly handle namespacing is a -open 
> directive, telling the compiler to imply a "open Xxxx" at the beginning 
> of all .ml and .mli files on the command line. Given this compiler flag, 
> the build system could take care of everything.

Couldn't you use the -pp option to achieve the same behavior?

-- Alain


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [Caml-list] Namespace clash
  2006-02-08 13:28 Alessandro Baretta
@ 2006-02-08 23:41 ` Jonathan Roewen
  2006-02-09  5:08 ` Alain Frisch
  1 sibling, 0 replies; 5+ messages in thread
From: Jonathan Roewen @ 2006-02-08 23:41 UTC (permalink / raw)
  To: Alessandro Baretta; +Cc: OCaml, metaocaml-hackers-l

I made such a modification to ocaml compiler to do this, and submitted
my patch to mantis. I don't know if Xavier et al care too much about
my patch, but it is fairly trivial to implement (a string list ref,
and a fold).

Jonathan

On 2/9/06, Alessandro Baretta <a.baretta@barettadeit.com> wrote:
> Gentlemen--most specifically Xavier,
>
> Every other year I have mentioned on this list that I have encountered a module
> name clash problem, rendering some bit of code unusable and my life very
> miserable. It happened again today. Hence, this post, to help me relieve my
> frustration.
>
> Luckily, today I control one of the two modules whose names collide, so I can
> easily overcome the problem by renaming one file and changing all relevant
> references to it in a relativeley self-contained sub-project of my full source
> tree. Were it otherwise, I'd be in trouble. Let me state that I am currently
> managing a source tree comprising approximately ten man years of work and
> 236klocs as of today, including generated code. When a project grows to this
> size, it is relatively easy to produce such name clashes.
>
> The clashing modules are Liveness in the metanative.cmxa library of the
> MetaOcaml project and a Liveness module in a PLC application based on my
> AS/Xcaml. I realize that "liveness" is a meaningful word to a compiler author,
> but it also is to a automation engineer. It is doubtful that either the
> MetaOcaml team or I have a greater right to this name, and it is unreasonable to
> renounce many useful words just because they might be of common interest.
>
> Xavier's official position until now has been the following: "You guys have the
> -pack option; use it." This is probably the best solution overall, but it is
> hardly reconcilable with the fact that out there in the wild--and in my own
> repository--there are truckloads and truckloads of code that don't use it and
> that would need to be modified to use it, because of the need to explicity open
> in the projects source files all referenced libraries. Hence, it is impossibile
> for the build system to automatically manage namespacing issues.
>
> Probably, all that ocaml lacks to properly handle namespacing is a -open
> directive, telling the compiler to imply a "open Xxxx" at the beginning of all
> .ml and .mli files on the command line. Given this compiler flag, the build
> system could take care of everything.
>
> I'm sure there are other ways to solve this issue, and I'm non really trying to
> sell anyone my idea. As I stated, I'm just writing to relieve my frustration.
>
> Alex
>
> --
> *********************************************************************
>
> Ing. Alessandro Baretta
>
> Studio Baretta
> http://studio.baretta.com/
>
> Consulenza Tecnologica e Ingegneria Industriale
> Technological Consulting and Industrial Engineering
>
> tel. +39 02 370 111 55
> fax. +39 02 370 111 54
>
> _______________________________________________
> 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
>


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2006-02-09 19:32 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2006-02-09 19:32 [Caml-list] Namespace clash yoann padioleau
  -- strict thread matches above, loose matches on Subject: below --
2006-02-08 13:28 Alessandro Baretta
2006-02-08 23:41 ` [Caml-list] " Jonathan Roewen
2006-02-09  5:08 ` Alain Frisch
2006-02-09 11:12   ` Alessandro Baretta
2006-02-09 14:52     ` Damien Doligez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).