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 D30568015E for ; Mon, 29 May 2017 13:16:14 +0200 (CEST) Authentication-Results: mail2-smtp-roc.national.inria.fr; spf=None smtp.pra=jeremie@dimino.org; spf=Pass smtp.mailfrom=jeremie@dimino.org; spf=None smtp.helo=postmaster@mail-qt0-f176.google.com Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of jeremie@dimino.org) identity=pra; client-ip=209.85.216.176; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jeremie@dimino.org"; x-sender="jeremie@dimino.org"; x-conformance=sidf_compatible Received-SPF: Pass (mail2-smtp-roc.national.inria.fr: domain of jeremie@dimino.org designates 209.85.216.176 as permitted sender) identity=mailfrom; client-ip=209.85.216.176; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jeremie@dimino.org"; x-sender="jeremie@dimino.org"; x-conformance=sidf_compatible; x-record-type="v=spf1" Received-SPF: None (mail2-smtp-roc.national.inria.fr: no sender authenticity information available from domain of postmaster@mail-qt0-f176.google.com) identity=helo; client-ip=209.85.216.176; receiver=mail2-smtp-roc.national.inria.fr; envelope-from="jeremie@dimino.org"; x-sender="postmaster@mail-qt0-f176.google.com"; x-conformance=sidf_compatible IronPort-PHdr: =?us-ascii?q?9a23=3AZ4870RDszHVpo1uwDDsDUyQJP3N1i/DPJgcQr6Af?= =?us-ascii?q?oPdwSPT6o8bcNUDSrc9gkEXOFd2CrakV1ayL7OigATVGusfe9ihaMdRlbFwst4?= =?us-ascii?q?Y/p08aPIa9E0r1LfrnPWQRPf9pcxtbxUy9KlVfA83kZlff8TWY5D8WHQjjZ0Iu?= =?us-ascii?q?frymUoHdgN6q2O+s5pbdfxtHhCanYbN1MR66sRjdutMYjIZmK6s90BvEr3lVcO?= =?us-ascii?q?hS2W9kOEifkhj468qy5pJv7zhct/c8/MNcTKv2eLg1QrNfADk6KW4549Hluwfe?= =?us-ascii?q?RgWV/HscVWsWkhtMAwfb6RzxQ4n8vCjnuOdjwSeWJcL5Q6w6VjSk9KdrVQTniD?= =?us-ascii?q?wbOD4j8WHYkdJ/gaRGqx+8vRN/worUYIaINPpie67WYN0XSXZdUstXSidMBJ63?= =?us-ascii?q?YYkSAOobJetWr4fzqVgToxWgGQaiC/jiyiNRhnLswaE2z/gtHAPA0Qc9H9wOqn?= =?us-ascii?q?PUrNDtOakWT++11rfHzTDCb/xIxDzz5onIchUgofGKWrJ7bM3cyUsxGAPfkFqQ?= =?us-ascii?q?rI3lMC2O2+sQsmib6utgVeSoi2I9rAFxuDevy94qh4LUiIwVzVXE+j94wIYzPd?= =?us-ascii?q?C4R097YcKkEJtNrC6WLZd5QsQnQ21wvSY6y6EJuYS8fCgRz5QnyQLfZ+abfIiP?= =?us-ascii?q?5xLuUvuaLzRghH99Zr6zmxK//VKjx+D8TMW4zktGoytfntXRtH0A1hre4dWdRP?= =?us-ascii?q?Rn5EeuwzOP2hjT6u5aJUA0krLWK5s7zb4xkpofqF3DHjPqlEnvgq+aa0cp9+my?= =?us-ascii?q?5+ToZbXmoZCcN4tqhQ3kLqsuncm/Dfw5MggIQWeb5fyx2KP/8UD9WrlHjf07nr?= =?us-ascii?q?PHvJzHJMkXvLO1Dg1U34o77hawFTam0NAWnXkdK1JFfQqKj4r3NFHUPv/4CPa/?= =?us-ascii?q?jEq3nTh2xvDGO7zhApPKLnTZl7fhZ7l951ZGyAUv1dBf+45UCrYZLf3vQEDxsd?= =?us-ascii?q?jYAgY9Mwy12ObnFM5w1pgeWGKKGq+WKrnesV6O5uI1IumDfpUZuDjnK6tt2/m7?= =?us-ascii?q?hnY8nRoZfLK19ZoRcnGxWPp8cGuDZn+5oNobHGILs0ISTenrjlrKBTxefXu3Xq?= =?us-ascii?q?8U6jA+CYShS4DZSdb+0/S6wC6nE8gONSh9AVeWHCKweg=3D=3D?= X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: =?us-ascii?q?A0BqAQDDAixZhrDYVdFeHhgHDBgHg3+BD?= =?us-ascii?q?QeDa7F3gg8uhSxGAoMPBz8YAQEBAQEBAQEBAQESAQEBCAsLCCgvgjMigm0dAQE?= =?us-ascii?q?4JQ8CJgIkEgEFAQ4BOooWEJ8PP4sdaoImgwkBAQWIQR4DBRJ5khMMMYJgiUyUX?= =?us-ascii?q?IcgjAhsgRqFPIozApMGFB+BFR93SzAhCCgIRhkGhHSBcD82AYlTAQEB?= X-IPAS-Result: =?us-ascii?q?A0BqAQDDAixZhrDYVdFeHhgHDBgHg3+BDQeDa7F3gg8uhSx?= =?us-ascii?q?GAoMPBz8YAQEBAQEBAQEBAQESAQEBCAsLCCgvgjMigm0dAQE4JQ8CJgIkEgEFA?= =?us-ascii?q?Q4BOooWEJ8PP4sdaoImgwkBAQWIQR4DBRJ5khMMMYJgiUyUXIcgjAhsgRqFPIo?= =?us-ascii?q?zApMGFB+BFR93SzAhCCgIRhkGhHSBcD82AYlTAQEB?= X-IronPort-AV: E=Sophos;i="5.38,414,1491256800"; d="scan'208";a="276382564" Received: from mail-qt0-f176.google.com ([209.85.216.176]) by mail2-smtp-roc.national.inria.fr with ESMTP/TLS/AES128-GCM-SHA256; 29 May 2017 13:15:39 +0200 Received: by mail-qt0-f176.google.com with SMTP id f55so47492211qta.3 for ; Mon, 29 May 2017 04:15:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dimino-org.20150623.gappssmtp.com; s=20150623; h=mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=zJJAyCWYtQZ3W2WPUnMbjjGvyOHxZugd1kuOLEXEE9o=; b=SbF6kvM3tgI0+gx4h+SUXXgGJTDn49WOPDIBqC4P0U66X32RIfK5IwC3Gwdozx7z9F MmjvEjp4Cgl0lISbyXB7/XiheCVboHj2ZPheupXn7vwOXONalcKZ/BG4I8o0nS2hUjPs +sK54EXcc+kqBl+V0RcUADIYbWCTZ1ZUDsPERAc+nKfcv/Q4VjlTeoeS1/CG9HYlzjI6 Z6cLhojqkETh2BTJnw6KibEBRH4/uuStRVqwJoHBkI/hcQrjSVotbwwfz0BOrdx/F9Wx RfqfGajTv8NSKjzOa6VPyRzII1wnQFbIXg2rpp3v77fyWxDiWrgEusItoEnZdwculcuJ BFhw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to :content-transfer-encoding; bh=zJJAyCWYtQZ3W2WPUnMbjjGvyOHxZugd1kuOLEXEE9o=; b=IuEIhXWXGCU4A7q+IdHOEBEYDAiNBaWrcVbo1/+1wXMrev6PA8Vo5ZVwuAQA4iCnKO nzsgIFEYpyR7HXx+9U+qqLuAX4XWwjjvdOSxbBc5a58fQ5R26ezc+m6RO7d4HI3b1L5L RfNXq0I41Jn3gQSk11Kucih0rB8xWQ38IgFBliew+dPjLV+EEgQyNua3LOli+5wVkomr CspBcQkJOmhRi+Uy2g4cFeO2KiZt2Xx+E1Pbh+ptyiW7O9cxkL0dpEjLWFp+vB4aUEIz kBCxDwkK46jsI2R1jCW4pCg31JUSBBXyz+CfQ6SHpybjFzig3KD4kTzDR7TNRlhmEmH6 NJgA== X-Gm-Message-State: AODbwcDrBsVkYOGz8CjySaU4zydiLwbbjY9BLRvYWB2tVdOFZeFRF09Q kzTcI8+2COivLU2pGrCOP5i1v9CQhNQXs/okjg== X-Received: by 10.200.53.54 with SMTP id y51mr16260763qtb.98.1496056538219; Mon, 29 May 2017 04:15:38 -0700 (PDT) MIME-Version: 1.0 Received: by 10.200.38.187 with HTTP; Mon, 29 May 2017 04:15:37 -0700 (PDT) From: Jeremie Dimino Date: Mon, 29 May 2017 12:15:37 +0100 Message-ID: To: caml-list@inria.fr Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Subject: [Caml-list] [ANN] utop 2.0.0 Hi, I'm happy to announce the release of utop 2.0.0. This release contains several useful features contributed by users. The bump in major version reflects the fact that support for camlp4 was dropped in this release. Moreover utop no longer supports OCaml versions older than 4.02.3. I thank all the contributors that participated in this release by submitting patches to utop and lambda-term: - Andrea Richiardi - Andrew Ray - Christopher Mcalpine - Deokhwan Kim - Fabian Bonk - Fabian Hemmer - Leonid Rozenberg - L=C3=A9on van Velzen - github user zhenya1007 New features ------------ Here is the list of new features available in utop 2.0.0: * Add `-implicit-bindings` option to automatically bind expressions to names `_0`, `_1` and so on. For example, `3 + 4;;` becomes `let _0 =3D 3 + 4;;` (#161, #193, Fabian Hemmer) * Add tab completion for `#mod_use` (#181, Leonid Rozenberg) * Mention `#help` in `#utop_help` (#190, Fabian Hemmer) * Add `#utop_stash` and `#utop_save` to save the session to a file (#169, #199, Christopher Mcalpine and Fabian Hemmer) * Add support for reason in the Emacs mode (#206, Andrea Richiardi) And the rest of the changes: * Fix a bug where utop wouldn't apply ppx rewriters when running in emacs (Bug report: #192, fix: #202, Deokhwan Kim) * Refactor the use of hooks to support the various OCaml Emacs mode (#201, Andrea Richiardi) * Drop support for camlp4/camlp5 * Drop support for OCaml <=3D 4.01 * Switch the build system to jbuilder * Resurect `UTop_main.interact` Additionally, some new features come from changes in lambda-term. Following is the changelog for lambda-term 1.11 which was released recently: * Add history-search-prev and history-search-next (#47, Fabian Hemmer) * Allow frame widgets to be labeled (#36, Andrew Ray) * Add an alignment setting to label widgets (#36, Andrew Ray) * Add scrollbar widgets (#33, Andrew Ray) * Improve the `lambda-term-inputrc.5` man page (#41, L=C3=A9on van Velzen) * Allow editor widgets to request a specific size and add a "double editor" example (#42, Fabian Bonk) * Add `^` to the list of characters recognized in inputrc files (#46, github user zhenya1007) * Switch the build to jbuilder * Drop compatibility with 4.01 Status and future of utop ------------------------- I started utop about 8 years ago, initially distributed with lwt as the lwt toplevel. I still regularly receive bug reports and patches for utop and see it mentioned there and there, so I'm assuming it is used by a substantial number of people. Nowaways I only review pull requests and do releases but no longer do new development myself. I would like to eventually stop working on utop, but given that it has users I'm looking for someone to take over the project. So if that's of interest to you, please let me know! Note that taking charge of utop doesn't mean only doing maintainance work; developping toplevels is a fun activity and there are a lot of cool new features that can be added. Toplevels are used regularly by both beginners and seasoned programmers, so they benefit the whole community. On the top of my head, here are a few examples of projects that could be interesting to work on: * utop interact: this is an experimental feature that has existed for a while. However it is a bit painful to setup so it is currently undocumented. However, properly packaged and maybe with the help of a compiler plugin this could be a killer feature. What it allows you to do is call `UTop_main.interact ()` somewhere in your program. When the execution reaches this point, you get a toplevel in the context of the call to `UTop_main.interact`, allowing you to inspect the environment to understand what is happening * dependency refactoring: currently utop is based on big libraries such as lambda-term or camomile. Nowadays UTF-8 is the norm and even the Windows 10 console supports VT100 like escape sequences [1]. As a result it would make sense to switch to more modern and lighter libraries such as notty [2] * better contextual help: in a lot of places utop could provide hints to improve the user experience * alternative editor support: currently the Emacs mode for utop works like a normal toplevel. i.e. a session is a sequence of prompts, inputs and outcomes that looks like this: utop> 1 + 1;; - : int =3D 2 utop> 6 * 7;; - : int =3D 42 It would be easy to change it to look like: 1 + 1 [@@@outcome {| - : int =3D 2 |}] 6 * 7 [@@@outcome {| - : int =3D 42 |}] Then a toplevel session would essentially become a valid .ml file that you can feed to the compiler and where you can use your usual development tools such as merlin. And I'm sure there are a lot of other features that would make utop better. [1] https://msdn.microsoft.com/en-us/library/windows/desktop/mt638032(v=3D= vs.85).aspx [2] https://github.com/pqwy/notty --=20 Jeremie Dimino