2024-02-07

[Caml-list] CiE 2024: CALL FOR PAPERS [Deadline Extension]

CiE 2024: CALL FOR PAPERS [Deadline Extension]

Computability in Europe 2024
Twenty years of theoretical and practical synergies

Amsterdam, The Netherlands
July 08-12, 2024
https://events.illc.uva.nl/CiE/CiE2024/

Submission link: https://equinocs.springernature.com/service/CiE2024

IMPORTANT DATES:
Deadline for article submission: February 24, 2024 (AOE)
Notification of acceptance: April 20, 2024
Final versions due: May 1, 2024
Deadline for informal presentations submission: May 15, 2024 (The notifications of acceptance for informal presentations will be sent a few days after submission)
Early registration before: May 20, 2024
Conference: July 08-12, 2024

GENERAL INFORMATION
CiE 2024 will be an anniversary event. It is the 20th conference organized by CiE (Computability in Europe), in the same place as the first edition, Amsterdam. 

CiE is a European association of mathematicians, logicians, computer scientists, philosophers, physicists and others interested in new developments in computability and their underlying significance for the real world.

Previous meetings have taken place in Amsterdam (2005), Swansea (2006), Siena (2007), Athens (2008), Heidelberg (2009), Ponta Delgada (2010), Sofia (2011), Cambridge (2012), Milan (2013), Budapest (2014), Bucharest (2015), Paris (2016), Turku (2017), Kiel (2018), Durham (2019), Salerno (2020, virtually), Ghent (2021, virtually), Swansea (2022) and Batumi (2023).

TUTORIAL SPEAKERS
Matthew Harrison-Trainor (University of Illinois Chicago)
Sonja Smets (University of Amsterdam)

INVITED SPEAKERS
Arnold Beckmann (Swansea University)
Rod Downey (Victoria University of Wellington)
Elvira Mayordomo (University of Zaragoza)
Alexandre Miquel (Universidad de la República)
Monika Seisenberger (Swansea University)
Mariya Soskova (University of Wisconsin–Madison)

SPECIAL SESSIONS
There will be 6 special sessions:

- Computable aspects of symbolic dynamics and tilings (chairs: Benjamin Hellouin and Ilkka Torma)
- Algorithmic randomness and Kolmogorov complexity session (chairs: Rupert Hölzl abd Denis Hirschfeldt)
- Quantum Computation (chairs: Delaram Kahrobaei and Mehrnoosh Sadrzadeh)
- History and Philosophy of Computing (HaPoC) (chairs: Ekaterina Koubychkina and Marianna Girlando)
- Bio-inspired Computation (BiC) (chairs: Gianluca Della Vedova and Jasmijn Baaijens)
- Computable Structure Theory (chairs: Stefan Vatev and Ekaterina Fokina)

CONFERENCE TOPICS
The CiE conferences serve as an interdisciplinary forum for research in all aspects of computability, foundations of computer science, logic, and theoretical computer science, as well as the interplay of these areas with practical issues in computer science and with other disciplines such as biology, mathematics, philosophy, or physics.

PAPER SUBMISSION
THE PROGRAM COMMITTEE cordially invites all researchers, European and non-European, to submit their papers in all areas related to the above for presentation at the conference.

The following paper categories are welcome:

- Regular papers describing solid new research results. Papers submitted to the conference proceedings should represent original work, not simultaneously submitted to another journal or conference with formal proceedings. The Program Committee will rigorously review and select submitted papers. Regular papers must have a maximum of 12 pages, including references but excluding a possible appendix in which one can include proofs and other additional material. Papers building bridges between different parts of the research community are particularly welcome.

- Informal presentations. Continuing the tradition of past CiE conferences, we invite researchers to present informal presentations of their recent work. A proposal for an informal presentation must be 1 page long; a brief description of the results suffices and an abstract is not required. Informal presentations will not be published in the LNCS conference proceedings. Results presented as informal presentations at CiE 2024 may appear or may have appeared in other conferences with formal proceedings and/or in journals.

