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 20B5A7EEBF for ; Thu, 6 Aug 2015 11:49:49 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of gabriel.scherer@gmail.com) identity=pra; client-ip=209.85.213.173; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; x-conformance=sidf_compatible Received-SPF: Pass (mail3-smtp-sop.national.inria.fr: domain of gabriel.scherer@gmail.com designates 209.85.213.173 as permitted sender) identity=mailfrom; client-ip=209.85.213.173; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="gabriel.scherer@gmail.com"; 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@mail-ig0-f173.google.com) identity=helo; client-ip=209.85.213.173; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="gabriel.scherer@gmail.com"; x-sender="postmaster@mail-ig0-f173.google.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0BbAgCVLcNVm63VVdFbgzo1aQaDHalhhGCNOoV5AoFAB0wBAQEBAQESAQEBAQEGCwsJIS6EJAEBBBIRBBkBGxILAQMMBgULDQICCR0CAiIBEQEFAQoSBhMIChCHdgEDEg2oXoEuPjGLP4FsgnmLRQoZJwMKFUKEawEBAQEBAQQBAQEBARcBBQ6BFIothQkHgmmBQwEEhWkMjwyEf4dYgg2WFhIjgRcXhA48MYJMAQEB X-IPAS-Result: A0BbAgCVLcNVm63VVdFbgzo1aQaDHalhhGCNOoV5AoFAB0wBAQEBAQESAQEBAQEGCwsJIS6EJAEBBBIRBBkBGxILAQMMBgULDQICCR0CAiIBEQEFAQoSBhMIChCHdgEDEg2oXoEuPjGLP4FsgnmLRQoZJwMKFUKEawEBAQEBAQQBAQEBARcBBQ6BFIothQkHgmmBQwEEhWkMjwyEf4dYgg2WFhIjgRcXhA48MYJMAQEB X-IronPort-AV: E=Sophos;i="5.15,622,1432591200"; d="scan'208";a="142167298" Received: from mail-ig0-f173.google.com ([209.85.213.173]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/RC4-SHA; 06 Aug 2015 11:49:40 +0200 Received: by igr7 with SMTP id 7so7606433igr.0 for ; Thu, 06 Aug 2015 02:49:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=jgDOs9aI9FoRP5SxLwjnWYssQnptpc1u8V/xQci381M=; b=mQ+3soDrdaZscI+Oz4jKBbRIgKtBwVbabqi8wp2yYYep0kFTUOfbt9ywCgMeq/5aQ5 kZr53yLtLYW1EpDRrTwHq8/N+HbXVWTCQ8j1w6aveQpV4KxxAHaX9M/ntvl7nS0cp58o xY4S5i8yplBj5Ifa0yrOl1/ZDxf00NDycdhIob/dQqBGF4G1TYBu64ajUCn0HdEsOIZZ PwWkkrKcgAceQ5O3mMdMRjhZCWS0rPuQCzCoGhDoBYHFYkax9/zPs/k03ATYaK0lMbNi m+qmuaPlognpjOkI+2N/QQqAwG252UhytbEIc/uT53FIvQXV0nEm9hFjc1kmT+KGriGz TUDQ== X-Received: by 10.50.128.169 with SMTP id np9mr2516572igb.37.1438854578697; Thu, 06 Aug 2015 02:49:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.79.68.132 with HTTP; Thu, 6 Aug 2015 02:48:59 -0700 (PDT) In-Reply-To: <20150806094030.GE16477@frosties> References: <20150806094030.GE16477@frosties> From: Gabriel Scherer Date: Thu, 6 Aug 2015 11:48:59 +0200 Message-ID: To: Goswin von Brederlow Cc: caml users Content-Type: text/plain; charset=UTF-8 Subject: Re: [Caml-list] Destructive use of file descriptors Many libraries provide a with_file_{in,out} function capturing this pattern, without need for specific language support. BatFile.with_file_out "foo" (fun fd -> print_endline str ) On Thu, Aug 6, 2015 at 11:40 AM, Goswin von Brederlow wrote: > Hi, > > in Python one can write: > > with open("foo") as fd: > fd.write(str) > > This involves some language magic that will open the file for the > duration of the block and close it at the end. The file descriptor is > automatically closed at a know time and not leaked or left until the > GC gets around to cleaning it up. > > Has anyone constructed something like that for ocaml? Maybe with a ppx > extension? > > MfG > Goswin > > -- > Caml-list mailing list. Subscription management and archives: > https://sympa.inria.fr/sympa/arc/caml-list > Beginner's list: http://groups.yahoo.com/group/ocaml_beginners > Bug reports: http://caml.inria.fr/bin/caml-bugs