From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.1.3 (2006-06-01) on yquem.inria.fr X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr Received: from mail3-relais-sop.national.inria.fr (mail3-relais-sop.national.inria.fr [192.134.164.104]) by yquem.inria.fr (Postfix) with ESMTP id D3943BBC1 for ; Sun, 13 Apr 2008 01:50:15 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoEABDoAEjAXQIm/2dsb2JhbACldIQi X-IronPort-AV: E=Sophos;i="4.25,648,1199660400"; d="scan'208";a="11388309" Received: from discorde.inria.fr ([192.93.2.38]) by mail3-smtp-sop.national.inria.fr with ESMTP; 13 Apr 2008 01:50:15 +0200 Received: from mail4-relais-sop.national.inria.fr (mail4-relais-sop.national.inria.fr [192.134.164.105]) by discorde.inria.fr (8.13.6/8.13.6) with ESMTP id m3CNoEUM026658 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Sun, 13 Apr 2008 01:50:15 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: An8CAIbnAEjRVciuc2dsb2JhbACRUwEMAwQFCRSTa4Qi X-IronPort-AV: E=Sophos;i="4.25,648,1199660400"; d="scan'208";a="24932011" Received: from wf-out-1314.google.com ([209.85.200.174]) by mail4-smtp-sop.national.inria.fr with ESMTP; 13 Apr 2008 01:50:14 +0200 Received: by wf-out-1314.google.com with SMTP id 26so1414352wfd.0 for ; Sat, 12 Apr 2008 16:50:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:received:message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; bh=qhQuBl/BWJDyFXIhV+LGgTvgbauDHB2Yd3G8tar2RYQ=; b=Vv6rRVk/LxKKwFEI1JFHyFwft8bpLZoQmB2sPT6OfYQ/HhX/0NEX0we8FOe2HphADpE/dptu86xf+LIAVvViNFdLKppjLgnWq42ZZdsF6IVefopeIWfGuUNoUlr+cfJ0sDMGlWIxb5eFkFqNZHkXxH+DOqY7p6R7D413sWHcQDc= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:mime-version:content-type:content-transfer-encoding:content-disposition; b=Dwbb68J1fbm0ahzwil/b8/JNSoP+J5xznZetyHRlzpAgBntGeAVNk/aAF/DOYnLZ8Hcqmbb3hC3M9RHPCD8XpXeNpkdX+1I6ON7cPWQ0lawAf5QkqxQNEy1NSY+B54DvcVXalU+MgOkH+jw69+0I2VB0uC5kBtdaC31x7YQYcXw= Received: by 10.142.224.5 with SMTP id w5mr1291240wfg.215.1208044212527; Sat, 12 Apr 2008 16:50:12 -0700 (PDT) Received: by 10.142.191.7 with HTTP; Sat, 12 Apr 2008 16:50:12 -0700 (PDT) Message-ID: <5b0248170804121650x78062d8m4c1d919a72e414b9@mail.gmail.com> Date: Sun, 13 Apr 2008 08:50:12 +0900 From: "Sanghyeon Seo" To: caml-list@inria.fr Subject: break and continue v2 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit Content-Disposition: inline X-Miltered: at discorde with ID 48014AB6.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; sparcs:01 ocaml:01 lambda:01 bytegen:01 translcore:01 hash:01 seo:98 seo:98 stack:01 exception:01 tail:01 tail:01 modifies:02 exits:02 handler:03 This is the revision of break/continue patch I sent. http://sparcs.kaist.ac.kr/~tinuviel/devel/ocaml/ This patch no longer modifies lambda code, and uses static exception instead. bytegen is restored, and break/continue target stack is moved to translcore. simplify_exits is modified to track whether exit is in tail position. It no longer replaces exit with handler when exit is not in tail position. This is done with two hash tables; I'd like to hear suggestions for better implementation. -- Seo Sanghyeon