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

openSUSE Build Service is sponsored by