nodejs / nodejs/node

Use of deprecated C++ API in src

オープン
#62,506 コメント 2 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

c++ lib / src
主要言語
JavaScript
スター
122k
フォーク
37.3k
平均マージ
4日 2時間
マージ済み PR(30日)
283

説明

In file included from ../../test/cctest/test_util.cc:1:
In file included from ../../src/debug_utils-inl.h:6:
In file included from ../../src/debug_utils.h:6:
In file included from ../../src/async_wrap.h:27:
In file included from ../../src/base_object.h:29:
In file included from ../../src/memory_tracker.h:5:
In file included from ../../deps/v8/include/v8-profiler.h:10:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/memory:950:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/inout_ptr.h:16:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__memory/shared_ptr.h:22:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/ostream.h:13:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/string.h:45:41: warning: 'char_traits<unsigned char>' is deprecated: char_traits<T> for T not equ
al to char, wchar_t, char8_t, char16_t or char32_t is non-standard and is provided for a temporary period. It will be removed in a future release, so please migrate off of it. [-Wdeprecated-declarations]
   45 | template <class _CharT, class _Traits = char_traits<_CharT>, class _Allocator = allocator<_CharT> >
      |                                         ^
../../src/util.h:506:15: note: in instantiation of default argument for 'basic_string<unsigned char>' required here
  506 |   inline std::basic_string<T> ToString() const { return {out(), length()}; }
      |               ^~~~~~~~~~~~~~~
../../test/cctest/test_util.cc:229:37: note: in instantiation of template class 'node::MaybeStackBuffer<unsigned char>' requested here
  229 |     MaybeStackBuffer<unsigned char> buf(100);
      |                                     ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/string.h:24:8: note: 'char_traits<unsigned char>' has been explicitly marked deprecated here
   24 | struct _LIBCPP_DEPRECATED_(
      |        ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__config:555:53: note: expanded from macro '_LIBCPP_DEPRECATED_'
  555 | #      define _LIBCPP_DEPRECATED_(m) __attribute__((__deprecated__(m)))
      |                                                     ^
In file included from ../../test/cctest/test_util.cc:1:
In file included from ../../src/debug_utils-inl.h:6:
In file included from ../../src/debug_utils.h:6:
In file included from ../../src/async_wrap.h:27:
In file included from ../../src/base_object.h:29:
In file included from ../../src/memory_tracker.h:5:
In file included from ../../deps/v8/include/v8-profiler.h:11:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/unordered_set:1846:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/functional:601:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/vector:363:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/locale:197:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__locale:28:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/string:654:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/string_view:221:
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/string_view.h:22:41: warning: 'char_traits<unsigned char>' is deprecated: char_traits<T> for T no
t equal to char, wchar_t, char8_t, char16_t or char32_t is non-standard and is provided for a temporary period. It will be removed in a future release, so please migrate off of it. [-Wdeprecated-declarations]
   22 | template <class _CharT, class _Traits = char_traits<_CharT> >
      |                                         ^
../../src/util.h:507:15: note: in instantiation of default argument for 'basic_string_view<unsigned char>' required here
  507 |   inline std::basic_string_view<T> ToStringView() const {
      |               ^~~~~~~~~~~~~~~~~~~~
../../test/cctest/test_util.cc:229:37: note: in instantiation of template class 'node::MaybeStackBuffer<unsigned char>' requested here
  229 |     MaybeStackBuffer<unsigned char> buf(100);
      |                                     ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__fwd/string.h:24:8: note: 'char_traits<unsigned char>' has been explicitly marked deprecated here
   24 | struct _LIBCPP_DEPRECATED_(
      |        ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/c++/v1/__config:555:53: note: expanded from macro '_LIBCPP_DEPRECATED_'
  555 | #      define _LIBCPP_DEPRECATED_(m) __attribute__((__deprecated__(m)))
      |

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

調査の方向性

src/util.h の 506~507 行付近と test/cctest/test_util.cc の 229 行付近から始め、報告された macOS ツールチェーンで警告を再現します。MaybeStackBuffer のインスタンス化を追跡し、サポートされている C++ API パスを特定します。対象のテストビルドでこれらの非推奨警告が出なくなれば完了です。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
cpp
領域
backend
issue の種類
バグ
難易度
2/5
見積もり時間
1〜3時間
活発さ
静か
明瞭さ
おおむね明確
初心者へのやさしさ
58/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。