caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* Preinitialized executables?
@ 1997-09-12 23:57 Matti Jokinen
  1997-09-18  8:41 ` Xavier Leroy
  0 siblings, 1 reply; 2+ messages in thread
From: Matti Jokinen @ 1997-09-12 23:57 UTC (permalink / raw)
  To: caml-list

I have a program that needs to be initialied by building a large and
fairly complicated data structure.  In Ocaml the fastest method I
have found is to save the data structure in a file with output_value
and then load it into the program with input_value, but even this way
the overhead is considerable.  SML/NJ has a function named exportFn,
which saves the program together with its state into an executable file:
when the program is run from the file, control is transferred to a
function given as a parameter to exportFn.  I wonder if something
similar is possible in Ocaml.

- Matti Jokinen





^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Preinitialized executables?
  1997-09-12 23:57 Preinitialized executables? Matti Jokinen
@ 1997-09-18  8:41 ` Xavier Leroy
  0 siblings, 0 replies; 2+ messages in thread
From: Xavier Leroy @ 1997-09-18  8:41 UTC (permalink / raw)
  To: Matti Jokinen; +Cc: caml-list

> I have a program that needs to be initialied by building a large and
> fairly complicated data structure.  In Ocaml the fastest method I
> have found is to save the data structure in a file with output_value
> and then load it into the program with input_value, but even this way
> the overhead is considerable.  SML/NJ has a function named exportFn,
> which saves the program together with its state into an executable file:
> when the program is run from the file, control is transferred to a
> function given as a parameter to exportFn.  I wonder if something
> similar is possible in Ocaml.

It might be possible, but it would not be any faster than input_value.
The loading of a bytecode executable inside the bytecode interpreter
is, for the most part, performed by input_value.  Same thing for
SML/NJ, I believe.

As for ocamlopt, there is really no portable way to dump a running
program with its current state in an executable file.  Recent versions
of SML/NJ have abandoned this approach and explicitly load the data
from a file on startup, rather than let the kernel page them in on demand.

If loading time is really an issue, an alternative would be to load
parts of the data structure on demand, using e.g. the DBM library.

Regards,

- Xavier Leroy





^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~1997-09-22  6:57 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1997-09-12 23:57 Preinitialized executables? Matti Jokinen
1997-09-18  8:41 ` Xavier Leroy

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).