
Lebih baik dengan penundaan seminggu daripada tidak pernah sama sekali, jadi saya membawa Anda pada pilihan subjektif dari berita karatan untuk Oktober.
Dalam koleksi ini: Rust 1.30, Rust 2018, konferensi RustRush, Amethyst 0.9, jongkok crates.io, pengumpul sampah, kontroversi grafis 2D, masa hidup non-leksikal, fungsional GUI.
Pengujian Rust 1.30 dan Rust2018
Rust 1.30 keluar ( diskusi ). Inovasi utama adalah stabilisasi parsial makro prosedural, impor makro melalui use
reguler, peningkatan sistem modul, pengidentifikasi "mentah" dan dukungan untuk aplikasi no_std
(untuk lebih jelasnya, lihat terjemahan hub ).
Rust 1.31 akan menjadi rilis pertama dari edisi "Rust2018" ( apa itu "edisi"? ), Dan oleh karena itu setiap orang diundang untuk bergabung dengan pengujian beta versi 1.31 dan perbaikan kargo .
RustRush 2018 : konferensi 15-16 Desember di Moskow
RustRush 2018 adalah konferensi untuk pengembang di Rust yang didedikasikan untuk web, blockchain, kinerja tinggi, dan pemrograman sistem.
Situs ( rustrush.ru ) telah diperbarui - daftar pembicara yang hampir lengkap dan sebuah program telah diterbitkan, penjualan batch tiket utama telah dimulai.
Akan ada empat peserta dalam proyek Bahasa Rust: Steve Klabnik, Ashley Williams, Pascal Hertlif, Katarina Fey. Dari bintang lokal lain dan tidak begitu banyak - Maxim Lapshin dengan firmware IP-kamera, Kostya Stepanov dan Pierre Krieger alias tomaka. Program .
Jika seseorang ingin mengirimkan laporan, Call for Papers buka hingga 19 November.

Perakitan web
Pemrograman WebAssembly with Rust - The Book ( diskusi ) - buku tentang WASM / Rust dijadwalkan;
Masa depan pasca-MVP WebAssembly: Pohon keterampilan kartun ( terjemahan habro: "Masa depan WebAssembly dalam bentuk" pohon keterampilan "" ) - di mana dan bagaimana WASM akan berkembang lebih lanjut dan peran apa yang akan dimainkan oleh bahasa seperti Rust dalam ekosistemnya;
Ruukh ( kode , diskusi ) - kerangka kerja web front-end eksperimental (menggunakan fitur yang tidak stabil), terinspirasi oleh VueJS dan ReactJS;
Draco ( diskusi ) - perpustakaan untuk membangun aplikasi klien, terinspirasi oleh Redux dan Elm ;
Twiggy 0.3.0 ( kode ) - di antara pembaruan lainnya, .wasm
pengguna muncul di .wasm
ukuran file .wasm
;
Untuk parcel (sistem build muda dan cepat untuk proyek JS, yang ramah dengan rast dan tidak memerlukan konfigurasi) , sebuah plugin telah dirilis yang mengintegrasikannya dengan paket wasm_bindgen : parcel-plugin-wasm.rs .
Berikut ini adalah templat yang menunjukkan cara kerja plugin: rustwasm / rust-parcel-template .
Terima kasih mvlabat untuk berita ini.
Smithy progress update: bagaimana saya mengurangi ukuran bundel WebAssembly sebesar 90% - namanya agak menyesatkan, karena tentang pengurangan berat badan di sana, pada dasarnya, hanya sepotong kecil dalam semangat "mengubah pengaturan LLVM dan menggunakan opsi-penggunaan", tetapi dalam artikel tersebut temukan hal-hal kecil bermanfaat lainnya.
Di sini, pada saat yang sama, adalah bab dari buku wasme tentang mengurangi ukuran artefak .
Panggilan antara JavaScript dan WebAssembly akhirnya cepat ( diskusi ) - tidak ada Karat dalam artikel itu sendiri, tetapi untuk ekosistem Rust / WASM acara ini masih sangat penting;
Multithreading Rust and Wasm ( diskusi ) - analisis terperinci tentang situasi multithreading di Rust dan demo penelusuran sinar:

