caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
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


  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;
as well as URLs for NNTP newsgroup(s).