From: Martin Jambon <martin.jambon@ens-lyon.org>
To: Alain Frisch <alain@frisch.fr>
Cc: Caml List <caml-list@inria.fr>, Jeremy Yallop <yallop@gmail.com>
Subject: Re: [Caml-list] segfault in simple program with 4.02 native
Date: Sun, 07 Sep 2014 18:28:34 -0700 [thread overview]
Message-ID: <540D0642.7090205@ens-lyon.org> (raw)
In-Reply-To: <540CA84F.8090708@frisch.fr>
On Sun 07 Sep 2014 11:47:43 AM PDT, Alain Frisch wrote:
> On 9/6/2014 7:51 AM, Martin Jambon wrote:
>> Thanks for the explanation, Jeremy. I guess atdgen will have to use
>> "option refs" after all unless someone has a better idea.
>
> I might be missing some context, but the current code seems to playing
> two different tricks with the type system: using (Obj.magic 0.) as a
> dummy initial default value (to avoid references) and mutating
> normally immutable fields with Obj.set_field. Is that right?
Yes, exactly.
> You
> might be able to keep the first trick, but storing the values in local
> references instead of field of the the target record (if those
> references don't espace from the function, they will be represented as
> local mutable variables, whose mutation might actually be more
> efficient than those of the record fields), building the target
> record at the end by reading from those references.
Christophe Troestler also suggested this solution in a private reply. I
was afraid of the cost of the refs, so it's great to know that they're
optimized away.
I want to thank everyone for their suggestions. It's very helpful.
Martin
next prev parent reply other threads:[~2014-09-08 1:28 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-09-05 21:33 Ashish Agarwal
2014-09-05 21:50 ` Andy Ray
2014-09-05 21:56 ` Richard W.M. Jones
2014-09-05 22:01 ` Sebastien Mondet
2014-09-05 22:06 ` Ashish Agarwal
2014-09-05 22:13 ` Richard W.M. Jones
2014-09-05 22:18 ` Richard W.M. Jones
2014-09-05 22:36 ` Török Edwin
2014-09-05 22:39 ` Martin Jambon
2014-09-05 23:39 ` Ashish Agarwal
2014-09-05 23:59 ` Martin Jambon
2014-09-06 0:12 ` Jeremy Yallop
2014-09-06 5:51 ` Martin Jambon
2014-09-06 6:00 ` Milan Stanojević
2014-09-06 7:46 ` Frédéric Bour
2014-09-06 19:15 ` Martin Jambon
2014-09-06 19:08 ` Martin Jambon
2014-09-06 20:31 ` David MENTRÉ
2014-09-06 21:57 ` Martin Jambon
2014-09-07 7:34 ` David MENTRÉ
2014-09-07 18:47 ` Alain Frisch
2014-09-08 1:28 ` Martin Jambon [this message]
2014-09-13 10:26 ` Martin Jambon
2014-09-14 7:41 ` Martin Jambon
2014-09-05 22:18 ` Christoph Höger
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=540D0642.7090205@ens-lyon.org \
--to=martin.jambon@ens-lyon.org \
--cc=alain@frisch.fr \
--cc=caml-list@inria.fr \
--cc=yallop@gmail.com \
/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