apache / couchdb

Seamless multi-master syncing database with an intuitive HTTP/JSON API, designed for reliability
https://couchdb.apache.org/
Apache License 2.0
6.28k stars 1.04k forks source link

Use Erlang 26 features #4467

Open janl opened 1 year ago

janl commented 1 year ago

This issue is an experiment nicked from the Elixir project. Whenever a new Erlang version comes out, they go through the release notes and note any new features or issues that might affect Elixir. We should do the same for CouchDB.

Since we support older versions of Erlang, we usually can’t start adopting new features when they come out (unless we version-guard them, in cases where it is warranted, like opting into a substantial speedup on newer versions), but at least we have a check-list for things to adopt when the new Erlang version some day becomes our oldest-supported version.

Here’s a start from the Erlang 26 RC1 release notes and more detailed Readme:

nickva commented 1 year ago

Great idea, @janl.

A good page to keep an eye on is upcoming_incompatibilities

For clouseau (search) which implements its own dist protocol there are some things to fix up:

A tricky one may be that term_to_binary is changing: