From: Richard Cole <rcole@itee.uq.edu.au>
To: skaller@users.sourceforge.net
Cc: caml-list <caml-list@inria.fr>, godi-list@ocaml-programming.de
Subject: Re: [Caml-list] Re: GODI vs. Ocamake
Date: Fri, 16 Apr 2004 11:30:46 +1000 [thread overview]
Message-ID: <407F3746.4000703@itee.uq.edu.au> (raw)
In-Reply-To: <1082047130.20677.1218.camel@pelican>
skaller wrote:
>On Thu, 2004-04-15 at 19:47, Markus Mottl wrote:
>
>
>>On Thu, 15 Apr 2004, skaller wrote:
>>
>>
>>>On Thu, 2004-04-15 at 02:49, Kenneth Knowles wrote:
>>>
>>>
>>>
>>>>Just so I don't leave anyone out, I'd say both ocamake and OCamlMakefile handle
>>>>(1) and (3) all at once.
>>>>
>>>>
>>>Yeah? How would they handle Interscript sources?
>>>What about Camlp4?
>>>
>>>
>>No problem, OCamlMakefile handles them by letting the user specify a
>>preprocessor in a comment in the first line. See camlp4-example in
>>the distribution.
>>
>>
>
>That may work for camlp4 but not interscript.
>Interscript is a code generator, there is no simplistic
>1-1 correspondence between inputs and outputs for which
>any make rule could be encoded.
>
>Make is all wrong, as I said before. Interscript is a new,
>correct concept for building systems. It uses fixpoints.
>It doesn't care what the outputs are --- they have to be tracked,
>but not specified.
>
>
Please forgive my ignorance of interscript but I'm interested in what
problem interscript is trying to address. I understand that it makes
sense to document code using some simple hypertext language -- something
similar to WikiLanguages -- that allows you to make references to code
artifacts, include diagrams etc.
Another aspect of building systems is configuration management. This is
where my question really is. I've only worked on systems where
configurations differed via library dependencies. So for example the
linux version links to the linux-lowlevel library and the windows
version links to the window-lowlevel library. Is there some other aspect
of configuration management that interscript addresses?
The way that I now build makefiles is with tcl.
set projects { pig }
set ml_sources(pig) { one two three }
set mli_sources(pig) { two }
for y in $projects {
# Create .cmo files
for x in [get ml_sources $y] {
if { [is_member $x [get mli_sources $y]] } {
set mli_source $x
} else {
set mli_source ""
}
puts "$x.cmo: $x.ml $mli_source.mli"
...
}
}
I find that this approach allows me to factor out the stuff that is
repeated between projects and use variables to denote the stuff that
changes between projects. This is kind of a moving target because as
code develops what is common and what is different between projects changes.
Another aspect of configuration management is knowing which libraries a
version of your project depends on. There are source level dependencies
and after you build libraries there are binary level dependencies. This
problem seems to be tackled in two ways: (i) package managers of which
godi is a nice example, and (ii) autoconf which alleviates some source
level dependencies by hacking the code in sometimes evil ways.
Another issue comes to mind. Under linux it seems that libraries have
version numbers, libc.so.3.0.0 and the like. I haven't seen how this
works with godi? Can you install multiple versions of an Ocaml package
and pass version information to Ocamlfind? If not why not? Is the case
of multiple deployed library versions something we are striving to
avoid? I think for the user it is inescapable, e.g. my desktop requires
both gtk-1.2 and gtk-2.0.
There is another type of dependency which is very nasty to support and
one that I think we should strive to avoid, where possible. The same
project supporting quite different build environments. Say for example
that you want to want to write a build script that uses either CSH or
KSH, whatever is available [1]. Now say that it is not possible to
automatically, in general, convert CSH into KSH, so you write a
conversion program that doesn't work in general, but works for your
build script. This is going to make a difficult to understand mess, it
is much better to select tools that are supported on all the platforms
that you want to deploy your system. That pushes the "supporting
different build environments" problem onto someone else.
regards,
Richard.
[1] I'm not advocating the use of build scripts in either csh or ksh
just using them as an example.
-------------------
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
next prev parent reply other threads:[~2004-04-16 1:31 UTC|newest]
Thread overview: 147+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-04-07 18:47 [Caml-list] Dynamically evaluating OCaml code John Goerzen
2004-04-07 20:37 ` Samuel Mimram
2004-04-07 21:05 ` Basile Starynkevitch
2002-01-04 0:43 ` Issac Trotts
2004-04-08 0:58 ` Dustin Sallings
2004-04-08 6:24 ` Brian Hurt
2004-04-08 7:47 ` Oleg Trott
2004-04-08 8:04 ` Ville-Pertti Keinonen
2004-04-08 7:52 ` Ville-Pertti Keinonen
2004-04-08 8:15 ` Dustin Sallings
2004-04-08 13:37 ` John Goerzen
2004-04-08 14:56 ` Markus Mottl
2004-04-08 15:14 ` Richard Jones
2004-04-08 15:26 ` Markus Mottl
2004-04-08 15:39 ` Jon Harrop
2004-04-08 15:58 ` John Goerzen
2004-04-08 17:59 ` Jean-Marc EBER
2004-04-08 18:20 ` Kenneth Knowles
2004-04-08 18:39 ` John Goerzen
2004-04-08 19:21 ` Kenneth Knowles
2004-04-08 18:29 ` John Goerzen
2004-04-13 6:15 ` Trevor Andrade
2004-04-13 11:17 ` Gerd Stolpmann
2004-04-13 13:16 ` skaller
2004-04-13 14:24 ` John Goerzen
2004-04-13 14:53 ` Gerd Stolpmann
2004-04-13 18:07 ` [Caml-list] Re: GODI (was: Dynamically evaluating OCaml code) Christophe TROESTLER
2004-04-13 19:30 ` Gerd Stolpmann
2004-04-13 19:57 ` [Caml-list] Re: GODI Christophe TROESTLER
2004-04-13 20:45 ` Brandon J. Van Every
2004-04-14 0:34 ` Gerd Stolpmann
2004-04-14 5:35 ` Brandon J. Van Every
2004-04-14 6:00 ` james woodyatt
2004-04-14 6:21 ` Kenneth Knowles
2004-04-14 9:17 ` james woodyatt
2004-04-14 6:16 ` Kenneth Knowles
2004-04-14 7:38 ` [Caml-list] BSD vs. GPL Brandon J. Van Every
2004-04-14 8:32 ` Matt Gushee
2004-04-14 8:48 ` Wolfgang Müller
2004-04-14 8:40 ` Kenneth Knowles
2004-04-14 17:14 ` David Brown
2004-04-14 18:50 ` [Caml-list] benefit of package management Brandon J. Van Every
2004-04-15 6:46 ` [Caml-list] BSD vs. GPL Kenneth Knowles
2004-04-14 15:05 ` John Goerzen
2004-04-15 0:20 ` skaller
2004-04-15 2:36 ` John Goerzen
2004-04-15 17:48 ` Benjamin Geer
2004-04-14 10:50 ` [Caml-list] Re: GODI skaller
2004-04-14 1:04 ` John Goerzen
2004-04-14 2:52 ` Jacques GARRIGUE
2004-04-14 5:14 ` [Caml-list] Re: GODI vs. Ocamake Brandon J. Van Every
2004-04-14 6:53 ` Jacques GARRIGUE
2004-04-14 6:57 ` Kenneth Knowles
[not found] ` <407D2075.2070104@jollys.org>
2004-04-14 16:14 ` ocamlconf on Cygwin (Re: [Caml-list] Re: GODI vs. Ocamake) Kenneth Knowles
2004-04-14 7:50 ` [Caml-list] Re: GODI vs. Ocamake Nicolas Cannasse
2004-04-14 11:54 ` skaller
2004-04-14 16:49 ` Kenneth Knowles
2004-04-15 1:05 ` skaller
2004-04-15 6:34 ` Kenneth Knowles
2004-04-15 7:33 ` skaller
2004-04-15 16:00 ` Kenneth Knowles
[not found] ` <1082049025.20677.1250.camel@pelican>
2004-04-15 17:38 ` Kenneth Knowles
2004-04-15 23:58 ` Brandon J. Van Every
2004-04-16 1:16 ` Kenneth Knowles
2004-04-16 6:31 ` [Caml-list] build tools - good vs. fast, both cheap Brandon J. Van Every
2004-04-16 14:38 ` skaller
2004-04-16 15:16 ` Richard Jones
2004-04-16 16:12 ` Kenneth Knowles
2004-04-16 16:17 ` Richard Jones
2004-04-16 16:39 ` Kenneth Knowles
2004-04-17 6:01 ` Jacques GARRIGUE
2004-04-17 6:25 ` Kenneth Knowles
2004-04-17 9:19 ` Alain.Frisch
2004-04-16 21:53 ` William Lovas
2004-04-17 2:30 ` skaller
2004-04-17 5:47 ` Blair Zajac
2004-04-17 6:28 ` Kenneth Knowles
2004-04-16 14:52 ` skaller
2004-04-16 16:06 ` Kenneth Knowles
2004-04-16 18:10 ` skaller
2004-04-16 18:43 ` Kenneth Knowles
2004-04-16 19:55 ` skaller
2004-04-16 18:46 ` John Goerzen
2004-04-16 18:55 ` Kenneth Knowles
2004-04-16 20:22 ` skaller
2004-04-16 19:39 ` Richard Jones
2004-04-16 21:00 ` skaller
2004-04-15 9:47 ` [Caml-list] Re: GODI vs. Ocamake Markus Mottl
2004-04-15 16:38 ` skaller
2004-04-16 1:30 ` Richard Cole [this message]
2004-04-16 14:11 ` skaller
2004-04-15 1:25 ` skaller
2004-04-14 12:19 ` skaller
2004-04-14 18:21 ` [Caml-list] recompiling bytecode Brandon J. Van Every
2004-04-14 18:54 ` John Goerzen
2004-04-14 20:26 ` Issac Trotts
2004-04-14 20:35 ` Basile Starynkevitch
2004-04-15 1:39 ` skaller
2004-04-14 13:03 ` [Caml-list] Re: GODI vs. Ocamake Gerd Stolpmann
2004-04-14 12:45 ` [Caml-list] Re: GODI Gerd Stolpmann
2004-04-13 15:03 ` [Caml-list] Dynamically evaluating OCaml code Matt Gushee
2004-04-13 17:24 ` Benjamin Geer
2004-04-09 5:40 ` skaller
2004-04-08 15:30 ` John Goerzen
2004-04-08 16:08 ` Xavier Leroy
2004-04-08 16:44 ` Markus Mottl
2004-04-08 17:35 ` John Goerzen
2004-04-09 6:41 ` skaller
2004-04-08 19:44 ` Issac Trotts
2004-04-09 6:23 ` skaller
2004-04-09 6:33 ` Remi Vanicat
2004-04-09 7:37 ` skaller
2004-04-09 8:17 ` Remi Vanicat
2004-04-09 8:35 ` OT: licences (was Re: [Caml-list] Dynamically evaluating OCaml code) Benjamin Geer
2004-04-10 10:10 ` skaller
2004-04-09 8:36 ` [Caml-list] Dynamically evaluating OCaml code Markus Mottl
2004-04-10 9:59 ` skaller
2004-04-09 9:09 ` james woodyatt
2004-04-08 16:44 ` Bruno.Verlyck
2004-04-08 17:55 ` John Goerzen
2004-04-09 13:44 ` Bruno.Verlyck
2004-04-08 15:31 ` Jon Harrop
2004-04-08 19:52 ` Issac Trotts
2004-04-25 23:07 ` [Caml-list] Is GCaml Dead Again? Greg K
2004-04-08 15:04 ` [Caml-list] Dynamically evaluating OCaml code Fernando Alegre
2004-04-08 15:22 ` Jean-Marc EBER
2004-04-09 6:44 ` Pierre Weis
2004-04-08 15:23 ` Kenneth Knowles
2004-04-08 15:38 ` John Goerzen
2004-04-08 22:31 ` Markus Mottl
2004-04-08 18:28 ` Nicolas Cannasse
2004-04-08 17:15 ` Brian Hurt
2004-04-08 18:32 ` Gerd Stolpmann
2004-04-09 5:04 ` skaller
2004-04-08 17:25 ` Issac Trotts
2004-04-08 7:10 ` Basile Starynkevitch
2004-04-08 17:09 ` Issac Trotts
2004-04-07 21:32 ` Vitaly Lugovsky
2004-04-07 20:39 ` John Goerzen
2004-04-07 21:47 ` Vitaly Lugovsky
2004-04-07 22:14 ` Benjamin Geer
2004-04-08 7:49 ` skaller
2004-04-08 19:11 ` Christophe TROESTLER
[not found] ` <200404072306.15109.clement.capel@free.fr>
2004-04-07 23:25 ` clement capel
2004-04-13 21:25 ` [Caml-list] eval for OCaml Brock
2004-04-08 0:17 ` [Caml-list] Dynamically evaluating OCaml code Jon Harrop
2004-04-08 17:31 ` Walid Taha
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=407F3746.4000703@itee.uq.edu.au \
--to=rcole@itee.uq.edu.au \
--cc=caml-list@inria.fr \
--cc=godi-list@ocaml-programming.de \
--cc=skaller@users.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox