kujirahand / nadesiko

Japanese Programming Language Nadesiko ver1
https://nadesi.com
42 stars 9 forks source link

Free Pascalでコンパイルできる状態にする #10

Open kujirahand opened 3 years ago

kujirahand commented 3 years ago

これまで、Delphi7を使い倒してなでしこの開発を続けてきましたが、そろそろ、Free Pascalだけでコンパイルできるようにしていこうと思います。副次的なメリットとしては、macOSやLinuxでもなでしこv1が動きそうです。

ただし、そうすると、VCLのコンポーネントは使えなくなるので、Lazarusのコンポーネントでできるだけ置き換えようと思います。それでも、TEditorは使えなくなります。ネットワーク関連のIndyは動くとか、動かないとか。。。

それでも、なでしこv1は、今後の方針として、既存の基本機能を最大限、延命することを重視する方向で修正していきたいです。

weyk commented 3 years ago

何度かチャレンジしていると思いますので、既知とは思いますが。

まずは、ソース共用はしない方向で完全分離が良いように思います。 多くのコンポーネントに差異があること(特に最下層がWIndowsのAPIやコンポーネントに依存しているもの)と、内部文字コードが異なる(SJISとUTF8。新DelphiならUTF16)こと等。 なお、Lazarus/FreePascalはあくまでも英語圏ベースなので、UTF8やバイナリとしてのSJISを扱うと、問題だらけで、かつ、英語圏の開発陣が重要度を理解できず対応されない という可能性はありそうです(UTF8対応の遅さや混在期間の長さもその辺を物語っています)。FreePascal/Lazarusごと開発する という感じになると思います。 ※FreePascal/Lazarus自体をライセンスに従い変更するのも手?

以前、Dlephi2009に移行して延命をしようとした際に機能の非互換・欠損が出てきましたが、おそらく、どこかで乗り越えないといけない壁になると思いますので、バージョンを変えて、 ・現行バージョンのDelphi7版:基本的に致命的なエラー以外は更新しない。バグ修正等は基本的に無いが、Lazarus版からの逆輸入の可能性は0ではないが、保証しない。 ・Lazarus版:Delphi版のある点からの派生。Delphi版に近づけるための機能修正の他、バグ修正や新OSへの対応も基本的にこちらで行う。コンパイラ違いによる動作の差異をどこまで無理やりDelphi版に合わせるかは未定。なでしこの内部コードもUTF8ベースにしても良いかも(SJISベースとUTF8ベースをモードで切り替える?)

kujirahand commented 2 years ago

コメントありがとうございます!今頃気付きました。 しばらくいろいろ作業してみて、やはり文字列型の差異がネックですね😭 分ける部分は分けるという感じで挑戦していきたいと思います。