File 4631-Remove-references-to-the-JAM-emulator.patch of Package erlang
From 966f3a6b4f960a21f88cf17260a0cb502822c618 Mon Sep 17 00:00:00 2001
From: Richard Carlsson <carlsson.richard@gmail.com>
Date: Sun, 25 Jan 2026 10:52:37 +0100
Subject: [PATCH] Remove references to the JAM emulator
---
erts/emulator/sys/unix/sys.c | 2 +-
erts/emulator/test/statistics_SUITE.erl | 1 -
erts/emulator/utils/make_preload | 4 +--
erts/preloaded/src/init.erl | 5 ++--
lib/inets/test/rules.mk | 34 +++++++++++++---------
lib/megaco/src/rules.mk | 9 +-----
lib/sasl/src/release_handler.erl | 2 +-
lib/stdlib/src/filename.erl | 32 ++++++++++-----------
lib/stdlib/test/epp_SUITE_data/mac3.erl | 4 ---
lib/stdlib/test/filename_SUITE.erl | 38 ++++++++++++-------------
lib/tools/emacs/erlang-start.el | 4 +--
lib/tools/emacs/erlang_appwiz.el | 6 ++--
lib/tools/src/xref_base.erl | 7 ++---
lib/tools/test/make_SUITE.erl | 2 +-
14 files changed, 71 insertions(+), 79 deletions(-)
diff --git a/erts/emulator/sys/unix/sys.c b/erts/emulator/sys/unix/sys.c
index 4663b680c0..218da54475 100644
--- a/erts/emulator/sys/unix/sys.c
+++ b/erts/emulator/sys/unix/sys.c
@@ -926,7 +926,7 @@ void erts_do_break_handling(void)
}
-/* Fills in the systems representation of the jam/beam process identifier.
+/* Fills in the systems representation of the Beam process identifier.
** The Pid is put in STRING representation in the supplied buffer,
** no interpretatione of this should be done by the rest of the
** emulator. The buffer should be at least 21 bytes long.
diff --git a/erts/emulator/test/statistics_SUITE.erl b/erts/emulator/test/statistics_SUITE.erl
index 72833df62c..6f38690668 100644
--- a/erts/emulator/test/statistics_SUITE.erl
+++ b/erts/emulator/test/statistics_SUITE.erl
@@ -230,7 +230,6 @@ do_much(N) ->
%% Test that statistics(reductions) is callable, and that
%% Total_Reductions and Reductions_Since_Last_Call make sense.
-%% This to fail on pre-R3A version of JAM.
reductions(Config) when is_list(Config) ->
{Reductions, _} = statistics(reductions),
diff --git a/erts/emulator/utils/make_preload b/erts/emulator/utils/make_preload
index 9ec99f0074..0d042c2485 100755
--- a/erts/emulator/utils/make_preload
+++ b/erts/emulator/utils/make_preload
@@ -30,7 +30,7 @@ use File::Basename;
# standard output.
#
# Usage:
-# make_preload [ Options ] file.{jam,beam}
+# make_preload [ Options ] file.beam
#
# Options:
# -rc Produce a resource script rather than C source.
@@ -133,7 +133,7 @@ if ($gen_rc) {
sub usage {
warn "$progname: ", @_, "\n";
- die "usage: $progname -o output-directory file.{jam,beam}\n";
+ die "usage: $progname -o output-directory file.beam\n";
}
sub error {
diff --git a/erts/preloaded/src/init.erl b/erts/preloaded/src/init.erl
index 87aebf4e10..cb23a84519 100644
--- a/erts/preloaded/src/init.erl
+++ b/erts/preloaded/src/init.erl
@@ -1839,10 +1839,9 @@ reverse([A, B | L]) ->
-spec objfile_extension() -> nonempty_string().
objfile_extension() ->
- ".beam".
+ ".beam". % currently only one possibility
+%% %% if there are several implementations:
%% case erlang:system_info(machine) of
-%% "JAM" -> ".jam";
-%% "VEE" -> ".vee";
%% "BEAM" -> ".beam"
%% end.
diff --git a/lib/inets/test/rules.mk b/lib/inets/test/rules.mk
index cc3150934d..7dc36a9326 100644
--- a/lib/inets/test/rules.mk
+++ b/lib/inets/test/rules.mk
@@ -1,11 +1,26 @@
#-*-makefile-*- ; force emacs to enter makefile-mode
-# ----------------------------------------------------
-# Make include file for otp
+
+# %CopyrightBegin%
#
-# Copyright (C) 1996, Ericsson Telecommunications
-# Author: Lars Thorsen
-# ----------------------------------------------------
-.SUFFIXES: .hrl .erl .jam .beam
+# SPDX-License-Identifier: Apache-2.0
+#
+# Copyright Ericsson AB 1996-2026. All Rights Reserved.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+# %CopyrightEnd%
+
+.SUFFIXES: .hrl .erl .beam
# ----------------------------------------------------
@@ -22,7 +37,6 @@ ERL_COMPILE_FLAGS += +debug_info
ERLC_WFLAGS = -W
ERLC = erlc $(ERLC_WFLAGS) $(ERLC_FLAGS)
ERL.beam = erl.beam -boot start_clean
-ERL.jam = erl -boot start_clean
ERL = $(ERL.$(EMULATOR))
ifeq ($(EBIN),)
@@ -32,14 +46,8 @@ endif
ESRC = .
-$(EBIN)/%.jam: $(ESRC)/%.erl
- $(ERLC) -bjam $(ERL_COMPILE_FLAGS) -o$(EBIN) $<
-
$(EBIN)/%.beam: $(ESRC)/%.erl
$(ERLC) -bbeam $(ERL_COMPILE_FLAGS) -o$(EBIN) $<
-.erl.jam:
- $(ERLC) -bjam $(ERL_COMPILE_FLAGS) -o$(dir $@) $<
-
.erl.beam:
$(ERLC) -bbeam $(ERL_COMPILE_FLAGS) -o$(dir $@) $<
diff --git a/lib/megaco/src/rules.mk b/lib/megaco/src/rules.mk
index c5a9d96244..b415bf5ab0 100644
--- a/lib/megaco/src/rules.mk
+++ b/lib/megaco/src/rules.mk
@@ -20,7 +20,7 @@
#
# %CopyrightEnd%
-.SUFFIXES: .erl .jam .beam .yrl .hrl .sgml .html .so .c .flex .flex.src
+.SUFFIXES: .erl .beam .yrl .hrl .sgml .html .so .c .flex .flex.src
CC = gcc
@@ -35,7 +35,6 @@ EMULATOR = beam
ERLC_WFLAGS = -W
ERLC = erlc $(ERLC_WFLAGS) $(ERLC_FLAGS)
ERL.beam = erl.beam -boot start_clean
-ERL.jam = erl -boot start_clean
ERL = $(ERL.$(EMULATOR))
ifndef EBIN
@@ -46,15 +45,9 @@ ifndef ESRC
ESRC = .
endif
-$(EBIN)/%.jam: $(ESRC)/%.erl
- $(ERLC) -bjam $(ERL_COMPILE_FLAGS) -o$(EBIN) $<
-
$(EBIN)/%.beam: $(ESRC)/%.erl
$(ERLC) -bbeam $(ERL_COMPILE_FLAGS) -o$(EBIN) $<
-.erl.jam:
- $(ERLC) -bjam $(ERL_COMPILE_FLAGS) -o$(dir $@) $<
-
.erl.beam:
$(ERLC) -bbeam $(ERL_COMPILE_FLAGS) -o$(dir $@) $<
diff --git a/lib/sasl/src/release_handler.erl b/lib/sasl/src/release_handler.erl
index 49b5c83035..f64f07f2a7 100644
--- a/lib/sasl/src/release_handler.erl
+++ b/lib/sasl/src/release_handler.erl
@@ -302,7 +302,7 @@ release_handler does.
%% | |- start_erl (reads start_erl.data)
%% | |_ <to_erl>
%% |
-%% |- erts-EVsn1 --- bin --- <jam44>
+%% |- erts-EVsn1 --- bin --- <beam.smp>
%% | |- <epmd>
%% | |_ erl
%% |- erts-EVsn2
diff --git a/lib/stdlib/doc/src/filename.xml b/lib/stdlib/doc/src/filename.xml
index 89ac6394a9..f9b6cda0d2 100644
--- a/lib/stdlib/doc/src/filename.xml
+++ b/lib/stdlib/doc/src/filename.xml
@@ -384,7 +384,7 @@ true
<pre>
15> <input>filename:extension("foo.erl").</input>
".erl"
-16> <input>filename:extension("beam.src/kalle").</input>
+16> <input>filename:extension("bork.src/kalle").</input>
[]</pre>
</desc>
</func>
@@ -497,14 +497,14 @@ true
if it is <c><anno>Ext</anno></c>.</p>
<p><em>Examples:</em></p>
<pre>
-20> <input>filename:rootname("/beam.src/kalle").</input>
-"/beam.src/kalle"
-21> <input>filename:rootname("/beam.src/foo.erl").</input>
-"/beam.src/foo"
-22> <input>filename:rootname("/beam.src/foo.erl", ".erl").</input>
-"/beam.src/foo"
-23> <input>filename:rootname("/beam.src/foo.beam", ".erl").</input>
-"/beam.src/foo.beam"</pre>
+20> <input>filename:rootname("/bork.src/kalle").</input>
+"/bork.src/kalle"
+21> <input>filename:rootname("/bork.src/foo.erl").</input>
+"/bork.src/foo"
+22> <input>filename:rootname("/bork.src/foo.erl", ".erl").</input>
+"/bork.src/foo"
+23> <input>filename:rootname("/bork.src/foo.beam", ".erl").</input>
+"/bork.src/foo.beam"</pre>
</desc>
</func>
diff --git a/lib/stdlib/src/filename.erl b/lib/stdlib/src/filename.erl
index 89ac6394a9..f9b6cda0d2 100644
--- a/lib/stdlib/src/filename.erl
+++ b/lib/stdlib/src/filename.erl
@@ -235,10 +235,10 @@ skip_prefix(Name, _) ->
%% that you know exists, but you are not sure which one it is.
%%
%% Example: basename("~/src/kalle.erl", ".erl") -> "kalle"
-%% basename("~/src/kalle.jam", ".erl") -> "kalle.jam"
+%% basename("~/src/kalle.beam", ".erl") -> "kalle.beam"
%% basename("~/src/kalle.old.erl", ".erl") -> "kalle.old"
%%
-%% rootname(basename("xxx.jam")) -> "xxx"
+%% rootname(basename("xxx.beam")) -> "xxx"
%% rootname(basename("xxx.erl")) -> "xxx"
-spec basename(Filename, Ext) -> file:filename_all() when
@@ -379,7 +379,7 @@ dirjoin1([H|T],Acc,Sep) ->
%% is no extension.
%%
%% Example: extension("foo.erl") -> ".erl"
-%% extension("jam.src/kalle") -> ""
+%% extension("bork.src/kalle") -> ""
%%
%% On Windows: fn:dirname("\\usr\\src/kalle.erl") -> "/usr/src"
@@ -627,8 +627,8 @@ win32_pathtype(_) -> relative.
%% Returns all characters in the filename, except the extension.
%%
-%% Examples: rootname("/jam.src/kalle") -> "/jam.src/kalle"
-%% rootname("/jam.src/foo.erl") -> "/jam.src/foo"
+%% Examples: rootname("/bork.src/kalle") -> "/bork.src/kalle"
+%% rootname("/bork.src/foo.erl") -> "/bork.src/foo"
-spec rootname(Filename) -> file:filename_all() when
Filename :: file:name_all().
@@ -657,8 +657,8 @@ rootname([], Root, _Ext, _OsType) ->
%% If the filename has another extension, the complete filename is
%% returned.
%%
-%% Examples: rootname("/jam.src/kalle.jam", ".erl") -> "/jam.src/kalle.jam"
-%% rootname("/jam.src/foo.erl", ".erl") -> "/jam.src/foo"
+%% Examples: rootname("/bork.src/kalle.beam", ".erl") -> "/bork.src/kalle.beam"
+%% rootname("/bork.src/foo.erl", ".erl") -> "/bork.src/foo"
-spec rootname(Filename, Ext) -> file:filename_all() when
Filename :: file:name_all(),
diff --git a/lib/stdlib/test/epp_SUITE_data/mac3.erl b/lib/stdlib/test/epp_SUITE_data/mac3.erl
index 42a8af6c36..ec7827ab3d 100644
--- a/lib/stdlib/test/epp_SUITE_data/mac3.erl
+++ b/lib/stdlib/test/epp_SUITE_data/mac3.erl
@@ -30,10 +30,6 @@
-m(?MODULE).
-ms(?MODULE_STRING).
--ifdef(JAM).
--machine2(jam).
--endif.
-
-ifdef(BEAM).
-machine2(beam).
-endif.
diff --git a/lib/stdlib/test/filename_SUITE.erl b/lib/stdlib/test/filename_SUITE.erl
index cb77bd610f..dd621d45e9 100644
--- a/lib/stdlib/test/filename_SUITE.erl
+++ b/lib/stdlib/test/filename_SUITE.erl
@@ -445,19 +445,19 @@ pathtype(Config) when is_list(Config) ->
end.
rootname(Config) when is_list(Config) ->
- "/jam.src/kalle" = filename:rootname("/jam.src/kalle"),
- "/jam.src/foo" = filename:rootname("/jam.src/foo.erl"),
- "/jam.src/.gitignore" = filename:rootname("/jam.src/.gitignore"),
- "/jam.src/.git" = filename:rootname("/jam.src/.git.ignore"),
- "/jam.src/." = filename:rootname("/jam.src/..gitignore"),
- "/jam.src/foo" = filename:rootname(["/ja",'m.sr',"c/foo.erl"]),
- "/jam.src/foo" = filename:rootname("/jam.src/foo.erl", ".erl"),
- "/jam.src/.gitignore" = filename:rootname("/jam.src/.gitignore", ".gitignore"),
- "/jam.src/.git" = filename:rootname("/jam.src/.git.ignore", ".ignore"),
- "/jam.src/." = filename:rootname("/jam.src/..gitignore", ".gitignore"),
- "/jam.src/foo.jam" = filename:rootname("/jam.src/foo.jam", ".erl"),
- "/jam.src/foo.jam" = filename:rootname(["/jam.sr",'c/foo.j',"am"],".erl"),
- "/jam.src/foo.jam" = filename:rootname(["/jam.sr",'c/foo.j'|am],".erl"),
+ "/bork.src/kalle" = filename:rootname("/bork.src/kalle"),
+ "/bork.src/foo" = filename:rootname("/bork.src/foo.erl"),
+ "/bork.src/.gitignore" = filename:rootname("/bork.src/.gitignore"),
+ "/bork.src/.git" = filename:rootname("/bork.src/.git.ignore"),
+ "/bork.src/." = filename:rootname("/bork.src/..gitignore"),
+ "/bork.src/foo" = filename:rootname(["/bo",'rk.sr',"c/foo.erl"]),
+ "/bork.src/foo" = filename:rootname("/bork.src/foo.erl", ".erl"),
+ "/bork.src/.gitignore" = filename:rootname("/bork.src/.gitignore", ".gitignore"),
+ "/bork.src/.git" = filename:rootname("/bork.src/.git.ignore", ".ignore"),
+ "/bork.src/." = filename:rootname("/bork.src/..gitignore", ".gitignore"),
+ "/bork.src/foo.beam" = filename:rootname("/bork.src/foo.beam", ".erl"),
+ "/bork.src/foo.beam" = filename:rootname(["/bork.sr",'c/foo.b',"eam"],".erl"),
+ "/bork.src/foo.beam" = filename:rootname(["/bork.sr",'c/foo.b'|eam],".erl"),
ok.
split(Config) when is_list(Config) ->
@@ -824,12 +824,12 @@ pathtype_bin(Config) when is_list(Config) ->
end.
rootname_bin(Config) when is_list(Config) ->
- <<"/jam.src/kalle">> = filename:rootname(<<"/jam.src/kalle">>),
- <<"/jam.src/foo">> = filename:rootname(<<"/jam.src/foo.erl">>),
- <<"/jam.src/foo">> = filename:rootname(<<"/jam.src/foo.erl">>, <<".erl">>),
- <<"/jam.src/foo.jam">> = filename:rootname(<<"/jam.src/foo.jam">>, <<".erl">>),
- <<"/jam.src/foo.jam">> = filename:rootname(["/jam.sr",'c/foo.j',"am"],<<".erl">>),
- <<"/jam.src/foo.jam">> = filename:rootname(["/jam.sr",'c/foo.j'|am],<<".erl">>),
+ <<"/bork.src/kalle">> = filename:rootname(<<"/bork.src/kalle">>),
+ <<"/bork.src/foo">> = filename:rootname(<<"/bork.src/foo.erl">>),
+ <<"/bork.src/foo">> = filename:rootname(<<"/bork.src/foo.erl">>, <<".erl">>),
+ <<"/bork.src/foo.beam">> = filename:rootname(<<"/bork.src/foo.beam">>, <<".erl">>),
+ <<"/bork.src/foo.beam">> = filename:rootname(["/bork.sr",'c/foo.b',"eam"],<<".erl">>),
+ <<"/bork.src/foo.beam">> = filename:rootname(["/bork.sr",'c/foo.b'|eam],<<".erl">>),
ok.
split_bin(Config) when is_list(Config) ->
diff --git a/lib/tools/emacs/erlang-start.el b/lib/tools/emacs/erlang-start.el
index e572d36f49..faa34f7511 100644
--- a/lib/tools/emacs/erlang-start.el
+++ b/lib/tools/emacs/erlang-start.el
@@ -133,12 +133,12 @@ A function suitable for `eldoc-documentation-function'.\n\n(fn)" nil nil)
(add-to-list 'interpreter-mode-alist (cons "escript" 'erlang-mode))
;;
-;; Ignore files ending in ".jam", ".vee", and ".beam" when performing
+;; Ignore files ending in ".beam" when performing
;; file completion and in dired omit mode.
;;
;;;###autoload
-(let ((erl-ext '(".jam" ".vee" ".beam")))
+(let ((erl-ext '(".beam")))
(while erl-ext
(add-to-list 'completion-ignored-extensions (car erl-ext))
(when (boundp 'dired-omit-extensions)
diff --git a/lib/tools/emacs/erlang_appwiz.el b/lib/tools/emacs/erlang_appwiz.el
index 5141f07f13..f19ddf178f 100644
--- a/lib/tools/emacs/erlang_appwiz.el
+++ b/lib/tools/emacs/erlang_appwiz.el
@@ -1312,7 +1312,7 @@ Please see the function `tempo-define-template'.")
appwiz-erlang-modulename appwiz-erlang-ext ".erl" n
n
(upcase appwiz-erlang-modulename) "_OBJECT_FILES = $("
- (upcase appwiz-erlang-modulename) "_SOURCE_FILES:.erl=.jam)" n
+ (upcase appwiz-erlang-modulename) "_SOURCE_FILES:.erl=.beam)" n
n
n
(erlang-skel-makefile-separator)
@@ -1320,7 +1320,7 @@ Please see the function `tempo-define-template'.")
"# Transformations " n
"#" n
n
- ".erl.jam:" n
+ ".erl.beam:" n
" $(ERL) $<" n
n
(erlang-skel-makefile-separator) n
@@ -1341,7 +1341,7 @@ Please see the function `tempo-define-template'.")
"$(" (upcase appwiz-erlang-modulename) "_OBJECT_FILES): $("
(upcase appwiz-erlang-modulename) "_HEADER_FILES)" n
n
- ".SUFFIXES : .erl .jam" n
+ ".SUFFIXES : .erl .beam" n
n
))
diff --git a/lib/tools/src/xref_base.erl b/lib/tools/src/xref_base.erl
index 9efe4a2eb6..044349446b 100644
--- a/lib/tools/src/xref_base.erl
+++ b/lib/tools/src/xref_base.erl
@@ -668,9 +668,8 @@ do_add_application(S, XApp) ->
%% -> {ok, Modules, NewState} | throw(Error)
do_add_directory(Dir, AppName, Bui, Rec, Ver, War, State) ->
ok = is_filename(Dir),
- {FileNames, Errors, Jams, Unreadable} =
- xref_utils:scan_directory(Dir, Rec, [?Suffix], [".jam"]),
- warnings(War, jam, Jams),
+ {FileNames, Errors, _Watched, Unreadable} =
+ xref_utils:scan_directory(Dir, Rec, [?Suffix], []),
warnings(War, unreadable, Unreadable),
case Errors of
[] ->
@@ -1805,8 +1804,6 @@ message(true, What, Arg) ->
io:format("~tp: 1 unresolved call~n", Arg);
unresolved_summary ->
io:format("~tp: ~tp unresolved calls~n", Arg);
- jam ->
- io:format("Skipping ~ts (probably JAM file)~n", [Arg]);
unreadable ->
io:format("Skipping ~ts (unreadable)~n", [Arg]);
xref_attr ->
diff --git a/lib/tools/test/make_SUITE.erl b/lib/tools/test/make_SUITE.erl
index c2945182f6..5948e5587a 100644
--- a/lib/tools/test/make_SUITE.erl
+++ b/lib/tools/test/make_SUITE.erl
@@ -167,7 +167,7 @@ emake_opts(Config) when is_list(Config) ->
ok.
%% Moves to the data directory of this suite, clean it from any object
-%% files (*.jam for a JAM emulator). Returns the previous directory.
+%% files. Returns the previous directory.
prepare_data_dir(Config) ->
{ok, Current} = file:get_cwd(),
{value, {data_dir, Dir}} = lists:keysearch(data_dir, 1, Config),
--
2.51.0