diff options
169 files changed, 72761 insertions, 55 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 978ae70..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 @@ -12,41 +12,53 @@ # ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF # OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. -# We do not keep track of anything below patch releases. -# They are meant for OTP customers, are not announced -# and do not come with an easy to read changelog. They -# are also unlikely to be used by anyone other than -# OTP customers. -# -# Patch releases are announced on erlang-questions, -# and add a third component to the version number. -# A fourth component is also added once the next -# major release is out. - 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.17 -OTP-22 := OTP-22.0.7 OTP-22.1.8 OTP-22.2.8 OTP-22.3.4.4 -OTP-23 := OTP-23.0.3 - -OTP-18+ := $(OTP-18) $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) -OTP-19+ := $(OTP-19) $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) -OTP-20+ := $(OTP-20) $(OTP-21) $(OTP-22) $(OTP-23) -OTP-21+ := $(OTP-21) $(OTP-22) $(OTP-23) -OTP-22+ := $(OTP-22) $(OTP-23) -OTP-23+ := $(OTP-23) +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.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-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-21)) $(lastword $(OTP-22)) $(lastword $(OTP-23)) \ + $(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)) -OTP-LATEST-21+ := $(lastword $(OTP-21)) $(lastword $(OTP-22)) $(lastword $(OTP-23)) -OTP-LATEST-22+ := $(lastword $(OTP-22)) $(lastword $(OTP-23)) -OTP-LATEST-23+ := $(lastword $(OTP-23)) + $(lastword $(OTP-22)) $(lastword $(OTP-23)) $(lastword $(OTP-24)) \ + $(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-26)) $(lastword $(OTP-27)) +OTP-LATEST-22+ := $(lastword $(OTP-22)) $(lastword $(OTP-23)) \ + $(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. @@ -78,27 +90,47 @@ OTP-21-DROPPED := OTP-21.0-rc1 OTP-21.0-rc2 OTP-21.0 OTP-21.0.1 OTP-21.0.2 \ OTP-21.3.7 OTP-21.3.8 OTP-21.3.8.1 OTP-21.3.8.2 OTP-21.3.8.3 OTP-21.3.8.4 \ OTP-21.3.8.5 OTP-21.3.8.6 OTP-21.3.8.7 OTP-21.3.8.8 OTP-21.3.8.10 \ OTP-21.3.8.11 OTP-21.3.8.12 OTP-21.3.8.13 OTP-21.3.8.14 OTP-21.3.8.15 \ - OTP-21.3.8.16 + OTP-21.3.8.16 OTP-21.3.8.17 OTP-21.3.8.18 OTP-21.3.8.19 OTP-21.3.8.20 \ + OTP-21.3.8.22 OTP-21.3.8.23 OTP-22-DROPPED := OTP-22.0-rc1 OTP-22.0-rc2 OTP-22.0-rc3 OTP-22.0 \ OTP-22.0.1 OTP-22.0.2 OTP-22.0.3 OTP-22.0.4 OTP-22.0.5 OTP-22.0.6 \ OTP-22.1 OTP-22.1.1 OTP-22.1.2 OTP-22.1.3 OTP-22.1.4 OTP-22.1.5 \ OTP-22.1.6 OTP-22.1.7 OTP-22.2 OTP-22.2.1 OTP-22.2.2 OTP-22.2.3 \ OTP-22.2.4 OTP-22.2.6 OTP-22.2.7 OTP-22.3 OTP-22.3.1 OTP-22.3.2 \ - 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.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.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.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.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-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-21-DROPPED) $(OTP-22-DROPPED) $(OTP-23-DROPPED) $(OTP-24-DROPPED) # Configure Erlang.mk's CI plugin. CI_OTP := $(foreach otp,$(AUTO_CI_OTP),$($(otp))) $(if $(AUTO_CI_MASTER),master) -# Disable HiPE builds; Erlang/OTP's HiPE support is broken -# starting from Erlang/OTP 22.0.6. Use explicit versions instead. -#CI_HIPE := $(foreach otp,$(AUTO_CI_HIPE),$($(otp))) -#CI_ERLLVM := $(foreach otp,$(AUTO_CI_ERLLVM),$($(otp))) +ci-list: + $(verbose) printf "%s\n" $(CI_OTP) # Remove the existing master if necessary. @@ -117,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 \ @@ -139,10 +174,6 @@ define ci_auto_cleanup_target ci-auto-cleanup-$1: $(KERL) $(verbose) $(KERL) list builds | grep -q "^git,$1$$$$" && $(KERL) delete build $1 || true $(verbose) $(KERL) list installations | grep -q "^$1 " && $(KERL) delete installation $1 || true - $(verbose) $(KERL) list builds | grep -q "^git,$1-native$$$$" && $(KERL) delete build $1-native || true - $(verbose) $(KERL) list installations | grep -q "^$1-native " && $(KERL) delete installation $1-native || true - $(verbose) $(KERL) list builds | grep -q "^git,$1-erllvm$$$$" && $(KERL) delete build $1-erllvm || true - $(verbose) $(KERL) list installations | grep -q "^$1-erllvm " && $(KERL) delete installation $1-erllvm || true endef $(foreach t,$(OTP-DROPPED),$(eval $(call ci_auto_cleanup_target,$t))) @@ -156,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) @@ -164,28 +197,55 @@ WINDOWS-OTP-19 := 19.0 19.1 19.2 19.3 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 +WINDOWS-OTP-23 := 23.0 23.1 23.2 23.3 +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-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-20+ := $(WINDOWS-OTP-20) $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) -WINDOWS-OTP-21+ := $(WINDOWS-OTP-21) $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) -WINDOWS-OTP-22+ := $(WINDOWS-OTP-22) $(WINDOWS-OTP-23) -WINDOWS-OTP-23+ := $(WINDOWS-OTP-23) + $(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-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-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-21)) $(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-20+ := $(lastword $(WINDOWS-OTP-20)) $(lastword $(WINDOWS-OTP-21)) \ - $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) + $(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)) -WINDOWS-OTP-LATEST-22+ := $(lastword $(WINDOWS-OTP-22)) $(lastword $(WINDOWS-OTP-23)) -WINDOWS-OTP-LATEST-23+ := $(lastword $(WINDOWS-OTP-23)) + $(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)) $(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+)) @@ -217,7 +277,24 @@ WINDOWS-OTP-22.1-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl10.5/bin) WINDOWS-OTP-22.2-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl10.6/bin) WINDOWS-OTP-22.3-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl10.7/bin) -WINDOWS-OTP-23.0-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl11.0/bin) +WINDOWS-OTP-23.0-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-23.0/bin) +WINDOWS-OTP-23.1-INSTALL-DIR := $(call msys2_path,$(PROGRAMFILES)/erl-23.1/bin) +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. @@ -238,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-21.3.8.18.README.txt b/release-notes/OTP-21.3.8.18.README.txt new file mode 100644 index 0000000..40a0a12 --- /dev/null +++ b/release-notes/OTP-21.3.8.18.README.txt @@ -0,0 +1,103 @@ +Patch Package: OTP 21.3.8.18 +Git Tag: OTP-21.3.8.18 +Date: 2020-10-02 +Trouble Report Id: OTP-16780, OTP-16866, OTP-16870, OTP-16874, + OTP-16904 +Seq num: ERL-1355, ERL-1356 +System: OTP +Release: 21 +Application: erts-10.3.5.14, ssh-4.7.6.5 +Predecessor: OTP 21.3.8.17 + + Check out the git tag OTP-21.3.8.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. + + --------------------------------------------------------------------- + --- erts-10.3.5.14 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.3.5.14 application *cannot* be applied + independently of other applications on an arbitrary OTP 21 + installation. + + On a full OTP 21 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-6.1 (first satisfied in OTP 21.1) + -- sasl-3.3 (first satisfied in OTP 21.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16780 Application(s): erts + Related Id(s): PR-2701 + + The ERTS internal I/O poll implementation could get + into an inconsistent state causing input events to be + ignored. + + + OTP-16866 Application(s): erts + Related Id(s): ERL-1355 + + The documentation of statistics(run_queue) erroneously + stated that it returns the total length of all normal + run queues when it is the total length of all normal + and dirty CPU run queues that is returned. The + documentation has been updated to reflect the actual + behavior. + + + OTP-16870 Application(s): erts + + Two bugs in the ERTS internal thread wakeup + functionality have been fixed. These bugs mainly hit + when all threads in the system tried to go to sleep. + When the bugs were triggered, certain operations were + delayed until a thread woke up due to some other + reason. Most important operations effected were code + loading, persistent term updates, and memory + deallocation. + + + OTP-16874 Application(s): erts + Related Id(s): ERL-1356, PR-2763 + + Fixed bug in ets:select_replace/2 on compressed tables + that could produce faulty results or VM crash. Bug + exists since OTP 20. + + + Full runtime dependencies of erts-10.3.5.14: kernel-6.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.7.6.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.7.6.5 application *cannot* be applied independently + of other applications on an arbitrary OTP 21 installation. + + On a full OTP 21 installation, also the following runtime + dependency has to be satisfied: + -- crypto-4.4.2.2 (first satisfied in OTP 21.3.8.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16904 Application(s): ssh + + Fix decoder bug. + + + Full runtime dependencies of ssh-4.7.6.5: crypto-4.4.2.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.3.8.19.README.txt b/release-notes/OTP-21.3.8.19.README.txt new file mode 100644 index 0000000..039d072 --- /dev/null +++ b/release-notes/OTP-21.3.8.19.README.txt @@ -0,0 +1,81 @@ +Patch Package: OTP 21.3.8.19 +Git Tag: OTP-21.3.8.19 +Date: 2021-01-20 +Trouble Report Id: OTP-16869, OTP-17080, OTP-17088, OTP-17107 +Seq num: ERIERL-580, ERL-1337 +System: OTP +Release: 21 +Application: crypto-4.4.2.3, erts-10.3.5.15 +Predecessor: OTP 21.3.8.18 + + Check out the git tag OTP-21.3.8.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. + + --------------------------------------------------------------------- + --- crypto-4.4.2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.4.2.3 application can be applied independently of other + applications on a full OTP 21 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17107 Application(s): crypto + + Adding missing flag in BN-calls in SRP. + + + Full runtime dependencies of crypto-4.4.2.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-10.3.5.15 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.3.5.15 application *cannot* be applied + independently of other applications on an arbitrary OTP 21 + installation. + + On a full OTP 21 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-6.1 (first satisfied in OTP 21.1) + -- sasl-3.3 (first satisfied in OTP 21.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16869 Application(s): erts + Related Id(s): ERL-1337 + + Fixed rare distribution bug in race between received + signal (link/monitor/spawn_request/spawn_reply) and + disconnection. Symptom: VM crash. Since: OTP 21.0. + + + OTP-17080 Application(s): erts + + The suspend_process() and resume_process() BIFs did not + check their arguments properly which could cause an + emulator crash. + + + OTP-17088 Application(s): erts + Related Id(s): ERIERL-580 + + The runtime system would get into an infinite loop if + the runtime system was started with more than 1023 file + descriptors already open. + + + Full runtime dependencies of erts-10.3.5.15: kernel-6.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.3.8.20.README.txt b/release-notes/OTP-21.3.8.20.README.txt new file mode 100644 index 0000000..eddb518 --- /dev/null +++ b/release-notes/OTP-21.3.8.20.README.txt @@ -0,0 +1,49 @@ +Patch Package: OTP 21.3.8.20 +Git Tag: OTP-21.3.8.20 +Date: 2021-01-25 +Trouble Report Id: OTP-16412, OTP-16607 +Seq num: +System: OTP +Release: 21 +Application: erl_interface-3.11.3.1 +Predecessor: OTP 21.3.8.19 + + Check out the git tag OTP-21.3.8.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. + + --------------------------------------------------------------------- + --- erl_interface-3.11.3.1 ------------------------------------------ + --------------------------------------------------------------------- + + The erl_interface-3.11.3.1 application can be applied independently + of other applications on a full OTP 21 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16412 Application(s): erl_interface + Related Id(s): PR-2503 + + Fix link error "multiple definition of + `ei_default_socket_callbacks'" for gcc version 10 or + when built with gcc option -fno-common. Error exists + since OTP-21.3. + + + --- 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. + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.3.8.21.README.txt b/release-notes/OTP-21.3.8.21.README.txt new file mode 100644 index 0000000..272bc0c --- /dev/null +++ b/release-notes/OTP-21.3.8.21.README.txt @@ -0,0 +1,95 @@ +Patch Package: OTP 21.3.8.21 +Git Tag: OTP-21.3.8.21 +Date: 2021-02-19 +Trouble Report Id: OTP-16779, OTP-17185 +Seq num: ERL-1305 +System: OTP +Release: 21 +Application: erts-10.3.5.16 +Predecessor: OTP 21.3.8.20 + + Check out the git tag OTP-21.3.8.21, 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-21.3.8.21 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16779 Application(s): otp + Related Id(s): ERL-1305, PR-2700 + + Changes in build system to make it build for macOS 11.0 + with Apple Silicon. Also corrected execution of match + specs to work on Apple Silicon. + + + --------------------------------------------------------------------- + --- erts-10.3.5.16 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.3.5.16 application *cannot* be applied + independently of other applications on an arbitrary OTP 21 + installation. + + On a full OTP 21 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-6.1 (first satisfied in OTP 21.1) + -- sasl-3.3 (first satisfied in OTP 21.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17185 Application(s): erts + + Fixed a bug that could cause some work scheduled for + execution on scheduler threads to be delayed until + other similar work appeared. Beside delaying various + cleanup of internal data structures also the following + could be delayed: + + -- Termination of a distribution controller process + + -- Disabling of the distribution on a node + + -- Gathering of memory allocator information using the + instrument module + + -- Enabling, disabling, and gathering of msacc + information + + -- Delivery of 'CHANGE' messages when time offset is + monitored + + -- A call to erlang:cancel_timer() + + -- A call to erlang:read_timer() + + -- A call to erlang:statistics(io | garbage_collection + | scheduler_wall_time) + + -- A call to ets:all() + + -- A call to erlang:memory() + + -- A call to erlang:system_info({allocator | + allocator_sizes, _}) + + -- A call to erlang:trace_delivered() + + The bug existed on runtime systems running on all types + of hardware except for x86/x86_64. + + + Full runtime dependencies of erts-10.3.5.16: kernel-6.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.3.8.22.README.txt b/release-notes/OTP-21.3.8.22.README.txt new file mode 100644 index 0000000..4ae39bb --- /dev/null +++ b/release-notes/OTP-21.3.8.22.README.txt @@ -0,0 +1,94 @@ +Patch Package: OTP 21.3.8.22 +Git Tag: OTP-21.3.8.22 +Date: 2021-03-30 +Trouble Report Id: OTP-17244, OTP-17253, OTP-17279 +Seq num: +System: OTP +Release: 21 +Application: erts-10.3.5.17, ssh-4.7.6.6 +Predecessor: OTP 21.3.8.21 + + Check out the git tag OTP-21.3.8.22, 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-10.3.5.17 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.3.5.17 application *cannot* be applied + independently of other applications on an arbitrary OTP 21 + installation. + + On a full OTP 21 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-6.1 (first satisfied in OTP 21.1) + -- sasl-3.3 (first satisfied in OTP 21.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17253 Application(s): erts + + Fixed a bug in the timer implementation which could + cause timers that were set to more than 37.25 hours in + the future to be delayed. This could occur if there + were multiple timers scheduled to be triggered very + close in time, but still at different times, and the + scheduler thread handling the timers was not able to + handle them quickly enough. Delayed timers were in this + case triggered when another unrelated timer was + triggered. + + + --- Improvements and New Features --- + + OTP-17244 Application(s): erts + + Fix a file descriptor leak when using sendfile and the + remote side closes the connection. This bug has been + present since OTP-21.0. + + + Full runtime dependencies of erts-10.3.5.17: kernel-6.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.7.6.6 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.7.6.6 application *cannot* be applied independently + of other applications on an arbitrary OTP 21 installation. + + On a full OTP 21 installation, also the following runtime + dependency has to be satisfied: + -- crypto-4.4.2.2 (first satisfied in OTP 21.3.8.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17279 Application(s): ssh + + The idle_time timer was not cancelled when a channel + was opened within the timeout time on an empty + connection that have had channels previously. + + + Full runtime dependencies of ssh-4.7.6.6: crypto-4.4.2.2, erts-6.0, + kernel-3.0, public_key-1.5.2, stdlib-3.3 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.3.8.23.README.txt b/release-notes/OTP-21.3.8.23.README.txt new file mode 100644 index 0000000..2359994 --- /dev/null +++ b/release-notes/OTP-21.3.8.23.README.txt @@ -0,0 +1,149 @@ +Patch Package: OTP 21.3.8.23 +Git Tag: OTP-21.3.8.23 +Date: 2021-05-06 +Trouble Report Id: OTP-16607, OTP-16930, OTP-17291, OTP-17307, + OTP-17349, OTP-17358 +Seq num: ERL-1371, ERL-ERL-610, GH-4396 +System: OTP +Release: 21 +Application: erl_interface-3.11.3.2, erts-10.3.5.18, + runtime_tools-1.13.2.1 +Predecessor: OTP 21.3.8.22 + + Check out the git tag OTP-21.3.8.23, 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. + + --------------------------------------------------------------------- + --- erl_interface-3.11.3.2 ------------------------------------------ + --------------------------------------------------------------------- + + The erl_interface-3.11.3.2 application can be applied independently + of other applications on a full OTP 21 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17358 Application(s): erl_interface + Related Id(s): ERL-ERL-610 + + Fix bug where sending of large data with + ei_send_*/ei_rpc with infinite timeout could fail when + the tcp buffer becomes full. + + Fault has existed since OTP-21. + + + --- 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-10.3.5.18 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.3.5.18 application *cannot* be applied + independently of other applications on an arbitrary OTP 21 + installation. + + On a full OTP 21 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-6.1 (first satisfied in OTP 21.1) + -- sasl-3.3 (first satisfied in OTP 21.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17291 Application(s): erts + + The following signals could pass before other signals + from the same sender to the same receiver. That is, + these signals could arrive too early. + + -- garbage-collect request. Sent from one process to + another using one of the garbage_collect() BIFs. + + -- check-process-code request. Sent from one process to + another using one of the check_process_code() BIFs. + + -- is-process-alive reply. Sent as a response to a + process calling the is_process_alive() BIF. + + -- process-info reply. Sent as a response to a process + calling one of the process_info() BIFs. + + -- port-command reply. Sent as a response to a process + calling one of the port_command() BIFs. + + -- port-connect reply. Sent as a response to a process + calling the port_connect() BIF. + + -- port-close reply. Sent as a response to a process + calling the port_close() BIF. + + -- port-control reply. Sent as a response to a process + calling the port_control() BIF. + + -- port-call reply. Sent as a response to a process + calling the port_call() BIF. + + -- port-info reply. Sent as a response to a process + calling one of the port_info() BIFs. + + + OTP-17307 Application(s): erts + + A garbage collection of a literal area missed messages + that entirely consisted of a term in a literal area. + This could in turn lead to a crash of the runtime + system. + + + OTP-17349 Application(s): erts + + A call to process_flag(message_queue_data, off_heap) + could cause a crash of the runtime system when + sequential tracing was enabled. + + + Full runtime dependencies of erts-10.3.5.18: kernel-6.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.13.2.1 ------------------------------------------ + --------------------------------------------------------------------- + + The runtime_tools-1.13.2.1 application can be applied independently + of other applications on a full OTP 21 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16930 Application(s): runtime_tools + Related Id(s): ERL-1371, GH-4396 + + The function dbg:n/1 used a local fun to set up a + tracer on a remote node. This works fine as long as the + remote node is running exactly the same version of + Erlang/OTP but does not work at all otherwise. This is + fixed by exporting the relevant function and by calling + this function on the remote node to set up remote + tracing. + + + Full runtime dependencies of runtime_tools-1.13.2.1: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-21.3.8.24.README.txt b/release-notes/OTP-21.3.8.24.README.txt new file mode 100644 index 0000000..0a692fd --- /dev/null +++ b/release-notes/OTP-21.3.8.24.README.txt @@ -0,0 +1,61 @@ +Patch Package: OTP 21.3.8.24 +Git Tag: OTP-21.3.8.24 +Date: 2021-06-01 +Trouble Report Id: OTP-17379, OTP-17448 +Seq num: GH-4898 +System: OTP +Release: 21 +Application: erts-10.3.5.19 +Predecessor: OTP 21.3.8.23 + + Check out the git tag OTP-21.3.8.24, 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-10.3.5.19 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.3.5.19 application *cannot* be applied + independently of other applications on an arbitrary OTP 21 + installation. + + On a full OTP 21 installation, also the following runtime + dependencies have to be satisfied: + -- kernel-6.1 (first satisfied in OTP 21.1) + -- sasl-3.3 (first satisfied in OTP 21.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17379 Application(s): erts + Related Id(s): PR-4804 + + Fix bug in match spec compilator seen to cause a stack + overflow crash on debug VM for certain match specs. + Could potentially cause problems for standard VM, but + has not been verified. Match specs are used by + ets:match/select functions and erlang:trace_pattern. + + + OTP-17448 Application(s): erts + Related Id(s): GH-4898, OTP-17291, PR-4903 + + A call to port_command() could cause a scheduler to end + up in an eternal loop if the port was busy and the + calling process had incoming signals at the time of the + call. This bug was introduced in OTP 23.3.2 (ERTS + version 11.2.1), OTP 22.3.4.18 (ERTS version + 10.7.2.10), and OTP 21.3.8.23 (ERTS version 10.3.5.18). + + + Full runtime dependencies of erts-10.3.5.19: kernel-6.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.10.README.txt b/release-notes/OTP-22.3.4.10.README.txt new file mode 100644 index 0000000..3486ab6 --- /dev/null +++ b/release-notes/OTP-22.3.4.10.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 22.3.4.10 +Git Tag: OTP-22.3.4.10 +Date: 2020-08-28 +Trouble Report Id: OTP-16818 +Seq num: ERIERL-526 +System: OTP +Release: 22 +Application: megaco-3.18.8.2 +Predecessor: OTP 22.3.4.9 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- megaco-3.18.8.2 ------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.18.8.2 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16818 Application(s): megaco + Related Id(s): ERIERL-526 + + The v2 and v3 parsers could not properly decode some + IPv6 addresses. + + + Full runtime dependencies of megaco-3.18.8.2: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.11.README.txt b/release-notes/OTP-22.3.4.11.README.txt new file mode 100644 index 0000000..f743c6b --- /dev/null +++ b/release-notes/OTP-22.3.4.11.README.txt @@ -0,0 +1,174 @@ +Patch Package: OTP 22.3.4.11 +Git Tag: OTP-22.3.4.11 +Date: 2020-10-02 +Trouble Report Id: OTP-16815, OTP-16847, OTP-16856, OTP-16866, + OTP-16870, OTP-16874, OTP-16904, OTP-16906 +Seq num: ERIERL-500, ERIERL-532, ERL-1301, ERL-1355, + ERL-1356 +System: OTP +Release: 22 +Application: erts-10.7.2.4, mnesia-4.16.3.1, + os_mon-2.5.1.1, ssh-4.9.1.2 +Predecessor: OTP 22.3.4.10 + + Check out the git tag OTP-22.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-10.7.2.4 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.4 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16847 Application(s): erts + Related Id(s): ERL-1301 + + inet:setopts([{active,once}]) wakes up IO polling + thread unnecessarily, leading to lock contention and + visibly higher CPU utilization. + + + OTP-16866 Application(s): erts + Related Id(s): ERL-1355 + + The documentation of statistics(run_queue) erroneously + stated that it returns the total length of all normal + run queues when it is the total length of all normal + and dirty CPU run queues that is returned. The + documentation has been updated to reflect the actual + behavior. + + + OTP-16870 Application(s): erts + + Two bugs in the ERTS internal thread wakeup + functionality have been fixed. These bugs mainly hit + when all threads in the system tried to go to sleep. + When the bugs were triggered, certain operations were + delayed until a thread woke up due to some other + reason. Most important operations effected were code + loading, persistent term updates, and memory + deallocation. + + + OTP-16874 Application(s): erts + Related Id(s): ERL-1356, PR-2763 + + Fixed bug in ets:select_replace/2 on compressed tables + that could produce faulty results or VM crash. Bug + exists since OTP 20. + + + --- Improvements and New Features --- + + OTP-16856 Application(s): erts + + As of OTP 22, the allocator specific memory carrier + pools were replaced by a node global carrier pool. This + unfortunately caused substantial memory fragmentation + in some cases due to long lived data being spread into + carriers used by allocators mainly handling short lived + data. + + A new command line argument +M<S>cp has been introduced + with which one can enable the old behavior as well as + configuring other behaviors for the carrier pools. In + order to configure the old behavior, with allocator + specific carrier pools for all allocators, pass +Mucp : + (including the colon character) as a command line + argument to erl when starting the Erlang system. + + The default configuration for carrier pools will be + changed to +Mucp : some time in the future, but not in + this patch. + + + Full runtime dependencies of erts-10.7.2.4: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- mnesia-4.16.3.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.16.3.1 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Improvements and New Features --- + + OTP-16815 Application(s): mnesia + Related Id(s): ERIERL-500 + + Fixed crash during startup, which could happen if a + table was deleted on another node. + + + Full runtime dependencies of mnesia-4.16.3.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- os_mon-2.5.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.5.1.1 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Improvements and New Features --- + + OTP-16906 Application(s): os_mon + Related Id(s): ERIERL-532 + + The configuration parameter + memsup_improved_system_memory_data has been introduced. + It can be used to modify the result returned by + memsup:get_system_memory_data(). For more information + see the memsup documentation. + + Note that the configuration parameter is intended to be + removed in OTP 24 and the modified result is intended + to be used as of OTP 24. + + + Full runtime dependencies of os_mon-2.5.1.1: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- ssh-4.9.1.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.9.1.2 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-16904 Application(s): ssh + + Fix decoder bug. + + + Full runtime dependencies of ssh-4.9.1.2: 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-22.3.4.12.1.README.txt b/release-notes/OTP-22.3.4.12.1.README.txt new file mode 100644 index 0000000..2112a11 --- /dev/null +++ b/release-notes/OTP-22.3.4.12.1.README.txt @@ -0,0 +1,39 @@ +Patch Package: OTP 22.3.4.12.1 +Git Tag: OTP-22.3.4.12.1 +Date: 2021-05-07 +Trouble Report Id: OTP-17358 +Seq num: ERIERL-610 +System: OTP +Release: 22 +Application: erl_interface-3.13.2.0.1 +Predecessor: OTP 22.3.4.12 + + Check out the git tag OTP-22.3.4.12.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. + + --------------------------------------------------------------------- + --- erl_interface-3.13.2.0.1 ---------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-3.13.2.0.1 application can be applied independently + of other applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17358 Application(s): erl_interface + Related Id(s): ERIERL-610 + + Fix bug where sending of large data with + ei_send_*/ei_rpc with infinite timeout could fail when + the tcp buffer becomes full. + + Fault has existed since OTP-21. + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.12.README.txt b/release-notes/OTP-22.3.4.12.README.txt new file mode 100644 index 0000000..ff81c36 --- /dev/null +++ b/release-notes/OTP-22.3.4.12.README.txt @@ -0,0 +1,80 @@ +Patch Package: OTP 22.3.4.12 +Git Tag: OTP-22.3.4.12 +Date: 2020-10-20 +Trouble Report Id: OTP-16837, OTP-16921, OTP-16939 +Seq num: ERL-1319 +System: OTP +Release: 22 +Application: erts-10.7.2.5, ssl-9.6.2.3 +Predecessor: OTP 22.3.4.11 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- erts-10.7.2.5 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.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: + -- kernel-6.5.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16939 Application(s): erts + + Fixed bugs causing issues when enabling the ERTS + internal allocators on a system built with the + undocumented and unsupported SMALL_MEMORY feature. + + + Full runtime dependencies of erts-10.7.2.5: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssl-9.6.2.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-9.6.2.3 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: + -- public_key-1.7.2 (first satisfied in OTP 22.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16837 Application(s): ssl + Related Id(s): ERL-1319, OTP-16764 + + Correct flow ctrl checks from OTP-16764 to work as + intended. Probably will not have a noticeable affect + but will make connections more well behaved under some + circumstances. + + + OTP-16921 Application(s): ssl + + Fix a bug that causes cross-build failure. + + This change excludes the ssl.d dependency file from the + source tar balls. + + + Full runtime dependencies of ssl-9.6.2.3: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.7.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.13.README.txt b/release-notes/OTP-22.3.4.13.README.txt new file mode 100644 index 0000000..3813420 --- /dev/null +++ b/release-notes/OTP-22.3.4.13.README.txt @@ -0,0 +1,138 @@ +Patch Package: OTP 22.3.4.13 +Git Tag: OTP-22.3.4.13 +Date: 2020-12-07 +Trouble Report Id: OTP-16869, OTP-16989, OTP-17012, OTP-17022, + OTP-17039 +Seq num: ERIERL-492, ERIERL-544, ERL-1337, ERL-1405, + ERL-1426 +System: OTP +Release: 22 +Application: compiler-7.5.4.2, erts-10.7.2.6, + megaco-3.18.8.3, snmp-5.5.0.4 +Predecessor: OTP 22.3.4.12 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-17022 Application(s): snmp + Related Id(s): ERIERL-492 + + It is now possible to configure the agent in such a way + that the order of outgoing notifications are processed + in order in the agent. What happens after the + notification message has left the agent (been sent) is + of course still out of our control. + + + --------------------------------------------------------------------- + --- compiler-7.5.4.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-7.5.4.2 application can be applied independently of + other applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17039 Application(s): compiler + Related Id(s): ERL-1426 + + Fixed a bug in the validator that could cause it to + reject valid code + + + Full runtime dependencies of compiler-7.5.4.2: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- erts-10.7.2.6 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.6 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16869 Application(s): erts + Related Id(s): ERL-1337 + + Fixed rare distribution bug in race between received + signal (link/monitor/spawn_request/spawn_reply) and + disconnection. Symptom: VM crash. Since: OTP 21.0. + + + Full runtime dependencies of erts-10.7.2.6: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- megaco-3.18.8.3 ------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.18.8.3 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17012 Application(s): megaco + Related Id(s): ERL-1405 + + Empty statistics descriptor (now) allowed in both + encode and decode for version 3. + + + Full runtime dependencies of megaco-3.18.8.3: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- snmp-5.5.0.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.5.0.4 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Improvements and New Features --- + + OTP-16989 Application(s): snmp + Related Id(s): ERIERL-544 + + The mib server cache handling has been improved. First, + the default gclimit has been changed from 100 to + infinity (in order to ensure the size is as small as + possible). Also the method of removing old elements has + been optimized. + + + OTP-17022 Application(s): snmp + Related Id(s): ERIERL-492 + + *** HIGHLIGHT *** + + It is now possible to configure the agent in such a way + that the order of outgoing notifications are processed + in order in the agent. What happens after the + notification message has left the agent (been sent) is + of course still out of our control. + + + Full runtime dependencies of snmp-5.5.0.4: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.14.README.txt b/release-notes/OTP-22.3.4.14.README.txt new file mode 100644 index 0000000..79304e8 --- /dev/null +++ b/release-notes/OTP-22.3.4.14.README.txt @@ -0,0 +1,73 @@ +Patch Package: OTP 22.3.4.14 +Git Tag: OTP-22.3.4.14 +Date: 2021-01-13 +Trouble Report Id: OTP-17073, OTP-17080, OTP-17088 +Seq num: ERIERL-580 +System: OTP +Release: 22 +Application: compiler-7.5.4.3, erts-10.7.2.7 +Predecessor: OTP 22.3.4.13 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- compiler-7.5.4.3 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-7.5.4.3 application can be applied independently of + other applications on a full OTP 22 installation. + + --- Improvements and New Features --- + + OTP-17073 Application(s): compiler + + Fixed a bug in the type optimization pass that could + yield incorrect values or cause the wrong clauses to be + executed. + + + Full runtime dependencies of compiler-7.5.4.3: crypto-3.6, erts-9.0, + hipe-3.12, kernel-4.0, stdlib-2.5 + + + --------------------------------------------------------------------- + --- erts-10.7.2.7 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.7 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17080 Application(s): erts + + The suspend_process() and resume_process() BIFs did not + check their arguments properly which could cause an + emulator crash. + + + OTP-17088 Application(s): erts + Related Id(s): ERIERL-580 + + The runtime system would get into an infinite loop if + the runtime system was started with more than 1023 file + descriptors already open. + + + Full runtime dependencies of erts-10.7.2.7: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.15.README.txt b/release-notes/OTP-22.3.4.15.README.txt new file mode 100644 index 0000000..49d648a --- /dev/null +++ b/release-notes/OTP-22.3.4.15.README.txt @@ -0,0 +1,38 @@ +Patch Package: OTP 22.3.4.15 +Git Tag: OTP-22.3.4.15 +Date: 2021-01-20 +Trouble Report Id: OTP-17107 +Seq num: +System: OTP +Release: 22 +Application: crypto-4.6.5.2 +Predecessor: OTP 22.3.4.14 + + Check out the git tag OTP-22.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.6.5.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.6.5.2 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17107 Application(s): crypto + + Adding missing flag in BN-calls in SRP. + + + Full runtime dependencies of crypto-4.6.5.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.16.README.txt b/release-notes/OTP-22.3.4.16.README.txt new file mode 100644 index 0000000..fdb904a --- /dev/null +++ b/release-notes/OTP-22.3.4.16.README.txt @@ -0,0 +1,93 @@ +Patch Package: OTP 22.3.4.16 +Git Tag: OTP-22.3.4.16 +Date: 2021-02-19 +Trouble Report Id: OTP-16779, OTP-17185 +Seq num: ERL-1305 +System: OTP +Release: 22 +Application: erts-10.7.2.8 +Predecessor: OTP 22.3.4.15 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- OTP-22.3.4.16 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16779 Application(s): otp + Related Id(s): ERL-1305, PR-2700 + + Changes in build system to make it build for macOS 11.0 + with Apple Silicon. Also corrected execution of match + specs to work on Apple Silicon. + + + --------------------------------------------------------------------- + --- erts-10.7.2.8 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.8 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17185 Application(s): erts + + Fixed a bug that could cause some work scheduled for + execution on scheduler threads to be delayed until + other similar work appeared. Beside delaying various + cleanup of internal data structures also the following + could be delayed: + + -- Termination of a distribution controller process + + -- Disabling of the distribution on a node + + -- Gathering of memory allocator information using the + instrument module + + -- Enabling, disabling, and gathering of msacc + information + + -- Delivery of 'CHANGE' messages when time offset is + monitored + + -- A call to erlang:cancel_timer() + + -- A call to erlang:read_timer() + + -- A call to erlang:statistics(io | garbage_collection + | scheduler_wall_time) + + -- A call to ets:all() + + -- A call to erlang:memory() + + -- A call to erlang:system_info({allocator | + allocator_sizes, _}) + + -- A call to erlang:trace_delivered() + + The bug existed on runtime systems running on all types + of hardware except for x86/x86_64. + + + Full runtime dependencies of erts-10.7.2.8: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.17.README.txt b/release-notes/OTP-22.3.4.17.README.txt new file mode 100644 index 0000000..5e49d02 --- /dev/null +++ b/release-notes/OTP-22.3.4.17.README.txt @@ -0,0 +1,150 @@ +Patch Package: OTP 22.3.4.17 +Git Tag: OTP-22.3.4.17 +Date: 2021-04-06 +Trouble Report Id: OTP-17162, OTP-17223, OTP-17244, OTP-17253, + OTP-17279, OTP-17290 +Seq num: GH-4546, GH-4549, GH-4635 +System: OTP +Release: 22 +Application: erts-10.7.2.9, kernel-6.5.2.2, ssh-4.9.1.3, + tools-3.3.1.1 +Predecessor: OTP 22.3.4.16 + + Check out the git tag OTP-22.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-10.7.2.9 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.9 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17253 Application(s): erts + + Fixed a bug in the timer implementation which could + cause timers that were set to more than 37.25 hours in + the future to be delayed. This could occur if there + were multiple timers scheduled to be triggered very + close in time, but still at different times, and the + scheduler thread handling the timers was not able to + handle them quickly enough. Delayed timers were in this + case triggered when another unrelated timer was + triggered. + + + OTP-17290 Application(s): erts + Related Id(s): GH-4635 + + Fix bug in call_time tracing (used by eprof) that could + cause VM crash. Bug exists since OTP-22.2 (but not in + OTP-23). + + + --- Improvements and New Features --- + + OTP-17244 Application(s): erts + + Fix a file descriptor leak when using sendfile and the + remote side closes the connection. This bug has been + present since OTP-21.0. + + + Full runtime dependencies of erts-10.7.2.9: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-6.5.2.2 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-6.5.2.2 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: + -- erts-10.6 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17223 Application(s): kernel + Related Id(s): GH-4546, PR-4554 + + When running Xref in the modules mode, the Debugger + application would show up as a depency for the Kernel + applications. + + + Full runtime dependencies of kernel-6.5.2.2: erts-10.6, sasl-3.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.9.1.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.9.1.3 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-17279 Application(s): ssh + + The idle_time timer was not cancelled when a channel + was opened within the timeout time on an empty + connection that have had channels previously. + + + Full runtime dependencies of ssh-4.9.1.3: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- tools-3.3.1.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The tools-3.3.1.1 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17162 Application(s): tools + Related Id(s): GH-4549, PR-2997, PR-4555, + elixir-lang/elixir#10666 + + cover would crash when compiling a module having an + exported function named clauses. + + + Full runtime dependencies of tools-3.3.1.1: compiler-5.0, erts-9.1, + kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + José Valim + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.18.README.txt b/release-notes/OTP-22.3.4.18.README.txt new file mode 100644 index 0000000..94ea916 --- /dev/null +++ b/release-notes/OTP-22.3.4.18.README.txt @@ -0,0 +1,148 @@ +Patch Package: OTP 22.3.4.18 +Git Tag: OTP-22.3.4.18 +Date: 2021-05-06 +Trouble Report Id: OTP-16607, OTP-16930, OTP-17291, OTP-17307, + OTP-17349, OTP-17358 +Seq num: ERL-1371, ERL-ERL-610, GH-4396 +System: OTP +Release: 22 +Application: erl_interface-3.13.2.1, erts-10.7.2.10, + runtime_tools-1.14.0.1 +Predecessor: OTP 22.3.4.17 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- erl_interface-3.13.2.1 ------------------------------------------ + --------------------------------------------------------------------- + + The erl_interface-3.13.2.1 application can be applied independently + of other applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17358 Application(s): erl_interface + Related Id(s): ERL-ERL-610 + + Fix bug where sending of large data with + ei_send_*/ei_rpc with infinite timeout could fail when + the tcp buffer becomes full. + + Fault has existed since OTP-21. + + + --- 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-10.7.2.10 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.10 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17291 Application(s): erts + + The following signals could pass before other signals + from the same sender to the same receiver. That is, + these signals could arrive too early. + + -- garbage-collect request. Sent from one process to + another using one of the garbage_collect() BIFs. + + -- check-process-code request. Sent from one process to + another using one of the check_process_code() BIFs. + + -- is-process-alive reply. Sent as a response to a + process calling the is_process_alive() BIF. + + -- process-info reply. Sent as a response to a process + calling one of the process_info() BIFs. + + -- port-command reply. Sent as a response to a process + calling one of the port_command() BIFs. + + -- port-connect reply. Sent as a response to a process + calling the port_connect() BIF. + + -- port-close reply. Sent as a response to a process + calling the port_close() BIF. + + -- port-control reply. Sent as a response to a process + calling the port_control() BIF. + + -- port-call reply. Sent as a response to a process + calling the port_call() BIF. + + -- port-info reply. Sent as a response to a process + calling one of the port_info() BIFs. + + + OTP-17307 Application(s): erts + + A garbage collection of a literal area missed messages + that entirely consisted of a term in a literal area. + This could in turn lead to a crash of the runtime + system. + + + OTP-17349 Application(s): erts + + A call to process_flag(message_queue_data, off_heap) + could cause a crash of the runtime system when + sequential tracing was enabled. + + + Full runtime dependencies of erts-10.7.2.10: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.14.0.1 ------------------------------------------ + --------------------------------------------------------------------- + + The runtime_tools-1.14.0.1 application can be applied independently + of other applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16930 Application(s): runtime_tools + Related Id(s): ERL-1371, GH-4396 + + The function dbg:n/1 used a local fun to set up a + tracer on a remote node. This works fine as long as the + remote node is running exactly the same version of + Erlang/OTP but does not work at all otherwise. This is + fixed by exporting the relevant function and by calling + this function on the remote node to set up remote + tracing. + + + Full runtime dependencies of runtime_tools-1.14.0.1: erts-8.0, + kernel-5.0, mnesia-4.12, stdlib-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.19.README.txt b/release-notes/OTP-22.3.4.19.README.txt new file mode 100644 index 0000000..42e60b8 --- /dev/null +++ b/release-notes/OTP-22.3.4.19.README.txt @@ -0,0 +1,236 @@ +Patch Package: OTP 22.3.4.19 +Git Tag: OTP-22.3.4.19 +Date: 2021-05-20 +Trouble Report Id: OTP-16607, OTP-17379, OTP-17391, OTP-17398, + OTP-17420 +Seq num: GH-4810, GH-4821 +System: OTP +Release: 22 +Application: common_test-1.18.2.1, crypto-4.6.5.3, + erl_interface-3.13.2.2, erts-10.7.2.11, + megaco-3.18.8.4, odbc-2.12.4.1, snmp-5.5.0.5, + wx-1.9.0.1 +Predecessor: OTP 22.3.4.18 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- OTP-22.3.4.19 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17398 Application(s): otp + Related Id(s): GH-4821 + + The by autoconf generated configure scripts are now + commited into the git repository and will thus always + be available. This ensures that the scripts have been + generated by an autoconf version that has been tested + and by this preventing misconfiguration of OTP. The + ./otp_build autoconf build step is therefore no longer + necessary and will if executed only print a message and + then exit successfully. Currently the configure scripts + will be generated using the by Debian patched autoconf + version 2.69-11. + + + --------------------------------------------------------------------- + --- common_test-1.18.2.1 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.18.2.1 application can be applied independently of + other applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of common_test-1.18.2.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 + + + --------------------------------------------------------------------- + --- crypto-4.6.5.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.6.5.3 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17391 Application(s): crypto + Related Id(s): GH-4810 + + Removed a risk for coredump. + + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of crypto-4.6.5.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erl_interface-3.13.2.2 ------------------------------------------ + --------------------------------------------------------------------- + + The erl_interface-3.13.2.2 application can be applied independently + of other applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + --- 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-10.7.2.11 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.11 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17379 Application(s): erts + Related Id(s): PR-4804 + + Fix bug in match spec compilator seen to cause a stack + overflow crash on debug VM for certain match specs. + Could potentially cause problems for standard VM, but + has not been verified. Match specs are used by + ets:match/select functions and erlang:trace_pattern. + + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of erts-10.7.2.11: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- megaco-3.18.8.4 ------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.18.8.4 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of megaco-3.18.8.4: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- odbc-2.12.4.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.12.4.1 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of odbc-2.12.4.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- snmp-5.5.0.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.5.0.5 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of snmp-5.5.0.5: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- wx-1.9.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The wx-1.9.0.1 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of wx-1.9.0.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.20.README.txt b/release-notes/OTP-22.3.4.20.README.txt new file mode 100644 index 0000000..2e203b2 --- /dev/null +++ b/release-notes/OTP-22.3.4.20.README.txt @@ -0,0 +1,125 @@ +Patch Package: OTP 22.3.4.20 +Git Tag: OTP-22.3.4.20 +Date: 2021-06-01 +Trouble Report Id: OTP-16033, OTP-17442, OTP-17448, OTP-17459 +Seq num: ERIERL-329, ERL-1414, ERL-885, GH-3923, + GH-4448, GH-4824, GH-4842, GH-4861, GH-4898 +System: OTP +Release: 22 +Application: crypto-4.6.5.4, erts-10.7.2.12, + kernel-6.5.2.3, stdlib-3.12.1.1 +Predecessor: OTP 22.3.4.19 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- crypto-4.6.5.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.6.5.4 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17442 Application(s): crypto + Related Id(s): GH-4861 + + EC keys are now zero-padded to the expected length if + needed. + + + Full runtime dependencies of crypto-4.6.5.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-10.7.2.12 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.12 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17448 Application(s): erts + Related Id(s): GH-4898, OTP-17291, PR-4903 + + A call to port_command() could cause a scheduler to end + up in an eternal loop if the port was busy and the + calling process had incoming signals at the time of the + call. This bug was introduced in OTP 23.3.2 (ERTS + version 11.2.1), OTP 22.3.4.18 (ERTS version + 10.7.2.10), and OTP 21.3.8.23 (ERTS version 10.3.5.18). + + + Full runtime dependencies of erts-10.7.2.12: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-6.5.2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-6.5.2.3 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: + -- erts-10.6 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16033 Application(s): kernel + Related Id(s): ERIERL-329, ERL-1414, ERL-885, GH-3923, + GH-4448 + + Fix a race condition in Global. + + + Full runtime dependencies of kernel-6.5.2.3: erts-10.6, sasl-3.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.12.1.1 ------------------------------------------------- + --------------------------------------------------------------------- + + Note! The stdlib-3.12.1.1 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: + -- erts-10.7.1 (first satisfied in OTP 22.3.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17459 Application(s): stdlib + Related Id(s): GH-4824, GH-4842 + + Fix a bug that could cause a loop when formatting terms + using the control sequences p or P and limiting the + output with the option chars_limit. + + + Full runtime dependencies of stdlib-3.12.1.1: compiler-5.0, + crypto-3.3, erts-10.7.1, kernel-6.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.21.README.txt b/release-notes/OTP-22.3.4.21.README.txt new file mode 100644 index 0000000..da043e4 --- /dev/null +++ b/release-notes/OTP-22.3.4.21.README.txt @@ -0,0 +1,182 @@ +Patch Package: OTP 22.3.4.21 +Git Tag: OTP-22.3.4.21 +Date: 2021-09-03 +Trouble Report Id: OTP-17470, OTP-17472, OTP-17476, OTP-17493, + OTP-17500, OTP-17513, OTP-17525, OTP-17560, + OTP-17568, OTP-17585, OTP-17594 +Seq num: ERIERL-657, GH-4809, GH-4931, GH-4964, + GH-5053, GH-5116, GH-5150 +System: OTP +Release: 22 +Application: erts-10.7.2.13, kernel-6.5.2.4, + stdlib-3.12.1.2 +Predecessor: OTP 22.3.4.20 + + Check out the git tag OTP-22.3.4.21, 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-10.7.2.13 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.13 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17470 Application(s): erts + Related Id(s): ERIERL-657 + + Fixed a bug in zlib where decompression would crash + with data_error on some valid inputs. The bug could + also cause extraction from a zip archive using + zip:extract() to fail. + + + OTP-17472 Application(s): erts + Related Id(s): PR-4932 + + A call to erlang:cancel_timer(_, [{info, false}]) could + cause the calling process to block forever in the call. + Note that only the synchronous version of the call + (that is, the async option is false) in combination + with the info option set to false was effected by this + bug. + + + OTP-17493 Application(s): erts + + Microstate accounting (msacc) and os:perf_counter() + unintentionally used system time instead of monotonic + time for time measurements on a lot of systems. These + systems were all non x86/x86_64 systems or x86/x86_64 + systems without a reliable and constant rdtsc + instruction. + + The lock counting (lcnt) built runtime system also + unintentionally used system time instead of monotonic + time for time measurements on all systems. + + + OTP-17500 Application(s): erts + Related Id(s): GH-4809 + + Simultaneous calls to + erlang:system_flag(schedulers_online, _) could cause + callers to end up in a suspended state forever. + + + OTP-17513 Application(s): erts + Related Id(s): GH-4964, PR-5015 + + Fix rare race bug in memory management of distribution + entries. Have been seen to cause VM crash when massive + number of repeated concurrent failing connection + attempts. + + + OTP-17560 Application(s): erts + Related Id(s): GH-5116 + + Fix buffer overrun problem in the tty driver. The + problem happens on some platforms when using the CTRL+R + functionality of newshell with very long strings in the + history. + + + OTP-17568 Application(s): erts + Related Id(s): PR-4940 + + Fix race-condition that could cause a crash when + tracing scheduling or garbage collections on a process + that was running on a dirty scheduler. + + + OTP-17585 Application(s): erts + Related Id(s): GH-5150 + + Fix rare bug where re:run would crash/return invalid + results when given a subbinary as subject. + + This bug has existed since Erlang/OTP 20.0. + + + OTP-17594 Application(s): erts + + binary_to_term/1,2 is now more resilient against + corrupted binaries containing maps in the external + format. + + + Full runtime dependencies of erts-10.7.2.13: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-6.5.2.4 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-6.5.2.4 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: + -- erts-10.6 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17476 Application(s): kernel + Related Id(s): GH-4931, PR-4934 + + Fixed rare bug that could cause net_kernel process to + hang for ever. Have seen to happen with massive number + of TLS connections while remote nodes are restarting. + Bug exists since OTP-22.0. + + + Full runtime dependencies of kernel-6.5.2.4: erts-10.6, sasl-3.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.12.1.2 ------------------------------------------------- + --------------------------------------------------------------------- + + Note! The stdlib-3.12.1.2 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: + -- erts-10.7.1 (first satisfied in OTP 22.3.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17525 Application(s): stdlib + Related Id(s): GH-5053 + + Fix a bug that could cause a crash when formatting + tuples using the control sequences p or P and limiting + the output with the option chars_limit. + + + Full runtime dependencies of stdlib-3.12.1.2: compiler-5.0, + crypto-3.3, erts-10.7.1, kernel-6.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.22.README.txt b/release-notes/OTP-22.3.4.22.README.txt new file mode 100644 index 0000000..bbd3bc6 --- /dev/null +++ b/release-notes/OTP-22.3.4.22.README.txt @@ -0,0 +1,147 @@ +Patch Package: OTP 22.3.4.22 +Git Tag: OTP-22.3.4.22 +Date: 2021-10-19 +Trouble Report Id: OTP-17604, OTP-17628, OTP-17642, OTP-17651, + OTP-17665, OTP-17677, OTP-17700, OTP-17707 +Seq num: ERIERL-706, GH-5235, GH-5271 +System: OTP +Release: 22 +Application: erts-10.7.2.14, ssh-4.9.1.4 +Predecessor: OTP 22.3.4.21 + + Check out the git tag OTP-22.3.4.22, 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-10.7.2.14 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.14 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17604 Application(s): erts + + On 32-bit computers, binary_to_term/1,2 is now more + resilient against corrupted binaries containing maps in + the external format. + + + OTP-17628 Application(s): erts + + A call to process_info(Pid, status) could erroneously + report the status running when it should have reported + waiting. This occurred when the calling process was + executing on a higher priority than the process being + inspected. This bug has been present since OTP 21.0 + (erts version 10.0). + + + OTP-17642 Application(s): erts + Related Id(s): PR-5248 + + A race between an exiting port and handling of + simultaneously received signals to that port could + cause a runtime system crash. The effected signals are + link, monitor and demonitor. On OTP 22 a similiar race + could also cause a memory leak when receiving an unlink + signal. + + + OTP-17651 Application(s): erts + Related Id(s): GH-5235, PR-5244 + + The message queue of a process entered an inconsistent + state after a receive expression with an invalid + timeout value was executed. If the exception raised due + to the invalid timeout value was caught, the following + receive expression executed by the process could fail + to match messages already present in the message queue. + + On OTP 24 this could also cause the whole runtime + system to crash. + + + OTP-17665 Application(s): erts + Related Id(s): PR-5248 + + Sending a Port ! {PortOwner, close} signal from a + process other than the port owner could erroneously + trigger a badsig exit signal being sent to the port + owner process even though the correct PortOwner had + been passed in the signal. + + + OTP-17677 Application(s): erts + + This fixes a bug in erts_factory_undo that caused the + heap to not be reset correctly. The erts_factory_undo + function is, for example, called when a + binary_to_term/1 call fails to reset the heap to its + state before the binary_to_term/1 call. This can cause + the heap to contain invalid terms which potentially can + cause issues (e.g., crashes) when the whole heap is + scanned. + + + OTP-17700 Application(s): erts + Related Id(s): GH-5271, PR-5273 + + Fix bug in persistent_term when a key-value pair + contains a magic reference that is referred more than + once. Magic references are NIF resources or returned + from BIFs like ets:new, atomics:new. The bug could + cause the memory of the referred resource to be + prematurely deallocated. + + The bug also apply to magic references in message + passing on a runtime built with configure option + --enable-sharing-preserving. + + Bug exist for 64-bit since OTP-24.0 and for 32-bit + since OTP-20.0. + + + Full runtime dependencies of erts-10.7.2.14: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.9.1.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.9.1.4 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-17707 Application(s): ssh + Related Id(s): ERIERL-706 + + The value of the connect_timeout option is now used as + default value for the negotiation timeout. + + + Full runtime dependencies of ssh-4.9.1.4: 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-22.3.4.23.README.txt b/release-notes/OTP-22.3.4.23.README.txt new file mode 100644 index 0000000..279dcab --- /dev/null +++ b/release-notes/OTP-22.3.4.23.README.txt @@ -0,0 +1,67 @@ +Patch Package: OTP 22.3.4.23 +Git Tag: OTP-22.3.4.23 +Date: 2021-11-11 +Trouble Report Id: OTP-17735, OTP-17737 +Seq num: GH-4989, GH-5339, GH-5346 +System: OTP +Release: 22 +Application: erts-10.7.2.15 +Predecessor: OTP 22.3.4.22 + + Check out the git tag OTP-22.3.4.23, 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-10.7.2.15 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.15 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17735 Application(s): erts + Related Id(s): GH-5339 + + The runtime system could call select() with a too large + timeout value when executing on MacOS. This could in + turn cause the runtime system to crash. + + + OTP-17737 Application(s): erts + Related Id(s): GH-4989, GH-5346 + + Certain distributed signals that for various reasons + must to be forced into the distribution buffer even + when it is full would instead be lost if the + distribution buffer was full when sent. The effected + signals: + + -- EXIT signals with exit reasons of one word size. + + -- DOWN signals with exit reasons of one word size. + + -- demonitor signals from a terminating process. + + -- unlink_ack signals on OTP 23 and 24. + + -- spawn_reply signals on OTP 23 and 24. + + + Full runtime dependencies of erts-10.7.2.15: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.24.README.txt b/release-notes/OTP-22.3.4.24.README.txt new file mode 100644 index 0000000..0acde48 --- /dev/null +++ b/release-notes/OTP-22.3.4.24.README.txt @@ -0,0 +1,101 @@ +Patch Package: OTP 22.3.4.24 +Git Tag: OTP-22.3.4.24 +Date: 2021-12-21 +Trouble Report Id: OTP-17796 +Seq num: ERIERL-729 +System: OTP +Release: 22 +Application: erts-10.7.2.16 +Predecessor: OTP 22.3.4.23 + + Check out the git tag OTP-22.3.4.24, 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-17796 Application(s): erts + Related Id(s): ERIERL-729, PR-5473 + + Responsiveness of processes executing on normal or low + priority could suffer due to code purging or literal + area removal on systems with a huge amount of + processes. This since during these operations all + processes on the system were scheduled for execution at + once. + + This problem has been fixed by introducing a limit on + outstanding purge and copy literal requests in the + system. By default this limit is set to twice the + amount of schedulers on the system. This will ensure + that schedulers will have enough work scheduled to + perform these operations as quickly as possible at the + same time as other work will be interleaved to a much + higher degree. Performance of these operations will + however be somewhat degraded due to the overhead of + enforcing this limit compared to when using a very + large limit. + + This limit can be set by passing the +zosrl command + line argument to erl, or by calling + erlang:system_flag(outstanding_system_requests_limit, + NewLimit). + + + --------------------------------------------------------------------- + --- erts-10.7.2.16 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.16 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.1 (first satisfied in OTP 22.2) + + + --- Improvements and New Features --- + + OTP-17796 Application(s): erts + Related Id(s): ERIERL-729, PR-5473 + + *** HIGHLIGHT *** + + Responsiveness of processes executing on normal or low + priority could suffer due to code purging or literal + area removal on systems with a huge amount of + processes. This since during these operations all + processes on the system were scheduled for execution at + once. + + This problem has been fixed by introducing a limit on + outstanding purge and copy literal requests in the + system. By default this limit is set to twice the + amount of schedulers on the system. This will ensure + that schedulers will have enough work scheduled to + perform these operations as quickly as possible at the + same time as other work will be interleaved to a much + higher degree. Performance of these operations will + however be somewhat degraded due to the overhead of + enforcing this limit compared to when using a very + large limit. + + This limit can be set by passing the +zosrl command + line argument to erl, or by calling + erlang:system_flag(outstanding_system_requests_limit, + NewLimit). + + + Full runtime dependencies of erts-10.7.2.16: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.25.README.txt b/release-notes/OTP-22.3.4.25.README.txt new file mode 100644 index 0000000..df25808 --- /dev/null +++ b/release-notes/OTP-22.3.4.25.README.txt @@ -0,0 +1,229 @@ +Patch Package: OTP 22.3.4.25 +Git Tag: OTP-22.3.4.25 +Date: 2022-03-29 +Trouble Report Id: OTP-17843, OTP-17888, OTP-17904, OTP-17905, + OTP-17998 +Seq num: ERIERL-732, ERIERL-757, GH-5554 +System: OTP +Release: 22 +Application: common_test-1.18.2.2, erts-10.7.2.17, + kernel-6.5.2.5 +Predecessor: OTP 22.3.4.24 + + Check out the git tag OTP-22.3.4.25, 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-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + --------------------------------------------------------------------- + --- common_test-1.18.2.2 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.18.2.2 application can be applied independently of + other applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17888 Application(s): common_test + + OTP internal test fix. + + + Full runtime dependencies of common_test-1.18.2.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-10.7.2.17 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.17 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-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + *** HIGHLIGHT *** + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + OTP-17904 Application(s): erts + Related Id(s): ERIERL-757 + + Fix memory leak when tracing on running on a process + that only handle system tasks or non-message signals + (for example process_info requests). + + + OTP-17998 Application(s): erts + Related Id(s): GH-5554, PR-5825 + + Fix Erlang monotonic time on MacOS. Previously used OS + monotonic time primitive on MacOS is buggy and will not + be used anymore. It has been replaced with usage of + another OS monotonic time primitive that does not + appear to be buggy. + + + Full runtime dependencies of erts-10.7.2.17: kernel-6.5.2.5, + sasl-3.3, stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-6.5.2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-6.5.2.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: + -- erts-10.7.2.17 (first satisfied in OTP 22.3.4.25) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + *** HIGHLIGHT *** + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + --- Improvements and New Features --- + + OTP-17905 Application(s): kernel + Related Id(s): ERIERL-732, PR-5740 + + A net_tickintensity kernel parameter has been + introduced. It can be used to control the amount of + ticks during a net_ticktime period. + + A new net_kernel:start/2 function has also been + introduced in order to make it easier to add new + options. The use of net_kernel:start/1 has been + deprecated. + + + Full runtime dependencies of kernel-6.5.2.5: erts-10.7.2.17, + sasl-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.26.README.txt b/release-notes/OTP-22.3.4.26.README.txt new file mode 100644 index 0000000..7b273ef --- /dev/null +++ b/release-notes/OTP-22.3.4.26.README.txt @@ -0,0 +1,67 @@ +Patch Package: OTP 22.3.4.26 +Git Tag: OTP-22.3.4.26 +Date: 2022-05-03 +Trouble Report Id: OTP-18075, OTP-18076, OTP-18077 +Seq num: ERIERL-802, GH-5876 +System: OTP +Release: 22 +Application: erts-10.7.2.18 +Predecessor: OTP 22.3.4.25 + + Check out the git tag OTP-22.3.4.26, 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-10.7.2.18 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.18 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-18075 Application(s): erts + Related Id(s): PR-5927 + + Fix bug where the process message queue was left in an + inconsistent state when changing from on_heap to + off_heap message queue data causing the GC to segfault. + + + OTP-18076 Application(s): erts + Related Id(s): ERIERL-802, PR-5905 + + Fix functions that convert universal to localtime (such + as erlang:localtime/0 and + erlang:universaltime_to_localtime/1) to fetch the + correct localtime if it is changed after the start of + the VM. + + + OTP-18077 Application(s): erts + Related Id(s): GH-5876, PR-5892 + + Fix memory leak when a process doing a distributed + fragmented send is sent an exit signal. Before this fix + the receiving node would be left with an incomplete + message that would remain until the nodes were + disconnected. The bug has existed since Erlang/OTP 21. + + + Full runtime dependencies of erts-10.7.2.18: kernel-6.5.2.5, + sasl-3.3, stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + 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-22.3.4.5.README.txt b/release-notes/OTP-22.3.4.5.README.txt new file mode 100644 index 0000000..a2c16dd --- /dev/null +++ b/release-notes/OTP-22.3.4.5.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 22.3.4.5 +Git Tag: OTP-22.3.4.5 +Date: 2020-08-03 +Trouble Report Id: OTP-16775 +Seq num: ERIERL-519 +System: OTP +Release: 22 +Application: inets-7.1.3.2 +Predecessor: OTP 22.3.4.4 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- inets-7.1.3.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.1.3.2 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16775 Application(s): inets + Related Id(s): ERIERL-519 + + Fix a crash in http server when setopts is called on a + socket closed by the peer. + + + Full runtime dependencies of inets-7.1.3.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.6.README.txt b/release-notes/OTP-22.3.4.6.README.txt new file mode 100644 index 0000000..43195cd --- /dev/null +++ b/release-notes/OTP-22.3.4.6.README.txt @@ -0,0 +1,63 @@ +Patch Package: OTP 22.3.4.6 +Git Tag: OTP-22.3.4.6 +Date: 2020-08-13 +Trouble Report Id: OTP-16780, OTP-16790 +Seq num: ERIERL-522, PR-2701 +System: OTP +Release: 22 +Application: erts-10.7.2.3, inets-7.1.3.3 +Predecessor: OTP 22.3.4.5 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- erts-10.7.2.3 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-10.7.2.3 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.1 (first satisfied in OTP 22.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-16780 Application(s): erts + Related Id(s): PR-2701 + + The ERTS internal I/O poll implementation could get + into an inconsistent state causing input events to be + ignored. + + Full runtime dependencies of erts-10.7.2.3: kernel-6.5.1, sasl-3.3, + stdlib-3.5 + + --------------------------------------------------------------------- + --- inets-7.1.3.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.1.3.3 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16790 Application(s): inets + Related Id(s): ERIERL-522 + + Corrected an error regarding decode of percent encoded + URLs introduced in inets-7.1.3. + + + Full runtime dependencies of inets-7.1.3.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- diff --git a/release-notes/OTP-22.3.4.7.README.txt b/release-notes/OTP-22.3.4.7.README.txt new file mode 100644 index 0000000..2d5ebad --- /dev/null +++ b/release-notes/OTP-22.3.4.7.README.txt @@ -0,0 +1,41 @@ +Patch Package: OTP 22.3.4.7 +Git Tag: OTP-22.3.4.7 +Date: 2020-08-17 +Trouble Report Id: OTP-15767 +Seq num: ERIERL-523 +System: OTP +Release: 22 +Application: snmp-5.5.0.2 +Predecessor: OTP 22.3.4.6 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- snmp-5.5.0.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.5.0.2 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15767 Application(s): snmp + Related Id(s): ERIERL-523 + + The SNMP Agent missed to re-activate datagram reception + in an odd timeout case and went deaf. This bug has been + fixed. + + + Full runtime dependencies of snmp-5.5.0.2: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.8.README.txt b/release-notes/OTP-22.3.4.8.README.txt new file mode 100644 index 0000000..8d2e7a3 --- /dev/null +++ b/release-notes/OTP-22.3.4.8.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 22.3.4.8 +Git Tag: OTP-22.3.4.8 +Date: 2020-08-19 +Trouble Report Id: OTP-15130 +Seq num: ERIERL-524 +System: OTP +Release: 22 +Application: snmp-5.5.0.3 +Predecessor: OTP 22.3.4.7 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- snmp-5.5.0.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.5.0.3 application can be applied independently of other + applications on a full OTP 22 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15130 Application(s): snmp + Related Id(s): ERIERL-524, OTP-16541 + + For agent fix PrivParams for SNMPv3 USM with AES + privacy, as earlier fixed for the manager in OTP_16541. + + + Full runtime dependencies of snmp-5.5.0.3: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-22.3.4.9.README.txt b/release-notes/OTP-22.3.4.9.README.txt new file mode 100644 index 0000000..0c927b6 --- /dev/null +++ b/release-notes/OTP-22.3.4.9.README.txt @@ -0,0 +1,56 @@ +Patch Package: OTP 22.3.4.9 +Git Tag: OTP-22.3.4.9 +Date: 2020-08-21 +Trouble Report Id: OTP-16791, OTP-16803 +Seq num: ERIERL-520 +System: OTP +Release: 22 +Application: ssh-4.9.1.1 +Predecessor: OTP 22.3.4.8 + + Check out the git tag OTP-22.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. + + --------------------------------------------------------------------- + --- ssh-4.9.1.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssh-4.9.1.1 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-16791 Application(s): ssh + Related Id(s): ERIERL-520 + + Fix a bug that could crash the cli server if a too + large cli-window was requested from the client. + + + --- Improvements and New Features --- + + OTP-16803 Application(s): ssh + + A new timeout is defined for daemons: hello_timeout. + + It closes an incoming TCP-connection if no valid 1st + message is received from the client within the timeout + limit. + + + Full runtime dependencies of ssh-4.9.1.1: 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.0.4.README.txt b/release-notes/OTP-23.0.4.README.txt new file mode 100644 index 0000000..e9a1ac8 --- /dev/null +++ b/release-notes/OTP-23.0.4.README.txt @@ -0,0 +1,85 @@ +Patch Package: OTP 23.0.4 +Git Tag: OTP-23.0.4 +Date: 2020-09-11 +Trouble Report Id: OTP-16780, OTP-16804, OTP-16818 +Seq num: ERIERL-526 +System: OTP +Release: 23 +Application: erts-11.0.4, megaco-3.19.2, stdlib-3.13.1 +Predecessor: OTP 23.0.3 + + Check out the git tag OTP-23.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-11.0.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.0.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16780 Application(s): erts + Related Id(s): PR-2701 + + The ERTS internal I/O poll implementation could get + into an inconsistent state causing input events to be + ignored. + + + Full runtime dependencies of erts-11.0.4: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-3.19.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.19.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16818 Application(s): megaco + Related Id(s): ERIERL-526 + + The v2 and v3 parsers could not properly decode some + IPv6 addresses. + + + Full runtime dependencies of megaco-3.19.2: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- stdlib-3.13.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.13.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16804 Application(s): stdlib + + When a temporary child of a simple_one_for_one + supervisor died, the internal state of the supervisor + would be corrupted in a way that would cause the + supervisor to retain the start arguments for subsequent + children started by the supervisor, causing unnecessary + growth of the supervisor's heap. There state corruption + could potentially cause other problems as well. + + + Full runtime dependencies of stdlib-3.13.1: compiler-5.0, crypto-3.3, + erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.1.1.README.txt b/release-notes/OTP-23.1.1.README.txt new file mode 100644 index 0000000..e264ea5 --- /dev/null +++ b/release-notes/OTP-23.1.1.README.txt @@ -0,0 +1,193 @@ +Patch Package: OTP 23.1.1 +Git Tag: OTP-23.1.1 +Date: 2020-10-02 +Trouble Report Id: OTP-16847, OTP-16856, OTP-16870, OTP-16874, + OTP-16892, OTP-16895, OTP-16902, OTP-16903, + OTP-16904, OTP-16906 +Seq num: ERIERL-532, ERIERL-534, ERL-1301, ERL-1356, + ERL-1359, ERL-1362 +System: OTP +Release: 23 +Application: compiler-7.6.4, erts-11.1.1, os_mon-2.6.1, + public_key-1.9.1, ssh-4.10.2 +Predecessor: OTP 23.1 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- OTP-23.1.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16903 Application(s): otp + Related Id(s): ERL-1362 + + Fixed the missing redistribution file in the windows + installers. + + + --------------------------------------------------------------------- + --- compiler-7.6.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.6.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16895 Application(s): compiler + Related Id(s): ERL-1359 + + Fixed a performance bug that could be triggered by + tuple matching in very large functions. + + + Full runtime dependencies of compiler-7.6.4: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erts-11.1.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16847 Application(s): erts + Related Id(s): ERL-1301 + + inet:setopts([{active,once}]) wakes up IO polling + thread unnecessarily, leading to lock contention and + visibly higher CPU utilization. + + + OTP-16870 Application(s): erts + + Two bugs in the ERTS internal thread wakeup + functionality have been fixed. These bugs mainly hit + when all threads in the system tried to go to sleep. + When the bugs were triggered, certain operations were + delayed until a thread woke up due to some other + reason. Most important operations effected were code + loading, persistent term updates, and memory + deallocation. + + + OTP-16874 Application(s): erts + Related Id(s): ERL-1356, PR-2763 + + Fixed bug in ets:select_replace/2 on compressed tables + that could produce faulty results or VM crash. Bug + exists since OTP 20. + + + OTP-16892 Application(s): erts + + When compiling Erlang/OTP on macOS using Xcode 12, the + performance of the BEAM interpreter would be degraded. + + + --- Improvements and New Features --- + + OTP-16856 Application(s): erts + + As of OTP 22, the allocator specific memory carrier + pools were replaced by a node global carrier pool. This + unfortunately caused substantial memory fragmentation + in some cases due to long lived data being spread into + carriers used by allocators mainly handling short lived + data. + + A new command line argument +M<S>cp has been introduced + with which one can enable the old behavior as well as + configuring other behaviors for the carrier pools. In + order to configure the old behavior, with allocator + specific carrier pools for all allocators, pass +Mucp : + (including the colon character) as a command line + argument to erl when starting the Erlang system. + + The default configuration for carrier pools will be + changed to +Mucp : some time in the future, but not in + this patch. + + + Full runtime dependencies of erts-11.1.1: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- os_mon-2.6.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.6.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-16906 Application(s): os_mon + Related Id(s): ERIERL-532 + + The configuration parameter + memsup_improved_system_memory_data has been introduced. + It can be used to modify the result returned by + memsup:get_system_memory_data(). For more information + see the memsup documentation. + + Note that the configuration parameter is intended to be + removed in OTP 24 and the modified result is intended + to be used as of OTP 24. + + + Full runtime dependencies of os_mon-2.6.1: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.9.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The public_key-1.9.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16902 Application(s): public_key + Related Id(s): ERIERL-534 + + Fix the issue that pem_decode will crash with an + invalid input. + + + Full runtime dependencies of public_key-1.9.1: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.10.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.10.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16904 Application(s): ssh + + Fix decoder bug. + + + Full runtime dependencies of ssh-4.10.2: 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.1.2.README.txt b/release-notes/OTP-23.1.2.README.txt new file mode 100644 index 0000000..73ae05e --- /dev/null +++ b/release-notes/OTP-23.1.2.README.txt @@ -0,0 +1,93 @@ +Patch Package: OTP 23.1.2 +Git Tag: OTP-23.1.2 +Date: 2020-11-05 +Trouble Report Id: OTP-16939, OTP-16951, OTP-16955, OTP-16991 +Seq num: ERL-1343, ERL-1384 +System: OTP +Release: 23 +Application: compiler-7.6.5, erts-11.1.2 +Predecessor: OTP 23.1.1 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- compiler-7.6.5 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.6.5 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16951 Application(s): compiler + Related Id(s): ERL-1384 + + Fixed a bug in the boolean optimization pass that + caused the compiler to confuse different clauses. + + + Full runtime dependencies of compiler-7.6.5: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erts-11.1.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16939 Application(s): erts + + Fixed bugs causing issues when enabling the ERTS + internal allocators on a system built with the + undocumented and unsupported SMALL_MEMORY feature. + + + OTP-16955 Application(s): erts + Related Id(s): ERL-1343, OTP-15618 + + The inet driver used to use 16 as maximum elements in + an I/O vector passed to writev() (and WSASend() on + Windows). When the data to send contained lots of + elements, this caused a performance degradation since + repeated calls to writev() had to be made to a much + larger extent. The inet driver now looks up actual + maximum amount of elements that can be used on the + system, instead of just assuming 16. On most systems + this will result in a maximum amount of I/O vector + elements of 1024. + + As of OTP 23.0 the term encoding of signals to send + over the distribution are encoded into I/O vectors of + buffers instead of into a single buffer. Reference + counted binaries are referred to directly from the I/O + vector instead of being copied into the single buffer. + That is, Erlang signals containing huge amounts of + reference counted binaries was effected by this + performance degradation. + + + OTP-16991 Application(s): erts + Related Id(s): OTP-15251 + + In the distributed case, a faulty reply option in a + call to the spawn_request() BIF erroneously caused a + badarg exception instead of a badopt error message + reply. + + + Full runtime dependencies of erts-11.1.2: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.1.3.README.txt b/release-notes/OTP-23.1.3.README.txt new file mode 100644 index 0000000..405128a --- /dev/null +++ b/release-notes/OTP-23.1.3.README.txt @@ -0,0 +1,62 @@ +Patch Package: OTP 23.1.3 +Git Tag: OTP-23.1.3 +Date: 2020-11-17 +Trouble Report Id: OTP-16994, OTP-17006 +Seq num: ERIERL-556 +System: OTP +Release: 23 +Application: erts-11.1.3, ssh-4.10.3 +Predecessor: OTP 23.1.2 + + Check out the git tag OTP-23.1.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-11.1.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16994 Application(s): erts + + Fixed a crash when exceptions were thrown during call + time tracing. + + + Full runtime dependencies of erts-11.1.3: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.10.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.10.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17006 Application(s): ssh + Related Id(s): ERIERL-556 + + A supervisor sub-tree could be left if the connection + handler process is brutally killed. This will make the + max_sessions checking option to count the existing + sessions erroneously and could finally block further + sessions. + + + Full runtime dependencies of ssh-4.10.3: 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.1.4.1.README.txt b/release-notes/OTP-23.1.4.1.README.txt new file mode 100644 index 0000000..7e8cefe --- /dev/null +++ b/release-notes/OTP-23.1.4.1.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 23.1.4.1 +Git Tag: OTP-23.1.4.1 +Date: 2021-06-07 +Trouble Report Id: OTP-17468 +Seq num: ERIERL-656 +System: OTP +Release: 23 +Application: ssh-4.10.4.1 +Predecessor: OTP 23.1.4 + + Check out the git tag OTP-23.1.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. + + --------------------------------------------------------------------- + --- ssh-4.10.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.10.4.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17468 Application(s): ssh + Related Id(s): ERIERL-656 + + Filter out sensitive data (passwords etc) from progress + reports and supervisor reports. + + + Full runtime dependencies of ssh-4.10.4.1: 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.1.4.README.txt b/release-notes/OTP-23.1.4.README.txt new file mode 100644 index 0000000..eed4f2e --- /dev/null +++ b/release-notes/OTP-23.1.4.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 23.1.4 +Git Tag: OTP-23.1.4 +Date: 2020-11-20 +Trouble Report Id: OTP-17016 +Seq num: ERIERL-562 +System: OTP +Release: 23 +Application: ssh-4.10.4 +Predecessor: OTP 23.1.3 + + Check out the git tag OTP-23.1.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. + + --------------------------------------------------------------------- + --- ssh-4.10.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.10.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17016 Application(s): ssh + Related Id(s): ERIERL-562 + + The inet option raw was not passed on from the ssh + option list to inet. + + + Full runtime dependencies of ssh-4.10.4: 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.1.5.README.txt b/release-notes/OTP-23.1.5.README.txt new file mode 100644 index 0000000..791d55e --- /dev/null +++ b/release-notes/OTP-23.1.5.README.txt @@ -0,0 +1,44 @@ +Patch Package: OTP 23.1.5 +Git Tag: OTP-23.1.5 +Date: 2020-12-07 +Trouble Report Id: OTP-17021 +Seq num: ERIERL-567 +System: OTP +Release: 23 +Application: ssh-4.10.5 +Predecessor: OTP 23.1.4 + + Check out the git tag OTP-23.1.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. + + --------------------------------------------------------------------- + --- ssh-4.10.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.10.5 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17021 Application(s): ssh + Related Id(s): ERIERL-567 + + An ssh-client can take an accepted socket from a + listening socket and do an ssh:connect/2 on it. + + Multiple clients on sockets accepted from the same + listening socket had stopped working. This is corrected + now. + + + Full runtime dependencies of ssh-4.10.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.1.README.txt b/release-notes/OTP-23.1.README.txt new file mode 100644 index 0000000..4d30b2e --- /dev/null +++ b/release-notes/OTP-23.1.README.txt @@ -0,0 +1,1210 @@ +Patch Package: OTP 23.1 +Git Tag: OTP-23.1 +Date: 2020-09-23 +Trouble Report Id: OTP-14106, OTP-15130, OTP-15187, OTP-15767, + OTP-15855, OTP-16411, OTP-16448, OTP-16591, + OTP-16592, OTP-16607, OTP-16625, OTP-16650, + OTP-16655, OTP-16658, OTP-16661, OTP-16663, + OTP-16674, OTP-16675, OTP-16694, OTP-16697, + OTP-16700, OTP-16701, OTP-16705, OTP-16707, + OTP-16710, OTP-16713, OTP-16715, OTP-16716, + OTP-16732, OTP-16734, OTP-16735, OTP-16737, + OTP-16738, OTP-16739, OTP-16740, OTP-16741, + OTP-16742, OTP-16743, OTP-16744, OTP-16746, + OTP-16748, OTP-16751, OTP-16753, OTP-16754, + OTP-16755, OTP-16760, OTP-16761, OTP-16763, + OTP-16764, OTP-16765, OTP-16767, OTP-16768, + OTP-16770, OTP-16771, OTP-16774, OTP-16775, + OTP-16776, OTP-16777, OTP-16778, OTP-16779, + OTP-16782, OTP-16783, OTP-16784, OTP-16785, + OTP-16786, OTP-16787, OTP-16790, OTP-16791, + OTP-16798, OTP-16801, OTP-16802, OTP-16803, + OTP-16813, OTP-16815, OTP-16816, OTP-16820, + OTP-16821, OTP-16823, OTP-16830, OTP-16832, + OTP-16833, OTP-16836, OTP-16837, OTP-16838, + OTP-16846, OTP-16848, OTP-16850, OTP-16851, + OTP-16854, OTP-16857, OTP-16866 +Seq num: ERIERL-484, ERIERL-496, ERIERL-500, + ERIERL-509, ERIERL-511, ERIERL-512, + ERIERL-516, ERIERL-519, ERIERL-520, + ERIERL-522, ERIERL-523, ERIERL-524, ERL-1215, + ERL-1241, ERL-1247, ERL-1257, ERL-1259, + ERL-1268, ERL-1271, ERL-1280, ERL-1283, + ERL-1284, ERL-1287, ERL-1288, ERL-1293, + ERL-1297, ERL-1305, ERL-1307, ERL-1309, + ERL-1310, ERL-1312, ERL-1316, ERL-1317, + ERL-1319, ERL-1327, ERL-1334, ERL-1340, + ERL-1344, ERL-1355 +System: OTP +Release: 23 +Application: asn1-5.0.14, compiler-7.6.3, crypto-4.8, + dialyzer-4.2.1, erl_docgen-1.0.1, + erl_interface-4.0.1, erts-11.1, eunit-2.6, + ftp-1.0.5, hipe-4.0.1, inets-7.3, kernel-7.1, + megaco-3.19.3, mnesia-4.18, observer-2.9.5, + odbc-2.13.1, os_mon-2.6, public_key-1.9, + runtime_tools-1.15.1, sasl-4.0.1, snmp-5.6.1, + ssh-4.10.1, ssl-10.1, stdlib-3.13.2, + syntax_tools-2.3.1, tools-3.4.1 +Predecessor: OTP 23.0.4 + + Check out the git tag OTP-23.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-16790 Application(s): inets + Related Id(s): ERIERL-522 + + A vulnerability in the httpd module (inets application) + regarding directory traversal that was introduced in + OTP 22.3.1 and corrected in OTP 22.3.4.6. It was also + introduced in OTP 23.0 and corrected in OTP 23.1 The + vulnerability is registered as CVE-2020-25623 + + The vulnerability is only exposed if the http server + (httpd) in the inets application is used. The + vulnerability makes it possible to read arbitrary files + which the Erlang system has read access to with for + example a specially prepared http request. + + + --------------------------------------------------------------------- + --- OTP-23.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16833 Application(s): erts, otp + Related Id(s): PR-2729 + + Adjust /bin/sh to /system/bin/sh in scripts when + installing on Android. + + + --- Improvements and New Features --- + + OTP-16779 Application(s): otp + Related Id(s): ERL-1305, PR-2700 + + Changes in build system to make it build for macOS 11.0 + with Apple Silicon. Also corrected execution of match + specs to work on Apple Silicon. + + + --------------------------------------------------------------------- + --- asn1-5.0.14 ----------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.14 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-16707 Application(s): asn1, erl_interface, erts, odbc + Related Id(s): PR-2638 + + Changes in order to build on the Haiku operating + system. + + Thanks to Calvin Buckley + + + Full runtime dependencies of asn1-5.0.14: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- compiler-7.6.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.6.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16701 Application(s): compiler + Related Id(s): ERL-1271 + + If the update of a map with the 'Map#{Key := Value}' + syntax failed, the line number in the stack backtrace + could be incorrect. + + + OTP-16755 Application(s): compiler + Related Id(s): ERL-1297 + + Fixed a performance bug that slowed down compilation of + modules with deeply nested terms. + + + OTP-16820 Application(s): compiler + + The compiler could in rare circumstances do an an + unsafe optimization that would result in a matching of + a nested map pattern would fail to match. + + + OTP-16838 Application(s): compiler + Related Id(s): ERL-1340 + + Fixed a bug in the validator that caused it to reject + valid code. + + + Full runtime dependencies of compiler-7.6.3: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-4.8 ------------------------------------------------------ + --------------------------------------------------------------------- + + The crypto-4.8 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16658 Application(s): crypto + Related Id(s): ERL-1257, OTP-15884 + + Fix type spec bug in crypto for crypto_init and + crypto:one_time + + + OTP-16846 Application(s): crypto + Related Id(s): PR-2741 + + The deprecation message for crypto:rand_uniform/2 + indicated a non-existent function. The correct one + (rand:uniform/1) is now suggested. + + + --- Improvements and New Features --- + + OTP-16771 Application(s): crypto + Related Id(s): ERIERL-509 + + Implemented a workaround to allow fallback from using + the EVP API for Diffie-Hellman key generation + + + OTP-16774 Application(s): crypto, ssh + + The internal Diffie-Hellman high level API for key + generation was slow in old and by OpenSSL now + unsupported cryptolib versions (1.0.1 and earlier). + + If such a cryptolib is used anyhow, the low-level API + is used internally in the crypto application. + + + Full runtime dependencies of crypto-4.8: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- dialyzer-4.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-4.2.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16813 Application(s): dialyzer + Related Id(s): ERL-1307 + + In rare circumstance, dialyzer wold crash when + analyzing a list comprehension. + + + Full runtime dependencies of dialyzer-4.2.1: compiler-7.0, erts-9.0, + hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- erl_docgen-1.0.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-1.0.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16661 Application(s): erl_docgen + Related Id(s): ERL-1259 + + Repaired lost function "since" versions in the right + margin of the module reference HTML documentation. + + + OTP-16675 Application(s): erl_docgen + + Remove erlang compilation warnings and trailing + whitespaces. + + + Full runtime dependencies of erl_docgen-1.0.1: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-4.0.1 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-4.0.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16740 Application(s): erl_interface + + Fix erl_interface on windows to be compiled with + correct flags to make internal primitives reentrant. + + + OTP-16753 Application(s): erl_interface + Related Id(s): ERL-1288, PR-2678 + + Fixed ei_get_type to set *size to zero for floats, + pids, port and refs according to documentation. + + + OTP-16786 Application(s): erl_interface + + Fix ei_connect when using a dynamic node name to force + usage of distribution version 6. + + This bug caused erl_call -R -address to not work + properly. + + + --- Improvements and New Features --- + + OTP-16707 Application(s): asn1, erl_interface, erts, odbc + Related Id(s): PR-2638 + + Changes in order to build on the Haiku operating + system. + + Thanks to Calvin Buckley + + + --- 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-11.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16625 Application(s): erts + Related Id(s): PR-2609 + + Update the documentation of the abstract format to use + ANNO instead of LINE. + + + OTP-16710 Application(s): erts + Related Id(s): ERL-1280 + + The emulator will no longer revert to the default + number of schedulers when running under a CPU quota + lower than 1 CPU. + + + OTP-16713 Application(s): erts + + Fixed a problem with crash dumps. When a process that + contained reference to literals internally created by + the runtime system (such as the tuple returned by + os:type/0), the literal would not be included in the + crash dump and the crashdump viewer would complain + about the heap being incomplete. + + + OTP-16738 Application(s): erts + + Fix configure detection of PGO for clang. + + + OTP-16741 Application(s): erts + + The to_erl program has been fixed to correctly + interpret newline as only newline and not + newline+return. + + This bug would cause the terminal to behave strangely + when using lines longer than the terminal size. + + + OTP-16770 Application(s): erts + + A race condition when changing process priority by + calling process_flag(priority, Prio) could cause + elevation of priority for a system task to be ignored. + This bug hit if the system task was scheduled on the + process calling process_flag() at the same time as the + priority was changed. The bug is quite harmless and + should hit very seldom if ever. + + + OTP-16833 Application(s): erts, otp + Related Id(s): PR-2729 + + Adjust /bin/sh to /system/bin/sh in scripts when + installing on Android. + + + OTP-16850 Application(s): erts + Related Id(s): ERL-1344 + + In rare circumstances, when loading a BEAM file + generated by an alternative code generator (not the + Erlang compiler in OTP) or from handwritten or patched + BEAM code, the loader could do an unsafe optimization. + + + OTP-16857 Application(s): erts + + A memory and file descriptor leak in socket has been + fixed. (When a newly opened socket that had not entered + the fd into the VM's poll set (neither received, sent, + accepted nor connected) was abandoned without closing + (process died), after assigning a different controlling + process, then a memory block and the file descriptor + could be leaked.) + + + OTP-16866 Application(s): erts + Related Id(s): ERL-1355 + + The documentation of statistics(run_queue) erroneously + stated that it returns the total length of all normal + run queues when it is the total length of all normal + and dirty CPU run queues that is returned. The + documentation has been updated to reflect the actual + behavior. + + + --- Improvements and New Features --- + + OTP-16707 Application(s): asn1, erl_interface, erts, odbc + Related Id(s): PR-2638 + + Changes in order to build on the Haiku operating + system. + + Thanks to Calvin Buckley + + + OTP-16715 Application(s): erts + + When building the inet driver on Windows, there where + many compiler warnings regarding type casting (used + when calling the debug macro). This has now been + resolved. + + + OTP-16763 Application(s): erts, kernel + + Make (use of) the socket registry optional (still + enabled by default). Its now possible to build OTP with + the socket registry turned off, turn it off by setting + an environment variable and controlling in runtime (via + function calls and arguments when creating sockets). + + + OTP-16821 Application(s): erts + Related Id(s): PR-2733 + + Change default filename encoding on android to UTF-8. + + + OTP-16848 Application(s): erts + Related Id(s): PR-2737 + + Clarification of the format of the atom cache header + used by the distribution. + + + Full runtime dependencies of erts-11.1: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- eunit-2.6 ------------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.6 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-16674 Application(s): eunit + + Fixed compiler warning. + + + Full runtime dependencies of eunit-2.6: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ftp-1.0.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ftp-1.0.5 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16734 Application(s): ftp + Related Id(s): ERIERL-496, OTP-16697 + + Avoid timing issue when setting active once on a socket + that is being closed by the peer. + + + Full runtime dependencies of ftp-1.0.5: erts-7.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- hipe-4.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The hipe-4.0.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16737 Application(s): hipe + + Fixed a warning issued when building the hipe + application. + + + Full runtime dependencies of hipe-4.0.1: compiler-5.0, erts-9.3, + kernel-5.3, stdlib-3.4, syntax_tools-1.6.14 + + + --------------------------------------------------------------------- + --- inets-7.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16650 Application(s): inets + Related Id(s): ERL-1215, PR-2629 + + Clarify the handling of percent encoded characters in + http client. + + + OTP-16663 Application(s): inets + Related Id(s): ERL-1241 + + fix crash for undefined port in uri. + + + OTP-16735 Application(s): inets + Related Id(s): ERIERL-496, OTP-16697 + + Avoid timing issue when setting active once on a socket + that is being closed by the peer. + + + OTP-16746 Application(s): inets + Related Id(s): ERL-1268 + + Handle message body of response with 1XX status code as + next http message. + + + OTP-16775 Application(s): inets + Related Id(s): ERIERL-519 + + Fix a crash in http server when setopts is called on a + socket closed by the peer. + + + OTP-16790 Application(s): inets + Related Id(s): ERIERL-522 + + *** HIGHLIGHT *** + + A vulnerability in the httpd module (inets application) + regarding directory traversal that was introduced in + OTP 22.3.1 and corrected in OTP 22.3.4.6. It was also + introduced in OTP 23.0 and corrected in OTP 23.1 The + vulnerability is registered as CVE-2020-25623 + + The vulnerability is only exposed if the http server + (httpd) in the inets application is used. The + vulnerability makes it possible to read arbitrary files + which the Erlang system has read access to with for + example a specially prepared http request. + + + --- Improvements and New Features --- + + OTP-16591 Application(s): inets + Related Id(s): ERIERL-484 + + Add support of PATCH method in mod_esi. + + + Full runtime dependencies of inets-7.3: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-7.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-7.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15187 Application(s): kernel + Related Id(s): ERL-1293 + + A fallback has been implemented for file:sendfile when + using inet_backend socket + + + OTP-16694 Application(s): kernel + Related Id(s): PR-2625 + + Make default TCP distribution honour option backlog in + inet_dist_listen_options. + + + OTP-16743 Application(s): kernel + Related Id(s): ERL-1287 + + Raw option handling for the experimental gen_tcp_socket + backend was broken so that all raw options were ignored + by for example gen_tcp:listen/2, a bug that now has + been fixed. Reported by Jan Uhlig. + + + OTP-16748 Application(s): kernel + Related Id(s): ERL-1284 + + Accept fails with inet-backend socket. + + + OTP-16754 Application(s): kernel + + Fixed various minor errors in the socket backend of + gen_tcp. + + + OTP-16768 Application(s): kernel + Related Id(s): ERL-1312 + + Correct disk_log:truncate/1 to count the header. Also + correct the documentation to state that + disk_log:truncate/1 can be used with external disk + logs. + + + OTP-16783 Application(s): kernel + + Fix erl_epmd:port_please/2,3 type specs to include all + possible error values. + + + OTP-16785 Application(s): kernel + + Fix erl -erl_epmd_port to work properly. Before this + fix it did not work at all. + + + OTP-16823 Application(s): kernel + Related Id(s): PR-2722 + + Fix typespec for internal function + erlang:seq_trace_info/1 to allow term() as returned + label. This in turn fixes so that calls to + seq_trace:get_token/1 can be correctly analyzer by + dialyzer. + + + OTP-16832 Application(s): kernel + Related Id(s): PR-2738 + + Fix erroneous double registration of processes in pg + when distribution is dynamically started. + + + --- Improvements and New Features --- + + OTP-16763 Application(s): erts, kernel + + Make (use of) the socket registry optional (still + enabled by default). Its now possible to build OTP with + the socket registry turned off, turn it off by setting + an environment variable and controlling in runtime (via + function calls and arguments when creating sockets). + + + OTP-16784 Application(s): kernel + + erl -remsh nodename no longer requires the hostname to + be given when used together with dynamic nodenames. + + + Full runtime dependencies of kernel-7.1: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-3.19.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.19.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16836 Application(s): megaco + + The expected number of warnings when (yecc) generating + v2 and v3 (text) parser's was incorrect. + + + Full runtime dependencies of megaco-3.19.3: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.18 ----------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.18 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16782 Application(s): mnesia + Related Id(s): PR-2663 + + FIx mnesia delete object handling in transaction + storage. In a transaction mnesia:read/1 could indicate + that exiting objects did not exist after another object + was deleted. + + + --- Improvements and New Features --- + + OTP-16815 Application(s): mnesia + Related Id(s): ERIERL-500 + + Fixed crash during startup, which could happen if a + table was deleted on another node. + + + Full runtime dependencies of mnesia-4.18: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.9.5 -------------------------------------------------- + --------------------------------------------------------------------- + + The observer-2.9.5 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16778 Application(s): observer + + Fix graph windows flickering on windows. + + + Full runtime dependencies of observer-2.9.5: erts-11.0, et-1.5, + kernel-7.0, runtime_tools-1.8.14, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.13.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.13.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-16707 Application(s): asn1, erl_interface, erts, odbc + Related Id(s): PR-2638 + + Changes in order to build on the Haiku operating + system. + + Thanks to Calvin Buckley + + + Full runtime dependencies of odbc-2.13.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + The os_mon-2.6 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16798 Application(s): os_mon + Related Id(s): ERL-1327 + + memsup now returns the correct amount of system memory + on macOS. + + + --- Improvements and New Features --- + + OTP-16742 Application(s): os_mon + + Fix memsup:get_os_wordsize/0 to return the current size + on aarch64. + + + Full runtime dependencies of os_mon-2.6: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.9 -------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.9 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16801 Application(s): public_key + Related Id(s): ERL-1309 + + Fixed an insignificant whitespace issue when decoding + PEM file. + + + --- Improvements and New Features --- + + OTP-16448 Application(s): public_key, ssl + + Experimental OCSP client support. + + + OTP-16592 Application(s): public_key + + Use user returned path validation error for selfsigned + cert. It allows users of the ssl application to + customize the generated TLS alert, within the range of + defined alerts. + + + OTP-16705 Application(s): public_key + + add API function to retrieve the subject-ID of an X509 + certificate + + + Full runtime dependencies of public_key-1.9: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.15.1 -------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.15.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16787 Application(s): runtime_tools + Related Id(s): PR-2673 + + Fixed a crash in appmon_info triggered by trying to + read port info from a port that was in the process of + terminating. + + appmon_info is used by observer to get information from + the observed node. + + + Full runtime dependencies of runtime_tools-1.15.1: erts-11.0, + kernel-7.0, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The sasl-4.0.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16744 Application(s): sasl + Related Id(s): ERL-1247, PR-2666 + + Make release_handler more resilient against exiting + processes during upgrade. + + + Full runtime dependencies of sasl-4.0.1: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.6.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.6.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15130 Application(s): snmp + Related Id(s): ERIERL-524, OTP-16541 + + For agent fix PrivParams for SNMPv3 USM with AES + privacy, as earlier fixed for the manager in OTP_16541. + + + OTP-15767 Application(s): snmp + Related Id(s): ERIERL-523 + + The SNMP Agent missed to re-activate datagram reception + in an odd timeout case and went deaf. This bug has been + fixed. + + + OTP-16716 Application(s): snmp + + Use of deprecated functions in example 2 has been + removed (no more compiler warnings). + + + OTP-16760 Application(s): snmp + Related Id(s): ERIERL-511 + + A file descriptor leak has been plugged. When calling + the reconfigure function of a mib, it opened the config + file(s) but never closed them on successful read. + + + Full runtime dependencies of snmp-5.6.1: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.10.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.10.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16761 Application(s): ssh + Related Id(s): PR-2679 + + Fixed a bug when a message to ssh-agent was divided + into separate packets. + + + OTP-16791 Application(s): ssh + Related Id(s): ERIERL-520 + + Fix a bug that could crash the cli server if a too + large cli-window was requested from the client. + + + --- Improvements and New Features --- + + OTP-14106 Application(s): ssh + + Increased test coverage. + + + OTP-16411 Application(s): ssh + + A chapter about hardening the OTP SSH is added to the + User's Guide. + + + OTP-16774 Application(s): crypto, ssh + + The internal Diffie-Hellman high level API for key + generation was slow in old and by OpenSSL now + unsupported cryptolib versions (1.0.1 and earlier). + + If such a cryptolib is used anyhow, the low-level API + is used internally in the crypto application. + + + OTP-16803 Application(s): ssh + + A new timeout is defined for daemons: hello_timeout. + + The timeout is supposed to be used as a simple DoS + attack protection. It closes an incoming TCP-connection + if no valid first SSH message is received from the + client within the timeout limit after the TCP initial + connection setup. + + The initial value is 30s by compatibility reasons, but + could be lowered if needed, for example in the code or + in a config file. + + + Full runtime dependencies of ssh-4.10.1: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-10.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16697 Application(s): ssl + Related Id(s): ERIERL-496 + + If a passive socket is created, ssl:recv/2,3 is never + called and then the peer closes the socket the + controlling process will no longer receive an active + close message. + + + OTP-16764 Application(s): ssl + + Data deliver with ssl:recv/2,3 could fail for when + using packet mode. This has been fixed by correcting + the flow control handling of passive sockets when + packet mode is used. + + + OTP-16765 Application(s): ssl + + This change fixes a potential man-in-the-middle + vulnerability when the ssl client is configured to + automatically handle session tickets ({session_tickets, + auto}). + + + OTP-16767 Application(s): ssl + Related Id(s): ERIERL-512 + + Fix the internal handling of options 'verify' and + 'verify_fun'. + + This change fixes a vulnerability when setting the ssl + option 'verify' to verify_peer in a continued handshake + won't take any effect resulting in the acceptance of + expired peer certificates. + + + OTP-16776 Application(s): ssl + Related Id(s): ERL-1316 + + This change fixes the handling of stateless session + tickets when anti-replay is enabled. + + + OTP-16777 Application(s): ssl + Related Id(s): ERL-1317 + + Fix a crash due to the faulty handling of stateful + session tickets received by servers expecting stateless + session tickets. + + This change also improves the handling of + faulty/invalid tickets. + + + OTP-16837 Application(s): ssl + Related Id(s): ERL-1319, OTP-16764 + + Correct flow ctrl checks from OTP-16764 to work as + intended. Probably will not have a noticeable affect + but will make connections more well behaved under some + circumstances. + + + OTP-16851 Application(s): ssl + Related Id(s): PR-2703 + + Distribution over TLS could exhibit livelock-like + behaviour when there is a constant stream of + distribution messages. Distribution data is now chunked + every 16 Mb to avoid that. + + + --- Improvements and New Features --- + + OTP-15855 Application(s): ssl + + Implement the cookie extension for TLS 1.3. + + + OTP-16448 Application(s): public_key, ssl + + Experimental OCSP client support. + + + OTP-16802 Application(s): ssl + Related Id(s): ERIERL-516 + + TLS 1.0 -TLS-1.2 sessions tables now have a absolute + max value instead of using a shrinking mechanism when + reaching the limit. To avoid out of memory problems + under heavy load situations. Note that this change + infers that implementations of ssl_session_cache_api + needs to implement the size function (introduce in OTP + 19) for session reuse to be optimally utilized. + + + Full runtime dependencies of ssl-10.1: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.5 + + + --------------------------------------------------------------------- + --- stdlib-3.13.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.13.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16655 Application(s): stdlib + + The functions digraph:in_edges/2 and + digraph:out_edges/2 would return false edges if called + for a vertex that had a '_' atom in its name term. + + + OTP-16700 Application(s): stdlib + + filelib:wildcard("not-a-directory/..") should return an + empty list. On Windows it returned + "not-a-directory/..". + + + OTP-16739 Application(s): stdlib + + Fix the typespec of shell_docs:render to use the + correct type for an MFA. + + + OTP-16751 Application(s): stdlib + Related Id(s): ERL-1283 + + Fix uri_string:recompose/1 when host is present but + input path is not absolute. + + This change prevents the recompose operation to change + the top level domain of the host when the path does not + start with a slash. + + + OTP-16816 Application(s): stdlib + Related Id(s): ERL-1310 + + The epp module would return a badly formed error term + when an 'if' preprocessor directive referenced an + undefined symbol. epp:format_error/1 would crash when + called with the bad error term. + + + OTP-16830 Application(s): stdlib + Related Id(s): ERL-1334, PR-2718 + + lists:sublist(List, Start, Len) failed with an + exception if Start > length(List) + 1 even though it is + explicitly documented that "It is not an error for + Start+Len to exceed the length of the list". + + + Full runtime dependencies of stdlib-3.13.2: compiler-5.0, crypto-3.3, + erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.3.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The syntax_tools-2.3.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16732 Application(s): syntax_tools + Related Id(s): PR-2659 + + Minor documentation fix of erl_syntax:operator/1. + + + Full runtime dependencies of syntax_tools-2.3.1: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tools-3.4.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-3.4.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16854 Application(s): tools + Related Id(s): PR-2750 + + Correct the Xref analysis locals_not_used to find + functions called exclusively from on_load functions. + + + Full runtime dependencies of tools-3.4.1: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.2.1.README.txt b/release-notes/OTP-23.2.1.README.txt new file mode 100644 index 0000000..103f721 --- /dev/null +++ b/release-notes/OTP-23.2.1.README.txt @@ -0,0 +1,43 @@ +Patch Package: OTP 23.2.1 +Git Tag: OTP-23.2.1 +Date: 2020-12-21 +Trouble Report Id: OTP-17083 +Seq num: ERIERL-572 +System: OTP +Release: 23 +Application: erts-11.1.5 +Predecessor: OTP 23.2 + + Check out the git tag OTP-23.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-11.1.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1.5 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17083 Application(s): erts + Related Id(s): ERIERL-572 + + Fix emulator crash when sending small bit-strings over + Erlang distribution while the connection is being + setup. + + The fault was introduced in OTP-23.0 + + + Full runtime dependencies of erts-11.1.5: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.2.2.README.txt b/release-notes/OTP-23.2.2.README.txt new file mode 100644 index 0000000..dc90813 --- /dev/null +++ b/release-notes/OTP-23.2.2.README.txt @@ -0,0 +1,221 @@ +Patch Package: OTP 23.2.2 +Git Tag: OTP-23.2.2 +Date: 2021-01-15 +Trouble Report Id: OTP-16607, OTP-17080, OTP-17088, OTP-17093, + OTP-17098, OTP-17099, OTP-17100 +Seq num: ERIERL-580, ERIERL-585, ERL-1447 +System: OTP +Release: 23 +Application: crypto-4.8.2, erl_interface-4.0.2, + erts-11.1.6, megaco-3.19.5, odbc-2.13.2, + snmp-5.7.1, ssl-10.2.1 +Predecessor: OTP 23.2.1 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- OTP-23.2.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17093 Application(s): crypto, megaco, odbc, otp, snmp + Related Id(s): ERL-1447, PR-2948 + + Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure + script sources. + + + --------------------------------------------------------------------- + --- crypto-4.8.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.8.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17093 Application(s): crypto, megaco, odbc, otp, snmp + Related Id(s): ERL-1447, PR-2948 + + Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure + script sources. + + + Full runtime dependencies of crypto-4.8.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erl_interface-4.0.2 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-4.0.2 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17099 Application(s): erl_interface + Related Id(s): ERIERL-585 + + Integers outside of the range [-(1 bsl 32) - 1, (1 bsl + 32) -1] were previously intended to be printed in an + internal bignum format by ei_print_term() and + ei_s_print_term(). Unfortunately the implementation has + been buggy since OTP R13B02 and since then produced + results with random content which also could crash the + calling program. + + This fix replaces the printing of the internal format + with printing in hexadecimal form and extend the range + for printing in decimal form. Currently integers in the + range [-(1 bsl 64), (1 bsl 64)] are printed in decimal + form and integers outside of this range in Erlang + hexadecimal form. + + + --- 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-11.1.6 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1.6 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17080 Application(s): erts + + The suspend_process() and resume_process() BIFs did not + check their arguments properly which could cause an + emulator crash. + + + OTP-17088 Application(s): erts + Related Id(s): ERIERL-580 + + The runtime system would get into an infinite loop if + the runtime system was started with more than 1023 file + descriptors already open. + + + Full runtime dependencies of erts-11.1.6: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-3.19.5 --------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.19.5 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17093 Application(s): crypto, megaco, odbc, otp, snmp + Related Id(s): ERL-1447, PR-2948 + + Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure + script sources. + + + Full runtime dependencies of megaco-3.19.5: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- odbc-2.13.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.13.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17093 Application(s): crypto, megaco, odbc, otp, snmp + Related Id(s): ERL-1447, PR-2948 + + Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure + script sources. + + + Full runtime dependencies of odbc-2.13.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- snmp-5.7.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.7.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17093 Application(s): crypto, megaco, odbc, otp, snmp + Related Id(s): ERL-1447, PR-2948 + + Fixed usage of AC_CONFIG_AUX_DIRS() macros in configure + script sources. + + + Full runtime dependencies of snmp-5.7.1: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssl-10.2.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.2.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17098 Application(s): ssl + + Fix CVE-2020-35733 this only affects ssl-10.2 + (OTP-23.2). This vulnerability could enable a man in + the middle attack using a fake chain to a known trusted + ROOT. Also limits alternative chain handling, for + handling of possibly extraneous certs, to improve + memory management. + + + --- Improvements and New Features --- + + OTP-17100 Application(s): ssl + + Add support for AES CCM based cipher suites defined in + RFC 7251 + + Also Correct cipher suite name conversion to OpenSSL + names. A few names where corrected earlier in OTP-16267 + For backwards compatible reasons we support usage of + openSSL names for cipher suites. Mostly anonymous + suites names where incorrect, but also some legacy + suites. + + + Full runtime dependencies of ssl-10.2.1: 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.2.3.README.txt b/release-notes/OTP-23.2.3.README.txt new file mode 100644 index 0000000..db69d4e --- /dev/null +++ b/release-notes/OTP-23.2.3.README.txt @@ -0,0 +1,102 @@ +Patch Package: OTP 23.2.3 +Git Tag: OTP-23.2.3 +Date: 2021-01-20 +Trouble Report Id: OTP-17097, OTP-17107, OTP-17108, OTP-17110 +Seq num: ERIERL-586, ERL-1442 +System: OTP +Release: 23 +Application: crypto-4.8.3, erts-11.1.7, snmp-5.7.2, + ssh-4.10.7 +Predecessor: OTP 23.2.2 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- crypto-4.8.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.8.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17107 Application(s): crypto + + Adding missing flag in BN-calls in SRP. + + + Full runtime dependencies of crypto-4.8.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-11.1.7 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1.7 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17097 Application(s): erts + + Make windows installer remove write access rights for + non admin users when installing to a non default + directory. Reduces the risk for DLL sideloading, but + the user should always be aware of the access rights + for the installation. + + + Full runtime dependencies of erts-11.1.7: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- snmp-5.7.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.7.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17110 Application(s): snmp + Related Id(s): ERIERL-586 + + [manager] Misspelled priv protocol (atom) made it + impossible to update usm user 'priv_key' configuration + for usmAesCfb128Protocol via function calls. + + + Full runtime dependencies of snmp-5.7.2: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.10.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.10.7 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17108 Application(s): ssh + Related Id(s): ERL-1442 + + The SSH daemon erroneously replaced LF with CRLF also + when there was no pty requested from the server. + + + Full runtime dependencies of ssh-4.10.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-23.2.4.README.txt b/release-notes/OTP-23.2.4.README.txt new file mode 100644 index 0000000..cb807c1 --- /dev/null +++ b/release-notes/OTP-23.2.4.README.txt @@ -0,0 +1,80 @@ +Patch Package: OTP 23.2.4 +Git Tag: OTP-23.2.4 +Date: 2021-02-04 +Trouble Report Id: OTP-16239, OTP-17139, OTP-17161, OTP-17174 +Seq num: ERIERL-597, ERL-1458 +System: OTP +Release: 23 +Application: snmp-5.7.3, ssl-10.2.2 +Predecessor: OTP 23.2.3 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- snmp-5.7.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.7.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17161 Application(s): snmp + + [manager] In a function handling snmp errors, an unused + result (_Error) could result in matching issues and + therefor case clause runtime errors (crash). Note that + this would only happen in *very* unusual error cases. + + + Full runtime dependencies of snmp-5.7.3: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssl-10.2.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.2.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17139 Application(s): ssl + Related Id(s): ERL-1458, OTP-16239 + + Avoid that upgrade (from TCP to TLS) servers starts + multiple session cache handlers for the same server. + This applies to Erlang distribution over TLS servers. + + + OTP-17174 Application(s): ssl + Related Id(s): ERIERL-597 + + Legacy cipher suites defined before TLS-1.2 (but still + supported) should be possible to use in TLS-1.2. They + where accidentally excluded for available cipher suites + for TLS-1.2 in OTP-23.2.2. + + + --- Improvements and New Features --- + + OTP-16239 Application(s): ssl + Related Id(s): ERL-1458, OTP-17139 + + Enable Erlang distribution over TLS to run TLS-1.3, + although TLS-1.2 will still be default. + + + Full runtime dependencies of ssl-10.2.2: 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.2.5.README.txt b/release-notes/OTP-23.2.5.README.txt new file mode 100644 index 0000000..497ff60 --- /dev/null +++ b/release-notes/OTP-23.2.5.README.txt @@ -0,0 +1,116 @@ +Patch Package: OTP 23.2.5 +Git Tag: OTP-23.2.5 +Date: 2021-02-16 +Trouble Report Id: OTP-17185, OTP-17190, OTP-17191 +Seq num: ERIERL-606, ERL-1476, GH-4192 +System: OTP +Release: 23 +Application: erts-11.1.8, ssl-10.2.3, tools-3.4.3 +Predecessor: OTP 23.2.4 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- erts-11.1.8 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1.8 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17185 Application(s): erts + + Fixed a bug that could cause some work scheduled for + execution on scheduler threads to be delayed until + other similar work appeared. Beside delaying various + cleanup of internal data structures also the following + could be delayed: + + -- Termination of a distribution controller process + + -- Disabling of the distribution on a node + + -- Gathering of memory allocator information using the + instrument module + + -- Enabling, disabling, and gathering of msacc + information + + -- Delivery of 'CHANGE' messages when time offset is + monitored + + -- A call to erlang:cancel_timer() + + -- A call to erlang:read_timer() + + -- A call to erlang:statistics(io | garbage_collection + | scheduler_wall_time) + + -- A call to ets:all() + + -- A call to erlang:memory() + + -- A call to erlang:system_info({allocator | + allocator_sizes, _}) + + -- A call to erlang:trace_delivered() + + The bug existed on runtime systems running on all types + of hardware except for x86/x86_64. + + + Full runtime dependencies of erts-11.1.8: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.2.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.2.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17190 Application(s): ssl + Related Id(s): ERIERL-606 + + Avoid race when the first two upgrade server handshakes + (that is servers that use a gen_tcp socket as input to + ssl:handshake/2,3) start close to each other. Could + lead to that one of the handshakes would fail. + + + Full runtime dependencies of ssl-10.2.3: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --- tools-3.4.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-3.4.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17191 Application(s): tools + Related Id(s): ERL-1476, GH-4192, OTP-16922 + + Correct the Xref analysis undefined_functions to not + report internally generated behaviour_info/1. + + + Full runtime dependencies of tools-3.4.3: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.2.6.README.txt b/release-notes/OTP-23.2.6.README.txt new file mode 100644 index 0000000..ea9d2c2 --- /dev/null +++ b/release-notes/OTP-23.2.6.README.txt @@ -0,0 +1,66 @@ +Patch Package: OTP 23.2.6 +Git Tag: OTP-23.2.6 +Date: 2021-02-25 +Trouble Report Id: OTP-17173, OTP-17205, OTP-17220 +Seq num: ERIERL-581, ERIERL-608 +System: OTP +Release: 23 +Application: inets-7.3.2, ssh-4.10.8 +Predecessor: OTP 23.2.5 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- inets-7.3.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.3.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17205 Application(s): inets + Related Id(s): ERIERL-608 + + Solves CVE-2021-27563, that is make sure no form of + relative path can be used to go outside webservers + directory. + + + OTP-17220 Application(s): inets + + Make sure HEAD requests rejects directory links + + + Full runtime dependencies of inets-7.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.10.8 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.10.8 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17173 Application(s): ssh + Related Id(s): ERIERL-581 + + Don't timeout slow connection setups and tear-downs. A + rare crash risk for the controller is also removed. + + + Full runtime dependencies of ssh-4.10.8: 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.1.README.txt b/release-notes/OTP-23.2.7.1.README.txt new file mode 100644 index 0000000..d9aab50 --- /dev/null +++ b/release-notes/OTP-23.2.7.1.README.txt @@ -0,0 +1,51 @@ +Patch Package: OTP 23.2.7.1 +Git Tag: OTP-23.2.7.1 +Date: 2021-03-26 +Trouble Report Id: OTP-17289 +Seq num: GH-4585 +System: OTP +Release: 23 +Application: ssl-10.2.4.1 +Predecessor: OTP 23.2.7 + + Check out the git tag OTP-23.2.7.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-10.2.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-10.2.4.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17289 Application(s): ssl + Related Id(s): GH-4585 + + Backport of OTP-17282 + + Correct handling of default values for emulated socket + options and retain the order of the ssl options list to + ensure backwards compatible behavior if options should + be set more than once. + + + Full runtime dependencies of ssl-10.2.4.1: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.2.7.2.README.txt b/release-notes/OTP-23.2.7.2.README.txt new file mode 100644 index 0000000..14c92ff --- /dev/null +++ b/release-notes/OTP-23.2.7.2.README.txt @@ -0,0 +1,46 @@ +Patch Package: OTP 23.2.7.2 +Git Tag: OTP-23.2.7.2 +Date: 2021-04-08 +Trouble Report Id: OTP-17305 +Seq num: +System: OTP +Release: 23 +Application: ssl-10.2.4.2 +Predecessor: OTP 23.2.7.1 + + Check out the git tag OTP-23.2.7.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. + + --------------------------------------------------------------------- + --- ssl-10.2.4.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-10.2.4.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17305 Application(s): ssl + + Fix handling of emulated socket options, the previous + patch was incomplete, + + + Full runtime dependencies of ssl-10.2.4.2: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.2.7.3.README.txt b/release-notes/OTP-23.2.7.3.README.txt new file mode 100644 index 0000000..8dd3212 --- /dev/null +++ b/release-notes/OTP-23.2.7.3.README.txt @@ -0,0 +1,39 @@ +Patch Package: OTP 23.2.7.3 +Git Tag: OTP-23.2.7.3 +Date: 2021-05-06 +Trouble Report Id: OTP-17358 +Seq num: ERL-ERL-610 +System: OTP +Release: 23 +Application: erl_interface-4.0.2.1 +Predecessor: OTP 23.2.7.2 + + Check out the git tag OTP-23.2.7.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. + + --------------------------------------------------------------------- + --- erl_interface-4.0.2.1 ------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-4.0.2.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17358 Application(s): erl_interface + Related Id(s): ERL-ERL-610 + + Fix bug where sending of large data with + ei_send_*/ei_rpc with infinite timeout could fail when + the tcp buffer becomes full. + + Fault has existed since OTP-21. + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.2.7.4.README.txt b/release-notes/OTP-23.2.7.4.README.txt new file mode 100644 index 0000000..b4819d4 --- /dev/null +++ b/release-notes/OTP-23.2.7.4.README.txt @@ -0,0 +1,40 @@ +Patch Package: OTP 23.2.7.4 +Git Tag: OTP-23.2.7.4 +Date: 2021-05-28 +Trouble Report Id: OTP-17435 +Seq num: ERIERL-653 +System: OTP +Release: 23 +Application: ssl-10.2.4.3 +Predecessor: OTP 23.2.7.3 + + Check out the git tag OTP-23.2.7.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. + + --------------------------------------------------------------------- + --- ssl-10.2.4.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-10.2.4.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17435 Application(s): ssl + Related Id(s): ERIERL-653 + + Fix cache invalidation problem for CA certs provided by + the cacertfile option. + + + Full runtime dependencies of ssl-10.2.4.3: 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.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.2.7.README.txt b/release-notes/OTP-23.2.7.README.txt new file mode 100644 index 0000000..350cbfb --- /dev/null +++ b/release-notes/OTP-23.2.7.README.txt @@ -0,0 +1,66 @@ +Patch Package: OTP 23.2.7 +Git Tag: OTP-23.2.7 +Date: 2021-03-03 +Trouble Report Id: OTP-12960, OTP-17228 +Seq num: ERIERL-598, ERIERL-614 +System: OTP +Release: 23 +Application: kernel-7.2.1, ssl-10.2.4 +Predecessor: OTP 23.2.6 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- kernel-7.2.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-7.2.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-12960 Application(s): kernel + Related Id(s): ERIERL-598, PR-4509 + + When using the DNS resolver option + servfail_retry_timeout it did not honour the overall + call time-out in e.g inet_res:getbyname/3. This + misbehaviour has now been fixed. Also, the + servfail_retry_timeout behaviour has been improved to + only be enforced for servers that gives a servfail + answer. + + + Full runtime dependencies of kernel-7.2.1: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.2.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.2.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17228 Application(s): ssl + Related Id(s): ERIERL-614 + + Enhance logging option log_level to support none and + all, also restore backwards compatibility for log_alert + option. + + + Full runtime dependencies of ssl-10.2.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.2.README.txt b/release-notes/OTP-23.2.README.txt new file mode 100644 index 0000000..9646f5f --- /dev/null +++ b/release-notes/OTP-23.2.README.txt @@ -0,0 +1,945 @@ +Patch Package: OTP 23.2 +Git Tag: OTP-23.2 +Date: 2020-12-16 +Trouble Report Id: OTP-15126, OTP-16267, OTP-16277, OTP-16445, + OTP-16460, OTP-16529, OTP-16649, OTP-16762, + OTP-16799, OTP-16819, OTP-16849, OTP-16859, + OTP-16863, OTP-16864, OTP-16869, OTP-16873, + OTP-16888, OTP-16889, OTP-16893, OTP-16894, + OTP-16899, OTP-16900, OTP-16908, OTP-16920, + OTP-16921, OTP-16922, OTP-16923, OTP-16932, + OTP-16941, OTP-16948, OTP-16954, OTP-16956, + OTP-16976, OTP-16983, OTP-16989, OTP-16990, + OTP-17008, OTP-17012, OTP-17013, OTP-17018, + OTP-17019, OTP-17022, OTP-17025, OTP-17029, + OTP-17030, OTP-17033, OTP-17034, OTP-17038, + OTP-17039, OTP-17045, OTP-17046, OTP-17047, + OTP-17054, OTP-17055, OTP-17056, OTP-17058, + OTP-17060, OTP-17061, OTP-17065, OTP-17066, + OTP-17067, OTP-17068, OTP-17069, OTP-17070, + OTP-17072 +Seq num: ERIERL-477, ERIERL-492, ERIERL-544, + ERIERL-547, ERIERL-571, ERL-1223, ERL-1337, + ERL-1339, ERL-1341, ERL-1352, ERL-1375, + ERL-1386, ERL-1400, ERL-1405, ERL-1407, + ERL-1409, ERL-1412, ERL-1417, ERL-1424, + ERL-1426, ERL-1427, ERL-1440, ERL-330 +System: OTP +Release: 23 +Application: common_test-1.19.1, compiler-7.6.6, + crypto-4.8.1, dialyzer-4.3, erl_docgen-1.0.2, + erts-11.1.4, inets-7.3.1, kernel-7.2, + megaco-3.19.4, mnesia-4.18.1, + public_key-1.9.2, snmp-5.7, ssh-4.10.6, + ssl-10.2, stdlib-3.14, syntax_tools-2.4, + tools-3.4.2, wx-1.9.2, xmerl-1.3.26 +Predecessor: OTP 23.1.5 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-16277 Application(s): ssl + + Handle extraneous certs in certificate chains as well + as chains that are incomplete but can be reconstructed + or unordered chains. The cert and certfile options will + now accept a list of certificates so that the user may + specify the chain explicitly. + + Also, the default value of the depth option has been + increased to allow longer chains by default. + + + OTP-16445 Application(s): ssl + Related Id(s): PR-2823 + + This change implements optional NSS-style keylog in + ssl:connection_information/2 for debugging purposes. + + The keylog contains various TLS secrets that can be + loaded in Wireshark to decrypt TLS packets. + + + OTP-16893 Application(s): ssl + + Add explicit session reuse option to TLS clients for + pre TLS-1.3 sessions. Also, add documentation to Users + Guide for such sessions. + + + OTP-17022 Application(s): snmp + Related Id(s): ERIERL-492 + + It is now possible to configure the agent in such a way + that the order of outgoing notifications are processed + in order in the agent. What happens after the + notification message has left the agent (been sent) is + of course still out of our control. + + + OTP-17025 Application(s): crypto + Related Id(s): ERL-1400, PR-2877 + + Fixed performance loss in HMAC when using older OpenSSL + due to mutex issues. + + A workaround is implemented to allow fallback from + using the EVP API for HMAC operations. On some + architectures this may improve the performance, + especially with old OpenSSL versions. This fallback to + low-level functions is always enabled for openssl + versions before 1.0.2. + + + OTP-17029 Application(s): crypto + + It is now possible to build with crypto and openssl + gprof-enabled and statically link them into the VM. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-16460 Application(s): stdlib + + Improved the API and documentation of the uri_string + module. + + Added a new chapter to the Users Guide about Uniform + Resource Identifiers and their handling with the new + API. + + Added two new API functions: + uri_string:allowed_characters/0 and + uri_string:percent_decode/1. + + This change has been marked as potentially incompatible + as uri_string:normalize/2 used to decode + percent-encoded character triplets that corresponded to + characters not in the reserved set. After this change, + uri_string:normalize/2 will only decode those + percent-encoded triplets that correspond to characters + in the unreserved set (ALPHA / DIGIT / "-" / "." / "_" + / "~"). + + + --------------------------------------------------------------------- + --- OTP-23.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17008 Application(s): otp + Related Id(s): ERL-1407 + + Erlang/OTP would not build on macOS 11.0.1. + + + --- Improvements and New Features --- + + OTP-17067 Application(s): erts, otp + Related Id(s): PR-2907 + + Add manifest to all executables and dynamic libraries. + + + --------------------------------------------------------------------- + --- common_test-1.19.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.19.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17070 Application(s): common_test + + Add behaviour for test suites + + + Full runtime dependencies of common_test-1.19.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-7.6.6 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.6.6 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16932 Application(s): compiler + + Several minor compiler bugs have been fixed: + + Constructing a binary with a list as a size of a binary + segment could generate a BEAM file that could not be + loaded. + + When matching a binary segment of type float and + ignoring the matched out value, the match would always + succeed, even if the size was invalid or the value of + the float was NaN or some other non-numeric float + value. + + Attempting to construct an invalid external fun (e.g. + fun m:f:bad) is supposed to raise a 'badarg' exception, + but if the value was never used, no exception would be + raised. + + + OTP-17039 Application(s): compiler + Related Id(s): ERL-1426 + + Fixed multiple bugs in the validator that could cause + it to reject valid code. + + + OTP-17045 Application(s): compiler + Related Id(s): ERL-1427 + + The compiler could crash when a binary comprehension + had a generator that depended on another generator. + + + OTP-17072 Application(s): compiler + Related Id(s): ERL-1440 + + Fixed a bug in the type optimization pass that could + yield incorrect values or cause the wrong clauses to be + executed. + + + Full runtime dependencies of compiler-7.6.6: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-4.8.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.8.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16819 Application(s): crypto + Related Id(s): PR-2720 + + Build the supported curves cache in the NIF when crypto + is loaded, no matter how it is loaded. + + This prevents a possible problem with different + processes starting the crypto application concurrently. + + + OTP-17029 Application(s): crypto + + *** HIGHLIGHT *** + + It is now possible to build with crypto and openssl + gprof-enabled and statically link them into the VM. + + + --- Improvements and New Features --- + + OTP-17025 Application(s): crypto + Related Id(s): ERL-1400, PR-2877 + + *** HIGHLIGHT *** + + Fixed performance loss in HMAC when using older OpenSSL + due to mutex issues. + + A workaround is implemented to allow fallback from + using the EVP API for HMAC operations. On some + architectures this may improve the performance, + especially with old OpenSSL versions. This fallback to + low-level functions is always enabled for openssl + versions before 1.0.2. + + + Full runtime dependencies of crypto-4.8.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- dialyzer-4.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-4.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17068 Application(s): dialyzer + Related Id(s): ERL-1223 + + Clarify warning option -Wunmatched_returns in + dialyzer(3). + + + Full runtime dependencies of dialyzer-4.3: compiler-7.0, erts-9.0, + hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- erl_docgen-1.0.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-1.0.2 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17013 Application(s): erl_docgen + + Fix links in titles to github and anchors to work. + + + OTP-17065 Application(s): erl_docgen + Related Id(s): ERL-1386 + + Fix some typing errors on variable names in + documentation examples. + + + Full runtime dependencies of erl_docgen-1.0.2: edoc-0.7.13, erts-9.0, + stdlib-3.4, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erts-11.1.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.1.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16859 Application(s): erts + + Fixed bug which could cause VM crash when a NIF is + loaded at the same time as the Erlang implementation of + the NIF is called. Bug exists since OTP 23.0. + + + OTP-16863 Application(s): erts + Related Id(s): ERL-1352 + + Fixed enif_make_map_* functions in debug build when + given environment from enif_alloc_env. + + + OTP-16864 Application(s): erts + + Fixed broken configuration option --disable-pie. + + + OTP-16869 Application(s): erts + Related Id(s): ERL-1337 + + Fixed rare distribution bug in race between received + signal (link/monitor/spawn_request/spawn_reply) and + disconnection. Symptom: VM crash. Since: OTP 21.0. + + + OTP-16888 Application(s): erts + + Fixed a performance issue when extremely many items + were stored in the process dictionary. (Fixing this bug + also eliminates a compiler warning emitted by the + latest version of Clang.) + + + OTP-16894 Application(s): erts + + Remove -ftree-copyrename from flags passed to compiler + when building erts. The flag is not used by modern + gcc's and is not supported by clang. + + + OTP-16899 Application(s): erts + + Modules using complicated nested binary comprehensions + could fail to load. + + + OTP-16948 Application(s): erts + Related Id(s): PR-2792 + + Fixed a race in file:read_file/1 were an incomplete + file could be returned if another OS process swapped + the file out while reading. + + + OTP-17030 Application(s): erts + + The call list_to_integer("10", true) would return 4 + instead of raising an exception. Certain other atoms + would also be interpreted as a number base. + + + OTP-17055 Application(s): erts + Related Id(s): ERL-1417 + + On macOS 11 (Big Sur), erl would not start if the + maximum number of file descriptors were unlimited + (ulimit -n unlimited). + + + --- Improvements and New Features --- + + OTP-17067 Application(s): erts, otp + Related Id(s): PR-2907 + + Add manifest to all executables and dynamic libraries. + + + Full runtime dependencies of erts-11.1.4: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.3.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.3.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16873 Application(s): inets + Related Id(s): ERL-330 + + Fix an issue about HTML-escaped filename in inets. + + + Full runtime dependencies of inets-7.3.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-7.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-7.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16976 Application(s): kernel + Related Id(s): PR-2807 + + The apply call's in logger.hrl are now called with + erlang prefix to avoid clashed with local apply/3 + functions. + + + OTP-17034 Application(s): kernel + Related Id(s): PR-2866 + + Fix memory leak in pg. + + + OTP-17038 Application(s): kernel + + Fix crash in logger_proxy due to stray gen_server:call + replies not being handled. The stray replies come when + logger is under heavy load and the flow control + mechanism is reaching its limit. + + + OTP-17054 Application(s): kernel + Related Id(s): ERL-1424 + + Fixed a bug in erl_epmd:names() that caused it to + return the illegal return value noport instead of + {error, Reason} where Reason is the actual error + reason. This bug also propagated to net_adm:names(). + + This bug was introduced in kernel version 7.1 (OTP + 23.1). + + + --- Improvements and New Features --- + + OTP-16954 Application(s): kernel + Related Id(s): ERIERL-544 + + Add export of some resolver documented types. + + + OTP-16956 Application(s): kernel + Related Id(s): ERIERL-547 + + Add configurable retry timeout for resolver lookups. + + + OTP-17058 Application(s): kernel + Related Id(s): PR-2887 + + gen_server:multi_call() has been optimized in the + special case of only calling the local node with + timeout set to infinity. + + + Full runtime dependencies of kernel-7.2: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-3.19.4 --------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.19.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17012 Application(s): megaco + Related Id(s): ERL-1405 + + Empty statistics descriptor (now) allowed in both + encode and decode for version 3. + + + Full runtime dependencies of megaco-3.19.4: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.18.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.18.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17066 Application(s): mnesia + Related Id(s): PR-2889 + + Avoid potential performance issue, if the input queue + to mnesia_tm is long. + + + Full runtime dependencies of mnesia-4.18.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- public_key-1.9.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The public_key-1.9.2 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17069 Application(s): public_key + + Corrected dialyzer spec for pkix_path_validation/3 + + + Full runtime dependencies of public_key-1.9.2: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- snmp-5.7 -------------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.7 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16920 Application(s): snmp + Related Id(s): OTP-16649 + + If an attempt was made to send a v1 trap on a IPv6 + transport this could cause a master agent crash (if the + agent was *not* multi-threaded). + + + OTP-17056 Application(s): snmp + Related Id(s): OTP-17049 + + The deprecation info for a couple of the deprecated MIB + compiler functions where incorrect. Referred to + functions in the 'snmpa' module instead of 'snmpc'. + + + --- Improvements and New Features --- + + OTP-16649 Application(s): snmp + + Make it possible for the agent to configure separate + transports (sockets) for request-responder and + trap-sender. + + + OTP-16989 Application(s): snmp + Related Id(s): ERIERL-544 + + The mib server cache handling has been improved. First, + the default gclimit has been changed from 100 to + infinity (to ensure the size is as small as possible). + Also, the method of removing old elements has been + optimized. + + + OTP-17022 Application(s): snmp + Related Id(s): ERIERL-492 + + *** HIGHLIGHT *** + + It is now possible to configure the agent in such a way + that the order of outgoing notifications are processed + in order in the agent. What happens after the + notification message has left the agent (been sent) is + of course still out of our control. + + + OTP-17033 Application(s): snmp + + Improve handling of the udp_error message. Basically an + improved error/warning message. + + + Full runtime dependencies of snmp-5.7: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.10.6 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.10.6 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16799 Application(s): ssh + + Fixed problems in the ssh cli/shell handling. Most + important are: + + 1) the ssh:shell function did sometimes cause the input + to be echoed twice, + + 2) the ssh:shell function didn't transfer the LANG and + LC_ALL shell variables to the connected server which + sometimes made Unicode handling erroneous, + + 3) Unicode was not always transferred correctly to and + from the peer. + + + OTP-16900 Application(s): ssh + + The SSH protocol message SSH_MSG_DISCONNECT was + sometimes sent instead of SSH_MSG_CHANNEL_FAILURE + + + OTP-16908 Application(s): ssh + Related Id(s): PR-2753 + + The ssh_cli module now always sends the exit-status to + connected clients so they can use that to check for + successful command execution. + + + --- Improvements and New Features --- + + OTP-16889 Application(s): ssh + + A new option pk_check_user enables checking of the + client's user name in the server when doing public key + authentication. + + + Full runtime dependencies of ssh-4.10.6: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-10.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-15126 Application(s): ssl + Related Id(s): ERL-1375 + + SSL's Erlang Distribution Protocol modules + inet_tls_dist and inet6_tls_dist lacked a callback + function, so the start flag "-dist_listen false" did + not work, which has now been fixed. + + + OTP-16267 Application(s): ssl + Related Id(s): ERIERL-477, ERIERL-571 + + Correct OpenSSL names for newer cipher suites using DHE + in their name that accidentally got the wrong value + when fixing other older names using EDH instead. + + + OTP-16849 Application(s): ssl + Related Id(s): ERL-1339 + + This change improves the handling of DTLS listening + dockets, making it possible to open multiple listeners + on the same port with different IP addresses. + + + OTP-16921 Application(s): ssl + + Fix a bug that causes cross-build failure. + + This change excludes the ssl.d dependency file from the + source tarballs. + + + OTP-16923 Application(s): ssl + Related Id(s): ERL-1341, PR-2786 + + This change fixes ssl:peername/1 when called on a DTLS + client socket. + + + OTP-17018 Application(s): ssl + Related Id(s): ERL-1409 + + Retain emulation of active once on a closed socket to + behave as before 23.1 + + + OTP-17019 Application(s): ssl + Related Id(s): ERL-1412 + + Corrected server session cache entry deletion pre + TLS-1.3. May increase session reuse. + + + --- Improvements and New Features --- + + OTP-16277 Application(s): ssl + + *** HIGHLIGHT *** + + Handle extraneous certs in certificate chains as well + as chains that are incomplete but can be reconstructed + or unordered chains. The cert and certfile options will + now accept a list of certificates so that the user may + specify the chain explicitly. + + Also, the default value of the depth option has been + increased to allow longer chains by default. + + + OTP-16445 Application(s): ssl + Related Id(s): PR-2823 + + *** HIGHLIGHT *** + + This change implements optional NSS-style keylog in + ssl:connection_information/2 for debugging purposes. + + The keylog contains various TLS secrets that can be + loaded in Wireshark to decrypt TLS packets. + + + OTP-16529 Application(s): ssl + + Use new gen_statem feature of changing callback mode to + improve code maintainability. + + + OTP-16762 Application(s): ssl + + The handling of Service Name Indication has been + aligned with RFC8446. + + + OTP-16893 Application(s): ssl + + *** HIGHLIGHT *** + + Add explicit session reuse option to TLS clients for + pre TLS-1.3 sessions. Also, add documentation to Users + Guide for such sessions. + + + Full runtime dependencies of ssl-10.2: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.14 ----------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.14 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16941 Application(s): stdlib + + This change fixes the handling of deep lists in the + path component when using uri_string:recompose/1. + + + OTP-17047 Application(s): stdlib + + Fix shell_docs to clear shell decorations + (bold/underline) when paginating output. + + Fix various small renderings issues when integrating + shell_docs with edoc. + + + --- Improvements and New Features --- + + OTP-16460 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + Improved the API and documentation of the uri_string + module. + + Added a new chapter to the Users Guide about Uniform + Resource Identifiers and their handling with the new + API. + + Added two new API functions: + uri_string:allowed_characters/0 and + uri_string:percent_decode/1. + + This change has been marked as potentially incompatible + as uri_string:normalize/2 used to decode + percent-encoded character triplets that corresponded to + characters not in the reserved set. After this change, + uri_string:normalize/2 will only decode those + percent-encoded triplets that correspond to characters + in the unreserved set (ALPHA / DIGIT / "-" / "." / "_" + / "~"). + + + OTP-16990 Application(s): stdlib + + The shell_docs module has been expanded with the + possibility to configure unicode, ansi and column size + for the rendered text. + + + Full runtime dependencies of stdlib-3.14: compiler-5.0, crypto-3.3, + erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.4 ------------------------------------------------ + --------------------------------------------------------------------- + + The syntax_tools-2.4 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17046 Application(s): syntax_tools + + In the syntax_tools application, the igor module and + all functions in erl_tidy except file/2 have been + deprecated. + + + Full runtime dependencies of syntax_tools-2.4: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tools-3.4.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-3.4.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16922 Application(s): tools + Related Id(s): PR-2752 + + Correct the Xref analysis exports_not_used to not + report internally generated behaviour_info/1. + + + Full runtime dependencies of tools-3.4.2: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-1.9.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.9.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16983 Application(s): wx + Related Id(s): PR-2743 + + Add popup menu callback to wxTaskBarIcon:new/1. + + + Full runtime dependencies of wx-1.9.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.26 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.26 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17060 Application(s): xmerl + + Corrected namespace and expanded name in the old dom + backend example module. + + + OTP-17061 Application(s): xmerl + + Corrected a bug that in some cases didn't allow + unresolved references when skip_external_dtd option + used. + + + Full runtime dependencies of xmerl-1.3.26: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.1.README.txt b/release-notes/OTP-23.3.1.README.txt new file mode 100644 index 0000000..a3c8d96 --- /dev/null +++ b/release-notes/OTP-23.3.1.README.txt @@ -0,0 +1,47 @@ +Patch Package: OTP 23.3.1 +Git Tag: OTP-23.3.1 +Date: 2021-03-30 +Trouble Report Id: OTP-17279 +Seq num: +System: OTP +Release: 23 +Application: ssh-4.11.1 +Predecessor: OTP 23.3 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- ssh-4.11.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.11.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17279 Application(s): ssh + + The idle_time timer was not cancelled when a channel + was opened within the timeout time on an empty + connection that have had channels previously. + + + Full runtime dependencies of ssh-4.11.1: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.2.README.txt b/release-notes/OTP-23.3.2.README.txt new file mode 100644 index 0000000..df380c3 --- /dev/null +++ b/release-notes/OTP-23.3.2.README.txt @@ -0,0 +1,249 @@ +Patch Package: OTP 23.3.2 +Git Tag: OTP-23.3.2 +Date: 2021-04-27 +Trouble Report Id: OTP-17227, OTP-17291, OTP-17295, OTP-17296, + OTP-17297, OTP-17298, OTP-17299, OTP-17306, + OTP-17307, OTP-17308, OTP-17328, OTP-17348, + OTP-17349 +Seq num: ERIERL-506, ERIERL-607, ERIERL-631, + ERIERL-641, GH-4514, GH-4682, GH-4687, + GH-4710 +System: OTP +Release: 23 +Application: asn1-5.0.15, common_test-1.20.1, erts-11.2.1, + ssl-10.3.1, stdlib-3.14.2, xmerl-1.3.27 +Predecessor: OTP 23.3.1 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- asn1-5.0.15 ----------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.15 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17227 Application(s): asn1 + Related Id(s): GH-4514 + + A parameterized type with a SEQUENCE with extension + ("...") made the compiler backend to crash. + + + OTP-17306 Application(s): asn1 + Related Id(s): ERIERL-506 + + For JER encoding rules an INTEGER value outside the + declared range is now reported as error during decode. + + + --- Improvements and New Features --- + + OTP-17297 Application(s): asn1 + Related Id(s): ERIERL-607 + + For the JER encoding rules, the declared order of the + fields in a SEQUENCE is now maintained in the resulting + JSON object. Previously a map was used which caused an + undefined order of the fields which was not friendly + for debugging. + + + Full runtime dependencies of asn1-5.0.15: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.20.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.20.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17328 Application(s): common_test + Related Id(s): ERIERL-631 + + A race condition could cause ct_netconfc:open/* to + return a disfunctional handle, resulting in errors when + invoking other api functions on it, and making it + impossible to establish a new connection to the server + in question. Similar symptoms were possible with open/* + in modules ct_ssh and ct_telnet. + + Internal messages from common_test processes could be + left in the caller's message queue after a timeout when + invoking call/* in modules ct_netconfc and ct_ssh. An + internal process used by module ct_telnet could leak + memory due to stray messages. + + Calls to ct_telnet:open/* and ct_telnet:get_data/1 + could hang indefinitely if the TCP connection to the + server was lost. + + + Full runtime dependencies of common_test-1.20.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 + + + --------------------------------------------------------------------- + --- erts-11.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17291 Application(s): erts + + The following signals could pass before other signals + from the same sender to the same receiver. That is, + these signals could arrive too early. + + -- garbage-collect request. Sent from one process to + another using one of the garbage_collect() BIFs. + + -- check-process-code request. Sent from one process to + another using one of the check_process_code() BIFs. + + -- is-process-alive reply. Sent as a response to a + process calling the is_process_alive() BIF. + + -- process-info reply. Sent as a response to a process + calling one of the process_info() BIFs. + + -- port-command reply. Sent as a response to a process + calling one of the port_command() BIFs. + + -- port-connect reply. Sent as a response to a process + calling the port_connect() BIF. + + -- port-close reply. Sent as a response to a process + calling the port_close() BIF. + + -- port-control reply. Sent as a response to a process + calling the port_control() BIF. + + -- port-call reply. Sent as a response to a process + calling the port_call() BIF. + + -- port-info reply. Sent as a response to a process + calling one of the port_info() BIFs. + + + OTP-17298 Application(s): erts + + Fix bug in persistent_term:get/0 and info/0 that could + cause VM crash in rare cases. Bug exists since OTP + 23.0. + + + OTP-17299 Application(s): erts + Related Id(s): GH-4710 + + Fixed a bug in zlib where decompression would crash + with data_error on some valid inputs. + + + OTP-17307 Application(s): erts + + A garbage collection of a literal area missed messages + that entirely consisted of a term in a literal area. + This could in turn lead to a crash of the runtime + system. + + + OTP-17349 Application(s): erts + + A call to process_flag(message_queue_data, off_heap) + could cause a crash of the runtime system when + sequential tracing was enabled. + + + Full runtime dependencies of erts-11.2.1: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.3.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.3.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17296 Application(s): ssl + Related Id(s): GH-4682 + + Retain backwards compatible behavior of verify_fun when + handling incomplete chains that are not verifiable. + + + OTP-17348 Application(s): ssl + Related Id(s): ERIERL-641 + + Avoid server session handler crash, this will increase + session ruse opportunities. + + + Full runtime dependencies of ssl-10.3.1: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.14.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.14.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17295 Application(s): stdlib + Related Id(s): GH-4687 + + Dictionaries that have become zipped by the zip module + did not get executable permission (for the file owner) + which makes the files inside the dictionary + inaccessible. This is fixed by giving dictionaries + inside a zip archive XRW permission. + + + Full runtime dependencies of stdlib-3.14.2: compiler-5.0, crypto-3.3, + erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.27 ---------------------------------------------------- + --------------------------------------------------------------------- + + The xmerl-1.3.27 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17308 Application(s): xmerl + + Fixed the bug that Xmerl SAX parser couldn't handle + files ending with a ^M. + + + Full runtime dependencies of xmerl-1.3.27: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.3.README.txt b/release-notes/OTP-23.3.3.README.txt new file mode 100644 index 0000000..7b411fd --- /dev/null +++ b/release-notes/OTP-23.3.3.README.txt @@ -0,0 +1,144 @@ +Patch Package: OTP 23.3.3 +Git Tag: OTP-23.3.3 +Date: 2021-05-06 +Trouble Report Id: OTP-16607, OTP-16930, OTP-17347, OTP-17357, + OTP-17358, OTP-17361 +Seq num: ERL-1371, ERL-1439, ERL-ERL-610, GH-3480, + GH-4396, GH-4774 +System: OTP +Release: 23 +Application: common_test-1.20.2, compiler-7.6.8, + erl_interface-4.0.3, kernel-7.3.1, + runtime_tools-1.16.1 +Predecessor: OTP 23.3.2 + + Check out the git tag OTP-23.3.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. + + --------------------------------------------------------------------- + --- common_test-1.20.2 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.20.2 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17347 Application(s): common_test + Related Id(s): ERL-1439, GH-3480 + + Before this change Config leaked between test groups in + case of a subgroup was skipped (GH-3480). + + + Full runtime dependencies of common_test-1.20.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 + + + --------------------------------------------------------------------- + --- compiler-7.6.8 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.6.8 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17357 Application(s): compiler + Related Id(s): GH-4774 + + Fixed a bug in the validator that could cause it to + reject valid code. + + + Full runtime dependencies of compiler-7.6.8: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erl_interface-4.0.3 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-4.0.3 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17358 Application(s): erl_interface + Related Id(s): ERL-ERL-610 + + Fix bug where sending of large data with + ei_send_*/ei_rpc with infinite timeout could fail when + the tcp buffer becomes full. + + Fault has existed since OTP-21. + + + --- 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. + + + --------------------------------------------------------------------- + --- kernel-7.3.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-7.3.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17361 Application(s): kernel + + A bug in the Erlang DNS resolver has been fixed, where + it could be made to bring down the kernel supervisor + and thereby the whole node, when getting an incorrect + (IN A reply to an IN CNAME query) reply from the DNS + server and used the reply record's value without + verifying its type. + + + Full runtime dependencies of kernel-7.3.1: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- runtime_tools-1.16.1 -------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.16.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16930 Application(s): runtime_tools + Related Id(s): ERL-1371, GH-4396 + + The function dbg:n/1 used a local fun to set up a + tracer on a remote node. This works fine as long as the + remote node is running exactly the same version of + Erlang/OTP but does not work at all otherwise. This is + fixed by exporting the relevant function and by calling + this function on the remote node to set up remote + tracing. + + + Full runtime dependencies of runtime_tools-1.16.1: erts-11.0, + kernel-7.0, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.1.README.txt b/release-notes/OTP-23.3.4.1.README.txt new file mode 100644 index 0000000..dd7675d --- /dev/null +++ b/release-notes/OTP-23.3.4.1.README.txt @@ -0,0 +1,240 @@ +Patch Package: OTP 23.3.4.1 +Git Tag: OTP-23.3.4.1 +Date: 2021-05-20 +Trouble Report Id: OTP-16607, OTP-17390, OTP-17391, OTP-17398, + OTP-17420 +Seq num: ERIERL-648, GH-4810, GH-4821 +System: OTP +Release: 23 +Application: common_test-1.20.2.1, crypto-4.9.0.1, + erl_interface-4.0.3.1, erts-11.2.2.1, + megaco-3.19.5.1, odbc-2.13.3.1, snmp-5.8.0.1, + ssh-4.11.1.1, wx-1.9.3.1 +Predecessor: OTP 23.3.4 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- OTP-23.3.4.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17398 Application(s): otp + Related Id(s): GH-4821 + + The by autoconf generated configure scripts are now + commited into the git repository and will thus always + be available. This ensures that the scripts have been + generated by an autoconf version that has been tested + and by this preventing misconfiguration of OTP. The + ./otp_build autoconf build step is therefore no longer + necessary and will if executed only print a message and + then exit successfully. Currently the configure scripts + will be generated using the by Debian patched autoconf + version 2.69-11. + + + --------------------------------------------------------------------- + --- common_test-1.20.2.1 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.20.2.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of common_test-1.20.2.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 + + + --------------------------------------------------------------------- + --- crypto-4.9.0.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.9.0.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17391 Application(s): crypto + Related Id(s): GH-4810 + + Removed a risk for coredump. + + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of crypto-4.9.0.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erl_interface-4.0.3.1 ------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-4.0.3.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + --- 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-11.2.2.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of erts-11.2.2.1: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-3.19.5.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-3.19.5.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of megaco-3.19.5.1: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- odbc-2.13.3.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.13.3.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of odbc-2.13.3.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- snmp-5.8.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.8.0.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of snmp-5.8.0.1: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.11.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.11.1.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17390 Application(s): ssh + Related Id(s): ERIERL-648 + + Fixed that a slow start (>30s) of a client subsystem + could cause a log entry with the password. + + + Full runtime dependencies of ssh-4.11.1.1: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- wx-1.9.3.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The wx-1.9.3.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of wx-1.9.3.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.10.README.txt b/release-notes/OTP-23.3.4.10.README.txt new file mode 100644 index 0000000..2f7220f --- /dev/null +++ b/release-notes/OTP-23.3.4.10.README.txt @@ -0,0 +1,104 @@ +Patch Package: OTP 23.3.4.10 +Git Tag: OTP-23.3.4.10 +Date: 2021-12-21 +Trouble Report Id: OTP-17796, OTP-17827 +Seq num: ERIERL-729, GH-5527 +System: OTP +Release: 23 +Application: erts-11.2.2.9 +Predecessor: OTP 23.3.4.9 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-17796 Application(s): erts + Related Id(s): ERIERL-729, PR-5473 + + Responsiveness of processes executing on normal or low + priority could suffer due to code purging or literal + area removal on systems with a huge amount of + processes. This since during these operations all + processes on the system were scheduled for execution at + once. + + This problem has been fixed by introducing a limit on + outstanding purge and copy literal requests in the + system. By default this limit is set to twice the + amount of schedulers on the system. This will ensure + that schedulers will have enough work scheduled to + perform these operations as quickly as possible at the + same time as other work will be interleaved to a much + higher degree. Performance of these operations will + however be somewhat degraded due to the overhead of + enforcing this limit compared to when using a very + large limit. + + This limit can be set by passing the +zosrl command + line argument to erl, or by calling + erlang:system_flag(outstanding_system_requests_limit, + NewLimit). + + + --------------------------------------------------------------------- + --- erts-11.2.2.9 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.9 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17827 Application(s): erts + Related Id(s): GH-5527 + + Fixed a memory leak in file:read_file_info/2 and + file:read_file/1 on Windows. + + + --- Improvements and New Features --- + + OTP-17796 Application(s): erts + Related Id(s): ERIERL-729, PR-5473 + + *** HIGHLIGHT *** + + Responsiveness of processes executing on normal or low + priority could suffer due to code purging or literal + area removal on systems with a huge amount of + processes. This since during these operations all + processes on the system were scheduled for execution at + once. + + This problem has been fixed by introducing a limit on + outstanding purge and copy literal requests in the + system. By default this limit is set to twice the + amount of schedulers on the system. This will ensure + that schedulers will have enough work scheduled to + perform these operations as quickly as possible at the + same time as other work will be interleaved to a much + higher degree. Performance of these operations will + however be somewhat degraded due to the overhead of + enforcing this limit compared to when using a very + large limit. + + This limit can be set by passing the +zosrl command + line argument to erl, or by calling + erlang:system_flag(outstanding_system_requests_limit, + NewLimit). + + + Full runtime dependencies of erts-11.2.2.9: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.11.README.txt b/release-notes/OTP-23.3.4.11.README.txt new file mode 100644 index 0000000..cc52598 --- /dev/null +++ b/release-notes/OTP-23.3.4.11.README.txt @@ -0,0 +1,61 @@ +Patch Package: OTP 23.3.4.11 +Git Tag: OTP-23.3.4.11 +Date: 2022-01-26 +Trouble Report Id: OTP-17835, OTP-17871 +Seq num: ERIERL-721 +System: OTP +Release: 23 +Application: erts-11.2.2.10, ssh-4.11.1.5 +Predecessor: OTP 23.3.4.10 + + Check out the git tag OTP-23.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-11.2.2.10 -------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.10 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17871 Application(s): erts + Related Id(s): PR-5612 + + Fix GC emulator crash when spawn_request was used when + message tracing was enabled. + + + Full runtime dependencies of erts-11.2.2.10: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.11.1.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.11.1.5 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17835 Application(s): ssh + Related Id(s): ERIERL-721 + + Fixed problem with blocked server after multiple + restarts. Applies to daemons with options + {parallel_login,true} and also {max_sessions, int()>0}. + + + Full runtime dependencies of ssh-4.11.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.3.4.12.README.txt b/release-notes/OTP-23.3.4.12.README.txt new file mode 100644 index 0000000..f7be635 --- /dev/null +++ b/release-notes/OTP-23.3.4.12.README.txt @@ -0,0 +1,244 @@ +Patch Package: OTP 23.3.4.12 +Git Tag: OTP-23.3.4.12 +Date: 2022-03-24 +Trouble Report Id: OTP-17843, OTP-17887, OTP-17888, OTP-17904, + OTP-17905, OTP-17979 +Seq num: ERIERL-732, ERIERL-750, ERIERL-757, + ERIERL-780 +System: OTP +Release: 23 +Application: common_test-1.20.2.3, erts-11.2.2.11, + jinterface-1.11.1.1, kernel-7.3.1.5 +Predecessor: OTP 23.3.4.11 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + --------------------------------------------------------------------- + --- common_test-1.20.2.3 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.20.2.3 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17888 Application(s): common_test + + OTP internal test fix. + + + Full runtime dependencies of common_test-1.20.2.3: 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-11.2.2.11 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-11.2.2.11 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-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + *** HIGHLIGHT *** + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + OTP-17904 Application(s): erts + Related Id(s): ERIERL-757 + + Fix memory leak when tracing on running on a process + that only handle system tasks or non-message signals + (for example process_info requests). + + + Full runtime dependencies of erts-11.2.2.11: kernel-7.3.1.5, + sasl-3.3, stdlib-3.13 + + + --------------------------------------------------------------------- + --- jinterface-1.11.1.1 --------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.11.1.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17887 Application(s): jinterface + Related Id(s): ERIERL-750, PR-5640 + + Fix bug in OtpOutputStream.write_pid/4 and write_ref/3 + causing faulty encodig. Bug exists since OTP 23.0. + + + --------------------------------------------------------------------- + --- kernel-7.3.1.5 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-7.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: + -- erts-11.2.2.11 (first satisfied in OTP 23.3.4.12) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + *** HIGHLIGHT *** + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + OTP-17979 Application(s): kernel + Related Id(s): ERIERL-780 + + Fix failed accepted connection setup after previous + established connection from same node closed down + silently. + + + --- Improvements and New Features --- + + OTP-17905 Application(s): kernel + Related Id(s): ERIERL-732, PR-5740 + + A net_tickintensity kernel parameter has been + introduced. It can be used to control the amount of + ticks during a net_ticktime period. + + A new net_kernel:start/2 function has also been + introduced in order to make it easier to add new + options. The use of net_kernel:start/1 has been + deprecated. + + + Full runtime dependencies of kernel-7.3.1.5: erts-11.2.2.11, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.13.README.txt b/release-notes/OTP-23.3.4.13.README.txt new file mode 100644 index 0000000..a31a6e5 --- /dev/null +++ b/release-notes/OTP-23.3.4.13.README.txt @@ -0,0 +1,49 @@ +Patch Package: OTP 23.3.4.13 +Git Tag: OTP-23.3.4.13 +Date: 2022-03-29 +Trouble Report Id: OTP-17998 +Seq num: GH-5554 +System: OTP +Release: 23 +Application: erts-11.2.2.12 +Predecessor: OTP 23.3.4.12 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- erts-11.2.2.12 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-11.2.2.12 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-17998 Application(s): erts + Related Id(s): GH-5554, PR-5825 + + Fix Erlang monotonic time on MacOS. Previously used OS + monotonic time primitive on MacOS is buggy and will not + be used anymore. It has been replaced with usage of + another OS monotonic time primitive that does not + appear to be buggy. + + + Full runtime dependencies of erts-11.2.2.12: kernel-7.3.1.5, + sasl-3.3, stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.14.README.txt b/release-notes/OTP-23.3.4.14.README.txt new file mode 100644 index 0000000..2c4fb94 --- /dev/null +++ b/release-notes/OTP-23.3.4.14.README.txt @@ -0,0 +1,112 @@ +Patch Package: OTP 23.3.4.14 +Git Tag: OTP-23.3.4.14 +Date: 2022-05-03 +Trouble Report Id: OTP-17970, OTP-18027, OTP-18065, OTP-18075, + OTP-18076, OTP-18077, OTP-18082 +Seq num: ERIERL-802, GH-5876, GH-5908 +System: OTP +Release: 23 +Application: compiler-7.6.9.2, erts-11.2.2.13 +Predecessor: OTP 23.3.4.13 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- compiler-7.6.9.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-7.6.9.2 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18082 Application(s): compiler + + In rare circumstances, the compiler would mistakenly + assume that a call to setelement/3 would always fail + and remove all code following the call. + + + Full runtime dependencies of compiler-7.6.9.2: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erts-11.2.2.13 -------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-11.2.2.13 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-17970 Application(s): erts + Related Id(s): PR-5762 + + Let EPMD tolerate failure when binding to IPv4/IPv6 + loopback intefaces in addition to user-supplied + addresses via ERL_EPMD_ADDRESS or the -address option. + This can happen, for example, if the host system has + ipv6 disabled via the disable_ipv6 sysctl. + + + OTP-18027 Application(s): erts + + Fixed a rare bug in binary_to_term/1, + enif_make_map_from_arrays, erl_drv_send_term, and + Erlang distribution that could crash the emulator. + + + OTP-18065 Application(s): erts + Related Id(s): GH-5908 + + Fixed a rare race in persistent_term:get/1,2 that could + cause it to return the value of another key. + + + OTP-18075 Application(s): erts + Related Id(s): PR-5927 + + Fix bug where the process message queue was left in an + inconsistent state when changing from on_heap to + off_heap message queue data causing the GC to segfault. + + + OTP-18076 Application(s): erts + Related Id(s): ERIERL-802, PR-5905 + + Fix functions that convert universal to localtime (such + as erlang:localtime/0 and + erlang:universaltime_to_localtime/1) to fetch the + correct localtime if it is changed after the start of + the VM. + + + OTP-18077 Application(s): erts + Related Id(s): GH-5876, PR-5892 + + Fix memory leak when a process doing a distributed + fragmented send is sent an exit signal. Before this fix + the receiving node would be left with an incomplete + message that would remain until the nodes were + disconnected. The bug has existed since Erlang/OTP 21. + + + Full runtime dependencies of erts-11.2.2.13: kernel-7.3.1.5, + sasl-3.3, stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + 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.2.README.txt b/release-notes/OTP-23.3.4.2.README.txt new file mode 100644 index 0000000..160087c --- /dev/null +++ b/release-notes/OTP-23.3.4.2.README.txt @@ -0,0 +1,179 @@ +Patch Package: OTP 23.3.4.2 +Git Tag: OTP-23.3.4.2 +Date: 2021-05-31 +Trouble Report Id: OTP-16033, OTP-17427, OTP-17435, OTP-17437, + OTP-17442, OTP-17448, OTP-17459, OTP-17462 +Seq num: ERIERL-329, ERIERL-653, ERL-1414, ERL-885, + GH-3923, GH-4448, GH-4774, GH-4824, GH-4842, + GH-4861, GH-4885, GH-4898 +System: OTP +Release: 23 +Application: compiler-7.6.9.1, crypto-4.9.0.2, + erts-11.2.2.2, kernel-7.3.1.1, ssh-4.11.1.2, + ssl-10.3.1.1, stdlib-3.14.2.1 +Predecessor: OTP 23.3.4.1 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- compiler-7.6.9.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The compiler-7.6.9.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17437 Application(s): compiler + Related Id(s): GH-4774, OTP-17357 + + Fixed a bug in the validation pass that could cause it + to reject valid code. + + + Full runtime dependencies of compiler-7.6.9.1: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-4.9.0.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-4.9.0.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17442 Application(s): crypto + Related Id(s): GH-4861 + + EC keys are now zero-padded to the expected length if + needed. + + + Full runtime dependencies of crypto-4.9.0.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-11.2.2.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17448 Application(s): erts + Related Id(s): GH-4898, OTP-17291, PR-4903 + + A call to port_command() could cause a scheduler to end + up in an eternal loop if the port was busy and the + calling process had incoming signals at the time of the + call. This bug was introduced in OTP 23.3.2 (ERTS + version 11.2.1), OTP 22.3.4.18 (ERTS version + 10.7.2.10), and OTP 21.3.8.23 (ERTS version 10.3.5.18). + + + OTP-17462 Application(s): erts + Related Id(s): GH-4885, OTP-17127, PR-4914 + + Dirty execution of a process in combination with an + unlink signal from a port to the process could cause + the signal queue of the process to enter into an + inconsistent state. The result of the inconsistency + typically caused a crash of the runtime system. This + bug was introduced in OTP 23.3 (ERTS version 11.2). + + + Full runtime dependencies of erts-11.2.2.2: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-7.3.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-7.3.1.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16033 Application(s): kernel + Related Id(s): ERIERL-329, ERL-1414, ERL-885, GH-3923, + GH-4448 + + Fix a race condition in Global. + + + Full runtime dependencies of kernel-7.3.1.1: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.11.1.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.11.1.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17427 Application(s): ssh + + Avoid an extra blank line in the ssh known_hosts file + + + Full runtime dependencies of ssh-4.11.1.2: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.3.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-10.3.1.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17435 Application(s): ssl + Related Id(s): ERIERL-653 + + Fix cache invalidation problem for CA certs provided by + the cacertfile option. + + + Full runtime dependencies of ssl-10.3.1.1: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.14.2.1 ------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.14.2.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17459 Application(s): stdlib + Related Id(s): GH-4824, GH-4842 + + Fix a bug that could cause a loop when formatting terms + using the control sequences p or P and limiting the + output with the option chars_limit. + + + Full runtime dependencies of stdlib-3.14.2.1: compiler-5.0, + crypto-3.3, erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + 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-23.3.4.3.README.txt b/release-notes/OTP-23.3.4.3.README.txt new file mode 100644 index 0000000..639a021 --- /dev/null +++ b/release-notes/OTP-23.3.4.3.README.txt @@ -0,0 +1,104 @@ +Patch Package: OTP 23.3.4.3 +Git Tag: OTP-23.3.4.3 +Date: 2021-06-09 +Trouble Report Id: OTP-17450, OTP-17468, OTP-17472, OTP-17473, + OTP-17476 +Seq num: ERIERL-655, ERIERL-656, GH-4838, GH-4931 +System: OTP +Release: 23 +Application: erts-11.2.2.3, kernel-7.3.1.2, ssh-4.11.1.3 +Predecessor: OTP 23.3.4.2 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- erts-11.2.2.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17472 Application(s): erts + Related Id(s): PR-4932 + + A call to erlang:cancel_timer(_, [{info, false}]) could + cause the calling process to block forever in the call. + Note that only the synchronous version of the call + (that is, the async option is false) in combination + with the info option set to false was effected by this + bug. + + + Full runtime dependencies of erts-11.2.2.3: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-7.3.1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-7.3.1.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17473 Application(s): kernel + Related Id(s): GH-4838, OTP-17439 + + Handling of the "." domain as a search domain was + incorrect and caused a crash in the DNS resolver + inet_res, which has now been fixed. + + + OTP-17476 Application(s): kernel + Related Id(s): GH-4931, PR-4934 + + Fixed rare bug that could cause net_kernel process to + hang for ever. Have seen to happen with massive number + of TLS connections while remote nodes are restarting. + Bug exists since OTP-22.0. + + + Full runtime dependencies of kernel-7.3.1.2: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.11.1.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.11.1.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17468 Application(s): ssh + Related Id(s): ERIERL-656 + + Filter out sensitive data (passwords etc) from progress + reports and supervisor reports. + + + --- Improvements and New Features --- + + OTP-17450 Application(s): ssh + Related Id(s): ERIERL-655 + + The "Key exchange failed" Info Report is now more + informative. + + + Full runtime dependencies of ssh-4.11.1.3: 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.3.4.4.README.txt b/release-notes/OTP-23.3.4.4.README.txt new file mode 100644 index 0000000..0904f0e --- /dev/null +++ b/release-notes/OTP-23.3.4.4.README.txt @@ -0,0 +1,60 @@ +Patch Package: OTP 23.3.4.4 +Git Tag: OTP-23.3.4.4 +Date: 2021-06-17 +Trouble Report Id: OTP-17482, OTP-17490 +Seq num: +System: OTP +Release: 23 +Application: dialyzer-4.3.1.1, inets-7.3.2.1 +Predecessor: OTP 23.3.4.3 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- dialyzer-4.3.1.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The dialyzer-4.3.1.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17482 Application(s): dialyzer + + In rare circumstances, Dialyzer could crash analyzing + code with a list comprehension whose value was ignored. + (Thanks to Ulf Wiger for reporting this bug.) + + + Full runtime dependencies of dialyzer-4.3.1.1: compiler-7.0, + erts-9.0, hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, + wx-1.2 + + + --------------------------------------------------------------------- + --- inets-7.3.2.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.3.2.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17490 Application(s): inets + + Improved user input handling in inets/mod_esi + preventing unnecessary atom creation. + + + Full runtime dependencies of inets-7.3.2.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.5.README.txt b/release-notes/OTP-23.3.4.5.README.txt new file mode 100644 index 0000000..946e220 --- /dev/null +++ b/release-notes/OTP-23.3.4.5.README.txt @@ -0,0 +1,211 @@ +Patch Package: OTP 23.3.4.5 +Git Tag: OTP-23.3.4.5 +Date: 2021-07-22 +Trouble Report Id: OTP-17150, OTP-17475, OTP-17493, OTP-17500, + OTP-17506, OTP-17509, OTP-17513, OTP-17522, + OTP-17525, OTP-17529 +Seq num: GH-4809, GH-4877, GH-4902, GH-4958, GH-4964, + GH-5053 +System: OTP +Release: 23 +Application: asn1-5.0.15.1, common_test-1.20.2.2, + erts-11.2.2.4, public_key-1.10.0.1, + ssl-10.3.1.2, stdlib-3.14.2.2 +Predecessor: OTP 23.3.4.4 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- asn1-5.0.15.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.15.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17522 Application(s): asn1 + Related Id(s): GH-4902 + + A parameterized type with a SEQUENCE with extension + ("...") made the compiler backend to crash. The + previous fix for this in GH-4514 was not complete. + + + Full runtime dependencies of asn1-5.0.15.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.20.2.2 -------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.20.2.2 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17506 Application(s): common_test + + An incoming NETCONF notification received before a call + to ct_netconfc:create_subscription/* caused the + connection process to fail with badarg. Unexpected + notifications are now logged in the same way as other + unexpected messages. + + + --- Improvements and New Features --- + + OTP-17509 Application(s): common_test + + Add 'receiver' option to ct_netconfc + + To allow a destination for incoming NETCONF + notifications to be specified at sessions creation. + Previously, a caller of create_subscription/* became + the destination, but RFC 5277 create-subscription is no + longer the only way in which NETCONF notifications can + be ordered. + + + Full runtime dependencies of common_test-1.20.2.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-11.2.2.4 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17493 Application(s): erts + + Microstate accounting (msacc) and os:perf_counter() + unintentionally used system time instead of monotonic + time for time measurements on a lot of systems. These + systems were all non x86/x86_64 systems or x86/x86_64 + systems without a reliable and constant rdtsc + instruction. + + The lock counting (lcnt) built runtime system also + unintentionally used system time instead of monotonic + time for time measurements on all systems. + + + OTP-17500 Application(s): erts + Related Id(s): GH-4809 + + Simultaneous calls to + erlang:system_flag(schedulers_online, _) could cause + callers to end up in a suspended state forever. + + + OTP-17513 Application(s): erts + Related Id(s): GH-4964, PR-5015 + + Fix rare race bug in memory management of distribution + entries. Have been seen to cause VM crash when massive + number of repeated concurrent failing connection + attempts. + + + Full runtime dependencies of erts-11.2.2.4: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- public_key-1.10.0.1 --------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.10.0.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17475 Application(s): public_key, ssl + Related Id(s): GH-4877 + + Handle cross-signed root certificates when old root + expired as reported in GH-4877. + + + Full runtime dependencies of public_key-1.10.0.1: asn1-3.0, + crypto-3.8, erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssl-10.3.1.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.3.1.2 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-17475 Application(s): public_key, ssl + Related Id(s): GH-4877 + + Handle cross-signed root certificates when old root + expired as reported in GH-4877. + + + OTP-17529 Application(s): ssl + Related Id(s): GH-4958, PR-4979 + + The signature selection algorithm has been changed to + also verify if the client supports signatures using the + elliptic curve of the server's public/private key pair. + This change fixes #4958. + + + --- Improvements and New Features --- + + OTP-17150 Application(s): ssl + Related Id(s): GH-4877 + + Slight optimization of certificate decoding. + + + Full runtime dependencies of ssl-10.3.1.2: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.10.0.1, stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.14.2.2 ------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.14.2.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17525 Application(s): stdlib + Related Id(s): GH-5053 + + Fix a bug that could cause a crash when formatting + tuples using the control sequences p or P and limiting + the output with the option chars_limit. + + + Full runtime dependencies of stdlib-3.14.2.2: compiler-5.0, + crypto-3.3, erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.6.README.txt b/release-notes/OTP-23.3.4.6.README.txt new file mode 100644 index 0000000..9baf7f5 --- /dev/null +++ b/release-notes/OTP-23.3.4.6.README.txt @@ -0,0 +1,87 @@ +Patch Package: OTP 23.3.4.6 +Git Tag: OTP-23.3.4.6 +Date: 2021-09-03 +Trouble Report Id: OTP-17560, OTP-17568, OTP-17570, OTP-17585, + OTP-17594 +Seq num: ERL-1261, GH-4256, GH-5116, GH-5150 +System: OTP +Release: 23 +Application: erts-11.2.2.5, kernel-7.3.1.3 +Predecessor: OTP 23.3.4.5 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- erts-11.2.2.5 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.5 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17560 Application(s): erts + Related Id(s): GH-5116 + + Fix buffer overrun problem in the tty driver. The + problem happens on some platforms when using the CTRL+R + functionality of newshell with very long strings in the + history. + + + OTP-17568 Application(s): erts + Related Id(s): PR-4940 + + Fix race-condition that could cause a crash when + tracing scheduling or garbage collections on a process + that was running on a dirty scheduler. + + + OTP-17585 Application(s): erts + Related Id(s): GH-5150 + + Fix rare bug where re:run would crash/return invalid + results when given a subbinary as subject. + + This bug has existed since Erlang/OTP 20.0. + + + OTP-17594 Application(s): erts + + binary_to_term/1,2 is now more resilient against + corrupted binaries containing maps in the external + format. + + + Full runtime dependencies of erts-11.2.2.5: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-7.3.1.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-7.3.1.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17570 Application(s): kernel + Related Id(s): ERL-1261, GH-4256, PR-5139 + + Fix code:get_doc/1 to not crash when module is located + in an escript. + + + Full runtime dependencies of kernel-7.3.1.3: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.7.README.txt b/release-notes/OTP-23.3.4.7.README.txt new file mode 100644 index 0000000..a25d840 --- /dev/null +++ b/release-notes/OTP-23.3.4.7.README.txt @@ -0,0 +1,85 @@ +Patch Package: OTP 23.3.4.7 +Git Tag: OTP-23.3.4.7 +Date: 2021-09-08 +Trouble Report Id: OTP-17578, OTP-17600, OTP-17604 +Seq num: ERIERL-683 +System: OTP +Release: 23 +Application: erts-11.2.2.6, inets-7.3.2.2, kernel-7.3.1.4 +Predecessor: OTP 23.3.4.6 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- erts-11.2.2.6 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.6 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17578 Application(s): erts, kernel + Related Id(s): ERIERL-683 + + Parsing of the result value in the native DNS resolver + has been made more defensive against incorrect results. + + + OTP-17604 Application(s): erts + + On 32-bit computers, binary_to_term/1,2 is now more + resilient against corrupted binaries containing maps in + the external format. + + + Full runtime dependencies of erts-11.2.2.6: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.3.2.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.3.2.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17600 Application(s): inets + + Restored HTTP headers handling in inets/mod_esi. + + + Full runtime dependencies of inets-7.3.2.2: 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.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-7.3.1.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17578 Application(s): erts, kernel + Related Id(s): ERIERL-683 + + Parsing of the result value in the native DNS resolver + has been made more defensive against incorrect results. + + + Full runtime dependencies of kernel-7.3.1.4: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.8.README.txt b/release-notes/OTP-23.3.4.8.README.txt new file mode 100644 index 0000000..be29853 --- /dev/null +++ b/release-notes/OTP-23.3.4.8.README.txt @@ -0,0 +1,140 @@ +Patch Package: OTP 23.3.4.8 +Git Tag: OTP-23.3.4.8 +Date: 2021-10-19 +Trouble Report Id: OTP-17628, OTP-17642, OTP-17651, OTP-17658, + OTP-17665, OTP-17677, OTP-17700, OTP-17707 +Seq num: ERIERL-706, GH-5235, GH-5271 +System: OTP +Release: 23 +Application: erts-11.2.2.7, ssh-4.11.1.4 +Predecessor: OTP 23.3.4.7 + + Check out the git tag OTP-23.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-11.2.2.7 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.7 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17628 Application(s): erts + + A call to process_info(Pid, status) could erroneously + report the status running when it should have reported + waiting. This occurred when the calling process was + executing on a higher priority than the process being + inspected. This bug has been present since OTP 21.0 + (erts version 10.0). + + + OTP-17642 Application(s): erts + Related Id(s): PR-5248 + + A race between an exiting port and handling of + simultaneously received signals to that port could + cause a runtime system crash. The effected signals are + link, monitor and demonitor. On OTP 22 a similiar race + could also cause a memory leak when receiving an unlink + signal. + + + OTP-17651 Application(s): erts + Related Id(s): GH-5235, PR-5244 + + The message queue of a process entered an inconsistent + state after a receive expression with an invalid + timeout value was executed. If the exception raised due + to the invalid timeout value was caught, the following + receive expression executed by the process could fail + to match messages already present in the message queue. + + On OTP 24 this could also cause the whole runtime + system to crash. + + + OTP-17665 Application(s): erts + Related Id(s): PR-5248 + + Sending a Port ! {PortOwner, close} signal from a + process other than the port owner could erroneously + trigger a badsig exit signal being sent to the port + owner process even though the correct PortOwner had + been passed in the signal. + + + OTP-17677 Application(s): erts + + This fixes a bug in erts_factory_undo that caused the + heap to not be reset correctly. The erts_factory_undo + function is, for example, called when a + binary_to_term/1 call fails to reset the heap to its + state before the binary_to_term/1 call. This can cause + the heap to contain invalid terms which potentially can + cause issues (e.g., crashes) when the whole heap is + scanned. + + + OTP-17700 Application(s): erts + Related Id(s): GH-5271, PR-5273 + + Fix bug in persistent_term when a key-value pair + contains a magic reference that is referred more than + once. Magic references are NIF resources or returned + from BIFs like ets:new, atomics:new. The bug could + cause the memory of the referred resource to be + prematurely deallocated. + + The bug also apply to magic references in message + passing on a runtime built with configure option + --enable-sharing-preserving. + + Bug exist for 64-bit since OTP-24.0 and for 32-bit + since OTP-20.0. + + + --- Improvements and New Features --- + + OTP-17658 Application(s): erts + + The python scripts that existed in + erts/lib_src/yielding_c_fun/lib/tiny_regex_c/scripts + had a license that was incompatible with Erlang/OTP's + license. This ticket removes these scripts that were + not used by us. + + + Full runtime dependencies of erts-11.2.2.7: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.11.1.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.11.1.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17707 Application(s): ssh + Related Id(s): ERIERL-706 + + The value of the connect_timeout option is now used as + default value for the negotiation timeout. + + + Full runtime dependencies of ssh-4.11.1.4: 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.3.4.9.README.txt b/release-notes/OTP-23.3.4.9.README.txt new file mode 100644 index 0000000..04a69a6 --- /dev/null +++ b/release-notes/OTP-23.3.4.9.README.txt @@ -0,0 +1,61 @@ +Patch Package: OTP 23.3.4.9 +Git Tag: OTP-23.3.4.9 +Date: 2021-11-11 +Trouble Report Id: OTP-17735, OTP-17737 +Seq num: GH-4989, GH-5339, GH-5346 +System: OTP +Release: 23 +Application: erts-11.2.2.8 +Predecessor: OTP 23.3.4.8 + + Check out the git tag OTP-23.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. + + --------------------------------------------------------------------- + --- erts-11.2.2.8 --------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2.8 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17735 Application(s): erts + Related Id(s): GH-5339 + + The runtime system could call select() with a too large + timeout value when executing on MacOS. This could in + turn cause the runtime system to crash. + + + OTP-17737 Application(s): erts + Related Id(s): GH-4989, GH-5346 + + Certain distributed signals that for various reasons + must to be forced into the distribution buffer even + when it is full would instead be lost if the + distribution buffer was full when sent. The effected + signals: + + -- EXIT signals with exit reasons of one word size. + + -- DOWN signals with exit reasons of one word size. + + -- demonitor signals from a terminating process. + + -- unlink_ack signals on OTP 23 and 24. + + -- spawn_reply signals on OTP 23 and 24. + + + Full runtime dependencies of erts-11.2.2.8: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.4.README.txt b/release-notes/OTP-23.3.4.README.txt new file mode 100644 index 0000000..0a5c783 --- /dev/null +++ b/release-notes/OTP-23.3.4.README.txt @@ -0,0 +1,93 @@ +Patch Package: OTP 23.3.4 +Git Tag: OTP-23.3.4 +Date: 2021-05-10 +Trouble Report Id: OTP-17366, OTP-17379, OTP-17386 +Seq num: ERIERL-650, GH-4775 +System: OTP +Release: 23 +Application: compiler-7.6.9, diameter-2.2.4, erts-11.2.2 +Predecessor: OTP 23.3.3 + + Check out the git tag OTP-23.3.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. + + --------------------------------------------------------------------- + --- compiler-7.6.9 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.6.9 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17386 Application(s): compiler + Related Id(s): ERIERL-650, OTP-17357 + + Reverted the fix for OTP-17357 as it turned out to be + incomplete and made the validator reject much more + legal code than before. + + It will be fixed more thoroughly in a later patch. + + + Full runtime dependencies of compiler-7.6.9: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- diameter-2.2.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-2.2.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17366 Application(s): diameter + Related Id(s): GH-4775 + + The unordered option was ignored on a client + diameter_sctp transport, causing all delivery to be + ordered. + + The association id was not specified to gen_sctp when + requesting unordered delivery, causing the setting to + be applied to the whole endpoint. + + Thanks to Bengt Kleberg and Andreas Schultz. + + + Full runtime dependencies of diameter-2.2.4: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- erts-11.2.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17379 Application(s): erts + Related Id(s): PR-4804 + + Fix bug in match spec compilator seen to cause a stack + overflow crash on debug VM for certain match specs. + Could potentially cause problems for standard VM, but + has not been verified. Match specs are used by + ets:match/select functions and erlang:trace_pattern. + + + Full runtime dependencies of erts-11.2.2: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-23.3.README.txt b/release-notes/OTP-23.3.README.txt new file mode 100644 index 0000000..7ca162d --- /dev/null +++ b/release-notes/OTP-23.3.README.txt @@ -0,0 +1,803 @@ +Patch Package: OTP 23.3 +Git Tag: OTP-23.3 +Date: 2021-03-24 +Trouble Report Id: OTP-13641, OTP-16876, OTP-16907, OTP-16959, + OTP-16978, OTP-16985, OTP-17002, OTP-17042, + OTP-17064, OTP-17073, OTP-17081, OTP-17089, + OTP-17091, OTP-17096, OTP-17109, OTP-17111, + OTP-17113, OTP-17116, OTP-17124, OTP-17126, + OTP-17127, OTP-17145, OTP-17162, OTP-17163, + OTP-17164, OTP-17166, OTP-17167, OTP-17178, + OTP-17182, OTP-17187, OTP-17188, OTP-17194, + OTP-17195, OTP-17197, OTP-17200, OTP-17202, + OTP-17208, OTP-17209, OTP-17212, OTP-17223, + OTP-17225, OTP-17229, OTP-17242, OTP-17244, + OTP-17249, OTP-17252, OTP-17253, OTP-17256, + OTP-17261, OTP-17265, OTP-17271, OTP-17273, + OTP-17274, OTP-17281, OTP-17282, OTP-17283 +Seq num: ERIERL-583, ERL-1410, ERL-1448, ERL-1471, + ERL-845, GH-4353, GH-4445, GH-4451, GH-4500, + GH-4502, GH-4546, GH-4549, GH-4573, GH-4589, + GH-4616, GH-4620 +System: OTP +Release: 23 +Application: common_test-1.20, compiler-7.6.7, crypto-4.9, + dialyzer-4.3.1, eldap-1.2.9, erts-11.2, + jinterface-1.11.1, kernel-7.3, mnesia-4.19, + odbc-2.13.3, public_key-1.10, + runtime_tools-1.16, sasl-4.0.2, snmp-5.8, + ssh-4.11, ssl-10.3, stdlib-3.14.1, + syntax_tools-2.5, tools-3.4.4, wx-1.9.3 +Predecessor: OTP 23.2.7 + + Check out the git tag OTP-23.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-23.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17164 Application(s): otp + Related Id(s): ERL-845, PR-2613 + + Correct documentation of specifications of remote + functions. + + + --------------------------------------------------------------------- + --- common_test-1.20 ------------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.20 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-16959 Application(s): common_test, crypto, erts + Related Id(s): PR-2965 + + Various address sanitizer support. + + + Full runtime dependencies of common_test-1.20: 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-7.6.7 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-7.6.7 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17073 Application(s): compiler + + Fixed a bug in the type optimization pass that could + yield incorrect values or cause the wrong clauses to be + executed. + + + OTP-17126 Application(s): compiler + Related Id(s): ERL-1471 + + Fixed a bug in the validator that could cause it to + reject valid code. + + + Full runtime dependencies of compiler-7.6.7: crypto-3.6, erts-11.0, + hipe-3.12, kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-4.9 ------------------------------------------------------ + --------------------------------------------------------------------- + + The crypto-4.9 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17212 Application(s): crypto + + Fix minor memory leaks in crypto ENGINE and robustify + the code. + + + OTP-17256 Application(s): crypto + Related Id(s): GH-4573, PR-4580 + + The otp_test_engine no longer fails if NO_EC* is set in + the OpenSSL configuration. + + + --- Improvements and New Features --- + + OTP-16959 Application(s): common_test, crypto, erts + Related Id(s): PR-2965 + + Various address sanitizer support. + + + OTP-17116 Application(s): crypto + Related Id(s): PR-2972 + + EVP is now disabled for OpenSSL cryptolib versions up + to and including 1.0.2 + + + OTP-17145 Application(s): crypto + Related Id(s): OTP-17105, PR-2872 + + Warning for unused C function removed + + + Full runtime dependencies of crypto-4.9: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- dialyzer-4.3.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-4.3.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17091 Application(s): dialyzer + + Correct handling of PLTs in the GUI. + + + Full runtime dependencies of dialyzer-4.3.1: compiler-7.0, erts-9.0, + hipe-3.16.1, kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- eldap-1.2.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.9 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17166 Application(s): eldap + Related Id(s): PR-2904 + + Add ability to specify size limit on ldap requests + + + Full runtime dependencies of eldap-1.2.9: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erts-11.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-11.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17081 Application(s): erts + Related Id(s): PR-2930 + + Fix memory leak of about 6 words when + erlang:process_flag/3 is called with a pid of an + already dead process. Bug exists since OTP-21.0. + + + OTP-17089 Application(s): erts + Related Id(s): PR-2934 + + Fixed small memory leak in erl_drv_send_term and + erl_drv_output_term when failing due to the term being + invalid. + + + OTP-17096 Application(s): erts + Related Id(s): PR-2932 + + The DTrace/SystemTap process_heap_grow probe is now + called with valid the heap and stack pointers for the + process in question. + + + OTP-17124 Application(s): erts + + Fixed a performance issue in memory allocation for + Linux kernels that didn't support MADV_FREE. + + + OTP-17127 Application(s): erts, jinterface + + A new link protocol has been introduced which prevents + links from ending up in an inconsistent state where one + participant considers itself linked while the other + doesn't. This bug has always existed in the distributed + case, but has since OTP 21 also existed in the node + local case since the distributed link protocol then was + adopted also for node local links. The bug could, + however, only trigger if both participants operated on + the link simultaneously. + + + OTP-17163 Application(s): erts + + Fix memory leak when receiving sigchld from port + program to already dead port. + + + OTP-17209 Application(s): erts, kernel + Related Id(s): PR-3039 + + Fix bug where complex seq_trace tokens (that is lists, + tuples, maps etc) could becomes corrupted by the GC. + The bug was introduced in OTP-21. + + + OTP-17229 Application(s): erts + + Fixed WSLPATH environment variable addition to PATH on + windows, the last character was lost. + + + OTP-17253 Application(s): erts + + Fixed a bug in the timer implementation which could + cause timers that were set to more than 37.25 hours in + the future to be delayed. This could occur if there + were multiple timers scheduled to be triggered very + close in time, but still at different times, and the + scheduler thread handling the timers was not able to + handle them quickly enough. Delayed timers were in this + case triggered when another unrelated timer was + triggered. + + + OTP-17265 Application(s): erts + Related Id(s): PR-4596 + + Fixed small memory leak in erlang:trace/3 if option + {tracer,_} is included and the option list is invalid + or the call races with a concurrent trace or code + change operation. + + + OTP-17283 Application(s): erts + + Fix configure check for inet_pton on 32-bit windows. + The failure of this check would cause epmd to be built + without ipv6 support. + + + --- Improvements and New Features --- + + OTP-16959 Application(s): common_test, crypto, erts + Related Id(s): PR-2965 + + Various address sanitizer support. + + + OTP-17002 Application(s): erts + + The emulator will now honor cgroup2 CPU quotas. + + + OTP-17195 Application(s): erts + Related Id(s): PR-4505, PR-4538 + + Improved memory barrier usage on ARMv8 hardware, and + specifically on Apple silicon. + + + OTP-17200 Application(s): erts + Related Id(s): PR-4510 + + Improved memory barrier usage on 64-bit POWER hardware. + + + OTP-17244 Application(s): erts + + Fix a file descriptor leak when using sendfile and the + remote side closes the connection. This bug has been + present since OTP-21.0. + + + OTP-17252 Application(s): erts + Related Id(s): PR-4568 + + Refinement of the documentation of the + message_queue_data process flag. + + + Full runtime dependencies of erts-11.2: kernel-7.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- jinterface-1.11.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.11.1 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17127 Application(s): erts, jinterface + + A new link protocol has been introduced which prevents + links from ending up in an inconsistent state where one + participant considers itself linked while the other + doesn't. This bug has always existed in the distributed + case, but has since OTP 21 also existed in the node + local case since the distributed link protocol then was + adopted also for node local links. The bug could, + however, only trigger if both participants operated on + the link simultaneously. + + + --------------------------------------------------------------------- + --- kernel-7.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-7.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-13641 Application(s): kernel + Related Id(s): PR-2959 + + The range check for compression pointers in DNS + encoding was faulty, which caused incorrect label + compression encoding for very large DNS messages; + larger than about 16 kBytes, such as AXFR responses. + This more than 11 year old bug has now been corrected. + + + OTP-17202 Application(s): kernel + Related Id(s): PR-4516 + + Fix of internal links in the erpc documentation. + + + OTP-17209 Application(s): erts, kernel + Related Id(s): PR-3039 + + Fix bug where complex seq_trace tokens (that is lists, + tuples, maps etc) could becomes corrupted by the GC. + The bug was introduced in OTP-21. + + + OTP-17223 Application(s): kernel + Related Id(s): GH-4546, PR-4554 + + When running Xref in the modules mode, the Debugger + application would show up as a depency for the Kernel + applications. + + + --- Improvements and New Features --- + + OTP-17178 Application(s): kernel + Related Id(s): PR-3003 + + erl_epmd (the epmd client) will now try to reconnect to + the local EPMD if the connection is broken. + + + Full runtime dependencies of kernel-7.3: erts-11.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- mnesia-4.19 ----------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.19 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17249 Application(s): mnesia + Related Id(s): PR-4578 + + Fixed the type spec for disc_only_copies. + + + OTP-17274 Application(s): mnesia + Related Id(s): GH-4616 + + Do not crash in mnesia:change_config/2 if mnesia is + stopping or starting. + + + --- Improvements and New Features --- + + OTP-17271 Application(s): mnesia + Related Id(s): PR-4575 + + Optimized table loading time for tables that are + updated during the loading. + + + Full runtime dependencies of mnesia-4.19: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- odbc-2.13.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.13.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17188 Application(s): odbc + Related Id(s): ERL-1448 + + Make sure odbc c-process exits when erlang process + orders it to shutdown. + + + Full runtime dependencies of odbc-2.13.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- public_key-1.10 ------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.10 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17242 Application(s): public_key + Related Id(s): GH-4500 + + Fixed case insensitive hostname check. + + + --- Improvements and New Features --- + + OTP-16907 Application(s): public_key + + Add sanity check of trusted anchor certificate + expiration to pkix_path_validation/3. Although the + anchor is considered a trusted input this sanity check + does provide extra security for the users of the + public_key application as this property needs to be + checked at time of usage and fits very well with the + other checks performed here. + + + OTP-17111 Application(s): public_key + + Adjust generation of test certificates to conform to + RFC 5280 rules for formatting of the certificates + validity + + + Full runtime dependencies of public_key-1.10: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.16 ---------------------------------------------- + --------------------------------------------------------------------- + + The runtime_tools-1.16 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17208 Application(s): runtime_tools + Related Id(s): GH-4502, PR-4532 + + Clarify documentation of module 'scheduler'. + + + Full runtime dependencies of runtime_tools-1.16: erts-11.0, + kernel-7.0, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.0.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The sasl-4.0.2 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17113 Application(s): sasl + Related Id(s): ERL-1410, PR-2882 + + Fix dependent application to be stopped after the + primary application when upgrading a release and the + primary and dependent application is removed. + + Example: In a release where app1 depends on app2 and we + should remove app1 and app2 using a release upgrade. + When the release upgrade is done app1 should be stopped + and purged before app2 as otherwise app1 could start + crashing when its dependency is removed. + + This bugfix changes the order of removal to be correct. + + + Full runtime dependencies of sasl-4.0.2: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.8 -------------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.8 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17109 Application(s): snmp + Related Id(s): ERIERL-583 + + Add function to get a list of configured agent + transports. Also improved agent info with regards to + transports. + + + Full runtime dependencies of snmp-5.8: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.11 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.11 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Improvements and New Features --- + + OTP-17197 Application(s): ssh + Related Id(s): 3049, PR- + + The long name field in SSH_FXP_NAME responses to + display file information in sftp version 3 now contains + the expanded format defined in the sftp draft. It is + similar to what is returned by "ls -l" on Unix systems. + + + Full runtime dependencies of ssh-4.11: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ssl-10.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17261 Application(s): ssl + Related Id(s): GH-4589 + + Fix CRL handling that previously could fail to find the + issuer cert under some circumstances. + + + OTP-17281 Application(s): ssl + Related Id(s): GH-4620 + + TLS-1.3 client could, under some circumstances, select + an incorrect algorithm to sign the certificate + verification message causing a TLS Decrypt Alert being + issued by the server. + + + OTP-17282 Application(s): ssl + + Correct handling of default values for emulated socket + options and retain the order of the ssl options list to + ensure backwards compatible behavior if options should + be set more than once. + + + --- Improvements and New Features --- + + OTP-16876 Application(s): ssl + + Enhance pre TLS-1.3 session handling so the client and + server side handling is completely separated and client + disregards oldest session when reaching max limit of + the session table. + + + OTP-16985 Application(s): ssl + + This change implements the early data feature for TLS + 1.3 clients. + + TLS 1.3 allows clients to send data in the first flight + using a Pre-Shared Key to authenticate the server and + to encrypt the early data. + + + OTP-17042 Application(s): ssl + + This change implements the early data feature for TLS + 1.3 servers. + + + Full runtime dependencies of ssl-10.3: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.14.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.14.1 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16978 Application(s): stdlib + + Handle maps in erl_parse:tokens(). + + + OTP-17182 Application(s): stdlib + Related Id(s): PR-3002 + + The erlang shell function rr has been fixed to be able + to read records from files within a code archive. + + + OTP-17194 Application(s): stdlib, tools + Related Id(s): GH-4353 + + If beam_lib is asked to return abstract code for a BEAM + file produced by Elixir and Elixir is not installed on + the computer, beam_lib will no longer crash, but will + return an error tuple. The cover:compile_beam() and + cover:compile_beam_directory() functions have been + updated to also return an error tuple in that + situation. + + + OTP-17273 Application(s): stdlib + + Correct example module erl_id_trans regarding the + {char, C} type. + + + Full runtime dependencies of stdlib-3.14.1: compiler-5.0, crypto-3.3, + erts-11.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.5 ------------------------------------------------ + --------------------------------------------------------------------- + + The syntax_tools-2.5 application can be applied independently of + other applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17064 Application(s): syntax_tools + Related Id(s): GH-4445, PR-2964 + + epp_dodger was unable to handle a parameterized macro + in a function head. + + + --- Improvements and New Features --- + + OTP-17167 Application(s): syntax_tools + Related Id(s): OTP-17046 + + All functions in erl_tidy in syntax_tools have now been + deprecated and are scheduled for removal in OTP 24. + Users who still need it can find it at + https://github.com/richcarl/erl_tidy. + + + Full runtime dependencies of syntax_tools-2.5: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tools-3.4.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-3.4.4 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17162 Application(s): tools + Related Id(s): GH-4549, PR-2997, PR-4555, + elixir-lang/elixir#10666 + + cover would crash when compiling a module having an + exported function named clauses. + + + OTP-17194 Application(s): stdlib, tools + Related Id(s): GH-4353 + + If beam_lib is asked to return abstract code for a BEAM + file produced by Elixir and Elixir is not installed on + the computer, beam_lib will no longer crash, but will + return an error tuple. The cover:compile_beam() and + cover:compile_beam_directory() functions have been + updated to also return an error tuple in that + situation. + + + OTP-17225 Application(s): tools + Related Id(s): GH-4451, PR-4542 + + Make emacs mode work on emacs-27. + + + Full runtime dependencies of tools-3.4.4: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-1.9.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-1.9.3 application can be applied independently of other + applications on a full OTP 23 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17187 Application(s): wx + + Fixed wx initialization on mac, top level menus did not + always work on newer MacOS versions. The menues will + not work until wxWidgets-3.1.5 is released and used on + these MacOS versions. + + + Full runtime dependencies of wx-1.9.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Abdullah Al-Shehabi, Alexander Clouter, Andrew Shymanel, Bruce Yinhe, + Dieter Schoen, Erwan Le Pape, Henrik Lagebrand, Jonatas Cardador, + José Valim, Jérôme de Bretagne, Leo Liu, Maria-12648430, Mark Peek, + Maxim Fedorov, Mikael Pettersson, Niklas Åholm, Péter Gömöri, Radek + Szymczyszyn, Robert Gionea, Sebastian Smyczyński, Sergei Trofimovich, + Simon Cornish, Stavros Aronis, Steve Vinoski, Tyler Stromberg, + dong50252409, ergl, tehprofessor + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0-rc1.README.txt b/release-notes/OTP-24.0-rc1.README.txt new file mode 100644 index 0000000..9aa2250 --- /dev/null +++ b/release-notes/OTP-24.0-rc1.README.txt @@ -0,0 +1,2658 @@ +Inital Release: OTP 24.0 +Git Tag: OTP-24.0 +Date: 2021-02-24 +Trouble Report Id: OTP-10391, OTP-13126, OTP-14485, OTP-14601, + OTP-14646, OTP-14647, OTP-14650, OTP-14700, + OTP-14793, OTP-15107, OTP-15523, OTP-16334, + OTP-16517, OTP-16560, OTP-16607, OTP-16611, + OTP-16653, OTP-16656, OTP-16678, OTP-16686, + OTP-16687, OTP-16698, OTP-16703, OTP-16706, + OTP-16712, OTP-16718, OTP-16720, OTP-16722, + OTP-16723, OTP-16724, OTP-16725, OTP-16749, + OTP-16750, OTP-16788, OTP-16793, OTP-16800, + OTP-16809, OTP-16811, OTP-16814, OTP-16822, + OTP-16824, OTP-16865, OTP-16867, OTP-16877, + OTP-16878, OTP-16879, OTP-16880, OTP-16881, + OTP-16882, OTP-16883, OTP-16884, OTP-16885, + OTP-16898, OTP-16905, OTP-16910, OTP-16926, + OTP-16936, OTP-16940, OTP-16943, OTP-16944, + OTP-16945, OTP-16947, OTP-16949, OTP-16950, + OTP-16952, OTP-16957, OTP-16963, OTP-16964, + OTP-16968, OTP-16970, OTP-16971, OTP-16974, + OTP-16980, OTP-16981, OTP-16986, OTP-16987, + OTP-16995, OTP-17001, OTP-17005, OTP-17007, + OTP-17014, OTP-17015, OTP-17020, OTP-17023, + OTP-17024, OTP-17028, OTP-17044, OTP-17049, + OTP-17051, OTP-17057, OTP-17059, OTP-17077, + OTP-17078, OTP-17084, OTP-17092, OTP-17095, + OTP-17103, OTP-17104, OTP-17105, OTP-17106, + OTP-17117, OTP-17118, OTP-17120, OTP-17121, + OTP-17122, OTP-17123, OTP-17131, OTP-17133, + OTP-17140, OTP-17153, OTP-17156, OTP-17162, + OTP-17166, OTP-17168, OTP-17170, OTP-17171, + OTP-17172, OTP-17175, OTP-17177, OTP-17180, + OTP-17181, OTP-17183, OTP-17189, OTP-17192, + OTP-17198, OTP-17199, OTP-17201, OTP-17206, + OTP-17207, OTP-17210, OTP-17213, OTP-17214, + OTP-17216, OTP-17217, OTP-17219 +Seq num: ERL-1113, ERL-1281, ERL-1308, ERL-1313, + ERL-1332, ERL-1335, ERL-1348, ERL-1354, + ERL-1367, ERL-1378, ERL-1379, ERL-1380, + ERL-1381, ERL-1430, ERL-1431, ERL-1450, + ERL-1480, ERL-892, GH-4033, GH-4360, GH-4473, + GH-4493 +System: OTP +Release: 24 +Application: asn1-5.1, common_test-1.19.2, compiler-8.0, + crypto-5.0, debugger-5.1, dialyzer-4.4, + edoc-1.0, eldap-1.2.9, erl_docgen-1.1, + erl_interface-5.0, erts-12.0, et-1.7, + ftp-1.1, inets-7.4, jinterface-1.12, + kernel-8.0, megaco-4.0, mnesia-4.18.2, + observer-2.9.6, odbc-2.13.3, os_mon-2.7, + parsetools-2.3, reltool-0.9, + runtime_tools-1.15.2, sasl-4.1, snmp-5.7.4, + ssh-4.11, ssl-10.3, stdlib-3.15, + syntax_tools-2.5, tools-3.5, wx-2.0, + xmerl-1.4 +Predecessor: OTP + + Check out the git tag OTP-24.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-15523 Application(s): ftp + Related Id(s): OTP-15352, PR-1968 + + Add support for FTPES (explicit FTP over TLS). + + + OTP-16611 Application(s): kernel + Related Id(s): OTP-16749 + + A compatibility adaptor for gen_tcp to use the new + socket API has been implemented (gen_tcp_socket). Used + when setting the kernel application variable + inet_backend = socket. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16706 Application(s): compiler + Related Id(s): ERL-1281 + + Variables bound between the keywords 'try' and 'of' can + now be used in the clauses following the 'of' keyword + (that is, in the success case when no exception was + raised). + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16800 Application(s): wx + + The application has been completely rewritten in order + to use wxWidgets version 3 as its base. + + Add basic documentation generated from the wxWidgets + project. + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** POTENTIAL INCOMPATIBILITY *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16885 Application(s): erts + Related Id(s): PR-2745 + + The BeamAsm JIT-compiler has been added to Erlang/OTP. + The JIT-compiler is enabled by default on most x86 + 64-bit platforms that have a C++ compiler that can + compile C++17. To verify that a JIT enabled emulator is + running you can use erlang:system_info(emu_flavor). + + For more information see the internal documentation of + BeamAsm in erts. + + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** POTENTIAL INCOMPATIBILITY *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-16964 Application(s): compiler + + Generators in list and binary comprehensions will now + raise a {bad_generator,Generator} exception if the + generator has an incorrect type (instead of raising an + ad-hoc badarg or badarih exception). Similarly, when a + filter does not evaluate to a boolean, a + {bad_filter,Filter} exception will be raised. Some + minor bugs in the compilation of binary comprehensions + have also been fixed. + + + OTP-16981 Application(s): compiler + Related Id(s): ERL-1113 + + Some compiler warnings, such as the warning for an + expression whose result is ignored, could not be + suppressed by assigning to a variable beginning with + '_', but only by assigning to the anonymous variable + ('_'). This has now been changed so that any warning + that can be suppressed by assigning to the anonymous + variable can also be suppressed by assigning to a + variable beginning with '_'. + + + OTP-17044 Application(s): ssl + Related Id(s): PR-2654 + + Make TLS handshakes in Erlang distribution concurrent. + + + OTP-17213 Application(s): wx + Related Id(s): PR-3027 + + Added support for wxWebView. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-15107 Application(s): stdlib + Related Id(s): ERL-1381, PR-2813 + + Time-outs in gen_statem with relative time 0 did not + behave quite according to the intended model. This has + now been corrected. + + The correction introduces a small potential + incompatibility e.g when combining a state time-out + with inserted events, and the inserted event does a + state change in the state with the time-out. Before + this correction the state time-out could be delivered + even after the second state change, but now it is + guaranteed that a state time-out is only delivered in + the state it was started for, even in this corner case. + + + OTP-16560 Application(s): megaco + + All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was + deprecated in OTP-23.0. They have now been removed. + + + OTP-16656 Application(s): crypto + + The functions and cipher names that were deprecated in + OTP-23.0 are now removed. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16809 Application(s): kernel + Related Id(s): ERL-1313 + + Change the value of the tag head returned by + disk_log:info/1 from {ok, Head} to just Head. + + + OTP-16811 Application(s): kernel + + Remove the support for distributed disk logs. The new + function disk_log:all/0 is to be used instead of + disk_log:accessible_logs/0. The function + disk_log:close/1 is to be used instead of + disk_log:lclose/1,2. + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** HIGHLIGHT *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16878 Application(s): erts + + The code loader has been rewritten in order to be able + to load JIT:ed code. As a consequence of this, it is no + longer possible to load HiPE code. + + + OTP-16943 Application(s): os_mon + Related Id(s): OTP-16906 + + The temporarily introduced configuration parameter + memsup_improved_system_memory_data has been removed. + + + OTP-16945 Application(s): erts + + Change escripts to output any errors or warnings to + standard error instead of standard out. + + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** HIGHLIGHT *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16968 Application(s): kernel + + The pg2 module has been removed. + + + OTP-16970 Application(s): erl_interface + + The registry functionality part of erl_interface has + been removed. It was as of OTP 23 deprecated and + scheduled for removal in OTP 24. + + + OTP-16971 Application(s): stdlib + + The filename:src/1 function which was deprecated in OTP + 20 has been removed. Use filelib:find_source/1,3 + instead. + + + OTP-16974 Application(s): ssl + + Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1 + use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3 + instead. + + + OTP-16987 Application(s): erts + + The erlang:monitor_node/2 BIF will now fail with a + notalive exception if distribution has not been started + on the current node; it used to fail with a badarg + exception. + + + OTP-17156 Application(s): kernel + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + OTP-17216 Application(s): kernel + Related Id(s): PR-2989 + + The behaviour for gen_tcp:connect/3,4 has been changed + to not per default bind to an address, which allows the + network stack to delay the address and port selection + to when the remote address is known. This allows better + port re-use, and thus enables far more outgoing + connections, since the ephemeral port range no longer + has to be a hard limit. + + There is a theoretical possibility that this behaviour + change can affect the set of possible error values, or + have other small implications on some platforms. + + + OTP-17219 Application(s): wx + Related Id(s): OTP-16800 + + Due to the support of the new backend versions some API + incompatibilities have been introduced. Examples of + changes are: + + wxWindowDC default creators have been removed + wxClientDC default creators have been removed + wxPaintDC default creators have been removed + wxWindow:setVirtualSizeHints() has been deprecated in + wxWidgets and removed + wxWindow:makeModal() has been deprecated in wxWidgets + and removed + wxToolBar:add/insertTool without label have been + deprecated in wxWidgets and removed + wxStyledTextCtrl some functions have changed arguments + from boolean to int + wxSizerItem:new() Some arguments have become options + Removed deprecated wxSizerItem:setWindow() use + assignWindow() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSizer() use + assignSizer() + wxMenu append/insert/prepend have changed return value + and lost IsCheckable argument + wxListCtrl:setItem/4 changed return value + wxImage:convertToGreyscale() options have changed + wxGridSizer:wxGridSizer() options have changed + wxGrid API have many changes + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGraphicsRenderer:createPen() have been removed + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGLCanvas API is incompatible + wxFlexGridSizer:wxFlexGridSizer() options have changed + wxDisplay:new() options have changed + wxCalendarDateAttr:new(ColText [,OptList]) have been + removed + wxBitmapButton:set/getBitmapSelected() have been + removed + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of asn1-5.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.19.2 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16940 Application(s): common_test + Related Id(s): ERL-1335 + + The option release_shell could crash when used together + with the spec option. + + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of common_test-1.19.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 + + + --------------------------------------------------------------------- + --- compiler-8.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17104 Application(s): compiler + Related Id(s): ERL-1380 + + A repeated stack trace variable in a try/catch was not + rejected. The following example will now cause a + compilation error: + + try E catch _:A:A -> A end. + + + OTP-17118 Application(s): compiler, stdlib + Related Id(s): PR-2825 + + Eliminated a Dialyzer crashed when the -MMD option is + used to generate a dependency file and a BEAM file a + the same time. + + + OTP-17206 Application(s): compiler + + When the makedep option was given, the compiler would + crash if the dependency output contained non-latin1 + characters. The compiler will now output the dependency + information encoded in UTF-8 to avoid crashing. + + + --- Improvements and New Features --- + + OTP-10391 Application(s): compiler + Related Id(s): OTP-16226 + + Selective receive optimization will now be applied much + more often. + + The new recv_opt_info compile flag can be used to print + diagnostics relating to this optimization. + + You can read more about the selective receive + optimization in the Efficiency Guide. + + + OTP-16334 Application(s): compiler + + erlang:throw/1 will no longer build stack traces when + we can prove that they will never be inspected. + + + OTP-16706 Application(s): compiler + Related Id(s): ERL-1281 + + *** HIGHLIGHT *** + + Variables bound between the keywords 'try' and 'of' can + now be used in the clauses following the 'of' keyword + (that is, in the success case when no exception was + raised). + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16867 Application(s): compiler + Related Id(s): ERL-1354 + + Fixed a performance bug that made functions with lots + of try/after blocks slow to compile. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16964 Application(s): compiler + + *** HIGHLIGHT *** + + Generators in list and binary comprehensions will now + raise a {bad_generator,Generator} exception if the + generator has an incorrect type (instead of raising an + ad-hoc badarg or badarih exception). Similarly, when a + filter does not evaluate to a boolean, a + {bad_filter,Filter} exception will be raised. Some + minor bugs in the compilation of binary comprehensions + have also been fixed. + + + OTP-16981 Application(s): compiler + Related Id(s): ERL-1113 + + *** HIGHLIGHT *** + + Some compiler warnings, such as the warning for an + expression whose result is ignored, could not be + suppressed by assigning to a variable beginning with + '_', but only by assigning to the anonymous variable + ('_'). This has now been changed so that any warning + that can be suppressed by assigning to the anonymous + variable can also be suppressed by assigning to a + variable beginning with '_'. + + + OTP-17078 Application(s): compiler + Related Id(s): ERL-1430, PR-2918 + + The previously undocumented compiler options + warn_missing_spec and warn_missing_spec_all are now + documented. + + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + OTP-17168 Application(s): compiler + + Erlang source files not encoded in utf-8 will no longer + be accepted by the compiler unless it contains a + "coding: latin-1" comment. + + + OTP-17172 Application(s): compiler + + New compiler options from_abstr and no_lint have been + added. They are useful when implementing other + languages running on the BEAM. + + + OTP-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + Full runtime dependencies of compiler-8.0: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16882 Application(s): crypto + + Add /usr/local/opt/openssl to the openssl configure + search path. This path is where some tools on OS X + place openssl. + + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + --- Improvements and New Features --- + + OTP-16656 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + The functions and cipher names that were deprecated in + OTP-23.0 are now removed. + + + OTP-17001 Application(s): crypto + Related Id(s): PR-2852 + + Removed installed directory priv/obj/ containing + superfluous object files. + + + Full runtime dependencies of crypto-5.0: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + Full runtime dependencies of debugger-5.1: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16883 Application(s): dialyzer + + Some internal HiPE modules have been moved into the + dialyzer application so that dialyzer works when HiPE + is disabled. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16986 Application(s): dialyzer + Related Id(s): ERL-1379, ERL-1480, GH-4033 + + Add warning option no_underspecs. + + + OTP-16995 Application(s): dialyzer + Related Id(s): ERL-1348 + + Report filename and location for warnings returned due + to the -Wunknown option. When used from the + command-line, one location per file is printed. + + + OTP-17084 Application(s): dialyzer + + Add types and specifications for documentation. + + + OTP-17177 Application(s): dialyzer + Related Id(s): OTP-16824 + + Add option error_location. The option is recognized if + included in the environment variable + ERL_COMPILER_OPTIONS. + + + OTP-17183 Application(s): dialyzer + Related Id(s): ERL-892, GH-4493 + + Clarify how to declare records used in match patterns. + + + Full runtime dependencies of dialyzer-4.4: compiler-7.0, erts-9.0, + kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-1.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17092 Application(s): edoc + + Fix so that the edoc_doclet option file_suffix also + effects the links emitted into the module index. + + + --- Improvements and New Features --- + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-17095 Application(s): edoc + Related Id(s): PR-2914 + + Edoc has been updated to use -spec to document its own + interface instead of @doc@ tags. + + Together with this change the inter-application linking + for -spec style documentation has been improved. + + + OTP-17153 Application(s): edoc + Related Id(s): PR-2674 + + Allow user defined edoc macros to be functions. + + + Full runtime dependencies of edoc-1.0: erts-6.0, inets-5.10, + kernel-3.0, stdlib-3.15, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- eldap-1.2.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17166 Application(s): eldap + Related Id(s): PR-2904 + + Add ability to specify size limit on ldap requests + + + Full runtime dependencies of eldap-1.2.9: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17122 Application(s): erl_docgen, stdlib + + Fixed bug in shell_docs and erl_docgen that interpreted + em tags as strong. + + + --- Improvements and New Features --- + + OTP-16877 Application(s): erl_docgen + + Add support for displaying .svg images. + + + OTP-17192 Application(s): erl_docgen + Related Id(s): PR-2803 + + Updated the way specs are generated after changes in + edoc. + + + Full runtime dependencies of erl_docgen-1.1: edoc-1.0, erts-9.0, + stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.0 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16970 Application(s): erl_interface + + *** POTENTIAL INCOMPATIBILITY *** + + The registry functionality part of erl_interface has + been removed. It was as of OTP 23 deprecated and + scheduled for removal in OTP 24. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + --- 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-12.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16822 Application(s): erts + Related Id(s): PR-2723 + + file:open/2 now throws an badarg error when opened with + both the ram and raw options. + + + OTP-16879 Application(s): erts + + The estone benchmark has been updated to better reflect + changes in the compiler and run-time system. + + + OTP-16880 Application(s): erts + + Fix profile guided optimization of run-time system when + using GCC 7 or later. + + + OTP-16884 Application(s): erts + + Fix double close of fd when creating crash dump. + + + OTP-17014 Application(s): erts + + Improve erl error message when unable to open included + args_file. + + + OTP-17020 Application(s): erts + + Remove warning text about the -- operation from + documentation + + The -- operation was optimized in Erlang/OTP 22 so that + its worst case complexity is O(N*log(N)), where N is + the total size of the input lists. Therefore, the + warning in the documentation saying that the time + complexity is proportional to length(A)*length(B) is + incorrect and is no longer needed. Notice that + Erlang/OTP 21 will no longer be supported when + Erlang/OTP 24 gets released. + + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + OTP-17131 Application(s): erts + Related Id(s): GH-4360, PR-3031 + + Windows process erl.exe killed if its service process + erlsrv.exe terminates. + + + --- Improvements and New Features --- + + OTP-14601 Application(s): erts, kernel + Related Id(s): OTP-16749, PR-2641, PR-2670 + + The experimental socket module can now use any protocol + (by name) the OS supports. Suggested in PR-2641, + implemented in PR-2670. + + + OTP-16653 Application(s): erts + + The deprecated function erlang:get_stacktrace/0 has + been removed. Use the new syntax in try/catch to + retrieve the stack backtrace. + + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16687 Application(s): erts + Related Id(s): PR-2762, PR-2996 + + The erlang module documentation has been updated to + improve clarity and description of edge cases. + + + OTP-16703 Application(s): erts, kernel + Related Id(s): PR-2620 + + An example implementation of Erlang distribution over + UDS using distribution processes has been introduced. + + Thanks to Jérôme de Bretagne + + + OTP-16712 Application(s): erts + + Improve code generation when creating funs by adding a + new beam instruction make_fun3 that does not do GC and + allows for better register allocation. + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16788 Application(s): erts + + Remove old unused +MYm and ERL_MALLOC_LIB options. + + + OTP-16814 Application(s): erts + Related Id(s): PR-2704 + + Increase timer resolution on windows. + + + OTP-16878 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The code loader has been rewritten in order to be able + to load JIT:ed code. As a consequence of this, it is no + longer possible to load HiPE code. + + + OTP-16881 Application(s): erts + + Add support in the Erlang/OTP build system to generate + a compilation database that can be used by third-party + tools (such as irony in Emacs) to compile the erts C + and C++ source code. Create the database using make + compdb. + + + OTP-16885 Application(s): erts + Related Id(s): PR-2745 + + *** HIGHLIGHT *** + + The BeamAsm JIT-compiler has been added to Erlang/OTP. + The JIT-compiler is enabled by default on most x86 + 64-bit platforms that have a C++ compiler that can + compile C++17. To verify that a JIT enabled emulator is + running you can use erlang:system_info(emu_flavor). + + For more information see the internal documentation of + BeamAsm in erts. + + + OTP-16898 Application(s): erts + Related Id(s): OTP-16856 + + By default all ERTS internal memory allocators based on + alloc_util will now use their own separate carrier pool + for migration of carriers instead of using a node + global carrier pool. This was the default behavior + between OTP 17 and OTP 21, but changed to use a node + global carrier pool as of OTP 22.0. Usage of the node + global carrier pool proved troublesome since it had a + tendency to spread long lived blocks into allocators + with normally short lived blocks causing increased + memory fragmentation. The node global carrier pool + behavior as well as other behaviors can be configured + using the +M<S>cp command line argument. + + + OTP-16936 Application(s): erts, stdlib + Related Id(s): ERL-1367 + + New functions have been added to the maps module: + merge_with/3, intersect/2, intersect_with/3, + filtermap/2, from_keys/2, and maps:foreach/2. + + maps:merge_with/3 is the same as merge/2 but takes an + extra fun that is used to combine items with the same + key. + + maps:intersect/2 computes the intersection of two maps. + + maps:intersect_with/3 is the same as intersect/2 but + takes an extra fun that is used to combine intersecting + items. + + maps:filtermap/2 allows filtering and mapping of a map + in a single pass. + + maps:from_keys/2 constructs a map from a list of keys + and a single value and can be used to to optimize sets + operations such as from_list/1, filter/2, + intersection/2, and subtract/2. + + maps:foreach/2 allows iteration over a map without + returning any value. + + + OTP-16945 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Change escripts to output any errors or warnings to + standard error instead of standard out. + + + OTP-16952 Application(s): erts, kernel + + A new erl parameter for specifying a file descriptor + with configuration data has been added. This makes it + possible to pass the parameter "-configfd FD" when + executing the erl command. When this option is given, + the system will try to read and parse configuration + parameters from the file descriptor. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16980 Application(s): erts, stdlib + Related Id(s): ERL-1308 + + The pretty printer for floating point number have been + changed to make it easier to see if the integer part of + the number has been rounded. After the change the the + digit that may have been rounded always appears last or + just before the exponent character (e or E). This is + accomplished by always printing the number using + scientific notation if it is so large that the integer + part could be rounded. + + + OTP-16987 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The erlang:monitor_node/2 BIF will now fail with a + notalive exception if distribution has not been started + on the current node; it used to fail with a badarg + exception. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17028 Application(s): erts + + One can now pass the ERL_ROOTDIR environment variable + to the erl and start scrips. This makes it easier to + use Erlang for Android apps. On Andorid, apps don't + control where they will be installed. + + + OTP-17057 Application(s): erts, stdlib + + All long running functions in the maps API are now + yielding. In previous releases the functions + maps:from_list/1, maps:keys/1 and maps:values/1 did not + yield. This could cause unfair scheduling of processes. + + + OTP-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + Full runtime dependencies of erts-12.0: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- et-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + 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.1 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16926 Application(s): ftp + Related Id(s): ERL-1450, GH-4473 + + Use OTP supervisor as intended, avoiding surprising + behavior as the killing of the user's process. Also, + FTP state handling logic is improved to avoid race + conditions that could result in unexpected errors. + + + --- Improvements and New Features --- + + OTP-15523 Application(s): ftp + Related Id(s): OTP-15352, PR-1968 + + *** HIGHLIGHT *** + + Add support for FTPES (explicit FTP over TLS). + + + Full runtime dependencies of ftp-1.1: erts-7.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-7.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16722 Application(s): inets + + Drop all support for ftp and tftp in inets code. + + + OTP-16723 Application(s): inets + + Deprecate following functions in httpd_util module: + flatlength/1, lhexlist_to_integer/1, + integer_to_hexlist/1, strip/1, and suffix/1. + + + OTP-16724 Application(s): inets + + Remove support of HTTP 0.9 in httpd. + + + OTP-16725 Application(s): inets + + Remove support of HTTP 0.9 in httpc. + + + Full runtime dependencies of inets-7.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.12 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17170 Application(s): jinterface + Related Id(s): PR-3005 + + Make OtpErlangExternalFun's fields module, function and + arity public. + + + --------------------------------------------------------------------- + --- kernel-8.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14700 Application(s): kernel + Related Id(s): PR-2848 + + A bug has been fixed for the internal inet_res resolver + cache that handled a resolver configuration file status + timer incorrectly and caused performance problems due + to many unnecessary file system accesses. + + + OTP-16809 Application(s): kernel + Related Id(s): ERL-1313 + + *** POTENTIAL INCOMPATIBILITY *** + + Change the value of the tag head returned by + disk_log:info/1 from {ok, Head} to just Head. + + + --- Improvements and New Features --- + + OTP-13126 Application(s): kernel + Related Id(s): PR-3041 + + The cache used by the DNS resolver inet_res has been + improved to use ETS lookups instead of server calls. + This is a considerable speed improvement for cache + hits. + + + OTP-14485 Application(s): kernel + Related Id(s): PR-2891 + + The cache ETS table type for the internal DNS resolver + inet_res has been changed type changed (internally) to + get better speed and atomicity. + + + OTP-14601 Application(s): erts, kernel + Related Id(s): OTP-16749, PR-2641, PR-2670 + + The experimental socket module can now use any protocol + (by name) the OS supports. Suggested in PR-2641, + implemented in PR-2670. + + + OTP-16517 Application(s): kernel + Related Id(s): PR-2827 + + The DNS resolver inet_res has been updated to support + CAA (RFC 6844) and URI (RFC 7553) records. + + + OTP-16611 Application(s): kernel + Related Id(s): OTP-16749 + + *** HIGHLIGHT *** + + A compatibility adaptor for gen_tcp to use the new + socket API has been implemented (gen_tcp_socket). Used + when setting the kernel application variable + inet_backend = socket. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16698 Application(s): kernel + Related Id(s): PR-2634 + + The file server can now be bypassed in file:delete/1,2 + with the raw option. + + + OTP-16703 Application(s): erts, kernel + Related Id(s): PR-2620 + + An example implementation of Erlang distribution over + UDS using distribution processes has been introduced. + + Thanks to Jérôme de Bretagne + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16793 Application(s): kernel + Related Id(s): ERL-1332, PR-2740 + + New function os:env/0 returns all OS environment + variables as a list of 2-tuples. + + + OTP-16811 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Remove the support for distributed disk logs. The new + function disk_log:all/0 is to be used instead of + disk_log:accessible_logs/0. The function + disk_log:close/1 is to be used instead of + disk_log:lclose/1,2. + + + OTP-16947 Application(s): kernel + Related Id(s): PR-2781 + + Expand the spec for erl_epmd:listen_port_please/2 to + mirror erl_epmd:port_please/2. + + + OTP-16952 Application(s): erts, kernel + + A new erl parameter for specifying a file descriptor + with configuration data has been added. This makes it + possible to pass the parameter "-configfd FD" when + executing the erl command. When this option is given, + the system will try to read and parse configuration + parameters from the file descriptor. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16968 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The pg2 module has been removed. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17015 Application(s): kernel + + Allow utf-8 binaries as parts of logger_formatter + template. + + + OTP-17103 Application(s): kernel + Related Id(s): PR-2949 + + Allow the shell history of an erlang node to be fetched + and stores using a custom callback module. See + shell_history configuration parameter in the kernel + documentation for more details. + + + OTP-17106 Application(s): kernel + Related Id(s): PR-2885 + + The simple logger (used to log events that happen + before kernel has been started) has been improved to + print prettier error messages. + + + OTP-17156 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + OTP-17181 Application(s): kernel + Related Id(s): PR-2457 + + Added support in logger for setting primary metadata. + The primary metadata is passed as a base metadata to + all log events in the system. See Metadata in the + Logger chapter of the Kernel User's Guide for more + details. + + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + OTP-17198 Application(s): kernel + Related Id(s): PR-2721 + + The Fun's passed to logger:log/2,3,4 can now return + metadata that will only be fetched when needed. See + logger:log/2,3,4 for more details. + + + OTP-17201 Application(s): kernel + Related Id(s): PR-4534 + + erpc:multicall() has been rewritten to be able to + utilize the newly introduced and improved + reference/receive optimization. + + + OTP-17216 Application(s): kernel + Related Id(s): PR-2989 + + *** POTENTIAL INCOMPATIBILITY *** + + The behaviour for gen_tcp:connect/3,4 has been changed + to not per default bind to an address, which allows the + network stack to delay the address and port selection + to when the remote address is known. This allows better + port re-use, and thus enables far more outgoing + connections, since the ephemeral port range no longer + has to be a hard limit. + + There is a theoretical possibility that this behaviour + change can affect the set of possible error values, or + have other small implications on some platforms. + + + Full runtime dependencies of kernel-8.0: erts-12.0, sasl-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-4.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16560 Application(s): megaco + + *** POTENTIAL INCOMPATIBILITY *** + + All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was + deprecated in OTP-23.0. They have now been removed. + + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of megaco-4.0: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.18.2 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17217 Application(s): mnesia + + Suppression of deprecation warnings has been added to + the source files of the Mnesia application. + + + Full runtime dependencies of mnesia-4.18.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.9.6 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17214 Application(s): observer + + Updated gui parts to work with the new wx version. + + + Full runtime dependencies of observer-2.9.6: erts-11.0, et-1.5, + kernel-7.0, runtime_tools-1.8.14, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.13.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + Full runtime dependencies of odbc-2.13.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16943 Application(s): os_mon + Related Id(s): OTP-16906 + + *** POTENTIAL INCOMPATIBILITY *** + + The temporarily introduced configuration parameter + memsup_improved_system_memory_data has been removed. + + + OTP-16944 Application(s): os_mon + Related Id(s): PR-2787 + + Fix disk_sup to also search the system PATH on linux + when looking for the df program. + + + Full runtime dependencies of os_mon-2.7: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16957 Application(s): parsetools, tools + + Add types and specifications for documentation. + + + OTP-17023 Application(s): parsetools + + Let Leex and Yecc recognize the environment variable + ERL_COMPILER_OPTIONS. Add Yecc option {error_location, + column | line}. + + + Full runtime dependencies of parsetools-2.3: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- reltool-0.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + Full runtime dependencies of reltool-0.9: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.15.2 -------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of runtime_tools-1.15.2: erts-11.0, + kernel-7.0, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + Full runtime dependencies of sasl-4.1: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.7.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of snmp-5.7.4: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.11 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16750 Application(s): ssh + + Removed usage of erlang:is_port/1 from the SSH + implementation. + + + OTP-17051 Application(s): ssh + + Internal connection setup refactoring. + + + OTP-17140 Application(s): ssh + + Refactor SSH fsm into a (hopefully) more comprehensible + set of gen_statem callback-files. + + + Full runtime dependencies of ssh-4.11: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16974 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1 + use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3 + instead. + + + OTP-17044 Application(s): ssl + Related Id(s): PR-2654 + + *** HIGHLIGHT *** + + Make TLS handshakes in Erlang distribution concurrent. + + + OTP-17117 Application(s): ssl + Related Id(s): PR-2933 + + Randomize internal {active,n} optimization when running + Erlang distribution over TLS to spread RAM/CPU spike + that may occur when starting up a big cluster. + + + Full runtime dependencies of ssl-10.3: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.15 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15107 Application(s): stdlib + Related Id(s): ERL-1381, PR-2813 + + *** POTENTIAL INCOMPATIBILITY *** + + Time-outs in gen_statem with relative time 0 did not + behave quite according to the intended model. This has + now been corrected. + + The correction introduces a small potential + incompatibility e.g when combining a state time-out + with inserted events, and the inserted event does a + state change in the state with the time-out. Before + this correction the state time-out could be delivered + even after the second state change, but now it is + guaranteed that a state time-out is only delivered in + the state it was started for, even in this corner case. + + + OTP-16865 Application(s): stdlib + + Fix bugs in erl_eval concerning bitstring + comprehensions. + + + OTP-16905 Application(s): stdlib + + File names that start with a dot (such as ".gitignore" + are now treated as file names and not extensions by + filename:extension/1 and filename:rootname/1. + + + OTP-16950 Application(s): stdlib + Related Id(s): ERL-1378 + + Fixed a bug where beam_lib:chunks/3 with the + allow_missing_chunks option would crash if a named + chunk was missing. + + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17118 Application(s): compiler, stdlib + Related Id(s): PR-2825 + + Eliminated a Dialyzer crashed when the -MMD option is + used to generate a dependency file and a BEAM file a + the same time. + + + OTP-17122 Application(s): erl_docgen, stdlib + + Fixed bug in shell_docs and erl_docgen that interpreted + em tags as strong. + + + OTP-17133 Application(s): stdlib + + On Solaris, the math:acos/1 and math:asin/1 functions + would not fail for arguments outside the valid domain. + + + --- Improvements and New Features --- + + OTP-14646 Application(s): stdlib + Related Id(s): PR-2920 + + In the rand module it is now possible to seed the + default algorithm using an algorithm alias: default. + + Generating pseudo random binaries has been implemented + with rand:bytes/1 and rand:bytes_s/2. + + + OTP-14647 Application(s): stdlib + Related Id(s): PR-2910 + + New functions have been added to the proplists module: + to_map/1,2 and from_map/1. + + + OTP-14650 Application(s): stdlib + Related Id(s): PR-2850 + + New functions have been added to the queue module: + all/2, any/2, delete/2, delete_r/2, delete_with/2, and + delete_with_r/2. + + + OTP-14793 Application(s): stdlib + Related Id(s): PR-2791 + + New function have been added to the queue module: + fold/2 and filtermap/2. + + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16910 Application(s): stdlib + Related Id(s): PR-2771 + + Improved documentation about exit signals emitted when + a gen_server terminates. + + + OTP-16936 Application(s): erts, stdlib + Related Id(s): ERL-1367 + + New functions have been added to the maps module: + merge_with/3, intersect/2, intersect_with/3, + filtermap/2, from_keys/2, and maps:foreach/2. + + maps:merge_with/3 is the same as merge/2 but takes an + extra fun that is used to combine items with the same + key. + + maps:intersect/2 computes the intersection of two maps. + + maps:intersect_with/3 is the same as intersect/2 but + takes an extra fun that is used to combine intersecting + items. + + maps:filtermap/2 allows filtering and mapping of a map + in a single pass. + + maps:from_keys/2 constructs a map from a list of keys + and a single value and can be used to to optimize sets + operations such as from_list/1, filter/2, + intersection/2, and subtract/2. + + maps:foreach/2 allows iteration over a map without + returning any value. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16971 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The filename:src/1 function which was deprecated in OTP + 20 has been removed. Use filelib:find_source/1,3 + instead. + + + OTP-16980 Application(s): erts, stdlib + Related Id(s): ERL-1308 + + The pretty printer for floating point number have been + changed to make it easier to see if the integer part of + the number has been rounded. After the change the the + digit that may have been rounded always appears last or + just before the exponent character (e or E). This is + accomplished by always printing the number using + scientific notation if it is so large that the integer + part could be rounded. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17024 Application(s): stdlib + + Add option location to erl_parse:abstract/2. + + + OTP-17057 Application(s): erts, stdlib + + All long running functions in the maps API are now + yielding. In previous releases the functions + maps:from_list/1, maps:keys/1 and maps:values/1 did not + yield. This could cause unfair scheduling of processes. + + + OTP-17059 Application(s): stdlib + Related Id(s): PR-2864 + + The sets module now has an optional map-based + implementation, as described in EEP 50. + + To use this implementation, pass the {version,2} option + to sets:new/1 or sets:from_list/2. + + + OTP-17120 Application(s): stdlib + + Added shell_docs:supported_tags/0. This function can be + used to retrieve the tags currently supported by + shell_docs. + + + OTP-17121 Application(s): stdlib + + The application/erlang+html documentation storage + format used by shell_docs has been updated to include + the tags b, strong, h4, h5 and h6. + + + OTP-17171 Application(s): stdlib + Related Id(s): PR-3011 + + Improved explanation of {continue,Continue} in + Module:init/1 of the gen_server documentation. + + + OTP-17175 Application(s): stdlib + + The erl_eval module now accepts a map for keeping track + of bindings. Using an orddict for bindings will still + work. + + + OTP-17199 Application(s): stdlib + Related Id(s): PR-2658 + + Documented epp:scan_erl_form/1 and added + epp:scan_file/2. + + + OTP-17210 Application(s): stdlib + + The standard floating point printing algorithm used by + the io and io_lib modules has been changed from the + algorithm described in [1] to the Ryu algorithm [2]. + This gives a significant speed improvement for the + printing of most floating point numbers and a small + memory consumption improvement. + + [1]: Robert G. Burger and R. Kent Dybvig. 1996. + Printing floating-point numbers quickly and accurately. + In Proceedings of the ACM SIGPLAN 1996 conference on + Programming language design and implementation (PLDI + '96). Association for Computing Machinery, New York, + NY, USA, 108–116. + DOI:https://doi.org/10.1145/231379.231397 + + [2]: Ulf Adams. 2018. Ryū: fast float-to-string + conversion. In Proceedings of the 39th ACM SIGPLAN + Conference on Programming Language Design and + Implementation (PLDI 2018). Association for Computing + Machinery, New York, NY, USA, 270–282. + DOI:https://doi.org/10.1145/3192366.3192369 + + Thanks to Thomas Depierre + + + Full runtime dependencies of stdlib-3.15: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.5 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-17180 Application(s): syntax_tools + + The igor and erl_tidy modules have been the removed and + are now maintained by their original author Richard + Carlsson. They can be found at github.com/richcarl/igor + and github.com/richcarl/erl_tidy, respectively. + + + Full runtime dependencies of syntax_tools-2.5: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tools-3.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17162 Application(s): tools + Related Id(s): elixir-lang/elixir#10666 + + cover would crash when compiling a module having an + exported function named clauses. + + + --- Improvements and New Features --- + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16957 Application(s): parsetools, tools + + Add types and specifications for documentation. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of tools-3.5: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.0 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + --- Improvements and New Features --- + + OTP-16800 Application(s): wx + + *** HIGHLIGHT *** + + The application has been completely rewritten in order + to use wxWidgets version 3 as its base. + + Add basic documentation generated from the wxWidgets + project. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17213 Application(s): wx + Related Id(s): PR-3027 + + *** HIGHLIGHT *** + + Added support for wxWebView. + + + OTP-17219 Application(s): wx + Related Id(s): OTP-16800 + + *** POTENTIAL INCOMPATIBILITY *** + + Due to the support of the new backend versions some API + incompatibilities have been introduced. Examples of + changes are: + + wxWindowDC default creators have been removed + wxClientDC default creators have been removed + wxPaintDC default creators have been removed + wxWindow:setVirtualSizeHints() has been deprecated in + wxWidgets and removed + wxWindow:makeModal() has been deprecated in wxWidgets + and removed + wxToolBar:add/insertTool without label have been + deprecated in wxWidgets and removed + wxStyledTextCtrl some functions have changed arguments + from boolean to int + wxSizerItem:new() Some arguments have become options + Removed deprecated wxSizerItem:setWindow() use + assignWindow() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSizer() use + assignSizer() + wxMenu append/insert/prepend have changed return value + and lost IsCheckable argument + wxListCtrl:setItem/4 changed return value + wxImage:convertToGreyscale() options have changed + wxGridSizer:wxGridSizer() options have changed + wxGrid API have many changes + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGraphicsRenderer:createPen() have been removed + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGLCanvas API is incompatible + wxFlexGridSizer:wxFlexGridSizer() options have changed + wxDisplay:new() options have changed + wxCalendarDateAttr:new(ColText [,OptList]) have been + removed + wxBitmapButton:set/getBitmapSelected() have been + removed + + + Full runtime dependencies of wx-2.0: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of xmerl-1.4: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Alexander Clouter, Andrew Shymanel, Bruce Yinhe, Bryan Paxton, Cheng + Zhe, Erlend Hamberg, Filipe Cristovao, Frej Drejhammar, Henrik + Lagebrand, Jesper Eskilson, José Valim, Jérôme de Bretagne, + Linus.yuan, Luca Favatella, Luis Rascao, Luke Bakken, Maria-12648430, + Mariano Guerra, Mattias Hansson, Maxim Fedorov, Michał Muskała, + Mikael Pettersson, Paulo F. Oliveira, Philip Kuryloski, Philipp Klaus + Krause, Pierre Allix, Radek Szymczyszyn, Richard Carlsson, Ruud + Kamphuis, Stavros Aronis, Taras Halturin, Thomas Depierre, Tianon + Gravi, Viktor Söderqvist, Wojtek Mach, lagebr, vans163, yfractal, + Łukasz Niemier + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0-rc2.README.txt b/release-notes/OTP-24.0-rc2.README.txt new file mode 100644 index 0000000..4d19031 --- /dev/null +++ b/release-notes/OTP-24.0-rc2.README.txt @@ -0,0 +1,2965 @@ +Inital Release: OTP 24.0 +Git Tag: OTP-24.0 +Date: 2021-03-26 +Trouble Report Id: OTP-10391, OTP-13126, OTP-14485, OTP-14601, + OTP-14646, OTP-14647, OTP-14650, OTP-14700, + OTP-14793, OTP-15107, OTP-15523, OTP-16334, + OTP-16517, OTP-16560, OTP-16607, OTP-16611, + OTP-16653, OTP-16656, OTP-16678, OTP-16686, + OTP-16687, OTP-16698, OTP-16703, OTP-16706, + OTP-16712, OTP-16718, OTP-16720, OTP-16722, + OTP-16723, OTP-16724, OTP-16725, OTP-16749, + OTP-16750, OTP-16788, OTP-16793, OTP-16800, + OTP-16809, OTP-16811, OTP-16814, OTP-16822, + OTP-16824, OTP-16865, OTP-16867, OTP-16877, + OTP-16878, OTP-16879, OTP-16880, OTP-16881, + OTP-16882, OTP-16883, OTP-16884, OTP-16885, + OTP-16898, OTP-16905, OTP-16910, OTP-16926, + OTP-16936, OTP-16940, OTP-16943, OTP-16944, + OTP-16945, OTP-16947, OTP-16949, OTP-16950, + OTP-16952, OTP-16957, OTP-16963, OTP-16964, + OTP-16968, OTP-16970, OTP-16971, OTP-16974, + OTP-16980, OTP-16981, OTP-16986, OTP-16987, + OTP-16995, OTP-17001, OTP-17005, OTP-17007, + OTP-17014, OTP-17015, OTP-17020, OTP-17023, + OTP-17024, OTP-17028, OTP-17044, OTP-17049, + OTP-17051, OTP-17057, OTP-17059, OTP-17062, + OTP-17077, OTP-17078, OTP-17084, OTP-17092, + OTP-17095, OTP-17103, OTP-17104, OTP-17105, + OTP-17106, OTP-17117, OTP-17118, OTP-17120, + OTP-17121, OTP-17122, OTP-17123, OTP-17131, + OTP-17133, OTP-17140, OTP-17153, OTP-17156, + OTP-17168, OTP-17170, OTP-17171, OTP-17172, + OTP-17175, OTP-17177, OTP-17180, OTP-17181, + OTP-17183, OTP-17189, OTP-17192, OTP-17198, + OTP-17199, OTP-17201, OTP-17203, OTP-17206, + OTP-17207, OTP-17210, OTP-17213, OTP-17214, + OTP-17216, OTP-17217, OTP-17219, OTP-17221, + OTP-17222, OTP-17226, OTP-17236, OTP-17243, + OTP-17257, OTP-17259, OTP-17260, OTP-17262, + OTP-17263, OTP-17266, OTP-17267, OTP-17270, + OTP-17272, OTP-17275, OTP-17276, OTP-17277, + OTP-17278, OTP-17284, OTP-17286, OTP-17287, + OTP-17288 +Seq num: ERIERL-537, ERIERL-619, ERL-1113, ERL-1281, + ERL-1308, ERL-1313, ERL-1332, ERL-1335, + ERL-1348, ERL-1354, ERL-1367, ERL-1378, + ERL-1379, ERL-1380, ERL-1381, ERL-1418, + ERL-1430, ERL-1431, ERL-1450, ERL-1480, + ERL-892, GH-4019, GH-4033, GH-4360, GH-4469, + GH-4473, GH-4493, GH-4544, GH-4588, GH-4621, + GH-4626 +System: OTP +Release: 24 +Application: asn1-5.1, common_test-1.20.1, compiler-8.0, + crypto-5.0, debugger-5.1, dialyzer-4.4, + edoc-1.0, erl_docgen-1.1, erl_interface-5.0, + erts-12.0, et-1.7, ftp-1.1, inets-7.4, + jinterface-1.12, kernel-8.0, megaco-4.0, + mnesia-4.19.1, observer-2.9.6, odbc-2.13.4, + os_mon-2.7, parsetools-2.3, reltool-0.9, + runtime_tools-1.16.1, sasl-4.1, snmp-5.8.1, + ssh-4.12, ssl-10.4, stdlib-3.15, + syntax_tools-2.6, tftp-1.0.3, tools-3.5, + wx-2.0, xmerl-1.4 +Predecessor: OTP + + Check out the git tag OTP-24.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-15523 Application(s): ftp + Related Id(s): OTP-15352, PR-1968 + + Add support for FTPES (explicit FTP over TLS). + + + OTP-16611 Application(s): kernel + Related Id(s): OTP-16749 + + A compatibility adaptor for gen_tcp to use the new + socket API has been implemented (gen_tcp_socket). Used + when setting the kernel application variable + inet_backend = socket. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16706 Application(s): compiler + Related Id(s): ERL-1281 + + Variables bound between the keywords 'try' and 'of' can + now be used in the clauses following the 'of' keyword + (that is, in the success case when no exception was + raised). + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16800 Application(s): wx + + The application has been completely rewritten in order + to use wxWidgets version 3 as its base. + + Add basic documentation generated from the wxWidgets + project. + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** POTENTIAL INCOMPATIBILITY *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16885 Application(s): erts + Related Id(s): PR-2745 + + The BeamAsm JIT-compiler has been added to Erlang/OTP. + The JIT-compiler is enabled by default on most x86 + 64-bit platforms that have a C++ compiler that can + compile C++17. To verify that a JIT enabled emulator is + running you can use erlang:system_info(emu_flavor). + + For more information see the internal documentation of + BeamAsm in erts. + + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** POTENTIAL INCOMPATIBILITY *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-16964 Application(s): compiler + + Generators in list and binary comprehensions will now + raise a {bad_generator,Generator} exception if the + generator has an incorrect type (instead of raising an + ad-hoc badarg or badarih exception). Similarly, when a + filter does not evaluate to a boolean, a + {bad_filter,Filter} exception will be raised. Some + minor bugs in the compilation of binary comprehensions + have also been fixed. + + + OTP-16981 Application(s): compiler + Related Id(s): ERL-1113 + + Some compiler warnings, such as the warning for an + expression whose result is ignored, could not be + suppressed by assigning to a variable beginning with + '_', but only by assigning to the anonymous variable + ('_'). This has now been changed so that any warning + that can be suppressed by assigning to the anonymous + variable can also be suppressed by assigning to a + variable beginning with '_'. + + + OTP-17044 Application(s): ssl + Related Id(s): PR-2654 + + Make TLS handshakes in Erlang distribution concurrent. + + + OTP-17213 Application(s): wx + Related Id(s): PR-3027 + + Added support for wxWebView. + + + OTP-17226 Application(s): compiler + Related Id(s): GH-4019, PR-4545 + + The compiler will now inline funs that are used only + once immediately after their definition. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-15107 Application(s): stdlib + Related Id(s): ERL-1381, PR-2813 + + Time-outs in gen_statem with relative time 0 did not + behave quite according to the intended model. This has + now been corrected. + + The correction introduces a small potential + incompatibility e.g when combining a state time-out + with inserted events, and the inserted event does a + state change in the state with the time-out. Before + this correction the state time-out could be delivered + even after the second state change, but now it is + guaranteed that a state time-out is only delivered in + the state it was started for, even in this corner case. + + + OTP-16560 Application(s): megaco + + All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was + deprecated in OTP-23.0. They have now been removed. + + + OTP-16656 Application(s): crypto + + The functions and cipher names that were deprecated in + OTP-23.0 are now removed. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16809 Application(s): kernel + Related Id(s): ERL-1313 + + Change the value of the tag head returned by + disk_log:info/1 from {ok, Head} to just Head. + + + OTP-16811 Application(s): kernel + + Remove the support for distributed disk logs. The new + function disk_log:all/0 is to be used instead of + disk_log:accessible_logs/0. The function + disk_log:close/1 is to be used instead of + disk_log:lclose/1,2. + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** HIGHLIGHT *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16878 Application(s): erts + + The code loader has been rewritten in order to be able + to load JIT:ed code. As a consequence of this, it is no + longer possible to load HiPE code. + + + OTP-16943 Application(s): os_mon + Related Id(s): OTP-16906 + + The temporarily introduced configuration parameter + memsup_improved_system_memory_data has been removed. + + + OTP-16945 Application(s): erts + + Change escripts to output any errors or warnings to + standard error instead of standard out. + + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** HIGHLIGHT *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16968 Application(s): kernel + + The pg2 module has been removed. + + + OTP-16970 Application(s): erl_interface + + The registry functionality part of erl_interface has + been removed. It was as of OTP 23 deprecated and + scheduled for removal in OTP 24. + + + OTP-16971 Application(s): stdlib + + The filename:src/1 function which was deprecated in OTP + 20 has been removed. Use filelib:find_source/1,3 + instead. + + + OTP-16974 Application(s): ssl + + Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1 + use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3 + instead. + + + OTP-16987 Application(s): erts + + The erlang:monitor_node/2 BIF will now fail with a + notalive exception if distribution has not been started + on the current node; it used to fail with a badarg + exception. + + + OTP-17062 Application(s): kernel + Related Id(s): ERIERL-537, ERL-1418, GH-4469 + + Let disk_log:open/1 change the size if a wrap log is + opened for the first time, that is, the disk log + process does not exist, and the value of option size + does not match the current size of the disk log. + + + OTP-17156 Application(s): kernel + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + OTP-17216 Application(s): kernel + Related Id(s): PR-2989 + + The behaviour for gen_tcp:connect/3,4 has been changed + to not per default bind to an address, which allows the + network stack to delay the address and port selection + to when the remote address is known. This allows better + port re-use, and thus enables far more outgoing + connections, since the ephemeral port range no longer + has to be a hard limit. + + There is a theoretical possibility that this behaviour + change can affect the set of possible error values, or + have other small implications on some platforms. + + + OTP-17219 Application(s): wx + Related Id(s): OTP-16800 + + Due to the support of the new backend versions some API + incompatibilities have been introduced. Examples of + changes are: + + wxWindowDC default creators have been removed + wxClientDC default creators have been removed + wxPaintDC default creators have been removed + wxWindow:setVirtualSizeHints() has been deprecated in + wxWidgets and removed + wxWindow:makeModal() has been deprecated in wxWidgets + and removed + wxToolBar:add/insertTool without label have been + deprecated in wxWidgets and removed + wxStyledTextCtrl some functions have changed arguments + from boolean to int + wxSizerItem:new() Some arguments have become options + Removed deprecated wxSizerItem:setWindow() use + assignWindow() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSizer() use + assignSizer() + wxMenu append/insert/prepend have changed return value + and lost IsCheckable argument + wxListCtrl:setItem/4 changed return value + wxImage:convertToGreyscale() options have changed + wxGridSizer:wxGridSizer() options have changed + wxGrid API have many changes + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGraphicsRenderer:createPen() have been removed + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGLCanvas API is incompatible + wxFlexGridSizer:wxFlexGridSizer() options have changed + wxDisplay:new() options have changed + wxCalendarDateAttr:new(ColText [,OptList]) have been + removed + wxBitmapButton:set/getBitmapSelected() have been + removed + + + OTP-17259 Application(s): ssh + Related Id(s): ERIERL-619, OTP-16511 + + The RSA SHA1 sign/verify variants are disabled by + default. That is, ssh-rsa is disabled by default as + well as the SHA1 sign/verify with RSA keys from id_rsa + and ssh_host_rsa_key. All SHA2 sign/verify are enabled + by default. + + The reason is that SHA1 is now considered easy to + break. + + To enable RSA with SHA1, for example for a very old and + unsafe peer, see Example 9 in the User's Guide chapter + Configuring algorithms in SSH. + + + OTP-17275 Application(s): erts + Related Id(s): PR-4553 + + The erl command line arguments +Bi, +Bd, and +B + erroneously caused reception of the USR1 signal to + terminate the runtime system without creating a crash + dump. Reception of the USR1 signal now always cause + termination *with* creation of a crash dump, regardless + of command line arguments passed. This bug has existed + at least since OTP R5B. + + + --------------------------------------------------------------------- + --- OTP-24.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17272 Application(s): otp + Related Id(s): GH-4626, PR-4627 + + Updated autoconf auxiliary files. + + + OTP-17278 Application(s): otp + Related Id(s): GH-4621 + + Do not allow a mandatory application to be disabled + using the configure switch --without-appname. + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of asn1-5.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.20.1 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16940 Application(s): common_test + Related Id(s): ERL-1335 + + The option release_shell could crash when used together + with the spec option. + + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of common_test-1.20.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.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17104 Application(s): compiler + Related Id(s): ERL-1380 + + A repeated stack trace variable in a try/catch was not + rejected. The following example will now cause a + compilation error: + + try E catch _:A:A -> A end. + + + OTP-17118 Application(s): compiler, stdlib + Related Id(s): PR-2825 + + Eliminated a Dialyzer crashed when the -MMD option is + used to generate a dependency file and a BEAM file a + the same time. + + + OTP-17206 Application(s): compiler + + When the makedep option was given, the compiler would + crash if the dependency output contained non-latin1 + characters. The compiler will now output the dependency + information encoded in UTF-8 to avoid crashing. + + + --- Improvements and New Features --- + + OTP-10391 Application(s): compiler + Related Id(s): OTP-16226 + + Selective receive optimization will now be applied much + more often. + + The new recv_opt_info compile flag can be used to print + diagnostics relating to this optimization. + + You can read more about the selective receive + optimization in the Efficiency Guide. + + + OTP-16334 Application(s): compiler + + erlang:throw/1 will no longer build stack traces when + we can prove that they will never be inspected. + + + OTP-16706 Application(s): compiler + Related Id(s): ERL-1281 + + *** HIGHLIGHT *** + + Variables bound between the keywords 'try' and 'of' can + now be used in the clauses following the 'of' keyword + (that is, in the success case when no exception was + raised). + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16867 Application(s): compiler + Related Id(s): ERL-1354 + + Fixed a performance bug that made functions with lots + of try/after blocks slow to compile. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16964 Application(s): compiler + + *** HIGHLIGHT *** + + Generators in list and binary comprehensions will now + raise a {bad_generator,Generator} exception if the + generator has an incorrect type (instead of raising an + ad-hoc badarg or badarih exception). Similarly, when a + filter does not evaluate to a boolean, a + {bad_filter,Filter} exception will be raised. Some + minor bugs in the compilation of binary comprehensions + have also been fixed. + + + OTP-16981 Application(s): compiler + Related Id(s): ERL-1113 + + *** HIGHLIGHT *** + + Some compiler warnings, such as the warning for an + expression whose result is ignored, could not be + suppressed by assigning to a variable beginning with + '_', but only by assigning to the anonymous variable + ('_'). This has now been changed so that any warning + that can be suppressed by assigning to the anonymous + variable can also be suppressed by assigning to a + variable beginning with '_'. + + + OTP-17078 Application(s): compiler + Related Id(s): ERL-1430, PR-2918 + + The previously undocumented compiler options + warn_missing_spec and warn_missing_spec_all are now + documented. + + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + OTP-17168 Application(s): compiler + + Erlang source files not encoded in utf-8 will no longer + be accepted by the compiler unless it contains a + "coding: latin-1" comment. + + + OTP-17172 Application(s): compiler + + New compiler options from_abstr and no_lint have been + added. They are useful when implementing other + languages running on the BEAM. + + + OTP-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + OTP-17226 Application(s): compiler + Related Id(s): GH-4019, PR-4545 + + *** HIGHLIGHT *** + + The compiler will now inline funs that are used only + once immediately after their definition. + + + OTP-17260 Application(s): compiler + + It is now possible to disable warnings emitted from the + compiler's optimization passes with the new options + nowarn_opportunistic, nowarn_nomatch, nowarn_ignored, + and nowarn_failed. + + + Full runtime dependencies of compiler-8.0: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16882 Application(s): crypto + + Add /usr/local/opt/openssl to the openssl configure + search path. This path is where some tools on OS X + place openssl. + + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + --- Improvements and New Features --- + + OTP-16656 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + The functions and cipher names that were deprecated in + OTP-23.0 are now removed. + + + OTP-17001 Application(s): crypto + Related Id(s): PR-2852 + + Removed installed directory priv/obj/ containing + superfluous object files. + + + Full runtime dependencies of crypto-5.0: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + Full runtime dependencies of debugger-5.1: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16883 Application(s): dialyzer + + Some internal HiPE modules have been moved into the + dialyzer application so that dialyzer works when HiPE + is disabled. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16986 Application(s): dialyzer + Related Id(s): ERL-1379, ERL-1480, GH-4033 + + Add warning option no_underspecs. + + + OTP-16995 Application(s): dialyzer + Related Id(s): ERL-1348 + + Report filename and location for warnings returned due + to the -Wunknown option. When used from the + command-line, one location per file is printed. + + + OTP-17084 Application(s): dialyzer + + Add types and specifications for documentation. + + + OTP-17177 Application(s): dialyzer + Related Id(s): OTP-16824 + + Add option error_location. The option is recognized if + included in the environment variable + ERL_COMPILER_OPTIONS. + + + OTP-17183 Application(s): dialyzer + Related Id(s): ERL-892, GH-4493 + + Clarify how to declare records used in match patterns. + + + Full runtime dependencies of dialyzer-4.4: compiler-7.0, erts-9.0, + kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-1.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17092 Application(s): edoc + + Fix so that the edoc_doclet option file_suffix also + effects the links emitted into the module index. + + + --- Improvements and New Features --- + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-17095 Application(s): edoc + Related Id(s): PR-2914 + + Edoc has been updated to use -spec to document its own + interface instead of @doc@ tags. + + Together with this change the inter-application linking + for -spec style documentation has been improved. + + + OTP-17153 Application(s): edoc + Related Id(s): PR-2674 + + Allow user defined edoc macros to be functions. + + + Full runtime dependencies of edoc-1.0: erts-6.0, inets-5.10, + kernel-3.0, stdlib-3.15, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_docgen-1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17122 Application(s): erl_docgen, stdlib + + Fixed bug in shell_docs and erl_docgen that interpreted + em tags as strong. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17257 Application(s): erl_docgen + + Fix bug where see* elements within type/name were + removed when generating html. Bug has been present + since OTP-21. + + + --- Improvements and New Features --- + + OTP-16877 Application(s): erl_docgen + + Add support for displaying .svg images. + + + OTP-17192 Application(s): erl_docgen + Related Id(s): PR-2803 + + Updated the way specs are generated after changes in + edoc. + + + Full runtime dependencies of erl_docgen-1.1: edoc-1.0, erts-9.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.0 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16970 Application(s): erl_interface + + *** POTENTIAL INCOMPATIBILITY *** + + The registry functionality part of erl_interface has + been removed. It was as of OTP 23 deprecated and + scheduled for removal in OTP 24. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17270 Application(s): erl_interface + Related Id(s): OTP-17127 + + Support the new link protocol in order to be able to + phase out the old link protocol in the future. + erl_interface does not support setting up or removing + links from the erl_interface side, so the bug present + with the old protocol did not effect erl_interface. + This since both participants of a link simultaneously + needed to operate on the link in order to trigger the + bug. + + + --- 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-12.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16822 Application(s): erts + Related Id(s): PR-2723 + + file:open/2 now throws an badarg error when opened with + both the ram and raw options. + + + OTP-16879 Application(s): erts + + The estone benchmark has been updated to better reflect + changes in the compiler and run-time system. + + + OTP-16880 Application(s): erts + + Fix profile guided optimization of run-time system when + using GCC 7 or later. + + + OTP-16884 Application(s): erts + + Fix double close of fd when creating crash dump. + + + OTP-17014 Application(s): erts + + Improve erl error message when unable to open included + args_file. + + + OTP-17020 Application(s): erts + + Remove warning text about the -- operation from + documentation + + The -- operation was optimized in Erlang/OTP 22 so that + its worst case complexity is O(N*log(N)), where N is + the total size of the input lists. Therefore, the + warning in the documentation saying that the time + complexity is proportional to length(A)*length(B) is + incorrect and is no longer needed. Notice that + Erlang/OTP 21 will no longer be supported when + Erlang/OTP 24 gets released. + + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + OTP-17131 Application(s): erts + Related Id(s): GH-4360, PR-3031 + + Windows process erl.exe killed if its service process + erlsrv.exe terminates. + + + OTP-17275 Application(s): erts + Related Id(s): PR-4553 + + *** POTENTIAL INCOMPATIBILITY *** + + The erl command line arguments +Bi, +Bd, and +B + erroneously caused reception of the USR1 signal to + terminate the runtime system without creating a crash + dump. Reception of the USR1 signal now always cause + termination *with* creation of a crash dump, regardless + of command line arguments passed. This bug has existed + at least since OTP R5B. + + + --- Improvements and New Features --- + + OTP-14601 Application(s): erts, kernel + Related Id(s): OTP-16749, PR-2641, PR-2670 + + The experimental socket module can now use any protocol + (by name) the OS supports. Suggested in PR-2641, + implemented in PR-2670. + + + OTP-16653 Application(s): erts + + The deprecated function erlang:get_stacktrace/0 has + been removed. Use the new syntax in try/catch to + retrieve the stack backtrace. + + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16687 Application(s): erts + Related Id(s): PR-2762, PR-2996 + + The erlang module documentation has been updated to + improve clarity and description of edge cases. + + + OTP-16703 Application(s): erts, kernel + Related Id(s): PR-2620 + + An example implementation of Erlang distribution over + UDS using distribution processes has been introduced. + + Thanks to Jérôme de Bretagne + + + OTP-16712 Application(s): erts + + Improve code generation when creating funs by adding a + new beam instruction make_fun3 that does not do GC and + allows for better register allocation. + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16788 Application(s): erts + + Remove old unused +MYm and ERL_MALLOC_LIB options. + + + OTP-16814 Application(s): erts + Related Id(s): PR-2704 + + Increase timer resolution on windows. + + + OTP-16878 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The code loader has been rewritten in order to be able + to load JIT:ed code. As a consequence of this, it is no + longer possible to load HiPE code. + + + OTP-16881 Application(s): erts + + Add support in the Erlang/OTP build system to generate + a compilation database that can be used by third-party + tools (such as irony in Emacs) to compile the erts C + and C++ source code. Create the database using make + compdb. + + + OTP-16885 Application(s): erts + Related Id(s): PR-2745 + + *** HIGHLIGHT *** + + The BeamAsm JIT-compiler has been added to Erlang/OTP. + The JIT-compiler is enabled by default on most x86 + 64-bit platforms that have a C++ compiler that can + compile C++17. To verify that a JIT enabled emulator is + running you can use erlang:system_info(emu_flavor). + + For more information see the internal documentation of + BeamAsm in erts. + + + OTP-16898 Application(s): erts + Related Id(s): OTP-16856 + + By default all ERTS internal memory allocators based on + alloc_util will now use their own separate carrier pool + for migration of carriers instead of using a node + global carrier pool. This was the default behavior + between OTP 17 and OTP 21, but changed to use a node + global carrier pool as of OTP 22.0. Usage of the node + global carrier pool proved troublesome since it had a + tendency to spread long lived blocks into allocators + with normally short lived blocks causing increased + memory fragmentation. The node global carrier pool + behavior as well as other behaviors can be configured + using the +M<S>cp command line argument. + + + OTP-16936 Application(s): erts, stdlib + Related Id(s): ERL-1367 + + New functions have been added to the maps module: + merge_with/3, intersect/2, intersect_with/3, + filtermap/2, from_keys/2, and maps:foreach/2. + + maps:merge_with/3 is the same as merge/2 but takes an + extra fun that is used to combine items with the same + key. + + maps:intersect/2 computes the intersection of two maps. + + maps:intersect_with/3 is the same as intersect/2 but + takes an extra fun that is used to combine intersecting + items. + + maps:filtermap/2 allows filtering and mapping of a map + in a single pass. + + maps:from_keys/2 constructs a map from a list of keys + and a single value and can be used to to optimize sets + operations such as from_list/1, filter/2, + intersection/2, and subtract/2. + + maps:foreach/2 allows iteration over a map without + returning any value. + + + OTP-16945 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Change escripts to output any errors or warnings to + standard error instead of standard out. + + + OTP-16952 Application(s): erts, kernel + + A new erl parameter for specifying a file descriptor + with configuration data has been added. This makes it + possible to pass the parameter "-configfd FD" when + executing the erl command. When this option is given, + the system will try to read and parse configuration + parameters from the file descriptor. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16980 Application(s): erts, stdlib + Related Id(s): ERL-1308 + + The pretty printer for floating point number have been + changed to make it easier to see if the integer part of + the number has been rounded. After the change the digit + that may have been rounded always appears last or just + before the exponent character (e or E). This is + accomplished by always printing the number using + scientific notation if it is so large that the integer + part could be rounded. + + + OTP-16987 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The erlang:monitor_node/2 BIF will now fail with a + notalive exception if distribution has not been started + on the current node; it used to fail with a badarg + exception. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17028 Application(s): erts + + One can now pass the ERL_ROOTDIR environment variable + to the erl and start scrips. This makes it easier to + use Erlang for Android apps. On Android, apps don't + control where they will be installed. + + + OTP-17057 Application(s): erts, stdlib + + All long running functions in the maps API are now + yielding. In previous releases the functions + maps:from_list/1, maps:keys/1 and maps:values/1 did not + yield. This could cause unfair scheduling of processes. + + + OTP-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + Full runtime dependencies of erts-12.0: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- et-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + 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.1 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16926 Application(s): ftp + Related Id(s): ERL-1450, GH-4473 + + Use OTP supervisor as intended, avoiding surprising + behavior as the killing of the user's process. Also, + FTP state handling logic is improved to avoid race + conditions that could result in unexpected errors. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + --- Improvements and New Features --- + + OTP-15523 Application(s): ftp + Related Id(s): OTP-15352, PR-1968 + + *** HIGHLIGHT *** + + Add support for FTPES (explicit FTP over TLS). + + + Full runtime dependencies of ftp-1.1: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-7.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16722 Application(s): inets + + Drop all support for ftp and tftp in inets code. + + + OTP-16723 Application(s): inets + + Deprecate following functions in httpd_util module: + flatlength/1, lhexlist_to_integer/1, + integer_to_hexlist/1, strip/1, and suffix/1. + + + OTP-16724 Application(s): inets + + Remove support of HTTP 0.9 in httpd. + + + OTP-16725 Application(s): inets + + Remove support of HTTP 0.9 in httpc. + + + Full runtime dependencies of inets-7.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.12 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17170 Application(s): jinterface + Related Id(s): PR-3005 + + Make OtpErlangExternalFun's fields module, function and + arity public. + + + --------------------------------------------------------------------- + --- kernel-8.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14700 Application(s): kernel + Related Id(s): PR-2848 + + A bug has been fixed for the internal inet_res resolver + cache that handled a resolver configuration file status + timer incorrectly and caused performance problems due + to many unnecessary file system accesses. + + + OTP-16809 Application(s): kernel + Related Id(s): ERL-1313 + + *** POTENTIAL INCOMPATIBILITY *** + + Change the value of the tag head returned by + disk_log:info/1 from {ok, Head} to just Head. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17262 Application(s): kernel + Related Id(s): GH-4588, OTP-16487, PR-4604 + + inet:get_rc/0 has been corrected to return host entries + as separate entries instead of (incorrectly) in a list + within the list. This bug was introduced by OTP-16487 + in OTP-23.0-rc1. + + + OTP-17277 Application(s): kernel + + The type gen_tcp:option_name() had a duplicate + pktoptions value. + + + OTP-17286 Application(s): kernel + Related Id(s): PR-4619 + + Fixed removal of empty groups from internal state in + pg. + + + OTP-17287 Application(s): kernel + Related Id(s): PR-4581 + + erl -remsh now prints an error message when it fails to + connect to the remote node. + + + OTP-17288 Application(s): kernel + Related Id(s): PR-4581 + + Fix bugs related to corrupt shell history files. + + Error messages printed by shell history are now logged + as logger error reports instead of written to standard + error. + + + --- Improvements and New Features --- + + OTP-13126 Application(s): kernel + Related Id(s): PR-3041 + + The cache used by the DNS resolver inet_res has been + improved to use ETS lookups instead of server calls. + This is a considerable speed improvement for cache + hits. + + + OTP-14485 Application(s): kernel + Related Id(s): PR-2891 + + The cache ETS table type for the internal DNS resolver + inet_res has changed type (internally) to get better + speed and atomicity. + + + OTP-14601 Application(s): erts, kernel + Related Id(s): OTP-16749, PR-2641, PR-2670 + + The experimental socket module can now use any protocol + (by name) the OS supports. Suggested in PR-2641, + implemented in PR-2670. + + + OTP-16517 Application(s): kernel + Related Id(s): PR-2827 + + The DNS resolver inet_res has been updated to support + CAA (RFC 6844) and URI (RFC 7553) records. + + + OTP-16611 Application(s): kernel + Related Id(s): OTP-16749 + + *** HIGHLIGHT *** + + A compatibility adaptor for gen_tcp to use the new + socket API has been implemented (gen_tcp_socket). Used + when setting the kernel application variable + inet_backend = socket. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16698 Application(s): kernel + Related Id(s): PR-2634 + + The file server can now be bypassed in file:delete/1,2 + with the raw option. + + + OTP-16703 Application(s): erts, kernel + Related Id(s): PR-2620 + + An example implementation of Erlang distribution over + UDS using distribution processes has been introduced. + + Thanks to Jérôme de Bretagne + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16793 Application(s): kernel + Related Id(s): ERL-1332, PR-2740 + + New function os:env/0 returns all OS environment + variables as a list of 2-tuples. + + + OTP-16811 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Remove the support for distributed disk logs. The new + function disk_log:all/0 is to be used instead of + disk_log:accessible_logs/0. The function + disk_log:close/1 is to be used instead of + disk_log:lclose/1,2. + + + OTP-16947 Application(s): kernel + Related Id(s): PR-2781 + + Expand the spec for erl_epmd:listen_port_please/2 to + mirror erl_epmd:port_please/2. + + + OTP-16952 Application(s): erts, kernel + + A new erl parameter for specifying a file descriptor + with configuration data has been added. This makes it + possible to pass the parameter "-configfd FD" when + executing the erl command. When this option is given, + the system will try to read and parse configuration + parameters from the file descriptor. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16968 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The pg2 module has been removed. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17015 Application(s): kernel + + Allow utf-8 binaries as parts of logger_formatter + template. + + + OTP-17062 Application(s): kernel + Related Id(s): ERIERL-537, ERL-1418, GH-4469 + + *** POTENTIAL INCOMPATIBILITY *** + + Let disk_log:open/1 change the size if a wrap log is + opened for the first time, that is, the disk log + process does not exist, and the value of option size + does not match the current size of the disk log. + + + OTP-17103 Application(s): kernel + Related Id(s): PR-2949 + + Allow the shell history of an erlang node to be fetched + and stores using a custom callback module. See + shell_history configuration parameter in the kernel + documentation for more details. + + + OTP-17106 Application(s): kernel + Related Id(s): PR-2885 + + The simple logger (used to log events that happen + before kernel has been started) has been improved to + print prettier error messages. + + + OTP-17156 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + OTP-17181 Application(s): kernel + Related Id(s): PR-2457 + + Added support in logger for setting primary metadata. + The primary metadata is passed as a base metadata to + all log events in the system. See Metadata in the + Logger chapter of the Kernel User's Guide for more + details. + + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + OTP-17198 Application(s): kernel + Related Id(s): PR-2721 + + The Fun's passed to logger:log/2,3,4 can now return + metadata that will only be fetched when needed. See + logger:log/2,3,4 for more details. + + + OTP-17201 Application(s): kernel + Related Id(s): PR-4534 + + erpc:multicall() has been rewritten to be able to + utilize the newly introduced and improved + reference/receive optimization. + + + OTP-17203 Application(s): kernel + Related Id(s): OTP-17156 + + Add utility fiunction inet:info/1 to provide + miscellaneous info about a socket. + + + OTP-17216 Application(s): kernel + Related Id(s): PR-2989 + + *** POTENTIAL INCOMPATIBILITY *** + + The behaviour for gen_tcp:connect/3,4 has been changed + to not per default bind to an address, which allows the + network stack to delay the address and port selection + to when the remote address is known. This allows better + port re-use, and thus enables far more outgoing + connections, since the ephemeral port range no longer + has to be a hard limit. + + There is a theoretical possibility that this behaviour + change can affect the set of possible error values, or + have other small implications on some platforms. + + + OTP-17266 Application(s): kernel + Related Id(s): PR-4564 + + An option {nxdomain_reply, boolean()} has been + implemented in the DNS resolver inet_res. It is useful + since an nxdomain error from a name server does contain + the SOA record if the domain exists at all. This record + is useful to determine a TTL for negative caching of + the failed entry. + + + OTP-17284 Application(s): kernel + Related Id(s): PR-4615 + + Optimized lookup of local processes part of groups in + pg. + + + Full runtime dependencies of kernel-8.0: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-4.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16560 Application(s): megaco + + *** POTENTIAL INCOMPATIBILITY *** + + All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was + deprecated in OTP-23.0. They have now been removed. + + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of megaco-4.0: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.19.1 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17217 Application(s): mnesia + + Suppression of deprecation warnings has been added to + the source files of the Mnesia application. + + + Full runtime dependencies of mnesia-4.19.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.9.6 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17214 Application(s): observer + + Updated gui parts to work with the new wx version. + + + Full runtime dependencies of observer-2.9.6: erts-11.0, et-1.5, + kernel-7.0, runtime_tools-1.8.14, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.13.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + Full runtime dependencies of odbc-2.13.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16943 Application(s): os_mon + Related Id(s): OTP-16906 + + *** POTENTIAL INCOMPATIBILITY *** + + The temporarily introduced configuration parameter + memsup_improved_system_memory_data has been removed. + + + OTP-16944 Application(s): os_mon + Related Id(s): PR-2787 + + Fix disk_sup to also search the system PATH on linux + when looking for the df program. + + + Full runtime dependencies of os_mon-2.7: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16957 Application(s): parsetools, tools + + Add types and specifications for documentation. + + + OTP-17023 Application(s): parsetools + + Let Leex and Yecc recognize the environment variable + ERL_COMPILER_OPTIONS. Add Yecc option {error_location, + column | line}. + + + Full runtime dependencies of parsetools-2.3: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- reltool-0.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + Full runtime dependencies of reltool-0.9: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.16.1 -------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of runtime_tools-1.16.1: erts-11.0, + kernel-7.0, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + Full runtime dependencies of sasl-4.1: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.8.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of snmp-5.8.1: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.12 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + --- Improvements and New Features --- + + OTP-16750 Application(s): ssh + + Removed usage of erlang:is_port/1 from the SSH + implementation. + + + OTP-17051 Application(s): ssh + + Internal connection setup refactoring. + + + OTP-17140 Application(s): ssh + + Refactor SSH fsm into a (hopefully) more comprehensible + set of gen_statem callback-files. + + + OTP-17259 Application(s): ssh + Related Id(s): ERIERL-619, OTP-16511 + + *** POTENTIAL INCOMPATIBILITY *** + + The RSA SHA1 sign/verify variants are disabled by + default. That is, ssh-rsa is disabled by default as + well as the SHA1 sign/verify with RSA keys from id_rsa + and ssh_host_rsa_key. All SHA2 sign/verify are enabled + by default. + + The reason is that SHA1 is now considered easy to + break. + + To enable RSA with SHA1, for example for a very old and + unsafe peer, see Example 9 in the User's Guide chapter + Configuring algorithms in SSH. + + + Full runtime dependencies of ssh-4.12: crypto-4.6.4, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.4.1 + + + --------------------------------------------------------------------- + --- ssl-10.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + --- Improvements and New Features --- + + OTP-16974 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1 + use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3 + instead. + + + OTP-17044 Application(s): ssl + Related Id(s): PR-2654 + + *** HIGHLIGHT *** + + Make TLS handshakes in Erlang distribution concurrent. + + + OTP-17117 Application(s): ssl + Related Id(s): PR-2933 + + Randomize internal {active,n} optimization when running + Erlang distribution over TLS to spread RAM/CPU spike + that may occur when starting up a big cluster. + + + Full runtime dependencies of ssl-10.4: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.15 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15107 Application(s): stdlib + Related Id(s): ERL-1381, PR-2813 + + *** POTENTIAL INCOMPATIBILITY *** + + Time-outs in gen_statem with relative time 0 did not + behave quite according to the intended model. This has + now been corrected. + + The correction introduces a small potential + incompatibility e.g when combining a state time-out + with inserted events, and the inserted event does a + state change in the state with the time-out. Before + this correction the state time-out could be delivered + even after the second state change, but now it is + guaranteed that a state time-out is only delivered in + the state it was started for, even in this corner case. + + + OTP-16865 Application(s): stdlib + + Fix bugs in erl_eval concerning bitstring + comprehensions. + + + OTP-16905 Application(s): stdlib + + File names that start with a dot (such as ".gitignore" + are now treated as file names and not extensions by + filename:extension/1 and filename:rootname/1. + + + OTP-16950 Application(s): stdlib + Related Id(s): ERL-1378 + + Fixed a bug where beam_lib:chunks/3 with the + allow_missing_chunks option would crash if a named + chunk was missing. + + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17118 Application(s): compiler, stdlib + Related Id(s): PR-2825 + + Eliminated a Dialyzer crashed when the -MMD option is + used to generate a dependency file and a BEAM file a + the same time. + + + OTP-17122 Application(s): erl_docgen, stdlib + + Fixed bug in shell_docs and erl_docgen that interpreted + em tags as strong. + + + OTP-17133 Application(s): stdlib + + On Solaris, the math:acos/1 and math:asin/1 functions + would not fail for arguments outside the valid domain. + + + OTP-17222 Application(s): stdlib + Related Id(s): GH-4544 + + Documented a deficiency in the re module regarding the + [:ascii:] character class matching Latin-1 characters. + + + --- Improvements and New Features --- + + OTP-14646 Application(s): stdlib + Related Id(s): PR-2920 + + In the rand module it is now possible to seed the + default algorithm using an algorithm alias: default. + + Generating pseudo random binaries has been implemented + with rand:bytes/1 and rand:bytes_s/2. + + + OTP-14647 Application(s): stdlib + Related Id(s): PR-2910 + + New functions have been added to the proplists module: + to_map/1,2 and from_map/1. + + + OTP-14650 Application(s): stdlib + Related Id(s): PR-2850 + + New functions have been added to the queue module: + all/2, any/2, delete/2, delete_r/2, delete_with/2, and + delete_with_r/2. + + + OTP-14793 Application(s): stdlib + Related Id(s): PR-2791 + + New function have been added to the queue module: + fold/2 and filtermap/2. + + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16910 Application(s): stdlib + Related Id(s): PR-2771 + + Improved documentation about exit signals emitted when + a gen_server terminates. + + + OTP-16936 Application(s): erts, stdlib + Related Id(s): ERL-1367 + + New functions have been added to the maps module: + merge_with/3, intersect/2, intersect_with/3, + filtermap/2, from_keys/2, and maps:foreach/2. + + maps:merge_with/3 is the same as merge/2 but takes an + extra fun that is used to combine items with the same + key. + + maps:intersect/2 computes the intersection of two maps. + + maps:intersect_with/3 is the same as intersect/2 but + takes an extra fun that is used to combine intersecting + items. + + maps:filtermap/2 allows filtering and mapping of a map + in a single pass. + + maps:from_keys/2 constructs a map from a list of keys + and a single value and can be used to to optimize sets + operations such as from_list/1, filter/2, + intersection/2, and subtract/2. + + maps:foreach/2 allows iteration over a map without + returning any value. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16971 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The filename:src/1 function which was deprecated in OTP + 20 has been removed. Use filelib:find_source/1,3 + instead. + + + OTP-16980 Application(s): erts, stdlib + Related Id(s): ERL-1308 + + The pretty printer for floating point number have been + changed to make it easier to see if the integer part of + the number has been rounded. After the change the digit + that may have been rounded always appears last or just + before the exponent character (e or E). This is + accomplished by always printing the number using + scientific notation if it is so large that the integer + part could be rounded. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17024 Application(s): stdlib + + Add option location to erl_parse:abstract/2. + + + OTP-17057 Application(s): erts, stdlib + + All long running functions in the maps API are now + yielding. In previous releases the functions + maps:from_list/1, maps:keys/1 and maps:values/1 did not + yield. This could cause unfair scheduling of processes. + + + OTP-17059 Application(s): stdlib + Related Id(s): PR-2864 + + The sets module now has an optional map-based + implementation, as described in EEP 50. + + To use this implementation, pass the {version,2} option + to sets:new/1 or sets:from_list/2. + + + OTP-17120 Application(s): stdlib + + Added shell_docs:supported_tags/0. This function can be + used to retrieve the tags currently supported by + shell_docs. + + + OTP-17121 Application(s): stdlib + + The application/erlang+html documentation storage + format used by shell_docs has been updated to include + the tags b, strong, h4, h5 and h6. + + + OTP-17171 Application(s): stdlib + Related Id(s): PR-3011 + + Improved explanation of {continue,Continue} in + Module:init/1 of the gen_server documentation. + + + OTP-17175 Application(s): stdlib + + The erl_eval module now accepts a map for keeping track + of bindings. Using an orddict for bindings will still + work. + + + OTP-17199 Application(s): stdlib + Related Id(s): PR-2658 + + Documented epp:scan_erl_form/1 and added + epp:scan_file/2. + + + OTP-17210 Application(s): stdlib + + The standard floating point printing algorithm used by + the io and io_lib modules has been changed from the + algorithm described in [1] to the Ryu algorithm [2]. + This gives a significant speed improvement for the + printing of most floating point numbers and a small + memory consumption improvement. + + [1]: Robert G. Burger and R. Kent Dybvig. 1996. + Printing floating-point numbers quickly and accurately. + In Proceedings of the ACM SIGPLAN 1996 conference on + Programming language design and implementation (PLDI + '96). Association for Computing Machinery, New York, + NY, USA, 108–116. + DOI:https://doi.org/10.1145/231379.231397 + + [2]: Ulf Adams. 2018. Ryū: fast float-to-string + conversion. In Proceedings of the 39th ACM SIGPLAN + Conference on Programming Language Design and + Implementation (PLDI 2018). Association for Computing + Machinery, New York, NY, USA, 270–282. + DOI:https://doi.org/10.1145/3192366.3192369 + + Thanks to Thomas Depierre + + + OTP-17236 Application(s): stdlib + Related Id(s): PR-3014 + + Add hex encoding and decoding functions in the binary + module. + + + OTP-17263 Application(s): stdlib + + The undocumented and partially broken ets:filter/3 + function has been removed. + + + OTP-17267 Application(s): stdlib + + Add support in shell_docs to display any "text" + documentation format. This means that h(Module) in the + shell now can display the "text/markdown" of Elixir + documentation. + + + OTP-17276 Application(s): stdlib + Related Id(s): PR-2979 + + The internal hashing of keys within ETS tables of types + set, bag, duplicate_bag has been salted to diverge from + erlang:phash2. This to avoid bad hashing if phash2 is + used to distribute the keys over separate tables/nodes. + + + Full runtime dependencies of stdlib-3.15: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.6 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-17180 Application(s): syntax_tools + + The igor and erl_tidy modules have been the removed and + are now maintained by their original author Richard + Carlsson. They can be found at github.com/richcarl/igor + and github.com/richcarl/erl_tidy, respectively. + + + Full runtime dependencies of syntax_tools-2.6: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tftp-1.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + Full runtime dependencies of tftp-1.0.3: erts-6.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- tools-3.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17221 Application(s): tools + Related Id(s): PR-4547 + + For cover-compiled code, the error behaviour of list + and binary comprehensions that used andalso/orelse in + guards could be changed so that a filter that was + supposed be evaluated in guard context was evaluated in + body context. That is, there was a possibility that + comprehensions that did not raise exceptions could + raise exceptions when being run using cover. + + + --- Improvements and New Features --- + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16957 Application(s): parsetools, tools + + Add types and specifications for documentation. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of tools-3.5: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.0 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + --- Improvements and New Features --- + + OTP-16800 Application(s): wx + + *** HIGHLIGHT *** + + The application has been completely rewritten in order + to use wxWidgets version 3 as its base. + + Add basic documentation generated from the wxWidgets + project. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17213 Application(s): wx + Related Id(s): PR-3027 + + *** HIGHLIGHT *** + + Added support for wxWebView. + + + OTP-17219 Application(s): wx + Related Id(s): OTP-16800 + + *** POTENTIAL INCOMPATIBILITY *** + + Due to the support of the new backend versions some API + incompatibilities have been introduced. Examples of + changes are: + + wxWindowDC default creators have been removed + wxClientDC default creators have been removed + wxPaintDC default creators have been removed + wxWindow:setVirtualSizeHints() has been deprecated in + wxWidgets and removed + wxWindow:makeModal() has been deprecated in wxWidgets + and removed + wxToolBar:add/insertTool without label have been + deprecated in wxWidgets and removed + wxStyledTextCtrl some functions have changed arguments + from boolean to int + wxSizerItem:new() Some arguments have become options + Removed deprecated wxSizerItem:setWindow() use + assignWindow() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSizer() use + assignSizer() + wxMenu append/insert/prepend have changed return value + and lost IsCheckable argument + wxListCtrl:setItem/4 changed return value + wxImage:convertToGreyscale() options have changed + wxGridSizer:wxGridSizer() options have changed + wxGrid API have many changes + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGraphicsRenderer:createPen() have been removed + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGLCanvas API is incompatible + wxFlexGridSizer:wxFlexGridSizer() options have changed + wxDisplay:new() options have changed + wxCalendarDateAttr:new(ColText [,OptList]) have been + removed + wxBitmapButton:set/getBitmapSelected() have been + removed + + + Full runtime dependencies of wx-2.0: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of xmerl-1.4: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Alexander Clouter, Andreas Schultz, Bryan Paxton, Cheng Zhe, Dominic + Letz, Erlend Hamberg, Filipe Cristovao, Frej Drejhammar, Henrik + Lagebrand, Jesper Eskilson, Jonathan Klabunde Tomer, José Valim, + Jérôme de Bretagne, Linus.yuan, Luca Favatella, Luis Rascao, Luke + Bakken, Maria-12648430, Mariano Guerra, Mattias Hansson, Max + Nordlund, Maxim Fedorov, Michał Muskała, Mikael Pettersson, Nalin + Ranjan, Nico Piderman, Oskar, Paulo F. Oliveira, Philip Kuryloski, + Philipp Klaus Krause, Pierre Allix, Radek Szymczyszyn, Richard + Carlsson, Ruud Kamphuis, Stavros Aronis, Taras Halturin, Thomas + Depierre, Tianon Gravi, Tony Rogvall, Viktor Söderqvist, Wojtek Mach, + Zeyu Zhang, ergl, gearnode, ilya-klyuchnikov, lagebr, vans163, + yfractal, Łukasz Niemier + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0-rc3.README.txt b/release-notes/OTP-24.0-rc3.README.txt new file mode 100644 index 0000000..f20b91f --- /dev/null +++ b/release-notes/OTP-24.0-rc3.README.txt @@ -0,0 +1,3215 @@ +Inital Release: OTP 24.0 +Git Tag: OTP-24.0 +Date: 2021-04-21 +Trouble Report Id: OTP-10391, OTP-13126, OTP-14485, OTP-14601, + OTP-14646, OTP-14647, OTP-14650, OTP-14700, + OTP-14793, OTP-15107, OTP-15523, OTP-16334, + OTP-16517, OTP-16560, OTP-16607, OTP-16611, + OTP-16653, OTP-16656, OTP-16678, OTP-16686, + OTP-16687, OTP-16698, OTP-16703, OTP-16706, + OTP-16712, OTP-16718, OTP-16720, OTP-16722, + OTP-16723, OTP-16724, OTP-16725, OTP-16749, + OTP-16750, OTP-16788, OTP-16793, OTP-16800, + OTP-16809, OTP-16811, OTP-16814, OTP-16822, + OTP-16824, OTP-16865, OTP-16867, OTP-16877, + OTP-16878, OTP-16879, OTP-16880, OTP-16881, + OTP-16882, OTP-16883, OTP-16884, OTP-16885, + OTP-16898, OTP-16905, OTP-16910, OTP-16926, + OTP-16936, OTP-16940, OTP-16943, OTP-16944, + OTP-16945, OTP-16947, OTP-16949, OTP-16950, + OTP-16952, OTP-16957, OTP-16963, OTP-16964, + OTP-16968, OTP-16970, OTP-16971, OTP-16974, + OTP-16980, OTP-16981, OTP-16986, OTP-16987, + OTP-16995, OTP-17001, OTP-17005, OTP-17007, + OTP-17014, OTP-17015, OTP-17020, OTP-17023, + OTP-17024, OTP-17028, OTP-17044, OTP-17049, + OTP-17051, OTP-17057, OTP-17059, OTP-17062, + OTP-17077, OTP-17078, OTP-17084, OTP-17092, + OTP-17095, OTP-17103, OTP-17104, OTP-17105, + OTP-17106, OTP-17117, OTP-17118, OTP-17120, + OTP-17121, OTP-17122, OTP-17123, OTP-17131, + OTP-17132, OTP-17133, OTP-17140, OTP-17153, + OTP-17156, OTP-17168, OTP-17169, OTP-17170, + OTP-17171, OTP-17172, OTP-17175, OTP-17177, + OTP-17180, OTP-17181, OTP-17183, OTP-17186, + OTP-17189, OTP-17192, OTP-17198, OTP-17199, + OTP-17201, OTP-17203, OTP-17206, OTP-17207, + OTP-17210, OTP-17213, OTP-17214, OTP-17216, + OTP-17217, OTP-17219, OTP-17221, OTP-17222, + OTP-17226, OTP-17236, OTP-17243, OTP-17257, + OTP-17259, OTP-17260, OTP-17262, OTP-17263, + OTP-17266, OTP-17267, OTP-17270, OTP-17272, + OTP-17275, OTP-17276, OTP-17277, OTP-17278, + OTP-17284, OTP-17285, OTP-17286, OTP-17287, + OTP-17288, OTP-17292, OTP-17293, OTP-17294, + OTP-17300, OTP-17302, OTP-17310, OTP-17312, + OTP-17313, OTP-17314, OTP-17315, OTP-17321, + OTP-17322, OTP-17327, OTP-17329, OTP-17330, + OTP-17334, OTP-17341, OTP-17342, OTP-17343 +Seq num: ERIERL-537, ERIERL-619, ERL-1113, ERL-1281, + ERL-1308, ERL-1313, ERL-1332, ERL-1335, + ERL-1348, ERL-1354, ERL-1367, ERL-1378, + ERL-1379, ERL-1380, ERL-1381, ERL-1418, + ERL-1430, ERL-1431, ERL-1450, ERL-1480, + ERL-892, GH-4019, GH-4033, GH-4360, GH-4469, + GH-4473, GH-4493, GH-4525, GH-4544, GH-4588, + GH-4621, GH-4624, GH-4626, GH-4725 +System: OTP +Release: 24 +Application: asn1-5.1, common_test-1.20.1, compiler-8.0, + crypto-5.0, debugger-5.1, dialyzer-4.4, + edoc-1.0, erl_docgen-1.1, erl_interface-5.0, + erts-12.0, et-1.7, eunit-2.6.1, ftp-1.1, + inets-7.4, jinterface-1.12, kernel-8.0, + megaco-4.0, mnesia-4.19.1, observer-2.9.6, + odbc-2.13.4, os_mon-2.7, parsetools-2.3, + reltool-0.9, runtime_tools-1.16.1, sasl-4.1, + snmp-5.8.1, ssh-4.12, ssl-10.4, stdlib-3.15, + syntax_tools-2.6, tftp-1.0.3, tools-3.5, + wx-2.0, xmerl-1.4 +Predecessor: OTP + + Check out the git tag OTP-24.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-15523 Application(s): ftp + Related Id(s): OTP-15352, PR-1968 + + Add support for FTPES (explicit FTP over TLS). + + + OTP-16611 Application(s): kernel + Related Id(s): OTP-16749 + + A compatibility adaptor for gen_tcp to use the new + socket API has been implemented (gen_tcp_socket). Used + when setting the kernel application variable + inet_backend = socket. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16706 Application(s): compiler + Related Id(s): ERL-1281 + + Variables bound between the keywords 'try' and 'of' can + now be used in the clauses following the 'of' keyword + (that is, in the success case when no exception was + raised). + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16800 Application(s): wx + + The application has been completely rewritten in order + to use wxWidgets version 3 as its base. + + Add basic documentation generated from the wxWidgets + project. + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** POTENTIAL INCOMPATIBILITY *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16885 Application(s): erts + Related Id(s): PR-2745 + + The BeamAsm JIT-compiler has been added to Erlang/OTP. + The JIT-compiler is enabled by default on most x86 + 64-bit platforms that have a C++ compiler that can + compile C++17. To verify that a JIT enabled emulator is + running you can use erlang:system_info(emu_flavor). + + For more information see the internal documentation of + BeamAsm in erts. + + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** POTENTIAL INCOMPATIBILITY *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + The ?NO_APP macro in edoc_doclet.hrl has been + deprecated. Use the atom no_app instead. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-16964 Application(s): compiler + + Generators in list and binary comprehensions will now + raise a {bad_generator,Generator} exception if the + generator has an incorrect type (instead of raising an + ad-hoc badarg or badarih exception). Similarly, when a + filter does not evaluate to a boolean, a + {bad_filter,Filter} exception will be raised. Some + minor bugs in the compilation of binary comprehensions + have also been fixed. + + + OTP-16981 Application(s): compiler + Related Id(s): ERL-1113 + + Some compiler warnings, such as the warning for an + expression whose result is ignored, could not be + suppressed by assigning to a variable beginning with + '_', but only by assigning to the anonymous variable + ('_'). This has now been changed so that any warning + that can be suppressed by assigning to the anonymous + variable can also be suppressed by assigning to a + variable beginning with '_'. + + + OTP-17044 Application(s): ssl + Related Id(s): PR-2654 + + Make TLS handshakes in Erlang distribution concurrent. + + + OTP-17213 Application(s): wx + Related Id(s): PR-3027 + + Added support for wxWebView. + + + OTP-17226 Application(s): compiler + Related Id(s): GH-4019, PR-4545 + + The compiler will now inline funs that are used only + once immediately after their definition. + + + OTP-17334 Application(s): stdlib + Related Id(s): EEP-56, PR-4638 + + Implementation of EEP 56 in supervisor. It adds the + concept of significant children as well as the + auto_shutdown supervisor flag. + + See the supervisor manual page for more information. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-15107 Application(s): stdlib + Related Id(s): ERL-1381, PR-2813 + + Time-outs in gen_statem with relative time 0 did not + behave quite according to the intended model. This has + now been corrected. + + The correction introduces a small potential + incompatibility e.g when combining a state time-out + with inserted events, and the inserted event does a + state change in the state with the time-out. Before + this correction the state time-out could be delivered + even after the second state change, but now it is + guaranteed that a state time-out is only delivered in + the state it was started for, even in this corner case. + + + OTP-16560 Application(s): megaco + + All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was + deprecated in OTP-23.0. They have now been removed. + + + OTP-16656 Application(s): crypto + + The functions and cipher names that were deprecated in + OTP-23.0 are now removed. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16809 Application(s): kernel + Related Id(s): ERL-1313 + + Change the value of the tag head returned by + disk_log:info/1 from {ok, Head} to just Head. + + + OTP-16811 Application(s): kernel + + Remove the support for distributed disk logs. The new + function disk_log:all/0 is to be used instead of + disk_log:accessible_logs/0. The function + disk_log:close/1 is to be used instead of + disk_log:lclose/1,2. + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** HIGHLIGHT *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16878 Application(s): erts + + The code loader has been rewritten in order to be able + to load JIT:ed code. As a consequence of this, it is no + longer possible to load HiPE code. + + + OTP-16943 Application(s): os_mon + Related Id(s): OTP-16906 + + The temporarily introduced configuration parameter + memsup_improved_system_memory_data has been removed. + + + OTP-16945 Application(s): erts + + Change escripts to output any errors or warnings to + standard error instead of standard out. + + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** HIGHLIGHT *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + The ?NO_APP macro in edoc_doclet.hrl has been + deprecated. Use the atom no_app instead. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16968 Application(s): kernel + + The pg2 module has been removed. + + + OTP-16970 Application(s): erl_interface + + The registry functionality part of erl_interface has + been removed. It was as of OTP 23 deprecated and + scheduled for removal in OTP 24. + + + OTP-16971 Application(s): stdlib + + The filename:src/1 function which was deprecated in OTP + 20 has been removed. Use filelib:find_source/1,3 + instead. + + + OTP-16974 Application(s): ssl + + Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1 + use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3 + instead. + + + OTP-16987 Application(s): erts + + The erlang:monitor_node/2 BIF will now fail with a + notalive exception if distribution has not been started + on the current node; it used to fail with a badarg + exception. + + + OTP-17062 Application(s): kernel + Related Id(s): ERIERL-537, ERL-1418, GH-4469 + + Let disk_log:open/1 change the size if a wrap log is + opened for the first time, that is, the disk log + process does not exist, and the value of option size + does not match the current size of the disk log. + + + OTP-17156 Application(s): kernel + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + OTP-17216 Application(s): kernel + Related Id(s): PR-2989 + + The behaviour for gen_tcp:connect/3,4 has been changed + to not per default bind to an address, which allows the + network stack to delay the address and port selection + to when the remote address is known. This allows better + port re-use, and thus enables far more outgoing + connections, since the ephemeral port range no longer + has to be a hard limit. + + There is a theoretical possibility that this behaviour + change can affect the set of possible error values, or + have other small implications on some platforms. + + + OTP-17219 Application(s): wx + Related Id(s): OTP-16800 + + Due to the support of the new backend versions some API + incompatibilities have been introduced. Examples of + changes are: + + wxWindowDC default creators have been removed + wxClientDC default creators have been removed + wxPaintDC default creators have been removed + wxWindow:setVirtualSizeHints() has been deprecated in + wxWidgets and removed + wxWindow:makeModal() has been deprecated in wxWidgets + and removed + wxToolBar:add/insertTool without label have been + deprecated in wxWidgets and removed + wxStyledTextCtrl some functions have changed arguments + from boolean to int + wxSizerItem:new() Some arguments have become options + Removed deprecated wxSizerItem:setWindow() use + assignWindow() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSizer() use + assignSizer() + wxMenu append/insert/prepend have changed return value + and lost IsCheckable argument + wxListCtrl:setItem/4 changed return value + wxImage:convertToGreyscale() options have changed + wxGridSizer:wxGridSizer() options have changed + wxGrid API have many changes + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGraphicsRenderer:createPen() have been removed + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGLCanvas API is incompatible + wxFlexGridSizer:wxFlexGridSizer() options have changed + wxDisplay:new() options have changed + wxCalendarDateAttr:new(ColText [,OptList]) have been + removed + wxBitmapButton:set/getBitmapSelected() have been + removed + + + OTP-17259 Application(s): ssh + Related Id(s): ERIERL-619, OTP-16511 + + The RSA SHA1 sign/verify variants are disabled by + default. That is, ssh-rsa is disabled by default as + well as the SHA1 sign/verify with RSA keys from id_rsa + and ssh_host_rsa_key. All SHA2 sign/verify are enabled + by default. + + The reason is that SHA1 is now considered easy to + break. + + To enable RSA with SHA1, for example for a very old and + unsafe peer, see Example 9 in the User's Guide chapter + Configuring algorithms in SSH. + + + OTP-17275 Application(s): erts + Related Id(s): PR-4553 + + The erl command line arguments +Bi, +Bd, and +B + erroneously caused reception of the USR1 signal to + terminate the runtime system without creating a crash + dump. Reception of the USR1 signal now always cause + termination *with* creation of a crash dump, regardless + of command line arguments passed. This bug has existed + at least since OTP R5B. + + + --------------------------------------------------------------------- + --- OTP-24.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17272 Application(s): otp + Related Id(s): GH-4626, PR-4627 + + Updated autoconf auxiliary files. + + + OTP-17278 Application(s): otp + Related Id(s): GH-4621 + + Do not allow a mandatory application to be disabled + using the configure switch --without-appname. + + + --------------------------------------------------------------------- + --- asn1-5.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of asn1-5.1: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.20.1 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16940 Application(s): common_test + Related Id(s): ERL-1335 + + The option release_shell could crash when used together + with the spec option. + + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of common_test-1.20.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.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17104 Application(s): compiler + Related Id(s): ERL-1380 + + A repeated stack trace variable in a try/catch was not + rejected. The following example will now cause a + compilation error: + + try E catch _:A:A -> A end. + + + OTP-17118 Application(s): compiler, stdlib + Related Id(s): PR-2825 + + Eliminated a Dialyzer crashed when the -MMD option is + used to generate a dependency file and a BEAM file a + the same time. + + + OTP-17206 Application(s): compiler + + When the makedep option was given, the compiler would + crash if the dependency output contained non-latin1 + characters. The compiler will now output the dependency + information encoded in UTF-8 to avoid crashing. + + + --- Improvements and New Features --- + + OTP-10391 Application(s): compiler + Related Id(s): OTP-16226 + + Selective receive optimization will now be applied much + more often. + + The new recv_opt_info compile flag can be used to print + diagnostics relating to this optimization. + + You can read more about the selective receive + optimization in the Efficiency Guide. + + + OTP-16334 Application(s): compiler + + erlang:throw/1 will no longer build stack traces when + we can prove that they will never be inspected. + + + OTP-16706 Application(s): compiler + Related Id(s): ERL-1281 + + *** HIGHLIGHT *** + + Variables bound between the keywords 'try' and 'of' can + now be used in the clauses following the 'of' keyword + (that is, in the success case when no exception was + raised). + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16867 Application(s): compiler + Related Id(s): ERL-1354 + + Fixed a performance bug that made functions with lots + of try/after blocks slow to compile. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16964 Application(s): compiler + + *** HIGHLIGHT *** + + Generators in list and binary comprehensions will now + raise a {bad_generator,Generator} exception if the + generator has an incorrect type (instead of raising an + ad-hoc badarg or badarih exception). Similarly, when a + filter does not evaluate to a boolean, a + {bad_filter,Filter} exception will be raised. Some + minor bugs in the compilation of binary comprehensions + have also been fixed. + + + OTP-16981 Application(s): compiler + Related Id(s): ERL-1113 + + *** HIGHLIGHT *** + + Some compiler warnings, such as the warning for an + expression whose result is ignored, could not be + suppressed by assigning to a variable beginning with + '_', but only by assigning to the anonymous variable + ('_'). This has now been changed so that any warning + that can be suppressed by assigning to the anonymous + variable can also be suppressed by assigning to a + variable beginning with '_'. + + + OTP-17078 Application(s): compiler + Related Id(s): ERL-1430, PR-2918 + + The previously undocumented compiler options + warn_missing_spec and warn_missing_spec_all are now + documented. + + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + OTP-17168 Application(s): compiler + + Erlang source files not encoded in utf-8 will no longer + be accepted by the compiler unless it contains a + "coding: latin-1" comment. + + + OTP-17172 Application(s): compiler + + New compiler options from_abstr and no_lint have been + added. They are useful when implementing other + languages running on the BEAM. + + + OTP-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + OTP-17226 Application(s): compiler + Related Id(s): GH-4019, PR-4545 + + *** HIGHLIGHT *** + + The compiler will now inline funs that are used only + once immediately after their definition. + + + OTP-17260 Application(s): compiler + + It is now possible to disable warnings emitted from the + compiler's optimization passes with the new options + nowarn_opportunistic, nowarn_nomatch, nowarn_ignored, + and nowarn_failed. + + + OTP-17330 Application(s): compiler, stdlib + + Add compiler option {nowarn_unused_record, + RecordNames}. Document compiler option + nowarn_unused_type. + + + Full runtime dependencies of compiler-8.0: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16882 Application(s): crypto + + Add /usr/local/opt/openssl to the openssl configure + search path. This path is where some tools on OS X + place openssl. + + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + OTP-17312 Application(s): crypto + Related Id(s): PR-4723 + + The value 'none' was missing in the specs of + crypto:sign/4 and crypto:verify/6. + + + --- Improvements and New Features --- + + OTP-16656 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + The functions and cipher names that were deprecated in + OTP-23.0 are now removed. + + + OTP-17001 Application(s): crypto + Related Id(s): PR-2852 + + Removed installed directory priv/obj/ containing + superfluous object files. + + + OTP-17313 Application(s): crypto + Related Id(s): PR-4686 + + Add prop_aead attribute to map from + crypto:cipher_info/1. + + + Full runtime dependencies of crypto-5.0: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + Full runtime dependencies of debugger-5.1: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16883 Application(s): dialyzer + + Some internal HiPE modules have been moved into the + dialyzer application so that dialyzer works when HiPE + is disabled. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16986 Application(s): dialyzer + Related Id(s): ERL-1379, ERL-1480, GH-4033 + + Add warning option no_underspecs. + + + OTP-16995 Application(s): dialyzer + Related Id(s): ERL-1348 + + Report filename and location for warnings returned due + to the -Wunknown option. When used from the + command-line, one location per file is printed. + + + OTP-17084 Application(s): dialyzer + + Add types and specifications for documentation. + + + OTP-17177 Application(s): dialyzer + Related Id(s): OTP-16824 + + Add option error_location. The option is recognized if + included in the environment variable + ERL_COMPILER_OPTIONS. + + + OTP-17183 Application(s): dialyzer + Related Id(s): ERL-892, GH-4493 + + Clarify how to declare records used in match patterns. + + + Full runtime dependencies of dialyzer-4.4: compiler-7.0, erts-9.0, + kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-1.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17092 Application(s): edoc + + Fix so that the edoc_doclet option file_suffix also + effects the links emitted into the module index. + + + --- Improvements and New Features --- + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + The ?NO_APP macro in edoc_doclet.hrl has been + deprecated. Use the atom no_app instead. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-17095 Application(s): edoc + Related Id(s): PR-2914 + + Edoc has been updated to use -spec to document its own + interface instead of @doc@ tags. + + Together with this change the inter-application linking + for -spec style documentation has been improved. + + + OTP-17153 Application(s): edoc + Related Id(s): PR-2674 + + Allow user defined edoc macros to be functions. + + + Full runtime dependencies of edoc-1.0: erts-6.0, inets-5.10, + kernel-3.0, stdlib-3.15, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_docgen-1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17122 Application(s): erl_docgen, stdlib + + Fixed bug in shell_docs and erl_docgen that interpreted + em tags as strong. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17257 Application(s): erl_docgen + + Fix bug where see* elements within type/name were + removed when generating html. Bug has been present + since OTP-21. + + + --- Improvements and New Features --- + + OTP-16877 Application(s): erl_docgen + + Add support for displaying .svg images. + + + OTP-17192 Application(s): erl_docgen + Related Id(s): PR-2803 + + Updated the way specs are generated after changes in + edoc. + + + Full runtime dependencies of erl_docgen-1.1: edoc-1.0, erts-9.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.0 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17132 Application(s): erl_interface, kernel + + Two options have been added to erl_call. The + -fetch_stdout option fetches stdout data resulting from + the code invoked by erl_call. The -fetch_stdout option + disables printing of the result term. In order to + implement the first of these two options a new function + called ei_xrpc_from has been added to erl_interface. + For details see the erl_call documentation and + erl_interface documentation. + + + --- Improvements and New Features --- + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16970 Application(s): erl_interface + + *** POTENTIAL INCOMPATIBILITY *** + + The registry functionality part of erl_interface has + been removed. It was as of OTP 23 deprecated and + scheduled for removal in OTP 24. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17270 Application(s): erl_interface + Related Id(s): OTP-17127 + + Support the new link protocol in order to be able to + phase out the old link protocol in the future. + erl_interface does not support setting up or removing + links from the erl_interface side, so the bug present + with the old protocol did not effect erl_interface. + This since both participants of a link simultaneously + needed to operate on the link in order to trigger the + bug. + + + --- 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-12.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16822 Application(s): erts + Related Id(s): PR-2723 + + file:open/2 now throws an badarg error when opened with + both the ram and raw options. + + + OTP-16879 Application(s): erts + + The estone benchmark has been updated to better reflect + changes in the compiler and run-time system. + + + OTP-16880 Application(s): erts + + Fix profile guided optimization of run-time system when + using GCC 7 or later. + + + OTP-16884 Application(s): erts + + Fix double close of fd when creating crash dump. + + + OTP-17014 Application(s): erts + + Improve erl error message when unable to open included + args_file. + + + OTP-17020 Application(s): erts + + Remove warning text about the -- operation from + documentation + + The -- operation was optimized in Erlang/OTP 22 so that + its worst case complexity is O(N*log(N)), where N is + the total size of the input lists. Therefore, the + warning in the documentation saying that the time + complexity is proportional to length(A)*length(B) is + incorrect and is no longer needed. Notice that + Erlang/OTP 21 will no longer be supported when + Erlang/OTP 24 gets released. + + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + OTP-17131 Application(s): erts + Related Id(s): GH-4360, PR-3031 + + Windows process erl.exe killed if its service process + erlsrv.exe terminates. + + + OTP-17275 Application(s): erts + Related Id(s): PR-4553 + + *** POTENTIAL INCOMPATIBILITY *** + + The erl command line arguments +Bi, +Bd, and +B + erroneously caused reception of the USR1 signal to + terminate the runtime system without creating a crash + dump. Reception of the USR1 signal now always cause + termination *with* creation of a crash dump, regardless + of command line arguments passed. This bug has existed + at least since OTP R5B. + + + OTP-17314 Application(s): erts + Related Id(s): GH-4624, OTP-15926, PR- + + Add check to make sure that when passing an option to + erl that requires an argument, but none is given, we + report an error. This fixes a bug introduced in + OTP-22.1 via OTP-15926. + + + OTP-17329 Application(s): erts + Related Id(s): PR-4730 + + The "Last calls" section in crash dumps have been + updated to print newlines after each non-function + save_calls state (send, receive, timeout). + + + --- Improvements and New Features --- + + OTP-14601 Application(s): erts, kernel + Related Id(s): OTP-16749, PR-2641, PR-2670 + + The experimental socket module can now use any protocol + (by name) the OS supports. Suggested in PR-2641, + implemented in PR-2670. + + + OTP-16653 Application(s): erts + + The deprecated function erlang:get_stacktrace/0 has + been removed. Use the new syntax in try/catch to + retrieve the stack backtrace. + + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16687 Application(s): erts + Related Id(s): PR-2762, PR-2996 + + The erlang module documentation has been updated to + improve clarity and description of edge cases. + + + OTP-16703 Application(s): erts, kernel + Related Id(s): PR-2620 + + An example implementation of Erlang distribution over + UDS using distribution processes has been introduced. + + Thanks to Jérôme de Bretagne + + + OTP-16712 Application(s): erts + + Improve code generation when creating funs by adding a + new beam instruction make_fun3 that does not do GC and + allows for better register allocation. + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16788 Application(s): erts + + Remove old unused +MYm and ERL_MALLOC_LIB options. + + + OTP-16814 Application(s): erts + Related Id(s): PR-2704 + + Increase timer resolution on windows. + + + OTP-16878 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The code loader has been rewritten in order to be able + to load JIT:ed code. As a consequence of this, it is no + longer possible to load HiPE code. + + + OTP-16881 Application(s): erts + + Add support in the Erlang/OTP build system to generate + a compilation database that can be used by third-party + tools (such as irony in Emacs) to compile the erts C + and C++ source code. Create the database using make + compdb. + + + OTP-16885 Application(s): erts + Related Id(s): PR-2745 + + *** HIGHLIGHT *** + + The BeamAsm JIT-compiler has been added to Erlang/OTP. + The JIT-compiler is enabled by default on most x86 + 64-bit platforms that have a C++ compiler that can + compile C++17. To verify that a JIT enabled emulator is + running you can use erlang:system_info(emu_flavor). + + For more information see the internal documentation of + BeamAsm in erts. + + + OTP-16898 Application(s): erts + Related Id(s): OTP-16856 + + By default all ERTS internal memory allocators based on + alloc_util will now use their own separate carrier pool + for migration of carriers instead of using a node + global carrier pool. This was the default behavior + between OTP 17 and OTP 21, but changed to use a node + global carrier pool as of OTP 22.0. Usage of the node + global carrier pool proved troublesome since it had a + tendency to spread long lived blocks into allocators + with normally short lived blocks causing increased + memory fragmentation. The node global carrier pool + behavior as well as other behaviors can be configured + using the +M<S>cp command line argument. + + + OTP-16936 Application(s): erts, stdlib + Related Id(s): ERL-1367 + + New functions have been added to the maps module: + merge_with/3, intersect/2, intersect_with/3, + filtermap/2, from_keys/2, and maps:foreach/2. + + maps:merge_with/3 is the same as merge/2 but takes an + extra fun that is used to combine items with the same + key. + + maps:intersect/2 computes the intersection of two maps. + + maps:intersect_with/3 is the same as intersect/2 but + takes an extra fun that is used to combine intersecting + items. + + maps:filtermap/2 allows filtering and mapping of a map + in a single pass. + + maps:from_keys/2 constructs a map from a list of keys + and a single value and can be used to to optimize sets + operations such as from_list/1, filter/2, + intersection/2, and subtract/2. + + maps:foreach/2 allows iteration over a map without + returning any value. + + + OTP-16945 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Change escripts to output any errors or warnings to + standard error instead of standard out. + + + OTP-16952 Application(s): erts, kernel + + A new erl parameter for specifying a file descriptor + with configuration data has been added. This makes it + possible to pass the parameter "-configfd FD" when + executing the erl command. When this option is given, + the system will try to read and parse configuration + parameters from the file descriptor. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16980 Application(s): erts, stdlib + Related Id(s): ERL-1308 + + The pretty printer for floating point number have been + changed to make it easier to see if the integer part of + the number has been rounded. After the change the digit + that may have been rounded always appears last or just + before the exponent character (e or E). This is + accomplished by always printing the number using + scientific notation if it is so large that the integer + part could be rounded. + + + OTP-16987 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The erlang:monitor_node/2 BIF will now fail with a + notalive exception if distribution has not been started + on the current node; it used to fail with a badarg + exception. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17028 Application(s): erts + + One can now pass the ERL_ROOTDIR environment variable + to the erl and start scrips. This makes it easier to + use Erlang for Android apps. On Android, apps don't + control where they will be installed. + + + OTP-17057 Application(s): erts, stdlib + + All long running functions in the maps API are now + yielding. In previous releases the functions + maps:from_list/1, maps:keys/1 and maps:values/1 did not + yield. This could cause unfair scheduling of processes. + + + OTP-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + OTP-17285 Application(s): erts + Related Id(s): PR-4651 + + Add process_flag(fullsweep_after, N) to change + fullsweep_after value in an already spawned process. + + + OTP-17293 Application(s): erts + Related Id(s): PR-4672 + + The max_heap_size error report has been updated to + include the message queue size. + + + OTP-17310 Application(s): erts + Related Id(s): PR-4656 + + Optimize updates of large maps with identical keys and + values. E.g. in the example below the original Map will + be reused as the return of the second update. + + 1> Map = LargeMap#{ a => b }. + + 2> Map#{ a := b }. + + The same optimization was done for small maps (< 33 + keys) in erts-10.4 (OTP 22.0). + + + OTP-17341 Application(s): erts + Related Id(s): PR-2945 + + The previously undocumented internal -no_epmd option + has been made documented and public. + + + Full runtime dependencies of erts-12.0: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- et-1.7 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of et-1.7: erts-9.0, kernel-5.3, + runtime_tools-1.10, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- eunit-2.6.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17300 Application(s): eunit + Related Id(s): PR-4695 + + The eunit_surefire report handler has been updated to + automatically create the directories needed to store + the surefire xml file. + + + Full runtime dependencies of eunit-2.6.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ftp-1.1 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16926 Application(s): ftp + Related Id(s): ERL-1450, GH-4473 + + Use OTP supervisor as intended, avoiding surprising + behavior as the killing of the user's process. Also, + FTP state handling logic is improved to avoid race + conditions that could result in unexpected errors. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + --- Improvements and New Features --- + + OTP-15523 Application(s): ftp + Related Id(s): OTP-15352, PR-1968 + + *** HIGHLIGHT *** + + Add support for FTPES (explicit FTP over TLS). + + + Full runtime dependencies of ftp-1.1: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-7.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16722 Application(s): inets + + Drop all support for ftp and tftp in inets code. + + + OTP-16723 Application(s): inets + + Deprecate following functions in httpd_util module: + flatlength/1, lhexlist_to_integer/1, + integer_to_hexlist/1, strip/1, and suffix/1. + + + OTP-16724 Application(s): inets + + Remove support of HTTP 0.9 in httpd. + + + OTP-16725 Application(s): inets + + Remove support of HTTP 0.9 in httpc. + + + Full runtime dependencies of inets-7.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.12 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17170 Application(s): jinterface + Related Id(s): PR-3005 + + Make OtpErlangExternalFun's fields module, function and + arity public. + + + --------------------------------------------------------------------- + --- kernel-8.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14700 Application(s): kernel + Related Id(s): PR-2848 + + A bug has been fixed for the internal inet_res resolver + cache that handled a resolver configuration file status + timer incorrectly and caused performance problems due + to many unnecessary file system accesses. + + + OTP-16809 Application(s): kernel + Related Id(s): ERL-1313 + + *** POTENTIAL INCOMPATIBILITY *** + + Change the value of the tag head returned by + disk_log:info/1 from {ok, Head} to just Head. + + + OTP-17132 Application(s): erl_interface, kernel + + Two options have been added to erl_call. The + -fetch_stdout option fetches stdout data resulting from + the code invoked by erl_call. The -fetch_stdout option + disables printing of the result term. In order to + implement the first of these two options a new function + called ei_xrpc_from has been added to erl_interface. + For details see the erl_call documentation and + erl_interface documentation. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17262 Application(s): kernel + Related Id(s): GH-4588, OTP-16487, PR-4604 + + inet:get_rc/0 has been corrected to return host entries + as separate entries instead of (incorrectly) in a list + within the list. This bug was introduced by OTP-16487 + in OTP-23.0-rc1. + + + OTP-17277 Application(s): kernel + + The type gen_tcp:option_name() had a duplicate + pktoptions value. + + + OTP-17286 Application(s): kernel + Related Id(s): PR-4619 + + Fixed removal of empty groups from internal state in + pg. + + + OTP-17287 Application(s): kernel + Related Id(s): PR-4581 + + erl -remsh now prints an error message when it fails to + connect to the remote node. + + + OTP-17288 Application(s): kernel + Related Id(s): PR-4581 + + Fix bugs related to corrupt shell history files. + + Error messages printed by shell history are now logged + as logger error reports instead of written to standard + error. + + + OTP-17315 Application(s): kernel + Related Id(s): GH-4626 + + A logger warning is now issues when too many arguments + are given to -name or -sname. Example: erl -name a b. + + + --- Improvements and New Features --- + + OTP-13126 Application(s): kernel + Related Id(s): PR-3041 + + The cache used by the DNS resolver inet_res has been + improved to use ETS lookups instead of server calls. + This is a considerable speed improvement for cache + hits. + + + OTP-14485 Application(s): kernel + Related Id(s): PR-2891 + + The cache ETS table type for the internal DNS resolver + inet_res has changed type (internally) to get better + speed and atomicity. + + + OTP-14601 Application(s): erts, kernel + Related Id(s): OTP-16749, PR-2641, PR-2670 + + The experimental socket module can now use any protocol + (by name) the OS supports. Suggested in PR-2641, + implemented in PR-2670. + + + OTP-16517 Application(s): kernel + Related Id(s): PR-2827 + + The DNS resolver inet_res has been updated to support + CAA (RFC 6844) and URI (RFC 7553) records. + + + OTP-16611 Application(s): kernel + Related Id(s): OTP-16749 + + *** HIGHLIGHT *** + + A compatibility adaptor for gen_tcp to use the new + socket API has been implemented (gen_tcp_socket). Used + when setting the kernel application variable + inet_backend = socket. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16698 Application(s): kernel + Related Id(s): PR-2634 + + The file server can now be bypassed in file:delete/1,2 + with the raw option. + + + OTP-16703 Application(s): erts, kernel + Related Id(s): PR-2620 + + An example implementation of Erlang distribution over + UDS using distribution processes has been introduced. + + Thanks to Jérôme de Bretagne + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16793 Application(s): kernel + Related Id(s): ERL-1332, PR-2740 + + New function os:env/0 returns all OS environment + variables as a list of 2-tuples. + + + OTP-16811 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Remove the support for distributed disk logs. The new + function disk_log:all/0 is to be used instead of + disk_log:accessible_logs/0. The function + disk_log:close/1 is to be used instead of + disk_log:lclose/1,2. + + + OTP-16947 Application(s): kernel + Related Id(s): PR-2781 + + Expand the spec for erl_epmd:listen_port_please/2 to + mirror erl_epmd:port_please/2. + + + OTP-16952 Application(s): erts, kernel + + A new erl parameter for specifying a file descriptor + with configuration data has been added. This makes it + possible to pass the parameter "-configfd FD" when + executing the erl command. When this option is given, + the system will try to read and parse configuration + parameters from the file descriptor. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16968 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The pg2 module has been removed. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17015 Application(s): kernel + + Allow utf-8 binaries as parts of logger_formatter + template. + + + OTP-17062 Application(s): kernel + Related Id(s): ERIERL-537, ERL-1418, GH-4469 + + *** POTENTIAL INCOMPATIBILITY *** + + Let disk_log:open/1 change the size if a wrap log is + opened for the first time, that is, the disk log + process does not exist, and the value of option size + does not match the current size of the disk log. + + + OTP-17103 Application(s): kernel + Related Id(s): PR-2949 + + Allow the shell history of an erlang node to be fetched + and stores using a custom callback module. See + shell_history configuration parameter in the kernel + documentation for more details. + + + OTP-17106 Application(s): kernel + Related Id(s): PR-2885 + + The simple logger (used to log events that happen + before kernel has been started) has been improved to + print prettier error messages. + + + OTP-17156 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + OTP-17181 Application(s): kernel + Related Id(s): PR-2457 + + Added support in logger for setting primary metadata. + The primary metadata is passed as a base metadata to + all log events in the system. See Metadata in the + Logger chapter of the Kernel User's Guide for more + details. + + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + OTP-17198 Application(s): kernel + Related Id(s): PR-2721 + + The Fun's passed to logger:log/2,3,4 can now return + metadata that will only be fetched when needed. See + logger:log/2,3,4 for more details. + + + OTP-17201 Application(s): kernel + Related Id(s): PR-4534 + + erpc:multicall() has been rewritten to be able to + utilize the newly introduced and improved + reference/receive optimization. + + + OTP-17203 Application(s): kernel + Related Id(s): OTP-17156 + + Add utility fiunction inet:info/1 to provide + miscellaneous info about a socket. + + + OTP-17216 Application(s): kernel + Related Id(s): PR-2989 + + *** POTENTIAL INCOMPATIBILITY *** + + The behaviour for gen_tcp:connect/3,4 has been changed + to not per default bind to an address, which allows the + network stack to delay the address and port selection + to when the remote address is known. This allows better + port re-use, and thus enables far more outgoing + connections, since the ephemeral port range no longer + has to be a hard limit. + + There is a theoretical possibility that this behaviour + change can affect the set of possible error values, or + have other small implications on some platforms. + + + OTP-17266 Application(s): kernel + Related Id(s): PR-4564 + + An option {nxdomain_reply, boolean()} has been + implemented in the DNS resolver inet_res. It is useful + since an nxdomain error from a name server does contain + the SOA record if the domain exists at all. This record + is useful to determine a TTL for negative caching of + the failed entry. + + + OTP-17284 Application(s): kernel + Related Id(s): PR-4615 + + Optimized lookup of local processes part of groups in + pg. + + + Full runtime dependencies of kernel-8.0: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-4.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16560 Application(s): megaco + + *** POTENTIAL INCOMPATIBILITY *** + + All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was + deprecated in OTP-23.0. They have now been removed. + + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of megaco-4.0: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.19.1 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17217 Application(s): mnesia + + Suppression of deprecation warnings has been added to + the source files of the Mnesia application. + + + OTP-17294 Application(s): mnesia + Related Id(s): GH-4525, PR-4674 + + Fixed that the backend plugin initialization is done + only once. + + + Full runtime dependencies of mnesia-4.19.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.9.6 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17214 Application(s): observer + + Updated gui parts to work with the new wx version. + + + Full runtime dependencies of observer-2.9.6: erts-11.0, et-1.5, + kernel-7.0, runtime_tools-1.8.14, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.13.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + Full runtime dependencies of odbc-2.13.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16943 Application(s): os_mon + Related Id(s): OTP-16906 + + *** POTENTIAL INCOMPATIBILITY *** + + The temporarily introduced configuration parameter + memsup_improved_system_memory_data has been removed. + + + OTP-16944 Application(s): os_mon + Related Id(s): PR-2787 + + Fix disk_sup to also search the system PATH on linux + when looking for the df program. + + + Full runtime dependencies of os_mon-2.7: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16957 Application(s): parsetools, tools + + Add types and specifications for documentation. + + + OTP-17023 Application(s): parsetools + + Let Leex and Yecc recognize the environment variable + ERL_COMPILER_OPTIONS. Add Yecc option {error_location, + column | line}. + + + Full runtime dependencies of parsetools-2.3: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- reltool-0.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + OTP-17292 Application(s): reltool, sasl + Related Id(s): PR-4684, PR-4685 + + Removed timestamps from files generated by sasl and + reltool to enable deterministic builds. + + + Full runtime dependencies of reltool-0.9: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.16.1 -------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of runtime_tools-1.16.1: erts-11.0, + kernel-7.0, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + OTP-17292 Application(s): reltool, sasl + Related Id(s): PR-4684, PR-4685 + + Removed timestamps from files generated by sasl and + reltool to enable deterministic builds. + + + Full runtime dependencies of sasl-4.1: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.8.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of snmp-5.8.1: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.12 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + --- Improvements and New Features --- + + OTP-16750 Application(s): ssh + + Removed usage of erlang:is_port/1 from the SSH + implementation. + + + OTP-17051 Application(s): ssh + + Internal connection setup refactoring. + + + OTP-17140 Application(s): ssh + + Refactor SSH fsm into a (hopefully) more comprehensible + set of gen_statem callback-files. + + + OTP-17259 Application(s): ssh + Related Id(s): ERIERL-619, OTP-16511 + + *** POTENTIAL INCOMPATIBILITY *** + + The RSA SHA1 sign/verify variants are disabled by + default. That is, ssh-rsa is disabled by default as + well as the SHA1 sign/verify with RSA keys from id_rsa + and ssh_host_rsa_key. All SHA2 sign/verify are enabled + by default. + + The reason is that SHA1 is now considered easy to + break. + + To enable RSA with SHA1, for example for a very old and + unsafe peer, see Example 9 in the User's Guide chapter + Configuring algorithms in SSH. + + + OTP-17322 Application(s): ssh + Related Id(s): EEP-56, OTP-17334, PR-4638 + + Adapt ssh supervisors to new 'significant' and + 'auto_shutdown' in supervisor. + + + Full runtime dependencies of ssh-4.12: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17343 Application(s): ssl + + TLS handshake should fail if OCSP staple is requested + but missing. Note that OCSP support is still considered + experimental and only partially implemented. + + + --- Improvements and New Features --- + + OTP-16974 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1 + use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3 + instead. + + + OTP-17044 Application(s): ssl + Related Id(s): PR-2654 + + *** HIGHLIGHT *** + + Make TLS handshakes in Erlang distribution concurrent. + + + OTP-17117 Application(s): ssl + Related Id(s): PR-2933 + + Randomize internal {active,n} optimization when running + Erlang distribution over TLS to spread RAM/CPU spike + that may occur when starting up a big cluster. + + + Full runtime dependencies of ssl-10.4: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.15 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15107 Application(s): stdlib + Related Id(s): ERL-1381, PR-2813 + + *** POTENTIAL INCOMPATIBILITY *** + + Time-outs in gen_statem with relative time 0 did not + behave quite according to the intended model. This has + now been corrected. + + The correction introduces a small potential + incompatibility e.g when combining a state time-out + with inserted events, and the inserted event does a + state change in the state with the time-out. Before + this correction the state time-out could be delivered + even after the second state change, but now it is + guaranteed that a state time-out is only delivered in + the state it was started for, even in this corner case. + + + OTP-16865 Application(s): stdlib + + Fix bugs in erl_eval concerning bitstring + comprehensions. + + + OTP-16905 Application(s): stdlib + + File names that start with a dot (such as ".gitignore" + are now treated as file names and not extensions by + filename:extension/1 and filename:rootname/1. + + + OTP-16950 Application(s): stdlib + Related Id(s): ERL-1378 + + Fixed a bug where beam_lib:chunks/3 with the + allow_missing_chunks option would crash if a named + chunk was missing. + + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17118 Application(s): compiler, stdlib + Related Id(s): PR-2825 + + Eliminated a Dialyzer crashed when the -MMD option is + used to generate a dependency file and a BEAM file a + the same time. + + + OTP-17122 Application(s): erl_docgen, stdlib + + Fixed bug in shell_docs and erl_docgen that interpreted + em tags as strong. + + + OTP-17133 Application(s): stdlib + + On Solaris, the math:acos/1 and math:asin/1 functions + would not fail for arguments outside the valid domain. + + + OTP-17186 Application(s): stdlib + + Silence unused_record warnings when using ms_transform. + The parse transform ms_transform replaces records with + tuples, which can cause the Erlang code linter to emit + warnings about unused records. + + + OTP-17222 Application(s): stdlib + Related Id(s): GH-4544 + + Documented a deficiency in the re module regarding the + [:ascii:] character class matching Latin-1 characters. + + + OTP-17342 Application(s): stdlib + Related Id(s): GH-4725, PR-4726 + + Fixed spec of start functions in generic behaviors. + + + --- Improvements and New Features --- + + OTP-14646 Application(s): stdlib + Related Id(s): PR-2920 + + In the rand module it is now possible to seed the + default algorithm using an algorithm alias: default. + + Generating pseudo random binaries has been implemented + with rand:bytes/1 and rand:bytes_s/2. + + + OTP-14647 Application(s): stdlib + Related Id(s): PR-2910 + + New functions have been added to the proplists module: + to_map/1,2 and from_map/1. + + + OTP-14650 Application(s): stdlib + Related Id(s): PR-2850 + + New functions have been added to the queue module: + all/2, any/2, delete/2, delete_r/2, delete_with/2, and + delete_with_r/2. + + + OTP-14793 Application(s): stdlib + Related Id(s): PR-2791 + + New function have been added to the queue module: + fold/2 and filtermap/2. + + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + Process aliases as outlined by EEP 53 has been + introduced. Process aliases is introduced in order to + provide a lightweight mechanism that can prevent late + replies after timeout or connection loss. For more + information, see EEP 53 and the documentation of the + new alias/1 BIF and the new options to the monitor/3 + BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16910 Application(s): stdlib + Related Id(s): PR-2771 + + Improved documentation about exit signals emitted when + a gen_server terminates. + + + OTP-16936 Application(s): erts, stdlib + Related Id(s): ERL-1367 + + New functions have been added to the maps module: + merge_with/3, intersect/2, intersect_with/3, + filtermap/2, from_keys/2, and maps:foreach/2. + + maps:merge_with/3 is the same as merge/2 but takes an + extra fun that is used to combine items with the same + key. + + maps:intersect/2 computes the intersection of two maps. + + maps:intersect_with/3 is the same as intersect/2 but + takes an extra fun that is used to combine intersecting + items. + + maps:filtermap/2 allows filtering and mapping of a map + in a single pass. + + maps:from_keys/2 constructs a map from a list of keys + and a single value and can be used to to optimize sets + operations such as from_list/1, filter/2, + intersection/2, and subtract/2. + + maps:foreach/2 allows iteration over a map without + returning any value. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16971 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The filename:src/1 function which was deprecated in OTP + 20 has been removed. Use filelib:find_source/1,3 + instead. + + + OTP-16980 Application(s): erts, stdlib + Related Id(s): ERL-1308 + + The pretty printer for floating point number have been + changed to make it easier to see if the integer part of + the number has been rounded. After the change the digit + that may have been rounded always appears last or just + before the exponent character (e or E). This is + accomplished by always printing the number using + scientific notation if it is so large that the integer + part could be rounded. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17024 Application(s): stdlib + + Add option location to erl_parse:abstract/2. + + + OTP-17057 Application(s): erts, stdlib + + All long running functions in the maps API are now + yielding. In previous releases the functions + maps:from_list/1, maps:keys/1 and maps:values/1 did not + yield. This could cause unfair scheduling of processes. + + + OTP-17059 Application(s): stdlib + Related Id(s): PR-2864 + + The sets module now has an optional map-based + implementation, as described in EEP 50. + + To use this implementation, pass the {version,2} option + to sets:new/1 or sets:from_list/2. + + + OTP-17120 Application(s): stdlib + + Added shell_docs:supported_tags/0. This function can be + used to retrieve the tags currently supported by + shell_docs. + + + OTP-17121 Application(s): stdlib + + The application/erlang+html documentation storage + format used by shell_docs has been updated to include + the tags b, strong, h4, h5 and h6. + + + OTP-17169 Application(s): stdlib + Related Id(s): PR-2584 + + Do not pretty-print catch expressions with unnecessary + parentheses. The re-write of the Erlang parser grammar + in PR-2584 implies that parentheses around catch + expressions are in many cases no longer required. + + + OTP-17171 Application(s): stdlib + Related Id(s): PR-3011 + + Improved explanation of {continue,Continue} in + Module:init/1 of the gen_server documentation. + + + OTP-17175 Application(s): stdlib + + The erl_eval module now accepts a map for keeping track + of bindings. Using an orddict for bindings will still + work. + + + OTP-17199 Application(s): stdlib + Related Id(s): PR-2658 + + Documented epp:scan_erl_form/1 and added + epp:scan_file/2. + + + OTP-17210 Application(s): stdlib + + The standard floating point printing algorithm used by + the io and io_lib modules has been changed from the + algorithm described in [1] to the Ryu algorithm [2]. + This gives a significant speed improvement for the + printing of most floating point numbers and a small + memory consumption improvement. + + [1]: Robert G. Burger and R. Kent Dybvig. 1996. + Printing floating-point numbers quickly and accurately. + In Proceedings of the ACM SIGPLAN 1996 conference on + Programming language design and implementation (PLDI + '96). Association for Computing Machinery, New York, + NY, USA, 108–116. + DOI:https://doi.org/10.1145/231379.231397 + + [2]: Ulf Adams. 2018. Ryū: fast float-to-string + conversion. In Proceedings of the 39th ACM SIGPLAN + Conference on Programming Language Design and + Implementation (PLDI 2018). Association for Computing + Machinery, New York, NY, USA, 270–282. + DOI:https://doi.org/10.1145/3192366.3192369 + + Thanks to Thomas Depierre + + + OTP-17236 Application(s): stdlib + Related Id(s): PR-3014 + + Add hex encoding and decoding functions in the binary + module. + + + OTP-17263 Application(s): stdlib + + The undocumented and partially broken ets:filter/3 + function has been removed. + + + OTP-17267 Application(s): stdlib + + Add support in shell_docs to display any "text" + documentation format. This means that h(Module) in the + shell now can display the "text/markdown" of Elixir + documentation. + + + OTP-17276 Application(s): stdlib + Related Id(s): PR-2979 + + The internal hashing of keys within ETS tables of types + set, bag, duplicate_bag has been salted to diverge from + erlang:phash2. This to avoid bad hashing if phash2 is + used to distribute the keys over separate tables/nodes. + + + OTP-17327 Application(s): stdlib + Related Id(s): PR-4707 + + Updated to the Unicode 13.0 specification. + + + OTP-17330 Application(s): compiler, stdlib + + Add compiler option {nowarn_unused_record, + RecordNames}. Document compiler option + nowarn_unused_type. + + + OTP-17334 Application(s): stdlib + Related Id(s): EEP-56, PR-4638 + + *** HIGHLIGHT *** + + Implementation of EEP 56 in supervisor. It adds the + concept of significant children as well as the + auto_shutdown supervisor flag. + + See the supervisor manual page for more information. + + + Full runtime dependencies of stdlib-3.15: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.6 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17302 Application(s): syntax_tools + Related Id(s): PR-4705 + + The type spec of erl_syntax:function_type/2 has been + fixed. + + + OTP-17321 Application(s): syntax_tools + + Output parentheses around BitStringExpr when + pretty-printing binary comprehensions. + + + --- Improvements and New Features --- + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-17180 Application(s): syntax_tools + + The igor and erl_tidy modules have been the removed and + are now maintained by their original author Richard + Carlsson. They can be found at github.com/richcarl/igor + and github.com/richcarl/erl_tidy, respectively. + + + Full runtime dependencies of syntax_tools-2.6: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tftp-1.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + Full runtime dependencies of tftp-1.0.3: erts-6.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- tools-3.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17221 Application(s): tools + Related Id(s): PR-4547 + + For cover-compiled code, the error behaviour of list + and binary comprehensions that used andalso/orelse in + guards could be changed so that a filter that was + supposed be evaluated in guard context was evaluated in + body context. That is, there was a possibility that + comprehensions that did not raise exceptions could + raise exceptions when being run using cover. + + + --- Improvements and New Features --- + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16957 Application(s): parsetools, tools + + Add types and specifications for documentation. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of tools-3.5: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.0 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + --- Improvements and New Features --- + + OTP-16800 Application(s): wx + + *** HIGHLIGHT *** + + The application has been completely rewritten in order + to use wxWidgets version 3 as its base. + + Add basic documentation generated from the wxWidgets + project. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17213 Application(s): wx + Related Id(s): PR-3027 + + *** HIGHLIGHT *** + + Added support for wxWebView. + + + OTP-17219 Application(s): wx + Related Id(s): OTP-16800 + + *** POTENTIAL INCOMPATIBILITY *** + + Due to the support of the new backend versions some API + incompatibilities have been introduced. Examples of + changes are: + + wxWindowDC default creators have been removed + wxClientDC default creators have been removed + wxPaintDC default creators have been removed + wxWindow:setVirtualSizeHints() has been deprecated in + wxWidgets and removed + wxWindow:makeModal() has been deprecated in wxWidgets + and removed + wxToolBar:add/insertTool without label have been + deprecated in wxWidgets and removed + wxStyledTextCtrl some functions have changed arguments + from boolean to int + wxSizerItem:new() Some arguments have become options + Removed deprecated wxSizerItem:setWindow() use + assignWindow() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSizer() use + assignSizer() + wxMenu append/insert/prepend have changed return value + and lost IsCheckable argument + wxListCtrl:setItem/4 changed return value + wxImage:convertToGreyscale() options have changed + wxGridSizer:wxGridSizer() options have changed + wxGrid API have many changes + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGraphicsRenderer:createPen() have been removed + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGLCanvas API is incompatible + wxFlexGridSizer:wxFlexGridSizer() options have changed + wxDisplay:new() options have changed + wxCalendarDateAttr:new(ColText [,OptList]) have been + removed + wxBitmapButton:set/getBitmapSelected() have been + removed + + + Full runtime dependencies of wx-2.0: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17123 Application(s): asn1, compiler, et, xmerl + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + Full runtime dependencies of xmerl-1.4: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Alexander Clouter, Alexander Petrovsky, Andreas Schultz, Bryan + Paxton, Cheng Zhe, Dominic Letz, Eksperimental, Erlend Hamberg, + Filipe Cristovao, Frej Drejhammar, Henrik Lagebrand, Jesper Eskilson, + Jonathan Klabunde Tomer, José Valim, João Henrique Ferreira de + Freitas, Jérôme de Bretagne, Leo Liu, Linus.yuan, Loïc Hoguin, Luca + Favatella, Luis Rascao, Luke Bakken, Maria Scott, Maria-12648430, + Mariano Guerra, Mattias Hansson, Max Nordlund, Maxim Fedorov, Michal + Palka, Michal Piotrowski, Michal Slaski, Michał Muskała, Mikael + Pettersson, Nalin Ranjan, Nelson Vides, Nico Piderman, Oskar, Paulo + F. Oliveira, Philip Kuryloski, Philipp Klaus Krause, Pierre Allix, + Péter Gömöri, Radek Szymczyszyn, Richard Carlsson, Ruud Kamphuis, + Stavros Aronis, Taras Halturin, Thomas Depierre, Tianon Gravi, Tony + Rogvall, Ulf Wiger, Viktor Söderqvist, Wojtek Mach, Zeyu Zhang, ergl, + gearnode, ilya-klyuchnikov, juhlig, lagebr, vans163, yfractal, Łukasz + Niemier + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0.1.README.txt b/release-notes/OTP-24.0.1.README.txt new file mode 100644 index 0000000..82021ee --- /dev/null +++ b/release-notes/OTP-24.0.1.README.txt @@ -0,0 +1,249 @@ +Patch Package: OTP 24.0.1 +Git Tag: OTP-24.0.1 +Date: 2021-05-20 +Trouble Report Id: OTP-17391, OTP-17397, OTP-17398, OTP-17407, + OTP-17419, OTP-17420 +Seq num: GH-4810, GH-4821, GH-4834 +System: OTP +Release: 24 +Application: common_test-1.20.4, crypto-5.0.1, + erl_interface-5.0.1, erts-12.0.1, + megaco-4.0.1, odbc-2.13.5, snmp-5.9.1, + ssh-4.12.1, wx-2.0.1 +Predecessor: OTP 24.0 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- OTP-24.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17398 Application(s): otp + Related Id(s): GH-4821 + + The by autoconf generated configure scripts are now + commited into the git repository and will thus always + be available. This ensures that the scripts have been + generated by an autoconf version that has been tested + and by this preventing misconfiguration of OTP. The + ./otp_build autoconf build step is therefore no longer + necessary and will if executed only print a message and + then exit successfully. Currently the configure scripts + will be generated using the by Debian patched autoconf + version 2.69-11. + + + OTP-17419 Application(s): crypto, otp + Related Id(s): GH-4821 + + Fixed and documented the DED_LDFLAGS_CONFTEST + configuration variable in $ERL_TOP/HOWTO/INSTALL.md. + + + --------------------------------------------------------------------- + --- common_test-1.20.4 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.20.4 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of common_test-1.20.4: 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 + + + --------------------------------------------------------------------- + --- crypto-5.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17391 Application(s): crypto + Related Id(s): GH-4810 + + Removed a risk for coredump. + + + OTP-17419 Application(s): crypto, otp + Related Id(s): GH-4821 + + Fixed and documented the DED_LDFLAGS_CONFTEST + configuration variable in $ERL_TOP/HOWTO/INSTALL.md. + + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of crypto-5.0.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erl_interface-5.0.1 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.0.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + --------------------------------------------------------------------- + --- erts-12.0.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.0.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of erts-12.0.1: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-4.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The megaco-4.0.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of megaco-4.0.1: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- odbc-2.13.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + The odbc-2.13.5 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of odbc-2.13.5: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- snmp-5.9.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The snmp-5.9.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of snmp-5.9.1: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.12.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.12.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17397 Application(s): ssh + + Add missing known_hosts and authorized_keys file types + to ssh_file:decode/2 and ssh_file:encode/2. + + + Full runtime dependencies of ssh-4.12.1: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- wx-2.0.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.0.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17407 Application(s): wx + Related Id(s): GH-4834 + + Fix build problems when wxWidgets are built with + -enable-std. + + + OTP-17420 Application(s): common_test, crypto, erl_interface, + erts, megaco, odbc, snmp, wx + Related Id(s): GH-4821, OTP-17398 + + Commit of generated configure script. + + + Full runtime dependencies of wx-2.0.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0.2.README.txt b/release-notes/OTP-24.0.2.README.txt new file mode 100644 index 0000000..399beaf --- /dev/null +++ b/release-notes/OTP-24.0.2.README.txt @@ -0,0 +1,325 @@ +Patch Package: OTP 24.0.2 +Git Tag: OTP-24.0.2 +Date: 2021-06-01 +Trouble Report Id: OTP-16033, OTP-17427, OTP-17428, OTP-17431, + OTP-17433, OTP-17435, OTP-17436, OTP-17437, + OTP-17439, OTP-17442, OTP-17448, OTP-17451, + OTP-17452, OTP-17459, OTP-17462 +Seq num: ERIERL-329, ERIERL-653, ERL-1414, ERL-885, + GH-3923, GH-4448, GH-4774, GH-4824, GH-4827, + GH-4838, GH-4842, GH-4849, GH-4858, GH-4859, + GH-4861, GH-4885, GH-4898 +System: OTP +Release: 24 +Application: compiler-8.0.1, crypto-5.0.2, + erl_docgen-1.1.1, erts-12.0.2, kernel-8.0.1, + ssh-4.12.2, ssl-10.4.1, stdlib-3.15.1 +Predecessor: OTP 24.0.1 + + Check out the git tag OTP-24.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.0.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.0.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17428 Application(s): compiler + Related Id(s): GH-4859 + + Fixed a bug that could cause after blocks to be ignored + when erlang:raise/3 was used in a catch block. + + + OTP-17437 Application(s): compiler + Related Id(s): GH-4774, OTP-17357 + + Fixed a bug in the validation pass that could cause it + to reject valid code. + + + Full runtime dependencies of compiler-8.0.1: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17442 Application(s): crypto + Related Id(s): GH-4861 + + EC keys are now zero-padded to the expected length if + needed. + + + Full runtime dependencies of crypto-5.0.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erl_docgen-1.1.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-1.1.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17433 Application(s): erl_docgen + Related Id(s): GH-4849, PR-4857 + + Fix links generated in specs to types in other + applications to point to the correct place. This bug + was introduced in Erlang/OTP 24.0. + + + Full runtime dependencies of erl_docgen-1.1.1: edoc-1.0, erts-9.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erts-12.0.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.0.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17431 Application(s): erts + Related Id(s): GH-4858, OTP-16718, PR-4870 + + Not yet handled alias-message signals in the signal + queue at the time when a garbage collection was + performed could cause a memory corruption which in turn + could result in a crash of the runtime system. This bug + was introduced in OTP 24.0. + + + OTP-17436 Application(s): erts + Related Id(s): PR-4875 + + Fixed bug when using external pids/ports in keys of big + maps (> 32). Could cause runtime crash. Bug exists + since OTP 24.0. + + + OTP-17439 Application(s): erts, kernel + Related Id(s): GH-4827, GH-4838, PR-4888 + + After a node restart with init:restart/0,1, the module + socket was not usable because supporting tables had + been cleared and not re-initialized. This has now been + fixed. + + Handling of the "." domain as a search domain was + incorrect and caused a crash in the DNS resolver + inet_res, which has now been fixed. + + + OTP-17448 Application(s): erts + Related Id(s): GH-4898, OTP-17291, PR-4903 + + A call to port_command() could cause a scheduler to end + up in an eternal loop if the port was busy and the + calling process had incoming signals at the time of the + call. This bug was introduced in OTP 23.3.2 (ERTS + version 11.2.1), OTP 22.3.4.18 (ERTS version + 10.7.2.10), and OTP 21.3.8.23 (ERTS version 10.3.5.18). + + + OTP-17452 Application(s): erts, kernel + + Bug fixes and code cleanup for the new socket + implementation, such as: + + Assertions on the result of demonitoring has been added + in the NIF code, where appropriate. + + Internal state handling for socket close in the NIF + code has been reviewed. + + Looping over close() for EINTR in the NIF code has been + removed, since it is strongly discouraged on Linux and + Posix is not clear about if it is allowed. + + The inet_backend temporary socket option for legacy + gen_tcp sockets has been documented. + + The return value from net:getaddrinfo/2 has been + corrected: the protocol field is now an atom(), instead + of, incorrectly, list(atom()). The documentation has + also been corrected about this return type. + + Deferred close of a socket:sendfile/* file was broken + and has been corrected. + + Some debug code, not enabled by default, in the socket + NIF has been corrected to not accidentally core dump + for debug printouts of more or less innocent events. + + + OTP-17462 Application(s): erts + Related Id(s): GH-4885, OTP-17127, PR-4914 + + Dirty execution of a process in combination with an + unlink signal from a port to the process could cause + the signal queue of the process to enter into an + inconsistent state. The result of the inconsistency + typically caused a crash of the runtime system. This + bug was introduced in OTP 23.3 (ERTS version 11.2). + + + Full runtime dependencies of erts-12.0.2: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-8.0.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-8.0.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-16033 Application(s): kernel + Related Id(s): ERIERL-329, ERL-1414, ERL-885, GH-3923, + GH-4448 + + Fix a race condition in Global. + + + OTP-17439 Application(s): erts, kernel + Related Id(s): GH-4827, GH-4838, PR-4888 + + After a node restart with init:restart/0,1, the module + socket was not usable because supporting tables had + been cleared and not re-initialized. This has now been + fixed. + + Handling of the "." domain as a search domain was + incorrect and caused a crash in the DNS resolver + inet_res, which has now been fixed. + + + OTP-17451 Application(s): kernel + Related Id(s): OTP-17374 + + Handling of combinations of the fd option and binding + to an address has been corrected, especially for the + local address family. + + + OTP-17452 Application(s): erts, kernel + + Bug fixes and code cleanup for the new socket + implementation, such as: + + Assertions on the result of demonitoring has been added + in the NIF code, where appropriate. + + Internal state handling for socket close in the NIF + code has been reviewed. + + Looping over close() for EINTR in the NIF code has been + removed, since it is strongly discouraged on Linux and + Posix is not clear about if it is allowed. + + The inet_backend temporary socket option for legacy + gen_tcp sockets has been documented. + + The return value from net:getaddrinfo/2 has been + corrected: the protocol field is now an atom(), instead + of, incorrectly, list(atom()). The documentation has + also been corrected about this return type. + + Deferred close of a socket:sendfile/* file was broken + and has been corrected. + + Some debug code, not enabled by default, in the socket + NIF has been corrected to not accidentally core dump + for debug printouts of more or less innocent events. + + + Full runtime dependencies of kernel-8.0.1: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssh-4.12.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.12.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17427 Application(s): ssh + + Avoid an extra blank line in the ssh known_hosts file + + + Full runtime dependencies of ssh-4.12.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.4.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssl-10.4.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17435 Application(s): ssl + Related Id(s): ERIERL-653 + + Fix cache invalidation problem for CA certs provided by + the cacertfile option. + + + Full runtime dependencies of ssl-10.4.1: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.15.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.15.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17459 Application(s): stdlib + Related Id(s): GH-4824, GH-4842 + + Fix a bug that could cause a loop when formatting terms + using the control sequences p or P and limiting the + output with the option chars_limit. + + + Full runtime dependencies of stdlib-3.15.1: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0.3.README.txt b/release-notes/OTP-24.0.3.README.txt new file mode 100644 index 0000000..b7cfdf3 --- /dev/null +++ b/release-notes/OTP-24.0.3.README.txt @@ -0,0 +1,167 @@ +Patch Package: OTP 24.0.3 +Git Tag: OTP-24.0.3 +Date: 2021-06-28 +Trouble Report Id: OTP-17443, OTP-17468, OTP-17472, OTP-17482, + OTP-17489, OTP-17490, OTP-17493, OTP-17500, + OTP-17502 +Seq num: ERIERL-656, GH-4809, GH-4890, GH-4953 +System: OTP +Release: 24 +Application: compiler-8.0.2, dialyzer-4.4.1, erts-12.0.3, + inets-7.4.1, ssh-4.12.3 +Predecessor: OTP 24.0.2 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- OTP-24.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17502 Application(s): otp + + A new page called "Coming Potential Incompatibilities" + has been added to the documentation. + + + --------------------------------------------------------------------- + --- compiler-8.0.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.0.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17489 Application(s): compiler + Related Id(s): GH-4953 + + A compiler optimization pass could crash when given odd + but legal code using throw/1. + + + Full runtime dependencies of compiler-8.0.2: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- dialyzer-4.4.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-4.4.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17443 Application(s): dialyzer + Related Id(s): GH-4890 + + Do not expose line number 0 in messages if there are + other locations to use. + + + OTP-17482 Application(s): dialyzer + + In rare circumstances, Dialyzer could crash analyzing + code with a list comprehension whose value was ignored. + (Thanks to Ulf Wiger for reporting this bug.) + + + Full runtime dependencies of dialyzer-4.4.1: compiler-7.0, erts-9.0, + kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- erts-12.0.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.0.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17472 Application(s): erts + Related Id(s): PR-4932 + + A call to erlang:cancel_timer(_, [{info, false}]) could + cause the calling process to block forever in the call. + Note that only the synchronous version of the call + (that is, the async option is false) in combination + with the info option set to false was effected by this + bug. + + + OTP-17493 Application(s): erts + + Microstate accounting (msacc) and os:perf_counter() + unintentionally used system time instead of monotonic + time for time measurements on a lot of systems. These + systems were all non x86/x86_64 systems or x86/x86_64 + systems without a reliable and constant rdtsc + instruction. + + The lock counting (lcnt) built runtime system also + unintentionally used system time instead of monotonic + time for time measurements on all systems. + + + OTP-17500 Application(s): erts + Related Id(s): GH-4809 + + Simultaneous calls to + erlang:system_flag(schedulers_online, _) could cause + callers to end up in a suspended state forever. + + + Full runtime dependencies of erts-12.0.3: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.4.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.4.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17490 Application(s): inets + + Improved user input handling in inets/mod_esi + preventing unnecessary atom creation. + + + Full runtime dependencies of inets-7.4.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.12.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.12.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17468 Application(s): ssh + Related Id(s): ERIERL-656 + + Filter out sensitive data (passwords etc) from progress + reports and supervisor reports. + + + Full runtime dependencies of ssh-4.12.3: 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.0.4.README.txt b/release-notes/OTP-24.0.4.README.txt new file mode 100644 index 0000000..69020ac --- /dev/null +++ b/release-notes/OTP-24.0.4.README.txt @@ -0,0 +1,144 @@ +Patch Package: OTP 24.0.4 +Git Tag: OTP-24.0.4 +Date: 2021-07-22 +Trouble Report Id: OTP-17150, OTP-17475, OTP-17506, OTP-17509, + OTP-17525, OTP-17529 +Seq num: GH-4877, GH-4958, GH-5053 +System: OTP +Release: 24 +Application: common_test-1.20.5, public_key-1.11.1, + ssl-10.4.2, stdlib-3.15.2 +Predecessor: OTP 24.0.3 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- common_test-1.20.5 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.20.5 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17506 Application(s): common_test + + An incoming NETCONF notification received before a call + to ct_netconfc:create_subscription/* caused the + connection process to fail with badarg. Unexpected + notifications are now logged in the same way as other + unexpected messages. + + + --- Improvements and New Features --- + + OTP-17509 Application(s): common_test + + Add 'receiver' option to ct_netconfc + + To allow a destination for incoming NETCONF + notifications to be specified at sessions creation. + Previously, a caller of create_subscription/* became + the destination, but RFC 5277 create-subscription is no + longer the only way in which NETCONF notifications can + be ordered. + + + Full runtime dependencies of common_test-1.20.5: 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 + + + --------------------------------------------------------------------- + --- public_key-1.11.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.11.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17475 Application(s): public_key, ssl + Related Id(s): GH-4877 + + Handle cross-signed root certificates when old root + expired as reported in GH-4877. + + + Full runtime dependencies of public_key-1.11.1: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssl-10.4.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.4.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.1 (first satisfied in OTP 24.0.4) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17475 Application(s): public_key, ssl + Related Id(s): GH-4877 + + Handle cross-signed root certificates when old root + expired as reported in GH-4877. + + + OTP-17529 Application(s): ssl + Related Id(s): GH-4958, PR-4979 + + The signature selection algorithm has been changed to + also verify if the client supports signatures using the + elliptic curve of the server's public/private key pair. + This change fixes #4958. + + + --- Improvements and New Features --- + + OTP-17150 Application(s): ssl + Related Id(s): GH-4877 + + Slight optimization of certificate decoding. + + + Full runtime dependencies of ssl-10.4.2: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.11.1, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.15.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.15.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17525 Application(s): stdlib + Related Id(s): GH-5053 + + Fix a bug that could cause a crash when formatting + tuples using the control sequences p or P and limiting + the output with the option chars_limit. + + + Full runtime dependencies of stdlib-3.15.2: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0.5.README.txt b/release-notes/OTP-24.0.5.README.txt new file mode 100644 index 0000000..d0432f3 --- /dev/null +++ b/release-notes/OTP-24.0.5.README.txt @@ -0,0 +1,49 @@ +Patch Package: OTP 24.0.5 +Git Tag: OTP-24.0.5 +Date: 2021-07-30 +Trouble Report Id: OTP-17536 +Seq num: ERIERL-677 +System: OTP +Release: 24 +Application: kernel-8.0.2 +Predecessor: OTP 24.0.4 + + Check out the git tag OTP-24.0.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. + + --------------------------------------------------------------------- + --- kernel-8.0.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-8.0.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17536 Application(s): kernel + Related Id(s): ERIERL-677, OTP-17216 + + For gen_tcp:connect/3,4 it is possible to specify a + specific source port, which should be enough to bind + the socket to an address with that port before + connecting. + + Unfortunately that feature was lost in OTP-17216 that + made it mandatory to specify the source address to get + an address binding, and ignored a specified source port + if no source address was specified. + + That bug has now been corrected. + + + Full runtime dependencies of kernel-8.0.2: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0.6.README.txt b/release-notes/OTP-24.0.6.README.txt new file mode 100644 index 0000000..bfacc0a --- /dev/null +++ b/release-notes/OTP-24.0.6.README.txt @@ -0,0 +1,76 @@ +Patch Package: OTP 24.0.6 +Git Tag: OTP-24.0.6 +Date: 2021-09-03 +Trouble Report Id: OTP-17548, OTP-17560, OTP-17568, OTP-17585, + OTP-17594 +Seq num: GH-5116, GH-5150 +System: OTP +Release: 24 +Application: erts-12.0.4 +Predecessor: OTP 24.0.5 + + Check out the git tag OTP-24.0.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. + + --------------------------------------------------------------------- + --- erts-12.0.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.0.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17548 Application(s): erts + Related Id(s): OTP-10391, PR-5078 + + A call to the process_info() BIF could end up hanging + for ever due to a bug introduced when the new selective + receive optimization was introduced in OTP 24.0. Note + that this bug only effects process_info(). + + + OTP-17560 Application(s): erts + Related Id(s): GH-5116 + + Fix buffer overrun problem in the tty driver. The + problem happens on some platforms when using the CTRL+R + functionality of newshell with very long strings in the + history. + + + OTP-17568 Application(s): erts + Related Id(s): PR-4940 + + Fix race-condition that could cause a crash when + tracing scheduling or garbage collections on a process + that was running on a dirty scheduler. + + + OTP-17585 Application(s): erts + Related Id(s): GH-5150 + + Fix rare bug where re:run would crash/return invalid + results when given a subbinary as subject. + + This bug has existed since Erlang/OTP 20.0. + + + OTP-17594 Application(s): erts + + binary_to_term/1,2 is now more resilient against + corrupted binaries containing maps in the external + format. + + + Full runtime dependencies of erts-12.0.4: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.0.README.txt b/release-notes/OTP-24.0.README.txt new file mode 100644 index 0000000..22d062a --- /dev/null +++ b/release-notes/OTP-24.0.README.txt @@ -0,0 +1,3569 @@ +Inital Release: OTP 24.0 +Git Tag: OTP-24.0 +Date: 2021-05-12 +Trouble Report Id: OTP-10391, OTP-13126, OTP-14485, OTP-14601, + OTP-14646, OTP-14647, OTP-14650, OTP-14700, + OTP-14753, OTP-14793, OTP-15107, OTP-15523, + OTP-16226, OTP-16334, OTP-16517, OTP-16560, + OTP-16607, OTP-16611, OTP-16653, OTP-16656, + OTP-16678, OTP-16686, OTP-16687, OTP-16698, + OTP-16703, OTP-16706, OTP-16712, OTP-16718, + OTP-16720, OTP-16722, OTP-16723, OTP-16724, + OTP-16725, OTP-16749, OTP-16750, OTP-16788, + OTP-16793, OTP-16800, OTP-16809, OTP-16811, + OTP-16814, OTP-16822, OTP-16824, OTP-16865, + OTP-16867, OTP-16877, OTP-16878, OTP-16879, + OTP-16880, OTP-16881, OTP-16882, OTP-16883, + OTP-16884, OTP-16885, OTP-16898, OTP-16905, + OTP-16910, OTP-16926, OTP-16936, OTP-16940, + OTP-16943, OTP-16944, OTP-16945, OTP-16947, + OTP-16949, OTP-16950, OTP-16952, OTP-16957, + OTP-16963, OTP-16964, OTP-16968, OTP-16970, + OTP-16971, OTP-16974, OTP-16980, OTP-16981, + OTP-16986, OTP-16987, OTP-16995, OTP-17001, + OTP-17005, OTP-17007, OTP-17014, OTP-17015, + OTP-17020, OTP-17023, OTP-17024, OTP-17028, + OTP-17044, OTP-17049, OTP-17051, OTP-17057, + OTP-17059, OTP-17062, OTP-17077, OTP-17078, + OTP-17084, OTP-17092, OTP-17095, OTP-17103, + OTP-17104, OTP-17105, OTP-17106, OTP-17117, + OTP-17118, OTP-17120, OTP-17121, OTP-17122, + OTP-17123, OTP-17131, OTP-17132, OTP-17133, + OTP-17140, OTP-17142, OTP-17153, OTP-17154, + OTP-17155, OTP-17156, OTP-17157, OTP-17168, + OTP-17169, OTP-17170, OTP-17171, OTP-17172, + OTP-17175, OTP-17177, OTP-17180, OTP-17181, + OTP-17183, OTP-17186, OTP-17189, OTP-17192, + OTP-17198, OTP-17199, OTP-17201, OTP-17203, + OTP-17206, OTP-17207, OTP-17210, OTP-17213, + OTP-17214, OTP-17216, OTP-17217, OTP-17219, + OTP-17221, OTP-17222, OTP-17226, OTP-17236, + OTP-17243, OTP-17254, OTP-17257, OTP-17259, + OTP-17260, OTP-17262, OTP-17263, OTP-17266, + OTP-17267, OTP-17270, OTP-17272, OTP-17275, + OTP-17276, OTP-17277, OTP-17278, OTP-17284, + OTP-17285, OTP-17286, OTP-17287, OTP-17288, + OTP-17292, OTP-17293, OTP-17294, OTP-17300, + OTP-17301, OTP-17302, OTP-17310, OTP-17312, + OTP-17313, OTP-17314, OTP-17315, OTP-17321, + OTP-17322, OTP-17327, OTP-17329, OTP-17330, + OTP-17334, OTP-17341, OTP-17342, OTP-17343, + OTP-17344, OTP-17352, OTP-17353, OTP-17354, + OTP-17355, OTP-17364, OTP-17368, OTP-17372, + OTP-17373, OTP-17374, OTP-17378, OTP-17384, + OTP-17385, OTP-17387, OTP-17388 +Seq num: ERIERL-537, ERIERL-618, ERIERL-619, ERL-1113, + ERL-1281, ERL-1308, ERL-1313, ERL-1332, + ERL-1335, ERL-1348, ERL-1354, ERL-1367, + ERL-1378, ERL-1379, ERL-1380, ERL-1381, + ERL-1418, ERL-1430, ERL-1431, ERL-1450, + ERL-1480, ERL-892, GH-4019, GH-4033, GH-4230, + GH-4360, GH-4469, GH-4473, GH-4493, GH-4525, + GH-4544, GH-4588, GH-4621, GH-4624, GH-4626, + GH-4631, GH-4636, GH-4637, GH-4650, GH-4680, + GH-4725, GH-4800 +System: OTP +Release: 24 +Application: asn1-5.0.16, common_test-1.20.3, + compiler-8.0, crypto-5.0, debugger-5.1, + dialyzer-4.4, edoc-1.0, erl_docgen-1.1, + erl_interface-5.0, erts-12.0, et-1.6.5, + eunit-2.6.1, ftp-1.1, inets-7.4, + jinterface-1.12, kernel-8.0, megaco-4.0, + mnesia-4.19.1, observer-2.9.6, odbc-2.13.4, + os_mon-2.7, parsetools-2.3, public_key-1.11, + reltool-0.9, runtime_tools-1.16.2, sasl-4.1, + snmp-5.9, ssh-4.12, ssl-10.4, stdlib-3.15, + syntax_tools-2.6, tftp-1.0.3, tools-3.5, + wx-2.0, xmerl-1.3.28 +Predecessor: OTP + + Check out the git tag OTP-24.0, and build a full OTP system including + documentation. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-10391 Application(s): compiler + Related Id(s): OTP-16226 + + Selective receive optimization will now be applied much + more often. + + The new recv_opt_info compile flag can be used to print + diagnostics relating to this optimization. + + You can read more about the selective receive + optimization in the Efficiency Guide. + + + OTP-15523 Application(s): ftp + Related Id(s): OTP-15352, PR-1968 + + Add support for FTPES (explicit FTP over TLS). + + + OTP-16611 Application(s): kernel + Related Id(s): OTP-16749 + + A compatibility adaptor for gen_tcp to use the new + socket API has been implemented (gen_tcp_socket). Used + when setting the kernel application variable + inet_backend = socket. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16706 Application(s): compiler + Related Id(s): ERL-1281 + + Variables bound between the keywords 'try' and 'of' can + now be used in the clauses following the 'of' keyword + (that is, in the success case when no exception was + raised). + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + The process alias feature as outlined by EEP 53 has + been introduced. It is introduced in order to provide a + lightweight mechanism that can prevent late replies + after timeout or connection loss. For more information, + see EEP 53 and the documentation of the new alias/1 BIF + and the new options to the monitor/3 BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16800 Application(s): wx + + The application has been completely rewritten in order + to use wxWidgets version 3 as its base. + + Add basic documentation generated from the wxWidgets + project. + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** POTENTIAL INCOMPATIBILITY *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16885 Application(s): erts + Related Id(s): PR-2745 + + The BeamAsm JIT-compiler has been added to Erlang/OTP. + The JIT-compiler is enabled by default on most x86 + 64-bit platforms that have a C++ compiler that can + compile C++17. To verify that a JIT enabled emulator is + running you can use erlang:system_info(emu_flavor). + + For more information see the internal documentation of + BeamAsm in erts. + + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** POTENTIAL INCOMPATIBILITY *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + The ?NO_APP macro in edoc_doclet.hrl has been + deprecated. Use the atom no_app instead. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-16964 Application(s): compiler + + Generators in list and binary comprehensions will now + raise a {bad_generator,Generator} exception if the + generator has an incorrect type (instead of raising an + ad-hoc badarg or badarih exception). Similarly, when a + filter does not evaluate to a boolean, a + {bad_filter,Filter} exception will be raised. Some + minor bugs in the compilation of binary comprehensions + have also been fixed. + + + OTP-16981 Application(s): compiler + Related Id(s): ERL-1113 + + Some compiler warnings, such as the warning for an + expression whose result is ignored, could not be + suppressed by assigning to a variable beginning with + '_', but only by assigning to the anonymous variable + ('_'). This has now been changed so that any warning + that can be suppressed by assigning to the anonymous + variable can also be suppressed by assigning to a + variable beginning with '_'. + + + OTP-17044 Application(s): ssl + Related Id(s): PR-2654 + + Make TLS handshakes in Erlang distribution concurrent. + + + OTP-17142 Application(s): crypto, public_key, ssl + Related Id(s): GH-4637, GH-4650, PR-4756 + + TLS connections now support EdDSA certificates. + + + OTP-17213 Application(s): wx + Related Id(s): PR-3027 + + Added support for wxWebView. + + + OTP-17226 Application(s): compiler + Related Id(s): GH-4019, PR-4545 + + The compiler will now inline funs that are used only + once immediately after their definition. + + + OTP-17334 Application(s): stdlib + Related Id(s): EEP-56, PR-4638 + + Implementation of EEP 56 in supervisor. It adds the + concept of significant children as well as the + auto_shutdown supervisor flag. + + See the supervisor manual page for more information. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-15107 Application(s): stdlib + Related Id(s): ERL-1381, PR-2813 + + Time-outs in gen_statem with relative time 0 did not + behave quite according to the intended model. This has + now been corrected. + + The correction introduces a small potential + incompatibility e.g when combining a state time-out + with inserted events, and the inserted event does a + state change in the state with the time-out. Before + this correction the state time-out could be delivered + even after the second state change, but now it is + guaranteed that a state time-out is only delivered in + the state it was started for, even in this corner case. + + + OTP-16560 Application(s): megaco + + All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was + deprecated in OTP-23.0. They have now been removed. + + + OTP-16656 Application(s): crypto + + The functions and cipher names that were deprecated in + OTP-23.0 are now removed. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16809 Application(s): kernel + Related Id(s): ERL-1313 + + Change the value of the tag head returned by + disk_log:info/1 from {ok, Head} to just Head. + + + OTP-16811 Application(s): kernel + + Remove the support for distributed disk logs. The new + function disk_log:all/0 is to be used instead of + disk_log:accessible_logs/0. The function + disk_log:close/1 is to be used instead of + disk_log:lclose/1,2. + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** HIGHLIGHT *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16878 Application(s): erts + + The code loader has been rewritten in order to be able + to load JIT:ed code. As a consequence of this, it is no + longer possible to load HiPE code. + + + OTP-16943 Application(s): os_mon + Related Id(s): OTP-16906 + + The temporarily introduced configuration parameter + memsup_improved_system_memory_data has been removed. + + + OTP-16945 Application(s): erts + + Change escripts to output any errors or warnings to + standard error instead of standard out. + + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** HIGHLIGHT *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + The ?NO_APP macro in edoc_doclet.hrl has been + deprecated. Use the atom no_app instead. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16968 Application(s): kernel + + The pg2 module has been removed. + + + OTP-16970 Application(s): erl_interface + + The registry functionality part of erl_interface has + been removed. It was as of OTP 23 deprecated and + scheduled for removal in OTP 24. + + + OTP-16971 Application(s): stdlib + + The filename:src/1 function which was deprecated in OTP + 20 has been removed. Use filelib:find_source/1,3 + instead. + + + OTP-16974 Application(s): ssl + + Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1 + use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3 + instead. + + + OTP-16987 Application(s): erts + + The erlang:monitor_node/2 BIF will now fail with a + notalive exception if distribution has not been started + on the current node; it used to fail with a badarg + exception. + + + OTP-17062 Application(s): kernel + Related Id(s): ERIERL-537, ERL-1418, GH-4469 + + Let disk_log:open/1 change the size if a wrap log is + opened for the first time, that is, the disk log + process does not exist, and the value of option size + does not match the current size of the disk log. + + + OTP-17156 Application(s): kernel + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + OTP-17216 Application(s): kernel + Related Id(s): PR-2989 + + The behaviour for gen_tcp:connect/3,4 has been changed + to not per default bind to an address, which allows the + network stack to delay the address and port selection + to when the remote address is known. This allows better + port re-use, and thus enables far more outgoing + connections, since the ephemeral port range no longer + has to be a hard limit. + + There is a theoretical possibility that this behaviour + change can affect the set of possible error values, or + have other small implications on some platforms. + + + OTP-17219 Application(s): wx + Related Id(s): OTP-16800 + + Due to the support of the new backend versions some API + incompatibilities have been introduced. Examples of + changes are: + + wxWindowDC default creators have been removed + wxClientDC default creators have been removed + wxPaintDC default creators have been removed + wxWindow:setVirtualSizeHints() has been deprecated in + wxWidgets and removed + wxWindow:makeModal() has been deprecated in wxWidgets + and removed + wxToolBar:add/insertTool without label have been + deprecated in wxWidgets and removed + wxStyledTextCtrl some functions have changed arguments + from boolean to int + wxSizerItem:new() Some arguments have become options + Removed deprecated wxSizerItem:setWindow() use + assignWindow() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSizer() use + assignSizer() + wxMenu append/insert/prepend have changed return value + and lost IsCheckable argument + wxListCtrl:setItem/4 changed return value + wxImage:convertToGreyscale() options have changed + wxGridSizer:wxGridSizer() options have changed + wxGrid API have many changes + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGraphicsRenderer:createPen() have been removed + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGLCanvas API is incompatible + wxFlexGridSizer:wxFlexGridSizer() options have changed + wxDisplay:new() options have changed + wxCalendarDateAttr:new(ColText [,OptList]) have been + removed + wxBitmapButton:set/getBitmapSelected() have been + removed + + + OTP-17259 Application(s): ssh + Related Id(s): ERIERL-619, OTP-16511 + + The RSA SHA1 sign/verify variants are disabled by + default. That is, ssh-rsa is disabled by default as + well as the SHA1 sign/verify with RSA keys from id_rsa + and ssh_host_rsa_key. All SHA2 sign/verify are enabled + by default. + + The reason is that SHA1 is now considered easy to + break. + + To enable RSA with SHA1, for example for a very old and + unsafe peer, see Example 9 in the User's Guide chapter + Configuring algorithms in SSH. + + + OTP-17275 Application(s): erts + Related Id(s): PR-4553 + + The erl command line arguments +Bi, +Bd, and +B + erroneously caused reception of the USR1 signal to + terminate the runtime system without creating a crash + dump. Reception of the USR1 signal now always cause + termination *with* creation of a crash dump, regardless + of command line arguments passed. This bug has existed + at least since OTP R5B. + + + OTP-17355 Application(s): kernel + Related Id(s): OTP-17154 + + The return values from module socket functions send(), + sendto(), sendmsg(), sendfile() and recv() has been + changed to return a tuple tagged with select when a + SelectInfo was returned, and not sometimes tagged with + ok. + + This is a backwards incompatible change that improves + usability for code using asynchronous operations. + + + --------------------------------------------------------------------- + --- OTP-24.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17272 Application(s): otp + Related Id(s): GH-4626, PR-4627 + + Updated autoconf auxiliary files. + + + OTP-17278 Application(s): otp + Related Id(s): GH-4621 + + Do not allow a mandatory application to be disabled + using the configure switch --without-appname. + + + OTP-17373 Application(s): otp + Related Id(s): PR-4645 + + A build of OTP configured with --without-jinterface now + builds without complaining about missing jinterface + files. + + + OTP-17378 Application(s): otp + Related Id(s): PR-4791 + + The documentation about signaling in Erlang has been + improved in the Processes chapter of the Erlang + Reference Manual. + + + --------------------------------------------------------------------- + --- asn1-5.0.16 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17387 Application(s): asn1 + Related Id(s): OTP-17123 + + Fixed a bug in the asn1 compiler that potentially could + cause it to fail to open a file. + + + Full runtime dependencies of asn1-5.0.16: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.20.3 ---------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16940 Application(s): common_test + Related Id(s): ERL-1335 + + The option release_shell could crash when used together + with the spec option. + + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17385 Application(s): common_test, et, inets, kernel, snmp, + stdlib + Related Id(s): OTP-17123 + + Fixed warnings in code matching on underscore prefixed + variables. + + + Full runtime dependencies of common_test-1.20.3: 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.0 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17104 Application(s): compiler + Related Id(s): ERL-1380 + + A repeated stack trace variable in a try/catch was not + rejected. The following example will now cause a + compilation error: + + try E catch _:A:A -> A end. + + + OTP-17118 Application(s): compiler, stdlib + Related Id(s): PR-2825 + + Eliminated a Dialyzer crashed when the -MMD option is + used to generate a dependency file and a BEAM file a + the same time. + + + OTP-17206 Application(s): compiler + + When the makedep option was given, the compiler would + crash if the dependency output contained non-latin1 + characters. The compiler will now output the dependency + information encoded in UTF-8 to avoid crashing. + + + --- Improvements and New Features --- + + OTP-10391 Application(s): compiler + Related Id(s): OTP-16226 + + *** HIGHLIGHT *** + + Selective receive optimization will now be applied much + more often. + + The new recv_opt_info compile flag can be used to print + diagnostics relating to this optimization. + + You can read more about the selective receive + optimization in the Efficiency Guide. + + + OTP-16334 Application(s): compiler + + erlang:throw/1 will no longer build stack traces when + we can prove that they will never be inspected. + + + OTP-16706 Application(s): compiler + Related Id(s): ERL-1281 + + *** HIGHLIGHT *** + + Variables bound between the keywords 'try' and 'of' can + now be used in the clauses following the 'of' keyword + (that is, in the success case when no exception was + raised). + + + OTP-16824 Application(s): compiler + Related Id(s): PR-2664, PR-3006 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + Compiler warnings and errors now include column numbers + in addition to line numbers. + + When a compiler message is emitted, the source line is + printed along with a marker (a ^ character) that + indicates the column position of the issue. The option + 'brief' removes the printout of the source line. + + The compiler option {error_location, line | column} has + been added. The default value is column. Besides adding + column numbers to compilation warnings and errors, the + option also determines whether column numbers are + included in abstract code. If tools stop working, + setting the environment variable ERL_COMPILER_OPTIONS + can help (include {error_location, line}). + + The compiler will now call the function + PT:parse_transform_info/0 in parse transforms (if it + exists). It can be used by parse transforms to signal + that they can only handle line numbers in abstract + code. + + + OTP-16867 Application(s): compiler + Related Id(s): ERL-1354 + + Fixed a performance bug that made functions with lots + of try/after blocks slow to compile. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16964 Application(s): compiler + + *** HIGHLIGHT *** + + Generators in list and binary comprehensions will now + raise a {bad_generator,Generator} exception if the + generator has an incorrect type (instead of raising an + ad-hoc badarg or badarih exception). Similarly, when a + filter does not evaluate to a boolean, a + {bad_filter,Filter} exception will be raised. Some + minor bugs in the compilation of binary comprehensions + have also been fixed. + + + OTP-16981 Application(s): compiler + Related Id(s): ERL-1113 + + *** HIGHLIGHT *** + + Some compiler warnings, such as the warning for an + expression whose result is ignored, could not be + suppressed by assigning to a variable beginning with + '_', but only by assigning to the anonymous variable + ('_'). This has now been changed so that any warning + that can be suppressed by assigning to the anonymous + variable can also be suppressed by assigning to a + variable beginning with '_'. + + + OTP-17078 Application(s): compiler + Related Id(s): ERL-1430, PR-2918 + + The previously undocumented compiler options + warn_missing_spec and warn_missing_spec_all are now + documented. + + + OTP-17123 Application(s): compiler + + The compiler will now emit warnings when (previously + bound) underscore-prefixed variables are matched. + + + OTP-17168 Application(s): compiler + + Erlang source files not encoded in utf-8 will no longer + be accepted by the compiler unless it contains a + "coding: latin-1" comment. + + + OTP-17172 Application(s): compiler + + New compiler options from_abstr and no_lint have been + added. They are useful when implementing other + languages running on the BEAM. + + + OTP-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + OTP-17226 Application(s): compiler + Related Id(s): GH-4019, PR-4545 + + *** HIGHLIGHT *** + + The compiler will now inline funs that are used only + once immediately after their definition. + + + OTP-17260 Application(s): compiler + + It is now possible to disable warnings emitted from the + compiler's optimization passes with the new options + nowarn_opportunistic, nowarn_nomatch, nowarn_ignored, + and nowarn_failed. + + + OTP-17301 Application(s): compiler, erts + Related Id(s): GH-4636 + + Introduce new types nonempty_binary() and + nonempty_bitstring(). + + + OTP-17330 Application(s): compiler, stdlib + + Add compiler option {nowarn_unused_record, + RecordNames}. Document compiler option + nowarn_unused_type. + + + Full runtime dependencies of compiler-8.0: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16882 Application(s): crypto + + Add /usr/local/opt/openssl to the openssl configure + search path. This path is where some tools on OS X + place openssl. + + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + OTP-17254 Application(s): crypto, erts + Related Id(s): ERIERL-618, GH-4230 + + The configure scripts in crypto and erts now fail if a + requested feature cannot be enabled. + + Large parts of the configure script of crypto have been + rewritten with various improvements and bug fixes. It + is now better at finding usable OpenSSL libraries, but + will in the following cases fail to detect OpenSSL + libraries where it previously sometimes detected the + libraries by chance: + + -- OpenSSL installations with include directory and lib + directory parts installed in different base + directories. In order to detect such installations + after this change, the user must explicitly specify the + locations using the --with-ssl=<path> and the + --with-ssl-incl=<path> configure command line + arguments. + + -- When building with old gcc compilers or other + compilers on Debian derivatives with multiarch + directories under the lib directory. In order to detect + such installations after this change, the user must + explicitly specify the multiarch directory name using + the --with-ssl-lib-subdir=lib/<multiarch-dir> configure + command line argument. + + + OTP-17312 Application(s): crypto + Related Id(s): PR-4723 + + The value 'none' was missing in the specs of + crypto:sign/4 and crypto:verify/6. + + + --- Improvements and New Features --- + + OTP-16656 Application(s): crypto + + *** POTENTIAL INCOMPATIBILITY *** + + The functions and cipher names that were deprecated in + OTP-23.0 are now removed. + + + OTP-17001 Application(s): crypto + Related Id(s): PR-2852 + + Removed installed directory priv/obj/ containing + superfluous object files. + + + OTP-17142 Application(s): crypto, public_key, ssl + Related Id(s): GH-4637, GH-4650, PR-4756 + + *** HIGHLIGHT *** + + TLS connections now support EdDSA certificates. + + + OTP-17313 Application(s): crypto + Related Id(s): PR-4686 + + Add prop_aead attribute to map from + crypto:cipher_info/1. + + + Full runtime dependencies of crypto-5.0: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-5.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + Full runtime dependencies of debugger-5.1: compiler-5.0, erts-9.0, + kernel-5.3, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- dialyzer-4.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16883 Application(s): dialyzer + + Some internal HiPE modules have been moved into the + dialyzer application so that dialyzer works when HiPE + is disabled. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16986 Application(s): dialyzer + Related Id(s): ERL-1379, ERL-1480, GH-4033 + + Add warning option no_underspecs. + + + OTP-16995 Application(s): dialyzer + Related Id(s): ERL-1348 + + Report filename and location for warnings returned due + to the -Wunknown option. When used from the + command-line, one location per file is printed. + + + OTP-17084 Application(s): dialyzer + + Add types and specifications for documentation. + + + OTP-17177 Application(s): dialyzer + Related Id(s): OTP-16824 + + Add option error_location. The option is recognized if + included in the environment variable + ERL_COMPILER_OPTIONS. + + + OTP-17183 Application(s): dialyzer + Related Id(s): ERL-892, GH-4493 + + Clarify how to declare records used in match patterns. + + + Full runtime dependencies of dialyzer-4.4: compiler-7.0, erts-9.0, + kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-1.0 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17092 Application(s): edoc + + Fix so that the edoc_doclet option file_suffix also + effects the links emitted into the module index. + + + --- Improvements and New Features --- + + OTP-16949 Application(s): edoc + Related Id(s): OTP-17192, PR-2803 + + *** HIGHLIGHT *** + + *** POTENTIAL INCOMPATIBILITY *** + + EDoc, the Erlang documentation engine, hits version 1.0 + with this release, which means a few changes. + + EDoc is now capable of emitting EEP-48 doc chunks. This + means that, with some configuration, community projects + can now provide documentation for shell_docs the same + way that OTP libraries did since OTP 23.0. + + The @spec and @type EDoc tags have been deprecated. + These are not supported with the new chunk-generating + doclet and layout. Moreover, previously when there was + a redundant @spec tag and -spec attribute defined for + the same function, the @spec tag would take precedence. + Now, the -spec attribute takes precedence and is more + important. The same is true for redundant @type tags + and -type attributes. Warnings are now emitted when + such redundant entries are found. + + The ?NO_APP macro in edoc_doclet.hrl has been + deprecated. Use the atom no_app instead. + + See the Doc chunks chapter in the Edoc User's Guide for + more details. + + + OTP-17095 Application(s): edoc + Related Id(s): PR-2914 + + Edoc has been updated to use -spec to document its own + interface instead of @doc@ tags. + + Together with this change the inter-application linking + for -spec style documentation has been improved. + + + OTP-17153 Application(s): edoc + Related Id(s): PR-2674 + + Allow user defined edoc macros to be functions. + + + Full runtime dependencies of edoc-1.0: erts-6.0, inets-5.10, + kernel-3.0, stdlib-3.15, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_docgen-1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17122 Application(s): erl_docgen, stdlib + + Fixed bug in shell_docs and erl_docgen that interpreted + em tags as strong. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17257 Application(s): erl_docgen + + Fix bug where see* elements within type/name were + removed when generating html. Bug has been present + since OTP-21. + + + --- Improvements and New Features --- + + OTP-16877 Application(s): erl_docgen + + Add support for displaying .svg images. + + + OTP-17192 Application(s): erl_docgen + Related Id(s): PR-2803 + + Updated the way specs are generated after changes in + edoc. + + + Full runtime dependencies of erl_docgen-1.1: edoc-1.0, erts-9.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.0 ----------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17132 Application(s): erl_interface, kernel + + Two options have been added to erl_call. The + -fetch_stdout option fetches stdout data resulting from + the code invoked by erl_call. The -fetch_stdout option + disables printing of the result term. In order to + implement the first of these two options a new function + called ei_xrpc_from has been added to erl_interface. + For details see the erl_call documentation and + erl_interface documentation. + + + --- Improvements and New Features --- + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16970 Application(s): erl_interface + + *** POTENTIAL INCOMPATIBILITY *** + + The registry functionality part of erl_interface has + been removed. It was as of OTP 23 deprecated and + scheduled for removal in OTP 24. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17270 Application(s): erl_interface + Related Id(s): OTP-17127 + + Support the new link protocol in order to be able to + phase out the old link protocol in the future. + erl_interface does not support setting up or removing + links from the erl_interface side, so the bug present + with the old protocol did not effect erl_interface. + This since both participants of a link simultaneously + needed to operate on the link in order to trigger the + bug. + + + --- 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-12.0 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16822 Application(s): erts + Related Id(s): PR-2723 + + file:open/2 now throws an badarg error when opened with + both the ram and raw options. + + + OTP-16879 Application(s): erts + + The estone benchmark has been updated to better reflect + changes in the compiler and run-time system. + + + OTP-16880 Application(s): erts + + Fix profile guided optimization of run-time system when + using GCC 7 or later. + + + OTP-16884 Application(s): erts + + Fix double close of fd when creating crash dump. + + + OTP-17014 Application(s): erts + + Improve erl error message when unable to open included + args_file. + + + OTP-17020 Application(s): erts + + Remove warning text about the -- operation from + documentation + + The -- operation was optimized in Erlang/OTP 22 so that + its worst case complexity is O(N*log(N)), where N is + the total size of the input lists. Therefore, the + warning in the documentation saying that the time + complexity is proportional to length(A)*length(B) is + incorrect and is no longer needed. Notice that + Erlang/OTP 21 will no longer be supported when + Erlang/OTP 24 gets released. + + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + OTP-17131 Application(s): erts + Related Id(s): GH-4360, PR-3031 + + Windows process erl.exe killed if its service process + erlsrv.exe terminates. + + + OTP-17254 Application(s): crypto, erts + Related Id(s): ERIERL-618, GH-4230 + + The configure scripts in crypto and erts now fail if a + requested feature cannot be enabled. + + Large parts of the configure script of crypto have been + rewritten with various improvements and bug fixes. It + is now better at finding usable OpenSSL libraries, but + will in the following cases fail to detect OpenSSL + libraries where it previously sometimes detected the + libraries by chance: + + -- OpenSSL installations with include directory and lib + directory parts installed in different base + directories. In order to detect such installations + after this change, the user must explicitly specify the + locations using the --with-ssl=<path> and the + --with-ssl-incl=<path> configure command line + arguments. + + -- When building with old gcc compilers or other + compilers on Debian derivatives with multiarch + directories under the lib directory. In order to detect + such installations after this change, the user must + explicitly specify the multiarch directory name using + the --with-ssl-lib-subdir=lib/<multiarch-dir> configure + command line argument. + + + OTP-17275 Application(s): erts + Related Id(s): PR-4553 + + *** POTENTIAL INCOMPATIBILITY *** + + The erl command line arguments +Bi, +Bd, and +B + erroneously caused reception of the USR1 signal to + terminate the runtime system without creating a crash + dump. Reception of the USR1 signal now always cause + termination *with* creation of a crash dump, regardless + of command line arguments passed. This bug has existed + at least since OTP R5B. + + + OTP-17314 Application(s): erts + Related Id(s): GH-4624, OTP-15926, PR- + + Add check to make sure that when passing an option to + erl that requires an argument, but none is given, we + report an error. This fixes a bug introduced in + OTP-22.1 via OTP-15926. + + + OTP-17329 Application(s): erts + Related Id(s): PR-4730 + + The "Last calls" section in crash dumps have been + updated to print newlines after each non-function + save_calls state (send, receive, timeout). + + + OTP-17372 Application(s): erts, kernel + + Sockets created with socket:accept not counted + (socket:info/0). + + + --- Improvements and New Features --- + + OTP-14601 Application(s): erts, kernel + Related Id(s): OTP-16749, PR-2641, PR-2670 + + The experimental socket module can now use any protocol + (by name) the OS supports. Suggested in PR-2641, + implemented in PR-2670. + + + OTP-14753 Application(s): erts + + New functions enif_dynamic_resource_call enables NIFs + to call native code in another NIF module. The call is + done via a resource callback function dyncall supplied + by the user with the new enif_init_resource_type. + + + OTP-16226 Application(s): erts + Related Id(s): OTP-10391 + + Runtime support for new improved selective receive + optimization. + + + OTP-16653 Application(s): erts + + The deprecated function erlang:get_stacktrace/0 has + been removed. Use the new syntax in try/catch to + retrieve the stack backtrace. + + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16687 Application(s): erts + Related Id(s): PR-2762, PR-2996 + + The erlang module documentation has been updated to + improve clarity and description of edge cases. + + + OTP-16703 Application(s): erts, kernel + Related Id(s): PR-2620 + + An example implementation of Erlang distribution over + UDS using distribution processes has been introduced. + + Thanks to Jérôme de Bretagne + + + OTP-16712 Application(s): erts + + Improve code generation when creating funs by adding a + new beam instruction make_fun3 that does not do GC and + allows for better register allocation. + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + The process alias feature as outlined by EEP 53 has + been introduced. It is introduced in order to provide a + lightweight mechanism that can prevent late replies + after timeout or connection loss. For more information, + see EEP 53 and the documentation of the new alias/1 BIF + and the new options to the monitor/3 BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16788 Application(s): erts + + Remove old unused +MYm and ERL_MALLOC_LIB options. + + + OTP-16814 Application(s): erts + Related Id(s): PR-2704 + + Increase timer resolution on windows. + + + OTP-16878 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The code loader has been rewritten in order to be able + to load JIT:ed code. As a consequence of this, it is no + longer possible to load HiPE code. + + + OTP-16881 Application(s): erts + + Add support in the Erlang/OTP build system to generate + a compilation database that can be used by third-party + tools (such as irony in Emacs) to compile the erts C + and C++ source code. Create the database using make + compdb. + + + OTP-16885 Application(s): erts + Related Id(s): PR-2745 + + *** HIGHLIGHT *** + + The BeamAsm JIT-compiler has been added to Erlang/OTP. + The JIT-compiler is enabled by default on most x86 + 64-bit platforms that have a C++ compiler that can + compile C++17. To verify that a JIT enabled emulator is + running you can use erlang:system_info(emu_flavor). + + For more information see the internal documentation of + BeamAsm in erts. + + + OTP-16898 Application(s): erts + Related Id(s): OTP-16856 + + By default all ERTS internal memory allocators based on + alloc_util will now use their own separate carrier pool + for migration of carriers instead of using a node + global carrier pool. This was the default behavior + between OTP 17 and OTP 21, but changed to use a node + global carrier pool as of OTP 22.0. Usage of the node + global carrier pool proved troublesome since it had a + tendency to spread long lived blocks into allocators + with normally short lived blocks causing increased + memory fragmentation. The node global carrier pool + behavior as well as other behaviors can be configured + using the +M<S>cp command line argument. + + + OTP-16936 Application(s): erts, stdlib + Related Id(s): ERL-1367 + + New functions have been added to the maps module: + merge_with/3, intersect/2, intersect_with/3, + filtermap/2, from_keys/2, and maps:foreach/2. + + maps:merge_with/3 is the same as merge/2 but takes an + extra fun that is used to combine items with the same + key. + + maps:intersect/2 computes the intersection of two maps. + + maps:intersect_with/3 is the same as intersect/2 but + takes an extra fun that is used to combine intersecting + items. + + maps:filtermap/2 allows filtering and mapping of a map + in a single pass. + + maps:from_keys/2 constructs a map from a list of keys + and a single value and can be used to to optimize sets + operations such as from_list/1, filter/2, + intersection/2, and subtract/2. + + maps:foreach/2 allows iteration over a map without + returning any value. + + + OTP-16945 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + Change escripts to output any errors or warnings to + standard error instead of standard out. + + + OTP-16952 Application(s): erts, kernel + + A new erl parameter for specifying a file descriptor + with configuration data has been added. This makes it + possible to pass the parameter "-configfd FD" when + executing the erl command. When this option is given, + the system will try to read and parse configuration + parameters from the file descriptor. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16980 Application(s): erts, stdlib + Related Id(s): ERL-1308 + + The pretty printer for floating point number have been + changed to make it easier to see if the integer part of + the number has been rounded. After the change the digit + that may have been rounded always appears last or just + before the exponent character (e or E). This is + accomplished by always printing the number using + scientific notation if it is so large that the integer + part could be rounded. + + + OTP-16987 Application(s): erts + + *** POTENTIAL INCOMPATIBILITY *** + + The erlang:monitor_node/2 BIF will now fail with a + notalive exception if distribution has not been started + on the current node; it used to fail with a badarg + exception. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17028 Application(s): erts + + One can now pass the ERL_ROOTDIR environment variable + to the erl and start scrips. This makes it easier to + use Erlang for Android apps. On Android, apps don't + control where they will be installed. + + + OTP-17057 Application(s): erts, stdlib + + All long running functions in the maps API are now + yielding. In previous releases the functions + maps:from_list/1, maps:keys/1 and maps:values/1 did not + yield. This could cause unfair scheduling of processes. + + + OTP-17154 Application(s): erts, kernel + Related Id(s): OTP-16749 + + socket:sendfile/2,3,4,5 has been implemented, for + platforms that support the underlying socket library + call. + + + OTP-17207 Application(s): compiler, erts + + The bit matching and construction syntax now supports + 16-bit floats (IEEE 754-2008). + + + OTP-17285 Application(s): erts + Related Id(s): PR-4651 + + Add process_flag(fullsweep_after, N) to change + fullsweep_after value in an already spawned process. + + + OTP-17293 Application(s): erts + Related Id(s): PR-4672 + + The max_heap_size error report has been updated to + include the message queue size. + + + OTP-17301 Application(s): compiler, erts + Related Id(s): GH-4636 + + Introduce new types nonempty_binary() and + nonempty_bitstring(). + + + OTP-17310 Application(s): erts + Related Id(s): PR-4656 + + Optimize updates of large maps with identical keys and + values. E.g. in the example below the original Map will + be reused as the return of the second update. + + 1> Map = LargeMap#{ a => b }. + + 2> Map#{ a := b }. + + The same optimization was done for small maps (< 33 + keys) in erts-10.4 (OTP 22.0). + + + OTP-17341 Application(s): erts + Related Id(s): PR-2945 + + The previously undocumented internal -no_epmd option + has been made documented and public. + + + OTP-17368 Application(s): erts + + Reduce memory carrier super alignment on 64-bit + architectures. In practice allows more fine grained + control over configuration of memory carrier sizes, + from increments of 256kb to 16kb. + + + Full runtime dependencies of erts-12.0: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- et-1.6.5 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17385 Application(s): common_test, et, inets, kernel, snmp, + stdlib + Related Id(s): OTP-17123 + + Fixed warnings in code matching on underscore prefixed + variables. + + + Full runtime dependencies of et-1.6.5: erts-9.0, kernel-5.3, + runtime_tools-1.10, stdlib-3.4, wx-1.2 + + + --------------------------------------------------------------------- + --- eunit-2.6.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17300 Application(s): eunit + Related Id(s): PR-4695 + + The eunit_surefire report handler has been updated to + automatically create the directories needed to store + the surefire xml file. + + + Full runtime dependencies of eunit-2.6.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ftp-1.1 --------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-16926 Application(s): ftp + Related Id(s): ERL-1450, GH-4473 + + Use OTP supervisor as intended, avoiding surprising + behavior as the killing of the user's process. Also, + FTP state handling logic is improved to avoid race + conditions that could result in unexpected errors. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + --- Improvements and New Features --- + + OTP-15523 Application(s): ftp + Related Id(s): OTP-15352, PR-1968 + + *** HIGHLIGHT *** + + Add support for FTPES (explicit FTP over TLS). + + + Full runtime dependencies of ftp-1.1: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- inets-7.4 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16722 Application(s): inets + + Drop all support for ftp and tftp in inets code. + + + OTP-16723 Application(s): inets + + Deprecate following functions in httpd_util module: + flatlength/1, lhexlist_to_integer/1, + integer_to_hexlist/1, strip/1, and suffix/1. + + + OTP-16724 Application(s): inets + + Remove support of HTTP 0.9 in httpd. + + + OTP-16725 Application(s): inets + + Remove support of HTTP 0.9 in httpc. + + + OTP-17385 Application(s): common_test, et, inets, kernel, snmp, + stdlib + Related Id(s): OTP-17123 + + Fixed warnings in code matching on underscore prefixed + variables. + + + Full runtime dependencies of inets-7.4: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.12 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16720 Application(s): erl_interface, erts, jinterface + Related Id(s): PR-2680 + + Accept 64-bit process identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit pids in a future OTP release. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17007 Application(s): erl_interface, erts, jinterface + + Accept 64-bit port identifiers from external nodes. + This is the first step in an upgrade path toward using + 64-bit port identifiers in a future OTP release. + + + OTP-17170 Application(s): jinterface + Related Id(s): PR-3005 + + Make OtpErlangExternalFun's fields module, function and + arity public. + + + --------------------------------------------------------------------- + --- kernel-8.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-14700 Application(s): kernel + Related Id(s): PR-2848 + + A bug has been fixed for the internal inet_res resolver + cache that handled a resolver configuration file status + timer incorrectly and caused performance problems due + to many unnecessary file system accesses. + + + OTP-16809 Application(s): kernel + Related Id(s): ERL-1313 + + *** POTENTIAL INCOMPATIBILITY *** + + Change the value of the tag head returned by + disk_log:info/1 from {ok, Head} to just Head. + + + OTP-17132 Application(s): erl_interface, kernel + + Two options have been added to erl_call. The + -fetch_stdout option fetches stdout data resulting from + the code invoked by erl_call. The -fetch_stdout option + disables printing of the result term. In order to + implement the first of these two options a new function + called ei_xrpc_from has been added to erl_interface. + For details see the erl_call documentation and + erl_interface documentation. + + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17262 Application(s): kernel + Related Id(s): GH-4588, OTP-16487, PR-4604 + + inet:get_rc/0 has been corrected to return host entries + as separate entries instead of (incorrectly) in a list + within the list. This bug was introduced by OTP-16487 + in OTP-23.0-rc1. + + + OTP-17277 Application(s): kernel + + The type gen_tcp:option_name() had a duplicate + pktoptions value. + + + OTP-17286 Application(s): kernel + Related Id(s): PR-4619 + + Fixed removal of empty groups from internal state in + pg. + + + OTP-17287 Application(s): kernel + Related Id(s): PR-4581 + + erl -remsh now prints an error message when it fails to + connect to the remote node. + + + OTP-17288 Application(s): kernel + Related Id(s): PR-4581 + + Fix bugs related to corrupt shell history files. + + Error messages printed by shell history are now logged + as logger error reports instead of written to standard + error. + + + OTP-17315 Application(s): kernel + Related Id(s): GH-4626 + + A logger warning is now issues when too many arguments + are given to -name or -sname. Example: erl -name a b. + + + OTP-17344 Application(s): kernel + Related Id(s): GH-4631, OTP-12136, OTP-14485, PR-4633 + + The cache used by inet_res now, again, can handle + multiple IP addresses per domain name, and thus fixes a + bug introduced in PR-3041 (OTP-13126) and PR-2891 + (OTP-14485). + + + OTP-17372 Application(s): erts, kernel + + Sockets created with socket:accept not counted + (socket:info/0). + + + OTP-17374 Application(s): kernel + Related Id(s): GH-4680, OTP-17216, PR-2989, PR-4787 + + The {fd, Fd} option to gen_tcp:listen/2 did not work + for inet_backend socket, which has been fixed. + + + --- Improvements and New Features --- + + OTP-13126 Application(s): kernel + Related Id(s): PR-3041 + + The cache used by the DNS resolver inet_res has been + improved to use ETS lookups instead of server calls. + This is a considerable speed improvement for cache + hits. + + + OTP-14485 Application(s): kernel + Related Id(s): PR-2891 + + The cache ETS table type for the internal DNS resolver + inet_res has changed type (internally) to get better + speed and atomicity. + + + OTP-14601 Application(s): erts, kernel + Related Id(s): OTP-16749, PR-2641, PR-2670 + + The experimental socket module can now use any protocol + (by name) the OS supports. Suggested in PR-2641, + implemented in PR-2670. + + + OTP-16517 Application(s): kernel + Related Id(s): PR-2827 + + The DNS resolver inet_res has been updated to support + CAA (RFC 6844) and URI (RFC 7553) records. + + + OTP-16611 Application(s): kernel + Related Id(s): OTP-16749 + + *** HIGHLIGHT *** + + A compatibility adaptor for gen_tcp to use the new + socket API has been implemented (gen_tcp_socket). Used + when setting the kernel application variable + inet_backend = socket. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16698 Application(s): kernel + Related Id(s): PR-2634 + + The file server can now be bypassed in file:delete/1,2 + with the raw option. + + + OTP-16703 Application(s): erts, kernel + Related Id(s): PR-2620 + + An example implementation of Erlang distribution over + UDS using distribution processes has been introduced. + + Thanks to Jérôme de Bretagne + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + The process alias feature as outlined by EEP 53 has + been introduced. It is introduced in order to provide a + lightweight mechanism that can prevent late replies + after timeout or connection loss. For more information, + see EEP 53 and the documentation of the new alias/1 BIF + and the new options to the monitor/3 BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16749 Application(s): erts, kernel + Related Id(s): OTP-14601 + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental new socket API has been further + developed. Some backwards incompatible changes with + respect to OTP 23 have been made. + + The control message format has been changed so a + decoded value is now in the 'value' field instead of in + the 'data' field. The 'data' field now always contains + binary data. + + Some type names have been changed regarding message + headers and control message headers. + + socket:bind/2 now returns plain ok instead of {ok, + Port} which was only relevant for the inet and inet6 + address families and often not interesting. To find out + which port was chosen use socket:sockname/1. + + + OTP-16793 Application(s): kernel + Related Id(s): ERL-1332, PR-2740 + + New function os:env/0 returns all OS environment + variables as a list of 2-tuples. + + + OTP-16811 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Remove the support for distributed disk logs. The new + function disk_log:all/0 is to be used instead of + disk_log:accessible_logs/0. The function + disk_log:close/1 is to be used instead of + disk_log:lclose/1,2. + + + OTP-16947 Application(s): kernel + Related Id(s): PR-2781 + + Expand the spec for erl_epmd:listen_port_please/2 to + mirror erl_epmd:port_please/2. + + + OTP-16952 Application(s): erts, kernel + + A new erl parameter for specifying a file descriptor + with configuration data has been added. This makes it + possible to pass the parameter "-configfd FD" when + executing the erl command. When this option is given, + the system will try to read and parse configuration + parameters from the file descriptor. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16968 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + The pg2 module has been removed. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17015 Application(s): kernel + + Allow utf-8 binaries as parts of logger_formatter + template. + + + OTP-17062 Application(s): kernel + Related Id(s): ERIERL-537, ERL-1418, GH-4469 + + *** POTENTIAL INCOMPATIBILITY *** + + Let disk_log:open/1 change the size if a wrap log is + opened for the first time, that is, the disk log + process does not exist, and the value of option size + does not match the current size of the disk log. + + + OTP-17103 Application(s): kernel + Related Id(s): PR-2949 + + Allow the shell history of an erlang node to be fetched + and stores using a custom callback module. See + shell_history configuration parameter in the kernel + documentation for more details. + + + OTP-17106 Application(s): kernel + Related Id(s): PR-2885 + + The simple logger (used to log events that happen + before kernel has been started) has been improved to + print prettier error messages. + + + OTP-17154 Application(s): erts, kernel + Related Id(s): OTP-16749 + + socket:sendfile/2,3,4,5 has been implemented, for + platforms that support the underlying socket library + call. + + + OTP-17155 Application(s): kernel + + Add socket monitor(s) for all types sockets. + + + OTP-17156 Application(s): kernel + + *** POTENTIAL INCOMPATIBILITY *** + + Fix various issues with the gen_tcp_socket. Including + documenting some incompatibilities. + + + OTP-17157 Application(s): kernel + + inet:i/0 now also shows existing gen_tcp compatibility + sockets (based on 'socket'). + + + OTP-17181 Application(s): kernel + Related Id(s): PR-2457 + + Added support in logger for setting primary metadata. + The primary metadata is passed as a base metadata to + all log events in the system. See Metadata in the + Logger chapter of the Kernel User's Guide for more + details. + + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + OTP-17198 Application(s): kernel + Related Id(s): PR-2721 + + The Fun's passed to logger:log/2,3,4 can now return + metadata that will only be fetched when needed. See + logger:log/2,3,4 for more details. + + + OTP-17201 Application(s): kernel + Related Id(s): PR-4534 + + erpc:multicall() has been rewritten to be able to + utilize the newly introduced and improved selective + receive optimization. + + + OTP-17203 Application(s): kernel + Related Id(s): OTP-17156 + + Add utility fiunction inet:info/1 to provide + miscellaneous info about a socket. + + + OTP-17216 Application(s): kernel + Related Id(s): PR-2989 + + *** POTENTIAL INCOMPATIBILITY *** + + The behaviour for gen_tcp:connect/3,4 has been changed + to not per default bind to an address, which allows the + network stack to delay the address and port selection + to when the remote address is known. This allows better + port re-use, and thus enables far more outgoing + connections, since the ephemeral port range no longer + has to be a hard limit. + + There is a theoretical possibility that this behaviour + change can affect the set of possible error values, or + have other small implications on some platforms. + + + OTP-17266 Application(s): kernel + Related Id(s): PR-4564 + + An option {nxdomain_reply, boolean()} has been + implemented in the DNS resolver inet_res. It is useful + since an nxdomain error from a name server does contain + the SOA record if the domain exists at all. This record + is useful to determine a TTL for negative caching of + the failed entry. + + + OTP-17284 Application(s): kernel + Related Id(s): PR-4615 + + Optimized lookup of local processes part of groups in + pg. + + + OTP-17355 Application(s): kernel + Related Id(s): OTP-17154 + + *** POTENTIAL INCOMPATIBILITY *** + + The return values from module socket functions send(), + sendto(), sendmsg(), sendfile() and recv() has been + changed to return a tuple tagged with select when a + SelectInfo was returned, and not sometimes tagged with + ok. + + This is a backwards incompatible change that improves + usability for code using asynchronous operations. + + + OTP-17385 Application(s): common_test, et, inets, kernel, snmp, + stdlib + Related Id(s): OTP-17123 + + Fixed warnings in code matching on underscore prefixed + variables. + + + Full runtime dependencies of kernel-8.0: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-4.0 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16560 Application(s): megaco + + *** POTENTIAL INCOMPATIBILITY *** + + All the pre-v3 codec(s) (prev3a, prev3b and prev3c) was + deprecated in OTP-23.0. They have now been removed. + + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + Full runtime dependencies of megaco-4.0: asn1-3.0, debugger-4.0, + erts-7.0, et-1.5, kernel-3.0, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- mnesia-4.19.1 --------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17217 Application(s): mnesia + + Suppression of deprecation warnings has been added to + the source files of the Mnesia application. + + + OTP-17294 Application(s): mnesia + Related Id(s): GH-4525, PR-4674 + + Fixed that the backend plugin initialization is done + only once. + + + Full runtime dependencies of mnesia-4.19.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.9.6 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17214 Application(s): observer + + Updated gui parts to work with the new wx version. + + + Full runtime dependencies of observer-2.9.6: erts-11.0, et-1.5, + kernel-7.0, runtime_tools-1.8.14, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- odbc-2.13.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + Full runtime dependencies of odbc-2.13.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- os_mon-2.7 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16943 Application(s): os_mon + Related Id(s): OTP-16906 + + *** POTENTIAL INCOMPATIBILITY *** + + The temporarily introduced configuration parameter + memsup_improved_system_memory_data has been removed. + + + OTP-16944 Application(s): os_mon + Related Id(s): PR-2787 + + Fix disk_sup to also search the system PATH on linux + when looking for the df program. + + + Full runtime dependencies of os_mon-2.7: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.3 -------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16957 Application(s): parsetools, tools + + Add types and specifications for documentation. + + + OTP-17023 Application(s): parsetools + + Let Leex and Yecc recognize the environment variable + ERL_COMPILER_OPTIONS. Add Yecc option {error_location, + column | line}. + + + Full runtime dependencies of parsetools-2.3: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.11 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17142 Application(s): crypto, public_key, ssl + Related Id(s): GH-4637, GH-4650, PR-4756 + + *** HIGHLIGHT *** + + TLS connections now support EdDSA certificates. + + + OTP-17352 Application(s): public_key, ssh + + The functions public_key:ssh_encode/2, + public_key:ssh_decode/2, + public_key:ssh_hostkey_fingerprint/1 and + public_key:ssh_hostkey_fingerprint/2 are deprecated. + + Replacement functions are available in SSH, see the + Deprecations chapter in the Erlang/OTP documentation. + + + OTP-17384 Application(s): public_key, ssl + Related Id(s): GH-4800 + + Enhance documentation and logging of certificate + handling. + + + Full runtime dependencies of public_key-1.11: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- reltool-0.9 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + OTP-17292 Application(s): reltool, sasl + Related Id(s): PR-4684, PR-4685 + + Removed timestamps from files generated by sasl and + reltool to enable deterministic builds. + + + Full runtime dependencies of reltool-0.9: erts-7.0, kernel-3.0, + sasl-2.4, stdlib-3.4, tools-2.6.14, wx-1.2 + + + --------------------------------------------------------------------- + --- runtime_tools-1.16.2 -------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of runtime_tools-1.16.2: erts-11.0, + kernel-7.0, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17189 Application(s): kernel, reltool, sasl + Related Id(s): PR-2675 + + Recognize new key 'optional_applications' in + application resource files. + + + OTP-17292 Application(s): reltool, sasl + Related Id(s): PR-4684, PR-4685 + + Removed timestamps from files generated by sasl and + reltool to enable deterministic builds. + + + Full runtime dependencies of sasl-4.1: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.9 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17049 Application(s): megaco, snmp + + Removed deprecated functions marked for removal. + + + OTP-17354 Application(s): snmp + + Removed timestamps from files generated by snmp to + enable deterministic builds. + + + OTP-17385 Application(s): common_test, et, inets, kernel, snmp, + stdlib + Related Id(s): OTP-17123 + + Fixed warnings in code matching on underscore prefixed + variables. + + + Full runtime dependencies of snmp-5.9: crypto-3.3, erts-6.0, + kernel-3.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.12 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17353 Application(s): ssh + + The send window handling is changed to not initialize a + too large window on some occasions. + + + --- Improvements and New Features --- + + OTP-16750 Application(s): ssh + + Removed usage of erlang:is_port/1 from the SSH + implementation. + + + OTP-17051 Application(s): ssh + + Internal connection setup refactoring. + + + OTP-17140 Application(s): ssh + + Refactor SSH fsm into a (hopefully) more comprehensible + set of gen_statem callback-files. + + + OTP-17259 Application(s): ssh + Related Id(s): ERIERL-619, OTP-16511 + + *** POTENTIAL INCOMPATIBILITY *** + + The RSA SHA1 sign/verify variants are disabled by + default. That is, ssh-rsa is disabled by default as + well as the SHA1 sign/verify with RSA keys from id_rsa + and ssh_host_rsa_key. All SHA2 sign/verify are enabled + by default. + + The reason is that SHA1 is now considered easy to + break. + + To enable RSA with SHA1, for example for a very old and + unsafe peer, see Example 9 in the User's Guide chapter + Configuring algorithms in SSH. + + + OTP-17322 Application(s): ssh + Related Id(s): EEP-56, OTP-17334, PR-4638 + + Adapt ssh supervisors to the new 'significant' and + 'auto_shutdown' flags in supervisor. + + + OTP-17352 Application(s): public_key, ssh + + The functions public_key:ssh_encode/2, + public_key:ssh_decode/2, + public_key:ssh_hostkey_fingerprint/1 and + public_key:ssh_hostkey_fingerprint/2 are deprecated. + + Replacement functions are available in SSH, see the + Deprecations chapter in the Erlang/OTP documentation. + + + Full runtime dependencies of ssh-4.12: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + OTP-17343 Application(s): ssl + + TLS handshake should fail if OCSP staple is requested + but missing. Note that OCSP support is still considered + experimental and only partially implemented. + + + --- Improvements and New Features --- + + OTP-16974 Application(s): ssl + + *** POTENTIAL INCOMPATIBILITY *** + + Removed ssl:ssl_accept/1,2,3 and ssl:cipher:suites/0,1 + use ssl:handshake/1,2,3 and ssl:cipher_suites/2,3 + instead. + + + OTP-17044 Application(s): ssl + Related Id(s): PR-2654 + + *** HIGHLIGHT *** + + Make TLS handshakes in Erlang distribution concurrent. + + + OTP-17117 Application(s): ssl + Related Id(s): PR-2933 + + Randomize internal {active,n} optimization when running + Erlang distribution over TLS to spread RAM/CPU spike + that may occur when starting up a big cluster. + + + OTP-17142 Application(s): crypto, public_key, ssl + Related Id(s): GH-4637, GH-4650, PR-4756 + + *** HIGHLIGHT *** + + TLS connections now support EdDSA certificates. + + + OTP-17384 Application(s): public_key, ssl + Related Id(s): GH-4800 + + Enhance documentation and logging of certificate + handling. + + + Full runtime dependencies of ssl-10.4: crypto-4.2, erts-10.0, + inets-5.10.7, kernel-6.0, public_key-1.8, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.15 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-15107 Application(s): stdlib + Related Id(s): ERL-1381, PR-2813 + + *** POTENTIAL INCOMPATIBILITY *** + + Time-outs in gen_statem with relative time 0 did not + behave quite according to the intended model. This has + now been corrected. + + The correction introduces a small potential + incompatibility e.g when combining a state time-out + with inserted events, and the inserted event does a + state change in the state with the time-out. Before + this correction the state time-out could be delivered + even after the second state change, but now it is + guaranteed that a state time-out is only delivered in + the state it was started for, even in this corner case. + + + OTP-16865 Application(s): stdlib + + Fix bugs in erl_eval concerning bitstring + comprehensions. + + + OTP-16905 Application(s): stdlib + + File names that start with a dot (such as ".gitignore" + are now treated as file names and not extensions by + filename:extension/1 and filename:rootname/1. + + + OTP-16950 Application(s): stdlib + Related Id(s): ERL-1378 + + Fixed a bug where beam_lib:chunks/3 with the + allow_missing_chunks option would crash if a named + chunk was missing. + + + OTP-17077 Application(s): compiler, erts, stdlib + Related Id(s): ERL-1431, PR-2903, PR-2905, PR-2906 + + A floating point zero (0.0) can be both positive (+0.0) + and negative (-0.0). Multiple bugs in the compiler, + runtime system, and STDLIB have been fixed to ensure + that the minus sign on 0.0 is not lost. + + + OTP-17118 Application(s): compiler, stdlib + Related Id(s): PR-2825 + + Eliminated a Dialyzer crashed when the -MMD option is + used to generate a dependency file and a BEAM file a + the same time. + + + OTP-17122 Application(s): erl_docgen, stdlib + + Fixed bug in shell_docs and erl_docgen that interpreted + em tags as strong. + + + OTP-17133 Application(s): stdlib + + On Solaris, the math:acos/1 and math:asin/1 functions + would not fail for arguments outside the valid domain. + + + OTP-17186 Application(s): stdlib + + Silence unused_record warnings when using ms_transform. + The parse transform ms_transform replaces records with + tuples, which can cause the Erlang code linter to emit + warnings about unused records. + + + OTP-17222 Application(s): stdlib + Related Id(s): GH-4544 + + Documented a deficiency in the re module regarding the + [:ascii:] character class matching Latin-1 characters. + + + OTP-17342 Application(s): stdlib + Related Id(s): GH-4725, PR-4726 + + Fixed spec of start functions in generic behaviors. + + + OTP-17364 Application(s): stdlib + Related Id(s): PR-4747 + + Supervisors rejected child specs with a shutdown value + of 0. + + + --- Improvements and New Features --- + + OTP-14646 Application(s): stdlib + Related Id(s): PR-2920 + + In the rand module it is now possible to seed the + default algorithm using an algorithm alias: default. + + Generating pseudo random binaries has been implemented + with rand:bytes/1 and rand:bytes_s/2. + + + OTP-14647 Application(s): stdlib + Related Id(s): PR-2910 + + New functions have been added to the proplists module: + to_map/1,2 and from_map/1. + + + OTP-14650 Application(s): stdlib + Related Id(s): PR-2850 + + New functions have been added to the queue module: + all/2, any/2, delete/2, delete_r/2, delete_with/2, and + delete_with_r/2. + + + OTP-14793 Application(s): stdlib + Related Id(s): PR-2791 + + New function have been added to the queue module: + fold/2 and filtermap/2. + + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16686 Application(s): debugger, erts, kernel, stdlib + + *** HIGHLIGHT *** + + Extended error information for failing BIF calls as + proposed in EEP 54 has been implemented. + + When a BIF call from the Erlang shell fails, more + information about which argument or arguments that were + in error will be printed. The same extended error + information will by proc_lib, common_test, and qlc when + BIF calls fail. + + For applications that wish to provide the same extended + error information, there are new functions + erl_error:format_exception/3 and + erl_error:format_exception/4. + + There is a new error/3 BIF that allows applications or + libraries to provide extended error information in the + same way for their own exceptions. + + + OTP-16718 Application(s): erts, kernel, stdlib + Related Id(s): PR-2735 + + *** HIGHLIGHT *** + + The process alias feature as outlined by EEP 53 has + been introduced. It is introduced in order to provide a + lightweight mechanism that can prevent late replies + after timeout or connection loss. For more information, + see EEP 53 and the documentation of the new alias/1 BIF + and the new options to the monitor/3 BIF. + + The call operation in the framework used by gen_server, + gen_statem, and gen_event has been updated to utilize + alias in order to prevent late responses. The + gen_statem behavior still use a proxy process in the + distributed case, since it has always prevented late + replies and aliases wont work against pre OTP 24 nodes. + The proxy process can be removed in OTP 26. + + The alias feature also made it possible to introduce + new functions similar to the erpc:receive_response() + function in the gen behaviors, so the new functions + gen_server:receive_response(), + gen_statem:receive_response(), + gen_event:receive_response() have also been introduced. + + + OTP-16910 Application(s): stdlib + Related Id(s): PR-2771 + + Improved documentation about exit signals emitted when + a gen_server terminates. + + + OTP-16936 Application(s): erts, stdlib + Related Id(s): ERL-1367 + + New functions have been added to the maps module: + merge_with/3, intersect/2, intersect_with/3, + filtermap/2, from_keys/2, and maps:foreach/2. + + maps:merge_with/3 is the same as merge/2 but takes an + extra fun that is used to combine items with the same + key. + + maps:intersect/2 computes the intersection of two maps. + + maps:intersect_with/3 is the same as intersect/2 but + takes an extra fun that is used to combine intersecting + items. + + maps:filtermap/2 allows filtering and mapping of a map + in a single pass. + + maps:from_keys/2 constructs a map from a list of keys + and a single value and can be used to to optimize sets + operations such as from_list/1, filter/2, + intersection/2, and subtract/2. + + maps:foreach/2 allows iteration over a map without + returning any value. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-16971 Application(s): stdlib + + *** POTENTIAL INCOMPATIBILITY *** + + The filename:src/1 function which was deprecated in OTP + 20 has been removed. Use filelib:find_source/1,3 + instead. + + + OTP-16980 Application(s): erts, stdlib + Related Id(s): ERL-1308 + + The pretty printer for floating point number have been + changed to make it easier to see if the integer part of + the number has been rounded. After the change the digit + that may have been rounded always appears last or just + before the exponent character (e or E). This is + accomplished by always printing the number using + scientific notation if it is so large that the integer + part could be rounded. + + + OTP-17005 Application(s): erl_interface, erts, jinterface, + kernel, stdlib + Related Id(s): OTP-16718 + + Accept references up to a size of 160-bits from remote + nodes. This is the first step in an upgrade path toward + using references up to 160-bits in a future OTP + release. + + + OTP-17024 Application(s): stdlib + + Add option location to erl_parse:abstract/2. + + + OTP-17057 Application(s): erts, stdlib + + All long running functions in the maps API are now + yielding. In previous releases the functions + maps:from_list/1, maps:keys/1 and maps:values/1 did not + yield. This could cause unfair scheduling of processes. + + + OTP-17059 Application(s): stdlib + Related Id(s): PR-2864 + + The sets module now has an optional map-based + implementation, as described in EEP 50. + + To use this implementation, pass the {version,2} option + to sets:new/1 or sets:from_list/2. + + + OTP-17120 Application(s): stdlib + + Added shell_docs:supported_tags/0. This function can be + used to retrieve the tags currently supported by + shell_docs. + + + OTP-17121 Application(s): stdlib + + The application/erlang+html documentation storage + format used by shell_docs has been updated to include + the tags b, strong, h4, h5 and h6. + + + OTP-17169 Application(s): stdlib + Related Id(s): PR-2584 + + Do not pretty-print catch expressions with unnecessary + parentheses. The re-write of the Erlang parser grammar + in PR-2584 implies that parentheses around catch + expressions are in many cases no longer required. + + + OTP-17171 Application(s): stdlib + Related Id(s): PR-3011 + + Improved explanation of {continue,Continue} in + Module:init/1 of the gen_server documentation. + + + OTP-17175 Application(s): stdlib + + The erl_eval module now accepts a map for keeping track + of bindings. Using an orddict for bindings will still + work. + + + OTP-17199 Application(s): stdlib + Related Id(s): PR-2658 + + Documented epp:scan_erl_form/1 and added + epp:scan_file/2. + + + OTP-17210 Application(s): stdlib + + The standard floating point printing algorithm used by + the io and io_lib modules has been changed from the + algorithm described in [1] to the Ryu algorithm [2]. + This gives a significant speed improvement for the + printing of most floating point numbers and a small + memory consumption improvement. + + [1]: Robert G. Burger and R. Kent Dybvig. 1996. + Printing floating-point numbers quickly and accurately. + In Proceedings of the ACM SIGPLAN 1996 conference on + Programming language design and implementation (PLDI + '96). Association for Computing Machinery, New York, + NY, USA, 108–116. + DOI:https://doi.org/10.1145/231379.231397 + + [2]: Ulf Adams. 2018. Ryū: fast float-to-string + conversion. In Proceedings of the 39th ACM SIGPLAN + Conference on Programming Language Design and + Implementation (PLDI 2018). Association for Computing + Machinery, New York, NY, USA, 270–282. + DOI:https://doi.org/10.1145/3192366.3192369 + + Thanks to Thomas Depierre + + + OTP-17236 Application(s): stdlib + Related Id(s): PR-3014 + + Add hex encoding and decoding functions in the binary + module. + + + OTP-17263 Application(s): stdlib + + The undocumented and partially broken ets:filter/3 + function has been removed. + + + OTP-17267 Application(s): stdlib + + Add support in shell_docs to display any "text" + documentation format. This means that h(Module) in the + shell now can display the "text/markdown" of Elixir + documentation. + + + OTP-17276 Application(s): stdlib + Related Id(s): PR-2979 + + The internal hashing of keys within ETS tables of types + set, bag, duplicate_bag has been salted to diverge from + erlang:phash2. This to avoid bad hashing if phash2 is + used to distribute the keys over separate tables/nodes. + + + OTP-17327 Application(s): stdlib + Related Id(s): PR-4707 + + Updated to the Unicode 13.0 specification. + + + OTP-17330 Application(s): compiler, stdlib + + Add compiler option {nowarn_unused_record, + RecordNames}. Document compiler option + nowarn_unused_type. + + + OTP-17334 Application(s): stdlib + Related Id(s): EEP-56, PR-4638 + + *** HIGHLIGHT *** + + Implementation of EEP 56 in supervisor. It adds the + concept of significant children as well as the + auto_shutdown supervisor flag. + + See the supervisor manual page for more information. + + + OTP-17385 Application(s): common_test, et, inets, kernel, snmp, + stdlib + Related Id(s): OTP-17123 + + Fixed warnings in code matching on underscore prefixed + variables. + + + Full runtime dependencies of stdlib-3.15: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- syntax_tools-2.6 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17302 Application(s): syntax_tools + Related Id(s): PR-4705 + + The type spec of erl_syntax:function_type/2 has been + fixed. + + + OTP-17321 Application(s): syntax_tools + + Output parentheses around BitStringExpr when + pretty-printing binary comprehensions. + + + --- Improvements and New Features --- + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-17180 Application(s): syntax_tools + + The igor and erl_tidy modules have been the removed and + are now maintained by their original author Richard + Carlsson. They can be found at github.com/richcarl/igor + and github.com/richcarl/erl_tidy, respectively. + + + Full runtime dependencies of syntax_tools-2.6: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- tftp-1.0.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17243 Application(s): erl_docgen, ftp, kernel, ssh, ssl, + tftp + Related Id(s): PR-4557 + + Missing runtime dependencies has been added to this + application. + + + Full runtime dependencies of tftp-1.0.3: erts-6.0, kernel-6.0, + stdlib-3.5 + + + --------------------------------------------------------------------- + --- tools-3.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17221 Application(s): tools + Related Id(s): PR-4547 + + For cover-compiled code, the error behaviour of list + and binary comprehensions that used andalso/orelse in + guards could be changed so that a filter that was + supposed be evaluated in guard context was evaluated in + body context. That is, there was a possibility that + comprehensions that did not raise exceptions could + raise exceptions when being run using cover. + + + --- Improvements and New Features --- + + OTP-16678 Application(s): erts, stdlib, syntax_tools, tools + Related Id(s): PR-2627 + + Support for handling abstract code created before OTP + R15 has been dropped. + + + OTP-16957 Application(s): parsetools, tools + + Add types and specifications for documentation. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + Full runtime dependencies of tools-3.5: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.0 ---------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17105 Application(s): crypto, erts, odbc, wx + Related Id(s): PR-2872 + + Fix compiler warnings produced by the clang compiler. + + + --- Improvements and New Features --- + + OTP-16800 Application(s): wx + + *** HIGHLIGHT *** + + The application has been completely rewritten in order + to use wxWidgets version 3 as its base. + + Add basic documentation generated from the wxWidgets + project. + + + OTP-16963 Application(s): common_test, compiler, dialyzer, + erl_interface, erts, kernel, runtime_tools, sasl, + stdlib, tools, wx + + *** POTENTIAL INCOMPATIBILITY *** + + The experimental HiPE application has been removed, + together with all related functionality in other + applications. + + + OTP-17213 Application(s): wx + Related Id(s): PR-3027 + + *** HIGHLIGHT *** + + Added support for wxWebView. + + + OTP-17219 Application(s): wx + Related Id(s): OTP-16800 + + *** POTENTIAL INCOMPATIBILITY *** + + Due to the support of the new backend versions some API + incompatibilities have been introduced. Examples of + changes are: + + wxWindowDC default creators have been removed + wxClientDC default creators have been removed + wxPaintDC default creators have been removed + wxWindow:setVirtualSizeHints() has been deprecated in + wxWidgets and removed + wxWindow:makeModal() has been deprecated in wxWidgets + and removed + wxToolBar:add/insertTool without label have been + deprecated in wxWidgets and removed + wxStyledTextCtrl some functions have changed arguments + from boolean to int + wxSizerItem:new() Some arguments have become options + Removed deprecated wxSizerItem:setWindow() use + assignWindow() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSpacer() use + assignSpacer() + Removed deprecated wxSizerItem:setSizer() use + assignSizer() + wxMenu append/insert/prepend have changed return value + and lost IsCheckable argument + wxListCtrl:setItem/4 changed return value + wxImage:convertToGreyscale() options have changed + wxGridSizer:wxGridSizer() options have changed + wxGrid API have many changes + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGraphicsRenderer:createPen() have been removed + wxGraphicsRenderer:create*GradientBrush() uses + GradientStops now + wxGLCanvas API is incompatible + wxFlexGridSizer:wxFlexGridSizer() options have changed + wxDisplay:new() options have changed + wxCalendarDateAttr:new(ColText [,OptList]) have been + removed + wxBitmapButton:set/getBitmapSelected() have been + removed + + + Full runtime dependencies of wx-2.0: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --- xmerl-1.3.28 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17388 Application(s): xmerl + Related Id(s): OTP-17123 + + Fixed a bug that could cause parsing to crash. + + + Full runtime dependencies of xmerl-1.3.28: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Alexander Clouter, Alexander Petrovsky, Andreas Schultz, Bryan + Paxton, Cheng Zhe, Dominic Letz, Eksperimental, Erlend Hamberg, + Filipe Cristovao, Frej Drejhammar, Henrik Lagebrand, Jesper Eskilson, + Jonathan Klabunde Tomer, José Valim, João Henrique Ferreira de + Freitas, Jérôme de Bretagne, Leo Liu, Linus.yuan, Loïc Hoguin, Luca + Favatella, Luis Rascao, Luke Bakken, Maria Scott, Maria-12648430, + Mariano Guerra, Mattias Hansson, Max Nordlund, Maxim Fedorov, Michal + Palka, Michal Piotrowski, Michal Slaski, Michał Muskała, Mikael + Pettersson, Nalin Ranjan, Nelson Vides, Nico Piderman, Oskar, Paulo + F. Oliveira, Philip Kuryloski, Philipp Klaus Krause, Pierre Allix, + Péter Gömöri, Radek Szymczyszyn, Richard Carlsson, Ruud Kamphuis, + Stavros Aronis, Taras Halturin, Thomas Depierre, Tianon Gravi, Tony + Rogvall, Ulf Wiger, Viktor Söderqvist, Wojtek Mach, Zeyu Zhang, ergl, + gearnode, ilya-klyuchnikov, juhlig, lagebr, plan-do-break-fix, + skatepalli, vans163, yfractal, Łukasz Niemier + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.1.1.README.txt b/release-notes/OTP-24.1.1.README.txt new file mode 100644 index 0000000..aeb3ae0 --- /dev/null +++ b/release-notes/OTP-24.1.1.README.txt @@ -0,0 +1,152 @@ +Patch Package: OTP 24.1.1 +Git Tag: OTP-24.1.1 +Date: 2021-09-30 +Trouble Report Id: OTP-17640, OTP-17641, OTP-17642, OTP-17646, + OTP-17647, OTP-17649, OTP-17651, OTP-17665 +Seq num: GH-5193, GH-5221, GH-5225, GH-5235 +System: OTP +Release: 24 +Application: erts-12.1.1, kernel-8.1.1, snmp-5.10.1, + stdlib-3.16.1 +Predecessor: OTP 24.1 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- erts-12.1.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.1.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17642 Application(s): erts + Related Id(s): PR-5248 + + A race between an exiting port and handling of + simultaneously received signals to that port could + cause a runtime system crash. The effected signals are + link, monitor and demonitor. On OTP 22 a similiar race + could also cause a memory leak when receiving an unlink + signal. + + + OTP-17646 Application(s): erts + Related Id(s): GH-5221, PR-5232 + + A user defined tag on a monitor message could cause the + runtime system to crash when the monitor message had + been received. + + + OTP-17647 Application(s): erts + Related Id(s): GH-5225, PR-5230 + + A call to erlang:demonitor(Ref) where the reference Ref + referred to an active alias, but not an active monitor, + caused the runtime system to crash. + + + OTP-17651 Application(s): erts + Related Id(s): GH-5235, PR-5244 + + The message queue of a process entered an inconsistent + state after a receive expression with an invalid + timeout value was executed. If the exception raised due + to the invalid timeout value was caught, the following + receive expression executed by the process could fail + to match messages already present in the message queue. + + On OTP 24 this could also cause the whole runtime + system to crash. + + + OTP-17665 Application(s): erts + Related Id(s): PR-5248 + + Sending a Port ! {PortOwner, close} signal from a + process other than the port owner could erroneously + trigger a badsig exit signal being sent to the port + owner process even though the correct PortOwner had + been passed in the signal. + + + Full runtime dependencies of erts-12.1.1: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-8.1.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-8.1.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17640 Application(s): kernel + + Add more info about the socket 'type' ('socket' or + 'port') for the DOWN message when monitoring sockets. + + + Full runtime dependencies of kernel-8.1.1: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- snmp-5.10.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.10.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17641 Application(s): snmp + Related Id(s): OTP-17640 + + Sockets are monitored, but the handling of the 'DOWN' + message expected a new style socket ('socket'), old + style (port) was not handled. + + + Full runtime dependencies of snmp-5.10.1: crypto-3.3, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- stdlib-3.16.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.16.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17649 Application(s): stdlib + Related Id(s): GH-5193, PR-5201 + + Fixed a bug that could cause a child to become orphaned + when a supervisor died between unlinking and sending + the shutdown signal to this child. + + There was also a possibility for erratic supervisor + reports caused by a race between a supervisor shutting + down a child and that child exiting by itself at the + same time. + + + Full runtime dependencies of stdlib-3.16.1: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.1.2.README.txt b/release-notes/OTP-24.1.2.README.txt new file mode 100644 index 0000000..364120d --- /dev/null +++ b/release-notes/OTP-24.1.2.README.txt @@ -0,0 +1,167 @@ +Patch Package: OTP 24.1.2 +Git Tag: OTP-24.1.2 +Date: 2021-10-05 +Trouble Report Id: OTP-17393, OTP-17657, OTP-17658, OTP-17659, + OTP-17666, OTP-17668, OTP-17670, OTP-17672 +Seq num: ERIERL-702, GH-5224, GH-5239 +System: OTP +Release: 24 +Application: crypto-5.0.4, erts-12.1.2, kernel-8.1.2, + public_key-1.11.3, ssl-10.5.1 +Predecessor: OTP 24.1.1 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- crypto-5.0.4 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17668 Application(s): crypto + Related Id(s): PR-5245 + + Fixed minor memory leak at crypto module purge. + + + OTP-17672 Application(s): crypto + + Fix possible inconsistency in fips mode when linking + with some cryptolibs. + + + Full runtime dependencies of crypto-5.0.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- erts-12.1.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.1.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17658 Application(s): erts + + The python scripts that existed in + erts/lib_src/yielding_c_fun/lib/tiny_regex_c/scripts + had a license that was incompatible with Erlang/OTP's + license. This ticket removes these scripts that were + not used by us. + + + Full runtime dependencies of erts-12.1.2: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-8.1.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-8.1.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17659 Application(s): kernel + Related Id(s): ERIERL-702 + + The undocumented DNS encode/decode module inet_dns has + been cleaned up to handle the difference between + "symbolic" and "raw" records in a more consistent + manner. + + PR-5145/OTP-17584 introduced a change that contributed + to an already existing confusion, which this correction + should remedy. + + + Full runtime dependencies of kernel-8.1.2: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- public_key-1.11.3 ----------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.11.3 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17657 Application(s): public_key, ssl + + Avoid re-encoding of decoded certificates. This could + cause unexpected failures as some subtle encoding + errors can be tolerated when decoding but hence + creating another sequence of bytes if the decoded value + is re-encoded. + + + Full runtime dependencies of public_key-1.11.3: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssl-10.5.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.5.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-17393 Application(s): ssl + + Before that change, TLS downgrade could occasionally + fail when data intended for downgraded socket were + delivered together with CLOSE_NOTIFY alert to ssl app. + + + OTP-17657 Application(s): public_key, ssl + + Avoid re-encoding of decoded certificates. This could + cause unexpected failures as some subtle encoding + errors can be tolerated when decoding but hence + creating another sequence of bytes if the decoded value + is re-encoded. + + + OTP-17666 Application(s): ssl + Related Id(s): GH-5239 + + Fix possible process leak when the process doing + ssl:transport_accept dies before initiating the TLS + handshake. + + + OTP-17670 Application(s): ssl + Related Id(s): GH-5224 + + Fix dtls memory leak, the replay window code was + broken. + + + Full runtime dependencies of ssl-10.5.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.1.3.README.txt b/release-notes/OTP-24.1.3.README.txt new file mode 100644 index 0000000..828cef4 --- /dev/null +++ b/release-notes/OTP-24.1.3.README.txt @@ -0,0 +1,163 @@ +Patch Package: OTP 24.1.3 +Git Tag: OTP-24.1.3 +Date: 2021-10-27 +Trouble Report Id: OTP-17675, OTP-17677, OTP-17679, OTP-17686, + OTP-17688, OTP-17700, OTP-17712, OTP-17722, + OTP-17723 +Seq num: GH-5255, GH-5271, GH-5300, GH-5310 +System: OTP +Release: 24 +Application: erts-12.1.3, ssl-10.5.2 +Predecessor: OTP 24.1.2 + + Check out the git tag OTP-24.1.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-24.1.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17679 Application(s): otp + Related Id(s): PR-5251 + + Fix handling of the top configure command line + arguments --srcdir=<DIR>, --cache-file=<FILE>, + --without-<APP>, CFLAGS=<FLAGS>, and LDFLAGS=<FLAGS> + which failed on some platforms. + + + --------------------------------------------------------------------- + --- erts-12.1.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.1.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17675 Application(s): erts + + Reduction counter was not updated before and after + doing apply operations on the runtime system with the + jit enabled. This caused reduction counting to get out + of sync if a garbage collection was made as part of the + apply operation. + + + OTP-17677 Application(s): erts + + This fixes a bug in erts_factory_undo that caused the + heap to not be reset correctly. The erts_factory_undo + function is, for example, called when a + binary_to_term/1 call fails to reset the heap to its + state before the binary_to_term/1 call. This can cause + the heap to contain invalid terms which potentially can + cause issues (e.g., crashes) when the whole heap is + scanned. + + + OTP-17686 Application(s): erts + + When attempting to construct a binary with an segment + having an illegal type for the size (e.g. an atom), + there could be an unnecessary memory allocation (and + subsequent deallocation) before the operation failed. + Amended to fail before allocating any memory for the + binary. + + + OTP-17700 Application(s): erts + Related Id(s): GH-5271, PR-5273 + + Fix bug in persistent_term when a key-value pair + contains a magic reference that is referred more than + once. Magic references are NIF resources or returned + from BIFs like ets:new, atomics:new. The bug could + cause the memory of the referred resource to be + prematurely deallocated. + + The bug also apply to magic references in message + passing on a runtime built with configure option + --enable-sharing-preserving. + + Bug exist for 64-bit since OTP-24.0 and for 32-bit + since OTP-20.0. + + + OTP-17712 Application(s): erts + + Fixed a crash when inspecting the stack trace of an + exception raised at a very high line number. + + This bug was introduced in OTP 24. + + + OTP-17722 Application(s): erts + Related Id(s): GH-5310, PR-5313 + + The following two bugs that caused erlang:demonitor() + to behave erroneously have been fixed. The bugs were + only triggered if the monitor that was removed by + demonitor() had previously been created simultaneously + as a monitor and as an alias. + + -- A demonitor operation on a monitor created using the + {alias, reply_demonitor} option erroneously behaved as + if the {alias, explicit_unalias} option had been used. + + -- A demonitor operation did not prevent a + corresponding 'DOWN' message from being delivered if + the monitor reference was kept as an active alias after + the operation. This could only occur if the monitored + process simultaneously terminated before the demonitor + signal reached it, and the exit reason was not an + immediate term. That is, a term larger than one machine + word. + + + Full runtime dependencies of erts-12.1.3: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.5.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.5.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-17688 Application(s): ssl + Related Id(s): GH-5255 + + Fix TLS-1.2 RSA-PSS negotiation and also fix broken + certificate request message for pre-TLS-1.3 servers. + + + OTP-17723 Application(s): ssl + Related Id(s): GH-5300 + + Fix CRL issuer verification that under some + circumstances could fail with a function_clause error. + + + Full runtime dependencies of ssl-10.5.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.1.4.README.txt b/release-notes/OTP-24.1.4.README.txt new file mode 100644 index 0000000..30472f2 --- /dev/null +++ b/release-notes/OTP-24.1.4.README.txt @@ -0,0 +1,49 @@ +Patch Package: OTP 24.1.4 +Git Tag: OTP-24.1.4 +Date: 2021-11-02 +Trouble Report Id: OTP-17731, OTP-17732 +Seq num: ERIERL-664 +System: OTP +Release: 24 +Application: erts-12.1.4 +Predecessor: OTP 24.1.3 + + Check out the git tag OTP-24.1.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.1.4 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.1.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17731 Application(s): erts + Related Id(s): PR-5285 + + Fix bug where a gen_tcp write error that happened + during a delayed_send would cause a use after free + segfault. + + + OTP-17732 Application(s): erts + Related Id(s): ERIERL-664, PR-5331 + + Fix x86 JIT bug where a rem instruction could cause a + segfault if given values that would cause an badarith + exception. + + + Full runtime dependencies of erts-12.1.4: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.1.5.README.txt b/release-notes/OTP-24.1.5.README.txt new file mode 100644 index 0000000..10a0d6b --- /dev/null +++ b/release-notes/OTP-24.1.5.README.txt @@ -0,0 +1,156 @@ +Patch Package: OTP 24.1.5 +Git Tag: OTP-24.1.5 +Date: 2021-11-11 +Trouble Report Id: OTP-17734, OTP-17735, OTP-17736, OTP-17737 +Seq num: GH-4989, GH-5279, GH-5327, GH-5339, GH-5346 +System: OTP +Release: 24 +Application: erts-12.1.5, kernel-8.1.3 +Predecessor: OTP 24.1.4 + + Check out the git tag OTP-24.1.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-17734 Application(s): kernel + Related Id(s): GH-5327, OTP-17659 + + The internal, undocumented, but used, module inet_dns + has been fixed to handle mDNS high bit usage of the + Class field. + + Code that uses the previously obsolete, undocumented + and unused record field #dns_rr.func will need to be + updated since that field is now used as a boolean flag + for the mDNS high Class bit. Code that uses the also + undocumented record #dns_query will need to be + recompiled since a boolean field + #dns_query.unicast_response has been added for the mDNS + high Class bit. + + + --------------------------------------------------------------------- + --- erts-12.1.5 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.1.5 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17735 Application(s): erts + Related Id(s): GH-5339 + + The runtime system could call select() with a too large + timeout value when executing on MacOS. This could in + turn cause the runtime system to crash. + + + OTP-17736 Application(s): erts, kernel + Related Id(s): GH-5279, OTP-17559, PR-5120 + + The fix for Linux's behaviour when reconnecting an UDP + socket in PR-5120 released in OTP-24.1.2 has been + refined to only dissolve the socket's connection before + a connect if the socket is already connected, that is: + only for a reconnect. + + This allows code to open a socket with an ephemeral + port, get the port number and connect; without the port + number changing (on Linux). This turned out to have at + least one valid use case (besides test cases). + + Should one reconnect the socket then the port number + may change, on Linux; it is a known quirk, which can be + worked around by binding to a specific port number when + opening the socket. If you can do without an ephemeral + port, that is... + + + OTP-17737 Application(s): erts + Related Id(s): GH-4989, GH-5346 + + Certain distributed signals that for various reasons + must to be forced into the distribution buffer even + when it is full would instead be lost if the + distribution buffer was full when sent. The effected + signals: + + -- EXIT signals with exit reasons of one word size. + + -- DOWN signals with exit reasons of one word size. + + -- demonitor signals from a terminating process. + + -- unlink_ack signals on OTP 23 and 24. + + -- spawn_reply signals on OTP 23 and 24. + + + Full runtime dependencies of erts-12.1.5: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- kernel-8.1.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The kernel-8.1.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17734 Application(s): kernel + Related Id(s): GH-5327, OTP-17659 + + *** POTENTIAL INCOMPATIBILITY *** + + The internal, undocumented, but used, module inet_dns + has been fixed to handle mDNS high bit usage of the + Class field. + + Code that uses the previously obsolete, undocumented + and unused record field #dns_rr.func will need to be + updated since that field is now used as a boolean flag + for the mDNS high Class bit. Code that uses the also + undocumented record #dns_query will need to be + recompiled since a boolean field + #dns_query.unicast_response has been added for the mDNS + high Class bit. + + + OTP-17736 Application(s): erts, kernel + Related Id(s): GH-5279, OTP-17559, PR-5120 + + The fix for Linux's behaviour when reconnecting an UDP + socket in PR-5120 released in OTP-24.1.2 has been + refined to only dissolve the socket's connection before + a connect if the socket is already connected, that is: + only for a reconnect. + + This allows code to open a socket with an ephemeral + port, get the port number and connect; without the port + number changing (on Linux). This turned out to have at + least one valid use case (besides test cases). + + Should one reconnect the socket then the port number + may change, on Linux; it is a known quirk, which can be + worked around by binding to a specific port number when + opening the socket. If you can do without an ephemeral + port, that is... + + + Full runtime dependencies of kernel-8.1.3: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.1.6.README.txt b/release-notes/OTP-24.1.6.README.txt new file mode 100644 index 0000000..ac61bd2 --- /dev/null +++ b/release-notes/OTP-24.1.6.README.txt @@ -0,0 +1,54 @@ +Patch Package: OTP 24.1.6 +Git Tag: OTP-24.1.6 +Date: 2021-11-18 +Trouble Report Id: OTP-17756, OTP-17757 +Seq num: GH-5352, GH-5383 +System: OTP +Release: 24 +Application: ssl-10.5.3 +Predecessor: OTP 24.1.5 + + Check out the git tag OTP-24.1.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. + + --------------------------------------------------------------------- + --- ssl-10.5.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.5.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-17756 Application(s): ssl + Related Id(s): GH-5383, PR-5397 + + Correct typo of ECC curve name in signature algorithm + handling. Will make the signature algorithm + ecdsa_secp521r1_sha512 succeed. + + + OTP-17757 Application(s): ssl + Related Id(s): GH-5352, PR-5395 + + Suppress authenticity warning when option verify_none + is explicitly supplied. + + + Full runtime dependencies of ssl-10.5.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.1.7.README.txt b/release-notes/OTP-24.1.7.README.txt new file mode 100644 index 0000000..2a7e4f3 --- /dev/null +++ b/release-notes/OTP-24.1.7.README.txt @@ -0,0 +1,42 @@ +Patch Package: OTP 24.1.7 +Git Tag: OTP-24.1.7 +Date: 2021-11-22 +Trouble Report Id: OTP-17764 +Seq num: ERIERL-726 +System: OTP +Release: 24 +Application: ssh-4.12.5 +Predecessor: OTP 24.1.6 + + Check out the git tag OTP-24.1.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. + + --------------------------------------------------------------------- + --- ssh-4.12.5 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.12.5 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17764 Application(s): ssh + Related Id(s): ERIERL-726 + + Fixed a race condition in the acceptor loop: if a + client disconnected immediately after the tcp connect, + the server could cease handling connection on that + address:port. + + + Full runtime dependencies of ssh-4.12.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.1.README.txt b/release-notes/OTP-24.1.README.txt new file mode 100644 index 0000000..95f2d27 --- /dev/null +++ b/release-notes/OTP-24.1.README.txt @@ -0,0 +1,1416 @@ +Patch Package: OTP 24.1 +Git Tag: OTP-24.1 +Date: 2021-09-22 +Trouble Report Id: OTP-16590, OTP-16607, OTP-17317, OTP-17325, + OTP-17346, OTP-17376, OTP-17377, OTP-17383, + OTP-17389, OTP-17390, OTP-17392, OTP-17410, + OTP-17413, OTP-17421, OTP-17423, OTP-17424, + OTP-17425, OTP-17426, OTP-17429, OTP-17430, + OTP-17432, OTP-17434, OTP-17438, OTP-17440, + OTP-17441, OTP-17445, OTP-17446, OTP-17449, + OTP-17450, OTP-17453, OTP-17454, OTP-17456, + OTP-17458, OTP-17460, OTP-17463, OTP-17464, + OTP-17469, OTP-17476, OTP-17477, OTP-17478, + OTP-17483, OTP-17491, OTP-17492, OTP-17495, + OTP-17499, OTP-17501, OTP-17503, OTP-17505, + OTP-17507, OTP-17508, OTP-17510, OTP-17511, + OTP-17512, OTP-17513, OTP-17514, OTP-17517, + OTP-17519, OTP-17520, OTP-17521, OTP-17522, + OTP-17526, OTP-17530, OTP-17533, OTP-17534, + OTP-17535, OTP-17537, OTP-17538, OTP-17539, + OTP-17540, OTP-17541, OTP-17542, OTP-17549, + OTP-17552, OTP-17559, OTP-17564, OTP-17567, + OTP-17570, OTP-17571, OTP-17572, OTP-17573, + OTP-17574, OTP-17575, OTP-17576, OTP-17577, + OTP-17578, OTP-17580, OTP-17581, OTP-17583, + OTP-17584, OTP-17586, OTP-17590, OTP-17591, + OTP-17593, OTP-17596, OTP-17600, OTP-17602, + OTP-17604, OTP-17609, OTP-17613, OTP-17616, + OTP-17618, OTP-17622, OTP-17624, OTP-17626, + OTP-17628, OTP-17632, OTP-17634, OTP-17635 +Seq num: ERIERL-648, ERIERL-655, ERIERL-668, + ERIERL-679, ERIERL-683, ERIERL-685, ERL-1261, + ERL-1264, ERL-625, GH-3533, GH-4256, GH-4270, + GH-4501, GH-4677, GH-4761, GH-4772, GH-4796, + GH-4801, GH-4823, GH-4846, GH-4855, GH-4862, + GH-4900, GH-4902, GH-4916, GH-4918, GH-4920, + GH-4931, GH-4964, GH-4978, GH-4985, GH-4995, + GH-4999, GH-5007, GH-5009, GH-5014, GH-5029, + GH-5031, GH-5040, GH-5054, GH-5058, GH-5063, + GH-5067, GH-5092, GH-5103, GH-5118, GH-5122, + GH-5136, GH-5156, GH-5157, GH-5171, GH-5192, + GH-5196 +System: OTP +Release: 24 +Application: asn1-5.0.17, common_test-1.21, + compiler-8.0.3, crypto-5.0.3, debugger-5.2, + dialyzer-4.4.2, edoc-1.0.1, erl_docgen-1.1.2, + erl_interface-5.1, erts-12.1, eunit-2.7, + inets-7.4.2, jinterface-1.12.1, kernel-8.1, + megaco-4.1, mnesia-4.20, observer-2.10, + os_mon-2.7.1, parsetools-2.3.1, + public_key-1.11.2, runtime_tools-1.17, + snmp-5.10, ssh-4.12.4, ssl-10.5, stdlib-3.16, + tools-3.5.1, wx-2.1 +Predecessor: OTP 24.0.6 + + Check out the git tag OTP-24.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-17317 Application(s): stdlib + Related Id(s): PR-4757 + + Most output functions in the io module now print extra + error information when provided with invalid arguments. + The functions are: io:format, io:fwrite, io:put_chars, + io:nl and io:write. + + + OTP-17483 Application(s): otp + + The Efficiency Guide has been extended with a chapter + about maps. + + + OTP-17542 Application(s): erts + Related Id(s): GH-5031, PR-5032 + + init:stop() no longer unloads loaded code before + terminating the runtime system. On systems with slow + CPUs (such as Raspberry PI Zero), that can + significantly speed up termination of the runtime + system. + + + --------------------------------------------------------------------- + --- OTP-24.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17432 Application(s): otp + Related Id(s): GH-4862 + + In the Reference manual, the shadowing rules for list + comprehensions have been clarified. + + + OTP-17491 Application(s): otp + Related Id(s): PR-4909 + + Fixed configure issue on BSD. + + + OTP-17540 Application(s): otp + Related Id(s): PR-5101 + + The guard BIF is_map_key/2 is now included in the list + of guard BIFs in the Reference Manual. + + + --- Improvements and New Features --- + + OTP-17483 Application(s): otp + + *** HIGHLIGHT *** + + The Efficiency Guide has been extended with a chapter + about maps. + + + OTP-17514 Application(s): otp + Related Id(s): ERIERL-668 + + The configure stage now fails if the canonicalized host + value is equal to the canonicalized build value when + cross compiling. Previously the configure stage + succeeded and the cross build continued by overwriting + the bootstrap build results with cross build results + which caused failure to build Erlang code. + + + OTP-17549 Application(s): otp + Related Id(s): GH-3533 + + A new section about accidental loss of sharing has been + added to the "Common Caveat" chapter of the Efficiency + Guide. + + + --------------------------------------------------------------------- + --- asn1-5.0.17 ----------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.17 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17522 Application(s): asn1 + Related Id(s): GH-4902 + + A parameterized type with a SEQUENCE with extension + ("...") made the compiler backend to crash. The + previous fix for this in GH-4514 was not complete. + + + Full runtime dependencies of asn1-5.0.17: erts-7.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --- common_test-1.21 ------------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.21 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17413 Application(s): common_test + Related Id(s): PR-4767 + + Float allowed as multiply_timetraps parameter. + + + OTP-17632 Application(s): common_test + Related Id(s): PR-5022 + + Remove usage of legacy API macro and functions. + + + Full runtime dependencies of common_test-1.21: 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.0.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.0.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17421 Application(s): compiler + + If a parse transform raised an exception using throw/1 + or exit/1, the compiler would report that as an + internal compiler error, which would be confusing. + Amended to report that the parse transform failed. + + + OTP-17430 Application(s): compiler, stdlib + + The failing call io:format("~p\n") would result in a + warning for line number 0 instead of the correct line + and column numbers. This has been corrected, and all + warnings for failing calls to io:format() has been + rephrased to make it clearer exactly what the problem + is. + + + OTP-17434 Application(s): compiler, stdlib + Related Id(s): GH-4772 + + When the options warn_missing_spec and export_all were + given, there would only be warnings for missing specs + for functions that had been explicitly exported using + an -export attribute. + + + OTP-17446 Application(s): compiler + Related Id(s): PR-4899 + + In rare circumstances, the compiler could emit an + incorrect warning for a term that was constructed but + never used. + + + OTP-17495 Application(s): compiler, erts + Related Id(s): PR-5153 + + Corrected bugs where builds were not reducible even + when the deterministic option was given. In particular, + modules with map literals with more than 32 elements + could cause this problem. + + As part of this fix, the term_to_binary BIF now accepts + the option deterministic. + + + OTP-17505 Application(s): compiler, stdlib + Related Id(s): GH-4995 + + The MODULE and MODULE_STRING macros would always appear + to be defined (when tested by -ifdef), even though no + -module() declaration had been seen yet. Changed so + that -ifdef ?MODULE. will not consider ?MODULE defined + if -module() has not been previously seen. + + + OTP-17510 Application(s): compiler + Related Id(s): GH-5007 + + In a guard, not (X =:= true) would incorrectly evaluate + to false for non-boolean values of X. + + + OTP-17581 Application(s): compiler, stdlib + Related Id(s): PR-5141 + + When the deterministic option was given to the + compiler, the ?FILE macro would be expanded to full + path of the source file before the first include + directive and to base part of the filename after + include directive. + + + Full runtime dependencies of compiler-8.0.3: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0.3 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17593 Application(s): crypto + Related Id(s): ERIERL-679 + + Fix bug in crypto:ensure_engine_unloaded. Also fixed + minor memory leak related to engine unloading. + + + OTP-17618 Application(s): crypto + Related Id(s): GH-4920, PR-5126 + + Fixes that FIPS enable and disable (or vice versa) on + Windows sometimes leads to core dump at the time of + process exit. + + + --- Improvements and New Features --- + + OTP-17389 Application(s): crypto + + Disable fips if cryptolib < 1.0.1 and OTP/crypto is + configured with --enable-fips + + If not, there could be compiling or loading problems + with antique OpenSSL versions. + + + Full runtime dependencies of crypto-5.0.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-5.2 ---------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-5.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17574 Application(s): debugger + + Improve record handling, print known records with + record syntax. + + + Full runtime dependencies of debugger-5.2: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- dialyzer-4.4.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-4.4.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17511 Application(s): dialyzer + Related Id(s): GH-4501 + + Do not crash if a PLT file no longer exists. + + + OTP-17537 Application(s): dialyzer + + Fix bug in erl_types related to maps. + + + OTP-17541 Application(s): dialyzer + + Fix bugs in erl_types regarding improper lists. + + + OTP-17616 Application(s): dialyzer + Related Id(s): GH-5118 + + The underspecs and overspecs options will now generate + correct warnings for misused opaque types. + + + Full runtime dependencies of dialyzer-4.4.2: compiler-7.0, erts-9.0, + kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-1.0.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The edoc-1.0.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17552 Application(s): edoc + Related Id(s): GH-5058 + + Fix broken documentation link in edoc_extract:file/4. + + + Full runtime dependencies of edoc-1.0.1: erts-6.0, inets-5.10, + kernel-3.0, stdlib-3.15, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_docgen-1.1.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-1.1.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17458 Application(s): erl_docgen + Related Id(s): PR-4764 + + Fix codeinclude tags to work as part of reference + manual documentation. + + + OTP-17575 Application(s): erl_docgen + Related Id(s): PR-5132 + + Fix creation of link elements with anchors in EEP-48 + style documentation. + + + Full runtime dependencies of erl_docgen-1.1.2: edoc-1.0, erts-9.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17626 Application(s): erl_interface + + erl_call now prints an error when the arguments cannot + be parsed. + + + --- 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-12.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17377 Application(s): erts, observer + + Atoms with Unicode code points greater than 255 (for + example Greek or Cyrillic characters) would not be + displayed correctly by crashdump_viewer. + + + OTP-17445 Application(s): erts + Related Id(s): PR-4843 + + Fix rare minor memory leak related to jit code loading. + + + OTP-17449 Application(s): erts, kernel + Related Id(s): GH-4900 + + The extended error information has been corrected and + improved for the following BIFs: + binary_to_existing_atom/2, list_to_existing_atom/1, + erlang:send_after/{3,4}, and erlang:start_timer/{3,4}. + + + OTP-17477 Application(s): erts + Related Id(s): GH-4846, PR-4894 + + Fix bug provoked when building with gcc 10 and link + time optimization (-flto), causing Erlang compiler to + crash. Bug exists since OTP-24.0. + + + OTP-17495 Application(s): compiler, erts + Related Id(s): PR-5153 + + Corrected bugs where builds were not reducible even + when the deterministic option was given. In particular, + modules with map literals with more than 32 elements + could cause this problem. + + As part of this fix, the term_to_binary BIF now accepts + the option deterministic. + + + OTP-17512 Application(s): erts + + After an exception has been caught in a process, the + stack trace would be kept in the process longer than + necessary. + + + OTP-17513 Application(s): erts + Related Id(s): GH-4964, PR-5015 + + Fix rare race bug in memory management of distribution + entries. Have been seen to cause VM crash when massive + number of repeated concurrent failing connection + attempts. + + + OTP-17539 Application(s): erts + + The configure test for --disable-esock-socket-registry + has been corrected so disabling now works. + + + OTP-17542 Application(s): erts + Related Id(s): GH-5031, PR-5032 + + *** HIGHLIGHT *** + + init:stop() no longer unloads loaded code before + terminating the runtime system. On systems with slow + CPUs (such as Raspberry PI Zero), that can + significantly speed up termination of the runtime + system. + + + OTP-17567 Application(s): erts + Related Id(s): PR-4915, PR-5115 + + Fixed match specifications that use maps in either the + guard or the body to work properly. + + With this fix both keys and values in maps can be + expressions. + + Various other crashes and bugs when using maps in match + specifications have also been fixed. + + + OTP-17578 Application(s): erts, kernel + Related Id(s): ERIERL-683 + + Parsing of the result value in the native DNS resolver + has been made more defensive against incorrect results. + + + OTP-17591 Application(s): erts + Related Id(s): GH-5171 + + When binary_to_term/2 failed, the extended error + information would always blame the second argument even + if the actual error was in the first argument. + + + OTP-17604 Application(s): erts + + On 32-bit computers, binary_to_term/1,2 is now more + resilient against corrupted binaries containing maps in + the external format. + + + OTP-17628 Application(s): erts + + A call to process_info(Pid, status) could erroneously + report the status running when it should have reported + waiting. This occurred when the calling process was + executing on a higher priority than the process being + inspected. This bug has been present since OTP 21.0 + (erts version 10.0). + + + --- Improvements and New Features --- + + OTP-17426 Application(s): erts + Related Id(s): PR-4785 + + Optimize memory usage of erts internal processes used + during code loading/purging by hibernating them after a + long time of inactivity. + + + OTP-17453 Application(s): erts + Related Id(s): PR-4764 + + Add the type erlang:stacktrace/0. + + + OTP-17456 Application(s): erts + Related Id(s): PR-4764 + + The arity argument of error/2,3 can now be none to + indicate that the calling functions arity should be + used. + + + OTP-17469 Application(s): erts + + Optimize match spec compiler for immediate (single + word) constant terms. + + + OTP-17538 Application(s): erts, kernel + Related Id(s): GH-5063, PR-5111 + + Functions erlang:set_cookie(Cookie) and + erlang:get_cookie(Node) have been added for + completeness and to facilitate configuring distributed + nodes with different cookies. + + The documentation regarding distribution cookies has + been improved to be less vague. + + + OTP-17559 Application(s): erts, kernel + Related Id(s): GH-5092, PR-5120 + + A workaround has been implemented for Linux's quirky + behaviour to not adjust the source IP address when + connecting a connected (reconnecing) UDP socket. + + The workaround is to, on Linux, always dissolve any + connection before connecting an UDP socket. + + + OTP-17596 Application(s): erts + + The internal documentation for how to use Yielding C + Fun (YCF) has been updated to contain text about best + practices for using YCF for ERTS. + + + OTP-17602 Application(s): erts + Related Id(s): PR-5149 + + Optimize garbage collection for processes with large + number of binaries, funs and/or external + pids/ports/refs. + + + Full runtime dependencies of erts-12.1: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- eunit-2.7 ------------------------------------------------------- + --------------------------------------------------------------------- + + The eunit-2.7 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17613 Application(s): eunit + Related Id(s): PR-5185 + + In an eunit test, when a test case times out, include a + stacktrace. + + + Full runtime dependencies of eunit-2.7: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- inets-7.4.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.4.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17383 Application(s): inets + Related Id(s): GH-4677 + + Before this change hrefs in dir listing page contained + percentage encoded forward slashes which did not work + properly with httpd. + + + OTP-17600 Application(s): inets + + Restored HTTP headers handling in inets/mod_esi. + + + OTP-17624 Application(s): inets + Related Id(s): GH-4855 + + inets/httpd dir listing icons and other improvements + + + --- Improvements and New Features --- + + OTP-17460 Application(s): inets + + httpc: Improve performance by removing redundant URI + handling + + + Full runtime dependencies of inets-7.4.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.12.1 ----------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.12.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17478 Application(s): jinterface + Related Id(s): PR-4837 + + Fixed rare race bug that could cause + NullPointerException on local close of connection. + + + --------------------------------------------------------------------- + --- kernel-8.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The kernel-8.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17449 Application(s): erts, kernel + Related Id(s): GH-4900 + + The extended error information has been corrected and + improved for the following BIFs: + binary_to_existing_atom/2, list_to_existing_atom/1, + erlang:send_after/{3,4}, and erlang:start_timer/{3,4}. + + + OTP-17476 Application(s): kernel + Related Id(s): GH-4931, PR-4934 + + Fixed rare bug that could cause net_kernel process to + hang for ever. Have seen to happen with massive number + of TLS connections while remote nodes are restarting. + Bug exists since OTP-22.0. + + + OTP-17492 Application(s): kernel + + Improve handling of closed sockets for inet:info/1. + + + OTP-17519 Application(s): kernel + + This change fixes a performance problem introduced in + pull-request #2675. Pull-request #2675 made so the + system tried to start children of already started + applications which is unnecessary. This change fixes + this performance problem. + + + OTP-17570 Application(s): kernel + Related Id(s): ERL-1261, GH-4256, PR-5139 + + Fix code:get_doc/1 to not crash when module is located + in an escript. + + + OTP-17578 Application(s): erts, kernel + Related Id(s): ERIERL-683 + + Parsing of the result value in the native DNS resolver + has been made more defensive against incorrect results. + + + OTP-17580 Application(s): kernel + Related Id(s): GH-5122 + + A bug in the option handling for the legacy socket + adaptor, that is; when using inet_backend = socket, has + been fixed. Now socket options are set before the + bind() call so options regarding, for example address + reuse have the desired effect. + + + OTP-17583 Application(s): kernel + Related Id(s): GH-5136 + + inet:ntoa/1 has been fixed to not accept invalid + numerical addresses. + + + OTP-17584 Application(s): kernel + Related Id(s): PR-5145 + + Parsing of DNS records has been improved for records of + known types to not accept and present malformed ones in + raw format. + + + OTP-17590 Application(s): kernel + Related Id(s): PR-5170 + + The ip_mreq() type for the {ip,add_membership} and + {ip,drop_membership} socket options has been corrected + to have an interface field instead of, incorrectly, an + address field. + + + --- Improvements and New Features --- + + OTP-17376 Application(s): kernel + Related Id(s): OTP-17157 + + Add simple utility function to display existing sockets + i the erlang shell (socket:i/0). + + + OTP-17410 Application(s): kernel + + gen_udp can now be configured to use the socket + inet-backend (in the same way as gen_tcp). + + + OTP-17538 Application(s): erts, kernel + Related Id(s): GH-5063, PR-5111 + + Functions erlang:set_cookie(Cookie) and + erlang:get_cookie(Node) have been added for + completeness and to facilitate configuring distributed + nodes with different cookies. + + The documentation regarding distribution cookies has + been improved to be less vague. + + + OTP-17559 Application(s): erts, kernel + Related Id(s): GH-5092, PR-5120 + + A workaround has been implemented for Linux's quirky + behaviour to not adjust the source IP address when + connecting a connected (reconnecing) UDP socket. + + The workaround is to, on Linux, always dissolve any + connection before connecting an UDP socket. + + + OTP-17576 Application(s): kernel + Related Id(s): ERIERL-685 + + Documented our recommendation against opening + NFS-mounted files, FIFOs, devices, and similar using + file:open/2. + + + Full runtime dependencies of kernel-8.1: crypto-5.0, erts-12.0, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-4.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The megaco-4.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17533 Application(s): megaco + + It is now possible to configure the built-in transports + (megaco_tcp and megaco udp) to use the new (gen_udp- + and gen_tcp-) option 'inet_backend'. + + + Full runtime dependencies of megaco-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 + + + --------------------------------------------------------------------- + --- mnesia-4.20 ----------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17564 Application(s): mnesia + Related Id(s): GH-5040 + + Fixed that index keys was deleted for set tables when + mnesia:delete_object/1 tried to delete a non-existing + record. + + + --- Improvements and New Features --- + + OTP-17508 Application(s): mnesia + + Optimized table loading and added max_transfer_size + configuration parameter. + + + Full runtime dependencies of mnesia-4.20: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.10 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The observer-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 + dependencies have to be satisfied: + -- kernel-8.1 (first satisfied in OTP 24.1) + -- runtime_tools-1.17 (first satisfied in OTP 24.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17377 Application(s): erts, observer + + Atoms with Unicode code points greater than 255 (for + example Greek or Cyrillic characters) would not be + displayed correctly by crashdump_viewer. + + + OTP-17425 Application(s): observer + Related Id(s): PR-4799 + + Fix the crashdump_viewer to be able to parse + monitor_node/2 monitors correctly. + + + --- Improvements and New Features --- + + OTP-17346 Application(s): observer, runtime_tools + + Observer now has a sectiion for new socket. + + + OTP-17520 Application(s): observer + Related Id(s): PR-4962 + + Added a trace all button to the trace window. + + + Full runtime dependencies of observer-2.10: erts-11.0, et-1.5, + kernel-8.1, runtime_tools-1.17, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- os_mon-2.7.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + The os_mon-2.7.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17441 Application(s): os_mon + + On a Mac with Apple Silicon, memsup:get_os_wordsize/0 + would return 32 instead of 64. + + + Full runtime dependencies of os_mon-2.7.1: erts-6.0, kernel-3.0, + sasl-2.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- parsetools-2.3.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.3.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17499 Application(s): parsetools + Related Id(s): GH-4918 + + Fix a bug in Leex which caused the Erlang Compiler to + generate warnings. + + + OTP-17535 Application(s): parsetools + Related Id(s): GH-5067 + + Fix a bug in Yecc which caused the Erlang Compiler to + generate warnings. + + + Full runtime dependencies of parsetools-2.3.1: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- public_key-1.11.2 ----------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.11.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17534 Application(s): public_key + Related Id(s): GH-5054, PR-5057 + + public_key:pkix_sign/2 now honors the salt length from + the provided input parameters. Earlier this could + result in incorrect signatures if not using recommended + defaults. + + + --- Improvements and New Features --- + + OTP-17609 Application(s): public_key + Related Id(s): GH-5156, GH-5157 + + When decoding an 'ECPrivateKey' unwrap the private key. + For more precise information see RFC 8410, section 7. + + + Full runtime dependencies of public_key-1.11.2: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.17 ---------------------------------------------- + --------------------------------------------------------------------- + + Note! The runtime_tools-1.17 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.1 (first satisfied in OTP 24.1) + + + --- Improvements and New Features --- + + OTP-17346 Application(s): observer, runtime_tools + + Observer now has a sectiion for new socket. + + + OTP-17572 Application(s): runtime_tools + Related Id(s): PR-5117 + + The dbg docs have been expanded to include the meaning + of all the function name acronyms. + + + Full runtime dependencies of runtime_tools-1.17: erts-11.0, + kernel-8.1, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- snmp-5.10 ------------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.10 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17526 Application(s): snmp + + It is now possible to configure the built-in net-if + processes (both agent and manager) to use the new + (gen_udp-) option 'inet_backend'. + + + Full runtime dependencies of snmp-5.10: crypto-3.3, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.12.4 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.12.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17390 Application(s): ssh + Related Id(s): ERIERL-648 + + Fixed that a slow start (>30s) of a client subsystem + could cause a log entry with the password. + + + OTP-17586 Application(s): ssh + Related Id(s): GH-5014 + + Fixed an error when running as an sftp server and a + client requests a directory contents listing. + + The fix is to handle the error code {error, eacces} as + {error, enoent} in the ssh_sftpd:get_attrs/5 internal + function; that is, just skip it. + + + --- Improvements and New Features --- + + OTP-17450 Application(s): ssh + Related Id(s): ERIERL-655 + + The "Key exchange failed" Info Report is now more + informative. + + + Full runtime dependencies of ssh-4.12.4: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.5 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.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: + -- public_key-1.11.1 (first satisfied in OTP 24.0.4) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17423 Application(s): ssl + Related Id(s): GH-4823, PR-4829 + + Fix Makefile dependency generation to work no matter + what the ERL_TOP folder is called. + + + OTP-17517 Application(s): ssl + Related Id(s): GH-5009 + + If trying to downgrade a TLS-1.3 connection to a plain + TCP connection, possible TLS-1.3 session ticket + messages will be ignored in the "downgrade" state while + waiting for the close notify alert. + + + OTP-17521 Application(s): ssl + + Corrected error handling to correctly generate an + insufficient security alert when there are no suitable + groups that can be negotiated in TLS-1.3 instead of + crashing resulting in an internal error alert. + + + OTP-17635 Application(s): ssl + Related Id(s): GH-5192 + + Properly handle default session data storage. + + When a client tries to reuse an expired session the + default server storage handling would crash loosing + other session data. This would cause a error report and + possible loss of abbreviated handshakes. + + + --- Improvements and New Features --- + + OTP-16590 Application(s): ssl + Related Id(s): ERL-625, GH-5029 + + Add support for RSA-PSS-PSS signatures and + signature_algorithms_cert in TLS-1.2. This is a TLS-1.3 + RFC requirement to backport this functionality. + + + OTP-17392 Application(s): ssl + Related Id(s): PR-5050 + + Use inet:monitor/1 to monitor listen-sockets so that we + are compatible with the new socket backend for gen_tcp. + + + OTP-17464 Application(s): ssl + + Enhance ssl:prf/4 handling and testing + + + OTP-17501 Application(s): ssl + Related Id(s): GH-4978 + + Enhanced cipher suite filtering functionality, making + sure TLS-1.3 and TLS-1.2 cipher suites can be supported + correctly together even when TLS-1.2 anonymous ciphers + are included. + + + OTP-17530 Application(s): ssl + + Enhance gracefulness especially in TLS-1.3 + + + Full runtime dependencies of ssl-10.5: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.0, public_key-1.11.1, runtime_tools-1.15.1, + stdlib-3.12 + + + --------------------------------------------------------------------- + --- stdlib-3.16 ----------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.16 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17424 Application(s): stdlib + Related Id(s): GH-4801, PR-4803 + + Fix io:format with ~p to no longer interpret floats as + printable characters. + + + OTP-17429 Application(s): stdlib + Related Id(s): GH-4761 + + Fix specs for base64 encode/decode functions to also + include 0. + + + OTP-17430 Application(s): compiler, stdlib + + The failing call io:format("~p\n") would result in a + warning for line number 0 instead of the correct line + and column numbers. This has been corrected, and all + warnings for failing calls to io:format() has been + rephrased to make it clearer exactly what the problem + is. + + + OTP-17434 Application(s): compiler, stdlib + Related Id(s): GH-4772 + + When the options warn_missing_spec and export_all were + given, there would only be warnings for missing specs + for functions that had been explicitly exported using + an -export attribute. + + + OTP-17463 Application(s): stdlib + Related Id(s): GH-4916 + + Calling c:ls/1 with an atom whose contents is the the + name of a file (as opposed to a directory) would crash. + + + OTP-17505 Application(s): compiler, stdlib + Related Id(s): GH-4995 + + The MODULE and MODULE_STRING macros would always appear + to be defined (when tested by -ifdef), even though no + -module() declaration had been seen yet. Changed so + that -ifdef ?MODULE. will not consider ?MODULE defined + if -module() has not been previously seen. + + + OTP-17573 Application(s): stdlib + Related Id(s): ERL-1264, GH-4270 + + Fix bug with rendering of missing types and callbacks + in shell_docs. + + + OTP-17581 Application(s): compiler, stdlib + Related Id(s): PR-5141 + + When the deterministic option was given to the + compiler, the ?FILE macro would be expanded to full + path of the source file before the first include + directive and to base part of the filename after + include directive. + + + OTP-17622 Application(s): stdlib + Related Id(s): PR-5038 + + Fixed broken win32reg:delete_key and fixed + win32reg:value for default value. + + + OTP-17634 Application(s): stdlib + Related Id(s): GH-5196 + + Fixed error information for the call maps:get(some_key, + #{}). + + + --- Improvements and New Features --- + + OTP-17317 Application(s): stdlib + Related Id(s): PR-4757 + + *** HIGHLIGHT *** + + Most output functions in the io module now print extra + error information when provided with invalid arguments. + The functions are: io:format, io:fwrite, io:put_chars, + io:nl and io:write. + + + OTP-17454 Application(s): stdlib + Related Id(s): PR-4764 + + EEP-54 (Provide more information about errors) now + includes two new return values for the format_error + callback, general and reason. + + Multi-line error descriptions returned from a + format_error callback are now correctly indented. + + The documentation for erl_error, error/3 and Errors and + Error Handling in the Erlang Reference Manual have been + extended. + + + OTP-17503 Application(s): stdlib + Related Id(s): GH-4985 + + In the documentation for the lists module, it has been + clarified that predicate funs must return a boolean. + + + OTP-17571 Application(s): stdlib + Related Id(s): GH-5103 + + The documentation for c:c/1, c:c/2, and c:c/3 has been + clarified. + + + Full runtime dependencies of stdlib-3.16: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- tools-3.5.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-3.5.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17440 Application(s): tools + Related Id(s): GH-4796 + + The cover tool would not work on modules compiled with + the tuple_calls option. + + + Full runtime dependencies of tools-3.5.1: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.1 ---------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17507 Application(s): wx + + Fix crash when closing an application. + + + OTP-17577 Application(s): wx + Related Id(s): GH-4999 + + Some functions with overloaded color arguments could + not be used. For example the copy constructor + wxTextAttr:new(TextAttr) did not work. + + + --- Improvements and New Features --- + + OTP-17325 Application(s): wx + + Added the Microsoft Edge WebView loader dll to the + installer on windows. + + + OTP-17438 Application(s): wx + Related Id(s): PR-4780 + + Handle specific Mac gui application events. + + + Full runtime dependencies of wx-2.1: erts-6.0, kernel-3.0, stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.2.1.README.txt b/release-notes/OTP-24.2.1.README.txt new file mode 100644 index 0000000..2217089 --- /dev/null +++ b/release-notes/OTP-24.2.1.README.txt @@ -0,0 +1,104 @@ +Patch Package: OTP 24.2.1 +Git Tag: OTP-24.2.1 +Date: 2022-01-25 +Trouble Report Id: OTP-17794, OTP-17827, OTP-17829, OTP-17831, + OTP-17871, OTP-17879 +Seq num: ERIERL-708, GH-4450, GH-5341, GH-5527, + GH-5624 +System: OTP +Release: 24 +Application: erts-12.2.1, ssl-10.6.1 +Predecessor: OTP 24.2 + + Check out the git tag OTP-24.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-12.2.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.2.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17827 Application(s): erts + Related Id(s): GH-5527 + + Fixed a memory leak in file:read_file_info/2 and + file:read_file/1 on Windows. + + + OTP-17871 Application(s): erts + Related Id(s): PR-5612 + + Fix GC emulator crash when spawn_request was used when + message tracing was enabled. + + + Full runtime dependencies of erts-12.2.1: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ssl-10.6.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.6.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-17794 Application(s): ssl + Related Id(s): GH-4450, GH-5341 + + Improve SNI (server name indication) handling so that + protocol version can be selected with regards to SNI. + Also, make sure that ssl:connection_information/1 + returns the correct SNI value. + + + OTP-17829 Application(s): ssl + Related Id(s): ERIERL-708 + + Fixed cipher suite listing functions so that the + listing of all cipher suites will be complete. Another + fix for cipher suite handling in OTP-24.1 accidentally + excludes a few cipher suites from the listing of all + cipher suites. + + + OTP-17879 Application(s): ssl + Related Id(s): GH-5624 + + Reenable legacy cipher suite + TLS_RSA_WITH_3DES_EDE_CBC_SHA for explicit + configuration in TLS-1.2, not supported by default. + + + --- Improvements and New Features --- + + OTP-17831 Application(s): ssl + + Avoid unnecessary logs by better adjusting the + tls_sender process to the new supervisor structure in + OTP-24.2 + + + Full runtime dependencies of ssl-10.6.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.2.2.README.txt b/release-notes/OTP-24.2.2.README.txt new file mode 100644 index 0000000..aad630c --- /dev/null +++ b/release-notes/OTP-24.2.2.README.txt @@ -0,0 +1,60 @@ +Patch Package: OTP 24.2.2 +Git Tag: OTP-24.2.2 +Date: 2022-02-25 +Trouble Report Id: OTP-17850, OTP-17922 +Seq num: ERIERL-743, ERIERL-764 +System: OTP +Release: 24 +Application: inets-7.5.1, ssh-4.13.1 +Predecessor: OTP 24.2.1 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- inets-7.5.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.5.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17922 Application(s): inets + Related Id(s): ERIERL-743 + + Avoid intermediate ungraceful shutdown of the HTTP + server. + + + Full runtime dependencies of inets-7.5.1: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- ssh-4.13.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.13.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17850 Application(s): ssh + Related Id(s): ERIERL-764 + + The ssh sever parallel_login option was missing in + OTP-24 + + + Full runtime dependencies of ssh-4.13.1: 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.2.README.txt b/release-notes/OTP-24.2.README.txt new file mode 100644 index 0000000..fa7a357 --- /dev/null +++ b/release-notes/OTP-24.2.README.txt @@ -0,0 +1,1046 @@ +Patch Package: OTP 24.2 +Git Tag: OTP-24.2 +Date: 2021-12-15 +Trouble Report Id: OTP-16646, OTP-17241, OTP-17363, OTP-17375, + OTP-17411, OTP-17417, OTP-17515, OTP-17528, + OTP-17531, OTP-17579, OTP-17603, OTP-17615, + OTP-17637, OTP-17643, OTP-17662, OTP-17664, + OTP-17671, OTP-17673, OTP-17687, OTP-17689, + OTP-17699, OTP-17707, OTP-17713, OTP-17716, + OTP-17719, OTP-17721, OTP-17724, OTP-17727, + OTP-17730, OTP-17738, OTP-17740, OTP-17741, + OTP-17743, OTP-17744, OTP-17745, OTP-17746, + OTP-17748, OTP-17749, OTP-17750, OTP-17751, + OTP-17754, OTP-17760, OTP-17761, OTP-17763, + OTP-17765, OTP-17766, OTP-17767, OTP-17768, + OTP-17783, OTP-17785, OTP-17786, OTP-17790, + OTP-17793, OTP-17795, OTP-17796, OTP-17804, + OTP-17805, OTP-17806, OTP-17807, OTP-17808, + OTP-17809, OTP-17814, OTP-17817, OTP-17818 +Seq num: ERIERL-648, ERIERL-706, ERIERL-725, + ERIERL-729, ERIERL-731, ERL-1203, ERL-1224, + GH-4393, GH-4680, GH-4728, GH-5074, GH-5088, + GH-5210, GH-5314, GH-5334, GH-5351, GH-5361, + GH-5380, GH-5387, GH-5429, GH-5440 +System: OTP +Release: 24 +Application: common_test-1.22, compiler-8.0.4, + crypto-5.0.5, dialyzer-4.4.3, edoc-1.1, + erl_docgen-1.2, erts-12.2, inets-7.5, + kernel-8.2, megaco-4.2, mnesia-4.20.1, + observer-2.10.1, parsetools-2.3.2, + sasl-4.1.1, snmp-5.11, ssh-4.13, ssl-10.6, + stdlib-3.17, tools-3.5.2, wx-2.1.1 +Predecessor: OTP 24.1.7 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- HIGHLIGHTS ------------------------------------------------------ + --------------------------------------------------------------------- + + OTP-16646 Application(s): crypto + Related Id(s): OTP-16282 + + The crypto app in OTP can now be compiled, linked and + used with the new OpenSSL 3.0 cryptolib. + + It has not yet been extensively tested and is in this + release *not recommended* for other usages than + experiments and alpha testing. There are not yet any + guaranties that it works, not even together with other + OTP applications like for example SSL and SSH, although + there are no known errors. + + Compiling and linking with OpenSSL 3.0 cryptolib in + compatibility modes (for example to behave as 1.1.1) + are not tested. It is not tested with external + providers. + + The support for FIPS mode does not yet work, and is + disabled when compiled with OpenSSL 3.0. + + Deprecated functions in the OpenSSL 3.0 cryptolib must + not be disabled as OTP/crypto still uses some of the + deprecated API functions. The gcc flag + -Wno-deprecated-declarations is set to prevent + deprecation warnings to be printed when compiling. + + The hash algorithms md4 and ripemd160 are disabled + temporarily when compiled with OpenSSL 3.0. + + The ciphers blowfish_cbc, blowfish_cfb64, blowfish_ecb, + blowfish_ofb64, des_cbc, des_cfb, des_ecb, rc2_cbc and + rc4 are disabled temporarily when compiled with OpenSSL + 3.0. + + + OTP-17363 Application(s): erts + Related Id(s): GH-4728, PR-5187 + + An option for enabling dirty scheduler specific + allocator instances has been introduced. By default + such allocator instances are disabled. For more + information see the documentation of the +Mdai erl + command line argument. + + + OTP-17689 Application(s): erl_docgen, erts + Related Id(s): PR-5292 + + All predefined types have been added to the erlang + module together with documentation. + + Any reference to a predefined type now links to that + documentation so that the user can view it. + + + OTP-17796 Application(s): erts + Related Id(s): ERIERL-729, PR-5473 + + Responsiveness of processes executing on normal or low + priority could suffer due to code purging or literal + area removal on systems with a huge amount of + processes. This since during these operations all + processes on the system were scheduled for execution at + once. + + This problem has been fixed by introducing a limit on + outstanding purge and copy literal requests in the + system. By default this limit is set to twice the + amount of schedulers on the system. This will ensure + that schedulers will have enough work scheduled to + perform these operations as quickly as possible at the + same time as other work will be interleaved to a much + higher degree. Performance of these operations will + however be somewhat degraded due to the overhead of + enforcing this limit compared to when using a very + large limit. + + This limit can be set by passing the +zosrl command + line argument to erl, or by calling + erlang:system_flag(outstanding_system_requests_limit, + NewLimit). + + + --------------------------------------------------------------------- + --- common_test-1.22 ------------------------------------------------ + --------------------------------------------------------------------- + + The common_test-1.22 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17664 Application(s): common_test + Related Id(s): GH-5088, PR-5242 + + Before this change, group handling grammar was + ambiguous and also group paths did not support test + specs. + + + OTP-17790 Application(s): common_test + Related Id(s): PR-5375 + + Before this change, it was not possible to link to a + particular header entry in Common Test log. Change adds + right aligned anchor icons in HTML test logs. + + + Full runtime dependencies of common_test-1.22: 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.0.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.0.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17768 Application(s): compiler, dialyzer + Related Id(s): GH-5429 + + When the compiler is invoked by Dialyzer, it will no + longer apply an optimization of binary patterns that + would turn the pattern <<"bar">> into <<6447474:24>>, + which would be very confusing when printed out by + Dialyzer. + + + OTP-17786 Application(s): compiler + Related Id(s): GH-5440 + + The compiler would replace known failing calls (such as + atom_to_list(42)) with a call to error(badarg). With + the extended error information introduced in OTP 24 + (EEP 54), those "optimized" calls would not have + extended error information. To ensure that as much + extended error information as possible is available, + the compiler now keeps the original call even when it + is known to fail. + + + Full runtime dependencies of compiler-8.0.4: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0.5 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.5 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17637 Application(s): crypto + + Fixed the C-warning "implicit declaration of function + 'OpenSSL_version_num'" if compiling with an early + LibreSSL version. + + + OTP-17740 Application(s): crypto + + FIPS availability was not checked correctly for AEAD + ciphers. + + + OTP-17741 Application(s): crypto + + Fixed that cipher aliases (like aes_cbc etc) could be + present even if the aliased cipher(s) (like + aes_128_cbc, aes_256_cbc,... etc) was missing. + + + --- Improvements and New Features --- + + OTP-16646 Application(s): crypto + Related Id(s): OTP-16282 + + *** HIGHLIGHT *** + + The crypto app in OTP can now be compiled, linked and + used with the new OpenSSL 3.0 cryptolib. + + It has not yet been extensively tested and is in this + release *not recommended* for other usages than + experiments and alpha testing. There are not yet any + guaranties that it works, not even together with other + OTP applications like for example SSL and SSH, although + there are no known errors. + + Compiling and linking with OpenSSL 3.0 cryptolib in + compatibility modes (for example to behave as 1.1.1) + are not tested. It is not tested with external + providers. + + The support for FIPS mode does not yet work, and is + disabled when compiled with OpenSSL 3.0. + + Deprecated functions in the OpenSSL 3.0 cryptolib must + not be disabled as OTP/crypto still uses some of the + deprecated API functions. The gcc flag + -Wno-deprecated-declarations is set to prevent + deprecation warnings to be printed when compiling. + + The hash algorithms md4 and ripemd160 are disabled + temporarily when compiled with OpenSSL 3.0. + + The ciphers blowfish_cbc, blowfish_cfb64, blowfish_ecb, + blowfish_ofb64, des_cbc, des_cfb, des_ecb, rc2_cbc and + rc4 are disabled temporarily when compiled with OpenSSL + 3.0. + + + OTP-17241 Application(s): crypto + + The error handling in crypto is partly refactored using + the new error reporting support. Errors earlier + propagated like exceptions are still so, but when the + failing function is called from the terminal - for + example during failure hunting - a more descriptive + text is produced. + + + OTP-17603 Application(s): crypto + + A new function crypto:info/0 which presents some data + about the compilation and linkage of the crypto nif is + added. + + + OTP-17808 Application(s): crypto + Related Id(s): PR-5421 + + Added the pbkdf2_hmac/5 function to the crypto module. + + It calls the PKCS5_PBKDF2_HMAC function which + implements PBKD2 with HMAC in an efficient way. + + + Full runtime dependencies of crypto-5.0.5: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- dialyzer-4.4.3 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-4.4.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17643 Application(s): dialyzer + Related Id(s): GH-5210 + + Fixed a crash when opaque types contained certain + unicode characters. + + + OTP-17768 Application(s): compiler, dialyzer + Related Id(s): GH-5429 + + When the compiler is invoked by Dialyzer, it will no + longer apply an optimization of binary patterns that + would turn the pattern <<"bar">> into <<6447474:24>>, + which would be very confusing when printed out by + Dialyzer. + + + Full runtime dependencies of dialyzer-4.4.3: compiler-7.0, erts-9.0, + kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- edoc-1.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The edoc-1.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17743 Application(s): edoc + Related Id(s): PR-5292 + + Add option link_predefined_types that is used to create + links to erlang predefined types. This is mainly to be + used by erl_docgen when creating the Erlang/OTP + documentation. + + + Full runtime dependencies of edoc-1.1: erts-6.0, inets-5.10, + kernel-3.0, stdlib-3.15, syntax_tools-1.6.14, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_docgen-1.2 -------------------------------------------------- + --------------------------------------------------------------------- + + The erl_docgen-1.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17754 Application(s): erl_docgen + Related Id(s): PR-5365 + + Fix codeinclude tag to correctly respect the type + attribute. + + + --- Improvements and New Features --- + + OTP-17687 Application(s): erl_docgen + Related Id(s): PR-5197 + + The HTML documentation has been updated to collapse + better on small screens. + + + OTP-17689 Application(s): erl_docgen, erts + Related Id(s): PR-5292 + + *** HIGHLIGHT *** + + All predefined types have been added to the erlang + module together with documentation. + + Any reference to a predefined type now links to that + documentation so that the user can view it. + + + Full runtime dependencies of erl_docgen-1.2: edoc-1.0, erts-9.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erts-12.2 ------------------------------------------------------- + --------------------------------------------------------------------- + + The erts-12.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17713 Application(s): erts + + When matching and constructing utf16 segments in the + binary syntax, the native flag would be ignored. That + is, the endian would always be big endian even on a + little-endian computer (almost all modern computers). + + + OTP-17749 Application(s): erts + Related Id(s): GH-5361, PR-5378 + + Fix the help printout of +JPperf. + + + OTP-17751 Application(s): erts + Related Id(s): PR-5315 + + Fix bug that could cause Erlang to deadlock during + creation of an Erlang crash dump. + + + OTP-17763 Application(s): erts + Related Id(s): GH-5351 + + Fixed C++ build errors on some aarch64 platforms. + + + OTP-17785 Application(s): erts + Related Id(s): PR-5393 + + For macOS, the Info.plist file embedded in the runtime + system now only contains the absolute minimum amount of + information needed for the web view in wx to work + towards localhost. The other fields have been removed, + allowing an application packaged in a bundle to specify + the application name and other parameter in its own + Info.plist file. + + + OTP-17804 Application(s): erts + Related Id(s): PR-5372 + + Fix bug in internal stacks (WSTACK and ESTACK) used by + term_to_binary/2 to encode terms. The bug could cause a + segfault if a very very large map was to be encoded + with the deterministic option given. + + + OTP-17805 Application(s): erts, kernel + Related Id(s): PR-5406 + + Improve the error printout when open_port/2 fails + because of invalid arguments. + + + OTP-17814 Application(s): erts, observer + Related Id(s): PR-5462 + + Fix bug in crash dumps where the stackframe of a + process would be printed using an incorrect format. + + Crash dump viewer has also been fixed to be able read + the broken stack format. + + The bug has existed since Erlang/OTP 23.0. + + + --- Improvements and New Features --- + + OTP-17363 Application(s): erts + Related Id(s): GH-4728, PR-5187 + + *** HIGHLIGHT *** + + An option for enabling dirty scheduler specific + allocator instances has been introduced. By default + such allocator instances are disabled. For more + information see the documentation of the +Mdai erl + command line argument. + + + OTP-17673 Application(s): erts + Related Id(s): OTP-16226 + + Minor optimization of receive markers in message + queues. + + + OTP-17689 Application(s): erl_docgen, erts + Related Id(s): PR-5292 + + *** HIGHLIGHT *** + + All predefined types have been added to the erlang + module together with documentation. + + Any reference to a predefined type now links to that + documentation so that the user can view it. + + + OTP-17719 Application(s): erts + + Suppress a code checker warning caused by debug builds + of YCF. YCF tries to get a conservative estimate of the + bottom of the stack by reading and returning a call + stack allocated variable. + + + OTP-17724 Application(s): erts + Related Id(s): ERL-1224 + + Add file and product properties to erl.exe and + werl.exe. + + + OTP-17760 Application(s): erts + Related Id(s): ERIERL-725, PR-5414 + + Micro optimization in bitstring append operations. + + + OTP-17796 Application(s): erts + Related Id(s): ERIERL-729, PR-5473 + + *** HIGHLIGHT *** + + Responsiveness of processes executing on normal or low + priority could suffer due to code purging or literal + area removal on systems with a huge amount of + processes. This since during these operations all + processes on the system were scheduled for execution at + once. + + This problem has been fixed by introducing a limit on + outstanding purge and copy literal requests in the + system. By default this limit is set to twice the + amount of schedulers on the system. This will ensure + that schedulers will have enough work scheduled to + perform these operations as quickly as possible at the + same time as other work will be interleaved to a much + higher degree. Performance of these operations will + however be somewhat degraded due to the overhead of + enforcing this limit compared to when using a very + large limit. + + This limit can be set by passing the +zosrl command + line argument to erl, or by calling + erlang:system_flag(outstanding_system_requests_limit, + NewLimit). + + + Full runtime dependencies of erts-12.2: kernel-8.0, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.5 ------------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.5 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17818 Application(s): inets + Related Id(s): ERIERL-731 + + Correct HTTP server URI handling to fully rely on + uri_string. The server could mistreat some URI paths + that in turn could result in incorrect responses being + generated. + + + --- Improvements and New Features --- + + OTP-17579 Application(s): inets + Related Id(s): GH-5074 + + Extend header values to httpc:request/5 to allow + binary() as well. Make error detection of invalid + arguments to httpc:request/5 be more precise so an + error is returned in more cases instead of causing a + hang or function_clause. Be more precise in + documentation regarding the types of arguments being + accepted. + + + Full runtime dependencies of inets-7.5: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- kernel-8.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The kernel-8.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.2 (first satisfied in OTP 24.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17716 Application(s): kernel + + socket:which_sockets( pid() ) uses wrong keyword when + looking up socket owner ('ctrl' instead of 'owner'). + + + OTP-17730 Application(s): kernel + + In epmd_ntop, the #if defined(EPMD6) conditional was + inverted and it was only including the IPv6-specific + code when EPMD6 was undefined. This was causing IPv6 + addrs to be interpreted as IPv4 addrs and generating + nonsense IPv4 addresses as output. + + Several places were incorrectly using 'num_sockets' + instead of 'i' to index into the iserv_addr array + during error logging. This would result in a read into + uninitialized data in the iserv_addr array. + + Thanks to John Eckersberg for providing this fix. + + + OTP-17765 Application(s): kernel + Related Id(s): PR-5289 + + Minor fix of the erl_uds_dist distribution module + example. + + + OTP-17793 Application(s): kernel + Related Id(s): GH-4680, OTP-17216, OTP-17451, PR-2989, + PR-4787, PR-5348 + + A bug has been fixed for the legacy TCP socket adaption + module gen_tcp_socket where it did bind to a socket + address when given a file descriptor, but should not. + + + OTP-17805 Application(s): erts, kernel + Related Id(s): PR-5406 + + Improve the error printout when open_port/2 fails + because of invalid arguments. + + + OTP-17806 Application(s): kernel + + Calling socket:monitor/1 on an already closed socket + should succeed and result in an immediate DOWN message. + This has now been fixed. + + + OTP-17807 Application(s): kernel + Related Id(s): PR-5418 + + Fix the configuration option logger_metadata to work. + + + OTP-17809 Application(s): kernel, ssl + Related Id(s): GH-5334, PR-5337 + + Fix tls and non-tls distribution to use + erl_epmd:address_please to figure out if IPv4 or IPv6 + addresses should be used when connecting to the remote + node. + + Before this fix, a dns lookup of the remote node + hostname determined which IP version was to be used + which meant that the hostname had to resolve to a valid + ip address. + + + --- Improvements and New Features --- + + OTP-17375 Application(s): kernel + Related Id(s): PR-4663, PR-5186 + + Add logger:reconfigure/0. + + + OTP-17528 Application(s): kernel + + Add socket function ioctl/2,3,4 for socket device + control. + + + OTP-17531 Application(s): kernel + + Add simple support for socknames/1 for gen_tcp_socket + and gen_udp_socket. + + + OTP-17738 Application(s): kernel + Related Id(s): OTP-17589, 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. + + + Full runtime dependencies of kernel-8.2: crypto-5.0, erts-12.2, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-4.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The megaco-4.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17817 Application(s): megaco + + [megaco_tcp] When connect fails, include more info in + the error reason. + + + Full runtime dependencies of megaco-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.20.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17727 Application(s): mnesia + + Documentation and minor code cleanup. + + + Full runtime dependencies of mnesia-4.20.1: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.10.1 ------------------------------------------------- + --------------------------------------------------------------------- + + Note! The observer-2.10.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 + dependencies have to be satisfied: + -- kernel-8.1 (first satisfied in OTP 24.1) + -- runtime_tools-1.17 (first satisfied in OTP 24.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17814 Application(s): erts, observer + Related Id(s): PR-5462 + + Fix bug in crash dumps where the stackframe of a + process would be printed using an incorrect format. + + Crash dump viewer has also been fixed to be able read + the broken stack format. + + The bug has existed since Erlang/OTP 23.0. + + + Full runtime dependencies of observer-2.10.1: erts-11.0, et-1.5, + kernel-8.1, runtime_tools-1.17, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- parsetools-2.3.2 ------------------------------------------------ + --------------------------------------------------------------------- + + The parsetools-2.3.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17721 Application(s): parsetools + + The default parser include file for yecc (yeccpre) will + no longer crash when attempting to print tokens when + reporting an error. + + + Full runtime dependencies of parsetools-2.3.2: erts-6.0, kernel-3.0, + stdlib-2.5 + + + --------------------------------------------------------------------- + --- sasl-4.1.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + The sasl-4.1.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17748 Application(s): sasl + Related Id(s): GH-5387, PR-5389 + + Make release_handler even more resilient against + exiting processes during upgrade. Same kind of bug fix + as OTP-16744 released in sasl-4.0.1 (OTP 23.1). + + + Full runtime dependencies of sasl-4.1.1: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.11 ------------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.11 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17671 Application(s): snmp + + Handling of test config flag when starting "empty". + + + --- Improvements and New Features --- + + OTP-17615 Application(s): snmp + Related Id(s): MR9501-1 + + Add support for new authentication algorithms (SHA-224, + SHA-256, SHA-384 and SHA-512), according to RFC 7860. + + + OTP-17783 Application(s): snmp + + Improve debug info for (snmp) manager. + + + Full runtime dependencies of snmp-5.11: crypto-3.3, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.13 -------------------------------------------------------- + --------------------------------------------------------------------- + + The ssh-4.13 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17707 Application(s): ssh + Related Id(s): ERIERL-706 + + The value of the connect_timeout option is now used as + default value for the negotiation timeout. + + + --- Improvements and New Features --- + + OTP-17515 Application(s): ssh + Related Id(s): ERIERL-648 + + Add better error handling in connect/2,3,4. Detect + incorrect arguments and return an informative error + tuple instead of throwing a function_clause or similar. + + + OTP-17795 Application(s): ssh + + Make ssh algorithm selection better handle dynamic + changes changes in crypto fips mode. + + + Full runtime dependencies of ssh-4.13: crypto-5.0, erts-9.0, + kernel-5.3, public_key-1.6.1, runtime_tools-1.15.1, stdlib-3.15 + + + --------------------------------------------------------------------- + --- ssl-10.6 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.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: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17411 Application(s): ssl + Related Id(s): ERL-1203, GH-4393 + + Allow re-connect on DTLS sockets + + Can happen when a computer reboots and connects from + the same client port without the server noticing should + be allowed according to RFC. + + + OTP-17809 Application(s): kernel, ssl + Related Id(s): GH-5334, PR-5337 + + Fix tls and non-tls distribution to use + erl_epmd:address_please to figure out if IPv4 or IPv6 + addresses should be used when connecting to the remote + node. + + Before this fix, a dns lookup of the remote node + hostname determined which IP version was to be used + which meant that the hostname had to resolve to a valid + ip address. + + + --- Improvements and New Features --- + + OTP-17417 Application(s): ssl + + Use supervisor significant child to manage tls + connection process and tls sender process dependency. + + + OTP-17699 Application(s): ssl + + Random generation adjustment for TLS1.3 + + + OTP-17761 Application(s): ssl + Related Id(s): GH-5380 + + Allow any {03,XX} TLS record version in the client + hello for maximum interoperability + + + Full runtime dependencies of ssl-10.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.12 + + + --------------------------------------------------------------------- + --- stdlib-3.17 ----------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.17 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17662 Application(s): stdlib + Related Id(s): PR-5206 + + Fix rendering of nbsp on terminals that do not support + unicode. + + + OTP-17750 Application(s): stdlib + Related Id(s): PR-5366 + + Improved the erl_error printout for when re fails to + compile a regular expression to also print hints about + why the compilation failed. + + + OTP-17766 Application(s): stdlib + Related Id(s): PR-5362 + + Fixed spec for supervisor_bridge:start_link(). + + + OTP-17767 Application(s): stdlib + Related Id(s): PR-5344 + + Added missing shutdown clauses in supervisor which + could cause erroneous error reports. + + + --- Improvements and New Features --- + + OTP-17744 Application(s): stdlib + Related Id(s): PR-5292 + + Add the no_auto_import_types to erl_lint to allow a + module to define types of the same name as a predefined + type. + + + Full runtime dependencies of stdlib-3.17: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- tools-3.5.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The tools-3.5.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17746 Application(s): tools + Related Id(s): GH-5314, PR-5324 + + Erlang-mode fixed for newer versions of xref using + CL-Lib structures instead of EIEIO classes. + + + Full runtime dependencies of tools-3.5.2: compiler-5.0, erts-11.0, + erts-9.1, kernel-5.4, runtime_tools-1.8.14, stdlib-3.4 + + + --------------------------------------------------------------------- + --- wx-2.1.1 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.1.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17745 Application(s): wx + + Fix crash in cleanup code when a gui application is + exiting. + + Fix errors in the OpenGL wrapper that could cause + crashes and improve the documentation. + + + Full runtime dependencies of wx-2.1.1: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.1.README.txt b/release-notes/OTP-24.3.1.README.txt new file mode 100644 index 0000000..0921584 --- /dev/null +++ b/release-notes/OTP-24.3.1.README.txt @@ -0,0 +1,68 @@ +Patch Package: OTP 24.3.1 +Git Tag: OTP-24.3.1 +Date: 2022-03-15 +Trouble Report Id: OTP-17963, OTP-17971 +Seq num: GH-5764, GH-5783 +System: OTP +Release: 24 +Application: dialyzer-4.4.4, ssl-10.7.1 +Predecessor: OTP 24.3 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- dialyzer-4.4.4 -------------------------------------------------- + --------------------------------------------------------------------- + + The dialyzer-4.4.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17963 Application(s): dialyzer + Related Id(s): GH-5764 + + There could be spurious warnings for unknown types when + a type was a subtype of an existing type that was a + subtype of an unknown type. + + + Full runtime dependencies of dialyzer-4.4.4: compiler-7.0, erts-9.0, + kernel-5.3, stdlib-3.4, syntax_tools-2.0, wx-1.2 + + + --------------------------------------------------------------------- + --- ssl-10.7.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.7.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-17971 Application(s): ssl + Related Id(s): GH-5783 + + Client certification could fail for TLS-1.3 servers + that did not include the certificat_authorties + extension in its certificate request message. + + + Full runtime dependencies of ssl-10.7.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.2.README.txt b/release-notes/OTP-24.3.2.README.txt new file mode 100644 index 0000000..ade0015 --- /dev/null +++ b/release-notes/OTP-24.3.2.README.txt @@ -0,0 +1,70 @@ +Patch Package: OTP 24.3.2 +Git Tag: OTP-24.3.2 +Date: 2022-03-16 +Trouble Report Id: OTP-17975, OTP-17979, OTP-17981 +Seq num: ERIERL-780 +System: OTP +Release: 24 +Application: erl_interface-5.2.1, kernel-8.3.1 +Predecessor: OTP 24.3.1 + + Check out the git tag OTP-24.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. + + --------------------------------------------------------------------- + --- erl_interface-5.2.1 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.2.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17975 Application(s): erl_interface + Related Id(s): PR-5763 + + Fix compile error regarding gethostbyaddr_r on Android. + Error introduced in OTP 24.3. + + + --------------------------------------------------------------------- + --- kernel-8.3.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.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: + -- erts-12.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17979 Application(s): kernel + Related Id(s): ERIERL-780 + + Fix failed accepted connection setup after previous + established connection from same node closed down + silently. + + + OTP-17981 Application(s): kernel + Related Id(s): PR-5791 + + Fixed a problem where typing Ctrl-R in the shell could + hang if there were some problem with the history log + file. + + + Full runtime dependencies of kernel-8.3.1: crypto-5.0, erts-12.3, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.3.README.txt b/release-notes/OTP-24.3.3.README.txt new file mode 100644 index 0000000..2b286d7 --- /dev/null +++ b/release-notes/OTP-24.3.3.README.txt @@ -0,0 +1,207 @@ +Patch Package: OTP 24.3.3 +Git Tag: OTP-24.3.3 +Date: 2022-03-29 +Trouble Report Id: OTP-17973, OTP-17978, OTP-17982, OTP-17987, + OTP-17989, OTP-17993, OTP-17994, OTP-17995, + OTP-17998 +Seq num: ERIERL-767, ERIERL-772, GH-5554, GH-5758, + GH-5781 +System: OTP +Release: 24 +Application: erl_interface-5.2.2, erts-12.3.1, ftp-1.1.1, + mnesia-4.20.3, observer-2.11.1, ssl-10.7.2, + wx-2.1.3 +Predecessor: OTP 24.3.2 + + Check out the git tag OTP-24.3.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. + + --------------------------------------------------------------------- + --- erl_interface-5.2.2 --------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.2.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17987 Application(s): erl_interface + Related Id(s): GH-5781, PR-5787 + + Avoid attempt build dynamic libs if config option + --enable-ei-dynamic-lib is not given. + + + --------------------------------------------------------------------- + --- erts-12.3.1 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.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: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17978 Application(s): erts + Related Id(s): OTP-17958 + + erlang:open_port({spawn, _},_) has been fixed on + Windows to handle whitespace characters in the path + correctly. + + This could, for example, cause execution of the + resolver helper program inet_gethost to fail and + instead possibly execute a different program. + + + OTP-17993 Application(s): erts + Related Id(s): PR-5806 + + Fix race condition when creating crash dump that could + cause multiple threads to race when writing the initial + information in a crash dump. + + The race condition was introduced in erts-12.2 + (Erlang/OTP 24.2). + + + OTP-17998 Application(s): erts + Related Id(s): GH-5554, PR-5825 + + Fix Erlang monotonic time on MacOS. Previously used OS + monotonic time primitive on MacOS is buggy and will not + be used anymore. It has been replaced with usage of + another OS monotonic time primitive that does not + appear to be buggy. + + + Full runtime dependencies of erts-12.3.1: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- ftp-1.1.1 ------------------------------------------------------- + --------------------------------------------------------------------- + + The ftp-1.1.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17989 Application(s): ftp + Related Id(s): ERIERL-767 + + An unexpected timeout message on the FTP control + channel was observed in a real system and could not be + associated with anything that was expected to happen, + so we will ignore but info log such unexpected + messages. + + + Full runtime dependencies of ftp-1.1.1: erts-7.0, kernel-6.0, + runtime_tools-1.15.1, ssl-10.2, stdlib-3.5 + + + --------------------------------------------------------------------- + --- mnesia-4.20.3 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17973 Application(s): mnesia + Related Id(s): ERIERL-772 + + Optimize locker to handle many read locks on the same + record. + + + Full runtime dependencies of mnesia-4.20.3: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.11.1 ------------------------------------------------- + --------------------------------------------------------------------- + + Note! The observer-2.11.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 + dependencies have to be satisfied: + -- kernel-8.1 (first satisfied in OTP 24.1) + -- runtime_tools-1.17 (first satisfied in OTP 24.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17995 Application(s): observer + Related Id(s): PR-5804 + + Fixed node information lookup for remote process + identifiers in crashdump_viewer. + + + Full runtime dependencies of observer-2.11.1: erts-11.0, et-1.5, + kernel-8.1, runtime_tools-1.17, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- ssl-10.7.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.7.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-17994 Application(s): ssl + + With this change, potential hanging of pre TLS1.3 + client receiving OSCP staple message is avoided. + + + Full runtime dependencies of ssl-10.7.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 + + + --------------------------------------------------------------------- + --- wx-2.1.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.1.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17982 Application(s): wx + Related Id(s): GH-5758 + + Fixed a bug in callback handling which could lead to a + unresponsive gui. + + + Full runtime dependencies of wx-2.1.3: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + 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-24.3.4.README.txt b/release-notes/OTP-24.3.4.README.txt new file mode 100644 index 0000000..5a846c1 --- /dev/null +++ b/release-notes/OTP-24.3.4.README.txt @@ -0,0 +1,298 @@ +Patch Package: OTP 24.3.4 +Git Tag: OTP-24.3.4 +Date: 2022-05-03 +Trouble Report Id: OTP-17970, OTP-18027, OTP-18028, OTP-18056, + OTP-18061, OTP-18062, OTP-18064, OTP-18065, + OTP-18066, OTP-18069, OTP-18071, OTP-18075, + OTP-18076, OTP-18077, OTP-18078, OTP-18080, + OTP-18081, OTP-18082 +Seq num: ERIERL-802, ERIERL-805, GH-5835, GH-5876, + GH-5883, GH-5893, GH-5898, GH-5908, GH-5915, + GH-5930 +System: OTP +Release: 24 +Application: compiler-8.1.1, erts-12.3.2, inets-7.5.3, + kernel-8.3.2, mnesia-4.20.4, ssl-10.7.3, + stdlib-3.17.2, wx-2.1.4 +Predecessor: OTP 24.3.3 + + Check out the git tag OTP-24.3.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. + + --------------------------------------------------------------------- + --- compiler-8.1.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.1.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18066 Application(s): compiler + Related Id(s): GH-5915 + + Fixed a performance bug in the validator that made + certain files take a very long time to compile. + + + OTP-18082 Application(s): compiler + + In rare circumstances, the compiler would mistakenly + assume that a call to setelement/3 would always fail + and remove all code following the call. + + + Full runtime dependencies of compiler-8.1.1: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- erts-12.3.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.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: + -- kernel-8.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17970 Application(s): erts + Related Id(s): PR-5762 + + Let EPMD tolerate failure when binding to IPv4/IPv6 + loopback intefaces in addition to user-supplied + addresses via ERL_EPMD_ADDRESS or the -address option. + This can happen, for example, if the host system has + ipv6 disabled via the disable_ipv6 sysctl. + + + OTP-18027 Application(s): erts + + Fixed a rare bug in binary_to_term/1, + enif_make_map_from_arrays, erl_drv_send_term, and + Erlang distribution that could crash the emulator. + + + OTP-18065 Application(s): erts + Related Id(s): GH-5908 + + Fixed a rare race in persistent_term:get/1,2 that could + cause it to return the value of another key. + + + OTP-18075 Application(s): erts + Related Id(s): PR-5927 + + Fix bug where the process message queue was left in an + inconsistent state when changing from on_heap to + off_heap message queue data causing the GC to segfault. + + + OTP-18076 Application(s): erts + Related Id(s): ERIERL-802, PR-5905 + + Fix functions that convert universal to localtime (such + as erlang:localtime/0 and + erlang:universaltime_to_localtime/1) to fetch the + correct localtime if it is changed after the start of + the VM. + + + OTP-18077 Application(s): erts + Related Id(s): GH-5876, PR-5892 + + Fix memory leak when a process doing a distributed + fragmented send is sent an exit signal. Before this fix + the receiving node would be left with an incomplete + message that would remain until the nodes were + disconnected. The bug has existed since Erlang/OTP 21. + + + OTP-18080 Application(s): erts, kernel + Related Id(s): GH-5930 + + Corrected the behaviour of the shutdown function when + using with the inet_backend = socket. It was not + sufficiently compatible with the "old" gen_tcp. + + + Full runtime dependencies of erts-12.3.2: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.5.3 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.5.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18069 Application(s): inets + Related Id(s): ERIERL-805 + + Fix handling of erl_script_script option in httpd when + atom 'all' is used as AllowedModule. + + + Full runtime dependencies of inets-7.5.3: 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 ---------------------------------------------------- + --------------------------------------------------------------------- + + Note! The kernel-8.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: + -- erts-12.3 (first satisfied in OTP 24.3) + + + --- Fixed Bugs and Malfunctions --- + + OTP-18078 Application(s): kernel + Related Id(s): GH-5930 + + inet:getopts/2 for the 'raw' option for a socket + created with inet-backend 'socket' failed. + + + OTP-18080 Application(s): erts, kernel + Related Id(s): GH-5930 + + Corrected the behaviour of the shutdown function when + using with the inet_backend = socket. It was not + sufficiently compatible with the "old" gen_tcp. + + + Full runtime dependencies of kernel-8.3.2: crypto-5.0, erts-12.3, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- mnesia-4.20.4 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18056 Application(s): mnesia + + Fixed mnesia:add_table_copy/3 so that calling it when + mnesia started on another node does not fail or cause + hanging nodes. + + + Full runtime dependencies of mnesia-4.20.4: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- ssl-10.7.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The ssl-10.7.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-18028 Application(s): ssl + Related Id(s): GH-5835 + + Client certification could fail if TLS-1.3 enabled + client negotiated TLS-1.2 connection with the server, + this is due to the wrong version being used when + decoding the certificate request message from the + server. + + + OTP-18062 Application(s): ssl + Related Id(s): GH-5898 + + socket option packet_size was not handled in + ssl:setops/2 and ssl:getotps/2 + + + OTP-18071 Application(s): ssl + Related Id(s): GH-5930 + + Remove legacy code to fix interoperability with new + socket inet_backend. + + + Full runtime dependencies of ssl-10.7.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 + + + --------------------------------------------------------------------- + --- stdlib-3.17.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.17.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18081 Application(s): stdlib + + The type specifications for shell_docs:get_doc/3, + shell_docs:get_callback_doc/3, and + shell_docs:get_type_doc/3 incorrectly stated that the + returned Metadata was an empty map. + + + Full runtime dependencies of stdlib-3.17.2: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- wx-2.1.4 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.1.4 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-18064 Application(s): wx + Related Id(s): GH-5893 + + Fix build failure with wxWidgets-3.1.6. + + + --- Improvements and New Features --- + + OTP-18061 Application(s): wx + Related Id(s): GH-5883 + + Enable the possibility to build wx on windows with + wxWidgets-3.1.6. + + + Full runtime dependencies of wx-2.1.4: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-24.3.README.txt b/release-notes/OTP-24.3.README.txt new file mode 100644 index 0000000..0800ff6 --- /dev/null +++ b/release-notes/OTP-24.3.README.txt @@ -0,0 +1,1078 @@ +Patch Package: OTP 24.3 +Git Tag: OTP-24.3 +Date: 2022-03-10 +Trouble Report Id: OTP-15719, OTP-16559, OTP-16607, OTP-17455, + OTP-17656, OTP-17718, OTP-17759, OTP-17800, + OTP-17812, OTP-17815, OTP-17816, OTP-17822, + OTP-17830, OTP-17838, OTP-17839, OTP-17840, + OTP-17843, OTP-17847, OTP-17851, OTP-17852, + OTP-17854, OTP-17857, OTP-17865, OTP-17868, + OTP-17877, OTP-17880, OTP-17883, OTP-17886, + OTP-17887, OTP-17888, OTP-17891, OTP-17893, + OTP-17895, OTP-17900, OTP-17902, OTP-17903, + OTP-17904, OTP-17905, OTP-17907, OTP-17912, + OTP-17918, OTP-17924, OTP-17928, OTP-17929, + OTP-17931, OTP-17941, OTP-17942, OTP-17947, + OTP-17959, OTP-17962 +Seq num: ERIERL-688, ERIERL-724, ERIERL-732, + ERIERL-750, ERIERL-757, ERIERL-761, GH-4852, + GH-5140, GH-5332, GH-5367, GH-5402, GH-5425, + GH-5548, GH-5571, GH-5662, GH-5667, GH-5680, + GH-5686, GH-5708, GH-5757 +System: OTP +Release: 24 +Application: asn1-5.0.18, common_test-1.22.1, + compiler-8.1, crypto-5.0.6, debugger-5.2.1, + diameter-2.2.5, eldap-1.2.10, + erl_docgen-1.2.1, erl_interface-5.2, + erts-12.3, inets-7.5.2, jinterface-1.12.2, + kernel-8.3, megaco-4.3, mnesia-4.20.2, + observer-2.11, public_key-1.12, + runtime_tools-1.18, sasl-4.1.2, snmp-5.12, + ssh-4.13.2, ssl-10.7, stdlib-3.17.1, wx-2.1.2 +Predecessor: OTP 24.2.2 + + Check out the git tag OTP-24.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-17455 Application(s): erts, kernel + Related Id(s): GH-4852 + + Add support for using socket:sockaddr_in() and + socket:sockaddr_in6() when using gen_sctp, gen_tcp and + gen_udp. This will make it possible to use Link Local + IPv6 addresses. + + + OTP-17812 Application(s): crypto + Related Id(s): OTP-16282, OTP-16646 + + The crypto app in OTP can since OTP-24.2 be compiled, + linked and used with the new OpenSSL 3.0 cryptolib. + + The crypto app has 3.0 support has been improved, but + is still *not recommended* for other usages than + experiments and alpha testing. There are not yet any + guaranties that it works, not even together with other + OTP applications like for example SSL and SSH, although + there are no known errors. + + Since the previous release, OTP-24.2, the following + improvements have been done: + + - It has been tested during nearly every nightly test + on the OTP lab + + - The hash algorithms md4 and ripemd160 have been + enabled with OpenSSL 3.0. + + - The ciphers blowfish_cbc, blowfish_ecb, des_cbc, + des_cfb, des_ecb, rc2_cbc and rc4 have been enabled + with OpenSSL 3.0. + + Disabled or unsupported with OpenSSL 3.0 are still: + + - ENGINE support + + - FIPS mode + + - Other providers than the built-in ones + + - Compiling and linking with OpenSSL 3.0 cryptolib in + compatibility modes (for example to behave as 1.1.1) + + and, the ciphers blowfish_cfb64 and blowfish_ofb64 are + not supported and will not be either. + + Deprecated functions in the OpenSSL 3.0 cryptolib must + not be disabled as OTP/crypto still uses some of the + deprecated API functions. The gcc flag + -Wno-deprecated-declarations is set to prevent + deprecation warnings to be printed when compiling. + + + OTP-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + --------------------------------------------------------------------- + --- POTENTIAL INCOMPATIBILITIES ------------------------------------- + --------------------------------------------------------------------- + + OTP-17928 Application(s): ssh + Related Id(s): PR-5679 + + Improper tag for private ED keys when encoding with + ssh:encode/2. + + The tuple had ed_priv as first element, but should have + had ed_pri. This is now corrected. + + + --------------------------------------------------------------------- + --- OTP-24.3 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17893 Application(s): otp + Related Id(s): PR-5458 + + A cross compilation configuration for darwin aarch64 + has been added. + + + --------------------------------------------------------------------- + --- asn1-5.0.18 ----------------------------------------------------- + --------------------------------------------------------------------- + + The asn1-5.0.18 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17959 Application(s): asn1 + Related Id(s): GH-5757 + + Add support for the maps option in combination with the + jer backend. + + + Full runtime dependencies of asn1-5.0.18: erts-11.0, kernel-7.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- common_test-1.22.1 ---------------------------------------------- + --------------------------------------------------------------------- + + The common_test-1.22.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17888 Application(s): common_test + + OTP internal test fix. + + + Full runtime dependencies of common_test-1.22.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 ---------------------------------------------------- + --------------------------------------------------------------------- + + The compiler-8.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17895 Application(s): compiler + + The expression <<0/native-float>>=Bin would always fail + to match, while <<0/float-native>>=Bin would match + (provided that Bin contained the binary representation + of 0.0) + + + --- Improvements and New Features --- + + OTP-17886 Application(s): compiler + Related Id(s): GH-5140, GH-5686 + + The compiler will now compile huge functions with + straight-line code faster. + + + Full runtime dependencies of compiler-8.1: crypto-3.6, erts-11.0, + kernel-7.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- crypto-5.0.6 ---------------------------------------------------- + --------------------------------------------------------------------- + + The crypto-5.0.6 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17812 Application(s): crypto + Related Id(s): OTP-16282, OTP-16646 + + *** HIGHLIGHT *** + + The crypto app in OTP can since OTP-24.2 be compiled, + linked and used with the new OpenSSL 3.0 cryptolib. + + The crypto app has 3.0 support has been improved, but + is still *not recommended* for other usages than + experiments and alpha testing. There are not yet any + guaranties that it works, not even together with other + OTP applications like for example SSL and SSH, although + there are no known errors. + + Since the previous release, OTP-24.2, the following + improvements have been done: + + - It has been tested during nearly every nightly test + on the OTP lab + + - The hash algorithms md4 and ripemd160 have been + enabled with OpenSSL 3.0. + + - The ciphers blowfish_cbc, blowfish_ecb, des_cbc, + des_cfb, des_ecb, rc2_cbc and rc4 have been enabled + with OpenSSL 3.0. + + Disabled or unsupported with OpenSSL 3.0 are still: + + - ENGINE support + + - FIPS mode + + - Other providers than the built-in ones + + - Compiling and linking with OpenSSL 3.0 cryptolib in + compatibility modes (for example to behave as 1.1.1) + + and, the ciphers blowfish_cfb64 and blowfish_ofb64 are + not supported and will not be either. + + Deprecated functions in the OpenSSL 3.0 cryptolib must + not be disabled as OTP/crypto still uses some of the + deprecated API functions. The gcc flag + -Wno-deprecated-declarations is set to prevent + deprecation warnings to be printed when compiling. + + + OTP-17941 Application(s): crypto + Related Id(s): OTP-17942 + + Crypto is adapted to LibreSSL 3.5.0 on OpenBSD. + + + OTP-17942 Application(s): crypto + Related Id(s): OTP-17941 + + New configure option ( --disable-otp-test-engine) to + prohibit the build of the OTP test engine used in some + test suites. + + The reason is that the test engine could be hard to + compile on for instance LibreSSL 3.5.0. For that + particular cryptolib version (or higher), this + configure option is set automatically. + + + Full runtime dependencies of crypto-5.0.6: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- debugger-5.2.1 -------------------------------------------------- + --------------------------------------------------------------------- + + The debugger-5.2.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17865 Application(s): debugger + Related Id(s): GH-5571 + + Fix record index matching, it was broken and could + never match. + + + Full runtime dependencies of debugger-5.2.1: compiler-8.0, erts-12.0, + kernel-8.0, stdlib-3.15, wx-2.0 + + + --------------------------------------------------------------------- + --- diameter-2.2.5 -------------------------------------------------- + --------------------------------------------------------------------- + + The diameter-2.2.5 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17962 Application(s): diameter, inets, megaco, snmp, stdlib + + The compilation time is no longer recorded in BEAM + files. There remained several undocumented functions + that attempted to retrieve compilation times. Those + have now been removed. + + + Full runtime dependencies of diameter-2.2.5: erts-10.0, kernel-3.2, + ssl-9.0, stdlib-2.4 + + + --------------------------------------------------------------------- + --- eldap-1.2.10 ---------------------------------------------------- + --------------------------------------------------------------------- + + The eldap-1.2.10 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17877 Application(s): eldap + Related Id(s): PR-5615 + + Fix eldap extensibleMatch dnAttributes option. + + According to the ldap ASN1 the dnAttributes should be a + bool, instead it was generated as a string. + + + --- Improvements and New Features --- + + OTP-17924 Application(s): eldap + Related Id(s): PR-5538 + + Implemented paged searches according to + https://www.rfc-editor.org/rfc/rfc2696.txt + + + Full runtime dependencies of eldap-1.2.10: asn1-3.0, erts-6.0, + kernel-3.0, ssl-5.3.4, stdlib-2.0 + + + --------------------------------------------------------------------- + --- erl_docgen-1.2.1 ------------------------------------------------ + --------------------------------------------------------------------- + + The erl_docgen-1.2.1 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17852 Application(s): erl_docgen + + Fix css for large tables and images on small screens + + + OTP-17907 Application(s): erl_docgen + Related Id(s): GH-5662, PR-5666 + + Fix bug with codeinclude tag that caused it to not + include the code if used in a correct, but unexpected + way. + + + Full runtime dependencies of erl_docgen-1.2.1: edoc-1.0, erts-9.0, + kernel-8.0, stdlib-3.15, xmerl-1.3.7 + + + --------------------------------------------------------------------- + --- erl_interface-5.2 ----------------------------------------------- + --------------------------------------------------------------------- + + The erl_interface-5.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17883 Application(s): erl_interface + Related Id(s): ERIERL-724, PR-5601 + + Add --enable-ei-dynamic-lib configure option that will + make erl_interface also release a dynamic library + version of libei. + + + --- 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-12.3 ------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The erts-12.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-17822 Application(s): erts + + Fixed a bug in the x86 JIT that might cause floating + point instructions to wrongly throw an exception. + + + OTP-17838 Application(s): erts + Related Id(s): PR-5748 + + Preserve correct nodedown_reason if supervised + distribution controller processes exit with {shutdown, + Reason}. + + + OTP-17840 Application(s): erts, kernel + + Handling of send_timeout for gen_tcp has been corrected + so that the timeout is honored also when sending 0 + bytes. + + + OTP-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + *** HIGHLIGHT *** + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + OTP-17900 Application(s): erts + Related Id(s): GH-5667 + + Corrected the type specification of erlang:seq_trace/2. + + + OTP-17904 Application(s): erts + Related Id(s): ERIERL-757 + + Fix memory leak when tracing on running on a process + that only handle system tasks or non-message signals + (for example process_info requests). + + + --- Improvements and New Features --- + + OTP-17455 Application(s): erts, kernel + Related Id(s): GH-4852 + + *** HIGHLIGHT *** + + Add support for using socket:sockaddr_in() and + socket:sockaddr_in6() when using gen_sctp, gen_tcp and + gen_udp. This will make it possible to use Link Local + IPv6 addresses. + + + OTP-17718 Application(s): erts + Related Id(s): PR-5199 + + Show on_load failure reasons in embedded mode. + + + OTP-17891 Application(s): erts + Related Id(s): PR-5589 + + Compile date saved in the Erlang VM executable has been + removed. + + + OTP-17918 Application(s): erts, kernel + + Improve documentation for the dynamic node name + feature. + + + Full runtime dependencies of erts-12.3: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- inets-7.5.2 ----------------------------------------------------- + --------------------------------------------------------------------- + + The inets-7.5.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17962 Application(s): diameter, inets, megaco, snmp, stdlib + + The compilation time is no longer recorded in BEAM + files. There remained several undocumented functions + that attempted to retrieve compilation times. Those + have now been removed. + + + --- Improvements and New Features --- + + OTP-17931 Application(s): inets + Related Id(s): ERIERL-761 + + Documentation fix for inets:services_info/0, which now + describes that Info might be a Reason term() in case + when {error, Reason} is returned as service info. + + + Full runtime dependencies of inets-7.5.2: erts-6.0, kernel-3.0, + mnesia-4.12, runtime_tools-1.8.14, ssl-5.3.4, stdlib-3.5 + + + --------------------------------------------------------------------- + --- jinterface-1.12.2 ----------------------------------------------- + --------------------------------------------------------------------- + + The jinterface-1.12.2 application can be applied independently of + other applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17887 Application(s): jinterface + Related Id(s): ERIERL-750, PR-5640 + + Fix bug in OtpOutputStream.write_pid/4 and write_ref/3 + causing faulty encodig. Bug exists since OTP 23.0. + + + --------------------------------------------------------------------- + --- kernel-8.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + Note! The kernel-8.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-17840 Application(s): erts, kernel + + Handling of send_timeout for gen_tcp has been corrected + so that the timeout is honored also when sending 0 + bytes. + + + OTP-17843 Application(s): erts, kernel + Related Id(s): ERIERL-732, PR-5611 + + *** HIGHLIGHT *** + + By default global does not take any actions to restore + a fully connected network when connections are lost due + to network issues. This is 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. + + In order to prevent such issues, we have introduced a + prevent overlapping partitions fix which can be enabled + using the prevent_overlapping_partitions kernel(6) + parameter. When this fix has been enabled, global will + actively disconnect 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. + Note that this fix has to be enabled on all nodes in + the network in order to work properly. Since this quite + substantially changes the behavior, this fix is + currently disabled by default. Since you might get hard + to detect issues without this fix you are, however, + strongly advised to enable this fix in order to avoid + issues such as the ones described above. As of OTP 25 + this fix will become enabled by default. + + + OTP-17851 Application(s): kernel + + Fix bug where logger would crash when logging a report + including improper lists. + + + OTP-17902 Application(s): kernel + Related Id(s): GH-5402, PR-5670 + + Make erlang:set_cookie work for dynamic node names. + + + --- Improvements and New Features --- + + OTP-17455 Application(s): erts, kernel + Related Id(s): GH-4852 + + *** HIGHLIGHT *** + + Add support for using socket:sockaddr_in() and + socket:sockaddr_in6() when using gen_sctp, gen_tcp and + gen_udp. This will make it possible to use Link Local + IPv6 addresses. + + + OTP-17905 Application(s): kernel + Related Id(s): ERIERL-732, PR-5740 + + A net_tickintensity kernel parameter has been + introduced. It can be used to control the amount of + ticks during a net_ticktime period. + + A new net_kernel:start/2 function has also been + introduced in order to make it easier to add new + options. The use of net_kernel:start/1 has been + deprecated. + + + OTP-17918 Application(s): erts, kernel + + Improve documentation for the dynamic node name + feature. + + + Full runtime dependencies of kernel-8.3: crypto-5.0, erts-12.3, + sasl-3.0, stdlib-3.13 + + + --------------------------------------------------------------------- + --- megaco-4.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + The megaco-4.3 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17962 Application(s): diameter, inets, megaco, snmp, stdlib + + The compilation time is no longer recorded in BEAM + files. There remained several undocumented functions + that attempted to retrieve compilation times. Those + have now been removed. + + + --- Improvements and New Features --- + + OTP-17839 Application(s): megaco + + Update the performance and debug chapters of the megaco + user's guide. Also some updates to the meas tools. + + + Full runtime dependencies of megaco-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.20.2 --------------------------------------------------- + --------------------------------------------------------------------- + + The mnesia-4.20.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17656 Application(s): mnesia + Related Id(s): ERIERL-688 + + Reduce the number of locks taken during table copying, + should reduce the startup time on large systems. + + + Full runtime dependencies of mnesia-4.20.2: erts-9.0, kernel-5.3, + stdlib-3.4 + + + --------------------------------------------------------------------- + --- observer-2.11 --------------------------------------------------- + --------------------------------------------------------------------- + + Note! The observer-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 + dependencies have to be satisfied: + -- kernel-8.1 (first satisfied in OTP 24.1) + -- runtime_tools-1.17 (first satisfied in OTP 24.1) + + + --- Improvements and New Features --- + + OTP-17880 Application(s): observer + Related Id(s): PR-5557 + + Calculate the display width in etop, instead of + hard-coding it to 89 characters. + + + Full runtime dependencies of observer-2.11: erts-11.0, et-1.5, + kernel-8.1, runtime_tools-1.17, stdlib-3.13, wx-1.2 + + + --------------------------------------------------------------------- + --- public_key-1.12 ------------------------------------------------- + --------------------------------------------------------------------- + + The public_key-1.12 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Improvements and New Features --- + + OTP-17816 Application(s): public_key, ssl + Related Id(s): PR-5607 + + Support password fun for protected keyfiles in + ssl:connect function. + + + Full runtime dependencies of public_key-1.12: asn1-3.0, crypto-3.8, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.18 ---------------------------------------------- + --------------------------------------------------------------------- + + Note! The runtime_tools-1.18 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.1 (first satisfied in OTP 24.1) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17800 Application(s): runtime_tools + Related Id(s): PR-5425 + + Fixed bug in scheduler:utilization(Seconds) that would + leave the scheduler_wall_time system flag incorrectly + enabled. + + + --- Improvements and New Features --- + + OTP-17830 Application(s): runtime_tools + Related Id(s): GH-5425, PR-5444 + + Add scheduler:get_sample/0 and get_sample_all/0. Also + clarify scheduler module documentation about how it + depends on system flag scheduler_wall_time. + + + Full runtime dependencies of runtime_tools-1.18: erts-11.0, + kernel-8.1, mnesia-4.12, stdlib-3.13 + + + --------------------------------------------------------------------- + --- sasl-4.1.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The sasl-4.1.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17854 Application(s): sasl + Related Id(s): PR-5596 + + Fix bug in systools:make_script/1 documentation. + + + Full runtime dependencies of sasl-4.1.2: erts-10.2, kernel-5.3, + stdlib-3.4, tools-2.6.14 + + + --------------------------------------------------------------------- + --- snmp-5.12 ------------------------------------------------------- + --------------------------------------------------------------------- + + The snmp-5.12 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17962 Application(s): diameter, inets, megaco, snmp, stdlib + + The compilation time is no longer recorded in BEAM + files. There remained several undocumented functions + that attempted to retrieve compilation times. Those + have now been removed. + + + --- Improvements and New Features --- + + OTP-16559 Application(s): snmp + + [agent] Remove expectation of socket being a port. + + + Full runtime dependencies of snmp-5.12: crypto-3.3, erts-12.0, + kernel-8.0, mnesia-4.12, runtime_tools-1.8.14, stdlib-2.5 + + + --------------------------------------------------------------------- + --- ssh-4.13.2 ------------------------------------------------------ + --------------------------------------------------------------------- + + The ssh-4.13.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17847 Application(s): ssh, ssl + Related Id(s): GH-5548, PR-5574 + + Fix makefile dependency bugs. + + + OTP-17868 Application(s): ssh + Related Id(s): PR-5520 + + Fixed faulty OpenSSH decoding of Ed25519/Ed448 keys in + the OpenSSH format openssh_key_v1. + + + OTP-17912 Application(s): ssh + Related Id(s): GH-5680 + + Correction of ssh_file typing, specially for the + experimental openssh-key-v1 encoding. + + + OTP-17928 Application(s): ssh + Related Id(s): PR-5679 + + *** POTENTIAL INCOMPATIBILITY *** + + Improper tag for private ED keys when encoding with + ssh:encode/2. + + The tuple had ed_priv as first element, but should have + had ed_pri. This is now corrected. + + + --- Improvements and New Features --- + + OTP-17857 Application(s): ssh + Related Id(s): PR-5532 + + Add support for Ed25519/Ed448 SSH host keys in the RFC + 4716 format ("-----BEGIN EC PRIVATE KEY-----") + generated by for example openssl or via Erlang + functions (i.e. public_key:generate_key({namedCurve, + ed25519})). + + Ed25519 SSH host keys generated by ssh-keygen was, and + are still, supported. + + + Full runtime dependencies of ssh-4.13.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 -------------------------------------------------------- + --------------------------------------------------------------------- + + Note! The ssl-10.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: + -- public_key-1.11.3 (first satisfied in OTP 24.1.2) + + + --- Fixed Bugs and Malfunctions --- + + OTP-17759 Application(s): ssl + Related Id(s): GH-5367 + + Improved error handling. + + + OTP-17815 Application(s): ssl + Related Id(s): GH-5332 + + Before this change, net_kernel used with TLS + distribution might be leaking processes in case of + connectivity issues. + + + OTP-17847 Application(s): ssh, ssl + Related Id(s): GH-5548, PR-5574 + + Fix makefile dependency bugs. + + + OTP-17929 Application(s): ssl + Related Id(s): GH-5708 + + Make sure the TLS sender process handles explicit calls + to erlang:disconnect_node properly, avoiding potential + hanging problems in net_kernel. + + + --- Improvements and New Features --- + + OTP-15719 Application(s): ssl + + Add support for TLS-1.3 certificate_authorities + extension. And process certificate_authorities field in + pre-TLS-1.3 certificate requests. + + + OTP-17816 Application(s): public_key, ssl + Related Id(s): PR-5607 + + Support password fun for protected keyfiles in + ssl:connect function. + + + OTP-17903 Application(s): ssl + + Add in some cases earlier detection of possible DoS + attacks by malicious clients sending unexpected TLS + messages instead of the client hello. Note that such + attacks are already mitigated by providing a timeout + for the TLS handshake. + + + Full runtime dependencies of ssl-10.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.12 + + + --------------------------------------------------------------------- + --- stdlib-3.17.1 --------------------------------------------------- + --------------------------------------------------------------------- + + The stdlib-3.17.1 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17962 Application(s): diameter, inets, megaco, snmp, stdlib + + The compilation time is no longer recorded in BEAM + files. There remained several undocumented functions + that attempted to retrieve compilation times. Those + have now been removed. + + + Full runtime dependencies of stdlib-3.17.1: compiler-5.0, crypto-3.3, + erts-12.0, kernel-7.0, sasl-3.0 + + + --------------------------------------------------------------------- + --- wx-2.1.2 -------------------------------------------------------- + --------------------------------------------------------------------- + + The wx-2.1.2 application can be applied independently of other + applications on a full OTP 24 installation. + + --- Fixed Bugs and Malfunctions --- + + OTP-17947 Application(s): wx + + Removed the static_data option from wxImage creation + functions, as it was broken and could lead to crashes. + Now image data is always copied to wxWidgets as was the + default behavior. + + Removed some non working wxGridEvent event types, which + have there own events in newer wxWidgets versions, and + added a couple of event types that where missing in wx. + + + Full runtime dependencies of wx-2.1.2: erts-6.0, kernel-3.0, + stdlib-2.0 + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.0-rc1.README.txt b/release-notes/OTP-25.0-rc1.README.txt new file mode 100644 index 0000000..716a616 --- /dev/null +++ b/release-notes/OTP-25.0-rc1.README.txt @@ -0,0 +1,2206 @@ +Inital Release: OTP 25.0 +Git Tag: OTP-25.0 +Date: 2022-02-16 +Trouble Report Id: OTP-15991, 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-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-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-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-17909, OTP-17910, OTP-17911, + OTP-17920, OTP-17921, OTP-17923, OTP-17925, + OTP-17930, OTP-17935 +Seq num: ERIERL-590, ERIERL-663, ERIERL-760, ERL-1347, + GH-4492, GH-4673, GH-4784, GH-4819, GH-4853, + GH-4965, GH-4968, GH-4971, GH-5016, GH-5071, + GH-5093, GH-5094, GH-5140, GH-5204, GH-5214, + GH-5297, GH-5368, GH-5379, GH-5402, GH-5403, + GH-5513, GH-5617 +System: OTP +Release: 25 +Application: common_test-1.23, compiler-8.1, crypto-5.1, + debugger-5.3, dialyzer-5.0, edoc-1.2, + erl_docgen-1.3, erl_interface-5.2, erts-13.0, + eunit-2.7.1, inets-8.0, jinterface-1.13, + kernel-8.3, megaco-4.3, mnesia-4.21, + observer-2.11, odbc-2.14, parsetools-2.4, + public_key-1.12, runtime_tools-1.18, + sasl-4.2, snmp-5.12, ssh-4.14, ssl-10.7, + 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-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-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 + + 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 + + The JIT now does type-based optimizations based on type + information in the BEAM files. + + + OTP-17705 Application(s): compiler + Related Id(s): PR-5411 + + The maybe ... end construction has 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,maybe_expr} to + the compiler. (The exact option to use will change in + the next release candidate.) That option will not work + if given inside the module being compiled. We hope to + lift that restriction in the next release candidate. + + + 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-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. + + + --------------------------------------------------------------------- + --- 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-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. + + + --------------------------------------------------------------------- + --- common_test-1.23 ------------------------------------------------ + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + OTP-17881 Application(s): common_test + Related Id(s): PR-5581 + + Fix bug when running parallel testcases 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.3, + 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.1 ---------------------------------------------------- + --------------------------------------------------------------------- + + --- Fixed Bugs and Malfunctions --- + + 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. + + + --- 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 + + Add compile attribute -nifs() to empower compiler and + loader with information about which functions may be + overridden as NIFs by erlang:load_nif/2. + + + OTP-17504 Application(s): compiler, erts + Related Id(s): GH-4971 + + *** 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 + + *** HIGHLIGHT *** + + The JIT now does type-based optimizations based on type + information in the BEAM files. + + + 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 has 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,maybe_expr} to + the compiler. (The exact option to use will change in + the next release candidate.) That option will not work + if given inside the module being compiled. We hope to + lift that restriction in the next release candidate. + + + 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() + + In the shell, the expression correctly evaluates to 3. + In compiled code, it raised a {badmatch, 2} exception. + + + 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). + + + Full runtime dependencies of compiler-8.1: crypto-5.1, erts-13.0, + kernel-8.3, stdlib-4.0 + + + --------------------------------------------------------------------- + --- crypto-5.1 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- 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. + + + 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. + + + 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 + + + --------------------------------------------------------------------- + --- 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 -------------------------------------------------- + --------------------------------------------------------------------- + + --- 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.2 ----------------------------------------------- + --------------------------------------------------------------------- + + --- 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_connet_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. + + + --- 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-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 + + Add compile attribute -nifs() to empower compiler and + loader with information about which functions may be + overridden as NIFs by erlang:load_nif/2. + + + 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 + + *** 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 + + *** HIGHLIGHT *** + + The JIT now does type-based optimizations based on type + information in the BEAM files. + + + 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 startup + 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. + + + Full runtime dependencies of erts-13.0: kernel-8.3, sasl-3.3, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- 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. + + + --- 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. + + + 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. + + + --------------------------------------------------------------------- + --- kernel-8.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- 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. + + + --- 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. + + + 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-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. + + + Full runtime dependencies of kernel-8.3: crypto-5.0, erts-13.0, + sasl-3.0, stdlib-4.0 + + + --------------------------------------------------------------------- + --- megaco-4.3 ------------------------------------------------------ + --------------------------------------------------------------------- + + --- 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.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 ----------------------------------------------------- + --------------------------------------------------------------------- + + --- 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.11 --------------------------------------------------- + --------------------------------------------------------------------- + + --- 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.11: erts-11.0, et-1.5, + kernel-8.1, runtime_tools-1.17, 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.12 ------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + OTP-17890 Application(s): public_key, ssl + + Allow key file passwords to be input as a single + binary, that is we change the datatype 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.12: asn1-3.0, crypto-4.6, + erts-6.0, kernel-3.0, stdlib-3.5 + + + --------------------------------------------------------------------- + --- runtime_tools-1.18 ---------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + Full runtime dependencies of runtime_tools-1.18: 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.12 ------------------------------------------------------- + --------------------------------------------------------------------- + + --- 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.12: 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. + + + 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.7 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + 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 datatype to be the more + for the purpose logical data type iodata() instead of + string(). + + + Full runtime dependencies of ssl-10.7: crypto-5.0, erts-10.0, + inets-5.10.7, kernel-8.3, 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-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. + + + --- 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-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-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. + + + Full runtime dependencies of stdlib-4.0: compiler-5.0, crypto-4.5, + erts-12.0, kernel-8.3, 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). + + + Full runtime dependencies of syntax_tools-3.0: compiler-7.0, + erts-9.0, kernel-5.0, stdlib-3.4 + + + --------------------------------------------------------------------- + --- 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. + + + Full runtime dependencies of wx-2.2: erts-6.0, kernel-3.0, + stdlib-3.13 + + + --------------------------------------------------------------------- + --- 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 + + + --------------------------------------------------------------------- + --- Thanks to ------------------------------------------------------- + --------------------------------------------------------------------- + + Anatolii, Andrew Bennett, Anton Thomasson, Cheng Zhe, Danil Zagoskin, + David Buckley, Dominic Letz, Eksperimental, Frank Hunleth, Fred + Hebert, Frej Drejhammar, Garry Hill, Gustaw Lippa, Hakan Nilsson, + Harry Lawrence, Holger Weiß, Ilya Klyuchnikov, Jean-Sébastien Pédron, + Jon Carstens, José Valim, Justin Davis, Jérôme de Bretagne, Kaleb + Luedtke, Kian-Meng Ang, Kian-Meng, Ang, Leo Liu, Loïc Hoguin, Luke + Bakken, Mackenzie Morgan, Maintenance App, Marc-André Lafortune, + Marcel Lanz, Maria Scott, Maria-12648430, Mark McElroy, Matteo + Brancaleoni, Matteo Cafasso, Max Heiber, Maxim Fedorov, Maxwell + Elliot Heiber, Michał Muskała, Mikael Pettersson, Per Andersson, + Péter Gömöri, Radek Szymczyszyn, Sidharth Kshatriya, Thomas Depierre, + Tom Davies, Tomas Abrahamsson, Wojtek Mach, Yao Bao, Zeyu Zhang, Zhe + Cheng, bibajz, c-blair, gearnode, ilya-klyuchnikov, juhlig, kang, + massivefermion, nixxquality, obi458, radrow, skynet1, soulna, vk, + vkatsuba, Łukasz Niemier + + + --------------------------------------------------------------------- + --------------------------------------------------------------------- + --------------------------------------------------------------------- + diff --git a/release-notes/OTP-25.0-rc2.README.txt b/release-notes/OTP-25.0-rc2.README.txt new file mode 100644 index 0000000..b61f542 --- /dev/null +++ b/release-notes/OTP-25.0-rc2.README.txt @@ -0,0 +1,2708 @@ +Inital Release: OTP 25.0 +Git Tag: OTP-25.0 +Date: 2022-03-24 +Trouble Report Id: OTP-15991, OTP-16607, OTP-16644, 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-17701, + 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-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-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-17950, OTP-17951, + OTP-17953, OTP-17958, OTP-17961, OTP-17964, + OTP-17965, OTP-17968, OTP-17969, OTP-17970, + OTP-17974, OTP-17976, OTP-17977, OTP-17980, + OTP-17984, OTP-17985, OTP-17987, OTP-17988 +Seq num: ERIERL-590, ERIERL-663, ERIERL-760, ERL-1347, + GH-2375, GH-2690, GH-4492, GH-4673, 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-5297, GH-5368, + GH-5379, GH-5402, GH-5403, GH-5463, GH-5513, + GH-5606, GH-5617, GH-5655, GH-5683, GH-5728, + GH-5781 +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-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(enable, maybe_expr). + 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-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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + --------------------------------------------------------------------- + --- 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 infomation 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 maitntainer 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-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 testcases 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-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. + + + --- 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(enable, maybe_expr). + inside the module. + + + 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-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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + 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-17984 Application(s): crypto + + Remove faulty types run_time_error() and + descriptive_error(). + + + --- Improvements and New Features --- + + OTP-16644 Application(s): crypto + Related Id(s): OTP-16282 + + The deprecated low-level RSA API is not used when + crypto is compiled with OpenSSL 3.0. + + + 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-17701 Application(s): crypto + Related Id(s): OTP-16282 + + The deprecated low-level DSA API is not used when + crypto is compiled with OpenSSL 3.0. + + + 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 infomation 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 maitntainer 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 + + + 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. + + + 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 -------------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + OTP-17987 Application(s): erl_interface + Related Id(s): GH-5781, PR-5787 + + Avoid attempt build dynamic libs if config option + --enable-ei-dynamic-lib is not given. + + + --- 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_connet_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-17970 Application(s): erts + Related Id(s): PR-5762 + + Let EPMD tolerate failure when binding to IPv4/IPv6 + loopback intefaces in addition to user-supplied + addresses via ERL_EPMD_ADDRESS or the -address option. + This can happen, for example, if the host system has + ipv6 disabled via the disable_ipv6 sysctl. + + + --- 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-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 startup + 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-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. + + + 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. + + + --- 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. + + + 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. + + + --- 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. + + + 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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + 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 --------------------------------------------------- + --------------------------------------------------------------------- + + --- 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.17, 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-17890 Application(s): public_key, ssl + + Allow key file passwords to be input as a single + binary, that is we change the datatype 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 ---------------------------------------------- + --------------------------------------------------------------------- + + --- 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. + + + 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 -------------------------------------------------------- + --------------------------------------------------------------------- + + --- Improvements and New Features --- + + 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 datatype to be the more + for the purpose logical data type iodata() instead of + string(). + + + 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. + + + --- 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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + 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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + 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. + + + 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.0-rc3.README.txt b/release-notes/OTP-25.0-rc3.README.txt new file mode 100644 index 0000000..3d65861 --- /dev/null +++ b/release-notes/OTP-25.0-rc3.README.txt @@ -0,0 +1,2981 @@ +Inital Release: OTP 25.0 +Git Tag: OTP-25.0 +Date: 2022-04-13 +Trouble Report Id: OTP-15991, OTP-15993, OTP-16464, OTP-16607, + OTP-16643, OTP-16644, 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-17701, OTP-17704, + 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-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-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-17970, 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-18008, OTP-18009, OTP-18011, + OTP-18012, OTP-18014, OTP-18015, OTP-18020, + OTP-18027, OTP-18033, OTP-18034, OTP-18035, + OTP-18036, OTP-18038, OTP-18039, OTP-18047 +Seq num: ERIERL-590, ERIERL-663, ERIERL-760, 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-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-5780, + GH-5782, GH-5801, GH-5828 +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-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(enable, maybe_expr). + 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-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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + OTP-18039 Application(s): compiler + + Change format of feature options and directives for + better consistency. Options to erlc and the + -compile(..) directive now has the format {feature, + feature-name, enable | disable}. The -feature(..) now + has the format -feature(feature-name, enable | + disable). + + + --------------------------------------------------------------------- + --- 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 infomation 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 maitntainer 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 testcases 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-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. + + + --- 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(enable, maybe_expr). + inside the module. + + + 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-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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + OTP-18039 Application(s): compiler + + *** HIGHLIGHT *** + + Change format of feature options and directives for + better consistency. Options to erlc and the + -compile(..) directive now has the format {feature, + feature-name, enable | disable}. The -feature(..) now + has the format -feature(feature-name, enable | + disable). + + + 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-17984 Application(s): crypto + + Remove faulty types run_time_error() and + descriptive_error(). + + + --- Improvements and New Features --- + + OTP-16643 Application(s): crypto + Related Id(s): OTP-16282 + + The deprecated low-level DH API is not used when crypto + is compiled with OpenSSL 3.0. + + + OTP-16644 Application(s): crypto + Related Id(s): OTP-16282 + + The deprecated low-level RSA API is not used when + crypto is compiled with OpenSSL 3.0. + + + 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-17701 Application(s): crypto + Related Id(s): OTP-16282 + + The deprecated low-level DSA API is not used when + crypto is compiled with OpenSSL 3.0. + + + OTP-17704 Application(s): crypto + Related Id(s): OTP-16282 + + The deprecated BN_pseudo_rand_range is not used when + crypto is compiled with OpenSSL 3.0. + + + 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 infomation 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 maitntainer 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 + + + 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 -------------------------------------------------- + --------------------------------------------------------------------- + + --- 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_connet_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-17970 Application(s): erts + Related Id(s): PR-5762 + + Let EPMD tolerate failure when binding to IPv4/IPv6 + loopback intefaces in addition to user-supplied + addresses via ERL_EPMD_ADDRESS or the -address option. + This can happen, for example, if the host system has + ipv6 disabled via the disable_ipv6 sysctl. + + + OTP-18020 Application(s): erts, kernel + + [socket] Encode of sockaddr has been improved. + + + OTP-18027 Application(s): erts + + Fixed a bug in binary_to_term/1, + enif_make_map_from_arrays, erl_drv_send_term, and + Erlang distribution that could crash the emulator. + + + 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. + + + --- 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 startup + 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-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. + + + --- 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. + + + 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 + + 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 modul's timers. + + + OTP-18003 Application(s): kernel + Related Id(s): PR-5771 + + Fix the metadata in log events generated by logger on + failure to not contain the original log event's + metadata. + + + 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. + + + --- 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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + 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-17890 Application(s): public_key, ssl + + Allow key file passwords to be input as a single + binary, that is we change the datatype 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. + + + 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-18014 Application(s): ssl + + Now also accepts the signature_algs_cert option in + TLS-1.2 configuration. + + + --- Improvements and New Features --- + + 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 extensions. + + + 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 datatype 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. + + + 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. + + + --- 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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + 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 + + Two ancient well-known PRNG:s have been added to the + rand module: mcg35 and lcg35. These are intended for + applications that need really fast pseudo-random + numbers and are not sensitive to lesser quality ones. + + 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 selectable features as described in + EEP-60. Features can be enabled/disabled during + compilation with options (ordinary and +term) to erlc + as well as with directives 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. + + + 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.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 diff --git a/update.sh b/update.sh new file mode 100755 index 0000000..9138a8e --- /dev/null +++ b/update.sh @@ -0,0 +1,30 @@ +#!/bin/sh + +if [ -z "$1" ] +then + echo "Missing argument" 1>&2 + exit 1 +fi + +NEW=$1 +VAR=`echo $NEW | sed "s/^\([^.]*\).*/\1/"` +OLD=`grep -o "^$VAR := .*$" -- early-plugins.mk | sed 's/.* \([a-zA-Z0-9.-]*$\)$/\1/'` + +echo Variable: $VAR +echo Old version: $OLD +echo New version: $NEW + +sed "s/\(^$VAR :=.*\) [a-zA-Z0-9.-]*$/\1 $NEW/" -- early-plugins.mk > early-plugins.1.tmp +sed "/^$VAR-DROPPED := .*\\\\$/ { : again; /\\\\$/ { N; b again }; s/$/ $OLD/ }" -- early-plugins.1.tmp > early-plugins.2.tmp + +rm early-plugins.1.tmp +mv early-plugins.2.tmp early-plugins.mk +wget https://erlang.org/download/$NEW.README -O release-notes/$NEW.README.txt + +git add early-plugins.mk release-notes/$NEW.README.txt +git diff --cached +echo Press Enter to commit and push, Ctrl+C to abort, Ctrl+Z to pause +read + +git commit -m "$NEW" +git push upstream master |