Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

C++のヘッダファイルとして.hが使えないことを明記して欲しい #248

Closed
yosupo06 opened this issue May 7, 2020 · 3 comments · Fixed by #347
Closed
Labels

Comments

@yosupo06
Copy link

yosupo06 commented May 7, 2020

現状hppにしか対応していないと思うのですが、これをhに拡張するか、もしくは警告を出すべきではという提案です

  • hとhppについてあまり深く考えずに使っている人がいる(ex. 自分): もしこれが自分だけの場合、このissueはここまでです

  • hを使ったことが理由であることを判断するのが著しく困難: 以下のようなエラーが出るはずで、ここからエラーの理由を推測するのは無理だと考えます

  File "/usr/local/lib/python3.7/site-packages/onlinejudge_verify/docs.py", line 282, in write_contents
    raise FileNotFoundError('{} seems not to exist in path_to_verification'.format(depends))
FileNotFoundError: /Users/yosupo/Programs/Sand/base.h seems not to exist in path_to_verification
  • 多分この仕様についてドキュメントで言及していない
@kmyk
Copy link
Member

kmyk commented May 7, 2020

これは修正しておいた方がよさそう。特にエラーが FileNotFoundError になるのはひどい。
(競プロ界隈ならみんな何も考えず .cpp .hpp してるでしょと思って放置していました 🙇)

docs.py を触る必要があるかもでしんどいので、どう対応するかはすこし考えます。

メモ:

  • C++ の拡張子としては .cpp .hpp の他に .cc .cxx .c++ .c .C .hh .hxx .h++ .h .H が使われている
  • C# script から依存する C# の .cs にもなにか警告があった方がよさそう

@kmyk
Copy link
Member

kmyk commented May 7, 2020

たぶん以下の 3 つの異なる問題に分割できる

  1. .hpp.cpp 以外のファイル (例: .h, .txt) は「ドキュメントを生成しない」「テストの対象として認識されない」だけでよいはず。コードのファイルがコード以外のファイル (辞書.txt とか) に依存するのはよくある状況であり、例外を発生させて落とすべきものではない (仕様あるいはコードのバグ)
  2. C++ の拡張子が何であるかは自明でないのに、これについて記述がない (ドキュメントのバグ)
  3. もし未対応のまま残すなら、.h .cs などありがちなものについては警告を出すべき (バグではないが不親切)

@kmyk
Copy link
Member

kmyk commented Nov 14, 2020

これ忘れてたのですが、いまドキュメント更新しました。
また、ドキュメント生成パートの大改修の際に、ライブラリとして認識されてないファイルへの依存があったら警告とともに無視されるようになっています。なので現在ではすべて解決されています。

@kmyk kmyk closed this as completed in #347 Nov 14, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants