Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package nodejs24 for openSUSE:Factory 
checked in at 2025-12-08 17:23:04
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/nodejs24 (Old)
 and      /work/SRC/openSUSE:Factory/.nodejs24.new.1939 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "nodejs24"

Mon Dec  8 17:23:04 2025 rev:2 rq:1320906 version:24.11.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/nodejs24/nodejs24.changes        2025-11-28 
16:54:49.519068270 +0100
+++ /work/SRC/openSUSE:Factory/.nodejs24.new.1939/nodejs24.changes      
2025-12-08 17:23:06.122875027 +0100
@@ -1,0 +2,13 @@
+Tue Dec  2 19:13:41 UTC 2025 - Adam Majer <[email protected]>
+
+- icu_781.patch: Add support for ICU 78.1
+- bundle nghttp2 for TW, as upstream is carrying a patch on-top
+  due to changes in nghttp2. See:
+  https://github.com/nodejs/node/issues/60661
+
+-------------------------------------------------------------------
+Tue Dec  2 13:17:26 UTC 2025 - Adam Majer <[email protected]>
+
+- v8_nameclash.patch: Backport fix
+
+-------------------------------------------------------------------
@@ -9,7 +22,2 @@
-  * cares_public_headers.patch, fix_ci_tests.patch, flaky_test_rerun.patch,
-    gcc13.patch, icu_732.patch, legacy_python.patch, linker_lto_jobs.patch, 
-    manual_configure.patch, node-gyp-addon-gypi.patch,
-    nodejs-libpath.patch, npm_search_paths.patch, old_cares.patch,
-    openssl_binary_detection.patch, qemu_timeouts_arches.patch, 
-    sle12_python3_compat.patch, test-skip-y2038-on-32bit-time_t.patch, 
v8-i586.patch,
-    versioned.patch
+  * fix_ci_tests.patch, flaky_test_rerun.patch, node-gyp-addon-gypi.patch,
+    nodejs-libpath.patch, npm_search_paths.patch, versioned.patch

New:
----
  icu_781.patch
  v8_nameclash.patch

----------(New B)----------
  New:
- icu_781.patch: Add support for ICU 78.1
- bundle nghttp2 for TW, as upstream is carrying a patch on-top
  New:
- v8_nameclash.patch: Backport fix
----------(New E)----------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ nodejs24.spec ++++++
--- /var/tmp/diff_new_pack.LJ5pOF/_old  2025-12-08 17:23:07.678933772 +0100
+++ /var/tmp/diff_new_pack.LJ5pOF/_new  2025-12-08 17:23:07.678933772 +0100
@@ -108,7 +108,7 @@
 %bcond_without intree_icu
 %endif
 
-%if 0%{?suse_version} >= 1550
+%if 0%{?suse_version} >= 1750
 %bcond_with    intree_nghttp2
 %else
 %bcond_without intree_nghttp2
@@ -145,8 +145,8 @@
 
 ## Patches not distribution specific
 Patch3:         fix_ci_tests.patch
-
-
+Patch4:         v8_nameclash.patch
+Patch5:         icu_781.patch
 
 ## Patches specific to SUSE and openSUSE
 # PATCH-FIX-OPENSUSE -- set correct path for dtrace if it is built
@@ -177,52 +177,11 @@
 BuildRequires:  config(netcfg)
 %endif
 
-# SLE-11 target only
-# Node.js 6 requires GCC 4.8.5+.
-#
-# For Node.js 8.x, upstream requires GCC 4.9.4+, as GCC 4.8 may have
-# slightly buggy C++11 support: https://github.com/nodejs/node/pull/13466
-#
-# If the default compiler is not supported, use the most recent compiler
-# version available.
-%if 0%{?suse_version} == 1110
-# GCC 5 is only available in the SUSE:SLE-11:SP4:Update repository (SDK).
-%if %node_version_number >= 8
-BuildRequires:  gcc5-c++
-%define forced_gcc_version 5
-%else
-BuildRequires:  gcc48-c++
-%define forced_gcc_version 4.8
-%endif
-%endif
-# sles == 11 block
-
-# Pick and stick with "latest" compiler at time of LTS release
-# for SLE-12:Update targets
-%if 0%{?suse_version} == 1315
-%if %node_version_number >= 17
-BuildRequires:  gcc12-c++
-BuildRequires:  gcc12-PIE
-%define forced_gcc_version 12
-%else
-%if %node_version_number >= 14
-BuildRequires:  gcc9-c++
-%define forced_gcc_version 9
-%else
-%if %node_version_number >= 8
-BuildRequires:  gcc7-c++
-%define forced_gcc_version 7
-%endif
-%endif
-%endif
-%endif
-
+# Compiler selection
 %if 0%{?suse_version} == 1500
-%if %node_version_number >= 17
-BuildRequires:  gcc12-c++
-BuildRequires:  gcc12-PIE
-%define forced_gcc_version 12
-%endif
+BuildRequires:  gcc13-c++
+BuildRequires:  gcc13-PIE
+%define forced_gcc_version 13
 %endif
 # compiler selection
 
@@ -233,13 +192,7 @@
 
 
 # Python dependencies
-%if %node_version_number >= 14
-
 %if 0%{?suse_version}
-%if 0%{?suse_version} < 1500
-BuildRequires:  python36
-%define forced_python_version 3.6m
-%endif
 %if %{?suse_version} == 1500
 BuildRequires:  python311
 %define forced_python_version 3.11
@@ -248,23 +201,11 @@
 BuildRequires:  python3
 BuildRequires:  python3-setuptools
 %endif
-%endif
-
 %else
-%if %node_version_number >= 12
 BuildRequires:  python3
-
-%else
-%if 0%{?suse_version} >= 1500
-BuildRequires:  python2
-%else
-BuildRequires:  python
-%endif
-
-%endif
 %endif
 
-%if 0%{?suse_version} >= 1500 && %{node_version_number} >= 10
+%if 0%{?suse_version} >= 1500
 BuildRequires:  user(nobody)
 BuildRequires:  group(nobody)
 %endif
