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 Received: from mail1-relais-roc.national.inria.fr (mail1-relais-roc.national.inria.fr [192.134.164.82]) by yquem.inria.fr (Postfix) with ESMTP id 9D534BB84 for ; Sat, 11 Oct 2008 18:19:59 +0200 (CEST) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4CAA9v8EhDWxLCYGdsb2JhbACBcpFfHiqmO4Fs X-IronPort-AV: E=Sophos;i="4.33,394,1220220000"; d="scan'208";a="18590009" Received: from ip67-91-18-194.z18-91-67.customer.algx.net (HELO server1.bertec.net) ([67.91.18.194]) by mail1-smtp-roc.national.inria.fr with ESMTP; 11 Oct 2008 18:19:59 +0200 Received: from kuba.bertec.net (kuba.bertec.net [192.168.2.16]) by server1.bertec.net (Postfix) with ESMTP id 74340105761 for ; Sat, 11 Oct 2008 12:19:57 -0400 (EDT) From: Kuba Ober To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] Teaching ocaml programming Date: Sat, 11 Oct 2008 12:19:55 -0400 User-Agent: KMail/1.9.10 References: <48DCC7B8.4070700@fmf.uni-lj.si> <48EF8BF8.4050102@andrej.com> <200810111158.49053.kuba@mareimbrium.org> In-Reply-To: <200810111158.49053.kuba@mareimbrium.org> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200810111219.56723.kuba@mareimbrium.org> X-Spam: no; 0.00; ocaml:01 syntax:01 toplevel:01 ocaml:01 bindings:01 bindings:01 mingw:01 cygwin:01 mingw:01 toolchain:01 trivial:01 cygwin:01 refactor:01 refactor:01 cheers:01 On Saturday 11 October 2008, Kuba Ober wrote: > OK, I'm off to work on tonight and tomorrow. My minimal goals are: > 1. Editor with at least skeleton syntax highligting > 2. Output window so that you can see results of your program running > 3. Toplevel window so that you can run interactive sessions. [...] > The thing will be written in C++, as getting the necessary Ocaml bindings > generated for Qt would take too much time initially. Maybe later I'd port > it to Ocaml, as long as I can get the bindings to work well on Windows. > In the long run I'd need to patch mingw as appropriate so that Ocaml could > use it without subjecting people to Cygwin, and so that the whole thing > could be actually easily built once you install Ocaml, Mingw and Qt's > sources. Mingw toolchain needs relatively few files to run, and is rather > trivial to set up (just copy a bunch of files into a directory, and set up > the path). Hmm, replying to myself: Camelia already does a lot of this, but I don't know how well it works with native (non-Cygwin) OCaml. I will try it out, it seems to be a great starting point, and it may actually get me to tweak things out so that OCaml can do its thing without any Cygwin support at all. My revised goals are thus: 1. Get Camelia compiled using VS/Qt4. See how it works with native (mingw-compiled) Ocaml, tweak as necessary. Make an installer. This is the path of least resistance, as VS is my primary development environment. 2. Addressing some usability issues. Refactor/port to Qt4 only as there's no GPL'd Qt3 for Windows. This means drop any Qt3 support code, and refactor the code to use Qt4 features - this should reduce source size somewhat. 3. Install mingw compilers and compile Qt so that there's a free platform for compiling Camelia. 4. Try compiling Camelia using those, tweak as necessary, rebuild the installer to provide Camelia with GPL'd Qt. 5. See if it's possible to get OCaml to build natively using mingw, without Cygwin present. Likely patch mingw to provide @responsefile and whatever other functionality OCaml depends on. Cheers, Kuba