caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Jed Davis <jdev@panix.com>
To: caml-list@inria.fr
Subject: [Caml-list] Re: void/unit in C calls
Date: Fri, 20 Feb 2004 15:36:04 -0500	[thread overview]
Message-ID: <tgnvfm1a3pn.fsf@cumulus.xlerb.net> (raw)
In-Reply-To: <LAW10-F31RM4vNQXzkN000550b6@hotmail.com>

[-- Attachment #1: Type: text/plain, Size: 1238 bytes --]

"Lars Nilsson" <lazarus13@hotmail.com> writes:

> Does this indicate an error in the O'Caml manual, section 18.5.1, where
>
>   void foo(value v1, value v2, value v3)
>   {
>     CAMLparam3(v1, v2, v3);
>
>     CAMLreturn0;
>   }
>
> is used, in addition to a paragraph preceeding it in the same section
> saying "If your C function is a procedure you must insert CAMLreturn0
> at the end"? In fact, CAMLreturn0 existing at all seems to imply the
> fact that unit-returning functions (from O'Caml's point of view) can
> be void in the C implementation.

It doesn't say that foo() is meant to be the implementation of an
external in and of itself; in fact, the absence of a CAMLprim
indicates that it's not meant to be one.  It's just that any function
that might set off a GC needs to declare its "value"s so they can be
updated if the referenced blocks are moved, and thus needs a matching
CAMLreturn.


-- 
[Jed Davis]              A098 903E 9B9A DEF4 168F  AA09 BF07 807E F336 59F9
 <jdev@panix.com>                                               0xF33659F9
  "But life wasn't yes-no, on-off.  Life was shades of gray, and rainbows
   not in the order of the spectrum." -- L. E. Modesitt, Jr., _Adiamante_

[-- Attachment #2: Type: application/pgp-signature, Size: 185 bytes --]

      reply	other threads:[~2004-02-20 20:36 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-02-20 20:16 [Caml-list] " Lars Nilsson
2004-02-20 20:36 ` Jed Davis [this message]

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=tgnvfm1a3pn.fsf@cumulus.xlerb.net \
    --to=jdev@panix.com \
    --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).