@@ -629,55 +570,11 @@
 %setup -q -n node-%{version}
 %endif
 
-%if %{node_version_number} == 16
-tar zxf %{S:12}
-%endif
-
-%if %{node_version_number} <= 10
-rm -r deps/npm/*
-pushd deps/npm
-tar zxf %{SOURCE9} --strip-components=1
-tar Jxf %{SOURCE90}
-popd
-%endif
-
 %if %{node_version_number} >= 10
 tar Jxf %{SOURCE11}
 %endif
 
-# downgrade node-gyp to last version that supports python 3.4 for SLE12
-%if 0%{?suse_version} && 0%{?suse_version} < 1500 && %{node_version_number} >= 
16 && %{node_version_number} < 22
-rm -r  deps/npm/node_modules/node-gyp
-mkdir deps/npm/node_modules/node-gyp
-pushd deps/npm/node_modules/node-gyp
-tar Jxf %{SOURCE5}
-popd
-
-%if %{node_version_number} >= 19
-%else
-%endif
-%endif
-
-%patch -P 3 -p1
-%if 0%{?suse_version} < 1500
-%endif
-%if %{node_version_number} <= 12 && 0%{?suse_version} < 1500
-%endif
-%if 0%{with valgrind_tests}
-%endif
-%patch -P 101 -p1
-%if 0%{?suse_version} >= 1500 || 0%{?suse_version} == 0
-%patch -P 102 -p1
-%endif
-# Add check_output to configure script (not part of Python 2.6 in SLE11).
-%if 0%{?suse_version} == 1110
-%endif
-%patch -P 104 -p1
-%patch -P 120 -p1
-%if ! 0%{with openssl_RSA_get0_pss_params}
-%endif
-%patch -P 200 -p1
-
+%autopatch -p1
 
 %if %{node_version_number} == 12
 # minimist security update - patch50
@@ -909,6 +806,10 @@
 export CI_JS_SUITES=default
 export NODE_TEST_NO_INTERNET=1
 
+%ifarch %{ix86} %{arm}
+rm -f test/parallel/test-fs-utimes-y2K38.js
+%endif
+
 %if %{node_version_number} >= 12
 find test \( -name \*.out -or -name \*.js -or -name \*.snapshot \) -exec sed 
-i 's,Use `node ,Use `node%{node_version_number} ,' {} \;
 %endif
@@ -943,7 +844,7 @@
 rm test/parallel/test-dgram-membership.js
 %if %{node_version_number} > 20
 # missing ICU test data for 15.6/15.7/SLFO
-ln test/fixtures/icu/localizationData-v74.2.json 
test/fixtures/icu/localizationData-v73.2.json
+ln test/fixtures/icu/localizationData-v75.1.json 
test/fixtures/icu/localizationData-v73.2.json
 %endif
 
 %if %{node_version_number} >= 18


++++++ _scmsync.obsinfo ++++++
--- /var/tmp/diff_new_pack.LJ5pOF/_old  2025-12-08 17:23:07.806938605 +0100
+++ /var/tmp/diff_new_pack.LJ5pOF/_new  2025-12-08 17:23:07.814938907 +0100
@@ -1,6 +1,6 @@
-mtime: 1764072935
-commit: 56f9da042a72bf8dc30d4039b212df0e0c78d28eba45bc37b1eb3da67794a617
+mtime: 1764703289
+commit: 32a120641282be6f09e8df7712fd730ee72c28a3db8769b45acffb85aafc33c9
 url: https://src.opensuse.org/nodejs/nodejs24.git
-revision: 56f9da042a72bf8dc30d4039b212df0e0c78d28eba45bc37b1eb3da67794a617
+revision: 32a120641282be6f09e8df7712fd730ee72c28a3db8769b45acffb85aafc33c9
 projectscmsync: https://src.opensuse.org/nodejs/_ObsPrj.git
 

++++++ build.specials.obscpio ++++++

++++++ build.specials.obscpio ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/.gitignore new/.gitignore
--- old/.gitignore      1970-01-01 01:00:00.000000000 +0100
+++ new/.gitignore      2025-12-02 20:22:20.000000000 +0100
@@ -0,0 +1,4 @@
+*.obscpio
+*.osc
+_build.*
+.pbuild
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/update_npm_tarball.sh new/update_npm_tarball.sh
--- old/update_npm_tarball.sh   1970-01-01 01:00:00.000000000 +0100
+++ new/update_npm_tarball.sh   2025-12-02 20:22:20.000000000 +0100
@@ -0,0 +1,13 @@
+#!/bin/bash
+
+#
+# Fetch npm module tarball that is required to run unit tests
+# which are not provided by upstream tarball
+#
+set -e
+
+tar Jxf node-v*.tar.xz
+cd node-v*/tools/doc
+npm ci
+cd ../..
+exec tar Jcf ../node_modules.tar.xz tools/doc/node_modules

++++++ flaky_test_rerun.patch ++++++
--- /var/tmp/diff_new_pack.LJ5pOF/_old  2025-12-08 17:23:08.094949479 +0100
+++ /var/tmp/diff_new_pack.LJ5pOF/_new  2025-12-08 17:23:08.098949629 +0100
@@ -12,7 +12,7 @@
 +        result = self.OriginalRun()
 +        if (not result.HasFailed()):
 +            break
-+        print("FLAKY TEST rerun: ", self.GetCommand())
++        print("FLAKY TEST rerun: ", result)
 +    return result
 +
 +  def OriginalRun(self):

