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.3 required=5.0 tests=AWL autolearn=disabled version=3.1.3 Received: from mail2-relais-roc.national.inria.fr (mail2-relais-roc.national.inria.fr [192.134.164.83]) by yquem.inria.fr (Postfix) with ESMTP id C1083BBAF for ; Wed, 15 Oct 2008 07:52:56 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmsDAB8i9UjAXQIniGdsb2JhbACTIT4BAQEVIqMRbIgPAQMBA4Fo X-IronPort-AV: E=Sophos;i="4.33,414,1220220000"; d="scan'208";a="16094516" Received: from concorde.inria.fr ([192.93.2.39]) by mail2-smtp-roc.national.inria.fr with ESMTP; 15 Oct 2008 07:52:56 +0200 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by concorde.inria.fr (8.13.6/8.13.6) with ESMTP id m9F5quUk019156 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Wed, 15 Oct 2008 07:52:56 +0200 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AioBAKMh9UjRVY68jmdsb2JhbACTIT4BAQEBCQkMBw8FoxJsiA8BAwEDgWg X-IronPort-AV: E=Sophos;i="4.33,414,1220220000"; d="scan'208";a="18745329" Received: from ti-out-0910.google.com ([209.85.142.188]) by mail1-smtp-roc.national.inria.fr with ESMTP; 15 Oct 2008 07:52:54 +0200 Received: by ti-out-0910.google.com with SMTP id d27so2531428tid.9 for ; Tue, 14 Oct 2008 22:52:53 -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:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:references; bh=rgBGTWAOHL++Hwp7wL/JjzxBsAVNSLG+r33ieowZG0U=; b=cMxL26ekiGSthv0aN7QRjC3BfmSYyhKJUdI3FDNSwXfW3X3dS4+1/A29McCuv9X/+X 3Xq9qAGPcVWr38LkO0hTXEkyX+I56OYPiUxwdekc6DoGjGP8BTasQQloFGJC7x4b4znf EEoGPC4U3QC6ydXTzWEDsJqmOGoUf/k6Cke5w= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=message-id:date:from:to:subject:in-reply-to:mime-version :content-type:content-transfer-encoding:content-disposition :references; b=xbzMsZGoznpQEdfj0zbFSvusAXNcQnAl1IqBBJeKf4KsRUevP4aSR7pnsABz0NxCB2 YHdY6nl2mVN7lYJ0vRcNTvB1wMlKZpBOoDMYkJWsI/8RDyqamETK50pGstiJlR0mzZ4U VFXgSeuFGNO9z3lTuih6/joiot1r7+OiRM5f4= Received: by 10.110.20.15 with SMTP id 15mr383559tit.28.1224049973046; Tue, 14 Oct 2008 22:52:53 -0700 (PDT) Received: by 10.110.47.15 with HTTP; Tue, 14 Oct 2008 22:52:52 -0700 (PDT) Message-ID: <90823c940810142252q16764d3avcfa9a358d14a719a@mail.gmail.com> Date: Wed, 15 Oct 2008 09:52:52 +0400 From: "Dmitry Bely" To: "Caml List" Subject: Re: [Caml-list] Re: Road to native windows OCaml... In-Reply-To: <200810141737.16230.kuba@mareimbrium.org> MIME-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-Disposition: inline References: <200810131935.53365.kuba@mareimbrium.org> <200810141737.16230.kuba@mareimbrium.org> X-Miltered: at concorde with ID 48F58538.000 by Joe's j-chkmail (http://j-chkmail . ensmp . fr)! X-Spam: no; 0.00; ocaml:01 ocaml:01 mingw:01 cygwin:01 compilation:01 bytecode:01 debugger:01 debugger:01 mingw:01 bytecode:01 descriptors:01 wrote:01 unix:01 msvc:01 dmitry:01 On Wed, Oct 15, 2008 at 1:37 AM, Kuba Ober wrote: >> > I've looked briefly at what it'd take to have OCaml >> > fully working natively (with mingw/VS), without any Cygwin >> > needed for compilation. >> > >> > 3. I need to look at the bytecode debugger and figure out why doesn't it >> > work on non-Cygwin builds. >> >> OCaml 3.11 will ship a debugger for Win32 (mingw/msvc). Everything >> should be working except the replay part which depends on fork. >> >> I have worked on this, based on a patch provided few months ago by >> Dimitry Bely. All in all, I have reimplemented "select" for win32 && >> pipe. > > Why do we need fork? I need to look at the code... http://caml.inria.fr/pub/ml-archives/caml-list/1999/03/f44178e212e78826bcbdee52ddf6fd91.en.html Concerning bytecode debugging under Windows, the major issue is the way our debugger performs periodic checkpointing of the running program (in order to implement reverse execution). We just use the Unix fork() system call, which does everything we want (checkpointing of memory and file descriptors, using lazy copy-on-write to minimize copying). - Dmitry Bely