From: Alan Schmitt <firstname.lastname@example.org> To: "lwn" <email@example.com>, "cwn" <firstname.lastname@example.org>, email@example.com, firstname.lastname@example.org Subject: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News Date: Tue, 23 Feb 2021 10:51:17 +0100 [thread overview] Message-ID: <email@example.com> (raw) [-- Attachment #1: Type: text/plain, Size: 15261 bytes --] Hello Here is the latest OCaml Weekly News, for the week of February 16 to 23, 2021. Table of Contents ───────────────── OCamlFormat 0.17.0 Set up OCaml 1.1.8 Set up OCaml 1.1.9 OCaml 4.12.0, first release candidate Ppxlib.0.22: an update on the state of ppx OCaml-based trading firm is hiring remote devs ocamlearlybird 1.0.0 beta1 OCaml for ARM MacOS Old CWN OCamlFormat 0.17.0 ══════════════════ Archive: <https://discuss.ocaml.org/t/ann-ocamlformat-0-17-0/7287/1> Guillaume Petiot announced ────────────────────────── On behalf of the OCamlFormat development team I am pleased to announce the release of [ocamlformat.0.17.0] :tada:. OCamlformat is an auto-formatter for OCaml code, writing the parse tree and comments in a consistent style, so that you do not have to worry about formatting it by hand, and to speed up code review by focusing on the important parts. OCamlFormat is beta software. We expect the program to change considerably before we reach version 1.0.0. In particular, upgrading the `ocamlformat' package will cause your program to get reformatted. Sometimes it is relatively pain-free, but sometimes it will make a diff in almost every file. We are working towards having a tool that pleases most usecases in the OCaml community, please bear with us! To make sure your project uses the last version of ocamlformat, please set ┌──── │ version=0.17.0 └──── in your `.ocamlformat' file. Main changes in `ocamlformat.0.17.0' are: • the `let-open' option, deprecated since 0.16.0, has been removed • support for OCaml 4.06 and 4.07 has been removed, minimal version requirement bumped to OCaml 4.08 • the `extension-sugar' option, deprecated since 0.14.0, has been removed • the syntax of infix set/get operators is now preserved (`String.get' and similar calls used to be automatically rewritten to their corresponding infix form `.()', that was incorrect when using the `-unsafe' compilation flag. Now the concrete syntax of these calls is preserved) • all sugared extension points are now preserved • injectivity type annotations (OCaml 4.12 feature) are now supported • various fixes about comments positions We encourage you to try ocamlformat, that can be installed from opam directly ( `opam install ocamlformat' ), but please remember that it is still beta software. We have a [FAQ for new users ] that should help you decide if ocamlformat is the right choice for you. [ocamlformat.0.17.0] <https://github.com/ocaml-ppx/ocamlformat> [FAQ for new users ] <https://github.com/ocaml-ppx/ocamlformat#faq-for-new-users> Set up OCaml 1.1.8 ══════════════════ Archive: <https://discuss.ocaml.org/t/ann-set-up-ocaml-1-1-8/7288/1> Sora Morimoto announced ─────────────────────── Changed ╌╌╌╌╌╌╌ • The Windows opam wrapper is fractionally less-archaically named opam.cmd, with no loss in arcaneness. • Export `CYGWIN_ROOT' on the Windows runners, allowing bash to be invoked as `%CYGWIN_ROOT%\bin\bash~/~$env:CYGWIN_ROOT\bin\bash' (and similarly for Cygwin `setup-x86_64.exe'). • The Windows runner no longer prepends `%CYGWIN_ROOT%\bin' to `PATH'. Fixed ╌╌╌╌╌ • Switches in Unix are now properly initialized before running depext. <https://github.com/avsm/setup-ocaml/releases/tag/v1.1.8> Set up OCaml 1.1.9 ══════════════════ Archive: <https://discuss.ocaml.org/t/ann-set-up-ocaml-1-1-9/7293/1> Sora Morimoto announced ─────────────────────── Fixed ╌╌╌╌╌ • Further fix to switch initialisation. <https://github.com/avsm/setup-ocaml/releases/tag/v1.1.9> OCaml 4.12.0, first release candidate ═════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ocaml-4-12-0-first-release-candidate/7294/1> octachron announced ─────────────────── The release of OCaml 4.12.0 is expected next week. We have created a release candidate that you can test. Most opam packages should work with this release candidate (without the need for an alpha repository). Compared to the last beta, this new release only contains one fix for Solaris and illumos. If you find any bugs, please report them here: <https://github.com/ocaml/ocaml/issues> Happy hacking, – Florian Angeletti for the OCaml team. Installation instructions ╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌ The base compiler can be installed as an opam switch with the following commands ┌──── │ opam update │ opam switch create 4.12.0~rc1 --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git └──── If you want to tweak the configuration of the compiler, you can pick configuration options with ┌──── │ opam update │ opam switch create <switch_name> --packages=ocaml-variants.4.12.0~rc1+options,<option_list> │ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git └──── where `<option_list>' is a comma separated list of ocaml-option-* packages. For instance, for a flambda and afl enabled switch: ┌──── │ opam switch create 4.12.0~rc1+flambda+afl --packages=ocaml-variants.4.12.0~rc1+options,ocaml-option-flambda,ocaml-option-afl │ --repositories=default,beta=git+https://github.com/ocaml/ocaml-beta-repository.git └──── All available options can be listed with `opam search ocaml-option'. The source code is available at these addresses: • <https://github.com/ocaml/ocaml/archive/4.12.0-rc1.tar.gz> • <https://caml.inria.fr/pub/distrib/ocaml-4.12/ocaml-4.12.0~rc1.tar.gz> Ppxlib.0.22: an update on the state of ppx ══════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ppxlib-0-22-an-update-on-the-state-of-ppx/7296/1> Nathan Rebours announced ──────────────────────── We're happy to announce the release of ppxlib.0.22.0, the fist release of ppxlib fully compatible with OCaml 4.12. The main and only feature of this release is the bump of the internal OCaml AST used by ppxlib from 4.11 to 4.12, allowing you to use 4.12 language features with ppxlib and any ppxlib-based ppx. Note that ppxlib was compatible with the 4.12 compiler since 0.19.0 but that you couldn't use 4.12 language features until now. This is the third such AST bump release since we announced our plan to improve the state of the PPX ecosystem [here] and we though it'd be a good time to report back to you and tell you how things are going on this front. For those of you who aren't familiar with this plan, the goal is to upstream a minimal, stable, ocaml-migrate-parsetree-like API on top of the compiler-libs called `Astlib'. It will allow us to keep ppxlib and any ppx based on ppxlib compatible with OCaml trunk at all time. To allow better performances and a clear compisition semantic, all the ppxlib-based ppx-es need to use the same AST (as opposed to ocaml-migrate-parsetree based ppx-es) so from a certain perspective, this plan simply moves the breaking API up one step, from compiler-libs to ppxlib. In order to greatly ease the maintainenance of ppx-es and to prevent opam-universe splits we decided that everytime we cut a breaking ppxlib release, we will send patches to keep the existing ppx-es compatible with the latest version and therefore with the latest OCaml compilers and language features. While this seems like a tremendous task and a huge amount of work, dune and other tools that raised in its wake such as [opam-monorepo] incredibly simplified this kind of work. Ahead of OCaml releases, we prepare a branch of ppxlib with the upgraded AST. We then fetch opam-repository to gather a list of sensible reverse dependencies (i.e. packages whose latest version depends on ppxlib and is compatible with ppxlib's latest version) and assemble a dune workspace with a clone of each of those reverse dependencies, our ppxlib branch and all of their dependencies thanks to opam-monorepo. We then use dune to build all the packages we're interested in and simply follow the compilation errors until everything builds successfully with the new ppxlib. What remains is to create PRs on the relevant repositories to upstream those changes, after which maintainers have everything they need to cut a new compatible release. Most of this process is automated using scripts but it still requires a bit of handiwork. We aim at extracting tools to further improve this workflow and reduce the time and effort required but it has been surprisingly smooth. Our experience with the 4.10, 4.11 and 4.12 upgrades so far is that most reverse dependencies don't need an upgrade and that it's far less demanding for one person to upgrade all the packages that need it than it would be for each individual maintainers to understand the changes in the AST and do the upgrade themselves. It's worth noting that for this to work well, the ppx-es and all their dependencies have to build with dune. We do maitain a separate opam-repository with dune ports of commonly used packages so in practice most projects fall into this category but a few exceptions remain and they are therefore not taken into account for this upgrade process. We're also trying to improve the tracking of the upgrade's progress and for the 4.12 compatible release we created a [github project] to have a list of all the packages we considered and see where they are. We also keep track of the packages we had to exclude and why. During this upgrade, we considered 80 opam packages, out of which only 4 needed to be patched and 6 had to be excluded from the process as we couldn't reasonably get them to build in our workspace. Once we have a better idea of what makes a package easy to upgrade we plan on releasing a set of reasonable rules to follow to benefit from those upgrades, we'll keep you updated on this! All in all we're pretty happy with this new process and although it needs to be refined, we're confident it can grow into something sustainable by creating tools and CI to support it. Hopefully these will also benefit the wider community and help grow a healthier Opam universe. [here] <https://discuss.ocaml.org/t/ppx-omp-2-0-0-and-next-steps/6231> [opam-monorepo] <https://github.com/ocamllabs/opam-monorepo> [github project] <https://github.com/ocaml-ppx/ppxlib/projects/2> Jason Nielsen asked ─────────────────── Curious about the current status of `Astlib'. I was closely following [ppx] at one point but it hasn't seen much activity recently. Thanks for all your hard work. [ppx] <https://github.com/ocaml-ppx/ppx> Jérémie Dimino ────────────── It's in progress. Not much happened in the past couple of months while we were finishing the port of a few projects to ppxlib and doing the 4.12 upgrade. But @pitag re-started working `Astlib' as of a week ago. You can follow our progression via [the public meeting notes]. Note however that the [ppx] project was for our original goal or providing a "forever stable" API for ppx rewriters. It has been in pause since August 2020 while were trying the "upgrade the world" method, which as @NathanReb pointed out is working pretty well practice. At this point, it's looking more and more likely that we won't resurect the ppx project. [the public meeting notes] <https://github.com/ocaml-ppx/ppxlib/wiki> [ppx] <https://github.com/ocaml-ppx/ppx> OCaml-based trading firm is hiring remote devs ══════════════════════════════════════════════ Archive: <https://discuss.ocaml.org/t/ocaml-based-trading-firm-is-hiring-remote-devs/7298/1> Michael Bacarella announced ─────────────────────────── BTG is a trading firm founded by ex-Jane Street devs looking to hire some more devs. The role is primarily remote, working with the rest of our mostly remote team, though we hope to resume regular on-sites in Puerto Rico. We operate 24/7 and will consider employees anywhere in the world. Prior experience with OCaml is a plus, though any solid programming experience with an interest in functional programming and strong static types is also fine. Comfort navigating Linux is essential. Shoot me a message with a copy of your résumé or C.V. to discuss the opportunity further: [firstname.lastname@example.org] Feel free to re-post this elsewhere. [email@example.com] <mailto:firstname.lastname@example.org> ocamlearlybird 1.0.0 beta1 ══════════════════════════ Archive: <https://discuss.ocaml.org/t/ann-ocamlearlybird-1-0-0-beta1/7180/21> 文宇祥 announced ──────────────── Hi, all. All the issues of beta1 have been fixed. Beta2 will be released soon. <https://github.com/ocaml/opam-repository/pull/18191> OCaml for ARM MacOS ═══════════════════ Archive: <https://discuss.ocaml.org/t/ocaml-for-arm-macos/6019/24> Aaron L. Zeng announced ─────────────────────── I noticed that opam 2.08 is now available for ARM Macs using [Homebrew], and I was able to confirm on my machine. `brew install opam' away :) [Homebrew] <https://github.com/Homebrew/homebrew-core/pull/71605> Old CWN ═══════ If you happen to miss a CWN, you can [send me a message] and I'll mail it to you, or go take a look at [the archive] or the [RSS feed of the archives]. If you also wish to receive it every week by mail, you may subscribe [online]. [Alan Schmitt] [send me a message] <mailto:email@example.com> [the archive] <https://alan.petitepomme.net/cwn/> [RSS feed of the archives] <https://alan.petitepomme.net/cwn/cwn.rss> [online] <http://lists.idyll.org/listinfo/caml-news-weekly/> [Alan Schmitt] <https://alan.petitepomme.net/> [-- Attachment #2: Type: text/html, Size: 29081 bytes --]
next reply other threads:[~2021-02-23 9:52 UTC|newest] Thread overview: 103+ messages / expand[flat|nested] mbox.gz Atom feed top 2021-02-23 9:51 Alan Schmitt [this message] -- strict thread matches above, loose matches on Subject: below -- 2022-05-24 8:04 Alan Schmitt 2022-05-17 7:12 Alan Schmitt 2022-05-10 12:30 Alan Schmitt 2022-05-03 9:11 Alan Schmitt 2022-04-26 6:44 Alan Schmitt 2022-04-19 5:34 Alan Schmitt 2022-04-12 8:10 Alan Schmitt 2022-04-05 11:50 Alan Schmitt 2022-03-29 7:42 Alan Schmitt 2022-03-22 13:01 Alan Schmitt 2022-03-15 9:59 Alan Schmitt 2022-03-01 13:54 Alan Schmitt 2022-02-22 12:43 Alan Schmitt 2022-02-08 13:16 Alan Schmitt 2022-02-01 13:00 Alan Schmitt 2022-01-25 12:44 Alan Schmitt 2022-01-11 8:20 Alan Schmitt 2022-01-04 7:56 Alan Schmitt 2021-12-28 8:59 Alan Schmitt 2021-12-21 9:11 Alan Schmitt 2021-12-14 11:02 Alan Schmitt 2021-11-30 10:51 Alan Schmitt 2021-11-16 8:41 Alan Schmitt 2021-11-09 10:08 Alan Schmitt 2021-11-02 8:50 Alan Schmitt 2021-10-19 8:23 Alan Schmitt 2021-09-28 6:37 Alan Schmitt 2021-09-21 9:09 Alan Schmitt 2021-09-07 13:23 Alan Schmitt 2021-08-24 13:44 Alan Schmitt 2021-08-17 6:24 Alan Schmitt 2021-08-10 16:47 Alan Schmitt 2021-07-27 8:54 Alan Schmitt 2021-07-20 12:58 Alan Schmitt 2021-07-06 12:33 Alan Schmitt 2021-06-29 12:24 Alan Schmitt 2021-06-22 9:04 Alan Schmitt 2021-06-01 9:23 Alan Schmitt 2021-05-25 7:30 Alan Schmitt 2021-05-11 14:47 Alan Schmitt 2021-05-04 8:57 Alan Schmitt 2021-04-27 14:26 Alan Schmitt 2021-04-20 9:07 Alan Schmitt 2021-04-06 9:42 Alan Schmitt 2021-03-30 14:55 Alan Schmitt 2021-03-23 9:05 Alan Schmitt 2021-03-16 10:31 Alan Schmitt 2021-03-09 10:58 Alan Schmitt 2021-02-16 13:53 Alan Schmitt 2021-02-02 13:56 Alan Schmitt 2021-01-26 13:25 Alan Schmitt 2021-01-19 14:28 Alan Schmitt 2021-01-12 9:47 Alan Schmitt 2021-01-05 11:22 Alan Schmitt 2020-12-29 9:59 Alan Schmitt 2020-12-22 8:48 Alan Schmitt 2020-12-15 9:51 Alan Schmitt 2020-12-01 8:54 Alan Schmitt 2020-11-03 15:15 Alan Schmitt 2020-10-27 8:43 Alan Schmitt 2020-10-20 8:15 Alan Schmitt 2020-10-06 7:22 Alan Schmitt 2020-09-29 7:02 Alan Schmitt 2020-09-22 7:27 Alan Schmitt 2020-09-08 13:11 Alan Schmitt 2020-09-01 7:55 Alan Schmitt 2020-08-18 7:25 Alan Schmitt 2020-07-28 16:57 Alan Schmitt 2020-07-21 14:42 Alan Schmitt 2020-07-14 9:54 Alan Schmitt 2020-07-07 10:04 Alan Schmitt 2020-06-30 7:00 Alan Schmitt 2020-06-16 8:36 Alan Schmitt 2020-06-09 8:28 Alan Schmitt 2020-05-19 9:52 Alan Schmitt 2020-05-12 7:45 Alan Schmitt 2020-05-05 7:45 Alan Schmitt 2020-04-28 12:44 Alan Schmitt 2020-04-21 8:58 Alan Schmitt 2020-04-14 7:28 Alan Schmitt 2020-04-07 7:51 Alan Schmitt 2020-03-31 9:54 Alan Schmitt 2020-03-24 9:31 Alan Schmitt 2020-03-17 11:04 Alan Schmitt 2020-03-10 14:28 Alan Schmitt 2020-03-03 8:00 Alan Schmitt 2020-02-25 8:51 Alan Schmitt 2020-02-18 8:18 Alan Schmitt 2020-02-04 8:47 Alan Schmitt 2020-01-28 10:53 Alan Schmitt 2020-01-21 14:08 Alan Schmitt 2020-01-14 14:16 Alan Schmitt 2020-01-07 13:43 Alan Schmitt 2019-12-31 9:18 Alan Schmitt 2019-12-17 8:52 Alan Schmitt 2019-12-10 8:21 Alan Schmitt 2019-12-03 15:42 Alan Schmitt 2019-11-26 8:33 Alan Schmitt 2019-11-12 13:21 Alan Schmitt 2019-11-05 6:55 Alan Schmitt 2019-10-15 7:28 Alan Schmitt 2019-09-03 7:35 Alan Schmitt
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --firstname.lastname@example.org \ --email@example.com \ --subject='Re: [Caml-list] Attn: Development Editor, Latest OCaml Weekly News' \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).