++++++ icu_781.patch ++++++
Index: node-v22.21.1/test/fixtures/icu/localizationData-v78.1.json
===================================================================
--- /dev/null
+++ node-v22.21.1/test/fixtures/icu/localizationData-v78.1.json
@@ -0,0 +1,128 @@
+{
+  "dateStrings": {
+    "en": "Fri Jul 25 1980 01:35:33 GMT+0100 (Central European Standard Time)",
+    "zh": "Fri Jul 25 1980 01:35:33 GMT+0100 (中欧标准时间)",
+    "hi": "Fri Jul 25 1980 01:35:33 GMT+0100 (मध्य यूरोपीय मानक समय)",
+    "es": "Fri Jul 25 1980 01:35:33 GMT+0100 (hora estándar de Europa 
central)",
+    "fr": "Fri Jul 25 1980 01:35:33 GMT+0100 (heure normale d’Europe 
centrale)",
+    "ar": "Fri Jul 25 1980 01:35:33 GMT+0100 (توقيت وسط أوروبا الرسمي)",
+    "bn": "Fri Jul 25 1980 01:35:33 GMT+0100 (মধ্য ইউরোপীয় মানক সময়)",
+    "ru": "Fri Jul 25 1980 01:35:33 GMT+0100 (Центральная Европа, стандартное 
время)",
+    "pt": "Fri Jul 25 1980 01:35:33 GMT+0100 (Horário Padrão da Europa 
Central)",
+    "ur": "Fri Jul 25 1980 01:35:33 GMT+0100 (وسطی یورپ کا معیاری وقت)",
+    "id": "Fri Jul 25 1980 01:35:33 GMT+0100 (Waktu Standar Eropa Tengah)",
+    "de": "Fri Jul 25 1980 01:35:33 GMT+0100 (Mitteleuropäische Normalzeit)",
+    "ja": "Fri Jul 25 1980 01:35:33 GMT+0100 (中央ヨーロッパ標準時)",
+    "pcm": "Fri Jul 25 1980 01:35:33 GMT+0100 (Mídúl Yúrop Fíksd Taim)",
+    "mr": "Fri Jul 25 1980 01:35:33 GMT+0100 (मध्‍य युरोपियन प्रमाण वेळ)",
+    "te": "Fri Jul 25 1980 01:35:33 GMT+0100 (సెంట్రల్ యూరోపియన్ ప్రామాణిక 
సమయం)"
+  },
+  "dateTimeFormats": {
+    "en": "7/25/1980, 1:35:33 AM",
+    "zh": "1980/7/25 01:35:33",
+    "hi": "25/7/1980, 1:35:33 am",
+    "es": "25/7/1980, 1:35:33",
+    "fr": "25/07/1980 01:35:33",
+    "ar": "25‏/7‏/1980، 1:35:33 ص",
+    "bn": "২৫/৭/১৯৮০, ১:৩৫:৩৩ AM",
+    "ru": "25.07.1980, 01:35:33",
+    "pt": "25/07/1980, 01:35:33",
+    "ur": "25/7/1980، 1:35:33 AM",
+    "id": "25/7/1980, 01.35.33",
+    "de": "25.7.1980, 01:35:33",
+    "ja": "1980/7/25 1:35:33",
+    "pcm": "25/7/1980, 01:35:33",
+    "mr": "२५/७/१९८०, १:३५:३३ AM",
+    "te": "25/7/1980 1:35:33 AM"
+  },
+  "dateFormats": {
+    "en": "7/25/1980",
+    "zh": "1980/7/25",
+    "hi": "25/7/1980",
+    "es": "25/7/1980",
+    "fr": "25/07/1980",
+    "ar": "25‏/7‏/1980",
+    "bn": "২৫/৭/১৯৮০",
+    "ru": "25.07.1980",
+    "pt": "25/07/1980",
+    "ur": "25/7/1980",
+    "id": "25/7/1980",
+    "de": "25.7.1980",
+    "ja": "1980/7/25",
+    "pcm": "25/7/1980",
+    "mr": "२५/७/१९८०",
+    "te": "25/7/1980"
+  },
+  "displayNames": {
+    "en": "Switzerland",
+    "zh": "瑞士",
+    "hi": "स्विट्ज़रलैंड",
+    "es": "Suiza",
+    "fr": "Suisse",
+    "ar": "سويسرا",
+    "bn": "সুইজারল্যান্ড",
+    "ru": "Швейцария",
+    "pt": "Suíça",
+    "ur": "سوئٹزر لینڈ",
+    "id": "Swiss",
+    "de": "Schweiz",
+    "ja": "スイス",
+    "pcm": "Swítsaland",
+    "mr": "स्वित्झर्लंड",
+    "te": "స్విట్జర్లాండ్"
+  },
+  "numberFormats": {
+    "en": "275,760.913",
+    "zh": "275,760.913",
+    "hi": "2,75,760.913",
+    "es": "275.760,913",
+    "fr": "275 760,913",
+    "ar": "275,760.913",
+    "bn": "২,৭৫,৭৬০.৯১৩",
+    "ru": "275 760,913",
+    "pt": "275.760,913",
+    "ur": "275,760.913",
+    "id": "275.760,913",
+    "de": "275.760,913",
+    "ja": "275,760.913",
+    "pcm": "275,760.913",
+    "mr": "२,७५,७६०.९१३",
+    "te": "2,75,760.913"
+  },
+  "pluralRules": {
+    "en": "other",
+    "zh": "other",
+    "hi": "one",
+    "es": "other",
+    "fr": "one",
+    "ar": "zero",
+    "bn": "one",
+    "ru": "many",
+    "pt": "one",
+    "ur": "other",
+    "id": "other",
+    "de": "other",
+    "ja": "other",
+    "pcm": "one",
+    "mr": "other",
+    "te": "other"
+  },
+  "relativeTime": {
+    "en": "586,920.617 hours ago",
+    "zh": "586,920.617小时前",
+    "hi": "5,86,920.617 घंटे पहले",
+    "es": "hace 586.920,617 horas",
+    "fr": "il y a 586 920,617 heures",
+    "ar": "قبل 586,920.617 ساعة",
+    "bn": "৫,৮৬,৯২০.৬১৭ ঘণ্টা আগে",
+    "ru": "586 920,617 часа назад",
+    "pt": "há 586.920,617 horas",
+    "ur": "586,920.617 گھنٹے پہلے",
+    "id": "586.920,617 jam yang lalu",
+    "de": "vor 586.920,617 Stunden",
+    "ja": "586,920.617 時間前",
+    "pcm": "586,920.617 áwa wé dọ́n pas",
+    "mr": "५,८६,९२०.६१७ तासांपूर्वी",
+    "te": "5,86,920.617 గంటల క్రితం"
+  }
+}
Index: node-v22.21.1/test/parallel/test-datetime-change-notify.js
===================================================================
--- node-v22.21.1.orig/test/parallel/test-datetime-change-notify.js
+++ node-v22.21.1/test/parallel/test-datetime-change-notify.js
@@ -26,7 +26,7 @@ const cases = [
   },
   {
     timeZone: 'Europe/Dublin',
-    expected: /Irish Standard Time|Greenwich Mean Time/,
+    expected: /Irish Standard Time|Greenwich Mean Time|GMT\+00:00/,
   },
 ];
 


