kenkoooo / AtCoderProblems

Extend your AtCoder
https://kenkoooo.com/atcoder/
MIT License
1.39k stars 151 forks source link

Languagesに"C++"と"C++ "(末尾に半角スペース)の2種類が存在している #1424

Closed ghost closed 9 months ago

ghost commented 11 months ago

概要

https://kenkoooo.com/atcoder/atcoder-api/v3/language_listに"C++"と"C++ "(末尾に半角スペース)の2種類が存在しています。

原因

https://github.com/kenkoooo/AtCoderProblems/blob/5737038b54891f61956031809d2e5ee2c1409a19/atcoder-problems-frontend/src/utils/LanguageNormalizer.ts AtCoderの言語アップデートにより、normalizeLanguageに不具合が生じています。具体的には、

normalizeLanguage("C++ (GCC 9.2.1)") // 言語アップデート前
-> "C++"
normalizeLanguage("C++ 20 (gcc 12.2)") // 言語アップデート後
-> "C++ "

のようになっています。

解決策

hiro1729 commented 11 months ago

ついでにPythonとPyPyとCythonを合わせて欲しいです!

hotate29 commented 11 months ago

@hiro1729 正直なところ、PythonとCythonは合わせるべきでないと思います。名前こそ似ていますが、Cの文法を取り入れた静的な型付けなど、言語としては別物だからです。 一方、AtCoderの新環境では”Python (Cython 0.29.34)”と表示されており、これはPythonと合わせる根拠になりえます。ただ、旧環境では”Cython (0.29.16)”と表示されているので扱いが難しいかもです。

CPythonとPyPyを合わせるのは悪くないと思いますが、どっちみちこのissueで議論することではなさそう。

hiro1729 commented 11 months ago

確かにそうでしたね。PythonになくてCythonにある機能もあるので分けるべきでした