From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by sympa.inria.fr (Postfix) with ESMTPS id A8B367EEBF for ; Tue, 7 Jul 2015 00:21:32 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of mwh@cs.umd.edu) identity=pra; client-ip=209.85.215.54; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mwh@cs.umd.edu"; x-sender="mwh@cs.umd.edu"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of mwh@cs.umd.edu designates 209.85.215.54 as permitted sender) identity=mailfrom; client-ip=209.85.215.54; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mwh@cs.umd.edu"; x-sender="mwh@cs.umd.edu"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-la0-f54.google.com) identity=helo; client-ip=209.85.215.54; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="mwh@cs.umd.edu"; x-sender="postmaster@mail-la0-f54.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0C7AwDn/ppVlDbXVdFchEyDGagKAQaDRgGYDQdMAQEBAQEBEgEBAQEHCwsJHzBBBYN2EXUBBjcCJBIBBQFXiAylBIIFgSw+MYs/kUyFUgqGE4pRghcMLxKBMQWNCIcNi2iXDBIjgRUXhCoegnwBAQE X-IPAS-Result: A0C7AwDn/ppVlDbXVdFchEyDGagKAQaDRgGYDQdMAQEBAQEBEgEBAQEHCwsJHzBBBYN2EXUBBjcCJBIBBQFXiAylBIIFgSw+MYs/kUyFUgqGE4pRghcMLxKBMQWNCIcNi2iXDBIjgRUXhCoegnwBAQE X-IronPort-AV: E=Sophos;i="5.15,417,1432591200"; d="scan'208,223";a="169093354" Received: from mail-la0-f54.google.com ([209.85.215.54]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/RC4-SHA; 07 Jul 2015 00:21:31 +0200 Received: by laar3 with SMTP id r3so173312376laa.0 for ; Mon, 06 Jul 2015 15:21:30 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-type; bh=ZO1ANbt9W5+yEKcg1H1uKWid93j0HWjK779UnbdQAbA=; b=QmDyNpfVzprpX/K/e7yNFY0jbcQ8FlyevPDjg5VUMbupRwbJUo3eSzEsZM1V6nxWMm Tclz7dHy6FpxICBS8z36yXCcyNCwhPS4/E2XwN6h+aQktsqFpeu6ixt2NSad4iQQlcNM EyyVjDhp4B3TjesVXDcrrTocgeRIyrUy4h5ttC7vZkD/0FCKejV92mzxxz7KrBvgiRxP +6IWPv9GVGdhyo2+N0TlxHBBtBFv6WyFIR9GboEHJ6h5wuJG7N7y3WAMXZtmWVIUClXt +HII0qLBwAO0hKDJf9UflShbs9lEUVyFjj/SnhmYO8IFqQugLu0YeOG+RRWcd35LdbtL 2Qdg== X-Gm-Message-State: ALoCoQmpBm0TjC6zd7toZBiZBwjB6Db5VvvCvFaEOZddB5ixEa86v5G+eZujUtAb0wx+y9N1AyXp X-Received: by 10.112.154.71 with SMTP id vm7mr1012129lbb.96.1436221290427; Mon, 06 Jul 2015 15:21:30 -0700 (PDT) MIME-Version: 1.0 Received: by 10.114.97.69 with HTTP; Mon, 6 Jul 2015 15:21:11 -0700 (PDT) From: Michael Hicks Date: Mon, 6 Jul 2015 15:21:11 -0700 Message-ID: To: caml-list@inria.fr Content-Type: multipart/alternative; boundary=089e01227ec0d5cc7e051a3c5392 Subject: [Caml-list] Scanning objects outside the OCaml heap --089e01227ec0d5cc7e051a3c5392 Content-Type: text/plain; charset=UTF-8 >From what I have found on-line (Chap 19 of the OCaml manual, and Chap 20 of Real-World OCaml), it seems that memory outside of the OCaml heap, but pointed to by it, is not scanned by the GC. Does anyone know: Is there any way to make outside memory scannable by the GC? The reason I ask: I'm interested in implementing a custom memory management strategy that I can prove is safe in a language I will compile to OCaml. I'm thinking I'd like to allocate freeable memory outside the OCaml heap, but as OCaml values. Since these values can point to OCaml heap-resident data, they need to be scanned. But I don't want to have to explicitly register/deregister them as roots to the GC, or track all mutations to the values, if I can help it. Rather, having a single "persistent root" to my memory area, for purposes of scanning, would be ideal. Thanks in advance for any help, -Mike --089e01227ec0d5cc7e051a3c5392 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
From what I have found on-line (Chap 19 of the OCaml manua= l, and Chap 20 of Real-World OCaml), it seems that memory outside of the OC= aml heap, but pointed to by it, is not scanned by the GC.

Does anyone know: Is there any way to make outside memory scannable by th= e GC?

The reason I ask:=C2=A0

=
I'm interested in implementing a custom memory management strategy= that I can prove is safe in a language I will compile to OCaml. I'm th= inking I'd like to allocate freeable memory outside the OCaml heap, but= as OCaml values. Since these values can point to OCaml heap-resident data,= they need to be scanned. But I don't want to have to explicitly regist= er/deregister them as roots to the GC, or track all mutations to the values= , if I can help it. Rather, having a single "persistent root" to = my memory area, for purposes of scanning, would be ideal.

Thanks in advance for any help,

-Mike


--089e01227ec0d5cc7e051a3c5392--