7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Delphi】Delphi 12 Athens について

Last updated at Posted at 2024-12-24

はじめに

『Delphi 12 Athens』 についての概要です。

image.png

概要

製品概要です。

項目 説明
製品名 Delphi 12 Athens
コードネーム Yukon (12.0)
発売年 2023
発売元 Embarcadero Technologies
ビルドバージョン 29.0
コンパイラバージョン 36.0
BDS バージョン 23.0
サポートプラットフォーム Windows (32/64 bit x 32/64 bit) / macOS (Intel 64 bit) / macOS (ARM 64 bit) / iOS デバイス (64 bit) / iOS シミュレータ (64 bit) / Android (32/64 bit) / Linux (64 bit)

前バージョンとの違い

  • 255 文字を超える文字列リテラルが使えるようになった
  • 三重引用符 (''') で囲んだ複数行文字列リテラルが使えるようになった
    var s := '''
    Hello,
    world.
    ''';
    
  • デフォルトで浮動小数点例外が無効になっている
  • DisposeOf() が廃止された
  • VCL での MDI サポートが強化された
  • FireMonkey がサポートするすべてのプラットフォームで『Skia』サポートが追加された
  • アダプティブアイコンに対応
  • Graphviz 形式 (DOT 言語) のファイル出力に対応
  • エディタウィンドウの分割が可能となった (Release 1)
  • Android 14 対応 (API レベル 34) (Release 1) 1
  • コードエディタにフォーカスモード (〔Ctrl〕+〔Alt〕+〔Z〕) が追加された (Release 2)
  • System.ThreadingTParallelArray が追加された (Release 2)
  • System.Generics.Collections に TDictionary から派生したソート可能な TOrderedDictionary クラスが追加された (Release 2)
  • Windows ターゲット用に 64 bit EXE 版コンパイラが用意された (Release 2 / Enterprise 以上)
  • Delphi LSP に 64 bit 版が用意された (Release 2 / Enterprise 以上)
  • Windows ターゲット用に 64 bit EXE 版コンパイラが用意された (Release 3 / Professional)
  • Delphi LSP に 64 bit 版が用意された (Release 3 / Professional)
  • 64 ビット IDE の初期リリースが含まれるようになった (Release 3)
  • Android 15 対応 (API レベル 35) (Release 3)

その他

  • (恐らく) ユニットの循環参照によるコンパイル速度低下が改善されている
  • VCL トランスレーションサポート機能が標準でインストールされなくなった (GetIt から取得可能)
  • ConvertThreadToFiber() の定義が正しくなった
  • TPrinterGetPrinter() にパラメータとして string 型を指定するオーバーロードメソッドが追加された。従来の PChar を指定するメソッドは非推奨となった
  • 最終バージョンでない Community Edition が例外的にリリースされた (12.1 相当)
  • ソースコードフォーマッタがいよいよ使い物にならなくなってきた (廃止予定)
  • 12.2 でコンパイルされた BPL が 12.1 や 12.0 で使えない問題がある (パッチを当てて BPL を再生成する必要がある)

image.png

浮動小数点例外

0 除算などを浮動小数点例外を例外で処理していると困った事になりますが、『Visual C++』でも標準ではオフですし、Microsoft が浮動小数点例外を別の用途で使っているフシがあるので、浮動小数点例外は使わないに越したことはないと思います。あと、ARM アーキテクチャでは、そもそも浮動小数点例外をサポートしていません。

Delphi 11 Alexandria 以前の動作と同じにするには、プロジェクトファイル (*.dpr) の usesSystem.Math を追加し、SetExceptionMask() を設定します。

uses
  System.Math, ... // 追加

...

{$R *.res}

begin
  System.math.SetExceptionMask( [exPrecision, exUnderflow, exDenormalized]); // 追加
  Application.Initialize;
  ...

Graphviz

Graphviz はオープンソースのグラフ作成ツール群です。

Graphviz 用のファイルを出力するには [プロジェクトオプション] でコンパイラに追加オプションを渡します。

image.png

例えばターゲットプラットフォームが Windows の場合、次のようなオプションになります。

--graphviz --graphviz-exclude:System.*;Vcl.*;Fmx.*;Winapi.*

コンパイルを行うと、出力フォルダに *.gv というファイルが作られます。これは Graphviz が扱う DOT 言語で書かれたスクリプトファイルです。

Project1.gv
digraph Project1 {
	Project1 -> Unit1
	Unit1
}

このファイルをレンダリングプログラム DOT.EXE に通すと画像ファイルが得られます。

dot -Tpng -O Project1.gv

実行すると Project1.gv.png という名前で PNG 形式の画像が得られます。PNG 以外の画像でも保存できます。

image.png

--graphviz-exclude オプションでターゲットプラットフォーム関連のユニットを除外しないととんでもない事になるので注意してください。

image.png

See also:

12.1 Community Edition

Community Edition が例外的にリリースされたのは Android アプリのためですかね? 1

image.png

See also:

おわりに

Delphi 12 Athens は最新版なので、今後のアップデートによって記事に何かしらの追記があるかもしれません。

Microsoft の Windows バージョンを追い越して 12 というバージョンが付けられました。エンバカさんの方針で行くと 13忌み数なので、次のバージョンが何になるのか楽しみです。「他所は他所、ウチはウチ」で製品名を付けてもらいたいものです。

Release 2 において、Windows プラットフォーム用の Delphi コンパイラは 4 種類になりました。

32bit ターゲット 64bit ターゲット
32bit EXE DCC32.EXE DCC64.EXE
64bit EXE DCC32.EXE DCC64.EXE

Enterprise 以上の SKU でしか使えないというのがエンバカさんらしいです...歴史は繰り返すというか 2 12.3 Athens において Professional 版にも 64bit 版コンパイラが提供されるようになりました。

Advent Calendar の記事

Delphi 1 ~ 10 Seattle までの記事は Delphi Advent Calendar 2024 の シリーズ 2 で読めます。

2025/02/14 で Delphi は 30 周年です♪

Borland の期間 (1995/02/14~2008/06/29)
13 年 4 か月と 15日

Embarcadero の期間 (2008/06/30~2024/12/25)
16 年 5 か月と 25日

もう、Delphi は Embaracadero になってからの方が長いんですよね。

See also:

索引

[ ← Delphi 11 Alexandria ] [ ↑ 目次へ ]

  1. 2024 年 8 月 31 日以降、GooglePlay における新規アプリ登録は Android 14 (API Level 34) を対象とする必要がある。 2

  2. 『Turbo Pascal』の時に、大規模なプロジェクトをコンパイルできるようにしたプロテクトモードコンパイラが上位 SKU に用意されていた。

7
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?