決して遅れるよりも1週間遅れる方が良いので、10月のさびたニュースの主観的な選択に注目します。
このコレクションでは、Rust 1.30、Rust 2018、会議RustRush、Amethyst 0.9、しゃがむcrates.io、ガベージコレクター、2Dグラフィックスに関する論争、非語彙の有効期間、機能的なGUI。
Rust 1.30およびRust2018のテスト
Rust 1.30が登場しました( 議論 )。 主な革新は、手続き型マクロの部分的な安定化、通常のuse
によるマクロのインポート、モジュールシステムの改善、「生の」識別子、およびno_std
アプリケーションのサポートです(詳細については、 ハブの翻訳を参照)。
Rust 1.31は、 「Rust2018」エディションの最初のリリース( 「エディション」とは何ですか? )になります。したがって、 ベータテストバージョン1.31と貨物修正に参加するように誰もが招待されます 。
RustRush 2018 :モスクワでの12月15-16日カンファレンス
RustRush 2018は、Web、ブロックチェーン、高性能およびシステムプログラミングに特化したRustの開発者向けの会議です。
サイト( rustrush.ru )が更新されました- スピーカーとプログラムのほぼ完全なリストが公開され、 チケットのメインバッチの販売が開始されました。
Rust Languageプロジェクトには、Steve Klabnik、Ashley Williams、Pascal Hertlif、Katarina Feyの4人が参加します。 IPカメラファームウェアを搭載したマキシムラプシン、コスティアステパノフ、ピエールクリーガー(別名トマカ)など、他の地元の星の数はそれほど多くありません。 プログラム 。
誰かがレポートを提出したい場合は 、11月19日まで論文募集が開かれます。
Webassssembly
Rustを使用したWebAssemblyのプログラミング-本 ( ディスカッション )-WASM / Rustに関する本が予定されています。
WebAssemblyのMVP後の未来:漫画のスキルツリー ( ハブロ翻訳:「スキルツリーの形でのWebAssemblyの未来」 )-WASMがさらに発展する場所と方法、Rustのような言語がそのエコシステムで果たす役割。
Ruukh ( コード 、 ディスカッション )-VueJSとReactJSに触発された実験的なフロントエンドWebフレームワーク(不安定な機能を使用)。
Draco ( ディスカッション )-ReduxとElmに触発されたクライアントアプリケーションを構築するためのライブラリ。
Twiggy 0.3.0 ( コード )-他の更新の中でも、ユーザー
.wasm
は.wasm
ファイルサイズ.wasm
現れました。
パーセル (JSプロジェクト用の若くて高速なビルドシステムで、rastに友好的であり、構成を必要としない)のために、それをwasm_bindgenパッケージと統合するプラグインがリリースされました: parcel-plugin-wasm.rs 。
プラグインがどのように機能するかを示すテンプレートは、 rustwasm / rust-parcel-templateです。
ニュースをありがとうmvlabat 。
Smithy進捗状況の更新:WebAssemblyバンドルサイズを90%削減した方法 -重量削減については、本質的に「LLVM設定を調整してwasm-optを使用した」という精神のほんの一部であるため、名前は少し誤解を招く他の便利な小さなものを見つけます。
同時に、 アーティファクトのサイズを減らすことに関するwasm bookの章もあります 。
JavaScriptとWebAssemblyの間の呼び出しは最終的に高速になります ( 議論 )-記事自体にはRustはありませんが、Rust / WASMエコシステムにとって、イベントは依然として非常に重要です。
マルチスレッド化RustとWasm ( ディスカッション ) -Rustのマルチスレッド化状況の詳細な分析とレイトレーシングデモ :
埋め込み
rust-industrial-io - libiioを使用して、産業用センサーおよびドライブへのアクセスを提供します。
cortex-r-rtの開発-Cortex-Rプロセッサのランタイムパッケージが開始されました。
keypad-キーボードマトリックススキームのドライバー。
Rustを使用したBluetooth Low Energy ( ディスカッション );
安定化
#[panic_handler]
が1.30になると、安定したコンパイラを使用して、OSなしで実行するCortex-Mアプリケーションを開発できるようになりました。
共有バス ( コード )-ミューテックスを使用してデバイス間で周辺機器を安全に共有できます。
組み込みWG (ワーキンググループ)は成長しています。すでに11チームの27人の開発者がいます。
さびた
線形代数ライブラリ「cgmath」は「nalgebra」を支持してゆっくりと死にかけています。
アメジスト0.9ゲームエンジンがリリースされました( ディスカッション ):
-
SpriteRender
コンポーネントが追加されました。これにより、2Dゲームの作成が簡素化され、バッチ処理のサポートが追加されます。 - RONファイルからスプライトシート(スプライトシート)を簡単にロードできる可能性があります。
- randomPoison / amethyst-editorは、実験的な電子ベースのエディター/ビジュアライザー/デバッガーです。 作業には、コンポーネントの説明を含むプロジェクトのコードにamethyst-editor-syncパッケージを統合する必要があります。
また、次の作業が進行中です。
-
RoboInstructパズルの開発に関する新しいメモ:
- コンセプトアートが明らかに -スプライトの再描画があります。
- Early Game Discoveries-ゲームのプロットを提出するためのメッセージシステム。
- 自己紹介 -基本トレーニング;
- 初期のゲームの大きな変更 -新しいレベルの新しいアルファ版。
Pyro-高速で小さく文書化されたEntity Component System ( 説明 ) -AoSではなくSoAにデータをアップロードすることにより、 仕様よりも高速な新しい高速ECS。 GIFデモ 。 著者は、プロジェクトはまだ未加工であり、深刻なビジネスには今のところ仕様を使用する方が良いと警告しています。
Gfx-halチュートリアルパート2:頂点バッファー -gfx-halの操作に関する2番目のレッスン。
rustsimの最後の2か月#1-過去2か月でnphysics 、 ncollide 、 nalgebra 、およびalgaに何が起こったか。
RustでのGLSL準引用! ( 説明 )-シェーダーコードの準化により、ビルド段階でrustcを介したチェックを使用してRustコードからGLSLを直接使用できます(現在のバージョンは非常に粗雑でフォーマットのみをチェックしますが、将来のバージョンはより有用なセマンティックチェックを行う必要があります)
Encrusted ( ディスカッション )-ZorkのようなテキストアドベンチャーのWASMインタープリター。
エンティティコンポーネントシステムのイベント ( ディスカッション )-ECSに基づいたイベントシステムを個別のグリーティング
specs
基づいて編成するアプローチ。
crates.ioでしゃがむ
crates.ioがネームスペース/組織のサポートを開始すべきかどうかについての議論は、貨物の出現以来ほとんど続いています。 ここに最近のいくつかのリストを投げてください:
- https://users.rust-lang.org/t/should-people-be-allowed-to-reserve-crate-names/8360
- https://www.reddit.com/r/rust/comments/6u52po/name_squating_on_cratesio
- https://www.reddit.com/r/rust/comments/86yr2x/python_pep_regarding_package_names_abandoned
- https://www.reddit.com/r/rust/comments/9aaanw/cargo_crate_name_reservation_spam
- https://www.reddit.com/r/rust/comments/9dole9/proposal_crate_squatting_on_cratesio
- https://internals.rust-lang.org/t/crates-io-squatting/8031-現在のトピック。
質問は複雑で、終わりがありません。 数週間前に誰かがびっくりして、リポジトリを非難またはスパムすることを決めました:
数時間、サービスユーザーはアクセスの問題を経験しました。 その結果、何も大きな変化はありませんでした。完全なスパムに対するいくつかの追加ルールが導入され、議論が再開され、さらにいくつかのPre-RFCが作成されました。 最後にどこに来るか見てみましょう。
シグレグレトールGC
withoutboatsは、新しい、まだ不安定な Pin APIの能力を調査する過程で、ガベージコレクション用の実験ライブラリShifgrethorを作成し、その配置方法と理由に関する一連の記事を公開しました。
- Shifgrethor I:Rustライブラリーとしてのガベージコレクション ( ディスカッション )-プロジェクトの概要;
- Shifgrethor II:ガベージコレクターのトレースに関するメモ ( ディスカッション )- ガベージコレクターのトレースの一般的な仕組みに関する教育プログラム。
- Shifgrethor III:ルート化 ( ディスカッション )-ルート化およびローカル実装機能へのアプローチのレビュー
- Shifgrethor IV:トレース ( ディスカッション )-トレース自体の仕組み。
さびたGCライブラリを実装する最初の試みではありません(この目的のために言語に@
ポインタがあった場合)が、これは新しいPin
メカニズムを使用した以前の試みとは異なります。
ライブラリはPin APIに依存しているため、安定したRustではまだ動作しません。 ボートマンは、プロジェクトがまだ純粋に研究中であることを何度か繰り返し、このライブラリを使用することが正確にどこに意味があるのかさえわかりません-他の言語をGCと統合するか、複雑なデータ構造を実装する可能性が最も高いです。
2Dグラフィックスノートシリーズ
- 欲しいクレート:2Dグラフィック ( ディスカッション );
- Rustディスカッション ( ディスカッション )の2Dグラフィックのフォローアップ ;
- Rustでの2Dグラフィックスのディスカッション-GPUメモリ管理 ( ディスカッション );
すべての場面で2Dグラフィックスのユニバーサルライブラリを作成して作成できないのはなぜですか? 非常に面白いので、記事自体とコメントをご覧になることをお勧めします。
非字句寿命 (NLL)に関する注意
ニコは、NLL( それは何ですか? )がすぐに次のバージョンのRustに統合される方法(これまでfeature(nll)
を通じて明示的に含める必要があります)、その実装、およびアナライザーの将来の反復で解決される問題に関するいくつかのメモを公開しました借用:
- MIRベースのborrowckはほぼここにあります ( 説明 )。
- NLL後:プロシージャー間の競合 ( ディスカッション );
もう少し深く掘り下げたい人のために、 URLOテーマがまだあります。
アズール
前回の毎月のコメントでさえ、GUIがRustのひどい場所であることを示しています。 エコシステムにこの穴を埋める別の試み: Azulは、レンダリングにWebRenderを使用して、状態キャッシュを備えた機能的なIMGUIライブラリです( ディスカッション )。
詳細については、プロジェクトのWebサイトazul.rsを参照してください。
一行で
- 次のIntellij-rust IDEの更新では、とりわけ、動作のセマンティクスの分析と新しい「クイックフィックス」( gifデモ )が提供されます。
- jemallocメモリアロケーターは 、「システム」アロケーターを支持して標準ライブラリから削除されました 。 属性
#[global_allocator]
は最近安定化されたため、古いアロケーターを返したい人はjemallocatorパッケージを有効にできます 。 - TravisCIはWindowsビルドのサポートを展開し、Rustはネイティブサポート言語の上位3つに入りました 。
- RustでのOSの記述:ハードウェア割り込み ( ディスカッション )-低レベルの愛好家のための割り込みの操作に関する優れた記事。
- 「コンピューターの仕組みを学ぶ」ためにCを学ぶ必要がありますか? ( / r /プログラミングでの議論 )-趣味はステレオタイプのステレオタイプに対処しようとします。
- Pythonの酸化:Rustを使用してURLクォートを10倍高速化( ディスカッション )-Rustの計算量の多い部分を書き換えることにより、Pythonコードを高速化する実用的な例。
- Rustプログラムのリリースチェックリスト ( ディスカッション )-プロジェクトの新しいバージョンを公開する前に再確認する必要がある事項の説明リスト。
- 大胆不敵なSIMDに向けて ( 議論 )-RalphはRustでSIMDサポートを改善する方法を考えています。
- RustのタイプレイアウトとABIに関するメモ ( ディスカッション )-Rust ABI +の現在のバージョンがどのように構成されているかは、ランダムで低レベルの関心事です。
- Rust、Battlecode、およびHalite:AIプログラミングコンテストでの初心者の経験-AIプログラミングコンテストへの参加に関するレポート。
- Rustには静的なガベージコレクターがあります ( ディスカッション )-愛好家は、古典的なガベージコレクターとは対照的に、Rustの自動メモリ管理について議論します。
- cbindgenの今後の方向性(rust-ffi) ( ディスカッション ) -cbindgenのさびたライブラリに基づいたキャスターバインディングジェネレーターのさらなる開発計画。
- Cargoを使用したQtアプリケーション -さびたQtアプリケーションの構築プロセスを可能な限り単純化する方法。
- 貨物用のスペースの 増加 - @llogiqは、
target
ディレクトリがディスクスペースを消費していないかのように消費する方法について説明します。 - Heaptrackのケーススタディ ( ディスカッション )-メモリ消費の最適化に関する小さなレポート- システムアロケーター 、ヒープトラック、 フレームグラフなどを使用します。
- docs.rsをホストしているドキュメントがrust-lang-nurseryに移動しました 。 以前のdocs.rsはツールチェーンのパッチを適用したフォークを使用する必要があったため、これには公式rustdocの大幅な改善が必要でした。
- 大規模なマルチクレートRustプロジェクトのスケーリングの問題( ディスカッション )-成長中の「マルチクレート 」プロジェクトのスケーリングの問題の議論(主にバイナリのサイズについて);
- Rustについて最近学んだクールなことは何ですか? -あらゆる種類の便利な小物を含む面白いredditトピック。
新規および更新されたパッケージ
- reFORM ( ディスカッション )-シンボリックコンピューティングの高性能フレームワーク( FORMのアナログ);
- Noria ( ディスカッション 、 コード ) -Webアプリケーションの高速バックエンド。
- bible.rs ( ディスカッション 、 コード )-突然、聖書の便利な検索を行うためのactix + ディーゼルのサイトの例;
- sugar-rs ( ディスカッション )-
hashmap!{ 1 => 2, 2 => 3 }
の精神でマクロ糖のコレクションhashmap!{ 1 => 2, 2 => 3 }
; - reflow ( ディスカッション )-システムレベルのプロキシスイッチャー、Tokioを使用。
- hashbrown ( ディスカッション )-非常に高速なHashMap、Google SwissTableの Rustポート。
- 形式 ( ディスカッション )-ガベージコレクションを使用せず、正式な証拠(hello、 Coq / Idris ?)を使用した関数型言語。EthereumスマートコントラクトまたはCUDA / OpenCLにコンパイルできます。
- hex ( ディスカッション )-音楽ライブラリを管理するためのパッケージのコレクション。
- soup ( ディスカッション )は、美しいLittle Soupのペットに触発されたHTMLの解析と操作のためのライブラリです。 実装ではhtml5everを使用します 。
- ペスト2.0 ( ディスカッション 、 コード )-高速パーサーはさらに高速になりました。
- Alacrittyターミナルエミュレーター がWindowsで動作できるようになりました 。
- slotmap 0.3 ( スロットマップの 説明 )- カスタムキータイプとSecondaryMapを追加しました(要素の追加情報を効果的に保存できます)。
- Gotham 0.3 ( Webサイト 、 ディスカッション )は、安定したRust上で実行される高速で柔軟なWebフレームワークです。 更新された
tokio
、hyper
およびhttp
依存関係、パフォーマンスの向上、静的ファイルの非同期配布、および使用されたtokioランタイムを構成する機能の登場。 - libdiffuzz ( メモリサニタイザーのセキュリティ指向の代替)は( Rustで書き直されました );
新しいRFC
RFCが言語がどの方向に向かっているのかを知ることは非常に便利なので、ここにいくつか興味深いものがあります。 PRの見出しに「レンダリング済み」リンクがあります。これにより、RFCは読み取り可能な形式で利用できます。
- RFC 2436フォーマットガイドライン -錆コードを設計するための単一公式スタイルの独裁を確立するための次のステップ。
- RFC 2476 Clippy 1.0 -clippyを安定させる機能を修正。
- RFC 2457は非ASCII識別子を許可します -複数回の反復を経て苦しんでいるひどいRFC。
- RFC 2451 Re-rebalancing Coherence -
impl<T> ForeignTrait<LocalType> for ForeignType<T>
実装します。 - RFC 2581汎用整数
uint<N>
およびint<N>
整数型を追加することを提案しuint<N>
。
また、RFCに先立ついくつかの議論があります。
- サポートされているプラットフォームのリストからWindows XPを除外する必要性に関するIRLOトピック-今が最適です。
- 新しいシンボルマングリングスキーム -シンボル名を装飾するための新しい、より精巧なスキーム。 ABIの将来の安定化に必要な多くのステップの1つ。
- 貨物の特徴を文書化するというアイデアは素晴らしいものであり、まもなく本格的なRFCになることを願っています。
- すべての代替/バックエンドを1つのフロントエンドに配置するために、 構造ログ ( ディスカッション )に「ログ」パッケージを教えること 。
ご覧いただきありがとうございます!
重要なリンクやイベントを追加していない場合は、コメントにドロップしてください。 :)
ここから撮影した KDPV、各プロジェクトのサイトからの残りの写真。