プログラミング言語 Haxe 4.1 のリリース

利用可能 ツールキットのリリース ハクス 4.1これには、強力な型付けを備えた同じ名前のマルチパラダイム高級プログラミング言語、クロスコンパイラー、関数の標準ライブラリが含まれています。 このプロジェクトは、C++、HashLink/C、JavaScript、C#、Java、PHP、Python、Lua への変換に加え、JVM、HashLink/JIT、Flash、Neko バイトコードへのコンパイルをサポートしており、各ターゲット プラットフォームのネイティブ機能にアクセスできます。 コンパイラコード によって配布 GPLv2 ライセンスに基づいており、Haxe 用に開発された標準ライブラリと仮想マシン ハッシュリンク и ネコ MITライセンスの下で。

言語は 表現重視 強力なタイピングを使用します。 オブジェクト指向、汎用および関数型プログラミング手法がサポートされています。 Haxe 構文は ECMAScript に近く、 拡大する 静的型付け、オートタイプ推論、パターン マッチング、ジェネリックス、イテレータベースの for ループ、AST マクロ、GADT (一般化代数データ型)、抽象型、匿名構造、簡素化された配列定義、条件付きコンパイル式、フィールドへのメタデータの添付などの機能、クラスと式、文字列補間 (「'My name is $name'」)、型パラメータ ('new Main ("ふー")') そして はるかに.

クラステスト{
静的関数 main() {
最終的な人々 = [
「エリザベス」 => 「プログラミング」、
「ジョエル」→「デザイン」
];

for (名前 => 人々の仕事) {
track('$name は $job を生業としています!');
}
}
}

バージョン 4.1 の新機能:

  • 末尾再帰の最適化を追加しました。
  • 例外処理用の新しい統合 API を追加しました。
  • 構成要素「try {} catch(e) {}」は、「try {} catch(e: haxe.Exception) {}」の短縮形として使用できます。
  • eval インタープリターに SSL サポートが追加されました。
  • ターゲット JVM は実験的とみなされなくなりました。
  • 言語サーバー プロトコルについては、「Goto Implementation」および「Find References」機能のサポートが追加されました。
  • 生成されたコード内の一時ローカル変数の名前付けが改善されました。 冗長な「return;」を削除しました。 戻り値のないアロー関数内。
  • アクセスの組み合わせ (get、default) はフィールドで許可されます (getter のみ、デフォルトの割り当て動作)。
  • フィールドのインクリメント演算子とデクリメント演算子を許可する 抽象型.
  • 匿名イテレータを使用した for ループのインライン化が改善されました。
  • js: ES5 用の StringMap 実装を改善しました。
  • js: コンパイラオプション「-D js-es=6」に let 変数の生成が追加され、ES6 クラスの生成が改善されました。
  • lua: 「StringIterator」が最適化され、エラー処理が改善されました。
  • php: 基本型の「Std.isOfType」を最適化しました。
  • php: 生成された配列は、ネイティブ インターフェイス「Iterator」、「IteratorAggregate」、「Countable」を実装するようになりました。
  • cs: メタデータ「@:assemblyMeta」と「@:assemblyStrict」を追加しました。
  • Python: 匿名オブジェクトに「__contains__」の実装を追加しました
    「__getitem__」は、生成されたコード内で辞書として使用できるようにします。

  • jvm: 型指定された関数にアクセスし、オブジェクトが匿名構造として使用される場合 (動的プロパティ検索が防止される) に追加のインターフェイスを生成する新しい方法のおかげで、パフォーマンスが大幅に向上しました。
    プログラミング言語 Haxe 4.1 のリリース

標準ライブラリの改善:

  • 「Array.contains」機能を追加しました。
  • 配列のキーと値の反復を実装する「Array.keyValueIterator」を追加しました (「for (key => value in array)」)。
  • 制約タイプ「haxe.Constraints.NotVoid」を追加しました。
  • 「Lambda」クラスに「findIndex」関数と「foldi」関数が追加されました。
  • 「配列アクセス」(「arr[i]」によるアクセス) と「haxe.ds.HashMap」のキーと値の反復を実装しました。
  • jvm: JVM 固有のバージョンの「StringMap」、「sys.thread.Lock」、「sys.thread.Thread」を実装しました。
  • java/jvm: 「haxe.crypto」モジュールに「MD5」、「SHA-1」、および「SHA-256」のネイティブ実装を使用しました。
  • マクロ: 「haxe.macro.Context.containsDisplayPosition(pos)」を追加しました。
  • nullsafety: 「Strict」モードはシングルスレッドとして扱われるようになりました。 「StrictThreaded」モードを追加しました。
  • 「Std.is」は非推奨となり、「Std.isOfType」が優先されます。
  • クロージャで値のないローカル変数を使用する場合の警告を追加しました。
  • js: 「untyped __js__(code, args)」は非推奨となり、「js.Syntax.code(code, args)」に置き換えられます。
  • php/neko: 「neko.Web」と「php.Web」は非推奨となり、後で「hx4compat」ライブラリに移動されます。

次のリリースでは 計画されている:

  • パッケージマネージャーの改善 ハクセリブ.
  • 非同期システム API ベース リブブ.
  • コルーチン。
  • クラスを作成せずにモジュール式の静的関数と変数を宣言します (ナイトリー ビルドですでに利用可能です)。

出所: オープンネット.ru

コメントを追加します