Tertanam
rust-industrial-io - menggunakan libiio , menyediakan akses ke sensor dan drive industri;
Pengembangan korteks-r-rt - paket runtime untuk prosesor Cortex-R telah dimulai;
keypad - driver untuk skema matriks keyboard;

Bluetooth Low Energy with Rust ( diskusi );
Dengan stabilisasi #[panic_handler]
pada 1,30, menjadi mungkin untuk mengembangkan aplikasi Cortex-M yang berjalan tanpa OS menggunakan kompiler stabil.
shared-bus ( code ) - memungkinkan Anda untuk berbagi periferal dengan aman antar perangkat menggunakan mutex;
Embedded WG (kelompok kerja) tumbuh: sudah 27 pengembang di 11 tim;
Igrostroy berkarat
Perpustakaan aljabar linier "cgmath" perlahan-lahan mati demi "nalgebra" ;
Mesin game Amethyst 0.9 dirilis ( diskusi ):
- Menambahkan komponen
SpriteRender
, yang menyederhanakan pembuatan game 2D dan menambahkan dukungan untuk batching; - Ada kemungkinan pemuatan lembar sprite (spritesheet) yang nyaman dari file RON ;
- randomPoison / amethyst-editor adalah editor / visualizer / debugger berbasis Electron eksperimental. Untuk pekerjaan, itu memerlukan integrasi paket amethyst-editor-sync ke dalam kode proyek Anda dengan deskripsi komponen.

Juga, pekerjaan sedang berlangsung pada:
Catatan baru tentang pengembangan puzzle RoboInstruct :

Pyro - Sistem Komponen Entitas yang cepat, kecil dan terdokumentasi ( diskusi ) - ECS cepat baru, di beberapa tempat lebih cepat daripada spesifikasi dengan mengunggah data ke SoA, bukan AoS . Demo GIF . Penulis memperingatkan bahwa untuk sementara waktu proyek ini mentah dan untuk kegiatan serius lebih baik menggunakan spesifikasi untuk saat ini;
Gfx-hal Tutorial bagian 2: Vertex buffer - pelajaran kedua tentang bekerja dengan gfx-hal ;
Dua bulan terakhir di rustsim # 1 - apa yang terjadi pada nfisika , ncollide , nalgebra , dan alga dalam beberapa bulan terakhir;
Kuasiquoting GLSL di Rust! ( diskusi ) - kuasifikasi kode shader memungkinkan Anda untuk menggunakan GLSL langsung dari kode Rust dengan pemeriksaan melalui rustc pada tahap pembuatan (versi saat ini sangat mentah dan hanya memeriksa pemformatan, tetapi versi mendatang harus belajar untuk melakukan pemeriksaan semantik yang lebih berguna);
Bertatahkan ( diskusi ) - penerjemah WASM dari petualangan teks seperti Zork ;
Acara dalam Sistem Komponen Entitas ( diskusi ) - pendekatan untuk mengatur sistem acara berdasarkan ECS dengan specs
salam terpisah;
Berjongkok di crates.io
Perdebatan tentang apakah crates.io harus mulai mendukung ruang nama / organisasi telah berlangsung hampir sejak munculnya kargo. Cukup lemparkan ke sini daftar beberapa dalam beberapa tahun terakhir:
Pertanyaannya kompleks, tidak ada ujung srach. Seseorang panik beberapa minggu lalu dan memutuskan untuk mencela atau mengirim spam ke repositori:
Selama beberapa jam, pengguna layanan mengalami masalah akses. Akibatnya, tidak ada yang berubah banyak: beberapa aturan tambahan diperkenalkan terhadap spam langsung, diskusi dilanjutkan dengan sepenuh hati, menciptakan beberapa Pra-RFC dalam proses. Mari kita lihat di mana semua itu pada akhirnya.
Shifgrethor gc
tanpa perahu , dalam proses meneliti kemampuan Pin API baru yang belum stabil , menulis perpustakaan eksperimental untuk pengumpulan sampah - Shifgrethor - dan menerbitkan serangkaian artikel tentang bagaimana dan mengapa itu diatur:
Ini bukan upaya pertama untuk mengimplementasikan pustaka GC berkarat (setelah ada @
pointer dalam bahasa untuk tujuan ini), tetapi ini berbeda dari upaya sebelumnya menggunakan mekanisme Pin
baru.
Karena pustaka bergantung pada Pin API, pustaka tersebut belum dapat bekerja pada Rust yang stabil. Sang tukang perahu mengulangi beberapa kali bahwa proyek ini masih murni penelitian dan dia bahkan tidak yakin di mana tepatnya akan masuk akal untuk menggunakan perpustakaan ini - kemungkinan besar untuk mengintegrasikan bahasa lain dengan GC atau menerapkan struktur data yang kompleks.
Shifgrethor berbicara di IRLO .
Seri Note 2D
Mengapa mengambil dan membuat perpustakaan universal untuk grafik 2D untuk semua kesempatan tidak berhasil? Sangat menghibur, saya sarankan melihat melalui artikel sendiri dan mengomentarinya.

