From 940a3b33e743f1df0dada8d2343190be4c2c85a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Tue, 10 Feb 2026 14:04:21 +0100 Subject: [PATCH 01/11] otp: Include file.hrl using -I instead of include lib We do this in order to be able to use a OTP release where file info is a tuple records to compile this version is is going to use native-records. --- erts/preloaded/src/erl_prim_loader.erl | 4 ++-- erts/preloaded/src/init.erl | 2 +- erts/preloaded/src/prim_zip.erl | 2 +- lib/asn1/src/asn1ct.erl | 2 +- lib/common_test/src/ct_cover.erl | 2 +- lib/common_test/src/ct_logs.erl | 2 +- lib/common_test/src/ct_make.erl | 2 +- lib/common_test/src/ct_release_test.erl | 2 +- lib/common_test/src/test_server.erl | 2 +- lib/common_test/src/test_server_ctrl.erl | 2 +- lib/debugger/src/dbg_wx_interpret.erl | 2 +- lib/debugger/src/dbg_wx_mon.erl | 2 +- lib/debugger/src/dbg_wx_settings.erl | 2 +- lib/debugger/src/int.erl | 2 +- lib/dialyzer/src/dialyzer_cl.erl | 2 +- lib/dialyzer/src/dialyzer_incremental.erl | 2 +- lib/eunit/src/eunit_data.erl | 2 +- lib/ftp/src/ftp_progress.erl | 2 +- lib/kernel/src/auth.erl | 2 +- lib/kernel/src/code.erl | 2 +- lib/kernel/src/code_server.erl | 2 +- lib/kernel/src/disk_log.hrl | 2 +- lib/kernel/src/inet_db.erl | 2 +- lib/kernel/src/inet_parse.erl | 2 +- lib/kernel/src/logger_std_h.erl | 2 +- lib/mnesia/src/mnesia_backup.erl | 2 +- lib/mnesia/src/mnesia_dumper.erl | 2 +- lib/mnesia/src/mnesia_lib.erl | 2 +- lib/mnesia/src/mnesia_schema.erl | 2 +- lib/observer/src/cdv_wx.erl | 2 +- lib/observer/src/crashdump_viewer.erl | 2 +- lib/observer/src/observer_wx.erl | 2 +- lib/observer/src/ttb.erl | 2 +- lib/public_key/src/pubkey_os_cacerts.erl | 2 +- lib/reltool/src/reltool_target.erl | 2 +- lib/reltool/src/reltool_utils.erl | 2 +- lib/sasl/src/release_handler.erl | 2 +- lib/sasl/src/systools_lib.erl | 2 +- lib/sasl/src/systools_make.erl | 2 +- lib/ssh/src/ssh.erl | 2 +- lib/ssh/src/ssh_file.erl | 2 +- lib/ssh/src/ssh_options.erl | 2 +- lib/ssh/src/ssh_sftp.erl | 2 +- lib/ssh/src/ssh_sftpd.erl | 2 +- lib/ssl/src/ssl_manager.erl | 2 +- lib/ssl/src/ssl_pem_cache.erl | 2 +- lib/ssl/src/ssl_pkix_db.erl | 2 +- lib/stdlib/src/epp.erl | 2 +- lib/stdlib/src/erl_tar.erl | 2 +- lib/stdlib/src/file_sorter.erl | 2 +- lib/stdlib/src/filelib.erl | 2 +- lib/stdlib/src/filename.erl | 2 +- lib/stdlib/src/shell.erl | 4 ++-- lib/tftp/src/tftp_file.erl | 2 +- lib/tools/src/make.erl | 2 +- lib/tools/src/xref_utils.erl | 2 +- lib/xmerl/src/xmerl_eventp.erl | 2 +- lib/xmerl/src/xmerl_scan.erl | 2 +- lib/xmerl/src/xmerl_xsd.erl | 2 +- 59 files changed, 61 insertions(+), 61 deletions(-) diff --git a/erts/preloaded/src/erl_prim_loader.erl b/erts/preloaded/src/erl_prim_loader.erl index ac6f0e66b5ff..a642f772778e 100644 --- a/erts/preloaded/src/erl_prim_loader.erl +++ b/erts/preloaded/src/erl_prim_loader.erl @@ -96,7 +96,7 @@ The `erl_prim_loader` module interprets the following command-line flags: %% Used by init and the code server -export([get_modules/2, is_basename/1]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -type host() :: atom(). @@ -305,7 +305,7 @@ record [`file_info`](`t:file:file_info/0`), defined in the Kernel include file function is called: ```erlang --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). ``` For more information about the record see `file:read_file_info/2`. diff --git a/erts/preloaded/src/init.erl b/erts/preloaded/src/init.erl index cb23a84519ce..b8f5567beb6a 100644 --- a/erts/preloaded/src/init.erl +++ b/erts/preloaded/src/init.erl @@ -267,7 +267,7 @@ error objfile_extension/0, archive_extension/0,code_path_choice/0, get_configfd/1, set_configfd/2]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -doc "Current status of init.". -type internal_status() :: 'starting' | 'started' | 'stopping'. diff --git a/erts/preloaded/src/prim_zip.erl b/erts/preloaded/src/prim_zip.erl index 6f7691c60e6e..8cd0e48be45b 100644 --- a/erts/preloaded/src/prim_zip.erl +++ b/erts/preloaded/src/prim_zip.erl @@ -37,7 +37,7 @@ -export([splitter/3]). %% includes --include_lib("kernel/include/file.hrl"). % #file_info +-include("file.hrl"). % #file_info -include_lib("stdlib/include/zip.hrl"). % #zip_file, #zip_comment -include("zip_internal.hrl"). % #cd_file_header etc diff --git a/lib/asn1/src/asn1ct.erl b/lib/asn1/src/asn1ct.erl index 1301572e3494..ddf2e2a3c79d 100644 --- a/lib/asn1/src/asn1ct.erl +++ b/lib/asn1/src/asn1ct.erl @@ -72,7 +72,7 @@ ASN.1 data (encoded as `BER` or `PER`). -include("asn1_records.hrl"). -include_lib("stdlib/include/erl_compile.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -ifndef(vsn). -define(vsn,"0.0.1"). diff --git a/lib/common_test/src/ct_cover.erl b/lib/common_test/src/ct_cover.erl index 77379dc37e60..4bdf7bab2adb 100644 --- a/lib/common_test/src/ct_cover.erl +++ b/lib/common_test/src/ct_cover.erl @@ -31,7 +31,7 @@ This module exports help functions for performing code coverage analysis. -include("ct_util.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -doc """ Adds nodes to current cover test. Notice that this only works if cover support diff --git a/lib/common_test/src/ct_logs.erl b/lib/common_test/src/ct_logs.erl index 4dbb970936b5..0212c2091b1e 100644 --- a/lib/common_test/src/ct_logs.erl +++ b/lib/common_test/src/ct_logs.erl @@ -57,7 +57,7 @@ -include("ct.hrl"). -include("ct_event.hrl"). -include("ct_util.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(suitelog_name,"suite.log"). -define(run_summary, "suite.summary"). diff --git a/lib/common_test/src/ct_make.erl b/lib/common_test/src/ct_make.erl index 60fe988a0dc4..5fd15be40e25 100644 --- a/lib/common_test/src/ct_make.erl +++ b/lib/common_test/src/ct_make.erl @@ -34,7 +34,7 @@ -export([all/0,all/1,files/1,files/2]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(MakeOpts,[noexec,load,netload,noload]). diff --git a/lib/common_test/src/ct_release_test.erl b/lib/common_test/src/ct_release_test.erl index 109a1b514471..9ec78f87a847 100644 --- a/lib/common_test/src/ct_release_test.erl +++ b/lib/common_test/src/ct_release_test.erl @@ -122,7 +122,7 @@ -export([init/1, upgrade/4, cleanup/1, get_app_vsns/2, get_appup/2]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %%----------------------------------------------------------------- -define(testnode, 'ct_release_test-upgrade'). diff --git a/lib/common_test/src/test_server.erl b/lib/common_test/src/test_server.erl index 8ec234e8fcd5..980e9b64a154 100644 --- a/lib/common_test/src/test_server.erl +++ b/lib/common_test/src/test_server.erl @@ -58,7 +58,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -include("test_server_internal.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). init_target_info() -> diff --git a/lib/common_test/src/test_server_ctrl.erl b/lib/common_test/src/test_server_ctrl.erl index 40612575b9c4..f7a9d484dd58 100644 --- a/lib/common_test/src/test_server_ctrl.erl +++ b/lib/common_test/src/test_server_ctrl.erl @@ -84,7 +84,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -include("test_server_internal.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(suite_ext, "_SUITE"). -define(log_ext, ".log.html"). -define(src_listing_ext, ".src.html"). diff --git a/lib/debugger/src/dbg_wx_interpret.erl b/lib/debugger/src/dbg_wx_interpret.erl index 320648f02b8d..549228d94e42 100644 --- a/lib/debugger/src/dbg_wx_interpret.erl +++ b/lib/debugger/src/dbg_wx_interpret.erl @@ -24,7 +24,7 @@ -module(dbg_wx_interpret). -moduledoc false. --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("wx/include/wx.hrl"). %% External exports diff --git a/lib/debugger/src/dbg_wx_mon.erl b/lib/debugger/src/dbg_wx_mon.erl index 943a89b3ebfb..0d4b317395d0 100644 --- a/lib/debugger/src/dbg_wx_mon.erl +++ b/lib/debugger/src/dbg_wx_mon.erl @@ -24,7 +24,7 @@ -module(dbg_wx_mon). -moduledoc false. --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("wx/include/wx.hrl"). %% External exports diff --git a/lib/debugger/src/dbg_wx_settings.erl b/lib/debugger/src/dbg_wx_settings.erl index 5656ce3ab955..b756e090c681 100644 --- a/lib/debugger/src/dbg_wx_settings.erl +++ b/lib/debugger/src/dbg_wx_settings.erl @@ -24,7 +24,7 @@ -module(dbg_wx_settings). -moduledoc false. --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("wx/include/wx.hrl"). %% External exports diff --git a/lib/debugger/src/int.erl b/lib/debugger/src/int.erl index ac4f43debfab..230e09bee861 100644 --- a/lib/debugger/src/int.erl +++ b/lib/debugger/src/int.erl @@ -96,7 +96,7 @@ in the User's Guide for Debugger. %% External export only to be used by error_handler -export([eval/3]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %%==Erlang Interpreter================================================ %% diff --git a/lib/dialyzer/src/dialyzer_cl.erl b/lib/dialyzer/src/dialyzer_cl.erl index 839c526076cc..908ce4d2a9b7 100644 --- a/lib/dialyzer/src/dialyzer_cl.erl +++ b/lib/dialyzer/src/dialyzer_cl.erl @@ -38,7 +38,7 @@ start_report_modules_changed_and_analyzed/1]). -include("dialyzer.hrl"). --include_lib("kernel/include/file.hrl"). % needed for #file_info{} +-include("file.hrl"). % needed for #file_info{} -record(cl_state, {backend_pid :: pid() | 'undefined', diff --git a/lib/dialyzer/src/dialyzer_incremental.erl b/lib/dialyzer/src/dialyzer_incremental.erl index 5ad81e44fc2e..013619398946 100644 --- a/lib/dialyzer/src/dialyzer_incremental.erl +++ b/lib/dialyzer/src/dialyzer_incremental.erl @@ -26,7 +26,7 @@ -export([start/1, start_report_modules_analyzed/1, start_report_modules_changed_and_analyzed/1]). -include("dialyzer.hrl"). --include_lib("kernel/include/file.hrl"). % needed for #file_info{} +-include("file.hrl"). % needed for #file_info{} -record(incremental_state, {backend_pid :: pid() | 'undefined', diff --git a/lib/eunit/src/eunit_data.erl b/lib/eunit/src/eunit_data.erl index e940bf89e4ce..eb4f1312e9f7 100644 --- a/lib/eunit/src/eunit_data.erl +++ b/lib/eunit/src/eunit_data.erl @@ -37,7 +37,7 @@ -include("eunit.hrl"). -include("eunit_internal.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -export([iter_init/3, iter_next/1, iter_prev/1, iter_id/1, enter_context/3, get_module_tests/2]). diff --git a/lib/ftp/src/ftp_progress.erl b/lib/ftp/src/ftp_progress.erl index 2207bb7da5ca..585cc684ff4b 100644 --- a/lib/ftp/src/ftp_progress.erl +++ b/lib/ftp/src/ftp_progress.erl @@ -36,7 +36,7 @@ %% Spawn export -export([init/1]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -record(progress, { file :: string() | 'undefined', diff --git a/lib/kernel/src/auth.erl b/lib/kernel/src/auth.erl index a0a81f09a1db..9e128b9f4b89 100644 --- a/lib/kernel/src/auth.erl +++ b/lib/kernel/src/auth.erl @@ -61,7 +61,7 @@ Manual. }). -type state() :: #state{}. --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %%---------------------------------------------------------------------- %% Exported functions diff --git a/lib/kernel/src/code.erl b/lib/kernel/src/code.erl index cd06a6da1196..71fccb5273f9 100644 --- a/lib/kernel/src/code.erl +++ b/lib/kernel/src/code.erl @@ -416,7 +416,7 @@ common reasons. -export_type([load_error_rsn/0, load_ret/0]). -export_type([prepared_code/0]). -export_type([module_status/0]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -export_type([coverage_mode/0]). -type coverage_mode() :: 'none' | 'function' | 'function_counters' | diff --git a/lib/kernel/src/code_server.erl b/lib/kernel/src/code_server.erl index 979c490b7ebc..a9c8d4b95870 100644 --- a/lib/kernel/src/code_server.erl +++ b/lib/kernel/src/code_server.erl @@ -33,7 +33,7 @@ error_msg/2, info_msg/2 ]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("stdlib/include/ms_transform.hrl"). -import(lists, [foreach/2]). diff --git a/lib/kernel/src/disk_log.hrl b/lib/kernel/src/disk_log.hrl index cea8823fc651..34dc4ba51bd1 100644 --- a/lib/kernel/src/disk_log.hrl +++ b/lib/kernel/src/disk_log.hrl @@ -51,7 +51,7 @@ %% Needed for the definition of #file_info{} %% Must use include_lib() so that we always can be sure to find %% file.hrl. A relative path will not work in an installed system. --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %%------------------------------------------------------------------------ %% Types -- alphabetically diff --git a/lib/kernel/src/inet_db.erl b/lib/kernel/src/inet_db.erl index bd718635f319..7aa72f6dde09 100644 --- a/lib/kernel/src/inet_db.erl +++ b/lib/kernel/src/inet_db.erl @@ -83,7 +83,7 @@ -define(dbg(Fmd, Args), ok). -endif. --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %% gen_server callbacks -export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2]). diff --git a/lib/kernel/src/inet_parse.erl b/lib/kernel/src/inet_parse.erl index 557668760ddc..3041721737cc 100644 --- a/lib/kernel/src/inet_parse.erl +++ b/lib/kernel/src/inet_parse.erl @@ -49,7 +49,7 @@ -import(lists, [reverse/1]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include("inet_int.hrl"). %% -------------------------------------------------------------------------- diff --git a/lib/kernel/src/logger_std_h.erl b/lib/kernel/src/logger_std_h.erl index 647810a66368..c8fe2c2529d4 100644 --- a/lib/kernel/src/logger_std_h.erl +++ b/lib/kernel/src/logger_std_h.erl @@ -176,7 +176,7 @@ startup is found in the `m:logger_disk_log_h` manual. -include("logger_internal.hrl"). -include("logger_h_common.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %% API -export([filesync/1]). diff --git a/lib/mnesia/src/mnesia_backup.erl b/lib/mnesia/src/mnesia_backup.erl index 92de5e1d3ccd..3fe90c7029d4 100644 --- a/lib/mnesia/src/mnesia_backup.erl +++ b/lib/mnesia/src/mnesia_backup.erl @@ -56,7 +56,7 @@ -module(mnesia_backup). -moduledoc false. --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -export([ %% Write access diff --git a/lib/mnesia/src/mnesia_dumper.erl b/lib/mnesia/src/mnesia_dumper.erl index cf8c2eb16311..32880231c936 100644 --- a/lib/mnesia/src/mnesia_dumper.erl +++ b/lib/mnesia/src/mnesia_dumper.erl @@ -53,7 +53,7 @@ -export([regulator_init/1]). -include("mnesia.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -import(mnesia_lib, [fatal/2, dbg_out/2]). diff --git a/lib/mnesia/src/mnesia_lib.erl b/lib/mnesia/src/mnesia_lib.erl index 1c7b0ef29010..8bccff4a2a08 100644 --- a/lib/mnesia/src/mnesia_lib.erl +++ b/lib/mnesia/src/mnesia_lib.erl @@ -28,7 +28,7 @@ -moduledoc false. -include("mnesia.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -export([core_file/0]). diff --git a/lib/mnesia/src/mnesia_schema.erl b/lib/mnesia/src/mnesia_schema.erl index 03f64555b430..6b516e5b94c9 100644 --- a/lib/mnesia/src/mnesia_schema.erl +++ b/lib/mnesia/src/mnesia_schema.erl @@ -129,7 +129,7 @@ do_change_table_copy_type/3]). -include("mnesia.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -import(mnesia_lib, [set/2, del/2, verbose/2, dbg_out/2]). diff --git a/lib/observer/src/cdv_wx.erl b/lib/observer/src/cdv_wx.erl index 820a2bc87fc3..0f3fa253b983 100644 --- a/lib/observer/src/cdv_wx.erl +++ b/lib/observer/src/cdv_wx.erl @@ -31,7 +31,7 @@ %% Includes -include_lib("wx/include/wx.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include("observer_defs.hrl"). diff --git a/lib/observer/src/crashdump_viewer.erl b/lib/observer/src/crashdump_viewer.erl index 9b4eb514db8e..f7d318039c99 100644 --- a/lib/observer/src/crashdump_viewer.erl +++ b/lib/observer/src/crashdump_viewer.erl @@ -104,7 +104,7 @@ For details about how to get started with the Crashdump Viewer, see the -export([debug/1,stop_debug/0]). -include("crashdump_viewer.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("stdlib/include/ms_transform.hrl"). -define(SERVER, crashdump_viewer_server). diff --git a/lib/observer/src/observer_wx.erl b/lib/observer/src/observer_wx.erl index a16620a4e556..e816d229a7d4 100644 --- a/lib/observer/src/observer_wx.erl +++ b/lib/observer/src/observer_wx.erl @@ -33,7 +33,7 @@ %% Includes -include_lib("wx/include/wx.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include("observer_defs.hrl"). diff --git a/lib/observer/src/ttb.erl b/lib/observer/src/ttb.erl index 855f162d8040..4fcf8dba2c08 100644 --- a/lib/observer/src/ttb.erl +++ b/lib/observer/src/ttb.erl @@ -47,7 +47,7 @@ parallel. %% For debugging -export([dump_ti/1]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(meta_time,5000). -define(fetch_time, 10000). -define(history_table,ttb_history_table). diff --git a/lib/public_key/src/pubkey_os_cacerts.erl b/lib/public_key/src/pubkey_os_cacerts.erl index e0b15810d9a5..9abb117e107d 100644 --- a/lib/public_key/src/pubkey_os_cacerts.erl +++ b/lib/public_key/src/pubkey_os_cacerts.erl @@ -26,7 +26,7 @@ -moduledoc false. -include("public_key.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("kernel/include/logger.hrl"). -export([load/0, load/1, get/0, clear/0, format_error/2]). diff --git a/lib/reltool/src/reltool_target.erl b/lib/reltool/src/reltool_target.erl index 5ffe11724e21..3f96d8811639 100644 --- a/lib/reltool/src/reltool_target.erl +++ b/lib/reltool/src/reltool_target.erl @@ -37,7 +37,7 @@ ]). -include("reltool.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %% Hardcoded internals about the kernel application diff --git a/lib/reltool/src/reltool_utils.erl b/lib/reltool/src/reltool_utils.erl index 210abf91f945..62b1233fd6d8 100644 --- a/lib/reltool/src/reltool_utils.erl +++ b/lib/reltool/src/reltool_utils.erl @@ -53,7 +53,7 @@ %% For testing -export([erl_libs/2]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("wx/include/wx.hrl"). -include("reltool.hrl"). diff --git a/lib/sasl/src/release_handler.erl b/lib/sasl/src/release_handler.erl index f64f07f2a79d..cb53d901f74d 100644 --- a/lib/sasl/src/release_handler.erl +++ b/lib/sasl/src/release_handler.erl @@ -219,7 +219,7 @@ release_handler does. """. -behaviour(gen_server). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %% External exports -export([start_link/0, diff --git a/lib/sasl/src/systools_lib.erl b/lib/sasl/src/systools_lib.erl index 10c369a0fe70..c798e5fec8a6 100644 --- a/lib/sasl/src/systools_lib.erl +++ b/lib/sasl/src/systools_lib.erl @@ -30,7 +30,7 @@ -export([file_term2binary/2, read_term/1, read_term_from_stream/2, get_dirs/1, get_path/1, werror/2]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %% reads a single term form a file - convert it to binary and %% dump it in a file diff --git a/lib/sasl/src/systools_make.erl b/lib/sasl/src/systools_make.erl index 6607f5fc79b1..299f6d6d56da 100644 --- a/lib/sasl/src/systools_make.erl +++ b/lib/sasl/src/systools_make.erl @@ -42,7 +42,7 @@ -include("systools.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(XREF_SERVER, systools_make). diff --git a/lib/ssh/src/ssh.erl b/lib/ssh/src/ssh.erl index 813bfb56ffea..9183dc65ab2e 100644 --- a/lib/ssh/src/ssh.erl +++ b/lib/ssh/src/ssh.erl @@ -137,7 +137,7 @@ The directory could be changed with the option -include("ssh.hrl"). -include("ssh_connect.hrl"). -include_lib("public_key/include/public_key.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("kernel/include/inet.hrl"). -export([start/0, start/1, stop/0, diff --git a/lib/ssh/src/ssh_file.erl b/lib/ssh/src/ssh_file.erl index b7cb345774ef..0e0dcf0898b0 100644 --- a/lib/ssh/src/ssh_file.erl +++ b/lib/ssh/src/ssh_file.erl @@ -173,7 +173,7 @@ Clients uses all files stored in the [USERDIR](`m:ssh_file#USERDIR`) directory. -moduledoc(#{since => "OTP 21.2"}). -include_lib("public_key/include/public_key.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include("ssh.hrl"). diff --git a/lib/ssh/src/ssh_options.erl b/lib/ssh/src/ssh_options.erl index 4f32e320ef95..3420b1014643 100644 --- a/lib/ssh/src/ssh_options.erl +++ b/lib/ssh/src/ssh_options.erl @@ -26,7 +26,7 @@ -moduledoc false. -include("ssh.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -export([default/1, get_value/5, get_value/6, diff --git a/lib/ssh/src/ssh_sftp.erl b/lib/ssh/src/ssh_sftp.erl index b54687d1ebdc..44bdd1df812a 100644 --- a/lib/ssh/src/ssh_sftp.erl +++ b/lib/ssh/src/ssh_sftp.erl @@ -34,7 +34,7 @@ file transfer service available for SSH. -behaviour(ssh_client_channel). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include("ssh.hrl"). -include("ssh_xfer.hrl"). diff --git a/lib/ssh/src/ssh_sftpd.erl b/lib/ssh/src/ssh_sftpd.erl index 307f96b502c1..2a38bc31430d 100644 --- a/lib/ssh/src/ssh_sftpd.erl +++ b/lib/ssh/src/ssh_sftpd.erl @@ -33,7 +33,7 @@ Specifies a channel process to handle an SFTP subsystem. -behaviour(ssh_server_channel). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("kernel/include/logger.hrl"). -include("ssh.hrl"). -include("ssh_xfer.hrl"). diff --git a/lib/ssl/src/ssl_manager.erl b/lib/ssl/src/ssl_manager.erl index 97565305ad62..610386f410b3 100644 --- a/lib/ssl/src/ssl_manager.erl +++ b/lib/ssl/src/ssl_manager.erl @@ -50,7 +50,7 @@ -include("ssl_internal.hrl"). -include("ssl_api.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -export_type([certdb_ref/0, db_handle/0]). diff --git a/lib/ssl/src/ssl_pem_cache.erl b/lib/ssl/src/ssl_pem_cache.erl index 2a9a3d0531fa..0154f9200c3b 100644 --- a/lib/ssl/src/ssl_pem_cache.erl +++ b/lib/ssl/src/ssl_pem_cache.erl @@ -51,7 +51,7 @@ -include("ssl_handshake.hrl"). -include("ssl_internal.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -record(state, { pem_cache, diff --git a/lib/ssl/src/ssl_pkix_db.erl b/lib/ssl/src/ssl_pkix_db.erl index d0a6022a2858..f569ae93430e 100644 --- a/lib/ssl/src/ssl_pkix_db.erl +++ b/lib/ssl/src/ssl_pkix_db.erl @@ -29,7 +29,7 @@ -include("ssl_internal.hrl"). -include_lib("public_key/include/public_key.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include_lib("kernel/include/logger.hrl"). -export([create/1, create_pem_cache/1, diff --git a/lib/stdlib/src/epp.erl b/lib/stdlib/src/epp.erl index b7edb540787b..b4e4da911cb7 100644 --- a/lib/stdlib/src/epp.erl +++ b/lib/stdlib/src/epp.erl @@ -78,7 +78,7 @@ Module:format_error(ErrorDescriptor) -export([interpret_file_attribute/1]). -export([normalize_typed_record_fields/1,restore_typed_record_fields/1]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %%------------------------------------------------------------------------ diff --git a/lib/stdlib/src/erl_tar.erl b/lib/stdlib/src/erl_tar.erl index 50bfc03d9497..f99191348689 100644 --- a/lib/stdlib/src/erl_tar.erl +++ b/lib/stdlib/src/erl_tar.erl @@ -109,7 +109,7 @@ opens a tar file on a remote machine using an SFTP channel. add/3, add/4, format_error/1]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -include("erl_tar.hrl"). %% Converts the short error reason to a descriptive string. diff --git a/lib/stdlib/src/file_sorter.erl b/lib/stdlib/src/file_sorter.erl index 85a038a45412..fbfc4da0ad47 100644 --- a/lib/stdlib/src/file_sorter.erl +++ b/lib/stdlib/src/file_sorter.erl @@ -187,7 +187,7 @@ The possible values of `Reason` returned when an error occurs are: -dialyzer(no_improper_lists). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(CHUNKSIZE, 16384). -define(RUNSIZE, 524288). diff --git a/lib/stdlib/src/filelib.erl b/lib/stdlib/src/filelib.erl index 5e3b7ecc654a..fd1641821ec1 100644 --- a/lib/stdlib/src/filelib.erl +++ b/lib/stdlib/src/filelib.erl @@ -64,7 +64,7 @@ For more information about raw filenames, see the `m:file` module. %% For debugging/testing. -export([compile_wildcard/1]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(HANDLE_ERROR(Expr), try diff --git a/lib/stdlib/src/filename.erl b/lib/stdlib/src/filename.erl index f9b6cda0d27f..34c78a632ce8 100644 --- a/lib/stdlib/src/filename.erl +++ b/lib/stdlib/src/filename.erl @@ -121,7 +121,7 @@ the `m:file` module. %% Undocumented and unsupported exports. -export([append/2]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(IS_DRIVELETTER(Letter), (is_integer(Letter) diff --git a/lib/stdlib/src/shell.erl b/lib/stdlib/src/shell.erl index d2ac044747a3..e4a664a4e15e 100644 --- a/lib/stdlib/src/shell.erl +++ b/lib/stdlib/src/shell.erl @@ -37,6 +37,8 @@ -export([prompt_width/1, prompt_width/2]). -export([help/0,whereis/0]). +-include("file.hrl"). + -define(LINEMAX, 30). -define(CHAR_MAX, 60). -define(DEF_HISTORY, 20). @@ -1766,8 +1768,6 @@ read_records(FileOrModule, Opts0) -> Error end. --include_lib("kernel/include/file.hrl"). - find_file(Mod) when is_atom(Mod) -> case code:which(Mod) of File when is_list(File) -> diff --git a/lib/tftp/src/tftp_file.erl b/lib/tftp/src/tftp_file.erl index a9a3b90d8a26..ef3042bb3f5d 100644 --- a/lib/tftp/src/tftp_file.erl +++ b/lib/tftp/src/tftp_file.erl @@ -44,7 +44,7 @@ %%% Defines %%%------------------------------------------------------------------- --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -record(state, {access, diff --git a/lib/tools/src/make.erl b/lib/tools/src/make.erl index 7d27fa237ef3..21b7c620cf9f 100644 --- a/lib/tools/src/make.erl +++ b/lib/tools/src/make.erl @@ -71,7 +71,7 @@ all other files in the current directory should be compiled with only the -export([all_or_nothing/0,all/0,all/1,files/1,files/2]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -define(MakeOpts,[noexec,load,netload,noload,emake]). diff --git a/lib/tools/src/xref_utils.erl b/lib/tools/src/xref_utils.erl index 469c7b7dbd10..3f2e54c42309 100644 --- a/lib/tools/src/xref_utils.erl +++ b/lib/tools/src/xref_utils.erl @@ -62,7 +62,7 @@ intersection/2, partition/2, relation/1, relation_to_family/1, restriction/2, set/1, to_external/1, type/1]). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %% %% Exported functions diff --git a/lib/xmerl/src/xmerl_eventp.erl b/lib/xmerl/src/xmerl_eventp.erl index 8808c32c714a..64d3e1344fd6 100644 --- a/lib/xmerl/src/xmerl_eventp.erl +++ b/lib/xmerl/src/xmerl_eventp.erl @@ -38,7 +38,7 @@ Each front-end contains more elaborate settings of -include("xmerl.hrl"). -include("xmerl_internal.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -doc "Record `#xmlElement{}`". -type xmlElement() :: #xmlElement{}. diff --git a/lib/xmerl/src/xmerl_scan.erl b/lib/xmerl/src/xmerl_scan.erl index 60dda6b9e668..6abf1e8d2a57 100644 --- a/lib/xmerl/src/xmerl_scan.erl +++ b/lib/xmerl/src/xmerl_scan.erl @@ -56,7 +56,7 @@ See also the %-define(debug, 1). -include("xmerl.hrl"). % record def, macros -include("xmerl_internal.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). -compile({nowarn_hidden_doc, [xmerl_scanner/0]}). -doc hidden. diff --git a/lib/xmerl/src/xmerl_xsd.erl b/lib/xmerl/src/xmerl_xsd.erl index 5ef45df4bef4..0249f2370413 100644 --- a/lib/xmerl/src/xmerl_xsd.erl +++ b/lib/xmerl/src/xmerl_xsd.erl @@ -37,7 +37,7 @@ An XML structure is validated by [`xmerl_xsd:validate/[2,3]`](`validate/2`). -include("xmerl.hrl"). -include("xmerl_internal.hrl"). -include("xmerl_xsd.hrl"). --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). %%---------------------------------------------------------------------- %% External exports From 2507ed85d13893d54e49b5d4a9dc5885c2cf0549 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Tue, 10 Feb 2026 14:05:36 +0100 Subject: [PATCH 02/11] kernel: Update file_info record to be a native-record --- erts/preloaded/ebin/erl_prim_loader.beam | Bin 24088 -> 24156 bytes erts/preloaded/ebin/init.beam | Bin 28076 -> 28108 bytes erts/preloaded/ebin/prim_file.beam | Bin 13840 -> 14260 bytes erts/preloaded/ebin/prim_zip.beam | Bin 9652 -> 9824 bytes erts/preloaded/src/prim_file.erl | 13 +++++- lib/kernel/include/file.hrl | 40 +----------------- lib/kernel/src/file.erl | 49 +++++++++++++++++++++-- 7 files changed, 58 insertions(+), 44 deletions(-) diff --git a/erts/preloaded/ebin/erl_prim_loader.beam b/erts/preloaded/ebin/erl_prim_loader.beam index 69efd91394dbbfaef17f20715ccfdd097fbcc7ab..092728a39cb7a618378c5f5d1fe783843a74675a 100644 GIT binary patch delta 4096 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 IH;sS!e+kW~UjP6A diff --git a/erts/preloaded/ebin/init.beam b/erts/preloaded/ebin/init.beam index ad0824abd9a05d0d1340b0c2bfa51183aa30c47f..318eccc94248252d4a14599d69e8df53404f1a37 100644 GIT binary patch delta 2554 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 diff --git a/erts/preloaded/ebin/prim_file.beam b/erts/preloaded/ebin/prim_file.beam index 584f90c3b98f64d5f3a8c036719ea6711fae5756..7f5fb95200b2441a46533332f76e4f04c483eb7c 100644 GIT binary patch delta 7804 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 SEa-jOsp^v^xtzs)^8XJ|=qp74 diff --git a/erts/preloaded/ebin/prim_zip.beam b/erts/preloaded/ebin/prim_zip.beam index 417c12bda54238b6eaace21c01f4c11ef11fd05f..eb69f2b0762ac0b40b5f9a5dc76969fe6bd084d6 100644 GIT binary patch delta 1657 zcmZWodr(wW7~ivZ7tVKcb7j{-p1ZnOeM3%Ll%|g3l|nd*h+=^l0>Xl;Jl0*F3a+Mx zk>=z2x=Ch@<)Dp`Xk!V9e^mCE(zLRNmZB1wP17Gu%-GO(7@V9sGrxO&-|zQ5&b?>% z*zBJ&!!zg3f7oQYFE2H1#+*!lmCs~i*`|Nj5u*EK2-6`QGGG>D!d%FKJXi?%um~2z z5-5RkSPs@2 zgY$3!zJp893)kQ}+<@QU5BL-Qf&m!Bk?6qD7>9{C3e7kclkp*(jFS*?8m8itI16Xv z9L&PGI1h6%AB%7cZo@`gh3jwwhOiFHa2c+~HCTxOEXESth^@E-JMaje!rf(f8r$$7 zzJu@Ldw3i_#~<-3_F+HX5@s<*#E4iiPI$z4F;irS#bSvl5#^#nREwaf6^&x8ST9;c ztJo~Ih^=Cq*e-U8U1E>eEB1@m@Lu>EZi4}-okc8%SxW~82U|K%m?tX5Ma3m0zEEg? z&{teqSReG)__B*@{FT1!68ZF&`%AO^Rn?`w>O6J6qUI>-0;WF2)Tc+OxlGMt>O!XGE9xSP`ixU8(EDPij0g(G4;nmVj#3xv z6XHUwP=7Tp`reu>yNU5b2CpTfNdGYIfqUvKZrjoJB*ozM`aoP40;V|~R=2Ig%lHv3)iKR>i1D`!-bho5-HdlQ7=PQ~D=Az;;ZcLH(hK6J zvL@Y#pE|O+*}5h>*TZA_yXX|F_1^fD(M=f&Ys6YH5@4=2XvK09QbH269)meIhj$86nHus+Mp6BzHFWIL&74v(fd zG_w-nwVh)8eS>eHrNOsSlWIEO`4L|4 zo6&BIQ}ZMld>gguN>xlwO|fY57Pm**c}%Ls?r2vW8|`j`>vx7Z6(!B0C{b=2cER8~ zs9%8keKo@5HTX`8*LI%Ux0+ZY|JvZY$XsD({2R^epc8z{_(g;7mZCm+?ES7i#DZl1 z@VM=JWrm{2oXd<~GPoffJv=r(9HL*^6)j51vhzg7uNo$DLR8Z$zdOlp?qd9!!CxZ1 zmdi@{$e zwSl_aywe5vuLj>oYGbEoToWrOp?{T`5J@P#i!Z;6*AQm}nIpM5ts$_0_Pk*&M7#8R z36jfog;1g2_M}f}Bqk@^A`C6d$Om0S8VCyECP7v+sq29xXLvYaI*GDyDM2QhhV^=) zQty|Nk1 delta 1540 zcmYjQ3v3is6rHzk+rGPWWayMG(3Vcw1-z0bO9(B3hN0NfC*@n9MS-@^MarMHvi!;d z6|DSP7(Nal!2mJUhCmlZp;!osKR`vIqWlU434#emqfukk+~ z3?q0BuVO3S#ye7xNzyC3NkgVfpL{{)$|?(RNEs_&F;6{w_;6dK*_FvV?W+iumKBF8%BzBrg4oYl zlA;V>P)0A`qkUCWpv1!C>Mrbv$B=C6rF2w8<7rtzT1yuw_<8>X6RM zt7BG;E%b@*cblo}3M-U4pzE?c&cspD<&pJ$TU3*^$ZAP#dS-I;sx{XB$eD|6zje|` zam@6*MBbI{*Zt5IVUoXW?d};0Pw5!UQIqbt7BHL{JwDwQtJ>8kY_XcuQ|VsK1J#q% zWzA?qq%v_bOFh9&-Dh&$bn)1L+QP)gwx}U-ae#@Ie(EV7i}vF>H9yr)J#_AaDaG_sxE##uBZYJ^= z($W1cWTZMzu1HiSJF9GxHBjT(ZS> zhqTV8_YLnL6r}Q%LF#2bjB`hGjftza*y&X0(XS0suj|9~N0sX|RjaK~aV8yb!%X0# zHPMran;jgrYI8ma(S}H4;+8GmB<(D^-R%b5M_-A^pKM_hS#C0`vR7hY7vb4-(p_^z ziKBRriJxt;o7g#IyZ68CzAg3;IX7~w*9tau68)206mb-VPvB`!;8zGU3PTMJbcGeAwVyoUiB0QInbHXna?JLf6&r4tq1*f=2;ka3pmxLXCU36EX z{LpAVi+0ENh@Tzh@6zsea8zI3k!LD*2*fx^wD73GZQ^1n+7HezuX0A(Na3tFYh&+f JE4|Oq{{Vb}XfXf) diff --git a/erts/preloaded/src/prim_file.erl b/erts/preloaded/src/prim_file.erl index de6f01860572..f3a7f9ea4571 100644 --- a/erts/preloaded/src/prim_file.erl +++ b/erts/preloaded/src/prim_file.erl @@ -674,12 +674,23 @@ read_handle_info_1(Fd, TimeType) -> #{ handle := FRef } = get_fd_data(Fd), case read_handle_info_nif(FRef) of {error, Reason} -> {error, Reason}; - FileInfo -> {ok, adjust_times(FileInfo, TimeType)} + FileInfo -> + erlang:display(FileInfo), + AT = adjust_times(FileInfo, TimeType), + erlang:display(AT), + {ok, AT} end catch error:_ -> {error, badarg} end. +adjust_times({file_info, S, T, A, AT, MT, CT, M, L, + MAD, MID, I, U, G}, TimeType) -> + adjust_times(#file_info{size = S, type = T, access = A, + atime = AT, mtime = MT, ctime = CT, + mode = M, links = L, + major_device = MAD, minor_device = MID, inode = I, + uid = U, gid = G}, TimeType); adjust_times(FileInfo, posix) -> FileInfo; adjust_times(FileInfo, TimeType) -> diff --git a/lib/kernel/include/file.hrl b/lib/kernel/include/file.hrl index f2c2bbed8398..a39a5680c464 100644 --- a/lib/kernel/include/file.hrl +++ b/lib/kernel/include/file.hrl @@ -24,46 +24,8 @@ -define(FILE_HRL_, 1). %%-------------------------------------------------------------------------- --record(file_info, - {size :: non_neg_integer() | 'undefined', % Size of file in bytes. - type :: 'device' | 'directory' | 'other' | 'regular' | 'symlink' - | 'undefined', - access :: 'read' | 'write' | 'read_write' | 'none' | 'undefined', - atime :: file:date_time() | non_neg_integer() | 'undefined', - % The local time the file was last read: - % {{Year, Mon, Day}, {Hour, Min, Sec}}. - % atime, ctime, mtime may also be unix epochs() - mtime :: file:date_time() | non_neg_integer() | 'undefined', - % The local time the file was last written. - ctime :: file:date_time() | non_neg_integer() | 'undefined', - % The interpretation of this time field - % is dependent on operating system. - % On Unix it is the last time the file - % or the inode was changed. On Windows, - % it is the creation time. - mode :: non_neg_integer() | 'undefined', - % File permissions. On Windows, - % the owner permissions will be - % duplicated for group and user. - links :: non_neg_integer() | 'undefined', - % Number of links to the file (1 if the - % filesystem doesn't support links). - major_device :: non_neg_integer() | 'undefined', - % Identifies the file system (Unix), - % or the drive number (A: = 0, B: = 1) - % (Windows). - %% The following are Unix specific. - %% They are set to zero on other operating systems. - minor_device :: non_neg_integer() | 'undefined', - % Only valid for devices. - inode :: non_neg_integer() | 'undefined', % Inode number for file. - uid :: non_neg_integer() | 'undefined', % User id for owner. - gid :: non_neg_integer() | 'undefined'}). % Group id for owner. +-import_record(file, [file_info, file_descriptor]). --record(file_descriptor, - {module :: module(), % Module that handles this kind of file - data :: term()}). % Module dependent data - %%-------------------------------------------------------------------------- -endif. diff --git a/lib/kernel/src/file.erl b/lib/kernel/src/file.erl index 37702ce72b88..3b763c5a5894 100644 --- a/lib/kernel/src/file.erl +++ b/lib/kernel/src/file.erl @@ -241,9 +241,50 @@ operating system kernel. -export_type([date_time/0, fd/0, file_info/0, filename/0, filename_all/0, io_device/0, io_server/0, location/0, mode/0, name/0, name_all/0, posix/0]). -%%% Includes and defines --include("file_int.hrl"). +-export_record([file_info, file_descriptor]). +-record #file_info + {size = undefined :: non_neg_integer() | 'undefined', % Size of file in bytes. + type = undefined :: 'device' | 'directory' | 'other' | 'regular' | 'symlink' + | 'undefined', + access = undefined :: 'read' | 'write' | 'read_write' | 'none' | 'undefined', + atime = undefined :: file:date_time() | non_neg_integer() | 'undefined', + % The local time the file was last read: + % {{Year, Mon, Day}, {Hour, Min, Sec}}. + % atime, ctime, mtime may also be unix epochs() + mtime = undefined :: file:date_time() | non_neg_integer() | 'undefined', + % The local time the file was last written. + ctime = undefined :: file:date_time() | non_neg_integer() | 'undefined', + % The interpretation of this time field + % is dependent on operating system. + % On Unix it is the last time the file + % or the inode was changed. On Windows, + % it is the creation time. + mode = undefined :: non_neg_integer() | 'undefined', + % File permissions. On Windows, + % the owner permissions will be + % duplicated for group and user. + links = undefined :: non_neg_integer() | 'undefined', + % Number of links to the file (1 if the + % filesystem doesn't support links). + major_device = undefined :: non_neg_integer() | 'undefined', + % Identifies the file system (Unix), + % or the drive number (A: = 0, B: = 1) + % (Windows). + %% The following are Unix specific. + %% They are set to zero on other operating systems. + minor_device = undefined :: non_neg_integer() | 'undefined', + % Only valid for devices. + inode = undefined :: non_neg_integer() | 'undefined', % Inode number for file. + uid = undefined :: non_neg_integer() | 'undefined', % User id for owner. + gid = undefined :: non_neg_integer() | 'undefined'}. % Group id for owner. + +-record #file_descriptor{ + module = undefined :: module(), % Module that handles this kind of file + data = undefined :: term()}. % Module dependent data + + +%%% Includes and defines -define(FILE_IO_SERVER_TABLE, file_io_servers). -define(FILE_SERVER, file_server_2). % Registered name @@ -671,7 +712,7 @@ otherwise `{error, Reason}`. Include the following directive in the module from which the function is called: ```erlang --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). ``` The time type returned in `atime`, `mtime`, and `ctime` is dependent on the time @@ -921,7 +962,7 @@ include file `file.hrl`. Include the following directive in the module from which the function is called: ```erlang --include_lib("kernel/include/file.hrl"). +-include("file.hrl"). ``` The time type set in `atime`, `mtime`, and `ctime` depends on the time type set From 1987d3554f8ed460f372c9aba446c44af62fdb79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Tue, 10 Feb 2026 14:11:46 +0100 Subject: [PATCH 03/11] Update primary bootstrap --- bootstrap/lib/kernel/ebin/auth.beam | Bin 7772 -> 7916 bytes bootstrap/lib/kernel/ebin/code.beam | Bin 19052 -> 19116 bytes bootstrap/lib/kernel/ebin/code_server.beam | Bin 23980 -> 24056 bytes bootstrap/lib/kernel/ebin/disk_log.beam | Bin 31448 -> 31512 bytes bootstrap/lib/kernel/ebin/disk_log_1.beam | Bin 26708 -> 26824 bytes .../lib/kernel/ebin/disk_log_server.beam | Bin 4112 -> 4176 bytes bootstrap/lib/kernel/ebin/file.beam | Bin 15132 -> 15476 bytes bootstrap/lib/kernel/ebin/file_io_server.beam | Bin 15692 -> 15656 bytes bootstrap/lib/kernel/ebin/gen_tcp.beam | Bin 3192 -> 3256 bytes bootstrap/lib/kernel/ebin/inet_db.beam | Bin 27476 -> 27540 bytes bootstrap/lib/kernel/ebin/inet_parse.beam | Bin 14072 -> 14140 bytes bootstrap/lib/kernel/ebin/logger_std_h.beam | Bin 10360 -> 10492 bytes bootstrap/lib/kernel/ebin/os.beam | Bin 7036 -> 7148 bytes bootstrap/lib/kernel/ebin/ram_file.beam | Bin 5640 -> 6024 bytes .../kernel/ebin/raw_file_io_compressed.beam | Bin 2624 -> 2768 bytes .../lib/kernel/ebin/raw_file_io_deflate.beam | Bin 3264 -> 3320 bytes .../lib/kernel/ebin/raw_file_io_delayed.beam | Bin 5672 -> 5780 bytes .../lib/kernel/ebin/raw_file_io_inflate.beam | Bin 5240 -> 5272 bytes .../lib/kernel/ebin/raw_file_io_list.beam | Bin 2532 -> 2332 bytes bootstrap/lib/kernel/ebin/socket.beam | Bin 38480 -> 38564 bytes .../lib/kernel/ebin/wrap_log_reader.beam | Bin 2940 -> 3016 bytes bootstrap/lib/kernel/include/file.hrl | 40 +----------------- bootstrap/lib/stdlib/ebin/epp.beam | Bin 35744 -> 35888 bytes bootstrap/lib/stdlib/ebin/erl_compile.beam | Bin 11044 -> 11124 bytes bootstrap/lib/stdlib/ebin/erl_tar.beam | Bin 34108 -> 34452 bytes bootstrap/lib/stdlib/ebin/file_sorter.beam | Bin 27584 -> 27652 bytes bootstrap/lib/stdlib/ebin/filelib.beam | Bin 12052 -> 12192 bytes bootstrap/lib/stdlib/ebin/filename.beam | Bin 14672 -> 14736 bytes bootstrap/lib/stdlib/ebin/shell.beam | Bin 45556 -> 45620 bytes bootstrap/lib/stdlib/ebin/zip.beam | Bin 35952 -> 36356 bytes 30 files changed, 1 insertion(+), 39 deletions(-) diff --git a/bootstrap/lib/kernel/ebin/auth.beam b/bootstrap/lib/kernel/ebin/auth.beam index 1df091e405e0584ec53d2e5772acbdf2c3aff580..cf9e66c18368d80541103031a27b841bf1c7b574 100644 GIT binary patch delta 937 zcmYk3O-vI(6vt;etBivy%eJ*`f~KU6#sCI^gHhC>28js@5)hTo+Ag-0e%O|NNo)}l z@n*88Js6Z=6hmT6;{}kri5Kpk4Dn>VNIZBD-}J+DlK*?Zee=F1`?dSW1^bnOp)&{_ z-}UtNT zA`Qs92q6U|&USHD8mq78%DSyxvbZ_v(svqcdDnTfoU?IemouzcPGOqbkaMn05F28{ z+u*lAwrMsZv6~h)>Ne+MxMQ2l}YpL=;!t@PS$#sRcV*1uVkdT9fHBQVT?4)g&zBA}mh|lXg)>izu_}A*i`CITaMoPZ~ zp&{_MK_-ykJ2gB8j6p|06E!>uEb>MCZiUZ**Fe?$d%)s|oIr`n97HJpzc>UJqCgD3 z52`LPTj4PHNQK3KD5yH%K_xB*#A`TF!^s+c2wbjpAtXLby_wiB_&tyXlmm%`HNkqp z{+*FVKye(!m}AdmwJZiqX=x@ntECSKI~9z~M0IbI=R{yptSrGbNhKnJaYR7}?fAXp za{tGl9c_`&VBf{!=O&CjkR%7gv1mLw71w;xxWANM?Ob|#P5X31X_8+{_~OA>G8zws KLi(3u&;J4N>$=zg delta 776 zcmYk2&ubGw6vtdC-_HrPy`PmqF4mI#5egNdCPa+XWqOw@9lg$`r(NG*u>;M zga#t+SolOZJ9Q8t*=;l$Yp?ykC2B2ZoNOtbHMrtNAoFI`M zb#+)RM9GX2aAX}K6&rbUTDH{N%x3Gvw3GnRkdA3Vvtca`t0hA@<%~Ze&3(x+npN25 z57{q#p5N;|u1!0b!nJFW>tMgpsh<75h(tFI6Ueb+RuK7kszQj@exAyq87H+=Ai2yElZk`g-f4% z^e(UYY+nvx`ohu3Nk&7MZg>b1a{Q;y#09>kFNBxt2l{4lc?zEQO!JWungkyONg%;z zyZ9V125kq$x;PFj@lVPMh-XsAVUTQuO%Bf;$7JPH|H=gFz{~9bKzjL;myn~$S*31FG@|$FG>MP zFlI27v!rF_q=Gn1<(wd9d}dx+emOswnUY$ZT$EW*l3z60(M@J^uj?$9$r@fR0PDLV AQ2+n{ delta 45 zcmZ28mGR9KMh-XsAVUTQuau1(@h`JC%4mdWW}t^iCn B4&DF& diff --git a/bootstrap/lib/kernel/ebin/code_server.beam b/bootstrap/lib/kernel/ebin/code_server.beam index 9a492b150fe8ae670c0eafd6e2fdcfd077344714..05b16b5b39a867382c8114a1ae5f1bd0919c19be 100644 GIT binary patch delta 391 zcmZ3poAJkPMh-XsAVUU**bf^yHuLd*V_;wq0Adi>xA_F$Jwx$bx*M2x1MwoR`}=^@ z9v~K1;L_NME0AV`%Ll;a6`}I>K$-(C-vF1Fhss+6X)d_@2DrR1NDSyS z5g^S2mwyl`3i8M1ACcC~nHkMFKnbP{rgG-8;ye(WF;9S@|MeXW=d2SFCrrG=PAm6s z&H~EwX66>;7nQ^pr6%VWrGQleMOo4^b5g-ZlyicZ@tJvP`Q`jzW=d*ta#3bMNq$jQ KR@UU0*Z=^9%3k0A delta 428 zcmeydn{mxy7>g(JwvYfx*M1uaNT!eR@l7P z;k(f0&B0=<^@%s~85kIifU1~)s2E5yf-oysoS_WLp9qm>V1S4-YC^=B!hke05W~b( zflQD&?m(Iah@s{%DnrGcfix?UxJo@#!WBrfAxS7f#T|h(JCe8}RNNj&b0CQ;K*eo= zG$)d{JXG8oNOK{Hi$cY1#efWMBne><8|VWOAkBj$E(m0Ud?o~>c|mMYNNi?_vS!v) tZ_WWJ%wQ^KE-TIhv-1QPWDkBivCV6SweFMEP5*hV*JNceOkNQi006Q_LjM2& diff --git a/bootstrap/lib/kernel/ebin/disk_log.beam b/bootstrap/lib/kernel/ebin/disk_log.beam index e5c46b67c72fe558ad37e9447f2472468f179744..19118ffbd81e9681e02788e74da6466a417ca494 100644 GIT binary patch delta 103 zcmccdm2t*5Mh-XsAVUU*YJrU$zbn|in{yZ#7+5xQRWdU=WiXZVX66>;7nQ^pr6%VW wrGVrZfubyFnK`K-4pTWNh#8-mmzH174`!yM7AF^F7L?={Wo2be=C3*l0FmJ#&j0`b delta 39 vcmbR7jq%1;Mh-XsAVUU*stX%Aepj$_HRmueFfecCs$^zl%3_%8Uv&}y7Wxdr diff --git a/bootstrap/lib/kernel/ebin/disk_log_1.beam b/bootstrap/lib/kernel/ebin/disk_log_1.beam index 6f0492ca30396caaed43800cb418ea062948da0e..d8d9e2bc15468e045446b020ecb5f4828282dfda 100644 GIT binary patch delta 4331 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 U96N_6)-`du?vd;h>ux3g19f!OBme*a delta 4211 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 diff --git a/bootstrap/lib/kernel/ebin/disk_log_server.beam b/bootstrap/lib/kernel/ebin/disk_log_server.beam index 8b08f75d0216a5a64cd133904685d8cb50b75cb8..796786f3e7d83fe677c1deb189e51a43c4638618 100644 GIT binary patch delta 125 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 ae*NV@>&-Vs4zm}B7R+hA@rX8a4Eta2aK(TC delta 5910 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 delta 8592 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 diff --git a/bootstrap/lib/kernel/ebin/gen_tcp.beam b/bootstrap/lib/kernel/ebin/gen_tcp.beam index fc851f77d95a60784749a6a49f4151c90bdd8daf..5dfdc431819c989c5f0e41f49f77d5610e957ef5 100644 GIT binary patch delta 143 zcmew%u|tx>%|FPHfq`ekMh;`1+KlEL1_lPE45o7Cvf?}tn=wy-;pdw2tdMUzt=fdF z_im^;=bQzU=grJ5$S*31FG@|$FG>Nc1d6hxW#*)UjVR{?G2=7y((=ps!OWD@;^d;t bf|C5AtgNh%%7Rp&={!Kp46>2`KZ64RvQI0a delta 79 zcmdlX`9p%k%|FPHfq|!BBZo1Mt$K3~0|NtN22(k6S#chiohQKXb4__x$hVzVZ9>+2 cH`JVS&dOp4sVqnZs^kG;W*}zb|Igq60CbTRRR910 diff --git a/bootstrap/lib/kernel/ebin/inet_db.beam b/bootstrap/lib/kernel/ebin/inet_db.beam index d27d44fe3308560fd1835acdc3889ae2ede5d6de..6326d844537419252a51baa6fedf11b612caff0a 100644 GIT binary patch delta 102 zcmca|jd99#Mh-XsAVUU*?4FGr;aTh%%{dGV3`~>LvJ{*$n96xGa|`l|O5%%Blk{Is*XgYzzkg diff --git a/bootstrap/lib/kernel/ebin/inet_parse.beam b/bootstrap/lib/kernel/ebin/inet_parse.beam index adf46d68643d0d991d41274cd900e9bff5ad6086..f0f2914eaf7046ca541e772bf8aa30083a73b89b 100644 GIT binary patch delta 443 zcmey7yC;vs%|FPHfx+BlBgbzR-subs3<5w50=qX0uwG&3+Ql2eyc>wQBsRa~S*N&p zhF$@4J&SCzB~VEf5HkW%7ldYDfQnZ_#an?i6A;71%b?=5K$;mzyc8-9GLHpGyaXy< z0i;=x#OsTp5+IFiND@U*aS+XpBwh#=F96aUNa7$q$OAb*niEMpA1a;&q`8p96CmPz zj3z(^H%wx)i1A^@%#3D`DNGqm<;-Qpc_21po&ZDob}xB1k>F;B7w`BK($_R+0p)o! za|`l|O5%%BlkzbGp!Ym?~@ FMgW(GNi+Ze delta 282 zcmdm!_am3X%|FPHfx+yk%$b40aR8A#Ed}H3Z$8Um;tQ70imE2s-Ox;v%nP;AQTis6@V17!4)h( zC@6#~C;-wNa0M3-3i6=}vVb%fOu-~$5wK%7OBf$!)KqWI0V&F0DrYV$&I7aa1Q;Ie cjWh|J^_^ke!MGpS{(aw@mBp~x#qvqnzMz{N^;h+ChfSh%W*+b zIgXP6?Af!YJC_BIye&@1I{>1P`+KnN0^Ax2^Yo~DKygWO-Fa8Tnp<#@h)gttM7<>T zi0$8$CQyW~O1DtNK9E)&C}!v7E(A;2HR9mII*HPa9)It)NbwG!tw8ZEaHc?i_S{Qs zxFvo~$aQMMrT1bDYx_Ygfu|aHs-1eOfu~x_lWR@L^PG4X^fFrpxcb0MgjOg8yH)l^SPC4Nz*FDm6fNhnj?U?f%8W*- zqHOb(F;b<6ilSC=-6=x?)~-VmzarsF-KpbYC{(GW4nybLs$ZD*%IBQmf<9M$k@m3O zwIejoA~YdF^E5&eA~ajWf(YJL|0)W)B%RG`*!`45bP|?969#plhIu|VMxwUw%6ViP z13E$v?8o|&L&dqRCvZtV0x;kg05Q($_Q~KediG{9#|qPqGJa7kFpdfmH~Qn#`d02c zXB=r)KM$?uv#>8_@-wDYnzYhM(@M2YLY1G&W~O9X MS=#US(U9Nx2b2oQRsaA1 delta 597 zcmX|8&ubGw6yDjHrPFCw26t_mWYskrLk?C_NkKvBlBo4Zer%%Pp$9D_C56o@3fhvS zD4`HO%7;Sx zk|a?9f4$?Ck*64=o;r`dlIv`YMvkK`Eu~YdtIU}&5x_dhTEt9}T$JQ*5=UcK=sd`> z4LS?5{2P5HgFLTkqd;tH`m~H3i{#kOM4a?g1_fsdZn57JSJN$;=wNrm#7BB+8=8A5 zNQG?Mm+jyxlGM+s1Ldd?e&y>r8Yw_h+#@$g@^FH;1IK{Sem~h1@ocaOa%?wv@{*18 z7PUKgZOGmqvTHrHulWsV6b{VLz++O2k~$&{NLKZ(l1$QoNmihp)LIF4CUj2lxuK7s z&Q6CX$7|M0b@P_yU&*mzcn7VfNrO=%3>xf|5fX9ENQf89MjY3p+L$8PS>K4w4xGLi z_OgA@%eLQ3SJ9y<2pb@!i7_L8%)Z$>|IMyI;nFyoK`5UlIqseq2eKsb<%k79hCjDj zvH^ZPc_V&qLjVeV5dePf*SQ`017g>jt|-VA`4N2h!1Ht9QE8uF%>1lxVq+KE)tU7R M>~%cGKE-GL0SFD5YybcN diff --git a/bootstrap/lib/kernel/ebin/os.beam b/bootstrap/lib/kernel/ebin/os.beam index 26544ed063216500364334d957d76618fd306013..45d990d75308d6826eab6f34fca28e70c8ccc7d2 100644 GIT binary patch delta 1503 zcmZ8hZA@EL7(S<`jKiUaUU~{0V(g_w?D*P+6*ef0!$-%)1iFpE*l;lU7%(VZi?m4Q zOqTso6GKk?aWw`Lmlzc>j>If%S&V;7jER5zW8xnZe`vCpm>8qci0>&SA>QPLGt$w+92TjU{t`B~sG*hc`LWFEqTqDJeLx430~A=GdAqd26_(f~f9 z;?xBGCJmI;8kn}Y3_}v9O&gquS8VWBVzN5*HSNQ-s-$2ITWY;v3^%A>3j%qK{4|`E zuu6PPwX*8Ea0~Aj8+>3yOqi_6FwLmbLEg^moe(B;(Ja_;cEX66_k_=6Eoz;$L)^FQ z2o9^i*fV9VQV^SVQiFOdOfPf^L~8g5VNJ>^^d9|Rw1^5vP!b{UL(EBPSr9T55q!ia z@AF|6QK`bH)n;Nk>WZ10KFjH?lp-uik7VsZ$xcF4x6|U+WLQWNmaG`W4)t?kYnc>L z))@>&S(msyb$MODNVz^BwzR|SmgRae>_s^w#0Y)IoC@mZ`@9pd#*H3^#zz$=u; zFdbhA3QQ+#I_U7Q0X4uYsv}T0HUP(%PTBMv=!4Ms^ah{RV|JOA3_7LoN)}T#4?&$T zd80c9K|}cleY%FvRkDyGMFC$(_P$5j`2walq=R6(V3PNTb3`urPl^8)hsalLPFo`?Br_=|Ao%Q-kZJY1 z(T8VLNAc;r>wKNfsyB+az&ql3AQmO2?|j7KQi#v_yL#!C)FI)=2~{P&!^`S#(F~D| z-XOlNhP_qzC3VZ|!z=17Z*^T7X0jZ2h;=frS+o#t!KGvD-Gf%wNUE6?F8*i z?yL{&S%A)^_2&=p{sTOm}7zit^LPxT=!=pr2Z`}D4qbW zYwCA-5kOR>FL-;uiv>`0wC?C;jz_^J5Af6hu5|*?{u#i29?kbB@UqsUnZytnSYuQQ zNNWwSwZ{Ws5ZVL`XBk3qu*U#8Nlf$YAAEw`p1qUpaMqC~E2+5VIBuYx`d7T)qdz+S zT#M&_^&r|c59fStF|m|f9#2kBE+wb3o}fBs<`$;2DbfX+j?cwsmeTGlotjQfCg&2% cOUe29`JvSW{3&Orso#&gcVUCDsxKe-4^8h7Q~&?~ delta 1316 zcmZ`&PfT1z7=Ob&WIF8ZK6YMt;9B>wyX}@;pbISjT|4|)pcr7mBBfy23RI*kr3Lw; zF(zuXi5JZm534cjf%Krw8iQ#(XyVC}M-si+Lr+EzUX6<1EKAahllt%ecU8c6q#_ixQ~8-}@mbaeFI*L5A_V4B>d_Ta7M6~nN=zzLzpgM&kp z(?CHa=tCYFpstLIgyi7?xg)9q&&bx$lbc-(Oaa~32eo0Mb%RIYK zbKoUTCsIpaz z;#!PHNE=M@SaW-i7?%YxF)On!Pg<^A+D>WR5Yo04T{ggKh?eU7iF5Oa5&BT^)#TTK|KvY#uFlG*z`2u#eMAA@kN`& zLXud@+NVx}_dr0jJekCcn_w0TWC&Z#g(YFxJe#cW^Kn=b4Y6L#o0-66!j|)F3iXKu zVJii(s&CTcCREr|(pG#DisC%x`B}92Cei6~mBpTli&rApjXH10iK>y$X-eb>yQwND zVL8jS()@Xt@?P}K7=*2R3`6l3q~fzs@J9Ns=Gk18!K7)4O+~S+4a|XYuQHdpxc_#Z zT^YkTck*l=tD3=PZx+OMslWevU9tc{Utdi@?35oAZ4$ebhhfhbY$+f;er7aYQq>4^ zsNcXWyGUz~>0X{KV&oU$(3c|Dz;7kYsNz`|w!-8kShFtSX}>|f1ix5HM0JfH_w<*k2>x0Xh_i@u2!d!t#1L8!BAO9;XuSoY^%93%ZCE7Biivg@KCBIjOUT9$ zI+h9F)do`S<*y9dsWR6QrpsJ=TrTq~Xy*_*i{3vEuH&3pM5g2EI5EymB zZ|VJ7*+6JMgt+|}zw;Q^`bmTxz46X-=p7_-@fKOEIwDCp8x5OwKW6o H2A2N=`z`4} diff --git a/bootstrap/lib/kernel/ebin/ram_file.beam b/bootstrap/lib/kernel/ebin/ram_file.beam index fa248762a54c28e77d74fa50bf7a4053a6824a91..80ad4cf5108240688edac1cd8e027f23d59ec2fc 100644 GIT binary patch delta 3440 zcmZ`+U2GHC6`t{RlACF6GWOUp`5_)MAtX3i#&MP;K*+Vdj>Aua39yExyBLTe2|tNK zcIm3i+J)T~vAY#zq_(%K3RLamJ`kj;s!37QhrX6p;<>02Ql&~2MSZM9zdM=yXm=aw zj8E?UzH`n!=iD>)?Vj7aa-&Bk1zMe*Hw{rdIq$_r<&oVhS_xya|{ zi&xFLOML3=;@QHLxvBRr7jx$?&s{5Wx&2Z;&P)}ronM%lUz}U`*+_Ef(~GL}Z}omy zNzY9c6-EE8f(JzYJ#oJBWlAZc6T$ybl~sI1kMI{9}dOx>3^aBLZvuu zwdNxmg(MGZP3|XEI1wV+%CoxLSF}ww7L5uThSvzZniUp>*Qo0?3a`<1uhB$sfJJ4g zxX-G#S-VQN3EBwa7F%`xUNznvS*ptA%4shKb2WyvjKMij-7+Lwf_C(??S_nA_7tMu zQlp!)t$db@&t^Li-*%qONo=Q}O)%f${JOebZFW|wccHmnRuAlH0cqoc$Ucb)+A5D= ztF))WVmLy~J%WuR*zySJ6q>|NJI87gJGUZNd_7lQoW@$NEZOurm+4J7OEtal`L~+( zb8htZ6WCpbtTtUN5%fZh3)%+%tw>>Cg~j1N?)r}d9bZpjT&6IN!zN@FRjZn_ew8K! zje@(?$Am04KNr@flbV~A6W+GSrp{ZKQVCE7XAUZeAwT&1}RI|B9*mwgiKldJ4>3>xB%BRjeEhT(xnCAnfs?wu^_PG`epyE2(Q?{6#MY$wTlhs)|DQM!mL3cMm z#{}({pb~EAH%vXo&+*59HPb0afSCfmGb6O^M2iyw~pIiM|2E(d4Hz+*%^*r&ECZg+*@N7a2sd(1>J}HuB^SjDdxY^z>?~)bCfl9 zZocCj2Pn9A{47ZF4xJNJx_Z<3f;I0PsWIngLNPW&v;jGgb#@6OZE6-v(|NL@wa3^+ zL&Jd9oxiX~l{^1nt=)JNT--E9Ot_eKUCanNa*3#PR?s9|3_88_iETqMHb?UQmtmfL zu=*CdDo23)4s;(oX3Du)Zx5w_--D)Ks55mOaXQ4V37W3a%QK;2wy4r;GNkKnNGe^7 zun$0fpV-=v^UwO2@fO%}9DP`)=sf!nS1RLlH?*juPNt#5&dOaJ>!U&TBa$Q**=wOsjXM8oXl={MHn=6|K^Wq2^GPrJ zlz1;BE$MXWCQY*2T8jPTm6Ov`!%6lz{`u?`yQ9)OJi8*lr+uQ*&v^E!r+&_}&pq`E zZ-o9-&_l4FcK)nSsE3`lKvErd3W4oxqDFtX=B(Yh7ueC7A!|btas6D-BjAnV&i_Kt zobxO&VvQ*(6+B2L^rtHQl~AxhhPc0!Z(gjL&xzvf4i1$VzLM6vUrZGRU+$D3gg}}g z%@7qLF>Mf^r*FfjT$lJA5Q&$Ve#jbT_a=QW^ff!fo7VR$N@<<&)+SJP6X?LEb*cL@ zKbSv`&;LL|kTHlf{-vkmLlKZZhz#r<$WDkKl7nV>&) eIh>uHJ^tZ5e)A}IAo7TM!)tq+qBwWLAO8=nt(PGH delta 3039 zcmZ`*UrZdw8Q;0R zk?CEXRCSZIBAqDFG-{WJKDv_WOZ!k&)GvKSd974gRU@S@5f4_{H}{*py$cV{N#D)4 zGr#ZOZ|0lb$9<1`#wTYk^(#tLNoP_QQX5x?6~*`P<;$0UF0I}C(d^qxcNf^o>cTy` za%W#Y%+4>Y&#f)3Zmg{3=I*YnFMN_q1(;mf`Q$bVu=$%CH~IgN6P{R^Ur?08zf%-N z2a&%&@+ZE`MSWFItGfDoHD;#`InV*s&`o5^KPH&ZxTK?;lTqz7;LJqEG}0h6#Dc|V)ktq)C!o-h7291?N_V$>fNTl`zK8$ILH-!`wPCVDQmea4p*?K@vpqJ3od3 zGEJG3cUJ#!J_C>}gl=J3#ob%nDmNFm2^@x45r{<{(&oiVkT%O0B5f|C%xBfuq#fa- z0!IKFwGnO~CUG-mCe0Dj!SC0w#^_EUmn%(pInZ(r6EX+BSJM=gdxztLq{FP!ZKlGu zL-sL_f>FZcQm4R2z;y$U2is8t&j$No(;ozfdK!Z|)otB7lX5E)0yoKwA&VY|B+3~B zGl?YsI+#o}0~vOyLWY-!Ss}xc=MOTl{6Htq;9dx`j@!?=`PnS%Cetr)3q)uHP6iy( zU*)7kl%sOPU z>T@z_2%MO7_ zlL?F_Nj|o#b(3pF?KrurCCC-6hg{Zr$tCRsxrp#Zf&0BC-_`nbI6NjC0NL%iRQVRV zB=Eqi5nCSOvcSn#BlbK59Kqt?t06e#VXg}N+V?;r9^{(9C%*^M;6d{876PKLd;HxH zcnJ8j?IOZ&I^;%mAK#MuI1JvtYiZo_3I@w0yydz3fxsi+t{+at59^ryB&Nf48D?sH zagfZ)H%_($=l@iY7N8fF1_d64Zd0J!cCq9X!xhR;)ThvCzFHscJlJ9kk}kL{b`z}R zslFxf7{p5QC-sfT&jjh}QaC}DRP8m{R64l>m&p7wOfBZsU5zHlZBw(LdcI#Dog9~q z4|&P=oxGm``}TKOgl`{cZVHhX-N;JTt4sC_z@#ynjE!vRmc* z{hsVq`C4~ig=)im`>;Kd0)r7a)@yZChuRmzWL@BNP%kZo$H)f4>oWWUH&ui;V&pzp z|5&xPAzrH|`X<176s+Hc#$nlQXqvNdH9VAoHpzQ*D{t!kR)V~jxAu_089t}S`zECg z6!vhK{8UY;mO5&YN3oLDLQ2{hQoKce@+H|scr$G(aAjuspL7eIXR7x`&=}8#C}!lbmLflY##ch=F-AUyhmW3-4-x*5WuMBgln)U8 zh-G&@^<$RZ^VDB@*T}B~ejWU$`8T0y^adX@QfP`7jSg}ls6VX)qkPBcYCfx0?l{Qn zGl8eUE(3l4xxh30g)!cqRS*`;P^a}hgnuIxSkFSyb+dcEmJKg^oT3%N8i|D8S2dnoH-~a#s diff --git a/bootstrap/lib/kernel/ebin/raw_file_io_compressed.beam b/bootstrap/lib/kernel/ebin/raw_file_io_compressed.beam index 0b48f612c8602366fe9e63252fcbad07db56f376..6a63ab4b0072913468bb01a182182509bce8f8a3 100644 GIT binary patch delta 1604 zcmZWpO-vg{6rSB#@OZ^0!|oazuwh|sFh3znpfo@!17u^Qq-h$ZN)MGV4URAZY&kTv zCnM$3OApAWk$UK%msUMg>a9&9jy*(Gs$6oZluPeit5%}l*lU!gmOjth@4ffEH*a?5 z#C@JfU4Q@1G$H1%tKrIfD+eE5B}AV-J3D)JoO;nEwl)toi+h!=Pj^elfB%sX56Zix zQ}ws8ReE^8R<0gYYK@oL$4NrST4k$5NXI5j4yfPLAJ=t9s|O_R(QjzdqlWzYmyQD0 zDNhQshnh*72V8l~ZfbK!d!_zPy5Rs024zdrV zD+(ea6Y>?vevmz)a2sS@McVXuyFUCwk|j`T7|jfK1%Yr3LEY`FgFU%DP43qa^B^rP)+t4+$wO< zQf(?4P~?VWeXlh>sv6Hnjpy41)Rywi0%MZ(qkvz>5sZsMH5%@OWNF>5q3mRPa<%s0 zE=iU_N)~&a`p@9A?TE{g4X6mD2kmt8+&eAVAiO!`UpddOtFz6u1!g4k5HfP4u~|_# zqGH5NOS|iI%#R3tX^`aWtk{a3gytU*k0N$!Y=pwb2@Fh%G@0gQ~R!>|0m86^$FQDK?ADA|<3z zk9|}h#K)}xU4ZwRedP^X4?nBkZH1Bqe7I?vd0}K@A!|S$&;i^&WE4=^bHE6|fLS01 zpguv3I?2LN2?3yN<(L9ufZ`_sA5cQ$z%ZbAC8%r_uhvdL@dFW*odz<1is_4<4Xi1k zAJ9;r^uSO~Rlo&$BiqKR0u`^WK_#e!^qb`aOoBWE)GrR$kGJ*1j#8~wsU3Ef%KMKt zcfs~4)=-!1;l($uT6ix!MoeQa{zc;?zFgl{Peexoee`f&+1frQvGu=-d*9vs=c_M& zyL02(#-BUzTjjlKrFO7UE8VZuwwjUcGEIrYc(Yb{|3T${Wp{RV?tWgy7%Q6rSB#;>jutlif{h$96o%Hzu4FgH5U*LFPcZvLh1GQ;$LBLHe>2CFGQP0&)iAwCu=)%&Mm#3vytv9KS2$ zWpg~HE3YR>l1Cz!#s3$G@eU@8_c^0bM^9y zLUyjukw@$W@K+S`Azs1q<|d*@dX}XAPUr+OfW(xR=t2St7NxOWfs79sVfl(pk90zJ z5Ft^}3mZ5ttsO z)9q*8CBse_pIBRypSu@z0?2zL_us-VC1;wfmUBrquzUes^D1MTxKUg0GqQ`hK`v53V;RVl5ayVc^V&iKnwVQc52%NvWczlLY-VEGB58QpcCW= zKtF7Fc|1S7H~tj@hTPt0)$Z+qHg?QU=_hw?jqF>TG=JTBbn)wVe);o{FaQ21{`lu! Wk6it{kIR<44Cuu4l_O$k<^KSHjmO*o diff --git a/bootstrap/lib/kernel/ebin/raw_file_io_deflate.beam b/bootstrap/lib/kernel/ebin/raw_file_io_deflate.beam index 4792042c45f4a6b615756e82bf977da86aeb0530..c1201eade3b94015ae7fdec72ba1dd72022e763e 100644 GIT binary patch delta 1093 zcmZWo&uy=we)$kU66Gx}(l`2B*V+bJ+V8%9J z=Fh9vj}}gbf7u&YhS!`0oCse!iQZvF>S7+ti3kwQN%jkzoSbqW)b6l}AfwLe(B$7tt~p z^=NwFJi)YA(}PxY2lQpYQrru~V;&P6w+ROJsVqCP&$(H?OCHIwex3)20!OmIJw7Q} zf2{0g*->|prQIRchiP9HGF0)N*=yRwo9tMLh}gQ=k($QtIzd^MxH6gpm>xA5yJ5d7 zdZy@@rr($jGn&TX2m)wv;18A|n=E5=KqkYoB|axT6~M6uTSP)tHqC}WcTUqoV9|i6 zBth z`2!3HU?hCt7OPVbnSq@f|M@V(AA~RR(e)9`Kq)ZV<$n|hOf5@1wY{CBn0s}O$x zn9&hVbym6#-M?Y2*$cI$>e^T4IbW&Xyxy!eR_o1hqq7#$$f>?x?=L|wxN_&VDDN=LD1?4ZG|3O4AIcAoRLspu%^L{h)o7tJ&cbOL% z|I?edM+r&(U0EvMDDT{zBE-r5>EEK_?fS-MLFOE?up& z6hZW&KCyP2!+oDZj{&h9Q0O)Ak(2U5MM3THAb#1F-^IjD-XCI4?MuCAbNPz~!?3Q~+2*@xRHj_pa)-p#T5? diff --git a/bootstrap/lib/kernel/ebin/raw_file_io_delayed.beam b/bootstrap/lib/kernel/ebin/raw_file_io_delayed.beam index 83a630c9259d76d41820cd61a9cb441cfa1a63b7..d4cad8e64e35f84f8e1c5e6fb415f8f55d2bd932 100644 GIT binary patch delta 3420 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 YKAP?w^gWgDT;KYa(~XS{Z`jQK1@fq{YybcN delta 2499 zcmb7G&2JP(7VmboL#gAJZBI3xv2jeB9+u@qWlRt<`5~${sEgqq+BB9SKZ^VIdIsPURU+2 z_p09ey^rcohJGsA=Pq0t*EG9PnV(&my}v%8Y0UYTeNDIidvp8N=36&5@4a((yK(={ z-6!wq&-7e)=fKJ0;%U2=-!h#*6L{X)P<9E%t3dL4!XWs=(2ptjEZY9$%J&7 zG>dM`t%hYivL3UnZyqt&JnLY|JZ~Ol8B6H=;8R!UJu&ZIz(+RbnU0J(Vc%z+BCSeg3RB*>YdK2c%YS}-d@;ZbjB7E9DC9#Ws%qTafztjexoVJ(oZc*!AK z=e_A_-}BYJwV*`<>Gxo;N3RC(fh?y6C*}j;RsuK@ikOS&iP^FuiIl+^inkxsZs>yuHBIk$MCMH8tNgW(>X4poiHnhXr-+EU~tD^)^Otgh^J zG$GBgK!ynQKm+L*ARS9dI(E0{RP?Di-5f`v1|F4|SuRjXx0U6#EAv8@SSKvU`Kj$E zV}4|T>HJj8-G!3QPh-!gq0T2_o>%;G%#Xrg-_rSHi^^@FM3?VKVMu0gRcQkz$FL2bX14PgAFfaB!lm!H1bL z&ANLuU3bx0;N5)m&zIK`9ZP&bvMy>)-H;D7_Zi73*EO*&EtwWhx6LvRHk|cn+BGXJ zT2PitvnNP;U^VH1zEt=o!A?4%0#%{=8AC5Tu8^$&*}3TNU1$1dkSP_9<^ZU2EDr}` z?jth_6h=RHInB_cb9L6xrCDZ)zjMiZKISJBj^`k~h_Q;DRTo`|d7${`V_t%AUDNpmC6P{RDu1DLG3KX~jhAA68aB?u z#vgf~TGCH$j&7!se!W1iMJHbIn#ap@1&G#> ztG?N-?g?p&P8^R&U-768a4o5&nt3C^ub#YLE8q;VTX!F|=(_S@g4w+53{$`r{1pW;OW^}$8^BHiKaq!L6ro*w{A7U=ST7l4(G)L7D+cBR7YZa^==;40+ zW6Uey)S!3kGbXV8L7o38<{_9DA$EI@?xGnLx*Y5Ctfi_nff`s0rkz9O?py-%0^G3x^JB<$M9QsCzmKF1PrSq;r&`5s>-c_*N#b!^ROj>1q{B8Vk zoL9ddcs4)_AO?C9G}@j!7>C;PT=ckms(Bk<$zy!==kGD8fjU69K)Rwff3^L+gHf&T z^H?SfG9RB{c`#0Cj3wPr9(YegCqO0aHCMNB1)qqVF>Qh<3%y zvH8C!V>-4vK49a_e+WFD%HV^#p{`J}?(U0PA$Bq_Vu`9m-2EnH` diff --git a/bootstrap/lib/kernel/ebin/raw_file_io_list.beam b/bootstrap/lib/kernel/ebin/raw_file_io_list.beam index 667db2d48bb7918ccefe9e2b43cf6f79560b94e1..b3f99417b0b824f70d6940d40f6da3e74bed4c62 100644 GIT binary patch literal 2332 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 diff --git a/bootstrap/lib/kernel/ebin/socket.beam b/bootstrap/lib/kernel/ebin/socket.beam index 6c977d4cf878d9dda70c7ecc796b360ba58ce8e2..34297af7456c3b0e0c2cde58c016733c9998e72a 100644 GIT binary patch delta 10366 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 K7Q^HX+!6ql9zyv5 diff --git a/bootstrap/lib/kernel/include/file.hrl b/bootstrap/lib/kernel/include/file.hrl index f2c2bbed8398..a39a5680c464 100644 --- a/bootstrap/lib/kernel/include/file.hrl +++ b/bootstrap/lib/kernel/include/file.hrl @@ -24,46 +24,8 @@ -define(FILE_HRL_, 1). %%-------------------------------------------------------------------------- --record(file_info, - {size :: non_neg_integer() | 'undefined', % Size of file in bytes. - type :: 'device' | 'directory' | 'other' | 'regular' | 'symlink' - | 'undefined', - access :: 'read' | 'write' | 'read_write' | 'none' | 'undefined', - atime :: file:date_time() | non_neg_integer() | 'undefined', - % The local time the file was last read: - % {{Year, Mon, Day}, {Hour, Min, Sec}}. - % atime, ctime, mtime may also be unix epochs() - mtime :: file:date_time() | non_neg_integer() | 'undefined', - % The local time the file was last written. - ctime :: file:date_time() | non_neg_integer() | 'undefined', - % The interpretation of this time field - % is dependent on operating system. - % On Unix it is the last time the file - % or the inode was changed. On Windows, - % it is the creation time. - mode :: non_neg_integer() | 'undefined', - % File permissions. On Windows, - % the owner permissions will be - % duplicated for group and user. - links :: non_neg_integer() | 'undefined', - % Number of links to the file (1 if the - % filesystem doesn't support links). - major_device :: non_neg_integer() | 'undefined', - % Identifies the file system (Unix), - % or the drive number (A: = 0, B: = 1) - % (Windows). - %% The following are Unix specific. - %% They are set to zero on other operating systems. - minor_device :: non_neg_integer() | 'undefined', - % Only valid for devices. - inode :: non_neg_integer() | 'undefined', % Inode number for file. - uid :: non_neg_integer() | 'undefined', % User id for owner. - gid :: non_neg_integer() | 'undefined'}). % Group id for owner. +-import_record(file, [file_info, file_descriptor]). --record(file_descriptor, - {module :: module(), % Module that handles this kind of file - data :: term()}). % Module dependent data - %%-------------------------------------------------------------------------- -endif. diff --git a/bootstrap/lib/stdlib/ebin/epp.beam b/bootstrap/lib/stdlib/ebin/epp.beam index 171b76ae100a230b6f3e00dcc7a1697a72baf4be..5e732f7e536993af9c7300b6761acee38f048119 100644 GIT binary patch delta 14766 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 delta 14566 zcmaJ|37izg)t}m)g{E1gmmXMHu7(+)n4w{CM(Ek)=$+Yx<|tTLa1js}7jQWS7eNgQ z4uS{qh{RT7d9a8^MNv6437SNr@xT~^8YAL`wB9qo%dbz@RI#d6Gwnd2^PNYI{Iq^&_b=M-E>(B5@18kx!NNdb z$^1YdpyLt${VottMtQGvzKQ(HTdm(g4tV`at9l+Fs=@acbA?IBUov^0oKUkSg+-*V7t+$yL@8qI%n{Z%kEGIbk6;SO0}&owhhxz$Pnl2u&?X#;o!6N?e=NVvYAEjqByzJVML8D2xCm zRIFQyPH06Tl^+SMEbMU46{P<(rt8B99ioZ$We?P1lZ59_c_wTl8-#&Pw4kOB^{IGGOZS1J{&rp(c1SsAU= zsv@+?w$j0>pklOG8AX~`#@K2=_?KW9^Bg5P+Nvfr?P#TbD}%X7LaX(7K=^>B2b~C< zAhNNy9_Q*op@VdA6V}!D43n!b2TiNdn>3&(_1hS_3@)UNr*j8b8Pj%9o3i$|~ z0=}F?#tA1JBkVL9?P{&*gie)02OXbtyg=5`V5AjuLCl(K zXnIsWDNw}Y^Iu6`s$0on3x z5k*S1wZbAZz5Nv-GTVEnBHFh=!jlC@g5_OcLy1}SiuSxWw2~sq*H=0v1(5X^?&j^O zEG;yMS>VQ12t5Vdir?8>{Y3oEf#4JIJD02Pir-VY`XvqEf~7OK z`Yi|^1i_}0Y-?$r;?gik_}zq(vX&+)@R$gq!uOYg<`!#-_Mo+x(8b=5qk05EW{Fom z+9EG|?&yJuSClR$kT3OVEaU2rpz$hbWNmACp2TvW#Byb;0uh&cw~QW6Uc>BO-p8Z0 z$m>3aBY|v+Wy~mVgRyqlT(;~TfRCB7pJWfnm=fEn@@vRce zUk%GVM_A@ru*?;Nu5gmd_A))mX;7NcxnufwJ2=`}Md(@bjhO_dV)^R6G5yQ@S1XrP zw@qu;`fl(+LRX0$AKMUo>Fh$E<+MGxdY)5NLMO%!Dm1Wjz^gEzb2;q*(cXk;zp$+} zP>u+rYY<$vqMMI3YeW$8yCS%(L2yAV6>t4++uN1m?MhQatPyWpyL*z>`E}{Ui2c~z z&d2VSZZySics>^LEo-&*wzZnj)g?}YQzx^P1hSPRG|#CfS?}z0r8z$g=;4@k9>Rdw zwUbJ*Y4ri)=cU5|BW0~MDy+5MWXCF$^ZayTefVxDWZp-qtkw25< z9o^s8w9VzTldshij+sAREkH1+EloU%VJ(Ca`o4hE&d~QeU_0mat?EC0ow6R@IxsQX zx{%OyNZ<&)FkSsg*og=UWzgcZw7sJyQr1NP%CT}tSs+rkNvo@5NCPQi9@8KE27G$b|=#k(e+8yNo4U4_Zwl;x$U1Q4HR9At=OxFcgR<5)*f!*`PmLU17V@MkDU3#;L?M6YWU_kZW z+;JT%j`Gm^SRSsD$d-PP&LraFY-#?97s z^>wOVW;WK@*0tWY>Vc8pKzp;SYmoJMgnCXj4lfIw$P6c0z0rwt+FzpnygEFp0QEIa z5Qhh8cQfjo1sUOA4Hj=E^xBemv(wn-novhrBA8wiF5Jkj^DeCETE+?e4X6EtnO)Cm z1k8TeKq&X_sToFZg1K-y0Lf;{;u-1W7Gtw@L%ktbkAz2CHxhb-QxqojMlU!nb;3G}5g>F6r%}Ls0+?HD z>ke3(fq;LzVQQb+*6pGjPN6%h-q5YvMc(n-xV4qgtyuU37BN$q5W_J3+j6k}TM4~2 zzg!|S0=bybMLsFSp^pxM?X1`)T9#l$uhm6p35IG6#ottJJ9hrif?>%-WO933Gz`T9p1i2$l=zW}40Q^gU@35_%c{z9b za_*FJwpcr{bs^CgT_Ma)Uznra;id**b|MiLnX4aTkmqNR|ItcNeYfC1Xtf8`o!*Yg z-AYFJVvLqz?4QtQNP#2m;&cr7`U(cOyTsJ7(+8VE*8QB0MRH)<)&pMo#D2Mt7l-o4 zBTe`1;{GKe2Z35-E)M`$qPG!0bWLd4%6tC7s{8rcKh{=jK9z`q0d9^2ZR*T`O9 zBYX22*()_N!V-OQOnT7QgN4-xv1pBq2o{bmxK_{V(5*d=mo zItezvJ7qmwuc*lSk?W6Fdy85Pr<2>8J5ttPum%35E#Lo(*#7>E?e9;7{>kewxnIMd z5w@HN0zSgr6tOz`4&i@sEv$VXL_9`C$H;H>ILd}18%^vCQ;&_x4;SF5Jr0LAr>4A6 z^t~{L@*H-$=@Rg0)oAShn^61(@`w=m2&WUo@1va7VdZ|n%Kg>0_T^V@pTBbZ9dbhIPGJEK8Bh3McwBwYGD_Py3bp|x=nd5W<9BBrK7DU2*pXW5C(o; z*cDUiM6~kLCRrikbSBRDc^rg3;l02HhMp8&GG2AUA{UJ_%_MXm+`U|+0QEvK-tZ}X zLI(wiSWM(?#qf@&IGyEnW|icyH;LKBrwF{>MmDzJY@fnEz$Ky2__)&rxc}jenmW)s zVMRZpsA>#^{9i0Gs^S% z4<=bU{&0(zo zcFJ3vE`bh+N$A@prYT~wV}v+eiiy)WU53b9k+KdWxEwwvzdkGi%zFqh?-2Tq6G9O| zM;!<&lZBQ(6_sYX91-h3oSun-bEQ5qF6!K7PS@{lHp&8s`|s*;^R{rA87)R^6ha8v zoHnBn&=6jYl<70rC{Ty06e0b&QV&5`2gDQAacD;j z>84&2M82Yf#%C?omx`keL1iM0rZ{+u@<9yEXvee?4-d7`tO_T>N&Kd)FL2!dA`wp~ z0!li8GJ|4$A>-WV2y>qk`ngv%V|eb1V_9D9v;1Ys`bsI$!5?@#52BBS`EJw$f+ggG zPJqy_z|q&7o)3vSJA{7YyX|**xBd3#+;+_|b~;|2c$-lwuLS&RsBQ`)l@9$a9J-fq z=I@f$_s2Q&T4|m2Gy9|pob-E6FAzHZfzuo~5;f8vZR?2O2C?OcA6t&(W6Mw8y)%2~ z=ub%&I1cx^<2aoBa{;ieTz#a#buRQ>XZ>*q*#AV3L&4h(aJm6(yM)t=5EDl^#4S2D zLAe+R3sW{0j1w1zd(=g`BrEnlIysI+rEmS*?J$YjCcY z%$Zm(u4oOL8F{6v&N^)Q?$QE7-*yI40(XC=ffu~`}12W5R$rifAJH4UQ3}X zaxYdU@N|i@PQ>j5JmDDNWuXuyJiOeZJ;6$~i&MK-3-fNo^K`&*DCk#pHb?iwVn$#@S%v4o1ALi?LXpc355l zgq%zS;T!3X?_xK@#VU0(P!lXNy2?U>upA3$qnL?>jd}a#_K%&YH^@t)B1IIg^4pXf zD+$CQ9j7gRxY{Ch^x>)HRYN$v1?=?z9?NF&JbUp(1&hmyF$#?=4sCB?!?Xw4P~r{+ zR7PB?wg4io9rjk7+N;55EQzZu6hI_jSgv9D)HmZF^l!y>(iI1Lxub|%;8s?HZLDIq zbK|Y7-sZFV+g4Un!#TYjtd?UfPqbMAtcDXUED=V0lPjmRLp6)I32fb*-r>)_Q_gng z^~j)HybZH^V)jWkOJTO5q?nC>VjHM91%xl#QqYmw9yWrwBa+N+O9Sqbcy5~4W86p^ z!#-&nq!BFbgi|Eqlij*;-VNF(73|<{D#?;uPiaKK)4)3 zQgtuxSBA&fD5USOUgQLv-Y4dWYAd`-8yfVcX1gvLC6f>wciqvP?f{W@md@ zJQ#{NiKG)oFrMKk3pm{=5Tuiv63z_7=!jDd``#6FSQ;@AfzE*%9H?P|z5sP46yE|N zq@%$Y8|yuJ+Tbx0L>`6J9j^|+6*N{5n*ok~Q1ku3u?fxqiKqDs%jpB)zrTzMY?@Bo zvEHzTfn!Sb9PlPwzlzg6kV{0Vw6~+7``8tm z+4%aPD0qbon`IECg#}dO64%rsNi-6N5U@lXYc>8j)RT$fjiDOry>;`;%O4V%AT(ZW zvvDFHMWXY^_GTc)YP`z%k$$b0uEKM~Z z-W?}my;5v)sDe%QUYc*^CJK#-I@Tjl&JOK8K;kdq-hd&N{TV10*|=2!;Ypao7q(V^c6N_b_qlBEp<-~Hd{N) zrW1F1I-zF}3}%-#MEkM&Xn!_CyOGrqx6W(dIJ9z_h&!TCFz0Bg&YdB?7VwKgusK{x zB%qF`ppF~U3bywYn+dyX@R}RTb0-sbW{fo$>vac;Dl%%4hJjNOaZeU$e?*Zb=)Xxb zLqDjfurU}{{m)T&x`4tgP?&F+dV{Dci_(SQ(5Nv`tTvLP*(t=G6$3!#zv!M)K=<$e zMR&Hyd=iRdBv4Cl=ddxvo#Rbj(4*sAWi&gLxN~Fdbgy{b&D zH8NZ^vc<$*Y_p|_l7?F0b5157oV*T;bZ}C>C>;AAoGeMQrBaSsAxB2&W~tY-s2^G8 z#m*@2_NvcKmQ#H25FHF|mM7Vn-h+!G?93aAGfHil8BSnMGpC0D5RDUeh0V?ey9wy+ z?1a?YDjez)DYgn8uuATFiOK|9B{zeWVE!!Po&{q4aw{Do=&#BLYa=9-QiN?)-05E+ z98u(KrKqzS@Z@vhZf84ML`=bb;ah?{RC}(?Q)5^m;f(MT@^(;9TLY@cf1l{vJ+SHG%5vt0) z@2d(|X@|i|3_usy>{mh)nH0McvR^4>7Ylb;nF__QUxJ^F;OEll5Ozt_Vi!k;vWud_ z*aoC58=}MUoXFN8(cBPC;7Q^+3C{?2iS{_l5jUqhwKdu^hEbCUhn*Zgj{=9pU1zh) zkU=!AOtH%vN7Xm#Acr()eVkoL+zZoXrSpU<)U8>C0|b5 z%biw~SH#$r0I3s%gz{DzPAlVA>SnDRYaRGilC4E{fq;VO`hm!@+I;?mG#&>OIRDDKg*9zTxarSHC{u+je6!co8pyExp}H z{?0|zd_EGJb!)Ug916Bx%(!0LbnGhEf=XRu3y{f8=Gw-pM!$=cFOd{v~b`Klxt-uk~(RI&#pa!ti-rl3k@h5s(_!XrDpq z(Fh6G+l+hPF71=Nz7UqTrTk7Nff&AtxHoW$??Iwt;kh@a4Yf2plHKA>TGl7m6k#n= zzh8-fy*OgC%@9yzkelVz7uzh%xH*!PikPVk^ zE*Sk*j#g#Ext1l77~3Mtj6famPoR0!>@G!C zI79ey3!7z?ELeRHjhq-6@90EFYE=oo&aZNMh_R zf06Iz^avQP)``14#qL2?bdSu6aIMGgBkny;G%e)1m%9Og)d1|iN`>tfpGt0JyAa-X z!t-_@wC##ku$>5RyP_$KJ&t$Ju$>5DJDlh^fnlc;m3z-FCyI3^?(RJ1`?-s6TcYEE z`GFL>-!B;4FO1=jarQgn{!ScvQFKsnGJmLS9rCFMqb}Q{En|N`UiEw8{+_!m`U76 z^2ZvtBfuXy6nAazU%6X?8B;;!F`GRhy`zOa?oDg%Hgg|w zA8*Cd30NL0B=69*z6fZaC`~Lp7G<}Gh&VY9%p|i?%%~n8Zq`v zV|_wJoDGYV4&Nmb_n8#?hZqAAOcv}s3wEv(>2ZubTc=g#Mzj6I{RcYriFkB+D_jb2 z6#`bA=@I0gm5KCzEI6R|ixYh&PvKcV2I1uTJaM1nZYlV#gVLY3**~%U3%&f)cg+{L z+Xbb&gN5qrzfy5Zk&eaJ-AzBkmBxUY{ZV{ahp9YS?pen=Q&hm44DgRU~@9O}+qC+-{F z(m1Gaw;ZKqip6@f5NC7-aC$$SW#-=M&R!+%+dag;?{K#lSgnT^-nH3bs0fvh!$yaQ zR0%GM*?ZjW4HNs%;*hunaNk=Jim~?*uXZ6~%8~bFz&nh0|K@HVAe#kb|AAA;!=T$2 z7H-?@Lt(%uvVLgfaLNRc55pZ01;MQefGIKdfuhagZa-I>McfahYa*`c>|-GNkh^__ zOMJxL{=h#6Lm&J8@`(W_wHZE73X2H!F>ycPZWwMlmAIdB7oU4XPX+X6+#P_yTH=1r z-4h35bRO2`3yXaT`h#Ru6gO<8t%cDqQ|xm@zR&&hAa|*E>Z+c(ueduHGfxA)uPyeC z;)vTg_nQ>^3b0=(CgR1(V&q%y;scLpLx8y70fxIVkS-_g_uL(V@%fnl19vS9P9yG* z+#QO+(=qsyNIVJbIE$G_xH}Bvjd9Wxu(P5vJrDVH7F(Ql7ThHh%LX%AWjYbhq|mCs zW8x?vzOBdCYD)evfD@+tIMv0M8|;T|*x}saQ1>n#>QHmyNMv!Er>o%07F!*J`OB- zJXo+(9CuSX?xu7{q$Xk1v?95?*C}PFdE*mC_aqcO>f~8U)>lGd+>DFku8S`=j-^cj1egg+Bkd1Y17RKneg`xVmEiHlusQGhg^;B*mt$xPDJ*&owM6JmxThE4Tk(p1XbO29UO zY!^{7km(k8M?v4yxI5b0e@@pN#KM;t(ItQhIrs|Q9Xmw_o~~RKrO~BmcC)i(NIiAT znpLc4yMc09D%)MD$o5d;a4Db_PLDq%>87vK(?M*7L0tqPQ@c)nM_`0y`iLB-se25Q zw1})&G~o_Z&&j&W-3kv#vgKU824u62IO3R&sFoo?6uNhI)#~+zlmApGx*REK$Pfhr zFy4#1RhV@qn!RNy1f*aUNP$5Mg7Hu|a!isDnU(Yv@qZ-i_IoT7uZbiXB#Nwtt z_{$hzI}4)swX^+ji-fH-6clA1Hw`76(y>^b9X(r7Vp&s(o`aAh4*n``L$ZAftX*#+7pVKUe$H|?77qBsJf~g`TIZr2v9kk@p_Mt7)&M2?3m+r?ZlGyEE7{9I zHd07-U@|*M&>D0cEy`Vd_!3lzBWBBw~_QZOlwuA0ylcC@7u;)3X>BM7pD5rx718~I`>8b2Vu)7g52qNRsgOx^h z1g?3qNlnitNK=Bl6TDrk2lPn#_$Ff4nFEPWieZvAn!A&{PgX~)5kQAROVdd1P6j7y z!M`2Lrs|b8Mo`QXjHI|b#j856U&jjG0Kf}?s&aSsyhTO1=kQlrMR=y;c_H8Kf!{aq z5Ii|N@8SvKX@}=MJOW;{KghSm+>h}H_?z*3jz_?(#q%{DG5$+D-{jlCPsDqS=ZJz| zfn4-OTOby{DxMBv5RZnR68wruqTQ)r{Dh*XG-TrIXRd3~~yd+4*tEPv-hdWR>^y1%3N1 z@<$Z>B_0uN{HH)w`Kl77Jk^J}? z^ud6FKLwPG6y?Xy%fk=BuTWwjKfc=UD}(VXR=E|=nP>yg$qFjwgXBCzwPm~5@EwcK$1wa-^`)VKt0VZ~#E1Ez$55xvyP}G2o zWB`e8ejxjtCo`iNY-a{jIdfTY9*E7DC%~XB`*x9#)Wi&L%dVgHtx=D%fbzVVxdr(} zCGkb6$@xVoV3j~ombA>ARIm}{oFHa=W?ou;IX{@0l3JWxlvz-cUzC-VHTi><2>?d7 Bd|v&E!a965@)PtRmsTm^e9C;+$v-10%;|2O(xZ0S-k*jwv%4fbuDm10=;6(V%9}BFa+Q=nW8UObQjTzCt7dW(0+r=YmX?m^ zDiUDiSZm9>hM8e=vvdPveJs%3aX`!n#PL9!0A(iu>0~II3rGX~3RVMSGXeQQK%9;w zE&^p|0qJZY2B`t5F92eY`5<;7i0xWY5CWu47#M^YSb&TakRT9G1+gbjk=57D2eLrg zR|7E!FtISCYXj+A5F3aW12ISkPW*3a}NkX{?O^roZ~T5d^8FHJ)O>4Q>AFA1dsa-mQllvfL-(DG`9qJFDv zqo|7tiaVl?ixyoL*Vh7~EEYs`ahFwmKUZbN-Bs}kh=_{9_n+hj%C}#Czsa0?=6}wd zbLPym`)*0Pb3;=4xXDw8*=#qh4^@pZ$Fxr$VYBrrJb(V&{+;Px+8svw|Fkvjk{s{a z3yf7QziMh&*mPw}V^d9Qdvnvu1IyRkw>;?j!E-=vb$u^i;rdQq>H1b))ZDr18Ar9VNL2$KO!&aavxy$aZxgvD1_;L`&9eV6MDz-KJ*8Gx_urnuF@o)Op|;-3Ck#w zwFk@thJ4+ww{yz~xsmnG>rZZCzPxFGMf1Y=J(#zhtYhu^>as4s51sj}&a%;2cC0h0 zT=Hjo8swl~lSlXm$|e3RqGu_Zt;(I`HL9J(%spfVG%X$SqUb#T<&0Z3qWiD)57nGG zk~hykG@`y1@g4=Vgk|~)b4#UEMJ0M+>^H!jPbQ_x8x*1sbJ;YdN=j0J9Ko*e^(D8n zb-rO_BkS^wCU>wOef8wGtgc`{ud=W~1Zre0e#+U}f&wy%?I_Sm1^Y)qHW|&%;y3E(eHfY-*aQAdw%OmGgxDUxQ1E{2 z_h371Viu?VQ5!I=Bv}$LWx4>WNl{c|Rh885FkGMJPqoMr<<16`hLN%-#Qm3v{ zH12#u^lnIQ!;WtSZDlO0up)2|w2n!!DaH^Y1i~=lZF|69Yz*lszQ?K#eAtK{;?8#v zB+hOvEFkx?J%uHtYS-~XH|e_-8paz*-W~z}e!PUI^h;g@i6Lv}jVqen9rcvSuaM)1dijc11}!DQAzDjObNvydkC9;K!9vJAs`lSwSvm z3rdHOy=;AH1=+`5EZwK=x4UzS#!g!(si{#w*8)0G0&xS^b?AGRZ5#1%zXNw#sCK}% zp!FuM7oqhzwx#T8&-0Qu7_MzxwU+%}McX>A8)*9rYa6-Veb8zX4YzQ8JQ`kLO8N4v zze{d=EXeD*Zi4$_fan_v{I^A<1J%w-_Pg>8@`JYdiga4hQ7J?8`A;GKKXH4aRRtD2GgCvqK^B4!b`T z#P1uSWf+Uf@XYjgk#R3PBHy7%(nFG}?Dqdv@;KAv_t^IEjp_eDzkqC1E_d2q2jHJDyp5e?CGk(c^^XPo$iLci!jPZYz7gz^X_i{ zk(dnYF>Vc+#%>swO{TML<0cIK7;+!Q<>Fm_O!T8%--a&#g)TpSME-Zo>QCb0S=B4Z z47Q+*Sr{Ww3onIhrBP@ds$@?5?zKL7@kmS{N z`;S|eslu}3yZtBQs+Z78@&$W@t|l{?Hoh;ZW2NIM#w0pk>-aK2^q;%@XVtwZVy7wf zpG9X~&pK4>!}6*i*Y{fV>M+;$S@gC*&*% zvxYP#2a=MK2wAlj3)VTJ|HAc-0|>`gu;E;n*#kD5k8hT!_n~+Uxg#up9rXFnhvgB_ zW;`Wdc_Jby@UtNZAJ6YKZE*?I`%uLG81$L8pd3uWQY+c9;7bVDES2leVRh*TB}z<* z9ZC$1jhc|se=oX@ZL%hT5|U6tf^rF)KcTNq_5-jFMc5O>>7hJm_5l5jDapspBtnzc zm^}g;z3kT$@a20DE;p z+5oN}>;`z@QoxA`o(fHPgrElGZzWaCXgM3BO?z_vuL$KSg-~aynJl?%r2%nF(-h^= zjjG4?u!IQwjTx6`7aRiaG;o)7OKLO4N*!4f+ER9#z2dpE;qrj_cL;nB0j1PTmEvLL z`ipkObo$IblB~tj^ChI`aDe(KiH>cLZjn5;*rsRW`e8&ri|a2ld1Bs#SA<55P6*dPK?6&u7EcFn{>$7@jc1KU2)=Xf2|kL;s~ z8CcDJnpj1CVuo3OHEp?B()TU9VP+aqQOj5uY!r=MXDD2Mn>}rg8}`NoiO@W*zqu5( z&ULZho;3&^lA;+#(BAAe^N~a&!w-Aahb0W$yDTtiGoYkg`=4l?eW6vAxc-q{@qc!&!yQ&) z2Mso3a#r@y|3ZCy3CdubCVK<_vTJ5BqHVanMo!Qu3LEa6b(+TYe?K9gGa}(FungxP z&1=|$!WnjKa^~p&SZ%2_81*8qe*$ODV_=F?6b-Wnrzfs|+Ea0kHzXBaIW)5rV_d@Z z&yrH}2@BU`BMMD5^BqT=ihPJ2nBpeK*wLE7eU8{tw1A=7#j(c=C7(0T6y0+qDj!OU zI-4$S`-085*w%b$+m~$9l)>G!f5qOOq7ORa)S<{ZaAxtIKo_Wu&i^C!H5)j!yVy6Z ze(HZ4b)4NbRqv+!1bgq2?~^Q}wy@|uTeJuKCNvzc#v)WzT>lmkkPwV<#b%Y1qA8Dg zG`kytosEfhimj>5obw$5Hvv(+)}%IPwp-H8>gysB_JGrC9E!8>j)>&+i-W8<`g|Wh z`kcAs=o4|Duns>s1U=?a++6=b=;Zp3tZZ6VZnbVwC>i9AU)bzvL2{1WKFu@eyy(3mA{i~mBu;IKFK#>b)*lp`$|+%orVVwS5_4iAr%CYB z&ZOzty+`6?Lno!!G_jaai3O(*tsm)i1k73+p*13nedZKZ&K9|X%Ylq>r*>z+S&rr@ z5D*Hda_WFWM}W{;pE(ViOr;VCh;_^>7M^Kh^u4jHLF&;S?7;NgD%ukgJrL>{#pZOe z0Kq{!;x-3XI1#tYN0@aukf>6;wo66$M*Cc^IQ>^U=K+_@@@HhY5}bN)WHx1nucP6j zsh0^;(aTJTbYrJj?7Bj(_S#ICj@7Y!q#NY@)$K{eSSqp^D{<{YK+B4KJXhwO6PcycR6Bhr#=Agt1xdO^m@aM7A&`D4B&bZ zYc9Y}!(z?ij#252W4ZzS7XUX{SLrDLb~jtUMXhDfiYaslE_fY;{+82`Q0F!XWhnt8Hs6D8L(MU~c-lbbmcx;47(kzS zXGGFOU$&~8*n>o)81Z!h8>gdUA+sV0T0cR>V;8YZl$a>F6XSH9rl0 z+-03~XeGOO?tpxcc~5@2d3Sz4^BzL)Hu5v9{jdvG--B?+?rD^BYOq)5rnxFbR5x=v z25$6cC+DWk48i}JGV?*H)7*-60_QfdA(yM>1D*zG-vaHO(0)Im_g^%1q39*%P52UT zIt^Lm9a3>Dn>R1B7~SKpMjzm`3V{p|`k>F;D#@N0_xC`F`LUJLkTB~HoQ{K8nQX_r zp}niIO-$)D|0rp4ENi}==b23f>X9eCgg(kC?y>nSjPN(GM81&ACWmvEUSOzbgme&zi~Q8MB@;r^$^Ho_s;K6 z_ORXaeU8Pjq=9`pe^B~-O#D|2DW}tXNi5+aVMJmtVA_H-ZzF~`Gqxx#jL)#coHoT% zu>ttL~hvqDdV1Ec=_hEGlt8-RDxfbzm=`@du>=e_b)ci;lhf=x;O<7nV7$gb4*~WK*tom7p*Q{)2ro7?NtjBg{|2WAJX%X?|KOUMxDADpIb- zggPm7a{51P)}jIA47+NP#vF?VyAFqHmBu{t^I#*VzhWa6Ws_?zAo4D|c8#O$Kx1t! zr)${5i^?;99e3^<;apr_$F*=OTSZ<*8ChIhaork6gR`(U5{%X=Z4K52+Ykv`8*HRD zYM_nN>(@8}&cd;HF7TFLs@3C*0IitsCX))r#ZbDErnRXzE7-mx7cmwPZ!Sm zzo6+1r?&zn7Uv%lsP)}Z%ahUcBc~gH8ipzHQ;H3X?`=J8&Pbb{k=g?MBwGB}_`#+?ED-u)if6zeig%Jc*Dc z1Mvu)y<`G7%a#cKZAFMSZrh|1G^$Xn$ydc_g6=vXq?_D1}H3vTc{LLZC>B< zeqI8LH?fgRb9zk&b=M>XG8vrS&6X`Ko;zA2&6%Cc2Ou{Nqf$}DH$_Dfy{VG0A&XPI zW#v~waA1lOyES=(SVp~KaYK6YHr&PH+l}iO48@c30^kjHZfQ=*7%+0Wy`48pJ+-KB zd9GMkG0M%kn7qw{KiQDjrunheKYD? zP?AstW<83Kb)wvclHfCoe;4YzExwTboy8aQ<~ZG9ODGkJgwp#^BorZhKZ@Xse>Zhn zw7_gZNp$vrML&r8_b3THf9S^F){XziZuG;p`ilaOS`8VfAGc^>+@CC37_q$@y#ur` zLg4pUv@os>WsE& zAP%D7|Bj>-HI(332b!H|d#%GU=Q$P3LKHhnC=RgM;(RhD{w?L87Md--ts>61%|b0a zO7Q1{6gV;9LSI6U0aA3FEm$ZCen%x}D3AuC?tzkIbv#)^`2In&&0o0G1xFKSuVbXBtW zt#4VesCC!6Yx?(WX0~lwU~&*bLNk+);^+_vFq{%d0^tavAi92H zX2pZ`TBKN)QZ%@-o~S4SE*^`h>jA7NDy!lOyX&opD4?>!{%d9;QNLaIRo9z$SJiv3 zUv<{sl=9T|DVd`uOd29d*A#`TN7glBgm*ZG5%x-H- zyVVO_U#S)T%tmnDf`wY$Fi1+gwk zJdtqh>mt{uvZc#9QNH2I^2c>DNIA)s6#$e|T)9Ndr@69H%-?e5QZawWmCGJy+r5{o z?SV80mK=5%tj1@MBG%%YiRbga{dlg+S=*yXw?Z;kZg2$c-If~LHe^s4Ay>1-xqZns z?7G~^U^|=}!P77wA=j}3<|WYS@6b6rPw2cdZz`T|=DmXFru_ZndbZS`Ns8HZ{=yL@ za=NAyvoQV)a^>-qboEA!m_uBWp;gN%x>ci;!h!9nhLWRbN-v3+L%Fg8Y&WwL{vqVI z%vVrJ*0RQeIsRJ=VwR-^jV&I{Vd-v5_Jw6FWOZ%wLd&p-MTEApdOU`+FA54sIqMTJ z$p{t+WRnWkjAtdgE>ME!Gl2nQB>Ous*1Eyj>|7wVU!KmD7aa|Omar`8&|4q&Z4Ft! z7OE>*)nFkzfAFoD3_euc85kMW6@(AWdJ6(0z3O`AE-WahJnw@~hL=9Byp~icTaJ)W z6|uVBE_9Z$C53&-Ft(%26TN?i=~8A zzxo)vrzk+Su{VmU_0cjnQxz=;;RW1OVDNEPQ0&J(O)FmJ+}=RUB`jFnhkaB$gp{z} zC4Ofm7E{B289M42S1#f?nj-H7L$>`kFsY<`jIEtyCvmhIP;Va>pt9i zT~3z}MJpjchRrTrO2)E%rFmo*J5^dio@7PCo-&?xxP3)clbd8cJqFg*U>%2~F|X#P z3D=%sTG`Rwe_o&DS^>6ApkB+(B2afTb@-n=&&u9Vq`q0W2+y<2%Uk=uB)c8y2Cz4B(+2kCATe($2;3Z%cZ=2S@TV_HQS+0VvS+*uM1%UflC;I_DcZ4Hqt0(TJeHfvM@ zxZNMv7}a5*HtY_9Z)2Qq0_$HHB7faBsd5j=e07CPhYYLrRLJ9<#=yAXP-vm=MFk?LW|A|j*??FhV=Ftcp*DpJpmjm{>MnN~A)@Da$p zpO8zKJW9+X+`I=SkHX~92h@MWz5E~{zNTg=nZi!j4Cwa(1V1Vcd?=@Bnk73R%*`zh zBXA7L*ibq=^TWU=#Qel^AY&dznH&xNPZ8o%+0`^J_haZ5oX~x*>@{`-zD&9+UK{3@ zI|5%N?7cxpl24d>%q5vo9mT>@y->GZ2`c4Ka0=?CvAf1loYbddjJ8jM#Qb+@;Eb#x z$HRC{g!Q^eSZ}Bg>&qI$`tIdn{lIDj*m1SLjGQ5nuECU)6hcDvC_-n6`2#n1VcnlW z&DlgvITuogL75T8n|Hgq@_1C%;AewKsdFf}5x*^k)KHpMCw4%sQKsuw1P(sQPL3VW z8&>PfLv|NWgZjBGt6$hDYKctA2)Ak9w7S2w1%h z$#(W`kZcE`j)Vhiym55N=Z?99NK^HS8Rz#js~?|T@C^9A0$;aI;bf;J&qpQsetJ`6@@w#=d(cs=e z=Bx8%zX9sZAE`Q`>P?3h_~O+e@6VMSA4Oi{GV*5))LXz311c3UE8|IWUiIH>1g>8IHD zS^gx`b2tW>nDR4;BW&S$TFX!6j^Gyl* zpQ!sdI-ovAEJarRXztwHJcdIY%gry@_$mE!YD}9#$>6)Vd3=LYQv47gw}>_noL?n4 zPk=Li)Fe26n!P(^ zui@l{{vc1}=66EjByOI8LJ}mj-fvIV(ZguLps0LaQK}}3!12bzPz3S6*}sjpNxMB8mGz+?%m>qHveuF;Ci%h^g8+_+jMYNBr19O4S zsl=M1{xNfYbd?g}Dy&R{NGEhk5J25i{w7YHV*SmWriyt!r(GfDV27p+Ogk8sgGh4A%c;to(+3XghF2msZBb%R=j-aL zh%e+Oc;YpQrlFE74ZAhH-Cm-Ln&}Qg*u~~d&#CI}Fzkcv_F_4xdb9=&#Y5h%?yQTt z@iuHQ0(ZM#2ak71j4x4(N<11xaDLoO&{#;84uhs5`wN!9L`0YrZaU$ zf2R(XE-Wx(U|)D{=mqwrI>GgVQ#agN&~9HLH>d~Mq8VQDD!X|`HtEH-&IpnWc63HR zj|WP3M;%sFj_D|)@ucB2leuU5NpEJ&%yhXa_GcBRePAV(H3Q$5-7+(ydxPMQmtBL? zer)^9k?C1j>W$&5WqPve(f+KJI9W9LmEHtTCkDi4lHqF2kgDB?^%|wKO<&R` z;?x&cnFBv>jjO!Is`34QItK}zgkD=N+t+)ne1)aX&I!(ibJ(G}_@#o=T%nfG-&m?g zj+g%HIWw!sPcTh7Zn@_Qs(6HW^uj~uy0+_&jEPJ@usEJ9gY(2A#J$ZhF9 z%Zq*v0XYO7--EO9+v}sUk&oU?s`kaVYo0jFH9?8fq4CYiSK?PNy1wi@Px8QhYYc=| zD9)C+(a_&WMGsb|?|sxslUSX!isOy(29cuSfBZ0ix{DVXV)be&xEo31-@1 z=1xNIJnwR&Fc)7|*-w_$ZmA;D5M9IBMRT%>;RkL)^e#@z;Rg);!EbLCehBQ{;1W5o z8P7+9I5xL!d6iqRjOwm>N?T7Vzcib^I92iG^u}E!A z{MXf1ZwD-9BvBJ$rn)w$)Dyas)6vk81yfI)SAk2y)(9>KKT{QotBOFQ_|Iugt)WaN z^iQ195-8~pCA<9gle+5WbWE+LOd<41@jawQX~vO`#rAk{>6s!C`V^<*AYrf@=4NG# zuQg(XJ|prC$MR=RaRJZIX3xyc$f%8zo=uYWa5@2`f$Y<{en%a;GuC@vKJKVh^M++j z5_R=2oK6%+`XZ-wVuxPhv>pOp#^?1VJK6Sme&>96GMRlaZ(!yW)Pld_<5Ro6SJZG3 zQ6dATvH^{~yiuHgR=lW8OGNNKPNyegXg{Yjpw!2rjRVL`c4?!x=PVrRbM5wP@dNd6 zI-5P%7;()KuDs6a1>nwMXBz#EIl|}sCezU%fT>Lt&bgosVjG$Ul7sBYrh#2wwcjE1 z9Zu)551U2}X@uTG?e=@ZKTezCHQgN(HKlo#(@+YdzF1U`d9_VJydXk&{jh1xHNN>! zZbZGC+U+AEd_@qJ+VAV4U!@DMuBn{1u;-df$wGFfxy-o;E|{!revYwNK**AR;YAq= z%XN`q_6Lzs_?FUce^@U*4_rCFB5esW?kk~_(^fWpK|i!XD;F5dv0#vEZ@6A-%(XuW zHFCO?l`hC87yihR+ilq@=d#_6_4S-y#O_;Ao^^3zamU2s68e^3fkkEOh|U%3T8b+! zS>!Tpda9!+Ug?nR?|-}n`~cEvPTRm$0Px!mu2^TT)~+CZ$0wqo` zl9tS}*1r0141?1(;(Q{qxS+~mUGn-{dwU5S{tYWz;_E&c(Dk(%WcqM=16#bLc=m9E zv}Con_CsXs#iU~r9~;DO2y415eCW^VjWAXY!2xMn{8r@+q0EXdp$Wlx(=uGr60arK z$8gl($~^FoU_UJJ6;}Y^>-6nw%jVd2EXo#00R3nv8s&Lk|H`xAy(fWSY6(c$O|tZvzWwvMHA zNWKS-jwSvbu#gm5-pA;W{AVZlU!CBO0C&h9PvXV4eb)*8calfwJS$0~;{w7pv8)a! z1PsFj&XI0OJeE#eNf<#u(g6!&0?uUCMV>aHMQ9M1ewc;p9Wd~5Z3BQyo(RcJ!h&Zo zVDYa2@DR)$JVif)h5mscmtgLI@i#gtrTVfy%O(SO9s_@gBO%OCf_@M%JAToDwk|!= zgoOB0odYABV34E)o>U}$%RbD4FNv3ucxeVuVnrSJxc~*9ICi10L(d3+!f-ZbXD57H zIetKaEViHvMoQA~Z~+6Kg*g?YLs1z(!Jmm)!5~TgQUL>>fw?P22Y+!AkL`>nNE|Bco?rf=vhD6GGE?(%S1$pEw4_`ruUx(~4lmWD2SyAkxu7xIm~!p7 SE26QZ&n{XdZS!5dEag842JMvq diff --git a/bootstrap/lib/stdlib/ebin/file_sorter.beam b/bootstrap/lib/stdlib/ebin/file_sorter.beam index 705c822753df2f98af04a37293a4c5c6566d5ee1..a97d3ffd5a6b1f41670e5835da0d8ff84f3c4e42 100644 GIT binary patch delta 105 zcmX?bow4NxBZr%RkRby@_MeR$*R$Arn{yZ#7?>wN%W`$iU@GU$%q_?-Dv2*jP0lY$ x0ZB0eMOo4^b5cPZrgBaYGd?pfEx()}%uGowPAtM%W`GRnp}`Q1pxTA4GaJP diff --git a/bootstrap/lib/stdlib/ebin/filelib.beam b/bootstrap/lib/stdlib/ebin/filelib.beam index 2e1bac3e5ba4d0525880814c8fcd1845c1b75312..6b4f7434c0a13ea457d3361c93006fd3d95b2aac 100644 GIT binary patch literal 12192 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 literal 12052 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 delta 38 ucmbPGe4&WL%|FPHfx*&aBZrwe2gAYU90mpk=E-j6yO^>VHal7PF#-VEX$pD( diff --git a/bootstrap/lib/stdlib/ebin/shell.beam b/bootstrap/lib/stdlib/ebin/shell.beam index 632319a530472f6e45cd014c25301e2e061fcf26..6bed105309f73ce7194acc678203d56855ec7e59 100644 GIT binary patch delta 102 zcmezJm}$!sCJs0MAVUU*O*$Jnyf?CEH0LldFfdJy+Nj`^!BozhnOl%wR1#m5nw(#h u0+M0`in63-=A?qvm2-la@tJvP`Q`jzW=d*ta#3bMNq$jQR@UU2jTHd3q9U^Z delta 38 ucmdn;gz3v;CJs0MAVUU*jc+z`cyDA^Z_Z(0U|^gawNZg7i(&GfjTHbD{tc!8 diff --git a/bootstrap/lib/stdlib/ebin/zip.beam b/bootstrap/lib/stdlib/ebin/zip.beam index dc3478481fc4522f7f5258a8d328bd52c8f9417d..c15236688f55aa0de7d4203d3e4590b5473deabc 100644 GIT binary patch delta 21131 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 delta 20585 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%0A7%Q>9sZi%VDI;7jl=zV-y$ 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 Date: Tue, 10 Feb 2026 14:12:11 +0100 Subject: [PATCH 04/11] fixup! otp: Include file.hrl using -I instead of include lib --- lib/stdlib/src/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/stdlib/src/Makefile b/lib/stdlib/src/Makefile index ede4fa322b73..7bf39c7b9a29 100644 --- a/lib/stdlib/src/Makefile +++ b/lib/stdlib/src/Makefile @@ -221,13 +221,13 @@ opt: $(EBIN)/erl_id_trans.beam $(BOOTSTRAP_COMPILER)/ebin/erl_parse.beam: erl_parse.yrl $(gen_verbose) $(V_at)$(ERLC) -o $(BOOTSTRAP_COMPILER)/egen $(DETERMINISM_FLAG) erl_parse.yrl - $(V_at)$(ERLC) -o $(BOOTSTRAP_COMPILER)/ebin $(DETERMINISM_FLAG) $(BOOTSTRAP_COMPILER)/egen/erl_parse.erl + $(V_at)$(ERLC) -o $(BOOTSTRAP_COMPILER)/ebin $(ERL_COMPILE_FLAGS) $(DETERMINISM_FLAG) $(BOOTSTRAP_COMPILER)/egen/erl_parse.erl $(BOOTSTRAP_TOP)/lib/stdlib/egen/erl_parse.erl: erl_parse.yrl $(yecc_verbose)$(ERLC) $(YRL_FLAGS) -o$(BOOTSTRAP_TOP)/lib/stdlib/egen erl_parse.yrl $(BOOTSTRAP_COMPILER)/ebin/%.beam: %.erl - $(V_ERLC) -o $(BOOTSTRAP_COMPILER)/ebin $(DETERMINISM_FLAG) $< + $(V_ERLC) -o $(BOOTSTRAP_COMPILER)/ebin $(ERL_COMPILE_FLAGS) $(DETERMINISM_FLAG) $< $(EBIN)/erl_id_trans.beam: ../examples/erl_id_trans.erl $(V_ERLC) $(ERL_COMPILE_FLAGS) -o $(EBIN) $< From dd3be58d569ff2087b3be3989326a7dabcbbd2cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Tue, 10 Feb 2026 14:14:40 +0100 Subject: [PATCH 05/11] Don't generate deps when making app file We don't have a working erlang system at this point so we cannot create the dep file. --- erts/preloaded/src/Makefile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/erts/preloaded/src/Makefile b/erts/preloaded/src/Makefile index abd5122bf24a..d9b59debcda8 100644 --- a/erts/preloaded/src/Makefile +++ b/erts/preloaded/src/Makefile @@ -173,5 +173,8 @@ dialyzer: $(DIA_PLT) ../ebin \ $(DIA_WARNINGS) \ --verbose + +ifneq ($(filter $(APP_TARGET),$(MAKECMDGOALS)),$(APP_TARGET)) DEP_REL_TOP=../../../lib/ include $(ERL_TOP)/make/dep.mk +endif From 887c28b8630831594b557f4bc7780dfaa15e2ace Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Tue, 10 Feb 2026 14:22:55 +0100 Subject: [PATCH 06/11] fixup! kernel: Update file_info record to be a native-record --- erts/preloaded/src/prim_file.erl | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/erts/preloaded/src/prim_file.erl b/erts/preloaded/src/prim_file.erl index f3a7f9ea4571..83763170e4fe 100644 --- a/erts/preloaded/src/prim_file.erl +++ b/erts/preloaded/src/prim_file.erl @@ -675,10 +675,7 @@ read_handle_info_1(Fd, TimeType) -> case read_handle_info_nif(FRef) of {error, Reason} -> {error, Reason}; FileInfo -> - erlang:display(FileInfo), - AT = adjust_times(FileInfo, TimeType), - erlang:display(AT), - {ok, AT} + {ok, adjust_times(FileInfo, TimeType)} end catch error:_ -> {error, badarg} From bfe73eb71512277955ca7ed8d1272cd0222c97c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Tue, 10 Feb 2026 14:24:43 +0100 Subject: [PATCH 07/11] fixup! kernel: Update file_info record to be a native-record --- erts/preloaded/ebin/prim_file.beam | Bin 14260 -> 14216 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/erts/preloaded/ebin/prim_file.beam b/erts/preloaded/ebin/prim_file.beam index 7f5fb95200b2441a46533332f76e4f04c483eb7c..8ee1ce2ea49280efa3eaec6744aa5fce11cc0486 100644 GIT binary patch delta 2232 zcmZ9N3vd)g8po%1Hqf@Kj+xbkB!q=spvh*E4Ue-db2>aiXay`DRa%M~UYag7pro#> z@)1i*1OpN2BiKR785B{%%jNwFg81SU2oO==INyh-q9P~fBln-lXsJ`x+u!_u|L^Os zr>1AuO`knIIpW4~C5Ca;qeIJvj2I4D}hA#qe36YXNRI4M37AB#`L8S#bqQhY7Wif_d^abEl=eij!*hYZV$ zWkg;oZ5fqU$XuBxd&u50Df`GmStJL_!SZT(jl50{k!7-6-XKTIadNzzAa9YkhU7$b zZKyc+LHV$pC7+bD*PXNFQ1hS@_E^)>O$+Y`gU}549bi&8?rKI=rblM%RCg> z*uA?OwVPw{a8%R1;kYx*N?R|Qu{g6#RnfQD+84@Zv*UyhYjlR2r`a6U*!M5@?BAYM z-WoDb$7l|FY8a~>&*si#^GsH^n?0@A{H5%f3|sIxQ&U*41pE6ywy>=WDic0D<&@d1 z-X^?E(*rG8W_c@{n~0>-%`q$N+ELd`x(O3qv}t;@gv|<&k)?{hJEI5}nznhW+R`s) z(z&QxooR6FVBNX}h|O$4cMBN;6z@s$1>J)tVj;Th2b$tag(L zcY^oylM^(3AFlBLlifj(tU+*V`hi-*dyo_A058AfAwILtLgo7YCc5t95yyFuzciOZqxK*fahJpZ|~wd6@=fR=_gQ@ zK&c37L7rX zzVaU^-Bd+Ee)*RuwG11+H|12B16sUrJZsIOp$4@4}hGVDC4>33>cs(_qR^HZg{-`#Bz{)ndE zd%5VUCSn8w?kUVC|5LSv z*X3Tg9>#f^{s`j=80$J0eOl9>)F*`la(;&194CB1BpnY9MrG1bn*O3n91*1*;46_= z-9)KP`*r9noz@%*; zEdlB2lbxE!LAD!&zaD^IKG>ysZ-5=h*d2g`58lu`3D5$t#|_zI;^dq_)I!SaXgO@e#CJOqm%<@55kXncM-$VJ$X@AC^(z>*wr!3 zi&5Ym6lhO5@8P?ys!HN+_RgFwxs3E#iqN~l7%yUwAbtt6ckRS@ zU8M&W*Sv-3SNitv;&*=+@B336Dto|NF!U(&!5DixIXM-?-t7tetPS*KnAc#0pf_P& z9mGovW3sUdH)wz~U|t!-^_ZJ6yo3dqR|I+;=2wGw7Uty`xJV6tyx6NV6Z0YrJS1|x L7iZi-)#m>J%*rz5 delta 2273 zcmZ9N3vg7`8OQJ0yMfcwRW7+(HU!vg*p-}QxtmRb+D>D83kl&+j8$l9XZj!zHD}Zi zP1>>TjO)nM(FhSZ6gZ)RB|fl(M_3SfM-XUh(2xXqh?Ksxw$)NBRV$VL@8;rY@65O7 zyZ_(+`_4Ic@7aB1;r4}z>9^cgVHh`dPp$ph&9h|l?S>KfiSfxrW*Y{n>Pf62nPI-0&b(xPMBuc*0e7ebEdf_vSS{z(#BI} zB*v_;awnBruLSbhqcOs#t#fM3^Q>KECf#uNtNZfm`UB?q2rXofO=F8^vn8#p!(@*i zVoMcU*2R`*nOekFEMUcP_VX&Xa&QFZAiO5&)Y@#7O?a)Q{Ri^Qx_-7K9!jUXBUaG0 z!>*Zd<0jTKsOj+oc?sYZs<_0a1H(6qRdvbusqOon=?P5-y+tHUD>9EQHrbLOTM^Dr zqxJOd3Bv0%9m2|2W92hkwkSR#?aU%vXnMj^RcA@zjMsu`=cpUBT{G^6%{&-j{<@|o z;m~QqXYF=wwf7)cKEsr^+Ita^UbYe&Yh`Ky>%g|Ld3Cv@wBQsLeTQoXUDI|O<8BQe zu2rMyX>}8iRG-02Ew0(X?h+D>{Nl$^62l8t-(^~W?gnO+<&OI48p&y=^p`pp>8QH z%=`)26WG{yeaoM7mhWl$Ccs*k@b8asoq2@+K-0INtb;PoxBew(ZP4^>fF~`&=YPp* zG}k!|bIqkO7MW^VX3|+;vR}H)GO@G;n*O!kqWOe3CY=V8S(zzQaP=yu ziFG-55`JgMFf{%9NP|XP)@A3#oRbFOO*!=)Po)+ufFg6syHLg|w=7!s543s~8@?y$ zG@F&K?M>V4#%;V_CkbDu=>-@zz|fL(?!9Wb_Y=c?n*I}p=hV|>DRNN_m6enCR4|#c z{{{6|*x~&l%W4WbKh^Y-s!f)Wf2)>c^|(uSnS?)}>HA(SR+R}^23!wm`hhwM*N5t2 zvO4;K=lYqZ|AA{GdOaM9S$HFw!cM!UAE{ZBqvW!>Yw}meeKZrsC7S*h#%>rph9`Yo z(~s5R$(4mypl^y1zC4tU`3IvZ;V8`wHQEtjPQW*#Zsl;@D$N6`*{QTm=v$z74(n?) z52~zF8Oejb75&zJrr$a>FEvp`Q^~@S;632$Kf}8;rgdEtbc@$tTz&;-o<-mT;V*m~NKo0n%I7fOlp9r$wApAui#B<=F z<_UlUs5s<<>vG^F%_jl$0vvV&c72Q%5`IMU5{QRXYx<@PNA?nMpXQ}FX5$Dyrg<5} z!w_G&-Z^G!o&*?A_^X;v1~>xHf1`8UbXl`^QjTlxz%YUE0nJk|9K~ZB{Icx~;1n)$ zPT*_~5kBNN187waXO!?0-d)JBbP-SE?;(nVS%h7^rg;S#{1y#PCY@9GQCIa9CS1jYzcH*~vFE&>PslMk(ZnC|?6&*n zU?2=1;+_`dWCPN8w!dN&sd&Ugh#=xAgm-!Q(}=73GoFa+MZ`fBtSZm^8rfC)n@{C0 ze=0xre|ezxesA)?gV3)>^bK=z&d)xzAhye8U7`OWQTEm!cY{3l{KsqsQ w_Vbk(HzB-& Date: Tue, 10 Feb 2026 14:24:58 +0100 Subject: [PATCH 08/11] fixup! otp: Include file.hrl using -I instead of include lib --- lib/asn1/src/Makefile | 1 + lib/public_key/src/Makefile | 2 +- lib/sasl/src/Makefile | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/asn1/src/Makefile b/lib/asn1/src/Makefile index 058303c8d341..0ddd70f9a51a 100644 --- a/lib/asn1/src/Makefile +++ b/lib/asn1/src/Makefile @@ -103,6 +103,7 @@ EXAMPLES = \ ERL_COMPILE_FLAGS += \ -I$(ERL_TOP)/lib/stdlib \ + -I../../kernel/include \ -Werror +nowarn_deprecated_catch ifeq ($(ERL_DETERMINISTIC),yes) diff --git a/lib/public_key/src/Makefile b/lib/public_key/src/Makefile index 1eacd30b18e2..1c8013f0f76f 100644 --- a/lib/public_key/src/Makefile +++ b/lib/public_key/src/Makefile @@ -80,7 +80,7 @@ PUB_KEY_FLAGS = # ---------------------------------------------------- # FLAGS # ---------------------------------------------------- -PUB_KEY_ERL_FLAGS += -I $(INCLUDE) -I ../asn1/ +PUB_KEY_ERL_FLAGS += -I $(INCLUDE) -I ../asn1/ -I../../kernel/include ERL_COMPILE_FLAGS += $(PUB_KEY_ERL_FLAGS) +warn_obsolete_bool_op \ $(PUB_KEY_FLAGS) \ diff --git a/lib/sasl/src/Makefile b/lib/sasl/src/Makefile index 22262f8860e4..ae6234fbcae6 100644 --- a/lib/sasl/src/Makefile +++ b/lib/sasl/src/Makefile @@ -64,7 +64,7 @@ TARGET_FILES= $(MODULES:%=$(EBIN)/%.$(EMULATOR)) $(APP_TARGET) $(APPUP_TARGET) # FLAGS # ---------------------------------------------------- -ERL_COMPILE_FLAGS += -I../../stdlib/include -Werror +nowarn_deprecated_catch +ERL_COMPILE_FLAGS += -I../../stdlib/include -I../../kernel/include -Werror +nowarn_deprecated_catch # ---------------------------------------------------- From c0f5c74da0cf9ba4c17a1989582e89df1468648d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Wed, 11 Feb 2026 10:25:40 +0100 Subject: [PATCH 09/11] erts: Fix records to correctly use the atom cache --- lib/debugger/src/Makefile | 2 +- lib/dialyzer/src/Makefile | 1 + lib/eunit/src/Makefile | 2 +- lib/ftp/src/Makefile | 2 +- lib/mnesia/src/Makefile | 1 + lib/observer/src/Makefile | 1 + lib/reltool/src/Makefile | 3 ++- lib/ssh/src/Makefile | 2 +- lib/ssl/src/Makefile | 2 +- lib/tftp/src/Makefile | 2 +- lib/tools/src/Makefile | 2 +- lib/xmerl/src/Makefile | 1 + 12 files changed, 13 insertions(+), 8 deletions(-) diff --git a/lib/debugger/src/Makefile b/lib/debugger/src/Makefile index 21d1ea91dd8a..2f36c455fdf5 100644 --- a/lib/debugger/src/Makefile +++ b/lib/debugger/src/Makefile @@ -87,7 +87,7 @@ APPUP_TARGET = $(EBIN)/$(APPUP_FILE) # ---------------------------------------------------- # FLAGS # ---------------------------------------------------- -ERL_COMPILE_FLAGS += -Werror -I $(ERL_TOP)/lib -pa $(ERL_TOP)/lib/wx/ebin +nowarn_deprecated_catch +ERL_COMPILE_FLAGS += -Werror -I $(ERL_TOP)/lib -I../../kernel/include -pa $(ERL_TOP)/lib/wx/ebin +nowarn_deprecated_catch # ---------------------------------------------------- diff --git a/lib/dialyzer/src/Makefile b/lib/dialyzer/src/Makefile index 6d7062a7f88b..6852459f2bda 100644 --- a/lib/dialyzer/src/Makefile +++ b/lib/dialyzer/src/Makefile @@ -96,6 +96,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE) # FLAGS # ---------------------------------------------------- +ERL_COMPILE_FLAGS += -I../../kernel/include ERL_COMPILE_FLAGS += -Werror ERL_COMPILE_FLAGS += +warn_export_vars +warn_unused_import +warn_missing_spec +warn_obsolete_bool_op diff --git a/lib/eunit/src/Makefile b/lib/eunit/src/Makefile index e08fad6c0278..5c67d38b8a1f 100644 --- a/lib/eunit/src/Makefile +++ b/lib/eunit/src/Makefile @@ -52,7 +52,7 @@ RELSYSDIR = $(RELEASE_PATH)/lib/eunit-$(VSN) EBIN = ../ebin INCLUDE=../include -ERL_COMPILE_FLAGS += -pa $(EBIN) -pa ../../stdlib/ebin -I$(INCLUDE) \ +ERL_COMPILE_FLAGS += -pa $(EBIN) -pa ../../stdlib/ebin -I../../kernel/include -I$(INCLUDE) \ +warn_deprecated_catch +warn_obsolete_bool_op +warn_unused_import -Werror PARSE_TRANSFORM = eunit_autoexport.erl diff --git a/lib/ftp/src/Makefile b/lib/ftp/src/Makefile index c7500d2ee426..5ebbdf10283d 100644 --- a/lib/ftp/src/Makefile +++ b/lib/ftp/src/Makefile @@ -74,7 +74,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE) # FLAGS # ---------------------------------------------------- EXTRA_ERLC_FLAGS = +warn_unused_vars +nowarn_deprecated_catch -ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/kernel/src \ +ERL_COMPILE_FLAGS += -I../../kernel/include -I$(ERL_TOP)/lib/kernel/src \ -pz $(EBIN) \ -pz $(ERL_TOP)/lib/public_key/ebin \ $(EXTRA_ERLC_FLAGS) -DVSN=\"$(VSN)\" diff --git a/lib/mnesia/src/Makefile b/lib/mnesia/src/Makefile index 682a534f9c8f..3fba3802e6ad 100644 --- a/lib/mnesia/src/Makefile +++ b/lib/mnesia/src/Makefile @@ -98,6 +98,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE) # FLAGS # ---------------------------------------------------- ERL_COMPILE_FLAGS += \ + -I../../kernel/include \ -Werror +warn_obsolete_bool_op +nowarn_deprecated_catch \ +'{parse_transform,sys_pre_attributes}' \ +'{attribute,insert,vsn,"mnesia_$(MNESIA_VSN)"}' diff --git a/lib/observer/src/Makefile b/lib/observer/src/Makefile index ae8686984658..162b02f5945b 100644 --- a/lib/observer/src/Makefile +++ b/lib/observer/src/Makefile @@ -123,6 +123,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE) # ---------------------------------------------------- ERL_COMPILE_FLAGS += \ -I../include \ + -I../../kernel/include \ -I ../../et/include \ -I ../../../libraries/et/include \ -I $(ERL_TOP)/lib \ diff --git a/lib/reltool/src/Makefile b/lib/reltool/src/Makefile index be8181031d42..7cf0ff09561c 100644 --- a/lib/reltool/src/Makefile +++ b/lib/reltool/src/Makefile @@ -62,7 +62,8 @@ APPUP_TARGET = $(EBIN)/$(APPUP_FILE) ERL_COMPILE_FLAGS += +'{parse_transform,sys_pre_attributes}' \ +'{attribute,insert,app_vsn,$(APP_VSN)}' \ -Werror +nowarn_deprecated_catch \ - -I $(ERL_TOP)/lib + -I $(ERL_TOP)/lib \ + -I../../kernel/include # ---------------------------------------------------- # Targets diff --git a/lib/ssh/src/Makefile b/lib/ssh/src/Makefile index 6e7f241a0f5a..33e6135179c9 100644 --- a/lib/ssh/src/Makefile +++ b/lib/ssh/src/Makefile @@ -129,7 +129,7 @@ INTERNAL_HRL_FILES = \ # FLAGS # ---------------------------------------------------- EXTRA_ERLC_FLAGS = +warn_unused_vars +nowarn_deprecated_callback +warn_obsolete_bool_op +nowarn_deprecated_catch -ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/kernel/src \ +ERL_COMPILE_FLAGS += -I../../kernel/include -I$(ERL_TOP)/lib/kernel/src \ -pz $(EBIN) \ -pz $(ERL_TOP)/lib/public_key/ebin \ $(EXTRA_ERLC_FLAGS) diff --git a/lib/ssl/src/Makefile b/lib/ssl/src/Makefile index fe4a5f2bade9..b28fe8ac9fde 100644 --- a/lib/ssl/src/Makefile +++ b/lib/ssl/src/Makefile @@ -164,7 +164,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE) # FLAGS # ---------------------------------------------------- EXTRA_ERLC_FLAGS = +warn_unused_vars -Werror +nowarn_deprecated_callback +warn_obsolete_bool_op +nowarn_deprecated_catch -ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/kernel/src \ +ERL_COMPILE_FLAGS += -I$(ERL_TOP)/lib/kernel/src -I../../kernel/include \ -pz $(EBIN) \ -pz $(ERL_TOP)/lib/public_key/ebin \ $(EXTRA_ERLC_FLAGS) -DVSN=\"$(VSN)\" diff --git a/lib/tftp/src/Makefile b/lib/tftp/src/Makefile index eb86fcb33121..4a34e2dc3458 100644 --- a/lib/tftp/src/Makefile +++ b/lib/tftp/src/Makefile @@ -72,7 +72,7 @@ APPUP_TARGET= $(EBIN)/$(APPUP_FILE) # FLAGS # ---------------------------------------------------- EXTRA_ERLC_FLAGS = +warn_unused_vars +nowarn_missing_spec_documented +warn_obsolete_bool_op +nowarn_deprecated_catch -ERL_COMPILE_FLAGS += \ +ERL_COMPILE_FLAGS += -I../../kernel/include \ -pz $(EBIN) \ $(EXTRA_ERLC_FLAGS) diff --git a/lib/tools/src/Makefile b/lib/tools/src/Makefile index afbd76fbe49d..8df687022294 100644 --- a/lib/tools/src/Makefile +++ b/lib/tools/src/Makefile @@ -80,7 +80,7 @@ CSS = $(PRIVDIR)/styles.css # ---------------------------------------------------- # FLAGS # ---------------------------------------------------- -ERL_COMPILE_FLAGS += -Werror +nowarn_deprecated_catch +ERL_COMPILE_FLAGS += -Werror +nowarn_deprecated_catch -I../../kernel/include ifeq ($(ERL_DETERMINISTIC),yes) DEP_SKIP_FILES = xref_parser.erl diff --git a/lib/xmerl/src/Makefile b/lib/xmerl/src/Makefile index b420ad8b9894..6ac294027aac 100644 --- a/lib/xmerl/src/Makefile +++ b/lib/xmerl/src/Makefile @@ -127,6 +127,7 @@ TARGET_FILES = $(MODULES:%=$(EBIN)/%.$(EMULATOR)) $(APP_TARGET) $(APPUP_TARGET) # ---------------------------------------------------- ERL_COMPILE_FLAGS += \ -I ../include \ + -I../../kernel/include \ +warn_unused_vars +warn_obsolete_bool_op # +bin_opt_info From 6cb8aeb2dcced1d44f7c63fef5055dd40951d40b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Wed, 11 Feb 2026 11:11:40 +0100 Subject: [PATCH 10/11] Fix include files --- lib/kernel/src/disk_log.hrl | 2 +- lib/xmerl/test/xmerl_std_SUITE.erl | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/lib/kernel/src/disk_log.hrl b/lib/kernel/src/disk_log.hrl index 34dc4ba51bd1..cea8823fc651 100644 --- a/lib/kernel/src/disk_log.hrl +++ b/lib/kernel/src/disk_log.hrl @@ -51,7 +51,7 @@ %% Needed for the definition of #file_info{} %% Must use include_lib() so that we always can be sure to find %% file.hrl. A relative path will not work in an installed system. --include("file.hrl"). +-include_lib("kernel/include/file.hrl"). %%------------------------------------------------------------------------ %% Types -- alphabetically diff --git a/lib/xmerl/test/xmerl_std_SUITE.erl b/lib/xmerl/test/xmerl_std_SUITE.erl index 45a50ed5775b..1008e2aab9dd 100644 --- a/lib/xmerl/test/xmerl_std_SUITE.erl +++ b/lib/xmerl/test/xmerl_std_SUITE.erl @@ -31,6 +31,8 @@ %%-include("xmerl.hrl"). -include_lib("xmerl/include/xmerl.hrl"). +-include_lib("kernel/include/file.hrl"). + -define(ibm_dir,"ibm"). -define(sun_dir,"sun"). -define(japanese_dir,"japanese"). @@ -9921,7 +9923,6 @@ rm_files([F|Fs]) -> end, rm_files(Fs). --include_lib("kernel/include/file.hrl"). change_mode(Files) -> change_mode3(Files). change_mode2(Dir)-> From fd442cc6e00bf09b2fac91e922622bf2a2b63e25 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lukas=20Backstr=C3=B6?= Date: Wed, 11 Feb 2026 12:53:54 +0100 Subject: [PATCH 11/11] Fix more include --- lib/stdlib/test/beam_lib_SUITE.erl | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/stdlib/test/beam_lib_SUITE.erl b/lib/stdlib/test/beam_lib_SUITE.erl index 9f9e00bc0350..37b34eec7b5b 100644 --- a/lib/stdlib/test/beam_lib_SUITE.erl +++ b/lib/stdlib/test/beam_lib_SUITE.erl @@ -34,6 +34,8 @@ -define(privdir, proplists:get_value(priv_dir, Conf)). -endif. +-include_lib("kernel/include/file.hrl"). + -export([all/0, suite/0,groups/0,init_per_suite/1, end_per_suite/1, init_per_group/2,end_per_group/2, normal/1, error/1, cmp/1, cmp_literals/1, strip/1, strip_add_chunks/1, otp_6711/1, @@ -549,8 +551,6 @@ otp_6711(Conf) when is_list(Conf) -> file:del_dir(Dir), ok. --include_lib("kernel/include/file.hrl"). - unwritable(Fname) -> {ok, Info} = file:read_file_info(Fname), Mode = Info#file_info.mode - 8#00200,