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 D78EB7FACC for ; Sat, 6 Sep 2014 02:00:08 +0200 (CEST) Received-SPF: None (mail3-smtp-sop.national.inria.fr: no sender authenticity information available from domain of martin.jambon@ens-lyon.org) identity=pra; client-ip=66.111.4.25; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martin.jambon@ens-lyon.org"; x-sender="martin.jambon@ens-lyon.org"; x-conformance=sidf_compatible Received-SPF: Neutral (mail3-smtp-sop.national.inria.fr: domain of martin.jambon@ens-lyon.org does not assert whether or not 66.111.4.25 is permitted sender) identity=mailfrom; client-ip=66.111.4.25; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martin.jambon@ens-lyon.org"; x-sender="martin.jambon@ens-lyon.org"; 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@out1-smtp.messagingengine.com) identity=helo; client-ip=66.111.4.25; receiver=mail3-smtp-sop.national.inria.fr; envelope-from="martin.jambon@ens-lyon.org"; x-sender="postmaster@out1-smtp.messagingengine.com"; x-conformance=sidf_compatible X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArABAExOClRCbwQZnGdsb2JhbABag2BXgnyvf4Q0kXKHTAGBBBYQAQEBAQEGDQkJFCmEAwEBBAEjFQguCgEBBAsLGAICBQQSCAMCAgkDAgECATMBEQYNAQUCAQEOiBwDCQgNqQR4hQiJSAOGZAERBoEsjVoUMweCeYFThQ8FhiWHC4MviFqFRhqRa0yCTwEBAQ X-IPAS-Result: ArABAExOClRCbwQZnGdsb2JhbABag2BXgnyvf4Q0kXKHTAGBBBYQAQEBAQEGDQkJFCmEAwEBBAEjFQguCgEBBAsLGAICBQQSCAMCAgkDAgECATMBEQYNAQUCAQEOiBwDCQgNqQR4hQiJSAOGZAERBoEsjVoUMweCeYFThQ8FhiWHC4MviFqFRhqRa0yCTwEBAQ X-IronPort-AV: E=Sophos;i="5.04,476,1406584800"; d="scan'208";a="77937698" Received: from out1-smtp.messagingengine.com ([66.111.4.25]) by mail3-smtp-sop.national.inria.fr with ESMTP/TLS/DHE-RSA-AES256-SHA; 06 Sep 2014 01:59:43 +0200 Received: from compute6.internal (compute6.nyi.internal [10.202.2.46]) by gateway2.nyi.internal (Postfix) with ESMTP id DE75420702 for ; Fri, 5 Sep 2014 19:59:41 -0400 (EDT) Received: from frontend2 ([10.202.2.161]) by compute6.internal (MEProxy); Fri, 05 Sep 2014 19:59:41 -0400 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d= messagingengine.com; h=message-id:date:from:mime-version:to:cc :subject:references:in-reply-to:content-type :content-transfer-encoding; s=smtpout; bh=sMBoGa9fgBm6WvdNmaI+ap gHb2A=; b=frZURDaHDSQpkvJTIIFOdzjCCo7mlPUD2XCSmcZ1ANTB9wvC+U+2D5 0yu/JViWIsP7y9QVSJqm4OfBj8Wu5e2ZrbfAUnRkg1wEnnjNY9DWdl9lWFzLw8pP eYvaYVgY3jpdLNyuPBHdqgHXIYFUIN3UdviD+LOduYjVGiMDI8h7I= X-Sasl-enc: wdTsod4dud/woGXx09DkWv18rWna3SpLBrg82/66ysSJ 1409961581 Received: from [172.16.71.136] (unknown [50.193.45.145]) by mail.messagingengine.com (Postfix) with ESMTPA id 6AE1D6800D2; Fri, 5 Sep 2014 19:59:41 -0400 (EDT) Message-ID: <540A4E6C.3020301@ens-lyon.org> Date: Fri, 05 Sep 2014 16:59:40 -0700 From: Martin Jambon User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: Ashish Agarwal CC: Caml List References: <20140905215626.GB3416@annexia.org> <20140905221302.GE3099@annexia.org> <20140905221813.GC3416@annexia.org> <540A3B85.6010609@ens-lyon.org> In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Subject: Re: [Caml-list] segfault in simple program with 4.02 native On Fri 05 Sep 2014 04:39:54 PM PDT, Ashish Agarwal wrote: > > First try a 'make test' from atdgen's source > ... > The following tests failed: > ocaml internals > biniou correctness > json correctness > *** FAILURE *** The "ocaml internals" test fails on this: type internals1 = { int1 : bool } ... let f () = { int1 = Obj.magic false } in assert (f () != f ()); So don't use atdgen 1.3.1 or below with ocaml 4.02.0 or above. No promise as when this will be fixed. Follow the activity on github if you're interested in following or contributing. > Thanks to everyone for all the replies. My type defs are small, so at > least I can easily bypass the issue by using Yojson directly. > > > > > On Fri, Sep 5, 2014 at 6:39 PM, Martin Jambon > > wrote: > > On 09/05/2014 03:18 PM, Richard W.M. Jones wrote: > > On Fri, Sep 05, 2014 at 11:13:02PM +0100, Richard W.M. Jones > wrote: > > On Fri, Sep 05, 2014 at 06:06:55PM -0400, Ashish Agarwal > wrote: > > I increased the stack size to 65532, which is > apparently the max allowed on > a Mac, and it doesn't change the behavior. > > > Yup. I was able to reproduce this on the non-core > version, and indeed > increasing the stack to unlimited on Linux does not help. > > The stack trace is simple: > > #0 0x00000000004543f4 in > camlPervasives__output_string___1198 () > #1 0x0000000000472093 in > camlCamlinternalFormat____output_acc_60624 () > #2 0x0000000000473a32 in camlPrintf__fun_1062 () > #3 0x000000000041e776 in camlApp__entry () > #4 0x000000000041c5f9 in caml_program () > #5 0x0000000000497f7e in caml_start_program () > #6 0x000000000049813d in __libc_csu_init () > #7 0x00007ffff7317d65 in __libc_start_main () from > /lib64/libc.so.6 > #8 0x000000000041c2e9 in _start () > > I'm just installing debuginfo so I can get more symbols .. > > > .. although I guess the fact that the generated code in > config_j.ml is > doing a lot of Obj.magic would be the first place to be > suspicious. > > eg: > > let (x : postgres) = > { > host = Obj.magic 0.0; > ... > > where the host field has declared type string. Really? > > > That code is generated by atdgen. What happens is that we have to > either create an empty record when starting to parse a list of > unordered JSON fields, or use a bunch `let = ref None > in` for each field and create the record in the end. While the > latter approach is not much more work to implement, the resulting > code was found to be significantly slower. > > The reason why it's using `Obj.magic 0.0` is that it worked in all > cases (and has been for the past 4 years). Obtaining a well-formed > constant value for any type is not trivial, so this what we have. > > It's very possible that it's now broken with OCaml 4.02. First try > a 'make test' from atdgen's source directory > (https://github.com/mjambon/__atdgen > ) and see if it passes. > > > Martin > > > > -- > 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 > > >