クロスプラットフォーム プログラミング言語 Julia がバージョン 1.9 に到達

ジュリア・ラング

ulia は、テクニカル コンピューティング用の動的、高レベル、高性能言語です。

数日前 プログラミング言語の新バージョン Julia 1.9 のリリースが発表されました、高性能、動的型付けのサポート、並列プログラミング用の組み込みツールなどの品質を兼ね備えています。 Julia の構文は MATLAB に近く、一部の要素は Ruby と Lisp から借用しています。

ジュリア 動的型付けを備えたマルチプラットフォームおよびマルチパラダイムプログラミング言語として際立っています。 他の同様のコンピューティング環境と同様の構文を備えた、汎用、技術的、科学的コンピューティングのための高レベルで高性能のフレームワーク。

Julia 1.9の主なニュース

この新しいバージョンの Julia 1.9 では、いくつかの機能が追加されています。 ランタイム/コンパイラーの改善 ありました 最初の実行までの時間を大幅に短縮。 パッケージのプリコンパイルでは、ネイティブ コードが「pkgimage」に保存されるようになりました。これは、プリコンパイル中に生成されたコードをパッケージのロード後に再コンパイルする必要がないことを意味します。 pkgimages モードの使用は、オプション「-pkgimages=no」で無効にできます。

目立つ変更のもうXNUMXつは 型固有でない引​​数を使用した呼び出しを最適化できるようになりました 複数の異なるタイプの送信候補がある場合でも、注入または静的解決のための結合分割を介して。 これにより、呼び出しサイトを静的に解決することで、オブジェクト型が静的に完全に解決されない特定の状況でパフォーマンスを向上させることができます。@nospecialize-d" そして再コンパイルを避けてください。

単一文字リテラルが文字列リテラルと同じ構文をサポートするようになりました。 これらの構文は、Char 型で許可されているように、無効な UTF-8 シーケンスを表す可能性があります。

それに加えて、Linux および Windows では、オプション «--threads=自動» 利用可能なプロセッサの数を決定しようとします。 CPU アフィニティに基づきます。これは、HPC およびクラウド環境で通常設定されるマスクです。

オプションが無効になっています--math-mode=fast"、代わりにマクロを使用することをお勧めします"@ファストマス" パラメータに加えて、明確に定義されたセマンティクスを備えています。"--スレッド» の形式になりました «車 | N[,auto|M]»ここで、M は作成する対話型スレッドの数を指定します。

オプション«を追加しました--ヒープサイズヒント=» アクティブなガベージ コレクションが開始されるしきい値を設定します。 サイズはバイト、キロバイト (1000 KB)、メガバイト (300 MB)、またはギガバイト (1,5 GB) で指定できます。

「@invoke」マクロ バージョン 1.7 で導入されたものがエクスポートされ、使用できるようになりました。 そのほか、 「Core.Typeof(x)」メソッドを使用するようになりました。 それよりも "任意" 引数 "x" の型アノテーションを省略した場合。 これは、引数として渡された型が正しく処理されるようにするために必要です。

また、 「Threads.@spawn」には、オプションの最初の引数「:default」または「:interactive」が追加されました。 インタラクティブなタスクは低遅延の応答を必要とし、短時間または頻繁に実行されるように設計されています。 Julia の起動時に対話型タスクが指定されている場合、対話型タスクは対話型スレッド上で実行されます。

目立つその他の変更:

  • 述語関数「!f」を否定すると、匿名関数ではなく複合関数「(!) ∘ f」が返されるようになりました。
  • ディメンション分割関数が複数のディメンションで動作するようになりました: «eachslice」、「eachrow」、および「eachcol」 オブジェクトを返す "スライス» これにより、配送がより効率的な方法を提供できるようになります。
  • マクロ «@kwdef» が公開 API に追加されました。
  • 「fld1」の操作順序の問題を修正しました。
  • 並べ替えは時間が経っても常に安定するようになりました (再設計された QuickSort)。
  • BLAS スレッドのデフォルト数は、ARM アーキテクチャの CPU スレッド数と等しく、他のアーキテクチャの CPU スレッド数の半分になりました。
  • Printf: 読みやすくするために、不正な形式の文字列のエラー メッセージを再加工しました。
  • プロファイル:ChromeでサポートされているJSONベースの「.heapsnapshot」形式でファイルを書き込む新関数「Profile.take_heap_snapshot(file)」。
  • Unicode 15 仕様のサポートが追加されました。
  • タプルと名前付き文字タプルのネストされた組み合わせを型パラメータとして使用できるようになりました。

最後に、それについてもっと知りたい場合は、詳細を調べることができます 次のリンクで。


Googleで優先ソースとして追加する