All submissions must be in PDF, formatted using the Springer LNCS style (available at https://www.springer.com/gp/computer-science/lncs/conference-proceedings-guidelines), and submitted via EquinOCS:

https://equinocs.springernature.com/service/CiE2024

CONFERENCE PROCEEDINGS
Accepted regular papers will be published as a proceedings volume in the Lecture Notes in Computer Science (LNCS) series from Springer-Verlag.


PROGRAM COMMITTEE
Contributed papers will be selected from submissions received by the PROGRAM COMMITTEE consisting of:

Bahareh Afshari (University of Amsterdam & University of Gothenburg)
Nathalie Aubrun (CNRS, Université Paris-Saclay)
Marie-Pierre Béal (Université Gustave Eiffel)
Benno van den Berg (University of Amsterdam)
Sebastian Berndt (University of Lübeck)
Patricia Bouyer-Decitre (CNRS)
Jin-Yi Cai (University of Wisconsin-Madison)
Barbara Csima (University of Waterloo)
Gianluca Della Vedova (Università degli Studi di Milano-Bicocca)
Leah Epstein (University of Haifa)
Gilda Ferreira (Universidade Aberta)
Yannick Foster (INRIA, Nantes)
Lorenzo Galeotti (Amsterdam University College)
Mathieu Hoyrup (INRIA, LORIA, Nancy)
Jarkko Kari (University of Turku)
Julia Knight (University of Notre-Dame)
Susana Ladra (Universidade da Coruña)
Timo Lang (Technische Universität Wien)
Karen Lange (Wellesley College)
Florin Manea (University of Göttingen)
Alexander Melnikov (Victoria University of Wellington)
Alberto Naibo (Université Paris 1 Panthéon-Sorbonne)
Ludovic Patey (CNRS, Université Paris-Cité co-Chair)
Elaine Pimentel (University College London co-chair)
Cristóbal Rojas (Universidad Católica)
Viola Schiaffonati (Politecnico di Milano)
Paul Shafer (University of Leeds)
Reed Solomon (University of Connecticut)
Andreas Weiermam (Ghent University)

WOMEN IN COMPUTABILITY
We are very happy to announce that within the framework of the Women in Computability program, we are able to offer some grants for junior women researchers who want to participate in CiE 2024. Applications for this grant should be sent to Lorenzo Galeotti <l.galeotti@uva.nl>, before May 15, 2024 and include a short cv (at most 2 pages) and contact information for an academic reference. Preference will be given to junior women researchers who are presenting a paper (including informal presentations) at CiE 2024.

HOSTED BY
The event will be held in the Amsterdam University College academic building located at Amsterdam Science Park.

We are grateful for support from the University of Amsterdam and the Vrije Universiteit Amsterdam.

ORGANIZING COMMITTEE
Bahareh Afshari (University of Gothenburg)
Luis Aguilar Suarez (Amsterdam University College)
Benno van den Berg (University of Amsterdam)
Andrea De Domenico (Vrije Universiteit Amsterdam)
Tamara Dobler (Vrije Universiteit Amsterdam)
Lorenzo Galeotti (Amsterdam University College -- chair)
Yurii Khomskii (Amsterdam University College)
Mattia Panettiere (Vrije Universiteit Amsterdam)
Benjamin Rin (Universiteit Utrecht)

2024-01-31

[Caml-list] CGO24 - Early-bird Deadline Registration

ACM/IEEE International Symposium on Code Generation and Optimization (CGO 2024)

Call for Participation - Early Bird Registration


The International Symposium on Code Generation and Optimization (CGO) is a premier venue to bring together researchers and practitioners working at the interface of hardware and software on a wide range of optimization and code generation techniques and related issues. The conference spans the spectrum from purely static to fully dynamic approaches, and from pure software-based methods to specific architectural features and support for code generation and optimization.



Registration (early-bird deadline: February 2)
Registration to CGO will give you full access to all co-located events on the day(s) selected (CC, PPoPP, HPCA).


Detailed program:
https://conf.researchr.org/program/cgo-2024/program-cgo-2024/





For more information, please visit the CGO conference website at https://conf.researchr.org/home/cgo-2024


*Copyright © 2024 CGO Conference, All rights reserved.* 
You are receiving this email because you have submitted to or attended CGO. 

2024-01-17

[Caml-list] UNIF 2024 Call for Papers

[Apologies for multiple copies]

=======================================================================
Call for Papers
UNIF 2024
The 38th International Workshop on Unification
Nancy, France, July 2, 2024
A satellite workshop of CADE/IJCAR, affiliated with IJCAR
https://lat.inf.tu-dresden.de/unif2024
=======================================================================

UNIF 2024 is the 38th event in a series of international meetings
devoted to unification theory and its applications. Unification is
concerned with the problem of making two given terms equal, either
syntactically or modulo an equational theory. It is a fundamental
process used in various areas of computer science, including automated
reasoning, term rewriting, logic programming, natural language
processing, program analysis, knowledge representation, types, etc.

The International Workshop on Unification (UNIF) is a forum for
researchers in unification theory and related fields to present recent
(even unfinished) work, and to discuss new ideas and trends. It is also
a good opportunity for students, young researchers and scientists working
in related areas to get an overview of the current state of the art in
unification theory.


Topics
------
A non-exhaustive list of topics of interest includes:

* syntactic and equational unification algorithms
* matching and constraint solving
* higher-order unification
* unification in modal, temporal, and description logics
* admissibility of inference rules
* narrowing
* disunification
* anti-unification
* complexity issues
* combination methods
* implementation techniques
* applications


Submission
----------

Short papers or extended abstracts, up to 5 pages in EasyChair style,
should be submitted electronically as PDF files through the EasyChair
submission site:

https://easychair.org/conferences/?conf=unif2024

Abstracts will be evaluated by the Program Committee regarding their
significance for the workshop. We allow submissions of work presented/
submitted in/to another conference.

Accepted abstracts will be presented at the workshop and included in
the informal proceedings of the workshop, available in electronic form
on the Web page of UNIF 2024. At least one of the authors should register
for the workshop.

Based on the number and quality of submissions we will decide whether to
organize a special journal issue.


Important Dates
---------------
* Paper submission: April 18, 2024 (AoE)
* Author notification: May 23, 2024 (AoE)
* Camera-ready version: June 7, 2024 (AoE)
* UNIF 2024: July 2, 2024


Invited Speakers
----------------

To be announced.

2024-01-16

[Caml-list] Attn: Development Editor, Latest OCaml Weekly News

OCaml Weekly News

Previous Week Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of January 09 to 16, 2024.

Verifying an Effect-Based Cooperative Concurrency Scheduler in Iris, by Adrian Dapprich

Vincent Balat announced

Adrian Dapprich gave a talk at Tarides a few weeks ago, about Verifying an Effect-Based Cooperative Concurrency Scheduler in Iris. Here is a link to the video.

Abstract:

Lightweight asynchronous programming (using futures, goroutines or green threads) has been widely adopted to organize programs with many concurrent tasks, more than are traditionally feasible with thread-per-task models of concurrency. With the release of OCaml 5 and its support for effect handlers, the new concurrency library Eio was proposed which aims to replace previous monadic concurrency libraries for OCaml. In this work we verify the core fiber and promise abstractions of Eio and show their safety and effect safety using the Hazel program logic. Hazel is built on the Iris framework and allows reasoning about programs with effect handlers. We also adapt the existing proof of the verified CQS datastructure since Eio uses a customized version of CQS for its implementation of promises. We do not treat some features of Eio like cancellation, because it does not yield a verifiable specification, and resource control using switches, since it is a liveness property.

https://watch.ocaml.org/w/iQNqZzA8gVmd4RQaycAwx4

OCaml Software Foundation: January 2024 update

gasche announced

Happy new year!

This is an update update on recent works of the OCaml Software Foundation, covering our 2023 actions – the previous update was in January 2023.

The OCaml Software Foundation is a non-profit foundation (earlier thread) that receives funding from our industrial sponsors each year, and tries its best to spend it to support and strengthen the OCaml ecosystem and community.

The funding volume we receive each year is around 200K€. (For comparison: this is the yearly cost of one experienced full-time software engineer in many parts of the world.) We do not fund people full-time for long periods. Most actions receive from 3K€ to 20K€. The work to prepare and execute actions is mostly done by the (unpaid) Executive Committee. It is currently formed by Nicolás Ojeda Bär, Damien Doligez, Xavier Leroy, Kim Nguyễn, Virgile Prevosto and myself, with administrative personnel provided by INRIA and general assistance by Alan Schmitt.

Our current sponsors (thanks!) are ahrefs, Jane Street, Tezos, Bloomberg, Lexifi, SimCorp, MERCE and Tarides. (If your company would like to join as a sponsor, please get in touch. Unfortunately, we still cannot efficiently process small donations, so we are not calling for individual donations.)

Feel free to use this thread for questions/suggestions :-)