++++++ v8_nameclash.patch ++++++
based on:

commit ddfa1b3d9201d319e893b4f5624eab43caae86b0
Author: Nico Hartmann <[email protected]>
Date:   Fri Aug 8 11:43:12 2025 +0200

    [turboshaft] Rename TupleOp to MakeTupleOp to avoid name conflicts
    
    Bug: 385155404
    Change-Id: I0f8f4667e09afb1f4d122dadc1e3fcab80ba7acb
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/6830052
    Commit-Queue: Nico Hartmann <[email protected]>
    Reviewed-by: Leszek Swirski <[email protected]>
    Cr-Commit-Position: refs/heads/main@{#101805}

Index: node-v24.11.1/deps/v8/src/compiler/backend/instruction-selector.cc
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/backend/instruction-selector.cc
+++ node-v24.11.1/deps/v8/src/compiler/backend/instruction-selector.cc
@@ -378,7 +378,7 @@ OptionalOpIndex InstructionSelectorT::Fi
       // If the projection has a single use, it is the following tuple, so we
       // don't return it, since there is no point in emitting it.
       DCHECK(turboshaft_uses(next).size() == 1 &&
-             graph->Get(turboshaft_uses(next)[0]).Is<TupleOp>());
+             graph->Get(turboshaft_uses(next)[0]).Is<MakeTupleOp>());
       continue;
     }
     if (projection->index == projection_index) return next;
@@ -397,7 +397,7 @@ OptionalOpIndex InstructionSelectorT::Fi
         // (which doesn't count as a regular use since it is just an artifact 
of
         // the Turboshaft graph).
         DCHECK(turboshaft_uses(use).size() == 1 &&
-               graph->Get(turboshaft_uses(use)[0]).Is<TupleOp>());
+               graph->Get(turboshaft_uses(use)[0]).Is<MakeTupleOp>());
       }
     }
   }
@@ -2020,7 +2020,7 @@ bool InstructionSelectorT::CanDoBranchIf
     // If the projection has a single use, it is the following tuple, so we
     // don't care about the value, and can do branch-if-overflow fusion.
     DCHECK(turboshaft_uses(projection0_index).size() == 1 &&
-           graph->Get(turboshaft_uses(projection0_index)[0]).Is<TupleOp>());
+           
graph->Get(turboshaft_uses(projection0_index)[0]).Is<MakeTupleOp>());
     return true;
   }
 
