From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Original-To: caml-list@sympa.inria.fr Delivered-To: caml-list@sympa.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by sympa.inria.fr (Postfix) with ESMTPS id EB17E7FF9F for ; Mon, 7 Mar 2016 21:31:40 +0100 (CET) IronPort-PHdr: 9a23:Zn1BYhU4bj4/HdIjP2N+NM6DVR7V8LGtZVwlr6E/grcLSJyIuqrYZhyAt8tkgFKBZ4jH8fUM07OQ6PC/HzxZqs/a6zgrS99laVwssY0uhQsuAcqIWwXQDcXBSGgEJvlET0Jv5HqhMEJYS47UblzWpWCuv3ZJQk2sfTR8Kum9IIPOlcP/j7n0oM2MJVURz2PmOvtbF1afk0b4joEum4xsK6I8mFPig0BjXKBo/15uPk+ZhB3m5829r9ZJ+iVUvO89pYYbCf2pN4xxd7FTDSwnPmYp/4Wr8ECbFUrcrkcbB0Idmx9MSy3M7RX7WJi5lirhqqIp0yCfOYjyTKsocTWk9aZiDhHy3nQpLTk8pU7QkdNxiupFpxTpjQZyz4POZIaKfK5xebjCfNVfWy9LdtlcXWpND9XvPMM0E+MdMLMA/MHGrFwUoE77XFH0CQ== Authentication-Results: mail3-smtp-sop.national.inria.fr; spf=None smtp.pra=goswin-v-b@web.de; spf=Pass smtp.mailfrom=goswin-v-b@web.de; spf=None smtp.helo=postmaster@mout.web.de Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of goswin-v-b@web.de) identity=pra; client-ip=212.227.17.11; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="goswin-v-b@web.de"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of goswin-v-b@web.de designates 212.227.17.11 as permitted sender) identity=mailfrom; client-ip=212.227.17.11; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="goswin-v-b@web.de"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of postmaster@mout.web.de) identity=helo; client-ip=212.227.17.11; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="goswin-v-b@web.de"; x-sender="postmaster@mout.web.de"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0D/AQBc5N1WlgsR49RcrTUEA4ohh2qBaYc/ORMBAQEBAQEBARABAQEBBw0JCSEvQQ4BgV2CVXs0BSghiCEBFQSfXplfH4UkkjmBDwWXKo1jiSUKhVWOVSEBglSBUYggggYBAQE X-IPAS-Result: A0D/AQBc5N1WlgsR49RcrTUEA4ohh2qBaYc/ORMBAQEBAQEBARABAQEBBw0JCSEvQQ4BgV2CVXs0BSghiCEBFQSfXplfH4UkkjmBDwWXKo1jiSUKhVWOVSEBglSBUYggggYBAQE X-IronPort-AV: E=Sophos;i="5.22,553,1449529200"; d="scan'208";a="167509644" Received: from mout.web.de ([212.227.17.11]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 07 Mar 2016 21:31:40 +0100 Received: from frosties.localnet ([134.3.242.84]) by smtp.web.de (mrweb103) with ESMTPSA (Nemesis) id 0McFLP-1aKX5o1zYV-00Jc4A for ; Mon, 07 Mar 2016 21:31:39 +0100 Received: from mrvn by frosties.localnet with local (Exim 4.84) (envelope-from ) id 1ad1oY-00045s-PT for caml-list@inria.fr; Mon, 07 Mar 2016 21:31:38 +0100 Date: Mon, 7 Mar 2016 21:31:38 +0100 From: Goswin von Brederlow To: Ocaml Mailing List Message-ID: <20160307203138.GA15388@frosties> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-Provags-ID: V03:K0:pJdb/t9YxSbge5l29QYGxTQtYr638eUnAOOEkG6cctUxMRgKKCS sV5wzamP1i5QNRyvNgoaDtMkE06H393SY45e/Rzz4AxPeTBddcyFtfkKlC1xSDi2neFo/C7 VX38kk4LhU3dtZ/GZqFb+cnRwjPejfRjVBIrmei660EaDLxAmV0hgD/ROsFcRmPWkCrk9mC Qgt5kxraojj/Mgaw7ZgTw== X-UI-Out-Filterresults: notjunk:1;V01:K0:K0gN6pGOBkw=:YnUq+3FJrFSdKbdcI97yj5 ldNy6VLNXh2RzHI76TSsBC/dX0HIVyn4kRn6VU4CfDDj2fJ9mpuaSlgqKlpOign0VEBPlLB3Z +kjyeMjn27ORC21MV6LzcNxWk8nqZ3iKHaebxrLjpjKlFsalBIZVtccz4K2Aw++sRVJ/h/pEY X5AE0F2OKkBzFiN3u1hpqk1fF5mq26jsV2UXxExE3rxhCvhMzYW0ni1UEpfwZPPns80v3TLUI AHpP6Wjy9Q8F3TGoNlRNy+PBUqQLF6vPBIwjKiyk7g7E4C8A/ADmjiPpNtKklqjvGMoKMDzUi pjBaAAdIRWhimbQUqnco64G5aUjs81z1o9FbtmH67ouAD2nWOAwNNgKKi2Ldk1+J9iMFclYUf TVglgomyoNnLST5S8mzhcMKMchBQPp2873No+B/rYtzGIhMftGzIsoiT38K9HGOaI1tfPt/Av 3cD+XLz6Lvo1qehKbytWHTcaYomIqkCQ7tFm1TWqZdiwHidpotfU/haomUBjCAMsxTrR7SWD9 QjzIs4r/rlTqd2QO7hR41lZ/4/56/LxRpHiqnT3FZz7fOLJgGyJS489APdGWtAtdS8Fl7+QQw cpQdC5N7HuTkShVX6v4+yRuW2aDfTIEOOR78oi2hfQt8uUDhaWIdegGItcixHuRC7X3o9XlRF pA9aMcfr+KXOL8vjoHBLJ00iDfBw+yp+m12LwIl99VjiJSl5l/i3QtmYL9ZcR3gaHA/EVb64f 5TqA+sfbDpHtnRJcdHQoCtqndmut6pUAFNoio/WlMT0yQZFmBlDCtyM1ibw= Subject: [Caml-list] wrapper for C++ class never gets garbage collected Hi, I've run into a snag writing bindings for Qt5 widgets. The problem is that GUI elements are never garbage collected. Here is why: The Qt5 object needs a pointer to the coresponding ocaml class so it can deliver events that are generated by Qt5 to the ocaml side. It therefore must have a "value ml_obj;". Because the GC can move the ocaml object around that value must be registered as root with the GC. The ocaml class then can never be garbage collected. And if it is not garbage collected then it will no free the Qt5 object. It seems to me that this should be a common problem for any bindings that include callbacks from C to ocaml. Is everyone using an extra indirection through a Weak array? Or manual memory management? Shouldn't there be a way to register a value with the GC as weak? MfG Goswin