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=3.0 required=5.0 tests=AWL,DNS_FROM_SECURITYSAGE, SPF_NEUTRAL autolearn=disabled version=3.1.3 X-Original-To: caml-list@yquem.inria.fr Delivered-To: caml-list@yquem.inria.fr 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 86EA6BB84 for ; Sat, 1 Nov 2008 01:40:05 +0100 (CET) X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjMCAA5CC0lA6ba5imdsb2JhbACBdk+RDz4BAQEKCQwHDwWuEYo8AQQ X-IronPort-AV: E=Sophos;i="4.33,525,1220220000"; d="scan'208";a="16735910" Received: from nf-out-0910.google.com ([64.233.182.185]) by mail2-smtp-roc.national.inria.fr with ESMTP; 01 Nov 2008 01:40:05 +0100 Received: by nf-out-0910.google.com with SMTP id b11so722467nfh.13 for ; Fri, 31 Oct 2008 17:40:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlemail.com; s=gamma; h=domainkey-signature:received:received:organization:to:subject:date :user-agent:references:in-reply-to:mime-version:content-type :content-transfer-encoding:content-disposition:message-id:from; bh=29SZWTltusjI8kkiY2gs9OTAbPjY8Gh+QV2FoKAKufI=; b=FFd/ebR0lzzS9MV+dQF++fCWgBtRAAV+sH4XD1Tgbx8cgu0JFcjpzivSJK3rws+Gln F/Din9bGEJjevGiq3dwQhZ1TpoeSM/nmSJYDad2YY1hZcp5b1CVleapBEyejiLZOjhH1 nhYf0QQAHtKtsn4IyCHJ9BUjXSvbHDwIWDayU= DomainKey-Signature: a=rsa-sha1; c=nofws; d=googlemail.com; s=gamma; h=organization:to:subject:date:user-agent:references:in-reply-to :mime-version:content-type:content-transfer-encoding :content-disposition:message-id:from; b=hHztI/19McVXkNhY0pSnYi8co5+dlbDWlARP634ym3EYisSqr+CQ4NfBn9umzniUgX /cRmZy+TYUXJNl8rQ8sAzGaYXiHppZiR1TQIsoezRmeeMZTRO8RM02qyUIIygAiSVlBA 4AGY3i5KkS1DvM3xBc3hO3GTmUHl3FCUruUMQ= Received: by 10.210.29.11 with SMTP id c11mr5338647ebc.53.1225500004760; Fri, 31 Oct 2008 17:40:04 -0700 (PDT) Received: from leper.local (87.112.11.235.plusnet.ptn-ag1.dyn.plus.net [87.112.11.235]) by mx.google.com with ESMTPS id f13sm7242648gvd.4.2008.10.31.17.40.03 (version=TLSv1/SSLv3 cipher=RC4-MD5); Fri, 31 Oct 2008 17:40:03 -0700 (PDT) Organization: Flying Frog Consultancy Ltd. To: caml-list@yquem.inria.fr Subject: Re: [Caml-list] What does Jane Street use/want for an IDE? What about you? Date: Sat, 1 Nov 2008 01:41:55 +0000 User-Agent: KMail/1.9.9 References: <200810200919.41561.ober.14@osu.edu> In-Reply-To: <200810200919.41561.ober.14@osu.edu> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <200811010141.55282.jon@ffconsultancy.com> From: Jon Harrop X-Spam: no; 0.00; emacs:01 ocaml:01 ocaml's:01 lexer:01 parser:01 bindings:01 pointer:01 pointer:01 unification:01 lablgtk:01 ocaml:01 hair:98 frog:98 wrote:01 graph:01 On Monday 20 October 2008 14:19:40 Kuba Ober wrote: > what do you guys use for your development environment? I use Emacs but I hate it. > What would be the minimal set of functionality that would make you happy for > an IDE? . Written in OCaml using OCaml's own lexer and parser to save effort and make it possible for others to help develop it without losing their hair. . A proper GUI (where options can be set using the mouse). . Mainstream key bindings, e.g. CTRL+S for save. . Jump to definition. . Graphical throwback of the type of the subexpression under the mouse pointer or in the current selection. . Graphical throwback of the documentation related to what is under the mouse pointer. . Graphical throwback of errors and, in the case of type errors, optional highlighting of previous unification points. . Refactoring, e.g. changing the name of a definition in all occurrences. . Autocompletion that handles structural types in LablGTK code and operators, i.e. when the user types "+" present options for int "+", float "+.", num "+/" and any other operators that begin with "+". . Represent an OCaml project as a tree of modules that happen to have the first level stored as files. . Performant enough to handle projects with hundreds of thousands of lines of code. . Parallel so seven of my cores aren't idle while I'm waiting. . The ability to hide the tail of +., +/ etc. operators to make numerical code more readable. > What are killer features you dream of? Only one: an interactive top-level where output is presented via graphical elements (e.g. a scene graph) and is no longer limited to just ASCII text. This would give OCaml the graphical capabilities of Mathematica's awesome "notebook" front-end. -- Dr Jon Harrop, Flying Frog Consultancy Ltd. http://www.ffconsultancy.com/?e