From: Thierry Bravier <thierry.bravier@dassault-aviation.fr>
To: Xavier.Leroy@inria.fr
Cc: caml-list@inria.fr, Emmanuel.Dorlet@cea.fr
Subject: Re: problem with ocamlmktop -output-obj
Date: Mon, 26 Oct 1998 17:03:30 +0100 [thread overview]
Message-ID: <36349D52.1E7B@dassault-aviation.fr> (raw)
In-Reply-To: <3627228B.20CE@dassault-aviation.fr>
Thierry Bravier wrote:
> I must now face a problem:
>
> It would be really nice if I could use -custom but ...
>
> How can I ask ocamlc -custom to :
> 1) use a user-provided compiled main() (potentially compiled with C++)
> 2) link with a user-provided linker (aka g++)
> 3) I know that internally, some C code is output and compiled
> (for the external primitives I think), I think this code should
> still be compiled with the C compiler used to build ocaml.
>
> Are there any clues to help me build this toplevel with C++ code
> without -output-obj ?
>
> Thanks
Here is a suggestion so that I can link ML with C++
and avoid using -output-obj when I don't need it (particularly
to build a toplevel).
with two new options for ocamlc, one could choose ...
* ocamlc -cc my-ccompiler
... an alternative C compiler internally used
to compile the internal primitive table and other C codes.
* ocamlc -clinker my-clinker
... an alternative linker used to link native objects before
concatenation of ocaml cmo files
this one is most important to C++ users because it makes it
possible to let a C++ tool link object files.
I have emulated this thanks to an ugly hack that I would like
to remove. I have made my local gcc startup script
read an environment variable and link with another
linker when the variable is set (in my case, a C++ linker).
It gives me the ability to build a C++/ML program (or toplevel) with
ocamlc (or ocamlmktop) -custom which is just what I need.
I also have a request about the toplevel module:
The #quit directive happens to call directly exit
this is a problem if the toplevel is embedded in a C (or C++)
main () function because after #quit, the program
exits instead of finishing main ()'s code.
In the case of C++ it's even worse because destructors are
not called.
I would suggest an internal toplevel_exit exception
raised by #quit
and handled by the toplevel loop to return properly from caml_main ()
Thank you.
--
Thierry Bravier Dassault Aviation - DGT / DPR / DESA
78, Quai Marcel Dassault F-92214 Saint-Cloud Cedex - France
Telephone : (33) 01 47 11 53 07 Telecopie : (33) 01 47 11 52 83
E-Mail : mailto:thierry.bravier@dassault-aviation.fr
next prev parent reply other threads:[~1998-10-27 19:01 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
1998-10-14 16:47 Thierry Bravier
1998-10-15 17:22 ` Xavier Leroy
1998-10-16 10:40 ` Thierry Bravier
1998-10-26 16:03 ` Thierry Bravier [this message]
1998-10-30 10:17 ` Pascal Brisset
1998-10-30 17:56 ` problem with ocamlmktop (contd) Pascal Brisset
1998-11-03 9:32 ` Pascal Brisset
1998-11-04 17:56 ` Thierry Bravier
1998-11-04 16:12 ` problem with ocamlmktop -output-obj luther
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=36349D52.1E7B@dassault-aviation.fr \
--to=thierry.bravier@dassault-aviation.fr \
--cc=Emmanuel.Dorlet@cea.fr \
--cc=Xavier.Leroy@inria.fr \
--cc=caml-list@inria.fr \
/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