Recent actions

Teaching

We are funding an update and English translation (still in progress) of the French book Apprendre à Programmer avec OCaml, by Sylvain Conchon and Jean-Christophe Filliâtre, under the understanding that it will be released as open access content – online, at no cost. This is a good book that is suitable for use in classroom of first- or second-year university students of various level. (In comparison, OCaml from the Very Beginning and Real World OCaml are more aimed as self-study than use in classroom, and the Cornell CS3110 textbook is aimed at more advanced students with a strong background.)

For the second year in a row, we funded a Spanish summer school on functional programming in OCaml, organized in Saragossa by Ricardo Rodriguez and Roberto Blanco. This is an occasion for students to discover OCaml and functional programming, and the organizers also run a one-day mini-workshop for the students and anyone interested (including online), the Day of the Caml.

Outreach

We are funding the recurring OCaml Meetup in Paris; this year we are also funding a new meetup in Toulouse, a city in the south-west region of France known for duck cuisine, white beans, and strong aerospace industry. If you are interested in organizing an OCaml meetup in your city, and some light funding would help, please get in touch!

We got in touch with the organizers of the ICFP 2023 conference to ensure that colocated workshops (which include the OCaml Workshop) can be attended online at low or no cost. The ICFP organizers accepted to (semi-officially) make virtual attendance free, so we tried to encourage broad participation to the OCaml Workshop. We also supported the OCaml Workshop by funding the expenses of some of the program committee members to attend, when they do not have an employer in academia or industry that can easily reimburse their trip.

