Skip to content

Use relative paths for paths in #line directive #393

@kmyk

Description

@kmyk

Description / 説明

#line "/path/to/library.hpp" 123 ってなる部分のパスを常に相対パスにしたい。

Motivation / 動機

oj-bundle使うとにファイルへの絶対パスが埋め込まれるから真名がojに刻まれてるな

$USER とかに実名を埋め込んだ結果として提出で実名大公開してる人をわりと見かける。相対パスにしておいた方がよい。

他:

  • #line directive は必要なのでデフォルトでは付けたい
    • ライセンス表示がファイル冒頭に埋め込んであるライブラリとの親和性がよいため。ライセンスまわりをきちんと扱ってるライブラリ (現状は見かけたことないけど……?) にやさしくしておきたい
    • あとコンパイラや gdb がこれを認識してうまくやってくれる
    • オプションで消せるようにするという選択肢もあるが、うっかり埋め込む系の人がオプションを使いこなしてくれるとは思えない。オプションを調べて使えるような人なら $ oj-bundle ... | grep -b '#line' と書くのだってできるはず
  • $USER だとかファイルパスだとかは必要がないなら公開しない方がいい種類のものだが、かといって機密情報でもない
    • パスはデバッグ情報付きでコンパイルすれば実行バイナリ中にも含まれてたりするようなもの。マルウェアを作った人がうっかりしたりしがち
    • 気にする人は $USERubuntu とかそういうデフォルトのものにしておくとよい

Other notes / その他

  • Will you try to create a pull request?
    • no. 重要だとは思うんだけど、他のことで忙しいので

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions