aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.github/workflows/ci.yaml141
-rw-r--r--.github/workflows/unix-ci.yaml104
-rw-r--r--early-plugins.mk152
-rw-r--r--release-notes/OTP-18.3.4.1.1.README.txt88
-rw-r--r--release-notes/OTP-20.3.2.1.README.txt44
-rw-r--r--release-notes/OTP-22.3.4.27.README.txt145
-rw-r--r--release-notes/OTP-23.2.7.5.README.txt40
-rw-r--r--release-notes/OTP-23.3.4.15.README.txt145
-rw-r--r--release-notes/OTP-23.3.4.16.README.txt205
-rw-r--r--release-notes/OTP-23.3.4.17.README.txt230
-rw-r--r--release-notes/OTP-23.3.4.18.README.txt98
-rw-r--r--release-notes/OTP-23.3.4.19.README.txt217
-rw-r--r--release-notes/OTP-23.3.4.20.README.txt78
-rw-r--r--release-notes/OTP-24.3.4.1.README.txt188
-rw-r--r--release-notes/OTP-24.3.4.10.README.txt87
-rw-r--r--release-notes/OTP-24.3.4.11.README.txt136
-rw-r--r--release-notes/OTP-24.3.4.12.README.txt181
-rw-r--r--release-notes/OTP-24.3.4.13.README.txt185
-rw-r--r--release-notes/OTP-24.3.4.14.README.txt205
-rw-r--r--release-notes/OTP-24.3.4.15.README.txt218
-rw-r--r--release-notes/OTP-24.3.4.16.README.txt99
-rw-r--r--release-notes/OTP-24.3.4.2.README.txt92
-rw-r--r--release-notes/OTP-24.3.4.3.README.txt445
-rw-r--r--release-notes/OTP-24.3.4.4.README.txt47
-rw-r--r--release-notes/OTP-24.3.4.5.README.txt143
-rw-r--r--release-notes/OTP-24.3.4.6.README.txt144
-rw-r--r--release-notes/OTP-24.3.4.7.README.txt248
-rw-r--r--release-notes/OTP-24.3.4.8.README.txt73
-rw-r--r--release-notes/OTP-24.3.4.9.README.txt170
-rw-r--r--release-notes/OTP-25.0.1.README.txt317
-rw-r--r--release-notes/OTP-25.0.2.README.txt68
-rw-r--r--release-notes/OTP-25.0.3.README.txt157
-rw-r--r--release-notes/OTP-25.0.4.README.txt84
-rw-r--r--release-notes/OTP-25.0.README.txt3182
-rw-r--r--release-notes/OTP-25.1.1.README.txt222
-rw-r--r--release-notes/OTP-25.1.2.1.README.txt74
-rw-r--r--release-notes/OTP-25.1.2.README.txt72
-rw-r--r--release-notes/OTP-25.1.README.txt1364
-rw-r--r--release-notes/OTP-25.2.1.README.txt182
-rw-r--r--release-notes/OTP-25.2.2.README.txt40
-rw-r--r--release-notes/OTP-25.2.3.README.txt150
-rw-r--r--release-notes/OTP-25.2.README.txt782
-rw-r--r--release-notes/OTP-25.3.1.README.txt313
-rw-r--r--release-notes/OTP-25.3.2.1.README.txt174
-rw-r--r--release-notes/OTP-25.3.2.10.README.txt155
-rw-r--r--release-notes/OTP-25.3.2.2.README.txt40
-rw-r--r--release-notes/OTP-25.3.2.3.README.txt211
-rw-r--r--release-notes/OTP-25.3.2.4.README.txt42
-rw-r--r--release-notes/OTP-25.3.2.5.README.txt42
-rw-r--r--release-notes/OTP-25.3.2.6.README.txt278
-rw-r--r--release-notes/OTP-25.3.2.7.README.txt106
-rw-r--r--release-notes/OTP-25.3.2.8.README.txt348
-rw-r--r--release-notes/OTP-25.3.2.9.README.txt108
-rw-r--r--release-notes/OTP-25.3.2.README.txt101
-rw-r--r--release-notes/OTP-25.3.README.txt1150
-rw-r--r--release-notes/OTP-26.0-rc1.README.txt2475
-rw-r--r--release-notes/OTP-26.0-rc2.README.txt3216
-rw-r--r--release-notes/OTP-26.0-rc3.README.txt3592
-rw-r--r--release-notes/OTP-26.0.1.README.txt318
-rw-r--r--release-notes/OTP-26.0.2.README.txt355
-rw-r--r--release-notes/OTP-26.0.README.txt3962
-rw-r--r--release-notes/OTP-26.1.1.README.txt80
-rw-r--r--release-notes/OTP-26.1.2.README.txt101
-rw-r--r--release-notes/OTP-26.1.README.txt1212
-rw-r--r--release-notes/OTP-26.2.1.README.txt101
-rw-r--r--release-notes/OTP-26.2.2.README.txt178
-rw-r--r--release-notes/OTP-26.2.3.README.txt436
-rw-r--r--release-notes/OTP-26.2.README.txt1134
-rw-r--r--release-notes/OTP-27.0-rc1.README.txt2307
-rw-r--r--release-notes/OTP-27.0-rc2.README.txt3075
70 files changed, 36610 insertions, 42 deletions
diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml
new file mode 100644
index 0000000..b70f507
--- /dev/null
+++ b/.github/workflows/ci.yaml
@@ -0,0 +1,141 @@
+## @todo Describe.
+
+name: Check a ci.erlang.mk project
+
+on:
+ workflow_call:
+
+env:
+ CI_ERLANG_MK: 1
+ AUTO_CI_MASTER: weekly
+
+jobs:
+
+ prepare-unix:
+ name: Prepare Unix
+ runs-on: ubuntu-latest
+ outputs:
+ erlang: ${{ steps.versions.outputs.erlang }}
+ latest: ${{ steps.latest_version.outputs.latest }}
+ steps:
+
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Checkout ci.erlang.mk repository
+ uses: actions/checkout@v4
+ with:
+ repository: ninenines/ci.erlang.mk
+ path: deps/ci.erlang.mk
+
+ - name: Output Erlang/OTP versions
+ id: versions
+ run: |
+ {
+ echo "erlang<<EOF"
+ make ci-list | jq -Rn '[inputs]'
+ echo EOF
+ } >> "$GITHUB_OUTPUT"
+
+ - name: Output latest Erlang/OTP version
+ id: latest_version
+ run: |
+ {
+ echo "latest<<EOF"
+ make ci-list | grep -v rc | grep -v master | tail -n1
+ echo EOF
+ } >> "$GITHUB_OUTPUT"
+
+ check:
+ name: Unix
+ needs: prepare-unix
+ strategy:
+ fail-fast: false
+ matrix:
+ erlang: ${{ fromJson(needs.prepare-unix.outputs.erlang) }}
+ os: [ubuntu-latest, macos-latest]
+ uses: ./.github/workflows/unix-ci.yaml
+ with:
+ latest: ${{ needs.prepare-unix.outputs.latest }}
+ erlang: ${{ matrix.erlang }}
+ os: ${{ matrix.os }}
+
+ prepare-windows:
+ name: Prepare Windows
+ runs-on: windows-latest
+ outputs:
+ erlang: ${{ steps.versions.outputs.erlang }}
+ steps:
+
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Checkout ci.erlang.mk repository
+ uses: actions/checkout@v4
+ with:
+ repository: ninenines/ci.erlang.mk
+ path: deps/ci.erlang.mk
+
+ - name: Setup MSYS2
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: mingw64
+ update: true
+ install: >-
+ git
+ make
+ mingw-w64-x86_64-jq
+
+ - name: Output Erlang/OTP versions
+ id: versions
+ shell: msys2 {0}
+ run: |
+ {
+ echo "erlang<<EOF"
+ make ci-windows-list | jq -Rn '[inputs]'
+ echo EOF
+ } >> "$GITHUB_OUTPUT"
+
+ test-windows:
+ name: Windows
+ needs: prepare-windows
+ strategy:
+ fail-fast: false
+ matrix:
+ erlang: ${{ fromJson(needs.prepare-windows.outputs.erlang) }}
+ runs-on: windows-latest
+ env:
+ COWBOY_QUICER: 0
+ GUN_QUICER: 0
+ steps:
+
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Install Erlang/OTP
+ uses: erlef/setup-beam@v1
+ with:
+ otp-version: '${{ matrix.erlang }}'
+ version-type: loose
+
+ - name: Setup MSYS2
+ uses: msys2/setup-msys2@v2
+ with:
+ msystem: mingw64
+ update: true
+ install: >-
+ git
+ make
+
+ - name: Run tests
+ shell: msys2 {0}
+ run: PATH=$INSTALL_DIR_FOR_OTP/bin:$PATH make -k ci-windows-${{ matrix.erlang }}
+
+ - name: Upload logs
+ uses: actions/upload-artifact@v4
+ if: always()
+ with:
+ name: Common Test logs (${{ matrix.erlang }} ${{ runner.os }})
+ path: |
+ logs/
+ !logs/**/log_private
diff --git a/.github/workflows/unix-ci.yaml b/.github/workflows/unix-ci.yaml
new file mode 100644
index 0000000..6a4d92f
--- /dev/null
+++ b/.github/workflows/unix-ci.yaml
@@ -0,0 +1,104 @@
+name: Reusable Unix jobs
+
+## @todo Self-hosted runners for
+## - archlinux
+## - alpine
+## - debian
+## - freebsd
+
+on:
+ workflow_call:
+ inputs:
+ latest:
+ required: true
+ type: string
+ erlang:
+ required: true
+ type: string
+ os:
+ required: true
+ type: string
+
+env:
+ CI_ERLANG_MK: 1
+ AUTO_CI_MASTER: weekly
+ COWBOY_QUICER: ${{ vars.COWBOY_QUICER || 0 }}
+ GUN_QUICER: ${{ vars.GUN_QUICER || 0 }}
+
+jobs:
+
+ build-erlang:
+ name: Build Erlang ${{ inputs.erlang }} on ${{ inputs.os }}
+ runs-on: ${{ inputs.os }}
+ steps:
+
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Manage CI cache
+ id: cache
+ uses: actions/cache@v4
+ with:
+ path: |
+ ~/erlang/
+ key: ${{ runner.os }}-${{ runner.arch }}-Erlang-${{ inputs.erlang }}
+
+ - name: Run ci-prepare
+ if: steps.cache.outputs.cache-hit != 'true'
+ run: make -k ci-prepare CI_OTP=${{ inputs.erlang }}
+
+ test:
+ name: Run tests using ${{ inputs.erlang }} on ${{ inputs.os }}
+ needs: build-erlang
+ runs-on: ${{ inputs.os }}
+ steps:
+
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Restore CI cache
+ uses: actions/cache/restore@v4
+ with:
+ path: |
+ ~/erlang/
+ key: ${{ runner.os }}-${{ runner.arch }}-Erlang-${{ inputs.erlang }}
+
+ - name: Run tests (macOS)
+ if: runner.os == 'macOS'
+ run: >
+ brew install coreutils make &&
+ gmake -k ci-${{ inputs.erlang }}
+
+ - name: Run tests (Unix)
+ if: runner.os != 'macOS'
+ run: make -k ci-${{ inputs.erlang }}
+
+ - name: Upload logs
+ uses: actions/upload-artifact@v4
+ if: always()
+ with:
+ name: Common Test logs (${{ inputs.erlang }} ${{ runner.os }})
+ path: |
+ logs/
+ !logs/**/log_private
+
+ dialyze:
+ name: Run Dialyzer using ${{ inputs.erlang }}
+ needs: build-erlang
+ runs-on: ${{ inputs.os }}
+ if: inputs.erlang == inputs.latest && inputs.os == 'ubuntu-latest'
+ continue-on-error: true
+ steps:
+
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ - name: Restore CI cache
+ uses: actions/cache/restore@v4
+ with:
+ path: |
+ ~/erlang/
+ key: ${{ runner.os }}-${{ runner.arch }}-Erlang-${{ inputs.latest }}
+
+ - name: Run Dialyzer
+ run: make dialyze LATEST_ERLANG_OTP=1
diff --git a/early-plugins.mk b/early-plugins.mk
index e8e8e21..88b63f6 100644
--- a/early-plugins.mk
+++ b/early-plugins.mk
@@ -1,4 +1,4 @@
-# Copyright (c) 2017-2020, Loïc Hoguin <[email protected]>
+# Copyright (c) 2017-2023, Loïc Hoguin <[email protected]>
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted, provided that the above
@@ -16,36 +16,49 @@ OTP-18 := OTP-18.0.3 OTP-18.1.5 OTP-18.2.4 OTP-18.3.4.11
OTP-19 := OTP-19.0.7 OTP-19.1.6 OTP-19.2.3 OTP-19.3.6.13
OTP-20 := OTP-20.0.5 OTP-20.1.7 OTP-20.2.4 OTP-20.3.8.26
OTP-21 := OTP-21.0.9 OTP-21.1.4 OTP-21.2.7 OTP-21.3.8.24
-OTP-22 := OTP-22.0.7 OTP-22.1.8 OTP-22.2.8 OTP-22.3.4.26
-OTP-23 := OTP-23.0.4 OTP-23.1.5 OTP-23.2.7.3 OTP-23.3.4.14
-OTP-24 := OTP-24.0.6 OTP-24.1.7 OTP-24.2.2 OTP-24.3.4
-OTP-25 := OTP-25.0-rc3
-
-OTP-18+ := $(OTP-18) $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25)
-OTP-19+ := $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25)
-OTP-20+ := $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25)
-OTP-21+ := $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25)
-OTP-22+ := $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25)
-OTP-23+ := $(OTP-23) $(OTP-24) $(OTP-25)
-OTP-24+ := $(OTP-24) $(OTP-25)
-OTP-25+ := $(OTP-25)
+OTP-22 := OTP-22.0.7 OTP-22.1.8 OTP-22.2.8 OTP-22.3.4.27
+OTP-23 := OTP-23.0.4 OTP-23.1.5 OTP-23.2.7.3 OTP-23.3.4.20
+OTP-24 := OTP-24.0.6 OTP-24.1.7 OTP-24.2.2 OTP-24.3.4.16
+OTP-25 := OTP-25.0.4 OTP-25.1.2.1 OTP-25.2.3 OTP-25.3.2.10
+OTP-26 := OTP-26.0.2 OTP-26.1.2 OTP-26.2.3
+OTP-27 := OTP-27.0-rc2
+
+OTP-18+ := $(OTP-18) $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25) $(OTP-26) $(OTP-27)
+OTP-19+ := $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25) $(OTP-26) $(OTP-27)
+OTP-20+ := $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25) $(OTP-26) $(OTP-27)
+OTP-21+ := $(OTP-21) $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25) $(OTP-26) $(OTP-27)
+OTP-22+ := $(OTP-22) $(OTP-23) $(OTP-24) $(OTP-25) $(OTP-26) $(OTP-27)
+OTP-23+ := $(OTP-23) $(OTP-24) $(OTP-25) $(OTP-26) $(OTP-27)
+OTP-24+ := $(OTP-24) $(OTP-25) $(OTP-26) $(OTP-27)
+OTP-25+ := $(OTP-25) $(OTP-26) $(OTP-27)
+OTP-26+ := $(OTP-26) $(OTP-27)
+OTP-27+ := $(OTP-27)
OTP-LATEST-18+ := $(lastword $(OTP-18)) $(lastword $(OTP-19)) \
$(lastword $(OTP-20)) $(lastword $(OTP-21)) $(lastword $(OTP-22)) \
- $(lastword $(OTP-23)) $(lastword $(OTP-24)) $(lastword $(OTP-25))
+ $(lastword $(OTP-23)) $(lastword $(OTP-24)) $(lastword $(OTP-25)) \
+ $(lastword $(OTP-26)) $(lastword $(OTP-27))
OTP-LATEST-19+ := $(lastword $(OTP-19)) $(lastword $(OTP-20)) \
$(lastword $(OTP-21)) $(lastword $(OTP-22)) $(lastword $(OTP-23)) \
- $(lastword $(OTP-24)) $(lastword $(OTP-25))
+ $(lastword $(OTP-24)) $(lastword $(OTP-25)) $(lastword $(OTP-26)) \
+ $(lastword $(OTP-27))
OTP-LATEST-20+ := $(lastword $(OTP-20)) $(lastword $(OTP-21)) \
$(lastword $(OTP-22)) $(lastword $(OTP-23)) $(lastword $(OTP-24)) \
- $(lastword $(OTP-25))
+ $(lastword $(OTP-25)) $(lastword $(OTP-26)) $(lastword $(OTP-27))
OTP-LATEST-21+ := $(lastword $(OTP-21)) $(lastword $(OTP-22)) \
- $(lastword $(OTP-23)) $(lastword $(OTP-24)) $(lastword $(OTP-25))
+ $(lastword $(OTP-23)) $(lastword $(OTP-24)) $(lastword $(OTP-25)) \
+ $(lastword $(OTP-26)) $(lastword $(OTP-27))
OTP-LATEST-22+ := $(lastword $(OTP-22)) $(lastword $(OTP-23)) \
- $(lastword $(OTP-24)) $(lastword $(OTP-25))
-OTP-LATEST-23+ := $(lastword $(OTP-23)) $(lastword $(OTP-24)) $(lastword $(OTP-25))
-OTP-LATEST-24+ := $(lastword $(OTP-24)) $(lastword $(OTP-25))
-OTP-LATEST-25+ := $(lastword $(OTP-25))
+ $(lastword $(OTP-24)) $(lastword $(OTP-25)) $(lastword $(OTP-26)) \
+ $(lastword $(OTP-27))
+OTP-LATEST-23+ := $(lastword $(OTP-23)) $(lastword $(OTP-24)) \
+ $(lastword $(OTP-25)) $(lastword $(OTP-26)) $(lastword $(OTP-27))
+OTP-LATEST-24+ := $(lastword $(OTP-24)) $(lastword $(OTP-25)) \
+ $(lastword $(OTP-26)) $(lastword $(OTP-27))
+OTP-LATEST-25+ := $(lastword $(OTP-25)) $(lastword $(OTP-26)) \
+ $(lastword $(OTP-27))
+OTP-LATEST-26+ := $(lastword $(OTP-26)) $(lastword $(OTP-27))
+OTP-LATEST-27+ := $(lastword $(OTP-27))
# We exclude release candidates here because they are not
# the latest release, they are the *next* one.
@@ -87,16 +100,27 @@ OTP-22-DROPPED := OTP-22.0-rc1 OTP-22.0-rc2 OTP-22.0-rc3 OTP-22.0 \
OTP-22.3.3 OTP-22.3.4 OTP-22.3.4.1 OTP-22.3.4.2 OTP-22.3.4.3 \
OTP-22.3.4.4 OTP-22.3.4.5 OTP-22.3.4.8 OTP-22.3.4.9 OTP-22.3.4.10 \
OTP-22.3.4.11 OTP-22.3.4.12 OTP-22.3.4.13 OTP-22.3.4.15 OTP-22.3.4.17 \
- OTP-22.3.4.18 OTP-22.3.4.19 OTP-22.3.4.20 OTP-22.3.4.21 OTP-22.3.4.22 OTP-22.3.4.23 OTP-22.3.4.24 OTP-22.3.4.25
+ OTP-22.3.4.18 OTP-22.3.4.19 OTP-22.3.4.20 OTP-22.3.4.21 OTP-22.3.4.22 \
+ OTP-22.3.4.23 OTP-22.3.4.24 OTP-22.3.4.25 OTP-22.3.4.26
OTP-23-DROPPED := OTP-23.0-rc1 OTP-23.0-rc2 OTP-23.0-rc3 OTP-23.0 OTP-23.0.1 \
OTP-23.0.2 OTP-23.0.3 OTP-23.1 OTP-23.1.1 OTP-23.1.2 OTP-23.1.3 OTP-23.1.4 \
OTP-23.2 OTP-23.2.1 OTP-23.2.3 OTP-23.2.4 OTP-23.3.1 OTP-23.3.2 OTP-23.2.7.2 \
OTP-23.3.3 OTP-23.3.4 OTP-23.3.4.1 OTP-23.3.4.5 OTP-23.3.4.6 OTP-23.3.4.7 \
- OTP-23.3.4.8 OTP-23.3.4.9 OTP-23.3.4.10 OTP-23.3.4.11 OTP-23.3.4.12 OTP-23.3.4.13
+ OTP-23.3.4.8 OTP-23.3.4.9 OTP-23.3.4.10 OTP-23.3.4.11 OTP-23.3.4.12 \
+ OTP-23.3.4.13 OTP-23.3.4.14 OTP-23.3.4.15 OTP-23.3.4.16 OTP-23.3.4.17 OTP-23.3.4.18 OTP-23.3.4.19
OTP-24-DROPPED := OTP-24.0-rc2 OTP-24.0-rc3 OTP-24.0 OTP-24.0.1 OTP-24.0.5 \
OTP-24.1 OTP-24.1.1 OTP-24.1.2 OTP-24.1.3 OTP-24.1.4 OTP-24.1.5 OTP-24.1.6 \
- OTP-24.2 OTP-24.2.1 OTP-24.3 OTP-24.3.1 OTP-24.3.2 OTP-24.3.3
-OTP-25-DROPPED := OTP-25.0-rc1 OTP-25.0-rc2
+ OTP-24.2 OTP-24.2.1 OTP-24.3 OTP-24.3.1 OTP-24.3.2 OTP-24.3.3 OTP-24.3.4 \
+ OTP-24.3.4.1 OTP-24.3.4.2 OTP-24.3.4.3 OTP-24.3.4.4 OTP-24.3.4.5 OTP-24.3.4.6 \
+ OTP-24.3.4.7 OTP-24.3.4.8 OTP-24.3.4.9 OTP-24.3.4.10 OTP-24.3.4.11 OTP-24.3.4.12 \
+ OTP-24.3.4.13 OTP-24.3.4.14 OTP-24.3.4.15
+OTP-25-DROPPED := OTP-25.0-rc1 OTP-25.0-rc2 OTP-25.0-rc3 OTP-25.0 \
+ OTP-25.0.1 OTP-25.0.2 OTP-25.0.3 OTP-25.1 OTP-25.1.1 OTP-25.1.2 OTP-25.2 \
+ OTP-25.2.1 OTP-25.2.2 OTP-25.3 OTP-25.3.1 OTP-25.3.2 OTP-25.3.2.1 OTP-25.3.2.2 \
+ OTP-25.3.2.3 OTP-25.3.2.4 OTP-25.3.2.5 OTP-25.3.2.6 OTP-25.3.2.7 OTP-25.3.2.8 OTP-25.3.2.9
+OTP-26-DROPPED := OTP-26.0-rc3 \
+ OTP-26.0 OTP-26.0.1 OTP-26.1 OTP-26.1.1 OTP-26.2 OTP-26.2.1 OTP-26.2.2
+OTP-27-DROPPED := OTP-27.0-rc1
OTP-DROPPED := $(OTP-18-DROPPED) $(OTP-19-DROPPED) $(OTP-20-DROPPED) \
$(OTP-21-DROPPED) $(OTP-22-DROPPED) $(OTP-23-DROPPED) $(OTP-24-DROPPED)
@@ -105,6 +129,9 @@ OTP-DROPPED := $(OTP-18-DROPPED) $(OTP-19-DROPPED) $(OTP-20-DROPPED) \
CI_OTP := $(foreach otp,$(AUTO_CI_OTP),$($(otp))) $(if $(AUTO_CI_MASTER),master)
+ci-list:
+ $(verbose) printf "%s\n" $(CI_OTP)
+
# Remove the existing master if necessary.
ifdef AUTO_CI_MASTER
@@ -122,7 +149,10 @@ endif
endif
ifdef AUTO_CI_MASTER_MINS
-ci:: $(KERL)
+ci::
+ $(verbose) $(MAKE) --no-print-directory ci-auto-master
+
+ci-auto-master: $(KERL)
ifneq ($(wildcard $(KERL_INSTALL_DIR)/master),)
$(verbose) if find $(KERL_INSTALL_DIR)/master/activate \
-mmin +$(AUTO_CI_MASTER_MINS) | grep -q master; then \
@@ -157,6 +187,8 @@ ci-auto-cleanup: $(CI_AUTO_CLEANUP_TARGETS)
# Right now we assume that the versions are already installed on
# the test machines. In the future we may want to also automate
# the installation.
+#
+# We only track main releases for simplicity's sake.
ifeq ($(PLATFORM),msys2)
@@ -166,33 +198,54 @@ WINDOWS-OTP-20 := 20.0 20.1 20.2 20.3
WINDOWS-OTP-21 := 21.0.1 21.1 21.2 21.3
WINDOWS-OTP-22 := 22.0 22.1 22.2 22.3
WINDOWS-OTP-23 := 23.0 23.1 23.2 23.3
-WINDOWS-OTP-24 := 24.0
+WINDOWS-OTP-24 := 24.0 24.1 24.2 24.3
+WINDOWS-OTP-25 := 25.0 25.1 25.2 25.3
+WINDOWS-OTP-26 := 26.0 26.1 26.2
+WINDOWS-OTP-27 :=
WINDOWS-OTP-18+ := $(WINDOWS-OTP-18) $(WINDOWS-OTP-19) $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) \
- $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) $(WINDOWS-OTP-24)
+ $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) $(WINDOWS-OTP-24) $(WINDOWS-OTP-25) $(WINDOWS-OTP-26) \
+ $(WINDOWS-OTP-27)
WINDOWS-OTP-19+ := $(WINDOWS-OTP-19) $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) \
- $(WINDOWS-OTP-23) $(WINDOWS-OTP-24)
+ $(WINDOWS-OTP-23) $(WINDOWS-OTP-24) $(WINDOWS-OTP-25) $(WINDOWS-OTP-26) $(WINDOWS-OTP-27)
WINDOWS-OTP-20+ := $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) \
- $(WINDOWS-OTP-24)
-WINDOWS-OTP-21+ := $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) $(WINDOWS-OTP-24)
-WINDOWS-OTP-22+ := $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) $(WINDOWS-OTP-24)
-WINDOWS-OTP-23+ := $(WINDOWS-OTP-23) $(WINDOWS-OTP-24)
-WINDOWS-OTP-24+ := $(WINDOWS-OTP-24)
+ $(WINDOWS-OTP-24) $(WINDOWS-OTP-25) $(WINDOWS-OTP-26) $(WINDOWS-OTP-27)
+WINDOWS-OTP-21+ := $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) $(WINDOWS-OTP-24) \
+ $(WINDOWS-OTP-25) $(WINDOWS-OTP-26) $(WINDOWS-OTP-27)
+WINDOWS-OTP-22+ := $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) $(WINDOWS-OTP-24) $(WINDOWS-OTP-25) \
+ $(WINDOWS-OTP-26) $(WINDOWS-OTP-27)
+WINDOWS-OTP-23+ := $(WINDOWS-OTP-23) $(WINDOWS-OTP-24) $(WINDOWS-OTP-25) $(WINDOWS-OTP-26) \
+ $(WINDOWS-OTP-27)
+WINDOWS-OTP-24+ := $(WINDOWS-OTP-24) $(WINDOWS-OTP-25) $(WINDOWS-OTP-26) $(WINDOWS-OTP-27)
+WINDOWS-OTP-25+ := $(WINDOWS-OTP-25) $(WINDOWS-OTP-26) $(WINDOWS-OTP-27)
+WINDOWS-OTP-26+ := $(WINDOWS-OTP-26) $(WINDOWS-OTP-27)
+WINDOWS-OTP-27+ := $(WINDOWS-OTP-27)
WINDOWS-OTP-LATEST-18+ := $(lastword $(WINDOWS-OTP-18)) $(lastword $(WINDOWS-OTP-19)) \
$(lastword $(WINDOWS-OTP-20)) $(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) \
- $(lastword $(WINDOWS-OTP-23)) $(lastword $(WINDOWS-OTP-24))
+ $(lastword $(WINDOWS-OTP-23)) $(lastword $(WINDOWS-OTP-24)) $(lastword $(WINDOWS-OTP-25)) \
+ $(lastword $(WINDOWS-OTP-26)) $(lastword $(WINDOWS-OTP-27))
WINDOWS-OTP-LATEST-19+ := $(lastword $(WINDOWS-OTP-19)) $(lastword $(WINDOWS-OTP-20)) \
$(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) \
- $(lastword $(WINDOWS-OTP-24))
+ $(lastword $(WINDOWS-OTP-24)) $(lastword $(WINDOWS-OTP-25)) $(lastword $(WINDOWS-OTP-26)) \
+ $(lastword $(WINDOWS-OTP-27))
WINDOWS-OTP-LATEST-20+ := $(lastword $(WINDOWS-OTP-20)) $(lastword $(WINDOWS-OTP-21)) \
- $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) $(lastword $(WINDOWS-OTP-24))
+ $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) $(lastword $(WINDOWS-OTP-24)) \
+ $(lastword $(WINDOWS-OTP-25)) $(lastword $(WINDOWS-OTP-26)) $(lastword $(WINDOWS-OTP-27))
WINDOWS-OTP-LATEST-21+ := $(lastword $(WINDOWS-OTP-21)) $(lastword $(WINDOWS-OTP-22)) \
- $(lastword $(WINDOWS-OTP-23)) $(lastword $(WINDOWS-OTP-24))
+ $(lastword $(WINDOWS-OTP-23)) $(lastword $(WINDOWS-OTP-24)) $(lastword $(WINDOWS-OTP-25)) \
+ $(lastword $(WINDOWS-OTP-26)) $(lastword $(WINDOWS-OTP-27))
WINDOWS-OTP-LATEST-22+ := $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) \
- $(lastword $(WINDOWS-OTP-24))
-WINDOWS-OTP-LATEST-23+ := $(lastword $(WINDOWS-OTP-23)) $(lastword $(WINDOWS-OTP-24))
-WINDOWS-OTP-LATEST-24+ := $(lastword $(WINDOWS-OTP-24))
+ $(lastword $(WINDOWS-OTP-24)) $(lastword $(WINDOWS-OTP-25)) $(lastword $(WINDOWS-OTP-26)) \
+ $(lastword $(WINDOWS-OTP-27))
+WINDOWS-OTP-LATEST-23+ := $(lastword $(WINDOWS-OTP-23)) $(lastword $(WINDOWS-OTP-24)) \
+ $(lastword $(WINDOWS-OTP-25)) $(lastword $(WINDOWS-OTP-26)) $(lastword $(WINDOWS-OTP-27))
+WINDOWS-OTP-LATEST-24+ := $(lastword $(WINDOWS-OTP-24)) $(lastword $(WINDOWS-OTP-25)) \
+ $(lastword $(WINDOWS-OTP-26)) $(lastword $(WINDOWS-OTP-27))
+WINDOWS-OTP-LATEST-25+ := $(lastword $(WINDOWS-OTP-25)) $(lastword $(WINDOWS-OTP-26)) \
+ $(lastword $(WINDOWS-OTP-27))
+WINDOWS-OTP-LATEST-26+ := $(lastword $(WINDOWS-OTP-26)) $(lastword $(WINDOWS-OTP-27))
+WINDOWS-OTP-LATEST-27+ := $(lastword $(WINDOWS-OTP-27))
# @todo Add support for release candidates (we don't want them as the "latest").
WINDOWS-OTP-LATEST := $(lastword $(WINDOWS-OTP-18+))
@@ -230,6 +283,18 @@ WINDOWS-OTP-23.2-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-23.2/bin)
WINDOWS-OTP-23.3-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-23.3/bin)
WINDOWS-OTP-24.0-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-24.0/bin)
+WINDOWS-OTP-24.1-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-24.1/bin)
+WINDOWS-OTP-24.2-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-24.2/bin)
+WINDOWS-OTP-24.3-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-24.3/bin)
+
+WINDOWS-OTP-25.0-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-25.0/bin)
+WINDOWS-OTP-25.1-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-25.1/bin)
+WINDOWS-OTP-25.2-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-25.2/bin)
+WINDOWS-OTP-25.3-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-25.3/bin)
+
+WINDOWS-OTP-26.0-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-26.0/bin)
+WINDOWS-OTP-26.1-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-26.1/bin)
+WINDOWS-OTP-26.2-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-26.2/bin)
# We have to duplicate this for it to work as
# it is not yet defined when we define this.
@@ -250,6 +315,9 @@ endef
CI_WINDOWS := $(foreach otp,$(AUTO_CI_WINDOWS),$(WINDOWS-$(otp)))
+ci-windows-list:
+ $(verbose) printf "%s\n" $(CI_WINDOWS)
+
$(foreach otp,$(CI_WINDOWS),$(eval $(call ci_windows_target,$(otp))))
ci-windows:: $(addprefix ci-windows-,$(CI_WINDOWS))
diff --git a/release-notes/OTP-18.3.4.1.1.README.txt b/release-notes/OTP-18.3.4.1.1.README.txt
new file mode 100644
index 0000000..b98ba1c
--- /dev/null
+++ b/release-notes/OTP-18.3.4.1.1.README.txt
@@ -0,0 +1,88 @@
+Patch Package: OTP 18.3.4.1.1
+Git Tag: OTP-18.3.4.1.1
+Date: 2017-11-22
+Trouble Report Id: OTP-14748
+Seq num:
+System: OTP
+Release: 18
+Application: ssl-7.3.3.0.1
+Predecessor: OTP 18.3.4.1
+
+ Check out the git tag OTP-18.3.4.1.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- ssl-7.3.3.0.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-7.3.3.0.1 application can be applied independently of other
+ applications on a full OTP 18 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-14748 Application(s): ssl
+
+ An erlang TLS server configured with cipher suites
+ using rsa key exchange, may be vulnerable to an
+ Adaptive Chosen Ciphertext attack (AKA Bleichenbacher
+ attack) against RSA, which when exploited, may result
+ in plaintext recovery of encrypted messages and/or a
+ Man-in-the-middle (MiTM) attack, despite the attacker
+ not having gained access to the server’s private key
+ itself. CVE-2017-1000385
+
+ Exploiting this vulnerability to perform plaintext
+ recovery of encrypted messages will, in most practical
+ cases, allow an attacker to read the plaintext only
+ after the session has completed. Only TLS sessions
+ established using RSA key exchange are vulnerable to
+ this attack.
+
+ Exploiting this vulnerability to conduct a MiTM attack
+ requires the attacker to complete the initial attack,
+ which may require thousands of server requests, during
+ the handshake phase of the targeted session within the
+ window of the configured handshake timeout. This attack
+ may be conducted against any TLS session using RSA
+ signatures, but only if cipher suites using RSA key
+ exchange are also enabled on the server. The limited
+ window of opportunity, limitations in bandwidth, and
+ latency make this attack significantly more difficult
+ to execute.
+
+ RSA key exchange is enabled by default although least
+ prioritized if server order is honored. For such a
+ cipher suite to be chosen it must also be supported by
+ the client and probably the only shared cipher suite.
+
+ Captured TLS sessions encrypted with ephemeral cipher
+ suites (DHE or ECDHE) are not at risk for subsequent
+ decryption due to this vulnerability.
+
+ As a workaround if default cipher suite configuration
+ was used you can configure the server to not use
+ vulnerable suites with the ciphers option like this:
+
+ {ciphers, [Suite || Suite <- ssl:cipher_suites(),
+ element(1,Suite) =/= rsa]}
+
+ that is your code will look somethingh like this:
+
+ ssl:listen(Port, [{ciphers, [Suite || Suite <-
+ ssl:cipher_suites(), element(1,S) =/= rsa]} |
+ Options]).
+
+ Thanks to Hanno Böck, Juraj Somorovsky and Craig Young
+ for reporting this vulnerability.
+
+
+ Full runtime dependencies of ssl-7.3.3.0.1: crypto-3.3, erts-6.0,
+ inets-5.10.7, kernel-3.0, public_key-1.0, stdlib-2.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
diff --git a/release-notes/OTP-20.3.2.1.README.txt b/release-notes/OTP-20.3.2.1.README.txt
new file mode 100644
index 0000000..f6c051d
--- /dev/null
+++ b/release-notes/OTP-20.3.2.1.README.txt
@@ -0,0 +1,44 @@
+Patch Package: OTP 20.3.2.1
+Git Tag: OTP-20.3.2.1
+Date: 2019-02-18
+Trouble Report Id: OTP-15584
+Seq num: ERIERL-282
+System: OTP
+Release: 20
+Application: common_test-1.15.4.0.1
+Predecessor: OTP 20.3.2
+
+ Check out the git tag OTP-20.3.2.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- common_test-1.15.4.0.1 ------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.15.4.0.1 application can be applied independently
+ of other applications on a full OTP 20 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-15584 Application(s): common_test
+ Related Id(s): ERIERL-282
+
+ The status of a test case which failed with timetrap
+ timeout in end_per_testcase could not be modified by
+ returning {fail,Reason} from a post_end_per_testcase
+ hook function. This is now corrected.
+
+
+ Full runtime dependencies of common_test-1.15.4.0.1: compiler-6.0,
+ crypto-3.6, debugger-4.1, erts-7.0, inets-6.0, kernel-4.0,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0,
+ stdlib-3.4, syntax_tools-1.7, tools-2.8, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-22.3.4.27.README.txt b/release-notes/OTP-22.3.4.27.README.txt
new file mode 100644
index 0000000..3fc578b
--- /dev/null
+++ b/release-notes/OTP-22.3.4.27.README.txt
@@ -0,0 +1,145 @@
+Patch Package: OTP 22.3.4.27
+Git Tag: OTP-22.3.4.27
+Date: 2024-03-18
+Trouble Report Id: OTP-18169, OTP-18170, OTP-18175, OTP-18197,
+ OTP-18258, OTP-18897, OTP-19002
+Seq num: ERIERL-1041, GH-6165, GH-6309, PR-6134,
+ PR-6135, PR-6142, PR-6213, PR-6324
+System: OTP
+Release: 22
+Application: erts-10.7.2.19, ssh-4.9.1.5
+Predecessor: OTP 22.3.4.26
+
+ Check out the git tag OTP-22.3.4.27, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18897 Application(s): ssh
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH User's Guide.
+
+
+ ---------------------------------------------------------------------
+ --- erts-10.7.2.19 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-10.7.2.19 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 22
+ installation.
+
+ On a full OTP 22 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-6.5.2.5 (first satisfied in OTP 22.3.4.25)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18169 Application(s): erts
+ Related Id(s): PR-6134
+
+ A race could cause process_info(Pid, message_queue_len)
+ on other processes to return invalid results.
+
+
+ OTP-18170 Application(s): erts
+ Related Id(s): PR-6135
+
+ Fixed reduction counting for handling process system
+ tasks.
+
+
+ OTP-18175 Application(s): erts
+ Related Id(s): PR-6142
+
+ Priority elevation of terminating processes did not
+ work which could cause execution of such processes to
+ be delayed.
+
+
+ OTP-18197 Application(s): erts
+ Related Id(s): GH-6165, PR-6213
+
+ The erlang:monotonic_time/1, erlang:system_time/1,
+ erlang:time_offset/1, and os:system_time/1 BIFs
+ erroneously failed when passed the argument native.
+
+
+ OTP-18258 Application(s): erts
+ Related Id(s): GH-6309, PR-6324
+
+ Notifications about available distribution data sent to
+ distribution controller processes could be lost.
+ Distribution controller processes can be used when
+ implementing an alternative distribution carrier. The
+ default distribution over tcp was not effected and the
+ bug was also not present on x86/x86_64 platforms.
+
+
+ Full runtime dependencies of erts-10.7.2.19: kernel-6.5.2.5,
+ sasl-3.3, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.9.1.5 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssh-4.9.1.5 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 22 installation.
+
+ On a full OTP 22 installation, also the following runtime
+ dependency has to be satisfied:
+ -- crypto-4.6.4 (first satisfied in OTP 22.2.2)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18897 Application(s): ssh
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH User's Guide.
+
+
+ OTP-19002 Application(s): ssh
+ Related Id(s): ERIERL-1041
+
+ With this change, KEX strict terminal message is
+ emitted with debug verbosity.
+
+
+ Full runtime dependencies of ssh-4.9.1.5: crypto-4.6.4, erts-9.0,
+ kernel-5.3, public_key-1.6.1, stdlib-3.4.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-23.2.7.5.README.txt b/release-notes/OTP-23.2.7.5.README.txt
new file mode 100644
index 0000000..bc6f40e
--- /dev/null
+++ b/release-notes/OTP-23.2.7.5.README.txt
@@ -0,0 +1,40 @@
+Patch Package: OTP 23.2.7.5
+Git Tag: OTP-23.2.7.5
+Date: 2022-06-22
+Trouble Report Id: OTP-18145
+Seq num:
+System: OTP
+Release: 23
+Application: ssl-10.2.4.4
+Predecessor: OTP 23.2.7.4
+
+ Check out the git tag OTP-23.2.7.5, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- ssl-10.2.4.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-10.2.4.4 application can be applied independently of other
+ applications on a full OTP 23 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18145 Application(s): ssl
+
+ Improved handling of unexpected messages during the
+ handshake, taking the right action for unexpected
+ messages.
+
+
+ Full runtime dependencies of ssl-10.2.4.4: crypto-4.2, erts-10.0,
+ inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-23.3.4.15.README.txt b/release-notes/OTP-23.3.4.15.README.txt
new file mode 100644
index 0000000..b793170
--- /dev/null
+++ b/release-notes/OTP-23.3.4.15.README.txt
@@ -0,0 +1,145 @@
+Patch Package: OTP 23.3.4.15
+Git Tag: OTP-23.3.4.15
+Date: 2022-06-21
+Trouble Report Id: OTP-17858, OTP-18093, OTP-18094, OTP-18123,
+ OTP-18144, OTP-18145, OTP-18152
+Seq num: ERIERL-728, GH-5981, GH-5994
+System: OTP
+Release: 23
+Application: crypto-4.9.0.3, erts-11.2.2.14, ssh-4.11.1.6,
+ ssl-10.3.1.3
+Predecessor: OTP 23.3.4.14
+
+ Check out the git tag OTP-23.3.4.15, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- crypto-4.9.0.3 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-4.9.0.3 application can be applied independently of other
+ applications on a full OTP 23 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17858 Application(s): crypto
+ Related Id(s): ERIERL-728
+
+ Fix timing bug in ensure_engine_loaded
+
+ When two ensure_engine_loaded() calls were done in
+ parallel there was a possibility that a crypto lib
+ function was called by both instead of just one of them
+ which resulted in an error. This is solved by moving
+ the implementation from erlang down into a NIF function
+ that uses a mutex to protect the sensitive part.
+
+
+ OTP-18152 Application(s): crypto
+
+ Remove all references correctly in the garbage
+ collection if an engine handle was not explicit
+ unloaded.
+
+
+ Full runtime dependencies of crypto-4.9.0.3: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- erts-11.2.2.14 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-11.2.2.14 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 23
+ installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18093 Application(s): erts
+ Related Id(s): OTP-18104, PR-5987
+
+ Accept funs (NEW_FUN_EXT) with incorrectly encoded size
+ field. This is a workaround for a bug (OTP-18104)
+ existing in OTP 23 and 24 that could cause incorrect
+ size fields in certain cases. The emulator does not use
+ the decoded size field, but erl_interface still does
+ and is not helped by this workaround.
+
+
+ OTP-18123 Application(s): erts
+ Related Id(s): GH-5994
+
+ The zlib built in to the runtime system has been
+ updated to version 1.2.12. (Note that on most
+ platforms, the platform's own zlib is used.)
+
+
+ OTP-18144 Application(s): erts
+ Related Id(s): GH-5981
+
+ Fixed emulator crash that could happen during crashdump
+ generation of ETS tables with options ordered_set and
+ {write_concurrency,true}.
+
+
+ Full runtime dependencies of erts-11.2.2.14: kernel-7.3.1.5,
+ sasl-3.3, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.11.1.6 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.11.1.6 application can be applied independently of other
+ applications on a full OTP 23 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18094 Application(s): ssh
+
+ Binaries can be limited in logs with the parameter
+ max_log_item_len. The default value is 500 bytes.
+
+
+ Full runtime dependencies of ssh-4.11.1.6: crypto-4.6.4, erts-9.0,
+ kernel-5.3, public_key-1.6.1, stdlib-3.4.1
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.3.1.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.3.1.3 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 23 installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- public_key-1.10.0.1 (first satisfied in OTP 23.3.4.5)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18145 Application(s): ssl
+
+ Improved handling of unexpected messages during the
+ handshake, taking the right action for unexpected
+ messages.
+
+
+ Full runtime dependencies of ssl-10.3.1.3: crypto-4.2, erts-10.0,
+ inets-5.10.7, kernel-6.0, public_key-1.10.0.1, stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-23.3.4.16.README.txt b/release-notes/OTP-23.3.4.16.README.txt
new file mode 100644
index 0000000..a4bb7dd
--- /dev/null
+++ b/release-notes/OTP-23.3.4.16.README.txt
@@ -0,0 +1,205 @@
+Patch Package: OTP 23.3.4.16
+Git Tag: OTP-23.3.4.16
+Date: 2022-07-13
+Trouble Report Id: OTP-18104, OTP-18172, OTP-18173
+Seq num: ERIERL-826
+System: OTP
+Release: 23
+Application: crypto-4.9.0.4, erts-11.2.2.15, ssl-10.3.1.4
+Predecessor: OTP 23.3.4.15
+
+ Check out the git tag OTP-23.3.4.16, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions functions are removed from the
+ documentation and therefor the API, but they are left
+ in the code for compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** HIGHLIGHT ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions functions are removed from the
+ documentation and therefor the API, but they are left
+ in the code for compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ ---------------------------------------------------------------------
+ --- crypto-4.9.0.4 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-4.9.0.4 application can be applied independently of other
+ applications on a full OTP 23 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions functions are removed from the
+ documentation and therefor the API, but they are left
+ in the code for compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ Full runtime dependencies of crypto-4.9.0.4: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- erts-11.2.2.15 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-11.2.2.15 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 23
+ installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18104 Application(s): erts
+ Related Id(s): OTP-18093
+
+ Fix faulty distribution encoding of terms with either
+
+ -- a fun with bit-string or export-fun in its
+ environment when encoded toward a not yet established
+ (pending) connection
+
+ -- or a fun with a binary/bitstring, in its
+ environment, referring to an off-heap binary (larger
+ than 64 bytes).
+
+ The symptom could be failed decoding on the receiving
+ side leading to aborted connection. Fix OTP-18093 is a
+ workaround for theses bugs that makes the VM accepts
+ such faulty encoded funs.
+
+ The first encoding bug toward pending connection exists
+ only in OTP 23 and 24, but the second one exists also
+ on OTP 25.
+
+
+ Full runtime dependencies of erts-11.2.2.15: kernel-7.3.1.5,
+ sasl-3.3, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.3.1.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.3.1.4 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 23 installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- public_key-1.10.0.1 (first satisfied in OTP 23.3.4.5)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18173 Application(s): ssl
+
+ The link to crypto:engine_load refered the function
+ with wrong arity.
+
+
+ Full runtime dependencies of ssl-10.3.1.4: crypto-4.2, erts-10.0,
+ inets-5.10.7, kernel-6.0, public_key-1.10.0.1, stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-23.3.4.17.README.txt b/release-notes/OTP-23.3.4.17.README.txt
new file mode 100644
index 0000000..3590189
--- /dev/null
+++ b/release-notes/OTP-23.3.4.17.README.txt
@@ -0,0 +1,230 @@
+Patch Package: OTP 23.3.4.17
+Git Tag: OTP-23.3.4.17
+Date: 2022-09-05
+Trouble Report Id: OTP-18164, OTP-18169, OTP-18170, OTP-18175,
+ OTP-18177, OTP-18193, OTP-18197, OTP-18198,
+ OTP-18222, OTP-18224
+Seq num: GH-6122, GH-6129, GH-6165, GH-6242
+System: OTP
+Release: 23
+Application: erts-11.2.2.16, inets-7.3.2.3,
+ kernel-7.3.1.6, ssl-10.3.1.5
+Predecessor: OTP 23.3.4.16
+
+ Check out the git tag OTP-23.3.4.17, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-11.2.2.16 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-11.2.2.16 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 23
+ installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18164 Application(s): erts
+ Related Id(s): PR-6114
+
+ Distributed exit signals could be lost under the
+ following conditions:
+
+ -- An exit signal from a parent process to a child
+ process was lost if:
+
+ -- the parent process terminated before the spawn
+ request that created the child had completed,
+
+ -- the spawn request set up a link between parent and
+ child
+
+ -- the spawn request was distributed, and
+
+ -- the exit reason was larger than one machine word.
+
+ -- Loss of a connection over which a not yet completed
+ spawn request was ongoing could cause loss of exit
+ signals. Such loss of exit signals was very rare.
+ Besides the above described connection loss also the
+ following conditions had to be satisfied:
+
+ -- The spawn request that was interrupted by the
+ connection loss also had to set up a link between the
+ parent process and the child process.
+
+ -- The parent process that issued the spawn request
+ also had to be terminating while the spawn request was
+ interrupted by the connection loss.
+
+ -- The same parent process also had to have made other
+ spawn requests to other nodes than to the node to which
+ the connection was lost.
+
+ -- These spawn requests to the other nodes also had to
+ set up links.
+
+ -- These spawn requests to the other nodes also had to
+ be not yet completed at the time of the connection
+ loss. That is, the spawn reply from the child process
+ had not yet reached the parent process.
+
+ If all the conditions above were met, exit signals to
+ the children spawned due to the above described spawn
+ requests to other nodes *could* be lost.
+
+ The above bug also caused a significant memory leak
+ when it was triggered since the destruction of the
+ parent process never completed.
+
+
+ OTP-18169 Application(s): erts
+ Related Id(s): PR-6134
+
+ A race could cause process_info(Pid, message_queue_len)
+ on other processes to return invalid results.
+
+
+ OTP-18170 Application(s): erts
+ Related Id(s): PR-6135
+
+ Fixed reduction counting for handling process system
+ tasks.
+
+
+ OTP-18175 Application(s): erts
+ Related Id(s): PR-6142
+
+ Priority elevation of terminating processes did not
+ work which could cause execution of such processes to
+ be delayed.
+
+
+ OTP-18177 Application(s): erts
+ Related Id(s): PR-6150
+
+ An unlink operation made by a process that terminated
+ before the unlink operation completed, i.e., before it
+ had received an unlink-ack signal from the linked
+ process, caused an exit signal to erroneously be sent
+ from the terminating process to the process being
+ unlinked. This exit signal would most often be ignored
+ by the receiver, but if the receiver of the exit signal
+ concurrently set up a new link, it could receive the
+ exit signal with the actual exit reason of the
+ terminating process instead of a noproc exit reason. It
+ is however very hard to detect that this has happened
+ and has no obvious negative consequences, so it should
+ be considered harmless.
+
+ A distributed unlink-ack signal received by a
+ terminating process was also not properly removed which
+ could cause a minor memory leak.
+
+
+ OTP-18197 Application(s): erts
+ Related Id(s): GH-6165, PR-6213
+
+ The erlang:monotonic_time/1, erlang:system_time/1,
+ erlang:time_offset/1, and os:system_time/1 BIFs
+ erroneously failed when passed the argument native.
+
+
+ OTP-18222 Application(s): erts
+ Related Id(s): GH-6242, PR-6248
+
+ Fix writing and reading of more than 2 GB in a single
+ read/write operation on macOS. Before this fix
+ attempting to read/write more than 2GB would result in
+ {error,einval}.
+
+
+ Full runtime dependencies of erts-11.2.2.16: kernel-7.3.1.5,
+ sasl-3.3, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- inets-7.3.2.3 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-7.3.2.3 application can be applied independently of other
+ applications on a full OTP 23 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18193 Application(s): inets
+ Related Id(s): GH-6122
+
+ Remove documentation of no longer supported callback.
+
+
+ Full runtime dependencies of inets-7.3.2.3: erts-6.0, kernel-3.0,
+ mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- kernel-7.3.1.6 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-7.3.1.6 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 23
+ installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-11.2.2.11 (first satisfied in OTP 23.3.4.12)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18198 Application(s): kernel
+ Related Id(s): GH-6129, PR-6216
+
+ A call to net_kernel:setopts(new, Opts) at the same
+ time as a connection was being set up could cause a
+ deadlock between the net_kernel process and the process
+ setting up the connection.
+
+
+ Full runtime dependencies of kernel-7.3.1.6: erts-11.2.2.11,
+ sasl-3.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.3.1.5 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.3.1.5 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 23 installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- public_key-1.10.0.1 (first satisfied in OTP 23.3.4.5)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18224 Application(s): ssl
+
+ Correct corner case of unexpected message handling for
+ pre TLS-1.3 versions, could cause "late failure" and
+ make the server dependent on its handshake timeout to
+ prevent possible DoS attacks.
+
+
+ Full runtime dependencies of ssl-10.3.1.5: crypto-4.2, erts-10.0,
+ inets-5.10.7, kernel-6.0, public_key-1.10.0.1, stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-23.3.4.18.README.txt b/release-notes/OTP-23.3.4.18.README.txt
new file mode 100644
index 0000000..4a28010
--- /dev/null
+++ b/release-notes/OTP-23.3.4.18.README.txt
@@ -0,0 +1,98 @@
+Patch Package: OTP 23.3.4.18
+Git Tag: OTP-23.3.4.18
+Date: 2022-10-04
+Trouble Report Id: OTP-18232, OTP-18258, OTP-18263
+Seq num: ERIERL-821, GH-6309
+System: OTP
+Release: 23
+Application: dialyzer-4.3.1.2, erts-11.2.2.17,
+ kernel-7.3.1.7
+Predecessor: OTP 23.3.4.17
+
+ Check out the git tag OTP-23.3.4.18, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- dialyzer-4.3.1.2 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-4.3.1.2 application can be applied independently of
+ other applications on a full OTP 23 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18263 Application(s): dialyzer
+ Related Id(s): ERIERL-821
+
+ The --input_list_file option has been added.
+
+
+ Full runtime dependencies of dialyzer-4.3.1.2: compiler-7.0,
+ erts-9.0, hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0,
+ wx-1.2
+
+
+ ---------------------------------------------------------------------
+ --- erts-11.2.2.17 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-11.2.2.17 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 23
+ installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18258 Application(s): erts
+ Related Id(s): GH-6309, PR-6324
+
+ Notifications about available distribution data sent to
+ distribution controller processes could be lost.
+ Distribution controller processes can be used when
+ implementing an alternative distribution carrier. The
+ default distribution over tcp was not effected and the
+ bug was also not present on x86/x86_64 platforms.
+
+
+ Full runtime dependencies of erts-11.2.2.17: kernel-7.3.1.5,
+ sasl-3.3, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- kernel-7.3.1.7 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-7.3.1.7 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 23
+ installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-11.2.2.11 (first satisfied in OTP 23.3.4.12)
+
+
+ --- Improvements and New Features ---
+
+ OTP-18232 Application(s): kernel
+ Related Id(s): OTP-17843, PR-6264
+
+ A new function global:disconnect/0 has been introduced
+ with which one can cleanly disconnect a node from all
+ other nodes in a cluster of global nodes.
+
+
+ Full runtime dependencies of kernel-7.3.1.7: erts-11.2.2.11,
+ sasl-3.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-23.3.4.19.README.txt b/release-notes/OTP-23.3.4.19.README.txt
new file mode 100644
index 0000000..8e691ce
--- /dev/null
+++ b/release-notes/OTP-23.3.4.19.README.txt
@@ -0,0 +1,217 @@
+Patch Package: OTP 23.3.4.19
+Git Tag: OTP-23.3.4.19
+Date: 2023-06-08
+Trouble Report Id: OTP-18321, OTP-18325, OTP-18365, OTP-18388,
+ OTP-18421, OTP-18463, OTP-18470, OTP-18525,
+ OTP-18570, OTP-18595
+Seq num: ERIERL-944, GH-6465, GH-6466, GH-6873
+System: OTP
+Release: 23
+Application: compiler-7.6.9.3, erts-11.2.2.18,
+ stdlib-3.14.2.3, xmerl-1.3.27.1
+Predecessor: OTP 23.3.4.18
+
+ Check out the git tag OTP-23.3.4.19, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-7.6.9.3 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-7.6.9.3 application can be applied independently of
+ other applications on a full OTP 23 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18325 Application(s): compiler, stdlib
+ Related Id(s): GH-6465, GH-6466
+
+ It is not allowed to call functions from guards. The
+ compiler failed to reject a call in a guard when done
+ by constructing a record with a default initialization
+ expression that called a function.
+
+
+ OTP-18365 Application(s): compiler
+
+ Fixed a bug that could cause legal code to fail
+ validation.
+
+
+ OTP-18470 Application(s): compiler
+ Related Id(s): GH-6873, PR-6877
+
+ The compiler would generate incorrect code for the
+ following type of expression:
+
+ Pattern = BoundVar1 = . . . = BoundVarN = Expression
+
+ An exception should be raised if any of the bound
+ variables have different values than Expression. The
+ compiler would generate code that would cause the bound
+ variables to be bound to the value of Expressionwhether
+ the value matched or not.
+
+
+ Full runtime dependencies of compiler-7.6.9.3: crypto-3.6, erts-11.0,
+ hipe-3.12, kernel-7.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- erts-11.2.2.18 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-11.2.2.18 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 23
+ installation.
+
+ On a full OTP 23 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-7.3.1.5 (first satisfied in OTP 23.3.4.12)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18321 Application(s): erts
+
+ Fix list_to_atom/1 for negative code points. Could
+ either return with a positive code point or fail with
+ an incorrect exception.
+
+
+ OTP-18388 Application(s): erts
+ Related Id(s): OTP-17462, PR-6662
+
+ A race condition which was very rarely triggered could
+ cause the signal queue of a process to become
+ inconsistent causing the runtime system to crash.
+
+
+ OTP-18421 Application(s): erts
+ Related Id(s): PR-6806
+
+ process_info(Pid, status) when Pid /= self() could
+ return an erroneous result.
+
+
+ OTP-18463 Application(s): erts
+ Related Id(s): PR-6858
+
+ In rare circumstances, when a process exceeded its
+ allowed heap size set by option max_heap_size, it would
+ not be killed as it should be, but instead enter a kind
+ of zombie state it would never get out of.
+
+
+ OTP-18525 Application(s): erts
+ Related Id(s): PR-7049
+
+ Implementations of the call() driver callback that
+ returned a faulty encoded result could cause a memory
+ leak and could cause invalid data on the heap of the
+ processes calling erlang:port_call/3.
+
+
+ OTP-18570 Application(s): erts
+ Related Id(s): PR-7190
+
+ If a runtime system which was starting the distribution
+ already had existing pids, ports, or references
+ referring to a node with the same nodename/creation
+ pair that the runtime system was about to use, these
+ already existing pids, ports, or references would not
+ work as expected in various situations after the node
+ had gone alive. This could only occur if the runtime
+ system was communicated such pids, ports, or references
+ prior to the distribution was started. That is, it was
+ extremely unlikely to happen unless the distribution
+ was started dynamically and was even then very unlikely
+ to happen. The runtime system now checks for already
+ existing pids, ports, and references with the same
+ nodename/creation pair that it is about to use. If such
+ are found another creation will be chosen in order to
+ avoid these issues.
+
+
+ Full runtime dependencies of erts-11.2.2.18: kernel-7.3.1.5,
+ sasl-3.3, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-3.14.2.3 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-3.14.2.3 application can be applied independently of other
+ applications on a full OTP 23 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18325 Application(s): compiler, stdlib
+ Related Id(s): GH-6465, GH-6466
+
+ It is not allowed to call functions from guards. The
+ compiler failed to reject a call in a guard when done
+ by constructing a record with a default initialization
+ expression that called a function.
+
+
+ Full runtime dependencies of stdlib-3.14.2.3: compiler-5.0,
+ crypto-3.3, erts-11.0, kernel-7.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.27.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The xmerl-1.3.27.1 application can be applied independently of other
+ applications on a full OTP 23 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18595 Application(s): xmerl
+ Related Id(s): ERIERL-944
+
+ New options to xmerl_scan and xmerl_sax_parser so one
+ can limit the behaviour of the parsers to avoid some
+ XML security issues.
+
+ xmerl_scan gets one new option:
+
+ -- {allow_entities, Boolean} -- Gives the possibility
+ to disallow entities by setting this option to false
+ (true is default)
+
+ xmerl_sax_parser gets the following options:
+
+ -- disallow_entities -- Don't allow entities in
+ document
+
+ -- {entity_recurse_limit, N} -- Set a limit on entity
+ recursion depth (default is 3)
+
+ -- {external_entities, AllowedType} -- Specify which
+ types of external entities that are allowed, this also
+ affect external DTD's. The types are all(default), file
+ and none
+
+ -- {fail_undeclared_ref, Boolean} -- Sets the behavior
+ for undeclared references due to an external file is
+ not parsed (true is default)
+
+ The old option skip_external_dtd is still valid and the
+ same as {external_entities, none} and
+ {fail_undeclared_ref, false} but just affects DTD's and
+ not other external references.
+
+
+ Full runtime dependencies of xmerl-1.3.27.1: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-23.3.4.20.README.txt b/release-notes/OTP-23.3.4.20.README.txt
new file mode 100644
index 0000000..1a5d3e9
--- /dev/null
+++ b/release-notes/OTP-23.3.4.20.README.txt
@@ -0,0 +1,78 @@
+Patch Package: OTP 23.3.4.20
+Git Tag: OTP-23.3.4.20
+Date: 2024-03-18
+Trouble Report Id: OTP-18897, OTP-19002
+Seq num: ERIERL-1041
+System: OTP
+Release: 23
+Application: ssh-4.11.1.7
+Predecessor: OTP 23.3.4.19
+
+ Check out the git tag OTP-23.3.4.20, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18897 Application(s): ssh
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH User's Guide.
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.11.1.7 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.11.1.7 application can be applied independently of other
+ applications on a full OTP 23 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18897 Application(s): ssh
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH User's Guide.
+
+
+ OTP-19002 Application(s): ssh
+ Related Id(s): ERIERL-1041
+
+ With this change, KEX strict terminal message is
+ emitted with debug verbosity.
+
+
+ Full runtime dependencies of ssh-4.11.1.7: crypto-4.6.4, erts-9.0,
+ kernel-5.3, public_key-1.6.1, stdlib-3.4.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.1.README.txt b/release-notes/OTP-24.3.4.1.README.txt
new file mode 100644
index 0000000..22a204c
--- /dev/null
+++ b/release-notes/OTP-24.3.4.1.README.txt
@@ -0,0 +1,188 @@
+Patch Package: OTP 24.3.4.1
+Git Tag: OTP-24.3.4.1
+Date: 2022-06-08
+Trouble Report Id: OTP-17858, OTP-18085, OTP-18087, OTP-18092,
+ OTP-18093, OTP-18094, OTP-18100, OTP-18123,
+ OTP-18128, OTP-18129
+Seq num: ERIERL-728, GH-5950, GH-5961, GH-5985,
+ GH-5994
+System: OTP
+Release: 24
+Application: crypto-5.0.6.1, erts-12.3.2.1,
+ mnesia-4.20.4.1, ssh-4.13.2.1, ssl-10.7.3.1
+Predecessor: OTP 24.3.4
+
+ Check out the git tag OTP-24.3.4.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- crypto-5.0.6.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.0.6.1 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17858 Application(s): crypto
+ Related Id(s): ERIERL-728
+
+ Fix timing bug in ensure_engine_loaded
+
+ When two ensure_engine_loaded() calls were done in
+ parallel there was a possibility that a crypto lib
+ function was called by both instead of just one of them
+ which resulted in an error. This is solved by moving
+ the implementation from erlang down into a NIF function
+ that uses a mutex to protect the sensitive part.
+
+
+ Full runtime dependencies of crypto-5.0.6.1: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18093 Application(s): erts
+ Related Id(s): OTP-18104, PR-5987
+
+ Accept funs (NEW_FUN_EXT) with incorrectly encoded size
+ field. This is a workaround for a bug (OTP-18104)
+ existing in OTP 23 and 24 that could cause incorrect
+ size fields in certain cases. The emulator does not use
+ the decoded size field, but erl_interface still does
+ and is not helped by this workaround.
+
+
+ OTP-18123 Application(s): erts
+ Related Id(s): GH-5994
+
+ The zlib built in to the runtime system has been
+ updated to version 1.2.12. (Note that on most
+ platforms, the platform's own zlib is used.)
+
+
+ Full runtime dependencies of erts-12.3.2.1: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.20.4.1 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.20.4.1 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18128 Application(s): mnesia
+ Related Id(s): PR-6013
+
+ Fixed add_table_copy which could leave a table lock if
+ the receiving node went down during the operation.
+
+
+ Full runtime dependencies of mnesia-4.20.4.1: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.13.2.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.13.2.1 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18094 Application(s): ssh
+
+ Binaries can be limited in logs with the parameter
+ max_log_item_len. The default value is 500 bytes.
+
+
+ Full runtime dependencies of ssh-4.13.2.1: crypto-5.0, erts-9.0,
+ kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18087 Application(s): ssl
+ Related Id(s): GH-5961
+
+ When a TLS-1.3 enabled client tried to talk to a
+ TLS-1.2 server that coalesces TLS-1.2 handshake message
+ over one TLS record, the connection could fail due to
+ some message being handled in the wrong state, this has
+ been fixed.
+
+
+ OTP-18092 Application(s): ssl
+ Related Id(s): PR-5959
+
+ Fixed tls-1.3 session ticket lifetime which was
+ discarded to quickly before.
+
+
+ OTP-18100 Application(s): ssl
+ Related Id(s): GH-5985
+
+ Correctly handles supported protocol version change
+ from default to something else by sni_fun supplied to
+ ssl:handshake/[2,3] together with a TCP-socket (so
+ called upgrade).
+
+
+ OTP-18129 Application(s): ssl
+ Related Id(s): GH-5950
+
+ Also, TLS-1.3 should respond with a protocol version
+ alert if previous versions, that are supported but not
+ configured, are attempted.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18085 Application(s): ssl
+
+ Enhance handling of handshake decoding errors,
+ especially for certificate authorities extension to
+ ensure graceful termination.
+
+
+ Full runtime dependencies of ssl-10.7.3.1: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.10.README.txt b/release-notes/OTP-24.3.4.10.README.txt
new file mode 100644
index 0000000..449dbba
--- /dev/null
+++ b/release-notes/OTP-24.3.4.10.README.txt
@@ -0,0 +1,87 @@
+Patch Package: OTP 24.3.4.10
+Git Tag: OTP-24.3.4.10
+Date: 2023-03-17
+Trouble Report Id: OTP-18422, OTP-18496, OTP-18509
+Seq num: ERIERL-873, GH-6947
+System: OTP
+Release: 24
+Application: erts-12.3.2.10, inets-7.5.3.3, snmp-5.12.0.3
+Predecessor: OTP 24.3.4.9
+
+ Check out the git tag OTP-24.3.4.10, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.10 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.10 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18496 Application(s): erts
+ Related Id(s): GH-6947, PR-6953
+
+ Active process aliases of a process at its termination
+ leaked memory.
+
+
+ Full runtime dependencies of erts-12.3.2.10: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- inets-7.5.3.3 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-7.5.3.3 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18509 Application(s): inets
+ Related Id(s): OTP-18476
+
+ Correct timing related pipelining/keepalive queue bug,
+ that could result in unexpected "socket_remotly_closed"
+ errors.
+
+
+ Full runtime dependencies of inets-7.5.3.3: erts-6.0, kernel-3.0,
+ mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.12.0.3 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.12.0.3 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18422 Application(s): snmp
+ Related Id(s): ERIERL-873
+
+ Attempts to minimize the number of the error reports
+ during a failed agent init.
+
+
+ Full runtime dependencies of snmp-5.12.0.3: crypto-3.3, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.11.README.txt b/release-notes/OTP-24.3.4.11.README.txt
new file mode 100644
index 0000000..28896a5
--- /dev/null
+++ b/release-notes/OTP-24.3.4.11.README.txt
@@ -0,0 +1,136 @@
+Patch Package: OTP 24.3.4.11
+Git Tag: OTP-24.3.4.11
+Date: 2023-04-21
+Trouble Report Id: OTP-18243, OTP-18343, OTP-18525, OTP-18545,
+ OTP-18550, OTP-18557
+Seq num: ERIERL-928, ERIERL-937, GH-6247, GH-6496
+System: OTP
+Release: 24
+Application: erts-12.3.2.11, inets-7.5.3.4, ssl-10.7.3.7
+Predecessor: OTP 24.3.4.10
+
+ Check out the git tag OTP-24.3.4.11, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.11 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.11 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18243 Application(s): erts
+ Related Id(s): GH-6247, PR-6258
+
+ Fix bug sometimes causing emulator crash at node
+ shutdown when there are pending connections. Only seen
+ when running duel distribution protocols, inet_drv and
+ inet_tls_dist.
+
+
+ OTP-18343 Application(s): erts
+ Related Id(s): GH-6496
+
+ Fix bug in binary_to_term (and distributed receive)
+ when decoding a large map (>32 keys) with unsorted
+ small maps (<= 32) as keys of the large map.
+
+ This was only a problem if the term was encoded by
+ erl_interface, jinterface or otherwise, as the VM
+ itself always encodes small maps with sorted keys.
+
+ The "binary_to_term" would appear as successful but the
+ created large map was internally inconsistent. The
+ smaller key-maps could not be found with maps:get and
+ friends. Other operations such as map compare and merge
+ could probably also give incorrect results.
+
+
+ OTP-18525 Application(s): erts
+ Related Id(s): PR-7049
+
+ Implementations of the call() driver callback that
+ returned a faulty encoded result could cause a memory
+ leak and could cause invalid data on the heap of the
+ processes calling erlang:port_call/3.
+
+
+ OTP-18557 Application(s): erts
+ Related Id(s): OTP-18496, PR-7131
+
+ Aliases created in combination with a monitor using the
+ {alias, explicit_unalias} option stopped working from
+ remote nodes when a 'DOWN' signal had been received due
+ to the monitor or if the monitor was removed using the
+ erlang:demonitor() BIF.
+
+ This bug was introduced in OTP 24.3.4.10 and OTP 25.3.
+
+
+ Full runtime dependencies of erts-12.3.2.11: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- inets-7.5.3.4 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-7.5.3.4 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18545 Application(s): inets
+ Related Id(s): ERIERL-928, ERIERL-937, OTP-18509
+
+ With this change, upon remote socket closure current
+ request is added to a retried queue (either pipeline or
+ keep_alive, but not both).
+
+
+ Full runtime dependencies of inets-7.5.3.4: erts-6.0, kernel-3.0,
+ mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.7 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.7 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+ -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18550 Application(s): ssl
+
+ Client signature algorithm list input order is now
+ honored again , it was accidently reversed by a
+ previous fix.
+
+
+ Full runtime dependencies of ssl-10.7.3.7: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.17.2.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.12.README.txt b/release-notes/OTP-24.3.4.12.README.txt
new file mode 100644
index 0000000..0ed8b1e
--- /dev/null
+++ b/release-notes/OTP-24.3.4.12.README.txt
@@ -0,0 +1,181 @@
+Patch Package: OTP 24.3.4.12
+Git Tag: OTP-24.3.4.12
+Date: 2023-05-30
+Trouble Report Id: OTP-18556, OTP-18560, OTP-18569, OTP-18570,
+ OTP-18593, OTP-18595, OTP-18597
+Seq num: ERIERL-944, GH-7252
+System: OTP
+Release: 24
+Application: compiler-8.1.1.4, erts-12.3.2.12,
+ stdlib-3.17.2.3, xmerl-1.3.28.1
+Predecessor: OTP 24.3.4.11
+
+ Check out the git tag OTP-24.3.4.12, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.1.1.4 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.1.1.4 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18593 Application(s): compiler
+ Related Id(s): GH-7252
+
+ Complex guard expression using the or operator and
+ guard BIFs that can fail could sometimes be miscompiled
+ so that the guard would succeed even if a call to a
+ guard BIF failed.
+
+
+ Full runtime dependencies of compiler-8.1.1.4: crypto-3.6, erts-11.0,
+ kernel-7.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.12 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.12 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18560 Application(s): erts
+
+ In rare circumstances, bit syntax matching of an
+ invalid code point for a utf32 would crash the runtime
+ system.
+
+
+ OTP-18570 Application(s): erts
+ Related Id(s): PR-7190
+
+ If a runtime system which was starting the distribution
+ already had existing pids, ports, or references
+ referring to a node with the same nodename/creation
+ pair that the runtime system was about to use, these
+ already existing pids, ports, or references would not
+ work as expected in various situations after the node
+ had gone alive. This could only occur if the runtime
+ system was communicated such pids, ports, or references
+ prior to the distribution was started. That is, it was
+ extremely unlikely to happen unless the distribution
+ was started dynamically and was even then very unlikely
+ to happen. The runtime system now checks for already
+ existing pids, ports, and references with the same
+ nodename/creation pair that it is about to use. If such
+ are found another creation will be chosen in order to
+ avoid these issues.
+
+
+ OTP-18597 Application(s): erts
+
+ Constructing a binary segment not aligned with a byte
+ boundary, with a size not fitting in 31 bits, and with
+ a value not fitting in a 64-bit word could crash the
+ runtime system.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18569 Application(s): erts
+
+ Further robustify implementation of large maps (> 32
+ keys). Keys that happen to have same internal 32-bit
+ hash values are now put in collision nodes which are
+ traversed with linear search. This removes the demand
+ for the internal hash function when salted to
+ eventually produce different hashes for all possible
+ pairs of unequal terms.
+
+
+ Full runtime dependencies of erts-12.3.2.12: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-3.17.2.3 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-3.17.2.3 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18556 Application(s): stdlib
+
+ Static supervisors are very idle processes after they
+ have started so they will now be hibernated after start
+ to improve resource management.
+
+
+ Full runtime dependencies of stdlib-3.17.2.3: compiler-5.0,
+ crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.28.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The xmerl-1.3.28.1 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18595 Application(s): xmerl
+ Related Id(s): ERIERL-944
+
+ New options to xmerl_scan and xmerl_sax_parser so one
+ can limit the behaviour of the parsers to avoid some
+ XML security issues.
+
+ xmerl_scan gets one new option:
+
+ -- {allow_entities, Boolean} -- Gives the possibility
+ to disallow entities by setting this option to false
+ (true is default)
+
+ xmerl_sax_parser gets the following options:
+
+ -- disallow_entities -- Don't allow entities in
+ document
+
+ -- {entity_recurse_limit, N} -- Set a limit on entity
+ recursion depth (default is 3)
+
+ -- {external_entities, AllowedType} -- Specify which
+ types of external entities that are allowed, this also
+ affect external DTD's. The types are all(default), file
+ and none
+
+ -- {fail_undeclared_ref, Boolean} -- Sets the behavior
+ for undeclared references due to an external file is
+ not parsed (true is default)
+
+ The old option skip_external_dtd is still valid and the
+ same as {external_entities, none} and
+ {fail_undeclared_ref, false} but just affects DTD's and
+ not other external references.
+
+
+ Full runtime dependencies of xmerl-1.3.28.1: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.13.README.txt b/release-notes/OTP-24.3.4.13.README.txt
new file mode 100644
index 0000000..3dea948
--- /dev/null
+++ b/release-notes/OTP-24.3.4.13.README.txt
@@ -0,0 +1,185 @@
+Patch Package: OTP 24.3.4.13
+Git Tag: OTP-24.3.4.13
+Date: 2023-06-29
+Trouble Report Id: OTP-18617, OTP-18618, OTP-18620, OTP-18643,
+ OTP-18644, OTP-18659
+Seq num: ERIERL-932, GH-7336, GH-7338
+System: OTP
+Release: 24
+Application: compiler-8.1.1.5, debugger-5.2.1.1,
+ erts-12.3.2.13, ssh-4.13.2.3, ssl-10.7.3.8,
+ stdlib-3.17.2.4
+Predecessor: OTP 24.3.4.12
+
+ Check out the git tag OTP-24.3.4.13, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.1.1.5 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.1.1.5 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18617 Application(s): compiler
+ Related Id(s): GH-7338
+
+ The compiler could be very slow when compiling guards
+ with multiple guard tests separated with 'or' or ';'.
+
+
+ Full runtime dependencies of compiler-8.1.1.5: crypto-3.6, erts-11.0,
+ kernel-7.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- debugger-5.2.1.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The debugger-5.2.1.1 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18644 Application(s): debugger
+ Related Id(s): GH-7336
+
+ The call int:no_break(Module) did not remove any
+ breakpoints.
+
+
+ Full runtime dependencies of debugger-5.2.1.1: compiler-8.0,
+ erts-12.0, kernel-8.0, stdlib-3.15, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.13 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.13 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18659 Application(s): erts, stdlib
+ Related Id(s): PR-7426
+
+ The following functions are now much faster when given
+ a long list or binary:
+
+ -- erlang:list_to_integer/1
+
+ -- erlang:binary_to_integer/1
+
+ -- erlang:binary_to_integer/2
+
+ -- erlang:list_to_integer/2
+
+ -- string:to_integer/1
+
+
+ Full runtime dependencies of erts-12.3.2.13: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.13.2.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.13.2.3 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18620 Application(s): ssh
+ Related Id(s): OTP-18386, PR-6611
+
+ With this change, error logging related crashes in
+ ssh_connection_handler module are fixed.
+
+
+ Full runtime dependencies of ssh-4.13.2.3: crypto-5.0, erts-9.0,
+ kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.8 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.8 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+ -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18643 Application(s): ssl
+ Related Id(s): ERIERL-932
+
+ Added keylog information to all protocol versions in
+ ssl:connection_information/2.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18618 Application(s): ssl
+ Related Id(s): ERIERL-932
+
+ Add RFC-6083 considerations for DTLS to enable gen_sctp
+ based callback for the transport.
+
+
+ Full runtime dependencies of ssl-10.7.3.8: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.17.2.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-3.17.2.4 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-3.17.2.4 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18659 Application(s): erts, stdlib
+ Related Id(s): PR-7426
+
+ The following functions are now much faster when given
+ a long list or binary:
+
+ -- erlang:list_to_integer/1
+
+ -- erlang:binary_to_integer/1
+
+ -- erlang:binary_to_integer/2
+
+ -- erlang:list_to_integer/2
+
+ -- string:to_integer/1
+
+
+ Full runtime dependencies of stdlib-3.17.2.4: compiler-5.0,
+ crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.14.README.txt b/release-notes/OTP-24.3.4.14.README.txt
new file mode 100644
index 0000000..b5a35b8
--- /dev/null
+++ b/release-notes/OTP-24.3.4.14.README.txt
@@ -0,0 +1,205 @@
+Patch Package: OTP 24.3.4.14
+Git Tag: OTP-24.3.4.14
+Date: 2023-10-12
+Trouble Report Id: OTP-18670, OTP-18707, OTP-18711, OTP-18712,
+ OTP-18718, OTP-18732, OTP-18752, OTP-18790,
+ OTP-18797
+Seq num: ERIERL-963, GH-7431, GH-7436, GH-7444,
+ GH-7546, GH-7683
+System: OTP
+Release: 24
+Application: crypto-5.0.6.4, erts-12.3.2.14,
+ kernel-8.3.2.4, mnesia-4.20.4.3,
+ public_key-1.12.0.2, ssl-10.7.3.9
+Predecessor: OTP 24.3.4.13
+
+ Check out the git tag OTP-24.3.4.14, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- crypto-5.0.6.4 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.0.6.4 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18670 Application(s): crypto
+ Related Id(s): GH-7436, PR-7450
+
+ Fix VM crash caused by crypto being purged and reloaded
+ (by init:restart for example) on OS with musl libc
+ (such as Alpine linux).
+
+
+ Full runtime dependencies of crypto-5.0.6.4: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.14 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.14 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18732 Application(s): erts
+ Related Id(s): GH-7444, PR-7458
+
+ Fix bug causing "magic" references in a compressed ETS
+ table to not keep the referred object alive. The
+ symptom would be the referred object being garbage
+ collected prematurely and the reference appearing
+ stale, not referring to anything. Examples of such
+ magically referred objects are atomics and NIF
+ resources.
+
+
+ OTP-18752 Application(s): erts
+ Related Id(s): PR-7633
+
+ The cleanup operation of not yet delivered signals to a
+ terminated process yielded excessively.
+
+
+ OTP-18790 Application(s): erts
+ Related Id(s): PR-7742
+
+ If the external term format encoding of an argument
+ list part of a distributed spawn operation was faulty,
+ the newly spawned remote process could misbehave. The
+ misbehavior included hanging or interpret an incoming
+ message as an argument list to use. This was very
+ unlikely to happen unless using an alternate
+ implementation of the distribution protocol which made
+ a faulty encoding of the argument list. The child
+ process will now detect this error and terminate before
+ executing the user specified code.
+
+
+ OTP-18797 Application(s): erts
+ Related Id(s): GH-7683, PR-7712
+
+ Fix bugs where if the body of a matchspec would return
+ a map with a variable ('$1', '$_' etc) as one of the
+ keys or values and the variable was not an immidiate,
+ the term would not be copied to the receiving processes
+ heap. This would later corrupt the term in the table as
+ the GC could place move markers in it, which in turn
+ would cause the VM to crash.
+
+ Bug has been present for since OTP 17.0.
+
+
+ Full runtime dependencies of erts-12.3.2.14: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.3.2.4 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.3.2.4 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-12.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18707 Application(s): kernel
+ Related Id(s): #7530
+
+ gen_tcp:connect with socket address and socket (inet-)
+ backend fails because of missing callback function.
+
+
+ Full runtime dependencies of kernel-8.3.2.4: crypto-5.0, erts-12.3,
+ sasl-3.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.20.4.3 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.20.4.3 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18711 Application(s): mnesia
+ Related Id(s): ERIERL-963
+
+ Do not delete old backup file if the new backup fails.
+
+
+ Full runtime dependencies of mnesia-4.20.4.3: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.12.0.2 ---------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.12.0.2 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18718 Application(s): public_key
+ Related Id(s): GH-7546
+
+ Country name comparison shall be case insensitive
+
+
+ Full runtime dependencies of public_key-1.12.0.2: asn1-3.0,
+ crypto-3.8, erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.9 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.9 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+ -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18712 Application(s): ssl
+ Related Id(s): GH-7431
+
+ When a client initiated renegotiation was rejected and
+ the client socket was in active mode the expected error
+ message to the controlling process was not sent.
+
+
+ Full runtime dependencies of ssl-10.7.3.9: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.17.2.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.15.README.txt b/release-notes/OTP-24.3.4.15.README.txt
new file mode 100644
index 0000000..8ef2b53
--- /dev/null
+++ b/release-notes/OTP-24.3.4.15.README.txt
@@ -0,0 +1,218 @@
+Patch Package: OTP 24.3.4.15
+Git Tag: OTP-24.3.4.15
+Date: 2023-12-18
+Trouble Report Id: OTP-18802, OTP-18830, OTP-18844, OTP-18850,
+ OTP-18869, OTP-18877, OTP-18885, OTP-18896,
+ OTP-18897, OTP-18899, OTP-18902
+Seq num: GH-7571, GH-7834, GH-7890
+System: OTP
+Release: 24
+Application: asn1-5.0.18.2, erl_interface-5.2.2.1,
+ erts-12.3.2.15, mnesia-4.20.4.4, ssh-4.13.2.4
+Predecessor: OTP 24.3.4.14
+
+ Check out the git tag OTP-24.3.4.15, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18897 Application(s): ssh
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-24.3.4.15 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18896 Application(s): otp
+
+ Updated copyright and license information.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.0.18.2 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The asn1-5.0.18.2 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18844 Application(s): asn1
+
+ Fix benign warning from gcc 11 about mismatching call
+ to free().
+
+
+ Full runtime dependencies of asn1-5.0.18.2: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.2.2.1 -------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_interface-5.2.2.1 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18877 Application(s): erl_interface, erts
+
+ Replaced old md5 implementation with an implementation
+ from OpenSSL.
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.15 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.15 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18802 Application(s): erts
+
+ Fix faulty debug assert when page size is larger than
+ 16kb, like on PowerPC. Did crash debug VM directly at
+ start.
+
+
+ OTP-18885 Application(s): erts
+ Related Id(s): GH-7834, GH-7890, PR-7915
+
+ On OTP 24 and OTP 25, incoming distributed messages
+ larger than 64 KiB sent using an alias leaked memory if
+ the alias had been removed prior to entering the node.
+ This issue was not present on OTP 26.
+
+ Incoming distributed messages larger than 64 KiB sent
+ using an alias which had been removed on the receiving
+ node could crash the node. This crash was quite
+ unlikely on OTP 24 and OTP 25, but very likely on OTP
+ 26.
+
+ 'DOWN' signals with exit reason larger than 64 KiB
+ directed towards a process on a node with a not
+ matching creation leaked memory on the receiving node.
+ Such signals should however be very rare.
+
+
+ OTP-18902 Application(s): erts
+
+ Removed unnecessary PCRE source tar-ball.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18830 Application(s): erts
+ Related Id(s): PR-7823
+
+ Removed unnecessary regexp library used when generating
+ yielding BIFs.
+
+
+ OTP-18877 Application(s): erl_interface, erts
+
+ Replaced old md5 implementation with an implementation
+ from OpenSSL.
+
+
+ OTP-18899 Application(s): erts
+
+ Removed unused makewhatis script.
+
+
+ Full runtime dependencies of erts-12.3.2.15: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.20.4.4 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.20.4.4 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18850 Application(s): mnesia
+
+ mnesia:add_table_copy/3 no longer fails with reason
+ system_limit when the node is starting.
+
+
+ Full runtime dependencies of mnesia-4.20.4.4: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.13.2.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.13.2.4 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18869 Application(s): ssh
+ Related Id(s): GH-7571, PR-7849
+
+ With this change, connection handler does not execute
+ socket operations until it becomes socket owner.
+ Previously errors could occur if connection handler
+ tried to work with socket whose owner exited.
+
+
+ OTP-18897 Application(s): ssh
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH.
+
+
+ Full runtime dependencies of ssh-4.13.2.4: crypto-5.0, erts-9.0,
+ kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.16.README.txt b/release-notes/OTP-24.3.4.16.README.txt
new file mode 100644
index 0000000..17e43c7
--- /dev/null
+++ b/release-notes/OTP-24.3.4.16.README.txt
@@ -0,0 +1,99 @@
+Patch Package: OTP 24.3.4.16
+Git Tag: OTP-24.3.4.16
+Date: 2024-02-12
+Trouble Report Id: OTP-18911, OTP-18932, OTP-18964
+Seq num: ERIERL-1023
+System: OTP
+Release: 24
+Application: common_test-1.22.1.2, erts-12.3.2.16,
+ ssh-4.13.2.5
+Predecessor: OTP 24.3.4.15
+
+ Check out the git tag OTP-24.3.4.16, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- common_test-1.22.1.2 --------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.22.1.2 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18932 Application(s): common_test
+
+ Fix how CT finds Erlang/OTP releases for compatability
+ testing. This functionality is only used to test
+ Erlang/OTP.
+
+
+ Full runtime dependencies of common_test-1.22.1.2: compiler-6.0,
+ crypto-3.6, debugger-4.1, erts-7.0, ftp-1.0.0, inets-6.0, kernel-4.0,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0,
+ stdlib-3.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.16 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.16 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18911 Application(s): erts
+ Related Id(s): ERIERL-1023, PR-7983
+
+ 32-bit runtime systems on most Unix like platforms
+ could crash if a BIF timer was set with a huge timeout
+ of more than 68 years into the future. In order for the
+ crash to occur, the huge timer (at a later time than
+ when it was set) had to become the nearest active timer
+ set on the specific scheduler on which it was set. This
+ could not happen on a system with only one scheduler
+ since there would always be shorter timers in the
+ system.
+
+ Setting a timer larger than 49 days on Windows could
+ under rare circumstances cause the timeout to be
+ delayed.
+
+
+ Full runtime dependencies of erts-12.3.2.16: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.13.2.5 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.13.2.5 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18964 Application(s): ssh
+
+ With this change, Curve25519 and Curve448 KEX methods
+ become most preferred (related to RFC8731).
+
+
+ Full runtime dependencies of ssh-4.13.2.5: crypto-5.0, erts-9.0,
+ kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.2.README.txt b/release-notes/OTP-24.3.4.2.README.txt
new file mode 100644
index 0000000..8b2ca8d
--- /dev/null
+++ b/release-notes/OTP-24.3.4.2.README.txt
@@ -0,0 +1,92 @@
+Patch Package: OTP 24.3.4.2
+Git Tag: OTP-24.3.4.2
+Date: 2022-06-21
+Trouble Report Id: OTP-18144, OTP-18145, OTP-18147
+Seq num: GH-5981, GH-6024
+System: OTP
+Release: 24
+Application: crypto-5.0.6.2, erts-12.3.2.2, ssl-10.7.3.2
+Predecessor: OTP 24.3.4.1
+
+ Check out the git tag OTP-24.3.4.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- crypto-5.0.6.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.0.6.2 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18147 Application(s): crypto
+ Related Id(s): GH-6024, PR-6056
+
+ Fix configure with --with-ssl and
+ --disable-dynamic-ssl-lib on Windows.
+
+
+ Full runtime dependencies of crypto-5.0.6.2: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.2 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18144 Application(s): erts
+ Related Id(s): GH-5981
+
+ Fixed emulator crash that could happen during crashdump
+ generation of ETS tables with options ordered_set and
+ {write_concurrency,true}.
+
+
+ Full runtime dependencies of erts-12.3.2.2: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18145 Application(s): ssl
+
+ Improved handling of unexpected messages during the
+ handshake, taking the right action for unexpected
+ messages.
+
+
+ Full runtime dependencies of ssl-10.7.3.2: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.3.README.txt b/release-notes/OTP-24.3.4.3.README.txt
new file mode 100644
index 0000000..334b3d0
--- /dev/null
+++ b/release-notes/OTP-24.3.4.3.README.txt
@@ -0,0 +1,445 @@
+Patch Package: OTP 24.3.4.3
+Git Tag: OTP-24.3.4.3
+Date: 2022-08-18
+Trouble Report Id: OTP-18044, OTP-18104, OTP-18162, OTP-18164,
+ OTP-18169, OTP-18170, OTP-18172, OTP-18173,
+ OTP-18175, OTP-18177, OTP-18182, OTP-18189,
+ OTP-18190, OTP-18193, OTP-18195, OTP-18197,
+ OTP-18198
+Seq num: ERIERL-826, ERIERL-829, GH-6122, GH-6129,
+ GH-6163, GH-6165, GH-6185
+System: OTP
+Release: 24
+Application: compiler-8.1.1.1, crypto-5.0.6.3,
+ erts-12.3.2.3, inets-7.5.3.1, kernel-8.3.2.1,
+ public_key-1.12.0.1, ssl-10.7.3.3
+Predecessor: OTP 24.3.4.2
+
+ Check out the git tag OTP-24.3.4.3, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions functions are removed from the
+ documentation and therefor the API, but they are left
+ in the code for compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** HIGHLIGHT ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions functions are removed from the
+ documentation and therefor the API, but they are left
+ in the code for compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.1.1.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.1.1.1 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18162 Application(s): compiler
+ Related Id(s): PR-6102
+
+ The bin_opt_info and recv_opt_info options would cause
+ the compiler to crash when attempting to compile
+ generated code without location information.
+
+
+ OTP-18182 Application(s): compiler
+ Related Id(s): GH-6163
+
+ In rare circumstances involving floating point
+ operations, the compiler could terminate with an
+ internal consistency check failure.
+
+
+ Full runtime dependencies of compiler-8.1.1.1: crypto-3.6, erts-11.0,
+ kernel-7.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.0.6.3 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.0.6.3 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions functions are removed from the
+ documentation and therefor the API, but they are left
+ in the code for compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ Full runtime dependencies of crypto-5.0.6.3: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.3 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.3 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18104 Application(s): erts
+ Related Id(s): OTP-18093
+
+ Fix faulty distribution encoding of terms with either
+
+ -- a fun with bit-string or export-fun in its
+ environment when encoded toward a not yet established
+ (pending) connection
+
+ -- or a fun with a binary/bitstring, in its
+ environment, referring to an off-heap binary (larger
+ than 64 bytes).
+
+ The symptom could be failed decoding on the receiving
+ side leading to aborted connection. Fix OTP-18093 is a
+ workaround for theses bugs that makes the VM accepts
+ such faulty encoded funs.
+
+ The first encoding bug toward pending connection exists
+ only in OTP 23 and 24, but the second one exists also
+ on OTP 25.
+
+
+ OTP-18164 Application(s): erts
+ Related Id(s): PR-6114
+
+ Distributed exit signals could be lost under the
+ following conditions:
+
+ -- An exit signal from a parent process to a child
+ process was lost if:
+
+ -- the parent process terminated before the spawn
+ request that created the child had completed,
+
+ -- the spawn request set up a link between parent and
+ child
+
+ -- the spawn request was distributed, and
+
+ -- the exit reason was larger than one machine word.
+
+ -- Loss of a connection over which a not yet completed
+ spawn request was ongoing could cause loss of exit
+ signals. Such loss of exit signals was very rare.
+ Besides the above described connection loss also the
+ following conditions had to be satisfied:
+
+ -- The spawn request that was interrupted by the
+ connection loss also had to set up a link between the
+ parent process and the child process.
+
+ -- The parent process that issued the spawn request
+ also had to be terminating while the spawn request was
+ interrupted by the connection loss.
+
+ -- The same parent process also had to have made other
+ spawn requests to other nodes than to the node to which
+ the connection was lost.
+
+ -- These spawn requests to the other nodes also had to
+ set up links.
+
+ -- These spawn requests to the other nodes also had to
+ be not yet completed at the time of the connection
+ loss. That is, the spawn reply from the child process
+ had not yet reached the parent process.
+
+ If all the conditions above were met, exit signals to
+ the children spawned due to the above described spawn
+ requests to other nodes *could* be lost.
+
+ The above bug also caused a significant memory leak
+ when it was triggered since the destruction of the
+ parent process never completed.
+
+
+ OTP-18169 Application(s): erts
+ Related Id(s): PR-6134
+
+ A race could cause process_info(Pid, message_queue_len)
+ on other processes to return invalid results.
+
+
+ OTP-18170 Application(s): erts
+ Related Id(s): PR-6135
+
+ Fixed reduction counting for handling process system
+ tasks.
+
+
+ OTP-18175 Application(s): erts
+ Related Id(s): PR-6142
+
+ Priority elevation of terminating processes did not
+ work which could cause execution of such processes to
+ be delayed.
+
+
+ OTP-18177 Application(s): erts
+ Related Id(s): PR-6150
+
+ An unlink operation made by a process that terminated
+ before the unlink operation completed, i.e., before it
+ had received an unlink-ack signal from the linked
+ process, caused an exit signal to erroneously be sent
+ from the terminating process to the process being
+ unlinked. This exit signal would most often be ignored
+ by the receiver, but if the receiver of the exit signal
+ concurrently set up a new link, it could receive the
+ exit signal with the actual exit reason of the
+ terminating process instead of a noproc exit reason. It
+ is however very hard to detect that this has happened
+ and has no obvious negative consequences, so it should
+ be considered harmless.
+
+ A distributed unlink-ack signal received by a
+ terminating process was also not properly removed which
+ could cause a minor memory leak.
+
+
+ OTP-18190 Application(s): erts
+ Related Id(s): GH-6185, PR-6209
+
+ The monitor/3 BIF did not apply options to the created
+ monitor if the target process or port did not exist.
+ That is, the corresponding down message would get a
+ `DOWN` tag even if a custom tag had been set, and the
+ returned reference was not an alias even if the alias
+ option had been passed.
+
+
+ OTP-18197 Application(s): erts
+ Related Id(s): GH-6165, PR-6213
+
+ The erlang:monotonic_time/1, erlang:system_time/1,
+ erlang:time_offset/1, and os:system_time/1 BIFs
+ erroneously failed when passed the argument native.
+
+
+ Full runtime dependencies of erts-12.3.2.3: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- inets-7.5.3.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-7.5.3.1 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18193 Application(s): inets
+ Related Id(s): GH-6122
+
+ Remove documentation of no longer supported callback.
+
+
+ Full runtime dependencies of inets-7.5.3.1: erts-6.0, kernel-3.0,
+ mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.3.2.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.3.2.1 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-12.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18198 Application(s): kernel
+ Related Id(s): GH-6129, PR-6216
+
+ A call to net_kernel:setopts(new, Opts) at the same
+ time as a connection was being set up could cause a
+ deadlock between the net_kernel process and the process
+ setting up the connection.
+
+
+ Full runtime dependencies of kernel-8.3.2.1: crypto-5.0, erts-12.3,
+ sasl-3.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.12.0.1 ---------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.12.0.1 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18189 Application(s): public_key
+ Related Id(s): ERIERL-829
+
+ Correct asn1 typenames available in type
+ pki_asn1_type()
+
+
+ Full runtime dependencies of public_key-1.12.0.1: asn1-3.0,
+ crypto-3.8, erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.3 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18044 Application(s): ssl
+
+ Reject unexpected application data in all relevant
+ places for all TLS versions. Also, handle TLS-1.3
+ middlebox compatibility with more care. This will make
+ malicious connections fail early and further, mitigate
+ possible DoS attacks, that would be caught by the
+ handshake timeout.
+
+ Thanks to Aina Toky Rasoamanana and Olivier Levillain
+ from Télécom SudParis for alerting us of the issues in
+ our implementation.
+
+
+ OTP-18173 Application(s): ssl
+
+ The link to crypto:engine_load refered the function
+ with wrong arity.
+
+
+ OTP-18195 Application(s): ssl
+
+ Make sure periodical refresh of CA certificate files
+ repopulates cache properly.
+
+
+ Full runtime dependencies of ssl-10.7.3.3: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.4.README.txt b/release-notes/OTP-24.3.4.4.README.txt
new file mode 100644
index 0000000..970baf7
--- /dev/null
+++ b/release-notes/OTP-24.3.4.4.README.txt
@@ -0,0 +1,47 @@
+Patch Package: OTP 24.3.4.4
+Git Tag: OTP-24.3.4.4
+Date: 2022-08-26
+Trouble Report Id: OTP-18218
+Seq num: ERIERL-855
+System: OTP
+Release: 24
+Application: erts-12.3.2.4
+Predecessor: OTP 24.3.4.3
+
+ Check out the git tag OTP-24.3.4.4, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.4 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.4 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18218 Application(s): erts
+ Related Id(s): ERIERL-855
+
+ Fix bug causing ets:info (and sometimes ets:whereis) to
+ return 'undefined' for an existing table if a
+ concurrent process were doing ets:insert with a long
+ list on the same table.
+
+
+ Full runtime dependencies of erts-12.3.2.4: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.5.README.txt b/release-notes/OTP-24.3.4.5.README.txt
new file mode 100644
index 0000000..e085a05
--- /dev/null
+++ b/release-notes/OTP-24.3.4.5.README.txt
@@ -0,0 +1,143 @@
+Patch Package: OTP 24.3.4.5
+Git Tag: OTP-24.3.4.5
+Date: 2022-09-13
+Trouble Report Id: OTP-18099, OTP-18219, OTP-18222, OTP-18233,
+ OTP-18239
+Seq num: GH-6241, GH-6242, GH-6244
+System: OTP
+Release: 24
+Application: erts-12.3.2.5, ssl-10.7.3.4, stdlib-3.17.2.1
+Predecessor: OTP 24.3.4.4
+
+ Check out the git tag OTP-24.3.4.5, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18239 Application(s): stdlib
+
+ When changing callback module in gen_statem the
+ state_enter calls flag from the old module was used in
+ for the first event in the new module, which could
+ confuse the new module and cause malfunction. This bug
+ has been corrected.
+
+ With this change some sys debug message formats have
+ been modified, which can be a problem for debug code
+ relying on the format.
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.5 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.5 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18222 Application(s): erts
+ Related Id(s): GH-6242, PR-6248
+
+ Fix writing and reading of more than 2 GB in a single
+ read/write operation on macOS. Before this fix
+ attempting to read/write more than 2GB would result in
+ {error,einval}.
+
+
+ Full runtime dependencies of erts-12.3.2.5: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.4 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+ -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18099 Application(s): ssl
+ Related Id(s): PR-6287
+
+ With this change, value of cacertfile option will be
+ adjusted before loading certs from the file.
+ Adjustments include converting relative paths to
+ absolute and converting symlinks to actual file path.
+
+ Thanks to Marcus Johansson
+
+
+ OTP-18219 Application(s): ssl
+ Related Id(s): GH-6241, PR-6249
+
+ Incorrect handling of client middlebox negotiation for
+ TLS-1.3 could result in that a TLS-1.3 server would not
+ use middlebox mode although the client was expecting it
+ too and failing the negotiation with unexpected
+ message.
+
+
+ OTP-18233 Application(s): ssl
+ Related Id(s): GH-6244, PR-6270
+
+ If the "User" process, the process starting the TLS
+ connection, gets killed in the middle of spawning the
+ dynamic connection tree make sure we do not leave any
+ processes behind.
+
+
+ Full runtime dependencies of ssl-10.7.3.4: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.17.2.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-3.17.2.1 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-3.17.2.1 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18239 Application(s): stdlib
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ When changing callback module in gen_statem the
+ state_enter calls flag from the old module was used in
+ for the first event in the new module, which could
+ confuse the new module and cause malfunction. This bug
+ has been corrected.
+
+ With this change some sys debug message formats have
+ been modified, which can be a problem for debug code
+ relying on the format.
+
+
+ Full runtime dependencies of stdlib-3.17.2.1: compiler-5.0,
+ crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.6.README.txt b/release-notes/OTP-24.3.4.6.README.txt
new file mode 100644
index 0000000..9bb2943
--- /dev/null
+++ b/release-notes/OTP-24.3.4.6.README.txt
@@ -0,0 +1,144 @@
+Patch Package: OTP 24.3.4.6
+Git Tag: OTP-24.3.4.6
+Date: 2022-10-05
+Trouble Report Id: OTP-18232, OTP-18245, OTP-18258, OTP-18263,
+ OTP-18266
+Seq num: ERIERL-821, ERIERL-859, GH-6309, GH-6328
+System: OTP
+Release: 24
+Application: asn1-5.0.18.1, dialyzer-4.4.4.1,
+ erts-12.3.2.6, kernel-8.3.2.2, ssl-10.7.3.5
+Predecessor: OTP 24.3.4.5
+
+ Check out the git tag OTP-24.3.4.6, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- asn1-5.0.18.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The asn1-5.0.18.1 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18245 Application(s): asn1
+ Related Id(s): ERIERL-859
+
+ For the per and uper ASN.1 encoding rules, encoding and
+ decoding the SEQUENCE OF and SET OF constructs with
+ 16384 items or more is now supported.
+
+
+ Full runtime dependencies of asn1-5.0.18.1: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-4.4.4.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-4.4.4.1 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18263 Application(s): dialyzer
+ Related Id(s): ERIERL-821
+
+ The --input_list_file option has been added.
+
+
+ Full runtime dependencies of dialyzer-4.4.4.1: compiler-7.0,
+ erts-9.0, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.6 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.6 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18258 Application(s): erts
+ Related Id(s): GH-6309, PR-6324
+
+ Notifications about available distribution data sent to
+ distribution controller processes could be lost.
+ Distribution controller processes can be used when
+ implementing an alternative distribution carrier. The
+ default distribution over tcp was not effected and the
+ bug was also not present on x86/x86_64 platforms.
+
+
+ Full runtime dependencies of erts-12.3.2.6: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.3.2.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.3.2.2 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-12.3 (first satisfied in OTP 24.3)
+
+
+ --- Improvements and New Features ---
+
+ OTP-18232 Application(s): kernel
+ Related Id(s): OTP-17843, PR-6264
+
+ A new function global:disconnect/0 has been introduced
+ with which one can cleanly disconnect a node from all
+ other nodes in a cluster of global nodes.
+
+
+ Full runtime dependencies of kernel-8.3.2.2: crypto-5.0, erts-12.3,
+ sasl-3.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.5 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.5 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+ -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18266 Application(s): ssl
+ Related Id(s): GH-6328
+
+ Fixes handling of symlinks in cacertfile option.
+
+
+ Full runtime dependencies of ssl-10.7.3.5: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.17.2.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.7.README.txt b/release-notes/OTP-24.3.4.7.README.txt
new file mode 100644
index 0000000..0170ecd
--- /dev/null
+++ b/release-notes/OTP-24.3.4.7.README.txt
@@ -0,0 +1,248 @@
+Patch Package: OTP 24.3.4.7
+Git Tag: OTP-24.3.4.7
+Date: 2022-12-27
+Trouble Report Id: OTP-18288, OTP-18296, OTP-18306, OTP-18315,
+ OTP-18317, OTP-18319, OTP-18321, OTP-18325,
+ OTP-18328, OTP-18352, OTP-18357, OTP-18358,
+ OTP-18363, OTP-18365
+Seq num: ERIERL-868, ERIERL-875, ERIERL-879,
+ ERIERL-881, GH-6393, GH-6439, GH-6465,
+ GH-6466
+System: OTP
+Release: 24
+Application: common_test-1.22.1.1, compiler-8.1.1.2,
+ erts-12.3.2.7, kernel-8.3.2.3,
+ mnesia-4.20.4.2, snmp-5.12.0.1,
+ stdlib-3.17.2.2
+Predecessor: OTP 24.3.4.6
+
+ Check out the git tag OTP-24.3.4.7, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- common_test-1.22.1.1 --------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.22.1.1 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18363 Application(s): common_test
+ Related Id(s): ERIERL-879
+
+ Change timeout to infinity for gen_server calls in
+ cth_log_redirect
+
+
+ Full runtime dependencies of common_test-1.22.1.1: compiler-6.0,
+ crypto-3.6, debugger-4.1, erts-7.0, ftp-1.0.0, inets-6.0, kernel-4.0,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.4.2, snmp-5.1.2, ssh-4.0,
+ stdlib-3.5, syntax_tools-1.7, tools-2.8, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.1.1.2 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.1.1.2 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18325 Application(s): compiler, stdlib
+ Related Id(s): GH-6465, GH-6466
+
+ It is not allowed to call functions from guards. The
+ compiler failed to reject a call in a guard when done
+ by constructing a record with a default initialization
+ expression that called a function.
+
+
+ OTP-18365 Application(s): compiler
+
+ Fixed a bug that could cause legal code to fail
+ validation.
+
+
+ Full runtime dependencies of compiler-8.1.1.2: crypto-3.6, erts-11.0,
+ kernel-7.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.7 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.7 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18296 Application(s): erts, kernel
+ Related Id(s): OTP-16464
+
+ Spec for function net:if_names/0 incorrect
+
+
+ OTP-18306 Application(s): erts
+ Related Id(s): GH-6393, PR-6401
+
+ Fix bug in binary_to_term decoding a binary term 2Gbyte
+ or larger.
+
+
+ OTP-18321 Application(s): erts
+
+ Fix list_to_atom/1 for negative code points. Could
+ either return with a positive code point or fail with
+ an incorrect exception.
+
+
+ OTP-18328 Application(s): erts
+ Related Id(s): GH-6439, PR-6440
+
+ Fix bug in binary_to_term decoding a list of length 1G
+ or longer.
+
+
+ Full runtime dependencies of erts-12.3.2.7: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.3.2.3 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.3.2.3 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 24
+ installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-12.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18296 Application(s): erts, kernel
+ Related Id(s): OTP-16464
+
+ Spec for function net:if_names/0 incorrect
+
+
+ OTP-18315 Application(s): kernel
+
+ Missing ctrl option name transation for TOS and TTL (on
+ FreeBSD) when using gen_udp with the 'socket'
+ inet_backend.
+
+
+ OTP-18357 Application(s): kernel
+ Related Id(s): #6509
+
+ The tcp connect option 'bind_to_device' could not be
+ used with inet_backend = 'socket'. 'inet' requires
+ value type binarry() and 'socket' requires value type
+ 'string()'.
+
+
+ OTP-18358 Application(s): kernel
+ Related Id(s): #6528
+
+ Minor issue processing options when calling
+ gen_tcp:connect with a sockaddr() and inet_backend =
+ socket.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18317 Application(s): kernel
+
+ Improve warning message format for gen_tcp_socket.
+
+
+ Full runtime dependencies of kernel-8.3.2.3: crypto-5.0, erts-12.3,
+ sasl-3.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.20.4.2 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.20.4.2 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18288 Application(s): mnesia
+ Related Id(s): ERIERL-868
+
+ Don't fill the logs if mnesia can't connect to all
+ nodes, due to partitioned network.
+
+
+ OTP-18319 Application(s): mnesia
+ Related Id(s): ERIERL-875
+
+ Fixed crash which could happen during startup if too
+ many decisions where sent from remote nodes.
+
+
+ Full runtime dependencies of mnesia-4.20.4.2: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.12.0.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.12.0.1 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18352 Application(s): snmp
+ Related Id(s): ERIERL-881
+
+ Explicitly close the socket(s) when terminating
+ (default-) net-if process.
+
+
+ Full runtime dependencies of snmp-5.12.0.1: crypto-3.3, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-3.17.2.2 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-3.17.2.2 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18325 Application(s): compiler, stdlib
+ Related Id(s): GH-6465, GH-6466
+
+ It is not allowed to call functions from guards. The
+ compiler failed to reject a call in a guard when done
+ by constructing a record with a default initialization
+ expression that called a function.
+
+
+ Full runtime dependencies of stdlib-3.17.2.2: compiler-5.0,
+ crypto-3.3, erts-12.0, kernel-7.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.8.README.txt b/release-notes/OTP-24.3.4.8.README.txt
new file mode 100644
index 0000000..c447552
--- /dev/null
+++ b/release-notes/OTP-24.3.4.8.README.txt
@@ -0,0 +1,73 @@
+Patch Package: OTP 24.3.4.8
+Git Tag: OTP-24.3.4.8
+Date: 2023-01-17
+Trouble Report Id: OTP-18379, OTP-18383, OTP-18388
+Seq num: ERIERL-904, ERIERL-905
+System: OTP
+Release: 24
+Application: erts-12.3.2.8, snmp-5.12.0.2
+Predecessor: OTP 24.3.4.7
+
+ Check out the git tag OTP-24.3.4.8, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.8 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.8 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18383 Application(s): erts
+ Related Id(s): ERIERL-905
+
+ Fixed a bug in selective receive optimization that
+ could crash 32-bit emulators.
+
+
+ OTP-18388 Application(s): erts
+ Related Id(s): OTP-17462, PR-6662
+
+ A race condition which was very rarely triggered could
+ cause the signal queue of a process to become
+ inconsistent causing the runtime system to crash.
+
+
+ Full runtime dependencies of erts-12.3.2.8: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.12.0.2 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.12.0.2 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18379 Application(s): snmp
+ Related Id(s): ERIERL-904
+
+ Single threaded agent crash when vacm table not
+ properly initiated.
+
+
+ Full runtime dependencies of snmp-5.12.0.2: crypto-3.3, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-24.3.4.9.README.txt b/release-notes/OTP-24.3.4.9.README.txt
new file mode 100644
index 0000000..b63d6cb
--- /dev/null
+++ b/release-notes/OTP-24.3.4.9.README.txt
@@ -0,0 +1,170 @@
+Patch Package: OTP 24.3.4.9
+Git Tag: OTP-24.3.4.9
+Date: 2023-02-23
+Trouble Report Id: OTP-18386, OTP-18417, OTP-18421, OTP-18433,
+ OTP-18463, OTP-18467, OTP-18470, OTP-18472
+Seq num: ERIERL-888, GH-6772, GH-6807, GH-6873
+System: OTP
+Release: 24
+Application: compiler-8.1.1.3, erts-12.3.2.9,
+ inets-7.5.3.2, ssh-4.13.2.2, ssl-10.7.3.6
+Predecessor: OTP 24.3.4.8
+
+ Check out the git tag OTP-24.3.4.9, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.1.1.3 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.1.1.3 application can be applied independently of
+ other applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18470 Application(s): compiler
+ Related Id(s): GH-6873, PR-6877
+
+ The compiler would generate incorrect code for the
+ following type of expression:
+
+ Pattern = BoundVar1 = . . . = BoundVarN = Expression
+
+ An exception should be raised if any of the bound
+ variables have different values than Expression. The
+ compiler would generate code that would cause the bound
+ variables to be bound to the value of Expressionwhether
+ the value matched or not.
+
+
+ Full runtime dependencies of compiler-8.1.1.3: crypto-3.6, erts-11.0,
+ kernel-7.0, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- erts-12.3.2.9 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-12.3.2.9 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.3 (first satisfied in OTP 24.3)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18421 Application(s): erts
+ Related Id(s): PR-6806
+
+ process_info(Pid, status) when Pid /= self() could
+ return an erroneous result.
+
+
+ OTP-18463 Application(s): erts
+ Related Id(s): PR-6858
+
+ In rare circumstances, when a process exceeded its
+ allowed heap size set by option max_heap_size, it would
+ not be killed as it should be, but instead enter a kind
+ of zombie state it would never get out of.
+
+
+ Full runtime dependencies of erts-12.3.2.9: kernel-8.3, sasl-3.3,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- inets-7.5.3.2 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-7.5.3.2 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18472 Application(s): inets
+ Related Id(s): DAFH-1592
+
+ With this change, handling of URI to a folder, with
+ missing trailing / and a query component present is
+ fixed.
+
+
+ Full runtime dependencies of inets-7.5.3.2: erts-6.0, kernel-3.0,
+ mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.13.2.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.13.2.2 application can be applied independently of other
+ applications on a full OTP 24 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18386 Application(s): ssh
+ Related Id(s): PR-6611
+
+ With this change, ssh application does not crash when
+ formatting some of info reports for unsuccessful
+ connections.
+
+
+ OTP-18417 Application(s): ssh
+ Related Id(s): ERIERL-888, DAFH-1349, IA18357
+
+ With this change, ssh does not log extensively long
+ messages.
+
+
+ Full runtime dependencies of ssh-4.13.2.2: crypto-5.0, erts-9.0,
+ kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.7.3.6 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.7.3.6 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 24 installation.
+
+ On a full OTP 24 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- public_key-1.11.3 (first satisfied in OTP 24.1.2)
+ -- stdlib-3.17.2.1 (first satisfied in OTP 24.3.4.5)
+
+
+ --- Improvements and New Features ---
+
+ OTP-18433 Application(s): ssl
+ Related Id(s): GH-6772
+
+ Maximize compatibility by ignoring change_cipher_spec
+ during handshake even if middle_box_mode is not
+ negotiated (mandated by client)
+
+
+ OTP-18467 Application(s): ssl
+ Related Id(s): GH-6807
+
+ Move assert of middlebox message after an
+ hello_retry_request to maximize interoperability. Does
+ not changes semantics of the protocol only allows
+ unexpected message delay from server.
+
+
+ Full runtime dependencies of ssl-10.7.3.6: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.17.2.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.0.1.README.txt b/release-notes/OTP-25.0.1.README.txt
new file mode 100644
index 0000000..6ff8957
--- /dev/null
+++ b/release-notes/OTP-25.0.1.README.txt
@@ -0,0 +1,317 @@
+Patch Package: OTP 25.0.1
+Git Tag: OTP-25.0.1
+Date: 2022-06-09
+Trouble Report Id: OTP-18010, OTP-18046, OTP-18087, OTP-18094,
+ OTP-18100, OTP-18105, OTP-18106, OTP-18110,
+ OTP-18112, OTP-18120, OTP-18122, OTP-18123,
+ OTP-18124, OTP-18128, OTP-18129, OTP-18132,
+ OTP-18136
+Seq num: ERIERL-811, GH-5950, GH-5961, GH-5985,
+ GH-5994, GH-6000, GH-6015
+System: OTP
+Release: 25
+Application: crypto-5.1.1, dialyzer-5.0.1, erts-13.0.1,
+ kernel-8.4.1, mnesia-4.21.1, ssh-4.14.1,
+ ssl-10.8.1, stdlib-4.0.1
+Predecessor: OTP 25.0
+
+ Check out the git tag OTP-25.0.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- crypto-5.1.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.1.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18046 Application(s): crypto
+
+ Note in the documentation that MODP (rfc3526) groups
+ and OpenSSL 3.0 can give an error if a call to
+ crypto:generate_key/2 specifies a key length, and that
+ length is to small.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18010 Application(s): crypto
+
+ The cmac now uses only the 3.0 API
+
+
+ OTP-18132 Application(s): crypto
+
+ Documentation is now updated with which OpenSSL
+ cryptolib versions that OTP currently is tested.
+
+
+ Full runtime dependencies of crypto-5.1.1: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.0.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-5.0.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18120 Application(s): dialyzer
+
+ Fixed the documentation for the missing_return and
+ extra_return options.
+
+
+ Full runtime dependencies of dialyzer-5.0.1: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.0.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.0.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.4.1 (first satisfied in OTP 25.0.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18105 Application(s): erts
+ Related Id(s): OTP-16982, PR-6003
+
+ A spawn_reply signal from a remote node could be
+ delayed and be delivered after other signals from the
+ newly spawned process.
+
+ When this bug triggered, the connection to the node
+ where the process was spawned sometimes could be taken
+ down due to the bug. The following error message would
+ then be logged if this happened: Missing 'spawn_reply'
+ signal from the node <RemoteNode> detected by <Pid> on
+ the node <LocalNode>. The node <RemoteNode> probably
+ suffers from the bug with ticket id OTP-17737.
+
+ This bug only affected processes which had enabled
+ off_heap message_queue_data and parallel reception of
+ signals had been automatically enabled.
+
+ This bug was introduced in OTP 25.0, ERTS version 13.0.
+
+
+ OTP-18106 Application(s): erts
+ Related Id(s): PR-5992
+
+ Fixed type spec of erlang:system_info(dist_ctrl).
+
+
+ OTP-18123 Application(s): erts
+ Related Id(s): GH-5994
+
+ The zlib built in to the runtime system has been
+ updated to version 1.2.12. (Note that on most
+ platforms, the platform's own zlib is used.)
+
+
+ OTP-18124 Application(s): erts, kernel
+ Related Id(s): OTP-17558, PR-6032
+
+ The erlang:is_alive() BIF could return true before
+ configured distribution service was available. This bug
+ was introduced in OTP 25.0 ERTS version 13.0.
+
+ The erlang:monitor_node() and erlang:monitor() BIFs
+ could erroneously fail even though configured
+ distribution service was available. This occurred if
+ these BIFs were called after the distribution had been
+ started using dynamic node name assignment but before
+ the name had been assigned.
+
+
+ Full runtime dependencies of erts-13.0.1: kernel-8.4.1, sasl-3.3,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.4.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.4.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-13.0.1 (first satisfied in OTP 25.0.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18112 Application(s): kernel
+ Related Id(s): ERIERL-811
+
+ The DNS resolver inet_res has been fixed to ignore
+ trailing dot difference in the request domain between
+ the sent request and the received response, when
+ validating a response.
+
+
+ OTP-18122 Application(s): kernel
+ Related Id(s): GH-6015, PR-6020
+
+ A bug in inet_res has been fixed where a missing
+ internal {ok,_} wrapper caused inet_res:resolve/* to
+ return a calculated host name instead of an `{ok,Msg}
+ tuple, when resolving an IP address or a host name that
+ is an IP address string.
+
+
+ OTP-18124 Application(s): erts, kernel
+ Related Id(s): OTP-17558, PR-6032
+
+ The erlang:is_alive() BIF could return true before
+ configured distribution service was available. This bug
+ was introduced in OTP 25.0 ERTS version 13.0.
+
+ The erlang:monitor_node() and erlang:monitor() BIFs
+ could erroneously fail even though configured
+ distribution service was available. This occurred if
+ these BIFs were called after the distribution had been
+ started using dynamic node name assignment but before
+ the name had been assigned.
+
+
+ OTP-18136 Application(s): kernel
+
+ Added the missing mandatory address/0 callback in the
+ gen_tcp_dist example.
+
+
+ Full runtime dependencies of kernel-8.4.1: crypto-5.0, erts-13.0.1,
+ sasl-3.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.21.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.21.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18128 Application(s): mnesia
+ Related Id(s): PR-6013
+
+ Fixed add_table_copy which could leave a table lock if
+ the receiving node went down during the operation.
+
+
+ Full runtime dependencies of mnesia-4.21.1: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.14.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.14.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18094 Application(s): ssh
+
+ Binaries can be limited in logs with the parameter
+ max_log_item_len. The default value is 500 bytes.
+
+
+ Full runtime dependencies of ssh-4.14.1: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.8.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-10.8.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18087 Application(s): ssl
+ Related Id(s): GH-5961
+
+ When a TLS-1.3 enabled client tried to talk to a
+ TLS-1.2 server that coalesces TLS-1.2 handshake message
+ over one TLS record, the connection could fail due to
+ some message being handled in the wrong state, this has
+ been fixed.
+
+
+ OTP-18100 Application(s): ssl
+ Related Id(s): GH-5985
+
+ Correctly handles supported protocol version change
+ from default to something else by sni_fun supplied to
+ ssl:handshake/[2,3] together with a TCP-socket (so
+ called upgrade).
+
+
+ OTP-18129 Application(s): ssl
+ Related Id(s): GH-5950
+
+ Also, TLS-1.3 should respond with a protocol version
+ alert if previous versions, that are supported but not
+ configured, are attempted.
+
+
+ Full runtime dependencies of ssl-10.8.1: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.0.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-4.0.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18110 Application(s): stdlib
+ Related Id(s): GH-6000
+
+ In the initial release of Erlang/OTP 25, the expression
+ bound to the _ pseudo-field in a record initialization
+ would always be evaluated once, even if all other
+ fields in the record were explicitly initialized. That
+ would break the use case of binding the expression
+ error(...) to _ in order to get an exception if not all
+ fields were initialized.
+
+ The behavior of binding to _ has been reverted to the
+ pre-OTP 25 behavior, that is, to not evaluate the
+ expression if all fields have been bound to explicit
+ values.
+
+
+ Full runtime dependencies of stdlib-4.0.1: compiler-5.0, crypto-4.5,
+ erts-12.0, kernel-8.4, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.0.2.README.txt b/release-notes/OTP-25.0.2.README.txt
new file mode 100644
index 0000000..16a6f32
--- /dev/null
+++ b/release-notes/OTP-25.0.2.README.txt
@@ -0,0 +1,68 @@
+Patch Package: OTP 25.0.2
+Git Tag: OTP-25.0.2
+Date: 2022-06-21
+Trouble Report Id: OTP-18143, OTP-18145
+Seq num:
+System: OTP
+Release: 25
+Application: erts-13.0.2, ssl-10.8.2
+Predecessor: OTP 25.0.1
+
+ Check out the git tag OTP-25.0.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-13.0.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.0.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.4.1 (first satisfied in OTP 25.0.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18143 Application(s): erts
+
+ On computers with the ARM64 (AArch64) architecture
+ (such as Apple Silicon Macs) a rem expression followed
+ by a div expression with the same operands could
+ evaluate to the wrong result if the result of the rem
+ expression was unused.
+
+
+ Full runtime dependencies of erts-13.0.2: kernel-8.4.1, sasl-3.3,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.8.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-10.8.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18145 Application(s): ssl
+
+ Improved handling of unexpected messages during the
+ handshake, taking the right action for unexpected
+ messages.
+
+
+ Full runtime dependencies of ssl-10.8.2: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.0.3.README.txt b/release-notes/OTP-25.0.3.README.txt
new file mode 100644
index 0000000..84e69de
--- /dev/null
+++ b/release-notes/OTP-25.0.3.README.txt
@@ -0,0 +1,157 @@
+Patch Package: OTP 25.0.3
+Git Tag: OTP-25.0.3
+Date: 2022-07-15
+Trouble Report Id: OTP-18164, OTP-18169, OTP-18170, OTP-18173,
+ OTP-18175, OTP-18177
+Seq num:
+System: OTP
+Release: 25
+Application: erts-13.0.3, ssl-10.8.3
+Predecessor: OTP 25.0.2
+
+ Check out the git tag OTP-25.0.3, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-13.0.3 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.0.3 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.4.1 (first satisfied in OTP 25.0.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18164 Application(s): erts
+ Related Id(s): PR-6114
+
+ Distributed exit signals could be lost under the
+ following conditions:
+
+ -- An exit signal from a parent process to a child
+ process was lost if:
+
+ --- the parent process terminated before the spawn
+ request that created the child had completed,
+
+ --- the spawn request set up a link between parent and
+ child
+
+ --- the spawn request was distributed, and
+
+ --- the exit reason was larger than one machine word.
+
+ -- Loss of a connection over which a not yet completed
+ spawn request was ongoing could cause loss of exit
+ signals. Such loss of exit signals was very rare.
+ Besides the above described connection loss also the
+ following conditions had to be satisfied:
+
+ --- The spawn request that was interrupted by the
+ connection loss also had to set up a link between the
+ parent process and the child process.
+
+ --- The parent process that issued the spawn request
+ also had to be terminating while the spawn request was
+ interrupted by the connection loss.
+
+ --- The same parent process also had to have made other
+ spawn requests to other nodes than to the node to which
+ the connection was lost.
+
+ --- These spawn requests to the other nodes also had to
+ set up links.
+
+ --- These spawn requests to the other nodes also had to
+ be not yet completed at the time of the connection
+ loss. That is, the spawn reply from the child process
+ had not yet reached the parent process.
+
+ If all the conditions above were met, exit signals to
+ the children spawned due to the above described spawn
+ requests to other nodes *could* be lost.
+
+ The above bug also caused a significant memory leak
+ when it was triggered since the destruction of the
+ parent process never completed.
+
+
+ OTP-18169 Application(s): erts
+ Related Id(s): PR-6134
+
+ A race could cause process_info(Pid, message_queue_len)
+ on other processes to return invalid results.
+
+
+ OTP-18170 Application(s): erts
+ Related Id(s): PR-6135
+
+ Fixed reduction counting for handling process system
+ tasks.
+
+
+ OTP-18175 Application(s): erts
+ Related Id(s): PR-6142
+
+ Priority elevation of terminating processes did not
+ work which could cause execution of such processes to
+ be delayed.
+
+
+ OTP-18177 Application(s): erts
+ Related Id(s): PR-6150
+
+ An unlink operation made by a process that terminated
+ before the unlink operation completed, i.e., before it
+ had received an unlink-ack signal from the linked
+ process, caused an exit signal to erroneously be sent
+ from the terminating process to the process being
+ unlinked. This exit signal would most often be ignored
+ by the receiver, but if the receiver of the exit signal
+ concurrently set up a new link, it could receive the
+ exit signal with the actual exit reason of the
+ terminating process instead of a noproc exit reason. It
+ is however very hard to detect that this has happened
+ and has no obvious negative consequences, so it should
+ be considered harmless.
+
+ A distributed unlink-ack signal received by a
+ terminating process was also not properly removed which
+ could cause a minor memory leak.
+
+
+ Full runtime dependencies of erts-13.0.3: kernel-8.4.1, sasl-3.3,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.8.3 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-10.8.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18173 Application(s): ssl
+
+ The link to crypto:engine_load refered the function
+ with wrong arity.
+
+
+ Full runtime dependencies of ssl-10.8.3: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.0.4.README.txt b/release-notes/OTP-25.0.4.README.txt
new file mode 100644
index 0000000..9ec237c
--- /dev/null
+++ b/release-notes/OTP-25.0.4.README.txt
@@ -0,0 +1,84 @@
+Patch Package: OTP 25.0.4
+Git Tag: OTP-25.0.4
+Date: 2022-08-18
+Trouble Report Id: OTP-18190, OTP-18197, OTP-18198
+Seq num: GH-6129, GH-6165, GH-6185
+System: OTP
+Release: 25
+Application: erts-13.0.4, kernel-8.4.2
+Predecessor: OTP 25.0.3
+
+ Check out the git tag OTP-25.0.4, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-13.0.4 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.0.4 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- kernel-8.4.1 (first satisfied in OTP 25.0.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18190 Application(s): erts
+ Related Id(s): GH-6185, PR-6209
+
+ The monitor/3 BIF did not apply options to the created
+ monitor if the target process or port did not exist.
+ That is, the corresponding down message would get a
+ `DOWN` tag even if a custom tag had been set, and the
+ returned reference was not an alias even if the alias
+ option had been passed.
+
+
+ OTP-18197 Application(s): erts
+ Related Id(s): GH-6165, PR-6213
+
+ The erlang:monotonic_time/1, erlang:system_time/1,
+ erlang:time_offset/1, and os:system_time/1 BIFs
+ erroneously failed when passed the argument native.
+
+
+ Full runtime dependencies of erts-13.0.4: kernel-8.4.1, sasl-3.3,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.4.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.4.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-13.0.1 (first satisfied in OTP 25.0.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18198 Application(s): kernel
+ Related Id(s): GH-6129, PR-6216
+
+ A call to net_kernel:setopts(new, Opts) at the same
+ time as a connection was being set up could cause a
+ deadlock between the net_kernel process and the process
+ setting up the connection.
+
+
+ Full runtime dependencies of kernel-8.4.2: crypto-5.0, erts-13.0.1,
+ sasl-3.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.0.README.txt b/release-notes/OTP-25.0.README.txt
new file mode 100644
index 0000000..3c6bc4d
--- /dev/null
+++ b/release-notes/OTP-25.0.README.txt
@@ -0,0 +1,3182 @@
+Inital Release: OTP 25.0
+Git Tag: OTP-25.0
+Date: 2022-05-18
+Trouble Report Id: OTP-15991, OTP-15993, OTP-16464, OTP-16607,
+ OTP-16702, OTP-16852, OTP-16982, OTP-17119,
+ OTP-17151, OTP-17224, OTP-17304, OTP-17318,
+ OTP-17323, OTP-17351, OTP-17370, OTP-17414,
+ OTP-17447, OTP-17471, OTP-17479, OTP-17480,
+ OTP-17481, OTP-17504, OTP-17518, OTP-17523,
+ OTP-17524, OTP-17544, OTP-17550, OTP-17551,
+ OTP-17554, OTP-17555, OTP-17556, OTP-17558,
+ OTP-17561, OTP-17562, OTP-17566, OTP-17569,
+ OTP-17589, OTP-17592, OTP-17608, OTP-17612,
+ OTP-17617, OTP-17627, OTP-17630, OTP-17636,
+ OTP-17644, OTP-17654, OTP-17660, OTP-17661,
+ OTP-17667, OTP-17669, OTP-17676, OTP-17681,
+ OTP-17682, OTP-17683, OTP-17684, OTP-17685,
+ OTP-17705, OTP-17710, OTP-17717, OTP-17720,
+ OTP-17728, OTP-17729, OTP-17733, OTP-17752,
+ OTP-17753, OTP-17755, OTP-17758, OTP-17762,
+ OTP-17772, OTP-17778, OTP-17779, OTP-17784,
+ OTP-17798, OTP-17802, OTP-17810, OTP-17819,
+ OTP-17820, OTP-17821, OTP-17824, OTP-17826,
+ OTP-17832, OTP-17836, OTP-17841, OTP-17842,
+ OTP-17846, OTP-17855, OTP-17858, OTP-17860,
+ OTP-17866, OTP-17869, OTP-17870, OTP-17878,
+ OTP-17881, OTP-17882, OTP-17884, OTP-17885,
+ OTP-17889, OTP-17890, OTP-17892, OTP-17894,
+ OTP-17897, OTP-17899, OTP-17901, OTP-17908,
+ OTP-17909, OTP-17910, OTP-17911, OTP-17915,
+ OTP-17920, OTP-17921, OTP-17923, OTP-17925,
+ OTP-17927, OTP-17930, OTP-17935, OTP-17939,
+ OTP-17945, OTP-17950, OTP-17951, OTP-17953,
+ OTP-17958, OTP-17961, OTP-17964, OTP-17965,
+ OTP-17968, OTP-17969, OTP-17974, OTP-17976,
+ OTP-17977, OTP-17980, OTP-17984, OTP-17985,
+ OTP-17986, OTP-17988, OTP-17990, OTP-17991,
+ OTP-17996, OTP-17997, OTP-17999, OTP-18000,
+ OTP-18001, OTP-18003, OTP-18006, OTP-18008,
+ OTP-18009, OTP-18011, OTP-18012, OTP-18014,
+ OTP-18015, OTP-18020, OTP-18033, OTP-18034,
+ OTP-18035, OTP-18036, OTP-18038, OTP-18045,
+ OTP-18047, OTP-18063, OTP-18067, OTP-18068,
+ OTP-18070, OTP-18079, OTP-18083, OTP-18084,
+ OTP-18085, OTP-18086, OTP-18087, OTP-18088,
+ OTP-18092
+Seq num: ERIERL-590, ERIERL-663, ERIERL-728,
+ ERIERL-760, ERIERL-792, ERIERL-798, ERL-1347,
+ GH-2375, GH-2690, GH-4143, GH-4492, GH-4622,
+ GH-4673, GH-4759, GH-4784, GH-4819, GH-4853,
+ GH-4915, GH-4965, GH-4968, GH-4971, GH-5016,
+ GH-5071, GH-5093, GH-5094, GH-5140, GH-5204,
+ GH-5214, GH-5276, GH-5297, GH-5368, GH-5376,
+ GH-5379, GH-5402, GH-5403, GH-5463, GH-5513,
+ GH-5606, GH-5617, GH-5655, GH-5683, GH-5728,
+ GH-5760, GH-5767, GH-5780, GH-5782, GH-5801,
+ GH-5828, GH-5903, GH-5961
+System: OTP
+Release: 25
+Application: asn1-5.0.19, common_test-1.23, compiler-8.2,
+ crypto-5.1, debugger-5.3, dialyzer-5.0,
+ diameter-2.2.6, edoc-1.2, erl_docgen-1.3,
+ erl_interface-5.3, erts-13.0, eunit-2.7.1,
+ inets-8.0, jinterface-1.13, kernel-8.4,
+ megaco-4.4, mnesia-4.21, observer-2.12,
+ odbc-2.14, parsetools-2.4, public_key-1.13,
+ runtime_tools-1.19, sasl-4.2, snmp-5.13,
+ ssh-4.14, ssl-10.8, stdlib-4.0,
+ syntax_tools-3.0, tools-3.5.3, wx-2.2,
+ xmerl-1.3.29
+Predecessor: OTP
+
+ Check out the git tag OTP-25.0, and build a full OTP system including
+ documentation.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-15991 Application(s): erts, stdlib
+ Related Id(s): PR-5208
+
+ Users can now configure ETS tables with the
+ {write_concurrency, auto} option. This option forces
+ tables to automatically change the number of locks that
+ are used at run-time depending on how much concurrency
+ is detected. The {decentralized_counters, true} option
+ is enabled by default when {write_concurrency, auto} is
+ active.
+
+ Benchmark results comparing this option with the other
+ ETS optimization options are available here:
+
+ https://erlang.org/bench/ets_bench_result_lock_config.html
+
+
+ OTP-15993 Application(s): ssl
+ Related Id(s): GH-4143
+
+ With this change, it is possible to provide several
+ certificates. Most appropriate will be selected based
+ on negotiated properties.
+
+
+ OTP-16702 Application(s): compiler, erts
+
+ To enable more optimizations, BEAM files compiled with
+ OTP 21 and earlier cannot be loaded in OTP 25.
+
+
+ OTP-16982 Application(s): erts
+ Related Id(s): PR-5020
+
+ The signal queue of a process with
+ message_queue_data=off_heap* has been optimized to
+ allow parallel reception of signals from multiple
+ processes.
+
+ This is possible to do as Erlang only guarantees that
+ signals (i.e., message signals and non-message signals)
+ sent from a single process to another process are
+ ordered in send order. However, there are no ordering
+ guarantees for signals sent from different processes to
+ a particular process. Therefore, several processes can
+ send signals in parallel to a specific process without
+ synchronizing with each other. However, such signal
+ sending was previously always serialized as the senders
+ had to acquire the lock for the outer signal queue of
+ the receiving process. This parallel signal sending
+ optimization yields much better scalability for signal
+ sending than what was previously possible, see
+ https://erlang.org/bench/sigq_bench_result.html for
+ benchmark results.
+
+ * Information about how to enable the
+ message_queue_data=off_heap setting can be found in the
+ documentation of the function erlang:process_flag/2.
+
+
+ OTP-17119 Application(s): erts
+ Related Id(s): PR-4869
+
+ The JIT now works for 64-bit ARM processors.
+
+
+ OTP-17151 Application(s): compiler, erts
+ Related Id(s): ERIERL-590, PR-5479
+
+ Added support for the compile attribute -nifs() to
+ empower compiler and loader with information about
+ which functions may be overridden as NIFs by
+ erlang:load_nif/2. It is recommended to use this
+ attribute in all modules that load NIF libraries.
+
+
+ OTP-17351 Application(s): stdlib
+ Related Id(s): GH-4673, PR-4952
+
+ The format_status/2 callback for gen_server, gen_statem
+ and gen_event has been deprecated in favor of the new
+ format_status/1 callback.
+
+ The new callback adds the possibility to limit and
+ change many more things than the just the state, such
+ as the last received message, the reason for
+ terminating and more events specific to each type of
+ behavior. See the respective modules documentation for
+ more details.
+
+
+ OTP-17481 Application(s): stdlib
+ Related Id(s): PR-4811
+
+ The timer module has been modernized and made more
+ efficient, which makes the timer server less
+ susceptible to being overloaded. The timer:sleep/1
+ function now accepts an arbitrarily large integer.
+
+
+ OTP-17504 Application(s): compiler, erts
+ Related Id(s): GH-4971, PR-5281, PR-5752
+
+ When binary construction using the binary syntax fails,
+ the error message printed in the shell and by
+ erl_error:format_exception/3,4 will contain more
+ detailed information about what went wrong.
+
+
+ OTP-17684 Application(s): compiler, erts
+ Related Id(s): PR-5316, PR-5664
+
+ The Erlang compiler now includes type information in
+ BEAM files, and the JIT can now use that type
+ information to do optimizations such as eliminating or
+ simplifying type tests.
+
+
+ OTP-17705 Application(s): compiler
+ Related Id(s): PR-5411
+
+ The maybe ... end construction proposed in EEP-49 has
+ been implemented. It can simplify complex code where
+ otherwise deeply nested cases would have to be used.
+
+ To enable maybe, give the option -enable-feature
+ maybe_expr to erlc or add -feature(maybe_expr, enable).
+ inside the module.
+
+
+ OTP-17710 Application(s): otp
+ Related Id(s): PR-5597
+
+ A new DEVELOPMENT how-to guide has been added that
+ describes how to build and test Erlang/OTP when fixing
+ bugs or developing new functionality.
+
+ The makefile system has been extended to make it easier
+ to run tests at different granulates directly from the
+ command line. This new functionality is described in
+ the development how-to.
+
+ Using the extended makefile system, testing has been
+ added to the Github actions run for each opened PR so
+ that more bugs are caught earlier when bug fixes and
+ new features are proposed.
+
+
+ OTP-17720 Application(s): common_test, kernel, stdlib
+ Related Id(s): PR-5162
+
+ The new module peer supersedes the slave module. The
+ slave module is now deprecated and will be removed in
+ OTP 27.
+
+ peer contains an extended and more robust API for
+ starting erlang nodes.
+
+
+ OTP-17784 Application(s): kernel, stdlib
+ Related Id(s): PR-5792
+
+ In order to make it easier for the user to manage
+ multiple outstanding asynchronous call requests, new
+ functionality utilizing request identifier collections
+ have been introduced in erpc, gen_server, gen_statem,
+ and gen_event.
+
+
+ OTP-17798 Application(s): public_key
+ Related Id(s): GH-5760
+
+ Added functions to retrieve OS provided CA-certs.
+
+
+ OTP-17841 Application(s): compiler, erts
+ Related Id(s): PR-5694
+
+ When a record matching or record update fails, a
+ {badrecord,ExpectedRecordTag} exception used to be
+ raised. In this release, the exception has been changed
+ to {badrecord,ActualValue}, where ActualValue is the
+ actual that was found instead of the expected record.
+
+
+ OTP-17911 Application(s): kernel
+ Related Id(s): OTP-17843, PR-5611, PR-5687
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As of OTP 25, global will by default prevent
+ overlapping partitions due to network issues by
+ actively disconnecting from nodes that reports that
+ they have lost connections to other nodes. This will
+ cause fully connected partitions to form instead of
+ leaving the network in a state with overlapping
+ partitions.
+
+ Prevention of overlapping partitions can be disabled
+ using the prevent_overlapping_partitions kernel(6)
+ parameter, making global behave like it used to do.
+ This is, however, problematic for all applications
+ expecting a fully connected network to be provided,
+ such as for example mnesia, but also for global itself.
+ A network of overlapping partitions might cause the
+ internal state of global to become inconsistent. Such
+ an inconsistency can remain even after such partitions
+ have been brought together to form a fully connected
+ network again. The effect on other applications that
+ expects that a fully connected network is maintained
+ may vary, but they might misbehave in very subtle hard
+ to detect ways during such a partitioning. Since you
+ might get hard to detect issues without this fix, you
+ are strongly advised not to disable this fix. Also note
+ that this fix has to be enabled on all nodes in the
+ network in order to work properly.
+
+
+ OTP-17953 Application(s): stdlib
+ Related Id(s): PR-5621
+
+ Added filelib:ensure_path/1 that ensures that all
+ directories for the given path exists (unlike
+ filelib:ensure_dir/1, which will not create the last
+ segment of the path).
+
+
+ OTP-17969 Application(s): stdlib
+ Related Id(s): PR-5588
+
+ The functions groups_from_list/2 and groups_from_list/3
+ have been added to the maps module.
+
+
+ OTP-17977 Application(s): stdlib
+ Related Id(s): GH-5606, PR-5766
+
+ The functions uniq/1 and uniq/2 for removing duplicates
+ have been added to the lists module.
+
+
+ OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools
+
+ Added support for configurable features as described in
+ EEP-60. Features can be enabled/disabled during
+ compilation with options (-enable-feature Feature,
+ -disable-feature Feature and +{feature, Feature,
+ enable|disable}) to erlc as well as with directives
+ (-feature(Feature, enable|disable).) in the file.
+ Similar options can be used to erl for
+ enabling/disabling features allowed at runtime. The new
+ maybe expression (EEP-49) is fully supported as the
+ feature maybe_expr. The features support is documented
+ in the reference manual.
+
+
+ OTP-18011 Application(s): stdlib
+
+ A new PRNG have been added to the rand module: mwc59
+ which has been developed in collaboration with
+ Sebastiano Vigna. It is intended for applications that
+ need really fast pseudo-random numbers, and it comes
+ with two output value scramblers, one fast and one
+ thorough.
+
+ Two internal functions for the exsp generator have also
+ been exported so they can be used outside the rand
+ plug-in framework to shave off some overhead.
+
+ The internal splitmix64 generator has also been
+ exported which can be useful for seeding other kinds of
+ PRNG:s than its own.
+
+
+ OTP-18086 Application(s): crypto
+ Related Id(s): OTP-16282, OTP-16643, OTP-16644,
+ OTP-17701, OTP-17702, OTP-17704
+
+ The cryptolib API deprecated in OpenSSL 3.0 is now no
+ longer used with a few exceptions listed below.
+
+ Although OpenSSL 3.0.x itself is stable, its usage in
+ OTP/crypto should still not be considered suitable for
+ production code.
+
+ The use of ENGINEs is still disabled by default when
+ using 3.0.
+
+ Deprecated functions are still called in the
+ otp_test_engine.c (only used in tests), in mac.c
+ (EVP_PKEY_new_CMAC_key) and five function calls in ec.c
+ (EVP_PKEY_assign, EC_KEY_get_conv_form,
+ EVP_PKEY_get1_EC_KEY, EC_KEY_get0_group and
+ EC_KEY_set_public_key).
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-17544 Application(s): stdlib
+ Related Id(s): PR-5008
+
+ Fix gen_server:call with the first argument as self()
+ to throw an error instead of failing with a timeout.
+
+ The same fix has also been done for gen_statem:call/3,
+ gen_event:sync_notify/2 and any other functionality
+ relying on the internal gen:call/3 function.
+
+ A similar fix was also done when using io:format/2 and
+ the current group_leader was set to the current
+ process.
+
+
+ OTP-17569 Application(s): erts
+ Related Id(s): PR-4793
+
+ The growth rate of writable binaries has been adjusted
+ to only increase by 20% after 16MB in size. Before this
+ change the size would always double.
+
+ This change may degrade write performance of large
+ binaries.
+
+
+ OTP-17627 Application(s): inets, stdlib
+
+ Adjust uri_string:normalize behavior for URIs with
+ undefined port (URI string with a port colon but no
+ port value or URI map with port => undefined).
+
+ Remove redundant normalization from http_request
+ module.
+
+ Before this change, normalize would not remove port
+ subcomponent in such cases and could for example return
+ "http://localhost:" URI.
+
+
+ OTP-17644 Application(s): dialyzer
+ Related Id(s): PR-5223
+
+ Fixed a bug that could cause the type analyzer to enter
+ an infinite loop.
+
+
+ OTP-17681 Application(s): kernel
+ Related Id(s): PR-5307
+
+ The most, or at least the most used, rpc operations now
+ require erpc support in order to communicate with other
+ Erlang nodes. erpc was introduced in OTP 23. That is,
+ rpc operations against Erlang nodes of releases prior
+ to OTP 23 will fail.
+
+
+ OTP-17683 Application(s): erts
+ Related Id(s): PR-5306
+
+ Distributed spawn operations now require distributed
+ spawn_request() support. Distributed spawn_request()
+ was introduced in OTP 23. That is, distributed spawn
+ operations against Erlang nodes of releases prior to
+ OTP 23 will fail.
+
+
+ OTP-17821 Application(s): dialyzer
+ Related Id(s): GH-5016, OTP-17554, PR-5408
+
+ The default location of the plt has been changed from
+ $HOME to filename:basedir(user_cache,"erlang").
+
+
+ OTP-17866 Application(s): inets
+
+ This change removes deprecated functions:
+ http_uri:parse/1, http_uri:parse/2 and
+ http_uri:scheme_defaults/0.
+
+ This change delays until OTP-26 removal of deprecated
+ functions: http_uri:encode/1 and http_uri:decode/1.
+
+ This change marks httpd_util:decode_hex/1 and
+ httpd_util:encode_hex/1 as deprecated.
+
+
+ OTP-17889 Application(s): inets
+
+ Fixed typo in Reason term returned from
+ httpc_handler:handle_http_body.
+
+ After this change, could_not_establish_ssl_tunnel atom
+ is returned within Reason term.
+
+
+ OTP-17894 Application(s): syntax_tools
+ Related Id(s): PR-5509
+
+ The erl_syntax_lib:analyze_attribute/1 function would
+ return {Name, {Name, Value}} instead of {Name, Value}
+ (which is the documented return value).
+
+
+ OTP-17911 Application(s): kernel
+ Related Id(s): OTP-17843, PR-5611, PR-5687
+
+ *** HIGHLIGHT ***
+
+ As of OTP 25, global will by default prevent
+ overlapping partitions due to network issues by
+ actively disconnecting from nodes that reports that
+ they have lost connections to other nodes. This will
+ cause fully connected partitions to form instead of
+ leaving the network in a state with overlapping
+ partitions.
+
+ Prevention of overlapping partitions can be disabled
+ using the prevent_overlapping_partitions kernel(6)
+ parameter, making global behave like it used to do.
+ This is, however, problematic for all applications
+ expecting a fully connected network to be provided,
+ such as for example mnesia, but also for global itself.
+ A network of overlapping partitions might cause the
+ internal state of global to become inconsistent. Such
+ an inconsistency can remain even after such partitions
+ have been brought together to form a fully connected
+ network again. The effect on other applications that
+ expects that a fully connected network is maintained
+ may vary, but they might misbehave in very subtle hard
+ to detect ways during such a partitioning. Since you
+ might get hard to detect issues without this fix, you
+ are strongly advised not to disable this fix. Also note
+ that this fix has to be enabled on all nodes in the
+ network in order to work properly.
+
+
+ OTP-17920 Application(s): ssh
+
+ The representation of Edward curves (ed25519 and ed448)
+ inside ssh had a temporary representation (ed_pri and
+ ed_pub).
+
+ That is now changed to the public_key form. See the
+ manual for more information.
+
+
+ OTP-17921 Application(s): public_key
+
+ The deprecated public_key functions ssh_decode/2,
+ ssh_encode/2, ssh_hostkey_fingerprint/1 and
+ ssh_hostkey_fingerprint/2 are removed.
+
+ They are replaced by ssh_file:decode/2,
+ ssh_file:encode/2, ssh:hostkey_fingerprint/1 and
+ ssh:hostkey_fingerprint/2 respectively.
+
+ Note that the decode/2 and encode/2 are not exact
+ replacement functions, some minor changes may be
+ needed. Se the manual for more information.
+
+
+ OTP-17925 Application(s): stdlib
+ Related Id(s): PR-5631
+
+ The non-local function handler for the erl_eval can now
+ be called with either two or three arguments. When
+ called with three arguments, the first argument is the
+ annotation for the node in the abstract format.
+
+ All errors during evaluation will now be passed through
+ erlang:raise/3. If the restricted shell is active and
+ it does not let erlang:raise/3 through, evaluation
+ errors will be printed in less clear way. See the
+ documentation for restricted shell in shell.
+
+
+ OTP-17950 Application(s): wx
+
+ Added aux1Down and aux2Down fields to the wxMouseState
+ record. Since one record have been changed a
+ recompilation of user code might be required.
+
+
+ OTP-17965 Application(s): crypto
+
+ The information in error messages are increased.
+
+ Previously the error was signaled with en error class
+ exception badarg, notsup or error, and also in some
+ more ways like an other exception or a return value in
+ a non-standardized format.
+
+ Now it is an error-class exception
+ {notsup|badarg|error, InfoFromCfile,
+ Description::string()}.
+
+ The InfoFromCfile is a term with name and line number
+ of the C-file where the error was found. This is
+ primarily intended for a crypto maintainer or an
+ advanced user to find the cause of complicated errors -
+ maybe in crypto itself. The contents of that term might
+ be changed in the future.
+
+ The Description is a clear text string that describes
+ the error. In case of badarg and notsup the intention
+ is that it should help the user to find the cause ("Bad
+ key size" as an example). Specially for some error that
+ are unlikely, the string may not be possible to
+ understand without deep knowledge of the underlying
+ cryptolib. Such messages are intended for a crypto
+ maintainer.
+
+ The first element on call stack (the S in try ... catch
+ error:E:S .... end) gives more information like the
+ actual argument list in the call of crypto and the
+ argument number (if possible) in the call to the NIF
+ inside crypto.
+
+ The functions in crypto affected by this change are:
+
+ sign/4, sign/5, verify/5, verify/6,
+
+ generate_key/2, generate_key/3, compute_key/4,
+
+ hash/2, hash/4, hash_init/1, hash_update/4,
+ hash_final/1,
+
+ mac/3,4, mac_init/3, mac_update/2, mac_final/2,
+
+ pbkdf2_hmac/5,
+
+ public_encrypt/4, private_decrypt/4, private_encrypt/4,
+ public_decrypt/4
+
+ This schema was introduced earlier in:
+
+ crypto_init/3, crypto_init/4, crypto_update/2,
+ crypto_final/1, crypto_get_data/1,
+
+ crypto_one_time/4, crypto_one_time/5,
+ crypto_one_time_aead/6, crypto_one_time_aead/7
+
+
+ OTP-17991 Application(s): stdlib
+
+ The function filename:safe_relative_path/1, which has
+ been deprecated since OTP 25, has been removed. Use
+ filelib:safe_relative_path/2 instead.
+
+
+ OTP-18009 Application(s): stdlib
+ Related Id(s): PR-5785
+
+ Fixed string:next_grapheme/1 to return an empty binary
+ in the tail for binary input for the last grapheme
+ cluster.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-25.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17224 Application(s): erts, otp
+
+ A test case has been added to the otp_SUITE that test
+ that the dependency versions for OTP's applications are
+ correct. The test case uses xref to check if the used
+ functions are available in the specified dependency
+ versions. The test case depends on the Erlang/OTP
+ team's testing infrastructure and will be skipped if
+ its dependencies are not met.
+
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ OTP-17669 Application(s): erl_docgen, otp
+ Related Id(s): PR-5226
+
+ Any exported, but private function or module in
+ Erlang/OTP now generate an EEP-48 style documentation
+ entry with the content set to hidden.
+
+ Before this change, exported but private functions and
+ modules did not have any entry at all.
+
+
+ OTP-17710 Application(s): otp
+ Related Id(s): PR-5597
+
+ *** HIGHLIGHT ***
+
+ A new DEVELOPMENT how-to guide has been added that
+ describes how to build and test Erlang/OTP when fixing
+ bugs or developing new functionality.
+
+ The makefile system has been extended to make it easier
+ to run tests at different granulates directly from the
+ command line. This new functionality is described in
+ the development how-to.
+
+ Using the extended makefile system, testing has been
+ added to the Github actions run for each opened PR so
+ that more bugs are caught earlier when bug fixes and
+ new features are proposed.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.0.19 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17980 Application(s): asn1
+
+ The atom maybe has been quoted in the source code.
+
+
+ Full runtime dependencies of asn1-5.0.19: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.23 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17881 Application(s): common_test
+ Related Id(s): PR-5581
+
+ Fix bug when running parallel test cases and together
+ with one or more ct hooks that would cause the hook
+ lock process to crash and produce printouts in the ct
+ logs.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ OTP-17676 Application(s): common_test
+ Related Id(s): PR-5021
+
+ Remove unused and undocumented tracer node
+ functionality.
+
+
+ OTP-17720 Application(s): common_test, kernel, stdlib
+ Related Id(s): PR-5162
+
+ *** HIGHLIGHT ***
+
+ The new module peer supersedes the slave module. The
+ slave module is now deprecated and will be removed in
+ OTP 27.
+
+ peer contains an extended and more robust API for
+ starting erlang nodes.
+
+
+ OTP-17882 Application(s): common_test
+ Related Id(s): PR-5581
+
+ The cth_surefire ct hook has been updated to include
+ the file and line number of the executed test case in
+ the xml output.
+
+ The performance of the hook has also been improved
+ greatly for test runs with many test cases.
+
+
+ Full runtime dependencies of common_test-1.23: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17810 Application(s): compiler
+ Related Id(s): GH-5379
+
+ A subtle bug regarding variable scoping has been
+ corrected. Consider this example:
+
+ (A=1) + fun() -> A = 2() end
+
+ In the shell, the expression correctly evaluates to 3.
+ In compiled code, it raised a {badmatch, 2} exception.
+
+
+ OTP-17820 Application(s): compiler
+
+ Fixed a rare bug that would crash the compiler during
+ type optimization.
+
+
+ OTP-17860 Application(s): compiler
+ Related Id(s): GH-5513, OTP-17226
+
+ Starting in OTP 24, when a fun was created and
+ immediately used, it would be inlined. An unintended
+ consequence of the inlining was that what would be a
+ function_clause exception without the inlining would
+ now be a rather confusing case_clause exception. This
+ has been corrected, so that function_clause exceptions
+ remain function_clause exceptions in inlined code.
+
+
+ OTP-18083 Application(s): compiler, stdlib
+
+ If a default record field initialization (_ = Expr) was
+ used even though all records fields were explicitly
+ initialized, Expr would not be evaluated. That would
+ not be a problem, except when Expr would bind a
+ variable subsequently used, in which case the compiler
+ would crash.
+
+ As an example, if record #r{} is defined to have only
+ one field a, the following code would crash the
+ compiler:
+
+ #r{a=[],_=V=42}, V
+
+ To fix that problem, the compiler will make sure that
+ Expr is always evaluated at least once. The compiler
+ will now rewrite the example to essentially:
+
+ V=42, #r{a=[]}, V
+
+
+ --- Improvements and New Features ---
+
+ OTP-16702 Application(s): compiler, erts
+
+ *** HIGHLIGHT ***
+
+ To enable more optimizations, BEAM files compiled with
+ OTP 21 and earlier cannot be loaded in OTP 25.
+
+
+ OTP-17151 Application(s): compiler, erts
+ Related Id(s): ERIERL-590, PR-5479
+
+ *** HIGHLIGHT ***
+
+ Added support for the compile attribute -nifs() to
+ empower compiler and loader with information about
+ which functions may be overridden as NIFs by
+ erlang:load_nif/2. It is recommended to use this
+ attribute in all modules that load NIF libraries.
+
+
+ OTP-17504 Application(s): compiler, erts
+ Related Id(s): GH-4971, PR-5281, PR-5752
+
+ *** HIGHLIGHT ***
+
+ When binary construction using the binary syntax fails,
+ the error message printed in the shell and by
+ erl_error:format_exception/3,4 will contain more
+ detailed information about what went wrong.
+
+
+ OTP-17684 Application(s): compiler, erts
+ Related Id(s): PR-5316, PR-5664
+
+ *** HIGHLIGHT ***
+
+ The Erlang compiler now includes type information in
+ BEAM files, and the JIT can now use that type
+ information to do optimizations such as eliminating or
+ simplifying type tests.
+
+
+ OTP-17685 Application(s): compiler, erts
+
+ Improved the JIT's support for external tools like perf
+ and gdb, allowing them to show line numbers and even
+ the original Erlang source code when that can be found.
+
+ To aid them in finding the source code, the
+ absolute_path compiler option has been added to embed
+ the absolute file path of a module.
+
+
+ OTP-17705 Application(s): compiler
+ Related Id(s): PR-5411
+
+ *** HIGHLIGHT ***
+
+ The maybe ... end construction proposed in EEP-49 has
+ been implemented. It can simplify complex code where
+ otherwise deeply nested cases would have to be used.
+
+ To enable maybe, give the option -enable-feature
+ maybe_expr to erlc or add -feature(maybe_expr, enable).
+ inside the module.
+
+
+ OTP-17841 Application(s): compiler, erts
+ Related Id(s): PR-5694
+
+ *** HIGHLIGHT ***
+
+ When a record matching or record update fails, a
+ {badrecord,ExpectedRecordTag} exception used to be
+ raised. In this release, the exception has been changed
+ to {badrecord,ActualValue}, where ActualValue is the
+ actual that was found instead of the expected record.
+
+
+ OTP-17842 Application(s): compiler
+
+ Improved optimization of try/catch expressions.
+
+
+ OTP-17885 Application(s): compiler
+ Related Id(s): GH-5140
+
+ The beam_trim pass of the compiler could be extremely
+ slow for huge straight-line functions. It will now
+ compile such functions much faster (down to seconds
+ from minutes for some huge functions).
+
+
+ OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools
+
+ *** HIGHLIGHT ***
+
+ Added support for configurable features as described in
+ EEP-60. Features can be enabled/disabled during
+ compilation with options (-enable-feature Feature,
+ -disable-feature Feature and +{feature, Feature,
+ enable|disable}) to erlc as well as with directives
+ (-feature(Feature, enable|disable).) in the file.
+ Similar options can be used to erl for
+ enabling/disabling features allowed at runtime. The new
+ maybe expression (EEP-49) is fully supported as the
+ feature maybe_expr. The features support is documented
+ in the reference manual.
+
+
+ Full runtime dependencies of compiler-8.2: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17858 Application(s): crypto
+ Related Id(s): ERIERL-728
+
+ Fix timing bug in ensure_engine_loaded
+
+ When two ensure_engine_loaded() calls were done in
+ parallel there was a possibility that a crypto lib
+ function was called by both instead of just one of them
+ which resulted in an error. This is solved by moving
+ the implementation from erlang down into a NIF function
+ that uses a mutex to protect the sensitive part.
+
+
+ OTP-17984 Application(s): crypto
+
+ Remove faulty types run_time_error() and
+ descriptive_error().
+
+
+ --- Improvements and New Features ---
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ OTP-17471 Application(s): crypto
+ Related Id(s): PR-4750
+
+ Add crypto:hash_equals/2
+
+
+ OTP-17561 Application(s): crypto
+
+ Add /opt/homebrew/opt/openssl to standard locations to
+ search for OpenSSL cryptolib.
+
+
+ OTP-17870 Application(s): crypto
+
+ crypto_dyn_iv_init/3 and crypto_dyn_iv_update/3 are
+ deprecated.
+
+
+ OTP-17965 Application(s): crypto
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The information in error messages are increased.
+
+ Previously the error was signaled with en error class
+ exception badarg, notsup or error, and also in some
+ more ways like an other exception or a return value in
+ a non-standardized format.
+
+ Now it is an error-class exception
+ {notsup|badarg|error, InfoFromCfile,
+ Description::string()}.
+
+ The InfoFromCfile is a term with name and line number
+ of the C-file where the error was found. This is
+ primarily intended for a crypto maintainer or an
+ advanced user to find the cause of complicated errors -
+ maybe in crypto itself. The contents of that term might
+ be changed in the future.
+
+ The Description is a clear text string that describes
+ the error. In case of badarg and notsup the intention
+ is that it should help the user to find the cause ("Bad
+ key size" as an example). Specially for some error that
+ are unlikely, the string may not be possible to
+ understand without deep knowledge of the underlying
+ cryptolib. Such messages are intended for a crypto
+ maintainer.
+
+ The first element on call stack (the S in try ... catch
+ error:E:S .... end) gives more information like the
+ actual argument list in the call of crypto and the
+ argument number (if possible) in the call to the NIF
+ inside crypto.
+
+ The functions in crypto affected by this change are:
+
+ sign/4, sign/5, verify/5, verify/6,
+
+ generate_key/2, generate_key/3, compute_key/4,
+
+ hash/2, hash/4, hash_init/1, hash_update/4,
+ hash_final/1,
+
+ mac/3,4, mac_init/3, mac_update/2, mac_final/2,
+
+ pbkdf2_hmac/5,
+
+ public_encrypt/4, private_decrypt/4, private_encrypt/4,
+ public_decrypt/4
+
+ This schema was introduced earlier in:
+
+ crypto_init/3, crypto_init/4, crypto_update/2,
+ crypto_final/1, crypto_get_data/1,
+
+ crypto_one_time/4, crypto_one_time/5,
+ crypto_one_time_aead/6, crypto_one_time_aead/7
+
+
+ OTP-18067 Application(s): crypto
+ Related Id(s): PR-5866
+
+ Add Output Feedback mode (OFB) support for AES
+ encryption / decryption for key sizes of 128, 192 and
+ 256 bits.
+
+
+ OTP-18086 Application(s): crypto
+ Related Id(s): OTP-16282, OTP-16643, OTP-16644,
+ OTP-17701, OTP-17702, OTP-17704
+
+ *** HIGHLIGHT ***
+
+ The cryptolib API deprecated in OpenSSL 3.0 is now no
+ longer used with a few exceptions listed below.
+
+ Although OpenSSL 3.0.x itself is stable, its usage in
+ OTP/crypto should still not be considered suitable for
+ production code.
+
+ The use of ENGINEs is still disabled by default when
+ using 3.0.
+
+ Deprecated functions are still called in the
+ otp_test_engine.c (only used in tests), in mac.c
+ (EVP_PKEY_new_CMAC_key) and five function calls in ec.c
+ (EVP_PKEY_assign, EC_KEY_get_conv_form,
+ EVP_PKEY_get1_EC_KEY, EC_KEY_get0_group and
+ EC_KEY_set_public_key).
+
+
+ Full runtime dependencies of crypto-5.1: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- debugger-5.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17554 Application(s): debugger, erts, kernel, observer,
+ stdlib
+ Related Id(s): GH-5016, OTP-17821, PR-5408
+
+ The configuration files .erlang, .erlang.cookie and
+ .erlang.crypt can now be located in the XDG Config Home
+ directory.
+
+ See the documentation for each file and
+ filename:basedir/2 for more details.
+
+
+ Full runtime dependencies of debugger-5.3: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.0 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17644 Application(s): dialyzer
+ Related Id(s): PR-5223
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Fixed a bug that could cause the type analyzer to enter
+ an infinite loop.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17524 Application(s): dialyzer
+
+ Optimize operations in the erl_types module.
+ Parallelize the Dialyzer pass remote.
+
+
+ OTP-17654 Application(s): dialyzer
+ Related Id(s): GH-5214
+
+ Added the missing_return and extra_return options to
+ raise warnings when specifications differ from inferred
+ types. These are similar to, but not quite as verbose
+ as overspecs and underspecs.
+
+
+ OTP-17819 Application(s): dialyzer
+
+ The race_conditions option has been removed.
+
+
+ OTP-17821 Application(s): dialyzer
+ Related Id(s): GH-5016, OTP-17554, PR-5408
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The default location of the plt has been changed from
+ $HOME to filename:basedir(user_cache,"erlang").
+
+
+ OTP-17826 Application(s): dialyzer
+ Related Id(s): PR-5498
+
+ dialyzer will now honor dependencies inside type
+ declarations. That is, if the declaration of an
+ exported type changes, all modules using said type will
+ be revisited.
+
+
+ OTP-17897 Application(s): dialyzer
+ Related Id(s): PR-5651
+
+ Dialyzer now better understands the types for min/2,
+ max/2, and erlang:raise/3. Because of that, Dialyzer
+ can potentially generate new warnings. In particular,
+ functions that use erlang:raise/3 could now need a spec
+ with a no_return() return type to avoid an unwanted
+ warning.
+
+
+ OTP-17964 Application(s): dialyzer
+ Related Id(s): PR-5660
+
+ The typer_core module has been added to provide an
+ Erlang API for running typer.
+
+
+ OTP-18035 Application(s): dialyzer
+ Related Id(s): PR-5802
+
+ Added the --annotate-in-place option to typer, which
+ can be used to annotate the specs that the tool
+ inferred directly into the source code files.
+
+
+ Full runtime dependencies of dialyzer-5.0: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- diameter-2.2.6 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17976 Application(s): diameter
+ Related Id(s): GH-5463
+
+ Fix decode of non-IP address types; that is, of values
+ of the derived AVP data format Address whose first two
+ octets specify an address family other than 1 (IP) or 2
+ (IP6). Such values have never been decoded, and were
+ treated as decode errors. They're now decoded to a
+ 2-tuple of the integer() address family and binary()
+ remaining octets, with no family-specific decode. The
+ 2-tuple distinguishes the decode from the 4-tuple and
+ 8-tuple IP address decodes. 2-tuples are also now
+ encoded.
+
+ Note that even currently unassigned address families
+ are decoded: only the reserved values, 0 and 65535, are
+ treated as errors.
+
+
+ Full runtime dependencies of diameter-2.2.6: erts-10.0, kernel-3.2,
+ ssl-9.0, stdlib-3.0
+
+
+ ---------------------------------------------------------------------
+ --- edoc-1.2 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17550 Application(s): edoc
+ Related Id(s): GH-5094, PR-5106
+
+ Fix unused types warnings in internal edoc module.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17556 Application(s): edoc
+ Related Id(s): PR-5023
+
+ Add source file to the warning on skipped tags when
+ generating EEP-48 style docs.
+
+
+ OTP-17733 Application(s): edoc
+ Related Id(s): PR-5205
+
+ Fix the doc chunks generators to emit documentation
+ even if there is not module level documentation.
+
+ Fix the doc chunks generators to respect the @hidden
+ and @private tags properly for both modules and
+ functions.
+
+
+ Full runtime dependencies of edoc-1.2: erts-6.0, inets-5.10,
+ kernel-3.0, stdlib-3.15, syntax_tools-2.0, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erl_docgen-1.3 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18084 Application(s): erl_docgen
+ Related Id(s): PR-5948
+
+ Fix types that are not derived from code to display the
+ correct information in EEP-48 style documentation
+ chunks.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17669 Application(s): erl_docgen, otp
+ Related Id(s): PR-5226
+
+ Any exported, but private function or module in
+ Erlang/OTP now generate an EEP-48 style documentation
+ entry with the content set to hidden.
+
+ Before this change, exported but private functions and
+ modules did not have any entry at all.
+
+
+ Full runtime dependencies of erl_docgen-1.3: edoc-1.0, erts-11.0,
+ kernel-8.0, stdlib-3.15, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.3 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17846 Application(s): erl_interface
+ Related Id(s): PR-5558
+
+ erl_call no longer links against nsl on platforms where
+ gethostbyname is provided by libc.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17318 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-4972
+
+ The following distribution flags are now mandatory:
+ DFLAG_BIT_BINARIES, DFLAG_EXPORT_PTR_TAG,
+ DFLAG_MAP_TAGS, DFLAG_NEW_FLOATS, and DFLAG_FUN_TAGS.
+ This mainly concerns libraries or application that
+ implement the distribution protocol themselves.
+
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ OTP-17682 Application(s): erl_interface, erts, jinterface
+ Related Id(s): PR-5347
+
+ Removed use of node creation value zero as a wildcard.
+ Also prevent zero from being used as creation by
+ erl_interface and jinterface nodes.
+
+
+ OTP-17802 Application(s): erl_interface
+ Related Id(s): PR-5347
+
+ Changed creation arguments, of function ei_connect_init
+ and friends, from type short to unsigned int for full
+ 32-bit range.
+
+
+ --- Known Bugs and Problems ---
+
+ OTP-16607 Application(s): erl_interface
+ Related Id(s): OTP-16608
+
+ The ei API for decoding/encoding terms is not fully
+ 64-bit compatible since terms that have a
+ representation on the external term format larger than
+ 2 GB cannot be handled.
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.0 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17447 Application(s): erts, kernel
+ Related Id(s): GH-4819
+
+ The socket option 'reuseaddr' is *no longer* ignored on
+ Windows.
+
+
+ OTP-17569 Application(s): erts
+ Related Id(s): PR-4793
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The growth rate of writable binaries has been adjusted
+ to only increase by 20% after 16MB in size. Before this
+ change the size would always double.
+
+ This change may degrade write performance of large
+ binaries.
+
+
+ OTP-17661 Application(s): erts, stdlib
+ Related Id(s): PR-5165
+
+ Fix reduction counting bug in re:run that caused the
+ function to yield too frequently when doing global
+ matches.
+
+
+ OTP-17758 Application(s): erts
+ Related Id(s): PR-5391
+
+ Fix spelling mistakes in epmd error messages.
+
+
+ OTP-17779 Application(s): erts
+ Related Id(s): GH-5403, PR-5599
+
+ Fix bug where the "newshell" would trigger a newline at
+ the column width of the terminal, even if the next
+ character to be printed was a newline. This would cause
+ the terminal to render two newlines instead of one.
+
+
+ OTP-17832 Application(s): erts, stdlib
+ Related Id(s): PR-5494
+
+ Fix the memory value returned from ets:info(Tid,memory)
+ when the read_concurrency option is used.
+
+ Before this fix the memory used by the scheduler
+ specific lock cache lines was not counted towards the
+ total. This caused the returned memory usage to be very
+ incorrect on systems with many schedulers for tables
+ with man locks.
+
+
+ OTP-17836 Application(s): erts
+ Related Id(s): PR-5546
+
+ Fix the undocumented --profile_boot option to work
+ again.
+
+
+ OTP-18020 Application(s): erts, kernel
+
+ [socket] Encode of sockaddr has been improved.
+
+
+ OTP-18047 Application(s): erts
+ Related Id(s): PR-5861
+
+ Fix erl_child_setup (the program used by
+ open_port({spawn,...}) and os:cmd/1) to better handle
+ partial reads from the Erlang VM.
+
+
+ OTP-18068 Application(s): erts
+ Related Id(s): GH-5903
+
+ The runtime system would crash when attempting to
+ create more than 33554431 atoms.
+
+
+ --- Improvements and New Features ---
+
+ OTP-15991 Application(s): erts, stdlib
+ Related Id(s): PR-5208
+
+ *** HIGHLIGHT ***
+
+ Users can now configure ETS tables with the
+ {write_concurrency, auto} option. This option forces
+ tables to automatically change the number of locks that
+ are used at run-time depending on how much concurrency
+ is detected. The {decentralized_counters, true} option
+ is enabled by default when {write_concurrency, auto} is
+ active.
+
+ Benchmark results comparing this option with the other
+ ETS optimization options are available here:
+
+ https://erlang.org/bench/ets_bench_result_lock_config.html
+
+
+ OTP-16464 Application(s): erts, kernel
+
+ The net module now works on Windows.
+
+
+ OTP-16702 Application(s): compiler, erts
+
+ *** HIGHLIGHT ***
+
+ To enable more optimizations, BEAM files compiled with
+ OTP 21 and earlier cannot be loaded in OTP 25.
+
+
+ OTP-16852 Application(s): erts
+ Related Id(s): ERL-1347, PR-5195
+
+ Optimize minor garbage collection for processes with
+ large number of binaries, funs and/or external
+ pids/ports/refs. This is a continuation of the
+ optimization (OTP-17602) released in OTP-24.1.
+
+
+ OTP-16982 Application(s): erts
+ Related Id(s): PR-5020
+
+ *** HIGHLIGHT ***
+
+ The signal queue of a process with
+ message_queue_data=off_heap* has been optimized to
+ allow parallel reception of signals from multiple
+ processes.
+
+ This is possible to do as Erlang only guarantees that
+ signals (i.e., message signals and non-message signals)
+ sent from a single process to another process are
+ ordered in send order. However, there are no ordering
+ guarantees for signals sent from different processes to
+ a particular process. Therefore, several processes can
+ send signals in parallel to a specific process without
+ synchronizing with each other. However, such signal
+ sending was previously always serialized as the senders
+ had to acquire the lock for the outer signal queue of
+ the receiving process. This parallel signal sending
+ optimization yields much better scalability for signal
+ sending than what was previously possible, see
+ https://erlang.org/bench/sigq_bench_result.html for
+ benchmark results.
+
+ * Information about how to enable the
+ message_queue_data=off_heap setting can be found in the
+ documentation of the function erlang:process_flag/2.
+
+
+ OTP-17119 Application(s): erts
+ Related Id(s): PR-4869
+
+ *** HIGHLIGHT ***
+
+ The JIT now works for 64-bit ARM processors.
+
+
+ OTP-17151 Application(s): compiler, erts
+ Related Id(s): ERIERL-590, PR-5479
+
+ *** HIGHLIGHT ***
+
+ Added support for the compile attribute -nifs() to
+ empower compiler and loader with information about
+ which functions may be overridden as NIFs by
+ erlang:load_nif/2. It is recommended to use this
+ attribute in all modules that load NIF libraries.
+
+
+ OTP-17224 Application(s): erts, otp
+
+ A test case has been added to the otp_SUITE that test
+ that the dependency versions for OTP's applications are
+ correct. The test case uses xref to check if the used
+ functions are available in the specified dependency
+ versions. The test case depends on the Erlang/OTP
+ team's testing infrastructure and will be skipped if
+ its dependencies are not met.
+
+
+ OTP-17304 Application(s): erts, kernel, sasl
+
+ An Erlang installation directory is now relocatable on
+ the file system given that the paths in the
+ installation's RELEASES file are paths that are
+ relative to the installations root directory. The
+ `release_handler:create_RELEASES/4 function can
+ generate a RELEASES file with relative paths if its
+ RootDir parameter is set to the empty string.
+
+
+ OTP-17318 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-4972
+
+ The following distribution flags are now mandatory:
+ DFLAG_BIT_BINARIES, DFLAG_EXPORT_PTR_TAG,
+ DFLAG_MAP_TAGS, DFLAG_NEW_FLOATS, and DFLAG_FUN_TAGS.
+ This mainly concerns libraries or application that
+ implement the distribution protocol themselves.
+
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ OTP-17504 Application(s): compiler, erts
+ Related Id(s): GH-4971, PR-5281, PR-5752
+
+ *** HIGHLIGHT ***
+
+ When binary construction using the binary syntax fails,
+ the error message printed in the shell and by
+ erl_error:format_exception/3,4 will contain more
+ detailed information about what went wrong.
+
+
+ OTP-17554 Application(s): debugger, erts, kernel, observer,
+ stdlib
+ Related Id(s): GH-5016, OTP-17821, PR-5408
+
+ The configuration files .erlang, .erlang.cookie and
+ .erlang.crypt can now be located in the XDG Config Home
+ directory.
+
+ See the documentation for each file and
+ filename:basedir/2 for more details.
+
+
+ OTP-17555 Application(s): erts
+ Related Id(s): PR-5027
+
+ Make byte_size/1 and binary_part/2/3 callable from
+ match specs (in ETS and tracing).
+
+
+ OTP-17558 Application(s): erts, kernel
+ Related Id(s): GH-5402, OTP-17538, PR-5111
+
+ Dynamic node name improvements: erlang:is_alive/0
+ changed to return true for pending dynamic node name
+ and new function net_kernel:get_state/0.
+
+
+ OTP-17562 Application(s): erts
+ Related Id(s): GH-4492
+
+ A new option called short has been added to the
+ functions erlang:float_to_list and
+ erlang:float_to_binary. This option creates the
+ shortest correctly rounded string representation of the
+ given float that can be converted back to the same
+ float again.
+
+
+ OTP-17608 Application(s): erts, kernel, stdlib
+
+ The tagged tuple tests and fun-calls have been
+ optimized and are now a little bit cheaper than
+ previously.
+
+ These optimizations become possible after making sure
+ that all boxed terms have at least one word allocated
+ after the arity word. This has been accomplished by
+ letting all empty tuples refer to the same empty tuple
+ literal which also reduces memory usage for empty
+ tuples.
+
+
+ OTP-17630 Application(s): erts, stdlib
+
+ The signal queue benchmark in parallel_messages_SUITE
+ and the ETS benchmark in ets_SUITE have benchmark
+ result visualization HTML pages with "fill-screen"
+ buttons to make the graphs bigger. This button did not
+ work as intended before. When pressing the button for a
+ graph, the last graph got replaced with a bigger
+ version and not the one over the button. This is now
+ fixed.
+
+
+ OTP-17636 Application(s): erts
+
+ The test case num_bif_SUITE:t_float_to_string
+ previously failed sometimes as it assumed a certain
+ rounding of floats printed with sprintf but the
+ rounding type is platform specific.
+
+
+ OTP-17660 Application(s): erts
+ Related Id(s): PR-5164
+
+ Optimize interpreter to create heap binaries of small
+ match contexts if possible.
+
+ This optimization was already done in the JIT.
+
+
+ OTP-17667 Application(s): erts
+ Related Id(s): PR-5237
+
+ Optimize integer multiplication for x86 JIT
+
+
+ OTP-17682 Application(s): erl_interface, erts, jinterface
+ Related Id(s): PR-5347
+
+ Removed use of node creation value zero as a wildcard.
+ Also prevent zero from being used as creation by
+ erl_interface and jinterface nodes.
+
+
+ OTP-17683 Application(s): erts
+ Related Id(s): PR-5306
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Distributed spawn operations now require distributed
+ spawn_request() support. Distributed spawn_request()
+ was introduced in OTP 23. That is, distributed spawn
+ operations against Erlang nodes of releases prior to
+ OTP 23 will fail.
+
+
+ OTP-17684 Application(s): compiler, erts
+ Related Id(s): PR-5316, PR-5664
+
+ *** HIGHLIGHT ***
+
+ The Erlang compiler now includes type information in
+ BEAM files, and the JIT can now use that type
+ information to do optimizations such as eliminating or
+ simplifying type tests.
+
+
+ OTP-17685 Application(s): compiler, erts
+
+ Improved the JIT's support for external tools like perf
+ and gdb, allowing them to show line numbers and even
+ the original Erlang source code when that can be found.
+
+ To aid them in finding the source code, the
+ absolute_path compiler option has been added to embed
+ the absolute file path of a module.
+
+
+ OTP-17717 Application(s): erts
+ Related Id(s): PR-5290
+
+ Add [32-bit] to the Erlang shell title row for 32-bit
+ VMs.
+
+
+ OTP-17728 Application(s): erts
+ Related Id(s): PR-5284
+
+ Instructions for how to build the runtime system for
+ iOS/iPadOS can now be found in HOWTO/INSTALL.md.
+
+
+ OTP-17729 Application(s): erts
+ Related Id(s): PR-5477
+
+ Add support for static Elixir NIF modules with
+ non-alphanumeric characters by using new macro
+ STATIC_ERLANG_NIF_LIBNAME.
+
+
+ OTP-17753 Application(s): erts
+ Related Id(s): GH-5297, PR-5305
+
+ Add new function caller_line to for trace match
+ specifications used by erlang:trace_pattern/3.
+
+ This new option puts the line number of the caller into
+ the trace message sent to the trace receiver.
+
+
+ OTP-17762 Application(s): erts
+ Related Id(s): GH-5204, PR-5219
+
+ A new erl command line argument +ssrct has been
+ introduced which will cause the runtime system to skip
+ reading CPU topology information. This reduce start up
+ time especially when the CPU topology is large. Reading
+ of CPU topology information is now also skipped if a
+ user defined CPU topology is set using the +sct command
+ line argument.
+
+
+ OTP-17772 Application(s): erts
+ Related Id(s): GH-4965, PR-5644
+
+ The default time warp mode will change in Erlang/OTP
+ 26. Added a warning about this upcoming potential
+ incompatibility to the documentation.
+
+
+ OTP-17824 Application(s): erts
+
+ The emulator will no longer mark unused memory as
+ discardable (e.g. through madvise(2)), as it caused
+ more problems than it solved.
+
+
+ OTP-17841 Application(s): compiler, erts
+ Related Id(s): PR-5694
+
+ *** HIGHLIGHT ***
+
+ When a record matching or record update fails, a
+ {badrecord,ExpectedRecordTag} exception used to be
+ raised. In this release, the exception has been changed
+ to {badrecord,ActualValue}, where ActualValue is the
+ actual that was found instead of the expected record.
+
+
+ OTP-17892 Application(s): erts, tools
+ Related Id(s): PR-5591
+
+ Removed the previously undocumented and unsupported
+ emem tool.
+
+
+ OTP-17899 Application(s): erts
+ Related Id(s): PR-5524
+
+ Remove version number from the default install path on
+ Windows.
+
+
+ OTP-17927 Application(s): erts
+ Related Id(s): PR-5283
+
+ On Windows apply the limit flag
+ JOB_OBJECT_LIMIT_BREAKAWAY_OK in the Erlang service to
+ be able to start a OS child process with a different
+ session number.
+
+
+ OTP-17945 Application(s): erts
+ Related Id(s): GH-4759, PR-5809
+
+ New erl command line option +IOs. It can be used to
+ disable scheduler thread poll optimization, which has
+ been seen to cause degraded event latency in some use
+ cases.
+
+
+ OTP-17951 Application(s): erts, kernel
+ Related Id(s): PR-5656
+
+ An API for multihomed SCTP connect has been added in
+ the guise of gen_sctp:connectx_init/*
+
+
+ OTP-17968 Application(s): erts, kernel
+ Related Id(s): OTP-16464
+
+ [socket] Add encoding of the field hatype of the type
+ sockaddr_ll (family 'packet').
+
+
+ OTP-17985 Application(s): erts
+ Related Id(s): GH-5728
+
+ A cross compilation issue has been fixed about finding
+ libdlpi during the configure phase.
+
+
+ OTP-17999 Application(s): erts
+ Related Id(s): PR-5768
+
+ process_info/2 now also accepts parent as argument.
+ When passed, the process identifier of the parent
+ process will be returned.
+
+
+ OTP-18006 Application(s): erts
+ Related Id(s): PR-5932
+
+ Add function attributes to erl_nif and erl_driver APis
+ to improve compiler detection of interface misuse.
+
+
+ OTP-18033 Application(s): erts
+ Related Id(s): GH-5376, PR-2926
+
+ The exported type erlang:send_destination/0 has been
+ introduced.
+
+
+ OTP-18036 Application(s): erts
+ Related Id(s): PR-5846
+
+ Building of the C/C++ make dependencies on Windows has
+ been optimized to be a lot faster.
+
+
+ OTP-18038 Application(s): erts
+
+ file:sync/1 will now use the F_BARRIERFSYNC flag when
+ available on Mac OS.
+
+
+ Full runtime dependencies of erts-13.0: kernel-8.3, sasl-3.3,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- eunit-2.7.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17884 Application(s): eunit
+ Related Id(s): GH-5617
+
+ Minor internal improvements.
+
+
+ Full runtime dependencies of eunit-2.7.1: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.0 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17627 Application(s): inets, stdlib
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Adjust uri_string:normalize behavior for URIs with
+ undefined port (URI string with a port colon but no
+ port value or URI map with port => undefined).
+
+ Remove redundant normalization from http_request
+ module.
+
+ Before this change, normalize would not remove port
+ subcomponent in such cases and could for example return
+ "http://localhost:" URI.
+
+
+ OTP-17889 Application(s): inets
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Fixed typo in Reason term returned from
+ httpc_handler:handle_http_body.
+
+ After this change, could_not_establish_ssl_tunnel atom
+ is returned within Reason term.
+
+
+ OTP-18063 Application(s): inets
+ Related Id(s): ERIERL-798
+
+ With this change, inet6fb4 option is documented for
+ inets/httpc. Option can be used when IP family needs to
+ be discovered by a connection attempt.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17866 Application(s): inets
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ This change removes deprecated functions:
+ http_uri:parse/1, http_uri:parse/2 and
+ http_uri:scheme_defaults/0.
+
+ This change delays until OTP-26 removal of deprecated
+ functions: http_uri:encode/1 and http_uri:decode/1.
+
+ This change marks httpd_util:decode_hex/1 and
+ httpd_util:encode_hex/1 as deprecated.
+
+
+ OTP-17997 Application(s): inets
+ Related Id(s): GH-5782
+
+ After this change, connect_timeout value is re-used
+ when upgrading TCP connection to TLS over a proxy.
+
+
+ OTP-18088 Application(s): inets
+ Related Id(s): GH-5276
+
+ Remove reference to unsupported Apache-like config file
+ from httpd manual.
+
+
+ Full runtime dependencies of inets-8.0: erts-6.0, kernel-6.0,
+ mnesia-4.12, runtime_tools-1.8.14, ssl-9.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- jinterface-1.13 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17318 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-4972
+
+ The following distribution flags are now mandatory:
+ DFLAG_BIT_BINARIES, DFLAG_EXPORT_PTR_TAG,
+ DFLAG_MAP_TAGS, DFLAG_NEW_FLOATS, and DFLAG_FUN_TAGS.
+ This mainly concerns libraries or application that
+ implement the distribution protocol themselves.
+
+
+ OTP-17682 Application(s): erl_interface, erts, jinterface
+ Related Id(s): PR-5347
+
+ Removed use of node creation value zero as a wildcard.
+ Also prevent zero from being used as creation by
+ erl_interface and jinterface nodes.
+
+
+ OTP-17961 Application(s): jinterface
+ Related Id(s): PR-4839
+
+ Add new abstract class OtpGenericTransportFactory to
+ allow implementation of any transport protocol without
+ dependency on epmd.
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.4 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17323 Application(s): kernel
+
+ The DNS resolver implementation has been rewritten to
+ validate replies more thoroughly, and a bit optimized
+ to create less garbage.
+
+
+ OTP-17447 Application(s): erts, kernel
+ Related Id(s): GH-4819
+
+ The socket option 'reuseaddr' is *no longer* ignored on
+ Windows.
+
+
+ OTP-17551 Application(s): kernel
+ Related Id(s): GH-5071, PR-5075
+
+ Fix bug where using the atoms string or report as the
+ format when calling logger:log(Level, Format, Args) (or
+ any other logging function) would cause a crash or
+ incorrect logging.
+
+
+ OTP-17911 Application(s): kernel
+ Related Id(s): OTP-17843, PR-5611, PR-5687
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As of OTP 25, global will by default prevent
+ overlapping partitions due to network issues by
+ actively disconnecting from nodes that reports that
+ they have lost connections to other nodes. This will
+ cause fully connected partitions to form instead of
+ leaving the network in a state with overlapping
+ partitions.
+
+ Prevention of overlapping partitions can be disabled
+ using the prevent_overlapping_partitions kernel(6)
+ parameter, making global behave like it used to do.
+ This is, however, problematic for all applications
+ expecting a fully connected network to be provided,
+ such as for example mnesia, but also for global itself.
+ A network of overlapping partitions might cause the
+ internal state of global to become inconsistent. Such
+ an inconsistency can remain even after such partitions
+ have been brought together to form a fully connected
+ network again. The effect on other applications that
+ expects that a fully connected network is maintained
+ may vary, but they might misbehave in very subtle hard
+ to detect ways during such a partitioning. Since you
+ might get hard to detect issues without this fix, you
+ are strongly advised not to disable this fix. Also note
+ that this fix has to be enabled on all nodes in the
+ network in order to work properly.
+
+
+ OTP-17958 Application(s): kernel
+ Related Id(s): OTP-17978
+
+ Starting the helper program for name resolving;
+ inet_gethost, has been improved to use an absolute file
+ system path to ensure that the right program is
+ started.
+
+ If the helper program can not be started - the system
+ now halts, to avoid running with a silently broken name
+ resolver.
+
+
+ OTP-17986 Application(s): kernel
+ Related Id(s): PR-5412, PR-5803
+
+ The type specification for inet_res:getbyname/2,3 has
+ been corrected to reflect that it can return peculiar
+ #hostent{} records.
+
+
+ OTP-17990 Application(s): kernel
+ Related Id(s): GH-5801
+
+ code:module_status/1 would always report BEAM files
+ loaded from an archive as modified, and
+ code:modified_modules/0 would always return the name of
+ all modules loaded from archives.
+
+
+ OTP-18001 Application(s): kernel
+ Related Id(s): GH-5780, PR-5829
+
+ In logger fix file handler shutdown delay by using
+ erlang timers instead of the timer module's timers.
+
+
+ OTP-18003 Application(s): kernel
+ Related Id(s): PR-5771
+
+ Fix the meta data in log events generated by logger on
+ failure to not contain the original log event's meta
+ data.
+
+
+ OTP-18015 Application(s): kernel
+ Related Id(s): GH-5828, PR-5845
+
+ Fix logger file backend to re-create the log folder if
+ it has been deleted.
+
+
+ OTP-18020 Application(s): erts, kernel
+
+ [socket] Encode of sockaddr has been improved.
+
+
+ OTP-18070 Application(s): kernel
+ Related Id(s): PR-5885
+
+ Fix put_chars requests to the io server with incomplete
+ unicode data to exit with no_translation error.
+
+
+ --- Improvements and New Features ---
+
+ OTP-16464 Application(s): erts, kernel
+
+ The net module now works on Windows.
+
+
+ OTP-17304 Application(s): erts, kernel, sasl
+
+ An Erlang installation directory is now relocatable on
+ the file system given that the paths in the
+ installation's RELEASES file are paths that are
+ relative to the installations root directory. The
+ `release_handler:create_RELEASES/4 function can
+ generate a RELEASES file with relative paths if its
+ RootDir parameter is set to the empty string.
+
+
+ OTP-17318 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-4972
+
+ The following distribution flags are now mandatory:
+ DFLAG_BIT_BINARIES, DFLAG_EXPORT_PTR_TAG,
+ DFLAG_MAP_TAGS, DFLAG_NEW_FLOATS, and DFLAG_FUN_TAGS.
+ This mainly concerns libraries or application that
+ implement the distribution protocol themselves.
+
+
+ OTP-17479 Application(s): kernel
+ Related Id(s): PR-4917
+
+ Fix os:cmd to work on Android OS.
+
+
+ OTP-17554 Application(s): debugger, erts, kernel, observer,
+ stdlib
+ Related Id(s): GH-5016, OTP-17821, PR-5408
+
+ The configuration files .erlang, .erlang.cookie and
+ .erlang.crypt can now be located in the XDG Config Home
+ directory.
+
+ See the documentation for each file and
+ filename:basedir/2 for more details.
+
+
+ OTP-17558 Application(s): erts, kernel
+ Related Id(s): GH-5402, OTP-17538, PR-5111
+
+ Dynamic node name improvements: erlang:is_alive/0
+ changed to return true for pending dynamic node name
+ and new function net_kernel:get_state/0.
+
+
+ OTP-17589 Application(s): kernel
+ Related Id(s): PR-4926
+
+ The types for callback result types in gen_statem has
+ bee augmented with arity 2 types where it is possible
+ for a callback module to specify the type of the
+ callback data, so the callback module can get type
+ validation of it.
+
+
+ OTP-17608 Application(s): erts, kernel, stdlib
+
+ The tagged tuple tests and fun-calls have been
+ optimized and are now a little bit cheaper than
+ previously.
+
+ These optimizations become possible after making sure
+ that all boxed terms have at least one word allocated
+ after the arity word. This has been accomplished by
+ letting all empty tuples refer to the same empty tuple
+ literal which also reduces memory usage for empty
+ tuples.
+
+
+ OTP-17617 Application(s): kernel
+ Related Id(s): PR-5069
+
+ A net_ticker_spawn_options kernel configuration
+ parameter with which one can set spawn options for the
+ distribution channel ticker processes has been
+ introduced.
+
+
+ OTP-17681 Application(s): kernel
+ Related Id(s): PR-5307
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The most, or at least the most used, rpc operations now
+ require erpc support in order to communicate with other
+ Erlang nodes. erpc was introduced in OTP 23. That is,
+ rpc operations against Erlang nodes of releases prior
+ to OTP 23 will fail.
+
+
+ OTP-17720 Application(s): common_test, kernel, stdlib
+ Related Id(s): PR-5162
+
+ *** HIGHLIGHT ***
+
+ The new module peer supersedes the slave module. The
+ slave module is now deprecated and will be removed in
+ OTP 27.
+
+ peer contains an extended and more robust API for
+ starting erlang nodes.
+
+
+ OTP-17784 Application(s): kernel, stdlib
+ Related Id(s): PR-5792
+
+ *** HIGHLIGHT ***
+
+ In order to make it easier for the user to manage
+ multiple outstanding asynchronous call requests, new
+ functionality utilizing request identifier collections
+ have been introduced in erpc, gen_server, gen_statem,
+ and gen_event.
+
+
+ OTP-17915 Application(s): kernel, stdlib
+ Related Id(s): GH-2375, GH-2690, PR-5751
+
+ Type specifications have been added to the gen_server,
+ and the documentation has been updated to utilize this.
+
+ This surfaced a few type violations that has been
+ corrected in global, logger_olp and rpc.
+
+
+ OTP-17923 Application(s): kernel
+ Related Id(s): PR-5646
+
+ IP address validation functions is_ipv4_address/1,
+ is_ipv6_address/1 and is_ip_address/1 have been added
+ to the module inet in Kernel.
+
+
+ OTP-17951 Application(s): erts, kernel
+ Related Id(s): PR-5656
+
+ An API for multihomed SCTP connect has been added in
+ the guise of gen_sctp:connectx_init/*
+
+
+ OTP-17968 Application(s): erts, kernel
+ Related Id(s): OTP-16464
+
+ [socket] Add encoding of the field hatype of the type
+ sockaddr_ll (family 'packet').
+
+
+ OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools
+
+ *** HIGHLIGHT ***
+
+ Added support for configurable features as described in
+ EEP-60. Features can be enabled/disabled during
+ compilation with options (-enable-feature Feature,
+ -disable-feature Feature and +{feature, Feature,
+ enable|disable}) to erlc as well as with directives
+ (-feature(Feature, enable|disable).) in the file.
+ Similar options can be used to erl for
+ enabling/disabling features allowed at runtime. The new
+ maybe expression (EEP-49) is fully supported as the
+ feature maybe_expr. The features support is documented
+ in the reference manual.
+
+
+ Full runtime dependencies of kernel-8.4: crypto-5.0, erts-13.0,
+ sasl-3.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- megaco-4.4 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ OTP-17910 Application(s): megaco
+
+ Megaco test suite(s) use the new peer module for node
+ starts.
+
+
+ Full runtime dependencies of megaco-4.4: asn1-3.0, debugger-4.0,
+ erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.21 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17930 Application(s): mnesia
+
+ Documentation fixes.
+
+
+ Full runtime dependencies of mnesia-4.21: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- observer-2.12 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17996 Application(s): observer
+ Related Id(s): PR-5795
+
+ Fixed default handling of Mac specific menus.
+
+
+ OTP-18012 Application(s): observer, runtime_tools
+ Related Id(s): #5798
+
+ Reading port socket options on macOS and Windows
+ "skips" invalid options.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17554 Application(s): debugger, erts, kernel, observer,
+ stdlib
+ Related Id(s): GH-5016, OTP-17821, PR-5408
+
+ The configuration files .erlang, .erlang.cookie and
+ .erlang.crypt can now be located in the XDG Config Home
+ directory.
+
+ See the documentation for each file and
+ filename:basedir/2 for more details.
+
+
+ Full runtime dependencies of observer-2.12: erts-11.0, et-1.5,
+ kernel-8.1, runtime_tools-1.19, stdlib-3.13, wx-1.2
+
+
+ ---------------------------------------------------------------------
+ --- odbc-2.14 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ Full runtime dependencies of odbc-2.14: erts-6.0, kernel-3.0,
+ stdlib-2.0
+
+
+ ---------------------------------------------------------------------
+ --- parsetools-2.4 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17755 Application(s): parsetools
+
+ In the generated code, yecc will now quote all atoms
+ coming from terminals in the grammar, in order to avoid
+ conflicts with future reserved words.
+
+
+ Full runtime dependencies of parsetools-2.4: erts-6.0, kernel-3.0,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.13 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17798 Application(s): public_key
+ Related Id(s): GH-5760
+
+ *** HIGHLIGHT ***
+
+ Added functions to retrieve OS provided CA-certs.
+
+
+ OTP-17890 Application(s): public_key, ssl
+
+ Allow key file passwords to be input as a single
+ binary, that is we change the data type to be the more
+ for the purpose logical data type iodata() instead of
+ string().
+
+
+ OTP-17921 Application(s): public_key
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The deprecated public_key functions ssh_decode/2,
+ ssh_encode/2, ssh_hostkey_fingerprint/1 and
+ ssh_hostkey_fingerprint/2 are removed.
+
+ They are replaced by ssh_file:decode/2,
+ ssh_file:encode/2, ssh:hostkey_fingerprint/1 and
+ ssh:hostkey_fingerprint/2 respectively.
+
+ Note that the decode/2 and encode/2 are not exact
+ replacement functions, some minor changes may be
+ needed. Se the manual for more information.
+
+
+ Full runtime dependencies of public_key-1.13: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- runtime_tools-1.19 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18012 Application(s): observer, runtime_tools
+ Related Id(s): #5798
+
+ Reading port socket options on macOS and Windows
+ "skips" invalid options.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17909 Application(s): runtime_tools
+ Related Id(s): ERIERL-760
+
+ dbg:stop/0 now behaves like dbg:stop_clear/0, clearing
+ all global trace patterns for all functions.
+
+
+ OTP-17939 Application(s): runtime_tools
+
+ erts_alloc_config has been scheduled for removal in OTP
+ 26. It has not produced good configurations for a very
+ long time, and unfortunately it cannot be fixed in a
+ backwards compatible manner.
+
+
+ Full runtime dependencies of runtime_tools-1.19: erts-11.0,
+ kernel-8.1, mnesia-4.12, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- sasl-4.2 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17752 Application(s): sasl
+ Related Id(s): PR-5302
+
+ Fix systools:make* to recursively search for source
+ code when doing a src_tests.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17304 Application(s): erts, kernel, sasl
+
+ An Erlang installation directory is now relocatable on
+ the file system given that the paths in the
+ installation's RELEASES file are paths that are
+ relative to the installations root directory. The
+ `release_handler:create_RELEASES/4 function can
+ generate a RELEASES file with relative paths if its
+ RootDir parameter is set to the empty string.
+
+
+ Full runtime dependencies of sasl-4.2: erts-10.2, kernel-6.0,
+ stdlib-3.4, tools-2.6.14
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.13 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ OTP-17612 Application(s): snmp
+
+ Removed deprecated functions slated for removal in
+ OTP-25. Also removed "dead" code, kept for backward
+ compatibility reasons.
+
+
+ Full runtime dependencies of snmp-5.13: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.14 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17920 Application(s): ssh
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The representation of Edward curves (ed25519 and ed448)
+ inside ssh had a temporary representation (ed_pri and
+ ed_pub).
+
+ That is now changed to the public_key form. See the
+ manual for more information.
+
+
+ OTP-18079 Application(s): ssh
+ Related Id(s): GH-5767
+
+ Former internal function ssh_file:extract_public_key/1
+ documented publicly.
+
+ Internally it was previously in ssh_transport.
+
+
+ Full runtime dependencies of ssh-4.14: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.8 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18087 Application(s): ssl
+ Related Id(s): GH-5961
+
+ When a TLS-1.3 enabled client tried to talk to a
+ TLS-1.2 server that coalesces TLS-1.2 handshake message
+ over one TLS record, the connection could fail due to
+ some message being handled in the wrong state, this has
+ been fixed.
+
+
+ OTP-18092 Application(s): ssl
+ Related Id(s): PR-5959
+
+ Fixed tls-1.3 session ticket lifetime which was
+ discarded to quickly before.
+
+
+ --- Improvements and New Features ---
+
+ OTP-15993 Application(s): ssl
+ Related Id(s): GH-4143
+
+ *** HIGHLIGHT ***
+
+ With this change, it is possible to provide several
+ certificates. Most appropriate will be selected based
+ on negotiated properties.
+
+
+ OTP-17855 Application(s): ssl
+ Related Id(s): PR-5328
+
+ Add options for users to be able to set spawn_opts for
+ TLS processes (sender and receiver) this may be useful
+ for tuning trade-offs between CPU and Memory usage.
+
+
+ OTP-17890 Application(s): public_key, ssl
+
+ Allow key file passwords to be input as a single
+ binary, that is we change the data type to be the more
+ for the purpose logical data type iodata() instead of
+ string().
+
+
+ OTP-18000 Application(s): ssl
+ Related Id(s): PR-5790
+
+ Logging enhancement, add location information to the
+ warning log message.
+
+
+ OTP-18014 Application(s): ssl
+
+ Now also accepts the signature_algs_cert option in
+ TLS-1.2 configuration.
+
+
+ OTP-18045 Application(s): ssl
+ Related Id(s): ERIERL-792, OTP-15993
+
+ Handle certificate selection correctly for server
+ fallback and certificate authorities considerations.
+
+
+ OTP-18085 Application(s): ssl
+
+ Enhance handling of handshake decoding errors,
+ especially for certificate authorities extension to
+ ensure graceful termination.
+
+
+ Full runtime dependencies of ssl-10.8: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-3.12
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17370 Application(s): stdlib
+ Related Id(s): GH-4784
+
+ Improve the Erlang code linter's check of unused types.
+
+
+ OTP-17480 Application(s): stdlib
+ Related Id(s): GH-4853, PR-4872
+
+ Fix race condition in proc_lib:stop/3 where the process
+ is not stopped when the timeout given is very short.
+
+
+ OTP-17518 Application(s): stdlib
+ Related Id(s): GH-4915
+
+ Maps are now fully supported in by ms_transform.
+
+
+ OTP-17544 Application(s): stdlib
+ Related Id(s): PR-5008
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Fix gen_server:call with the first argument as self()
+ to throw an error instead of failing with a timeout.
+
+ The same fix has also been done for gen_statem:call/3,
+ gen_event:sync_notify/2 and any other functionality
+ relying on the internal gen:call/3 function.
+
+ A similar fix was also done when using io:format/2 and
+ the current group_leader was set to the current
+ process.
+
+
+ OTP-17566 Application(s): stdlib
+ Related Id(s): GH-5093, PR-5095
+
+ erl_pp printed unary - and + operators with a space
+ between the operator and the operand. This is fixed by
+ not having any space in between.
+
+
+ OTP-17627 Application(s): inets, stdlib
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Adjust uri_string:normalize behavior for URIs with
+ undefined port (URI string with a port colon but no
+ port value or URI map with port => undefined).
+
+ Remove redundant normalization from http_request
+ module.
+
+ Before this change, normalize would not remove port
+ subcomponent in such cases and could for example return
+ "http://localhost:" URI.
+
+
+ OTP-17661 Application(s): erts, stdlib
+ Related Id(s): PR-5165
+
+ Fix reduction counting bug in re:run that caused the
+ function to yield too frequently when doing global
+ matches.
+
+
+ OTP-17832 Application(s): erts, stdlib
+ Related Id(s): PR-5494
+
+ Fix the memory value returned from ets:info(Tid,memory)
+ when the read_concurrency option is used.
+
+ Before this fix the memory used by the scheduler
+ specific lock cache lines was not counted towards the
+ total. This caused the returned memory usage to be very
+ incorrect on systems with many schedulers for tables
+ with man locks.
+
+
+ OTP-17878 Application(s): stdlib
+
+ Avoid confusion by correcting the argument order in the
+ gen_event crash log printout.
+
+
+ OTP-18009 Application(s): stdlib
+ Related Id(s): PR-5785
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Fixed string:next_grapheme/1 to return an empty binary
+ in the tail for binary input for the last grapheme
+ cluster.
+
+
+ OTP-18034 Application(s): stdlib
+ Related Id(s): GH-4622, PR-4661
+
+ Fixed type specifications of the supervisor:sup_name/0
+ and supervisor:sup_ref/0 types.
+
+
+ OTP-18083 Application(s): compiler, stdlib
+
+ If a default record field initialization (_ = Expr) was
+ used even though all records fields were explicitly
+ initialized, Expr would not be evaluated. That would
+ not be a problem, except when Expr would bind a
+ variable subsequently used, in which case the compiler
+ would crash.
+
+ As an example, if record #r{} is defined to have only
+ one field a, the following code would crash the
+ compiler:
+
+ #r{a=[],_=V=42}, V
+
+ To fix that problem, the compiler will make sure that
+ Expr is always evaluated at least once. The compiler
+ will now rewrite the example to essentially:
+
+ V=42, #r{a=[]}, V
+
+
+ --- Improvements and New Features ---
+
+ OTP-15991 Application(s): erts, stdlib
+ Related Id(s): PR-5208
+
+ *** HIGHLIGHT ***
+
+ Users can now configure ETS tables with the
+ {write_concurrency, auto} option. This option forces
+ tables to automatically change the number of locks that
+ are used at run-time depending on how much concurrency
+ is detected. The {decentralized_counters, true} option
+ is enabled by default when {write_concurrency, auto} is
+ active.
+
+ Benchmark results comparing this option with the other
+ ETS optimization options are available here:
+
+ https://erlang.org/bench/ets_bench_result_lock_config.html
+
+
+ OTP-17351 Application(s): stdlib
+ Related Id(s): GH-4673, PR-4952
+
+ *** HIGHLIGHT ***
+
+ The format_status/2 callback for gen_server, gen_statem
+ and gen_event has been deprecated in favor of the new
+ format_status/1 callback.
+
+ The new callback adds the possibility to limit and
+ change many more things than the just the state, such
+ as the last received message, the reason for
+ terminating and more events specific to each type of
+ behavior. See the respective modules documentation for
+ more details.
+
+
+ OTP-17481 Application(s): stdlib
+ Related Id(s): PR-4811
+
+ *** HIGHLIGHT ***
+
+ The timer module has been modernized and made more
+ efficient, which makes the timer server less
+ susceptible to being overloaded. The timer:sleep/1
+ function now accepts an arbitrarily large integer.
+
+
+ OTP-17523 Application(s): stdlib
+ Related Id(s): PR-4928
+
+ Add lists:enumerate/[1,2].
+
+
+ OTP-17554 Application(s): debugger, erts, kernel, observer,
+ stdlib
+ Related Id(s): GH-5016, OTP-17821, PR-5408
+
+ The configuration files .erlang, .erlang.cookie and
+ .erlang.crypt can now be located in the XDG Config Home
+ directory.
+
+ See the documentation for each file and
+ filename:basedir/2 for more details.
+
+
+ OTP-17592 Application(s): stdlib
+ Related Id(s): ERIERL-663, PR-5243
+
+ Support native time unit in calendar functions
+ system_time_to_rfc3339/2 and rfc3339_to_system_time.
+
+
+ OTP-17608 Application(s): erts, kernel, stdlib
+
+ The tagged tuple tests and fun-calls have been
+ optimized and are now a little bit cheaper than
+ previously.
+
+ These optimizations become possible after making sure
+ that all boxed terms have at least one word allocated
+ after the arity word. This has been accomplished by
+ letting all empty tuples refer to the same empty tuple
+ literal which also reduces memory usage for empty
+ tuples.
+
+
+ OTP-17630 Application(s): erts, stdlib
+
+ The signal queue benchmark in parallel_messages_SUITE
+ and the ETS benchmark in ets_SUITE have benchmark
+ result visualization HTML pages with "fill-screen"
+ buttons to make the graphs bigger. This button did not
+ work as intended before. When pressing the button for a
+ graph, the last graph got replaced with a bigger
+ version and not the one over the button. This is now
+ fixed.
+
+
+ OTP-17720 Application(s): common_test, kernel, stdlib
+ Related Id(s): PR-5162
+
+ *** HIGHLIGHT ***
+
+ The new module peer supersedes the slave module. The
+ slave module is now deprecated and will be removed in
+ OTP 27.
+
+ peer contains an extended and more robust API for
+ starting erlang nodes.
+
+
+ OTP-17778 Application(s): stdlib
+ Related Id(s): GH-5368
+
+ This change introduces quote and unquote functions in
+ uri_string module - a replacement for deprecated encode
+ and decode functions from http_uri.
+
+
+ OTP-17784 Application(s): kernel, stdlib
+ Related Id(s): PR-5792
+
+ *** HIGHLIGHT ***
+
+ In order to make it easier for the user to manage
+ multiple outstanding asynchronous call requests, new
+ functionality utilizing request identifier collections
+ have been introduced in erpc, gen_server, gen_statem,
+ and gen_event.
+
+
+ OTP-17869 Application(s): stdlib
+ Related Id(s): PR-5595
+
+ Update to the Unicode 14.0 specification.
+
+
+ OTP-17901 Application(s): stdlib
+ Related Id(s): GH-4968, PR-5649
+
+ The following ets types have been renamed to a clearer
+ name: tab/0 to table/0 and comp_match_spec/0 to
+ compiled_match_spec/0.
+
+ The types table_access/0 and table_type/0 have been
+ exported.
+
+
+ OTP-17908 Application(s): stdlib
+ Related Id(s): GH-5655, PR-5669
+
+ Add support for locating .asn1 files to the default
+ search rules of filelib:find_file/1 and
+ filelib:find_source/1.
+
+
+ OTP-17915 Application(s): kernel, stdlib
+ Related Id(s): GH-2375, GH-2690, PR-5751
+
+ Type specifications have been added to the gen_server,
+ and the documentation has been updated to utilize this.
+
+ This surfaced a few type violations that has been
+ corrected in global, logger_olp and rpc.
+
+
+ OTP-17925 Application(s): stdlib
+ Related Id(s): PR-5631
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The non-local function handler for the erl_eval can now
+ be called with either two or three arguments. When
+ called with three arguments, the first argument is the
+ annotation for the node in the abstract format.
+
+ All errors during evaluation will now be passed through
+ erlang:raise/3. If the restricted shell is active and
+ it does not let erlang:raise/3 through, evaluation
+ errors will be printed in less clear way. See the
+ documentation for restricted shell in shell.
+
+
+ OTP-17953 Application(s): stdlib
+ Related Id(s): PR-5621
+
+ *** HIGHLIGHT ***
+
+ Added filelib:ensure_path/1 that ensures that all
+ directories for the given path exists (unlike
+ filelib:ensure_dir/1, which will not create the last
+ segment of the path).
+
+
+ OTP-17969 Application(s): stdlib
+ Related Id(s): PR-5588
+
+ *** HIGHLIGHT ***
+
+ The functions groups_from_list/2 and groups_from_list/3
+ have been added to the maps module.
+
+
+ OTP-17974 Application(s): stdlib
+ Related Id(s): GH-5683
+
+ gen_server has been refactored to throw more readable
+ exceptions when a callback returns bad values in the
+ Timeout field (timeout() | 'hibernate' |
+ {'continue,_}), and also to verify that argument in the
+ gen_server:enter_loop/3,4,5 API function.
+
+
+ OTP-17977 Application(s): stdlib
+ Related Id(s): GH-5606, PR-5766
+
+ *** HIGHLIGHT ***
+
+ The functions uniq/1 and uniq/2 for removing duplicates
+ have been added to the lists module.
+
+
+ OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools
+
+ *** HIGHLIGHT ***
+
+ Added support for configurable features as described in
+ EEP-60. Features can be enabled/disabled during
+ compilation with options (-enable-feature Feature,
+ -disable-feature Feature and +{feature, Feature,
+ enable|disable}) to erlc as well as with directives
+ (-feature(Feature, enable|disable).) in the file.
+ Similar options can be used to erl for
+ enabling/disabling features allowed at runtime. The new
+ maybe expression (EEP-49) is fully supported as the
+ feature maybe_expr. The features support is documented
+ in the reference manual.
+
+
+ OTP-17991 Application(s): stdlib
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The function filename:safe_relative_path/1, which has
+ been deprecated since OTP 25, has been removed. Use
+ filelib:safe_relative_path/2 instead.
+
+
+ OTP-18011 Application(s): stdlib
+
+ *** HIGHLIGHT ***
+
+ A new PRNG have been added to the rand module: mwc59
+ which has been developed in collaboration with
+ Sebastiano Vigna. It is intended for applications that
+ need really fast pseudo-random numbers, and it comes
+ with two output value scramblers, one fast and one
+ thorough.
+
+ Two internal functions for the exsp generator have also
+ been exported so they can be used outside the rand
+ plug-in framework to shave off some overhead.
+
+ The internal splitmix64 generator has also been
+ exported which can be useful for seeding other kinds of
+ PRNG:s than its own.
+
+
+ Full runtime dependencies of stdlib-4.0: compiler-5.0, crypto-4.5,
+ erts-12.0, kernel-8.4, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- syntax_tools-3.0 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17894 Application(s): syntax_tools
+ Related Id(s): PR-5509
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The erl_syntax_lib:analyze_attribute/1 function would
+ return {Name, {Name, Value}} instead of {Name, Value}
+ (which is the documented return value).
+
+
+ --- Improvements and New Features ---
+
+ OTP-17988 Application(s): compiler, kernel, stdlib, syntax_tools
+
+ *** HIGHLIGHT ***
+
+ Added support for configurable features as described in
+ EEP-60. Features can be enabled/disabled during
+ compilation with options (-enable-feature Feature,
+ -disable-feature Feature and +{feature, Feature,
+ enable|disable}) to erlc as well as with directives
+ (-feature(Feature, enable|disable).) in the file.
+ Similar options can be used to erl for
+ enabling/disabling features allowed at runtime. The new
+ maybe expression (EEP-49) is fully supported as the
+ feature maybe_expr. The features support is documented
+ in the reference manual.
+
+
+ Full runtime dependencies of syntax_tools-3.0: compiler-7.0,
+ erts-9.0, kernel-5.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- tools-3.5.3 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17892 Application(s): erts, tools
+ Related Id(s): PR-5591
+
+ Removed the previously undocumented and unsupported
+ emem tool.
+
+
+ Full runtime dependencies of tools-3.5.3: compiler-5.0, erts-11.0,
+ erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.2 ----------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17414 Application(s): common_test, crypto, erl_interface,
+ erts, megaco, odbc, otp, snmp, wx
+ Related Id(s): PR-4967
+
+ Input for configure scripts adapted to autoconf 2.71.
+
+
+ OTP-17950 Application(s): wx
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Added aux1Down and aux2Down fields to the wxMouseState
+ record. Since one record have been changed a
+ recompilation of user code might be required.
+
+
+ OTP-18008 Application(s): wx
+ Related Id(s): PR-5816
+
+ Add mac specific menubar functions.
+
+
+ Full runtime dependencies of wx-2.2: erts-12.0, kernel-8.0,
+ stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.29 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-17935 Application(s): xmerl
+ Related Id(s): PR-5590
+
+ Fixed misspellings in both documentation, comments and
+ code (internal data structures).
+
+
+ Full runtime dependencies of xmerl-1.3.29: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.1.1.README.txt b/release-notes/OTP-25.1.1.README.txt
new file mode 100644
index 0000000..9de8e77
--- /dev/null
+++ b/release-notes/OTP-25.1.1.README.txt
@@ -0,0 +1,222 @@
+Patch Package: OTP 25.1.1
+Git Tag: OTP-25.1.1
+Date: 2022-10-03
+Trouble Report Id: OTP-18240, OTP-18245, OTP-18249, OTP-18258,
+ OTP-18262, OTP-18263, OTP-18264, OTP-18266
+Seq num: ERIERL-821, ERIERL-859, GH-6309, GH-6320,
+ GH-6323, GH-6328
+System: OTP
+Release: 25
+Application: asn1-5.0.21, dialyzer-5.0.3, erts-13.1.1,
+ eunit-2.8.1, kernel-8.5.1, ssl-10.8.5,
+ stdlib-4.1.1
+Predecessor: OTP 25.1
+
+ Check out the git tag OTP-25.1.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- asn1-5.0.21 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The asn1-5.0.21 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18245 Application(s): asn1
+ Related Id(s): ERIERL-859
+
+ For the per and uper ASN.1 encoding rules, encoding and
+ decoding the SEQUENCE OF and SET OF constructs with
+ 16384 items or more is now supported.
+
+
+ Full runtime dependencies of asn1-5.0.21: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.0.3 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-5.0.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18262 Application(s): dialyzer
+ Related Id(s): GH-6323
+
+ Dialyzer could crash when analyzing Elixir code that
+ used intricate macros.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18263 Application(s): dialyzer
+ Related Id(s): ERIERL-821
+
+ The --input_list_file option has been added.
+
+
+ Full runtime dependencies of dialyzer-5.0.3: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.1.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.1.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18240 Application(s): erts, kernel
+ Related Id(s): #6285
+
+ Listen sockets created with the socket module, leaked
+ (erlang-) monitors.
+
+
+ OTP-18258 Application(s): erts
+ Related Id(s): GH-6309, PR-6324
+
+ Notifications about available distribution data sent to
+ distribution controller processes could be lost.
+ Distribution controller processes can be used when
+ implementing an alternative distribution carrier. The
+ default distribution over tcp was not effected and the
+ bug was also not present on x86/x86_64 platforms.
+
+
+ Full runtime dependencies of erts-13.1.1: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- eunit-2.8.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The eunit-2.8.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18264 Application(s): eunit
+ Related Id(s): GH-6320, PR-6322
+
+ With this change, eunit exact_execution option works
+ with application primitive.
+
+
+ Full runtime dependencies of eunit-2.8.1: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.5.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.5.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+ -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18240 Application(s): erts, kernel
+ Related Id(s): #6285
+
+ Listen sockets created with the socket module, leaked
+ (erlang-) monitors.
+
+
+ OTP-18249 Application(s): kernel, stdlib
+ Related Id(s): PR-6301
+
+ peer nodes failed to halt when the process supervising
+ the control connection crashed. When an alternative
+ control connection was used, this supervision process
+ also quite frequently crashed when the peer node was
+ stopped by the node that started it which caused the
+ peer node to linger without ever halting.
+
+
+ Full runtime dependencies of kernel-8.5.1: crypto-5.0, erts-13.1,
+ sasl-3.0, stdlib-4.1.1
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.8.5 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.8.5 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18266 Application(s): ssl
+ Related Id(s): GH-6328
+
+ Fixes handling of symlinks in cacertfile option.
+
+
+ Full runtime dependencies of ssl-10.8.5: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.1.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The stdlib-4.1.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+ -- kernel-8.5.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18249 Application(s): kernel, stdlib
+ Related Id(s): PR-6301
+
+ peer nodes failed to halt when the process supervising
+ the control connection crashed. When an alternative
+ control connection was used, this supervision process
+ also quite frequently crashed when the peer node was
+ stopped by the node that started it which caused the
+ peer node to linger without ever halting.
+
+
+ Full runtime dependencies of stdlib-4.1.1: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-8.5.1, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.1.2.1.README.txt b/release-notes/OTP-25.1.2.1.README.txt
new file mode 100644
index 0000000..72697b0
--- /dev/null
+++ b/release-notes/OTP-25.1.2.1.README.txt
@@ -0,0 +1,74 @@
+Patch Package: OTP 25.1.2.1
+Git Tag: OTP-25.1.2.1
+Date: 2023-01-18
+Trouble Report Id: OTP-18379, OTP-18383, OTP-18388
+Seq num: ERIERL-904, ERIERL-905
+System: OTP
+Release: 25
+Application: erts-13.1.2.1, snmp-5.13.1.1
+Predecessor: OTP 25.1.2
+
+ Check out the git tag OTP-25.1.2.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-13.1.2.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.1.2.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18383 Application(s): erts
+ Related Id(s): ERIERL-905
+
+ Fixed a bug in selective receive optimization that
+ could crash 32-bit emulators.
+
+
+ OTP-18388 Application(s): erts
+ Related Id(s): OTP-17462, PR-6662
+
+ A race condition which was very rarely triggered could
+ cause the signal queue of a process to become
+ inconsistent causing the runtime system to crash.
+
+
+ Full runtime dependencies of erts-13.1.2.1: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.13.1.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.13.1.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18379 Application(s): snmp
+ Related Id(s): ERIERL-904
+
+ Single threaded agent crash when vacm table not
+ properly initiated.
+
+
+ Full runtime dependencies of snmp-5.13.1.1: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.1.2.README.txt b/release-notes/OTP-25.1.2.README.txt
new file mode 100644
index 0000000..516ea57
--- /dev/null
+++ b/release-notes/OTP-25.1.2.README.txt
@@ -0,0 +1,72 @@
+Patch Package: OTP 25.1.2
+Git Tag: OTP-25.1.2
+Date: 2022-10-24
+Trouble Report Id: OTP-18288, OTP-18290
+Seq num: ERIERL-866, ERIERL-868
+System: OTP
+Release: 25
+Application: erts-13.1.2, mnesia-4.21.2
+Predecessor: OTP 25.1.1
+
+ Check out the git tag OTP-25.1.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-13.1.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.1.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18290 Application(s): erts
+ Related Id(s): ERIERL-866, PR-6378
+
+ Add abandon carrier free utilization limit (+Muacful)
+ option to erts_alloc. This option allows the user to
+ mark unused segments in a memory carrier as re-useable
+ by the OS if needed.
+
+ This functionality was a non-configurable default
+ before Erlang/OTP 25, but removed due to performance
+ issues.
+
+
+ Full runtime dependencies of erts-13.1.2: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.21.2 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.21.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18288 Application(s): mnesia
+ Related Id(s): ERIERL-868
+
+ Don't fill the logs if mnesia can't connect to all
+ nodes, due to partitioned network.
+
+
+ Full runtime dependencies of mnesia-4.21.2: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.1.README.txt b/release-notes/OTP-25.1.README.txt
new file mode 100644
index 0000000..efa5649
--- /dev/null
+++ b/release-notes/OTP-25.1.README.txt
@@ -0,0 +1,1364 @@
+Patch Package: OTP 25.1
+Git Tag: OTP-25.1
+Date: 2022-09-21
+Trouble Report Id: OTP-17115, OTP-17340, OTP-17934, OTP-18032,
+ OTP-18037, OTP-18044, OTP-18050, OTP-18091,
+ OTP-18093, OTP-18099, OTP-18102, OTP-18104,
+ OTP-18107, OTP-18109, OTP-18115, OTP-18118,
+ OTP-18121, OTP-18125, OTP-18127, OTP-18133,
+ OTP-18134, OTP-18138, OTP-18139, OTP-18142,
+ OTP-18144, OTP-18146, OTP-18147, OTP-18148,
+ OTP-18151, OTP-18152, OTP-18153, OTP-18154,
+ OTP-18160, OTP-18161, OTP-18162, OTP-18163,
+ OTP-18165, OTP-18166, OTP-18171, OTP-18172,
+ OTP-18178, OTP-18179, OTP-18180, OTP-18181,
+ OTP-18182, OTP-18183, OTP-18184, OTP-18186,
+ OTP-18187, OTP-18189, OTP-18191, OTP-18193,
+ OTP-18194, OTP-18195, OTP-18196, OTP-18199,
+ OTP-18200, OTP-18201, OTP-18202, OTP-18203,
+ OTP-18205, OTP-18207, OTP-18208, OTP-18214,
+ OTP-18215, OTP-18216, OTP-18217, OTP-18218,
+ OTP-18219, OTP-18220, OTP-18222, OTP-18229,
+ OTP-18232, OTP-18233, OTP-18234, OTP-18239,
+ OTP-18241, OTP-18243, OTP-18244
+Seq num: ERIERL-456, ERIERL-661, ERIERL-666,
+ ERIERL-817, ERIERL-826, ERIERL-829,
+ ERIERL-833, ERIERL-834, ERIERL-835,
+ ERIERL-836, ERIERL-837, ERIERL-852,
+ ERIERL-855, ERL-97, GH-3064, GH-5719,
+ GH-5981, GH-6021, GH-6024, GH-6026, GH-6105,
+ GH-6122, GH-6158, GH-6163, GH-6164, GH-6169,
+ GH-6184, GH-6219, GH-6222, GH-6239, GH-6241,
+ GH-6242, GH-6244, GH-6247, GH-6277
+System: OTP
+Release: 25
+Application: asn1-5.0.20, common_test-1.23.1,
+ compiler-8.2.1, crypto-5.1.2, dialyzer-5.0.2,
+ diameter-2.2.7, erl_docgen-1.4, erts-13.1,
+ eunit-2.8, inets-8.1, jinterface-1.13.1,
+ kernel-8.5, megaco-4.4.1, observer-2.13,
+ parsetools-2.4.1, public_key-1.13.1,
+ snmp-5.13.1, ssh-4.15, ssl-10.8.4,
+ stdlib-4.1, xmerl-1.3.30
+Predecessor: OTP 25.0.4
+
+ Check out the git tag OTP-25.1, and build a full OTP system including
+ documentation. Apply one or more applications from this build as
+ patches to your installation using the 'otp_patch_apply' tool. For
+ information on install requirements, see descriptions for each
+ application version below.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18153 Application(s): crypto
+
+ Crypto is now considered to be usable with the OpenSSL
+ 3.0 cryptolib for production code.
+
+ ENGINE and FIPS are not yet fully functional.
+
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions are removed from the documentation and
+ therefor the API, but they are left in the code for
+ compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ OTP-18241 Application(s): ssl
+
+ A vulnerability has been discovered and corrected. It
+ is registered as CVE-2022-37026 "Client Authentication
+ Bypass". Corrections have been released on the
+ supported tracks with patches 23.3.4.15, 24.3.4.2, and
+ 25.0.2. The vulnerability might also exist in older OTP
+ versions. We recommend that impacted users upgrade to
+ one of these versions or later on the respective
+ tracks. OTP 25.1 would be an even better choice.
+ Impacted are those who are running an ssl/tls/dtls
+ server using the ssl application either directly or
+ indirectly via other applications. For example via
+ inets (httpd), cowboy, etc. Note that the vulnerability
+ only affects servers that request client certification,
+ that is sets the option {verify, verify_peer}.
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** HIGHLIGHT ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions are removed from the documentation and
+ therefor the API, but they are left in the code for
+ compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ OTP-18239 Application(s): stdlib
+
+ When changing callback module in gen_statem the
+ state_enter calls flag from the old module was used in
+ for the first event in the new module, which could
+ confuse the new module and cause malfunction. This bug
+ has been corrected.
+
+ With this change some sys debug message formats have
+ been modified, which can be a problem for debug code
+ relying on the format.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-25.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp,
+ parsetools, stdlib, xmerl
+ Related Id(s): PR-5965
+
+ There is a new configure option,
+ --enable-deterministic-build, which will apply the
+ deterministic compiler option when building Erlang/OTP.
+ The deterministic option has been improved to eliminate
+ more sources of non-determinism in several
+ applications.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.0.20 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The asn1-5.0.20 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp,
+ parsetools, stdlib, xmerl
+ Related Id(s): PR-5965
+
+ There is a new configure option,
+ --enable-deterministic-build, which will apply the
+ deterministic compiler option when building Erlang/OTP.
+ The deterministic option has been improved to eliminate
+ more sources of non-determinism in several
+ applications.
+
+
+ Full runtime dependencies of asn1-5.0.20: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.23.1 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.23.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18208 Application(s): common_test
+ Related Id(s): ERIERL-852, PR-6229
+
+ Fix cth_surefire to handle when a suite is not compiled
+ with debug_info. This bug has been present since
+ Erlang/OTP 25.0.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18138 Application(s): common_test
+ Related Id(s): GH-5719, PR-6029
+
+ Common Test now preserves stack traces for throws.
+
+
+ Full runtime dependencies of common_test-1.23.1: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18125 Application(s): compiler
+ Related Id(s): GH-6026
+
+ The compiler will now forbid using the empty atom '' as
+ module name. Also forbidden are modules names
+ containing control characters, and module names
+ containing only spaces and soft hyphens.
+
+
+ OTP-18162 Application(s): compiler
+ Related Id(s): PR-6102
+
+ The bin_opt_info and recv_opt_info options would cause
+ the compiler to crash when attempting to compile
+ generated code without location information.
+
+
+ OTP-18182 Application(s): compiler
+ Related Id(s): GH-6163
+
+ In rare circumstances involving floating point
+ operations, the compiler could terminate with an
+ internal consistency check failure.
+
+
+ OTP-18183 Application(s): compiler
+ Related Id(s): GH-6169
+
+ In rare circumstances when doing arithmetic
+ instructions on non-numbers, the compiler could crash.
+
+
+ OTP-18184 Application(s): compiler
+ Related Id(s): GH-6164
+
+ In rare circumstances, complex boolean expressions in
+ nested cases could cause the compiler to crash.
+
+
+ OTP-18186 Application(s): compiler
+
+ Expression similar to #{assoc:=V} = #key=>self()}, V
+ would return the empty map instead of raising an
+ exception.
+
+
+ OTP-18187 Application(s): compiler
+ Related Id(s): GH-6184
+
+ Eliminated a crash in the beam_ssa_bool pass of the
+ compiler when compiling a complex guard expression.
+
+
+ OTP-18202 Application(s): compiler
+ Related Id(s): GH-6222
+
+ In rare circumstances, the compiler could crash with an
+ internal consistency check failure.
+
+
+ OTP-18214 Application(s): compiler
+ Related Id(s): GH-6158
+
+ When compiling with the option inline_list_funcs, the
+ compiler could produce a nonsensical warning.
+
+
+ OTP-18234 Application(s): compiler
+ Related Id(s): GH-6277
+
+ When given the no_ssa_opt option, the compiler could
+ terminate with an internal consistency failure
+ diagnostic when compiling map matching.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18050 Application(s): compiler
+
+ Made warnings for existing atoms being keywords in
+ experimental features more precise, by not warning
+ about quoted atoms.
+
+
+ OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp,
+ parsetools, stdlib, xmerl
+ Related Id(s): PR-5965
+
+ There is a new configure option,
+ --enable-deterministic-build, which will apply the
+ deterministic compiler option when building Erlang/OTP.
+ The deterministic option has been improved to eliminate
+ more sources of non-determinism in several
+ applications.
+
+
+ Full runtime dependencies of compiler-8.2.1: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.1.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.1.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18147 Application(s): crypto
+ Related Id(s): GH-6024, PR-6056
+
+ Fix configure with --with-ssl and
+ --disable-dynamic-ssl-lib on Windows.
+
+
+ OTP-18152 Application(s): crypto
+
+ Remove all references correctly in the garbage
+ collection if an engine handle was not explicit
+ unloaded.
+
+
+ OTP-18172 Application(s): crypto
+ Related Id(s): ERIERL-826
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Changed the behaviour of the engine load/unload
+ functions
+
+ The engine load/unload functions have got changed
+ semantics to get a more consistent behaviour and work
+ correct when variables are garbage collected.
+
+ The load functions now don't register the methods for
+ the engine to replace. That will now be handled with
+ the new functions engine_register/engine_unregister if
+ needed.
+
+ Some functions are removed from the documentation and
+ therefor the API, but they are left in the code for
+ compatibility.
+
+ -- engine_load/4: is now the same as engine_load/3
+
+ -- engine_unload/2: is now the same as engine_unload/1
+
+ -- ensure_engine_loaded/3: is now the same as
+ ensure_engine_loaded/2
+
+ -- ensure_engine_unloaded/1, ensure_engine_unloaded/2:
+ is now the same as engine_unload/1
+
+
+ OTP-18200 Application(s): crypto
+
+ Fixed a naming bug for AES-CFB and Blowfish-CFB/OFB
+ when linked with OpenSSL 3.0 cryptolib.
+
+
+ OTP-18205 Application(s): crypto, public_key
+ Related Id(s): GH-6219
+
+ Sign/verify does now behave as in OTP-24 and earlier
+ for eddsa.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18037 Application(s): crypto
+
+ Pass elliptic curve names from crypto.erl to crypto's
+ nif.
+
+
+ OTP-18133 Application(s): crypto
+
+ The configure option --disable-deprecated-warnings is
+ removed. It was used for some releases when the support
+ for OpenSSL 3.0 was not completed. It is not needed in
+ OTP 25.
+
+
+ OTP-18153 Application(s): crypto
+
+ *** HIGHLIGHT ***
+
+ Crypto is now considered to be usable with the OpenSSL
+ 3.0 cryptolib for production code.
+
+ ENGINE and FIPS are not yet fully functional.
+
+
+ OTP-18217 Application(s): crypto
+
+ Do not exit if the legacy provider is missing in
+ libcrypto 3.0.
+
+
+ Full runtime dependencies of crypto-5.1.2: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.0.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-5.0.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18127 Application(s): dialyzer
+ Related Id(s): ERIERL-817
+
+ Two bugs have been fixed in Dialyzer's checking of
+ behaviors:
+
+ When a *mandatory* callback function is present but not
+ exported, Dialyzer would not complain about a missing
+ callback.
+
+ When an *optional* callback function was not exported
+ and had incompatible arguments and/or the return values
+ were incompatible, Dialyzer would complain. This has
+ been changed to suppress the warning, because the
+ function might not be intended to be a callback
+ function, for instance if a release added a new
+ optional callback function (such as format_status/1 for
+ the gen_server behaviour added in OTP 25).
+
+
+ OTP-18148 Application(s): dialyzer
+ Related Id(s): PR-6068
+
+ The no_extra_return and no_missing_return warnings can
+ now be suppressed through -dialyzer directives in
+ source code.
+
+
+ Full runtime dependencies of dialyzer-5.0.2: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- diameter-2.2.7 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The diameter-2.2.7 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp,
+ parsetools, stdlib, xmerl
+ Related Id(s): PR-5965
+
+ There is a new configure option,
+ --enable-deterministic-build, which will apply the
+ deterministic compiler option when building Erlang/OTP.
+ The deterministic option has been improved to eliminate
+ more sources of non-determinism in several
+ applications.
+
+
+ Full runtime dependencies of diameter-2.2.7: erts-10.0, kernel-3.2,
+ ssl-9.0, stdlib-3.0
+
+
+ ---------------------------------------------------------------------
+ --- erl_docgen-1.4 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_docgen-1.4 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18244 Application(s): erl_docgen
+
+ Update DTD to allow XML tag em under pre.
+
+
+ Full runtime dependencies of erl_docgen-1.4: edoc-1.0, erts-11.0,
+ kernel-8.0, stdlib-3.15, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.1 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.1 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17934 Application(s): erts, kernel, stdlib
+ Related Id(s): PR-6007
+
+ Fixed inconsistency bugs in global due to
+ nodeup/nodedown messages not being delivered
+ before/after traffic over connections. Also fixed
+ various other inconsistency bugs and deadlocks in both
+ global_group and global.
+
+ As building blocks for these fixes, a new BIF
+ erlang:nodes/2 has been introduced and
+ net_kernel:monitor_nodes/2 has been extended.
+
+ The -hidden and -connect_all command line arguments did
+ not work if multiple instances were present on the
+ command line which has been fixed. The new kernel
+ parameter connect_all has also been introduced in order
+ to replace the -connect_all command line argument.
+
+
+ OTP-18091 Application(s): erts, kernel
+ Related Id(s): #5789
+
+ Fixed IPv6 multicast_if and membership socket options.
+
+
+ OTP-18093 Application(s): erts
+ Related Id(s): OTP-18104, PR-5987
+
+ Accept funs (NEW_FUN_EXT) with incorrectly encoded size
+ field. This is a workaround for a bug (OTP-18104)
+ existing in OTP 23 and 24 that could cause incorrect
+ size fields in certain cases. The emulator does not use
+ the decoded size field, but erl_interface still does
+ and is not helped by this workaround.
+
+
+ OTP-18102 Application(s): erts, kernel
+ Related Id(s): #5904
+
+ Fixed issue with inet:getifaddrs hanging on pure IPv6
+ Windows
+
+
+ OTP-18104 Application(s): erts
+ Related Id(s): OTP-18093
+
+ Fix faulty distribution encoding of terms with either
+
+ -- a fun with bit-string or export-fun in its
+ environment when encoded toward a not yet established
+ (pending) connection
+
+ -- or a fun with a binary/bitstring, in its
+ environment, referring to an off-heap binary (larger
+ than 64 bytes).
+
+ The symptom could be failed decoding on the receiving
+ side leading to aborted connection. Fix OTP-18093 is a
+ workaround for theses bugs that makes the VM accepts
+ such faulty encoded funs.
+
+ The first encoding bug toward pending connection exists
+ only in OTP 23 and 24, but the second one exists also
+ on OTP 25.
+
+
+ OTP-18144 Application(s): erts
+ Related Id(s): GH-5981
+
+ Fixed emulator crash that could happen during crashdump
+ generation of ETS tables with options ordered_set and
+ {write_concurrency,true}.
+
+
+ OTP-18160 Application(s): erts
+ Related Id(s): PR-6103
+
+ Retrieval of monotonic and system clock resolution on
+ MacOS could cause a crash and/or erroneous results.
+
+
+ OTP-18161 Application(s): erts
+ Related Id(s): PR-6081
+
+ Fix bug where the max allowed size of erl +hmax was
+ lower than what was allowed by process_flag.
+
+
+ OTP-18201 Application(s): erts
+
+ On computers with ARM64 (AArch64) processors, the JIT
+ could generate incorrect code when more than 4095 bits
+ were skipped at the tail end of a binary match.
+
+
+ OTP-18216 Application(s): erts
+ Related Id(s): GH-6239, PR-6240
+
+ In rare circumstances, an is_binary/1 guard test could
+ succeed when given a large integer.
+
+
+ OTP-18218 Application(s): erts
+ Related Id(s): ERIERL-855
+
+ Fix bug causing ets:info (and sometimes ets:whereis) to
+ return 'undefined' for an existing table if a
+ concurrent process were doing ets:insert with a long
+ list on the same table.
+
+
+ OTP-18222 Application(s): erts
+ Related Id(s): GH-6242, PR-6248
+
+ Fix writing and reading of more than 2 GB in a single
+ read/write operation on macOS. Before this fix
+ attempting to read/write more than 2GB would result in
+ {error,einval}.
+
+
+ OTP-18243 Application(s): erts
+ Related Id(s): GH-6247, PR-6258
+
+ Fix bug sometimes causing emulator crash at node
+ shutdown when there are pending connections. Only seen
+ when running duel distribution protocols, inet_drv and
+ inet_tls_dist.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17340 Application(s): erts
+ Related Id(s): PR-6133
+
+ Yield when adjusting large process message queues due
+ to
+
+ -- copying terms from a literal area prior to removing
+ the literal area.
+
+ -- changing the message_queue_data state from on_heap
+ to off_heap.
+
+ The message queue adjustment work will now be
+ interleaved with all other types of work that processes
+ have to do, even other message queue adjustment work.
+
+
+ OTP-18032 Application(s): erts, kernel
+
+ Add rudimentary debug feature (option) for the
+ inet-driver based sockets, such as gen_tcp and gen_udp.
+
+
+ OTP-18107 Application(s): erts, kernel
+ Related Id(s): PR-6009
+
+ Introduced the hidden and dist_listen options to
+ net_kernel:start/2.
+
+ Also documented the -dist_listen command line argument
+ which was erroneously documented as a kernel parameter
+ and not as a command line argument.
+
+
+ OTP-18109 Application(s): erts
+
+ New documentation chapter "Debugging NIFs and Port
+ Drivers" under Interoperability Tutorial.
+
+
+ OTP-18199 Application(s): erts, stdlib
+ Related Id(s): PR-5790
+
+ Add new API function erl_features:configurable/0
+
+
+ Full runtime dependencies of erts-13.1: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- eunit-2.8 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The eunit-2.8 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18181 Application(s): eunit
+ Related Id(s): ERL-97, GH-3064, PR-5461
+
+ With this change, Eunit can optionally not try to
+ execute related module with "_tests" suffix. This might
+ be used for avoiding duplicated executions when source
+ and test modules are located in the same folder.
+
+
+ Full runtime dependencies of eunit-2.8: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.1 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-8.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18118 Application(s): inets
+
+ Add httpc:ssl_verify_host_options/1 to help setting
+ default ssl options for the https client.
+
+
+ OTP-18178 Application(s): inets, ssh
+ Related Id(s): ERIERL-833, ERIERL-834, ERIERL-835
+
+ This change fixes dialyzer warnings generated for
+ inets/httpd examples (includes needed adjustment of
+ spec for ssh_sftp module).
+
+
+ OTP-18193 Application(s): inets
+ Related Id(s): GH-6122
+
+ Remove documentation of no longer supported callback.
+
+
+ Full runtime dependencies of inets-8.1: erts-6.0, kernel-6.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- jinterface-1.13.1 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The jinterface-1.13.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18215 Application(s): jinterface
+ Related Id(s): PR-6154
+
+ Fix javadoc build error by adding option -encoding
+ UTF-8.
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.5 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.5 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17934 Application(s): erts, kernel, stdlib
+ Related Id(s): PR-6007
+
+ Fixed inconsistency bugs in global due to
+ nodeup/nodedown messages not being delivered
+ before/after traffic over connections. Also fixed
+ various other inconsistency bugs and deadlocks in both
+ global_group and global.
+
+ As building blocks for these fixes, a new BIF
+ erlang:nodes/2 has been introduced and
+ net_kernel:monitor_nodes/2 has been extended.
+
+ The -hidden and -connect_all command line arguments did
+ not work if multiple instances were present on the
+ command line which has been fixed. The new kernel
+ parameter connect_all has also been introduced in order
+ to replace the -connect_all command line argument.
+
+
+ OTP-18091 Application(s): erts, kernel
+ Related Id(s): #5789
+
+ Fixed IPv6 multicast_if and membership socket options.
+
+
+ OTP-18102 Application(s): erts, kernel
+ Related Id(s): #5904
+
+ Fixed issue with inet:getifaddrs hanging on pure IPv6
+ Windows
+
+
+ OTP-18115 Application(s): kernel
+ Related Id(s): PR-5939
+
+ The type specifications for inet:getopts/2 and
+ inet:setopts/2 have been corrected regarding SCTP
+ options.
+
+
+ OTP-18121 Application(s): kernel
+ Related Id(s): PR-5972
+
+ The type specifications for inet:parse_* have been
+ tightened.
+
+
+ OTP-18171 Application(s): kernel
+ Related Id(s): PR-6131
+
+ Fix gen_tcp:connect/3 spec to include the inet_backend
+ option.
+
+
+ OTP-18229 Application(s): kernel
+ Related Id(s): PR-6212
+
+ Fix bug where using a binary as the format when calling
+ logger:log(Level, Format, Args) (or any other logging
+ function) would cause a crash or incorrect logging.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18032 Application(s): erts, kernel
+
+ Add rudimentary debug feature (option) for the
+ inet-driver based sockets, such as gen_tcp and gen_udp.
+
+
+ OTP-18107 Application(s): erts, kernel
+ Related Id(s): PR-6009
+
+ Introduced the hidden and dist_listen options to
+ net_kernel:start/2.
+
+ Also documented the -dist_listen command line argument
+ which was erroneously documented as a kernel parameter
+ and not as a command line argument.
+
+
+ OTP-18163 Application(s): kernel
+ Related Id(s): PR-6058, PR-6275
+
+ Scope and group monitoring have been introduced in pg.
+ For more information see the documentation of
+ pg:monitor_scope(), pg:monitor(), and pg:demonitor().
+
+
+ OTP-18232 Application(s): kernel
+ Related Id(s): OTP-17843, PR-6264
+
+ A new function global:disconnect/0 has been introduced
+ with which one can cleanly disconnect a node from all
+ other nodes in a cluster of global nodes.
+
+
+ Full runtime dependencies of kernel-8.5: crypto-5.0, erts-13.1,
+ sasl-3.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- megaco-4.4.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The megaco-4.4.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18179 Application(s): megaco
+ Related Id(s): ERIERL-836
+
+ Fixed various dialyzer related issues in the examples
+ and the application proper.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp,
+ parsetools, stdlib, xmerl
+ Related Id(s): PR-5965
+
+ There is a new configure option,
+ --enable-deterministic-build, which will apply the
+ deterministic compiler option when building Erlang/OTP.
+ The deterministic option has been improved to eliminate
+ more sources of non-determinism in several
+ applications.
+
+
+ Full runtime dependencies of megaco-4.4.1: asn1-3.0, debugger-4.0,
+ erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- observer-2.13 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The observer-2.13 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18151 Application(s): observer
+ Related Id(s): PR-6063
+
+ Fixed units in gui.
+
+
+ Full runtime dependencies of observer-2.13: erts-11.0, et-1.5,
+ kernel-8.1, runtime_tools-1.19, stdlib-3.13, wx-1.2
+
+
+ ---------------------------------------------------------------------
+ --- parsetools-2.4.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The parsetools-2.4.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp,
+ parsetools, stdlib, xmerl
+ Related Id(s): PR-5965
+
+ There is a new configure option,
+ --enable-deterministic-build, which will apply the
+ deterministic compiler option when building Erlang/OTP.
+ The deterministic option has been improved to eliminate
+ more sources of non-determinism in several
+ applications.
+
+
+ Full runtime dependencies of parsetools-2.4.1: erts-6.0, kernel-3.0,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.13.1 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.13.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18154 Application(s): public_key
+ Related Id(s): PR-6002
+
+ Support more Linux distributions in cacerts_load/0.
+
+
+ OTP-18189 Application(s): public_key
+ Related Id(s): ERIERL-829
+
+ Correct asn1 typenames available in type
+ pki_asn1_type()
+
+
+ OTP-18205 Application(s): crypto, public_key
+ Related Id(s): GH-6219
+
+ Sign/verify does now behave as in OTP-24 and earlier
+ for eddsa.
+
+
+ Full runtime dependencies of public_key-1.13.1: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.13.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.13.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17115 Application(s): snmp
+ Related Id(s): ERIERL-456
+
+ Improved the get-bulk response max size calculation.
+ Its now possible to configure 'empty pdu size', see
+ appendix c for more info.
+
+
+ OTP-18180 Application(s): snmp
+ Related Id(s): ERIERL-837
+
+ Fix various example dialyzer issues
+
+
+ Full runtime dependencies of snmp-5.13.1: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.15 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.15 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18220 Application(s): ssh
+ Related Id(s): ERIERL-661, ERIERL-666
+
+ Handling rare race condition at channel close.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18134 Application(s): ssh
+ Related Id(s): GH-6021
+
+ New ssh option no_auth_needed to skip the ssh
+ authentication. Use with caution!
+
+
+ OTP-18178 Application(s): inets, ssh
+ Related Id(s): ERIERL-833, ERIERL-834, ERIERL-835
+
+ This change fixes dialyzer warnings generated for
+ inets/httpd examples (includes needed adjustment of
+ spec for ssh_sftp module).
+
+
+ OTP-18196 Application(s): ssh
+
+ The new function ssh:daemon_replace_options/2 makes it
+ possible to change the Options in a running SSH server.
+
+ Established connections are not affected, only those
+ created after the call to this new function.
+
+
+ OTP-18207 Application(s): ssh
+ Related Id(s): PR-6231
+
+ Add a timeout as option max_initial_idle_time. It
+ closes a connection that does not allocate a channel
+ within the timeout time.
+
+ For more information about timeouts, see the Timeouts
+ section in the User's Guide Hardening chapter.
+
+
+ Full runtime dependencies of ssh-4.15: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.8.4 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.8.4 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18044 Application(s): ssl
+
+ Reject unexpected application data in all relevant
+ places for all TLS versions. Also, handle TLS-1.3
+ middlebox compatibility with more care. This will make
+ malicious connections fail early and further, mitigate
+ possible DoS attacks, that would be caught by the
+ handshake timeout.
+
+ Thanks to Aina Toky Rasoamanana and Olivier Levillain
+ from Télécom SudParis for alerting us of the issues in
+ our implementation.
+
+
+ OTP-18099 Application(s): ssl
+ Related Id(s): PR-6287
+
+ With this change, value of cacertfile option will be
+ adjusted before loading certs from the file.
+ Adjustments include converting relative paths to
+ absolute and converting symlinks to actual file path.
+
+ Thanks to Marcus Johansson
+
+
+ OTP-18191 Application(s): ssl
+ Related Id(s): GH-6105
+
+ In TLS-1.3, if chain certs are missing (so server auth
+ domain adherence can not be determined) send peer cert
+ and hope the server is able to recreate a chain in its
+ auth domain.
+
+
+ OTP-18195 Application(s): ssl
+
+ Make sure periodical refresh of CA certificate files
+ repopulates cache properly.
+
+
+ OTP-18203 Application(s): ssl
+ Related Id(s): PR-5996
+
+ Correct internal CRL cache functions to use internal
+ format consistently.
+
+
+ OTP-18219 Application(s): ssl
+ Related Id(s): GH-6241, PR-6249
+
+ Incorrect handling of client middlebox negotiation for
+ TLS-1.3 could result in that a TLS-1.3 server would not
+ use middlebox mode although the client was expecting it
+ too and failing the negotiation with unexpected
+ message.
+
+
+ OTP-18233 Application(s): ssl
+ Related Id(s): GH-6244, PR-6270
+
+ If the "User" process, the process starting the TLS
+ connection, gets killed in the middle of spawning the
+ dynamic connection tree make sure we do not leave any
+ processes behind.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18241 Application(s): ssl
+
+ *** HIGHLIGHT ***
+
+ A vulnerability has been discovered and corrected. It
+ is registered as CVE-2022-37026 "Client Authentication
+ Bypass". Corrections have been released on the
+ supported tracks with patches 23.3.4.15, 24.3.4.2, and
+ 25.0.2. The vulnerability might also exist in older OTP
+ versions. We recommend that impacted users upgrade to
+ one of these versions or later on the respective
+ tracks. OTP 25.1 would be an even better choice.
+ Impacted are those who are running an ssl/tls/dtls
+ server using the ssl application either directly or
+ indirectly via other applications. For example via
+ inets (httpd), cowboy, etc. Note that the vulnerability
+ only affects servers that request client certification,
+ that is sets the option {verify, verify_peer}.
+
+
+ Full runtime dependencies of ssl-10.8.4: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The stdlib-4.1 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-17934 Application(s): erts, kernel, stdlib
+ Related Id(s): PR-6007
+
+ Fixed inconsistency bugs in global due to
+ nodeup/nodedown messages not being delivered
+ before/after traffic over connections. Also fixed
+ various other inconsistency bugs and deadlocks in both
+ global_group and global.
+
+ As building blocks for these fixes, a new BIF
+ erlang:nodes/2 has been introduced and
+ net_kernel:monitor_nodes/2 has been extended.
+
+ The -hidden and -connect_all command line arguments did
+ not work if multiple instances were present on the
+ command line which has been fixed. The new kernel
+ parameter connect_all has also been introduced in order
+ to replace the -connect_all command line argument.
+
+
+ OTP-18139 Application(s): stdlib
+ Related Id(s): PR-6060
+
+ Fix the public_key:ssh* functions to be listed under
+ the correct release in the Removed Functionality User's
+ Guide.
+
+
+ OTP-18142 Application(s): stdlib
+ Related Id(s): PR-6078
+
+ The type spec for format_status/1 in gen_statem,
+ gen_server and gen_event has been corrected to state
+ that the return value is of the same type as the
+ argument (instead of the same value as the argument).
+
+
+ OTP-18146 Application(s): stdlib
+ Related Id(s): PR-5983
+
+ If the timer server child spec was already present in
+ kernel_sup but it was not started, the timer server
+ would fail to start with an {error, already_present}
+ error instead of restarting the server.
+
+
+ OTP-18239 Application(s): stdlib
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ When changing callback module in gen_statem the
+ state_enter calls flag from the old module was used in
+ for the first event in the new module, which could
+ confuse the new module and cause malfunction. This bug
+ has been corrected.
+
+ With this change some sys debug message formats have
+ been modified, which can be a problem for debug code
+ relying on the format.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp,
+ parsetools, stdlib, xmerl
+ Related Id(s): PR-5965
+
+ There is a new configure option,
+ --enable-deterministic-build, which will apply the
+ deterministic compiler option when building Erlang/OTP.
+ The deterministic option has been improved to eliminate
+ more sources of non-determinism in several
+ applications.
+
+
+ OTP-18166 Application(s): stdlib
+ Related Id(s): PR-6108
+
+ The rfc339_to_system_time/1,2 functions now allows the
+ minutes part to be omitted from the time zone.
+
+
+ OTP-18194 Application(s): stdlib
+ Related Id(s): PR-6199
+
+ The receive statement in gen_event has been optimized
+ to not use selective receive (which was never needed,
+ and could cause severe performance degradation under
+ heavy load).
+
+
+ OTP-18199 Application(s): erts, stdlib
+ Related Id(s): PR-5790
+
+ Add new API function erl_features:configurable/0
+
+
+ Full runtime dependencies of stdlib-4.1: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-8.4, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.30 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The xmerl-1.3.30 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18165 Application(s): asn1, compiler, diameter, megaco, otp,
+ parsetools, stdlib, xmerl
+ Related Id(s): PR-5965
+
+ There is a new configure option,
+ --enable-deterministic-build, which will apply the
+ deterministic compiler option when building Erlang/OTP.
+ The deterministic option has been improved to eliminate
+ more sources of non-determinism in several
+ applications.
+
+
+ Full runtime dependencies of xmerl-1.3.30: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.2.1.README.txt b/release-notes/OTP-25.2.1.README.txt
new file mode 100644
index 0000000..84fbac4
--- /dev/null
+++ b/release-notes/OTP-25.2.1.README.txt
@@ -0,0 +1,182 @@
+Patch Package: OTP 25.2.1
+Git Tag: OTP-25.2.1
+Date: 2023-01-17
+Trouble Report Id: OTP-18357, OTP-18358, OTP-18362, OTP-18363,
+ OTP-18365, OTP-18368, OTP-18379, OTP-18383,
+ OTP-18388
+Seq num: ERIERL-879, ERIERL-895, ERIERL-904,
+ ERIERL-905, GH-6558
+System: OTP
+Release: 25
+Application: common_test-1.23.3, compiler-8.2.3,
+ erts-13.1.4, inets-8.2.1, kernel-8.5.3,
+ snmp-5.13.3
+Predecessor: OTP 25.2
+
+ Check out the git tag OTP-25.2.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- common_test-1.23.3 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.23.3 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18363 Application(s): common_test
+ Related Id(s): ERIERL-879
+
+ Change timeout to infinity for gen_server calls in
+ cth_log_redirect
+
+
+ Full runtime dependencies of common_test-1.23.3: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.3 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18365 Application(s): compiler
+
+ Fixed a bug that could cause legal code to fail
+ validation.
+
+
+ OTP-18368 Application(s): compiler
+
+ Eliminated a rare crash in the beam_types module.
+
+
+ Full runtime dependencies of compiler-8.2.3: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.1.4 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.1.4 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18383 Application(s): erts
+ Related Id(s): ERIERL-905
+
+ Fixed a bug in selective receive optimization that
+ could crash 32-bit emulators.
+
+
+ OTP-18388 Application(s): erts
+ Related Id(s): OTP-17462, PR-6662
+
+ A race condition which was very rarely triggered could
+ cause the signal queue of a process to become
+ inconsistent causing the runtime system to crash.
+
+
+ Full runtime dependencies of erts-13.1.4: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.2.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-8.2.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18362 Application(s): inets
+ Related Id(s): ERIERL-895, GH-6558
+
+ fixes a missing case of the type specification for
+ httpd:info/2/3/4
+
+
+ Full runtime dependencies of inets-8.2.1: erts-6.0, kernel-6.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.5.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.5.3 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1.3 (first satisfied in OTP 25.2)
+ -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18357 Application(s): kernel
+ Related Id(s): #6509
+
+ The tcp connect option 'bind_to_device' could not be
+ used with inet_backend = 'socket'. 'inet' requires
+ value type binarry() and 'socket' requires value type
+ 'string()'.
+
+
+ OTP-18358 Application(s): kernel
+ Related Id(s): #6528
+
+ Minor issue processing options when calling
+ gen_tcp:connect with a sockaddr() and inet_backend =
+ socket.
+
+
+ Full runtime dependencies of kernel-8.5.3: crypto-5.0, erts-13.1.3,
+ sasl-3.0, stdlib-4.1.1
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.13.3 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.13.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18379 Application(s): snmp
+ Related Id(s): ERIERL-904
+
+ Single threaded agent crash when vacm table not
+ properly initiated.
+
+
+ Full runtime dependencies of snmp-5.13.3: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.2.2.README.txt b/release-notes/OTP-25.2.2.README.txt
new file mode 100644
index 0000000..5722398
--- /dev/null
+++ b/release-notes/OTP-25.2.2.README.txt
@@ -0,0 +1,40 @@
+Patch Package: OTP 25.2.2
+Git Tag: OTP-25.2.2
+Date: 2023-01-30
+Trouble Report Id: OTP-18409
+Seq num: ERIERL-908
+System: OTP
+Release: 25
+Application: ftp-1.1.3
+Predecessor: OTP 25.2.1
+
+ Check out the git tag OTP-25.2.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- ftp-1.1.3 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ftp-1.1.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18409 Application(s): ftp
+ Related Id(s): ERIERL-908, PR-6721
+
+ Fixes calls to ftp:nlist/2 returning {error, epath}
+ when the file / folder exists
+
+
+ Full runtime dependencies of ftp-1.1.3: erts-7.0, kernel-6.0,
+ runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.2.3.README.txt b/release-notes/OTP-25.2.3.README.txt
new file mode 100644
index 0000000..c573c12
--- /dev/null
+++ b/release-notes/OTP-25.2.3.README.txt
@@ -0,0 +1,150 @@
+Patch Package: OTP 25.2.3
+Git Tag: OTP-25.2.3
+Date: 2023-02-17
+Trouble Report Id: OTP-18386, OTP-18415, OTP-18417, OTP-18421,
+ OTP-18433, OTP-18461, OTP-18462, OTP-18467
+Seq num: ERIERL-888, ERIERL-890, GH-6772, GH-6807,
+ GH-6846
+System: OTP
+Release: 25
+Application: erts-13.1.5, inets-8.2.2, ssh-4.15.2,
+ ssl-10.8.7
+Predecessor: OTP 25.2.2
+
+ Check out the git tag OTP-25.2.3, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-13.1.5 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.1.5 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18415 Application(s): erts
+
+ Comparisons between small numbers and pids or ports
+ would in some edge cases say that the number was
+ greater than the pid or port, violating the term order.
+
+
+ OTP-18421 Application(s): erts
+ Related Id(s): PR-6806
+
+ process_info(Pid, status) when Pid /= self() could
+ return an erroneous result.
+
+
+ Full runtime dependencies of erts-13.1.5: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.2.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-8.2.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18461 Application(s): inets
+ Related Id(s): ERIERL-890
+
+ Ensure graceful shutdown
+
+
+ OTP-18462 Application(s): inets
+ Related Id(s): GH-6846
+
+ Return type of the type specification for function
+ httpc:cookie_header/{1,2,3} has been fixed from -spec
+ cookie_header(url()) -> [{ field(), value() }] |
+ {error, Reason} to -spec cookie_header(url()) -> {
+ field(), value() } | {error, Reason}
+
+
+ Full runtime dependencies of inets-8.2.2: erts-6.0, kernel-6.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.15.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.15.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18386 Application(s): ssh
+ Related Id(s): PR-6611
+
+ With this change, ssh application does not crash when
+ formatting some of info reports for unsuccessful
+ connections.
+
+
+ OTP-18417 Application(s): ssh
+ Related Id(s): ERIERL-888, DAFH-1349, IA18357
+
+ With this change, ssh does not log extensively long
+ messages.
+
+
+ Full runtime dependencies of ssh-4.15.2: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.8.7 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.8.7 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Improvements and New Features ---
+
+ OTP-18433 Application(s): ssl
+ Related Id(s): GH-6772
+
+ Maximize compatibility by ignoring change_cipher_spec
+ during handshake even if middle_box_mode is not
+ negotiated (mandated by client)
+
+
+ OTP-18467 Application(s): ssl
+ Related Id(s): GH-6807
+
+ Move assert of middlebox message after an
+ hello_retry_request to maximize interoperability. Does
+ not changes semantics of the protocol only allows
+ unexpected message delay from server.
+
+
+ Full runtime dependencies of ssl-10.8.7: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.2.README.txt b/release-notes/OTP-25.2.README.txt
new file mode 100644
index 0000000..9516633
--- /dev/null
+++ b/release-notes/OTP-25.2.README.txt
@@ -0,0 +1,782 @@
+Patch Package: OTP 25.2
+Git Tag: OTP-25.2
+Date: 2022-12-14
+Trouble Report Id: OTP-18213, OTP-18250, OTP-18251, OTP-18252,
+ OTP-18255, OTP-18256, OTP-18257, OTP-18267,
+ OTP-18268, OTP-18269, OTP-18270, OTP-18273,
+ OTP-18280, OTP-18281, OTP-18283, OTP-18284,
+ OTP-18289, OTP-18291, OTP-18292, OTP-18293,
+ OTP-18294, OTP-18295, OTP-18296, OTP-18298,
+ OTP-18302, OTP-18304, OTP-18306, OTP-18307,
+ OTP-18308, OTP-18313, OTP-18314, OTP-18315,
+ OTP-18317, OTP-18319, OTP-18321, OTP-18322,
+ OTP-18323, OTP-18324, OTP-18325, OTP-18326,
+ OTP-18328, OTP-18332, OTP-18333, OTP-18336,
+ OTP-18339, OTP-18343, OTP-18345, OTP-18347,
+ OTP-18349, OTP-18351, OTP-18352
+Seq num: ERIERL-865, ERIERL-867, ERIERL-875,
+ ERIERL-881, ERIERL-885, ERL-6435, GH-5823,
+ GH-6106, GH-6245, GH-6290, GH-6307, GH-6332,
+ GH-6341, GH-6363, GH-6373, GH-6387, GH-6393,
+ GH-6419, GH-6426, GH-6435, GH-6439, GH-6461,
+ GH-6465, GH-6466, GH-6473, GH-6496, GH-6501,
+ GH-6518
+System: OTP
+Release: 25
+Application: common_test-1.23.2, compiler-8.2.2,
+ dialyzer-5.0.4, erts-13.1.3, ftp-1.1.2,
+ inets-8.2, kernel-8.5.2, megaco-4.4.2,
+ mnesia-4.21.3, observer-2.14, os_mon-2.8,
+ public_key-1.13.2, snmp-5.13.2, ssh-4.15.1,
+ ssl-10.8.6, stdlib-4.2, wx-2.2.1
+Predecessor: OTP 25.1.2
+
+ Check out the git tag OTP-25.2, and build a full OTP system including
+ documentation. Apply one or more applications from this build as
+ patches to your installation using the 'otp_patch_apply' tool. For
+ information on install requirements, see descriptions for each
+ application version below.
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18324 Application(s): erts, kernel
+ Related Id(s): GH-6461, PR-6481
+
+ The inet:setopts/2 {reuseaddr, true} option will now be
+ ignored on Windows unless the socket is an UDP socket.
+ For more information see the documentation of the
+ reuseaddr option part of the documentation of
+ inet:setopts/2.
+
+ Prior to OTP 25 the {reuseaddr, true} option was
+ ignored for all sockets on Windows, but as of OTP 25.0
+ this was changed so that it was not ignored for any
+ sockets.
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.23.2 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.23.2 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18255 Application(s): common_test
+ Related Id(s): PR-6314
+
+ Fix starting of peer nodes on old releases when the
+ compile server was active and the current Erlang
+ installation contained non-latin1 characters in its
+ path.
+
+
+ Full runtime dependencies of common_test-1.23.2: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18268 Application(s): compiler
+ Related Id(s): GH-6332
+
+ Line number in compiler messages would be truncated to
+ 4 digits for line numbers greater than 9999.
+
+
+ OTP-18273 Application(s): compiler
+ Related Id(s): GH-6341
+
+ In rare circumstance, matching a binary as part of a
+ receive clause could cause the compiler to terminate
+ because of an internal consistency check failure.
+
+
+ OTP-18308 Application(s): compiler
+ Related Id(s): GH-6426
+
+ Compiling a function with complex bit syntax matching
+ such as f(<<X:0, _:X>>, <<Y:0, _:Y>>) -> ok. could
+ crash the compiler.
+
+
+ OTP-18325 Application(s): compiler, stdlib
+ Related Id(s): GH-6465, GH-6466
+
+ It is not allowed to call functions from guards. The
+ compiler failed to reject a call in a guard when done
+ by constructing a record with a default initialization
+ expression that called a function.
+
+
+ OTP-18336 Application(s): compiler, stdlib
+ Related Id(s): GH-6501, PR-6502
+
+ The compiler could crash when using a record with
+ complex field initialization expression as a filter in
+ a list comprehension.
+
+
+ Full runtime dependencies of compiler-8.2.2: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.0.4 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-5.0.4 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18307 Application(s): dialyzer
+ Related Id(s): GH-6419, GH-6473
+
+ Dialyzer would crash when attempting to analyze a bit
+ syntax segment size having an literal non-integer size
+ such as [].
+
+
+ OTP-18347 Application(s): dialyzer
+ Related Id(s): GH-6518, PR-6525
+
+ Dialyzer could crash when trying to analyze a
+ convoluted nested expression involving funs,
+
+
+ Full runtime dependencies of dialyzer-5.0.4: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.1.3 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.1.3 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18256 Application(s): erts
+ Related Id(s): PR-6316
+
+ Fix perf/gdb JIT symbols to not contain
+ CodeInfoPrologue for the JIT internal module
+ erts_beamasm.
+
+
+ OTP-18281 Application(s): erts
+ Related Id(s): PR-4840
+
+ Fixed minor memory leaks.
+
+
+ OTP-18284 Application(s): erts
+ Related Id(s): PR-6305
+
+ Fix bugs in ets:insert and ets:insert_new when called
+ with a list of tuples to insert while a concurrent
+ process either deletes or renames the table. The table
+ deletion could be done with ets:delete/1 or be caused
+ by termination of the table owning process.
+
+ Symptoms are either VM crash or strange incorrect
+ behavior from the insert operation. The risk of
+ triggering the bugs increases with the length of the
+ list of tuple to insert. Bugs exist since OTP 23.0.
+
+
+ OTP-18294 Application(s): erts
+ Related Id(s): PR-6390
+
+ Boost execution of scheduled thread progress jobs. This
+ to prevent memory exhaustion in extremely rapid
+ allocation/deallocation scenarios, such as repeated ETS
+ table creations/deletions.
+
+
+ OTP-18295 Application(s): erts
+
+ Fix segv crash during crash dumping an ETS table doing
+ ets:delete_all_objects.
+
+
+ OTP-18296 Application(s): erts, kernel
+ Related Id(s): OTP-16464
+
+ Spec for function net:if_names/0 incorrect
+
+
+ OTP-18306 Application(s): erts
+ Related Id(s): GH-6393, PR-6401
+
+ Fix bug in binary_to_term decoding a binary term 2Gbyte
+ or larger.
+
+
+ OTP-18313 Application(s): erts
+ Related Id(s): PR-6456
+
+ Documentation of erlang:module_loaded/1 has been
+ adjusted:
+
+ -- It did not previously say that the BIF only returns
+ true for modules loaded as current code.
+
+ -- The warning claiming that the BIF should only be
+ used by the code server has been removed.
+
+
+ OTP-18321 Application(s): erts
+
+ Fix list_to_atom/1 for negative code points. Could
+ either return with a positive code point or fail with
+ an incorrect exception.
+
+
+ OTP-18322 Application(s): erts
+ Related Id(s): PR-6479
+
+ Fix rare bug causing VM crash when sending to a pid of
+ a spawning process returned from erlang:processes/0.
+
+ Only seen when provoked by system process
+ literal_area_collector, triggered by a module purge
+ operation, on a VM started with +Meamin (no customized
+ allocators).
+
+
+ OTP-18323 Application(s): erts, kernel
+ Related Id(s): #6476
+
+ gen_udp:open/2 with option(s) add_membership or
+ drop_membership would drop earlier options.
+
+
+ OTP-18324 Application(s): erts, kernel
+ Related Id(s): GH-6461, PR-6481
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The inet:setopts/2 {reuseaddr, true} option will now be
+ ignored on Windows unless the socket is an UDP socket.
+ For more information see the documentation of the
+ reuseaddr option part of the documentation of
+ inet:setopts/2.
+
+ Prior to OTP 25 the {reuseaddr, true} option was
+ ignored for all sockets on Windows, but as of OTP 25.0
+ this was changed so that it was not ignored for any
+ sockets.
+
+
+ OTP-18328 Application(s): erts
+ Related Id(s): GH-6439, PR-6440
+
+ Fix bug in binary_to_term decoding a list of length 1G
+ or longer.
+
+
+ OTP-18343 Application(s): erts
+ Related Id(s): GH-6496
+
+ Fix bug in binary_to_term (and distributed receive)
+ when decoding a large map (>32 keys) with unsorted
+ small maps (<= 32) as keys of the large map.
+
+ This was only a problem if the term was encoded by
+ erl_interface, jinterface or otherwise, as the VM
+ itself always encodes small maps with sorted keys.
+
+ The "binary_to_term" would appear as successful but the
+ created large map was internally inconsistent. The
+ smaller key-maps could not be found with maps:get and
+ friends. Other operations such as map compare and merge
+ could probably also give incorrect results.
+
+
+ OTP-18345 Application(s): erts
+ Related Id(s): GH-6387, PR-6396
+
+ Fix Windows bug in open_port({spawn, Command}, ..) when
+ Command is found via the OS search PATH and that
+ directory path contains white spaces. The port program
+ would start but the command line arguments to it could
+ be incorrect.
+
+
+ Full runtime dependencies of erts-13.1.3: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- ftp-1.1.2 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ftp-1.1.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18252 Application(s): ftp
+ Related Id(s): GH-5823
+
+ fix unexpected result ok when calling ftp:nlist
+ repeatedly
+
+
+ Full runtime dependencies of ftp-1.1.2: erts-7.0, kernel-6.0,
+ runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.2 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-8.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18250 Application(s): inets
+
+ This change allows body requests to httpc:request/5 be
+ an iolist()
+
+
+ OTP-18251 Application(s): inets
+ Related Id(s): GH-6245
+
+ addition of type specs in httpc.erl
+
+
+ OTP-18280 Application(s): inets
+ Related Id(s): GH-6290, PR-6291
+
+ httpc: Add support for HTTP 308 status code
+
+
+ Full runtime dependencies of inets-8.2: erts-6.0, kernel-6.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.5.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.5.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1.3 (first satisfied in OTP 25.2)
+ -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18270 Application(s): kernel
+ Related Id(s): #6331
+
+ Fixed shutdown crash in gen_tcp socket backend, when
+ the other end closed the socket.
+
+
+ OTP-18289 Application(s): kernel, stdlib
+ Related Id(s): PR-6343
+
+ erl_tar can now read gzip-compressed tar files that are
+ padded. There is a new option compressed_one for
+ file:open/2 that will read a single member from a gzip
+ file,
+
+
+ OTP-18291 Application(s): kernel
+ Related Id(s): PR-6382
+
+ Fix os:cmd to not translate all exceptions thrown to
+ badarg. For example emfile from erlang:open_port was
+ translated to badarg.
+
+ This bug has existed since Erlang/OTP 24.
+
+
+ OTP-18296 Application(s): erts, kernel
+ Related Id(s): OTP-16464
+
+ Spec for function net:if_names/0 incorrect
+
+
+ OTP-18315 Application(s): kernel
+
+ Missing ctrl option name transation for TOS and TTL (on
+ FreeBSD) when using gen_udp with the 'socket'
+ inet_backend.
+
+
+ OTP-18323 Application(s): erts, kernel
+ Related Id(s): #6476
+
+ gen_udp:open/2 with option(s) add_membership or
+ drop_membership would drop earlier options.
+
+
+ OTP-18324 Application(s): erts, kernel
+ Related Id(s): GH-6461, PR-6481
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The inet:setopts/2 {reuseaddr, true} option will now be
+ ignored on Windows unless the socket is an UDP socket.
+ For more information see the documentation of the
+ reuseaddr option part of the documentation of
+ inet:setopts/2.
+
+ Prior to OTP 25 the {reuseaddr, true} option was
+ ignored for all sockets on Windows, but as of OTP 25.0
+ this was changed so that it was not ignored for any
+ sockets.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18293 Application(s): kernel
+
+ The distribution socket option handling in
+ inet_tcp_dist has been cleaned up to clarify which were
+ mandatory and which just had default values.
+
+
+ OTP-18317 Application(s): kernel
+
+ Improve warning message format for gen_tcp_socket.
+
+
+ Full runtime dependencies of kernel-8.5.2: crypto-5.0, erts-13.1.3,
+ sasl-3.0, stdlib-4.1.1
+
+
+ ---------------------------------------------------------------------
+ --- megaco-4.4.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The megaco-4.4.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18298 Application(s): megaco
+
+ A very minor improvement to the measurement tool.
+
+
+ Full runtime dependencies of megaco-4.4.2: asn1-3.0, debugger-4.0,
+ erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.21.3 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.21.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18319 Application(s): mnesia
+ Related Id(s): ERIERL-875
+
+ Fixed crash which could happen during startup if too
+ many decisions where sent from remote nodes.
+
+
+ Full runtime dependencies of mnesia-4.21.3: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- observer-2.14 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The observer-2.14 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18339 Application(s): observer
+
+ A WX event race could causes a crash in when handling
+ socket or port info.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18269 Application(s): observer
+ Related Id(s): PR-6030
+
+ Improve the nodes menu to include more nodes.
+
+
+ Full runtime dependencies of observer-2.14: erts-11.0, et-1.5,
+ kernel-8.1, runtime_tools-1.19, stdlib-3.13, wx-1.2
+
+
+ ---------------------------------------------------------------------
+ --- os_mon-2.8 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The os_mon-2.8 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18304 Application(s): os_mon
+ Related Id(s): PR-6385
+
+ The disk_space_check_interval configuration parameter
+ of disksup can now be set to values smaller than a
+ minute.
+
+
+ Full runtime dependencies of os_mon-2.8: erts-6.0, kernel-3.0,
+ sasl-2.4, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.13.2 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.13.2 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18333 Application(s): public_key
+ Related Id(s): GH-6363
+
+ Disregard LDAP URIs when HTTP URIs are expected.
+
+
+ Full runtime dependencies of public_key-1.13.2: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.13.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.13.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18352 Application(s): snmp
+ Related Id(s): ERIERL-881
+
+ Explicitly close the socket(s) when terminating
+ (default-) net-if process.
+
+
+ Full runtime dependencies of snmp-5.13.2: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.15.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.15.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18326 Application(s): ssh
+ Related Id(s): ERIERL-865
+
+ graceful shutdown of ssh_conection_handler when
+ connection is closed by peer
+
+
+ Full runtime dependencies of ssh-4.15.1: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.8.6 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.8.6 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18314 Application(s): ssl
+ Related Id(s): GH-6373
+
+ With this change, tls_sender process is hibernated
+ after sufficient inactivity.
+
+
+ OTP-18332 Application(s): ssl
+ Related Id(s): ERL-6435, GH-6435, PR-6435
+
+ Correct handling of legacy schemes so that ECDSA certs
+ using sha1 may be used for some TLS-1.3 configurations.
+
+
+ OTP-18349 Application(s): ssl
+
+ With this change, tls_sender does not cause logger
+ crash upon key update.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18257 Application(s): ssl
+ Related Id(s): GH-6307
+
+ Enhance warning message
+
+
+ OTP-18267 Application(s): ssl
+ Related Id(s): GH-6106, PR-6228
+
+ Provide server option to make certificate_authorities
+ extension in the TLS-1.3 servers certificate request
+ optional. This will allow clients to send incomplete
+ chains that may be reconstructable and thereby
+ verifiable by the server, but that would not adhere to
+ the certificate_authorities extension.
+
+
+ OTP-18302 Application(s): ssl
+ Related Id(s): ERIERL-867
+
+ If the verify_fun handles four arguments the DER cert
+ will be supplied as one of the arguments.
+
+
+ Full runtime dependencies of ssl-10.8.6: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The stdlib-4.2 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+ -- kernel-8.5.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18289 Application(s): kernel, stdlib
+ Related Id(s): PR-6343
+
+ erl_tar can now read gzip-compressed tar files that are
+ padded. There is a new option compressed_one for
+ file:open/2 that will read a single member from a gzip
+ file,
+
+
+ OTP-18292 Application(s): stdlib
+ Related Id(s): PR-6366
+
+ A concurrent call to ets:rename could cause
+ ets:delete_all_objects to fail halfway through with
+ badarg.
+
+
+ OTP-18325 Application(s): compiler, stdlib
+ Related Id(s): GH-6465, GH-6466
+
+ It is not allowed to call functions from guards. The
+ compiler failed to reject a call in a guard when done
+ by constructing a record with a default initialization
+ expression that called a function.
+
+
+ OTP-18336 Application(s): compiler, stdlib
+ Related Id(s): GH-6501, PR-6502
+
+ The compiler could crash when using a record with
+ complex field initialization expression as a filter in
+ a list comprehension.
+
+
+ OTP-18351 Application(s): stdlib
+ Related Id(s): ERIERL-885, PR-6529
+
+ unicode:characters_to_binary() could build
+ unnecessarily large call stack.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18283 Application(s): stdlib
+ Related Id(s): PR-6338
+
+ Improve error message for ets:new/2 name clash. Say
+ "name already exists" instead of less specific "invalid
+ options".
+
+
+ Full runtime dependencies of stdlib-4.2: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-8.5.1, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.2.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The wx-2.2.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18213 Application(s): wx
+ Related Id(s): PR-6113
+
+ Added environment variable WX_MACOS_NON_GUI_APP to
+ allow user to override OSXIsGUIApplication behavior.
+
+
+ Full runtime dependencies of wx-2.2.1: erts-12.0, kernel-8.0,
+ stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.1.README.txt b/release-notes/OTP-25.3.1.README.txt
new file mode 100644
index 0000000..bd27f10
--- /dev/null
+++ b/release-notes/OTP-25.3.1.README.txt
@@ -0,0 +1,313 @@
+Patch Package: OTP 25.3.1
+Git Tag: OTP-25.3.1
+Date: 2023-04-27
+Trouble Report Id: OTP-18422, OTP-18480, OTP-18489, OTP-18497,
+ OTP-18506, OTP-18509, OTP-18512, OTP-18516,
+ OTP-18519, OTP-18525, OTP-18545, OTP-18550,
+ OTP-18553, OTP-18554, OTP-18555, OTP-18557,
+ OTP-18560, OTP-18563
+Seq num: ERIERL-873, ERIERL-928, ERIERL-937, GH-6956,
+ GH-6960, GH-6969, GH-7024, GH-7114
+System: OTP
+Release: 25
+Application: compiler-8.2.5, crypto-5.1.4, eldap-1.2.11,
+ erl_interface-5.3.2, erts-13.2.1,
+ inets-8.3.1, snmp-5.13.5, ssl-10.9.1,
+ stdlib-4.3.1, wx-2.2.2
+Predecessor: OTP 25.3
+
+ Check out the git tag OTP-25.3.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.5 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18497 Application(s): compiler
+ Related Id(s): GH-6960, PR-6965
+
+ When a map update such as #{}#{key:=value} that should
+ fail with an exception was unused, the exception would
+ be lost.
+
+
+ OTP-18516 Application(s): compiler
+ Related Id(s): GH-6969
+
+ Fixed bug in the validator that made it reject valid
+ code.
+
+
+ Full runtime dependencies of compiler-8.2.5: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.1.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.1.4 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18555 Application(s): crypto
+
+ With this change, random errors are fixed for
+ crypto:generate_key calls with OpenSSL 3.
+
+
+ Full runtime dependencies of crypto-5.1.4: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- eldap-1.2.11 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The eldap-1.2.11 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18480 Application(s): eldap
+
+ Added a new function eldap:info/1 that returns the
+ socket and the transport protocol for the eldap
+ connection.
+
+
+ Full runtime dependencies of eldap-1.2.11: asn1-3.0, erts-6.0,
+ kernel-3.0, ssl-5.3.4, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.3.2 ---------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_interface-5.3.2 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18554 Application(s): erl_interface, erts
+
+ Fixed configure tests for a few ARM-specific
+ instructions, which prevented the emulator from being
+ built on some platforms.
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18519 Application(s): erts
+ Related Id(s): GH-7024
+
+ Fixed a bug in the loader that prevented certain
+ modules compiled with no_ssa_opt from being loaded.
+
+
+ OTP-18525 Application(s): erts
+ Related Id(s): PR-7049
+
+ Implementations of the call() driver callback that
+ returned a faulty encoded result could cause a memory
+ leak and could cause invalid data on the heap of the
+ processes calling erlang:port_call/3.
+
+
+ OTP-18553 Application(s): erts
+
+ Fixed a memory corruption issue when upgrading code.
+ The bug was introduced in OTP 25.3
+
+
+ OTP-18554 Application(s): erl_interface, erts
+
+ Fixed configure tests for a few ARM-specific
+ instructions, which prevented the emulator from being
+ built on some platforms.
+
+
+ OTP-18557 Application(s): erts
+ Related Id(s): OTP-18496, PR-7131
+
+ Aliases created in combination with a monitor using the
+ {alias, explicit_unalias} option stopped working from
+ remote nodes when a 'DOWN' signal had been received due
+ to the monitor or if the monitor was removed using the
+ erlang:demonitor() BIF.
+
+ This bug was introduced in OTP 24.3.4.10 and OTP 25.3.
+
+
+ OTP-18560 Application(s): erts
+
+ In rare circumstances, bit syntax matching of an
+ invalid code point for a utf32 would crash the runtime
+ system.
+
+
+ OTP-18563 Application(s): erts
+ Related Id(s): GH-7114, PR-7159
+
+ Building the runtime system failed when native atomic
+ support was missing. Note that execution on such
+ systems have only been rudimentary tested.
+
+
+ Full runtime dependencies of erts-13.2.1: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.3.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-8.3.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18509 Application(s): inets
+ Related Id(s): OTP-18476
+
+ Correct timing related pipelining/keepalive queue bug,
+ that could result in unexpected "socket_remotly_closed"
+ errors.
+
+
+ OTP-18545 Application(s): inets
+ Related Id(s): ERIERL-928, ERIERL-937, OTP-18509
+
+ With this change, upon remote socket closure current
+ request is added to a retried queue (either pipeline or
+ keep_alive, but not both).
+
+
+ Full runtime dependencies of inets-8.3.1: erts-6.0, kernel-6.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.13.5 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.13.5 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18422 Application(s): snmp
+ Related Id(s): ERIERL-873
+
+ Attempts to minimize the number of the error reports
+ during a failed agent init.
+
+
+ Full runtime dependencies of snmp-5.13.5: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.9.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.9.1 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18489 Application(s): ssl
+
+ With this change, ssl:connection_information/2 returns
+ correct keylog data after TLS1.3 key update.
+
+
+ OTP-18550 Application(s): ssl
+
+ Client signature algorithm list input order is now
+ honored again , it was accidently reversed by a
+ previous fix.
+
+
+ Full runtime dependencies of ssl-10.9.1: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.3.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The stdlib-4.3.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+ -- kernel-8.5.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18506 Application(s): stdlib
+ Related Id(s): GH-6956
+
+ The type specs in the erl_parse module has been updated
+ to include the maybe construct and the ! operator.
+
+
+ Full runtime dependencies of stdlib-4.3.1: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-8.5.1, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.2.2 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The wx-2.2.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18512 Application(s): wx
+
+ Improve debug prints from the nifs. Some minor fixes
+ for wxWidgets-3.2. Fixed OpenGL debug functions.
+
+
+ Full runtime dependencies of wx-2.2.2: erts-12.0, kernel-8.0,
+ stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.1.README.txt b/release-notes/OTP-25.3.2.1.README.txt
new file mode 100644
index 0000000..398aae7
--- /dev/null
+++ b/release-notes/OTP-25.3.2.1.README.txt
@@ -0,0 +1,174 @@
+Patch Package: OTP 25.3.2.1
+Git Tag: OTP-25.3.2.1
+Date: 2023-05-30
+Trouble Report Id: OTP-18556, OTP-18561, OTP-18569, OTP-18576,
+ OTP-18593, OTP-18595, OTP-18597
+Seq num: ERIERL-944, GH-7252
+System: OTP
+Release: 25
+Application: compiler-8.2.6.1, erts-13.2.2.1,
+ stdlib-4.3.1.1, xmerl-1.3.31.1
+Predecessor: OTP 25.3.2
+
+ Check out the git tag OTP-25.3.2.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.6.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.6.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18576 Application(s): compiler
+
+ Fixed a bug where a failing bsl expression in a guard
+ threw an exception instead of causing the guard to
+ fail.
+
+
+ OTP-18593 Application(s): compiler
+ Related Id(s): GH-7252
+
+ Complex guard expression using the or operator and
+ guard BIFs that can fail could sometimes be miscompiled
+ so that the guard would succeed even if a call to a
+ guard BIF failed.
+
+
+ Full runtime dependencies of compiler-8.2.6.1: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.2.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.2.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18561 Application(s): erts
+
+ Fixed a crash during tracing on certain platforms that
+ cannot use the machine stack for Erlang code (mainly
+ OpenBSD and Linux with musl).
+
+
+ OTP-18597 Application(s): erts
+
+ Constructing a binary segment not aligned with a byte
+ boundary, with a size not fitting in 31 bits, and with
+ a value not fitting in a 64-bit word could crash the
+ runtime system.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18569 Application(s): erts
+
+ Further robustify implementation of large maps (> 32
+ keys). Keys that happen to have same internal 32-bit
+ hash values are now put in collision nodes which are
+ traversed with linear search. This removes the demand
+ for the internal hash function when salted to
+ eventually produce different hashes for all possible
+ pairs of unequal terms.
+
+
+ Full runtime dependencies of erts-13.2.2.1: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.3.1.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The stdlib-4.3.1.1 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 25
+ installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+ -- kernel-8.5.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Improvements and New Features ---
+
+ OTP-18556 Application(s): stdlib
+
+ Static supervisors are very idle processes after they
+ have started so they will now be hibernated after start
+ to improve resource management.
+
+
+ Full runtime dependencies of stdlib-4.3.1.1: compiler-5.0,
+ crypto-4.5, erts-13.1, kernel-8.5.1, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.31.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The xmerl-1.3.31.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18595 Application(s): xmerl
+ Related Id(s): ERIERL-944
+
+ New options to xmerl_scan and xmerl_sax_parser so one
+ can limit the behaviour of the parsers to avoid some
+ XML security issues.
+
+ xmerl_scan gets one new option:
+
+ -- {allow_entities, Boolean} -- Gives the possibility
+ to disallow entities by setting this option to false
+ (true is default)
+
+ xmerl_sax_parser gets the following options:
+
+ -- disallow_entities -- Don't allow entities in
+ document
+
+ -- {entity_recurse_limit, N} -- Set a limit on entity
+ recursion depth (default is 3)
+
+ -- {external_entities, AllowedType} -- Specify which
+ types of external entities that are allowed, this also
+ affect external DTD's. The types are all(default), file
+ and none
+
+ -- {fail_undeclared_ref, Boolean} -- Sets the behavior
+ for undeclared references due to an external file is
+ not parsed (true is default)
+
+ The old option skip_external_dtd is still valid and the
+ same as {external_entities, none} and
+ {fail_undeclared_ref, false} but just affects DTD's and
+ not other external references.
+
+
+ Full runtime dependencies of xmerl-1.3.31.1: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.10.README.txt b/release-notes/OTP-25.3.2.10.README.txt
new file mode 100644
index 0000000..2d8262b
--- /dev/null
+++ b/release-notes/OTP-25.3.2.10.README.txt
@@ -0,0 +1,155 @@
+Patch Package: OTP 25.3.2.10
+Git Tag: OTP-25.3.2.10
+Date: 2024-03-13
+Trouble Report Id: OTP-18971, OTP-18986, OTP-18996, OTP-19002,
+ OTP-19003, OTP-19006, OTP-19008, OTP-19015,
+ OTP-19019
+Seq num: ERIERL-1041, ERIERL-682, GH-8044, GH-8119,
+ GH-8187, PR-8173, PR-8174, PR-8189, PR-8201
+System: OTP
+Release: 25
+Application: compiler-8.2.6.4, crypto-5.1.4.2,
+ erts-13.2.2.7, ssh-4.15.3.3
+Predecessor: OTP 25.3.2.9
+
+ Check out the git tag OTP-25.3.2.10, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.6.4 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.6.4 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-19003 Application(s): compiler
+ Related Id(s): GH-8187, PR-8189
+
+ In rare circumstances, an unsafe optimization could
+ cause the compiler to generate incorrect code for list
+ matching.
+
+
+ OTP-19019 Application(s): compiler
+
+ In rare circumstances, the compiler code generate
+ unsafe code for a bit syntax match.
+
+
+ Full runtime dependencies of compiler-8.2.6.4: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.1.4.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.1.4.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18996 Application(s): crypto
+ Related Id(s): PR-8173, PR-8174
+
+ The function crypto:pbkdf2_hmac will no longer block
+ the main schedulers. If the iteration count or block
+ size parameters are such that the function is likely to
+ take a long time to execute, the function will be
+ scheduled to run on a dirty CPU scheduler.
+
+
+ Full runtime dependencies of crypto-5.1.4.2: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.2.7 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.2.7 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18971 Application(s): erts
+ Related Id(s): GH-8044
+
+ Fix heap corruption bug that could cause runaway memory
+ consumption due to circular offheap list at process
+ exit. Other symptoms may also be possible. Bug exists
+ since OTP 25.0.
+
+
+ OTP-19006 Application(s): erts
+
+ The code server could be hanging if a module with
+ on_load function was loaded at the same time as another
+ module was purged using erlang:purge_module directly.
+
+
+ OTP-19008 Application(s): erts
+ Related Id(s): GH-8119, PR-8201
+
+ A process optimized for parallel signal delivery could
+ under some circumstances lose wakeup information. That
+ is, the processes was not woken up to take care of the
+ signal, so the signal would not be taken care of until
+ the process was woken by another signal. Only processes
+ configured with message_queue_data set to off_heap
+ utilize this optimization.
+
+
+ OTP-19015 Application(s): erts
+ Related Id(s): ERIERL-682
+
+ Fix bug in re:run/3 where if an invalid UTF-8 subject
+ was given, re:run could get stuck in an infinite loop.
+ Bug was introduced in Erlang/OTP 22.1.
+
+
+ Full runtime dependencies of erts-13.2.2.7: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.15.3.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.15.3.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18986 Application(s): ssh
+
+ With this change, more secure algorithms are preferred
+ by ssh and documentation is updated to reflect that.
+
+
+ OTP-19002 Application(s): ssh
+ Related Id(s): ERIERL-1041
+
+ With this change, KEX strict terminal message is
+ emitted with debug verbosity.
+
+
+ Full runtime dependencies of ssh-4.15.3.3: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.2.README.txt b/release-notes/OTP-25.3.2.2.README.txt
new file mode 100644
index 0000000..2eb454e
--- /dev/null
+++ b/release-notes/OTP-25.3.2.2.README.txt
@@ -0,0 +1,40 @@
+Patch Package: OTP 25.3.2.2
+Git Tag: OTP-25.3.2.2
+Date: 2023-06-07
+Trouble Report Id: OTP-18617
+Seq num: GH-7338
+System: OTP
+Release: 25
+Application: compiler-8.2.6.2
+Predecessor: OTP 25.3.2.1
+
+ Check out the git tag OTP-25.3.2.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.6.2 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.6.2 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18617 Application(s): compiler
+ Related Id(s): GH-7338
+
+ The compiler could be very slow when compiling guards
+ with multiple guard tests separated with 'or' or ';'.
+
+
+ Full runtime dependencies of compiler-8.2.6.2: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.3.README.txt b/release-notes/OTP-25.3.2.3.README.txt
new file mode 100644
index 0000000..85217ad
--- /dev/null
+++ b/release-notes/OTP-25.3.2.3.README.txt
@@ -0,0 +1,211 @@
+Patch Package: OTP 25.3.2.3
+Git Tag: OTP-25.3.2.3
+Date: 2023-06-29
+Trouble Report Id: OTP-18618, OTP-18626, OTP-18635, OTP-18643,
+ OTP-18644, OTP-18650, OTP-18659
+Seq num: ERIERL-932, GH-7336, GH-7356
+System: OTP
+Release: 25
+Application: compiler-8.2.6.3, debugger-5.3.1.1,
+ erts-13.2.2.2, kernel-8.5.4.1, ssl-10.9.1.1,
+ stdlib-4.3.1.2
+Predecessor: OTP 25.3.2.2
+
+ Check out the git tag OTP-25.3.2.3, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.6.3 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.6.3 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18626 Application(s): compiler
+ Related Id(s): GH-7356
+
+ Fixed a bug that could cause the stack trace of throw
+ exceptions to be erroneously optimized out.
+
+
+ Full runtime dependencies of compiler-8.2.6.3: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- debugger-5.3.1.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The debugger-5.3.1.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18644 Application(s): debugger
+ Related Id(s): GH-7336
+
+ The call int:no_break(Module) did not remove any
+ breakpoints.
+
+
+ Full runtime dependencies of debugger-5.3.1.1: compiler-8.0,
+ erts-12.0, kernel-8.0, stdlib-3.15, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.2.2 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.2.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18635 Application(s): erts, kernel
+ Related Id(s): #7328
+
+ Multiple socket:accept calls issue. When making
+ multiple accept calls, only the last call is active.
+
+
+ OTP-18659 Application(s): erts, stdlib
+ Related Id(s): PR-7426
+
+ The following functions are now much faster when given
+ a long list or binary:
+
+ -- erlang:list_to_integer/1
+
+ -- erlang:binary_to_integer/1
+
+ -- erlang:binary_to_integer/2
+
+ -- erlang:list_to_integer/2
+
+ -- string:to_integer/1
+
+
+ Full runtime dependencies of erts-13.2.2.2: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.5.4.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.5.4.1 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 25
+ installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1.3 (first satisfied in OTP 25.2)
+ -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18635 Application(s): erts, kernel
+ Related Id(s): #7328
+
+ Multiple socket:accept calls issue. When making
+ multiple accept calls, only the last call is active.
+
+
+ OTP-18650 Application(s): kernel
+
+ gen_udp:connect with inet_backend = socket fails when
+ the Address is a hostname (string or atom).
+
+
+ Full runtime dependencies of kernel-8.5.4.1: crypto-5.0, erts-13.1.3,
+ sasl-3.0, stdlib-4.1.1
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.9.1.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.9.1.1 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18643 Application(s): ssl
+ Related Id(s): ERIERL-932
+
+ Added keylog information to all protocol versions in
+ ssl:connection_information/2.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18618 Application(s): ssl
+ Related Id(s): ERIERL-932
+
+ Add RFC-6083 considerations for DTLS to enable gen_sctp
+ based callback for the transport.
+
+
+ Full runtime dependencies of ssl-10.9.1.1: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.3.1.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The stdlib-4.3.1.2 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 25
+ installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+ -- kernel-8.5.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18659 Application(s): erts, stdlib
+ Related Id(s): PR-7426
+
+ The following functions are now much faster when given
+ a long list or binary:
+
+ -- erlang:list_to_integer/1
+
+ -- erlang:binary_to_integer/1
+
+ -- erlang:binary_to_integer/2
+
+ -- erlang:list_to_integer/2
+
+ -- string:to_integer/1
+
+
+ Full runtime dependencies of stdlib-4.3.1.2: compiler-5.0,
+ crypto-4.5, erts-13.1, kernel-8.5.1, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.4.README.txt b/release-notes/OTP-25.3.2.4.README.txt
new file mode 100644
index 0000000..783da0e
--- /dev/null
+++ b/release-notes/OTP-25.3.2.4.README.txt
@@ -0,0 +1,42 @@
+Patch Package: OTP 25.3.2.4
+Git Tag: OTP-25.3.2.4
+Date: 2023-07-17
+Trouble Report Id: OTP-18664
+Seq num: ERIERL-959
+System: OTP
+Release: 25
+Application: common_test-1.24.0.1
+Predecessor: OTP 25.3.2.3
+
+ Check out the git tag OTP-25.3.2.4, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- common_test-1.24.0.1 --------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.24.0.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18664 Application(s): common_test
+ Related Id(s): ERIERL-959
+
+ With this change, prompt search functionality in
+ ct_telnet handles unicode input.
+
+
+ Full runtime dependencies of common_test-1.24.0.1: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.5.README.txt b/release-notes/OTP-25.3.2.5.README.txt
new file mode 100644
index 0000000..c41ded4
--- /dev/null
+++ b/release-notes/OTP-25.3.2.5.README.txt
@@ -0,0 +1,42 @@
+Patch Package: OTP 25.3.2.5
+Git Tag: OTP-25.3.2.5
+Date: 2023-07-31
+Trouble Report Id: OTP-18688
+Seq num: ERIERL-962
+System: OTP
+Release: 25
+Application: inets-8.3.1.1
+Predecessor: OTP 25.3.2.4
+
+ Check out the git tag OTP-25.3.2.5, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- inets-8.3.1.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-8.3.1.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18688 Application(s): inets
+ Related Id(s): ERIERL-962
+
+ Fixed a bug so httpd does not crash when stopped at the
+ wrong time during TLS connection negotiation, or any
+ other theoretically as slow connection setup.
+
+
+ Full runtime dependencies of inets-8.3.1.1: erts-6.0, kernel-6.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.6.README.txt b/release-notes/OTP-25.3.2.6.README.txt
new file mode 100644
index 0000000..e4dc7f2
--- /dev/null
+++ b/release-notes/OTP-25.3.2.6.README.txt
@@ -0,0 +1,278 @@
+Patch Package: OTP 25.3.2.6
+Git Tag: OTP-25.3.2.6
+Date: 2023-09-07
+Trouble Report Id: OTP-18647, OTP-18670, OTP-18700, OTP-18704,
+ OTP-18706, OTP-18707, OTP-18708, OTP-18711,
+ OTP-18712, OTP-18718, OTP-18732, OTP-18737,
+ OTP-18740, OTP-18752
+Seq num: ERIERL-962, ERIERL-963, ERIERL-979, GH-7410,
+ GH-7413, GH-7431, GH-7436, GH-7444, GH-7507,
+ GH-7546
+System: OTP
+Release: 25
+Application: crypto-5.1.4.1, debugger-5.3.1.2,
+ erts-13.2.2.3, inets-8.3.1.2, kernel-8.5.4.2,
+ mnesia-4.21.4.1, public_key-1.13.3.1,
+ ssl-10.9.1.2
+Predecessor: OTP 25.3.2.5
+
+ Check out the git tag OTP-25.3.2.6, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- crypto-5.1.4.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.1.4.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18670 Application(s): crypto
+ Related Id(s): GH-7436, PR-7450
+
+ Fix VM crash caused by crypto being purged and reloaded
+ (by init:restart for example) on OS with musl libc
+ (such as Alpine linux).
+
+
+ Full runtime dependencies of crypto-5.1.4.1: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- debugger-5.3.1.2 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The debugger-5.3.1.2 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18740 Application(s): debugger
+ Related Id(s): GH-7410, PR-7599
+
+ The maybe expression is now supported in the Debugger.
+
+
+ Full runtime dependencies of debugger-5.3.1.2: compiler-8.0,
+ erts-12.0, kernel-8.0, stdlib-3.15, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.2.3 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.2.3 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18647 Application(s): erts
+ Related Id(s): PR-7595
+
+ A process optimized for parallel signal delivery could
+ under some circumstances lose wakeup information. That
+ is, the processes was not woken up to take care of the
+ signal, so the signal would not be taken care of until
+ the process was woken by another signal. Only processes
+ configured with message_queue_data set to off_heap
+ utilize this optimization.
+
+
+ OTP-18706 Application(s): erts
+ Related Id(s): ERIERL-979, GH-7413, PR-7595
+
+ Delivery time of message signals to a process not
+ executing any receive expressions could become very
+ long, potentially infinite. For example, a process
+ checking for messages using process_info(self(),
+ message_queue_len) or process_info(self(), messages)
+ and avoiding to execute a receive expression matching
+ on messages could be very slow in detecting new
+ messages. Note that you are still discouraged from
+ using process_info() this way. A process that wants to
+ check if there are messages available to handle should
+ execute a receive expression matching on messages.
+
+
+ OTP-18732 Application(s): erts
+ Related Id(s): GH-7444, PR-7458
+
+ Fix bug causing "magic" references in a compressed ETS
+ table to not keep the referred object alive. The
+ symptom would be the referred object being garbage
+ collected prematurely and the reference appearing
+ stale, not referring to anything. Examples of such
+ magically referred objects are atomics and NIF
+ resources.
+
+
+ OTP-18737 Application(s): erts
+ Related Id(s): PR-7595
+
+ A constant flow of incoming non-message signals could
+ prevent a process needing to execute dirty from doing
+ so.
+
+
+ OTP-18752 Application(s): erts
+ Related Id(s): PR-7633
+
+ The cleanup operation of not yet delivered signals to a
+ terminated process yielded excessively.
+
+
+ Full runtime dependencies of erts-13.2.2.3: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.3.1.2 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-8.3.1.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18704 Application(s): inets
+ Related Id(s): ERIERL-962, OTP-18688, PR-7513
+
+ With this change, error report generated by httpd
+ during connection setup contains socket type
+ information.
+
+
+ OTP-18708 Application(s): inets
+ Related Id(s): ERIERL-962, OTP-18688
+
+ Stop and restart of the httpd server in the Inets
+ application has been refactored to a more synchronous
+ and OTP supervisor friendly approach.
+
+ This should increase stability and for example avoid a
+ supervisor report from httpd_connection_sup about
+ killed child process(es) in some cases when stopping or
+ restarting httpd.
+
+
+ Full runtime dependencies of inets-8.3.1.2: erts-6.0, kernel-6.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.5.4.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.5.4.2 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 25
+ installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1.3 (first satisfied in OTP 25.2)
+ -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18707 Application(s): kernel
+ Related Id(s): #7530
+
+ gen_tcp:connect with socket address and socket (inet-)
+ backend fails because of missing callback function.
+
+
+ Full runtime dependencies of kernel-8.5.4.2: crypto-5.0, erts-13.1.3,
+ sasl-3.0, stdlib-4.1.1
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.21.4.1 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.21.4.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18711 Application(s): mnesia
+ Related Id(s): ERIERL-963
+
+ Do not delete old backup file if the new backup fails.
+
+
+ Full runtime dependencies of mnesia-4.21.4.1: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.13.3.1 ---------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.13.3.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18718 Application(s): public_key
+ Related Id(s): GH-7546
+
+ Country name comparison shall be case insensitive
+
+
+ Full runtime dependencies of public_key-1.13.3.1: asn1-3.0,
+ crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.9.1.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.9.1.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18700 Application(s): ssl
+ Related Id(s): GH-7507
+
+ The API function `ssl:recv/3` has been tightened to
+ disallow negative length, which has never been
+ documented to work, but was passed through and caused
+ strange errors.
+
+
+ OTP-18712 Application(s): ssl
+ Related Id(s): GH-7431
+
+ When a client initiated renegotiation was rejected and
+ the client socket was in active mode the expected error
+ message to the controlling process was not sent.
+
+
+ Full runtime dependencies of ssl-10.9.1.2: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.7.README.txt b/release-notes/OTP-25.3.2.7.README.txt
new file mode 100644
index 0000000..e1c5dd3
--- /dev/null
+++ b/release-notes/OTP-25.3.2.7.README.txt
@@ -0,0 +1,106 @@
+Patch Package: OTP 25.3.2.7
+Git Tag: OTP-25.3.2.7
+Date: 2023-10-12
+Trouble Report Id: OTP-18773, OTP-18790, OTP-18792, OTP-18797
+Seq num: GH-7683, GH-7687
+System: OTP
+Release: 25
+Application: erts-13.2.2.4, stdlib-4.3.1.3
+Predecessor: OTP 25.3.2.6
+
+ Check out the git tag OTP-25.3.2.7, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.2.4 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.2.4 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18790 Application(s): erts
+ Related Id(s): PR-7742
+
+ If the external term format encoding of an argument
+ list part of a distributed spawn operation was faulty,
+ the newly spawned remote process could misbehave. The
+ misbehavior included hanging or interpret an incoming
+ message as an argument list to use. This was very
+ unlikely to happen unless using an alternate
+ implementation of the distribution protocol which made
+ a faulty encoding of the argument list. The child
+ process will now detect this error and terminate before
+ executing the user specified code.
+
+
+ OTP-18792 Application(s): erts
+ Related Id(s): GH-7687
+
+ On Apple Silicon Macs running macOS Sonoma, the runtime
+ system with the JIT enabled would crash. Therefore, the
+ configure script will by default now disable the JIT on
+ Macs with Apple Silicon. When building for earlier
+ versions of macOS, the JIT can be explicitly enabled by
+ passing --enable-jit to the configure script.
+
+
+ OTP-18797 Application(s): erts
+ Related Id(s): GH-7683, PR-7712
+
+ Fix bugs where if the body of a matchspec would return
+ a map with a variable ('$1', '$_' etc) as one of the
+ keys or values and the variable was not an immidiate,
+ the term would not be copied to the receiving processes
+ heap. This would later corrupt the term in the table as
+ the GC could place move markers in it, which in turn
+ would cause the VM to crash.
+
+ Bug has been present for since OTP 17.0.
+
+
+ Full runtime dependencies of erts-13.2.2.4: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.3.1.3 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The stdlib-4.3.1.3 application *cannot* be applied
+ independently of other applications on an arbitrary OTP 25
+ installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+ -- kernel-8.5.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Improvements and New Features ---
+
+ OTP-18773 Application(s): stdlib
+ Related Id(s): PR-7691
+
+ Garbage collect the shell process when reducing the
+ amount of saved history and results.
+
+
+ Full runtime dependencies of stdlib-4.3.1.3: compiler-5.0,
+ crypto-4.5, erts-13.1, kernel-8.5.1, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.8.README.txt b/release-notes/OTP-25.3.2.8.README.txt
new file mode 100644
index 0000000..a2a876f
--- /dev/null
+++ b/release-notes/OTP-25.3.2.8.README.txt
@@ -0,0 +1,348 @@
+Patch Package: OTP 25.3.2.8
+Git Tag: OTP-25.3.2.8
+Date: 2023-12-18
+Trouble Report Id: OTP-18739, OTP-18768, OTP-18802, OTP-18830,
+ OTP-18838, OTP-18839, OTP-18841, OTP-18842,
+ OTP-18844, OTP-18850, OTP-18869, OTP-18877,
+ OTP-18885, OTP-18886, OTP-18896, OTP-18897,
+ OTP-18899, OTP-18902
+Seq num: GH-7571, GH-7801, GH-7834, GH-7890
+System: OTP
+Release: 25
+Application: asn1-5.0.21.1, erl_interface-5.3.2.1,
+ erts-13.2.2.5, mnesia-4.21.4.2,
+ public_key-1.13.3.2, ssh-4.15.3.1,
+ ssl-10.9.1.3, wx-2.2.2.1
+Predecessor: OTP 25.3.2.7
+
+ Check out the git tag OTP-25.3.2.8, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18897 Application(s): ssh
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-25.3.2.8 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18896 Application(s): otp
+
+ Updated copyright and license information.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.0.21.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The asn1-5.0.21.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18844 Application(s): asn1
+
+ Fix benign warning from gcc 11 about mismatching call
+ to free().
+
+
+ Full runtime dependencies of asn1-5.0.21.1: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.3.2.1 -------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_interface-5.3.2.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18877 Application(s): erl_interface, erts
+
+ Replaced old md5 implementation with an implementation
+ from OpenSSL.
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.2.5 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.2.5 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18802 Application(s): erts
+
+ Fix faulty debug assert when page size is larger than
+ 16kb, like on PowerPC. Did crash debug VM directly at
+ start.
+
+
+ OTP-18838 Application(s): erts
+ Related Id(s): GH-7801, PR-7822
+
+ A process with message_queue_data configured as
+ off_heap could end up in an inconsistent state when
+ being receive traced, inspected using process_info/2
+ with the message_queue_len item, or inspected using the
+ break menu (CTRL-C). When it ended up in this
+ inconsistent state, it was not enqueued into a run
+ queue even though it was set in a runnable state.This
+ also effected signals being sent to the process after
+ it had gotten into this inconsistent state, in such a
+ way that it was from this point not possible to
+ communicate with it.
+
+
+ OTP-18839 Application(s): erts
+ Related Id(s): GH-7801, PR-7822
+
+ A race occurring when a process was selected for dirty
+ execution simultaneously as it was scheduled for
+ handling a signal could cause the process to end up in
+ an inconsistent state. When it ended up in this
+ inconsistent state, it was not enqueued into a run
+ queue even though it was set in a runnable state. This
+ also effected signals being sent to the process after
+ it had gotten into this inconsistent state, in such a
+ way that it was from this point not possible to
+ communicate with it.
+
+
+ OTP-18841 Application(s): erts
+ Related Id(s): GH-7801, OTP-18737, PR-7822
+
+ When a process had to to wait in the run queue for a
+ long time before being selected for dirty execution, it
+ could not receive signals. This caused inspection of
+ such a process, for example using process_info/2, to
+ take a long time.
+
+ This issue was introduced in OTP 25.3.2.6 and 26.1 when
+ fixing an issue where a constant flow of signals
+ prevented a process from being able to execute dirty.
+
+
+ OTP-18842 Application(s): erts
+
+ Fixed a bug in the JIT that miscompiled large
+ select_val instructions.
+
+
+ OTP-18885 Application(s): erts
+ Related Id(s): GH-7834, GH-7890, PR-7915
+
+ On OTP 24 and OTP 25, incoming distributed messages
+ larger than 64 KiB sent using an alias leaked memory if
+ the alias had been removed prior to entering the node.
+ This issue was not present on OTP 26.
+
+ Incoming distributed messages larger than 64 KiB sent
+ using an alias which had been removed on the receiving
+ node could crash the node. This crash was quite
+ unlikely on OTP 24 and OTP 25, but very likely on OTP
+ 26.
+
+ 'DOWN' signals with exit reason larger than 64 KiB
+ directed towards a process on a node with a not
+ matching creation leaked memory on the receiving node.
+ Such signals should however be very rare.
+
+
+ OTP-18902 Application(s): erts
+
+ Removed unnecessary PCRE source tar-ball.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18830 Application(s): erts
+ Related Id(s): PR-7823
+
+ Removed unnecessary regexp library used when generating
+ yielding BIFs.
+
+
+ OTP-18877 Application(s): erl_interface, erts
+
+ Replaced old md5 implementation with an implementation
+ from OpenSSL.
+
+
+ OTP-18899 Application(s): erts
+
+ Removed unused makewhatis script.
+
+
+ Full runtime dependencies of erts-13.2.2.5: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.21.4.2 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.21.4.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18850 Application(s): mnesia
+
+ mnesia:add_table_copy/3 no longer fails with reason
+ system_limit when the node is starting.
+
+
+ Full runtime dependencies of mnesia-4.21.4.2: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.13.3.2 ---------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.13.3.2 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18739 Application(s): public_key, ssl
+
+ ssl application will validate id-kp-serverAuth and
+ id-kp-clientAuth extended key usage only in end entity
+ certificates. public_key application will disallow
+ "anyExtendedKeyUsage" for CA certificates that includes
+ the extended key usage extension and marks it critical.
+
+
+ Full runtime dependencies of public_key-1.13.3.2: asn1-3.0,
+ crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.15.3.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.15.3.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18869 Application(s): ssh
+ Related Id(s): GH-7571, PR-7849
+
+ With this change, connection handler does not execute
+ socket operations until it becomes socket owner.
+ Previously errors could occur if connection handler
+ tried to work with socket whose owner exited.
+
+
+ OTP-18897 Application(s): ssh
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH.
+
+
+ Full runtime dependencies of ssh-4.15.3.1: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.9.1.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.9.1.3 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18739 Application(s): public_key, ssl
+
+ ssl application will validate id-kp-serverAuth and
+ id-kp-clientAuth extended key usage only in end entity
+ certificates. public_key application will disallow
+ "anyExtendedKeyUsage" for CA certificates that includes
+ the extended key usage extension and marks it critical.
+
+
+ OTP-18886 Application(s): ssl
+
+ Add missing export for connection_info() API type.
+
+
+ Full runtime dependencies of ssl-10.9.1.3: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.2.2.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The wx-2.2.2.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18768 Application(s): wx
+ Related Id(s): PR-7670
+
+ The wx application would fail to build on macOS with
+ Xcode 15.
+
+
+ Full runtime dependencies of wx-2.2.2.1: erts-12.0, kernel-8.0,
+ stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.9.README.txt b/release-notes/OTP-25.3.2.9.README.txt
new file mode 100644
index 0000000..5cace9a
--- /dev/null
+++ b/release-notes/OTP-25.3.2.9.README.txt
@@ -0,0 +1,108 @@
+Patch Package: OTP 25.3.2.9
+Git Tag: OTP-25.3.2.9
+Date: 2024-02-08
+Trouble Report Id: OTP-18911, OTP-18932, OTP-18957, OTP-18964
+Seq num: ERIERL-1023, GH-8051
+System: OTP
+Release: 25
+Application: common_test-1.24.0.2, erts-13.2.2.6,
+ ssh-4.15.3.2
+Predecessor: OTP 25.3.2.8
+
+ Check out the git tag OTP-25.3.2.9, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- common_test-1.24.0.2 --------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.24.0.2 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18932 Application(s): common_test
+
+ Fix how CT finds Erlang/OTP releases for compatability
+ testing. This functionality is only used to test
+ Erlang/OTP.
+
+
+ Full runtime dependencies of common_test-1.24.0.2: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.2.6 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.2.6 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18911 Application(s): erts
+ Related Id(s): ERIERL-1023, PR-7983
+
+ 32-bit runtime systems on most Unix like platforms
+ could crash if a BIF timer was set with a huge timeout
+ of more than 68 years into the future. In order for the
+ crash to occur, the huge timer (at a later time than
+ when it was set) had to become the nearest active timer
+ set on the specific scheduler on which it was set. This
+ could not happen on a system with only one scheduler
+ since there would always be shorter timers in the
+ system.
+
+ Setting a timer larger than 49 days on Windows could
+ under rare circumstances cause the timeout to be
+ delayed.
+
+
+ OTP-18957 Application(s): erts
+ Related Id(s): GH-8051, OTP-18841, PR-8088
+
+ Garbage collection of a process on a dirty scheduler
+ could collide with signal handling for that process
+ causing a crash of the runtime system. This bug was
+ introduced in OTP 25.3.2.8 and OTP 26.2.
+
+
+ Full runtime dependencies of erts-13.2.2.6: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.15.3.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.15.3.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18964 Application(s): ssh
+
+ With this change, Curve25519 and Curve448 KEX methods
+ become most preferred (related to RFC8731).
+
+
+ Full runtime dependencies of ssh-4.15.3.2: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.2.README.txt b/release-notes/OTP-25.3.2.README.txt
new file mode 100644
index 0000000..6032244
--- /dev/null
+++ b/release-notes/OTP-25.3.2.README.txt
@@ -0,0 +1,101 @@
+Patch Package: OTP 25.3.2
+Git Tag: OTP-25.3.2
+Date: 2023-05-05
+Trouble Report Id: OTP-18559, OTP-18565, OTP-18570
+Seq num: ERIERL-942, GH-7147
+System: OTP
+Release: 25
+Application: compiler-8.2.6, erts-13.2.2, os_mon-2.8.2
+Predecessor: OTP 25.3.1
+
+ Check out the git tag OTP-25.3.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.6 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.6 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18565 Application(s): compiler
+ Related Id(s): GH-7147
+
+ Fixed type handling bugs that could cause an internal
+ error in the compiler for correct code.
+
+
+ Full runtime dependencies of compiler-8.2.6: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2.2 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18570 Application(s): erts
+ Related Id(s): PR-7190
+
+ If a runtime system which was starting the distribution
+ already had existing pids, ports, or references
+ referring to a node with the same nodename/creation
+ pair that the runtime system was about to use, these
+ already existing pids, ports, or references would not
+ work as expected in various situations after the node
+ had gone alive. This could only occur if the runtime
+ system was communicated such pids, ports, or references
+ prior to the distribution was started. That is, it was
+ extremely unlikely to happen unless the distribution
+ was started dynamically and was even then very unlikely
+ to happen. The runtime system now checks for already
+ existing pids, ports, and references with the same
+ nodename/creation pair that it is about to use. If such
+ are found another creation will be chosen in order to
+ avoid these issues.
+
+
+ Full runtime dependencies of erts-13.2.2: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- os_mon-2.8.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The os_mon-2.8.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18559 Application(s): os_mon
+ Related Id(s): ERIERL-942
+
+ Avoid error report from failing erlang:port_close at
+ shutdown of cpu_sup and memsup. Bug exists since OTP
+ 25.3 (os_mon-2.8.1).
+
+
+ Full runtime dependencies of os_mon-2.8.2: erts-6.0, kernel-3.0,
+ sasl-2.4, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-25.3.README.txt b/release-notes/OTP-25.3.README.txt
new file mode 100644
index 0000000..e9a94c1
--- /dev/null
+++ b/release-notes/OTP-25.3.README.txt
@@ -0,0 +1,1150 @@
+Patch Package: OTP 25.3
+Git Tag: OTP-25.3
+Date: 2023-03-08
+Trouble Report Id: OTP-16607, OTP-18316, OTP-18348, OTP-18356,
+ OTP-18366, OTP-18371, OTP-18372, OTP-18373,
+ OTP-18374, OTP-18375, OTP-18378, OTP-18380,
+ OTP-18381, OTP-18382, OTP-18384, OTP-18387,
+ OTP-18390, OTP-18391, OTP-18392, OTP-18393,
+ OTP-18398, OTP-18404, OTP-18406, OTP-18407,
+ OTP-18408, OTP-18411, OTP-18412, OTP-18418,
+ OTP-18426, OTP-18429, OTP-18432, OTP-18434,
+ OTP-18443, OTP-18446, OTP-18454, OTP-18457,
+ OTP-18458, OTP-18460, OTP-18463, OTP-18469,
+ OTP-18470, OTP-18472, OTP-18475, OTP-18496
+Seq num: GH-4232, GH-4733, GH-5984, GH-6160, GH-6356,
+ GH-6402, GH-6403, GH-6448, GH-6475, GH-6506,
+ GH-6537, GH-6573, GH-6580, GH-6591, GH-6595,
+ GH-6601, GH-6604, GH-6656, GH-6672, GH-6677,
+ GH-6701, GH-6707, GH-6717, GH-6873, GH-6947
+System: OTP
+Release: 25
+Application: common_test-1.24, compiler-8.2.4,
+ crypto-5.1.3, debugger-5.3.1, dialyzer-5.0.5,
+ erl_interface-5.3.1, erts-13.2, eunit-2.8.2,
+ ftp-1.1.4, inets-8.3, jinterface-1.13.2,
+ kernel-8.5.4, megaco-4.4.3, mnesia-4.21.4,
+ os_mon-2.8.1, public_key-1.13.3,
+ reltool-0.9.1, snmp-5.13.4, ssh-4.15.3,
+ ssl-10.9, stdlib-4.3, syntax_tools-3.0.1,
+ tftp-1.0.4, xmerl-1.3.31
+Predecessor: OTP 25.2.3
+
+ Check out the git tag OTP-25.3, and build a full OTP system including
+ documentation. Apply one or more applications from this build as
+ patches to your installation using the 'otp_patch_apply' tool. For
+ information on install requirements, see descriptions for each
+ application version below.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18374 Application(s): erts
+ Related Id(s): PR-6632
+
+ Support for fully asynchronous distributed signaling
+ where send operations *never* block. This functionality
+ is by default disabled and can be enabled per process.
+ For more information see the documentation of
+ process_flag(async_dist, Bool).
+
+
+ ---------------------------------------------------------------------
+ --- OTP-25.3 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18387 Application(s): otp
+
+ Clarified the documentation on how to enable maybe
+ expressions.
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.24 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.24 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18460 Application(s): common_test
+
+ Renamed undocumented macro CT_PEER/3 to CT_PEER_REL/3.
+
+
+ Full runtime dependencies of common_test-1.24: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.2.4 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.2.4 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18378 Application(s): compiler
+ Related Id(s): GH-6604
+
+ Fixed a bug that would cause the compiler to hang.
+
+
+ OTP-18381 Application(s): compiler
+ Related Id(s): GH-6601
+
+ Fixed a crash when compiling code that contained maybe
+ expressions.
+
+
+ OTP-18407 Application(s): compiler
+ Related Id(s): GH-6707
+
+ Constructing a binary with an explicit size of all for
+ a binary segment would crash the compiler.
+
+
+ OTP-18470 Application(s): compiler
+ Related Id(s): GH-6873, PR-6877
+
+ The compiler would generate incorrect code for the
+ following type of expression:
+
+ Pattern = BoundVar1 = . . . = BoundVarN = Expression
+
+ An exception should be raised if any of the bound
+ variables have different values than Expression. The
+ compiler would generate code that would cause the bound
+ variables to be bound to the value of Expressionwhether
+ the value matched or not.
+
+
+ Full runtime dependencies of compiler-8.2.4: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.1.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.1.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18384 Application(s): crypto
+ Related Id(s): PR-6596
+
+ A user defined runtime library path configured using
+ --with-ssl-rpath=<PATHS> could fail to be enabled.
+
+
+ OTP-18408 Application(s): crypto
+
+ Ensure that configure fails if a user defined runtime
+ library path has been passed by the user, but cannot
+ set.
+
+
+ Full runtime dependencies of crypto-5.1.3: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- debugger-5.3.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The debugger-5.3.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18372 Application(s): debugger, dialyzer, reltool, stdlib
+ Related Id(s): GH-6580
+
+ Fixed a bug that would cause analysis to crash.
+
+
+ Full runtime dependencies of debugger-5.3.1: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.0.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-5.0.5 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18372 Application(s): debugger, dialyzer, reltool, stdlib
+ Related Id(s): GH-6580
+
+ Fixed a bug that would cause analysis to crash.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of dialyzer-5.0.5: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.3.1 ---------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_interface-5.3.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18404 Application(s): erl_interface, jinterface, kernel
+ Related Id(s): GH-6595, PR-6625
+
+ Accept connection setup from OTP 23 and 24 nodes that
+ are not using epmd.
+
+
+ --- Known Bugs and Problems ---
+
+ OTP-16607 Application(s): erl_interface
+ Related Id(s): OTP-16608
+
+ The ei API for decoding/encoding terms is not fully
+ 64-bit compatible since terms that have a
+ representation on the external term format larger than
+ 2 GB cannot be handled.
+
+
+ ---------------------------------------------------------------------
+ --- erts-13.2 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The erts-13.2 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- kernel-8.5 (first satisfied in OTP 25.1)
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18348 Application(s): erts, kernel
+ Related Id(s): GH-6356
+
+ Fixed a bug on Windows where file:read_file_info/1
+ would fail for files with corrupt metadata.
+
+
+ OTP-18373 Application(s): erts
+ Related Id(s): GH-6573, PR-6574
+
+ Fix process_info(_, binary) to again include "writable
+ binaries" which were lost in OTP-25.0. Writable
+ binaries are an optimization used when binaries are
+ appended upon in a loop.
+
+
+ OTP-18382 Application(s): erts
+ Related Id(s): PR-6585
+
+ Fix rare race when receiving fragmented messages on a
+ terminating connection. Could potentially cause memory
+ leaks as well as double free crashes. Bug exists since
+ OTP 22.0.
+
+
+ OTP-18391 Application(s): erts
+
+ Fixed bug that could maybe cause problems when a file
+ descriptor number is closed by a linked in driver and
+ then opened (reused) and passed to enif_select by a
+ NIF. No actual symptoms seen, only failed internal
+ assertions in debug build.
+
+
+ OTP-18398 Application(s): erts
+ Related Id(s): GH-5984, GH-6448, PR-6495
+
+ The runtime system could crash when tracing a process
+ executing on a dirty scheduler.
+
+
+ OTP-18406 Application(s): erts
+ Related Id(s): GH-6701
+
+ In the binary syntax, attempting to match out integers
+ with size exceeding 2 GiB could crash the runtime
+ system.
+
+
+ OTP-18411 Application(s): erts
+ Related Id(s): GH-6717
+
+ Fixed edge case in floating-point negation where A =
+ 0.0, B = -A did not produce B = -0.0 on x86_64 JIT.
+
+
+ OTP-18418 Application(s): erts
+
+ Fixed an issue in the JIT that could crash the emulator
+ on some platforms.
+
+
+ OTP-18429 Application(s): erts
+ Related Id(s): GH-4232, GH-6537, PR-6587
+
+ Added meta data to the windows installer.
+
+
+ OTP-18434 Application(s): erts
+ Related Id(s): PR-6752
+
+ Fixed ETS insertion order into bag and duplicate_bag of
+ tuples with identical keys when passed in a list to
+ ets:insert/2. The insert order has been head-to-tail
+ but was accidentally changed in OTP 23.0. For bag it
+ was reverted (tail-to-head), while for duplicate_bag it
+ was sometimes reverted depending on the length of the
+ list and number of "reductions" left for the calling
+ process.
+
+ This fix changes the insert order of ets:insert/2 back
+ to always be head-to-tail of the list argument.
+
+
+ OTP-18454 Application(s): erts
+ Related Id(s): PR-6839
+
+ With the JIT for AArch64 (AMD64), calling bxor in with
+ non-integer arguments in a guard would crash the
+ runtime system.
+
+
+ OTP-18457 Application(s): erts
+ Related Id(s): PR-6816
+
+ Fix bug regarding process flag max_heap_size. Could
+ cause strange behavior when a process was killed due to
+ exceeding the limit.
+
+
+ OTP-18458 Application(s): erts
+
+ Fixed binary comprehensions to be similar to other
+ creation of binary data with respect to its
+ contribution of triggering garbage collection.
+
+
+ OTP-18463 Application(s): erts
+ Related Id(s): PR-6858
+
+ In rare circumstances, when a process exceeded its
+ allowed heap size set by option max_heap_size, it would
+ not be killed as it should be, but instead enter a kind
+ of zombie state it would never get out of.
+
+
+ OTP-18475 Application(s): erts, stdlib
+ Related Id(s): PR-6897
+
+ Instead of crashing, the list_to_integer/1 and
+ list_to_integer/2 BIFs now raise the system_limit
+ exception for overlong lists that can't be converted to
+ integers. Similarly, the string:to_integer/1 BIF now
+ returns {error,system_limit} for overlong lists.
+
+
+ OTP-18496 Application(s): erts
+ Related Id(s): GH-6947, PR-6953
+
+ Active process aliases of a process at its termination
+ leaked memory.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18374 Application(s): erts
+ Related Id(s): PR-6632
+
+ *** HIGHLIGHT ***
+
+ Support for fully asynchronous distributed signaling
+ where send operations *never* block. This functionality
+ is by default disabled and can be enabled per process.
+ For more information see the documentation of
+ process_flag(async_dist, Bool).
+
+
+ OTP-18426 Application(s): erts
+
+ Added the +JPperf no_fp option to explicitly disable
+ Erlang frame pointers otherwise added when using the
+ +JPperf map option.
+
+
+ Full runtime dependencies of erts-13.2: kernel-8.5, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- eunit-2.8.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The eunit-2.8.2 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of eunit-2.8.2: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- ftp-1.1.4 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ftp-1.1.4 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of ftp-1.1.4: erts-7.0, kernel-6.0,
+ runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.3 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-8.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18472 Application(s): inets
+ Related Id(s): DAFH-1592
+
+ With this change, handling of URI to a folder, with
+ missing trailing / and a query component present is
+ fixed.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18390 Application(s): inets
+ Related Id(s): PR-6661
+
+ Adds more type information to the inets app, thus
+ improving the errors that static analysis tools can
+ detect.
+
+ The addition of type information to records and the
+ updates to function heads help static analysis tools to
+ understand that some values in the records cannot be
+ 'undefined', thus making static tools to type check
+ correctly more modules in the inets app
+
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of inets-8.3: erts-6.0, kernel-6.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- jinterface-1.13.2 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The jinterface-1.13.2 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18404 Application(s): erl_interface, jinterface, kernel
+ Related Id(s): GH-6595, PR-6625
+
+ Accept connection setup from OTP 23 and 24 nodes that
+ are not using epmd.
+
+
+ ---------------------------------------------------------------------
+ --- kernel-8.5.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The kernel-8.5.4 application *cannot* be applied independently
+ of other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1.3 (first satisfied in OTP 25.2)
+ -- stdlib-4.1.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18348 Application(s): erts, kernel
+ Related Id(s): GH-6356
+
+ Fixed a bug on Windows where file:read_file_info/1
+ would fail for files with corrupt metadata.
+
+
+ OTP-18404 Application(s): erl_interface, jinterface, kernel
+ Related Id(s): GH-6595, PR-6625
+
+ Accept connection setup from OTP 23 and 24 nodes that
+ are not using epmd.
+
+
+ Full runtime dependencies of kernel-8.5.4: crypto-5.0, erts-13.1.3,
+ sasl-3.0, stdlib-4.1.1
+
+
+ ---------------------------------------------------------------------
+ --- megaco-4.4.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The megaco-4.4.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of megaco-4.4.3: asn1-3.0, debugger-4.0,
+ erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.21.4 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.21.4 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18412 Application(s): mnesia
+
+ Improved consistency for dirty writes when a table was
+ added with add_table_copy/3.
+
+ Fixed a problem with sticky write, which could lead to
+ inconsistent data.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of mnesia-4.21.4: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- os_mon-2.8.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The os_mon-2.8.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18469 Application(s): os_mon
+ Related Id(s): PR-6689
+
+ The port programs used by cpu_sup and memsup are now
+ gracefully shut down when cpu_sup and memsup are shut
+ down.
+
+
+ Full runtime dependencies of os_mon-2.8.1: erts-6.0, kernel-3.0,
+ sasl-2.4, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.13.3 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.13.3 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18316 Application(s): public_key
+ Related Id(s): GH-6402, PR-6883
+
+ As different solutions of verifying certificate
+ revocation exists move the decode of
+ 'CRLDistributionPoints' so that it will only be decode.
+ When it is actually used in the verification process.
+ This would enable interoperability with systems that
+ use certificates with an invalid empty
+ CRLDistributionPoints extension that they want to
+ ignore and make verification by other means.
+
+
+ OTP-18356 Application(s): public_key
+ Related Id(s): GH-6403
+
+ public_key:pkix_path_validation validates certificates
+ expiring after 2050
+
+
+ OTP-18392 Application(s): public_key
+ Related Id(s): GH-6656
+
+ Do not leave exit message in message queue after
+ calling cacerts_load() on MacOS.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of public_key-1.13.3: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- reltool-0.9.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The reltool-0.9.1 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18372 Application(s): debugger, dialyzer, reltool, stdlib
+ Related Id(s): GH-6580
+
+ Fixed a bug that would cause analysis to crash.
+
+
+ Full runtime dependencies of reltool-0.9.1: erts-7.0, kernel-3.0,
+ sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.13.4 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.13.4 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of snmp-5.13.4: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- ssh-4.15.3 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-4.15.3 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18446 Application(s): ssh
+ Related Id(s): GH-6475
+
+ With this change, PKCS8 formatted private key file is
+ properly decoded and SSH daemon with such key can be
+ started.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of ssh-4.15.3: crypto-5.0, erts-11.0,
+ kernel-6.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ --- ssl-10.9 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The ssl-10.9 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependency has to be satisfied:
+ -- stdlib-4.1 (first satisfied in OTP 25.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18371 Application(s): ssl
+ Related Id(s): GH-6160
+
+ Fixed that new dtls connections from the same client ip
+ port combination works. If there is a process waiting
+ for accept the new connection will connect to that,
+ otherwise it will try to re-connect to the old server
+ connection.
+
+
+ OTP-18443 Application(s): ssl
+ Related Id(s): PR-6810
+
+ When shutting down a node that uses SSL distribution
+ (-proto_dist inet_tls), a confusing error message about
+ an unexpected process exit was printed. This particular
+ message is no longer generated.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18366 Application(s): ssl
+ Related Id(s): GH-6506, PR-6565
+
+ fixes the type spec for ssl:format_error/1
+
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of ssl-10.9: crypto-5.0, erts-10.0,
+ inets-5.10.7, kernel-8.4, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-4.3 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ Note! The stdlib-4.3 application *cannot* be applied independently of
+ other applications on an arbitrary OTP 25 installation.
+
+ On a full OTP 25 installation, also the following runtime
+ dependencies have to be satisfied:
+ -- erts-13.1 (first satisfied in OTP 25.1)
+ -- kernel-8.5.1 (first satisfied in OTP 25.1.1)
+
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18372 Application(s): debugger, dialyzer, reltool, stdlib
+ Related Id(s): GH-6580
+
+ Fixed a bug that would cause analysis to crash.
+
+
+ OTP-18375 Application(s): stdlib
+ Related Id(s): GH-6591
+
+ Fixed a crash when formatting stack traces for error
+ reports.
+
+
+ OTP-18475 Application(s): erts, stdlib
+ Related Id(s): PR-6897
+
+ Instead of crashing, the list_to_integer/1 and
+ list_to_integer/2 BIFs now raise the system_limit
+ exception for overlong lists that can't be converted to
+ integers. Similarly, the string:to_integer/1 BIF now
+ returns {error,system_limit} for overlong lists.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18393 Application(s): stdlib
+ Related Id(s): PR-6666
+
+ Removal of non-necessary undefined types added to the
+ state's supervisor record.
+
+
+ Full runtime dependencies of stdlib-4.3: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-8.5.1, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- syntax_tools-3.0.1 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The syntax_tools-3.0.1 application can be applied independently of
+ other applications on a full OTP 25 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18380 Application(s): syntax_tools
+ Related Id(s): GH-4733, PR-6523
+
+ erl_syntax_lib:annotate_bindings/1,2 will now properly
+ annotate named functions and their arguments.
+
+
+ Full runtime dependencies of syntax_tools-3.0.1: compiler-7.0,
+ erts-9.0, kernel-5.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- tftp-1.0.4 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The tftp-1.0.4 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of tftp-1.0.4: erts-6.0, kernel-6.0,
+ stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.31 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The xmerl-1.3.31 application can be applied independently of other
+ applications on a full OTP 25 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18432 Application(s): dialyzer, eunit, ftp, inets, megaco,
+ mnesia, public_key, snmp, ssh, ssl, tftp, xmerl
+ Related Id(s): GH-6672, GH-6677, PR-6670, PR-6671,
+ PR-6673, PR-6674, PR-6682, PR-6684, PR-6694, PR-6696,
+ PR-6784, PR-6785, PR-6787, PR-6793, PR-6796, PR-6797,
+ PR-6798, PR-6799, PR-6800, PR-6813
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of xmerl-1.3.31: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.0-rc1.README.txt b/release-notes/OTP-26.0-rc1.README.txt
new file mode 100644
index 0000000..ce28f52
--- /dev/null
+++ b/release-notes/OTP-26.0-rc1.README.txt
@@ -0,0 +1,2475 @@
+Inital Release: OTP 26.0
+Git Tag: OTP-26.0
+Date: 2023-02-15
+Trouble Report Id: OTP-14835, OTP-15597, OTP-15903, OTP-16607,
+ OTP-17771, OTP-17932, OTP-18016, OTP-18029,
+ OTP-18053, OTP-18126, OTP-18131, OTP-18135,
+ OTP-18137, OTP-18140, OTP-18141, OTP-18150,
+ OTP-18159, OTP-18167, OTP-18168, OTP-18176,
+ OTP-18185, OTP-18188, OTP-18204, OTP-18206,
+ OTP-18209, OTP-18210, OTP-18211, OTP-18221,
+ OTP-18225, OTP-18226, OTP-18227, OTP-18228,
+ OTP-18230, OTP-18231, OTP-18235, OTP-18236,
+ OTP-18237, OTP-18238, OTP-18246, OTP-18247,
+ OTP-18248, OTP-18253, OTP-18254, OTP-18259,
+ OTP-18261, OTP-18271, OTP-18272, OTP-18274,
+ OTP-18275, OTP-18276, OTP-18277, OTP-18278,
+ OTP-18279, OTP-18282, OTP-18285, OTP-18286,
+ OTP-18287, OTP-18297, OTP-18300, OTP-18301,
+ OTP-18303, OTP-18305, OTP-18309, OTP-18312,
+ OTP-18318, OTP-18327, OTP-18334, OTP-18335,
+ OTP-18337, OTP-18338, OTP-18340, OTP-18342,
+ OTP-18344, OTP-18350, OTP-18354, OTP-18355,
+ OTP-18360, OTP-18361, OTP-18364, OTP-18367,
+ OTP-18369, OTP-18377, OTP-18385, OTP-18405,
+ OTP-18410, OTP-18413, OTP-18414, OTP-18419,
+ OTP-18423, OTP-18424, OTP-18425, OTP-18430,
+ OTP-18431, OTP-18435, OTP-18438, OTP-18439,
+ OTP-18440, OTP-18441, OTP-18442, OTP-18444,
+ OTP-18445, OTP-18447, OTP-18448, OTP-18451,
+ OTP-18452, OTP-18453, OTP-18456, OTP-18459
+Seq num: GH-3150, GH-3390, GH-4225, GH-4343, GH-4965,
+ GH-5325, GH-5333, GH-5639, GH-5695, GH-5877,
+ GH-5889, GH-6014, GH-6085, GH-6117, GH-6132,
+ GH-6139, GH-6156, GH-6221, GH-6333, GH-6348,
+ GH-6461, GH-6477, GH-6544, GH-6606, GH-6672,
+ GH-6679
+System: OTP
+Release: 26
+Application: asn1-5.1, common_test-1.24, compiler-8.3,
+ crypto-5.2, dialyzer-5.1, diameter-2.3,
+ erl_docgen-1.5, erl_interface-5.4, erts-14.0,
+ inets-8.3, jinterface-1.14, kernel-9.0,
+ mnesia-4.22, observer-2.15, os_mon-2.9,
+ public_key-1.14, reltool-0.10,
+ runtime_tools-1.20, sasl-4.2.1, ssh-5.0,
+ ssl-11.0, stdlib-5.0, syntax_tools-3.1,
+ tools-3.6, wx-2.3
+Predecessor: OTP
+
+ Check out the git tag OTP-26.0, and build a full OTP system including
+ documentation.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18188 Application(s): dialyzer
+ Related Id(s): PR-5997
+
+ Dialyzer has a new incremental mode that be invoked by
+ giving the --incremental option when running Dialyzer.
+ This new incremental mode is likely to become the
+ default in a future release.
+
+ Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model
+ is optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code,
+ analysing it again, and so on, without explicit
+ reference to the building and checking of a PLT.
+
+ In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of
+ files they care about, and Dialyzer does the legwork in
+ terms of deciding how to most efficiently report all of
+ the relevant warnings given the cached results it may
+ already have in the PLT (and if a PLT doesn't exist,
+ incremental mode will create one).
+
+
+ OTP-18228 Application(s): stdlib
+ Related Id(s): GH-5639
+
+ The performance of the base64 module has been
+ significantly improved. For example, on an x86_64
+ system with the JIT both encode and decode are almost
+ three times faster than in Erlang/OTP 25.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18318 Application(s): stdlib
+ Related Id(s): PR-6347
+
+ In the lists, the zip family of functions now takes
+ options to allow handling lists of different lengths.
+
+
+ OTP-18334 Application(s): erts
+ Related Id(s): PR-6434
+
+ Support for UTF-8 atoms and strings in the NIF
+ interface including new functions enif_make_new_atom,
+ enif_make_new_atom_len and enif_get_string_length.
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18435 Application(s): erts
+ Related Id(s): PR-6827
+
+ The amount of significant bits in node local process
+ identifiers and port identifiers has been extended from
+ 28 bits to 60 bits on 64-bit runtime systems. This
+ makes these identifiers large enough to in practice
+ never having to be reused during the life time of a
+ node.
+
+
+ OTP-18440 Application(s): erts
+ Related Id(s): PR-6351
+
+ New trace feature call_memory. Similar to call_time
+ tracing, but instead of measure accumulated time in
+ traced functions it measures accumulated heap space
+ consumed by traced functions. It can be used to compare
+ how much different functions are contributing to
+ garbage collection being triggered.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+
+ OTP-18459 Application(s): ssl
+
+ Add encoding and decoding of use_srtp hello extension
+ to facilitate for DTLS users to implement SRTP
+ functionality.
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-17771 Application(s): erts
+ Related Id(s): GH-5325, PR-6370
+
+ The enif_set_option() function has been introduced into
+ the NIF API. It can be used in order to set the
+ ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT
+ options with which one can synchronize halt of the
+ runtime system with flushing enabled and execution of
+ NIFs. Halt of the runtime system without flushing
+ enabled, now terminates the runtime system without
+ execution of atexit/on_exit handlers that may have been
+ installed into the runtime system which might be
+ considered a potential incompatibility.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** HIGHLIGHT ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18168 Application(s): ssl
+ Related Id(s): GH-6014, PR-6019
+
+ With this change, stateless tickets generated by server
+ with anti_replay option enabled can be used for
+ creating ClientHello throughout ticket lifetime.
+ Without this change, usability was limited to
+ WindowSize number of seconds configured for anti_replay
+ option.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18438 Application(s): ssl
+ Related Id(s): GH-6679
+
+ For security reasons remove support for SHA1 and DSA
+ algorithms from default values.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-26.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18364 Application(s): otp
+
+ Starting from Erlang/OTP 24, it has been possible to
+ write expressions such as A = catch Expr without
+ parentheses around the catch expression, but it was not
+ mentioned in the documentation. It now is.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18053 Application(s): erts, otp
+ Related Id(s): PR-6101
+
+ Updated configure cache for Windows. This makes
+ configure run faster on windows as many more checks are
+ cached.
+
+
+ OTP-18209 Application(s): otp
+ Related Id(s): PR-5881
+
+ Fix the make target release, release_docs, install and
+ install-docs now work when the target path contains
+ whitespace and/or unicode characters.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18441 Application(s): asn1
+
+ Minor code improvements.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of asn1-5.1: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.24 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18377 Application(s): common_test
+ Related Id(s): PR-6437
+
+ This change improves Common Test docs (CT hook example
+ code) and adds Emacs skeleton with hook code.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18259 Application(s): common_test
+ Related Id(s): PR-5924
+
+ Updated common_test with a more robust way to fetch old
+ releases, while ignoring the current release.
+
+
+ OTP-18340 Application(s): common_test
+
+ - re-write the XML ct module documentation into erlang
+ types to make Dialyzer able to catch more precise
+ errors
+
+
+ Full runtime dependencies of common_test-1.24: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18126 Application(s): compiler, erts
+ Related Id(s): PR-6033
+
+ Optimized record updates.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ *** HIGHLIGHT ***
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ *** HIGHLIGHT ***
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ *** HIGHLIGHT ***
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18337 Application(s): compiler, stdlib
+ Related Id(s): GH-6477, PR-6503
+
+ It is documented that $\^X is the ASCII code for
+ Control X, where X is an uppercase or lowercase letter.
+ However, this notation would work for any character X,
+ even then it didn't make sense.
+
+ In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the \^
+ characters: @, [, \, ], ^, _, and ?. Attempt to use
+ other characters will be rejected with a compiler
+ error.
+
+ The value for $\? is now 127 (instead of 31 as in
+ earlier releases).
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ *** HIGHLIGHT ***
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ Full runtime dependencies of compiler-8.3: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18204 Application(s): crypto
+ Related Id(s): PR-6203
+
+ Add support for SHAKE128 and SHAKE256.
+
+
+ OTP-18206 Application(s): crypto
+ Related Id(s): PR-6167
+
+ Make the -DOPENSSL_API_COMPAT flag work without
+ warnings.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of crypto-5.2: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18237 Application(s): dialyzer
+ Related Id(s): GH-6221, PR-6243
+
+ When checking behaviors, Dialyzer could generate false
+ warning that a callback function did not have the
+ correct type according to the spec in the behavior
+ definition.
+
+
+ OTP-18276 Application(s): dialyzer
+ Related Id(s): GH-6333
+
+ In a spec, list(none()) used to mean none(). It has now
+ been corrected to mean the empty list.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18188 Application(s): dialyzer
+ Related Id(s): PR-5997
+
+ *** HIGHLIGHT ***
+
+ Dialyzer has a new incremental mode that be invoked by
+ giving the --incremental option when running Dialyzer.
+ This new incremental mode is likely to become the
+ default in a future release.
+
+ Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model
+ is optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code,
+ analysing it again, and so on, without explicit
+ reference to the building and checking of a PLT.
+
+ In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of
+ files they care about, and Dialyzer does the legwork in
+ terms of deciding how to most efficiently report all of
+ the relevant warnings given the cached results it may
+ already have in the PLT (and if a PLT doesn't exist,
+ incremental mode will create one).
+
+
+ OTP-18238 Application(s): dialyzer
+ Related Id(s): PR-6271
+
+ Dialyzer now produces clearer error messages for
+ contract violations.
+
+
+ OTP-18282 Application(s): dialyzer
+ Related Id(s): GH-6132, PR-6335
+
+ The name of a built-in type can now be reused as the
+ name of type locally. That is useful when an OTP
+ release introduces a new built-in type; having the
+ possibility to redefine built-in types locally can make
+ it easier to maintain code that works in multiple OTP
+ releases.
+
+
+ OTP-18342 Application(s): dialyzer
+ Related Id(s): GH-6117, PR-6654
+
+ Dialyzer's overloaded domain warning becomes is
+ disabled by default, and can be enabled with the flag
+ -Woverlapping_contract.
+
+ Dialyzer used to issue a warning for overloaded domains
+ stating "such contracts are currently unsupported and
+ are simply ignored".
+
+ These contracts are not "ignored" but rather, Dialyzer
+ takes the union of the overloaded domains. This means
+ that we lose the dependency from each corresponding
+ input to output type. Because of this, the warning is
+ really about not being able to establish a dependency
+ between the input and output types of each respective
+ overloaded function specification.
+
+
+ OTP-18439 Application(s): dialyzer
+ Related Id(s): GH-5695, PR-6822
+
+ Dialyzer has enabled (by default) warnings about
+ unknown types and functions.
+
+ Prior to this change, Dialyzer had warnings about
+ unknown types and functions disabled (by default).
+
+ This default value has been overwritten; Dialyzer now
+ warns about unknown types and functions (as requested
+ by the community in GH-5695). Thus, the following two
+ examples are equivalent, i.e., passing the -Wunknown
+ function is enabled by default:
+
+ dialyzer moduler.erl -Wunknown -Wmissing_return
+
+ dialyzer moduler.erl -Wmissing_return
+
+ Dialyzer has a new flag, -Wno_unknown. Its purpose is
+ to suppress warnings about unknown functions and types.
+
+ Users who wish to suppress these warnings can invoke
+ Dialyzer using this flag. Example: dialyzer module.erl
+ -Wno_unknown
+
+
+ Full runtime dependencies of dialyzer-5.1: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-4.0, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- diameter-2.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ Full runtime dependencies of diameter-2.3: erts-10.0, kernel-3.2,
+ ssl-9.0, stdlib-3.0
+
+
+ ---------------------------------------------------------------------
+ --- erl_docgen-1.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18338 Application(s): erl_docgen
+ Related Id(s): PR-6408
+
+ New XML tag <change>. Like a <note> box, but with a
+ different (steel blue) color and label. Intended to
+ contain talk about semantic differences between OTP
+ releases.
+
+
+ Full runtime dependencies of erl_docgen-1.5: edoc-1.0, erts-11.0,
+ kernel-8.0, stdlib-3.15, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.4 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ --- Known Bugs and Problems ---
+
+ OTP-16607 Application(s): erl_interface
+ Related Id(s): OTP-16608
+
+ The ei API for decoding/encoding terms is not fully
+ 64-bit compatible since terms that have a
+ representation on the external term format larger than
+ 2 GB cannot be handled.
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.0 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18016 Application(s): erts
+
+ If a local fun was called while reloading the *exact
+ same* module that defined said fun, there was a small
+ window in which the call would land in code that was
+ yet to be fully loaded.
+
+
+ OTP-18248 Application(s): erts, kernel
+ Related Id(s): GH-6085, PR-6227
+
+ Fix the TLS distribution to work when starting Erlang
+ in embedded mode and a connection is done before kernel
+ is fully started.
+
+
+ OTP-18271 Application(s): erts, kernel
+ Related Id(s): PR-6279
+
+ erl -remsh has been improved to provide better error
+ reasons and work when using a shell without terminal
+ support (that is an "oldshell").
+
+
+ OTP-18274 Application(s): erts
+ Related Id(s): PR-6048
+
+ Fix so that -fno-omit-frame-pointer is applied to all
+ of the Erlang VM when using the JIT so that tools, such
+ as perf, can crawl the process stacks.
+
+
+ OTP-18277 Application(s): erts
+ Related Id(s): PR-6306
+
+ Compilation server now support unicode paths in
+ compilation server for filesystems that are encoded
+ with unicode.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17771 Application(s): erts
+ Related Id(s): GH-5325, PR-6370
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The enif_set_option() function has been introduced into
+ the NIF API. It can be used in order to set the
+ ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT
+ options with which one can synchronize halt of the
+ runtime system with flushing enabled and execution of
+ NIFs. Halt of the runtime system without flushing
+ enabled, now terminates the runtime system without
+ execution of atexit/on_exit handlers that may have been
+ installed into the runtime system which might be
+ considered a potential incompatibility.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ Preparation for adding Windows support to 'socket'.
+
+
+ OTP-18053 Application(s): erts, otp
+ Related Id(s): PR-6101
+
+ Updated configure cache for Windows. This makes
+ configure run faster on windows as many more checks are
+ cached.
+
+
+ OTP-18126 Application(s): compiler, erts
+ Related Id(s): PR-6033
+
+ Optimized record updates.
+
+
+ OTP-18131 Application(s): erts
+
+ Optimized internal hash routines.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ *** HIGHLIGHT ***
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18141 Application(s): erts
+ Related Id(s): OTP-18140, PR-6073
+
+ Optimization of process aliases made possible now that
+ support for version 4 node container types in the
+ external term format is mandatory.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ *** HIGHLIGHT ***
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18227 Application(s): erts
+ Related Id(s): PR-6254
+
+ When erl -eval fails to execute the command is not
+ printed to standard_error.
+
+
+ OTP-18334 Application(s): erts
+ Related Id(s): PR-6434
+
+ *** HIGHLIGHT ***
+
+ Support for UTF-8 atoms and strings in the NIF
+ interface including new functions enif_make_new_atom,
+ enif_make_new_atom_len and enif_get_string_length.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18360 Application(s): erts
+ Related Id(s): PR-6497
+
+ erlang:display/1 will now print large maps in a more
+ readable way (similar to how small maps are printed).
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18369 Application(s): erts
+
+ Fail enif_init_resource_type and friends by returning
+ NULL if not called during load/upgrade. Old behavior
+ was undefined.
+
+
+ OTP-18410 Application(s): erts
+ Related Id(s): GH-5889, PR-6345
+
+ New option include_shared_binaries for the
+ max_heap_size process limit. If set to true, large
+ binaries (> 64 bytes), which may be referred by several
+ processes, are included in the memory sum compared
+ against the max_heap_size limit.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ *** HIGHLIGHT ***
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18424 Application(s): erts
+ Related Id(s): PR-6716
+
+ Reduced memory usage of file:read_file_info/1,2
+
+
+ OTP-18425 Application(s): erts
+ Related Id(s): GH-5333, PR-6628
+
+ Add new function current_stacktrace for trace match
+ specifications used by erlang:trace_pattern/3.
+
+ This new option puts the current stacktrace of the
+ caller into the trace message sent to the trace
+ receiver.
+
+
+ OTP-18435 Application(s): erts
+ Related Id(s): PR-6827
+
+ *** HIGHLIGHT ***
+
+ The amount of significant bits in node local process
+ identifiers and port identifiers has been extended from
+ 28 bits to 60 bits on 64-bit runtime systems. This
+ makes these identifiers large enough to in practice
+ never having to be reused during the life time of a
+ node.
+
+
+ OTP-18440 Application(s): erts
+ Related Id(s): PR-6351
+
+ *** HIGHLIGHT ***
+
+ New trace feature call_memory. Similar to call_time
+ tracing, but instead of measure accumulated time in
+ traced functions it measures accumulated heap space
+ consumed by traced functions. It can be used to compare
+ how much different functions are contributing to
+ garbage collection being triggered.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of erts-14.0: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.3 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18167 Application(s): inets
+
+ By default ssl connections will use options from
+ ssl_default_options(true)
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ Full runtime dependencies of inets-8.3: erts-14.0, kernel-9.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- jinterface-1.14 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18210 Application(s): kernel
+ Related Id(s): GH-5877, PR-5878
+
+ Fix bug where duplicate keys were allowed in the .app
+ file of an application. Duplicate keys are now rejected
+ and the application will not start if they exist.
+
+
+ OTP-18225 Application(s): kernel
+ Related Id(s): PR-6036
+
+ Fix inconsistent handling in logger_formatter of the
+ branched values in conditional branches. For example
+ using msg in a conditional branch would not be
+ formatted as it should before this fix.
+
+
+ OTP-18226 Application(s): kernel
+ Related Id(s): PR-6253
+
+ Fix the logger_std_h handler to log to standard_error
+ if logging to standard_io fails for any reason.
+
+
+ OTP-18248 Application(s): erts, kernel
+ Related Id(s): GH-6085, PR-6227
+
+ Fix the TLS distribution to work when starting Erlang
+ in embedded mode and a connection is done before kernel
+ is fully started.
+
+
+ OTP-18271 Application(s): erts, kernel
+ Related Id(s): PR-6279
+
+ erl -remsh has been improved to provide better error
+ reasons and work when using a shell without terminal
+ support (that is an "oldshell").
+
+
+ OTP-18286 Application(s): kernel
+ Related Id(s): PR-5955
+
+ Fix logging of log events generated before kernel is
+ started to not fail if the code for formatting those
+ log messaged have not yet been loaded.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ Preparation for adding Windows support to 'socket'.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ *** HIGHLIGHT ***
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18261 Application(s): kernel
+ Related Id(s): PR-5924
+
+ Add code:get_doc/2 which adds support to fetch
+ documentation skeletons of functions using debug_info
+ chunks instead of eep48 doc chunks.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18305 Application(s): kernel
+ Related Id(s): PR-5831
+
+ gen_server optimized by caching callback functions
+
+
+ OTP-18327 Application(s): kernel
+ Related Id(s): PR-6433
+
+ Prepare the pg communication protocol for upgrade. The
+ plan is for OTP-28 nodes to be able to use an upgraded
+ pg protocol while still being able to talk with OTP 26
+ nodes.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18419 Application(s): kernel
+
+ The function file:pid2name/1 is deprecated and will be
+ removed in Erlang/OTP 27.
+
+
+ OTP-18442 Application(s): kernel
+ Related Id(s): GH-6606, PR-6786
+
+ The modules Erlang DNS resolver inet_res and helper
+ modules have been updated for RFC6891; to handle OPT RR
+ with DNSSEC OK (DO) bit.
+
+
+ OTP-18444 Application(s): kernel
+ Related Id(s): PR-6035
+
+ Introduced application:get_supervisor/1.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18448 Application(s): kernel
+ Related Id(s): PR-6736
+
+ Reduce contention on the code_server by doing the code
+ preparation on the client.
+
+
+ OTP-18451 Application(s): kernel
+ Related Id(s): PR-6737
+
+ Added a mode to ensure_all_loaded, to start children
+ application and their dependencies concurrently.
+
+
+ OTP-18452 Application(s): kernel
+ Related Id(s): PR-6729
+
+ Cache OTP boot code paths, to limit how many folders
+ that are being accessed during a module lookup. Can be
+ disabled with -cache_boot_path false. OTP boot code
+ paths consists of ERL_LIB environment variables. The
+ various otp/*/ebin folders. And the {path, ...} clauses
+ in the init script.
+
+
+ OTP-18456 Application(s): kernel, ssl
+
+ Erlang distribution code in Kernel and SSL has been
+ refactored a bit to facilitate debugging and
+ re-usability, which shouldn't have any noticeable
+ effects on behaviour or performance.
+
+
+ Full runtime dependencies of kernel-9.0: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.22 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18309 Application(s): mnesia
+ Related Id(s): PR-6377
+
+ Added debug statistics for active transactions.
+
+
+ Full runtime dependencies of mnesia-4.22: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- observer-2.15 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18430 Application(s): observer
+ Related Id(s): PR-6397
+
+ Added start/1, start_and_wait functions/1|2 functions.
+
+
+ Full runtime dependencies of observer-2.15: erts-14.0, et-1.5,
+ kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- os_mon-2.9 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18246 Application(s): os_mon
+ Related Id(s): GH-6156, PR-6284
+
+ Fix internal os_mon_sysinfo:get_disk_info/1 function to
+ not crash when run on Windows with multiple drives.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18303 Application(s): os_mon
+ Related Id(s): PR-6384
+
+ The disksup:get_disk_info/0 and disksup:get_disk_info/1
+ functions have been introduced. These can be used in
+ order to immediately fetch information about current
+ disk usage.
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ Full runtime dependencies of os_mon-2.9: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.14 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of public_key-1.14: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- reltool-0.10 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18230 Application(s): reltool
+ Related Id(s): PR-5936
+
+ Add possibility to strip specific chunks from beam
+ files included in a release. Before this change it was
+ only possible to strip all chunks from the beam files.
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ Full runtime dependencies of reltool-0.10: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0, tools-2.6.14, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- runtime_tools-1.20 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18211 Application(s): runtime_tools
+ Related Id(s): PR-6143
+
+ Add dbg:tracer(file, Filename) as a convenient way to
+ trace to a file in clean text.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of runtime_tools-1.20: erts-11.0,
+ kernel-8.1, mnesia-4.12, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- sasl-4.2.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18300 Application(s): sasl
+ Related Id(s): PR-6389
+
+ Improve error message from systools:make_script, when
+ .app parameters contain duplicates. The parameters that
+ will be checked are modules, applications and
+ registered.
+
+
+ Full runtime dependencies of sasl-4.2.1: erts-10.2, kernel-6.0,
+ stdlib-4.0, tools-2.6.14
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.0 ---------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18231 Application(s): ssh
+ Related Id(s): OTP-17932, PR-6144
+
+ The ssh_cli has been updated to work with the changes
+ introduced in the new Erlang shell implementation.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ Full runtime dependencies of ssh-5.0: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-15903 Application(s): ssl
+
+ Improved error checking and handling of ssl options.
+
+
+ OTP-18168 Application(s): ssl
+ Related Id(s): GH-6014, PR-6019
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change, stateless tickets generated by server
+ with anti_replay option enabled can be used for
+ creating ClientHello throughout ticket lifetime.
+ Without this change, usability was limited to
+ WindowSize number of seconds configured for anti_replay
+ option.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ *** HIGHLIGHT ***
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18253 Application(s): ssl
+
+ With this change, TLS 1.3 server can be configured to
+ include client certificate in session ticket.
+
+
+ OTP-18254 Application(s): ssl
+ Related Id(s): PR-5982
+
+ With this change, it is possible to configure
+ encryption seed to be used with TLS1.3 stateless
+ tickets. This enables using tickets on different server
+ instances.
+
+
+ OTP-18312 Application(s): ssl
+
+ Debugging enhancements.
+
+
+ OTP-18335 Application(s): ssl
+
+ With this change, maybe keyword atom is not used as
+ function name in ssl code.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18438 Application(s): ssl
+ Related Id(s): GH-6679
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ For security reasons remove support for SHA1 and DSA
+ algorithms from default values.
+
+
+ OTP-18453 Application(s): ssl
+
+ Mitigate memory usage from large certificate chains by
+ lowering the maximum handshake size. This should not
+ effect the common cases, if needed it can be configured
+ to a higher value.
+
+
+ OTP-18456 Application(s): kernel, ssl
+
+ Erlang distribution code in Kernel and SSL has been
+ refactored a bit to facilitate debugging and
+ re-usability, which shouldn't have any noticeable
+ effects on behaviour or performance.
+
+
+ OTP-18459 Application(s): ssl
+
+ *** HIGHLIGHT ***
+
+ Add encoding and decoding of use_srtp hello extension
+ to facilitate for DTLS users to implement SRTP
+ functionality.
+
+
+ Full runtime dependencies of ssl-11.0: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18275 Application(s): stdlib
+ Related Id(s): PR-6045
+
+ All process calls in dets have been updated to use the
+ receive queue optimizations.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-15597 Application(s): stdlib
+ Related Id(s): PR-5831
+
+ Gen_server now caches external functions for use in
+ handle_call, handle_cast and handle_info.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18150 Application(s): stdlib
+
+ Added codepoint category to unicode_util
+
+
+ OTP-18159 Application(s): stdlib
+ Related Id(s): PR-6904
+
+ Added the zip:zip_get_crc32/2 function to retrieve the
+ CRC32 checksum from an opened ZIP archive.
+
+
+ OTP-18176 Application(s): stdlib
+ Related Id(s): PR-6118
+
+ Add the new options post_process_args and detached to
+ peer:start function.
+
+
+ OTP-18221 Application(s): stdlib
+ Related Id(s): PR-6197
+
+ The re:replace/3,4 functions now accept as the
+ replacement argument.
+
+
+ OTP-18228 Application(s): stdlib
+ Related Id(s): GH-5639
+
+ *** HIGHLIGHT ***
+
+ The performance of the base64 module has been
+ significantly improved. For example, on an x86_64
+ system with the JIT both encode and decode are almost
+ three times faster than in Erlang/OTP 25.
+
+
+ OTP-18236 Application(s): stdlib
+ Related Id(s): PR-6256
+
+ Improved implementation of timer:apply_interval/4
+ reducing load on the timer server, and introduction of
+ the new function timer:apply_repeatedly/4.
+ timer:apply_repeatedly/4 is similar to
+ timer:apply_interval/4, but timer:apply_repeatedly/4
+ prevents parallel execution of triggered apply
+ operations which timer:apply_interval/4 does not.
+
+
+ OTP-18247 Application(s): stdlib
+ Related Id(s): PR-6280, PR-6711
+
+ The base64 module now supports encoding and decoding
+ with an alternate URL safe alphabet, and an option for
+ accepting or adding missing = padding characters.
+
+
+ OTP-18272 Application(s): stdlib
+ Related Id(s): PR-6279
+
+ Add shell:whereis/0 which can be used to locate the
+ current shell process.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18279 Application(s): stdlib
+ Related Id(s): PR-6234
+
+ New function ets:lookup_element/4 with a Default
+ argument returned if the key did not exist in the
+ table. The old ets:lookup_element/3 raises a badarg
+ exception which can be both inconveniente and slower.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18287 Application(s): stdlib
+ Related Id(s): PR-5955
+
+ peer nodes using standard_io connections now include
+ standard error from the node in the io stream from the
+ started node.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ *** HIGHLIGHT ***
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18301 Application(s): stdlib
+ Related Id(s): PR-6350
+
+ Improve type specification of
+ unicode:characters_to_list().
+
+
+ OTP-18318 Application(s): stdlib
+ Related Id(s): PR-6347
+
+ *** HIGHLIGHT ***
+
+ In the lists, the zip family of functions now takes
+ options to allow handling lists of different lengths.
+
+
+ OTP-18337 Application(s): compiler, stdlib
+ Related Id(s): GH-6477, PR-6503
+
+ It is documented that $\^X is the ASCII code for
+ Control X, where X is an uppercase or lowercase letter.
+ However, this notation would work for any character X,
+ even then it didn't make sense.
+
+ In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the \^
+ characters: @, [, \, ], ^, _, and ?. Attempt to use
+ other characters will be rejected with a compiler
+ error.
+
+ The value for $\? is now 127 (instead of 31 as in
+ earlier releases).
+
+
+ OTP-18354 Application(s): stdlib
+ Related Id(s): PR-6297
+
+ The binary:encode_hex/2 function has been added to
+ allow the encoded hexadecimal digits to be in either
+ lower or upper case.
+
+
+ OTP-18355 Application(s): stdlib
+ Related Id(s): PR-6507
+
+ Variants of timer:tc() with user specified time unit
+ have been introduced.
+
+
+ OTP-18361 Application(s): stdlib
+ Related Id(s): PR-6536
+
+ New function math:tau/0. Returns 2*math:pi().
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18385 Application(s): stdlib
+ Related Id(s): PR-6698
+
+ Optimized gen_server:multi_call().
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ *** HIGHLIGHT ***
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18423 Application(s): stdlib
+ Related Id(s): com/erlang/backlog/issues/142,
+ https://github
+
+ Make gen_server fail "silently" with a new return value
+ for init/1.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ *** HIGHLIGHT ***
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+
+ Full runtime dependencies of stdlib-5.0: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- syntax_tools-3.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ Full runtime dependencies of syntax_tools-3.1: compiler-7.0,
+ erts-9.0, kernel-5.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- tools-3.6 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ Full runtime dependencies of tools-3.6: compiler-5.0, erts-11.0,
+ erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.3 ----------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ Full runtime dependencies of wx-2.3: erts-12.0, kernel-8.0,
+ stdlib-3.15
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.0-rc2.README.txt b/release-notes/OTP-26.0-rc2.README.txt
new file mode 100644
index 0000000..23c8f66
--- /dev/null
+++ b/release-notes/OTP-26.0-rc2.README.txt
@@ -0,0 +1,3216 @@
+Inital Release: OTP 26.0
+Git Tag: OTP-26.0
+Date: 2023-03-22
+Trouble Report Id: OTP-14835, OTP-15597, OTP-15903, OTP-16607,
+ OTP-17771, OTP-17932, OTP-18016, OTP-18029,
+ OTP-18053, OTP-18126, OTP-18131, OTP-18135,
+ OTP-18137, OTP-18140, OTP-18141, OTP-18150,
+ OTP-18159, OTP-18167, OTP-18168, OTP-18176,
+ OTP-18185, OTP-18188, OTP-18204, OTP-18206,
+ OTP-18209, OTP-18210, OTP-18211, OTP-18221,
+ OTP-18225, OTP-18226, OTP-18227, OTP-18228,
+ OTP-18230, OTP-18231, OTP-18235, OTP-18236,
+ OTP-18237, OTP-18238, OTP-18246, OTP-18247,
+ OTP-18248, OTP-18253, OTP-18254, OTP-18259,
+ OTP-18261, OTP-18271, OTP-18272, OTP-18274,
+ OTP-18275, OTP-18276, OTP-18277, OTP-18278,
+ OTP-18279, OTP-18282, OTP-18285, OTP-18286,
+ OTP-18287, OTP-18297, OTP-18300, OTP-18301,
+ OTP-18303, OTP-18305, OTP-18309, OTP-18310,
+ OTP-18312, OTP-18318, OTP-18327, OTP-18334,
+ OTP-18335, OTP-18337, OTP-18338, OTP-18340,
+ OTP-18342, OTP-18344, OTP-18350, OTP-18354,
+ OTP-18355, OTP-18359, OTP-18360, OTP-18361,
+ OTP-18364, OTP-18367, OTP-18369, OTP-18377,
+ OTP-18385, OTP-18389, OTP-18405, OTP-18410,
+ OTP-18413, OTP-18414, OTP-18419, OTP-18423,
+ OTP-18424, OTP-18425, OTP-18430, OTP-18431,
+ OTP-18435, OTP-18438, OTP-18439, OTP-18440,
+ OTP-18441, OTP-18442, OTP-18444, OTP-18445,
+ OTP-18447, OTP-18448, OTP-18451, OTP-18452,
+ OTP-18453, OTP-18455, OTP-18456, OTP-18459,
+ OTP-18466, OTP-18471, OTP-18474, OTP-18476,
+ OTP-18477, OTP-18483, OTP-18484, OTP-18485,
+ OTP-18486, OTP-18487, OTP-18488, OTP-18490,
+ OTP-18491, OTP-18492, OTP-18493, OTP-18494,
+ OTP-18495, OTP-18498, OTP-18499, OTP-18500,
+ OTP-18501, OTP-18502, OTP-18505, OTP-18510,
+ OTP-18511, OTP-18515, OTP-18517, OTP-18518,
+ OTP-18520, OTP-18521, OTP-18522, OTP-18523,
+ OTP-18524
+Seq num: GH-3150, GH-3390, GH-4225, GH-4343, GH-4965,
+ GH-5325, GH-5333, GH-5639, GH-5695, GH-5877,
+ GH-5889, GH-5899, GH-6014, GH-6085, GH-6098,
+ GH-6117, GH-6132, GH-6139, GH-6156, GH-6221,
+ GH-6333, GH-6339, GH-6348, GH-6380, GH-6455,
+ GH-6461, GH-6477, GH-6508, GH-6544, GH-6606,
+ GH-6672, GH-6679, GH-6706, GH-6850, GH-6942,
+ GH-6990, GH-7015
+System: OTP
+Release: 26
+Application: asn1-5.1, common_test-1.25, compiler-8.3,
+ crypto-5.2, dialyzer-5.1, diameter-2.3,
+ erl_docgen-1.5, erl_interface-5.4, erts-14.0,
+ ftp-1.1.5, inets-8.4, jinterface-1.14,
+ kernel-9.0, mnesia-4.22, observer-2.15,
+ os_mon-2.9, parsetools-2.5, public_key-1.14,
+ reltool-1.0, runtime_tools-1.20, sasl-4.2.1,
+ snmp-5.14, ssh-5.0, ssl-11.0, stdlib-5.0,
+ syntax_tools-3.1, tftp-1.1, tools-3.6, wx-2.3
+Predecessor: OTP
+
+ Check out the git tag OTP-26.0, and build a full OTP system including
+ documentation.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18188 Application(s): dialyzer
+ Related Id(s): PR-5997
+
+ Dialyzer has a new incremental mode that be invoked by
+ giving the --incremental option when running Dialyzer.
+ This new incremental mode is likely to become the
+ default in a future release.
+
+ Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model
+ is optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code,
+ analysing it again, and so on, without explicit
+ reference to the building and checking of a PLT.
+
+ In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of
+ files they care about, and Dialyzer does the legwork in
+ terms of deciding how to most efficiently report all of
+ the relevant warnings given the cached results it may
+ already have in the PLT (and if a PLT doesn't exist,
+ incremental mode will create one).
+
+
+ OTP-18228 Application(s): stdlib
+ Related Id(s): GH-5639
+
+ The performance of the base64 module has been
+ significantly improved. For example, on an x86_64
+ system with the JIT both encode and decode are almost
+ three times faster than in Erlang/OTP 25.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18318 Application(s): stdlib
+ Related Id(s): PR-6347
+
+ In the lists, the zip family of functions now takes
+ options to allow handling lists of different lengths.
+
+
+ OTP-18334 Application(s): erts
+ Related Id(s): PR-6434
+
+ Support for UTF-8 atoms and strings in the NIF
+ interface including new functions enif_make_new_atom,
+ enif_make_new_atom_len and enif_get_string_length.
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18435 Application(s): erts
+ Related Id(s): PR-6827
+
+ The amount of significant bits in node local process
+ identifiers and port identifiers has been extended from
+ 28 bits to 60 bits on 64-bit runtime systems. This
+ makes these identifiers large enough to in practice
+ never having to be reused during the life time of a
+ node.
+
+
+ OTP-18440 Application(s): erts
+ Related Id(s): PR-6351
+
+ New trace feature call_memory. Similar to call_time
+ tracing, but instead of measure accumulated time in
+ traced functions it measures accumulated heap space
+ consumed by traced functions. It can be used to compare
+ how much different functions are contributing to
+ garbage collection being triggered.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18459 Application(s): ssl
+
+ Add encoding and decoding of use_srtp hello extension
+ to facilitate for DTLS users to implement SRTP
+ functionality.
+
+
+ OTP-18491 Application(s): parsetools
+ Related Id(s): PR-6882
+
+ Leex has been extended with optional column number
+ support.
+
+
+ OTP-18495 Application(s): stdlib
+ Related Id(s): PR-6943
+
+ The family of enumeration functions in module lists has
+ been extended with enumerate/3 that allows a step value
+ to be supplied.
+
+
+ OTP-18498 Application(s): erts
+
+ Reintroduced the optimization that turned anonymous
+ functions without free variables into literals
+ (OTP-15195). This optimization was lost during
+ refactoring in OTP 24.
+
+ Alongside this fix, we plan to remove the "fun creator
+ pid" feature in OTP 27. See Upcoming Potential
+ Incompatibilities for more details.
+
+
+ OTP-18500 Application(s): stdlib
+
+ Update Unicode to version 15.0.0.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-17771 Application(s): erts
+ Related Id(s): GH-5325, PR-6370
+
+ The enif_set_option() function has been introduced into
+ the NIF API. It can be used in order to set the
+ ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT
+ options with which one can synchronize halt of the
+ runtime system with flushing enabled and execution of
+ NIFs. Halt of the runtime system without flushing
+ enabled, now terminates the runtime system without
+ execution of atexit/on_exit handlers that may have been
+ installed into the runtime system which might be
+ considered a potential incompatibility.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** HIGHLIGHT ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18168 Application(s): ssl
+ Related Id(s): GH-6014, PR-6019
+
+ With this change, stateless tickets generated by server
+ with anti_replay option enabled can be used for
+ creating ClientHello throughout ticket lifetime.
+ Without this change, usability was limited to
+ WindowSize number of seconds configured for anti_replay
+ option.
+
+
+ OTP-18210 Application(s): kernel
+ Related Id(s): GH-5877, PR-5878
+
+ Fix bug where duplicate keys were allowed in the .app
+ file of an application. Duplicate keys are now rejected
+ and the application will not start if they exist.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18389 Application(s): dialyzer
+ Related Id(s): GH-6508, PR-6864
+
+ Dialyzer was accepting typespecs containing singleton
+ type variables that appeared in an union type.
+
+ Before this change, singleton type variables in an
+ union type were accepted (see example below). However,
+ type variable Foo appears only once in each branch of
+ the union type, so it is a singleton type variable (in
+ each branch of the union type) that is not bound.
+
+ -spec run_test(Opts) -> term() when Opts ::
+ {join_specs, Foo} | {test, Foo}.
+
+ Unbound type variables should be rejected by Dialyzer,
+ which now detects this error and rejects it in the same
+ manner as its non-union equivalent:
+
+ -spec run_test_error(Opts) -> term() when Opts ::
+ {join_specs, Foo}.
+
+
+ OTP-18438 Application(s): ssl
+ Related Id(s): GH-6679
+
+ For security reasons remove support for SHA1 and DSA
+ algorithms from default values.
+
+
+ OTP-18439 Application(s): dialyzer
+ Related Id(s): GH-5695, GH-6942, PR-6822
+
+ Dialyzer has enabled (by default) warnings about
+ unknown types and functions.
+
+ Prior to this change, Dialyzer had warnings about
+ unknown types and functions disabled (by default).
+
+ This default value has been overwritten; Dialyzer now
+ warns about unknown types and functions (as requested
+ by the community in GH-5695). Thus, the following two
+ examples are equivalent, i.e., passing the -Wunknown
+ function is enabled by default:
+
+ dialyzer moduler.erl -Wunknown -Wmissing_return
+
+ dialyzer moduler.erl -Wmissing_return
+
+ Dialyzer has a new flag, -Wno_unknown. Its purpose is
+ to suppress warnings about unknown functions and types.
+
+ Users who wish to suppress these warnings can invoke
+ Dialyzer using this flag. Example: dialyzer module.erl
+ -Wno_unknown
+
+
+ OTP-18455 Application(s): ssl
+ Related Id(s): GH-5899
+
+ Change the client default verify option to verify_peer.
+ Note that this makes it mandatory to also supply
+ trusted CA certificates or explicitly set verify to
+ verify_none. This also applies when using the so called
+ anonymous test cipher suites defined in TLS versions
+ pre TLS-1.3.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18488 Application(s): reltool
+ Related Id(s): PR-6836
+
+ Support for the experimental code archives feature has
+ been removed from reltool.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ OTP-18505 Application(s): erts
+ Related Id(s): PR-6991
+
+ The default encoding of atoms by term_to_binary and
+ term_to_iovec have changed from Latin1 to UTF-8. The
+ old encoding can still be obtained with options
+ {minor_version, 1}.
+
+ Apart from encoding code points between 128 and 255
+ with two bytes (UTF-8) instead of one, most atoms will
+ occupy one less byte as the length field use only one
+ byte instead of two if possible.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-26.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18364 Application(s): otp
+
+ Starting from Erlang/OTP 24, it has been possible to
+ write expressions such as A = catch Expr without
+ parentheses around the catch expression, but it was not
+ mentioned in the documentation. It now is.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18053 Application(s): erts, otp
+ Related Id(s): PR-6101
+
+ Updated configure cache for Windows. This makes
+ configure run faster on windows as many more checks are
+ cached.
+
+
+ OTP-18209 Application(s): otp
+ Related Id(s): PR-5881
+
+ Fix the make target release, release_docs, install and
+ install-docs now work when the target path contains
+ whitespace and/or unicode characters.
+
+
+ OTP-18492 Application(s): otp
+ Related Id(s): GH-6706
+
+ The documentation for the bit syntax has been updated
+ to correct some factual errors and omissions.
+
+
+ OTP-18511 Application(s): otp, stdlib
+ Related Id(s): PR-7017
+
+ The regular expression library powering the re module
+ is likely to be changed in Erlang/OTP 27. See Upcoming
+ Potential Incompatibilities.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18441 Application(s): asn1
+
+ Minor code improvements.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of asn1-5.1: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.25 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18377 Application(s): common_test
+ Related Id(s): PR-6437
+
+ This change improves Common Test docs (CT hook example
+ code) and adds Emacs skeleton with hook code.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18259 Application(s): common_test
+ Related Id(s): PR-5924
+
+ Updated common_test with a more robust way to fetch old
+ releases, while ignoring the current release.
+
+
+ OTP-18340 Application(s): common_test
+
+ - re-write the XML ct module documentation into erlang
+ types to make Dialyzer able to catch more precise
+ errors
+
+
+ Full runtime dependencies of common_test-1.25: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18126 Application(s): compiler, erts
+ Related Id(s): PR-6033
+
+ Optimized record updates.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ *** HIGHLIGHT ***
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ *** HIGHLIGHT ***
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ *** HIGHLIGHT ***
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18337 Application(s): compiler, stdlib
+ Related Id(s): GH-6477, PR-6503
+
+ It is documented that $\^X is the ASCII code for
+ Control X, where X is an uppercase or lowercase letter.
+ However, this notation would work for any character X,
+ even then it didn't make sense.
+
+ In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the \^
+ characters: @, [, \, ], ^, _, and ?. Attempt to use
+ other characters will be rejected with a compiler
+ error.
+
+ The value for $\^? is now 127 (instead of 31 as in
+ earlier releases).
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ *** HIGHLIGHT ***
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18502 Application(s): compiler
+
+ The compiler will now inline calls to maps:get/3.
+
+
+ Full runtime dependencies of compiler-8.3: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18204 Application(s): crypto
+ Related Id(s): PR-6203
+
+ Add support for SHAKE128 and SHAKE256.
+
+
+ OTP-18206 Application(s): crypto
+ Related Id(s): PR-6167
+
+ Make the -DOPENSSL_API_COMPAT flag work without
+ warnings.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of crypto-5.2: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18237 Application(s): dialyzer
+ Related Id(s): GH-6221, PR-6243
+
+ When checking behaviors, Dialyzer could generate false
+ warning that a callback function did not have the
+ correct type according to the spec in the behavior
+ definition.
+
+
+ OTP-18276 Application(s): dialyzer
+ Related Id(s): GH-6333
+
+ In a spec, list(none()) used to mean none(). It has now
+ been corrected to mean the empty list.
+
+
+ OTP-18389 Application(s): dialyzer
+ Related Id(s): GH-6508, PR-6864
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Dialyzer was accepting typespecs containing singleton
+ type variables that appeared in an union type.
+
+ Before this change, singleton type variables in an
+ union type were accepted (see example below). However,
+ type variable Foo appears only once in each branch of
+ the union type, so it is a singleton type variable (in
+ each branch of the union type) that is not bound.
+
+ -spec run_test(Opts) -> term() when Opts ::
+ {join_specs, Foo} | {test, Foo}.
+
+ Unbound type variables should be rejected by Dialyzer,
+ which now detects this error and rejects it in the same
+ manner as its non-union equivalent:
+
+ -spec run_test_error(Opts) -> term() when Opts ::
+ {join_specs, Foo}.
+
+
+ OTP-18485 Application(s): dialyzer
+ Related Id(s): GH-6850, PR-6854
+
+ Fixed a bug that prevented the --plts option from being
+ used together with --add-to-plt.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18188 Application(s): dialyzer
+ Related Id(s): PR-5997
+
+ *** HIGHLIGHT ***
+
+ Dialyzer has a new incremental mode that be invoked by
+ giving the --incremental option when running Dialyzer.
+ This new incremental mode is likely to become the
+ default in a future release.
+
+ Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model
+ is optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code,
+ analysing it again, and so on, without explicit
+ reference to the building and checking of a PLT.
+
+ In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of
+ files they care about, and Dialyzer does the legwork in
+ terms of deciding how to most efficiently report all of
+ the relevant warnings given the cached results it may
+ already have in the PLT (and if a PLT doesn't exist,
+ incremental mode will create one).
+
+
+ OTP-18238 Application(s): dialyzer
+ Related Id(s): PR-6271
+
+ Dialyzer now produces clearer error messages for
+ contract violations.
+
+
+ OTP-18282 Application(s): dialyzer
+ Related Id(s): GH-6132, PR-6335
+
+ The name of a built-in type can now be reused as the
+ name of type locally. That is useful when an OTP
+ release introduces a new built-in type; having the
+ possibility to redefine built-in types locally can make
+ it easier to maintain code that works in multiple OTP
+ releases.
+
+
+ OTP-18310 Application(s): dialyzer
+
+ There is new option -no_spec to ignore all specs. It is
+ useful for debugging when one suspects that some specs
+ could be incorrect.
+
+
+ OTP-18342 Application(s): dialyzer
+ Related Id(s): GH-6117, PR-6654
+
+ Dialyzer's overloaded domain warning becomes is
+ disabled by default, and can be enabled with the flag
+ -Woverlapping_contract.
+
+ Dialyzer used to issue a warning for overloaded domains
+ stating "such contracts are currently unsupported and
+ are simply ignored".
+
+ These contracts are not "ignored" but rather, Dialyzer
+ takes the union of the overloaded domains. This means
+ that we lose the dependency from each corresponding
+ input to output type. Because of this, the warning is
+ really about not being able to establish a dependency
+ between the input and output types of each respective
+ overloaded function specification.
+
+
+ OTP-18439 Application(s): dialyzer
+ Related Id(s): GH-5695, GH-6942, PR-6822
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Dialyzer has enabled (by default) warnings about
+ unknown types and functions.
+
+ Prior to this change, Dialyzer had warnings about
+ unknown types and functions disabled (by default).
+
+ This default value has been overwritten; Dialyzer now
+ warns about unknown types and functions (as requested
+ by the community in GH-5695). Thus, the following two
+ examples are equivalent, i.e., passing the -Wunknown
+ function is enabled by default:
+
+ dialyzer moduler.erl -Wunknown -Wmissing_return
+
+ dialyzer moduler.erl -Wmissing_return
+
+ Dialyzer has a new flag, -Wno_unknown. Its purpose is
+ to suppress warnings about unknown functions and types.
+
+ Users who wish to suppress these warnings can invoke
+ Dialyzer using this flag. Example: dialyzer module.erl
+ -Wno_unknown
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ Full runtime dependencies of dialyzer-5.1: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-4.0, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- diameter-2.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of diameter-2.3: erts-10.0, kernel-3.2,
+ ssl-9.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- erl_docgen-1.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18338 Application(s): erl_docgen
+ Related Id(s): PR-6408
+
+ New XML tag <change>. Like a <note> box, but with a
+ different (steel blue) color and label. Intended to
+ contain talk about semantic differences between OTP
+ releases.
+
+
+ OTP-18501 Application(s): erl_docgen
+ Related Id(s): PR-6987
+
+ Add "since" attribute to XML taglist/tag elements to
+ document OTP version when a particular option/feature
+ was introduced. The version is shown out in the right
+ margin, similar to "since" versions for functions.
+
+
+ Full runtime dependencies of erl_docgen-1.5: edoc-1.0, erts-11.0,
+ kernel-8.0, stdlib-3.15, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.4 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ --- Known Bugs and Problems ---
+
+ OTP-16607 Application(s): erl_interface
+ Related Id(s): OTP-16608
+
+ The ei API for decoding/encoding terms is not fully
+ 64-bit compatible since terms that have a
+ representation on the external term format larger than
+ 2 GB cannot be handled.
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.0 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18016 Application(s): erts
+
+ If a local fun was called while reloading the *exact
+ same* module that defined said fun, there was a small
+ window in which the call would land in code that was
+ yet to be fully loaded.
+
+
+ OTP-18248 Application(s): erts, kernel
+ Related Id(s): GH-6085, PR-6227
+
+ Fix the TLS distribution to work when starting Erlang
+ in embedded mode and a connection is done before kernel
+ is fully started.
+
+
+ OTP-18271 Application(s): erts, kernel
+ Related Id(s): PR-6279
+
+ erl -remsh has been improved to provide better error
+ reasons and work when using a shell without terminal
+ support (that is an "oldshell").
+
+
+ OTP-18274 Application(s): erts
+ Related Id(s): PR-6048
+
+ Fix so that -fno-omit-frame-pointer is applied to all
+ of the Erlang VM when using the JIT so that tools, such
+ as perf, can crawl the process stacks.
+
+
+ OTP-18277 Application(s): erts
+ Related Id(s): PR-6306
+
+ Compilation server now support unicode paths in
+ compilation server for filesystems that are encoded
+ with unicode.
+
+
+ OTP-18498 Application(s): erts
+
+ *** HIGHLIGHT ***
+
+ Reintroduced the optimization that turned anonymous
+ functions without free variables into literals
+ (OTP-15195). This optimization was lost during
+ refactoring in OTP 24.
+
+ Alongside this fix, we plan to remove the "fun creator
+ pid" feature in OTP 27. See Upcoming Potential
+ Incompatibilities for more details.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17771 Application(s): erts
+ Related Id(s): GH-5325, PR-6370
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The enif_set_option() function has been introduced into
+ the NIF API. It can be used in order to set the
+ ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT
+ options with which one can synchronize halt of the
+ runtime system with flushing enabled and execution of
+ NIFs. Halt of the runtime system without flushing
+ enabled, now terminates the runtime system without
+ execution of atexit/on_exit handlers that may have been
+ installed into the runtime system which might be
+ considered a potential incompatibility.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ Preparation for adding Windows support to 'socket'.
+
+
+ OTP-18053 Application(s): erts, otp
+ Related Id(s): PR-6101
+
+ Updated configure cache for Windows. This makes
+ configure run faster on windows as many more checks are
+ cached.
+
+
+ OTP-18126 Application(s): compiler, erts
+ Related Id(s): PR-6033
+
+ Optimized record updates.
+
+
+ OTP-18131 Application(s): erts
+
+ Optimized internal hash routines.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ *** HIGHLIGHT ***
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18141 Application(s): erts
+ Related Id(s): OTP-18140, PR-6073
+
+ Optimization of process aliases made possible now that
+ support for version 4 node container types in the
+ external term format is mandatory.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ *** HIGHLIGHT ***
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18227 Application(s): erts
+ Related Id(s): PR-6254
+
+ When erl -eval fails to execute the command is not
+ printed to standard_error.
+
+
+ OTP-18334 Application(s): erts
+ Related Id(s): PR-6434
+
+ *** HIGHLIGHT ***
+
+ Support for UTF-8 atoms and strings in the NIF
+ interface including new functions enif_make_new_atom,
+ enif_make_new_atom_len and enif_get_string_length.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18360 Application(s): erts
+ Related Id(s): PR-6497
+
+ erlang:display/1 will now print large maps in a more
+ readable way (similar to how small maps are printed).
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18369 Application(s): erts
+
+ Fail enif_init_resource_type and friends by returning
+ NULL if not called during load/upgrade. Old behavior
+ was undefined.
+
+
+ OTP-18410 Application(s): erts
+ Related Id(s): GH-5889, PR-6345
+
+ New option include_shared_binaries for the
+ max_heap_size process limit. If set to true, large
+ binaries (> 64 bytes), which may be referred by several
+ processes, are included in the memory sum compared
+ against the max_heap_size limit.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ *** HIGHLIGHT ***
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18424 Application(s): erts
+ Related Id(s): PR-6716
+
+ Reduced memory usage of file:read_file_info/1,2
+
+
+ OTP-18425 Application(s): erts
+ Related Id(s): GH-5333, PR-6628
+
+ Add new function current_stacktrace for trace match
+ specifications used by erlang:trace_pattern/3.
+
+ This new option puts the current stacktrace of the
+ caller into the trace message sent to the trace
+ receiver.
+
+
+ OTP-18435 Application(s): erts
+ Related Id(s): PR-6827
+
+ *** HIGHLIGHT ***
+
+ The amount of significant bits in node local process
+ identifiers and port identifiers has been extended from
+ 28 bits to 60 bits on 64-bit runtime systems. This
+ makes these identifiers large enough to in practice
+ never having to be reused during the life time of a
+ node.
+
+
+ OTP-18440 Application(s): erts
+ Related Id(s): PR-6351
+
+ *** HIGHLIGHT ***
+
+ New trace feature call_memory. Similar to call_time
+ tracing, but instead of measure accumulated time in
+ traced functions it measures accumulated heap space
+ consumed by traced functions. It can be used to compare
+ how much different functions are contributing to
+ garbage collection being triggered.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18477 Application(s): erts
+ Related Id(s): PR-7006
+
+ Introduced the local option of term_to_binary/2 and
+ term_to_iovec/2.
+
+
+ OTP-18483 Application(s): erts
+ Related Id(s): PR-6888
+
+ Document the commonly used practice to create and store
+ static atoms at NIF load time in callbacks load or
+ upgrade.
+
+
+ OTP-18493 Application(s): erts
+ Related Id(s): PR-6272
+
+ Optimize ets:lookup_element for uncompressed tables by
+ using a more efficient method to copy the term from ETS
+ to the heap of the calling process.
+
+
+ OTP-18505 Application(s): erts
+ Related Id(s): PR-6991
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The default encoding of atoms by term_to_binary and
+ term_to_iovec have changed from Latin1 to UTF-8. The
+ old encoding can still be obtained with options
+ {minor_version, 1}.
+
+ Apart from encoding code points between 128 and 255
+ with two bytes (UTF-8) instead of one, most atoms will
+ occupy one less byte as the length field use only one
+ byte instead of two if possible.
+
+
+ OTP-18517 Application(s): erts
+
+ The version of zlib included in the Erlang/OTP source
+ code is now 1.2.13.
+
+
+ OTP-18520 Application(s): erts
+ Related Id(s): GH-6455
+
+ gen_tcp:send/*, gen_udp:send/* and gen_sctp:send/* have
+ been optimized to use the infamous receive reference
+ optimization, so now sending should not have bad
+ performance when the calling process has a large
+ message queue.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ OTP-18523 Application(s): erts
+ Related Id(s): PR-7004
+
+ Optimize maps:merge/2 memory consumption for small maps
+ (<33 keys) by reusing key tuples or entire maps if the
+ result map has the same number of keys as any of the
+ argument maps.
+
+
+ OTP-18524 Application(s): erts
+ Related Id(s): OTP-18523, PR-7004
+
+ Optimize maps:merge/2 memory consumption further for
+ small maps by mutating 2nd map to use literal key tuple
+ of 1st map if both have the same keys.
+
+
+ Full runtime dependencies of erts-14.0: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- ftp-1.1.5 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18359 Application(s): ftp
+ Related Id(s): PR-6545
+
+ Fixes the documentation for the ftp module and updates
+ the typing of ftp functions that return errors.
+
+ The documentation has been improved and the types of
+ the functions are now read from source code, instead of
+ being hard-coded in XML.
+
+ Functions returning errors of the form {error, Reason
+ :: 'ehost' | ...} are now similar to other modules,
+ i.e., {error, Reason :: term()}. If one wants to
+ understand the error, one must call the function
+ ftp:formaterror({error, Reason}).
+
+
+ Full runtime dependencies of ftp-1.1.5: erts-7.0, kernel-6.0,
+ runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- inets-8.4 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18476 Application(s): inets
+ Related Id(s): GH-6380
+
+ Correct timing related pipelining/keepalive queue bug,
+ that could result in unexpected "socket_remotly_closed"
+ errors.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18167 Application(s): inets
+
+ By default ssl connections will use options from
+ ssl_default_options(true)
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of inets-8.4: erts-14.0, kernel-9.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-5.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- jinterface-1.14 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18210 Application(s): kernel
+ Related Id(s): GH-5877, PR-5878
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Fix bug where duplicate keys were allowed in the .app
+ file of an application. Duplicate keys are now rejected
+ and the application will not start if they exist.
+
+
+ OTP-18225 Application(s): kernel
+ Related Id(s): PR-6036
+
+ Fix inconsistent handling in logger_formatter of the
+ branched values in conditional branches. For example
+ using msg in a conditional branch would not be
+ formatted as it should before this fix.
+
+
+ OTP-18226 Application(s): kernel
+ Related Id(s): PR-6253
+
+ Fix the logger_std_h handler to log to standard_error
+ if logging to standard_io fails for any reason.
+
+
+ OTP-18248 Application(s): erts, kernel
+ Related Id(s): GH-6085, PR-6227
+
+ Fix the TLS distribution to work when starting Erlang
+ in embedded mode and a connection is done before kernel
+ is fully started.
+
+
+ OTP-18271 Application(s): erts, kernel
+ Related Id(s): PR-6279
+
+ erl -remsh has been improved to provide better error
+ reasons and work when using a shell without terminal
+ support (that is an "oldshell").
+
+
+ OTP-18286 Application(s): kernel
+ Related Id(s): PR-5955
+
+ Fix logging of log events generated before kernel is
+ started to not fail if the code for formatting those
+ log messaged have not yet been loaded.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18486 Application(s): kernel, stdlib
+ Related Id(s): PR-6881
+
+ Fixed a bug where file:read(standard_io, ...)
+ unexpectedly returned eof in binary mode.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ Preparation for adding Windows support to 'socket'.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ *** HIGHLIGHT ***
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18261 Application(s): kernel
+ Related Id(s): PR-5924
+
+ Add code:get_doc/2 which adds support to fetch
+ documentation skeletons of functions using debug_info
+ chunks instead of eep48 doc chunks.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18305 Application(s): kernel
+ Related Id(s): PR-5831
+
+ gen_server optimized by caching callback functions
+
+
+ OTP-18327 Application(s): kernel
+ Related Id(s): PR-6433
+
+ Prepare the pg communication protocol for upgrade. The
+ plan is for OTP-28 nodes to be able to use an upgraded
+ pg protocol while still being able to talk with OTP 26
+ nodes.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18419 Application(s): kernel
+
+ The function file:pid2name/1 is deprecated and will be
+ removed in Erlang/OTP 27.
+
+
+ OTP-18442 Application(s): kernel
+ Related Id(s): GH-6606, PR-6786
+
+ The modules Erlang DNS resolver inet_res and helper
+ modules have been updated for RFC6891; to handle OPT RR
+ with DNSSEC OK (DO) bit.
+
+
+ OTP-18444 Application(s): kernel
+ Related Id(s): PR-6035
+
+ Introduced application:get_supervisor/1.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18448 Application(s): kernel
+ Related Id(s): PR-6736
+
+ Reduce contention on the code_server by doing the code
+ preparation on the client.
+
+
+ OTP-18451 Application(s): kernel
+ Related Id(s): PR-6737
+
+ Added a mode to ensure_all_loaded, to start children
+ application and their dependencies concurrently.
+
+
+ OTP-18452 Application(s): kernel
+ Related Id(s): PR-6729
+
+ Cache OTP boot code paths, to limit how many folders
+ that are being accessed during a module lookup. Can be
+ disabled with -cache_boot_path false. OTP boot code
+ paths consists of ERL_LIB environment variables. The
+ various otp/*/ebin folders. And the {path, ...} clauses
+ in the init script.
+
+
+ OTP-18456 Application(s): kernel, ssl
+
+ Erlang distribution code in Kernel and SSL has been
+ refactored a bit to facilitate debugging and
+ re-usability, which shouldn't have any noticeable
+ effects on behaviour or performance.
+
+
+ OTP-18466 Application(s): kernel
+ Related Id(s): PR-6832
+
+ Add cache attribute to code path apis.
+
+ Added an optional cache/nocache argument to all
+ code:add_path*, code:set_path*, and code:replace_path*
+ functions. These functions will then avoid doing
+ file-accesses if they are cached. Cache can be cleared
+ with code:clear_cache/0. Added code:del_paths/1 to make
+ it easier to clear multiple paths.
+
+
+ OTP-18484 Application(s): kernel
+ Related Id(s): PR-6844
+
+ Improvements to code:ensure_modules_loaded/1:
+ Previously it would prepare modules and then abandon
+ references to said modules if they had on_load
+ callbacks. This pull request makes it so they keep the
+ references around and then serially load them without
+ having to fetch the object code and prepare them again.
+
+
+ OTP-18510 Application(s): kernel
+ Related Id(s): GH-6098, PR-6982
+
+ The internal DNS resolver has bee updated to handle DNS
+ LOC RR:s (RFC 1876). This is an undocumented module,
+ although still used by power users. See the source
+ code.
+
+
+ OTP-18521 Application(s): kernel
+ Related Id(s): PR-7025
+
+ Reduced memory consumption in global when informing
+ other nodes about lost connections.
+
+
+ Full runtime dependencies of kernel-9.0: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.22 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18309 Application(s): mnesia
+ Related Id(s): PR-6377
+
+ Added debug statistics for active transactions.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of mnesia-4.22: erts-9.0, kernel-5.3,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- observer-2.15 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18430 Application(s): observer
+ Related Id(s): PR-6397
+
+ Added start/1, start_and_wait functions/1|2 functions.
+
+
+ Full runtime dependencies of observer-2.15: erts-14.0, et-1.5,
+ kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- os_mon-2.9 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18246 Application(s): os_mon
+ Related Id(s): GH-6156, PR-6284
+
+ Fix internal os_mon_sysinfo:get_disk_info/1 function to
+ not crash when run on Windows with multiple drives.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18303 Application(s): os_mon
+ Related Id(s): PR-6384
+
+ The disksup:get_disk_info/0 and disksup:get_disk_info/1
+ functions have been introduced. These can be used in
+ order to immediately fetch information about current
+ disk usage.
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ Full runtime dependencies of os_mon-2.9: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- parsetools-2.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18491 Application(s): parsetools
+ Related Id(s): PR-6882
+
+ *** HIGHLIGHT ***
+
+ Leex has been extended with optional column number
+ support.
+
+
+ Full runtime dependencies of parsetools-2.5: erts-6.0, kernel-3.0,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.14 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of public_key-1.14: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- reltool-1.0 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18230 Application(s): reltool
+ Related Id(s): PR-5936
+
+ Add possibility to strip specific chunks from beam
+ files included in a release. Before this change it was
+ only possible to strip all chunks from the beam files.
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18488 Application(s): reltool
+ Related Id(s): PR-6836
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Support for the experimental code archives feature has
+ been removed from reltool.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of reltool-1.0: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0, stdlib-5.0, tools-2.6.14, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- runtime_tools-1.20 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18499 Application(s): runtime_tools
+ Related Id(s): PR-6946
+
+ Fixed the type specification for
+ instrument:carriers/0,1
+
+
+ --- Improvements and New Features ---
+
+ OTP-18211 Application(s): runtime_tools
+ Related Id(s): PR-6143
+
+ Add dbg:tracer(file, Filename) as a convenient way to
+ trace to a file in clean text.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18487 Application(s): runtime_tools, tools
+ Related Id(s): PR-6829
+
+ The instrument module has been moved from tools to
+ runtime_tools.
+
+
+ Full runtime dependencies of runtime_tools-1.20: erts-11.0,
+ kernel-8.1, mnesia-4.12, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- sasl-4.2.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18300 Application(s): sasl
+ Related Id(s): PR-6389
+
+ Improve error message from systools:make_script, when
+ .app parameters contain duplicates. The parameters that
+ will be checked are modules, applications and
+ registered.
+
+
+ Full runtime dependencies of sasl-4.2.1: erts-10.2, kernel-6.0,
+ stdlib-4.0, tools-2.6.14
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.14 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of snmp-5.14: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.0 ---------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18231 Application(s): ssh
+ Related Id(s): OTP-17932, PR-6144
+
+ The ssh_cli has been updated to work with the changes
+ introduced in the new Erlang shell implementation.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of ssh-5.0: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-15903 Application(s): ssl
+
+ Improved error checking and handling of ssl options.
+
+
+ OTP-18168 Application(s): ssl
+ Related Id(s): GH-6014, PR-6019
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change, stateless tickets generated by server
+ with anti_replay option enabled can be used for
+ creating ClientHello throughout ticket lifetime.
+ Without this change, usability was limited to
+ WindowSize number of seconds configured for anti_replay
+ option.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ *** HIGHLIGHT ***
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18253 Application(s): ssl
+
+ With this change, TLS 1.3 server can be configured to
+ include client certificate in session ticket.
+
+
+ OTP-18254 Application(s): ssl
+ Related Id(s): PR-5982
+
+ With this change, it is possible to configure
+ encryption seed to be used with TLS1.3 stateless
+ tickets. This enables using tickets on different server
+ instances.
+
+
+ OTP-18312 Application(s): ssl
+
+ Debugging enhancements.
+
+
+ OTP-18335 Application(s): ssl
+
+ With this change, maybe keyword atom is not used as
+ function name in ssl code.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18438 Application(s): ssl
+ Related Id(s): GH-6679
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ For security reasons remove support for SHA1 and DSA
+ algorithms from default values.
+
+
+ OTP-18453 Application(s): ssl
+
+ Mitigate memory usage from large certificate chains by
+ lowering the maximum handshake size. This should not
+ effect the common cases, if needed it can be configured
+ to a higher value.
+
+
+ OTP-18455 Application(s): ssl
+ Related Id(s): GH-5899
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Change the client default verify option to verify_peer.
+ Note that this makes it mandatory to also supply
+ trusted CA certificates or explicitly set verify to
+ verify_none. This also applies when using the so called
+ anonymous test cipher suites defined in TLS versions
+ pre TLS-1.3.
+
+
+ OTP-18456 Application(s): kernel, ssl
+
+ Erlang distribution code in Kernel and SSL has been
+ refactored a bit to facilitate debugging and
+ re-usability, which shouldn't have any noticeable
+ effects on behaviour or performance.
+
+
+ OTP-18459 Application(s): ssl
+
+ *** HIGHLIGHT ***
+
+ Add encoding and decoding of use_srtp hello extension
+ to facilitate for DTLS users to implement SRTP
+ functionality.
+
+
+ Full runtime dependencies of ssl-11.0: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18275 Application(s): stdlib
+ Related Id(s): PR-6045
+
+ All process calls in dets have been updated to use the
+ receive queue optimizations.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18486 Application(s): kernel, stdlib
+ Related Id(s): PR-6881
+
+ Fixed a bug where file:read(standard_io, ...)
+ unexpectedly returned eof in binary mode.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-15597 Application(s): stdlib
+ Related Id(s): PR-5831
+
+ Gen_server now caches external functions for use in
+ handle_call, handle_cast and handle_info.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18150 Application(s): stdlib
+
+ Added codepoint category to unicode_util
+
+
+ OTP-18159 Application(s): stdlib
+ Related Id(s): PR-6904
+
+ Added the zip:zip_get_crc32/2 function to retrieve the
+ CRC32 checksum from an opened ZIP archive.
+
+
+ OTP-18176 Application(s): stdlib
+ Related Id(s): PR-6118
+
+ Add the new options post_process_args and detached to
+ peer:start function.
+
+
+ OTP-18221 Application(s): stdlib
+ Related Id(s): PR-6197
+
+ The re:replace/3,4 functions now accept as the
+ replacement argument.
+
+
+ OTP-18228 Application(s): stdlib
+ Related Id(s): GH-5639
+
+ *** HIGHLIGHT ***
+
+ The performance of the base64 module has been
+ significantly improved. For example, on an x86_64
+ system with the JIT both encode and decode are almost
+ three times faster than in Erlang/OTP 25.
+
+
+ OTP-18236 Application(s): stdlib
+ Related Id(s): PR-6256
+
+ Improved implementation of timer:apply_interval/4
+ reducing load on the timer server, and introduction of
+ the new function timer:apply_repeatedly/4.
+ timer:apply_repeatedly/4 is similar to
+ timer:apply_interval/4, but timer:apply_repeatedly/4
+ prevents parallel execution of triggered apply
+ operations which timer:apply_interval/4 does not.
+
+
+ OTP-18247 Application(s): stdlib
+ Related Id(s): PR-6280, PR-6711
+
+ The base64 module now supports encoding and decoding
+ with an alternate URL safe alphabet, and an option for
+ accepting or adding missing = padding characters.
+
+
+ OTP-18272 Application(s): stdlib
+ Related Id(s): PR-6279
+
+ Add shell:whereis/0 which can be used to locate the
+ current shell process.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18279 Application(s): stdlib
+ Related Id(s): PR-6234
+
+ New function ets:lookup_element/4 with a Default
+ argument returned if the key did not exist in the
+ table. The old ets:lookup_element/3 raises a badarg
+ exception which can be both inconveniente and slower.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18287 Application(s): stdlib
+ Related Id(s): PR-5955
+
+ peer nodes using standard_io connections now include
+ standard error from the node in the io stream from the
+ started node.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ *** HIGHLIGHT ***
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18301 Application(s): stdlib
+ Related Id(s): PR-6350
+
+ Improve type specification of
+ unicode:characters_to_list().
+
+
+ OTP-18318 Application(s): stdlib
+ Related Id(s): PR-6347
+
+ *** HIGHLIGHT ***
+
+ In the lists, the zip family of functions now takes
+ options to allow handling lists of different lengths.
+
+
+ OTP-18337 Application(s): compiler, stdlib
+ Related Id(s): GH-6477, PR-6503
+
+ It is documented that $\^X is the ASCII code for
+ Control X, where X is an uppercase or lowercase letter.
+ However, this notation would work for any character X,
+ even then it didn't make sense.
+
+ In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the \^
+ characters: @, [, \, ], ^, _, and ?. Attempt to use
+ other characters will be rejected with a compiler
+ error.
+
+ The value for $\^? is now 127 (instead of 31 as in
+ earlier releases).
+
+
+ OTP-18354 Application(s): stdlib
+ Related Id(s): PR-6297
+
+ The binary:encode_hex/2 function has been added to
+ allow the encoded hexadecimal digits to be in either
+ lower or upper case.
+
+
+ OTP-18355 Application(s): stdlib
+ Related Id(s): PR-6507
+
+ Variants of timer:tc() with user specified time unit
+ have been introduced.
+
+
+ OTP-18361 Application(s): stdlib
+ Related Id(s): PR-6536
+
+ New function math:tau/0. Returns 2*math:pi().
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18385 Application(s): stdlib
+ Related Id(s): PR-6698
+
+ Optimized gen_server:multi_call().
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ *** HIGHLIGHT ***
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18423 Application(s): stdlib
+ Related Id(s): com/erlang/backlog/issues/142,
+ https://github
+
+ Make gen_server fail "silently" with a new return value
+ for init/1.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ *** HIGHLIGHT ***
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18474 Application(s): stdlib
+ Related Id(s): PR-6895
+
+ Static supervisors are very idle processes after they
+ have started so they will now be hibernated after start
+ to improve resource management.
+
+
+ OTP-18494 Application(s): stdlib
+ Related Id(s): PR-6924
+
+ Support has been added in ms_transform for the actions
+ caller_line/0, current_stacktrace/0, and
+ current_stacktrace/1.
+
+
+ OTP-18495 Application(s): stdlib
+ Related Id(s): PR-6943
+
+ *** HIGHLIGHT ***
+
+ The family of enumeration functions in module lists has
+ been extended with enumerate/3 that allows a step value
+ to be supplied.
+
+
+ OTP-18500 Application(s): stdlib
+
+ *** HIGHLIGHT ***
+
+ Update Unicode to version 15.0.0.
+
+
+ OTP-18511 Application(s): otp, stdlib
+ Related Id(s): PR-7017
+
+ The regular expression library powering the re module
+ is likely to be changed in Erlang/OTP 27. See Upcoming
+ Potential Incompatibilities.
+
+
+ OTP-18515 Application(s): stdlib
+ Related Id(s): GH-6990
+
+ Improved the performance of sets:subtract/2 when
+ subtracting a small number of elements.
+
+
+ OTP-18518 Application(s): stdlib
+ Related Id(s): GH-7015
+
+ The linter will no longer raise warnings for
+ underspecified opaque types.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ Full runtime dependencies of stdlib-5.0: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- syntax_tools-3.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ Full runtime dependencies of syntax_tools-3.1: compiler-7.0,
+ erts-9.0, kernel-5.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- tftp-1.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of tftp-1.1: erts-6.0, kernel-6.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- tools-3.6 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18487 Application(s): runtime_tools, tools
+ Related Id(s): PR-6829
+
+ The instrument module has been moved from tools to
+ runtime_tools.
+
+
+ Full runtime dependencies of tools-3.6: compiler-5.0, erts-11.0,
+ erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.3 ----------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of wx-2.3: erts-12.0, kernel-8.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.0-rc3.README.txt b/release-notes/OTP-26.0-rc3.README.txt
new file mode 100644
index 0000000..9866e8b
--- /dev/null
+++ b/release-notes/OTP-26.0-rc3.README.txt
@@ -0,0 +1,3592 @@
+Inital Release: OTP 26.0
+Git Tag: OTP-26.0
+Date: 2023-04-12
+Trouble Report Id: OTP-14771, OTP-14835, OTP-15597, OTP-15903,
+ OTP-16607, OTP-17771, OTP-17932, OTP-18016,
+ OTP-18029, OTP-18053, OTP-18126, OTP-18131,
+ OTP-18135, OTP-18137, OTP-18140, OTP-18141,
+ OTP-18150, OTP-18159, OTP-18167, OTP-18168,
+ OTP-18176, OTP-18185, OTP-18188, OTP-18204,
+ OTP-18206, OTP-18209, OTP-18210, OTP-18211,
+ OTP-18221, OTP-18225, OTP-18226, OTP-18227,
+ OTP-18228, OTP-18230, OTP-18231, OTP-18235,
+ OTP-18236, OTP-18237, OTP-18238, OTP-18246,
+ OTP-18247, OTP-18248, OTP-18253, OTP-18254,
+ OTP-18259, OTP-18261, OTP-18271, OTP-18272,
+ OTP-18274, OTP-18275, OTP-18276, OTP-18277,
+ OTP-18278, OTP-18279, OTP-18282, OTP-18285,
+ OTP-18286, OTP-18287, OTP-18297, OTP-18300,
+ OTP-18301, OTP-18303, OTP-18305, OTP-18309,
+ OTP-18310, OTP-18312, OTP-18318, OTP-18327,
+ OTP-18331, OTP-18334, OTP-18335, OTP-18337,
+ OTP-18338, OTP-18340, OTP-18342, OTP-18344,
+ OTP-18350, OTP-18354, OTP-18355, OTP-18359,
+ OTP-18360, OTP-18361, OTP-18364, OTP-18367,
+ OTP-18369, OTP-18377, OTP-18385, OTP-18389,
+ OTP-18405, OTP-18410, OTP-18413, OTP-18414,
+ OTP-18419, OTP-18423, OTP-18424, OTP-18425,
+ OTP-18430, OTP-18431, OTP-18435, OTP-18438,
+ OTP-18439, OTP-18440, OTP-18441, OTP-18442,
+ OTP-18444, OTP-18445, OTP-18447, OTP-18448,
+ OTP-18451, OTP-18452, OTP-18453, OTP-18455,
+ OTP-18456, OTP-18459, OTP-18465, OTP-18466,
+ OTP-18471, OTP-18474, OTP-18476, OTP-18477,
+ OTP-18483, OTP-18484, OTP-18485, OTP-18486,
+ OTP-18487, OTP-18488, OTP-18490, OTP-18491,
+ OTP-18492, OTP-18493, OTP-18494, OTP-18495,
+ OTP-18498, OTP-18499, OTP-18500, OTP-18501,
+ OTP-18502, OTP-18505, OTP-18507, OTP-18510,
+ OTP-18511, OTP-18515, OTP-18517, OTP-18518,
+ OTP-18520, OTP-18521, OTP-18522, OTP-18523,
+ OTP-18524, OTP-18526, OTP-18528, OTP-18530,
+ OTP-18531, OTP-18533, OTP-18534, OTP-18536,
+ OTP-18537, OTP-18538, OTP-18539, OTP-18540,
+ OTP-18541, OTP-18542, OTP-18544, OTP-18546,
+ OTP-18547, OTP-18548, OTP-18549, OTP-18550,
+ OTP-18551, OTP-18552
+Seq num: ERIERL-737, ERIERL-870, GH-3150, GH-3390,
+ GH-4225, GH-4343, GH-4965, GH-5276, GH-5325,
+ GH-5333, GH-5639, GH-5695, GH-5877, GH-5889,
+ GH-5899, GH-6014, GH-6085, GH-6098, GH-6117,
+ GH-6132, GH-6139, GH-6156, GH-6221, GH-6333,
+ GH-6339, GH-6348, GH-6380, GH-6455, GH-6461,
+ GH-6477, GH-6508, GH-6544, GH-6606, GH-6672,
+ GH-6679, GH-6706, GH-6850, GH-6942, GH-6990,
+ GH-7015, GH-7031, GH-7045, GH-7065, GH-7070
+System: OTP
+Release: 26
+Application: asn1-5.1, common_test-1.25, compiler-8.3,
+ crypto-5.2, dialyzer-5.1, diameter-2.3,
+ erl_docgen-1.5, erl_interface-5.4, erts-14.0,
+ ftp-1.1.5, inets-9.0, jinterface-1.14,
+ kernel-9.0, megaco-4.4.4, mnesia-4.22,
+ observer-2.15, odbc-2.14.1, os_mon-2.9,
+ parsetools-2.5, public_key-1.14, reltool-1.0,
+ runtime_tools-2.0, sasl-4.2.1, snmp-5.14,
+ ssh-5.0, ssl-11.0, stdlib-5.0,
+ syntax_tools-3.1, tftp-1.1, tools-3.6, wx-2.3
+Predecessor: OTP
+
+ Check out the git tag OTP-26.0, and build a full OTP system including
+ documentation.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18188 Application(s): dialyzer
+ Related Id(s): PR-5997
+
+ Dialyzer has a new incremental mode that be invoked by
+ giving the --incremental option when running Dialyzer.
+ This new incremental mode is likely to become the
+ default in a future release.
+
+ Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model
+ is optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code,
+ analysing it again, and so on, without explicit
+ reference to the building and checking of a PLT.
+
+ In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of
+ files they care about, and Dialyzer does the legwork in
+ terms of deciding how to most efficiently report all of
+ the relevant warnings given the cached results it may
+ already have in the PLT (and if a PLT doesn't exist,
+ incremental mode will create one).
+
+
+ OTP-18228 Application(s): stdlib
+ Related Id(s): GH-5639
+
+ The performance of the base64 module has been
+ significantly improved. For example, on an x86_64
+ system with the JIT both encode and decode are more
+ than three times faster than in Erlang/OTP 25.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18318 Application(s): stdlib
+ Related Id(s): PR-6347
+
+ In the lists, the zip family of functions now takes
+ options to allow handling lists of different lengths.
+
+
+ OTP-18334 Application(s): erts
+ Related Id(s): PR-6434
+
+ Support for UTF-8 atoms and strings in the NIF
+ interface including new functions enif_make_new_atom,
+ enif_make_new_atom_len and enif_get_string_length.
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18435 Application(s): erts
+ Related Id(s): PR-6827
+
+ The amount of significant bits in node local process
+ identifiers and port identifiers has been extended from
+ 28 bits to 60 bits on 64-bit runtime systems. This
+ makes these identifiers large enough to in practice
+ never having to be reused during the life time of a
+ node.
+
+
+ OTP-18440 Application(s): erts
+ Related Id(s): PR-6351
+
+ New trace feature call_memory. Similar to call_time
+ tracing, but instead of measure accumulated time in
+ traced functions it measures accumulated heap space
+ consumed by traced functions. It can be used to compare
+ how much different functions are contributing to
+ garbage collection being triggered.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18459 Application(s): ssl
+
+ Add encoding and decoding of use_srtp hello extension
+ to facilitate for DTLS users to implement SRTP
+ functionality.
+
+
+ OTP-18491 Application(s): parsetools
+ Related Id(s): PR-6882
+
+ Leex has been extended with optional column number
+ support.
+
+
+ OTP-18495 Application(s): stdlib
+ Related Id(s): PR-6943
+
+ The family of enumeration functions in module lists has
+ been extended with enumerate/3 that allows a step value
+ to be supplied.
+
+
+ OTP-18498 Application(s): erts
+
+ Reintroduced the optimization that turned anonymous
+ functions without free variables into literals
+ (OTP-15195). This optimization was lost during
+ refactoring in OTP 24.
+
+ Alongside this fix, we plan to remove the "fun creator
+ pid" feature in OTP 27. See Upcoming Potential
+ Incompatibilities for more details.
+
+
+ OTP-18500 Application(s): stdlib
+
+ Update Unicode to version 15.0.0.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-14771 Application(s): ssl
+
+ Remove less that 256 bit ECC from default supported ECC
+ pre TLS-1.3
+
+
+ OTP-17771 Application(s): erts
+ Related Id(s): GH-5325, PR-6370
+
+ The enif_set_option() function has been introduced into
+ the NIF API. It can be used in order to set the
+ ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT
+ options with which one can synchronize halt of the
+ runtime system with flushing enabled and execution of
+ NIFs. Halt of the runtime system without flushing
+ enabled, now terminates the runtime system without
+ execution of atexit/on_exit handlers that may have been
+ installed into the runtime system which might be
+ considered a potential incompatibility.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** HIGHLIGHT ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18168 Application(s): ssl
+ Related Id(s): GH-6014, PR-6019
+
+ With this change, stateless tickets generated by server
+ with anti_replay option enabled can be used for
+ creating ClientHello throughout ticket lifetime.
+ Without this change, usability was limited to
+ WindowSize number of seconds configured for anti_replay
+ option.
+
+
+ OTP-18210 Application(s): kernel
+ Related Id(s): GH-5877, PR-5878
+
+ Fix bug where duplicate keys were allowed in the .app
+ file of an application. Duplicate keys are now rejected
+ and the application will not start if they exist.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18389 Application(s): dialyzer
+ Related Id(s): GH-6508, PR-6864
+
+ Dialyzer was accepting typespecs containing singleton
+ type variables that appeared in an union type.
+
+ Before this change, singleton type variables in an
+ union type were accepted (see example below). However,
+ type variable Foo appears only once in each branch of
+ the union type, so it is a singleton type variable (in
+ each branch of the union type) that is not bound.
+
+ -spec run_test(Opts) -> term() when Opts ::
+ {join_specs, Foo} | {test, Foo}.
+
+ Unbound type variables should be rejected by Dialyzer,
+ which now detects this error and rejects it in the same
+ manner as its non-union equivalent:
+
+ -spec run_test_error(Opts) -> term() when Opts ::
+ {join_specs, Foo}.
+
+
+ OTP-18438 Application(s): ssl
+ Related Id(s): GH-6679
+
+ For security reasons remove support for SHA1 and DSA
+ algorithms from default values.
+
+
+ OTP-18439 Application(s): dialyzer
+ Related Id(s): GH-5695, GH-6942, PR-6822
+
+ Dialyzer has enabled (by default) warnings about
+ unknown types and functions.
+
+ Prior to this change, Dialyzer had warnings about
+ unknown types and functions disabled (by default).
+
+ This default value has been overwritten; Dialyzer now
+ warns about unknown types and functions (as requested
+ by the community in GH-5695). Thus, the following two
+ examples are equivalent, i.e., passing the -Wunknown
+ function is enabled by default:
+
+ dialyzer moduler.erl -Wunknown -Wmissing_return
+
+ dialyzer moduler.erl -Wmissing_return
+
+ Dialyzer has a new flag, -Wno_unknown. Its purpose is
+ to suppress warnings about unknown functions and types.
+
+ Users who wish to suppress these warnings can invoke
+ Dialyzer using this flag. Example: dialyzer module.erl
+ -Wno_unknown
+
+
+ OTP-18455 Application(s): ssl
+ Related Id(s): GH-5899
+
+ Change the client default verify option to verify_peer.
+ Note that this makes it mandatory to also supply
+ trusted CA certificates or explicitly set verify to
+ verify_none. This also applies when using the so called
+ anonymous test cipher suites defined in TLS versions
+ pre TLS-1.3.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18488 Application(s): reltool
+ Related Id(s): PR-6836
+
+ Support for the experimental code archives feature has
+ been removed from reltool.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ OTP-18505 Application(s): erts
+ Related Id(s): PR-6991
+
+ The default encoding of atoms by term_to_binary and
+ term_to_iovec have changed from Latin1 to UTF-8. The
+ old encoding can still be obtained with options
+ {minor_version, 1}.
+
+ Apart from encoding code points between 128 and 255
+ with two bytes (UTF-8) instead of one, most atoms will
+ occupy one less byte as the length field use only one
+ byte instead of two if possible.
+
+
+ OTP-18530 Application(s): inets
+
+ IP display string will now always be in lower case,
+ effects ipv6 addresses.
+
+
+ OTP-18531 Application(s): ssl
+
+ If a user cancel alert with level warning is received
+ during handshake make it be handled the same regardless
+ of TLS version. If it is received in connection in
+ TLS-1.3 regard it as an error as it is inappropriate.
+
+ In TLS-1.3 all error alerts are considered FATAL
+ regardless of legacy alert type. But make sure legacy
+ type is printed in logs to not confuse users that are
+ expecting the same legacy type as sent by peer.
+
+
+ OTP-18536 Application(s): inets
+
+ Removed deprecated functions
+
+
+ OTP-18549 Application(s): erts, runtime_tools
+ Related Id(s): PR-7105
+
+ Removed the experimental erts_alloc_config module. It
+ no longer produced good configurations and cannot be
+ fixed in a reasonably backwards compatible manner. It
+ has since OTP 25 been deprecated and scheduled for
+ removal in OTP 26.
+
+
+ OTP-18551 Application(s): kernel
+ Related Id(s): PR-7106
+
+ Removed code:is_module_native/1 since HiPE has been
+ removed. It has since OTP 24 been deprecated and
+ scheduled for removal in OTP 26.
+
+ Removed code:rehash/0 since the code path feature no
+ longer is present. It has since OTP 19 been deprecated
+ and has since OTP 24 been scheduled for removal in OTP
+ 26.
+
+
+ OTP-18552 Application(s): erts
+ Related Id(s): PR-6973
+
+ ERTS internal thread names have been changed. All
+ threads created by ERTS now have a prefix erts_
+ followed by a type name potentially followed by an
+ integer index. For example, normal schedulers are now
+ named erts_sched_<IX>, dirty CPU schedulers
+ erts_dcpus_<IX>, and dirty IO schedulers
+ erts_dios_<IX>. NIF and driver thread names are
+ truncated at 15 characters regardless of whether the
+ underlying platform support more characters or not.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-26.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18364 Application(s): otp
+
+ Starting from Erlang/OTP 24, it has been possible to
+ write expressions such as A = catch Expr without
+ parentheses around the catch expression, but it was not
+ mentioned in the documentation. It now is.
+
+
+ OTP-18538 Application(s): megaco, otp
+ Related Id(s): GH-7031, PR-7078
+
+ Removed configure option --enable-sanitizers. It was
+ untested and broken. Address sanitizer for the emulator
+ has better support by the asan build target.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18053 Application(s): erts, otp
+ Related Id(s): PR-6101
+
+ Updated configure cache for Windows. This makes
+ configure run faster on windows as many more checks are
+ cached.
+
+
+ OTP-18209 Application(s): otp
+ Related Id(s): PR-5881
+
+ Fix the make target release, release_docs, install and
+ install-docs now work when the target path contains
+ whitespace and/or unicode characters.
+
+
+ OTP-18492 Application(s): otp
+ Related Id(s): GH-6706
+
+ The documentation for the bit syntax has been updated
+ to correct some factual errors and omissions.
+
+
+ OTP-18511 Application(s): otp, stdlib
+ Related Id(s): PR-7017
+
+ The regular expression library powering the re module
+ is likely to be changed in Erlang/OTP 27. See Upcoming
+ Potential Incompatibilities.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18534 Application(s): asn1
+ Related Id(s): ERIERL-737, PR-7039
+
+ The ASN.1 compiler rejects correctly specified
+ RELATIVE-OID values containing other RELATIVE-OID
+ values. This is now corrected.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18441 Application(s): asn1
+
+ Minor code improvements.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of asn1-5.1: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.25 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18377 Application(s): common_test
+ Related Id(s): PR-6437
+
+ This change improves Common Test docs (CT hook example
+ code) and adds Emacs skeleton with hook code.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18259 Application(s): common_test
+ Related Id(s): PR-5924
+
+ Updated common_test with a more robust way to fetch old
+ releases, while ignoring the current release.
+
+
+ OTP-18340 Application(s): common_test
+
+ - re-write the XML ct module documentation into erlang
+ types to make Dialyzer able to catch more precise
+ errors
+
+
+ Full runtime dependencies of common_test-1.25: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18126 Application(s): compiler, erts
+ Related Id(s): PR-6033
+
+ Optimized record updates.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ *** HIGHLIGHT ***
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ *** HIGHLIGHT ***
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ *** HIGHLIGHT ***
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18337 Application(s): compiler, stdlib
+ Related Id(s): GH-6477, PR-6503
+
+ It is documented that $\^X is the ASCII code for
+ Control X, where X is an uppercase or lowercase letter.
+ However, this notation would work for any character X,
+ even then it didn't make sense.
+
+ In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the \^
+ characters: @, [, \, ], ^, _, and ?. Attempt to use
+ other characters will be rejected with a compiler
+ error.
+
+ The value for $\^? is now 127 (instead of 31 as in
+ earlier releases).
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ *** HIGHLIGHT ***
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18502 Application(s): compiler
+
+ The compiler will now inline calls to maps:get/3.
+
+
+ Full runtime dependencies of compiler-8.3: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18204 Application(s): crypto
+ Related Id(s): PR-6203
+
+ Add support for SHAKE128 and SHAKE256.
+
+
+ OTP-18206 Application(s): crypto
+ Related Id(s): PR-6167
+
+ Make the -DOPENSSL_API_COMPAT flag work without
+ warnings.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of crypto-5.2: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18237 Application(s): dialyzer
+ Related Id(s): GH-6221, PR-6243
+
+ When checking behaviors, Dialyzer could generate false
+ warning that a callback function did not have the
+ correct type according to the spec in the behavior
+ definition.
+
+
+ OTP-18276 Application(s): dialyzer
+ Related Id(s): GH-6333
+
+ In a spec, list(none()) used to mean none(). It has now
+ been corrected to mean the empty list.
+
+
+ OTP-18389 Application(s): dialyzer
+ Related Id(s): GH-6508, PR-6864
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Dialyzer was accepting typespecs containing singleton
+ type variables that appeared in an union type.
+
+ Before this change, singleton type variables in an
+ union type were accepted (see example below). However,
+ type variable Foo appears only once in each branch of
+ the union type, so it is a singleton type variable (in
+ each branch of the union type) that is not bound.
+
+ -spec run_test(Opts) -> term() when Opts ::
+ {join_specs, Foo} | {test, Foo}.
+
+ Unbound type variables should be rejected by Dialyzer,
+ which now detects this error and rejects it in the same
+ manner as its non-union equivalent:
+
+ -spec run_test_error(Opts) -> term() when Opts ::
+ {join_specs, Foo}.
+
+
+ OTP-18485 Application(s): dialyzer
+ Related Id(s): GH-6850, PR-6854
+
+ Fixed a bug that prevented the --plts option from being
+ used together with --add-to-plt.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18188 Application(s): dialyzer
+ Related Id(s): PR-5997
+
+ *** HIGHLIGHT ***
+
+ Dialyzer has a new incremental mode that be invoked by
+ giving the --incremental option when running Dialyzer.
+ This new incremental mode is likely to become the
+ default in a future release.
+
+ Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model
+ is optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code,
+ analysing it again, and so on, without explicit
+ reference to the building and checking of a PLT.
+
+ In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of
+ files they care about, and Dialyzer does the legwork in
+ terms of deciding how to most efficiently report all of
+ the relevant warnings given the cached results it may
+ already have in the PLT (and if a PLT doesn't exist,
+ incremental mode will create one).
+
+
+ OTP-18238 Application(s): dialyzer
+ Related Id(s): PR-6271
+
+ Dialyzer now produces clearer error messages for
+ contract violations.
+
+
+ OTP-18282 Application(s): dialyzer
+ Related Id(s): GH-6132, PR-6335
+
+ The name of a built-in type can now be reused as the
+ name of type locally. That is useful when an OTP
+ release introduces a new built-in type; having the
+ possibility to redefine built-in types locally can make
+ it easier to maintain code that works in multiple OTP
+ releases.
+
+
+ OTP-18310 Application(s): dialyzer
+
+ There is new option -no_spec to ignore all specs. It is
+ useful for debugging when one suspects that some specs
+ could be incorrect.
+
+
+ OTP-18342 Application(s): dialyzer
+ Related Id(s): GH-6117, PR-6654
+
+ Dialyzer's overloaded domain warning becomes is
+ disabled by default, and can be enabled with the flag
+ -Woverlapping_contract.
+
+ Dialyzer used to issue a warning for overloaded domains
+ stating "such contracts are currently unsupported and
+ are simply ignored".
+
+ These contracts are not "ignored" but rather, Dialyzer
+ takes the union of the overloaded domains. This means
+ that we lose the dependency from each corresponding
+ input to output type. Because of this, the warning is
+ really about not being able to establish a dependency
+ between the input and output types of each respective
+ overloaded function specification.
+
+
+ OTP-18439 Application(s): dialyzer
+ Related Id(s): GH-5695, GH-6942, PR-6822
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Dialyzer has enabled (by default) warnings about
+ unknown types and functions.
+
+ Prior to this change, Dialyzer had warnings about
+ unknown types and functions disabled (by default).
+
+ This default value has been overwritten; Dialyzer now
+ warns about unknown types and functions (as requested
+ by the community in GH-5695). Thus, the following two
+ examples are equivalent, i.e., passing the -Wunknown
+ function is enabled by default:
+
+ dialyzer moduler.erl -Wunknown -Wmissing_return
+
+ dialyzer moduler.erl -Wmissing_return
+
+ Dialyzer has a new flag, -Wno_unknown. Its purpose is
+ to suppress warnings about unknown functions and types.
+
+ Users who wish to suppress these warnings can invoke
+ Dialyzer using this flag. Example: dialyzer module.erl
+ -Wno_unknown
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ Full runtime dependencies of dialyzer-5.1: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-4.0, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- diameter-2.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of diameter-2.3: erts-10.0, kernel-3.2,
+ ssl-9.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- erl_docgen-1.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18338 Application(s): erl_docgen
+ Related Id(s): PR-6408
+
+ New XML tag <change>. Like a <note> box, but with a
+ different (steel blue) color and label. Intended to
+ contain talk about semantic differences between OTP
+ releases.
+
+
+ OTP-18501 Application(s): erl_docgen
+ Related Id(s): PR-6987
+
+ Add "since" attribute to XML taglist/tag elements to
+ document OTP version when a particular option/feature
+ was introduced. The version is shown out in the right
+ margin, similar to "since" versions for functions.
+
+
+ Full runtime dependencies of erl_docgen-1.5: edoc-1.0, erts-11.0,
+ kernel-8.0, stdlib-3.15, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.4 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ --- Known Bugs and Problems ---
+
+ OTP-16607 Application(s): erl_interface
+ Related Id(s): OTP-16608
+
+ The ei API for decoding/encoding terms is not fully
+ 64-bit compatible since terms that have a
+ representation on the external term format larger than
+ 2 GB cannot be handled.
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.0 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18016 Application(s): erts
+
+ If a local fun was called while reloading the *exact
+ same* module that defined said fun, there was a small
+ window in which the call would land in code that was
+ yet to be fully loaded.
+
+
+ OTP-18248 Application(s): erts, kernel
+ Related Id(s): GH-6085, PR-6227
+
+ Fix the TLS distribution to work when starting Erlang
+ in embedded mode and a connection is done before kernel
+ is fully started.
+
+
+ OTP-18271 Application(s): erts, kernel
+ Related Id(s): PR-6279
+
+ erl -remsh has been improved to provide better error
+ reasons and work when using a shell without terminal
+ support (that is an "oldshell").
+
+
+ OTP-18274 Application(s): erts
+ Related Id(s): PR-6048
+
+ Fix so that -fno-omit-frame-pointer is applied to all
+ of the Erlang VM when using the JIT so that tools, such
+ as perf, can crawl the process stacks.
+
+
+ OTP-18277 Application(s): erts
+ Related Id(s): PR-6306
+
+ Compilation server now support unicode paths in
+ compilation server for filesystems that are encoded
+ with unicode.
+
+
+ OTP-18498 Application(s): erts
+
+ *** HIGHLIGHT ***
+
+ Reintroduced the optimization that turned anonymous
+ functions without free variables into literals
+ (OTP-15195). This optimization was lost during
+ refactoring in OTP 24.
+
+ Alongside this fix, we plan to remove the "fun creator
+ pid" feature in OTP 27. See Upcoming Potential
+ Incompatibilities for more details.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17771 Application(s): erts
+ Related Id(s): GH-5325, PR-6370
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The enif_set_option() function has been introduced into
+ the NIF API. It can be used in order to set the
+ ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT
+ options with which one can synchronize halt of the
+ runtime system with flushing enabled and execution of
+ NIFs. Halt of the runtime system without flushing
+ enabled, now terminates the runtime system without
+ execution of atexit/on_exit handlers that may have been
+ installed into the runtime system which might be
+ considered a potential incompatibility.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ Add support for socket on Windows.
+
+ -- Pre release status.
+
+ -- Error codes not finalized.
+
+ -- No explicit support for Windows specific options
+ (socket options, flags for read and write).
+
+ -- New async api for Windows (completion). See the
+ Asynchronous calls chapter in the (Socket Usage) Users
+ Guide.
+
+ -- To ensure platform independence, gen_tcp and gen_udp
+ is *intended* to be used (not yet updated).
+
+
+ OTP-18053 Application(s): erts, otp
+ Related Id(s): PR-6101
+
+ Updated configure cache for Windows. This makes
+ configure run faster on windows as many more checks are
+ cached.
+
+
+ OTP-18126 Application(s): compiler, erts
+ Related Id(s): PR-6033
+
+ Optimized record updates.
+
+
+ OTP-18131 Application(s): erts
+
+ Optimized internal hash routines.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ *** HIGHLIGHT ***
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18141 Application(s): erts
+ Related Id(s): OTP-18140, PR-6073
+
+ Optimization of process aliases made possible now that
+ support for version 4 node container types in the
+ external term format is mandatory.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ *** HIGHLIGHT ***
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18227 Application(s): erts
+ Related Id(s): PR-6254
+
+ When erl -eval fails to execute the command is not
+ printed to standard_error.
+
+
+ OTP-18334 Application(s): erts
+ Related Id(s): PR-6434
+
+ *** HIGHLIGHT ***
+
+ Support for UTF-8 atoms and strings in the NIF
+ interface including new functions enif_make_new_atom,
+ enif_make_new_atom_len and enif_get_string_length.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18360 Application(s): erts
+ Related Id(s): PR-6497
+
+ erlang:display/1 will now print large maps in a more
+ readable way (similar to how small maps are printed).
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18369 Application(s): erts
+
+ Fail enif_init_resource_type and friends by returning
+ NULL if not called during load/upgrade. Old behavior
+ was undefined.
+
+
+ OTP-18410 Application(s): erts
+ Related Id(s): GH-5889, PR-6345
+
+ New option include_shared_binaries for the
+ max_heap_size process limit. If set to true, large
+ binaries (> 64 bytes), which may be referred by several
+ processes, are included in the memory sum compared
+ against the max_heap_size limit.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ *** HIGHLIGHT ***
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18424 Application(s): erts
+ Related Id(s): PR-6716
+
+ Reduced memory usage of file:read_file_info/1,2
+
+
+ OTP-18425 Application(s): erts
+ Related Id(s): GH-5333, PR-6628
+
+ Add new function current_stacktrace for trace match
+ specifications used by erlang:trace_pattern/3.
+
+ This new option puts the current stacktrace of the
+ caller into the trace message sent to the trace
+ receiver.
+
+
+ OTP-18435 Application(s): erts
+ Related Id(s): PR-6827
+
+ *** HIGHLIGHT ***
+
+ The amount of significant bits in node local process
+ identifiers and port identifiers has been extended from
+ 28 bits to 60 bits on 64-bit runtime systems. This
+ makes these identifiers large enough to in practice
+ never having to be reused during the life time of a
+ node.
+
+
+ OTP-18440 Application(s): erts
+ Related Id(s): PR-6351
+
+ *** HIGHLIGHT ***
+
+ New trace feature call_memory. Similar to call_time
+ tracing, but instead of measure accumulated time in
+ traced functions it measures accumulated heap space
+ consumed by traced functions. It can be used to compare
+ how much different functions are contributing to
+ garbage collection being triggered.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18477 Application(s): erts
+ Related Id(s): PR-7006
+
+ Introduced the local option of term_to_binary/2 and
+ term_to_iovec/2.
+
+
+ OTP-18483 Application(s): erts
+ Related Id(s): PR-6888
+
+ Document the commonly used practice to create and store
+ static atoms at NIF load time in callbacks load or
+ upgrade.
+
+
+ OTP-18493 Application(s): erts
+ Related Id(s): PR-6272
+
+ Optimize ets:lookup_element for uncompressed tables by
+ using a more efficient method to copy the term from ETS
+ to the heap of the calling process.
+
+
+ OTP-18505 Application(s): erts
+ Related Id(s): PR-6991
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The default encoding of atoms by term_to_binary and
+ term_to_iovec have changed from Latin1 to UTF-8. The
+ old encoding can still be obtained with options
+ {minor_version, 1}.
+
+ Apart from encoding code points between 128 and 255
+ with two bytes (UTF-8) instead of one, most atoms will
+ occupy one less byte as the length field use only one
+ byte instead of two if possible.
+
+
+ OTP-18517 Application(s): erts
+
+ The version of zlib included in the Erlang/OTP source
+ code is now 1.2.13.
+
+
+ OTP-18520 Application(s): erts
+ Related Id(s): GH-6455
+
+ gen_tcp:send/*, gen_udp:send/* and gen_sctp:send/* have
+ been optimized to use the infamous receive reference
+ optimization, so now sending should not have bad
+ performance when the calling process has a large
+ message queue.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ OTP-18523 Application(s): erts
+ Related Id(s): PR-7004
+
+ Optimize maps:merge/2 memory consumption for small maps
+ (<33 keys) by reusing key tuples or entire maps if the
+ result map has the same number of keys as any of the
+ argument maps.
+
+
+ OTP-18524 Application(s): erts
+ Related Id(s): OTP-18523, PR-7004
+
+ Optimize maps:merge/2 memory consumption further for
+ small maps by mutating 2nd map to use literal key tuple
+ of 1st map if both have the same keys.
+
+
+ OTP-18526 Application(s): erts
+ Related Id(s): GH-7045
+
+ ceil/1, floor/1, is_bitstring/1, is_boolean/1,
+ is_function/2, and tuple_size/1 can now be used in
+ match specifications.
+
+
+ OTP-18540 Application(s): erts, kernel
+ Related Id(s): PR-6900
+
+ Allow IPv6 addresses as host in http packets decoded by
+ erlang:decode_packet/3 and gen_tcp packet option. The
+ IPv6 address should be enclosed within [] according to
+ RFC2732.
+
+
+ OTP-18549 Application(s): erts, runtime_tools
+ Related Id(s): PR-7105
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Removed the experimental erts_alloc_config module. It
+ no longer produced good configurations and cannot be
+ fixed in a reasonably backwards compatible manner. It
+ has since OTP 25 been deprecated and scheduled for
+ removal in OTP 26.
+
+
+ OTP-18552 Application(s): erts
+ Related Id(s): PR-6973
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ ERTS internal thread names have been changed. All
+ threads created by ERTS now have a prefix erts_
+ followed by a type name potentially followed by an
+ integer index. For example, normal schedulers are now
+ named erts_sched_<IX>, dirty CPU schedulers
+ erts_dcpus_<IX>, and dirty IO schedulers
+ erts_dios_<IX>. NIF and driver thread names are
+ truncated at 15 characters regardless of whether the
+ underlying platform support more characters or not.
+
+
+ Full runtime dependencies of erts-14.0: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- ftp-1.1.5 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18359 Application(s): ftp
+ Related Id(s): PR-6545
+
+ Fixes the documentation for the ftp module and updates
+ the typing of ftp functions that return errors.
+
+ The documentation has been improved and the types of
+ the functions are now read from source code, instead of
+ being hard-coded in XML.
+
+ Functions returning errors of the form {error, Reason
+ :: 'ehost' | ...} are now similar to other modules,
+ i.e., {error, Reason :: term()}. If one wants to
+ understand the error, one must call the function
+ ftp:formaterror({error, Reason}).
+
+
+ --- Improvements and New Features ---
+
+ OTP-18541 Application(s): ftp
+
+ Remove deprecated functions in OTP-26
+
+
+ Full runtime dependencies of ftp-1.1.5: erts-7.0, kernel-6.0,
+ runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- inets-9.0 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18476 Application(s): inets
+ Related Id(s): GH-6380
+
+ Correct timing related pipelining/keepalive queue bug,
+ that could result in unexpected "socket_remotly_closed"
+ errors.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18167 Application(s): inets
+
+ By default ssl connections will use options from
+ ssl_default_options(true)
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ OTP-18530 Application(s): inets
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ IP display string will now always be in lower case,
+ effects ipv6 addresses.
+
+
+ OTP-18536 Application(s): inets
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Removed deprecated functions
+
+
+ OTP-18544 Application(s): inets
+ Related Id(s): GH-5276
+
+ Update the code in the inets example directory to
+ reflect the latest implementation
+
+
+ Full runtime dependencies of inets-9.0: erts-14.0, kernel-9.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-5.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- jinterface-1.14 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18210 Application(s): kernel
+ Related Id(s): GH-5877, PR-5878
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Fix bug where duplicate keys were allowed in the .app
+ file of an application. Duplicate keys are now rejected
+ and the application will not start if they exist.
+
+
+ OTP-18225 Application(s): kernel
+ Related Id(s): PR-6036
+
+ Fix inconsistent handling in logger_formatter of the
+ branched values in conditional branches. For example
+ using msg in a conditional branch would not be
+ formatted as it should before this fix.
+
+
+ OTP-18226 Application(s): kernel
+ Related Id(s): PR-6253
+
+ Fix the logger_std_h handler to log to standard_error
+ if logging to standard_io fails for any reason.
+
+
+ OTP-18248 Application(s): erts, kernel
+ Related Id(s): GH-6085, PR-6227
+
+ Fix the TLS distribution to work when starting Erlang
+ in embedded mode and a connection is done before kernel
+ is fully started.
+
+
+ OTP-18271 Application(s): erts, kernel
+ Related Id(s): PR-6279
+
+ erl -remsh has been improved to provide better error
+ reasons and work when using a shell without terminal
+ support (that is an "oldshell").
+
+
+ OTP-18286 Application(s): kernel
+ Related Id(s): PR-5955
+
+ Fix logging of log events generated before kernel is
+ started to not fail if the code for formatting those
+ log messaged have not yet been loaded.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18486 Application(s): kernel, stdlib
+ Related Id(s): PR-6881
+
+ Fixed a bug where file:read(standard_io, ...)
+ unexpectedly returned eof in binary mode.
+
+
+ OTP-18528 Application(s): kernel
+ Related Id(s): PR-7009
+
+ Return type for seq_trace:get_token/1 fixed.
+
+
+ OTP-18547 Application(s): kernel
+ Related Id(s): PR-7092
+
+ Replaced a regex with a special case handling of ANSI
+ Select Graphic Rendition escape characters, to speed up
+ io output that make use of these escape sequences.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ Add support for socket on Windows.
+
+ -- Pre release status.
+
+ -- Error codes not finalized.
+
+ -- No explicit support for Windows specific options
+ (socket options, flags for read and write).
+
+ -- New async api for Windows (completion). See the
+ Asynchronous calls chapter in the (Socket Usage) Users
+ Guide.
+
+ -- To ensure platform independence, gen_tcp and gen_udp
+ is *intended* to be used (not yet updated).
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ *** HIGHLIGHT ***
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18261 Application(s): kernel
+ Related Id(s): PR-5924
+
+ Add code:get_doc/2 which adds support to fetch
+ documentation skeletons of functions using debug_info
+ chunks instead of eep48 doc chunks.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18305 Application(s): kernel
+ Related Id(s): PR-5831
+
+ gen_server optimized by caching callback functions
+
+
+ OTP-18327 Application(s): kernel
+ Related Id(s): PR-6433
+
+ Prepare the pg communication protocol for upgrade. The
+ plan is for OTP-28 nodes to be able to use an upgraded
+ pg protocol while still being able to talk with OTP 26
+ nodes.
+
+
+ OTP-18331 Application(s): kernel
+ Related Id(s): ERIERL-870
+
+ New log type 'rotate', where the log files are
+ compressed upon rotation.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18419 Application(s): kernel
+
+ The function file:pid2name/1 is deprecated and will be
+ removed in Erlang/OTP 27.
+
+
+ OTP-18442 Application(s): kernel
+ Related Id(s): GH-6606, PR-6786
+
+ The modules Erlang DNS resolver inet_res and helper
+ modules have been updated for RFC6891; to handle OPT RR
+ with DNSSEC OK (DO) bit.
+
+
+ OTP-18444 Application(s): kernel
+ Related Id(s): PR-6035
+
+ Introduced application:get_supervisor/1.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18448 Application(s): kernel
+ Related Id(s): PR-6736
+
+ Reduce contention on the code_server by doing the code
+ preparation on the client.
+
+
+ OTP-18451 Application(s): kernel
+ Related Id(s): PR-6737
+
+ Added a mode to ensure_all_loaded, to start children
+ application and their dependencies concurrently.
+
+
+ OTP-18452 Application(s): kernel
+ Related Id(s): PR-6729
+
+ Cache OTP boot code paths, to limit how many folders
+ that are being accessed during a module lookup. Can be
+ disabled with -cache_boot_path false. OTP boot code
+ paths consists of ERL_LIB environment variables. The
+ various otp/*/ebin folders. And the {path, ...} clauses
+ in the init script.
+
+
+ OTP-18456 Application(s): kernel, ssl
+
+ Erlang distribution code in Kernel and SSL has been
+ refactored a bit to facilitate debugging and
+ re-usability, which shouldn't have any noticeable
+ effects on behaviour or performance.
+
+
+ OTP-18466 Application(s): kernel
+ Related Id(s): PR-6832
+
+ Add cache attribute to code path apis.
+
+ Added an optional cache/nocache argument to all
+ code:add_path*, code:set_path*, and code:replace_path*
+ functions. These functions will then avoid doing
+ file-accesses if they are cached. Cache can be cleared
+ with code:clear_cache/0. Added code:del_paths/1 to make
+ it easier to clear multiple paths.
+
+
+ OTP-18484 Application(s): kernel
+ Related Id(s): PR-6844
+
+ Improvements to code:ensure_modules_loaded/1:
+ Previously it would prepare modules and then abandon
+ references to said modules if they had on_load
+ callbacks. This pull request makes it so they keep the
+ references around and then serially load them without
+ having to fetch the object code and prepare them again.
+
+
+ OTP-18510 Application(s): kernel
+ Related Id(s): GH-6098, PR-6982
+
+ The internal DNS resolver has bee updated to handle DNS
+ LOC RR:s (RFC 1876). This is an undocumented module,
+ although still used by power users. See the source
+ code.
+
+
+ OTP-18521 Application(s): kernel
+ Related Id(s): PR-7025
+
+ Reduced memory consumption in global when informing
+ other nodes about lost connections.
+
+
+ OTP-18533 Application(s): kernel
+ Related Id(s): PR-7061
+
+ The net_kernel, global, and global_group servers now
+ have fully asynchronous distributed signaling enabled
+ all the time which prevents them from ever getting
+ blocked on send of distributed signals.
+
+ Documentation about blocking distributed signals has
+ also been improved.
+
+
+ OTP-18540 Application(s): erts, kernel
+ Related Id(s): PR-6900
+
+ Allow IPv6 addresses as host in http packets decoded by
+ erlang:decode_packet/3 and gen_tcp packet option. The
+ IPv6 address should be enclosed within [] according to
+ RFC2732.
+
+
+ OTP-18542 Application(s): kernel
+
+ Remove deprecated functions in OTP-26
+
+
+ OTP-18551 Application(s): kernel
+ Related Id(s): PR-7106
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Removed code:is_module_native/1 since HiPE has been
+ removed. It has since OTP 24 been deprecated and
+ scheduled for removal in OTP 26.
+
+ Removed code:rehash/0 since the code path feature no
+ longer is present. It has since OTP 19 been deprecated
+ and has since OTP 24 been scheduled for removal in OTP
+ 26.
+
+
+ Full runtime dependencies of kernel-9.0: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- megaco-4.4.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18538 Application(s): megaco, otp
+ Related Id(s): GH-7031, PR-7078
+
+ Removed configure option --enable-sanitizers. It was
+ untested and broken. Address sanitizer for the emulator
+ has better support by the asan build target.
+
+
+ Full runtime dependencies of megaco-4.4.4: asn1-3.0, debugger-4.0,
+ erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.22 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18309 Application(s): mnesia
+ Related Id(s): PR-6377
+
+ Added debug statistics for active transactions.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of mnesia-4.22: erts-9.0, kernel-5.3,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- observer-2.15 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18430 Application(s): observer
+ Related Id(s): PR-6397
+
+ Added start/1, start_and_wait functions/1|2 functions.
+
+
+ Full runtime dependencies of observer-2.15: erts-14.0, et-1.5,
+ kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- odbc-2.14.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18539 Application(s): odbc
+
+ Allow larger column sizes than 8001 in case DB supports
+ it.
+
+
+ Full runtime dependencies of odbc-2.14.1: erts-6.0, kernel-3.0,
+ stdlib-2.0
+
+
+ ---------------------------------------------------------------------
+ --- os_mon-2.9 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18246 Application(s): os_mon
+ Related Id(s): GH-6156, PR-6284
+
+ Fix internal os_mon_sysinfo:get_disk_info/1 function to
+ not crash when run on Windows with multiple drives.
+
+
+ OTP-18546 Application(s): os_mon
+ Related Id(s): GH-7070, PR-7071
+
+ Fixed a memory leak when calling cpu_sup:util/0,1 on
+ FreeBSD.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18303 Application(s): os_mon
+ Related Id(s): PR-6384
+
+ The disksup:get_disk_info/0 and disksup:get_disk_info/1
+ functions have been introduced. These can be used in
+ order to immediately fetch information about current
+ disk usage.
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ Full runtime dependencies of os_mon-2.9: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- parsetools-2.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18491 Application(s): parsetools
+ Related Id(s): PR-6882
+
+ *** HIGHLIGHT ***
+
+ Leex has been extended with optional column number
+ support.
+
+
+ Full runtime dependencies of parsetools-2.5: erts-6.0, kernel-3.0,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.14 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of public_key-1.14: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- reltool-1.0 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18230 Application(s): reltool
+ Related Id(s): PR-5936
+
+ Add possibility to strip specific chunks from beam
+ files included in a release. Before this change it was
+ only possible to strip all chunks from the beam files.
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18488 Application(s): reltool
+ Related Id(s): PR-6836
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Support for the experimental code archives feature has
+ been removed from reltool.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of reltool-1.0: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0, stdlib-5.0, tools-2.6.14, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- runtime_tools-2.0 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18499 Application(s): runtime_tools
+ Related Id(s): PR-6946
+
+ Fixed the type specification for
+ instrument:carriers/0,1
+
+
+ --- Improvements and New Features ---
+
+ OTP-18211 Application(s): runtime_tools
+ Related Id(s): PR-6143
+
+ Add dbg:tracer(file, Filename) as a convenient way to
+ trace to a file in clean text.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18487 Application(s): runtime_tools, tools
+ Related Id(s): PR-6829
+
+ The instrument module has been moved from tools to
+ runtime_tools.
+
+
+ OTP-18549 Application(s): erts, runtime_tools
+ Related Id(s): PR-7105
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Removed the experimental erts_alloc_config module. It
+ no longer produced good configurations and cannot be
+ fixed in a reasonably backwards compatible manner. It
+ has since OTP 25 been deprecated and scheduled for
+ removal in OTP 26.
+
+
+ Full runtime dependencies of runtime_tools-2.0: erts-11.0,
+ kernel-8.1, mnesia-4.12, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- sasl-4.2.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18300 Application(s): sasl
+ Related Id(s): PR-6389
+
+ Improve error message from systools:make_script, when
+ .app parameters contain duplicates. The parameters that
+ will be checked are modules, applications and
+ registered.
+
+
+ Full runtime dependencies of sasl-4.2.1: erts-10.2, kernel-6.0,
+ stdlib-4.0, tools-2.6.14
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.14 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of snmp-5.14: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.0 ---------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18231 Application(s): ssh
+ Related Id(s): OTP-17932, PR-6144
+
+ The ssh_cli has been updated to work with the changes
+ introduced in the new Erlang shell implementation.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of ssh-5.0: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18550 Application(s): ssl
+
+ Client signature algorithm list input order is now
+ honored again , it was accidently reversed by a
+ previous fix.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14771 Application(s): ssl
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Remove less that 256 bit ECC from default supported ECC
+ pre TLS-1.3
+
+
+ OTP-15903 Application(s): ssl
+
+ Improved error checking and handling of ssl options.
+
+
+ OTP-18168 Application(s): ssl
+ Related Id(s): GH-6014, PR-6019
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change, stateless tickets generated by server
+ with anti_replay option enabled can be used for
+ creating ClientHello throughout ticket lifetime.
+ Without this change, usability was limited to
+ WindowSize number of seconds configured for anti_replay
+ option.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ *** HIGHLIGHT ***
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18253 Application(s): ssl
+
+ With this change, TLS 1.3 server can be configured to
+ include client certificate in session ticket.
+
+
+ OTP-18254 Application(s): ssl
+ Related Id(s): PR-5982
+
+ With this change, it is possible to configure
+ encryption seed to be used with TLS1.3 stateless
+ tickets. This enables using tickets on different server
+ instances.
+
+
+ OTP-18312 Application(s): ssl
+
+ Debugging enhancements.
+
+
+ OTP-18335 Application(s): ssl
+
+ With this change, maybe keyword atom is not used as
+ function name in ssl code.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18438 Application(s): ssl
+ Related Id(s): GH-6679
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ For security reasons remove support for SHA1 and DSA
+ algorithms from default values.
+
+
+ OTP-18453 Application(s): ssl
+
+ Mitigate memory usage from large certificate chains by
+ lowering the maximum handshake size. This should not
+ effect the common cases, if needed it can be configured
+ to a higher value.
+
+
+ OTP-18455 Application(s): ssl
+ Related Id(s): GH-5899
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Change the client default verify option to verify_peer.
+ Note that this makes it mandatory to also supply
+ trusted CA certificates or explicitly set verify to
+ verify_none. This also applies when using the so called
+ anonymous test cipher suites defined in TLS versions
+ pre TLS-1.3.
+
+
+ OTP-18456 Application(s): kernel, ssl
+
+ Erlang distribution code in Kernel and SSL has been
+ refactored a bit to facilitate debugging and
+ re-usability, which shouldn't have any noticeable
+ effects on behaviour or performance.
+
+
+ OTP-18459 Application(s): ssl
+
+ *** HIGHLIGHT ***
+
+ Add encoding and decoding of use_srtp hello extension
+ to facilitate for DTLS users to implement SRTP
+ functionality.
+
+
+ OTP-18465 Application(s): ssl
+ Related Id(s): GH-7065
+
+ Refactors the (ssl application to use macros for TLS
+ and DTLS versions instead of hard-coded tuple numbers.
+ This change improves the maintainability of ssl
+
+
+ OTP-18507 Application(s): ssl
+
+ If the function ssl:renegotiate/1 is called on
+ connection that is running TLS-1.3 return an error
+ instead of hanging or timing out.
+
+
+ OTP-18531 Application(s): ssl
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ If a user cancel alert with level warning is received
+ during handshake make it be handled the same regardless
+ of TLS version. If it is received in connection in
+ TLS-1.3 regard it as an error as it is inappropriate.
+
+ In TLS-1.3 all error alerts are considered FATAL
+ regardless of legacy alert type. But make sure legacy
+ type is printed in logs to not confuse users that are
+ expecting the same legacy type as sent by peer.
+
+
+ Full runtime dependencies of ssl-11.0: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18275 Application(s): stdlib
+ Related Id(s): PR-6045
+
+ All process calls in dets have been updated to use the
+ receive queue optimizations.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18486 Application(s): kernel, stdlib
+ Related Id(s): PR-6881
+
+ Fixed a bug where file:read(standard_io, ...)
+ unexpectedly returned eof in binary mode.
+
+
+ OTP-18548 Application(s): stdlib
+ Related Id(s): PR-6967
+
+ Fix return value 'undefined' of v(N) is treated as
+ missing command.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-15597 Application(s): stdlib
+ Related Id(s): PR-5831
+
+ Gen_server now caches external functions for use in
+ handle_call, handle_cast and handle_info.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten from by
+ moving more code to Erlang from the old linked-in
+ driver and implementing all the I/O primitives needed
+ in a NIF instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+
+ OTP-18150 Application(s): stdlib
+
+ Added codepoint category to unicode_util
+
+
+ OTP-18159 Application(s): stdlib
+ Related Id(s): PR-6904
+
+ Added the zip:zip_get_crc32/2 function to retrieve the
+ CRC32 checksum from an opened ZIP archive.
+
+
+ OTP-18176 Application(s): stdlib
+ Related Id(s): PR-6118
+
+ Add the new options post_process_args and detached to
+ peer:start function.
+
+
+ OTP-18221 Application(s): stdlib
+ Related Id(s): PR-6197
+
+ The re:replace/3,4 functions now accept as the
+ replacement argument.
+
+
+ OTP-18228 Application(s): stdlib
+ Related Id(s): GH-5639
+
+ *** HIGHLIGHT ***
+
+ The performance of the base64 module has been
+ significantly improved. For example, on an x86_64
+ system with the JIT both encode and decode are more
+ than three times faster than in Erlang/OTP 25.
+
+
+ OTP-18236 Application(s): stdlib
+ Related Id(s): PR-6256
+
+ Improved implementation of timer:apply_interval/4
+ reducing load on the timer server, and introduction of
+ the new function timer:apply_repeatedly/4.
+ timer:apply_repeatedly/4 is similar to
+ timer:apply_interval/4, but timer:apply_repeatedly/4
+ prevents parallel execution of triggered apply
+ operations which timer:apply_interval/4 does not.
+
+
+ OTP-18247 Application(s): stdlib
+ Related Id(s): PR-6280, PR-6711
+
+ The base64 module now supports encoding and decoding
+ with an alternate URL safe alphabet, and an option for
+ accepting or adding missing = padding characters.
+
+
+ OTP-18272 Application(s): stdlib
+ Related Id(s): PR-6279
+
+ Add shell:whereis/0 which can be used to locate the
+ current shell process.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18279 Application(s): stdlib
+ Related Id(s): PR-6234
+
+ New function ets:lookup_element/4 with a Default
+ argument returned if the key did not exist in the
+ table. The old ets:lookup_element/3 raises a badarg
+ exception which can be both inconveniente and slower.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18287 Application(s): stdlib
+ Related Id(s): PR-5955
+
+ peer nodes using standard_io connections now include
+ standard error from the node in the io stream from the
+ started node.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ *** HIGHLIGHT ***
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18301 Application(s): stdlib
+ Related Id(s): PR-6350
+
+ Improve type specification of
+ unicode:characters_to_list().
+
+
+ OTP-18318 Application(s): stdlib
+ Related Id(s): PR-6347
+
+ *** HIGHLIGHT ***
+
+ In the lists, the zip family of functions now takes
+ options to allow handling lists of different lengths.
+
+
+ OTP-18337 Application(s): compiler, stdlib
+ Related Id(s): GH-6477, PR-6503
+
+ It is documented that $\^X is the ASCII code for
+ Control X, where X is an uppercase or lowercase letter.
+ However, this notation would work for any character X,
+ even then it didn't make sense.
+
+ In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the \^
+ characters: @, [, \, ], ^, _, and ?. Attempt to use
+ other characters will be rejected with a compiler
+ error.
+
+ The value for $\^? is now 127 (instead of 31 as in
+ earlier releases).
+
+
+ OTP-18354 Application(s): stdlib
+ Related Id(s): PR-6297
+
+ The binary:encode_hex/2 function has been added to
+ allow the encoded hexadecimal digits to be in either
+ lower or upper case.
+
+
+ OTP-18355 Application(s): stdlib
+ Related Id(s): PR-6507
+
+ Variants of timer:tc() with user specified time unit
+ have been introduced.
+
+
+ OTP-18361 Application(s): stdlib
+ Related Id(s): PR-6536
+
+ New function math:tau/0. Returns 2*math:pi().
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18385 Application(s): stdlib
+ Related Id(s): PR-6698
+
+ Optimized gen_server:multi_call().
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ *** HIGHLIGHT ***
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18423 Application(s): stdlib
+ Related Id(s): com/erlang/backlog/issues/142,
+ https://github
+
+ Make gen_server fail "silently" with a new return value
+ for init/1.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ *** HIGHLIGHT ***
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18474 Application(s): stdlib
+ Related Id(s): PR-6895
+
+ Static supervisors are very idle processes after they
+ have started so they will now be hibernated after start
+ to improve resource management.
+
+
+ OTP-18494 Application(s): stdlib
+ Related Id(s): PR-6924
+
+ Support has been added in ms_transform for the actions
+ caller_line/0, current_stacktrace/0, and
+ current_stacktrace/1.
+
+
+ OTP-18495 Application(s): stdlib
+ Related Id(s): PR-6943
+
+ *** HIGHLIGHT ***
+
+ The family of enumeration functions in module lists has
+ been extended with enumerate/3 that allows a step value
+ to be supplied.
+
+
+ OTP-18500 Application(s): stdlib
+
+ *** HIGHLIGHT ***
+
+ Update Unicode to version 15.0.0.
+
+
+ OTP-18511 Application(s): otp, stdlib
+ Related Id(s): PR-7017
+
+ The regular expression library powering the re module
+ is likely to be changed in Erlang/OTP 27. See Upcoming
+ Potential Incompatibilities.
+
+
+ OTP-18515 Application(s): stdlib
+ Related Id(s): GH-6990
+
+ Improved the performance of sets:subtract/2 when
+ subtracting a small number of elements.
+
+
+ OTP-18518 Application(s): stdlib
+ Related Id(s): GH-7015
+
+ The linter will no longer raise warnings for
+ underspecified opaque types.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ OTP-18537 Application(s): stdlib
+ Related Id(s): PR-7081
+
+ The by gen_statem previously used call proxy process
+ that was used for preventing late replies from reaching
+ the client at timeout or connection loss has been
+ removed. It is no longer needed since process aliases
+ take care of this, are used, and supported by all
+ Erlang nodes that an OTP 26 Erlang node can communicate
+ with.
+
+
+ Full runtime dependencies of stdlib-5.0: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- syntax_tools-3.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ Full runtime dependencies of syntax_tools-3.1: compiler-7.0,
+ erts-9.0, kernel-5.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- tftp-1.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of tftp-1.1: erts-6.0, kernel-6.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- tools-3.6 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18487 Application(s): runtime_tools, tools
+ Related Id(s): PR-6829
+
+ The instrument module has been moved from tools to
+ runtime_tools.
+
+
+ Full runtime dependencies of tools-3.6: compiler-5.0, erts-11.0,
+ erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.3 ----------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of wx-2.3: erts-12.0, kernel-8.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.0.1.README.txt b/release-notes/OTP-26.0.1.README.txt
new file mode 100644
index 0000000..f7a56ee
--- /dev/null
+++ b/release-notes/OTP-26.0.1.README.txt
@@ -0,0 +1,318 @@
+Patch Package: OTP 26.0.1
+Git Tag: OTP-26.0.1
+Date: 2023-06-08
+Trouble Report Id: OTP-18576, OTP-18578, OTP-18581, OTP-18583,
+ OTP-18584, OTP-18585, OTP-18587, OTP-18588,
+ OTP-18593, OTP-18595, OTP-18596, OTP-18597,
+ OTP-18600, OTP-18601, OTP-18602, OTP-18603,
+ OTP-18604, OTP-18617, OTP-18619, OTP-18621,
+ OTP-18632
+Seq num: ERIERL-944, GH-7213, GH-7247, GH-7248,
+ GH-7251, GH-7252, GH-7259, GH-7264, GH-7282,
+ GH-7288, GH-7297, GH-7301, GH-7303, GH-7338,
+ GH-7339
+System: OTP
+Release: 26
+Application: compiler-8.3.1, erts-14.0.1, inets-9.0.1,
+ kernel-9.0.1, ssl-11.0.1, stdlib-5.0.1,
+ xmerl-1.3.32
+Predecessor: OTP 26.0
+
+ Check out the git tag OTP-26.0.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.3.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.3.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18576 Application(s): compiler
+
+ Fixed a bug where a failing bsl expression in a guard
+ threw an exception instead of causing the guard to
+ fail.
+
+
+ OTP-18581 Application(s): compiler
+ Related Id(s): GH-7251
+
+ Fixed a bug that would case the validator to reject
+ legal code.
+
+
+ OTP-18583 Application(s): compiler
+ Related Id(s): GH-7259
+
+ The compiler could re-order clauses matching binaries
+ so that the incorrect clause would match. That could
+ only happen for code that used the option
+ {error_location,line} or for code without line or
+ column number information (e.g. generated by a parse
+ transform).
+
+
+ OTP-18593 Application(s): compiler
+ Related Id(s): GH-7252
+
+ Complex guard expression using the or operator and
+ guard BIFs that can fail could sometimes be miscompiled
+ so that the guard would succeed even if a call to a
+ guard BIF failed.
+
+
+ OTP-18600 Application(s): compiler
+ Related Id(s): GH-7248
+
+ With optimizations disabled, a try/catch construct
+ could return an incorrect value.
+
+
+ OTP-18601 Application(s): compiler
+
+ In rare circumstance, a combination of binary
+ construction and binary_part/3 would cause the compiler
+ to generate unsafe code that would crash the runtime
+ system.
+
+
+ OTP-18617 Application(s): compiler
+ Related Id(s): GH-7338
+
+ The compiler could be very slow when compiling guards
+ with multiple guard tests separated with 'or' or ';'.
+
+
+ OTP-18619 Application(s): compiler
+ Related Id(s): GH-7339
+
+ Complex guard expressions using 'or' and map updates
+ could succeed even if the map update failed.
+
+
+ Full runtime dependencies of compiler-8.3.1: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.0.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erts-14.0.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18585 Application(s): erts
+ Related Id(s): OTP-18029
+
+ Build of the socket nif failed on Solaris 11.
+
+
+ OTP-18587 Application(s): erts
+
+ Fixed two reduction-counting bugs relating to binaries.
+
+
+ OTP-18597 Application(s): erts
+
+ Constructing a binary segment not aligned with a byte
+ boundary, with a size not fitting in 31 bits, and with
+ a value not fitting in a 64-bit word could crash the
+ runtime system.
+
+
+ OTP-18602 Application(s): erts
+ Related Id(s): GH-7282
+
+ When a binary construction failed because of bad size
+ for a segment, the error information was not always
+ correct.
+
+
+ OTP-18621 Application(s): erts
+ Related Id(s): GH-7288
+
+ Fixed a crash when calling a fun that was defined in a
+ module that had been upgraded.
+
+
+ Full runtime dependencies of erts-14.0.1: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- inets-9.0.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-9.0.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18604 Application(s): inets
+ Related Id(s): GH-7303, PR-7306
+
+ Do not make the default ssl options by calling
+ httpc:ssl_verify_host_options(true) if ssl options are
+ supplied by the user.
+
+
+ Full runtime dependencies of inets-9.0.1: erts-14.0, kernel-9.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-5.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.0.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The kernel-9.0.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18578 Application(s): kernel, stdlib
+ Related Id(s): GH-7213
+
+ The POSIX error exdev was sometimes incorrectly
+ described as "cross domain link" in some error
+ messages.
+
+
+ OTP-18584 Application(s): kernel
+ Related Id(s): #7238
+
+ Corrected the socket send function description (send
+ with Timeout = nowait). The send function(s) could not
+ return {ok, {RestData, SelectInfo}}
+
+
+ Full runtime dependencies of kernel-9.0.1: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.0.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-11.0.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18588 Application(s): ssl
+ Related Id(s): GH-7264, PR-7277
+
+ Make sure that selection of client certificates handle
+ both TLS-1.3 and TLS-1.2 names correctly. Could cause
+ valid client certificate to not be selected, and an
+ empty client certificate message to be sent to server.
+
+
+ OTP-18596 Application(s): ssl
+ Related Id(s): GH-7247
+
+ Improved ssl:format_error/1 to handle more error
+ tuples.
+
+
+ OTP-18603 Application(s): ssl
+ Related Id(s): GH-7297
+
+ Fixed hanging ssl:connect when ssl application is not
+ started.
+
+
+ OTP-18632 Application(s): ssl
+ Related Id(s): GH-7301, PR-7300
+
+ Correct handling of retransmission timers, current
+ behavior could cause unwanted delays.
+
+
+ Full runtime dependencies of ssl-11.0.1: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.0.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-5.0.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18578 Application(s): kernel, stdlib
+ Related Id(s): GH-7213
+
+ The POSIX error exdev was sometimes incorrectly
+ described as "cross domain link" in some error
+ messages.
+
+
+ Full runtime dependencies of stdlib-5.0.1: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.32 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The xmerl-1.3.32 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18595 Application(s): xmerl
+ Related Id(s): ERIERL-944
+
+ New options to xmerl_scan and xmerl_sax_parser so one
+ can limit the behaviour of the parsers to avoid some
+ XML security issues.
+
+ xmerl_scan gets one new option:
+
+ -- {allow_entities, Boolean} -- Gives the possibility
+ to disallow entities by setting this option to false
+ (true is default)
+
+ xmerl_sax_parser gets the following options:
+
+ -- disallow_entities -- Don't allow entities in
+ document
+
+ -- {entity_recurse_limit, N} -- Set a limit on entity
+ recursion depth (default is 3)
+
+ -- {external_entities, AllowedType} -- Specify which
+ types of external entities that are allowed, this also
+ affect external DTD's. The types are all(default), file
+ and none
+
+ -- {fail_undeclared_ref, Boolean} -- Sets the behavior
+ for undeclared references due to an external file is
+ not parsed (true is default)
+
+ The old option skip_external_dtd is still valid and the
+ same as {external_entities, none} and
+ {fail_undeclared_ref, false} but just affects DTD's and
+ not other external references.
+
+
+ Full runtime dependencies of xmerl-1.3.32: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.0.2.README.txt b/release-notes/OTP-26.0.2.README.txt
new file mode 100644
index 0000000..f9c95dd
--- /dev/null
+++ b/release-notes/OTP-26.0.2.README.txt
@@ -0,0 +1,355 @@
+Patch Package: OTP 26.0.2
+Git Tag: OTP-26.0.2
+Date: 2023-06-29
+Trouble Report Id: OTP-18580, OTP-18618, OTP-18624, OTP-18625,
+ OTP-18626, OTP-18630, OTP-18634, OTP-18635,
+ OTP-18636, OTP-18637, OTP-18640, OTP-18643,
+ OTP-18646, OTP-18649, OTP-18650, OTP-18651,
+ OTP-18652, OTP-18653, OTP-18656, OTP-18657,
+ OTP-18659, OTP-18663
+Seq num: ERIERL-932, GH-6881, GH-7029, GH-7230,
+ GH-7261, GH-7286, GH-7296, GH-7308, GH-7324,
+ GH-7354, GH-7356, GH-7368, GH-7370, GH-7390,
+ GH-7433
+System: OTP
+Release: 26
+Application: compiler-8.3.2, erts-14.0.2, kernel-9.0.2,
+ ssh-5.0.1, ssl-11.0.2, stdlib-5.0.2
+Predecessor: OTP 26.0.1
+
+ Check out the git tag OTP-26.0.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.3.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.3.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18625 Application(s): compiler
+ Related Id(s): GH-7354
+
+ Fixed a type handling bug that would cause an internal
+ consistence failure for correct code.
+
+
+ OTP-18626 Application(s): compiler
+ Related Id(s): GH-7356
+
+ Fixed a bug that could cause the stack trace of throw
+ exceptions to be erroneously optimized out.
+
+
+ OTP-18634 Application(s): compiler
+ Related Id(s): GH-7370
+
+ Complex guard expression using 'or' were not always
+ fully evaluated, making guards that were supposed to
+ fail succeed.
+
+
+ Full runtime dependencies of compiler-8.3.2: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.0.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erts-14.0.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18630 Application(s): erts
+ Related Id(s): GH-7029, PR-7275
+
+ Fix using the IME (Input Method Editor) to enter text
+ in cmd.exe and powershell.exe on Windows.
+
+
+ OTP-18635 Application(s): erts, kernel
+ Related Id(s): #7328
+
+ Multiple socket:accept calls issue. When making
+ multiple accept calls, only the last call is active.
+
+
+ OTP-18636 Application(s): erts, kernel
+ Related Id(s): GH-7308, PR-7352
+
+ Fix the shell to ignore terminal delay when the
+ terminal capabilities report that they should be used.
+
+
+ OTP-18637 Application(s): erts, kernel
+ Related Id(s): GH-7324, PR-7359
+
+ Fix "oldshell" to echo characters while typing on
+ Windows.
+
+
+ OTP-18646 Application(s): erts, kernel
+
+ On Windows, a call to the function socket:close, when
+ there are waiting active calls to read, write or accept
+ functions, could hang.
+
+
+ OTP-18649 Application(s): erts, kernel
+ Related Id(s): GH-7261, PR-7400
+
+ Fix issues when reading or configuring standard_io on
+ Windows when erl.exe is started using -noshell flag.
+
+
+ OTP-18659 Application(s): erts, stdlib
+ Related Id(s): PR-7426
+
+ The following functions are now much faster when given
+ a long list or binary:
+
+ -- erlang:list_to_integer/1
+
+ -- erlang:binary_to_integer/1
+
+ -- erlang:binary_to_integer/2
+
+ -- erlang:list_to_integer/2
+
+ -- string:to_integer/1
+
+
+ OTP-18663 Application(s): erts
+ Related Id(s): GH-7433, PR-7437
+
+ On AArch64 (ARM64), equality and non-equality tests
+ with literal bitstrings could succeed when they should
+ fail and vice versa.
+
+
+ Full runtime dependencies of erts-14.0.2: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.0.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The kernel-9.0.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18580 Application(s): kernel, stdlib
+ Related Id(s): PR-7242
+
+ Fix bug where when you entered Alt+Enter in the
+ terminal, the cursor would move to the last line,
+ instead of moving to the next line.
+
+
+ OTP-18624 Application(s): kernel
+ Related Id(s): GH-7296
+
+ Fix so that the shell does not crash on startup when
+ termcap is not available.
+
+
+ OTP-18635 Application(s): erts, kernel
+ Related Id(s): #7328
+
+ Multiple socket:accept calls issue. When making
+ multiple accept calls, only the last call is active.
+
+
+ OTP-18636 Application(s): erts, kernel
+ Related Id(s): GH-7308, PR-7352
+
+ Fix the shell to ignore terminal delay when the
+ terminal capabilities report that they should be used.
+
+
+ OTP-18637 Application(s): erts, kernel
+ Related Id(s): GH-7324, PR-7359
+
+ Fix "oldshell" to echo characters while typing on
+ Windows.
+
+
+ OTP-18640 Application(s): kernel, stdlib
+ Related Id(s): GH-6881, GH-7286, GH-7368, PR-7384
+
+ Fix eof handling when reading from stdin when erlang is
+ started using -noshell.
+
+
+ OTP-18646 Application(s): erts, kernel
+
+ On Windows, a call to the function socket:close, when
+ there are waiting active calls to read, write or accept
+ functions, could hang.
+
+
+ OTP-18649 Application(s): erts, kernel
+ Related Id(s): GH-7261, PR-7400
+
+ Fix issues when reading or configuring standard_io on
+ Windows when erl.exe is started using -noshell flag.
+
+
+ OTP-18650 Application(s): kernel
+
+ gen_udp:connect with inet_backend = socket fails when
+ the Address is a hostname (string or atom).
+
+
+ OTP-18651 Application(s): kernel
+ Related Id(s): PR-7242
+
+ Fixed problem which would cause shell to crash if
+ particular escape sequence was written to stdout.
+
+
+ OTP-18652 Application(s): kernel, stdlib
+ Related Id(s): PR-7242
+
+ Fixed problem where output would disappear if it was
+ received after a prompt was written in the shell.
+
+
+ OTP-18656 Application(s): kernel
+ Related Id(s): GH-7390, PR-7404
+
+ Fix a crash where the location of erts could not be
+ found in rebar3 dev builds.
+
+
+ OTP-18657 Application(s): kernel
+ Related Id(s): GH-7230, PR-7384
+
+ Introduce the KERNEL application parameter
+ standard_io_encoding that can be used to set the
+ default encoding for standard_io. This option needs to
+ be set to latin1 if the application wants to treat all
+ input data as bytes rather than utf-8 encoded
+ characters.
+
+
+ Full runtime dependencies of kernel-9.0.2: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.0.1 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-5.0.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18653 Application(s): ssh
+ Related Id(s): PR-7242
+
+ Added multiline editing support to ssh clients
+ connected through OTP ssh daemon.
+
+
+ Full runtime dependencies of ssh-5.0.1: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.0.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-11.0.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18643 Application(s): ssl
+ Related Id(s): ERIERL-932
+
+ Added keylog information to all protocol versions in
+ ssl:connection_information/2.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18618 Application(s): ssl
+ Related Id(s): ERIERL-932
+
+ Add RFC-6083 considerations for DTLS to enable gen_sctp
+ based callback for the transport.
+
+
+ Full runtime dependencies of ssl-11.0.2: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.0.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-5.0.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18580 Application(s): kernel, stdlib
+ Related Id(s): PR-7242
+
+ Fix bug where when you entered Alt+Enter in the
+ terminal, the cursor would move to the last line,
+ instead of moving to the next line.
+
+
+ OTP-18640 Application(s): kernel, stdlib
+ Related Id(s): GH-6881, GH-7286, GH-7368, PR-7384
+
+ Fix eof handling when reading from stdin when erlang is
+ started using -noshell.
+
+
+ OTP-18652 Application(s): kernel, stdlib
+ Related Id(s): PR-7242
+
+ Fixed problem where output would disappear if it was
+ received after a prompt was written in the shell.
+
+
+ OTP-18659 Application(s): erts, stdlib
+ Related Id(s): PR-7426
+
+ The following functions are now much faster when given
+ a long list or binary:
+
+ -- erlang:list_to_integer/1
+
+ -- erlang:binary_to_integer/1
+
+ -- erlang:binary_to_integer/2
+
+ -- erlang:list_to_integer/2
+
+ -- string:to_integer/1
+
+
+ Full runtime dependencies of stdlib-5.0.2: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.0.README.txt b/release-notes/OTP-26.0.README.txt
new file mode 100644
index 0000000..db7946b
--- /dev/null
+++ b/release-notes/OTP-26.0.README.txt
@@ -0,0 +1,3962 @@
+Inital Release: OTP 26.0
+Git Tag: OTP-26.0
+Date: 2023-05-16
+Trouble Report Id: OTP-14771, OTP-14835, OTP-15597, OTP-15903,
+ OTP-16607, OTP-17771, OTP-17932, OTP-18016,
+ OTP-18029, OTP-18053, OTP-18126, OTP-18131,
+ OTP-18135, OTP-18137, OTP-18140, OTP-18141,
+ OTP-18159, OTP-18167, OTP-18168, OTP-18176,
+ OTP-18185, OTP-18188, OTP-18204, OTP-18206,
+ OTP-18209, OTP-18210, OTP-18211, OTP-18221,
+ OTP-18225, OTP-18226, OTP-18227, OTP-18228,
+ OTP-18230, OTP-18231, OTP-18235, OTP-18236,
+ OTP-18237, OTP-18238, OTP-18246, OTP-18247,
+ OTP-18248, OTP-18253, OTP-18254, OTP-18259,
+ OTP-18261, OTP-18271, OTP-18272, OTP-18274,
+ OTP-18275, OTP-18276, OTP-18277, OTP-18278,
+ OTP-18279, OTP-18282, OTP-18285, OTP-18286,
+ OTP-18287, OTP-18297, OTP-18300, OTP-18301,
+ OTP-18303, OTP-18305, OTP-18309, OTP-18310,
+ OTP-18312, OTP-18318, OTP-18327, OTP-18331,
+ OTP-18334, OTP-18335, OTP-18337, OTP-18338,
+ OTP-18340, OTP-18342, OTP-18344, OTP-18350,
+ OTP-18354, OTP-18355, OTP-18359, OTP-18360,
+ OTP-18361, OTP-18364, OTP-18367, OTP-18369,
+ OTP-18377, OTP-18385, OTP-18389, OTP-18405,
+ OTP-18410, OTP-18413, OTP-18414, OTP-18419,
+ OTP-18423, OTP-18424, OTP-18425, OTP-18430,
+ OTP-18431, OTP-18435, OTP-18438, OTP-18439,
+ OTP-18440, OTP-18441, OTP-18442, OTP-18444,
+ OTP-18445, OTP-18447, OTP-18448, OTP-18451,
+ OTP-18452, OTP-18453, OTP-18455, OTP-18456,
+ OTP-18459, OTP-18465, OTP-18466, OTP-18471,
+ OTP-18474, OTP-18476, OTP-18477, OTP-18478,
+ OTP-18483, OTP-18484, OTP-18485, OTP-18486,
+ OTP-18487, OTP-18488, OTP-18490, OTP-18491,
+ OTP-18492, OTP-18493, OTP-18494, OTP-18495,
+ OTP-18498, OTP-18499, OTP-18500, OTP-18501,
+ OTP-18502, OTP-18505, OTP-18507, OTP-18510,
+ OTP-18511, OTP-18515, OTP-18517, OTP-18518,
+ OTP-18520, OTP-18521, OTP-18522, OTP-18523,
+ OTP-18524, OTP-18526, OTP-18528, OTP-18530,
+ OTP-18531, OTP-18533, OTP-18534, OTP-18536,
+ OTP-18537, OTP-18538, OTP-18539, OTP-18540,
+ OTP-18541, OTP-18542, OTP-18543, OTP-18544,
+ OTP-18546, OTP-18547, OTP-18548, OTP-18549,
+ OTP-18551, OTP-18552, OTP-18558, OTP-18561,
+ OTP-18562, OTP-18564, OTP-18566, OTP-18567,
+ OTP-18569, OTP-18571, OTP-18572, OTP-18574,
+ OTP-18575
+Seq num: ERIERL-737, ERIERL-870, GH-3150, GH-3390,
+ GH-4225, GH-4343, GH-4965, GH-5276, GH-5325,
+ GH-5333, GH-5639, GH-5695, GH-5877, GH-5889,
+ GH-5899, GH-6014, GH-6085, GH-6098, GH-6117,
+ GH-6132, GH-6139, GH-6156, GH-6221, GH-6333,
+ GH-6339, GH-6348, GH-6353, GH-6380, GH-6455,
+ GH-6461, GH-6477, GH-6508, GH-6544, GH-6606,
+ GH-6672, GH-6679, GH-6706, GH-6850, GH-6903,
+ GH-6942, GH-6990, GH-7015, GH-7031, GH-7045,
+ GH-7065, GH-7070, GH-7116, GH-7153
+System: OTP
+Release: 26
+Application: asn1-5.1, common_test-1.25, compiler-8.3,
+ crypto-5.2, dialyzer-5.1, diameter-2.3,
+ erl_docgen-1.5, erl_interface-5.4, erts-14.0,
+ et-1.7, ftp-1.2, inets-9.0, jinterface-1.14,
+ kernel-9.0, megaco-4.4.4, mnesia-4.22,
+ observer-2.15, odbc-2.14.1, os_mon-2.9,
+ parsetools-2.5, public_key-1.14, reltool-1.0,
+ runtime_tools-2.0, sasl-4.2.1, snmp-5.14,
+ ssh-5.0, ssl-11.0, stdlib-5.0,
+ syntax_tools-3.1, tftp-1.1, tools-3.6, wx-2.3
+Predecessor: OTP
+
+ Check out the git tag OTP-26.0, and build a full OTP system including
+ documentation.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-15903 Application(s): ssl
+
+ Improved error checking and handling of ssl options.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The TTY/terminal subsystem has been rewritten by moving
+ more code to Erlang from the old linked-in driver and
+ implementing all the I/O primitives needed in a NIF
+ instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+ -- Standard I/O now always defaults to unicode mode if
+ supported. Previously the default was latin1 if the
+ runtime system had been started with -oldshell or
+ -noshell (for example in an escript). To send raw bytes
+ over standard out, one now explicitly has to specify
+ io:setopts(standard_io, [{encoding, latin1}]).
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ Add support for socket on Windows.
+
+ -- Pre release status.
+
+ -- Error codes not finalized.
+
+ -- No explicit support for Windows specific options
+ (socket options, flags for read and write).
+
+ -- New async api for Windows (completion). See the
+ Asynchronous calls chapter in the (Socket Usage) Users
+ Guide.
+
+ -- To ensure platform independence, gen_tcp and gen_udp
+ is *intended* to be used (not yet updated).
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18188 Application(s): dialyzer
+ Related Id(s): PR-5997
+
+ Dialyzer has a new incremental mode that be invoked by
+ giving the --incremental option when running Dialyzer.
+ This new incremental mode is likely to become the
+ default in a future release.
+
+ Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model
+ is optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code,
+ analysing it again, and so on, without explicit
+ reference to the building and checking of a PLT.
+
+ In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of
+ files they care about, and Dialyzer does the legwork in
+ terms of deciding how to most efficiently report all of
+ the relevant warnings given the cached results it may
+ already have in the PLT (and if a PLT doesn't exist,
+ incremental mode will create one).
+
+
+ OTP-18228 Application(s): stdlib
+ Related Id(s): GH-5639
+
+ The performance of the base64 module has been
+ significantly improved. For example, on an x86_64
+ system with the JIT both encode and decode are more
+ than three times faster than in Erlang/OTP 25.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18318 Application(s): stdlib
+ Related Id(s): PR-6347
+
+ In the lists module, the zip family of functions now
+ takes options to allow handling lists of different
+ lengths.
+
+
+ OTP-18334 Application(s): erts
+ Related Id(s): PR-6434
+
+ Support for UTF-8 atoms and strings in the NIF
+ interface including new functions enif_make_new_atom,
+ enif_make_new_atom_len and enif_get_string_length.
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18435 Application(s): erts
+ Related Id(s): PR-6827
+
+ The amount of significant bits in node local process
+ identifiers and port identifiers has been extended from
+ 28 bits to 60 bits on 64-bit runtime systems. This
+ makes these identifiers large enough to in practice
+ never having to be reused during the life time of a
+ node.
+
+
+ OTP-18440 Application(s): erts
+ Related Id(s): PR-6351
+
+ New trace feature call_memory. Similar to call_time
+ tracing, but instead of measure accumulated time in
+ traced functions it measures accumulated heap space
+ consumed by traced functions. It can be used to compare
+ how much different functions are contributing to
+ garbage collection being triggered.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18459 Application(s): ssl
+
+ Add encoding and decoding of use_srtp hello extension
+ to facilitate for DTLS users to implement SRTP
+ functionality.
+
+
+ OTP-18491 Application(s): parsetools
+ Related Id(s): PR-6882
+
+ Leex has been extended with optional column number
+ support.
+
+
+ OTP-18495 Application(s): stdlib
+ Related Id(s): PR-6943
+
+ The family of enumeration functions in module lists has
+ been extended with enumerate/3 that allows a step value
+ to be supplied.
+
+
+ OTP-18498 Application(s): erts
+
+ Reintroduced the optimization that turned anonymous
+ functions without free variables into literals
+ (OTP-15195). This optimization was lost during
+ refactoring in OTP 24.
+
+ Alongside this fix, we plan to remove the "fun creator
+ pid" feature in OTP 27. See Upcoming Potential
+ Incompatibilities for more details.
+
+
+ OTP-18500 Application(s): stdlib
+
+ Update Unicode to version 15.0.0.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-14771 Application(s): ssl
+
+ Remove less that 256 bit ECC from default supported ECC
+ pre TLS-1.3
+
+
+ OTP-17771 Application(s): erts
+ Related Id(s): GH-5325, PR-6370
+
+ The enif_set_option() function has been introduced into
+ the NIF API. It can be used in order to set the
+ ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT
+ options with which one can synchronize halt of the
+ runtime system with flushing enabled and execution of
+ NIFs. Halt of the runtime system without flushing
+ enabled, now terminates the runtime system without
+ execution of atexit/on_exit handlers that may have been
+ installed into the runtime system which might be
+ considered a potential incompatibility.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ The TTY/terminal subsystem has been rewritten by moving
+ more code to Erlang from the old linked-in driver and
+ implementing all the I/O primitives needed in a NIF
+ instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+ -- Standard I/O now always defaults to unicode mode if
+ supported. Previously the default was latin1 if the
+ runtime system had been started with -oldshell or
+ -noshell (for example in an escript). To send raw bytes
+ over standard out, one now explicitly has to specify
+ io:setopts(standard_io, [{encoding, latin1}]).
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** HIGHLIGHT ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18168 Application(s): ssl
+ Related Id(s): GH-6014, PR-6019
+
+ With this change, stateless tickets generated by server
+ with anti_replay option enabled can be used for
+ creating ClientHello throughout ticket lifetime.
+ Without this change, usability was limited to
+ WindowSize number of seconds configured for anti_replay
+ option.
+
+
+ OTP-18210 Application(s): kernel
+ Related Id(s): GH-5877, PR-5878
+
+ Fixed a bug where duplicate keys were allowed in the
+ .app file of an application. Duplicate keys are now
+ rejected and the application will not start if they
+ exist.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18438 Application(s): ssl
+ Related Id(s): GH-6679
+
+ For security reasons remove support for SHA1 and DSA
+ algorithms from default values.
+
+
+ OTP-18439 Application(s): dialyzer
+ Related Id(s): GH-5695, GH-6942, PR-6822
+
+ Dialyzer has enabled (by default) warnings about
+ unknown types and functions.
+
+ Prior to this change, Dialyzer had warnings about
+ unknown types and functions disabled (by default).
+
+ This default value has been overwritten; Dialyzer now
+ warns about unknown types and functions (as requested
+ by the community in GH-5695). Thus, the following two
+ examples are equivalent, i.e., passing the -Wunknown
+ function is enabled by default:
+
+ dialyzer moduler.erl -Wunknown -Wmissing_return
+
+ dialyzer moduler.erl -Wmissing_return
+
+ Dialyzer has a new flag, -Wno_unknown. Its purpose is
+ to suppress warnings about unknown functions and types.
+
+ Users who wish to suppress these warnings can invoke
+ Dialyzer using this flag. Example: dialyzer module.erl
+ -Wno_unknown
+
+
+ OTP-18455 Application(s): ssl
+ Related Id(s): GH-5899
+
+ Change the client default verify option to verify_peer.
+ Note that this makes it mandatory to also supply
+ trusted CA certificates or explicitly set verify to
+ verify_none. This also applies when using the so called
+ anonymous test cipher suites defined in TLS versions
+ pre TLS-1.3.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18488 Application(s): reltool
+ Related Id(s): PR-6836
+
+ Support for the experimental code archives feature has
+ been removed from reltool.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ OTP-18505 Application(s): erts
+ Related Id(s): PR-6991
+
+ The default encoding of atoms by term_to_binary and
+ term_to_iovec have changed from Latin1 to UTF-8. The
+ old encoding can still be obtained with options
+ {minor_version, 1}.
+
+ Apart from encoding code points between 128 and 255
+ with two bytes (UTF-8) instead of one, most atoms will
+ occupy one less byte as the length field use only one
+ byte instead of two if possible.
+
+
+ OTP-18530 Application(s): inets
+
+ IP display string will now always be in lower case,
+ effects ipv6 addresses.
+
+
+ OTP-18531 Application(s): ssl
+
+ If a user cancel alert with level warning is received
+ during handshake make it be handled the same regardless
+ of TLS version. If it is received in connection in
+ TLS-1.3 regard it as an error as it is inappropriate.
+
+ In TLS-1.3 all error alerts are considered FATAL
+ regardless of legacy alert type. But make sure legacy
+ type is printed in logs to not confuse users that are
+ expecting the same legacy type as sent by peer.
+
+
+ OTP-18536 Application(s): inets
+
+ Removed deprecated functions
+
+
+ OTP-18549 Application(s): erts, runtime_tools
+ Related Id(s): PR-7105
+
+ Removed the experimental erts_alloc_config module. It
+ no longer produced good configurations and cannot be
+ fixed in a reasonably backwards compatible manner. It
+ has since OTP 25 been deprecated and scheduled for
+ removal in OTP 26.
+
+
+ OTP-18551 Application(s): kernel
+ Related Id(s): PR-7106
+
+ Removed code:is_module_native/1 since HiPE has been
+ removed. It has since OTP 24 been deprecated and
+ scheduled for removal in OTP 26.
+
+ Removed code:rehash/0 since the code path feature no
+ longer is present. It has since OTP 19 been deprecated
+ and has since OTP 24 been scheduled for removal in OTP
+ 26.
+
+
+ OTP-18552 Application(s): erts
+ Related Id(s): PR-6973
+
+ ERTS internal thread names have been changed. All
+ threads created by ERTS now have a prefix erts_
+ followed by a type name potentially followed by an
+ integer index. For example, normal schedulers are now
+ named erts_sched_<IX>, dirty CPU schedulers
+ erts_dcpus_<IX>, and dirty IO schedulers
+ erts_dios_<IX>. NIF and driver thread names are
+ truncated at 15 characters regardless of whether the
+ underlying platform support more characters or not.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-26.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18364 Application(s): otp
+
+ Starting from Erlang/OTP 24, it has been possible to
+ write expressions such as A = catch Expr without
+ parentheses around the catch expression, but it was not
+ mentioned in the documentation. It now is.
+
+
+ OTP-18538 Application(s): megaco, otp
+ Related Id(s): GH-7031, PR-7078
+
+ Removed configure option --enable-sanitizers. It was
+ untested and broken. Address sanitizer for the emulator
+ has better support by the asan build target.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18053 Application(s): erts, otp
+ Related Id(s): PR-6101
+
+ Updated configure cache for Windows. This makes
+ configure run faster on Windows as many more checks are
+ cached.
+
+
+ OTP-18209 Application(s): otp
+ Related Id(s): PR-5881
+
+ Fix the make target release, release_docs, install and
+ install-docs now work when the target path contains
+ whitespace and/or unicode characters.
+
+
+ OTP-18492 Application(s): otp
+ Related Id(s): GH-6706
+
+ The documentation for the bit syntax has been updated
+ to correct some factual errors and omissions.
+
+
+ OTP-18511 Application(s): otp, stdlib
+ Related Id(s): PR-7017
+
+ The regular expression library powering the re module
+ is likely to be changed in Erlang/OTP 27. See Upcoming
+ Potential Incompatibilities.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18534 Application(s): asn1
+ Related Id(s): ERIERL-737, PR-7039
+
+ The ASN.1 compiler used to reject correctly specified
+ RELATIVE-OID values containing other RELATIVE-OID
+ values. This is now corrected.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18441 Application(s): asn1
+
+ Minor code improvements.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of asn1-5.1: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.25 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18377 Application(s): common_test
+ Related Id(s): PR-6437
+
+ This change improves Common Test docs (CT hook example
+ code) and adds Emacs skeleton with hook code.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18259 Application(s): common_test
+ Related Id(s): PR-5924
+
+ Updated common_test with a more robust way to fetch old
+ releases, while ignoring the current release.
+
+
+ OTP-18340 Application(s): common_test
+
+ - re-write the XML ct module documentation into erlang
+ types to make Dialyzer able to catch more precise
+ errors
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ Full runtime dependencies of common_test-1.25: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18389 Application(s): compiler, dialyzer
+ Related Id(s): GH-6508, GH-7116, PR-6864
+
+ The compiler would silently accept singleton (unbound)
+ type variables in a union type. Starting from
+ Erlang/OTP 26, the compiler will generate a warning for
+ this example. The warning can be disabled using the
+ nowarn_singleton_typevar option. In Erlang/OTP 27, the
+ warning will become an error.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18126 Application(s): compiler, erts
+ Related Id(s): PR-6033
+
+ Optimized record updates.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ *** HIGHLIGHT ***
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ *** HIGHLIGHT ***
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ *** HIGHLIGHT ***
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18337 Application(s): compiler, stdlib
+ Related Id(s): GH-6477, PR-6503
+
+ It is documented that $\^X is the ASCII code for
+ Control X, where X is an uppercase or lowercase letter.
+ However, this notation would work for any character X,
+ even then it didn't make sense.
+
+ In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the \^
+ characters: @, [, \, ], ^, _, and ?. Attempt to use
+ other characters will be rejected with a compiler
+ error.
+
+ The value for $\^? is now 127 (instead of 31 as in
+ earlier releases).
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ *** HIGHLIGHT ***
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18502 Application(s): compiler
+
+ The compiler will now inline calls to maps:get/3.
+
+
+ OTP-18574 Application(s): compiler, erts
+
+ In Erlang/OTP 27, 0.0 will no longer be considered to
+ be exactly equal to -0.0. See Upcoming Potential
+ Incompatibilities.
+
+
+ Full runtime dependencies of compiler-8.3: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18571 Application(s): crypto
+
+ Fix cmac_update aes_128_cbc for LibreSSL.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18204 Application(s): crypto
+ Related Id(s): PR-6203
+
+ Add support for SHAKE128 and SHAKE256.
+
+
+ OTP-18206 Application(s): crypto
+ Related Id(s): PR-6167
+
+ Make the -DOPENSSL_API_COMPAT flag work without
+ warnings.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of crypto-5.2: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18237 Application(s): dialyzer
+ Related Id(s): GH-6221, PR-6243
+
+ When checking behaviors, Dialyzer could generate false
+ warning that a callback function did not have the
+ correct type according to the spec in the behavior
+ definition.
+
+
+ OTP-18276 Application(s): dialyzer
+ Related Id(s): GH-6333
+
+ In a spec, list(none()) used to mean none(). It has now
+ been corrected to mean the empty list.
+
+
+ OTP-18389 Application(s): compiler, dialyzer
+ Related Id(s): GH-6508, GH-7116, PR-6864
+
+ The compiler would silently accept singleton (unbound)
+ type variables in a union type. Starting from
+ Erlang/OTP 26, the compiler will generate a warning for
+ this example. The warning can be disabled using the
+ nowarn_singleton_typevar option. In Erlang/OTP 27, the
+ warning will become an error.
+
+
+ OTP-18485 Application(s): dialyzer
+ Related Id(s): GH-6850, PR-6854
+
+ Fixed a bug that prevented the --plts option from being
+ used together with --add-to-plt.
+
+
+ OTP-18562 Application(s): dialyzer
+
+ Fixed a crash when analyzing code that contained
+ illegal bitstring segment sizes.
+
+
+ OTP-18564 Application(s): dialyzer
+ Related Id(s): GH-7153
+
+ Fixed a crash when formatting certain warnings that
+ contained multi-byte unicode characters.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18188 Application(s): dialyzer
+ Related Id(s): PR-5997
+
+ *** HIGHLIGHT ***
+
+ Dialyzer has a new incremental mode that be invoked by
+ giving the --incremental option when running Dialyzer.
+ This new incremental mode is likely to become the
+ default in a future release.
+
+ Incremental mode primarily differs from the previous,
+ "classic", ways of running Dialyzer, in that its model
+ is optimised around the common use case of regularly
+ analysing a single codebase, tweaking the code,
+ analysing it again, and so on, without explicit
+ reference to the building and checking of a PLT.
+
+ In this mode the PLT file acts much more like a true
+ cache, where users provide a codebase and a set of
+ files they care about, and Dialyzer does the legwork in
+ terms of deciding how to most efficiently report all of
+ the relevant warnings given the cached results it may
+ already have in the PLT (and if a PLT doesn't exist,
+ incremental mode will create one).
+
+
+ OTP-18238 Application(s): dialyzer
+ Related Id(s): PR-6271
+
+ Dialyzer now produces clearer error messages for
+ contract violations.
+
+
+ OTP-18282 Application(s): dialyzer
+ Related Id(s): GH-6132, PR-6335
+
+ The name of a built-in type can now be reused as the
+ name of type locally. That is useful when an OTP
+ release introduces a new built-in type; having the
+ possibility to redefine built-in types locally can make
+ it easier to maintain code that works in multiple OTP
+ releases.
+
+
+ OTP-18310 Application(s): dialyzer
+
+ There is new option -no_spec to ignore all specs. It is
+ useful for debugging when one suspects that some specs
+ could be incorrect.
+
+
+ OTP-18342 Application(s): dialyzer
+ Related Id(s): GH-6117, PR-6654
+
+ Dialyzer's overloaded domain warning is now disabled by
+ default, and can be enabled with the flag
+ -Woverlapping_contract.
+
+ Dialyzer used to issue a warning for overloaded domains
+ stating "such contracts are currently unsupported and
+ are simply ignored".
+
+ These contracts are not "ignored" but rather, Dialyzer
+ takes the union of the overloaded domains. This means
+ that we lose the dependency from each corresponding
+ input to output type. Because of this, the warning is
+ really about not being able to establish a dependency
+ between the input and output types of each respective
+ overloaded function specification.
+
+
+ OTP-18439 Application(s): dialyzer
+ Related Id(s): GH-5695, GH-6942, PR-6822
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Dialyzer has enabled (by default) warnings about
+ unknown types and functions.
+
+ Prior to this change, Dialyzer had warnings about
+ unknown types and functions disabled (by default).
+
+ This default value has been overwritten; Dialyzer now
+ warns about unknown types and functions (as requested
+ by the community in GH-5695). Thus, the following two
+ examples are equivalent, i.e., passing the -Wunknown
+ function is enabled by default:
+
+ dialyzer moduler.erl -Wunknown -Wmissing_return
+
+ dialyzer moduler.erl -Wmissing_return
+
+ Dialyzer has a new flag, -Wno_unknown. Its purpose is
+ to suppress warnings about unknown functions and types.
+
+ Users who wish to suppress these warnings can invoke
+ Dialyzer using this flag. Example: dialyzer module.erl
+ -Wno_unknown
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ OTP-18558 Application(s): dialyzer, stdlib
+ Related Id(s): PR-6852
+
+ Added the argparse module for simplified argument
+ handling in escripts and similar.
+
+
+ Full runtime dependencies of dialyzer-5.1: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-5.0, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- diameter-2.3 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of diameter-2.3: erts-10.0, kernel-3.2,
+ ssl-9.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- erl_docgen-1.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18338 Application(s): erl_docgen
+ Related Id(s): PR-6408
+
+ New XML tag <change>. Like a <note> box, but with a
+ different (steel blue) color and label. Intended to
+ contain talk about semantic differences between OTP
+ releases.
+
+
+ OTP-18501 Application(s): erl_docgen
+ Related Id(s): PR-6987
+
+ Add "since" attribute to XML taglist/tag elements to
+ document OTP version when a particular option/feature
+ was introduced. The version is shown out in the right
+ margin, similar to "since" versions for functions.
+
+
+ Full runtime dependencies of erl_docgen-1.5: edoc-1.0, erts-11.0,
+ kernel-8.0, stdlib-3.15, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.4 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ --- Known Bugs and Problems ---
+
+ OTP-16607 Application(s): erl_interface
+ Related Id(s): OTP-16608
+
+ The ei API for decoding/encoding terms is not fully
+ 64-bit compatible since terms that have a
+ representation on the external term format larger than
+ 2 GB cannot be handled.
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.0 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18016 Application(s): erts
+
+ If a local fun was called while reloading the *exact
+ same* module that defined said fun, there was a small
+ window in which the call would land in code that was
+ yet to be fully loaded.
+
+
+ OTP-18248 Application(s): erts, kernel
+ Related Id(s): GH-6085, PR-6227
+
+ Fix the TLS distribution to work when starting Erlang
+ in embedded mode and a connection is done before kernel
+ is fully started.
+
+
+ OTP-18271 Application(s): erts, kernel
+ Related Id(s): PR-6279
+
+ erl -remsh has been improved to provide better error
+ reasons and work when using a shell without terminal
+ support (that is an "oldshell").
+
+
+ OTP-18274 Application(s): erts
+ Related Id(s): PR-6048
+
+ Fix so that -fno-omit-frame-pointer is applied to all
+ of the Erlang VM when using the JIT so that tools, such
+ as perf, can crawl the process stacks.
+
+
+ OTP-18277 Application(s): erts
+ Related Id(s): PR-6306
+
+ Compilation server now support unicode paths in
+ compilation server for filesystems that are encoded
+ with unicode.
+
+
+ OTP-18498 Application(s): erts
+
+ *** HIGHLIGHT ***
+
+ Reintroduced the optimization that turned anonymous
+ functions without free variables into literals
+ (OTP-15195). This optimization was lost during
+ refactoring in OTP 24.
+
+ Alongside this fix, we plan to remove the "fun creator
+ pid" feature in OTP 27. See Upcoming Potential
+ Incompatibilities for more details.
+
+
+ OTP-18561 Application(s): erts
+
+ Fixed a crash during tracing on certain platforms that
+ cannot use the machine stack for Erlang code (mainly
+ OpenBSD and Linux with musl).
+
+
+ --- Improvements and New Features ---
+
+ OTP-17771 Application(s): erts
+ Related Id(s): GH-5325, PR-6370
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The enif_set_option() function has been introduced into
+ the NIF API. It can be used in order to set the
+ ERL_NIF_OPT_DELAY_HALT and/or ERL_NIF_OPT_ON_HALT
+ options with which one can synchronize halt of the
+ runtime system with flushing enabled and execution of
+ NIFs. Halt of the runtime system without flushing
+ enabled, now terminates the runtime system without
+ execution of atexit/on_exit handlers that may have been
+ installed into the runtime system which might be
+ considered a potential incompatibility.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The TTY/terminal subsystem has been rewritten by moving
+ more code to Erlang from the old linked-in driver and
+ implementing all the I/O primitives needed in a NIF
+ instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+ -- Standard I/O now always defaults to unicode mode if
+ supported. Previously the default was latin1 if the
+ runtime system had been started with -oldshell or
+ -noshell (for example in an escript). To send raw bytes
+ over standard out, one now explicitly has to specify
+ io:setopts(standard_io, [{encoding, latin1}]).
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ *** HIGHLIGHT ***
+
+ Add support for socket on Windows.
+
+ -- Pre release status.
+
+ -- Error codes not finalized.
+
+ -- No explicit support for Windows specific options
+ (socket options, flags for read and write).
+
+ -- New async api for Windows (completion). See the
+ Asynchronous calls chapter in the (Socket Usage) Users
+ Guide.
+
+ -- To ensure platform independence, gen_tcp and gen_udp
+ is *intended* to be used (not yet updated).
+
+
+ OTP-18053 Application(s): erts, otp
+ Related Id(s): PR-6101
+
+ Updated configure cache for Windows. This makes
+ configure run faster on Windows as many more checks are
+ cached.
+
+
+ OTP-18126 Application(s): compiler, erts
+ Related Id(s): PR-6033
+
+ Optimized record updates.
+
+
+ OTP-18131 Application(s): erts
+
+ Optimized internal hash routines.
+
+
+ OTP-18135 Application(s): erts
+ Related Id(s): GH-4965, PR-6046
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced when OTP 25 was released, multi time warp
+ mode is now enabled by default. This assumes that all
+ code executing on the system is time warp safe.
+
+ If you have old code in the system that is not time
+ warp safe, you now explicitly need to start the system
+ in no time warp mode (or singe time warp mode if it is
+ partially time warp safe) in order to avoid problems.
+ When starting the system in no time warp mode, the
+ system behaves as it did prior to the introduction of
+ the extended time functionality introduced in OTP 18.
+
+ If you have code that is not time warp safe, you are
+ strongly encouraged to change this so that you can use
+ multi time warp mode. Compared to no time warp mode,
+ multi time warp mode improves scalability and
+ performance as well as accuracy and precision of time
+ measurements.
+
+
+ OTP-18137 Application(s): compiler, erts
+ Related Id(s): PR-6259, PR-6404, PR-6576, PR-6804
+
+ *** HIGHLIGHT ***
+
+ There are several new optimization for binary syntax in
+ the JIT:
+
+ -- Creation and matching of binaries with segments of
+ fixed sizes have been optimized.
+
+ -- Creation and matching of UTF-8 segments have been
+ optimized.
+
+ -- Appending to binaries has been optimized.
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18141 Application(s): erts
+ Related Id(s): OTP-18140, PR-6073
+
+ Optimization of process aliases made possible now that
+ support for version 4 node container types in the
+ external term format is mandatory.
+
+
+ OTP-18185 Application(s): compiler, erts
+ Related Id(s): GH-6139
+
+ *** HIGHLIGHT ***
+
+ The compiler and JIT now generate better code for
+ creation of small maps where all keys are literals
+ known at compile time.
+
+
+ OTP-18227 Application(s): erts
+ Related Id(s): PR-6254
+
+ When erl -eval fails to execute a command, an error
+ description is printed to standard_error.
+
+
+ OTP-18334 Application(s): erts
+ Related Id(s): PR-6434
+
+ *** HIGHLIGHT ***
+
+ Support for UTF-8 atoms and strings in the NIF
+ interface including new functions enif_make_new_atom,
+ enif_make_new_atom_len and enif_get_string_length.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18360 Application(s): erts
+ Related Id(s): PR-6497
+
+ erlang:display/1 will now print large maps in a more
+ readable way (similar to how small maps are printed).
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18369 Application(s): erts
+
+ Fail enif_init_resource_type and friends by returning
+ NULL if not called during load/upgrade. Old behavior
+ was undefined.
+
+
+ OTP-18410 Application(s): erts
+ Related Id(s): GH-5889, PR-6345
+
+ New option include_shared_binaries for the
+ max_heap_size process limit. If set to true, large
+ binaries (> 64 bytes), which may be referred by several
+ processes, are included in the memory sum compared
+ against the max_heap_size limit.
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ *** HIGHLIGHT ***
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18424 Application(s): erts
+ Related Id(s): PR-6716
+
+ Reduced memory usage of file:read_file_info/1,2
+
+
+ OTP-18425 Application(s): erts
+ Related Id(s): GH-5333, PR-6628
+
+ Add new function current_stacktrace for trace match
+ specifications used by erlang:trace_pattern/3.
+
+ This new option puts the current stacktrace of the
+ caller into the trace message sent to the trace
+ receiver.
+
+
+ OTP-18435 Application(s): erts
+ Related Id(s): PR-6827
+
+ *** HIGHLIGHT ***
+
+ The amount of significant bits in node local process
+ identifiers and port identifiers has been extended from
+ 28 bits to 60 bits on 64-bit runtime systems. This
+ makes these identifiers large enough to in practice
+ never having to be reused during the life time of a
+ node.
+
+
+ OTP-18440 Application(s): erts
+ Related Id(s): PR-6351
+
+ *** HIGHLIGHT ***
+
+ New trace feature call_memory. Similar to call_time
+ tracing, but instead of measure accumulated time in
+ traced functions it measures accumulated heap space
+ consumed by traced functions. It can be used to compare
+ how much different functions are contributing to
+ garbage collection being triggered.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18477 Application(s): erts
+ Related Id(s): PR-7006
+
+ Introduced the local option of term_to_binary/2 and
+ term_to_iovec/2.
+
+
+ OTP-18483 Application(s): erts
+ Related Id(s): PR-6888
+
+ Document the commonly used practice to create and store
+ static atoms at NIF load time in callbacks load or
+ upgrade.
+
+
+ OTP-18493 Application(s): erts
+ Related Id(s): PR-6272
+
+ Optimize ets:lookup_element for uncompressed tables by
+ using a more efficient method to copy the term from ETS
+ to the heap of the calling process.
+
+
+ OTP-18505 Application(s): erts
+ Related Id(s): PR-6991
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The default encoding of atoms by term_to_binary and
+ term_to_iovec have changed from Latin1 to UTF-8. The
+ old encoding can still be obtained with options
+ {minor_version, 1}.
+
+ Apart from encoding code points between 128 and 255
+ with two bytes (UTF-8) instead of one, most atoms will
+ occupy one less byte as the length field use only one
+ byte instead of two if possible.
+
+
+ OTP-18517 Application(s): erts
+
+ The version of zlib included in the Erlang/OTP source
+ code is now 1.2.13.
+
+
+ OTP-18520 Application(s): erts
+ Related Id(s): GH-6455
+
+ gen_tcp:send/*, gen_udp:send/* and gen_sctp:send/* have
+ been optimized to use the infamous receive reference
+ optimization, so now sending should not have bad
+ performance when the calling process has a large
+ message queue.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ OTP-18523 Application(s): erts
+ Related Id(s): PR-7004
+
+ Optimize maps:merge/2 memory consumption for small maps
+ (<33 keys) by reusing key tuples or entire maps if the
+ result map has the same number of keys as any of the
+ argument maps.
+
+
+ OTP-18524 Application(s): erts
+ Related Id(s): OTP-18523, PR-7004
+
+ Optimize maps:merge/2 memory consumption further for
+ small maps by mutating 2nd map to use literal key tuple
+ of 1st map if both have the same keys.
+
+
+ OTP-18526 Application(s): erts
+ Related Id(s): GH-7045
+
+ ceil/1, floor/1, is_bitstring/1, is_boolean/1,
+ is_function/2, and tuple_size/1 can now be used in
+ match specifications.
+
+
+ OTP-18540 Application(s): erts, kernel
+ Related Id(s): PR-6900
+
+ Allow IPv6 addresses as host in http packets decoded by
+ erlang:decode_packet/3 and gen_tcp packet option. The
+ IPv6 address should be enclosed within [] according to
+ RFC2732.
+
+
+ OTP-18549 Application(s): erts, runtime_tools
+ Related Id(s): PR-7105
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Removed the experimental erts_alloc_config module. It
+ no longer produced good configurations and cannot be
+ fixed in a reasonably backwards compatible manner. It
+ has since OTP 25 been deprecated and scheduled for
+ removal in OTP 26.
+
+
+ OTP-18552 Application(s): erts
+ Related Id(s): PR-6973
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ ERTS internal thread names have been changed. All
+ threads created by ERTS now have a prefix erts_
+ followed by a type name potentially followed by an
+ integer index. For example, normal schedulers are now
+ named erts_sched_<IX>, dirty CPU schedulers
+ erts_dcpus_<IX>, and dirty IO schedulers
+ erts_dios_<IX>. NIF and driver thread names are
+ truncated at 15 characters regardless of whether the
+ underlying platform support more characters or not.
+
+
+ OTP-18569 Application(s): erts
+
+ Further robustify implementation of large maps (> 32
+ keys). Keys that happen to have same internal 32-bit
+ hash values are now put in collision nodes which are
+ traversed with linear search. This removes the demand
+ for the internal hash function when salted to
+ eventually produce different hashes for all possible
+ pairs of unequal terms.
+
+
+ OTP-18574 Application(s): compiler, erts
+
+ In Erlang/OTP 27, 0.0 will no longer be considered to
+ be exactly equal to -0.0. See Upcoming Potential
+ Incompatibilities.
+
+
+ Full runtime dependencies of erts-14.0: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- et-1.7 ----------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ Full runtime dependencies of et-1.7: erts-9.0, kernel-5.3,
+ runtime_tools-1.10, stdlib-3.4, wx-1.2
+
+
+ ---------------------------------------------------------------------
+ --- ftp-1.2 ---------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18359 Application(s): ftp
+ Related Id(s): PR-6545
+
+ Fixes the documentation for the ftp module and updates
+ the typing of ftp functions that return errors.
+
+ The documentation has been improved and the types of
+ the functions are now read from source code, instead of
+ being hard-coded in XML.
+
+ Functions returning errors of the form {error, Reason
+ :: 'ehost' | ...} are now similar to other modules,
+ i.e., {error, Reason :: term()}. If one wants to
+ understand the error, one must call the function
+ ftp:formaterror({error, Reason}).
+
+
+ --- Improvements and New Features ---
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18541 Application(s): ftp
+
+ Remove deprecated functions in OTP-26
+
+
+ Full runtime dependencies of ftp-1.2: erts-7.0, kernel-6.0,
+ runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- inets-9.0 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18476 Application(s): inets
+ Related Id(s): GH-6380
+
+ Correct timing related pipelining/keepalive queue bug,
+ that could result in unexpected "socket_remotly_closed"
+ errors.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18167 Application(s): inets
+
+ By default ssl connections will use options from
+ ssl_default_options(true)
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ OTP-18530 Application(s): inets
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ IP display string will now always be in lower case,
+ effects ipv6 addresses.
+
+
+ OTP-18536 Application(s): inets
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Removed deprecated functions
+
+
+ OTP-18544 Application(s): inets
+ Related Id(s): GH-5276
+
+ Update the code in the inets example directory to
+ reflect the latest implementation
+
+
+ Full runtime dependencies of inets-9.0: erts-14.0, kernel-9.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-5.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- jinterface-1.14 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18210 Application(s): kernel
+ Related Id(s): GH-5877, PR-5878
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Fixed a bug where duplicate keys were allowed in the
+ .app file of an application. Duplicate keys are now
+ rejected and the application will not start if they
+ exist.
+
+
+ OTP-18225 Application(s): kernel
+ Related Id(s): PR-6036
+
+ Fix inconsistent handling in logger_formatter of the
+ branched values in conditional branches. For example
+ using msg in a conditional branch would not be
+ formatted as it should before this fix.
+
+
+ OTP-18226 Application(s): kernel
+ Related Id(s): PR-6253
+
+ Fix the logger_std_h handler to log to standard_error
+ if logging to standard_io fails for any reason.
+
+
+ OTP-18248 Application(s): erts, kernel
+ Related Id(s): GH-6085, PR-6227
+
+ Fix the TLS distribution to work when starting Erlang
+ in embedded mode and a connection is done before kernel
+ is fully started.
+
+
+ OTP-18271 Application(s): erts, kernel
+ Related Id(s): PR-6279
+
+ erl -remsh has been improved to provide better error
+ reasons and work when using a shell without terminal
+ support (that is an "oldshell").
+
+
+ OTP-18286 Application(s): kernel
+ Related Id(s): PR-5955
+
+ Fix logging of log events generated before kernel is
+ started to not fail if the code for formatting those
+ log messaged have not yet been loaded.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18486 Application(s): kernel, stdlib
+ Related Id(s): PR-6881
+
+ Fixed a bug where file:read(standard_io, ...)
+ unexpectedly returned eof in binary mode.
+
+
+ OTP-18528 Application(s): kernel
+ Related Id(s): PR-7009
+
+ Return type for seq_trace:get_token/1 fixed.
+
+
+ OTP-18543 Application(s): kernel
+ Related Id(s): GH-6353
+
+ Looking up, connecting to and sending to a host with an
+ empty name is now handled by trying to look up the
+ address of the root domain, which fails. Previously
+ some of these operations caused an internal exception,
+ which contradicted type specifications.
+
+
+ OTP-18547 Application(s): kernel
+ Related Id(s): PR-7092
+
+ Replaced a regex with a special case handling of ANSI
+ Select Graphic Rendition escape characters, to speed up
+ io output that make use of these escape sequences.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The TTY/terminal subsystem has been rewritten by moving
+ more code to Erlang from the old linked-in driver and
+ implementing all the I/O primitives needed in a NIF
+ instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+ -- Standard I/O now always defaults to unicode mode if
+ supported. Previously the default was latin1 if the
+ runtime system had been started with -oldshell or
+ -noshell (for example in an escript). To send raw bytes
+ over standard out, one now explicitly has to specify
+ io:setopts(standard_io, [{encoding, latin1}]).
+
+
+ OTP-18029 Application(s): erts, kernel
+
+ *** HIGHLIGHT ***
+
+ Add support for socket on Windows.
+
+ -- Pre release status.
+
+ -- Error codes not finalized.
+
+ -- No explicit support for Windows specific options
+ (socket options, flags for read and write).
+
+ -- New async api for Windows (completion). See the
+ Asynchronous calls chapter in the (Socket Usage) Users
+ Guide.
+
+ -- To ensure platform independence, gen_tcp and gen_udp
+ is *intended* to be used (not yet updated).
+
+
+ OTP-18140 Application(s): erl_interface, erts, jinterface,
+ kernel
+ Related Id(s): PR-6072
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ As announced since the release of OTP 24, support for:
+
+ -- version 4 node container types in the external term
+ format are now mandatory. That is, references
+ supporting up to 5 32-bit integer identifiers, and
+ process and port identifiers with support for 64-bit
+ data storage. The distribution flag DFLAG_V4_NC is
+ therefor now also mandatory. OTP has since OTP 24
+ supported this. Also note that the external format
+ produced by term_to_binary() and term_to_iovec() will
+ unconditionally produce pids, ports, and references
+ supporting this larger format.
+
+ -- the new link protocol introduced in OTP 23.3 is now
+ mandatory. The distribution flag DFLAG_UNLINK_ID is
+ therefor now also mandatory.
+
+ Due to the above, OTP 26 nodes will refuse to connect
+ to OTP nodes from releases prior to OTP 24.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ *** HIGHLIGHT ***
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18261 Application(s): kernel
+ Related Id(s): PR-5924
+
+ Add code:get_doc/2 which adds support to fetch
+ documentation skeletons of functions using debug_info
+ chunks instead of eep48 doc chunks.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18305 Application(s): kernel
+ Related Id(s): PR-5831
+
+ gen_server optimized by caching callback functions
+
+
+ OTP-18327 Application(s): kernel
+ Related Id(s): PR-6433
+
+ Prepare the pg communication protocol for upgrade. The
+ plan is for OTP-28 nodes to be able to use an upgraded
+ pg protocol while still being able to talk with OTP 26
+ nodes.
+
+
+ OTP-18331 Application(s): kernel
+ Related Id(s): ERIERL-870
+
+ New disk_log log type rotate, where the log files are
+ compressed upon rotation.
+
+
+ OTP-18344 Application(s): erts, kernel
+ Related Id(s): GH-6461, OTP-18324, PR-6481, PR-6522,
+ PR-6944
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The following inet:setopts/2 options have been
+ introduced:
+
+ -- reuseport -- Reuse of local port. Load balancing may
+ or may not be provided depending on underlying OS.
+
+ -- reuseport_lb -- Reuse of local port. Load balancing
+ provided.
+
+ -- exclusiveaddruse -- Exclusive address/port usage on
+ Windows. This socket option is Windows specific and
+ will silently be ignored on other systems.
+
+ The behavior of setting reuseaddr on Windows have
+ changed in a *backwards incompatible* way. The
+ underlying SO_REUSEADDR socket option is now only set
+ if both the reusaddr and the reuseport inet options
+ have been set. This since the underlying SO_REUSEADDR
+ socket option on Windows behaves similar to how BSD
+ behaves if both the underlying socket options
+ SO_REUSEADDR and SO_REUSEPORT have been set. See the
+ documentation of the reuseaddr option for more
+ information.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18419 Application(s): kernel
+
+ The function file:pid2name/1 is deprecated and will be
+ removed in Erlang/OTP 27.
+
+
+ OTP-18442 Application(s): kernel
+ Related Id(s): GH-6606, PR-6786
+
+ The modules Erlang DNS resolver inet_res and helper
+ modules have been updated for RFC6891; to handle OPT RR
+ with DNSSEC OK (DO) bit.
+
+
+ OTP-18444 Application(s): kernel
+ Related Id(s): PR-6035
+
+ Introduced application:get_supervisor/1.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18448 Application(s): kernel
+ Related Id(s): PR-6736
+
+ Reduce contention on the code_server by doing the code
+ preparation on the client.
+
+
+ OTP-18451 Application(s): kernel
+ Related Id(s): PR-6737
+
+ Added a mode to ensure_all_loaded, to start children
+ application and their dependencies concurrently.
+
+
+ OTP-18452 Application(s): kernel
+ Related Id(s): PR-6729
+
+ Cache OTP boot code paths, to limit how many folders
+ that are being accessed during a module lookup. Can be
+ disabled with -cache_boot_path false. OTP boot code
+ paths consists of ERL_LIB environment variables. The
+ various otp/*/ebin folders. And the {path, ...} clauses
+ in the init script.
+
+
+ OTP-18456 Application(s): kernel, ssl
+
+ Erlang distribution code in Kernel and SSL has been
+ refactored a bit to facilitate debugging and
+ re-usability, which shouldn't have any noticeable
+ effects on behaviour or performance.
+
+
+ OTP-18466 Application(s): kernel
+ Related Id(s): PR-6832
+
+ Add cache attribute to code path apis.
+
+ Added an optional cache/nocache argument to all
+ code:add_path*, code:set_path*, and code:replace_path*
+ functions. These functions will then avoid doing
+ file-accesses if they are cached. Cache can be cleared
+ with code:clear_cache/0. Added code:del_paths/1 to make
+ it easier to clear multiple paths.
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18484 Application(s): kernel
+ Related Id(s): PR-6844
+
+ Improvements to code:ensure_modules_loaded/1:
+ Previously it would prepare modules and then abandon
+ references to said modules if they had on_load
+ callbacks. This pull request makes it so they keep the
+ references around and then serially load them without
+ having to fetch the object code and prepare them again.
+
+
+ OTP-18510 Application(s): kernel
+ Related Id(s): GH-6098, PR-6982
+
+ The internal DNS resolver has been updated to handle
+ DNS LOC RR:s (RFC 1876). This is an undocumented
+ module, although still used by power users. See the
+ source code.
+
+
+ OTP-18521 Application(s): kernel
+ Related Id(s): PR-7025
+
+ Reduced memory consumption in global when informing
+ other nodes about lost connections.
+
+
+ OTP-18533 Application(s): kernel
+ Related Id(s): PR-7061
+
+ The net_kernel, global, and global_group servers now
+ have fully asynchronous distributed signaling enabled
+ all the time which prevents them from ever getting
+ blocked on send of distributed signals.
+
+ Documentation about blocking distributed signals has
+ also been improved.
+
+
+ OTP-18540 Application(s): erts, kernel
+ Related Id(s): PR-6900
+
+ Allow IPv6 addresses as host in http packets decoded by
+ erlang:decode_packet/3 and gen_tcp packet option. The
+ IPv6 address should be enclosed within [] according to
+ RFC2732.
+
+
+ OTP-18542 Application(s): kernel
+
+ Remove deprecated functions in OTP-26
+
+
+ OTP-18551 Application(s): kernel
+ Related Id(s): PR-7106
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Removed code:is_module_native/1 since HiPE has been
+ removed. It has since OTP 24 been deprecated and
+ scheduled for removal in OTP 26.
+
+ Removed code:rehash/0 since the code path feature no
+ longer is present. It has since OTP 19 been deprecated
+ and has since OTP 24 been scheduled for removal in OTP
+ 26.
+
+
+ OTP-18575 Application(s): kernel, stdlib
+ Related Id(s): PR-7169
+
+ Added support for multiple line expressions and
+ navigation in the shell. Added new keybindings:
+
+ -- navigate up (ctrl+up)/(alt+up)
+
+ -- navigate down (ctrl+down)/(alt+down)
+
+ -- insert newline in middle of line (alt+enter)
+
+ -- navigate top (alt+<)/(alt+shift+up)
+
+ -- navigate bottom (alt+>)/(alt+shift+down)
+
+ -- clear current expression (alt+c)
+
+ -- cancel search (alt+c)
+
+ -- opening editor on mac (option+o)/(alt+o)
+
+ Modifies the prompt for new lines to make it clearer
+ that the prompt has entered multi-line mode. Supports
+ terminal with small window size, recommend not go lower
+ than 7 rows and 40 columns. Modifies the search prompt
+ to support multi-line statements. Redraw the prompt
+ after continuing from JCL menu.
+
+
+ Full runtime dependencies of kernel-9.0: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- megaco-4.4.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18538 Application(s): megaco, otp
+ Related Id(s): GH-7031, PR-7078
+
+ Removed configure option --enable-sanitizers. It was
+ untested and broken. Address sanitizer for the emulator
+ has better support by the asan build target.
+
+
+ Full runtime dependencies of megaco-4.4.4: asn1-3.0, debugger-4.0,
+ erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.22 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18309 Application(s): mnesia
+ Related Id(s): PR-6377
+
+ Added debug statistics for active transactions.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of mnesia-4.22: erts-9.0, kernel-5.3,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- observer-2.15 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18430 Application(s): observer
+ Related Id(s): PR-6397
+
+ Added start/1, start_and_wait functions/1|2 functions.
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ Full runtime dependencies of observer-2.15: erts-14.0, et-1.5,
+ kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- odbc-2.14.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18539 Application(s): odbc
+
+ Allow larger column sizes than 8001 in case DB supports
+ it.
+
+
+ Full runtime dependencies of odbc-2.14.1: erts-6.0, kernel-3.0,
+ stdlib-2.0
+
+
+ ---------------------------------------------------------------------
+ --- os_mon-2.9 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18246 Application(s): os_mon
+ Related Id(s): GH-6156, PR-6284
+
+ Fix internal os_mon_sysinfo:get_disk_info/1 function to
+ not crash when run on Windows with multiple drives.
+
+
+ OTP-18546 Application(s): os_mon
+ Related Id(s): GH-7070, PR-7071
+
+ Fixed a memory leak when calling cpu_sup:util/0,1 on
+ FreeBSD.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18303 Application(s): os_mon
+ Related Id(s): PR-6384
+
+ The disksup:get_disk_info/0 and disksup:get_disk_info/1
+ functions have been introduced. These can be used in
+ order to immediately fetch information about current
+ disk usage.
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18566 Application(s): os_mon
+ Related Id(s): PR-7080
+
+ Support for cpu_sup:util() on OpenBSD.
+
+
+ Full runtime dependencies of os_mon-2.9: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- parsetools-2.5 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18491 Application(s): parsetools
+ Related Id(s): PR-6882
+
+ *** HIGHLIGHT ***
+
+ Leex has been extended with optional column number
+ support.
+
+
+ Full runtime dependencies of parsetools-2.5: erts-6.0, kernel-3.0,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.14 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ Full runtime dependencies of public_key-1.14: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- reltool-1.0 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18230 Application(s): reltool
+ Related Id(s): PR-5936
+
+ Add possibility to strip specific chunks from beam
+ files included in a release. Before this change it was
+ only possible to strip all chunks from the beam files.
+
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18488 Application(s): reltool
+ Related Id(s): PR-6836
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Support for the experimental code archives feature has
+ been removed from reltool.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of reltool-1.0: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0, stdlib-5.0, tools-2.6.14, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- runtime_tools-2.0 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18499 Application(s): runtime_tools
+ Related Id(s): PR-6946
+
+ Fixed the type specification for
+ instrument:carriers/0,1
+
+
+ --- Improvements and New Features ---
+
+ OTP-18211 Application(s): runtime_tools
+ Related Id(s): PR-6143
+
+ Add dbg:tracer(file, Filename) as a convenient way to
+ trace to a file in clean text.
+
+
+ OTP-18447 Application(s): asn1, crypto, erts, kernel,
+ public_key, runtime_tools
+
+ Handling of on_load modules during boot has been
+ improved by adding an extra step in the boot order for
+ embedded mode that runs all on_load handlers, instead
+ of relying on explicit invocation of them, later, when
+ the kernel supervision tree starts.
+
+ This is mostly a code improvement and OTP internal
+ simplification to avoid future bugs and to simplify
+ code maintenance.
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18487 Application(s): runtime_tools, tools
+ Related Id(s): PR-6829
+
+ The instrument module has been moved from tools to
+ runtime_tools.
+
+
+ OTP-18549 Application(s): erts, runtime_tools
+ Related Id(s): PR-7105
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Removed the experimental erts_alloc_config module. It
+ no longer produced good configurations and cannot be
+ fixed in a reasonably backwards compatible manner. It
+ has since OTP 25 been deprecated and scheduled for
+ removal in OTP 26.
+
+
+ Full runtime dependencies of runtime_tools-2.0: erts-11.0,
+ kernel-8.1, mnesia-4.12, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- sasl-4.2.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18300 Application(s): sasl
+ Related Id(s): PR-6389
+
+ Improved error message from systools:make_script, when
+ .app parameters contain duplicates. The parameters that
+ will be checked are modules, applications and
+ registered.
+
+
+ Full runtime dependencies of sasl-4.2.1: erts-10.2, kernel-6.0,
+ stdlib-4.0, tools-2.6.14
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.14 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of snmp-5.14: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.0 ---------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18231 Application(s): ssh
+ Related Id(s): OTP-17932, PR-6144
+
+ The ssh_cli has been updated to work with the changes
+ introduced in the new Erlang shell implementation.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of ssh-5.0: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.0 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-14771 Application(s): ssl
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Remove less that 256 bit ECC from default supported ECC
+ pre TLS-1.3
+
+
+ OTP-15903 Application(s): ssl
+
+ *** HIGHLIGHT ***
+
+ Improved error checking and handling of ssl options.
+
+
+ OTP-18168 Application(s): ssl
+ Related Id(s): GH-6014, PR-6019
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change, stateless tickets generated by server
+ with anti_replay option enabled can be used for
+ creating ClientHello throughout ticket lifetime.
+ Without this change, usability was limited to
+ WindowSize number of seconds configured for anti_replay
+ option.
+
+
+ OTP-18235 Application(s): kernel, ssl
+ Related Id(s): PR-5840, PR-6104
+
+ *** HIGHLIGHT ***
+
+ Support for Kernel TLS (kTLS), has been added to the
+ SSL application, for TLS distribution (-proto_dist
+ inet_tls), the SSL option {ktls, true}. Using this for
+ general SSL sockets is uncomfortable, undocumented and
+ not recommended since it requires very platform
+ dependent raw options.
+
+ This, for now, only works for some not too old Linux
+ distributions. Roughly, a kernel 5.2.0 or later with
+ support for UserLand Protocols and the kernel module
+ tls is required.
+
+
+ OTP-18253 Application(s): ssl
+
+ With this change, TLS 1.3 server can be configured to
+ include client certificate in session ticket.
+
+
+ OTP-18254 Application(s): ssl
+ Related Id(s): PR-5982
+
+ With this change, it is possible to configure
+ encryption seed to be used with TLS1.3 stateless
+ tickets. This enables using tickets on different server
+ instances.
+
+
+ OTP-18312 Application(s): ssl
+
+ Debugging enhancements.
+
+
+ OTP-18335 Application(s): ssl
+
+ With this change, maybe keyword atom is not used as
+ function name in ssl code.
+
+
+ OTP-18405 Application(s): crypto, diameter, kernel, ssl
+ Related Id(s): GH-6672, PR-6700, PR-6702, PR-6768,
+ PR-6769, PR-6812, PR-6814
+
+ Replace size/1 with either tuple_size/1 or byte_size/1
+
+ The size/1 BIF is not optimized by the JIT, and its use
+ can result in worse types for Dialyzer.
+
+ When one knows that the value being tested must be a
+ tuple, tuple_size/1 should always be preferred.
+
+ When one knows that the value being tested must be a
+ binary, byte_size/1 should be preferred. However,
+ byte_size/1 also accepts a bitstring (rounding up size
+ to a whole number of bytes), so one must make sure that
+ the call to byte_size/ is preceded by a call to
+ is_binary/1 to ensure that bitstrings are rejected.
+ Note that the compiler removes redundant calls to
+ is_binary/1, so if one is not sure whether previous
+ code had made sure that the argument is a binary, it
+ does not harm to add an is_binary/1 test immediately
+ before the call to byte_size/1.
+
+
+ OTP-18438 Application(s): ssl
+ Related Id(s): GH-6679
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ For security reasons remove support for SHA1 and DSA
+ algorithms from default values.
+
+
+ OTP-18453 Application(s): ssl
+
+ Mitigate memory usage from large certificate chains by
+ lowering the maximum handshake size. This should not
+ effect the common cases, if needed it can be configured
+ to a higher value.
+
+
+ OTP-18455 Application(s): ssl
+ Related Id(s): GH-5899
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Change the client default verify option to verify_peer.
+ Note that this makes it mandatory to also supply
+ trusted CA certificates or explicitly set verify to
+ verify_none. This also applies when using the so called
+ anonymous test cipher suites defined in TLS versions
+ pre TLS-1.3.
+
+
+ OTP-18456 Application(s): kernel, ssl
+
+ Erlang distribution code in Kernel and SSL has been
+ refactored a bit to facilitate debugging and
+ re-usability, which shouldn't have any noticeable
+ effects on behaviour or performance.
+
+
+ OTP-18459 Application(s): ssl
+
+ *** HIGHLIGHT ***
+
+ Add encoding and decoding of use_srtp hello extension
+ to facilitate for DTLS users to implement SRTP
+ functionality.
+
+
+ OTP-18465 Application(s): ssl
+ Related Id(s): GH-7065
+
+ Refactors the (ssl application to use macros for TLS
+ and DTLS versions instead of hard-coded tuple numbers.
+ This change improves the maintainability of ssl
+
+
+ OTP-18507 Application(s): ssl
+
+ If the function ssl:renegotiate/1 is called on
+ connection that is running TLS-1.3 return an error
+ instead of hanging or timing out.
+
+
+ OTP-18531 Application(s): ssl
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ If a user cancel alert with level warning is received
+ during handshake make it be handled the same regardless
+ of TLS version. If it is received in connection in
+ TLS-1.3 regard it as an error as it is inappropriate.
+
+ In TLS-1.3 all error alerts are considered FATAL
+ regardless of legacy alert type. But make sure legacy
+ type is printed in logs to not confuse users that are
+ expecting the same legacy type as sent by peer.
+
+
+ OTP-18567 Application(s): ssl
+
+ Make fail_if_no_peer_cert default true if verify_peer
+ is set on the server, otherwise the server will accept
+ the connection if verify_peer is set and the user have
+ forgot to set the fail_if_no_peer_cert and the client
+ did not send a certificate.
+
+
+ OTP-18572 Application(s): ssl
+
+ To make it easier to configure signature algorithms
+ with algorithms that are moved from the default add the
+ API function signature_algs/2 that lists possible
+ values. Also make sha224 a non default value.
+
+
+ Full runtime dependencies of ssl-11.0: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.0 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18275 Application(s): stdlib
+ Related Id(s): PR-6045
+
+ All process calls in dets have been updated to use the
+ receive queue optimizations.
+
+
+ OTP-18471 Application(s): kernel, stdlib
+ Related Id(s): GH-6339, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ proc_lib:start*/* has become synchronous when the
+ started process fails. This requires that a failing
+ process use a new function proc_lib:init_fail/2,3, or
+ exits, to indicate failure. All OTP behaviours have
+ been fixed to do this.
+
+ All these start functions now consume the 'EXIT'
+ message from a process link for all error returns.
+ Previously it was only the start_link/* functions that
+ did this, and only when the started function exited,
+ not when it used init_ack/1,2 or init_fail/2,3 to
+ create the return value.
+
+
+ OTP-18486 Application(s): kernel, stdlib
+ Related Id(s): PR-6881
+
+ Fixed a bug where file:read(standard_io, ...)
+ unexpectedly returned eof in binary mode.
+
+
+ OTP-18548 Application(s): stdlib
+ Related Id(s): PR-6967
+
+ In the shell, v(N) would fail to retrieve the command
+ if the command's return value was undefined.
+
+
+ --- Improvements and New Features ---
+
+ OTP-14835 Application(s): kernel, stdlib
+ Related Id(s): PR-5924
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell has been improved to support the
+ following features:
+
+ -- Auto-complete variables, record names, record field
+ names, map keys, function parameter types and
+ filenames.
+
+ -- Open external editor in the shell (with C-o) to edit
+ the current expression in an editor.
+
+ -- Support defining records (with types), functions and
+ function typespecs, and custom types in the shell.
+
+ -- Do not save pager commands, and input to io:getline
+ in history.
+
+
+ OTP-15597 Application(s): stdlib
+ Related Id(s): PR-5831
+
+ Gen_server now caches external functions for use in
+ handle_call, handle_cast and handle_info.
+
+
+ OTP-17932 Application(s): erts, kernel, stdlib
+ Related Id(s): GH-3150, GH-3390, GH-4225, GH-4343,
+ PR-6144
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The TTY/terminal subsystem has been rewritten by moving
+ more code to Erlang from the old linked-in driver and
+ implementing all the I/O primitives needed in a NIF
+ instead.
+
+ On Unix platforms the user should not notice a lot of
+ difference, besides better handling of unicode
+ characters and fixing of some long standing bugs.
+
+ Windows users will notice that erl.exe has the same
+ functionality as a normal Unix shell and that werl.exe
+ has been removed and replaced with a symlink to
+ erl.exe. This makes the Windows Erlang terminal
+ experience identical to that of Unix.
+
+ The re-write brings with it a number of bug fixes and
+ feature additions:
+
+ -- The TTY is now reset when Erlang exits, fixing zsh
+ to not break when terminating an Erlang session.
+
+ -- standard_error now uses the same unicode mode as
+ standard_io.
+
+ -- Hitting backspace when searching the shell history
+ with an empty search string no longer breaks the shell.
+
+ -- Tab expansion now works on remote nodes started
+ using the JCL interface.
+
+ -- It is now possible to configure the shell slogan and
+ the session slogans (that is the texts that appear when
+ you start an Erlang shell). See the kernel
+ documentation for more details.
+
+ -- Added shell:start_interactive for starting the
+ interactive shell from a non-interactive Erlang session
+ (for example an escript).
+
+ -- On Windows, when starting in detached mode the
+ standard handler are now set to nul devices instead of
+ being unset.
+
+ -- Standard I/O now always defaults to unicode mode if
+ supported. Previously the default was latin1 if the
+ runtime system had been started with -oldshell or
+ -noshell (for example in an escript). To send raw bytes
+ over standard out, one now explicitly has to specify
+ io:setopts(standard_io, [{encoding, latin1}]).
+
+
+ OTP-18159 Application(s): stdlib
+ Related Id(s): PR-6904
+
+ Added the zip:zip_get_crc32/2 function to retrieve the
+ CRC32 checksum from an opened ZIP archive.
+
+
+ OTP-18176 Application(s): stdlib
+ Related Id(s): PR-6118
+
+ Added the options post_process_args and detached to the
+ peer:start function.
+
+
+ OTP-18221 Application(s): stdlib
+ Related Id(s): PR-6197
+
+ The re:replace/3,4 functions now accept a fun as the
+ replacement argument.
+
+
+ OTP-18228 Application(s): stdlib
+ Related Id(s): GH-5639
+
+ *** HIGHLIGHT ***
+
+ The performance of the base64 module has been
+ significantly improved. For example, on an x86_64
+ system with the JIT both encode and decode are more
+ than three times faster than in Erlang/OTP 25.
+
+
+ OTP-18236 Application(s): stdlib
+ Related Id(s): PR-6256
+
+ Improved implementation of timer:apply_interval/4
+ reducing load on the timer server, and introduction of
+ the new function timer:apply_repeatedly/4.
+ timer:apply_repeatedly/4 is similar to
+ timer:apply_interval/4, but timer:apply_repeatedly/4
+ prevents parallel execution of triggered apply
+ operations which timer:apply_interval/4 does not.
+
+
+ OTP-18247 Application(s): stdlib
+ Related Id(s): PR-6280, PR-6711
+
+ The base64 module now supports encoding and decoding
+ with an alternate URL safe alphabet, and an option for
+ accepting or adding missing = padding characters.
+
+
+ OTP-18272 Application(s): stdlib
+ Related Id(s): PR-6279
+
+ Add shell:whereis/0 which can be used to locate the
+ current shell process.
+
+
+ OTP-18278 Application(s): kernel, stdlib
+ Related Id(s): PR-6260
+
+ *** HIGHLIGHT ***
+
+ The Erlang shell's auto-completion when typing tab has
+ been changed to happen after the editing current line
+ instead of before it.
+
+ This behaviour can be configured using a the
+ shell_expand_location STDLIB configuration parameter.
+
+
+ OTP-18279 Application(s): stdlib
+ Related Id(s): PR-6234
+
+ New function ets:lookup_element/4 with a Default
+ argument returned if the key did not exist in the
+ table. The old ets:lookup_element/3 raises a badarg
+ exception which can be both inconvenient and slower.
+
+
+ OTP-18285 Application(s): kernel, ssh, stdlib
+ Related Id(s): PR-6262
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Typing Ctrl+L in a shell now clears the screen and
+ redraws the current line instead of only redrawing the
+ current line. To only redraw the current line, you must
+ now type Alt+L. This brings the behaviour of Ctrl+L
+ closer to how bash and other shells work.
+
+
+ OTP-18287 Application(s): stdlib
+ Related Id(s): PR-5955
+
+ peer nodes using standard_io connections now include
+ standard error from the node in the io stream from the
+ started node.
+
+
+ OTP-18297 Application(s): compiler, stdlib
+ Related Id(s): GH-6348
+
+ *** HIGHLIGHT ***
+
+ A limitation in the binary syntax has been removed. It
+ is now possible to match binary patterns in parallel.
+ Example: <<A:8>> = <<B:4,C:4>> = Bin
+
+
+ OTP-18301 Application(s): stdlib
+ Related Id(s): PR-6350
+
+ Improve type specification of
+ unicode:characters_to_list().
+
+
+ OTP-18318 Application(s): stdlib
+ Related Id(s): PR-6347
+
+ *** HIGHLIGHT ***
+
+ In the lists module, the zip family of functions now
+ takes options to allow handling lists of different
+ lengths.
+
+
+ OTP-18337 Application(s): compiler, stdlib
+ Related Id(s): GH-6477, PR-6503
+
+ It is documented that $\^X is the ASCII code for
+ Control X, where X is an uppercase or lowercase letter.
+ However, this notation would work for any character X,
+ even then it didn't make sense.
+
+ In Erlang/OTP 26, it is now documented that the
+ following characters are also allowed to follow the \^
+ characters: @, [, \, ], ^, _, and ?. Attempt to use
+ other characters will be rejected with a compiler
+ error.
+
+ The value for $\^? is now 127 (instead of 31 as in
+ earlier releases).
+
+
+ OTP-18354 Application(s): stdlib
+ Related Id(s): PR-6297
+
+ The binary:encode_hex/2 function has been added to
+ allow the encoded hexadecimal digits to be in either
+ lower or upper case.
+
+
+ OTP-18355 Application(s): stdlib
+ Related Id(s): PR-6507
+
+ Variants of timer:tc() with user specified time unit
+ have been introduced.
+
+
+ OTP-18361 Application(s): stdlib
+ Related Id(s): PR-6536
+
+ New function math:tau/0. Returns 2*math:pi().
+
+
+ OTP-18367 Application(s): compiler, erts, stdlib
+ Related Id(s): GH-6544
+
+ *** HIGHLIGHT ***
+
+ The BIFs min/2 and max/2 are now allowed to be used in
+ guards and match specs.
+
+
+ OTP-18385 Application(s): stdlib
+ Related Id(s): PR-6698
+
+ Optimized gen_server:multi_call().
+
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18414 Application(s): erts, stdlib
+ Related Id(s): PR-6151
+
+ *** HIGHLIGHT ***
+
+ Some map operations have been optimized by changing the
+ internal sort order of atom keys. This changes the
+ (undocumented) order of how atom keys in small maps are
+ printed and returned by maps:to_list/1 and maps:next/1.
+ The new order is unpredictable and may change between
+ different invocations of the Erlang VM.
+
+ For applications where order is important, there is a
+ new function maps:iterator/2 for creating iterators
+ that return the map elements in a deterministic order.
+ There are also new modifiers k and K for the format
+ string for io:format() to support printing map elements
+ ordered.
+
+
+ OTP-18423 Application(s): stdlib
+ Related Id(s): com/erlang/backlog/issues/142,
+ https://github
+
+ Make gen_server fail "silently" with a new return value
+ for init/1.
+
+
+ OTP-18431 Application(s): compiler, stdlib
+ Related Id(s): PR-6739
+
+ *** HIGHLIGHT ***
+
+ Improved the selective receive optimization, which can
+ now be enabled for references returned from other
+ functions.
+
+ This greatly improves the performance of
+ gen_server:send_request/3, gen_server:wait_response/2,
+ and similar functions.
+
+
+ OTP-18445 Application(s): erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ It is no longer necessary to enable a feature in the
+ runtime system in order to load modules that are using
+ it. It is sufficient to enable the feature in the
+ compiler when compiling it.
+
+ That means that to use feature maybe_expr in Erlang/OTP
+ 26, it is sufficient to enable it during compilation.
+
+ In Erlang/OTP 27, feature maybe_expr will be enabled by
+ default, but it will be possible to disable it.
+
+
+ OTP-18474 Application(s): stdlib
+ Related Id(s): PR-6895
+
+ Static supervisors are very idle processes after they
+ have started so they will now be hibernated after start
+ to improve resource management.
+
+
+ OTP-18478 Application(s): common_test, compiler, dialyzer,
+ diameter, et, ftp, inets, kernel, observer,
+ runtime_tools, ssh, stdlib
+ Related Id(s): GH-6903
+
+ Deprecates dbg:stop_clear/0 because it is simply a
+ function alias to dbg:stop/0
+
+
+ OTP-18494 Application(s): stdlib
+ Related Id(s): PR-6924
+
+ Support has been added in ms_transform for the actions
+ caller_line/0, current_stacktrace/0, and
+ current_stacktrace/1.
+
+
+ OTP-18495 Application(s): stdlib
+ Related Id(s): PR-6943
+
+ *** HIGHLIGHT ***
+
+ The family of enumeration functions in module lists has
+ been extended with enumerate/3 that allows a step value
+ to be supplied.
+
+
+ OTP-18500 Application(s): stdlib
+
+ *** HIGHLIGHT ***
+
+ Update Unicode to version 15.0.0.
+
+
+ OTP-18511 Application(s): otp, stdlib
+ Related Id(s): PR-7017
+
+ The regular expression library powering the re module
+ is likely to be changed in Erlang/OTP 27. See Upcoming
+ Potential Incompatibilities.
+
+
+ OTP-18515 Application(s): stdlib
+ Related Id(s): GH-6990
+
+ Improved the performance of sets:subtract/2 when
+ subtracting a small number of elements.
+
+
+ OTP-18518 Application(s): stdlib
+ Related Id(s): GH-7015
+
+ The linter will no longer raise warnings for
+ underspecified opaque types.
+
+
+ OTP-18522 Application(s): dialyzer, erts, stdlib
+
+ *** HIGHLIGHT ***
+
+ Added the new built-in type dynamic() introduced in
+ EEP-61, improving support for gradual type checkers.
+
+
+ OTP-18537 Application(s): stdlib
+ Related Id(s): PR-7081
+
+ The by gen_statem previously used call proxy process
+ that was used for preventing late replies from reaching
+ the client at timeout or connection loss has been
+ removed. It is no longer needed since process aliases
+ take care of this, are used, and supported by all
+ Erlang nodes that an OTP 26 Erlang node can communicate
+ with.
+
+
+ OTP-18558 Application(s): dialyzer, stdlib
+ Related Id(s): PR-6852
+
+ Added the argparse module for simplified argument
+ handling in escripts and similar.
+
+
+ OTP-18575 Application(s): kernel, stdlib
+ Related Id(s): PR-7169
+
+ Added support for multiple line expressions and
+ navigation in the shell. Added new keybindings:
+
+ -- navigate up (ctrl+up)/(alt+up)
+
+ -- navigate down (ctrl+down)/(alt+down)
+
+ -- insert newline in middle of line (alt+enter)
+
+ -- navigate top (alt+<)/(alt+shift+up)
+
+ -- navigate bottom (alt+>)/(alt+shift+down)
+
+ -- clear current expression (alt+c)
+
+ -- cancel search (alt+c)
+
+ -- opening editor on mac (option+o)/(alt+o)
+
+ Modifies the prompt for new lines to make it clearer
+ that the prompt has entered multi-line mode. Supports
+ terminal with small window size, recommend not go lower
+ than 7 rows and 40 columns. Modifies the search prompt
+ to support multi-line statements. Redraw the prompt
+ after continuing from JCL menu.
+
+
+ Full runtime dependencies of stdlib-5.0: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- syntax_tools-3.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ Full runtime dependencies of syntax_tools-3.1: compiler-7.0,
+ erts-9.0, kernel-5.0, stdlib-4.0
+
+
+ ---------------------------------------------------------------------
+ --- tftp-1.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of tftp-1.1: erts-6.0, kernel-6.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- tools-3.6 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18413 Application(s): compiler, erts, stdlib, syntax_tools,
+ tools
+ Related Id(s): EEP-58, PR-6727
+
+ *** HIGHLIGHT ***
+
+ Map comprehensions as suggested in EEP 58 has now been
+ implemented.
+
+
+ OTP-18487 Application(s): runtime_tools, tools
+ Related Id(s): PR-6829
+
+ The instrument module has been moved from tools to
+ runtime_tools.
+
+
+ Full runtime dependencies of tools-3.6: compiler-5.0, erts-11.0,
+ erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.3 ----------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Improvements and New Features ---
+
+ OTP-18350 Application(s): inets, observer, os_mon, reltool, wx
+
+ Runtime dependencies have been updated.
+
+
+ OTP-18490 Application(s): diameter, inets, mnesia, reltool,
+ snmp, ssh, tftp, wx
+ Related Id(s): GH-6339, OTP-18471, PR-6843
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ The implementation has been fixed to use
+ proc_lib:init_fail/2,3 where appropriate, instead of
+ proc_lib:init_ack/1,2.
+
+
+ Full runtime dependencies of wx-2.3: erts-12.0, kernel-8.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.1.1.README.txt b/release-notes/OTP-26.1.1.README.txt
new file mode 100644
index 0000000..3918bfa
--- /dev/null
+++ b/release-notes/OTP-26.1.1.README.txt
@@ -0,0 +1,80 @@
+Patch Package: OTP 26.1.1
+Git Tag: OTP-26.1.1
+Date: 2023-09-28
+Trouble Report Id: OTP-18768, OTP-18770, OTP-18773
+Seq num: GH-7667
+System: OTP
+Release: 26
+Application: compiler-8.4.1, stdlib-5.1.1, wx-2.3.1
+Predecessor: OTP 26.1
+
+ Check out the git tag OTP-26.1.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- compiler-8.4.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.4.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18770 Application(s): compiler
+ Related Id(s): GH-7667, PR-7672
+
+ The compiler could become extremely slow for modules
+ containing huge functions.
+
+
+ Full runtime dependencies of compiler-8.4.1: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.1.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-5.1.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18773 Application(s): stdlib
+ Related Id(s): PR-7691
+
+ Garbage collect the shell process when reducing the
+ amount of saved history and results.
+
+
+ Full runtime dependencies of stdlib-5.1.1: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.3.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The wx-2.3.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18768 Application(s): wx
+ Related Id(s): PR-7670
+
+ The wx application would fail to build on macOS with
+ Xcode 15.
+
+
+ Full runtime dependencies of wx-2.3.1: erts-12.0, kernel-8.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.1.2.README.txt b/release-notes/OTP-26.1.2.README.txt
new file mode 100644
index 0000000..9de2b37
--- /dev/null
+++ b/release-notes/OTP-26.1.2.README.txt
@@ -0,0 +1,101 @@
+Patch Package: OTP 26.1.2
+Git Tag: OTP-26.1.2
+Date: 2023-10-12
+Trouble Report Id: OTP-18790, OTP-18797, OTP-18803
+Seq num: GH-7683
+System: OTP
+Release: 26
+Application: erts-14.1.1, xmerl-1.3.33
+Predecessor: OTP 26.1.1
+
+ Check out the git tag OTP-26.1.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- OTP-26.1.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18803 Application(s): otp, xmerl
+
+ The xmerl version 1.3.32 was released in OTP 26.0.1,
+ but the incorrect version number of 1.3.31.1 was used
+ for it. This incorrect version number continued to
+ appear in OTP 26.0.2, OTP 26.1, and OTP 26.1.1. The
+ actual xmerl code in these OTP versions however
+ corresponds to xmerl version 1.3.32.
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.1.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erts-14.1.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18790 Application(s): erts
+ Related Id(s): PR-7742
+
+ If the external term format encoding of an argument
+ list part of a distributed spawn operation was faulty,
+ the newly spawned remote process could misbehave. The
+ misbehavior included hanging or interpret an incoming
+ message as an argument list to use. This was very
+ unlikely to happen unless using an alternate
+ implementation of the distribution protocol which made
+ a faulty encoding of the argument list. The child
+ process will now detect this error and terminate before
+ executing the user specified code.
+
+
+ OTP-18797 Application(s): erts
+ Related Id(s): GH-7683, PR-7712
+
+ Fix bugs where if the body of a matchspec would return
+ a map with a variable ('$1', '$_' etc) as one of the
+ keys or values and the variable was not an immidiate,
+ the term would not be copied to the receiving processes
+ heap. This would later corrupt the term in the table as
+ the GC could place move markers in it, which in turn
+ would cause the VM to crash.
+
+ Bug has been present for since OTP 17.0.
+
+
+ Full runtime dependencies of erts-14.1.1: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.33 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The xmerl-1.3.33 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18803 Application(s): otp, xmerl
+
+ The xmerl version 1.3.32 was released in OTP 26.0.1,
+ but the incorrect version number of 1.3.31.1 was used
+ for it. This incorrect version number continued to
+ appear in OTP 26.0.2, OTP 26.1, and OTP 26.1.1. The
+ actual xmerl code in these OTP versions however
+ corresponds to xmerl version 1.3.32.
+
+
+ Full runtime dependencies of xmerl-1.3.33: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.1.README.txt b/release-notes/OTP-26.1.README.txt
new file mode 100644
index 0000000..fea80a6
--- /dev/null
+++ b/release-notes/OTP-26.1.README.txt
@@ -0,0 +1,1212 @@
+Patch Package: OTP 26.1
+Git Tag: OTP-26.1
+Date: 2023-09-20
+Trouble Report Id: OTP-14480, OTP-18579, OTP-18582, OTP-18586,
+ OTP-18592, OTP-18598, OTP-18599, OTP-18605,
+ OTP-18611, OTP-18614, OTP-18615, OTP-18616,
+ OTP-18623, OTP-18627, OTP-18628, OTP-18629,
+ OTP-18631, OTP-18633, OTP-18638, OTP-18644,
+ OTP-18645, OTP-18647, OTP-18654, OTP-18655,
+ OTP-18660, OTP-18661, OTP-18662, OTP-18664,
+ OTP-18666, OTP-18669, OTP-18670, OTP-18672,
+ OTP-18674, OTP-18675, OTP-18676, OTP-18677,
+ OTP-18678, OTP-18679, OTP-18681, OTP-18683,
+ OTP-18685, OTP-18686, OTP-18687, OTP-18688,
+ OTP-18689, OTP-18690, OTP-18691, OTP-18692,
+ OTP-18693, OTP-18694, OTP-18696, OTP-18697,
+ OTP-18698, OTP-18700, OTP-18701, OTP-18702,
+ OTP-18704, OTP-18705, OTP-18706, OTP-18707,
+ OTP-18708, OTP-18710, OTP-18711, OTP-18712,
+ OTP-18718, OTP-18719, OTP-18721, OTP-18722,
+ OTP-18723, OTP-18724, OTP-18725, OTP-18729,
+ OTP-18731, OTP-18732, OTP-18733, OTP-18734,
+ OTP-18736, OTP-18737, OTP-18738, OTP-18740,
+ OTP-18745, OTP-18746, OTP-18747, OTP-18748,
+ OTP-18752, OTP-18753, OTP-18754, OTP-18755,
+ OTP-18757, OTP-18758, OTP-18759, OTP-18763
+Seq num: ERIERL-43, ERIERL-957, ERIERL-959,
+ ERIERL-962, ERIERL-963, ERIERL-965,
+ ERIERL-979, GH-6074, GH-6339, GH-6394,
+ GH-6460, GH-6461, GH-7119, GH-7162, GH-7258,
+ GH-7280, GH-7292, GH-7298, GH-7317, GH-7325,
+ GH-7336, GH-7344, GH-7381, GH-7401, GH-7409,
+ GH-7410, GH-7413, GH-7417, GH-7431, GH-7436,
+ GH-7444, GH-7459, GH-7467, GH-7468, GH-7469,
+ GH-7477, GH-7482, GH-7488, GH-7492, GH-7504,
+ GH-7506, GH-7507, GH-7510, GH-7517, GH-7524,
+ GH-7546, GH-7566, GH-7569, GH-7577, GH-7584,
+ GH-7605, GH-7606, GH-7655
+System: OTP
+Release: 26
+Application: asn1-5.2, common_test-1.25.1, compiler-8.4,
+ crypto-5.3, debugger-5.3.2, dialyzer-5.1.1,
+ erl_docgen-1.5.1, erts-14.1, inets-9.0.2,
+ kernel-9.1, megaco-4.5, mnesia-4.22.1,
+ observer-2.15.1, public_key-1.14.1,
+ snmp-5.15, ssl-11.0.3, stdlib-5.1
+Predecessor: OTP 26.0.2
+
+ Check out the git tag OTP-26.1, and build a full OTP system including
+ documentation. Apply one or more applications from this build as
+ patches to your installation using the 'otp_patch_apply' tool. For
+ information on install requirements, see descriptions for each
+ application version below.
+
+ ---------------------------------------------------------------------
+ --- HIGHLIGHTS ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18746 Application(s): stdlib
+ Related Id(s): PR-7313, PR-7456
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ A warning for (accidental use of) Triple-Quoted Strings
+ has been implemented as per EEP 64.
+
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18696 Application(s): stdlib
+
+ Pattern matching and equivalence (=:=, =/=) comparisons
+ on 0.0 will now raise a warning, as it will no longer
+ be considered equivalent to -0.0 in OTP 27.
+
+ If a match on 0.0 specifically is desired (distinct
+ from -0.0), the warning can be suppressed by writing
+ +0.0 instead.
+
+ The arithmetic comparison operators are unaffected,
+ including arithmetic equality (==).
+
+
+ OTP-18746 Application(s): stdlib
+ Related Id(s): PR-7313, PR-7456
+
+ *** HIGHLIGHT ***
+
+ A warning for (accidental use of) Triple-Quoted Strings
+ has been implemented as per EEP 64.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.2 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The asn1-5.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18729 Application(s): asn1
+ Related Id(s): PR-7575
+
+ The ASN.1 compiler would ignore a constraint such as
+ (SIZE (1..4), ...), causing incorrect behavior of the
+ encoding and decoding function for the PER and UPER
+ backends. Corrected to handle the constraint in the
+ same way as (SIZE (1..4, ...)).
+
+
+ --- Improvements and New Features ---
+
+ OTP-18748 Application(s): asn1
+ Related Id(s): ERIERL-957, PR-7637
+
+ The JER backend has been internally refactored in a way
+ that is compatible for applications that use the
+ documented API. However, for a group of ASN.1 modules
+ that depend on each other (for example,
+ S1AP-PDU-Descriptions, S1AP-Contents, and so on), all
+ modules in the group must be recompiled if on of the
+ group members is recompiled.
+
+
+ Full runtime dependencies of asn1-5.2: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.25.1 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.25.1 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-14480 Application(s): common_test
+ Related Id(s): ERIERL-43, OTP-11894, PR-7455
+
+ With this change, ct_hooks manual refers to CTH
+ execution order section in user guide.
+
+
+ OTP-18579 Application(s): common_test
+ Related Id(s): GH-7119
+
+ With this change, Config data from pre_end_per_testcase
+ hook is delivered to post_end_per_testcase callback in
+ case of testcase timetrap or linked process crash.
+
+
+ OTP-18615 Application(s): common_test
+ Related Id(s): PR-7234
+
+ With this change, remaining references to not supported
+ vts tool in ct_run are removed (mainly relates to docs
+ and ct_run help message).
+
+
+ OTP-18664 Application(s): common_test
+ Related Id(s): ERIERL-959
+
+ With this change, prompt search functionality in
+ ct_telnet handles unicode input.
+
+
+ OTP-18676 Application(s): common_test, erl_docgen, erts, kernel,
+ stdlib
+ Related Id(s): GH-7459, PR-7473
+
+ Expanded the documentation about how to use the
+ standard_io, standard_error and user I/O devices.
+
+ Added the types io:standard_io/0, io:standard:error/0
+ and io:user/0.
+
+
+ Full runtime dependencies of common_test-1.25.1: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.4 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.4 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18605 Application(s): compiler, stdlib
+ Related Id(s): GH-7298, GH-7317
+
+ The compiler could run forever when compiling a call to
+ is_record/3 with a huge positive tuple size. The call
+ is_record(A, a, 0) would crash the compiler when used
+ in a function body. When used in a guard the compiler
+ would emit incorrect code that would accept {a> as a
+ record.
+
+
+ OTP-18629 Application(s): compiler, dialyzer
+ Related Id(s): GH-7325
+
+ Fixed a bug that caused dialyzer to crash when
+ analyzing bogus code that contained the literal atom
+ undefined in segment sizes.
+
+
+ OTP-18662 Application(s): compiler
+ Related Id(s): GH-7409, PR-7416
+
+ The compiler would crash when compiling some modules
+ that contained a call to erlang:load_nif/2.
+
+
+ OTP-18678 Application(s): compiler
+ Related Id(s): GH-7488
+
+ Fixed a bug that caused the compiler to crash on legal
+ code.
+
+
+ OTP-18689 Application(s): compiler
+ Related Id(s): GH-7504, PR-7518
+
+ The compiler could crash when attempting to compile a
+ call to is_list/1 in a complex expression.
+
+
+ OTP-18692 Application(s): compiler
+ Related Id(s): GH-7517, PR-7519
+
+ A complex guard expression using the or operator could
+ succeed when it was supposed to fail.
+
+
+ OTP-18701 Application(s): compiler
+ Related Id(s): GH-7477, PR-7532
+
+ Compiling nested try/catch and catch expression could
+ result in an internal compiler error.
+
+
+ OTP-18719 Application(s): compiler
+ Related Id(s): GH-7468, PR-7562
+
+ Using the bnot operator in a complex expression could
+ cause the compiler to terminate with an internal
+ consistency failure diagnostic.
+
+
+ OTP-18721 Application(s): compiler
+ Related Id(s): PR-7527
+
+ Fixed a bug that caused the compiler to crash in a
+ binary optimization pass.
+
+
+ OTP-18725 Application(s): compiler
+ Related Id(s): GH-7467
+
+ The compiler could terminate with an internal error
+ when attempting to compile a binary pattern that could
+ not possibly match.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18691 Application(s): compiler
+ Related Id(s): PR-7448
+
+ Fixed various performance issues related to the alias
+ optimization pass.
+
+
+ Full runtime dependencies of compiler-8.4: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.3 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.3 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18670 Application(s): crypto
+ Related Id(s): GH-7436, PR-7450
+
+ Fix VM crash caused by crypto being purged and reloaded
+ (by init:restart for example) on OS with musl libc
+ (such as Alpine linux).
+
+
+ OTP-18758 Application(s): crypto
+ Related Id(s): PR-7209
+
+ Improved understanding of LibreSSL versions. Support
+ chacha20 and chacha20_poly1305 for LibreSSL 3.7.
+ Reflect removal of support for the DSS/DSA algorithm
+ which was done in LibreSSL 2.6.1.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18666 Application(s): crypto
+ Related Id(s): PR-7392
+
+ FIPS supported by crypto for OpenSSL 3.0.* and 3.1.*.
+
+
+ Full runtime dependencies of crypto-5.3: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- debugger-5.3.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The debugger-5.3.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18644 Application(s): debugger
+ Related Id(s): GH-7336
+
+ The call int:no_break(Module) did not remove any
+ breakpoints.
+
+
+ OTP-18740 Application(s): debugger
+ Related Id(s): GH-7410, PR-7599
+
+ The maybe expression is now supported in the Debugger.
+
+
+ Full runtime dependencies of debugger-5.3.2: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.1.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-5.1.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18629 Application(s): compiler, dialyzer
+ Related Id(s): GH-7325
+
+ Fixed a bug that caused dialyzer to crash when
+ analyzing bogus code that contained the literal atom
+ undefined in segment sizes.
+
+
+ OTP-18738 Application(s): dialyzer
+ Related Id(s): GH-7584
+
+ Dialyzer could crash when attempting to analyze a
+ module that defined a type called product/.
+
+
+ Full runtime dependencies of dialyzer-5.1.1: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-5.0, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- erl_docgen-1.5.1 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_docgen-1.5.1 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18676 Application(s): common_test, erl_docgen, erts, kernel,
+ stdlib
+ Related Id(s): GH-7459, PR-7473
+
+ Expanded the documentation about how to use the
+ standard_io, standard_error and user I/O devices.
+
+ Added the types io:standard_io/0, io:standard:error/0
+ and io:user/0.
+
+
+ Full runtime dependencies of erl_docgen-1.5.1: edoc-1.0, erts-11.0,
+ kernel-8.0, stdlib-3.15, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.1 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erts-14.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18592 Application(s): erts
+
+ maps:put with existing key and identical value was not
+ optimized as a no-op correctly if having the same
+ 32-bit hash as another key in the map. In practice very
+ rare and harmless.
+
+
+ OTP-18623 Application(s): erts, kernel
+ Related Id(s): GH-7344
+
+ Fixed an issue with truncated crash slogans on failed
+ emulator start.
+
+
+ OTP-18645 Application(s): erts
+ Related Id(s): GH-7401
+
+ Fixed a bug where the emulator was unable to determine
+ the current cgroup CPU quota.
+
+
+ OTP-18647 Application(s): erts
+ Related Id(s): PR-7595
+
+ A process optimized for parallel signal delivery could
+ under some circumstances lose wakeup information. That
+ is, the processes was not woken up to take care of the
+ signal, so the signal would not be taken care of until
+ the process was woken by another signal. Only processes
+ configured with message_queue_data set to off_heap
+ utilize this optimization.
+
+
+ OTP-18669 Application(s): erts, kernel
+ Related Id(s): OTP-18029
+
+ Function socket:close/1 could cause a VM crash on
+ Windows.
+
+
+ OTP-18672 Application(s): erts
+ Related Id(s): GH-7469
+
+ Fixed a bug in the ARM JIT where it could accidentally
+ add garbage trailing bits when creating bitstrings
+ whose size wasn't an even multiple of 8 bits.
+
+
+ OTP-18674 Application(s): erts
+ Related Id(s): PR-7472
+
+ Fix erlang:system_info/1 documentation to show correct
+ types.
+
+
+ OTP-18676 Application(s): common_test, erl_docgen, erts, kernel,
+ stdlib
+ Related Id(s): GH-7459, PR-7473
+
+ Expanded the documentation about how to use the
+ standard_io, standard_error and user I/O devices.
+
+ Added the types io:standard_io/0, io:standard:error/0
+ and io:user/0.
+
+
+ OTP-18702 Application(s): erts
+ Related Id(s): GH-7381
+
+ Fix compilation with GNU termcap.
+
+
+ OTP-18706 Application(s): erts
+ Related Id(s): ERIERL-979, GH-7413, PR-7595
+
+ Delivery time of message signals to a process not
+ executing any receive expressions could become very
+ long, potentially infinite. For example, a process
+ checking for messages using process_info(self(),
+ message_queue_len) or process_info(self(), messages)
+ and avoiding to execute a receive expression matching
+ on messages could be very slow in detecting new
+ messages. Note that you are still discouraged from
+ using process_info() this way. A process that wants to
+ check if there are messages available to handle should
+ execute a receive expression matching on messages.
+
+
+ OTP-18724 Application(s): erts
+ Related Id(s): GH-7566, PR-7567
+
+ On AArch64 (ARM64), when calculating both the quotient
+ and remainder with a divisor begin a power two, the
+ remainder could be incorrectly calculated.
+
+
+ OTP-18732 Application(s): erts
+ Related Id(s): GH-7444, PR-7458
+
+ Fix bug causing "magic" references in a compressed ETS
+ table to not keep the referred object alive. The
+ symptom would be the referred object being garbage
+ collected prematurely and the reference appearing
+ stale, not referring to anything. Examples of such
+ magically referred objects are atomics and NIF
+ resources.
+
+
+ OTP-18733 Application(s): erts
+ Related Id(s): GH-7292
+
+ Matching out short bitstrings with a fixed size not
+ divisible by 8 could could lead to the runtime system
+ terminating with an "Overrun heap and stack" error.
+
+
+ OTP-18737 Application(s): erts
+ Related Id(s): PR-7595
+
+ A constant flow of incoming non-message signals could
+ prevent a process needing to execute dirty from doing
+ so.
+
+
+ OTP-18745 Application(s): erts
+ Related Id(s): GH-7492, PR-7616
+
+ A BEAM file usually contains a chunk with the tag
+ "Type" containing type information that can be used by
+ the JIT. The beam_lib:strip/1 takes care to preserve
+ that chunk, but a build/release tool that does
+ customized stripping could accidentally remove the
+ chunk. Loading a BEAM file without the "Type" chunk
+ could cause incorrect behavior of the loaded code.
+
+
+ OTP-18747 Application(s): erts, kernel
+ Related Id(s): GH-7605
+
+ gen_udp:recv/* for Unix Domain Socket in binary mode
+ and passive mode has been fixed to not crash.
+
+
+ OTP-18752 Application(s): erts
+ Related Id(s): PR-7633
+
+ The cleanup operation of not yet delivered signals to a
+ terminated process yielded excessively.
+
+
+ OTP-18753 Application(s): erts
+ Related Id(s): PR-7634
+
+ Fixed minor hashing issue with the local option of
+ term_to_binary()/term_to_iovec().
+
+
+ --- Improvements and New Features ---
+
+ OTP-18586 Application(s): erts, kernel
+ Related Id(s): OTP-18029
+
+ Update gen_tcp_socket and gen_udp_socket to handle
+ 'completion' (socket on Windows).
+
+
+ OTP-18611 Application(s): erts, kernel
+ Related Id(s): #5024, OTP-18029
+
+ Add support for Unix Domain Sockets (only for STREAM
+ sockets) on Windows for 'socket'.
+
+
+ OTP-18638 Application(s): erts
+
+ In Erlang/OTP 27, by default escripts will be compiled
+ before being executed. That means that the compiler
+ application must be installed. It is possible to force
+ the escript to be interpreted by adding the directive
+ -mode(interpret). to the escript file.
+
+ In Erlang/OTP 28, support for interpreting an escript
+ will be removed.
+
+
+ OTP-18660 Application(s): erts, kernel
+
+ Add basic support for socket ioctl on Windows.
+
+
+ OTP-18661 Application(s): erts
+ Related Id(s): PR-6112
+
+ Removed erts/etc/darwin/Info.plist, as it is no longer
+ necessary after macos 10.12
+
+
+ OTP-18686 Application(s): erts, kernel
+
+ Add support for (Windows) socket option
+ exclusiveaddruse.
+
+
+ OTP-18687 Application(s): erts, kernel
+
+ [socket] Add support for the 'nopush' option.
+
+
+ OTP-18693 Application(s): erts, kernel
+
+ Add support for socket option 'BSP STATE'.
+
+
+ OTP-18698 Application(s): erts, kernel
+
+ Add tcp socket options 'keepcnt', 'keepidle' and
+ 'keepintvl'.
+
+
+ OTP-18710 Application(s): erts, kernel
+
+ Add support for misc (Windows) socket options
+ ('max_msg_size' and 'maxdg').
+
+
+ Full runtime dependencies of erts-14.1: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- inets-9.0.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-9.0.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18582 Application(s): inets
+ Related Id(s): GH-6074, PR-6892
+
+ With this change, re_write httpd works as expected and
+ does not return error.
+
+
+ OTP-18688 Application(s): inets
+ Related Id(s): ERIERL-962
+
+ Fixed a bug so httpd does not crash when stopped at the
+ wrong time during TLS connection negotiation, or any
+ other theoretically as slow connection setup.
+
+
+ OTP-18694 Application(s): inets
+ Related Id(s): GH-7482
+
+ Enhance error handling and avoid that the HTTP client
+ hangs on headers provided on the wrong format.
+
+
+ OTP-18704 Application(s): inets
+ Related Id(s): ERIERL-962, OTP-18688, PR-7513
+
+ With this change, error report generated by httpd
+ during connection setup contains socket type
+ information.
+
+
+ OTP-18708 Application(s): inets
+ Related Id(s): ERIERL-962, OTP-18688
+
+ Stop and restart of the httpd server in the Inets
+ application has been refactored to a more synchronous
+ and OTP supervisor friendly approach.
+
+ This should increase stability and for example avoid a
+ supervisor report from httpd_connection_sup about
+ killed child process(es) in some cases when stopping or
+ restarting httpd.
+
+
+ Full runtime dependencies of inets-9.0.2: erts-14.0, kernel-9.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-5.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The kernel-9.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18623 Application(s): erts, kernel
+ Related Id(s): GH-7344
+
+ Fixed an issue with truncated crash slogans on failed
+ emulator start.
+
+
+ OTP-18628 Application(s): kernel
+ Related Id(s): GH-7280
+
+ Fix shell:start_interactive function specification.
+
+
+ OTP-18654 Application(s): kernel
+ Related Id(s): PR-7404
+
+ Fix code:get_doc/1 to return missing, when it can't
+ find erts instead of crashing.
+
+
+ OTP-18669 Application(s): erts, kernel
+ Related Id(s): OTP-18029
+
+ Function socket:close/1 could cause a VM crash on
+ Windows.
+
+
+ OTP-18675 Application(s): kernel, stdlib
+ Related Id(s): GH-7459, PR-7473
+
+ Fix deadlock when erl.exe is used as part of a pipe on
+ Windows and trying to set the encoding of the
+ standard_io device.
+
+
+ OTP-18676 Application(s): common_test, erl_docgen, erts, kernel,
+ stdlib
+ Related Id(s): GH-7459, PR-7473
+
+ Expanded the documentation about how to use the
+ standard_io, standard_error and user I/O devices.
+
+ Added the types io:standard_io/0, io:standard:error/0
+ and io:user/0.
+
+
+ OTP-18677 Application(s): kernel
+ Related Id(s): GH-7417, PR-7418
+
+ Fix logger's overload protection mechanism to only
+ fetch memory used by messages when needed.
+
+
+ OTP-18685 Application(s): kernel
+
+ Fixed a number of socket-related issues causing
+ incompatibilities with gen_tcp and gen_udp
+ respectively.
+
+
+ OTP-18707 Application(s): kernel
+ Related Id(s): #7530
+
+ gen_tcp:connect with socket address and socket (inet-)
+ backend fails because of missing callback function.
+
+
+ OTP-18731 Application(s): kernel
+ Related Id(s): GH-7577, PR-7578
+
+ The DNS RR cache used by `inet_res` has been fixed to
+ preserve insert order, which is beneficial when the DNS
+ server returns RRs in some specific order for e.g load
+ balancing purposes.
+
+
+ OTP-18734 Application(s): kernel
+ Related Id(s): GH-6461, GH-7569, OTP-18344, PR-6522
+
+ The options `reuseport`, `reuseport_lb` and
+ `exclusiveaddruse` were accidentally not allowed for
+ e.g `gen_udp:open/1,2`, which has now been corrected.
+
+
+ OTP-18747 Application(s): erts, kernel
+ Related Id(s): GH-7605
+
+ gen_udp:recv/* for Unix Domain Socket in binary mode
+ and passive mode has been fixed to not crash.
+
+
+ OTP-18757 Application(s): kernel
+ Related Id(s): PR-7631
+
+ Fixed issue where cursor would not be placed at the end
+ of the expression when navigating shell history.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18586 Application(s): erts, kernel
+ Related Id(s): OTP-18029
+
+ Update gen_tcp_socket and gen_udp_socket to handle
+ 'completion' (socket on Windows).
+
+
+ OTP-18611 Application(s): erts, kernel
+ Related Id(s): #5024, OTP-18029
+
+ Add support for Unix Domain Sockets (only for STREAM
+ sockets) on Windows for 'socket'.
+
+
+ OTP-18660 Application(s): erts, kernel
+
+ Add basic support for socket ioctl on Windows.
+
+
+ OTP-18681 Application(s): kernel
+
+ The file:location/0 type is now exported.
+
+
+ OTP-18686 Application(s): erts, kernel
+
+ Add support for (Windows) socket option
+ exclusiveaddruse.
+
+
+ OTP-18687 Application(s): erts, kernel
+
+ [socket] Add support for the 'nopush' option.
+
+
+ OTP-18693 Application(s): erts, kernel
+
+ Add support for socket option 'BSP STATE'.
+
+
+ OTP-18698 Application(s): erts, kernel
+
+ Add tcp socket options 'keepcnt', 'keepidle' and
+ 'keepintvl'.
+
+
+ OTP-18710 Application(s): erts, kernel
+
+ Add support for misc (Windows) socket options
+ ('max_msg_size' and 'maxdg').
+
+
+ OTP-18754 Application(s): kernel, stdlib
+ Related Id(s): PR-7604, PR-7647
+
+ The keyboard shortcuts for the shell are now
+ configurable.
+
+
+ OTP-18755 Application(s): kernel
+ Related Id(s): PR-7503
+
+ Optimized code_server to reduce repeated work when
+ loading the same module concurrently.
+
+
+ Full runtime dependencies of kernel-9.1: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- megaco-4.5 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The megaco-4.5 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18599 Application(s): megaco
+ Related Id(s): OTP-18029
+
+ Make megaco transports handle gen_tcp | gen_udp with
+ socket backend on Windows (completion).
+
+
+ Full runtime dependencies of megaco-4.5: asn1-3.0, debugger-4.0,
+ erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14, stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.22.1 ---------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.22.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18711 Application(s): mnesia
+ Related Id(s): ERIERL-963
+
+ Do not delete old backup file if the new backup fails.
+
+
+ Full runtime dependencies of mnesia-4.22.1: erts-9.0, kernel-5.3,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- observer-2.15.1 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The observer-2.15.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18722 Application(s): observer
+ Related Id(s): PR-7462
+
+ Closing the trace log window via the menu did not work.
+
+
+ Full runtime dependencies of observer-2.15.1: erts-14.0, et-1.5,
+ kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.14.1 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.14.1 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18718 Application(s): public_key
+ Related Id(s): GH-7546
+
+ Country name comparison shall be case insensitive
+
+
+ OTP-18723 Application(s): public_key
+ Related Id(s): GH-6394
+
+ Add check to disallow duplicate certs in a path
+
+
+ Full runtime dependencies of public_key-1.14.1: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- snmp-5.15 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The snmp-5.15 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18598 Application(s): snmp
+ Related Id(s): OTP-18029
+
+ Make snmp handle gen_udp with socket backend on Windows
+ (completion).
+
+
+ Full runtime dependencies of snmp-5.15: crypto-4.6, erts-12.0,
+ kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.0.3 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-11.0.3 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18697 Application(s): ssl
+ Related Id(s): GH-7506
+
+ Avoid function clause error in ssl:getopts/2 by
+ handling that inet:getopts may return an empty list
+ during some circumstances, such as the socket being in
+ a closing state.
+
+
+ OTP-18700 Application(s): ssl
+ Related Id(s): GH-7507
+
+ The API function `ssl:recv/3` has been tightened to
+ disallow negative length, which has never been
+ documented to work, but was passed through and caused
+ strange errors.
+
+
+ OTP-18712 Application(s): ssl
+ Related Id(s): GH-7431
+
+ When a client initiated renegotiation was rejected and
+ the client socket was in active mode the expected error
+ message to the controlling process was not sent.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18631 Application(s): ssl
+
+ Add some guidance for signature algorithms
+ configuration in ssl applications users guide.
+
+
+ Full runtime dependencies of ssl-11.0.3: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-5.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18605 Application(s): compiler, stdlib
+ Related Id(s): GH-7298, GH-7317
+
+ The compiler could run forever when compiling a call to
+ is_record/3 with a huge positive tuple size. The call
+ is_record(A, a, 0) would crash the compiler when used
+ in a function body. When used in a guard the compiler
+ would emit incorrect code that would accept {a> as a
+ record.
+
+
+ OTP-18614 Application(s): stdlib
+ Related Id(s): GH-7162, PR-7237
+
+ Fix bug in ets:tab2file that could make it fail if
+ another Erlang process created the same file at the
+ same time.
+
+
+ OTP-18616 Application(s): stdlib
+ Related Id(s): GH-7258
+
+ An {else_clause,Value} exception will now be reported
+ nicely in the shell.
+
+
+ OTP-18627 Application(s): stdlib
+ Related Id(s): PR-7072
+
+ Correct return value for error case, so that it matches
+ the documented and intended return value {error,
+ {already_started, pid()} when local registered names
+ are used.
+
+
+ OTP-18633 Application(s): stdlib
+
+ sys:get_state/1,2 and sys:replace_state/2,3 has been
+ corrected to handle a state named error as a state
+ name, not as a failed system callback.
+
+ For the standard server behaviours this was an issue
+ only for gen_statem (and gen_fsm) when the state name
+ was error, and for gen_server if the complete state was
+ {error,_}.
+
+
+ OTP-18655 Application(s): stdlib
+ Related Id(s): GH-6460, PR-7208
+
+ Multiple problems were fixed in
+ filelib:safe_relative_path/2. If its second argument
+ was a path that contained symbolic links, an incorrect
+ result patch could be returned. Also, paths were
+ sometimes falsely considered unsafe.
+
+
+ OTP-18675 Application(s): kernel, stdlib
+ Related Id(s): GH-7459, PR-7473
+
+ Fix deadlock when erl.exe is used as part of a pipe on
+ Windows and trying to set the encoding of the
+ standard_io device.
+
+
+ OTP-18676 Application(s): common_test, erl_docgen, erts, kernel,
+ stdlib
+ Related Id(s): GH-7459, PR-7473
+
+ Expanded the documentation about how to use the
+ standard_io, standard_error and user I/O devices.
+
+ Added the types io:standard_io/0, io:standard:error/0
+ and io:user/0.
+
+
+ OTP-18683 Application(s): stdlib
+ Related Id(s): PR-7502
+
+ Fix h/2,3 to properly render multi-clause
+ documentation.
+
+
+ OTP-18759 Application(s): stdlib
+ Related Id(s): GH-7606
+
+ Timers created by timer:apply_after/4,
+ apply_interval/4, and apply_repeatedly/4 would silently
+ fail to do the apply if it was not possible to spawn a
+ process when the timer expired. This has now been
+ corrected, and if the spawn fails, the system will be
+ taken down producing a crash dump.
+
+
+ OTP-18763 Application(s): stdlib
+ Related Id(s): GH-7655
+
+ When an Erlang source file lacked a module definition,
+ there would be a spurious "module name must not be
+ empty" diagnostic for each spec in the file.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18679 Application(s): stdlib
+ Related Id(s): ERIERL-965
+
+ The argument descriptions for option types in argparse
+ have been made less ambiguous.
+
+
+ OTP-18690 Application(s): stdlib
+ Related Id(s): GH-7510, PR-7511
+
+ Clarified the documentation of normal shutdown reason
+ on gen_server:call/2,3
+
+
+ OTP-18696 Application(s): stdlib
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ Pattern matching and equivalence (=:=, =/=) comparisons
+ on 0.0 will now raise a warning, as it will no longer
+ be considered equivalent to -0.0 in OTP 27.
+
+ If a match on 0.0 specifically is desired (distinct
+ from -0.0), the warning can be suppressed by writing
+ +0.0 instead.
+
+ The arithmetic comparison operators are unaffected,
+ including arithmetic equality (==).
+
+
+ OTP-18705 Application(s): stdlib
+ Related Id(s): GH-6339, GH-7524, OTP-18471, PR-6843
+
+ The semantics of the gen_{server,statem,event}
+ behaviour's synchronous start behaviour introduced in
+ OTP-26.0 with OTP-18471, has been clarified in the
+ documentation.
+
+
+ OTP-18736 Application(s): stdlib
+ Related Id(s): PR-7564
+
+ Added functionality to set a custom multiline prompt.
+
+
+ OTP-18746 Application(s): stdlib
+ Related Id(s): PR-7313, PR-7456
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ A warning for (accidental use of) Triple-Quoted Strings
+ has been implemented as per EEP 64.
+
+
+ OTP-18754 Application(s): kernel, stdlib
+ Related Id(s): PR-7604, PR-7647
+
+ The keyboard shortcuts for the shell are now
+ configurable.
+
+
+ Full runtime dependencies of stdlib-5.1: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.2.1.README.txt b/release-notes/OTP-26.2.1.README.txt
new file mode 100644
index 0000000..cced400
--- /dev/null
+++ b/release-notes/OTP-26.2.1.README.txt
@@ -0,0 +1,101 @@
+Patch Package: OTP 26.2.1
+Git Tag: OTP-26.2.1
+Date: 2023-12-18
+Trouble Report Id: OTP-18897, OTP-18902, OTP-18903
+Seq num:
+System: OTP
+Release: 26
+Application: erts-14.2.1, ssh-5.1.1
+Predecessor: OTP 26.2
+
+ Check out the git tag OTP-26.2.1, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18897 Application(s): ssh
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-26.2.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18903 Application(s): otp
+
+ Updated copyright and license information.
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.2.1 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erts-14.2.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18902 Application(s): erts
+
+ Removed unnecessary PCRE source tar-ball.
+
+
+ Full runtime dependencies of erts-14.2.1: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.1.1 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-5.1.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18897 Application(s): ssh
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change (being response to CVE-2023-48795),
+ ssh can negotiate "strict KEX" OpenSSH extension with
+ peers supporting it; also
+ '[email protected]' algorithm becomes a
+ less preferred cipher.
+
+ If strict KEX availability cannot be ensured on both
+ connection sides, affected encryption modes(CHACHA and
+ CBC) can be disabled with standard ssh configuration.
+ This will provide protection against vulnerability, but
+ at a cost of affecting interoperability. See
+ Configuring algorithms in SSH.
+
+
+ Full runtime dependencies of ssh-5.1.1: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.2.2.README.txt b/release-notes/OTP-26.2.2.README.txt
new file mode 100644
index 0000000..e73a91c
--- /dev/null
+++ b/release-notes/OTP-26.2.2.README.txt
@@ -0,0 +1,178 @@
+Patch Package: OTP 26.2.2
+Git Tag: OTP-26.2.2
+Date: 2024-02-08
+Trouble Report Id: OTP-18901, OTP-18911, OTP-18917, OTP-18931,
+ OTP-18932, OTP-18949, OTP-18957, OTP-18964
+Seq num: ERIERL-1023, GH-7978, GH-7987, GH-8051
+System: OTP
+Release: 26
+Application: common_test-1.26.1, erl_interface-5.5.1,
+ erts-14.2.2, kernel-9.2.1, ssh-5.1.2,
+ ssl-11.1.1
+Predecessor: OTP 26.2.1
+
+ Check out the git tag OTP-26.2.2, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- common_test-1.26.1 ----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.26.1 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18932 Application(s): common_test
+
+ Fix how CT finds Erlang/OTP releases for compatability
+ testing. This functionality is only used to test
+ Erlang/OTP.
+
+
+ Full runtime dependencies of common_test-1.26.1: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.5.1 ---------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_interface-5.5.1 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18931 Application(s): erl_interface, erts
+ Related Id(s): GH-7987, PR-7989
+
+ Fix bug where the system installed openssl/md5.h would
+ be confused with the vendored md5.h.
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.2.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erts-14.2.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18911 Application(s): erts
+ Related Id(s): ERIERL-1023, PR-7983
+
+ 32-bit runtime systems on most Unix like platforms
+ could crash if a BIF timer was set with a huge timeout
+ of more than 68 years into the future. In order for the
+ crash to occur, the huge timer (at a later time than
+ when it was set) had to become the nearest active timer
+ set on the specific scheduler on which it was set. This
+ could not happen on a system with only one scheduler
+ since there would always be shorter timers in the
+ system.
+
+ Setting a timer larger than 49 days on Windows could
+ under rare circumstances cause the timeout to be
+ delayed.
+
+
+ OTP-18931 Application(s): erl_interface, erts
+ Related Id(s): GH-7987, PR-7989
+
+ Fix bug where the system installed openssl/md5.h would
+ be confused with the vendored md5.h.
+
+
+ OTP-18949 Application(s): erts
+
+ The JIT has now been disabled on x86 Macs to prevent
+ annoying the "verifying shm-xyz" popups introduced in
+ MacOS Sonoma.
+
+ ARM Macs are unaffected.
+
+
+ OTP-18957 Application(s): erts
+ Related Id(s): GH-8051, OTP-18841, PR-8088
+
+ Garbage collection of a process on a dirty scheduler
+ could collide with signal handling for that process
+ causing a crash of the runtime system. This bug was
+ introduced in OTP 25.3.2.8 and OTP 26.2.
+
+
+ Full runtime dependencies of erts-14.2.2: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.2.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The kernel-9.2.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18901 Application(s): kernel
+
+ Fix group (that is the shell) to properly handle when
+ an get_until callback function returned {done, eof, []}
+ when an eof was detected.
+
+
+ Full runtime dependencies of kernel-9.2.1: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.1.2 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-5.1.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18964 Application(s): ssh
+
+ With this change, Curve25519 and Curve448 KEX methods
+ become most preferred (related to RFC8731).
+
+
+ Full runtime dependencies of ssh-5.1.2: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.1.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-11.1.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18917 Application(s): ssl
+ Related Id(s): GH-7978
+
+ Legacy name handling could cause interop problems
+ between TLS-1.3/1.2 client and TLS-1.2 server.
+
+
+ Full runtime dependencies of ssl-11.1.1: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.2.3.README.txt b/release-notes/OTP-26.2.3.README.txt
new file mode 100644
index 0000000..295f620
--- /dev/null
+++ b/release-notes/OTP-26.2.3.README.txt
@@ -0,0 +1,436 @@
+Patch Package: OTP 26.2.3
+Git Tag: OTP-26.2.3
+Date: 2024-03-07
+Trouble Report Id: OTP-18890, OTP-18900, OTP-18906, OTP-18907,
+ OTP-18909, OTP-18910, OTP-18919, OTP-18921,
+ OTP-18924, OTP-18926, OTP-18935, OTP-18936,
+ OTP-18937, OTP-18940, OTP-18948, OTP-18952,
+ OTP-18953, OTP-18962, OTP-18971, OTP-18974,
+ OTP-18979, OTP-18982, OTP-18985, OTP-18986,
+ OTP-18988, OTP-18990, OTP-18991, OTP-18996,
+ OTP-19002, OTP-19003, OTP-19006, OTP-19007,
+ OTP-19008, OTP-19009, OTP-19011
+Seq num: ERIERL-1041, ERIERL-1049, GH-7911, GH-7924,
+ GH-7934, GH-7968, GH-8016, GH-8021, GH-8024,
+ GH-8044, GH-8079, GH-8119, GH-8158, GH-8187,
+ PR-7750, PR-7930, PR-7932, PR-7933, PR-7945,
+ PR-7984, PR-8025, PR-8046, PR-8075, PR-8173,
+ PR-8174, PR-8181, PR-8189, PR-8201
+System: OTP
+Release: 26
+Application: compiler-8.4.2, crypto-5.4.1, erts-14.2.3,
+ kernel-9.2.2, odbc-2.14.2, public_key-1.15.1,
+ ssh-5.1.3, ssl-11.1.2, stdlib-5.2.1, wx-2.4.1
+Predecessor: OTP 26.2.2
+
+ Check out the git tag OTP-26.2.3, and build a full OTP system
+ including documentation. Apply one or more applications from this
+ build as patches to your installation using the 'otp_patch_apply'
+ tool. For information on install requirements, see descriptions for
+ each application version below.
+
+ ---------------------------------------------------------------------
+ --- OTP-26.2.3 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18924 Application(s): otp
+
+ Quote uninstall path in registry when installing on
+ windows.
+
+
+ ---------------------------------------------------------------------
+ --- compiler-8.4.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The compiler-8.4.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-19003 Application(s): compiler
+ Related Id(s): GH-8187, PR-8189
+
+ In rare circumstances, an unsafe optimization could
+ cause the compiler to generate incorrect code for list
+ matching.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18936 Application(s): compiler
+
+ Fix the compilation server to restart if the
+ applications in its lib dir changes inbetween erlc
+ invokations.
+
+
+ Full runtime dependencies of compiler-8.4.2: crypto-5.1, erts-13.0,
+ kernel-8.4, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.4.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.4.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18921 Application(s): crypto
+
+ Fix compile error when OPENSSL_NO_DES is defined.
+
+
+ OTP-18996 Application(s): crypto
+ Related Id(s): PR-8173, PR-8174
+
+ The function crypto:pbkdf2_hmac will no longer block
+ the main schedulers. If the iteration count or block
+ size parameters are such that the function is likely to
+ take a long time to execute, the function will be
+ scheduled to run on a dirty CPU scheduler.
+
+
+ Full runtime dependencies of crypto-5.4.1: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.2.3 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erts-14.2.3 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18906 Application(s): erts
+ Related Id(s): PR-7930
+
+ Fixed compile warning in erl_nif.c for gcc-13.
+
+
+ OTP-18907 Application(s): erts
+ Related Id(s): PR-7932
+
+ Fix C++ compile error for macros enif_select_read and
+ friends.
+
+
+ OTP-18940 Application(s): erts
+ Related Id(s): GH-8024
+
+ Fixed a name clash on Solaris that prevented the JIT
+ from being built.
+
+
+ OTP-18952 Application(s): erts
+ Related Id(s): PR-8025
+
+ Fix termcap detection on solaris.
+
+
+ OTP-18971 Application(s): erts
+ Related Id(s): GH-8044
+
+ Fix heap corruption bug that could cause runaway memory
+ consumption due to circular offheap list at process
+ exit. Other symptoms may also be possible. Bug exists
+ since OTP 25.0.
+
+
+ OTP-18979 Application(s): erts
+
+ Do not clear tracing in old module instance if load
+ fails with 'not_purged'.
+
+
+ OTP-18982 Application(s): erts
+
+ When exceeding the `max_heap_size` limit in a garbage
+ collection initiated by some bit syntax operations, the
+ process would not always terminate immediately.
+
+
+ OTP-19006 Application(s): erts
+
+ The code server could be hanging if a module with
+ on_load function was loaded at the same time as another
+ module was purged using erlang:purge_module directly.
+
+
+ OTP-19008 Application(s): erts
+ Related Id(s): GH-8119, PR-8201
+
+ A process optimized for parallel signal delivery could
+ under some circumstances lose wakeup information. That
+ is, the processes was not woken up to take care of the
+ signal, so the signal would not be taken care of until
+ the process was woken by another signal. Only processes
+ configured with message_queue_data set to off_heap
+ utilize this optimization.
+
+
+ OTP-19009 Application(s): erts
+ Related Id(s): PR-8181
+
+ Fix segfault when generating crashdump containing a fun
+ places in persistent_term storage.
+
+
+ OTP-19011 Application(s): erts
+
+ By default the JIT is disabled on Intel Macs, because
+ of annoying poups on macOS Sonoma. It is now possible
+ to explicitly enable the JIT on Intel Macs. Here is
+ how: ./configure --enable-jit
+
+
+ Full runtime dependencies of erts-14.2.3: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.2.2 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The kernel-9.2.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18910 Application(s): kernel
+ Related Id(s): GH-7924, PR-7933
+
+ Fix performance bug when using io:fread to read from
+ standard_io. This regression was introduced in OTP
+ 26.0.
+
+
+ OTP-18948 Application(s): kernel
+ Related Id(s): PR-8046
+
+ A bug in the code server could cause it to crash in
+ some concurrent scenarios. This bug was introduced in
+ 26.1.
+
+
+ OTP-18990 Application(s): kernel
+ Related Id(s): GH-8158
+
+ Fixed gen_udp:open/2 type spec to include already
+ supported module socket address types.
+
+
+ OTP-19007 Application(s): kernel, ssh
+ Related Id(s): ERIERL-1049
+
+ Fix reading of password for ssh client when in
+ user_interactive mode.
+
+
+ Full runtime dependencies of kernel-9.2.2: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- odbc-2.14.2 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The odbc-2.14.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18926 Application(s): odbc
+
+ Use spec for API doc
+
+
+ Full runtime dependencies of odbc-2.14.2: erts-6.0, kernel-3.0,
+ stdlib-2.0
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.15.1 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.15.1 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18935 Application(s): public_key
+ Related Id(s): GH-8021
+
+ Hostname prefix with X number of dots should not be
+ accepted.
+
+
+ Full runtime dependencies of public_key-1.15.1: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.1.3 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-5.1.3 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18974 Application(s): ssh
+
+ With this change, acceptor_sup is not started for ssh
+ client as it is not needed in that role.
+
+
+ OTP-18986 Application(s): ssh
+
+ With this change, more secure algorithms are preferred
+ by ssh and documentation is updated to reflect that.
+
+
+ OTP-19002 Application(s): ssh
+ Related Id(s): ERIERL-1041
+
+ With this change, KEX strict terminal message is
+ emitted with debug verbosity.
+
+
+ OTP-19007 Application(s): kernel, ssh
+ Related Id(s): ERIERL-1049
+
+ Fix reading of password for ssh client when in
+ user_interactive mode.
+
+
+ Full runtime dependencies of ssh-5.1.3: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.1.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-11.1.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18890 Application(s): ssl
+ Related Id(s): GH-7911
+
+ ssl:prf/5, will start working instead of hanging in a
+ TLS-1.3 context if called appropriately. Note that the
+ implementation has changed and in OTP-27 a more
+ adequate API will be documented.
+
+
+ OTP-18909 Application(s): ssl
+ Related Id(s): GH-7968
+
+ Server name verification didn't work if a connection
+ was made with IP-address as a string.
+
+
+ OTP-18919 Application(s): ssl
+ Related Id(s): PR-7984
+
+ The fallback after "dh" ssl option was undefined was to
+ get "dh" from ssl options again. This is clearly wrong
+ and now changed to the documented fallback "dhfile" ssl
+ option.
+
+
+ OTP-18962 Application(s): ssl
+ Related Id(s): GH-8079
+
+ Correct default value selection for DTLS. Will only
+ affect users linked with really old version of
+ cryptolib library.
+
+
+ OTP-18991 Application(s): ssl
+
+ Adhere elliptic curves with RFC 8422 pre TLS-1.3, that
+ is Edwards curves are added to curves that can be used
+ for key exchange, and documentation and implementation
+ of eccs/0,1 are aligned.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18985 Application(s): ssl
+
+ Improve alert reason when ecdhe_rsa key_exchange does
+ not have any common curves to use
+
+
+ Full runtime dependencies of ssl-11.1.2: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.2.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-5.2.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18900 Application(s): stdlib
+ Related Id(s): GH-7934, PR-7945
+
+ The help texts shown by argparse will now display
+ sub-command arguments in the correct order.
+
+
+ OTP-18937 Application(s): stdlib
+
+ Clarified the argparse documentation regarding the
+ user-defined help template.
+
+
+ OTP-18953 Application(s): stdlib
+ Related Id(s): GH-8016, PR-8075
+
+ Fix shell expansion to not crash when expanding invalid
+ using invalid atoms.
+
+
+ Full runtime dependencies of stdlib-5.2.1: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.4.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The wx-2.4.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18988 Application(s): wx
+ Related Id(s): PR-7750
+
+ Add option to silence wx depracation macros.
+
+
+ Full runtime dependencies of wx-2.4.1: erts-12.0, kernel-8.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-26.2.README.txt b/release-notes/OTP-26.2.README.txt
new file mode 100644
index 0000000..8a6328a
--- /dev/null
+++ b/release-notes/OTP-26.2.README.txt
@@ -0,0 +1,1134 @@
+Patch Package: OTP 26.2
+Git Tag: OTP-26.2
+Date: 2023-12-13
+Trouble Report Id: OTP-16607, OTP-17844, OTP-18728, OTP-18730,
+ OTP-18735, OTP-18739, OTP-18749, OTP-18751,
+ OTP-18760, OTP-18762, OTP-18764, OTP-18765,
+ OTP-18767, OTP-18771, OTP-18772, OTP-18775,
+ OTP-18776, OTP-18777, OTP-18782, OTP-18798,
+ OTP-18799, OTP-18800, OTP-18802, OTP-18810,
+ OTP-18811, OTP-18812, OTP-18814, OTP-18815,
+ OTP-18817, OTP-18818, OTP-18821, OTP-18822,
+ OTP-18823, OTP-18824, OTP-18826, OTP-18827,
+ OTP-18828, OTP-18829, OTP-18830, OTP-18832,
+ OTP-18833, OTP-18836, OTP-18838, OTP-18839,
+ OTP-18840, OTP-18841, OTP-18842, OTP-18843,
+ OTP-18844, OTP-18850, OTP-18853, OTP-18854,
+ OTP-18855, OTP-18857, OTP-18858, OTP-18861,
+ OTP-18866, OTP-18867, OTP-18868, OTP-18869,
+ OTP-18871, OTP-18872, OTP-18873, OTP-18877,
+ OTP-18880, OTP-18882, OTP-18883, OTP-18885,
+ OTP-18886, OTP-18888, OTP-18891, OTP-18893,
+ OTP-18895, OTP-18896, OTP-18899
+Seq num: ERIERL-738, ERIERL-994, ERIERL-997, GH-7515,
+ GH-7548, GH-7571, GH-7580, GH-7591, GH-7608,
+ GH-7621, GH-7625, GH-7676, GH-7685, GH-7735,
+ GH-7736, GH-7766, GH-7795, GH-7801, GH-7827,
+ GH-7832, GH-7834, GH-7838, GH-7875, GH-7890,
+ GH-7914
+System: OTP
+Release: 26
+Application: asn1-5.2.1, common_test-1.26, crypto-5.4,
+ debugger-5.3.3, dialyzer-5.1.2,
+ diameter-2.3.1, edoc-1.2.1, eldap-1.2.12,
+ erl_docgen-1.5.2, erl_interface-5.5,
+ erts-14.2, eunit-2.9, ftp-1.2.1, inets-9.1,
+ kernel-9.2, mnesia-4.23, os_mon-2.9.1,
+ public_key-1.15, runtime_tools-2.0.1,
+ ssh-5.1, ssl-11.1, stdlib-5.2, tftp-1.1.1,
+ wx-2.4, xmerl-1.3.34
+Predecessor: OTP 26.1.2
+
+ Check out the git tag OTP-26.2, and build a full OTP system including
+ documentation. Apply one or more applications from this build as
+ patches to your installation using the 'otp_patch_apply' tool. For
+ information on install requirements, see descriptions for each
+ application version below.
+
+ ---------------------------------------------------------------------
+ --- POTENTIAL INCOMPATIBILITIES -------------------------------------
+ ---------------------------------------------------------------------
+
+ OTP-18728 Application(s): common_test
+ Related Id(s): PR-7487, PR-7674
+
+ With this change, common_test returns an error when
+ suite with a badly defined group is executed.
+
+
+ ---------------------------------------------------------------------
+ --- OTP-26.2 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18840 Application(s): otp, stdlib
+ Related Id(s): PR-7629
+
+ The removal of the deprecated slave module, originally
+ planned for OTP 27, has been postponed to OTP 29.
+
+
+ OTP-18896 Application(s): otp
+
+ Updated copyright and license information.
+
+
+ ---------------------------------------------------------------------
+ --- asn1-5.2.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The asn1-5.2.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18844 Application(s): asn1
+
+ Fix benign warning from gcc 11 about mismatching call
+ to free().
+
+
+ Full runtime dependencies of asn1-5.2.1: erts-11.0, kernel-7.0,
+ stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- common_test-1.26 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The common_test-1.26 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18728 Application(s): common_test
+ Related Id(s): PR-7487, PR-7674
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+ With this change, common_test returns an error when
+ suite with a badly defined group is executed.
+
+
+ OTP-18760 Application(s): common_test
+
+ With this change, stylesheet option is applied to all
+ HTML report pages.
+
+
+ OTP-18799 Application(s): common_test, erl_docgen, xmerl
+ Related Id(s): PR-7695
+
+ Update all <tt> html tags to be <code> instead.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18858 Application(s): common_test
+ Related Id(s): PR-7825
+
+ This change fixes docs, so that historically deprecated
+ ?config macro is no longer recommended to be used.
+
+
+ Full runtime dependencies of common_test-1.26: compiler-6.0,
+ crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0, kernel-8.4,
+ observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+ stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+
+ ---------------------------------------------------------------------
+ --- crypto-5.4 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The crypto-5.4 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18895 Application(s): crypto, erl_interface, os_mon,
+ runtime_tools
+
+ Fixed some benign compile warnings on Windows.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18832 Application(s): crypto
+ Related Id(s): PR-7763
+
+ Enable engine support for OpenSSL versions 3.
+
+
+ Full runtime dependencies of crypto-5.4: erts-9.0, kernel-5.3,
+ stdlib-3.9
+
+
+ ---------------------------------------------------------------------
+ --- debugger-5.3.3 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The debugger-5.3.3 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18888 Application(s): debugger
+ Related Id(s): GH-7914
+
+ Map comprehensions now work in the Debugger.
+
+
+ Full runtime dependencies of debugger-5.3.3: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-3.15, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- dialyzer-5.1.2 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The dialyzer-5.1.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18767 Application(s): dialyzer
+ Related Id(s): PR-7657
+
+ Fix dialyzer --output flag to work. This option was
+ accidentally removed in OTP 26.0.
+
+
+ OTP-18772 Application(s): dialyzer
+ Related Id(s): GH-7676
+
+ Fixed a crash in contract checking relating to opaque
+ types.
+
+
+ Full runtime dependencies of dialyzer-5.1.2: compiler-8.0, erts-12.0,
+ kernel-8.0, stdlib-5.0, syntax_tools-2.0, wx-2.0
+
+
+ ---------------------------------------------------------------------
+ --- diameter-2.3.1 --------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The diameter-2.3.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ Full runtime dependencies of diameter-2.3.1: erts-10.0, kernel-3.2,
+ ssl-9.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- edoc-1.2.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The edoc-1.2.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18782 Application(s): edoc
+ Related Id(s): PR-7643
+
+ Emit <code> instead of <tt>.
+
+
+ Full runtime dependencies of edoc-1.2.1: erts-6.0, inets-5.10,
+ kernel-3.0, stdlib-3.15, syntax_tools-2.0, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- eldap-1.2.12 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The eldap-1.2.12 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18810 Application(s): eldap
+
+ Add missing dependency to asn1 application
+
+
+ Full runtime dependencies of eldap-1.2.12: asn1-3.0, erts-6.0,
+ kernel-3.0, ssl-5.3.4, stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- erl_docgen-1.5.2 ------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_docgen-1.5.2 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18775 Application(s): erl_docgen
+ Related Id(s): PR-7663
+
+ Fix erl_docgen dtd to only allow a single
+ datatype_title within a datatypes block.
+
+
+ OTP-18776 Application(s): erl_docgen
+ Related Id(s): PR-7663
+
+ Fix so that EEP-48 doc chunks include the module
+ summary and generates equiv tags in the correct order.
+
+ The function/type group title is now also included in
+ the entry metadata.
+
+
+ OTP-18799 Application(s): common_test, erl_docgen, xmerl
+ Related Id(s): PR-7695
+
+ Update all <tt> html tags to be <code> instead.
+
+
+ Full runtime dependencies of erl_docgen-1.5.2: edoc-1.0, erts-11.0,
+ kernel-8.0, stdlib-3.15, xmerl-1.3.7
+
+
+ ---------------------------------------------------------------------
+ --- erl_interface-5.5 -----------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erl_interface-5.5 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18895 Application(s): crypto, erl_interface, os_mon,
+ runtime_tools
+
+ Fixed some benign compile warnings on Windows.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18764 Application(s): erl_interface
+ Related Id(s): PR-7602
+
+ Add support to encode maps with ei_x_format.
+
+
+ OTP-18877 Application(s): erl_interface, erts
+
+ Replaced old md5 implementation with an implementation
+ from OpenSSL.
+
+
+ --- Known Bugs and Problems ---
+
+ OTP-16607 Application(s): erl_interface
+ Related Id(s): OTP-16608
+
+ The ei API for decoding/encoding terms is not fully
+ 64-bit compatible since terms that have a
+ representation on the external term format larger than
+ 2 GB cannot be handled.
+
+
+ ---------------------------------------------------------------------
+ --- erts-14.2 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The erts-14.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18751 Application(s): erts
+ Related Id(s): GH-7548, GH-7621
+
+ Fix erl.exe to to restore the console to its original
+ state when exiting. This bug was introduced in OTP 26.0
+ and only happens when erl.exe is run in cmd.exe.
+
+
+ OTP-18802 Application(s): erts
+
+ Fix faulty debug assert when page size is larger than
+ 16kb, like on PowerPC. Did crash debug VM directly at
+ start.
+
+
+ OTP-18811 Application(s): erts
+ Related Id(s): ERIERL-994
+
+ zlib will no longer randomly return garbage (negative)
+ Adler32 checksums.
+
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ OTP-18838 Application(s): erts
+ Related Id(s): GH-7801, PR-7822
+
+ A process with message_queue_data configured as
+ off_heap could end up in an inconsistent state when
+ being receive traced, inspected using process_info/2
+ with the message_queue_len item, or inspected using the
+ break menu (CTRL-C). When it ended up in this
+ inconsistent state, it was not enqueued into a run
+ queue even though it was set in a runnable state.This
+ also effected signals being sent to the process after
+ it had gotten into this inconsistent state, in such a
+ way that it was from this point not possible to
+ communicate with it.
+
+
+ OTP-18839 Application(s): erts
+ Related Id(s): GH-7801, PR-7822
+
+ A race occurring when a process was selected for dirty
+ execution simultaneously as it was scheduled for
+ handling a signal could cause the process to end up in
+ an inconsistent state. When it ended up in this
+ inconsistent state, it was not enqueued into a run
+ queue even though it was set in a runnable state. This
+ also effected signals being sent to the process after
+ it had gotten into this inconsistent state, in such a
+ way that it was from this point not possible to
+ communicate with it.
+
+
+ OTP-18841 Application(s): erts
+ Related Id(s): GH-7801, OTP-18737, PR-7822
+
+ When a process had to to wait in the run queue for a
+ long time before being selected for dirty execution, it
+ could not receive signals. This caused inspection of
+ such a process, for example using process_info/2, to
+ take a long time.
+
+ This issue was introduced in OTP 25.3.2.6 and 26.1 when
+ fixing an issue where a constant flow of signals
+ prevented a process from being able to execute dirty.
+
+
+ OTP-18842 Application(s): erts
+
+ Fixed a bug in the JIT that miscompiled large
+ select_val instructions.
+
+
+ OTP-18871 Application(s): erts
+ Related Id(s): GH-7838
+
+ Fix bug on Windows where large writes to standard_io
+ could cause duplicate data to be written.
+
+
+ OTP-18880 Application(s): erts
+ Related Id(s): GH-7736, PR-7761
+
+ The struct ip_mreqn field imr_ifindex had got an
+ incorrect byte order conversion that has been
+ corrected.
+
+
+ OTP-18885 Application(s): erts
+ Related Id(s): GH-7834, GH-7890, PR-7915
+
+ On OTP 24 and OTP 25, incoming distributed messages
+ larger than 64 KiB sent using an alias leaked memory if
+ the alias had been removed prior to entering the node.
+ This issue was not present on OTP 26.
+
+ Incoming distributed messages larger than 64 KiB sent
+ using an alias which had been removed on the receiving
+ node could crash the node. This crash was quite
+ unlikely on OTP 24 and OTP 25, but very likely on OTP
+ 26.
+
+ 'DOWN' signals with exit reason larger than 64 KiB
+ directed towards a process on a node with a not
+ matching creation leaked memory on the receiving node.
+ Such signals should however be very rare.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18762 Application(s): erts, kernel
+
+ Add Windows support for DGRAM socket connect.
+
+
+ OTP-18765 Application(s): erts
+ Related Id(s): PR-7707
+
+ process_info/2 now supports lookup of values for
+ specific keys in the process dictionary. For example,
+ {{dictionary, Key}, Value} = process_info(Pid,
+ {dictionary, Key}).
+
+
+ OTP-18830 Application(s): erts
+ Related Id(s): PR-7823
+
+ Removed unnecessary regexp library used when generating
+ yielding BIFs.
+
+
+ OTP-18872 Application(s): erts
+ Related Id(s): GH-7832
+
+ Fix tty restore when +Bc is used.
+
+
+ OTP-18877 Application(s): erl_interface, erts
+
+ Replaced old md5 implementation with an implementation
+ from OpenSSL.
+
+
+ OTP-18899 Application(s): erts
+
+ Removed unused makewhatis script.
+
+
+ Full runtime dependencies of erts-14.2: kernel-9.0, sasl-3.3,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- eunit-2.9 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The eunit-2.9 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18771 Application(s): eunit
+ Related Id(s): PR-7635
+
+ With this change, EUnit timetraps can be scaled with
+ the use of scale_timeouts option.
+
+
+ Full runtime dependencies of eunit-2.9: erts-9.0, kernel-5.3,
+ stdlib-3.4
+
+
+ ---------------------------------------------------------------------
+ --- ftp-1.2.1 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ftp-1.2.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ Full runtime dependencies of ftp-1.2.1: erts-7.0, kernel-6.0,
+ runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- inets-9.1 -------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The inets-9.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ OTP-18855 Application(s): inets
+
+ Correct IP protocol handling so that redirects always
+ uses correct IP-family options and not fails.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18735 Application(s): inets
+ Related Id(s): GH-7580, PR-7596
+
+ inets app starts ssl by default
+
+
+ OTP-18882 Application(s): inets
+
+ Avoid httpd returning 500 internal server error when
+ unable to open a file. 404 or 503 will be returned
+ instead.
+
+
+ OTP-18891 Application(s): inets
+ Related Id(s): GH-7827, PR-7843
+
+ Properly handle documented option mime_type, for
+ backwards compatibility fallback to undocumented option
+ default_type if mime_type is not set.
+
+
+ Full runtime dependencies of inets-9.1: erts-14.0, kernel-9.0,
+ mnesia-4.12, public_key-1.13, runtime_tools-1.8.14, ssl-9.0,
+ stdlib-5.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- kernel-9.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The kernel-9.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18749 Application(s): kernel
+ Related Id(s): GH-7608
+
+ For inet_backend = socket, an unexpected receive error
+ such as etimedout caused the receiving state machine
+ server to crash. This bug has now been fixed.
+
+
+ OTP-18800 Application(s): kernel
+ Related Id(s): GH-7591, PR-7714
+
+ Fix bug where reading using file from a unicode enabled
+ standard_io, standard_error or any other group backed
+ device would result in incorrect values being returned
+ or a crash.
+
+ Now instead a no_translation error is returned to the
+ caller when unicode data is read using file. See Using
+ Unicode in the STDLIB User's Guide for more details on
+ how to correctly read from standard_io.
+
+
+ OTP-18812 Application(s): kernel
+ Related Id(s): ERIERL-997
+
+ The native resolver interface module has gotten a
+ rewrite of its ETS table handling to minimize term
+ copying, and also to move the handling of client
+ time-outs to the clients, which helps the native
+ resolver name server from digging itself into a tar pit
+ when heavily loaded.
+
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ OTP-18833 Application(s): kernel
+ Related Id(s): GH-7625, PR-7659
+
+ Fix bug in pg if a client process both monitored a
+ group/scope and joined a group. The termination of such
+ process resulted in crash of the pg server process.
+
+
+ OTP-18873 Application(s): kernel
+ Related Id(s): PR-7831
+
+ Fix crash when using file:consult and the underlying
+ file read returns an error while reading.
+
+
+ OTP-18883 Application(s): kernel
+ Related Id(s): #7764
+
+ Corrected gen_tcp_socket listen option handling.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18762 Application(s): erts, kernel
+
+ Add Windows support for DGRAM socket connect.
+
+
+ OTP-18818 Application(s): kernel
+ Related Id(s): #7337
+
+ Document the, previously opaque, types select_tag() and
+ completion_tag().
+
+
+ Full runtime dependencies of kernel-9.2: crypto-5.0, erts-14.0,
+ sasl-3.0, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- mnesia-4.23 -----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The mnesia-4.23 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18798 Application(s): mnesia
+
+ Document mnesia:foldl/4 and mnesia:foldr/4.
+
+
+ OTP-18850 Application(s): mnesia
+
+ mnesia:add_table_copy/3 no longer fails with reason
+ system_limit when the node is starting.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18843 Application(s): mnesia
+ Related Id(s): GH-7766
+
+ Restore recreate of disc_only tables could crash if
+ they had an index.
+
+
+ Full runtime dependencies of mnesia-4.23: erts-9.0, kernel-5.3,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- os_mon-2.9.1 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The os_mon-2.9.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18895 Application(s): crypto, erl_interface, os_mon,
+ runtime_tools
+
+ Fixed some benign compile warnings on Windows.
+
+
+ Full runtime dependencies of os_mon-2.9.1: erts-14.0, kernel-9.0,
+ sasl-4.2.1, stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- public_key-1.15 -------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The public_key-1.15 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18739 Application(s): public_key, ssl
+
+ ssl application will validate id-kp-serverAuth and
+ id-kp-clientAuth extended key usage only in end entity
+ certificates. public_key application will disallow
+ "anyExtendedKeyUsage" for CA certificates that includes
+ the extended key usage extension and marks it critical.
+
+
+ OTP-18854 Application(s): public_key
+
+ Modernize ECC handling so that crypto FIPS support
+ works as expected.
+
+
+ --- Improvements and New Features ---
+
+ OTP-17844 Application(s): public_key
+ Related Id(s): ERIERL-738
+
+ Support certificate policies in path_validation - as
+ described by RFC 5280.
+
+
+ OTP-18814 Application(s): public_key
+ Related Id(s): PR-7435
+
+ Add more search paths for cacerts on Illumos.
+
+
+ OTP-18867 Application(s): public_key
+ Related Id(s): GH-7515
+
+ Make it possible to handle invalid date formats in the
+ verify_fun for pkix_path_validation/3
+
+
+ Full runtime dependencies of public_key-1.15: asn1-3.0, crypto-4.6,
+ erts-6.0, kernel-3.0, stdlib-3.5
+
+
+ ---------------------------------------------------------------------
+ --- runtime_tools-2.0.1 ---------------------------------------------
+ ---------------------------------------------------------------------
+
+ The runtime_tools-2.0.1 application can be applied independently of
+ other applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18868 Application(s): runtime_tools
+ Related Id(s): GH-7735
+
+ Fixed issue with fetching port information for observer
+ could crash if port had died.
+
+
+ OTP-18895 Application(s): crypto, erl_interface, os_mon,
+ runtime_tools
+
+ Fixed some benign compile warnings on Windows.
+
+
+ Full runtime dependencies of runtime_tools-2.0.1: erts-11.0,
+ kernel-8.1, mnesia-4.12, stdlib-3.13
+
+
+ ---------------------------------------------------------------------
+ --- ssh-5.1 ---------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssh-5.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ OTP-18861 Application(s): ssh
+ Related Id(s): PR-7627
+
+ Avoid outputting ansi escape sequences to dumb ssh
+ clients.
+
+
+ OTP-18869 Application(s): ssh
+ Related Id(s): GH-7571, PR-7849
+
+ With this change, connection handler does not execute
+ socket operations until it becomes socket owner.
+ Previously errors could occur if connection handler
+ tried to work with socket whose owner exited.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18730 Application(s): ssh
+ Related Id(s): PR-7499
+
+ With this change, reverse search works with ssh shell
+ and non dumb terminals.
+
+
+ Full runtime dependencies of ssh-5.1: crypto-5.0, erts-14.0,
+ kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1, stdlib-5.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- ssl-11.1 --------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The ssl-11.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18739 Application(s): public_key, ssl
+
+ ssl application will validate id-kp-serverAuth and
+ id-kp-clientAuth extended key usage only in end entity
+ certificates. public_key application will disallow
+ "anyExtendedKeyUsage" for CA certificates that includes
+ the extended key usage extension and marks it critical.
+
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ OTP-18817 Application(s): ssl
+
+ Correct handling of TLS-1.3 legacy scheme names, could
+ cause interop failures for TLS-1.2 clients.
+
+
+ OTP-18886 Application(s): ssl
+
+ Add missing export for connection_info() API type.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18836 Application(s): ssl
+ Related Id(s): GH-7795
+
+ Fixed server name indication which was not handled
+ properly.
+
+
+ OTP-18853 Application(s): ssl
+ Related Id(s): PR-7841
+
+ Align documentation and implementation
+
+
+ OTP-18893 Application(s): ssl
+ Related Id(s): PR-7920, PR-7921
+
+ Improve connection setup by optimizing certificate
+ lookup.
+
+
+ Full runtime dependencies of ssl-11.1: crypto-5.0, erts-14.0,
+ inets-5.10.7, kernel-9.0, public_key-1.11.3, runtime_tools-1.15.1,
+ stdlib-4.1
+
+
+ ---------------------------------------------------------------------
+ --- stdlib-5.2 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The stdlib-5.2 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18777 Application(s): stdlib
+ Related Id(s): PR-7663
+
+ Make shell_docs correctly trim the newline at the end
+ of code blocks.
+
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ OTP-18822 Application(s): stdlib
+ Related Id(s): PR-7796
+
+ Fixed a bug where autocompletion could crash the shell
+ when trying to expand a nested tuple.
+
+
+ OTP-18823 Application(s): stdlib
+
+ Removed auto closing feature, in autocompletion, for
+ function arguments, tuples, records and maps, since
+ this could interfere with autocompletion of atoms.
+
+
+ OTP-18824 Application(s): stdlib
+
+ Fixed a bug where autocompletion string formatting
+ would remove suggestions that had the same name but
+ different case.
+
+
+ OTP-18826 Application(s): stdlib
+ Related Id(s): PR-7797
+
+ Fix so that ctrl+h, ctrl+backspace in the shell only
+ removes one character instead of a whole word.
+
+
+ OTP-18827 Application(s): stdlib
+ Related Id(s): PR-7797
+
+ Fix so that its possible to override the default
+ keyboard shortcuts for the shell.
+
+
+ OTP-18828 Application(s): stdlib
+ Related Id(s): PR-7799
+
+ Allow shell local func v(), in a restricted shell
+
+
+ OTP-18829 Application(s): stdlib
+ Related Id(s): PR-7799
+
+ Report syntax error when writing an invalid attribute
+ like '1> -hej.'
+
+
+ OTP-18866 Application(s): stdlib
+ Related Id(s): GH-7875, PR-7878
+
+ When attempting to match part of a record in the key of
+ a map generator, the entire record would be matched.
+
+
+ --- Improvements and New Features ---
+
+ OTP-18821 Application(s): stdlib
+ Related Id(s): OTP-18746
+
+ The warning for accidental use of a future
+ triple-quoted string delimiter has been upgraded to
+ instead warn for adjacent strings without intervening
+ white space, which effectively is the same at a string
+ start, but also covers the same situation at a string
+ end.
+
+
+ OTP-18840 Application(s): otp, stdlib
+ Related Id(s): PR-7629
+
+ The removal of the deprecated slave module, originally
+ planned for OTP 27, has been postponed to OTP 29.
+
+
+ OTP-18857 Application(s): stdlib, wx
+ Related Id(s): GH-7685
+
+ Guards have been added to gen_*:start* API functions to
+ catch bad arguments earlier. Before this change, in
+ some cases, a bad argument could tag along and cause
+ the server to fail later, right after start.
+
+
+ Full runtime dependencies of stdlib-5.2: compiler-5.0, crypto-4.5,
+ erts-13.1, kernel-9.0, sasl-3.0
+
+
+ ---------------------------------------------------------------------
+ --- tftp-1.1.1 ------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The tftp-1.1.1 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18815 Application(s): diameter, erts, ftp, inets, kernel,
+ otp, ssh, ssl, stdlib, tftp
+ Related Id(s): PR-7780
+
+ Replaced unintentional Erlang Public License 1.1
+ headers in some files with the intended Apache License
+ 2.0 header.
+
+
+ Full runtime dependencies of tftp-1.1.1: erts-6.0, kernel-6.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- wx-2.4 ----------------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The wx-2.4 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Improvements and New Features ---
+
+ OTP-18857 Application(s): stdlib, wx
+ Related Id(s): GH-7685
+
+ Guards have been added to gen_*:start* API functions to
+ catch bad arguments earlier. Before this change, in
+ some cases, a bad argument could tag along and cause
+ the server to fail later, right after start.
+
+
+ Full runtime dependencies of wx-2.4: erts-12.0, kernel-8.0,
+ stdlib-5.0
+
+
+ ---------------------------------------------------------------------
+ --- xmerl-1.3.34 ----------------------------------------------------
+ ---------------------------------------------------------------------
+
+ The xmerl-1.3.34 application can be applied independently of other
+ applications on a full OTP 26 installation.
+
+ --- Fixed Bugs and Malfunctions ---
+
+ OTP-18799 Application(s): common_test, erl_docgen, xmerl
+ Related Id(s): PR-7695
+
+ Update all <tt> html tags to be <code> instead.
+
+
+ Full runtime dependencies of xmerl-1.3.34: erts-6.0, kernel-3.0,
+ stdlib-2.5
+
+
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+ ---------------------------------------------------------------------
+
diff --git a/release-notes/OTP-27.0-rc1.README.txt b/release-notes/OTP-27.0-rc1.README.txt
new file mode 100644
index 0000000..017c55b
--- /dev/null
+++ b/release-notes/OTP-27.0-rc1.README.txt
@@ -0,0 +1,2307 @@
+Inital Release: OTP 27.0
+Git Tag: OTP-27.0
+Date: 2024-02-14
+Trouble Report Id: OTP-16607, OTP-18568, OTP-18577, OTP-18589,
+ OTP-18590, OTP-18594, OTP-18606, OTP-18608,
+ OTP-18609, OTP-18622, OTP-18639, OTP-18641,
+ OTP-18642, OTP-18648, OTP-18658, OTP-18667,
+ OTP-18668, OTP-18671, OTP-18673, OTP-18680,
+ OTP-18682, OTP-18684, OTP-18699, OTP-18703,
+ OTP-18709, OTP-18713, OTP-18714, OTP-18715,
+ OTP-18716, OTP-18717, OTP-18727, OTP-18741,
+ OTP-18742, OTP-18743, OTP-18744, OTP-18750,
+ OTP-18756, OTP-18761, OTP-18766, OTP-18774,
+ OTP-18778, OTP-18779, OTP-18781, OTP-18783,
+ OTP-18784, OTP-18785, OTP-18786, OTP-18787,
+ OTP-18788, OTP-18789, OTP-18793, OTP-18794,
+ OTP-18795, OTP-18796, OTP-18801, OTP-18804,
+ OTP-18805, OTP-18806, OTP-18807, OTP-18808,
+ OTP-18809, OTP-18813, OTP-18816, OTP-18819,
+ OTP-18820, OTP-18825, OTP-18831, OTP-18834,
+ OTP-18835, OTP-18846, OTP-18847, OTP-18848,
+ OTP-18849, OTP-18852, OTP-18856, OTP-18859,
+ OTP-18860, OTP-18865, OTP-18870, OTP-18874,
+ OTP-18875, OTP-18876, OTP-18878, OTP-18879,
+ OTP-18881, OTP-18887, OTP-18892, OTP-18894,
+ OTP-18898, OTP-18904, OTP-18908, OTP-18912,
+ OTP-18913, OTP-18914, OTP-18916, OTP-18918,
+ OTP-18920, OTP-18922, OTP-18923, OTP-18927,
+ OTP-18928, OTP-18929, OTP-18930, OTP-18934,
+ OTP-18941, OTP-18942, OTP-18944, OTP-18945,
+ OTP-18946, OTP-18947, OTP-18950, OTP-18951,
+ OTP-18954, OTP-18955, OTP-18959, OTP-18961,
+ OTP-18963, OTP-18967, OTP-18972, OTP-18973,
+ OTP-18976, OTP-18977, OTP-18978, OTP-18980
+Seq num: #312, 7809, BL-322, ERIERL-43, ERIERL-964,
+ ERIERL-967, ERIERL-985, GH-4992, GH-6152,
+ GH-6692, GH-6985, GH-7183, GH-7232, GH-7266,
+ GH-7295, GH-7397, GH-7432, GH-7493, GH-7494,
+ GH-7706, GH-7718, GH-8061, OTP-16448,
+ OTP-16608, OTP-16875, OTP-17734, OTP-18746,
+ OTP-18750, PR-6510, PR-6639, PR-6791,
+ PR-6985, PR-7110, PR-7125, PR-7174, PR-7202,
+ PR-7220, PR-7236, PR-7243, PR-7267, PR-7274,
+ PR-7299, PR-7313, PR-7316, PR-7348, PR-7380,
+ PR-7383, PR-7388, PR-7398, PR-7419, PR-7428,
+ PR-7441, PR-7443, PR-7451, PR-7465, PR-7470,
+ PR-7474, PR-7475, PR-7481, PR-7491, PR-7496,
+ PR-7528, PR-7534, PR-7535, PR-7538, PR-7556,
+ PR-7585, PR-7590, PR-7592, PR-7607, PR-7628,
+ PR-7639, PR-7649, PR-7651, PR-7675, PR-7684,
+ PR-7697, PR-7699, PR-7700, PR-7701, PR-7702,
+ PR-7703, PR-7711, PR-7720, PR-7726, PR-7728,
+ PR-7732, PR-7738, PR-7739, PR-7740, PR-7745,
+ PR-7779, PR-7781, PR-7782, PR-7790, PR-7809,
+ PR-7816, PR-7824, PR-7844, PR-7845, PR-7846,
+ PR-7847, PR-7856, PR-7857, PR-7869, PR-7879,
+ PR-7891, PR-7898, PR-7917, PR-7918, PR-7936,
+ PR-7942, PR-7952, PR-7957, PR-7960, PR-7963,
+ PR-7973, PR-7981, PR-7993, PR-8003, PR-8004,
+ PR-8006, PR-8026, PR-8042, PR-8063, PR-8067,
+ PR-8069, PR-8076, PR-8086, PR-8090, PR-8092
+System: OTP
+Release: 27
+Application: asn1-5.3, common_test-1.27, compiler-8.5,
+ crypto-5.5, debugger-5.4, dialyzer-5.2,
+ diameter-2.4, edoc-1.3, eldap-1.3,
+ erl_interface-5.6, erts-14.3, et-1.8,
+ eunit-2.10, ftp-1.3, inets-9.2,
+ jinterface-1.15, kernel-9.3, megaco-4.6,
+ mnesia-4.24, observer-2.16, odbc-2.15,
+ os_mon-2.10, parsetools-2.6, public_key-1.16,
+ reltool-1.1, runtime_tools-2.1, sasl-4.3,
+ snmp-5.16, ssh-5.2, ssl-11.2, stdlib-6.0,
+ syntax_tools-3.2, tftp-1.2, tools-4.0,
+ wx-2.5, xmerl-1.4
+Predecessor: OTP
+
+Check out the git tag OTP-27.0, and build a full OTP system including
+documentation.
+
+# HIGHLIGHTS
+
+- The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the
+ modules `sets`, `ordsets`, and `gb_sets`.
+
+ Own Id: OTP-18622
+ Related Id(s): GH-7183, GH-7232
+
+- The compiler now emits nicer error message for function head mismatches. For
+ example, given:
+
+ a() -> ok;
+ a(_) -> error.
+
+ Erlang/OTP 26 and earlier would emit a diagnostic similar to:
+
+ t.erl:6:1: head mismatch
+ % 6| a(_) -> error.
+ % | ^
+
+ while in Erlang/OTP 27 the diagnostic is similar to:
+
+ t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted?
+ % 6| a(_) -> error.
+ % | ^
+
+ Own Id: OTP-18648
+ Related Id(s): PR-7383
+
+- The compiler will now merge consecutive updates of the same record.
+
+ As an example, the body of the following function will be combined into a
+ single tuple creation instruction:
+
+ -record(r, {a,b,c,d}).
+
+ update(Value) ->
+ R0 = #r{},
+ R1 = R0#r{a=Value},
+ R2 = R1#r{b=2},
+ R2#r{c=3}.
+
+ Own Id: OTP-18680
+ Related Id(s): ERIERL-967, PR-7491, PR-8086
+
+- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0`
+ when using the term equivalence operators (`=:=` and `=/=`).
+
+ The arithmetic equality operators (`==` and `/=`) and all relative
+ comparison operations still consider `0.0` equal to `-0.0`.
+
+ Own Id: OTP-18717
+ Related Id(s): PR-7728
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- The `erl` command now supports the `-S` flag, which is similar to the `-run`
+ flag, except that it will pass all arguments up to end of the command line to
+ the called function. (The `-run` flag will not pass arguments beginning with a
+ hyphen.) Another difference is that `-S` will always call a function with one
+ argument, passing an empty list if no arguments were given.
+
+ Own Id: OTP-18744
+ Related Id(s): PR-7470
+
+- Triple-Quoted Strings has been implemented as per EEP 64. See String in the
+ Reference Manual.
+
+ Example:
+
+ 1> """
+ a
+ b
+ c
+ """.
+ "a\nb\nc"
+
+ Adjacent string literals without intervening white space is now a syntax
+ error, to avoid possible confusion with triple-quoted strings. For example:
+
+ 1> "abc""xyz".
+ "xyz".
+ * 1:6: adjacent string literals without intervening white space
+
+ Own Id: OTP-18750
+ Related Id(s): PR-7313, PR-7451, OTP-18746
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- Several new functions that accept funs have been added to module `timer`.
+
+ Functions `apply_after/2`, `apply_interval/2`, and `apply_repeatedly/2` accept
+ a 0-ary fun as the second argument, while functions `apply_after/3`,
+ `apply_interval/3`, and `apply_repeatedly/3` accept an n-ary fun as the second
+ and a list of n arguments for the fun as the third argument.
+
+ Own Id: OTP-18808
+ Related Id(s): PR-7649
+
+- Sigils on string literals have been implemented as per EEP 66, that is:
+ binary and string sigils in verbatim and escape characters variants, as well
+ as a default (vanilla) Sigil. All for ordinary strings and for triple-quoted
+ strings (EEP 64). See Sigils in the Reference Manual.
+
+ Examples:
+
+ 1> ~"Björn".
+ <<"Björn"/utf8>>
+ 2> ~b"Björn".
+ <<"Björn"/utf8>>
+ 3> ~S"\s*(\w+)".
+ "\\s*(\\w+)"
+ 4> ~B"\s*(\w+)".
+ <<"\\s*(\\w+)">>
+
+ Own Id: OTP-18825
+ Related Id(s): PR-7684, OTP-18750
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the `cover` tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ `line_coverage` option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ $ erl +JPcover true
+
+ There are also the following new functions for supporting native coverage:
+
+ - code:coverage_support/0
+ - code:get_coverage/2
+ - code:reset_coverage/1
+ - code:get_coverage_mode/0
+ - code:get_coverage_mode/1
+ - code:set_coverage_mode/1
+
+ Own Id: OTP-18856
+ Related Id(s): PR-7856
+
+- EEP-59 - Documentation Attributes has been implemented.
+
+ Documentation attributes can be used to document functions, types, callbacks,
+ and modules. The keyword `-moduledoc "Documentation here".` is used to
+ document modules, while `-doc "Documentation here".` can be used on top of
+ functions, types, and callbacks to document them, respectively.
+
+ - Types, callbacks, and function documentation can be set to `hidden` either
+ via `-doc false` or `-doc hidden`. When documentation attributes mark a type
+ as hidden, they will not be part of the documentation.
+ - The documentation from `moduledoc` and `doc` gets added by default to the
+ binary beam file, following the format of EEP-48.
+ - Using the compiler flag `warn_missing_doc` will raise a warning when doc.
+ attributes are missing in exported functions, types, and callbacks.
+ - `moduledoc`s and `doc`s may refer to external files to be embedded, such as
+ `-doc {file, "README.md"}.`, which refers to the file `README.md` found in
+ the current working directory.
+ - The compiler warns about exported functions whose specs refer to hidden
+ types. Thus, there will be warnings when a hidden type (meaning, the type is
+ not part of the documentation) gets used in an exported function.
+
+ Own Id: OTP-18916
+ Related Id(s): PR-7936
+
+- New `ets` functions ets:first_lookup/1, ets:next_lookup/2,
+ ets:prev_lookup/2 and ets:last_lookup/1. Example: ets:next_lookup/1 is
+ equivalent to ets:next/2 followed by ets:lookup/2 with the next key. The
+ new combined functions are more efficient and with guaranteed atomicity.
+
+ Own Id: OTP-18923
+ Related Id(s): PR-6791
+
+- The `maybe` expression is now enabled by default.
+
+ To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the
+ `maybe` expression can be disabled by disabling the `maybe_expr` feature. That
+ can be done by placing the following the line at the beginning of an Erlang
+ source file:
+
+ -feature(maybe_expr, disable).
+
+ Another way to disable the `maybe_expr` feature is by passing the
+ `-disable-feature` option to `erlc`:
+
+ erlc -disable-feature maybe_expr some_file.erl
+
+ Own Id: OTP-18944
+ Related Id(s): PR-8067
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+- Safe destructive update of tuples has been implemented in the compiler and
+ runtime system. This allows the VM to update tuples in-place when it is safe
+ to do so, thus improving performance by doing less copying but also by
+ producing less garbage.
+
+ Example:
+
+ -record(rec, {a,b,c}).
+
+ update(#rec{a=needs_update,b=N}=R0) ->
+ R = R0#rec{a=up_to_date},
+ if
+ N < 0 ->
+ R#rec{c=negative};
+ N == 0 ->
+ R#rec{c=zero};
+ N > 0 ->
+ R#rec{c=positive}
+ end.
+
+ The record updates in each of the three clauses of the `if` can safely be done
+ in-place, because variable `R` is not used again.
+
+ Own Id: OTP-18972
+ Related Id(s): PR-8090
+
+- Multiple trace sessions.
+
+ Own Id: OTP-18980
+
+# POTENTIAL INCOMPATIBILITIES
+
+- The `pid` field has been removed from `erlang:fun_info/1,2`.
+
+ Own Id: OTP-18594
+ Related Id(s): PR-7274
+
+- By default, escripts will now be compiled instead of interpreted. That means
+ that the `compiler` application must be installed.
+
+ Own Id: OTP-18639
+ Related Id(s): PR-7348
+
+- Introduce default value for httpd_server name configuration to improve ease of
+ use.
+
+ Own Id: OTP-18641
+ Related Id(s): PR-7316
+
+- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0`
+ when using the term equivalence operators (`=:=` and `=/=`).
+
+ The arithmetic equality operators (`==` and <c>/=</c>) and all relative
+ comparison operations still consider `0.0` equal to `-0.0`.
+
+ Own Id: OTP-18717
+ Related Id(s): PR-7728
+
+ *** HIGHLIGHT ***
+
+- Triple-Quoted Strings has been implemented as per EEP 64. See String in the
+ Reference Manual.
+
+ Example:
+
+ 1> """
+ a
+ b
+ c
+ """.
+ "a\nb\nc"
+
+ Adjacent string literals without intervening white space is now a syntax
+ error, to avoid possible confusion with triple-quoted strings. For example:
+
+ 1> "abc""xyz".
+ "xyz".
+ * 1:6: adjacent string literals without intervening white space
+
+ Own Id: OTP-18750
+ Related Id(s): PR-7313, PR-7451, OTP-18746
+
+ *** HIGHLIGHT ***
+
+- The documentation for the preprocessor now mentions that `defined(Name)` can
+ be called in the condition for an `-if` or `-elif` directive to test whether
+ `Name` is the name of a defined macro. (This feature was implemented in OTP
+ 21.)
+
+ If a function call in an `-if` or `-elif` with a name that is not the name of
+ a guard BIF, there would not be a compilation error, but would instead cause
+ the lines following the directive to be skipped. This has now been changed to
+ be a compilation error.
+
+ Own Id: OTP-18784
+ Related Id(s): GH-7706, PR-7726
+
+# OTP-27.0
+
+## Fixed Bugs and Malfunctions
+
+- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0`
+ when using the term equivalence operators (`=:=` and `=/=`).
+
+ The arithmetic equality operators (`==` and <c>/=</c>) and all relative
+ comparison operations still consider `0.0` equal to `-0.0`.
+
+ Own Id: OTP-18717
+ Related Id(s): PR-7728
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- The documentation for the preprocessor now mentions that `defined(Name)` can
+ be called in the condition for an `-if` or `-elif` directive to test whether
+ `Name` is the name of a defined macro. (This feature was implemented in OTP
+ 21.)
+
+ If a function call in an `-if` or `-elif` with a name that is not the name of
+ a guard BIF, there would not be a compilation error, but would instead cause
+ the lines following the directive to be skipped. This has now been changed to
+ be a compilation error.
+
+ Own Id: OTP-18784
+ Related Id(s): GH-7706, PR-7726
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+## Improvements and New Features
+
+- The `maybe` expression is now enabled by default.
+
+ To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the
+ `maybe` expression can be disabled by disabling the `maybe_expr` feature. That
+ can be done by placing the following the line at the beginning of an Erlang
+ source file:
+
+ -feature(maybe_expr, disable).
+
+ Another way to disable the `maybe_expr` feature is by passing the
+ `-disable-feature` option to `erlc`:
+
+ erlc -disable-feature maybe_expr some_file.erl
+
+ Own Id: OTP-18944
+ Related Id(s): PR-8067
+
+ *** HIGHLIGHT ***
+
+# asn1-5.3
+
+## Fixed Bugs and Malfunctions
+
+- Multiple bugs has been eliminated in the specialized decode feature.
+
+ Own Id: OTP-18813
+ Related Id(s): PR-7790
+
+## Improvements and New Features
+
+- Specs have been added to all `asn1ct` API functions.
+
+ Own Id: OTP-18804
+ Related Id(s): PR-7738
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of asn1-5.3
+>
+> erts-14.0, kernel-9.0, stdlib-5.0
+
+# common_test-1.27
+
+## Improvements and New Features
+
+- Calls to ct:capture_start/0 and ct:capture_stop/0 are now synchronous to
+ ensure that all output is captured.
+
+ Own Id: OTP-18658
+ Related Id(s): PR-7380
+
+- The order in which multiple hooks are executed can now be reversed after each
+ config function. See CTH Execution Order.
+
+ Own Id: OTP-18682
+ Related Id(s): ERIERL-43, GH-7397, PR-7496
+
+- The default CSS will now include a basic dark mode handling if it is preferred
+ by the browser.
+
+ Own Id: OTP-18761
+ Related Id(s): PR-7428
+
+- `-callback` attributes have been added to `ct_suite` and `ct_hooks`.
+
+ Own Id: OTP-18781
+ Related Id(s): PR-7701
+
+- The built-in cth_log_redirect hook can now be configured to replace default
+ logger reports in terminal with HTML logs.
+
+ Own Id: OTP-18875
+ Related Id(s): PR-7891
+
+- Error handling for the `ct_property_test` framework has been enhanced.
+
+ Own Id: OTP-18881
+ Related Id(s): PR-7824
+
+- Enhance test case documentation, making it clear how a test case can be
+ failed.
+
+ Own Id: OTP-18892
+ Related Id(s): PR-7869
+
+- The failing line in the test source code is now colored to make it easier to
+ find on the screen.
+
+ Own Id: OTP-18898
+ Related Id(s): PR-7917
+
+- Function specifications and types have been added to all public API functions.
+
+ Own Id: OTP-18913
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of common_test-1.27
+>
+> compiler-6.0, crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0,
+> kernel-8.4, observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+> stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+# compiler-8.5
+
+## Fixed Bugs and Malfunctions
+
+- Generators for binary comprehensions could be evaluated before it was known
+ that they would be needed. That could result in a binary comprehensions
+ failing if a generator that should not be evaluated until later failed.
+
+ As an example, consider this module:
+
+ -module(t).
+ -export([f/0]).
+
+ f() ->
+ <<0 || _ <- [], _ <- ok, false>>.
+
+ In Erlang/OTP 26 it would fail like so:
+
+ > t:f().
+ ** exception error: bad generator ok
+ in function t:f/0 (t.erl, line 6)
+
+ In Erlang/OTP 27 it returns an empty binary:
+
+ > t:f().
+ <<>>
+
+ Own Id: OTP-18703
+ Related Id(s): GH-7494, PR-7538
+
+- The documentation for the preprocessor now mentions that `defined(Name)` can
+ be called in the condition for an `-if` or `-elif` directive to test whether
+ `Name` is the name of a defined macro. (This feature was implemented in OTP
+ 21.)
+
+ If a function call in an `-if` or `-elif` with a name that is not the name of
+ a guard BIF, there would not be a compilation error, but would instead cause
+ the lines following the directive to be skipped. This has now been changed to
+ be a compilation error.
+
+ Own Id: OTP-18784
+ Related Id(s): GH-7706, PR-7726
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+## Improvements and New Features
+
+- The compiler now emits nicer error message for function head mismatches. For
+ example, given:
+
+ a() -> ok;
+ a(_) -> error.
+
+ Erlang/OTP 26 and earlier would emit a diagnostic similar to:
+
+ t.erl:6:1: head mismatch
+ % 6| a(_) -> error.
+ % | ^
+
+ while in Erlang/OTP 27 the diagnostic is similar to:
+
+ t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted?
+ % 6| a(_) -> error.
+ % | ^
+
+ Own Id: OTP-18648
+ Related Id(s): PR-7383
+
+ *** HIGHLIGHT ***
+
+- The compiler now optimizes creation of binaries that are known to be constant.
+
+ Consider this example:
+
+ bin() ->
+ C = char(),
+ <<C>>.
+
+ char() -> $*.
+
+ Essentially, the compiler rewrites the example to the slightly more efficient:
+
+ bin() ->
+ _ = char(),
+ <<$*>>.
+
+ char() -> $*.
+
+ Own Id: OTP-18673
+ Related Id(s): ERIERL-964, PR-7474
+
+- The compiler will now merge consecutive updates of the same record.
+
+ As an example, the body of the following function will be combined into a
+ single tuple creation instruction:
+
+ -record(r, {a,b,c,d}).
+
+ update(Value) ->
+ R0 = #r{},
+ R1 = R0#r{a=Value},
+ R2 = R1#r{b=2},
+ R2#r{c=3}.
+
+ Own Id: OTP-18680
+ Related Id(s): ERIERL-967, PR-7491, PR-8086
+
+ *** HIGHLIGHT ***
+
+- Improved the performance of the alias analysis pass.
+
+ Own Id: OTP-18714
+ Related Id(s): GH-7432, PR-7528
+
+- `-spec` attributes are now used for documentation.
+
+ Own Id: OTP-18801
+ Related Id(s): PR-7739
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the `cover` tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ `line_coverage` option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ $ erl +JPcover true
+
+ There are also the following new functions for supporting native coverage:
+
+ - code:coverage_support/0
+ - code:get_coverage/2
+ - code:reset_coverage/1
+ - code:get_coverage_mode/0
+ - code:get_coverage_mode/1
+ - code:set_coverage_mode/1
+
+ Own Id: OTP-18856
+ Related Id(s): PR-7856
+
+ *** HIGHLIGHT ***
+
+- EEP-59 - Documentation Attributes has been implemented.
+
+ Documentation attributes can be used to document functions, types, callbacks,
+ and modules. The keyword `-moduledoc "Documentation here".` is used to
+ document modules, while `-doc "Documentation here".` can be used on top of
+ functions, types, and callbacks to document them, respectively.
+
+ - Types, callbacks, and function documentation can be set to `hidden` either
+ via `-doc false` or `-doc hidden`. When documentation attributes mark a type
+ as hidden, they will not be part of the documentation.
+ - The documentation from `moduledoc` and `doc` gets added by default to the
+ binary beam file, following the format of EEP-48.
+ - Using the compiler flag `warn_missing_doc` will raise a warning when doc.
+ attributes are missing in exported functions, types, and callbacks.
+ - `moduledoc`s and `doc`s may refer to external files to be embedded, such as
+ `-doc {file, "README.md"}.`, which refers to the file `README.md` found in
+ the current working directory.
+ - The compiler warns about exported functions whose specs refer to hidden
+ types. Thus, there will be warnings when a hidden type (meaning, the type is
+ not part of the documentation) gets used in an exported function.
+
+ Own Id: OTP-18916
+ Related Id(s): PR-7936
+
+ *** HIGHLIGHT ***
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+- Safe destructive update of tuples has been implemented in the compiler and
+ runtime system. This allows the VM to update tuples in-place when it is safe
+ to do so, thus improving performance by doing less copying but also by
+ producing less garbage.
+
+ Example:
+
+ -record(rec, {a,b,c}).
+
+ update(#rec{a=needs_update,b=N}=R0) ->
+ R = R0#rec{a=up_to_date},
+ if
+ N < 0 ->
+ R#rec{c=negative};
+ N == 0 ->
+ R#rec{c=zero};
+ N > 0 ->
+ R#rec{c=positive}
+ end.
+
+ The record updates in each of the three clauses of the `if` can safely be done
+ in-place, because variable `R` is not used again.
+
+ Own Id: OTP-18972
+ Related Id(s): PR-8090
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of compiler-8.5
+>
+> crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0
+
+# crypto-5.5
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+- Removed functions `crypto_dyn_iv_init/3` and `crypto_dyn_iv_update/3` which
+ were marked as deprecated since OTP 25.
+
+ Own Id: OTP-18973
+
+- `OPENSSL_thread_stop` is called when `crypto` is purged to not leak thread
+ specific data.
+
+ Own Id: OTP-18978
+ Related Id(s): 7809
+
+> #### Full runtime dependencies of crypto-5.5
+>
+> erts-9.0, kernel-5.3, stdlib-3.9
+
+# debugger-5.4
+
+## Fixed Bugs and Malfunctions
+
+- The dependencies for this application are now listed in the app file.
+
+ Own Id: OTP-18831
+ Related Id(s): PR-7441
+
+## Improvements and New Features
+
+- Type specs have been added to all API functions.
+
+ Own Id: OTP-18819
+ Related Id(s): PR-7781
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of debugger-5.4
+>
+> compiler-8.0, erts-14.3, kernel-8.0, stdlib-3.15, wx-2.0
+
+# dialyzer-5.2
+
+## Improvements and New Features
+
+- The `--gui` option for Dialyzer has been removed.
+
+ Own Id: OTP-18667
+ Related Id(s): PR-7443
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of dialyzer-5.2
+>
+> compiler-8.0, erts-12.0, kernel-8.0, stdlib-5.0, syntax_tools-2.0
+
+# diameter-2.4
+
+## Improvements and New Features
+
+- `-callback` attributes have been added to `diameter_app` and
+ `diameter_transport`.
+
+ Own Id: OTP-18783
+ Related Id(s): PR-7699
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of diameter-2.4
+>
+> erts-10.0, kernel-3.2, ssl-9.0, stdlib-5.0
+
+# edoc-1.3
+
+## Fixed Bugs and Malfunctions
+
+- EEP 48 doc chunks now properly include links within `{@type }` macros.
+
+ Own Id: OTP-18945
+ Related Id(s): PR-8063
+
+- `@hidden` now means `hidden` in EEP 48 doc chunks instead of `none`.
+
+ Own Id: OTP-18946
+ Related Id(s): PR-8063
+
+## Improvements and New Features
+
+- There is a new `edoc_html_to_markdown` module that can be used to convert
+ EEP-48 `application/html+erlang` to Markdown.
+
+ Own Id: OTP-18947
+ Related Id(s): PR-8063
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of edoc-1.3
+>
+> erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7
+
+# eldap-1.3
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of eldap-1.3
+>
+> asn1-3.0, erts-6.0, kernel-3.0, ssl-5.3.4, stdlib-3.4
+
+# erl_interface-5.6
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+## Known Bugs and Problems
+
+- The `ei` API for decoding/encoding terms is not fully 64-bit compatible since
+ terms that have a representation on the external term format larger than 2 GB
+ cannot be handled.
+
+ Own Id: OTP-16607
+ Related Id(s): OTP-16608
+
+# erts-14.3
+
+## Fixed Bugs and Malfunctions
+
+- Fix bugs in how `erl -extra` interacts with passing flags via ERL\_\*FLAGS or
+ `-args_file`.
+
+ Own Id: OTP-18766
+ Related Id(s): PR-7639
+
+- Fixed a bug that prevented the emulator from building on recent versions of
+ Yocto Linux.
+
+ Own Id: OTP-18918
+ Related Id(s): PR-7952
+
+- Fix spectre mitigation configure test to work with GCC patches to always add
+ `-fcf-protection=full`.
+
+ Own Id: OTP-18928
+ Related Id(s): PR-8006
+
+## Improvements and New Features
+
+- Refactored how the JIT handles POSIX signals and how they affect thread
+ stacks, allowing us to use the native stack register for Erlang stacks on more
+ platforms.
+
+ Notably, containers built on 64-bit x86 Alpine Linux images will now perform
+ much better in sequential code. As an example, running `dialyzer` over the OTP
+ code base finishes about 15% quicker.
+
+ Own Id: OTP-18568
+ Related Id(s): PR-7174
+
+- The `instrument` module can now track allocations on a per-process or
+ per-port basis.
+
+ Own Id: OTP-18577
+ Related Id(s): PR-7236
+
+- The `pid` field has been removed from `erlang:fun_info/1,2`.
+
+ Own Id: OTP-18594
+ Related Id(s): PR-7274
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- By default, escripts will now be compiled instead of interpreted. That means
+ that the `compiler` application must be installed.
+
+ Own Id: OTP-18639
+ Related Id(s): PR-7348
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- A binary returned from the `socket` receive functions is no longer created
+ as a sub binary of an often large receive buffer binary (socket option
+ `{otp,rcvbuf}`). This avoids space waste, trusting the allocators to implement
+ reallocation efficiently.
+
+ Own Id: OTP-18642
+ Related Id(s): GH-6152, PR-7465
+
+- The default process limit has been raised to `1048576` processes.
+
+ Own Id: OTP-18699
+ Related Id(s): PR-7388
+
+- The erlang:system_monitor/2 functionality is now able to monitor long
+ message queues in the system.
+
+ Own Id: OTP-18709
+ Related Id(s): PR-7651
+
+- The `erl` command now supports the `-S` flag, which is similar to the `-run`
+ flag, except that it will pass all arguments up to end of the command line to
+ the called function. (The `-run` flag will not pass arguments beginning with a
+ hyphen.) Another difference is that `-S` will always call a function with one
+ argument, passing an empty list if no arguments were given.
+
+ Own Id: OTP-18744
+ Related Id(s): PR-7470
+
+ *** HIGHLIGHT ***
+
+- When implementing an alternative carrier for the Erlang distribution, a
+ separate input handler process may now be registered, using
+ erlang:dist_ctrl_input_handler/2, also in the case when the distribution
+ controller is a port.
+
+ Own Id: OTP-18774
+ Related Id(s): PR-7110
+
+- Add call stack trace to the error reported by erlang:process_flag/2 when
+ `max_heap_size` has been exceeded.
+
+ Own Id: OTP-18779
+ Related Id(s): PR-7592
+
+- `-callback` attributes have been added to `erl_tracer`.
+
+ Own Id: OTP-18794
+ Related Id(s): PR-7703
+
+- For `inet_backend = socket`, setting the `active` socket option alone, to
+ `once`, `true` or `N`, has been optimized, as well as the corresponding data
+ delivery.
+
+ Own Id: OTP-18835
+
+- Socket options that take string now also accept binaries.
+
+ Own Id: OTP-18849
+ Related Id(s): PR-6510
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the `cover` tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ `line_coverage` option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ $ erl +JPcover true
+
+ There are also the following new functions for supporting native coverage:
+
+ - code:coverage_support/0
+ - code:get_coverage/2
+ - code:reset_coverage/1
+ - code:get_coverage_mode/0
+ - code:get_coverage_mode/1
+ - code:set_coverage_mode/1
+
+ Own Id: OTP-18856
+ Related Id(s): PR-7856
+
+ *** HIGHLIGHT ***
+
+- Changed the default value of the command line flag `-code_path_choice Choice`
+ to `strict`.
+
+ Own Id: OTP-18894
+ Related Id(s): PR-7243
+
+- Added module loading to `erl -init_debug` printouts.
+
+ Own Id: OTP-18929
+ Related Id(s): PR-8004
+
+- Optimized code loading by moving certain operations from the code server to
+ the caller.
+
+ Own Id: OTP-18941
+ Related Id(s): PR-7981
+
+- Updated asmjit to version a465fe71ab3d0e224b2b4bd0fac69ae68ab9239d
+
+ Own Id: OTP-18942
+
+- The deprecated functions in `zlib` have been removed. That includes
+ `inflateChunk/{1,2}`, `getBufSize/1`, `setBufSize/2`, the CRC32 functions, and
+ the Adler checksum functions.
+
+ Own Id: OTP-18950
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+- Safe destructive update of tuples has been implemented in the compiler and
+ runtime system. This allows the VM to update tuples in-place when it is safe
+ to do so, thus improving performance by doing less copying but also by
+ producing less garbage.
+
+ Example:
+
+ -record(rec, {a,b,c}).
+
+ update(#rec{a=needs_update,b=N}=R0) ->
+ R = R0#rec{a=up_to_date},
+ if
+ N < 0 ->
+ R#rec{c=negative};
+ N == 0 ->
+ R#rec{c=zero};
+ N > 0 ->
+ R#rec{c=positive}
+ end.
+
+ The record updates in each of the three clauses of the `if` can safely be done
+ in-place, because variable `R` is not used again.
+
+ Own Id: OTP-18972
+ Related Id(s): PR-8090
+
+ *** HIGHLIGHT ***
+
+- The obsolete and undocumented support for opening a port to an external
+ resource by passing an atom (or a string) as first argument to `open_port()`,
+ implemented by the vanilla driver, has been removed. This feature has been
+ scheduled for removal in OTP 27 since the release of OTP 26.
+
+ Own Id: OTP-18976
+ Related Id(s): PR-7125
+
+- Add optional NIF callback `ERL_NIF_OPT_ON_UNLOAD_THREAD` to be called by all
+ scheduler thread when a NIF library is unloaded. Used for releasing thread
+ specific data. Can be set with function `enif_set_option`.
+
+ Own Id: OTP-18977
+ Related Id(s): PR-7809
+
+- Multiple trace sessions.
+
+ Own Id: OTP-18980
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of erts-14.3
+>
+> kernel-9.0, sasl-3.3, stdlib-4.1
+
+# et-1.8
+
+## Fixed Bugs and Malfunctions
+
+- The dependencies for this application are now listed in the app file.
+
+ Own Id: OTP-18831
+ Related Id(s): PR-7441
+
+- Dialyzer warnings due to type specs added in `dbg` have been eliminated.
+
+ Own Id: OTP-18860
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of et-1.8
+>
+> erts-9.0, kernel-5.3, runtime_tools-1.10, stdlib-3.4, wx-1.2
+
+# eunit-2.10
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of eunit-2.10
+>
+> erts-9.0, kernel-5.3, stdlib-3.4
+
+# ftp-1.3
+
+## Fixed Bugs and Malfunctions
+
+- Dialyzer warnings due to type specs added in `dbg` have been eliminated.
+
+ Own Id: OTP-18860
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of ftp-1.3
+>
+> erts-7.0, kernel-6.0, runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+# inets-9.2
+
+## Improvements and New Features
+
+- Introduce default value for httpd_server name configuration to improve ease of
+ use.
+
+ Own Id: OTP-18641
+ Related Id(s): PR-7316
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- With this change, `erl -S httpd` command can be used for serving current
+ directory content over HTTP.
+
+ Own Id: OTP-18727
+ Related Id(s): PR-7299
+
+- Add `-callback` attributes to `httpd`, `mod_esi` and `mod_security`.
+
+ Own Id: OTP-18786
+ Related Id(s): PR-7700
+
+- Use a relative redirect with an absolute path to prevent whoever is running
+ inets from having to configure the ServerName to match the network-reachable
+ hostname of the server.
+
+ Own Id: OTP-18809
+
+- Use proc_lib:set_label/1 to increase observability of inets processes.
+
+ Own Id: OTP-18927
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of inets-9.2
+>
+> erts-14.0, kernel-9.0, mnesia-4.12, public_key-1.13, runtime_tools-1.8.14,
+> ssl-9.0, stdlib-5.0, stdlib-6.0
+
+# jinterface-1.15
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+# kernel-9.3
+
+## Fixed Bugs and Malfunctions
+
+- Fixed a crash when calling file:delete/2 with an empty option list.
+
+ Own Id: OTP-18590
+ Related Id(s): PR-7220
+
+- New functions have been added to the undocumented module `inet_dns` that
+ take a flag to specify if encode/decode is for mDNS. This affects how CLASS
+ values in the private range, with the top bit set, are handled.
+
+ Own Id: OTP-18878
+ Related Id(s): GH-7718, OTP-17734
+
+- The error information for erlang:phash/2 has been corrected.
+
+ Own Id: OTP-18904
+ Related Id(s): PR-7960
+
+- `get_until` requests using the I/O protocol now correctly return a binary or
+ list when `eof` is the last item returned by the callback.
+
+ Own Id: OTP-18930
+ Related Id(s): GH-4992, PR-7993
+
+- Calling logger:add_handlers/1 with config option now works.
+
+ Own Id: OTP-18954
+ Related Id(s): GH-8061, PR-8076
+
+- The code:del_path/1 function now also works on paths added through `-pa`,
+ `-pz` , `-path` and the boot script.
+
+ Own Id: OTP-18959
+ Related Id(s): GH-6692, PR-7697
+
+## Improvements and New Features
+
+- Added file:read_file/2 with a `raw` option for reading files without going
+ through the file server.
+
+ Own Id: OTP-18589
+ Related Id(s): PR-7220
+
+- The undocumented Erlang DNS resolver library (`inet_dns` and `inet_res`) has
+ been augmented to handle IXFR, NOTIFY, UPDATE and TSIG records. With this some
+ bug fixes and code cleanup has been done, and the resolver used in the test
+ suite has been changed to Knot DNS. See the source code.
+
+ Kudos to Alexander Clouter that did almost all the work!
+
+ Own Id: OTP-18713
+ Related Id(s): GH-6985, PR-6985
+
+- The `ebin` directories for escripts are now cached.
+
+ Own Id: OTP-18778
+ Related Id(s): PR-7556
+
+- Add `-callback` attributes to `application`, `logger_handler` and
+ `logger_formatter`.
+
+ Own Id: OTP-18795
+ Related Id(s): PR-7703
+
+- Progress reports from before logger is started are now logged when log level
+ is set to debug.
+
+ Own Id: OTP-18807
+ Related Id(s): ERIERL-985, PR-7732
+
+- The code:where_is_file/2 and code:which/1 functions now check for
+ existence of the file directly instead of listing the content of each
+ directory in the code path.
+
+ Own Id: OTP-18816
+ Related Id(s): PR-7711
+
+- Type specs has been added to the `logger:Level/1,2,3` functions.
+
+ Own Id: OTP-18820
+ Related Id(s): PR-7779
+
+- For `inet_backend = socket`, setting the `active` socket option alone, to
+ `once`, `true` or `N`, has been optimized, as well as the corresponding data
+ delivery.
+
+ Own Id: OTP-18835
+
+- The shell now pages long output from the help command (`h(Module)`), auto
+ completions and the search command.
+
+ Own Id: OTP-18846
+ Related Id(s): PR-7845
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the `cover` tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ `line_coverage` option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ $ erl +JPcover true
+
+ There are also the following new functions for supporting native coverage:
+
+ - code:coverage_support/0
+ - code:get_coverage/2
+ - code:reset_coverage/1
+ - code:get_coverage_mode/0
+ - code:get_coverage_mode/1
+ - code:set_coverage_mode/1
+
+ Own Id: OTP-18856
+ Related Id(s): PR-7856
+
+ *** HIGHLIGHT ***
+
+- Optimized code loading by moving certain operations from the code server to
+ the caller.
+
+ Own Id: OTP-18941
+ Related Id(s): PR-7981
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+- Application startup has been optimized by removing an intermediary process.
+
+ Own Id: OTP-18963
+ Related Id(s): PR-8042
+
+- The undocumented and deprecated `file:pid2name` function has been removed.
+
+ Own Id: OTP-18967
+ Related Id(s): PR-8092
+
+> #### Full runtime dependencies of kernel-9.3
+>
+> crypto-5.0, erts-14.3, sasl-3.0, stdlib-6.0
+
+# megaco-4.6
+
+## Improvements and New Features
+
+- `-callback` attributes have been added to `megaco_transport`.
+
+ Own Id: OTP-18806
+ Related Id(s): PR-7740
+
+- Updated types and specs for all API modules.
+
+ Own Id: OTP-18920
+ Related Id(s): BL-322
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of megaco-4.6
+>
+> asn1-3.0, debugger-4.0, erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14,
+> stdlib-2.5
+
+# mnesia-4.24
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of mnesia-4.24
+>
+> erts-9.0, kernel-5.3, stdlib-5.0
+
+# observer-2.16
+
+## Fixed Bugs and Malfunctions
+
+- The dependencies for this application are now listed in the app file.
+
+ Own Id: OTP-18831
+ Related Id(s): PR-7441
+
+## Improvements and New Features
+
+- The new function proc_lib:set_label/1 can be used to add a descriptive term
+ to any process that does not have a registered name. The name will be shown by
+ tools such as `\c:i/0`, `observer`, and it will be included in crash reports
+ produced by processes using `gen_server`, `gen_statem`, `gen_event`, and
+ `gen_fsm`.
+
+ The label for a process can be retrieved by calling proc_lib:get_label/1.
+
+ Note that those functions work on any process, not only processes that use
+ `proc_lib`.
+
+ Example:
+
+ 1> self().
+ <0.90.0>
+ 2> proc_lib:set_label(my_label).
+ ok
+ 3> i().
+ .
+ .
+ .
+ <0.90.0> erlang:apply/2 2586 75011 0
+ my_label c:pinfo/2 51
+ 4> proc_lib:get_label(self()).
+ my_label
+
+ Own Id: OTP-18789
+ Related Id(s): PR-7720, PR-8003
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of observer-2.16
+>
+> erts-14.0, et-1.5, kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3
+
+# odbc-2.15
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of odbc-2.15
+>
+> erts-6.0, kernel-3.0, stdlib-2.0
+
+# os_mon-2.10
+
+## Improvements and New Features
+
+- Function specifications and types have been added to all public API functions.
+
+ Own Id: OTP-18913
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of os_mon-2.10
+>
+> erts-14.0, kernel-9.0, sasl-4.2.1, stdlib-5.0
+
+# parsetools-2.6
+
+## Improvements and New Features
+
+- The `leex` documentation has been updated to use specs for documenting the
+ generated interface.
+
+ Own Id: OTP-18796
+ Related Id(s): PR-7703
+
+- yecc now wraps the `-module` attribute with `-file` to indicate the `.yrl`
+ source file.
+
+ Own Id: OTP-18912
+ Related Id(s): PR-7963
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of parsetools-2.6
+>
+> erts-6.0, kernel-3.0, stdlib-3.4
+
+# public_key-1.16
+
+## Improvements and New Features
+
+- The `ssl` client can negotiate and handle certificate status request (OCSP
+ stapling support on the client side).
+
+ Own Id: OTP-18606
+ Related Id(s): OTP-16448, OTP-16875
+
+- Improved exception reason when public_key:cacerts_get/0 failed.
+
+ Own Id: OTP-18609
+ Related Id(s): GH-7295, PR-7202
+
+- Key customization support has been extended to allow flexibility for
+ implementers of for instance hardware security modules (HSM) or trusted
+ platform modules (TPM).
+
+ Own Id: OTP-18876
+ Related Id(s): PR-7475, PR-7898
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of public_key-1.16
+>
+> asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5
+
+# reltool-1.1
+
+## Fixed Bugs and Malfunctions
+
+- The dependencies for this application are now listed in the app file.
+
+ Own Id: OTP-18831
+ Related Id(s): PR-7441
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of reltool-1.1
+>
+> erts-14.3, kernel-9.0, sasl-4.2.1, stdlib-5.0, tools-2.6.14, wx-2.3
+
+# runtime_tools-2.1
+
+## Improvements and New Features
+
+- The `instrument` module can now track allocations on a per-process or
+ per-port basis.
+
+ Own Id: OTP-18577
+ Related Id(s): PR-7236
+
+- The new function proc_lib:set_label/1 can be used to add a descriptive term
+ to any process that does not have a registered name. The name will be shown by
+ tools such as `\c:i/0`, `observer`, and it will be included in crash reports
+ produced by processes using `gen_server`, `gen_statem`, `gen_event`, and
+ `gen_fsm`.
+
+ The label for a process can be retrieved by calling proc_lib:get_label/1.
+
+ Note that those functions work on any process, not only processes that use
+ `proc_lib`.
+
+ Example:
+
+ 1> self().
+ <0.90.0>
+ 2> proc_lib:set_label(my_label).
+ ok
+ 3> i().
+ .
+ .
+ .
+ <0.90.0> erlang:apply/2 2586 75011 0
+ my_label c:pinfo/2 51
+ 4> proc_lib:get_label(self()).
+ my_label
+
+ Own Id: OTP-18789
+ Related Id(s): PR-7720, PR-8003
+
+- Type specs had been added to all `dbg` functions.
+
+ Own Id: OTP-18859
+ Related Id(s): PR-7782
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of runtime_tools-2.1
+>
+> erts-14.2, kernel-8.1, mnesia-4.12, stdlib-6.0
+
+# sasl-4.3
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of sasl-4.3
+>
+> erts-14.3, kernel-6.0, stdlib-4.0, tools-2.6.14
+
+# snmp-5.16
+
+## Improvements and New Features
+
+- `-callback` attributes have been added to modules
+ `snmpa_network_interface_filter`, `snmpa_notification_filter`,
+ `snmpm_network_interface_filter`, `snmpm_user`, and
+ `snmpa_notification_delivery_info_receiver`.
+
+ New `-type` attributes have also been added to modules `snmp`, `snmpa`,
+ `snmpm`, and `snmpa_conf` to support the previously mentioned callbacks.
+
+ Own Id: OTP-18785
+ Related Id(s): PR-7702
+
+- Updated types and specs for all API modules.
+
+ Own Id: OTP-18934
+ Related Id(s): #312
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of snmp-5.16
+>
+> crypto-4.6, erts-12.0, kernel-8.0, mnesia-4.12, runtime_tools-1.8.14,
+> stdlib-5.0
+
+# ssh-5.2
+
+## Improvements and New Features
+
+- The shell now pages long output from the help command (`h(Module)`), auto
+ completions and the search command.
+
+ Own Id: OTP-18846
+ Related Id(s): PR-7845
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+- Updated types and specs for all API modules.
+
+ Own Id: OTP-18961
+
+> #### Full runtime dependencies of ssh-5.2
+>
+> crypto-5.0, erts-14.0, kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1,
+> stdlib-5.0, stdlib-5.0
+
+# ssl-11.2
+
+## Fixed Bugs and Malfunctions
+
+- Starting a TLS server without sufficient credentials (certificate or anonymous
+ cipher) would work, but it was impossible to connect to it.
+
+ This has been corrected to return an error instead of starting the server.
+
+ Own Id: OTP-18887
+ Related Id(s): GH-7493, PR-7918
+
+## Improvements and New Features
+
+- The `ssl` client can negotiate and handle certificate status request (OCSP
+ stapling support on the client side).
+
+ Own Id: OTP-18606
+ Related Id(s): OTP-16448, OTP-16875
+
+- Added ssl_crl_cache_api:lookup/2 as an optional `-callback` attribute.
+
+ Own Id: OTP-18788
+ Related Id(s): PR-7700
+
+- Key customization support has been extended to allow flexibility for
+ implementers of for instance hardware security modules (HSM) or trusted
+ platform modules (TPM).
+
+ Own Id: OTP-18876
+ Related Id(s): PR-7475, PR-7898
+
+- The proc_lib:set_label/1 function is now used to increase observability of
+ `ssl` processes.
+
+ Own Id: OTP-18879
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of ssl-11.2
+>
+> crypto-5.0, erts-14.3, inets-5.10.7, kernel-9.0, public_key-1.16,
+> runtime_tools-1.15.1, stdlib-6.0
+
+# stdlib-6.0
+
+## Fixed Bugs and Malfunctions
+
+- The specs in module `binary` has been updated to reflect what is allowed by
+ the documentation.
+
+ Own Id: OTP-18684
+ Related Id(s): PR-7481
+
+- Several functions in the `binary` module would accept arguments of the wrong
+ type under certain circumstances. In this release, they now raise an exception
+ when incorrect types are given.
+
+ The following functions would accept an invalid pattern if the subject binary
+ was empty or if the `{scope,{0,0}}` option was given: `binary:match/2,3`,
+ `binary:matches/2,3`, `binary:replace/3,4`, and `binary:split/2,3`
+
+ The call `binary:copy(<<1:1>>, 0)` would return an empty binary instead of
+ raising an exception. Similarly, calls to `binary:part/2,3` attempting to
+ extract 0 bytes at position 0 of a bitstring would return an empty binary
+ instead of raising an exception.
+
+ Own Id: OTP-18743
+ Related Id(s): PR-7607, PR-7628
+
+- The documentation for the preprocessor now mentions that `defined(Name)` can
+ be called in the condition for an `-if` or `-elif` directive to test whether
+ `Name` is the name of a defined macro. (This feature was implemented in OTP
+ 21.)
+
+ If a function call in an `-if` or `-elif` with a name that is not the name of
+ a guard BIF, there would not be a compilation error, but would instead cause
+ the lines following the directive to be skipped. This has now been changed to
+ be a compilation error.
+
+ Own Id: OTP-18784
+ Related Id(s): GH-7706, PR-7726
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- `get_until` requests using the I/O protocol now correctly return a binary or
+ list when `eof` is the last item returned by the callback.
+
+ Own Id: OTP-18930
+ Related Id(s): GH-4992, PR-7993
+
+## Improvements and New Features
+
+- The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the
+ modules `sets`, `ordsets`, and `gb_sets`.
+
+ Own Id: OTP-18622
+ Related Id(s): GH-7183, GH-7232
+
+ *** HIGHLIGHT ***
+
+- The compiler now emits nicer error message for function head mismatches. For
+ example, given:
+
+ a() -> ok;
+ a(_) -> error.
+
+ Erlang/OTP 26 and earlier would emit a diagnostic similar to:
+
+ t.erl:6:1: head mismatch
+ % 6| a(_) -> error.
+ % | ^
+
+ while in Erlang/OTP 27 the diagnostic is similar to:
+
+ t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted?
+ % 6| a(_) -> error.
+ % | ^
+
+ Own Id: OTP-18648
+ Related Id(s): PR-7383
+
+ *** HIGHLIGHT ***
+
+- `zip:create/2,3` will now tolerate POSIX timestamps in the provided
+ `file_info` records.
+
+ Own Id: OTP-18668
+
+- The callback function gen_statem:handle_event/4 has been cached in the
+ `gen_statem` engine to optimize callback call speed.
+
+ Own Id: OTP-18671
+ Related Id(s): PR-7419
+
+- The type beam_lib:beam/0 is now exported.
+
+ Own Id: OTP-18716
+ Related Id(s): PR-7534
+
+- The documentation for the `binary` module has been improved.
+
+ Own Id: OTP-18741
+ Related Id(s): PR-7585
+
+- `binary:replace/3,4` now supports using a fun for supplying the replacement
+ binary.
+
+ Own Id: OTP-18742
+ Related Id(s): PR-7590
+
+- Triple-Quoted Strings has been implemented as per EEP 64. See String in the
+ Reference Manual.
+
+ Example:
+
+ 1> """
+ a
+ b
+ c
+ """.
+ "a\nb\nc"
+
+ Adjacent string literals without intervening white space is now a syntax
+ error, to avoid possible confusion with triple-quoted strings. For example:
+
+ 1> "abc""xyz".
+ "xyz".
+ * 1:6: adjacent string literals without intervening white space
+
+ Own Id: OTP-18750
+ Related Id(s): PR-7313, PR-7451, OTP-18746
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- The new function proc_lib:set_label/1 can be used to add a descriptive term
+ to any process that does not have a registered name. The name will be shown by
+ tools such as `\c:i/0`, `observer`, and it will be included in crash reports
+ produced by processes using `gen_server`, `gen_statem`, `gen_event`, and
+ `gen_fsm`.
+
+ The label for a process can be retrieved by calling proc_lib:get_label/1.
+
+ Note that those functions work on any process, not only processes that use
+ `proc_lib`.
+
+ Example:
+
+ 1> self().
+ <0.90.0>
+ 2> proc_lib:set_label(my_label).
+ ok
+ 3> i().
+ .
+ .
+ .
+ <0.90.0> erlang:apply/2 2586 75011 0
+ my_label c:pinfo/2 51
+ 4> proc_lib:get_label(self()).
+ my_label
+
+ Own Id: OTP-18789
+ Related Id(s): PR-7720, PR-8003
+
+- `-callback` attributes has been added to modules `sys` and `erl_error`.
+
+ Own Id: OTP-18793
+ Related Id(s): PR-7703
+
+- Several new functions that accept funs have been added to module `timer`.
+
+ Functions `apply_after/2`, `apply_interval/2`, and `apply_repeatedly/2` accept
+ a 0-ary fun as the second argument, while functions `apply_after/3`,
+ `apply_interval/3`, and `apply_repeatedly/3` accept an n-ary fun as the second
+ and a list of n arguments for the fun as the third argument.
+
+ Own Id: OTP-18808
+ Related Id(s): PR-7649
+
+ *** HIGHLIGHT ***
+
+- Sigils on string literals have been implemented as per EEP 66, that is:
+ binary and string sigils in verbatim and escape characters variants, as well
+ as a default (vanilla) Sigil. All for ordinary strings and for triple-quoted
+ strings (EEP 64). See Sigils in the Reference Manual.
+
+ Examples:
+
+ 1> ~"Björn".
+ <<"Björn"/utf8>>
+ 2> ~b"Björn".
+ <<"Björn"/utf8>>
+ 3> ~S"\s*(\w+)".
+ "\\s*(\\w+)"
+ 4> ~B"\s*(\w+)".
+ <<"\\s*(\\w+)">>
+
+ Own Id: OTP-18825
+ Related Id(s): PR-7684, OTP-18750
+
+ *** HIGHLIGHT ***
+
+- Functions shell:default_multiline_prompt/1, shell:inverted_space_prompt/1,
+ and shell:prompt_width/1 have been exported to help with custom prompt
+ implementations.
+
+ Own Id: OTP-18834
+ Related Id(s): PR-7675, PR-7816
+
+- The shell now pages long output from the help command (`h(Module)`), auto
+ completions and the search command.
+
+ Own Id: OTP-18846
+ Related Id(s): PR-7845
+
+- The `M-h` hotkey (Alt/Option-h) now outputs help for the module or function
+ directly before the cursor.
+
+ Own Id: OTP-18847
+ Related Id(s): PR-7846
+
+- Added support for adding a custom code formatter that formats your multi-line
+ shell commands in your preferred formatting on submission. See
+ `shell:format_shell_func/` and shell:erl_pp_format_func/1.
+
+ Own Id: OTP-18848
+ Related Id(s): PR-7847
+
+- Added shell functions for viewing, forgetting and saving locally defined
+ functions, types and records.
+
+ Own Id: OTP-18852
+ Related Id(s): PR-7844
+
+- Added string:jaro_similarity/2, which can be used to calculate the
+ similarity between two strings.
+
+ Own Id: OTP-18865
+ Related Id(s): PR-7879
+
+- The new function ets:update_element/4 is similar to ets:update_element/3,
+ but takes a default tuple as the fourth argument, which will be inserted if no
+ previous record with that key exists.
+
+ Own Id: OTP-18870
+ Related Id(s): PR-7857
+
+- Added functions to retrieve the next higher or lower key/element from
+ `gb_trees` and `gb_sets`, as well as returning iterators that start at
+ given keys/elements.
+
+ Own Id: OTP-18874
+ Related Id(s): PR-7745
+
+- When he shell built-in function `c/1,2` is used to re-compile a module,
+ the current working directory of the original compilation is now added to the
+ include path.
+
+
+ Own Id: OTP-18908
+ Related Id(s): PR-7957
+
+- The `timer` module now uses a private table for its internal state, slightly
+ improving its performance.
+
+ Own Id: OTP-18914
+ Related Id(s): PR-7973
+
+- EEP-59 - Documentation Attributes has been implemented.
+
+ Documentation attributes can be used to document functions, types, callbacks,
+ and modules. The keyword `-moduledoc "Documentation here".` is used to
+ document modules, while `-doc "Documentation here".` can be used on top of
+ functions, types, and callbacks to document them, respectively.
+
+ - Types, callbacks, and function documentation can be set to `hidden` either
+ via `-doc false` or `-doc hidden`. When documentation attributes mark a type
+ as hidden, they will not be part of the documentation.
+ - The documentation from `moduledoc` and `doc` gets added by default to the
+ binary beam file, following the format of EEP-48.
+ - Using the compiler flag `warn_missing_doc` will raise a warning when doc.
+ attributes are missing in exported functions, types, and callbacks.
+ - `moduledoc`s and `doc`s may refer to external files to be embedded, such as
+ `-doc {file, "README.md"}.`, which refers to the file `README.md` found in
+ the current working directory.
+ - The compiler warns about exported functions whose specs refer to hidden
+ types. Thus, there will be warnings when a hidden type (meaning, the type is
+ not part of the documentation) gets used in an exported function.
+
+ Own Id: OTP-18916
+ Related Id(s): PR-7936
+
+ *** HIGHLIGHT ***
+
+- New `ets` functions ets:first_lookup/1, ets:next_lookup/2,
+ ets:prev_lookup/2 and ets:last_lookup/1. Example: ets:next_lookup/1 is
+ equivalent to ets:next/2 followed by ets:lookup/2 with the next key. The
+ new combined functions are more efficient and with guaranteed atomicity.
+
+ Own Id: OTP-18923
+ Related Id(s): PR-6791
+
+ *** HIGHLIGHT ***
+
+- The `maybe` expression is now enabled by default.
+
+ To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the
+ `maybe` expression can be disabled by disabling the `maybe_expr` feature. That
+ can be done by placing the following the line at the beginning of an Erlang
+ source file:
+
+ -feature(maybe_expr, disable).
+
+ Another way to disable the `maybe_expr` feature is by passing the
+ `-disable-feature` option to `erlc`:
+
+ erlc -disable-feature maybe_expr some_file.erl
+
+ Own Id: OTP-18944
+ Related Id(s): PR-8067
+
+ *** HIGHLIGHT ***
+
+- The compiler will now raise a warning when updating record/map literals. As an
+ example, consider this module:
+
+ -module(t).
+ -export([f/0]).
+ -record(r, {a,b,c}).
+
+ f() ->
+ #r{a=1}#r{b=2}.
+
+ The compiler raises the following warning:
+
+ 1> c(t).
+ t.erl:6:12: Warning: expression updates a literal
+ % 6| #r{a=1}#r{b=2}.
+ % | ^
+
+ Own Id: OTP-18951
+ Related Id(s): PR-8069
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of stdlib-6.0
+>
+> compiler-5.0, crypto-4.5, erts-14.3, kernel-9.3, sasl-3.0
+
+# syntax_tools-3.2
+
+## Fixed Bugs and Malfunctions
+
+- The `epp_dodger` module can now handle the `maybe` and `else` keywords.
+
+ Own Id: OTP-18608
+ Related Id(s): GH-7266, PR-7267
+
+- Reverting a `#wrapper` will no longer throw away changes made to
+ positions/annotations.
+
+ Own Id: OTP-18805
+ Related Id(s): PR-7398
+
+## Improvements and New Features
+
+- The type erl_syntax:annotation_or_location/0 is now exported.
+
+ Own Id: OTP-18715
+ Related Id(s): PR-7535
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of syntax_tools-3.2
+>
+> compiler-7.0, erts-9.0, kernel-5.0, stdlib-4.0
+
+# tftp-1.2
+
+## Improvements and New Features
+
+- There is now a new `tftp_logger` callback behavior module.
+
+ Own Id: OTP-18787
+ Related Id(s): PR-7700
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of tftp-1.2
+>
+> erts-6.0, kernel-6.0, stdlib-5.0
+
+# tools-4.0
+
+## Fixed Bugs and Malfunctions
+
+- Dialyzer warnings due to type specs added in `dbg` have been eliminated.
+
+ Own Id: OTP-18860
+
+## Improvements and New Features
+
+- Triple-Quoted Strings has been implemented as per EEP 64. See String in the
+ Reference Manual.
+
+ Example:
+
+ 1> """
+ a
+ b
+ c
+ """.
+ "a\nb\nc"
+
+ Adjacent string literals without intervening white space is now a syntax
+ error, to avoid possible confusion with triple-quoted strings. For example:
+
+ 1> "abc""xyz".
+ "xyz".
+ * 1:6: adjacent string literals without intervening white space
+
+ Own Id: OTP-18750
+ Related Id(s): PR-7313, PR-7451, OTP-18746
+
+ *** HIGHLIGHT ***
+
+ *** POTENTIAL INCOMPATIBILITY ***
+
+- There is a new tool `tprof`, which combines the functionality of `eprof`
+ and `cprof` under one interface. It also adds heap profiling.
+
+ Own Id: OTP-18756
+ Related Id(s): PR-6639
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the `cover` tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ `line_coverage` option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ $ erl +JPcover true
+
+ There are also the following new functions for supporting native coverage:
+
+ - code:coverage_support/0
+ - code:get_coverage/2
+ - code:reset_coverage/1
+ - code:get_coverage_mode/0
+ - code:get_coverage_mode/1
+ - code:set_coverage_mode/1
+
+ Own Id: OTP-18856
+ Related Id(s): PR-7856
+
+ *** HIGHLIGHT ***
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of tools-4.0
+>
+> compiler-8.5, erts-14.3, erts-14.3, kernel-9.3, runtime_tools-2.1, stdlib-6.0
+
+# wx-2.5
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of wx-2.5
+>
+> erts-12.0, kernel-8.0, stdlib-5.0
+
+# xmerl-1.4
+
+## Improvements and New Features
+
+- Function specifications and types have been added to all public API functions.
+
+ Own Id: OTP-18913
+
+- As an alternative to `xmerl_xml`, a new export module `xmerl_xml_indent` that
+ provides out-of-the box indented output has been added.
+
+ Own Id: OTP-18922
+ Related Id(s): PR-7942
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): PR-8026
+
+ *** HIGHLIGHT ***
+
+> #### Full runtime dependencies of xmerl-1.4
+>
+> erts-6.0, kernel-3.0, stdlib-2.5
+
diff --git a/release-notes/OTP-27.0-rc2.README.txt b/release-notes/OTP-27.0-rc2.README.txt
new file mode 100644
index 0000000..b44a5f0
--- /dev/null
+++ b/release-notes/OTP-27.0-rc2.README.txt
@@ -0,0 +1,3075 @@
+```
+Inital Release: OTP 27.0
+Git Tag: OTP-27.0
+Date: 2024-03-21
+Trouble Report Id: OTP-16607, OTP-18568, OTP-18577, OTP-18589,
+ OTP-18590, OTP-18594, OTP-18606, OTP-18608,
+ OTP-18609, OTP-18622, OTP-18639, OTP-18641,
+ OTP-18642, OTP-18648, OTP-18658, OTP-18665,
+ OTP-18667, OTP-18668, OTP-18671, OTP-18673,
+ OTP-18680, OTP-18682, OTP-18684, OTP-18699,
+ OTP-18703, OTP-18709, OTP-18713, OTP-18714,
+ OTP-18715, OTP-18716, OTP-18717, OTP-18727,
+ OTP-18741, OTP-18742, OTP-18743, OTP-18744,
+ OTP-18750, OTP-18756, OTP-18761, OTP-18766,
+ OTP-18774, OTP-18778, OTP-18779, OTP-18781,
+ OTP-18783, OTP-18784, OTP-18785, OTP-18786,
+ OTP-18787, OTP-18788, OTP-18789, OTP-18793,
+ OTP-18794, OTP-18795, OTP-18796, OTP-18801,
+ OTP-18804, OTP-18805, OTP-18806, OTP-18807,
+ OTP-18808, OTP-18809, OTP-18813, OTP-18816,
+ OTP-18819, OTP-18820, OTP-18825, OTP-18831,
+ OTP-18834, OTP-18835, OTP-18846, OTP-18847,
+ OTP-18848, OTP-18849, OTP-18852, OTP-18856,
+ OTP-18859, OTP-18860, OTP-18865, OTP-18870,
+ OTP-18874, OTP-18875, OTP-18876, OTP-18878,
+ OTP-18879, OTP-18881, OTP-18884, OTP-18887,
+ OTP-18892, OTP-18894, OTP-18898, OTP-18904,
+ OTP-18908, OTP-18912, OTP-18913, OTP-18914,
+ OTP-18916, OTP-18918, OTP-18920, OTP-18922,
+ OTP-18923, OTP-18927, OTP-18928, OTP-18929,
+ OTP-18930, OTP-18934, OTP-18938, OTP-18941,
+ OTP-18942, OTP-18943, OTP-18944, OTP-18945,
+ OTP-18946, OTP-18947, OTP-18950, OTP-18951,
+ OTP-18954, OTP-18955, OTP-18959, OTP-18961,
+ OTP-18963, OTP-18965, OTP-18966, OTP-18967,
+ OTP-18968, OTP-18969, OTP-18972, OTP-18973,
+ OTP-18975, OTP-18976, OTP-18977, OTP-18978,
+ OTP-18980, OTP-18981, OTP-18984, OTP-18987,
+ OTP-18989, OTP-18992, OTP-18993, OTP-18994,
+ OTP-18995, OTP-18998, OTP-19001, OTP-19004,
+ OTP-19005, OTP-19010, OTP-19014, OTP-19016,
+ OTP-19017, OTP-19018, OTP-19020, OTP-19022,
+ OTP-19025, OTP-19026, OTP-19027, OTP-19029,
+ OTP-19030
+Seq num: BL-312, BL-322, ERIERL-43, ERIERL-964,
+ ERIERL-967, ERIERL-985, GH-4992, GH-6152,
+ GH-6692, GH-6979, GH-6985, GH-7183, GH-7232,
+ GH-7266, GH-7295, GH-7397, GH-7432, GH-7438,
+ GH-7493, GH-7494, GH-7706, GH-7718, GH-7972,
+ GH-8058, GH-8061, GH-8066, GH-8159, GH-8166,
+ OTP-16448, OTP-16608, OTP-16875, OTP-17734,
+ OTP-18746, OTP-18750, OTP-18835, PR-6510,
+ PR-6639, PR-6658, PR-6791, PR-6985, PR-7110,
+ PR-7125, PR-7174, PR-7202, PR-7220, PR-7236,
+ PR-7243, PR-7267, PR-7274, PR-7299, PR-7313,
+ PR-7316, PR-7348, PR-7380, PR-7383, PR-7388,
+ PR-7398, PR-7419, PR-7428, PR-7441, PR-7443,
+ PR-7447, PR-7451, PR-7465, PR-7470, PR-7474,
+ PR-7475, PR-7481, PR-7491, PR-7496, PR-7528,
+ PR-7534, PR-7535, PR-7538, PR-7556, PR-7585,
+ PR-7590, PR-7592, PR-7607, PR-7628, PR-7639,
+ PR-7649, PR-7651, PR-7675, PR-7684, PR-7697,
+ PR-7699, PR-7700, PR-7701, PR-7702, PR-7703,
+ PR-7711, PR-7720, PR-7726, PR-7728, PR-7732,
+ PR-7738, PR-7739, PR-7740, PR-7745, PR-7779,
+ PR-7781, PR-7782, PR-7790, PR-7809, PR-7816,
+ PR-7824, PR-7844, PR-7845, PR-7846, PR-7847,
+ PR-7856, PR-7857, PR-7869, PR-7879, PR-7891,
+ PR-7898, PR-7917, PR-7918, PR-7936, PR-7942,
+ PR-7952, PR-7957, PR-7960, PR-7963, PR-7973,
+ PR-7977, PR-7981, PR-7993, PR-8003, PR-8004,
+ PR-8006, PR-8026, PR-8035, PR-8042, PR-8048,
+ PR-8063, PR-8067, PR-8069, PR-8076, PR-8086,
+ PR-8090, PR-8091, PR-8092, PR-8093, PR-8095,
+ PR-8103, PR-8111, PR-8112, PR-8155, PR-8156,
+ PR-8164, PR-8168, PR-8177, PR-8182, PR-8205,
+ PR-8241
+System: OTP
+Release: 27
+Application: asn1-5.3, common_test-1.27, compiler-8.5,
+ crypto-5.5, debugger-5.4, dialyzer-5.2,
+ diameter-2.4, edoc-1.3, eldap-1.2.13,
+ erl_interface-5.5.2, erts-14.3, et-1.7.1,
+ eunit-2.9.1, ftp-1.2.2, inets-9.2,
+ jinterface-1.14.1, kernel-9.3, megaco-4.6,
+ mnesia-4.23.1, observer-2.16, odbc-2.14.3,
+ os_mon-2.10, parsetools-2.6, public_key-1.16,
+ reltool-1.0.1, runtime_tools-2.1, sasl-4.2.2,
+ snmp-5.16, ssh-5.2, ssl-11.2, stdlib-6.0,
+ syntax_tools-3.2, tftp-1.2, tools-4.0,
+ wx-2.4.2, xmerl-1.4
+Predecessor: OTP
+```
+
+Check out the git tag OTP-27.0, and build a full OTP system including
+documentation.
+
+# HIGHLIGHTS
+
+- The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the
+ modules [`sets`], [`ordsets`], and [`gb_sets`].
+
+ Own Id: OTP-18622
+ Application(s): stdlib
+ Related Id(s): [GH-7183], [GH-7232]
+
+- The compiler now emits nicer error message for function head mismatches. For
+ example, given:
+
+ ```erlang
+ a() -> ok;
+ a(_) -> error.
+ ```
+
+ Erlang/OTP 26 and earlier would emit a diagnostic similar to:
+
+ ```text
+ t.erl:6:1: head mismatch
+ % 6| a(_) -> error.
+ % | ^
+ ```
+
+ while in Erlang/OTP 27 the diagnostic is similar to:
+
+ ```text
+ t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted?
+ % 6| a(_) -> error.
+ % | ^
+ ```
+
+ Own Id: OTP-18648
+ Application(s): compiler, stdlib
+ Related Id(s): [PR-7383]
+
+- The compiler will now merge consecutive updates of the same record.
+
+ As an example, the body of the following function will be combined into a
+ single tuple creation instruction:
+
+ ```erlang
+ -record(r, {a,b,c,d}).
+
+ update(Value) ->
+ R0 = #r{},
+ R1 = R0#r{a=Value},
+ R2 = R1#r{b=2},
+ R2#r{c=3}.
+ ```
+
+ Own Id: OTP-18680
+ Application(s): compiler
+ Related Id(s): ERIERL-967, [PR-7491], [PR-8086]
+
+- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0`
+ when using the term equivalence operators (`=:=` and `=/=`).
+
+ The arithmetic equality operators (`==` and `/=`) and all relative comparison
+ operations still consider `0.0` equal to `-0.0`.
+
+ Own Id: OTP-18717
+ Application(s): otp
+ Related Id(s): [PR-7728]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- The `erl` command now supports the `-S` flag, which is similar to the `-run`
+ flag, except that it will pass all arguments up to end of the command line to
+ the called function. (The `-run` flag will not pass arguments beginning with a
+ hyphen.) Another difference is that `-S` will always call a function with one
+ argument, passing an empty list if no arguments were given.
+
+ Own Id: OTP-18744
+ Application(s): erts
+ Related Id(s): [PR-7470]
+
+- Triple-Quoted Strings has been implemented as per [EEP 64]. See String in the
+ Reference Manual.
+
+ Example:
+
+ ```erlang
+ 1> """
+ a
+ b
+ c
+ """.
+ "a\nb\nc"
+ ```
+
+ Adjacent string literals without intervening white space is now a syntax
+ error, to avoid possible confusion with triple-quoted strings. For example:
+
+ ```text
+ 1> "abc""xyz".
+ "xyz".
+ * 1:6: adjacent string literals without intervening white space
+ ```
+
+ Own Id: OTP-18750
+ Application(s): stdlib, tools
+ Related Id(s): [PR-7313], [PR-7451], OTP-18746
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- Several new functions that accept funs have been added to module [`timer`].
+
+ Functions `apply_after/2`, `apply_interval/2`, and `apply_repeatedly/2` accept
+ a nullary fun as the second argument, while functions `apply_after/3`,
+ `apply_interval/3`, and `apply_repeatedly/3` accept an n-ary fun as the second
+ and a list of n arguments for the fun as the third argument.
+
+ Own Id: OTP-18808
+ Application(s): stdlib
+ Related Id(s): [PR-7649]
+
+- Sigils on string literals have been implemented as per [EEP 66], that is:
+ binary and string sigils in verbatim and escape characters variants, as well
+ as a default (vanilla) Sigil. All for ordinary strings and for triple-quoted
+ strings (EEP 64). See Sigils in the Reference Manual.
+
+ Examples:
+
+ ```erlang
+ 1> ~"Björn".
+ <<"Björn"/utf8>>
+ 2> ~b"Björn".
+ <<"Björn"/utf8>>
+ 3> ~S"\s*(\w+)".
+ "\\s*(\\w+)"
+ 4> ~B"\s*(\w+)".
+ <<"\\s*(\\w+)">>
+ ```
+
+ Own Id: OTP-18825
+ Application(s): stdlib
+ Related Id(s): [PR-7684], OTP-18750
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the [`cover`] tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ [`line_coverage`] option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ ```text
+ $ erl +JPcover true
+ ```
+
+ There are also the following new functions for supporting native coverage:
+
+ - `code:coverage_support/0`
+ - `code:get_coverage/2`
+ - `code:reset_coverage/1`
+ - `code:get_coverage_mode/0`
+ - `code:get_coverage_mode/1`
+ - `code:set_coverage_mode/1`
+
+ Own Id: OTP-18856
+ Application(s): compiler, erts, kernel, tools
+ Related Id(s): [PR-7856]
+
+- [EEP-59 - Documentation Attributes] has been implemented.
+
+ Documentation attributes can be used to document functions, types, callbacks,
+ and modules. The keyword `-moduledoc "Documentation here".` is used to
+ document modules, while `-doc "Documentation here".` can be used on top of
+ functions, types, and callbacks to document them, respectively.
+
+ - Types, callbacks, and function documentation can be set to `hidden` either
+ via `-doc false` or `-doc hidden`. When documentation attributes mark a type
+ as hidden, they will not be part of the documentation.
+ - The documentation from `moduledoc` and `doc` gets added by default to the
+ binary beam file, following the format of [EEP-48].
+ - Using the compiler flag `warn_missing_doc` will raise a warning when `-doc`
+ attributes are missing in exported functions, types, and callbacks.
+ - Using the compiler flag `warn_missing_spec_documented` will raise a warning
+ when spec attributes are missing in documented functions, types, and
+ callbacks.
+ - `moduledoc`s and `doc`s may refer to external files to be embedded, such as
+ `-doc {file, "README.md"}.`, which refers to the file `README.md` found in
+ the current working directory.
+ - The compiler warns about exported functions whose specs refer to hidden
+ types. Thus, there will be warnings when a hidden type (meaning, the type is
+ not part of the documentation) gets used in an exported function.
+
+ Own Id: OTP-18916
+ Application(s): compiler, stdlib
+ Related Id(s): [PR-7936]
+
+- New [`ets`] functions `ets:first_lookup/1`, `ets:next_lookup/2`,
+ `ets:prev_lookup/2` and `ets:last_lookup/1`. Example: `ets:next_lookup/1` is
+ equivalent to `ets:next/2` followed by `ets:lookup/2` with the next key. The
+ new combined functions are more efficient and with guaranteed atomicity.
+
+ Own Id: OTP-18923
+ Application(s): stdlib
+ Related Id(s): [PR-6791]
+
+- The `maybe` expression is now enabled by default.
+
+ To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the
+ `maybe` expression can be disabled by disabling the `maybe_expr` feature. That
+ can be done by placing the following the line at the beginning of an Erlang
+ source file:
+
+ ```erlang
+ -feature(maybe_expr, disable).
+ ```
+
+ Another way to disable the `maybe_expr` feature is by passing the
+ `-disable-feature` option to `erlc`:
+
+ ```text
+ erlc -disable-feature maybe_expr some_file.erl
+ ```
+
+ Own Id: OTP-18944
+ Application(s): otp, stdlib
+ Related Id(s): [PR-8067]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Application(s): asn1, common_test, compiler, crypto, debugger, dialyzer,
+ diameter, edoc, eldap, erl_interface, erts, et, eunit, ftp, inets, jinterface,
+ kernel, megaco, mnesia, observer, odbc, os_mon, parsetools, public_key,
+ reltool, runtime_tools, sasl, snmp, ssh, ssl, stdlib, syntax_tools, tftp,
+ tools, wx, xmerl
+ Related Id(s): [PR-8026]
+
+- Safe destructive update of tuples has been implemented in the compiler and
+ runtime system. This allows the VM to update tuples in-place when it is safe
+ to do so, thus improving performance by doing less copying but also by
+ producing less garbage.
+
+ Example:
+
+ ```erlang
+ -record(rec, {a,b,c}).
+
+ update(#rec{a=needs_update,b=N}=R0) ->
+ R = R0#rec{a=up_to_date},
+ if
+ N < 0 ->
+ R#rec{c=negative};
+ N == 0 ->
+ R#rec{c=zero};
+ N > 0 ->
+ R#rec{c=positive}
+ end.
+ ```
+
+ The record updates in each of the three clauses of the `if` can safely be done
+ in-place, because variable `R` is not used again.
+
+ Own Id: OTP-18972
+ Application(s): compiler, erts
+ Related Id(s): [PR-8090]
+
+- Multiple trace sessions.
+
+ Own Id: OTP-18980
+ Application(s): erts
+
+- The `jer` (JSON Encoding Rules) for ASN.1 now use the new [`json`] module for
+ encoding and decoding JSON. Thus, there is no longer any need for an external
+ JSON library.
+
+ Own Id: OTP-19018
+ Application(s): asn1
+ Related Id(s): [PR-8241]
+
+- There is a new module [`json`] for encoding and decoding [JSON].
+
+ Both encoding and decoding can be customized. Decoding can be done in a
+ SAX-like fashion and handle multiple documents and streams of data.
+
+ Own Id: OTP-19020
+ Application(s): stdlib
+ Related Id(s): [PR-8111]
+
+# POTENTIAL INCOMPATIBILITIES
+
+- The `pid` field has been removed from `erlang:fun_info/1,2`.
+
+ Own Id: OTP-18594
+ Application(s): erts
+ Related Id(s): [PR-7274]
+
+- By default, escripts will now be compiled instead of interpreted. That means
+ that the `compiler` application must be installed.
+
+ Own Id: OTP-18639
+ Application(s): erts
+ Related Id(s): [PR-7348]
+
+- Introduced a default value for httpd_server name configuration to improve ease
+ of use.
+
+ Own Id: OTP-18641
+ Application(s): inets
+ Related Id(s): [PR-7316]
+
+- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0`
+ when using the term equivalence operators (`=:=` and `=/=`).
+
+ The arithmetic equality operators (`==` and `/=`) and all relative comparison
+ operations still consider `0.0` equal to `-0.0`.
+
+ Own Id: OTP-18717
+ Application(s): otp
+ Related Id(s): [PR-7728]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Triple-Quoted Strings has been implemented as per [EEP 64]. See String in the
+ Reference Manual.
+
+ Example:
+
+ ```erlang
+ 1> """
+ a
+ b
+ c
+ """.
+ "a\nb\nc"
+ ```
+
+ Adjacent string literals without intervening white space is now a syntax
+ error, to avoid possible confusion with triple-quoted strings. For example:
+
+ ```text
+ 1> "abc""xyz".
+ "xyz".
+ * 1:6: adjacent string literals without intervening white space
+ ```
+
+ Own Id: OTP-18750
+ Application(s): stdlib, tools
+ Related Id(s): [PR-7313], [PR-7451], OTP-18746
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The documentation for the preprocessor now mentions that `defined(Name)` can
+ be called in the condition for an `-if` or `-elif` directive to test whether
+ `Name` is the name of a defined macro. (This feature was implemented in OTP
+ 21.)
+
+ If a function call in an `-if` or `-elif` with a name that is not the name of
+ a guard BIF, there would not be a compilation error, but would instead cause
+ the lines following the directive to be skipped. This has now been changed to
+ be a compilation error.
+
+ Own Id: OTP-18784
+ Application(s): compiler, otp, stdlib
+ Related Id(s): [GH-7706], [PR-7726]
+
+- The existing experimental support for archive files will be changed in a
+ future release. The support for having an archive in an escript will remain,
+ but the support for using archives in a release will either become more
+ limited or completely removed.
+
+ As of Erlang/OTP 27, the function `code:lib_dir/2`, the `-code_path_choice`
+ flag, and using [`erl_prim_loader`] for reading members of an archive are
+ deprecated.
+
+ To remain compatible with future version of Erlang/OTP `escript` scripts that
+ need to retrieve data files from its archive should use `escript:extract/2`
+ instead of `erl_prim_loader` and `code:lib_dir/2`.
+
+ Own Id: OTP-18966
+ Application(s): kernel, otp
+ Related Id(s): [PR-8091]
+
+- The order in which the compiler looks up options has changed.
+
+ When there is a conflict in the compiler options given in the `-compile()`
+ attribute and options given to the compiler, the options given in the
+ `-compile()` attribute overrides the option given to the compiler, which in
+ turn overrides options given in the `ERL_COMPILER_OPTIONS` environment
+ variable.
+
+ Example:
+
+ If `some_module.erl` has the following attribute:
+
+ ```erlang
+ -compile([nowarn_missing_spec]).
+ ```
+
+ and the compiler is invoked like so:
+
+ ```text
+ % erlc +warn_missing_spec some_module.erl
+ ```
+
+ no warnings will be issued for functions that do not have any specs.
+
+ Own Id: OTP-18968
+ Application(s): compiler
+ Related Id(s): [GH-6979], [PR-8093]
+
+- The implementations of `http_uri:encode/1` and `http_uri:decode/1` are now
+ replaced with their equivalent, but bug free versions from module
+ [`uri_string`], namely `uri_string:quote/1` and `uri_string:unquote/1`.
+
+ Own Id: OTP-19022
+ Application(s): inets
+
+- For security reasons remove CBC ciphers form default supported cipher suites
+ in TLS-1.2
+
+ Own Id: OTP-19025
+ Application(s): ssl
+
+- Enhance simple_one_for_one error handling. Avoid crash of transient child
+ returning ignore for init-function. Also disallow automatic shutdown as it
+ does not make sense for this supervisor type, may potentially be backwards
+ incompatible for no intended uses, that is supervisors will not remain
+ bug-compatible.
+
+ Own Id: OTP-19029
+ Application(s): stdlib
+
+# OTP-27.0
+
+## Fixed Bugs and Malfunctions
+
+- As announced in OTP 26.1, `0.0` is no longer considered equivalent to `-0.0`
+ when using the term equivalence operators (`=:=` and `=/=`).
+
+ The arithmetic equality operators (`==` and `/=`) and all relative comparison
+ operations still consider `0.0` equal to `-0.0`.
+
+ Own Id: OTP-18717
+ Related Id(s): [PR-7728]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- The documentation for the preprocessor now mentions that `defined(Name)` can
+ be called in the condition for an `-if` or `-elif` directive to test whether
+ `Name` is the name of a defined macro. (This feature was implemented in OTP
+ 21.)
+
+ If a function call in an `-if` or `-elif` with a name that is not the name of
+ a guard BIF, there would not be a compilation error, but would instead cause
+ the lines following the directive to be skipped. This has now been changed to
+ be a compilation error.
+
+ Own Id: OTP-18784
+ Related Id(s): [GH-7706], [PR-7726]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+## Improvements and New Features
+
+- `configure` scripts of the OTP build system are now generated using Autoconf
+ 2.72.
+
+ Own Id: OTP-18943
+
+- The `maybe` expression is now enabled by default.
+
+ To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the
+ `maybe` expression can be disabled by disabling the `maybe_expr` feature. That
+ can be done by placing the following the line at the beginning of an Erlang
+ source file:
+
+ ```erlang
+ -feature(maybe_expr, disable).
+ ```
+
+ Another way to disable the `maybe_expr` feature is by passing the
+ `-disable-feature` option to `erlc`:
+
+ ```text
+ erlc -disable-feature maybe_expr some_file.erl
+ ```
+
+ Own Id: OTP-18944
+ Related Id(s): [PR-8067]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- By default `configure` scripts used when building OTP will now try to enable
+ support for timestamps that will work after mid-January 2038. This has
+ typically only been an issue on 32-bit platforms.
+
+ If `configure` cannot figure out how to enable such timestamps, it will abort
+ with an error message. If you want to build the system anyway, knowing that
+ the system will not function properly after mid-January 2038, you can pass the
+ `--disable-year2038` option to `configure`, which will enable `configure` to
+ continue without support for timestamps after mid-January 2038.
+
+ Own Id: OTP-18965
+ Related Id(s): [PR-8095]
+
+- The existing experimental support for archive files will be changed in a
+ future release. The support for having an archive in an escript will remain,
+ but the support for using archives in a release will either become more
+ limited or completely removed.
+
+ As of Erlang/OTP 27, the function `code:lib_dir/2`, the `-code_path_choice`
+ flag, and using [`erl_prim_loader`] for reading members of an archive are
+ deprecated.
+
+ To remain compatible with future version of Erlang/OTP `escript` scripts that
+ need to retrieve data files from its archive should use `escript:extract/2`
+ instead of `erl_prim_loader` and `code:lib_dir/2`.
+
+ Own Id: OTP-18966
+ Related Id(s): [PR-8091]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- The restriction for the expression that gives a default value for a record
+ field is now documented.
+
+ Own Id: OTP-18995
+ Related Id(s): [GH-8166], [PR-8177]
+
+# asn1-5.3
+
+## Fixed Bugs and Malfunctions
+
+- Multiple bugs has been eliminated in the [specialized decode feature].
+
+ Own Id: OTP-18813
+ Related Id(s): [PR-7790]
+
+## Improvements and New Features
+
+- Specs have been added to all `asn1ct` API functions.
+
+ Own Id: OTP-18804
+ Related Id(s): [PR-7738]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The `jer` (JSON Encoding Rules) for ASN.1 now use the new [`json`] module for
+ encoding and decoding JSON. Thus, there is no longer any need for an external
+ JSON library.
+
+ Own Id: OTP-19018
+ Related Id(s): [PR-8241]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of asn1-5.3
+>
+> erts-14.0, kernel-9.0, stdlib-5.0
+
+# common_test-1.27
+
+## Improvements and New Features
+
+- Calls to `ct:capture_start/0` and `ct:capture_stop/0` are now synchronous to
+ ensure that all output is captured.
+
+ Own Id: OTP-18658
+ Related Id(s): [PR-7380]
+
+- The order in which multiple hooks are executed can now be reversed after each
+ config function. See [CTH Execution Order].
+
+ Own Id: OTP-18682
+ Related Id(s): ERIERL-43, [GH-7397], [PR-7496]
+
+- The default CSS will now include a basic dark mode handling if it is preferred
+ by the browser.
+
+ Own Id: OTP-18761
+ Related Id(s): [PR-7428]
+
+- `-callback` attributes have been added to [`ct_suite`] and [`ct_hooks`].
+
+ Own Id: OTP-18781
+ Related Id(s): [PR-7701]
+
+- The built-in [cth_log_redirect] hook can now be configured to replace default
+ logger reports in terminal with HTML logs.
+
+ Own Id: OTP-18875
+ Related Id(s): [PR-7891]
+
+- Error handling for the [`ct_property_test`] framework has been enhanced.
+
+ Own Id: OTP-18881
+ Related Id(s): [PR-7824]
+
+- Enhance test case documentation, making it clear how a test case can be
+ failed.
+
+ Own Id: OTP-18892
+ Related Id(s): [PR-7869]
+
+- The failing line in the test source code is now colored to make it easier to
+ find on the screen.
+
+ Own Id: OTP-18898
+ Related Id(s): [PR-7917]
+
+- Function specifications and types have been added to all public API functions.
+
+ Own Id: OTP-18913
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- With this change, suite execution elapsed time is included in index page.
+
+ Own Id: OTP-18981
+ Related Id(s): [GH-7972], [PR-8112]
+
+> #### Full runtime dependencies of common_test-1.27
+>
+> compiler-6.0, crypto-4.5, debugger-4.1, erts-7.0, ftp-1.0, inets-6.0,
+> kernel-8.4, observer-2.1, runtime_tools-1.8.16, sasl-2.5, snmp-5.1.2, ssh-4.0,
+> stdlib-4.0, syntax_tools-1.7, tools-3.2, xmerl-1.3.8
+
+# compiler-8.5
+
+## Fixed Bugs and Malfunctions
+
+- Generators for binary comprehensions could be evaluated before it was known
+ that they would be needed. That could result in a binary comprehensions
+ failing if a generator that should not be evaluated until later failed.
+
+ As an example, consider this module:
+
+ ```erlang
+ -module(t).
+ -export([f/0]).
+
+ f() ->
+ <<0 || _ <- [], _ <- ok, false>>.
+ ```
+
+ In Erlang/OTP 26 it would fail like so:
+
+ ```text
+ > t:f().
+ ** exception error: bad generator ok
+ in function t:f/0 (t.erl, line 6)
+ ```
+
+ In Erlang/OTP 27 it returns an empty binary:
+
+ ```text
+ > t:f().
+ <<>>
+ ```
+
+ Own Id: OTP-18703
+ Related Id(s): [GH-7494], [PR-7538]
+
+- The documentation for the preprocessor now mentions that `defined(Name)` can
+ be called in the condition for an `-if` or `-elif` directive to test whether
+ `Name` is the name of a defined macro. (This feature was implemented in OTP
+ 21.)
+
+ If a function call in an `-if` or `-elif` with a name that is not the name of
+ a guard BIF, there would not be a compilation error, but would instead cause
+ the lines following the directive to be skipped. This has now been changed to
+ be a compilation error.
+
+ Own Id: OTP-18784
+ Related Id(s): [GH-7706], [PR-7726]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+## Improvements and New Features
+
+- The compiler now emits nicer error message for function head mismatches. For
+ example, given:
+
+ ```erlang
+ a() -> ok;
+ a(_) -> error.
+ ```
+
+ Erlang/OTP 26 and earlier would emit a diagnostic similar to:
+
+ ```text
+ t.erl:6:1: head mismatch
+ % 6| a(_) -> error.
+ % | ^
+ ```
+
+ while in Erlang/OTP 27 the diagnostic is similar to:
+
+ ```text
+ t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted?
+ % 6| a(_) -> error.
+ % | ^
+ ```
+
+ Own Id: OTP-18648
+ Related Id(s): [PR-7383]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The compiler now optimizes creation of binaries that are known to be constant.
+
+ Consider this example:
+
+ ```erlang
+ bin() ->
+ C = char(),
+ <<C>>.
+
+ char() -> $*.
+ ```
+
+ Essentially, the compiler rewrites the example to the slightly more efficient:
+
+ ```erlang
+ bin() ->
+ _ = char(),
+ <<$*>>.
+
+ char() -> $*.
+ ```
+
+ Own Id: OTP-18673
+ Related Id(s): ERIERL-964, [PR-7474]
+
+- The compiler will now merge consecutive updates of the same record.
+
+ As an example, the body of the following function will be combined into a
+ single tuple creation instruction:
+
+ ```erlang
+ -record(r, {a,b,c,d}).
+
+ update(Value) ->
+ R0 = #r{},
+ R1 = R0#r{a=Value},
+ R2 = R1#r{b=2},
+ R2#r{c=3}.
+ ```
+
+ Own Id: OTP-18680
+ Related Id(s): ERIERL-967, [PR-7491], [PR-8086]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Improved the performance of the alias analysis pass.
+
+ Own Id: OTP-18714
+ Related Id(s): [GH-7432], [PR-7528]
+
+- `-spec` attributes are now used for documentation.
+
+ Own Id: OTP-18801
+ Related Id(s): [PR-7739]
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the [`cover`] tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ [`line_coverage`] option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ ```text
+ $ erl +JPcover true
+ ```
+
+ There are also the following new functions for supporting native coverage:
+
+ - `code:coverage_support/0`
+ - `code:get_coverage/2`
+ - `code:reset_coverage/1`
+ - `code:get_coverage_mode/0`
+ - `code:get_coverage_mode/1`
+ - `code:set_coverage_mode/1`
+
+ Own Id: OTP-18856
+ Related Id(s): [PR-7856]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- [EEP-59 - Documentation Attributes] has been implemented.
+
+ Documentation attributes can be used to document functions, types, callbacks,
+ and modules. The keyword `-moduledoc "Documentation here".` is used to
+ document modules, while `-doc "Documentation here".` can be used on top of
+ functions, types, and callbacks to document them, respectively.
+
+ - Types, callbacks, and function documentation can be set to `hidden` either
+ via `-doc false` or `-doc hidden`. When documentation attributes mark a type
+ as hidden, they will not be part of the documentation.
+ - The documentation from `moduledoc` and `doc` gets added by default to the
+ binary beam file, following the format of [EEP-48].
+ - Using the compiler flag `warn_missing_doc` will raise a warning when `-doc`
+ attributes are missing in exported functions, types, and callbacks.
+ - Using the compiler flag `warn_missing_spec_documented` will raise a warning
+ when spec attributes are missing in documented functions, types, and
+ callbacks.
+ - `moduledoc`s and `doc`s may refer to external files to be embedded, such as
+ `-doc {file, "README.md"}.`, which refers to the file `README.md` found in
+ the current working directory.
+ - The compiler warns about exported functions whose specs refer to hidden
+ types. Thus, there will be warnings when a hidden type (meaning, the type is
+ not part of the documentation) gets used in an exported function.
+
+ Own Id: OTP-18916
+ Related Id(s): [PR-7936]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The order in which the compiler looks up options has changed.
+
+ When there is a conflict in the compiler options given in the `-compile()`
+ attribute and options given to the compiler, the options given in the
+ `-compile()` attribute overrides the option given to the compiler, which in
+ turn overrides options given in the `ERL_COMPILER_OPTIONS` environment
+ variable.
+
+ Example:
+
+ If `some_module.erl` has the following attribute:
+
+ ```erlang
+ -compile([nowarn_missing_spec]).
+ ```
+
+ and the compiler is invoked like so:
+
+ ```text
+ % erlc +warn_missing_spec some_module.erl
+ ```
+
+ no warnings will be issued for functions that do not have any specs.
+
+ Own Id: OTP-18968
+ Related Id(s): [GH-6979], [PR-8093]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- Safe destructive update of tuples has been implemented in the compiler and
+ runtime system. This allows the VM to update tuples in-place when it is safe
+ to do so, thus improving performance by doing less copying but also by
+ producing less garbage.
+
+ Example:
+
+ ```erlang
+ -record(rec, {a,b,c}).
+
+ update(#rec{a=needs_update,b=N}=R0) ->
+ R = R0#rec{a=up_to_date},
+ if
+ N < 0 ->
+ R#rec{c=negative};
+ N == 0 ->
+ R#rec{c=zero};
+ N > 0 ->
+ R#rec{c=positive}
+ end.
+ ```
+
+ The record updates in each of the three clauses of the `if` can safely be done
+ in-place, because variable `R` is not used again.
+
+ Own Id: OTP-18972
+ Related Id(s): [PR-8090]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Improved the match context reuse optimization slightly, allowing match
+ contexts to be passed as-is to `bit_size/1` and `byte_size/1`.
+
+ Own Id: OTP-18987
+
+- `m:erl_lint` (and by extension the [`compiler`]) will now warn for code using
+ deprecated callbacks.
+
+ The only callback currenly deprecated is `format_status/2` in `gen_server`,
+ `gen_event` and `gen_statem`.
+
+ You can use `nowarn_deprecated_callback` to silence the warning.
+
+ Own Id: OTP-19010
+ Related Id(s): [PR-8205]
+
+> #### Full runtime dependencies of compiler-8.5
+>
+> crypto-5.1, erts-13.0, kernel-8.4, stdlib-6.0
+
+# crypto-5.5
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Removed functions `crypto_dyn_iv_init/3` and `crypto_dyn_iv_update/3` which
+ were marked as deprecated since OTP 25.
+
+ Own Id: OTP-18973
+
+- Add support for sm3 hash and hmac.
+
+ Own Id: OTP-18975
+ Related Id(s): [PR-6658]
+
+- `OPENSSL_thread_stop` is called when `crypto` is purged to not leak thread
+ specific data.
+
+ Own Id: OTP-18978
+ Related Id(s): [PR-7809]
+
+- Add SM4 block cipher implemented according to GB/T 32907-2016.
+
+ Own Id: OTP-19005
+ Related Id(s): [PR-8168]
+
+> #### Full runtime dependencies of crypto-5.5
+>
+> erts-9.0, kernel-5.3, stdlib-3.9
+
+# debugger-5.4
+
+## Fixed Bugs and Malfunctions
+
+- The dependencies for this application are now listed in the app file.
+
+ Own Id: OTP-18831
+ Related Id(s): [PR-7441]
+
+## Improvements and New Features
+
+- Type specs have been added to all API functions.
+
+ Own Id: OTP-18819
+ Related Id(s): [PR-7781]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of debugger-5.4
+>
+> compiler-8.0, erts-14.3, kernel-8.0, stdlib-3.15, wx-2.0
+
+# dialyzer-5.2
+
+## Improvements and New Features
+
+- The `--gui` option for Dialyzer has been removed.
+
+ Own Id: OTP-18667
+ Related Id(s): [PR-7443]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of dialyzer-5.2
+>
+> compiler-8.0, erts-12.0, kernel-8.0, stdlib-5.0, syntax_tools-2.0
+
+# diameter-2.4
+
+## Improvements and New Features
+
+- `-callback` attributes have been added to [`diameter_app`] and
+ [`diameter_transport`].
+
+ Own Id: OTP-18783
+ Related Id(s): [PR-7699]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of diameter-2.4
+>
+> erts-10.0, kernel-3.2, ssl-9.0, stdlib-5.0
+
+# edoc-1.3
+
+## Fixed Bugs and Malfunctions
+
+- [EEP 48] doc chunks now properly include links within `{@type }` macros.
+
+ Own Id: OTP-18945
+ Related Id(s): [PR-8063]
+
+- `@hidden` now means `hidden` in [EEP 48] doc chunks instead of `none`.
+
+ Own Id: OTP-18946
+ Related Id(s): [PR-8063]
+
+## Improvements and New Features
+
+- There is a new `edoc_html_to_markdown` module that can be used to convert
+ EEP-48 `application/html+erlang` to Markdown.
+
+ Own Id: OTP-18947
+ Related Id(s): [PR-8063]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of edoc-1.3
+>
+> erts-11.0, inets-5.10, kernel-7.0, stdlib-4.0, syntax_tools-2.0, xmerl-1.3.7
+
+# eldap-1.2.13
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of eldap-1.2.13
+>
+> asn1-3.0, erts-6.0, kernel-3.0, ssl-5.3.4, stdlib-3.4
+
+# erl_interface-5.5.2
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+## Known Bugs and Problems
+
+- The `ei` API for decoding/encoding terms is not fully 64-bit compatible since
+ terms that have a representation on the external term format larger than 2 GB
+ cannot be handled.
+
+ Own Id: OTP-16607
+ Related Id(s): OTP-16608
+
+# erts-14.3
+
+## Fixed Bugs and Malfunctions
+
+- Bugs in how `erl -extra` interacts with passing flags via ERL\_\*FLAGS or
+ `-args_file` have been fixed.
+
+ Own Id: OTP-18766
+ Related Id(s): [PR-7639]
+
+- Fixed a bug that prevented the emulator from building on recent versions of
+ Yocto Linux.
+
+ Own Id: OTP-18918
+ Related Id(s): [PR-7952]
+
+- Fix spectre mitigation configure test to work with GCC patches to always add
+ `-fcf-protection=full`.
+
+ Own Id: OTP-18928
+ Related Id(s): [PR-8006]
+
+- Fix faulty reduction counting in exiting process which could cause it to do
+ unnecessary yielding.
+
+ Own Id: OTP-19014
+
+## Improvements and New Features
+
+- Refactored how the JIT handles POSIX signals and how they affect thread
+ stacks, allowing us to use the native stack register for Erlang stacks on more
+ platforms.
+
+ Notably, containers built on 64-bit x86 Alpine Linux images will now perform
+ much better in sequential code. As an example, running `dialyzer` over the OTP
+ code base finishes about 15% quicker.
+
+ Own Id: OTP-18568
+ Related Id(s): [PR-7174]
+
+- The [`instrument`] module can now track allocations on a per-process or
+ per-port basis.
+
+ Own Id: OTP-18577
+ Related Id(s): [PR-7236]
+
+- The `pid` field has been removed from `erlang:fun_info/1,2`.
+
+ Own Id: OTP-18594
+ Related Id(s): [PR-7274]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- By default, escripts will now be compiled instead of interpreted. That means
+ that the `compiler` application must be installed.
+
+ Own Id: OTP-18639
+ Related Id(s): [PR-7348]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- A binary returned from the [`socket`] receive functions is no longer created
+ as a sub binary of an often large receive buffer binary (socket option
+ `{otp,rcvbuf}`). This avoids space waste, trusting the allocators to implement
+ reallocation efficiently.
+
+ Own Id: OTP-18642
+ Related Id(s): [GH-6152], [PR-7465]
+
+- The default process limit has been raised to `1048576` processes.
+
+ Own Id: OTP-18699
+ Related Id(s): [PR-7388]
+
+- The `erlang:system_monitor/2` functionality is now able to monitor long
+ message queues in the system.
+
+ Own Id: OTP-18709
+ Related Id(s): [PR-7651]
+
+- The `erl` command now supports the `-S` flag, which is similar to the `-run`
+ flag, except that it will pass all arguments up to end of the command line to
+ the called function. (The `-run` flag will not pass arguments beginning with a
+ hyphen.) Another difference is that `-S` will always call a function with one
+ argument, passing an empty list if no arguments were given.
+
+ Own Id: OTP-18744
+ Related Id(s): [PR-7470]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- When implementing an alternative carrier for the Erlang distribution, a
+ separate input handler process may now be registered, using
+ `erlang:dist_ctrl_input_handler/2`, also in the case when the distribution
+ controller is a port.
+
+ Own Id: OTP-18774
+ Related Id(s): [PR-7110]
+
+- The call stack trace has now been added to the error reported by
+ `erlang:process_flag/2` when `max_heap_size` limit has been exceeded.
+
+ Own Id: OTP-18779
+ Related Id(s): [PR-7592]
+
+- `-callback` attributes have been added to [`erl_tracer`].
+
+ Own Id: OTP-18794
+ Related Id(s): [PR-7703]
+
+- For `inet_backend = socket`, setting the `active` socket option alone, to
+ `once`, `true` or `N`, has been optimized, as well as the corresponding data
+ delivery.
+
+ Own Id: OTP-18835
+
+- Socket options that take string now also accept binaries.
+
+ Own Id: OTP-18849
+ Related Id(s): [PR-6510]
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the [`cover`] tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ [`line_coverage`] option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ ```text
+ $ erl +JPcover true
+ ```
+
+ There are also the following new functions for supporting native coverage:
+
+ - `code:coverage_support/0`
+ - `code:get_coverage/2`
+ - `code:reset_coverage/1`
+ - `code:get_coverage_mode/0`
+ - `code:get_coverage_mode/1`
+ - `code:set_coverage_mode/1`
+
+ Own Id: OTP-18856
+ Related Id(s): [PR-7856]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Changed the default value of the command line flag `-code_path_choice Choice`
+ to `strict`.
+
+ Own Id: OTP-18894
+ Related Id(s): [PR-7243]
+
+- Added module loading to `erl -init_debug` printouts.
+
+ Own Id: OTP-18929
+ Related Id(s): [PR-8004]
+
+- When the runtime system halts, it performs various flush operations before
+ terminating. By default there is no limit on how much time the flush
+ operations are allowed to take. A new _halt flush timeout_ functionality has
+ been introduced which can be used for limiting the amount of time that the
+ flushing operations are allowed to take. For more information see the
+ documentation of the [`flush_timeout`] option of the `erlang:halt/2` BIF and
+ the documentation of the `erl` [`+zhft <Timeout>`] command line flag.
+
+ Own Id: OTP-18938
+ Related Id(s): [GH-7438], [PR-8035]
+
+- Optimized code loading by moving certain operations from the code server to
+ the caller.
+
+ Own Id: OTP-18941
+ Related Id(s): [PR-7981]
+
+- Updated asmjit to version a465fe71ab3d0e224b2b4bd0fac69ae68ab9239d
+
+ Own Id: OTP-18942
+
+- The deprecated functions in [`zlib`] have been removed. That includes
+ `inflateChunk/{1,2}`, `getBufSize/1`, `setBufSize/2`, the CRC32 functions, and
+ the Adler checksum functions.
+
+ Own Id: OTP-18950
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Safe destructive update of tuples has been implemented in the compiler and
+ runtime system. This allows the VM to update tuples in-place when it is safe
+ to do so, thus improving performance by doing less copying but also by
+ producing less garbage.
+
+ Example:
+
+ ```erlang
+ -record(rec, {a,b,c}).
+
+ update(#rec{a=needs_update,b=N}=R0) ->
+ R = R0#rec{a=up_to_date},
+ if
+ N < 0 ->
+ R#rec{c=negative};
+ N == 0 ->
+ R#rec{c=zero};
+ N > 0 ->
+ R#rec{c=positive}
+ end.
+ ```
+
+ The record updates in each of the three clauses of the `if` can safely be done
+ in-place, because variable `R` is not used again.
+
+ Own Id: OTP-18972
+ Related Id(s): [PR-8090]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The obsolete and undocumented support for opening a port to an external
+ resource by passing an atom (or a string) as first argument to `open_port()`,
+ implemented by the vanilla driver, has been removed. This feature has been
+ scheduled for removal in OTP 27 since the release of OTP 26.
+
+ Own Id: OTP-18976
+ Related Id(s): [PR-7125]
+
+- An optional NIF callback `ERL_NIF_OPT_ON_UNLOAD_THREAD` to be called by all
+ scheduler threads when a NIF library is unloaded. Used for releasing thread
+ specific data. Can be set with function `enif_set_option`.
+
+ Own Id: OTP-18977
+ Related Id(s): [PR-7809]
+
+- Multiple trace sessions.
+
+ Own Id: OTP-18980
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Added the `+MMlp on|off` emulator option to let the `mseg` allocator use
+ "large pages" (sometimes known as "huge pages" or "super pages"). This
+ currently only affects super-carrier allocations, but may be extended in the
+ future.
+
+ Own Id: OTP-18984
+ Related Id(s): [PR-7977]
+
+- `inet_backend = socket` has been optimized and reworked to be more compatible
+ with the original `inet_backend = inet`.
+
+ Own Id: OTP-19004
+ Related Id(s): OTP-18835
+
+> #### Full runtime dependencies of erts-14.3
+>
+> kernel-9.0, sasl-3.3, stdlib-4.1
+
+# et-1.7.1
+
+## Fixed Bugs and Malfunctions
+
+- The dependencies for this application are now listed in the app file.
+
+ Own Id: OTP-18831
+ Related Id(s): [PR-7441]
+
+- Dialyzer warnings due to type specs added in [`dbg`] have been eliminated.
+
+ Own Id: OTP-18860
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of et-1.7.1
+>
+> erts-9.0, kernel-5.3, runtime_tools-1.10, stdlib-3.4, wx-1.2
+
+# eunit-2.9.1
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of eunit-2.9.1
+>
+> erts-9.0, kernel-5.3, stdlib-3.4
+
+# ftp-1.2.2
+
+## Fixed Bugs and Malfunctions
+
+- Dialyzer warnings due to type specs added in [`dbg`] have been eliminated.
+
+ Own Id: OTP-18860
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of ftp-1.2.2
+>
+> erts-7.0, kernel-6.0, runtime_tools-1.15.1, ssl-10.2, stdlib-3.5
+
+# inets-9.2
+
+## Improvements and New Features
+
+- Introduced a default value for httpd_server name configuration to improve ease
+ of use.
+
+ Own Id: OTP-18641
+ Related Id(s): [PR-7316]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- The `httpd` module has been extended with an API for simple serving directory
+ content over HTTP. With this change, the current working directory can be
+ served like this:
+
+ ```
+ erl -S httpd
+ ```
+
+ An arbitrary directory can be served like this:
+
+ ```
+ erl -S httpd serve path/to/dir
+ ```
+
+ Own Id: OTP-18727
+ Related Id(s): [PR-7299]
+
+- Add `-callback` attributes to [`httpd`], [`mod_esi`] and [`mod_security`].
+
+ Own Id: OTP-18786
+ Related Id(s): [PR-7700]
+
+- Use a relative redirect with an absolute path to prevent whoever is running
+ inets from having to configure the ServerName to match the network-reachable
+ hostname of the server.
+
+ Own Id: OTP-18809
+
+- `inets` processes now use `proc_lib:set_label/1` to improve observeability.
+
+ Own Id: OTP-18927
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The implementations of `http_uri:encode/1` and `http_uri:decode/1` are now
+ replaced with their equivalent, but bug free versions from module
+ [`uri_string`], namely `uri_string:quote/1` and `uri_string:unquote/1`.
+
+ Own Id: OTP-19022
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+> #### Full runtime dependencies of inets-9.2
+>
+> erts-14.0, kernel-9.0, mnesia-4.12, public_key-1.13, runtime_tools-1.8.14,
+> ssl-9.0, stdlib-5.0, stdlib-6.0
+
+# jinterface-1.14.1
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+# kernel-9.3
+
+## Fixed Bugs and Malfunctions
+
+- Fixed a crash when calling `file:delete/2` with an empty option list.
+
+ Own Id: OTP-18590
+ Related Id(s): [PR-7220]
+
+- New functions have been added to the undocumented module [`inet_dns`] that
+ take a flag to specify if encode/decode is for mDNS. This affects how CLASS
+ values in the private range, with the top bit set, are handled.
+
+ Own Id: OTP-18878
+ Related Id(s): [GH-7718], OTP-17734
+
+- The error information for `erlang:phash/2` has been corrected.
+
+ Own Id: OTP-18904
+ Related Id(s): [PR-7960]
+
+- `get_until` requests using the I/O protocol now correctly return a binary or
+ list when `eof` is the last item returned by the callback.
+
+ Own Id: OTP-18930
+ Related Id(s): [GH-4992], [PR-7993]
+
+- Calling `logger:add_handlers/1` with config option now works.
+
+ Own Id: OTP-18954
+ Related Id(s): [GH-8061], [PR-8076]
+
+- The `code:del_path/1` function now also works on paths added through `-pa`,
+ `-pz` , `-path` and the boot script.
+
+ Own Id: OTP-18959
+ Related Id(s): [GH-6692], [PR-7697]
+
+## Improvements and New Features
+
+- Added `file:read_file/2` with a `raw` option for reading files without going
+ through the file server.
+
+ Own Id: OTP-18589
+ Related Id(s): [PR-7220]
+
+- The undocumented Erlang DNS resolver library (`inet_dns` and `inet_res`) has
+ been augmented to handle IXFR, NOTIFY, UPDATE and TSIG records. With this some
+ bug fixes and code cleanup has been done, and the resolver used in the test
+ suite has been changed to Knot DNS. See the source code.
+
+ Kudos to Alexander Clouter that did almost all the work!
+
+ Own Id: OTP-18713
+ Related Id(s): [GH-6985], [PR-6985]
+
+- The `ebin` directories for escripts are now cached.
+
+ Own Id: OTP-18778
+ Related Id(s): [PR-7556]
+
+- `-callback` attributes haven been added to [`application`],
+ [`logger_handler`], and [`logger_formatter`].
+
+ Own Id: OTP-18795
+ Related Id(s): [PR-7703]
+
+- Progress reports from before logger is started are now logged when log level
+ is set to debug.
+
+ Own Id: OTP-18807
+ Related Id(s): ERIERL-985, [PR-7732]
+
+- The `code:where_is_file/2` and `code:which/1` functions now check for
+ existence of the file directly instead of listing the content of each
+ directory in the code path.
+
+ Own Id: OTP-18816
+ Related Id(s): [PR-7711]
+
+- Type specs has been added to the [`logger:Level/1,2,3`] functions.
+
+ Own Id: OTP-18820
+ Related Id(s): [PR-7779]
+
+- For `inet_backend = socket`, setting the `active` socket option alone, to
+ `once`, `true` or `N`, has been optimized, as well as the corresponding data
+ delivery.
+
+ Own Id: OTP-18835
+
+- The shell now pages long output from the help command (`h(Module)`), auto
+ completions and the search command.
+
+ Own Id: OTP-18846
+ Related Id(s): [PR-7845]
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the [`cover`] tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ [`line_coverage`] option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ ```text
+ $ erl +JPcover true
+ ```
+
+ There are also the following new functions for supporting native coverage:
+
+ - `code:coverage_support/0`
+ - `code:get_coverage/2`
+ - `code:reset_coverage/1`
+ - `code:get_coverage_mode/0`
+ - `code:get_coverage_mode/1`
+ - `code:set_coverage_mode/1`
+
+ Own Id: OTP-18856
+ Related Id(s): [PR-7856]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Optimized code loading by moving certain operations from the code server to
+ the caller.
+
+ Own Id: OTP-18941
+ Related Id(s): [PR-7981]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Application startup has been optimized by removing an intermediary process.
+
+ Own Id: OTP-18963
+ Related Id(s): [PR-8042]
+
+- The existing experimental support for archive files will be changed in a
+ future release. The support for having an archive in an escript will remain,
+ but the support for using archives in a release will either become more
+ limited or completely removed.
+
+ As of Erlang/OTP 27, the function `code:lib_dir/2`, the `-code_path_choice`
+ flag, and using [`erl_prim_loader`] for reading members of an archive are
+ deprecated.
+
+ To remain compatible with future version of Erlang/OTP `escript` scripts that
+ need to retrieve data files from its archive should use `escript:extract/2`
+ instead of `erl_prim_loader` and `code:lib_dir/2`.
+
+ Own Id: OTP-18966
+ Related Id(s): [PR-8091]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- The undocumented and deprecated `file:pid2name` function has been removed.
+
+ Own Id: OTP-18967
+ Related Id(s): [PR-8092]
+
+- Improve error logging when the standard_io reader and/or writer terminate with
+ an error.
+
+ Own Id: OTP-18989
+ Related Id(s): [PR-8103]
+
+- `inet_backend = socket` has been optimized and reworked to be more compatible
+ with the original `inet_backend = inet`.
+
+ Own Id: OTP-19004
+ Related Id(s): OTP-18835
+
+> #### Full runtime dependencies of kernel-9.3
+>
+> crypto-5.0, erts-14.3, sasl-3.0, stdlib-6.0
+
+# megaco-4.6
+
+## Improvements and New Features
+
+- `-callback` attributes have been added to [`megaco_transport`].
+
+ Own Id: OTP-18806
+ Related Id(s): [PR-7740]
+
+- Updated types and specs for all API modules.
+
+ Own Id: OTP-18920
+ Related Id(s): BL-322
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of megaco-4.6
+>
+> asn1-3.0, debugger-4.0, erts-12.0, et-1.5, kernel-8.0, runtime_tools-1.8.14,
+> stdlib-2.5
+
+# mnesia-4.23.1
+
+## Fixed Bugs and Malfunctions
+
+- The `mnesia_registry` module have been deprecated.
+
+ Own Id: OTP-18994
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of mnesia-4.23.1
+>
+> erts-9.0, kernel-5.3, stdlib-5.0
+
+# observer-2.16
+
+## Fixed Bugs and Malfunctions
+
+- The dependencies for this application are now listed in the app file.
+
+ Own Id: OTP-18831
+ Related Id(s): [PR-7441]
+
+## Improvements and New Features
+
+- The new function `proc_lib:set_label/1` can be used to add a descriptive term
+ to any process that does not have a registered name. The name will be shown by
+ tools such as `\c:i/0`, [`observer`], and it will be included in crash reports
+ produced by processes using [`gen_server`], [`gen_statem`], [`gen_event`], and
+ [`gen_fsm`].
+
+ The label for a process can be retrieved by calling `proc_lib:get_label/1`.
+
+ Note that those functions work on any process, not only processes that use
+ [`proc_lib`].
+
+ Example:
+
+ ```text
+ 1> self().
+ <0.90.0>
+ 2> proc_lib:set_label(my_label).
+ ok
+ 3> i().
+ .
+ .
+ .
+ <0.90.0> erlang:apply/2 2586 75011 0
+ my_label c:pinfo/2 51
+ 4> proc_lib:get_label(self()).
+ my_label
+ ```
+
+ Own Id: OTP-18789
+ Related Id(s): [PR-7720], [PR-8003]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of observer-2.16
+>
+> erts-14.0, et-1.5, kernel-9.0, runtime_tools-1.19, stdlib-5.0, wx-2.3
+
+# odbc-2.14.3
+
+## Fixed Bugs and Malfunctions
+
+- Change liborder in makefile to avoid finding system libei instead of erlang
+ libei.
+
+ Own Id: OTP-19030
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of odbc-2.14.3
+>
+> erts-6.0, kernel-3.0, stdlib-2.0
+
+# os_mon-2.10
+
+## Improvements and New Features
+
+- Function specifications and types have been added to all public API functions.
+
+ Own Id: OTP-18913
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of os_mon-2.10
+>
+> erts-14.0, kernel-9.0, sasl-4.2.1, stdlib-5.0
+
+# parsetools-2.6
+
+## Improvements and New Features
+
+- The `leex` documentation has been updated to use specs for documenting the
+ generated interface.
+
+ Own Id: OTP-18796
+ Related Id(s): [PR-7703]
+
+- yecc now wraps the `-module` attribute with `-file` to indicate the `.yrl`
+ source file.
+
+ Own Id: OTP-18912
+ Related Id(s): [PR-7963]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of parsetools-2.6
+>
+> erts-6.0, kernel-3.0, stdlib-3.4
+
+# public_key-1.16
+
+## Improvements and New Features
+
+- The `ssl` client can negotiate and handle certificate status request (OCSP
+ stapling support on the client side).
+
+ Own Id: OTP-18606
+ Related Id(s): OTP-16448, OTP-16875
+
+- Improved exception reason when `public_key:cacerts_get/0` failed.
+
+ Own Id: OTP-18609
+ Related Id(s): [GH-7295], [PR-7202]
+
+- Key customization support has been extended to allow flexibility for
+ implementers of for instance hardware security modules (HSM) or trusted
+ platform modules (TPM).
+
+ Own Id: OTP-18876
+ Related Id(s): [PR-7475], [PR-7898]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of public_key-1.16
+>
+> asn1-3.0, crypto-4.6, erts-6.0, kernel-3.0, stdlib-3.5
+
+# reltool-1.0.1
+
+## Fixed Bugs and Malfunctions
+
+- The dependencies for this application are now listed in the app file.
+
+ Own Id: OTP-18831
+ Related Id(s): [PR-7441]
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of reltool-1.0.1
+>
+> erts-14.3, kernel-9.0, sasl-4.2.1, stdlib-5.0, tools-2.6.14, wx-2.3
+
+# runtime_tools-2.1
+
+## Improvements and New Features
+
+- The [`instrument`] module can now track allocations on a per-process or
+ per-port basis.
+
+ Own Id: OTP-18577
+ Related Id(s): [PR-7236]
+
+- The new function `proc_lib:set_label/1` can be used to add a descriptive term
+ to any process that does not have a registered name. The name will be shown by
+ tools such as `\c:i/0`, [`observer`], and it will be included in crash reports
+ produced by processes using [`gen_server`], [`gen_statem`], [`gen_event`], and
+ [`gen_fsm`].
+
+ The label for a process can be retrieved by calling `proc_lib:get_label/1`.
+
+ Note that those functions work on any process, not only processes that use
+ [`proc_lib`].
+
+ Example:
+
+ ```text
+ 1> self().
+ <0.90.0>
+ 2> proc_lib:set_label(my_label).
+ ok
+ 3> i().
+ .
+ .
+ .
+ <0.90.0> erlang:apply/2 2586 75011 0
+ my_label c:pinfo/2 51
+ 4> proc_lib:get_label(self()).
+ my_label
+ ```
+
+ Own Id: OTP-18789
+ Related Id(s): [PR-7720], [PR-8003]
+
+- Type specs had been added to all [`dbg`] functions.
+
+ Own Id: OTP-18859
+ Related Id(s): [PR-7782]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of runtime_tools-2.1
+>
+> erts-14.2, kernel-8.1, mnesia-4.12, stdlib-6.0
+
+# sasl-4.2.2
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of sasl-4.2.2
+>
+> erts-14.3, kernel-6.0, stdlib-4.0, tools-2.6.14
+
+# snmp-5.16
+
+## Improvements and New Features
+
+- `-callback` attributes have been added to modules
+ [`snmpa_network_interface_filter`], [`snmpa_notification_filter`],
+ [`snmpm_network_interface_filter`], [`snmpm_user`], and
+ [`snmpa_notification_delivery_info_receiver`].
+
+ New `-type` attributes have also been added to modules [`snmp`], [`snmpa`],
+ [`snmpm`], and [`snmpa_conf`] to support the previously mentioned callbacks.
+
+ Own Id: OTP-18785
+ Related Id(s): [PR-7702]
+
+- Updated types and specs for all API modules.
+
+ Own Id: OTP-18934
+ Related Id(s): BL-312
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of snmp-5.16
+>
+> crypto-4.6, erts-12.0, kernel-8.0, mnesia-4.12, runtime_tools-1.8.14,
+> stdlib-5.0
+
+# ssh-5.2
+
+## Fixed Bugs and Malfunctions
+
+- With this change, ssh processes are assigned labels for troubleshooting
+ purposes.
+
+ Own Id: OTP-19017
+
+## Improvements and New Features
+
+- The shell now pages long output from the help command (`h(Module)`), auto
+ completions and the search command.
+
+ Own Id: OTP-18846
+ Related Id(s): [PR-7845]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Updated types and specs for all API modules.
+
+ Own Id: OTP-18961
+
+> #### Full runtime dependencies of ssh-5.2
+>
+> crypto-5.0, erts-14.0, kernel-9.0, public_key-1.6.1, runtime_tools-1.15.1,
+> stdlib-5.0, stdlib-6.0
+
+# ssl-11.2
+
+## Fixed Bugs and Malfunctions
+
+- Starting a TLS server without sufficient credentials (certificate or anonymous
+ cipher) would work, but it was impossible to connect to it.
+
+ This has been corrected to return an error instead of starting the server.
+
+ Own Id: OTP-18887
+ Related Id(s): [GH-7493], [PR-7918]
+
+- Handle ASN.1 decode errors in more places, to improve user error handling.
+
+ Own Id: OTP-18969
+ Related Id(s): [GH-8058]
+
+- Improved error checking on the API functions.
+
+ Own Id: OTP-18992
+ Related Id(s): [GH-8066], [PR-8156]
+
+## Improvements and New Features
+
+- The `ssl` client can negotiate and handle certificate status request (OCSP
+ stapling support on the client side).
+
+ Own Id: OTP-18606
+ Related Id(s): OTP-16448, OTP-16875
+
+- Memory consumption has been reduced and performance increased by refactoring
+ internal data structures and their usage.
+
+ Own Id: OTP-18665
+ Related Id(s): [PR-7447]
+
+- Added `ssl_crl_cache_api:lookup/2` as an optional `-callback` attribute.
+
+ Own Id: OTP-18788
+ Related Id(s): [PR-7700]
+
+- Key customization support has been extended to allow flexibility for
+ implementers of for instance hardware security modules (HSM) or trusted
+ platform modules (TPM).
+
+ Own Id: OTP-18876
+ Related Id(s): [PR-7475], [PR-7898]
+
+- The `proc_lib:set_label/1` function is now used to increase observability of
+ `ssl` processes.
+
+ Own Id: OTP-18879
+
+- Add support for brainpool elliptic curves in TLS-1.3.
+
+ Own Id: OTP-18884
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Make ssl:key_exporter_materials/4 a documented and supported API function.
+
+ Own Id: OTP-19016
+
+- For security reasons remove CBC ciphers form default supported cipher suites
+ in TLS-1.2
+
+ Own Id: OTP-19025
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- Add cert_policy_opts option to configure certificate policy options for the
+ certificate path validation.
+
+ Own Id: OTP-19027
+
+> #### Full runtime dependencies of ssl-11.2
+>
+> crypto-5.0, erts-14.3, inets-5.10.7, kernel-9.0, public_key-1.15,
+> runtime_tools-1.15.1, stdlib-6.0
+
+# stdlib-6.0
+
+## Fixed Bugs and Malfunctions
+
+- The specs in module [`binary`] has been updated to reflect what is allowed by
+ the documentation.
+
+ Own Id: OTP-18684
+ Related Id(s): [PR-7481]
+
+- Several functions in the [`binary`] module would accept arguments of the wrong
+ type under certain circumstances. In this release, they now raise an exception
+ when incorrect types are given.
+
+ The following functions would accept an invalid pattern if the subject binary
+ was empty or if the `{scope,{0,0}}` option was given: `binary:match/2,3`,
+ `binary:matches/2,3`, `binary:replace/3,4`, and `binary:split/2,3`
+
+ The call `binary:copy(<<1:1>>, 0)` would return an empty binary instead of
+ raising an exception. Similarly, calls to `binary:part/2,3` attempting to
+ extract 0 bytes at position 0 of a bitstring would return an empty binary
+ instead of raising an exception.
+
+ Own Id: OTP-18743
+ Related Id(s): [PR-7607], [PR-7628]
+
+- The documentation for the preprocessor now mentions that `defined(Name)` can
+ be called in the condition for an `-if` or `-elif` directive to test whether
+ `Name` is the name of a defined macro. (This feature was implemented in OTP
+ 21.)
+
+ If a function call in an `-if` or `-elif` with a name that is not the name of
+ a guard BIF, there would not be a compilation error, but would instead cause
+ the lines following the directive to be skipped. This has now been changed to
+ be a compilation error.
+
+ Own Id: OTP-18784
+ Related Id(s): [GH-7706], [PR-7726]
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- `get_until` requests using the I/O protocol now correctly return a binary or
+ list when `eof` is the last item returned by the callback.
+
+ Own Id: OTP-18930
+ Related Id(s): [GH-4992], [PR-7993]
+
+- Enhance simple_one_for_one error handling. Avoid crash of transient child
+ returning ignore for init-function. Also disallow automatic shutdown as it
+ does not make sense for this supervisor type, may potentially be backwards
+ incompatible for no intended uses, that is supervisors will not remain
+ bug-compatible.
+
+ Own Id: OTP-19029
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+## Improvements and New Features
+
+- The functions `is_equal/2`, `map/2`, and `filtermap/2` have been added to the
+ modules [`sets`], [`ordsets`], and [`gb_sets`].
+
+ Own Id: OTP-18622
+ Related Id(s): [GH-7183], [GH-7232]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The compiler now emits nicer error message for function head mismatches. For
+ example, given:
+
+ ```erlang
+ a() -> ok;
+ a(_) -> error.
+ ```
+
+ Erlang/OTP 26 and earlier would emit a diagnostic similar to:
+
+ ```text
+ t.erl:6:1: head mismatch
+ % 6| a(_) -> error.
+ % | ^
+ ```
+
+ while in Erlang/OTP 27 the diagnostic is similar to:
+
+ ```text
+ t.erl:6:1: head mismatch: function a with arities 0 and 1 is regarded as two distinct functions. Is the number of arguments incorrect or is the semicolon in a/0 unwanted?
+ % 6| a(_) -> error.
+ % | ^
+ ```
+
+ Own Id: OTP-18648
+ Related Id(s): [PR-7383]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- `zip:create/2,3` will now tolerate POSIX timestamps in the provided
+ `file_info` records.
+
+ Own Id: OTP-18668
+
+- The callback function `gen_statem:handle_event/4` has been cached in the
+ `gen_statem` engine to optimize callback call speed.
+
+ Own Id: OTP-18671
+ Related Id(s): [PR-7419]
+
+- The type `beam_lib:beam/0` is now exported.
+
+ Own Id: OTP-18716
+ Related Id(s): [PR-7534]
+
+- The documentation for the [`binary`] module has been improved.
+
+ Own Id: OTP-18741
+ Related Id(s): [PR-7585]
+
+- `binary:replace/3,4` now supports using a fun for supplying the replacement
+ binary.
+
+ Own Id: OTP-18742
+ Related Id(s): [PR-7590]
+
+- Triple-Quoted Strings has been implemented as per [EEP 64]. See String in the
+ Reference Manual.
+
+ Example:
+
+ ```erlang
+ 1> """
+ a
+ b
+ c
+ """.
+ "a\nb\nc"
+ ```
+
+ Adjacent string literals without intervening white space is now a syntax
+ error, to avoid possible confusion with triple-quoted strings. For example:
+
+ ```text
+ 1> "abc""xyz".
+ "xyz".
+ * 1:6: adjacent string literals without intervening white space
+ ```
+
+ Own Id: OTP-18750
+ Related Id(s): [PR-7313], [PR-7451], OTP-18746
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- The new function `proc_lib:set_label/1` can be used to add a descriptive term
+ to any process that does not have a registered name. The name will be shown by
+ tools such as `\c:i/0`, [`observer`], and it will be included in crash reports
+ produced by processes using [`gen_server`], [`gen_statem`], [`gen_event`], and
+ [`gen_fsm`].
+
+ The label for a process can be retrieved by calling `proc_lib:get_label/1`.
+
+ Note that those functions work on any process, not only processes that use
+ [`proc_lib`].
+
+ Example:
+
+ ```text
+ 1> self().
+ <0.90.0>
+ 2> proc_lib:set_label(my_label).
+ ok
+ 3> i().
+ .
+ .
+ .
+ <0.90.0> erlang:apply/2 2586 75011 0
+ my_label c:pinfo/2 51
+ 4> proc_lib:get_label(self()).
+ my_label
+ ```
+
+ Own Id: OTP-18789
+ Related Id(s): [PR-7720], [PR-8003]
+
+- `-callback` attributes has been added to modules [`sys`] and [`erl_error`].
+
+ Own Id: OTP-18793
+ Related Id(s): [PR-7703]
+
+- Several new functions that accept funs have been added to module [`timer`].
+
+ Functions `apply_after/2`, `apply_interval/2`, and `apply_repeatedly/2` accept
+ a nullary fun as the second argument, while functions `apply_after/3`,
+ `apply_interval/3`, and `apply_repeatedly/3` accept an n-ary fun as the second
+ and a list of n arguments for the fun as the third argument.
+
+ Own Id: OTP-18808
+ Related Id(s): [PR-7649]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Sigils on string literals have been implemented as per [EEP 66], that is:
+ binary and string sigils in verbatim and escape characters variants, as well
+ as a default (vanilla) Sigil. All for ordinary strings and for triple-quoted
+ strings (EEP 64). See Sigils in the Reference Manual.
+
+ Examples:
+
+ ```erlang
+ 1> ~"Björn".
+ <<"Björn"/utf8>>
+ 2> ~b"Björn".
+ <<"Björn"/utf8>>
+ 3> ~S"\s*(\w+)".
+ "\\s*(\\w+)"
+ 4> ~B"\s*(\w+)".
+ <<"\\s*(\\w+)">>
+ ```
+
+ Own Id: OTP-18825
+ Related Id(s): [PR-7684], OTP-18750
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Functions `shell:default_multiline_prompt/1`, `shell:inverted_space_prompt/1`,
+ and `shell:prompt_width/1` have been exported to help with custom prompt
+ implementations.
+
+ Own Id: OTP-18834
+ Related Id(s): [PR-7675], [PR-7816]
+
+- The shell now pages long output from the help command (`h(Module)`), auto
+ completions and the search command.
+
+ Own Id: OTP-18846
+ Related Id(s): [PR-7845]
+
+- The `M-h` hotkey (Alt/Option-h) now outputs help for the module or function
+ directly before the cursor.
+
+ Own Id: OTP-18847
+ Related Id(s): [PR-7846]
+
+- Added support for adding a custom code formatter that formats your multi-line
+ shell commands in your preferred formatting on submission. See
+ `shell:format_shell_func/` and `shell:erl_pp_format_func/1`.
+
+ Own Id: OTP-18848
+ Related Id(s): [PR-7847]
+
+- Added shell functions for viewing, forgetting and saving locally defined
+ functions, types and records.
+
+ Own Id: OTP-18852
+ Related Id(s): [PR-7844]
+
+- Added `string:jaro_similarity/2`, which can be used to calculate the
+ similarity between two strings.
+
+ Own Id: OTP-18865
+ Related Id(s): [PR-7879]
+
+- The new function `ets:update_element/4` is similar to `ets:update_element/3`,
+ but takes a default tuple as the fourth argument, which will be inserted if no
+ previous record with that key exists.
+
+ Own Id: OTP-18870
+ Related Id(s): [PR-7857]
+
+- Added functions to retrieve the next higher or lower key/element from
+ [`gb_trees`] and [`gb_sets`], as well as returning iterators that start at
+ given keys/elements.
+
+ Own Id: OTP-18874
+ Related Id(s): [PR-7745]
+
+- When the shell built-in function [`c/1,2`][c12] is used to re-compile a
+ module, the current working directory of the original compilation is now added
+ to the include path.
+
+ [c12]: `\c:c/1`
+
+ Own Id: OTP-18908
+ Related Id(s): [PR-7957]
+
+- The `timer` module now uses a private table for its internal state, slightly
+ improving its performance.
+
+ Own Id: OTP-18914
+ Related Id(s): [PR-7973]
+
+- [EEP-59 - Documentation Attributes] has been implemented.
+
+ Documentation attributes can be used to document functions, types, callbacks,
+ and modules. The keyword `-moduledoc "Documentation here".` is used to
+ document modules, while `-doc "Documentation here".` can be used on top of
+ functions, types, and callbacks to document them, respectively.
+
+ - Types, callbacks, and function documentation can be set to `hidden` either
+ via `-doc false` or `-doc hidden`. When documentation attributes mark a type
+ as hidden, they will not be part of the documentation.
+ - The documentation from `moduledoc` and `doc` gets added by default to the
+ binary beam file, following the format of [EEP-48].
+ - Using the compiler flag `warn_missing_doc` will raise a warning when `-doc`
+ attributes are missing in exported functions, types, and callbacks.
+ - Using the compiler flag `warn_missing_spec_documented` will raise a warning
+ when spec attributes are missing in documented functions, types, and
+ callbacks.
+ - `moduledoc`s and `doc`s may refer to external files to be embedded, such as
+ `-doc {file, "README.md"}.`, which refers to the file `README.md` found in
+ the current working directory.
+ - The compiler warns about exported functions whose specs refer to hidden
+ types. Thus, there will be warnings when a hidden type (meaning, the type is
+ not part of the documentation) gets used in an exported function.
+
+ Own Id: OTP-18916
+ Related Id(s): [PR-7936]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- New [`ets`] functions `ets:first_lookup/1`, `ets:next_lookup/2`,
+ `ets:prev_lookup/2` and `ets:last_lookup/1`. Example: `ets:next_lookup/1` is
+ equivalent to `ets:next/2` followed by `ets:lookup/2` with the next key. The
+ new combined functions are more efficient and with guaranteed atomicity.
+
+ Own Id: OTP-18923
+ Related Id(s): [PR-6791]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The `maybe` expression is now enabled by default.
+
+ To use `maybe` as an atom, it needs to be single-quoted. Alternatively, the
+ `maybe` expression can be disabled by disabling the `maybe_expr` feature. That
+ can be done by placing the following the line at the beginning of an Erlang
+ source file:
+
+ ```erlang
+ -feature(maybe_expr, disable).
+ ```
+
+ Another way to disable the `maybe_expr` feature is by passing the
+ `-disable-feature` option to `erlc`:
+
+ ```text
+ erlc -disable-feature maybe_expr some_file.erl
+ ```
+
+ Own Id: OTP-18944
+ Related Id(s): [PR-8067]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The compiler will now raise a warning when updating record/map literals. As an
+ example, consider this module:
+
+ ```erlang
+ -module(t).
+ -export([f/0]).
+ -record(r, {a,b,c}).
+
+ f() ->
+ #r{a=1}#r{b=2}.
+ ```
+
+ The compiler raises the following warning:
+
+ ```text
+ 1> c(t).
+ t.erl:6:12: Warning: expression updates a literal
+ % 6| #r{a=1}#r{b=2}.
+ % | ^
+ ```
+
+ Own Id: OTP-18951
+ Related Id(s): [PR-8069]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- Optimized `ets:foldl` and `ets:foldr` to use new `ets:next_lookup`. Also made
+ them immune against table renaming.
+
+ Own Id: OTP-18993
+ Related Id(s): [PR-8048]
+
+- Windows now supports all functions in [`math`].
+
+ Own Id: OTP-19001
+ Related Id(s): [PR-8164]
+
+- `m:erl_lint` (and by extension the [`compiler`]) will now warn for code using
+ deprecated callbacks.
+
+ The only callback currenly deprecated is `format_status/2` in `gen_server`,
+ `gen_event` and `gen_statem`.
+
+ You can use `nowarn_deprecated_callback` to silence the warning.
+
+ Own Id: OTP-19010
+ Related Id(s): [PR-8205]
+
+- There is a new module [`json`] for encoding and decoding [JSON].
+
+ Both encoding and decoding can be customized. Decoding can be done in a
+ SAX-like fashion and handle multiple documents and streams of data.
+
+ Own Id: OTP-19020
+ Related Id(s): [PR-8111]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of stdlib-6.0
+>
+> compiler-5.0, crypto-4.5, erts-14.3, kernel-9.3, sasl-3.0
+
+# syntax_tools-3.2
+
+## Fixed Bugs and Malfunctions
+
+- The [`epp_dodger`] module can now handle the `maybe` and `else` keywords.
+
+ Own Id: OTP-18608
+ Related Id(s): [GH-7266], [PR-7267]
+
+- Reverting a `#wrapper` will no longer throw away changes made to
+ positions/annotations.
+
+ Own Id: OTP-18805
+ Related Id(s): [PR-7398]
+
+## Improvements and New Features
+
+- The type `erl_syntax:annotation_or_location/0` is now exported.
+
+ Own Id: OTP-18715
+ Related Id(s): [PR-7535]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of syntax_tools-3.2
+>
+> compiler-7.0, erts-9.0, kernel-5.0, stdlib-4.0
+
+# tftp-1.2
+
+## Improvements and New Features
+
+- There is a new [`tftp_logger`] callback behavior module.
+
+ Own Id: OTP-18787
+ Related Id(s): [PR-7700]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of tftp-1.2
+>
+> erts-6.0, kernel-6.0, stdlib-5.0
+
+# tools-4.0
+
+## Fixed Bugs and Malfunctions
+
+- Dialyzer warnings due to type specs added in [`dbg`] have been eliminated.
+
+ Own Id: OTP-18860
+
+- In Erlang/OTP 26, doing a [`cover`] analysis on the `line` level would return
+ multiple entries for lines on which multiple functions were defined.
+
+ For example, consider this module:
+
+ -module(foo).
+ -export([bar/0, baz/0]).
+
+ bar() -> ok. baz() -> not_ok.
+
+ In Erlang/OTP 26, analysing on the `line` level would return two entries for
+ line 4:
+
+ 1> cover:compile_module(foo).
+ {ok,foo}
+ 2> foo:bar().
+ ok
+ 3> cover:analyse(foo, coverage, line).
+ {ok,[{{foo,4},{1,0}},{{foo,4},{0,1}}]}
+ 4> cover:analyse(foo, calls, line).
+ {ok,[{{foo,4},1},{{foo,4},0}]}
+
+ In Erlang/OTP 27, there will only be a single entry for line 4:
+
+ 1> cover:compile_module(foo).
+ {ok,foo}
+ 2> foo:bar().
+ ok
+ 3> cover:analyse(foo, coverage, line).
+ {ok,[{{foo,4},{1,0}}]}
+ 4> cover:analyse(foo, calls, line).
+ {ok,[{{foo,4},1}]}
+
+ Own Id: OTP-18998
+ Related Id(s): [GH-8159], [PR-8182]
+
+- Fixed align command in emacs mode.
+
+ Own Id: OTP-19026
+ Related Id(s): [PR-8155]
+
+## Improvements and New Features
+
+- Triple-Quoted Strings has been implemented as per [EEP 64]. See String in the
+ Reference Manual.
+
+ Example:
+
+ ```erlang
+ 1> """
+ a
+ b
+ c
+ """.
+ "a\nb\nc"
+ ```
+
+ Adjacent string literals without intervening white space is now a syntax
+ error, to avoid possible confusion with triple-quoted strings. For example:
+
+ ```text
+ 1> "abc""xyz".
+ "xyz".
+ * 1:6: adjacent string literals without intervening white space
+ ```
+
+ Own Id: OTP-18750
+ Related Id(s): [PR-7313], [PR-7451], OTP-18746
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+ \*\*\* POTENTIAL INCOMPATIBILITY \*\*\*
+
+- There is a new tool [`tprof`], which combines the functionality of [`eprof`]
+ and [`cprof`] under one interface. It also adds heap profiling.
+
+ Own Id: OTP-18756
+ Related Id(s): [PR-6639]
+
+- Native coverage support has been implemented in the JIT. It will automatically
+ be used by the [`cover`] tool to reduce the execution overhead when running
+ cover-compiled code.
+
+ There are also new APIs to support native coverage without using the `cover`
+ tool.
+
+ To instrument code for native coverage it must be compiled with the
+ [`line_coverage`] option.
+
+ To enable native coverage in the runtime system, start it like so:
+
+ ```text
+ $ erl +JPcover true
+ ```
+
+ There are also the following new functions for supporting native coverage:
+
+ - `code:coverage_support/0`
+ - `code:get_coverage/2`
+ - `code:reset_coverage/1`
+ - `code:get_coverage_mode/0`
+ - `code:get_coverage_mode/1`
+ - `code:set_coverage_mode/1`
+
+ Own Id: OTP-18856
+ Related Id(s): [PR-7856]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of tools-4.0
+>
+> compiler-8.5, erts-14.3, erts-14.3, kernel-9.3, runtime_tools-2.1, stdlib-6.0
+
+# wx-2.4.2
+
+## Improvements and New Features
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of wx-2.4.2
+>
+> erts-12.0, kernel-8.0, stdlib-5.0
+
+# xmerl-1.4
+
+## Improvements and New Features
+
+- Function specifications and types have been added to all public API functions.
+
+ Own Id: OTP-18913
+
+- As an alternative to `xmerl_xml`, a new export module `xmerl_xml_indent` that
+ provides out-of-the box indented output has been added.
+
+ Own Id: OTP-18922
+ Related Id(s): [PR-7942]
+
+- The documentation has been migrated to use Markdown and ExDoc.
+
+ Own Id: OTP-18955
+ Related Id(s): [PR-8026]
+
+ \*\*\* HIGHLIGHT \*\*\*
+
+> #### Full runtime dependencies of xmerl-1.4
+>
+> erts-6.0, kernel-3.0, stdlib-2.5
+
+[CTH Execution Order]:
+ https://erlang.org/doc/apps/common_test/ct_hooks_chapter.html#cth_execution_order
+[EEP 48]: https://www.erlang.org/eeps/eep-0048
+[EEP 64]: https://www.erlang.org/eeps/eep-0064
+[EEP 66]: https://www.erlang.org/eeps/eep-0066
+[EEP-48]: https://www.erlang.org/eeps/eep-0048
+[EEP-59 - Documentation Attributes]: https://www.erlang.org/eeps/eep-0059
+[GH-4992]: https://github.com/erlang/otp/issues/4992
+[GH-6152]: https://github.com/erlang/otp/issues/6152
+[GH-6692]: https://github.com/erlang/otp/issues/6692
+[GH-6979]: https://github.com/erlang/otp/issues/6979
+[GH-6985]: https://github.com/erlang/otp/issues/6985
+[GH-7183]: https://github.com/erlang/otp/issues/7183
+[GH-7232]: https://github.com/erlang/otp/issues/7232
+[GH-7266]: https://github.com/erlang/otp/issues/7266
+[GH-7295]: https://github.com/erlang/otp/issues/7295
+[GH-7397]: https://github.com/erlang/otp/issues/7397
+[GH-7432]: https://github.com/erlang/otp/issues/7432
+[GH-7438]: https://github.com/erlang/otp/issues/7438
+[GH-7493]: https://github.com/erlang/otp/issues/7493
+[GH-7494]: https://github.com/erlang/otp/issues/7494
+[GH-7706]: https://github.com/erlang/otp/issues/7706
+[GH-7718]: https://github.com/erlang/otp/issues/7718
+[GH-7972]: https://github.com/erlang/otp/issues/7972
+[GH-8058]: https://github.com/erlang/otp/issues/8058
+[GH-8061]: https://github.com/erlang/otp/issues/8061
+[GH-8066]: https://github.com/erlang/otp/issues/8066
+[GH-8159]: https://github.com/erlang/otp/issues/8159
+[GH-8166]: https://github.com/erlang/otp/issues/8166
+[JSON]: https://en.wikipedia.org/wiki/JSON
+[PR-6510]: https://github.com/erlang/otp/pull/6510
+[PR-6639]: https://github.com/erlang/otp/pull/6639
+[PR-6658]: https://github.com/erlang/otp/pull/6658
+[PR-6791]: https://github.com/erlang/otp/pull/6791
+[PR-6985]: https://github.com/erlang/otp/pull/6985
+[PR-7110]: https://github.com/erlang/otp/pull/7110
+[PR-7125]: https://github.com/erlang/otp/pull/7125
+[PR-7174]: https://github.com/erlang/otp/pull/7174
+[PR-7202]: https://github.com/erlang/otp/pull/7202
+[PR-7220]: https://github.com/erlang/otp/pull/7220
+[PR-7236]: https://github.com/erlang/otp/pull/7236
+[PR-7243]: https://github.com/erlang/otp/pull/7243
+[PR-7267]: https://github.com/erlang/otp/pull/7267
+[PR-7274]: https://github.com/erlang/otp/pull/7274
+[PR-7299]: https://github.com/erlang/otp/pull/7299
+[PR-7313]: https://github.com/erlang/otp/pull/7313
+[PR-7316]: https://github.com/erlang/otp/pull/7316
+[PR-7348]: https://github.com/erlang/otp/pull/7348
+[PR-7380]: https://github.com/erlang/otp/pull/7380
+[PR-7383]: https://github.com/erlang/otp/pull/7383
+[PR-7388]: https://github.com/erlang/otp/pull/7388
+[PR-7398]: https://github.com/erlang/otp/pull/7398
+[PR-7419]: https://github.com/erlang/otp/pull/7419
+[PR-7428]: https://github.com/erlang/otp/pull/7428
+[PR-7441]: https://github.com/erlang/otp/pull/7441
+[PR-7443]: https://github.com/erlang/otp/pull/7443
+[PR-7447]: https://github.com/erlang/otp/pull/7447
+[PR-7451]: https://github.com/erlang/otp/pull/7451
+[PR-7465]: https://github.com/erlang/otp/pull/7465
+[PR-7470]: https://github.com/erlang/otp/pull/7470
+[PR-7474]: https://github.com/erlang/otp/pull/7474
+[PR-7475]: https://github.com/erlang/otp/pull/7475
+[PR-7481]: https://github.com/erlang/otp/pull/7481
+[PR-7491]: https://github.com/erlang/otp/pull/7491
+[PR-7496]: https://github.com/erlang/otp/pull/7496
+[PR-7528]: https://github.com/erlang/otp/pull/7528
+[PR-7534]: https://github.com/erlang/otp/pull/7534
+[PR-7535]: https://github.com/erlang/otp/pull/7535
+[PR-7538]: https://github.com/erlang/otp/pull/7538
+[PR-7556]: https://github.com/erlang/otp/pull/7556
+[PR-7585]: https://github.com/erlang/otp/pull/7585
+[PR-7590]: https://github.com/erlang/otp/pull/7590
+[PR-7592]: https://github.com/erlang/otp/pull/7592
+[PR-7607]: https://github.com/erlang/otp/pull/7607
+[PR-7628]: https://github.com/erlang/otp/pull/7628
+[PR-7639]: https://github.com/erlang/otp/pull/7639
+[PR-7649]: https://github.com/erlang/otp/pull/7649
+[PR-7651]: https://github.com/erlang/otp/pull/7651
+[PR-7675]: https://github.com/erlang/otp/pull/7675
+[PR-7684]: https://github.com/erlang/otp/pull/7684
+[PR-7697]: https://github.com/erlang/otp/pull/7697
+[PR-7699]: https://github.com/erlang/otp/pull/7699
+[PR-7700]: https://github.com/erlang/otp/pull/7700
+[PR-7701]: https://github.com/erlang/otp/pull/7701
+[PR-7702]: https://github.com/erlang/otp/pull/7702
+[PR-7703]: https://github.com/erlang/otp/pull/7703
+[PR-7711]: https://github.com/erlang/otp/pull/7711
+[PR-7720]: https://github.com/erlang/otp/pull/7720
+[PR-7726]: https://github.com/erlang/otp/pull/7726
+[PR-7728]: https://github.com/erlang/otp/pull/7728
+[PR-7732]: https://github.com/erlang/otp/pull/7732
+[PR-7738]: https://github.com/erlang/otp/pull/7738
+[PR-7739]: https://github.com/erlang/otp/pull/7739
+[PR-7740]: https://github.com/erlang/otp/pull/7740
+[PR-7745]: https://github.com/erlang/otp/pull/7745
+[PR-7779]: https://github.com/erlang/otp/pull/7779
+[PR-7781]: https://github.com/erlang/otp/pull/7781
+[PR-7782]: https://github.com/erlang/otp/pull/7782
+[PR-7790]: https://github.com/erlang/otp/pull/7790
+[PR-7809]: https://github.com/erlang/otp/pull/7809
+[PR-7816]: https://github.com/erlang/otp/pull/7816
+[PR-7824]: https://github.com/erlang/otp/pull/7824
+[PR-7844]: https://github.com/erlang/otp/pull/7844
+[PR-7845]: https://github.com/erlang/otp/pull/7845
+[PR-7846]: https://github.com/erlang/otp/pull/7846
+[PR-7847]: https://github.com/erlang/otp/pull/7847
+[PR-7856]: https://github.com/erlang/otp/pull/7856
+[PR-7857]: https://github.com/erlang/otp/pull/7857
+[PR-7869]: https://github.com/erlang/otp/pull/7869
+[PR-7879]: https://github.com/erlang/otp/pull/7879
+[PR-7891]: https://github.com/erlang/otp/pull/7891
+[PR-7898]: https://github.com/erlang/otp/pull/7898
+[PR-7917]: https://github.com/erlang/otp/pull/7917
+[PR-7918]: https://github.com/erlang/otp/pull/7918
+[PR-7936]: https://github.com/erlang/otp/pull/7936
+[PR-7942]: https://github.com/erlang/otp/pull/7942
+[PR-7952]: https://github.com/erlang/otp/pull/7952
+[PR-7957]: https://github.com/erlang/otp/pull/7957
+[PR-7960]: https://github.com/erlang/otp/pull/7960
+[PR-7963]: https://github.com/erlang/otp/pull/7963
+[PR-7973]: https://github.com/erlang/otp/pull/7973
+[PR-7977]: https://github.com/erlang/otp/pull/7977
+[PR-7981]: https://github.com/erlang/otp/pull/7981
+[PR-7993]: https://github.com/erlang/otp/pull/7993
+[PR-8003]: https://github.com/erlang/otp/pull/8003
+[PR-8004]: https://github.com/erlang/otp/pull/8004
+[PR-8006]: https://github.com/erlang/otp/pull/8006
+[PR-8026]: https://github.com/erlang/otp/pull/8026
+[PR-8035]: https://github.com/erlang/otp/pull/8035
+[PR-8042]: https://github.com/erlang/otp/pull/8042
+[PR-8048]: https://github.com/erlang/otp/pull/8048
+[PR-8063]: https://github.com/erlang/otp/pull/8063
+[PR-8067]: https://github.com/erlang/otp/pull/8067
+[PR-8069]: https://github.com/erlang/otp/pull/8069
+[PR-8076]: https://github.com/erlang/otp/pull/8076
+[PR-8086]: https://github.com/erlang/otp/pull/8086
+[PR-8090]: https://github.com/erlang/otp/pull/8090
+[PR-8091]: https://github.com/erlang/otp/pull/8091
+[PR-8092]: https://github.com/erlang/otp/pull/8092
+[PR-8093]: https://github.com/erlang/otp/pull/8093
+[PR-8095]: https://github.com/erlang/otp/pull/8095
+[PR-8103]: https://github.com/erlang/otp/pull/8103
+[PR-8111]: https://github.com/erlang/otp/pull/8111
+[PR-8112]: https://github.com/erlang/otp/pull/8112
+[PR-8155]: https://github.com/erlang/otp/pull/8155
+[PR-8156]: https://github.com/erlang/otp/pull/8156
+[PR-8164]: https://github.com/erlang/otp/pull/8164
+[PR-8168]: https://github.com/erlang/otp/pull/8168
+[PR-8177]: https://github.com/erlang/otp/pull/8177
+[PR-8182]: https://github.com/erlang/otp/pull/8182
+[PR-8205]: https://github.com/erlang/otp/pull/8205
+[PR-8241]: https://github.com/erlang/otp/pull/8241
+[`+zhft <Timeout>`]: erl_cmd.md#+zhft
+[`application`]: https://erlang.org/doc/man/application
+[`binary`]: https://erlang.org/doc/man/binary
+[`compiler`]: https://erlang.org/doc/man/compile
+[`cover`]: https://erlang.org/doc/man/cover
+[`cprof`]: https://erlang.org/doc/man/cprof
+[`ct_hooks`]: https://erlang.org/doc/man/ct_hooks
+[`ct_property_test`]: https://erlang.org/doc/man/ct_property_test
+[`ct_suite`]: https://erlang.org/doc/man/ct_suite
+[`dbg`]: https://erlang.org/doc/man/dbg
+[`diameter_app`]: https://erlang.org/doc/man/diameter_app
+[`diameter_transport`]: https://erlang.org/doc/man/diameter_transport
+[`epp_dodger`]: https://erlang.org/doc/man/epp_dodger
+[`eprof`]: https://erlang.org/doc/man/eprof
+[`erl_error`]: https://erlang.org/doc/man/erl_error
+[`erl_prim_loader`]: https://erlang.org/doc/man/erl_prim_loader
+[`erl_tracer`]: https://erlang.org/doc/man/erl_tracer
+[`ets`]: https://erlang.org/doc/man/ets
+[`flush_timeout`]: https://erlang.org/doc/man/erlang#halt_flush_timeout
+[`gb_sets`]: https://erlang.org/doc/man/gb_sets
+[`gb_trees`]: https://erlang.org/doc/man/gb_trees
+[`gen_event`]: https://erlang.org/doc/man/gen_event
+[`gen_fsm`]: https://erlang.org/doc/man/gen_fsm
+[`gen_server`]: https://erlang.org/doc/man/gen_server
+[`gen_statem`]: https://erlang.org/doc/man/gen_statem
+[`httpd`]: https://erlang.org/doc/man/httpd
+[`inet_dns`]: https://erlang.org/doc/man/inet_dns
+[`instrument`]: https://erlang.org/doc/man/instrument
+[`json`]: https://erlang.org/doc/man/json
+[`line_coverage`]: https://erlang.org/doc/man/compile#line_coverage
+[`logger:Level/1,2,3`]: https://erlang.org/doc/man/logger
+[`logger_formatter`]: https://erlang.org/doc/man/logger_formatter
+[`logger_handler`]: https://erlang.org/doc/man/logger_handler
+[`math`]: https://erlang.org/doc/man/math
+[`megaco_transport`]: https://erlang.org/doc/man/megaco_transport
+[`mod_esi`]: https://erlang.org/doc/man/mod_esi
+[`mod_security`]: https://erlang.org/doc/man/mod_security
+[`observer`]: https://erlang.org/doc/man/observer
+[`ordsets`]: https://erlang.org/doc/man/ordsets
+[`proc_lib`]: https://erlang.org/doc/man/proc_lib
+[`sets`]: https://erlang.org/doc/man/sets
+[`snmp`]: https://erlang.org/doc/man/snmp
+[`snmpa_conf`]: https://erlang.org/doc/man/snmpa_conf
+[`snmpa_network_interface_filter`]:
+ https://erlang.org/doc/man/snmpa_network_interface_filter
+[`snmpa_notification_delivery_info_receiver`]:
+ https://erlang.org/doc/man/snmpa_notification_delivery_info_receiver
+[`snmpa_notification_filter`]:
+ https://erlang.org/doc/man/snmpa_notification_filter
+[`snmpa`]: https://erlang.org/doc/man/snmpa
+[`snmpm_network_interface_filter`]:
+ https://erlang.org/doc/man/snmpm_network_interface_filter
+[`snmpm_user`]: https://erlang.org/doc/man/snmpm_user
+[`snmpm`]: https://erlang.org/doc/man/snmpm
+[`socket`]: https://erlang.org/doc/man/socket
+[`sys`]: https://erlang.org/doc/man/sys
+[`tftp_logger`]: https://erlang.org/doc/man/tftp_logger
+[`timer`]: https://erlang.org/doc/man/timer
+[`tprof`]: https://erlang.org/doc/man/tprof
+[`uri_string`]: https://erlang.org/doc/man/uri_string
+[`zlib`]: https://erlang.org/doc/man/zlib
+[cth_log_redirect]:
+ https://erlang.org/doc/apps/common_test/ct_hooks_chapter.html#built-in-cths
+[specialized decode feature]: https://erlang.org/doc/apps/asn1/asn1_spec.html