caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Patrick M Doane <patrick@watson.org>
To: Chris Hecker <checker@d6.com>
Cc: caml-list@inria.fr
Subject: Re: [Caml-list] ocamlmktop and includes
Date: Sat, 28 Apr 2001 18:26:30 -0400 (EDT)	[thread overview]
Message-ID: <Pine.BSF.3.96.1010428181903.5019B-100000@fledge.watson.org> (raw)
In-Reply-To: <4.3.2.7.2.20010428103832.00e244c0@shell16.ba.best.com>

On Sat, 28 Apr 2001, Chris Hecker wrote:

> 
> >Alternatively, it would be really nice to make stand-alone byte code
> >interpreters which have the .cmo files builtin.
> 
> Do you just mean a standalone executable (with no need for ocamlrun)? 
> If so, use the "-custom" flag to ocamlc and it'll put the intepreter
> inside the output file (and it appears the file is still recognized as a
> bytecode file by ocamlrun, so it's still portable as long as you don't
> link any C objects into it).  Maybe that's not what you meant... 

For some additional context,  I'm trying to create a front-end for
regression testing.  I would like to have a top-level application which
can execute O'caml scripts with an additional module preloaded. It was
pretty easy to use ocamlmktop to build my module into a top-level
interpeter. Unfortunately, the user then has to supply the location of my
module to use it.  I was hoping to provide a single executable that could
be used to run the scripts.

The '-custom' flag might do the trick.  I'm not too worried about
requiring ocamlrun to be on the same machine though.

> Putting the include paths in the generated toplevel sounds like a good
> idea to me.  I decided to implement this.  I've attached the new
> tools/ocamlmktop.ml below.  You should be able to build this by itself
> with "ocamlc -o ocamlmktop ocamlmktop", without building the compiler or
> even having the compiler source installed. 

Ah, very good.  I'll try this out and let you know how it works.

> Random Notes & Issues:
> 
> - I need to build a temp .ml file and compile it, which assumes the
>   ocamlc compiler is around.  Of course, ocamlmktop already assumes
>   this. 

Certainly reasonable.

> - I use Topdirs.dir_directory to add the include directories...I doubt
> it's supposed to be an exposed API. 

I think there is some intent for the toplevel commands to be exposed APIs.
I remember seeing a comment in one of those modules about allowing custom
top-levels to call them.

It would be great for the APIs to be officially documented and supported.
I've had to do a bit of hacking using the toplevel commands to implement
the regression testing.  This includes the need to save/restore an
environment and execute an external script.

> - It expands directories at runtime, so if you add -I +foo it'll work
> even if you move CAMLLIB. 

That's handy!

> - What you probably really want here is a new command line parm so you
>   can differentiate betwen include dirs that should be added to the
>   toplevel and those that shouldn't. 

My initial expectation was that building a top-level interpreter would
link the object files into that interpeter.  That maybe an alternative
approach to addressing this issue.

Thanks for your help,
Patrick

-------------------
To unsubscribe, mail caml-list-request@inria.fr.  Archives: http://caml.inria.fr


  reply	other threads:[~2001-04-28 22:26 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.BSF.3.96.1010428104723.97098B-100000@fledge.watson.or g>
2001-04-28 21:50 ` Chris Hecker
2001-04-28 22:26   ` Patrick M Doane [this message]
2001-04-29  5:46     ` Chris Hecker
2001-04-29 16:44       ` Patrick M Doane
2001-05-01  1:27 David Gurr
2001-05-01  2:57 ` Patrick M Doane
  -- strict thread matches above, loose matches on Subject: below --
2001-04-28 14:54 Patrick M Doane
2001-05-01  1:05 ` Jacques Garrigue
2001-05-01  3:39   ` John Gerard Malecki

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=Pine.BSF.3.96.1010428181903.5019B-100000@fledge.watson.org \
    --to=patrick@watson.org \
    --cc=caml-list@inria.fr \
    --cc=checker@d6.com \
    /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).