@@ -2035,7 +2035,7 @@ bool InstructionSelectorT::CanDoBranchIf
   // defined, which will imply that it's fine to define {projection0} and
   // {binop} now.
   for (OpIndex use : turboshaft_uses(projection0_index)) {
-    if (this->Get(use).template Is<TupleOp>()) {
+    if (this->Get(use).template Is<MakeTupleOp>()) {
       // The Tuple won't have any uses since it would have to be accessed
       // through Projections, and Projections on Tuples return the original
       // Projection instead (see Assembler::ReduceProjection in
@@ -2438,9 +2438,9 @@ void InstructionSelectorT::TryPrepareSch
   // {result} back into it through the back edge. In this case, it's
   // normal to schedule {result} before the Phi that uses it.
   for (OpIndex use : turboshaft_uses(result.value())) {
-    // We ignore TupleOp uses, since TupleOp don't lead to emitted machine
+    // We ignore MakeTupleOp uses, since MakeTupleOp don't lead to emitted 
machine
     // instructions and are just Turboshaft "meta operations".
-    if (!this->Get(use).template Is<TupleOp>() && !IsDefined(use) &&
+    if (!this->Get(use).template Is<MakeTupleOp>() && !IsDefined(use) &&
         this->block(schedule_, use) == current_block_ &&
         !this->Get(use).template Is<PhiOp>()) {
       return;
@@ -3801,7 +3801,7 @@ void InstructionSelectorT::VisitNode(OpI
       TURBOSHAFT_WASM_OPERATION_LIST(UNREACHABLE_CASE)
       TURBOSHAFT_OTHER_OPERATION_LIST(UNREACHABLE_CASE)
       UNREACHABLE_CASE(PendingLoopPhi)
-      UNREACHABLE_CASE(Tuple)
+      UNREACHABLE_CASE(MakeTuple)
       UNREACHABLE_CASE(Dead)
       UNREACHABLE();
 #undef UNREACHABLE_CASE
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/assembler.h
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/assembler.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/assembler.h
@@ -956,7 +956,7 @@ class EmitProjectionReducer
       for (int i = 0; i < static_cast<int>(reps.size()); i++) {
         projections.push_back(Asm().Projection(idx, i, reps[i]));
       }
-      return Asm().Tuple(base::VectorOf(projections));
+      return Asm().MakeTuple(base::VectorOf(projections));
     }
     return idx;
   }
@@ -4131,22 +4131,22 @@ class TurboshaftAssemblerOpInterface
     return PendingLoopPhi(first, V<T>::rep);
   }
 
-  V<Any> Tuple(base::Vector<const V<Any>> indices) {
-    return ReduceIfReachableTuple(indices);
+  V<Any> MakeTuple(base::Vector<const V<Any>> indices) {
+    return ReduceIfReachableMakeTuple(indices);
   }
-  V<Any> Tuple(std::initializer_list<V<Any>> indices) {
-    return ReduceIfReachableTuple(base::VectorOf(indices));
+  V<Any> MakeTuple(std::initializer_list<V<Any>> indices) {
+    return ReduceIfReachableMakeTuple(base::VectorOf(indices));
   }
   template <typename... Ts>
-  V<turboshaft::Tuple<Ts...>> Tuple(V<Ts>... indices) {
+  V<turboshaft::Tuple<Ts...>> MakeTuple(V<Ts>... indices) {
     std::initializer_list<V<Any>> inputs{V<Any>::Cast(indices)...};
-    return V<turboshaft::Tuple<Ts...>>::Cast(Tuple(base::VectorOf(inputs)));
+    return 
V<turboshaft::Tuple<Ts...>>::Cast(MakeTuple(base::VectorOf(inputs)));
   }
   // TODO(chromium:331100916): Remove this overload once everything is properly
   // V<>ified.
-  V<turboshaft::Tuple<Any, Any>> Tuple(OpIndex left, OpIndex right) {
+  V<turboshaft::Tuple<Any, Any>> MakeTuple(OpIndex left, OpIndex right) {
     return V<turboshaft::Tuple<Any, Any>>::Cast(
-        Tuple(base::VectorOf({V<Any>::Cast(left), V<Any>::Cast(right)})));
+        MakeTuple(base::VectorOf({V<Any>::Cast(left), V<Any>::Cast(right)})));
   }
 
   V<Any> Projection(V<Any> tuple, uint16_t index, RegisterRepresentation rep) {
@@ -5401,7 +5401,7 @@ class Assembler : public AssemblerData,
   // this assumption of the ValueNumberingReducer will break.
   V<Any> ReduceProjection(V<Any> tuple, uint16_t index,
                           RegisterRepresentation rep) {
-    if (auto* tuple_op = Asm().matcher().template TryCast<TupleOp>(tuple)) {
+    if (auto* tuple_op = Asm().matcher().template TryCast<MakeTupleOp>(tuple)) 
{
       return tuple_op->input(index);
     }
     return Stack::ReduceProjection(tuple, index, rep);
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/copying-phase.h
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/copying-phase.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/copying-phase.h
@@ -689,7 +689,7 @@ class GraphVisitor : public OutputGraphA
     if (V8_UNLIKELY(v8_flags.turboshaft_verify_reductions)) {
       if (new_index.valid()) {
         const Operation& new_op = Asm().output_graph().Get(new_index);
-        if (!new_op.Is<TupleOp>()) {
+        if (!new_op.Is<MakeTupleOp>()) {
           // Checking that the outputs_rep of the new operation are the same as
           // the old operation. (except for tuples, since they don't have
           // outputs_rep)
Index: 
node-v24.11.1/deps/v8/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
===================================================================
--- 
node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
+++ 
node-v24.11.1/deps/v8/src/compiler/turboshaft/fast-api-call-lowering-reducer.h
@@ -137,7 +137,7 @@ class FastApiCallLoweringReducer : publi
     }
 
     BIND(done, state);
-    return __ Tuple(state, __ GetVariable(result));
+    return __ MakeTuple(state, __ GetVariable(result));
   }
 
  private:
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/graph.h
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/graph.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/graph.h
@@ -1131,7 +1131,8 @@ class Graph {
     for (OpIndex input : op.inputs()) {
       // Tuples should never be used as input, except in other tuples (which is
       // used for instance in Int64Lowering::LowerCall).
-      DCHECK_IMPLIES(Get(input).Is<TupleOp>(), op.template Is<TupleOp>());
+      DCHECK_IMPLIES(Get(input).Is<MakeTupleOp>(),
+                     op.template Is<MakeTupleOp>());
       Get(input).saturated_use_count.Incr();
     }
   }
@@ -1141,7 +1142,8 @@ class Graph {
     for (OpIndex input : op.inputs()) {
       // Tuples should never be used as input, except in other tuples (which is
       // used for instance in Int64Lowering::LowerCall).
-      DCHECK_IMPLIES(Get(input).Is<TupleOp>(), op.template Is<TupleOp>());
+      DCHECK_IMPLIES(Get(input).Is<MakeTupleOp>(),
+                     op.template Is<MakeTupleOp>());
       Get(input).saturated_use_count.Decr();
     }
   }
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/int64-lowering-reducer.h
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/int64-lowering-reducer.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/int64-lowering-reducer.h
@@ -169,7 +169,7 @@ class Int64LoweringReducer : public Next
     if (kind == ConstantOp::Kind::kWord64) {
       uint32_t high = value.integral >> 32;
       uint32_t low = value.integral & std::numeric_limits<uint32_t>::max();
-      return __ Tuple(__ Word32Constant(low), __ Word32Constant(high));
+      return __ MakeTuple(__ Word32Constant(low), __ Word32Constant(high));
     }
     return Next::ReduceConstant(kind, value);
   }
@@ -192,8 +192,8 @@ class Int64LoweringReducer : public Next
     int32_t new_index = param_index_map_[parameter_index];
     if (rep == RegisterRepresentation::Word64()) {
       rep = RegisterRepresentation::Word32();
-      return __ Tuple(Next::ReduceParameter(new_index, rep),
-                      Next::ReduceParameter(new_index + 1, rep));
+      return __ MakeTuple(Next::ReduceParameter(new_index, rep),
+                          Next::ReduceParameter(new_index + 1, rep));
     }
     return Next::ReduceParameter(new_index, rep, debug_name);
   }
@@ -241,7 +241,7 @@ class Int64LoweringReducer : public Next
           auto [low, high] = Unpack(input_pair);
           V<Word32> reversed_low = __ Word32ReverseBytes(low);
           V<Word32> reversed_high = __ Word32ReverseBytes(high);
-          return __ Tuple(reversed_high, reversed_low);
+          return __ MakeTuple(reversed_high, reversed_low);
         }
         default:
           FATAL("WordUnaryOp kind %d not supported by int64 lowering",
@@ -265,7 +265,7 @@ class Int64LoweringReducer : public Next
 
     if (from == word32 && to == word64) {
       if (kind == Kind::kZeroExtend) {
-        return __ Tuple(V<Word32>::Cast(input), __ Word32Constant(0));
+        return __ MakeTuple(V<Word32>::Cast(input), __ Word32Constant(0));
       }
       if (kind == Kind::kSignExtend) {
         return LowerSignExtend(input);
@@ -273,8 +273,8 @@ class Int64LoweringReducer : public Next
     }
     if (from == float64 && to == word64) {
       if (kind == Kind::kBitcast) {
-        return __ Tuple(__ Float64ExtractLowWord32(input),
-                        __ Float64ExtractHighWord32(input));
+        return __ MakeTuple(__ Float64ExtractLowWord32(input),
+                            __ Float64ExtractHighWord32(input));
       }
     }
     if (from == word64 && to == float64) {
@@ -334,7 +334,7 @@ class Int64LoweringReducer : public Next
         return __ AtomicWord32PairLoad(base, index, offset);
       }
       if (result_rep == RegisterRepresentation::Word64()) {
-        return __ Tuple(
+        return __ MakeTuple(
             __ Load(base, index, kind, loaded_rep,
                     RegisterRepresentation::Word32(), offset, element_scale),
             __ Word32Constant(0));
@@ -344,7 +344,7 @@ class Int64LoweringReducer : public Next
         loaded_rep == MemoryRepresentation::Uint64()) {
       auto [high_index, high_offset] =
           IncreaseOffset(index, offset, sizeof(int32_t), kind.tagged_base);
-      return __ Tuple(
+      return __ MakeTuple(
           Next::ReduceLoad(base, index, kind, MemoryRepresentation::Int32(),
                            RegisterRepresentation::Word32(), offset,
                            element_scale),
@@ -419,7 +419,7 @@ class Int64LoweringReducer : public Next
       auto [expected_low, expected_high] = Unpack(expected.value());
       new_expected = expected_low;
     }
-    return __ Tuple(Next::ReduceAtomicRMW(
+    return __ MakeTuple(Next::ReduceAtomicRMW(
                         base, index, value_low, new_expected, bin_op,
                         RegisterRepresentation::Word32(), memory_rep, kind),
                     __ Word32Constant(0));
@@ -438,8 +438,8 @@ class Int64LoweringReducer : public Next
         inputs_low.push_back(__ template Projection<0>(input_w32p));
         inputs_high.push_back(__ template Projection<1>(input_w32p));
       }
-      return __ Tuple(Next::ReducePhi(base::VectorOf(inputs_low), word32),
-                      Next::ReducePhi(base::VectorOf(inputs_high), word32));
+      return __ MakeTuple(Next::ReducePhi(base::VectorOf(inputs_low), word32),
+                          Next::ReducePhi(base::VectorOf(inputs_high), 
word32));
     }
     return Next::ReducePhi(inputs, rep);
   }
@@ -449,7 +449,7 @@ class Int64LoweringReducer : public Next
       auto input_w32p = V<Word32Pair>::Cast(input);
       V<Word32> low = __ PendingLoopPhi(__ template Projection<0>(input_w32p));
       V<Word32> high = __ PendingLoopPhi(__ template 
Projection<1>(input_w32p));
-      return __ Tuple(low, high);
+      return __ MakeTuple(low, high);
     }
     return Next::ReducePendingLoopPhi(input, rep);
   }
@@ -457,7 +457,8 @@ class Int64LoweringReducer : public Next
   void FixLoopPhi(const PhiOp& input_phi, OpIndex output_index,
                   Block* output_graph_loop) {
     if (input_phi.rep == RegisterRepresentation::Word64()) {
-      const TupleOp& tuple = __ Get(output_index).template Cast<TupleOp>();
+      const MakeTupleOp& tuple =
+          __ Get(output_index).template Cast<MakeTupleOp>();
       DCHECK_EQ(tuple.input_count, 2);
       OpIndex new_inputs[2] = {__ MapToNewGraph(input_phi.input(0)),
                                __ MapToNewGraph(input_phi.input(1))};
@@ -510,7 +511,7 @@ class Int64LoweringReducer : public Next
         input, Simd128ExtractLaneOp::Kind::kI32x4, 2 * lane));
     V<Word32> high = V<Word32>::Cast(__ Simd128ExtractLane(
         input, Simd128ExtractLaneOp::Kind::kI32x4, 2 * lane + 1));
-    return __ Tuple(low, high);
+    return __ MakeTuple(low, high);
   }
 
   V<Simd128> REDUCE(Simd128ReplaceLane)(V<Simd128> into, V<Any> new_lane,
@@ -595,7 +596,7 @@ class Int64LoweringReducer : public Next
  private:
   bool CheckPairOrPairOp(V<Word32Pair> input) {
 #ifdef DEBUG
-    if (const TupleOp* tuple = matcher_.TryCast<TupleOp>(input)) {
+    if (const MakeTupleOp* tuple = matcher_.TryCast<MakeTupleOp>(input)) {
       DCHECK_EQ(2, tuple->input_count);
       RegisterRepresentation word32 = RegisterRepresentation::Word32();
       ValidateOpInputRep(__ output_graph(), tuple->input(0), word32);
@@ -625,7 +626,7 @@ class Int64LoweringReducer : public Next
 
   V<Word32Pair> LowerSignExtend(V<Word32> input) {
     // We use SAR to preserve the sign in the high word.
-    return __ Tuple(input, __ Word32ShiftRightArithmetic(input, 31));
+    return __ MakeTuple(input, __ Word32ShiftRightArithmetic(input, 31));
   }
 
   V<Word32Pair> LowerClz(V<Word32Pair> input) {
@@ -637,7 +638,7 @@ class Int64LoweringReducer : public Next
       result = __ Word32CountLeadingZeros(high);
     }
 
-    return __ Tuple<Word32, Word32>(result, __ Word32Constant(0));
+    return __ template MakeTuple<Word32, Word32>(result, __ Word32Constant(0));
   }
 
   V<Word32Pair> LowerCtz(V<Word32Pair> input) {
@@ -650,13 +651,13 @@ class Int64LoweringReducer : public Next
       result = __ Word32CountTrailingZeros(low);
     }
 
-    return __ Tuple<Word32, Word32>(result, __ Word32Constant(0));
+    return __ template MakeTuple<Word32, Word32>(result, __ Word32Constant(0));
   }
 
   V<Word32Pair> LowerPopCount(V<Word32Pair> input) {
     DCHECK(SupportedOperations::word32_popcnt());
     auto [low, high] = Unpack(input);
-    return __ Tuple(
+    return __ MakeTuple(
         __ Word32Add(__ Word32PopCount(low), __ Word32PopCount(high)),
         __ Word32Constant(0));
   }
@@ -681,7 +682,7 @@ class Int64LoweringReducer : public Next
     auto [right_low, right_high] = Unpack(right);
     V<Word32> low_result = __ Word32BitwiseAnd(left_low, right_low);
     V<Word32> high_result = __ Word32BitwiseAnd(left_high, right_high);
-    return __ Tuple(low_result, high_result);
+    return __ MakeTuple(low_result, high_result);
   }
 
   V<Word32Pair> LowerBitwiseOr(V<Word32Pair> left, V<Word32Pair> right) {
@@ -689,7 +690,7 @@ class Int64LoweringReducer : public Next
     auto [right_low, right_high] = Unpack(right);
     V<Word32> low_result = __ Word32BitwiseOr(left_low, right_low);
     V<Word32> high_result = __ Word32BitwiseOr(left_high, right_high);
-    return __ Tuple(low_result, high_result);
+    return __ MakeTuple(low_result, high_result);
   }
 
   V<Word32Pair> LowerBitwiseXor(V<Word32Pair> left, V<Word32Pair> right) {
@@ -697,7 +698,7 @@ class Int64LoweringReducer : public Next
     auto [right_low, right_high] = Unpack(right);
     V<Word32> low_result = __ Word32BitwiseXor(left_low, right_low);
     V<Word32> high_result = __ Word32BitwiseXor(left_high, right_high);
-    return __ Tuple(low_result, high_result);
+    return __ MakeTuple(low_result, high_result);
   }
 
   V<Word32Pair> LowerRotateRight(V<Word32Pair> left, V<Word32> right) {
@@ -716,7 +717,7 @@ class Int64LoweringReducer : public Next
       }
       if (shift_value == 32) {
         // Swap low and high of left.
-        return __ Tuple(left_high, left_low);
+        return __ MakeTuple(left_high, left_low);
       }
 
       V<Word32> low_input = left_high;
@@ -736,7 +737,7 @@ class Int64LoweringReducer : public Next
       V<Word32> high_node = __ Word32BitwiseOr(
           __ Word32ShiftRightLogical(high_input, masked_shift),
           __ Word32ShiftLeft(low_input, inv_shift));
-      return __ Tuple(low_node, high_node);
+      return __ MakeTuple(low_node, high_node);
     }
 
     V<Word32> safe_shift = shift;
@@ -769,7 +770,7 @@ class Int64LoweringReducer : public Next
     V<Word32> high_node =
         __ Word32BitwiseOr(__ Word32BitwiseAnd(rotate_high, bit_mask),
                            __ Word32BitwiseAnd(rotate_low, inv_mask));
-    return __ Tuple(low_node, high_node);
+    return __ MakeTuple(low_node, high_node);
   }
 
   V<Any> LowerCall(V<CallTarget> callee, OptionalV<FrameState> frame_state,
@@ -853,7 +854,7 @@ class Int64LoweringReducer : public Next
     // Example for a call returning [int64, int32]:
     //   In:  Call(...) -> [int64, int32]
     //   Out: call = Call() -> [int32, int32, int32]
-    //        Tuple(
+    //        MakeTuple(
     //           Tuple(Projection(call, 0), Projection(call, 1)),
     //           Projection(call, 2))
     //
@@ -869,8 +870,8 @@ class Int64LoweringReducer : public Next
           call_descriptor->GetReturnType(i).representation();
       if (machine_rep == MachineRepresentation::kWord64) {
         tuple_inputs.push_back(
-            __ Tuple(__ Projection(call, projection_index, word32),
-                     __ Projection(call, projection_index + 1, word32)));
+            __ MakeTuple(__ Projection(call, projection_index, word32),
+                         __ Projection(call, projection_index + 1, word32)));
         projection_index += 2;
       } else {
         tuple_inputs.push_back(__ Projection(
@@ -879,7 +880,7 @@ class Int64LoweringReducer : public Next
       }
     }
     DCHECK_EQ(projection_index, return_count + i64_returns);
-    return __ Tuple(base::VectorOf(tuple_inputs));
+    return __ MakeTuple(base::VectorOf(tuple_inputs));
   }
 
   void InitializeIndexMaps() {
Index: 
node-v24.11.1/deps/v8/src/compiler/turboshaft/machine-optimization-reducer.h
===================================================================
--- 
node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/machine-optimization-reducer.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/machine-optimization-reducer.h
@@ -1291,7 +1291,8 @@ class MachineOptimizationReducer : publi
             overflow = base::bits::SignedSubOverflow32(k1, k2, &res);
             break;
         }
-        return __ Tuple(__ Word32Constant(res), __ Word32Constant(overflow));
+        return __ MakeTuple(__ Word32Constant(res),
+                            __ Word32Constant(overflow));
       }
     } else {
       DCHECK_EQ(rep, WordRepresentation::Word64());
@@ -1310,7 +1311,8 @@ class MachineOptimizationReducer : publi
             overflow = base::bits::SignedSubOverflow64(k1, k2, &res);
             break;
         }
-        return __ Tuple(__ Word64Constant(res), __ Word32Constant(overflow));
+        return __ MakeTuple(__ Word64Constant(res),
+                            __ Word32Constant(overflow));
       }
     }
 
@@ -1318,18 +1320,19 @@ class MachineOptimizationReducer : publi
     // left - 0  =>  (left, false)
     if (kind == any_of(Kind::kSignedAdd, Kind::kSignedSub) &&
         matcher_.MatchZero(right)) {
-      return __ Tuple(left, __ Word32Constant(0));
+      return __ MakeTuple(left, __ Word32Constant(0));
     }
 
     if (kind == Kind::kSignedMul) {
       if (int64_t k; matcher_.MatchIntegralWordConstant(right, rep, &k)) {
         // left * 0  =>  (0, false)
         if (k == 0) {
-          return __ Tuple(__ WordConstant(0, rep), __ Word32Constant(false));
+          return __ MakeTuple(__ WordConstant(0, rep),
+                              __ Word32Constant(false));
         }
         // left * 1  =>  (left, false)
         if (k == 1) {
-          return __ Tuple(left, __ Word32Constant(false));
+          return __ MakeTuple(left, __ Word32Constant(false));
         }
         // left * -1  =>  0 - left
         if (k == -1) {
@@ -1349,7 +1352,7 @@ class MachineOptimizationReducer : publi
       if (V<Word32> x; matcher_.MatchConstantShiftRightArithmeticShiftOutZeros(
                            left, &x, WordRepresentation::Word32(), &amount) &&
                        amount == 1) {
-        return __ Tuple(x, __ Word32Constant(0));
+        return __ MakeTuple(x, __ Word32Constant(0));
       }
     }
 
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/operations.h
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/operations.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/operations.h
@@ -324,7 +324,7 @@ using Variable = SnapshotTable<OpIndex,
   V(Call)                                    \
   V(CatchBlockBegin)                         \
   V(DidntThrow)                              \
-  V(Tuple)                                   \
+  V(MakeTuple)                               \
   V(Projection)                              \
   V(DebugBreak)                              \
   V(AssumeMap)                               \
@@ -4524,8 +4524,8 @@ V8_EXPORT_PRIVATE base::SmallVector<Bloc
     const Block& block, const Graph& graph);
 
 // Tuples are only used to lower operations with multiple outputs.
-// `TupleOp` should be folded away by subsequent `ProjectionOp`s.
-struct TupleOp : OperationT<TupleOp> {
+// `MakeTupleOp` should be folded away by subsequent `ProjectionOp`s.
+struct MakeTupleOp : OperationT<MakeTupleOp> {
   static constexpr OpEffects effects = OpEffects();
   base::Vector<const RegisterRepresentation> outputs_rep() const { return {}; }
 
@@ -4534,7 +4534,7 @@ struct TupleOp : OperationT<TupleOp> {
     return {};
   }
 
-  explicit TupleOp(base::Vector<const V<Any>> inputs) : Base(inputs) {}
+  explicit MakeTupleOp(base::Vector<const V<Any>> inputs) : Base(inputs) {}
 
   template <typename Fn, typename Mapper>
   V8_INLINE auto Explode(Fn fn, Mapper& mapper) const {
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/turbolev-graph-builder.cc
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/turbolev-graph-builder.cc
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/turbolev-graph-builder.cc
@@ -5831,7 +5831,7 @@ class GraphBuildingNodeProcessor {
 
   void SetMapMaybeMultiReturn(maglev::NodeBase* node, V<Any> idx) {
     const Operation& op = __ output_graph().Get(idx);
-    if (const TupleOp* tuple = op.TryCast<TupleOp>()) {
+    if (const MakeTupleOp* tuple = op.TryCast<MakeTupleOp>()) {
       // If the call returned multiple values, then in Maglev, {node} is
       // used as the 1st returned value, and a GetSecondReturnedValue node is
       // used to access the 2nd value. We thus call `SetMap` with the 1st
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/type-inference-analysis.h
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/type-inference-analysis.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/type-inference-analysis.h
@@ -158,7 +158,7 @@ class TypeInferenceAnalysis {
         case Opcode::kRetain:
         case Opcode::kUnreachable:
         case Opcode::kSwitch:
-        case Opcode::kTuple:
+        case Opcode::kMakeTuple:
         case Opcode::kStaticAssert:
         case Opcode::kDebugBreak:
         case Opcode::kDebugPrint:
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/type-inference-reducer.h
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/type-inference-reducer.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/type-inference-reducer.h
@@ -445,7 +445,7 @@ class TypeInferenceReducer
     return Type::Invalid();
   }
 
-  Type GetTupleType(const TupleOp& tuple) {
+  Type GetTupleType(const MakeTupleOp& tuple) {
     base::SmallVector<Type, 4> tuple_types;
     for (OpIndex input : tuple.inputs()) {
       tuple_types.push_back(GetType(input));
@@ -457,8 +457,8 @@ class TypeInferenceReducer
     Type type = GetTypeOrInvalid(index);
     if (type.IsInvalid()) {
       const Operation& op = Asm().output_graph().Get(index);
-      if (op.Is<TupleOp>()) {
-        return GetTupleType(op.Cast<TupleOp>());
+      if (op.Is<MakeTupleOp>()) {
+        return GetTupleType(op.Cast<MakeTupleOp>());
       } else {
         return Typer::TypeForRepresentation(op.outputs_rep(),
                                             Asm().graph_zone());
Index: node-v24.11.1/deps/v8/src/compiler/turboshaft/wasm-lowering-reducer.h
===================================================================
--- node-v24.11.1.orig/deps/v8/src/compiler/turboshaft/wasm-lowering-reducer.h
+++ node-v24.11.1/deps/v8/src/compiler/turboshaft/wasm-lowering-reducer.h
@@ -520,7 +520,7 @@ class WasmLoweringReducer : public Next
     }
     {
       BIND(done, base, final_offset, charwidth_shift);
-      return __ Tuple({base, final_offset, charwidth_shift});
+      return __ MakeTuple({base, final_offset, charwidth_shift});
     }
   }
 

Reply via email to