We are supporting the work of Alan Schmitt on the Caml Weekly Newsletter (CWN).

Kim Nguyễn ran the OCaml User Survey 2023 for the OCaml Foundation – we have not posted the survey results yet.

We invited Sudha Parimala to propose more actions oriented towards diversity and inclusion. A first step is the inclusion of demographic questions in the 2023 survey, to get a better picture of the current composition of the OCaml community.

Ecosystem

  • Infrastructure

    As in previous years, we are funding Kate Deplaix to work on “release readiness” of the OCaml ecosystem: when a new OCaml release is being prepared, Kate checks the compatibility of all opam packages with the upcoming release and gets in touch with maintainers to contribute or request support for the new version. The OCaml 5 transition has been a lot of work for Kate on this front – mostly not due to the Multicore runtime changes, but the removal of various long-deprecated functions of our C and OCaml APIs.

    For almost as long as we can remember, Kate Deplaix has also been the most active maintainer of the opam-repository – the person who provides feedback when there is a packaging issue in a new PR to the opam-repository, to interpret CI failures, recommend best packaging practices, etc. (Kate’s work on this topic was funded by OCamllabs then Tarides, not the OCaml Foundation.) Kate decided recently to move on to other things – notably, contributions to opam. (There was a call for volunteers on Discuss around that time.) This was a bit of a scare for us as the good health of the public opam-repository is central to the functioning of the current OCaml free software ecosystem. We were already providing financial support (in the form of research funding) to Marcello Seri, the second most-active contributor, and renewed our support. We also got in touch with other opam-repository contributors, and started funding the work of Haochen Xie.

  • Tools

    We got in touch with frequent Dune contributors to offer financial support for their contributions. Ali Caglayan was supported in this way in 2023.

    We are supporting some of the work of Jonah Beckford on Windows support of OCaml, as well as his work on mentoring OCaml students in the Seattle area. If you want to learn about Jonah’s work, consider watching his April 2023 talk at the Houston Functional Programmers meetup.

    Simmo Saan spontaneously took up maintenance of ocamlearlybird, the bytecode debugger frontend that integrates with visual studio code – we had previously funded ocamlearlybird maintenance, but its Wen moved to a demanding startup and was not available to work on ocamlearlybird anymore. We are funding the time of Simmo Saan, who accomplished a lot in a short amount of time, notably the integration of the ocamlearlybird plugin in the main OCaml plugin for vscode.

    We will be funding one year of post-doc by Takafumi Saikawa at Nagoya University, to continue his work with Jacques Garrigue on the refactoring of the OCaml type-checker. The type-checker codebase suffers from technical debt, and the effort led by Jacques in the last few year has been precious in making it easier to understand, improve and extend for other developers.

  • Libraries

    We funded work by Alan Hu to improve the OCaml LLVM bindings, to support newer LLVM releases and make them compatible with OCaml 5. Alan announced this work on Discuss.

    We support the contributions of Daniel Bünzli to the OCaml ecosystem. Daniel used this support to fund the development of

    • cmarkit, a new Markdown parser and renderer for OCaml, and ocamlmark a tool to use Markdown to write OCaml documentation comments,
    • WebGPU support in brr, his browser interaction toolkit
    • support for Unicode 15.0 and 15.1 in his Unicode libraries
    • zipc, a pure-OCaml ZIP archiver.

    We continued providing partial support for the work of Antonio Monteiro on Melange. In 2023, Antonio announced Melange 1.0.

    We are supporting the work of Petter Urkedal on the Caqti library, the main database connection library in the OCaml community. Caqti 2 was released in 2023.

    We will be supporting the time of Nathan Rebours to contribute to the maintenance of ppxlib.

Miou, a simple scheduler for OCaml 5

Calascibetta Romain announced

I’m delighted to announce the beta2 release of Miou. This summarises the feedback we’ve received and specifies the API that this library should offer in terms of scheduling.

As a reminder, Miou is intended to be simple and designed for developing services and integrating into a unikernel. We were talking about implementing a library such as happy-eyeballs with Miou, but we have now made available a library that implements an HTTP client and/or server (http/1.1, h2 as well as alpn support via ocaml-tls).

This has enabled us to find bugs typical of a transition between OCaml 4 and OCaml 5, in particular illegal parallel access to data on mirage-crypto (although we would like to observe the implications in terms of performance of our fix).

We will of course continue to listen and experiment with Miou in order to develop this library in a way that suits us and our users. The documentation has been updated accordingly and is now available here.

Grace 💅, fancy diagnostic library for compilers

Alistair O’Brien announced

It is my pleasure to announce the initial release of Grace, a cutting-edge OCaml library 🐪 that includes a series of interfaces for building, reporting, and rendering beautiful compiler diagnostics.

