Version française
Home     About     Download     Resources     Contact us    
Browse thread
[Caml-list] Meta module in findlib and the need for namespaces
[ Home ] [ Index: by date | by threads ]
[ Search: ]

[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
Date: -- (:)
From: Michaël_Grünewald <michael-grunewald@w...>
Subject: [Caml-list] Re: We should start using -pack by default when building libraries, (was : Re: Meta module in findlib and the need for namespaces)
Sven LUTHER <luther@dpt-info.u-strasbg.fr> writes:

> > So every unmaintained code and Makefiles becomes all suddenly obsoletes ?
> 
> unmaintained code is not good to have around anyway, it will most
> probably break some in the future anyway (when there is a ocaml 4.0 for
> example ?).

Oc :)

> > 
> > This is a really bad thing to do things like this, and it is so easy to
> > write wrappers scripts over the compiler, so it has defaults suitable for
> > your needs ... There is no need to modify standards for that.
> 
> But the change is only adding the appropriate open at the top of the
> files, i guess it could even be done with automatic translation or
> something such.
> 
> Also, i guess the Pervasive library will be opened by default, and maybe
> also the standard library.
> 
> This namespace problem is one that ocaml was having since a long time,
> and which will become only worse as time passes and more library will be
> written. So are you saying that we should stay with something that will
> cause more and more problem as time passes, just because some obsolete
> and unmaintained code will break in this case ? 
> 
> Anyway, this can be done in a painless incremental way.
> 
> We decide that starting now, all libraries should use the -pack option
> when it is possible, and slowly migrate to using that for the existing
> code, but still keep the default behavior as usual. Later, when we are
> satisfied that it works well and most libraries are ported to using
> -pack (and the acompanying code using it also), we can modify the
> behavior to use -pack by default for libraries.

But what if you compile only one module ? If you compile a.ml 
ocamlc -c -o unnom.cmo a.cmo
will act like
ocamlc -pack -o unnom.cmo -c a.cmo and 
i will have to access the A module through Unnom.A which is very disturbing,
isn't it ?

I cannot understand why you wish a so strange behaviour, and

- think that it is disturbing for beginners that use a compiler for the
  first time, and ask them to read more doc on something that is not clearly
  needed, so it makes more magic

- wonder why you do not want use something like a makefile, and change your
  compiler with $(OCAMLC) and having `OCAMLC=ocamlc -pack' if you really
  find it useful. 

- am leaded to think you try to set something that will coerce the users to
  use a special type of organisation in their developpement (such as
  namespace), in the ways of passivity, so that default behaviour is oc, and
  since it is easier to do nothing than to do something, default will be
  followed. This way has a lot of horrible names i do not want to write
  here. It is better to convince every one this design is a good and shioul
  be used, because people must do things they want (keywords are they and
  want).

> And btw, it is more natural to write, for example Gdk.Event.Button than
> GdkEvent.Button, as we do now, don't you think ?

I do think so. But what has it to do with the `pack option enabled by
default' ?

> > > That said ...
> > > 
> > > John Carr <jfc@MIT.EDU> Wrote :
> > > 
> > > | OCaml 3.06 does not support -pack when using native code on a system
> > > | without the GNU linker.  If you release software that depends on -pack,
> > > | I will not be able to use it.
> > > 
> > > Well, this would cause a problem, which need to be solved before -pack
> > > is supported as standard. What are exactly the cases were it causes
> > > problem, (AIX when not using the GNU linker, i guess, but also maybe
> > > windows ?) and is there any chance this can be solved soonly ?
> > > 
> > > Alternatively, this could be a feature that could be enabled/disabled at
> > > build time ?
> > 
> > E.g. with the `-pack' option ? :)
> 
> At build time of the ocaml compiler suite, with a configure option, so
> that you could build an ocaml suite to either use -pack by default or
> not, and a ocamlc option to return the default used pack option, so you
> could use it to write the libraries accordyingly (well, maybe this is
> not easily).

This sounds hairy (i mean: i am frightened !) ! 

How can you write Makefile that can compile an application on any
installation, when the change you eask about is applied (if i understand
it). 

you determine if the default behaviour is to pack or not to
you set a variable OCAMLC according to what you expect the compiler to do.
you use the OCAMLC variable in the place of `ocamlc' program

When it is not, and you want the apck option being ysed:
you set a variable OCAMLC=ocamlc -pack
you use the OCAMLC variable in the place of `ocamlc' program

What is the simplest ? 

As you may noticed, i REALLY do not understand WHY you want the pack option
enabled by default (and it sounds really stupid to me, as i tried to
demonstrate it. I am not professional developper, so my point of view on
these problems might be more `naive' than yours, so be patient ... :) )

Friendly,
-- 
Michaël Grünewald <michael-grunewald@wanadoo.fr>  - RSA PGP Key ID: 0x20D90C12
-------------------
To unsubscribe, mail caml-list-request@inria.fr Archives: http://caml.inria.fr
Bug reports: http://caml.inria.fr/bin/caml-bugs FAQ: http://caml.inria.fr/FAQ/
Beginner's list: http://groups.yahoo.com/group/ocaml_beginners