sakura-editor / management-forum

管理・運用向けフォーラム(Issues をフォーラム代わりに使う)
2 stars 0 forks source link

外部ライブラリMigemoの使い方が正しくない(かも)。 #22

Open berryzplus opened 6 years ago

berryzplus commented 6 years ago

表題の通りです。

@beru さんの以下の書込みに対して、対処が必要だと思います。 https://github.com/sakura-editor/management-forum/issues/20#issuecomment-408660409

なお、Migemo(MITライセンス)はヘッダのソースコードが一部そのまま流用されているようです。 (定数定義とかだけですしDLL経由で使っているので問題だとは思いません) https://github.com/sakura-editor/sakura/blob/v2.3.2.0/sakura_core/extmodule/CMigemo.h#L26 https://github.com/koron/cmigemo/blob/rel-1_2/src/migemo.h#L14

作成当時は外部ライブラリのヘッダファイルを それと分かるように取り込むことが不可能だったのだと思います。

sakura_core/extmodule/CMigemo.h

extmodule は external module のことだと容易に想像が付きますから、 フォルダ名で「見れば分かるじゃん」というツッコミがありそうですけど、 このヘッダはサクラエディタ開発メンバが独自に書いたと思われるコードを含んでいるので 外部モジュールを示しているという説明には無理があるように感じます。

優先度はそれほど高くない認識ですが、どこかで対応したいな~と考えております。

beru commented 6 years ago

migemo.h では __declspec(dllexport), __declspec(dllimport) を使った暗黙的なリンクを考慮しているわけでは無いんですね。migemoの場合は、src/migemo.h ファイルを取り込めば定数定義とかはそこの記述を使えそうですが、あと他に doc/LICENSE_j.txt とかも入れた方が良いかも知れません。ただ新規にフォルダ作ってそういう事をしても何も益は無いわけなのでやる価値があるか微妙ですが…。

しかし外部ライブラリを使うコードはプラグインとして外部に出してしまう方が管理上すっきりするんでしょうか?

kobake commented 6 years ago

しかし外部ライブラリを使うコードはプラグインとして外部に出してしまう方が管理上すっきりするんでしょうか?

NuGet しかり gem しかり npm しかり、外部から参照名で取り込むのが今の主流っぽいですし、まぁわかりやすいですね。コードの保有者(≒メンテナンス者)も分かりやすくなりますし。

一番やっかいなのは、元コードの保有者が別であることを忘れて魔改造してしまうパターンですね。そういうやらかしが発生する可能性は低いですがゼロではないです。そうすると本家との足並み揃えるのがとても難しくなるし権利関係も意味わかんなくなりますね。今回のケースはそういうものではないですが、ファイルコピーによる取り込みって常にそういう危険性孕んでいると思います。

ただ、現状既に取り込まれているコードを急いで分離する必要があるかというと、まぁ急いでやるものでもないかなと。ライブラリの新規導入時にのみちょっと慎重に検討をするくらいの感覚です自分は。