To get started, simply run:

opam update  opam install grace  

Key features

  • 📐 Inline and multi-line error messages with associated priorities
  • 📂 Multi-file errors
  • ⚙️ Configurable rendering (styling and character set)
  • 🌈 Coloured messages for ANSI terminals
  • 💪 100% OCaml

The project is still in its early phase with many additional features planned:

  • 📚 Unicode support
  • ⚡️ LSP integration with linol
  • 👀 Accessibility features such improved colour options and narratable renderers

I invite the community to play with Grace, exploring its capabilities and limitations. Your insights will play a crucial role in shaping the future of this library :)

Js_of_ocaml 5.5.2

Hhugo announced

Js_of_ocaml 5.6 was released recently with many fixes related to its javascript parser/printer/minifier

First release of oma

François Pottier announced

Hello,

It is my pleasure to announce the first release of Oma. This library offers an implementation of the order maintenance data structure described in this paper.

  opam update    opam install oma  

Here is its documentation.

Happy hacking!

Ocamlearlybird just got ability to inspect opaque/abstract values

文宇祥 announced

I’m pleased to announce the release of ocamlearlybird.1.3.0. It should soon be able available in opam.

A big feature just landed. You can inspect opaque/abstract values since version 1.3.0.

see https://github.com/hackwaly/ocamlearlybird/pull/53

Validate - A New Library for Data Validation

Mateusz Ledwoń announced

Hello!

I’m excited to announce the preview release of a new library called validate! This library aims to make the process of validating records, lists, or individual values more streamlined and efficient.

validate operates through a PPX deriver that automatically generates validators using annotations. It comes with an array of helper validation functions for different data types, making it versatile and easy to integrate into your projects.

Example Usage:

Imagine you have a record type with various fields that need validation. With validate, you can easily annotate these fields and the library will handle the rest. For example:

type my_record = {    min : string; [@min_length 2]    email : string; [@email]    uuid : string; [@uuid]    url : string; [@url] [@max_length 200]    numeric_list : int list; [@list_min_length 2] [@less_than 10]    other_record: other; [@dive]  } [@@deriving validate]  

This will automatically create a validate_my_record function, applying the specified validations to each field.

Installation: You can install validate using OPAM:

Copy code

  opam install validate  

I encourage you to try it out, and your feedback and contributions are invaluable at this stage.

For more details, please visit GitHub repository and check out the documentation.

dune.3.12.1

Etienne Millon announced

