caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
From: Goswin von Brederlow <goswin-v-b@web.de>
To: caml-list@inria.fr
Subject: Re: [Caml-list] concurrent gc?
Date: Tue, 29 Jul 2014 12:01:22 +0200	[thread overview]
Message-ID: <20140729100122.GC13382@frosties> (raw)
In-Reply-To: <20140729124919.41694834@kiwi.local.tld>

On Tue, Jul 29, 2014 at 12:49:19PM +0800, ygrek wrote:
> Hello,
> 
>  See also the pros and cons in http://caml.inria.fr/mantis/view.php?id=5010

"pros and cons"?

The issue talks about arrays and xleroy mentioned that the magic that
is used to tag float arrays as such does not extend to e.g int arrays
and therefore, since it needs to be a runtime thing, special tagging
won't work there. Seems ther is only one big con.


But that doesn't hold for records. The type of a record is known at
compile time and the compiler knows it if can contain any pointer or
not. This gets a bit tricky with polymorphic records, e.g.:

type 'a t = { x : 'a }

Then "int t" has no pointers but "int list t" does. Since 'a t records
can be created in polymorphic functions that means even "int t" can
not be tagged no-scan or you would end up with different tags
depending on who created the record.

Tagging records without pointer would only be for records without
polymorphic members (more specific for !E 'a . 'a t contains pointer),
e.g.

type 'a x = int
type 'a t = { x: 'a x; y: int; }

That somewhat limits the use case but avoids the problem of runtime
detection of the type.

MfG
	Goswin

  reply	other threads:[~2014-07-29 10:01 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-23 23:34 Raoul Duke
2014-07-24  0:05 ` John F. Carr
2014-07-24  0:08   ` Raoul Duke
2014-07-24  0:44     ` John F. Carr
2014-07-24  0:45       ` Raoul Duke
2014-07-24 15:24         ` Shayne Fletcher
2014-07-24  3:45     ` Malcolm Matalka
2014-07-24  5:58       ` Anthony Tavener
2014-07-28 11:20         ` Goswin von Brederlow
2014-07-24  6:58   ` Nicolas Boulay
2014-07-24  7:38     ` Malcolm Matalka
2014-07-24 15:36     ` Fabrice Le Fessant
2014-07-24 15:39       ` Malcolm Matalka
2014-07-24 16:44         ` Fabrice Le Fessant
2014-07-25  7:18           ` Nicolas Boulay
2014-07-28 11:26             ` Goswin von Brederlow
2014-07-28 11:24           ` Goswin von Brederlow
2014-07-28 17:34             ` Raoul Duke
2014-07-29  4:25               ` Gabriel Scherer
2014-07-29  4:49                 ` ygrek
2014-07-29 10:01                   ` Goswin von Brederlow [this message]
2014-07-29 10:29                     ` ygrek
2014-07-31 11:10                       ` Goswin von Brederlow
2014-07-29 17:23                 ` Raoul Duke
2014-12-19  0:58                   ` Jon Harrop
2014-07-31 14:26         ` Richard W.M. Jones

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=20140729100122.GC13382@frosties \
    --to=goswin-v-b@web.de \
    --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).