Pascal 日和 ホームページの「Object Pascal 備忘録」を修正しました。

型付き定数に代入できなくする設定と、コンパイラが実数のリテラルや型指定のない定数に型を割り当てるときにすべてDouble型を選択する設定に対応するため、以下の修正を行いました。

・「Free Pascal メモ」メニューの「Object Pascal 備忘録」の各ページのプログラムにディレクティブ「{$J-}」と「{$MINFPCONSTPREC 64}」を追加しました。
 「ひな型を用意する(EXE編)」と「ひな型を用意する(DLL編)」ページにディレクティブ「{$J-}」と「{$MINFPCONSTPREC 64}」の説明を追記しました。
・「Free Pascal メモ」メニューの「Object Pascal 備忘録」ページのダウンロードファイルにディレクティブ「{$J-}」と「{$MINFPCONSTPREC 64}を追加しました。
 「DM0002.zip」を「DM0002A.zip」に差し替えました。
 「DM0003.zip」を「DM0003A.zip」に差し替えました。
 「DM0004.zip」を「DM0004A.zip」に差し替えました。
 「DM0005.zip」を「DM0005A.zip」に差し替えました。
 「DM0006.zip」を「DM0006A.zip」に差し替えました。

Object Pascal 入門の「実数型」ページに加筆しました。そして...

Pascal 日和 ホームページの「Object Pascal入門-実数型」に実数型の内部表現や実数リテラルの型の選択ルールについて説明を追加しました。

実数リテラルの型の選択については計算処理を重視する方にとっては重要な問題だと思います。Free PascalやLazarusを長年使用してきましたが、こういう仕様になっているとは最近まで気が付きませんでした。うかつと言わざるを得ません。最初はコンパイラのバグかと思いましたが、調べたところ対応するディレクティブやコマンドライン コンパイラオプションが存在するので仕様で間違いないようです。
Free Pascal 3.2.2 のデフォルトでは、1.0 / 3.0 が 0.333333343267441 とSingle型の結果となってしまいます。開発版の FPC 3.3.1 でも同じなので、次リリースも変わらないと思われます。
是非一読ください。

Embarcadero Delphiでも確認しましたが、DelphiはデフォルトでDouble型で計算しています。

コンパイラディレクティブ「{$MINFPCONSTPREC 64}」についてはObject Pascal 備忘録のひな型ソースにも追加の検討をします。

「超力招来の備忘録」の投稿を移設しました(その4/最後)

はてなブログで自分が用意したSyntax Highlighterが動作しなくなったため、
「超力招来の備忘録」の投稿を「Pascal 日和 ホームページ」へ移設しました。
今回は以下の1件(最後)。

Free Pascal(Object Pascal) : アプリケーション(EXE)内の実行順序 – 超力招来の備忘録
⇒  Pascal 日和 ホームページ – アプリ(EXE)内の実行順序

Pascal 日和 ホームページの「Object Pascal 備忘録」ページにダウンロードも追加しました。

  • 「アプリ(EXE)内の実行順序」用の「DM0006.zip」。

「超力招来の備忘録」の投稿を移設しました(その3)

はてなブログで自分が用意したSyntax Highlighterが動作しなくなったため、
「超力招来の備忘録」の投稿を「Pascal 日和 ホームページ」へ移設しました。
今回は以下の1件。

Free Pascal(Object Pascal) : プログラムにアイコンを設定する – 超力招来の備忘録
⇒  Pascal 日和 ホームページ – アプリのアイコンを設定する

Pascal 日和 ホームページの「Object Pascal 備忘録」ページにダウンロードも追加しました。

  • 「アプリのアイコンを設定する」用の「DM0005.zip」。

「超力招来の備忘録」の投稿を移設しました(その2)

はてなブログで自分が用意したSyntax Highlighterが動作しなくなったため、
「超力招来の備忘録」の投稿を「Pascal 日和 ホームページ」へ移設しました。

今回は以下の1件。

Free Pascal(Object Pascal) : プログラムにバージョン情報を設定する – 超力招来の備忘録
⇒ Pascal 日和 ホームページ – バージョン情報を設定する