We just released version 3.12.2 with 2 bugfixes:

  • Fix version check in runtest_alias for cram stanza (#9454, @emillon)
  • Fix stack overflow when a (run) action can not be parsed. (#9530, fixes #9529, @gridbugs)

Other OCaml News

From the ocaml.org blog

Here are links from many OCaml blogs aggregated at the ocaml.org blog.

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 to the caml-list.

2024-01-09

[Caml-list] 2nd Call for Participation: BOB 2024 (Berlin, Mar 15, Early Bird until Jan 30)

=========================================================================
BOB 2024
Conference
"What happens if we simply use what's best?"
March 15, 2024, Berlin
https://bobkonf.de/2024/

Program: https://bobkonf.de/2024/program.html
Registration: https://bobkonf.de/2024/registration.html
=========================================================================

BOB conference is a place for developers, architects, and decision-makers
to explore technologies beyond the mainstream in software development
and to find the best tools available to software developers today. Our
goal is for all participants of BOB to return home with new insights
that enable them to improve their own software development
experience.

The program features 14 talks and 8 tutorials on current topics:

https://bobkonf.de/2024/program.html

Talk subjects includes functional programming, property-based testing,
service API design, programming for spacecraft, accessibility,
hypermedia, business processes, software analytics, event-based
communication and zero-knowledge proofs.

BOB will feature tutorials on F#, Haskell, Lean, SwiftUI, Copilot, the
K Framework, functional domain modelling, and Liberating Structures.

Andreas Rossberg will give the keynote talk.

Registration is open - online tickets are all under 200€, and many
discount options are available, as are grants for members of groups
underrepresented in tech. Early-bird registration runs until Jan 30:

https://bobkonf.de/2024/registration.html

2023-12-22

[Caml-list] [TFP (and TFPiE) 2024] Call For Participation (January 9-12, Seton Hall University, NJ, USA)

# TFP 2024 -- Call For Participation
(trendsfp.github.io)

## Venue
TFPiE and TFP will take place in-person at Seton Hall University, New Jersey in the United States. 

## Dates

TFPiE Workshop: Tuesday 9th January, 2024
TFP Symposium:  Wednesday 10th - Friday 12th January, 2024

The Symposium on Trends in Functional Programming (TFP) is an
international forum for researchers with interests in all aspects of
functional programming, taking a broad view of current and future
trends in the area. It aspires to be a lively environment for
presenting the latest research results, and other contributions.

## Keynote speakers
We are happy to have the following keynotes in the programme:

* Jeremy Gibbons, Oxford University
* Benjamin Pierce, University of Pennsylvania
* John Reppy, University of Chicago

## Programme
The programme schedule can be found here:
trendsfp.github.io/schedule.html

## Excursion and banquet
After lunch on Thursday there is a private guided tour of the 
Thomas Edison National Historical Park and Museum.
Thursday evening we have the TFP banquet at Forno's of Spain.
During dinner the winners of the best paper awards of last year's TFP
will be announced. 

2023-12-12

[Caml-list] Attn: Development Editor, Latest OCaml Weekly News

OCaml Weekly News

Previous Week Up Next Week

Hello

Here is the latest OCaml Weekly News, for the week of December 05 to 12, 2023.

Ecosystem Wishlist Survey

Sabine Schmaltz announced

Hey OCaml folks,

I am running a little OCaml Ecosystem Wishlist survey where you can put in really specific wishes for

  • new packages,
  • package improvements,
  • compiler / tooling / language changes

I’m really curious what you all need and I think this will be helpful to better understand the current state of the ecosystem.

The survey will stay open at least into January, probably much longer.

Put those wishes in! 🎄🐫🔥🔥

https://docs.google.com/forms/d/e/1FAIpQLSdVGjO3g9qS31rXy3SE-PxcG6Aki652jiqxzfM2lb7kVh5UHg/viewform?usp=sf_link

OUPS meetup december 2023

zapashcanon announced

The next OUPS meetup will take place on Thursday, 14th of December 2023. It will start at 7pm at the 4 place Jussieu in Paris.

:warning: :trumpet: It will be in the in the Esclangon building (amphi TBA). :trumpet: :warning:

Please, register on meetup as soon as possible to let us know how many pizza we should order.

For more details, you may check the OUPS' website .

This month will feature the following talks :

Miou, un simple scheduler pour OCaml 5 – Romain Calascibetta (@dinosaure)

Miou est un scheduler pour OCaml 5 utilisant les effets nouvellement introduit. Il se concentre sur la disponibilité d’une application au travers d’une politique de gestion des tâches bien décrite. Cette présentation introduira les effets avec OCaml 5 ainsi qu’une rétrospective de son API. Il s’agira ensuite de présenter les spécifités de Miou par rapport aux autres schedulers. Enfin, il y aura la présentation d’un client/serveur HTTP développé selon le design de Miou. La présentation permettra de faire un état des lieux du scheduling en OCaml, des raisons de la multiplicité des solutions ainsi que des objectifs concrets de Miou (implémentation de services, disponibilités des applications, unikernels).

Towards a solution to the expression problem for compilers: strongly typed nano-passes – Boris Yakobowski

We present a new solution to the problem of (strongly) typing compiler passes when the source and destination language share multiple constructors. We are interested in approaches that limit the amount of boilerplate that needs to be (re)written for each language, while still maintaining a very strict typing discipline. Our solution uses well-known tools, but combine them in a novel way:

  • the idea of nanopasses, in which each pass encodes a very limited transformation
  • the use of ppx syntax extensions to express only the differences between a language and the next
  • the traversal of the AST using top-down and bottom-up recursion schemes
  • OCaml polymorphic variants, which are instrumental to precisely type our (non-recursive) transformation functions.

We present our implementation of this approach in the context of the Ada frontend for the Infer analyzer, which as of today contains 28 passes. We will also discuss the various pitfalls we have encountered along the way, as well as possible improvements (in particular deforesting the combination of multiple passes).

Js_of_ocaml 5.2

Hhugo announced

I'm pleased to announce the release of js_of_ocaml 5.2. It should soon be able available in opam.

Js_of_ocaml is a compiler from OCaml bytecode to JavaScript. It makes it possible to run pure OCaml programs in JavaScript environment like browsers and Node.js.

Most significant changes:

  • Improve support for modern javascript
  • New global dead code elimination pass. Jsoo can now drop unused code inside functors. See the pull request for more details
  • Change strategy used for control flow compilation. It was adapted from wasm_of_ocaml and based on the following paper https://dl.acm.org/doi/abs/10.1145/3547621.

See the Changelog for other changes.

containers 3.13

Simon Cruanes announced

Hello, I just released containers 3.13 on opam.

This release is somewhat more breaking than usual:

  • OCaml 4.08 is now the minimum OCaml version.
  • CCShims_ (which was used to provide a shim for Stdlib pre-4.08) is removed
  • containers-thread, which was deprecated, is no more. The recommended alternative is Moonpool.

On OCaml 5.1 and above, tail-rec-mod-cons is used to simplify and accelerate some functions in CCList.

Happy hacking!

Melange 2.0

Antonio Nuno Monteiro announced

Melange 2.2 is now out with support for OCaml 5.1.1.

OCaml 5.1.1 released

octachron announced

In the last three months after the release of OCaml 5.1.0, three significant regressions have been discovered in OCaml 5.1.0. Those regressions concern the packaging of executables, the typechecking of OCaml programs, and the performance of numerical codes.

Since those regressions affect many users and could have lasting effects, we have published a patch release, OCaml 5.1.1, fixing those issues.

As a major exception to our policy for patch releases, OCaml 5.1.1 will contain one breaking change in the standard library: the Compression flag has been removed from the Marshal module. This drastic measure has been taken because supporting zstd compression in the standard library made zstd a dependency of all OCaml executables. Since the compiler should not propagate its dependencies on end-users, the support for compressed marshalling has been moved to a compiler internal library in 5.1.1.

Accounting for the still experimental nature of the multicore runtime, this patch release 5.1.1 also contains safe fixes for subtle concurrency bugs in the OCaml runtime.

In brief, if you were using OCaml 5.1.0, I strongly recommend that you switch to 5.1.1 .

The full list of changes is available below for more details.

Installation Instructions

The base compiler can be installed as an opam switch with the following commands:

  opam update  opam switch create 5.1.1  

The source code for the release is also directly available on:

Changes in OCaml 5.1.1 (8 December 2023)

  • Standard Library
    • (breaking change) #12562, #12734, #12783: Remove the Marshal.Compression flag to the Marshal.to_* functions introduced in 5.1 by #12006, as it cannot be implemented without risking to link -lzstd with all ocamlopt-generated executables. The compilers are still able to use ZSTD compression for compilation artefacts. (Xavier Leroy and David Allsopp, report by Kate Deplaix, review by Nicolás Ojeda Bär, Kate Deplaix, and Damien Doligez).
  • Bug Fixes
    • #12623, fix the computation of variance composition (Florian Angeletti, report by Vesa Karvonen, review by Gabriel Scherer)
    • #12581, #12609: Fix error on uses of packed modules outside their pack to correctly handle nested packs (Vincent Laviron, report by Javier Chávarri, review by Pierre Chambart)
    • #12645, #12649 fix error messages for cyclic type definitions in presence of the -short-paths flag. (Florian Angeletti, report by Vesa Karvonen, review by Gabriel Scherer)
    • #12757: Fix ocamlnat (native toplevel) by registering frametables correctly (Stephen Dolan, Nick Barnes and Mark Shinwell, review by Vincent Laviron and Sébastien Hinderer)
    • #12791: extern is applied to definitions of caml_builtin_cprim and caml_names_of_builtin_cprim when linking bytecode ’-custom’ executables with a C++ linker. (Shayne Fletcher, review by Antonin Décimo and Xavier Leroy)
  • GC Performance Regression Fixes
    • #12318: GC: simplify the meaning of custom_minor_max_size: blocks with out-of-heap memory above this limit are now allocated directly in the major heap. (Damien Doligez, report by Stephen Dolan, review by Gabriel Scherer)
    • #12439: Finalize and collect dead custom blocks during minor collection (Damien Doligez, review by Xavier Leroy, Gabriel Scherer and KC Sivaramakrishnan)
    • #12590, #12595: Move caml_collect_gc_stats_sample in caml_empty_minor_heap_promote before barrier arrival. (B. Szilvasy, review by Gabriel Scherer)
    • #12491, #12493, #12500, #12754: Do not change GC pace when creating sub-arrays of bigarrays (Xavier Leroy, report by Ido Yariv, analysis by Gabriel Scherer, review by Gabriel Scherer and Fabrice Buoro)
  • Runtime Bug Fixes
    • #11800, #12707: fix an assertion race condition in install_backup_thread (Jan Midtgaard, review by Gabriel Scherer)
    • #12486, #12535: Fix delivery of unhandled effect exceptions on amd64 with –enable-frame-pointers (Miod Vallat, report by Jan Midtgaard, review by Gabriel Scherer)
    • #12712, #12742: fix an assertion boundary case in caml_reset_young_limit (Jan Midtgaard, review by Guillaume Munch-Maccagnoni)
    • #12713, #12715: disable common subexpression elimination for atomic loads (Gabriel Scherer and Vincent Laviron, review by Vincent Laviron, KC Sivaramakrishnan and Xavier Leroy, report by Vesa Karvonen and Carine Morel)

DkML 2.1.0 - Major changes

jbeckford announced

I’m pleased to announce a major overhaul of DkML in version 2.1.0.

Some of the major changes include:

  • winget install dkml is the recommended way to install.
  • Installation is now in stages. The first stage (winget install dkml) takes 5 minutes and lets the end-user do utop, ocamlc and ocamlrun (sufficient for learning). However, any command that need Visual Studio (ex. opam, dkml) will first:
    • guide you if you need Git and/or Visual Studio (winget does not support auto-installing dependencies like other sane package managers), and then
    • install the OCaml system compiler, the opam root and a playground global switch automatically on first run
  • Alpha support for macOS/Silicon and most modern distros of GNU/Linux
  • Has an accompanying video describing how to install and use DkML on Windows targeted to both learners and professionals. Includes Visual Studio Code and LSP:

Call for Participation: BOB 2024 (Berlin, March 15)

Michael Sperber announced

More info at https://bobkonf.de/2024/!

  =========================================================================  			       BOB 2024  			      Conference  	     "What happens if we simply use what's best?"  		       March 15, 2024, Berlin  		       https://bobkonf.de/2024/    	    Program: https://bobkonf.de/2024/program.html  	  Registration: https://bobkonf.de/2024/registration.html  =========================================================================    BOB conference is a place for developers, architects, and decision-makers  to explore technologies beyond the mainstream in software development  and to find the best tools available to software developers today. Our  goal is for all participants of BOB to return home with new insights  that enable them to improve their own software development  experience.    The program features 14 talks and 8 tutorials on current topics:    https://bobkonf.de/2024/program.html    Talk subjects includes functional programming, property-based testing,  service API design, programming for spacecraft, accessibility,  hypermedia, business processes, software analytics, event-based  communication and zero-knowledge proofs.    BOB will feature tutorials on F#, Haskell, Lean, SwiftUI, Copilot, the  K Framework, functional domain modelling, and Liberating Structures.    Andreas Rossberg will give the keynote talk.    Registration is open - online tickets are all under 200€, and many  discount options are available, as are grants for members of groups  underrepresented in tech:    https://bobkonf.de/2024/registration.html  

ocaml-protoc 3.0

Simon Cruanes announced

Dear camlidae,

I’m happy to announce the release of ocaml-protoc 3.0 (alongside the multiple runtime libraries: pbrt, pbrt_yojson, and the new pbrt_services). This is a majorly breaking release, I’m sorry for that (I do, however, believe it necessary) and recommend every user of ocaml-protoc add an upper bound < 3.0 to their current project and migrate when they have time.

First, a summary. ocaml-protoc is a self-contained compiler that turns protobuf IDL files (.proto files) into OCaml types, pretty-printers, and (de)serialization functions. The runtime library pbrt (“protobuf runtime”) contains support code for printers and binary (de)serialization; pbrt_yojson contains support code for JSON (de)serialization by way of yojson.

So what changed with ocaml-protoc 3.0? Many things.

For a start, from one .proto file we now generate one pair of .ml and .mli files instead of several pairs. This reduces the boilerplate in build systems and simplifies user code overall (one module per .proto file). A large internal refactor of ocaml-protoc was done prior to the integration of… services.

The major new feature of ocaml-protoc 3.0 is the support for service declarations. These are essentially a way to describe RPC endpoints, next to the types used to interact with the endpoint (example; full generated code). This is typically what it used in systems such as gRPC. Now ocaml-protoc generates server and client stubs for each endpoint, that pack together the type definitions and the relevant (de)serializers; that code doesn’t presume anything about a concrete RPC system. I have in the works a simple Twirp OCaml library that relies on this generated code to provide services over HTTP 1.1; It is also possible to write RPC systems over ZMQ, websockets, etc. without changes to the generated code[^1].

[^1]: note that twirp doesn’t support stream RPC over HTTP 1.1. Other RPC systems can support these, e.g. gRPC does.

Another big-ish change is how the generated code looks like, at least when it comes to binary (de)serialization. ocaml-protoc 3.0 comes with significant speedups for encoding (up to twice the throughput; order of magnitude reduction in allocations in some cases [^2]) and some less impressive speedups for decoding. This is a combination of multiple changes:

  • use of a few C stubs to accelerate varint decoding/encoding;
  • encoding is done back-to-front, which allows the encoder to use a single slice internally[^3]. This is what required changes in the generated code in the first place;
  • encoding code now requires a lot fewer closures (passing arguments explicitly instead) which reduces allocations to almost nothing.

I haven’t recently benchmarked against other protobuf implementations in OCaml, but I’m reasonably confident that this is now the fastest one by a healthy margin.

There are also other improvements and bugfixes. I want to thank in particular @Konstantin_Olkhovski for some of these contributions and for very helpful discussions, and also @VPhantom for more discussions on the topic of performance.

[^2]: if the encoder type is reused, there’s almost no minor allocations, and no major allocations, to encode an existing value into the encoder’s buffer.

[^3]: because sub-messages use varint as their sizes, encoding front-to-back cannot be efficiently done in a single buffer, because it’s not clear how many bytes to reserve in front of a sub-message. With back-to-front that’s not an issue.

The changelog contains many more details.

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 to the caml-list.