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 DD5507FCCB for ; Sat, 2 May 2015 22:49:25 +0200 (CEST) Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of carette@mcmaster.ca) identity=pra; client-ip=130.113.128.25; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="carette@mcmaster.ca"; x-sender="carette@mcmaster.ca"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of carette@mcmaster.ca) identity=mailfrom; client-ip=130.113.128.25; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="carette@mcmaster.ca"; x-sender="carette@mcmaster.ca"; x-conformance=sidf_compatible Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@pinegw02.uts.mcmaster.ca) identity=helo; client-ip=130.113.128.25; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="carette@mcmaster.ca"; x-sender="postmaster@pinegw02.uts.mcmaster.ca"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: A0AyAgATOEVVbRmAcYJcg19cgx3CSIFOhgwCgg4SAQEBAQEBARENBgUJCSEuhCEBAQQjDwEFUQsYAgIFIQICDwIQNgYBDAYCAQGIEwMRsl2NMw2FHgEBAQcBAQEBHoEhihiCTYIFOoJogUUFj2KGPIRsgzaFZod3hmCCCIIrU4JFAQEB X-IPAS-Result: A0AyAgATOEVVbRmAcYJcg19cgx3CSIFOhgwCgg4SAQEBAQEBARENBgUJCSEuhCEBAQQjDwEFUQsYAgIFIQICDwIQNgYBDAYCAQGIEwMRsl2NMw2FHgEBAQcBAQEBHoEhihiCTYIFOoJogUUFj2KGPIRsgzaFZod3hmCCCIIrU4JFAQEB X-IronPort-AV: E=Sophos;i="5.13,356,1427752800"; d="scan'208";a="138650882" Received: from pinegw02.uts.mcmaster.ca ([130.113.128.25]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 02 May 2015 22:49:23 +0200 Received: from pinegw03.uts.mcmaster.ca (pinegw03.UTS.McMaster.CA [130.113.64.132]) by pinegw02.uts.mcmaster.ca (8.14.4/8.14.4) with ESMTP id t42KnJhT019715 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sat, 2 May 2015 16:49:19 -0400 Received: from cgpsrv2.cis.mcmaster.ca (univmail.CIS.McMaster.CA [130.113.64.46]) by pinegw03.uts.mcmaster.ca (8.14.4/8.14.4) with ESMTP id t42KnJAM008796; Sat, 2 May 2015 16:49:19 -0400 Received: from [99.236.219.219] (account carette@univmail.cis.mcmaster.ca HELO [192.168.2.104]) by cgpsrv2.cis.mcmaster.ca (CommuniGate Pro SMTP 5.2.12) with ESMTPSA id 558463269; Sat, 02 May 2015 16:49:19 -0400 Message-ID: <5545384D.40803@mcmaster.ca> Date: Sat, 02 May 2015 16:49:17 -0400 From: Jacques Carette Organization: McMaster University User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:31.0) Gecko/20100101 Thunderbird/31.6.0 MIME-Version: 1.0 To: =?UTF-8?B?w5ZtZXIgU2luYW4gQcSfYWNhbg==?= , OCaml Mailing List References: <20150501112114.1C8DFC382A@www1.g3.pair.com> <1430496980.1158661.261513285.08E1920C@webmail.messagingengine.com> <1430498707.1164081.261525093.47AD6B00@webmail.messagingengine.com> In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit X-PMX-Version-Mac: 6.0.3.2322014, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2015.5.2.203915 X-PerlMx-Spam: Gauge=XXIIIIIIII, Probability=28%, Report=' SXL_IP_DYNAMIC 3, HTML_NO_HTTP 0.1, HTML_00_10 0.05, BODYTEXTP_SIZE_3000_LESS 0, BODY_SIZE_2000_2999 0, BODY_SIZE_5000_LESS 0, BODY_SIZE_7000_LESS 0, DATE_TZ_NA 0, NO_URI_FOUND 0, REFERENCES 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CT 0, __CTE 0, __CT_TEXT_PLAIN 0, __FORWARDED_MSG 0, __HAS_FROM 0, __HAS_HTML 0, __HAS_MSGID 0, __IN_REP_TO 0, __MIME_TEXT_ONLY 0, __MIME_VERSION 0, __MOZILLA_MSGID 0, __MOZILLA_USER_AGENT 0, __REFERENCES 0, __SANE_MSGID 0, __SUBJ_ALPHA_END 0, __SUBJ_ALPHA_NEGATE 0, __USER_AGENT 0' X-Spam-Flag: NO Subject: Re: [Caml-list] Problems with printing MetaOCaml generated code try instead let stx1 = .< A >. in and then print_code std_formatter .< .~stx1 >. ; That ought to work as you wish. Jacques On 2015-05-02 2:45 PM, Ömer Sinan Ağacan wrote: > In case anyone's still interested, I produced a very simple example that > demonstrates the issue: > > ➜ metaocaml_serialization_issue git:(master) ✗ ls > Main.ml Syntax.ml > ➜ metaocaml_serialization_issue git:(master) ✗ cat Syntax.ml > type stx = > | A > | B of stx > | C of (stx * stx) > ➜ metaocaml_serialization_issue git:(master) ✗ cat Main.ml > open Format > open Print_code > open Runcode > open Syntax > > let _ = > let stx1 = A in > let stx2 = B A in > let stx3 = C (A, A) in > > print_code std_formatter .< stx1 >.; > print_code std_formatter .< stx2 >.; > print_code std_formatter .< stx3 >.; > > print_closed_code std_formatter (close_code .< stx1 >.); > print_closed_code std_formatter (close_code .< stx2 >.); > print_closed_code std_formatter (close_code .< stx3 >.); > ➜ metaocaml_serialization_issue git:(master) ✗ metaocamlc Syntax.ml -c > ➜ metaocaml_serialization_issue git:(master) ✗ metaocamlc > Syntax.cmo Main.ml -o main > ➜ metaocaml_serialization_issue git:(master) ✗ ./main > .<(* CSP stx1 *) Obj.magic 0>. .<(* CSP stx2 *)>. .<(* CSP stx3 *)>. .< > (* CSP stx1 *) Obj.magic 0>. .<(* CSP stx2 *)>. .<(* CSP stx3 *)>. > ➜ metaocaml_serialization_issue git:(master) ✗ > > > 2015-05-01 12:53 GMT-04:00 Ömer Sinan Ağacan : >>> You can't serialize `eval_ref` as `eval_ref` because that is a local >>> identifier. If you print out `eval_ref` into some other ml file and compiler >>> it, it is going to give an "Unbound identifier eval_ref" error. >> That's true. Just to make sure and make the output more clear, I moved the >> relevant code to another module, and now it's printing this: >> >> .. >> >> My main question is that it should serialize p' here, but it doesn't. I'm >> trying to understand why.