* [Caml-list] The CDK looks marvelous... but...
@ 2002-07-04 0:17 Dave Mason
2002-07-04 11:01 ` Dave Mason
2002-07-05 5:05 ` Alan Schmitt
0 siblings, 2 replies; 7+ messages in thread
From: Dave Mason @ 2002-07-04 0:17 UTC (permalink / raw)
To: caml-list, dmason
Hi,
First off, the CDK is looking good. There is a bunch of really cool
stuff happening there. But it needs some cleanup (which I don't think
would be all that difficult to do, for someone familiar with it).
Let me give you the scenario of my last couple of hours. (I may omit
some of the frustrations, but you'll get the sense of it. If you get
bored, skip to after point 9.)
1) I want to use the stuff in cdk/network, so I check out that
subdirectory. I try a make. It dies in an ugly way, indirectly
saying that it needs the config directory.
2) I go up a level and say `cvs update -d config', then go there and
run configure. But it's trying to put something into camlimages,
which doesn't exist, so it dies again. I go get camlimages, and
some other directory and eventually everything is cool, so I go
back to network and try make again. It wants cdk_config. It's not
in the config directory - too obvious.
3) I go and poke around in the browsable CVS tree. I find it in
tools. So I go up a level again and say `cvs update -d tools',
then go there and say make. It wants OCAML_SRC/boot/ocamlyacc.
But I don't have the ocaml source installed, I installed from the
RPM. I track down that it's in cdk/Makefile.generic in the
dependency for TMPSOURCES, so I edit that line, and do a make in
the tools directory. Everything is cool again, except it tries to
copy the cdk_config binary into cdk/bin, but I don't have that
directory, so I mkdir it, and run make again.... it doesn't copy
the file... and it wouldn't matter anyway because the cdk/bin
directory isn't in my PATH. So I fix it, go back to network and
try again. No-go - it wants unix2.. so I get it.
4) Make doesn't work in unix2...
5) Somewhere there were compiles that needed .cmi files, but there was
no dependency in the Makefile, so I compiled them all by hand.
(Unix2 is one of these).
6) The makefiles use features of tools that presumably exist in the
CVS version of the compiler, but not in the current release version
(like -subdir for ocamlc.opt and ocamldep).
7) Many of the directories in CDK don't even have README files to give
a hint what they might be useful for.
8) I give up and download the whole cdk. I go to the cdk directory
and type make. No go... tools wants to install ocaml from some tar
file! (I figure out that ``make .depend byte opt'' will do close
to what I want, without that stage.)
9) All of this pain was on Linux, for heaven's sake! God forbid I was
trying it on Windows... (not that I'm a fan... but in this case
being able to build on Windows was one of the reasons I was trying
to use CDK in the first place)
Sigh.
There is *so* much potential here.... we're getting close to a
critical mass of code. But I can't even *try* to use a particular
piece of the CDK. It's NOT unreasonable for there to be some
dependencies between parts of the CDK, but it *is* unreasonable for me
to have to (a) (re-)install ocaml from the CVS version; (b) install
all of the CDK, or (c) have the build process die in ugly ways at
every turn if I try to do it incrementally.
I have some specific suggestions for whoever is overall responsible
for the CDK.
1) Let's assume gmake. I assume it's available for Windows.
2) Have the config directory not try to modify files outside itself.
Put cdk_config in the config directory.
3) At the beginning of every makefile put a line like:
DEPENDS_ON=unit1 unit2 ...
Follow this with an include of Makefile code that loops through
DEPENDS_ON and checks for a file called ../unit1/.built,
../unit2/.built, etc. and gives a reasonable error for anything
missing. (It could even offer to load it if there is a ../CVS
directory - it could `cd ..;cvs update -d unit1;cd unit1;make').
4) That makefile should have `all' depend on `.built', and the current
dependencies for `all' should instead depend on .built, and the
recipe for .built should touch the file. (Or add a recipe for `all'
that touches it, and use `all' instead of `.built' in suggestion 3.)
5) Make sure everything possible builds with the current ocaml. There
may be a few parts that don't but they better not be in many
dependency trees.
6) Periodically, try removing all the cdk subdirectories except for
config and the one under test and try a make. Minimize the
gratuitous dependencies.
If nobody else is responsible for this and/or willing to do it, I
wouldn't mind working on it. This isn't quite the PTAN model of
down-loadable components, but it would be a step in that direction.
../Dave
-------------------
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Caml-list] The CDK looks marvelous... but...
2002-07-04 0:17 [Caml-list] The CDK looks marvelous... but Dave Mason
@ 2002-07-04 11:01 ` Dave Mason
2002-07-05 5:05 ` Alan Schmitt
1 sibling, 0 replies; 7+ messages in thread
From: Dave Mason @ 2002-07-04 11:01 UTC (permalink / raw)
To: caml-list
Oops, got the wrong acronym. Should have been CPAN - the Perl
repository.
../Dave
-------------------
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Caml-list] The CDK looks marvelous... but...
2002-07-04 0:17 [Caml-list] The CDK looks marvelous... but Dave Mason
2002-07-04 11:01 ` Dave Mason
@ 2002-07-05 5:05 ` Alan Schmitt
2002-07-05 5:37 ` Alexander V. Voinov
2002-07-05 9:08 ` Markus Mottl
1 sibling, 2 replies; 7+ messages in thread
From: Alan Schmitt @ 2002-07-05 5:05 UTC (permalink / raw)
To: Dave Mason; +Cc: caml-list
Hi,
When we started writing the cdk, our first goal was to provide a big
bunch of useful libraries and integrated makefiles, so that one could
get them all from one place, and compile them all with one 'make'.
Unfortunately, I'm afraid our approach does not work, for several
reasons. First of all, many of the libraries included are developed by
other persons, and we need to manually take their changes into the
libraries included, which is a pain. Another problem is the one you
describe: we provide a bundle that is not easy to cut in pieces.
So I really think the packaging issues should be tackled differently, in
a distributed way (it needs to be easy for developpers to integrate in
their project). Packaging should take care of a few things:
- make libraries easy to find
- make libraries easy to compile and use (well known library repository,
detection of installed libraries)
- make recompiling easy (in my dream world, when I recompile ocaml, I'd
like to be able to recompile all the libraries and apps that depend on
it with one command).
Best,
Alan
--
The hacker: someone who figured things out and made something cool happen.
-------------------
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Caml-list] The CDK looks marvelous... but...
2002-07-05 5:05 ` Alan Schmitt
@ 2002-07-05 5:37 ` Alexander V. Voinov
2002-07-05 8:35 ` Alan Schmitt
2002-07-05 9:08 ` Markus Mottl
1 sibling, 1 reply; 7+ messages in thread
From: Alexander V. Voinov @ 2002-07-05 5:37 UTC (permalink / raw)
To: Alan Schmitt; +Cc: Dave Mason, caml-list
Hi Alan,
Alan Schmitt wrote:
> - make recompiling easy (in my dream world, when I recompile ocaml, I'd
> like to be able to recompile all the libraries and apps that depend on
> it with one command).
Again, _why_ do you want to recompile ocaml? Both me and Dave and Berke
emphasized that a key to the adoption of this intergrated kit is that it
compiles with the stock binary version of ocaml for the respective
platform. I can't understand the reason to have a special version of
ocaml for CDK.
Alexander
-------------------
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Caml-list] The CDK looks marvelous... but...
2002-07-05 5:37 ` Alexander V. Voinov
@ 2002-07-05 8:35 ` Alan Schmitt
0 siblings, 0 replies; 7+ messages in thread
From: Alan Schmitt @ 2002-07-05 8:35 UTC (permalink / raw)
To: Alexander V. Voinov; +Cc: Dave Mason, caml-list
* Alexander V. Voinov (avv@quasar.ipa.nw.ru) wrote:
> Hi Alan,
>
> Alan Schmitt wrote:
> > - make recompiling easy (in my dream world, when I recompile ocaml, I'd
> > like to be able to recompile all the libraries and apps that depend on
> > it with one command).
>
> Again, _why_ do you want to recompile ocaml? Both me and Dave and Berke
> emphasized that a key to the adoption of this intergrated kit is that it
> compiles with the stock binary version of ocaml for the respective
> platform. I can't understand the reason to have a special version of
> ocaml for CDK.
What I meant was "when a new version of ocaml comes out, or when I want
to recompile ocaml from cvs, ...".
At the moment, each time I install a new version of ocaml, I need to
recompile all librairies that depend on the standard library if it has
changed a bit. Same thing if I get a new version of, say, lablgtk, with
all my gtk apps.
So I don't mean to have a special version of ocaml with any packaging
system, just to be able to handle dependencies among librairies.
Best,
Alan
--
The hacker: someone who figured things out and made something cool happen.
-------------------
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
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Caml-list] The CDK looks marvelous... but...
2002-07-05 5:05 ` Alan Schmitt
2002-07-05 5:37 ` Alexander V. Voinov
@ 2002-07-05 9:08 ` Markus Mottl
2002-07-05 14:02 ` Xavier Leroy
1 sibling, 1 reply; 7+ messages in thread
From: Markus Mottl @ 2002-07-05 9:08 UTC (permalink / raw)
To: Dave Mason, caml-list
On Fri, 05 Jul 2002, Alan Schmitt wrote:
> Unfortunately, I'm afraid our approach does not work, for several
> reasons. First of all, many of the libraries included are developed by
> other persons, and we need to manually take their changes into the
> libraries included, which is a pain. Another problem is the one you
> describe: we provide a bundle that is not easy to cut in pieces.
Which indicates again, how badly we need packaging standards for OCaml...
Regards,
Markus Mottl
--
Markus Mottl markus@oefai.at
Austrian Research Institute
for Artificial Intelligence http://www.oefai.at/~markus
-------------------
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
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2002-07-05 14:02 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-04 0:17 [Caml-list] The CDK looks marvelous... but Dave Mason
2002-07-04 11:01 ` Dave Mason
2002-07-05 5:05 ` Alan Schmitt
2002-07-05 5:37 ` Alexander V. Voinov
2002-07-05 8:35 ` Alan Schmitt
2002-07-05 9:08 ` Markus Mottl
2002-07-05 14:02 ` Xavier Leroy
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox