C++

Swift が所有権、マクロ、および C++ 相互運用のサポートを追加

Swift 言語ワークグループは、2023 年以降の Swift の開発の主な焦点領域を詳しく説明しています。これには、メモリ管理、コピー不可の型、マクロ システム、および C++ 相互運用性の所有権モデルの定義が含まれます。 所有権は、Rust のおかげで最近一般的になったメモリ管理へのアプローチであり、最も明確な言語機能の 1 つとして保持され、メモリの安全性を保証する機能の基盤となっています。 Rust は 3 番目のアプローチを使用します。メモリは、コンパイラがチェックする一連のルールを使用して、所有権のシステムを通じて管理されます。 いずれかの規則に違反すると、プログラムはコンパイルされません。 所有権のどの機能も、実行中にプログラムを遅くすることはありません。 Swift での所有権の導入に関する議論は 2017 年に始まり、所有権マニフェストの定義につながりました。 所有権に関する作業はどこにもつながりませんでしたが、Swift 言語ワークグループは、プログラマーがメモリ内の値をより詳細に制御できるようにすることを目的として、所有権を復活させています。 これには、暗黙的なコピーの禁止、所有権の譲渡の有効化、値をコピーせずに借用することが含まれます。 さらに、Swift は、重要な値のライフサイクルを制限するために、コピー不可能な型のサポートを得ることができます。 これらのコントロールは、現在の「安全でない」構造のパフォーマンスと Swift の標準ライブラリ機能の安全性を組み合わせて、メモリ内のデータを操作する新しい方法を可能にします。 Swift のもう 1 つの有望な分野は、高度なライブラリと DSL の作成を可能にする手続き型マクロ システムの作成です。 マクロは、字句、構文、またはセマンティック レベルでソース コードに変換を適用するコード生成のメカニズムです。 マクロとして実装できる Swift の既存の機能の多くは、 Codable プロトコル、文字列補間、プロパティ ラッパー、および結果ビルダー。 Swift 言語チームによると、マクロを使用して上記のような新機能を構築すると、言語とそのツールに関する別の作業により多くのリソースを解放できます。 Swift マクロの作業はまだ非常に初期段階ですが、Swift でどのように見えるかについては、すでにいくつかのアイデアがあります。 これは可能な例です stringify 大きい: macro(contexts: …

Swift が所有権、マクロ、および C++ 相互運用のサポートを追加 Read More »

Pytorch 2.0 は 100% の下位互換性を約束

PyTorch Foundation は、最近開催された PyTorch Conference で、待望の PyTorch 2.0 の最初の実験的リリースを発表しました。 これは、PyTorch の次世代 2 シリーズ リリースに向けた最初のステップです。 現時点ではベータ版がリリースされていますが、最初の安定した 2.0 のリリースは 2023 年 3 月に予定されています。 PyTorch 2.0 は引き続きユーザー エクスペリエンスを提供します。 ただし、内部でのコンパイラ レベルでの PyTorch の動作方法が根本的に変わる、と Foundation は述べています。 新しいバージョンの最も話題になっている機能の 1 つは、 100% 下位互換性新しいバージョンでは、データ サイエンティストは以前のバージョンで行っていたのと同じことを引き続き行うことができますが、はるかに高速な方法で行うことができます。 PyTorch は、命令型の Python プログラミング スタイルを提供することで、使いやすさと速度に重点を置いた深層学習プラットフォームとして 2016 年に導入されました。 PyTorch は、デバッグを容易にしながら、効率性を維持し、ハードウェア アクセラレータ (GPU など) をサポートするモデルとしてコードをサポートします。 これは、ちょうど 1 年前に導入された Google の …

Pytorch 2.0 は 100% の下位互換性を約束 Read More »

WebAssembly に乗っている 14 のホットな言語プロジェクト

今日の Web アプリケーションは、ネイティブ デスクトップ アプリケーションほど高速でも応答性でもありません。 それが WebAssembly の約束です。 WebAssembly は、Web ブラウザーでネイティブに近いパフォーマンスで実行されるコンパクトなバイナリ形式の低レベルのアセンブリに似た言語です。 同時に、WebAssembly は、C/C++、C#、Rust、Go、Kotlin、Swift、およびその他のプログラミング言語用の移植可能なコンパイル ターゲットを提供します。 Web アプリケーションのパフォーマンスを向上させ、JavaScript 以外の言語をブラウザー アプリの開発に使用できるようにする方法として歓迎されている WebAssembly は、Google、Mozilla、Apple、および Microsoft によって支持されており、これらのすべてがブラウザーでテクノロジをサポートしています。エンジン。 WebAssembly は、その力を活用するまったく新しいプログラミング言語を含む、さまざまな新しいテクノロジの開発につながりました。 以下は、WebAssembly に大きな賭けをした 14 の言語プロジェクトです。 バイナリー語 Binaryen は、WebAssembly 用のコンパイラ ツールチェーン インフラストラクチャ ライブラリです。 C++ で書かれた Binary は、WebAssembly へのコンパイルを簡単、効果的、高速にすることを目的としています。 単一のヘッダーに C API があり、JavaScript から使用できます。 入力は WebAssembly のような形式で受け入れられますが、一般的な制御グラフも、それを好むコンパイラーのために受け入れられます。 Binaryen の内部 IR (中間表現) はコンパクトなデータ構造を使用し、並列コード生成と最適化のためにすべての CPU コアを利用します。 …

WebAssembly に乗っている 14 のホットな言語プロジェクト Read More »

Microsoft が .NET 7 をサポートする壮大な PowerToys v0.65 アップデートをリリース

PowerToys は BetaNews で非常に多く取り上げられていますが、これは、これが最も便利でエキサイティングなソフトウェアの 1 つであるためです。 すばらしい新しいクイック ランチャー ユーティリティの計画があることは既にわかっています。開発が完了するのを待っている間、新たにリリースされた PowerToys v0.65 の更新プログラムを検討する必要があります。 このアップデートには新しいユーティリティは含まれていませんが、個々のモジュールに多数の調整と新機能が追加されているため、依然として重要なアップグレードです。 さらに、コードベース全体が .NET 7 で動作するようにアップグレードされました。 以下も参照してください。 新しいツールが含まれていない PowerToys の更新にがっかりするのは簡単ですが、PowerToys v0.65 にはまだ多くの発見があります。 Microsoft によると、v0.65 のリリース サイクルは安定性と改善に重点を置いており、お気に入りのユーティリティの多くが新機能と修正で更新されています。 更新されたモジュールには、新しいカラー フォーマット作成オプションの恩恵を受けるカラー ピッカーと、キャラクターの説明を表示するようになったクイック アクセントがあります。 このリリースには、注意すべきいくつかの既知の問題があります。 PowerToys v0.65 の完全な変更ログは次のとおりです。 全般的 特定の仮想化テクノロジの問題を回避するために、ModernWPF の依存関係を 0.9.4 にダウングレードしました。 (これは 0.64 の修正プログラムです) .NET 7 で動作するようにコードをアップグレードおよび修正しました。@snickler に感謝します。 常にトップに 固定/固定解除イベントのテレメトリが追加されました。 起きた テレメトリを追加しました。 ランナーから開始するときに、トレイ アイコンから終了する Awake を削除しました。 …

Microsoft が .NET 7 をサポートする壮大な PowerToys v0.65 アップデートをリリース Read More »

IBM が Power10 パフォーマンス最適化ガイドを発行

2022 年 12 月 7 日 アレックス・ウッディ Power10 サーバーから最大限のパフォーマンスを引き出したいと考えている IBM i ショップには、自由に利用できる多くのオプションがあります。 IBM は、先週発表した「IBM i 向けの IBM Power10 パフォーマンス最適化」というタイトルの最新のパフォーマンス ペーパーで、それらのすべてではないにしても多くを取り上げています。 Power10 は、これまでに製造された中で最も強力な IBM プロセッサーです。 Power9 プロセッサと比較して、Power10 はコアあたり 20% から 30% 高いパフォーマンスを提供します。 また、ソケットあたりのコア数が 25% 増加したため、処理能力が大幅に向上し、有用な作業を行うことができます。 システム レベルでは、Power E1080 は、同等の機能を備えた Power E980 よりも 1.5​​ 倍から 1.6 倍の容量を提供します (もちろん、これらの高速な新しい Power10 プロセッサは除きます)。 Power10 プロセッサーは、非常に多くの生の処理能力を利用できるため、顧客のワークロードを吸収する準備ができています。 もちろん、すべてのワークロードが同じというわけではありません。 Greenscreen 5250 アプリケーションは、システムへの要求が少ないことで有名であり、新しい Power10 …

IBM が Power10 パフォーマンス最適化ガイドを発行 Read More »

メモリセーフ言語への移行が勢いを増す

ソフトウェア業界は、リモートで悪用可能な重大な攻撃の大部分の原因となっている一連の有害な脆弱性に対して前進している、とソフトウェア セキュリティの専門家は今週述べた。 いわゆるメモリの安全性の問題と呼ばれる脆弱性のクラスには、バッファ オーバーフローや解放後の使用エラーが含まれ、ソフトウェア企業によって公開されたアプリケーション セキュリティの問題の大部分を占めています。 現在、最新のデータによると、Java、C#、そして最近では Rust などのメモリセーフ言語の使用が増加した結果、クラス全体の脆弱性が急速に減少しました。 たとえば先週、Google は、Android オペレーティング システムの最新バージョンには、C などのメモリ セーフでない言語よりも、メモリ セーフなプログラミング言語 (Java、Rust、Kotlin など) で記述された新しいコードが多いことを明らかにしました。過去 3 年間で、メモリの安全性の脆弱性が 223 から 85 に減少しました。 Google のソフトウェア エンジニアである Jeffrey Vander Stoep は次のように述べています。 「メモリの安全性に関する脆弱性がますます少なくなるにつれ、研究コミュニティは他のクラスの脆弱性に脆弱性発見の取り組みを集中させることが予想されます。」 メモリの安全性に関する脆弱性は、非常に深刻です。 出典: グーグル 何十年もの間、C と C++ はソフトウェア業界の主力プログラミング言語でした。 しかし、C#、Go、Java、Python、Ruby、Rust、Swift などの最新の言語のメモリ保護が欠けています。 結果? アプリケーション セキュリティ会社 Veracode の State of Software Security Vol. 11 レポート。 バッファオーバーフローとワーム可能な欠陥 プログラマーが欠陥のあるコードを簡単に作成できることは、大規模なソフトウェア企業にとって大きな問題となっています。 …

メモリセーフ言語への移行が勢いを増す Read More »

PowerToys 0.65.0 がリリースされ、修正と改善の膨大なリストが含まれています

タラス ブリア ネオウィン @TarasBuria · 2022 年 12 月 6 日午後 2 時 52 分 EST Windows 10 および 11 で PowerToys を使用している場合は、更新の時期です。バージョン 0.65.0 がダウンロード可能になり、多数の修正、改善、およびマイナーな変更が加えられました。 残念ながら、派手なクイック アクセス ランチャーはリリースに含まれていないため、既存のユーティリティ (以前の機能更新で​​追加されたものを含む) を少し改善することに焦点を当てた更新をお楽しみください。 アップデートのハイライトは次のとおりです。 コードベースは、.NET 7 で動作するようにアップグレードされました。 クイック アクセントで、選択した文字の説明を表示できるようになりました。 ColorPicker は、カスタム形式の追加をサポートするようになりました。 既知の問題は次のとおりです。 また、既存のおもちゃの改善と変更を含む詳細な変更ログは次のとおりです。 全般的 特定の仮想化テクノロジの問題を回避するために、ModernWPF の依存関係を 0.9.4 にダウングレードしました。 (これは 0.64 の修正プログラムです) .NET 7 で動作するようにコードをアップグレードおよび修正しました。@snickler に感謝します。 常にトップに 固定/固定解除イベントのテレメトリが追加されました。 起きた …

PowerToys 0.65.0 がリリースされ、修正と改善の膨大なリストが含まれています Read More »

メタでサーバー側の使用が推奨されているプログラミング言語

Meta でプログラミング言語をサポートすることは、非常に慎重かつ慎重な決定です。 エンジニアや開発者がプロ​​ジェクトに最適な言語を選択するのに役立つ内部プログラミング言語ガイダンスを共有しています。 Rust は、サポートされているサーバー側言語の Meta のリストへの最新の追加です。 Meta では、多種多様なプラットフォームやユースケースに対応するために、さまざまなプログラミング言語を使用しています。 新しい言語をサポートすることは、私たちが簡単に下す決定ではありません。 採用するすべての言語が特定のユースケースに最適であることが重要であるため、言語を評価するときは常に高レベルの注意を払っています。 言語に関する決定は、一度行われると固執する傾向があるため、エンジニアが作業するのに最適なツールを提供するために、最初から慎重に検討したいと考えています。 本日、Meta で重要な役割を果たしているさまざまな言語、特に Rust が最近追加されたサーバー側プログラミング言語に関する内部ガイダンスについての洞察を共有しています。 Meta でサポートされている言語は何ですか? 個々の詳細に入る前に、ここで サポートされています メタ内での意味 (および意味ではない): 言語が サポートされていますを使用すると、開発者は、コードの編集、デバッグ、ビルド、デプロイ、およびコア ライブラリと相互運用性について優れたエクスペリエンスを得ることができます。 開発者は、サポートされている言語から移行するよう求められることもありません。 ほとんどの場合、Meta は新しいプロジェクトやサービスでサポートされている言語を選択することを推奨しています。 言語を完全にサポートすることは Meta にとって大きな投資であるため、「ロングテール」言語は コミュニティがサポート. これらの言語の保証ははるかに少なく、それらを採用するチームはメンテナンスの負担を負う必要があります。 ほとんどの場合、チームがすでに言語に多額の投資を行っていない限り、チームはそれらを新しいアプリケーションに使用することを避ける必要があります。 Meta でサポートされている主なサーバー側言語は次のとおりです。 ハック、C++、Rust、Python. パフォーマンスが重視されるバックエンド サービスには、C++ と Rust をお勧めします。 Rust はこのリストに新たに追加されました. 私たちの製品やサービスでは急速に Rust の足跡が増えており、私たちは長期的に Rust に取り組んでおり、アーリー アダプターを歓迎しています。 為に CLI ツール、Rustをお勧めします。 今年の新提案です。 ビジネス …

メタでサーバー側の使用が推奨されているプログラミング言語 Read More »

Udacity で C++ を学ぶ – 70% オフ

Udacity はホリデー シーズンに間に合うように特別オファーを用意しています。この機会にぜひご利用ください。 前払いすると、すべてのプログラムで 70% オフになります。 それで何を選ぶか。 C++はどうですか? C++ は上位 5 つのプログラミング言語の 1 つですが、オンラインで学習することを強く推奨する機会はあまりありません。 それは難しい言語と見なされており、おそらく当然の評判ですが、C++ ナノディグリーのプロモーション ビデオで概説されているように、多くの複雑で高性能なシステムの中心に位置しています。 ビデオの中で、この言語の作成者である Bjarne Stroustrup は、C++ は私たちが行うあらゆることの「基本部分」に使用されていると説明し、次のように述べています。 「それはより高いレベルのソフトウェアとハ​​ードウェアの間にくっついており、それはほとんどの人が考えている世界のはるかに大きな部分です。それは基本的にどこにでもあります。」 Udacity の School of Autonomous Systems の責任者である David Silver 氏が言うように、C++ は自動運転車、ドローン、ロボット工学と Udacity の共同設立者の間の共通の糸です。 自動運転車のパイオニアである Sebastian Thrun 氏は、その価値をまだ確信していない場合は、次のように付け加えています。 「自動運転車は C++ なしでは実現できません。 「DARPA グランド チャレンジで優勝した自動運転車を C++ でプログラミングしました。 現在 Waymo と呼ばれている Google 自動運転車プロジェクトは、C++ で開始されました。」 プログラムの前提条件は、任意の言語でのオブジェクト指向プログラミングの中級知識です。 …

Udacity で C++ を学ぶ – 70% オフ Read More »

Nvidia は、オープン コードと並列コードで 1 兆ドル規模の将来を見込んでいます • The Register

グラフィックス プロセッサはコンピューティングに欠かせないものになりつつあるため、Nvidia は標準およびオープンソース コミュニティとの連携を強化し、かつては同社の開発ツールにほぼ限定されていたダウンストリーム テクノロジに取り組んでいます。 C++ や Fortran などのプログラミング言語を中心に多くの作業が行われていますが、高度に並列化されたシステム間でコードを実行するためのネイティブ実装が遅れていると見なされています。 Nvidia の高性能コンピューティングおよび量子コンピューティングのグループ プロダクト マネージャーであるティモシー コスタ (Timothy Costa) 氏は、この計画は汎用コンピューティング環境とコンパイラをより生産的で親しみやすいものにすることだと語った。 登録簿. 「最終的に、オープンソース コミュニティとプログラミングに関する私たちの目標は、すべての人にとって同時実行性と並列性を強化することです。私が言っているのは、CPU と GPU を意味するからです」とコスタ氏は述べています。 オープン化され、メインストリームに持ち込まれたテクノロジーの多くは、オープン ライブラリとプロプライエタリ ライブラリを組み合わせた CUDA 並列プログラミング フレームワークで Nvidia が行った過去の作業に関連しています。 CUDA は、コーダーが GPU にプログラムを書き込むためのプログラミング ツールとフレームワークのセットとして 2007 年に導入されました。 しかし、GPU の使用がより多くのアプリケーションやセクターに拡大するにつれて、CUDA 戦略は変化しました。 Nvidia は GPU 市場を支配していることで広く知られていますが、CUDA は、1 兆ドルの市場評価額を追求するソフトウェアおよびサービス プロバイダーとしての地位を再構築する会社の中心にあります。 Nvidia の長期的な目標は、自動運転、量子コンピューティング、ヘルスケア、ロボット工学、サイバーセキュリティ、量子コンピューティングなどの専門分野を対象とするフルスタック プロバイダーになることです。 Nvidia は、これらの分野に特化した CUDA ライブラリを構築し、企業が活用できるハードウェアとサービスも提供しています。 …

Nvidia は、オープン コードと並列コードで 1 兆ドル規模の将来を見込んでいます • The Register Read More »