caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Max Skaller <maxs@in.ot.com.au>
Cc: caml-list@inria.fr
Subject: Re: Calling C from OCaml, GC problems
Date: Tue, 22 Feb 2000 10:41:16 +1100	[thread overview]
Message-ID: <38B1CD1C.48963E22@in.ot.com.au> (raw)
In-Reply-To: <wd84sb2339h.fsf@parate.irisa.fr>

 
> However, the second warning is still there (even if harmless). The
> problem is that the caml__dummy_##name variables are no longer
> used. Such variable is only used to make some side-effects using C
> '(stmt1, stmt2, ..., stmtN)' notation. I see no way to fix this. C lack
> the Caml 'let _ ='. :)

I'd recommend getting rid of those macros. Anyone writing
a CAML/C interface needs to understand details of how the GC
works so as to optimise code to exactly the required
functions to create temporary roots, etc .. it would be better
to provide the raw functions and a good explanation.

For example, the documentation says 'it is safe to
cast C malloced pointers to caml values' which, in English
at least, does NOT tell me what I need to know -- that the
caml GC 'knows' that such values are not pointers into it's heap.

For example, I did some work on a copy of mlgtk, and the requirements
lead to fairly idiosyncractic code -- code wrapping a single
simple object never needs to make the temporary roots; but if
there are two objects, the first created needs to be rooted.

I do wonder if it would not be useful to have a function(s)
that did allocations without collecting.

-- 
John (Max) Skaller at OTT [Open Telecommications Ltd]
mailto:maxs@in.ot.com.au      -- at work
mailto:skaller@maxtal.com.au  -- at home




  reply	other threads:[~2000-02-22 10:50 UTC|newest]

Thread overview: 9+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2000-02-16 15:41 David Mentré
2000-02-18  1:26 ` Markus Mottl
2000-02-18  9:45 ` Xavier Leroy
2000-02-21 16:54   ` David Mentré
2000-02-21 23:41     ` Max Skaller [this message]
2000-02-18 10:48 ` Juan J. Quintela
2000-02-21 13:40   ` David Mentré
2000-02-23 19:39 Damien Doligez
2000-02-24 23:36 ` Max Skaller

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=38B1CD1C.48963E22@in.ot.com.au \
    --to=maxs@in.ot.com.au \
    --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;
as well as URLs for NNTP newsgroup(s).