Nico menerbitkan beberapa catatan tentang bagaimana NLL ( apa itu? ) Akan segera diintegrasikan ke dalam versi Rust berikutnya (sejauh ini harus secara eksplisit dimasukkan melalui feature(nll)
), implementasinya dan masalah yang harus dipecahkan dalam iterasi penganalisa yang akan datang. meminjam:
Bagi yang ingin menggali lebih dalam, masih ada tema URLO .

Bahkan komentar pada acara bulanan terakhir bahwa GUI adalah titik sakit di Rust. Upaya lain untuk menyumbat lubang ini di ekosistem: Azul adalah pustaka IMGUI fungsional dengan caching negara, menggunakan WebRender untuk rendering ( diskusi ).
Lihat situs web proyek untuk perincian: azul.rs.

Dalam satu baris
- Pembaruan IDE Intellij-rust berikutnya membawa, antara lain, analisis semantik gerakan dan "perbaikan cepat" baru ( demo gif );
- Alokasi memori jemalloc telah dihapus dari perpustakaan standar demi pengalokasi “sistem” . Atribut
#[global_allocator]
baru-baru ini telah distabilkan, sehingga mereka yang ingin mengembalikan pengalokasi lama dapat mengaktifkan paket jemallocator ; - TravisCI meluncurkan dukungan untuk Windows build, Rust memasuki tiga bahasa yang didukung secara native ;
- Menulis OS di Rust: Interrupts Hardware ( diskusi ) - artikel bagus tentang bekerja dengan interupsi untuk pecinta level rendah;
- Haruskah Anda belajar C untuk “mempelajari cara kerja komputer”? ( diskusi dalam / r / pemrograman ) - Hobi mencoba untuk berurusan dengan stereotip stereotip;
- Mengoksidasi Python: Mempercepat URL dengan mengutip 10x menggunakan Rust ( diskusi ) - contoh praktis mempercepat kode python dengan menulis ulang bagian yang berat secara komputasi di Rust;
- Daftar periksa rilis saya untuk program-program Rust ( diskusi ) - daftar penjelasan hal-hal yang harus diperiksa ulang sebelum penerbitan versi baru proyek;
- Menuju SIMD yang tak kenal takut ( diskusi ) - Ralph sedang memikirkan cara meningkatkan dukungan SIMD di Rust;
- Catatan tentang Tata Letak Jenis dan ABI di Rust ( diskusi ) - bagaimana versi Rust ABI + terstruktur saat ini adalah sedikit ketertarikan acak tingkat rendah yang acak;
- Rust, Battlecode, dan Halite: pengalaman pemula dengan kontes pemrograman AI - laporan tentang partisipasi dalam kompetisi pemrograman AI ;
- Rust memiliki pengumpul sampah statis ( diskusi ) - Seorang penghobi membahas manajemen memori otomatis di Rust, berbeda dengan pengumpul sampah klasik;
- Arahan masa depan untuk cbindgen (rust-ffi) ( diskusi ) - rencana untuk pengembangan lebih lanjut dari generator pengikat kastor berdasarkan perpustakaan berkarat cbindgen ;
- Aplikasi Qt dengan Cargo - cara menyederhanakan proses membangun aplikasi Qt yang berkarat sebanyak mungkin;
- Lebih Banyak Ruang Untuk Kargo - @llogiq membahas bagaimana direktori
target
mengonsumsi ruang disk seolah-olah itu bukan; - Sebuah Studi Kasus di Heaptrack ( diskusi ) - sebuah laporan kecil tentang mengoptimalkan konsumsi memori - menggunakan pengalokasi sistem , heaptrack, flamegraph , dll.;
- Dokumentasi hosting docs.rs dipindahkan ke rust-lang-nursery . Ini membutuhkan perbaikan signifikan terhadap rustdoc resmi, karena dokumen sebelumnya harus menggunakan garpu rantai rantai yang ditambal;
- Masalah Penskalaan Proyek Karat Multi-Peti Besar ( diskusi ) - diskusi tentang masalah penskalaan proyek "multi- krat " yang sedang tumbuh (terutama tentang ukuran binari);
- Hal keren apa yang telah Anda pelajari tentang Rust baru-baru ini? - Topik reddit menghibur dengan segala macam hal kecil yang berguna;
Paket Baru dan Diperbarui
- reFORM ( diskusi ) - kerangka kerja berkinerja tinggi untuk komputasi simbolik (analog dari FORM );
- Noria ( diskusi , kode ) - backend cepat untuk aplikasi web;
- bible.rs ( diskusi , kode ) - contoh situs dengan actix + diesel untuk, tiba-tiba, pencarian yang mudah di Alkitab;
- sugar-rs ( diskusi ) - kumpulan gula-makro dalam semangat
hashmap!{ 1 => 2, 2 => 3 }
; - reflow ( diskusi ) - switcher proxy tingkat sistem, menggunakan Tokio;
- hashbrown ( diskusi ) - HashMap yang sangat cepat, Rust port Google SwissTable ;
- Formalitas ( diskusi ) - bahasa fungsional tanpa pengumpulan sampah dan dengan bukti formal (halo, Coq / Idris ?), Yang dapat dikompilasi ke dalam kontrak pintar Ethereum atau CUDA / OpenCL;
- hex ( diskusi ) - kumpulan paket untuk mengelola perpustakaan musik;
- soup ( diskusi ) adalah perpustakaan untuk parsing dan memanipulasi HTML, terinspirasi oleh hewan peliharaan Little Soup yang indah. Dalam implementasinya menggunakan html5ever ;
- hama 2.0 ( diskusi , kode ) - pengurai cepat menjadi lebih cepat;
- Emulator terminal Alacritty sekarang dapat bekerja di Windows - gambar ;
- slotmap 0.3 ( diskusi tentang apa Peta Slot? ) - menambahkan tipe kunci kustom dan SecondaryMap (memungkinkan Anda untuk menyimpan informasi tambahan untuk elemen secara efektif);
- Gotham 0.3 ( situs web , diskusi ) adalah kerangka kerja web yang cepat dan fleksibel yang berjalan pada Rust yang stabil.
tokio
diperbarui, dependensi hyper
dan http
, peningkatan kinerja, muncul distribusi asinkron file statis dan kemampuan untuk mengkonfigurasi runtime tokio yang digunakan; - libdiffuzz (alternatif berorientasi keamanan untuk pembersih memori ) adalah ( ditulis ulang di Rust );
RFC baru
Sangat nyaman bagi RFC untuk melihat ke arah mana bahasa ini menuju, jadi di sini ada beberapa yang menarik. Ada tautan "Rendered" dalam judul PR, di mana RFC tersedia dalam bentuk yang dapat dibaca.
Dan berikut beberapa diskusi Pra-RFC:
Itu saja, terima kasih sudah menonton!
Jika saya belum menambahkan tautan atau acara penting, silakan letakkan di komentar. :)
KDPV diambil dari sini , gambar-gambar yang tersisa dari situs masing-masing proyek.