
Besser mit einer Verzögerung von einer Woche als nie, deshalb mache ich Sie auf eine subjektive Auswahl rostiger Nachrichten für Oktober aufmerksam.
In dieser Sammlung: Rust 1.30, Rust 2018, Konferenz RustRush, Amethyst 0.9, Squating Crates.io, Garbage Collector, Kontroverse über 2D-Grafiken, nicht-lexikalische Lebensdauern, funktionale GUI.
Rust 1.30 und Rust2018 testen
Rust 1.30 kam heraus ( Diskussion ). Die Hauptinnovationen sind die teilweise Stabilisierung von prozeduralen Makros, der Import von Makros durch regelmäßige use
, die Verbesserung des Modulsystems, "rohe" Bezeichner und die Unterstützung von no_std
Anwendungen (weitere Einzelheiten siehe Hub-Übersetzung ).
Rust 1.31 wird die erste Version der "Rust2018" -Version sein ( was ist die "Edition"? ). Daher ist jeder eingeladen, an der Beta-Testversion 1.31 und dem Cargo Fix teilzunehmen .
RustRush 2018 : Konferenz vom 15. bis 16. Dezember in Moskau
RustRush 2018 ist eine Konferenz für Entwickler von Rust, die sich mit Web, Blockchain, Hochleistung und Systemprogrammierung befasst.
Die Seite ( rustrush.ru ) wurde aktualisiert - eine fast vollständige Liste der Redner und ein Programm wurden veröffentlicht, der Verkauf der Hauptkarten wurde gestartet.
Am Rust Language-Projekt werden vier Teilnehmer teilnehmen: Steve Klabnik, Ashley Williams, Pascal Hertlif und Katarina Fey. Von den anderen lokalen und nicht so vielen Stars - Maxim Lapshin mit IP-Kamera-Firmware, Kostya Stepanov und Pierre Krieger aka Tomaka. Programm .
Wenn jemand einen Bericht einreichen möchte, ist Call for Papers bis zum 19. November geöffnet.

Webassembly
Programmieren von WebAssembly mit Rust - Das Buch ( Diskussion ) - Ein Buch über WASM / Rust ist geplant.
Post-MVP-Zukunft von WebAssembly : Ein Cartoon-Skill-Tree ( Habro-Übersetzung: "Die Zukunft von WebAssembly in Form eines" Skill-Tree ")" - wo und wie wird sich WASM weiterentwickeln und welche Rolle werden Sprachen wie Rust in seinem Ökosystem spielen?
Ruukh ( Code , Diskussion ) - experimentelles Front-End-Webframework (verwendet instabile Funktionen), inspiriert von VueJS und ReactJS;
Draco ( Diskussion ) - eine Bibliothek zum Erstellen von Clientanwendungen, inspiriert von Redux und Elm ;
Twiggy 0.3.0 ( Code ) - Unter anderem wurde das Benutzerprofil im .wasm
Dateigrößenprofiler .wasm
.
Für parcel (ein junges und schnelles Build-System für JS-Projekte, das rastfreundlich ist und keine Konfiguration erfordert) wurde ein Plugin veröffentlicht , das es in das wasm_bindgen- Paket integriert: parcel-plugin-wasm.rs .
Hier ist eine Vorlage, die zeigt, wie das Plugin funktioniert: rustwasm / rust-parcel-template .
Danke mvlabat für die Neuigkeiten.
Update des Smithy-Fortschritts: Wie ich die Größe des WebAssembly-Bundles um 90% verringert habe - der Name ist etwas irreführend, da es in Bezug auf die Gewichtsreduzierung im Wesentlichen nur ein kleines Stück im Sinne von "Optimieren der LLVM-Einstellungen und Verwenden von wasm-opt" gibt, aber im Artikel finde andere nützliche Kleinigkeiten.
Hier finden Sie gleichzeitig ein Kapitel aus dem Wasm-Buch über die Reduzierung der Größe von Artefakten .
Aufrufe zwischen JavaScript und WebAssembly sind endlich schnell ( Diskussion ) - der Artikel selbst enthält kein Rust, aber für das Rust / WASM-Ökosystem ist das Ereignis immer noch sehr wichtig.
Multithreading Rust and Wasm ( Diskussion ) - eine detaillierte Analyse der Multithreading-Situation in Rust und eine Raytracing- Demo :

Eingebettet
rust-industrial-io - bietet mit libiio Zugang zu industriellen Sensoren und Antrieben;
Die Entwicklung des Cortex-r-rt - Laufzeitpakets für Cortex-R-Prozessoren hat begonnen.
Tastatur - Treiber für Tastaturmatrixschemata;

Bluetooth Low Energy mit Rost ( Diskussion );
Mit der Stabilisierung von #[panic_handler]
auf 1.30 wurde es möglich, Cortex-M-Anwendungen zu entwickeln, die ohne Betriebssystem mit einem stabilen Compiler ausgeführt werden.
Shared Bus ( Code ) - Ermöglicht die sichere gemeinsame Nutzung von Peripheriegeräten zwischen Geräten mithilfe von Mutexen.
Embedded WG (Arbeitsgruppe) wächst: bereits 27 Entwickler in 11 Teams;
Rostiger Igrostroy
Die lineare Algebra-Bibliothek "cgmath" stirbt langsam zugunsten der "Nalgebra" ;
Amethyst 0.9 Game Engine veröffentlicht ( Diskussion ):
SpriteRender
Komponente SpriteRender
, die die Erstellung von 2D-Spielen vereinfacht und Unterstützung für das Stapeln hinzufügt;- Es besteht die Möglichkeit, Sprite-Blätter (Spritesheet) bequem aus ROZ- Dateien zu laden.
- randomPoison / amethyst-editor ist ein experimenteller elektronenbasierter Editor / Visualizer / Debugger. Für die Arbeit ist die Integration des Amethyst-Editor-Sync- Pakets in den Code Ihres Projekts mit einer Beschreibung der Komponenten erforderlich.

Außerdem wird daran gearbeitet:
Neue Hinweise zur Entwicklung des RoboInstruct- Puzzles:

Pyro - Ein schnelles, kleines und dokumentiertes Entity Component System ( Diskussion ) - ein neues schnelles ECS, das an einigen Stellen schneller als die Spezifikationen ist, indem Daten auf SoA hochgeladen werden, nicht auf AoS . GIF-Demo . Der Autor warnt davor, dass das Projekt vorerst roh ist und es für ernsthafte Unternehmen besser ist, vorerst Spezifikationen zu verwenden.
Gfx-hal Tutorial Teil 2: Vertex-Puffer - die zweite Lektion zur Arbeit mit gfx-hal ;
Die letzten zwei Monate in Rustsim # 1 - was ist mit Nphysik , Ncollide , Nalgebra und Alge in den letzten Monaten passiert ?
GLSL-Quasiquoting in Rust! ( Diskussion ) - Durch die Quasifizierung von Shader-Code können Sie GLSL direkt aus Rust-Code mit Überprüfungen durch rustc in der Erstellungsphase verwenden (die aktuelle Version ist sehr roh und überprüft nur die Formatierung, zukünftige Versionen sollten jedoch lernen, nützlichere semantische Überprüfungen durchzuführen).
Verkrustet ( Diskussion ) - WASM-Interpreter von Zork-ähnlichen Textabenteuern;
Ereignisse in Entitätskomponentensystemen ( Diskussion ) - Ansätze zur Organisation eines auf ECS basierenden Ereignissystems mit separaten Begrüßungsspezifikationen;
Hocken bei crates.io
Die Debatte darüber, ob crates.io Namespaces / Organisationen unterstützen soll, dauert fast seit dem Aufkommen der Fracht an. Wirf hier einfach eine Liste von mehreren in den letzten Jahren:
Die Frage ist komplex, kein Ende der Srach. Jemand ist vor ein paar Wochen ausgeflippt und hat beschlossen, das Repository entweder vorzuwerfen oder zu spammen:
Servicebenutzer hatten mehrere Stunden lang Zugriffsprobleme. Infolgedessen hat sich nicht viel geändert: Es wurden mehrere zusätzliche Regeln gegen regelrechten Spam eingeführt, die Diskussionen mit aller Macht wieder aufgenommen und dabei mehrere weitere Pre-RFCs erstellt. Mal sehen, wo am Ende alles hinkommt.
Shifgrethor gc
Um zu erforschen, wozu eine neue, aber instabile Pin-API in der Lage ist, schrieb ohne Boote eine experimentelle Bibliothek für die Speicherbereinigung - Shifgrethor - und veröffentlichte eine Reihe von Artikeln darüber, wie und warum sie angeordnet ist:
Dies ist nicht der erste Versuch, eine verrostete GC-Bibliothek zu implementieren (sobald zu diesem Zweck @
-Zeiger in der Sprache vorhanden waren), unterscheidet sich jedoch von früheren Versuchen, den neuen Pin
Mechanismus zu verwenden.
Da die Bibliothek von der Pin-API abhängig ist, kann sie noch nicht mit stabilem Rust arbeiten. Der Bootsführer wiederholt mehrmals, dass das Projekt noch reine Forschung ist und er nicht einmal sicher ist, wo genau es sinnvoll ist, diese Bibliothek zu verwenden - höchstwahrscheinlich für die Integration anderer Sprachen in GC oder die Implementierung komplexer Datenstrukturen.
Shifgrethor spricht über IRLO .
2D-Notizserie
Warum funktioniert eine universelle Bibliothek für 2D-Grafiken für alle Gelegenheiten nicht? Sehr unterhaltsam, ich empfehle, die Artikel selbst durchzusehen und sie zu kommentieren.

Nico veröffentlichte mehrere Hinweise dazu, wie NLL ( was ist das? ) Sofort in die nächste Version von Rust integriert wird (bisher muss es explizit durch feature(nll)
), seine Implementierung und Probleme, die in zukünftigen Iterationen des Analysators gelöst werden sollen Ausleihe:
Für diejenigen, die etwas tiefer graben möchten, gibt es noch ein URLO-Thema .

Sogar die Kommentare zum letzten Monat zeigen, dass die GUI ein wunder Punkt in Rust ist. Ein weiterer Versuch, diese Lücke im Ökosystem zu schließen: Azul ist eine funktionierende IMGUI-Bibliothek mit Status-Caching, die WebRender zum Rendern verwendet ( Diskussion ).
Weitere Informationen finden Sie auf der Projektwebsite: azul.rs.

In einer Zeile
- Das nächste Intellij-rust IDE-Update enthält unter anderem eine Analyse der Bewegungssemantik und neue "Schnellkorrekturen" ( GIF-Demos ).
- Der jemalloc-Speicherzuweiser wurde zugunsten eines Systemzuweisers aus der Standardbibliothek entfernt . Das Attribut
#[global_allocator]
wurde kürzlich stabilisiert, sodass diejenigen, die den alten Allokator zurückgeben möchten, das jemallocator-Paket aktivieren können . - TravisCI hat die Unterstützung für Windows-Builds eingeführt. Rust hat die drei wichtigsten nativ unterstützten Sprachen eingegeben .
- Schreiben eines Betriebssystems in Rust: Hardware-Interrupts ( Diskussion ) - ein ausgezeichneter Artikel über die Arbeit mit Interrupts für Liebhaber niedriger Stufe;
- Sollten Sie C lernen, um zu lernen, wie der Computer funktioniert? ( Diskussion in / r / Programmierung ) - Der Bastler versucht, mit stereotypen Stereotypen umzugehen;
- Oxidieren von Python: Beschleunigen des URL-Zitierens um das 10-fache mithilfe von Rust ( Diskussion ) - ein praktisches Beispiel für die Beschleunigung des Python-Codes durch Umschreiben des rechenintensiven Teils in Rust;
- Meine Release-Checkliste für Rust-Programme ( Diskussion ) - eine erklärende Liste von Dingen, die vor der Veröffentlichung einer neuen Version des Projekts überprüft werden sollten;
- Auf dem Weg zu furchtlosem SIMD ( Diskussion ) - Ralph überlegt, wie die SIMD-Unterstützung in Rust verbessert werden kann.
- Hinweise zu Typlayouts und ABIs in Rust ( Diskussion ) - Wie die aktuelle Version von Rust ABI + strukturiert ist , ist ein zufälliges zufälliges Interesse auf niedriger Ebene.
- Rust, Battlecode und Halite: Anfängererfahrung mit KI-Programmierwettbewerben - Bericht über die Teilnahme an KI-Programmierwettbewerben ;
- Rust hat einen statischen Garbage Collector ( Diskussion ) - Ein Hobbyist diskutiert die automatische Speicherverwaltung in Rust im Gegensatz zu klassischen Garbage Collectors.
- Zukünftige Richtungen für cbindgen (rust-ffi) ( Diskussion ) - Pläne für die Weiterentwicklung des Caster-Bindungsgenerators basierend auf den rostigen Bibliotheken von cbindgen ;
- Qt-Anwendungen mit Cargo - wie Sie den Prozess des Erstellens einer rostigen Qt-Anwendung so weit wie möglich vereinfachen können;
- Mehr Platz für Fracht - @llogiq erläutert, wie
target
Speicherplatz belegen, als ob dies nicht der Fall wäre. - Eine Fallstudie in Heaptrack ( Diskussion ) - ein kleiner Bericht zur Optimierung des Speicherverbrauchs - unter Verwendung eines Systemzuordners , eines Heaptracks, eines Flammengraphen usw.;
- Die Dokumentation, in der docs.rs gehostet wird, wurde in den rust-lang-Kindergarten verlegt . Dies erforderte erhebliche Verbesserungen am offiziellen rustdoc, da frühere docs.rs die gepatchte Gabel der Werkzeugkette verwenden mussten;
- Probleme beim Skalieren eines großen Rostprojekts mit mehreren Kisten ( Diskussion ) - Diskussion der Probleme beim Skalieren eines wachsenden Projekts mit mehreren Kisten (hauptsächlich über die Größe von Binärdateien);
- Was für coole Sachen hast du kürzlich über Rust gelernt? - Ein unterhaltsames reddit-Thema mit allen möglichen nützlichen Kleinigkeiten;
Neue und aktualisierte Pakete
- reFORM ( Diskussion ) - ein Hochleistungs-Framework für symbolisches Computing (analog zu FORM );
- Noria ( Diskussion , Code ) - schnelles Backend für Webanwendungen;
- bible.rs ( Diskussion , Code ) - ein Beispiel für eine Site mit actix + diesel für plötzlich eine bequeme Suche in der Bibel;
- Zucker-rs ( Diskussion ) - eine Sammlung von Makrozucker im Geiste der
hashmap!{ 1 => 2, 2 => 3 }
; - Reflow ( Diskussion ) - Ein Proxy-Switcher auf Systemebene, der Tokio verwendet.
- Hashbrown ( Diskussion ) - eine sehr schnelle HashMap, Rust Port von Google SwissTable ;
- Formalität ( Diskussion ) - eine funktionale Sprache ohne Speicherbereinigung und mit formalen Beweisen (Hallo, Coq / Idris ?), Die in Ethereum Smart Contracts oder CUDA / OpenCL kompiliert werden kann;
- hex ( Diskussion ) - eine Sammlung von Paketen zur Verwaltung einer Musikbibliothek;
- suppe ( Diskussion ) ist eine Bibliothek zum Parsen und Bearbeiten von HTML, inspiriert vom Haustier der schönen kleinen Suppe. In der Implementierung wird html5ever verwendet .
- pest 2.0 ( Diskussion , Code ) - der schnelle Parser ist noch schneller geworden;
- Alacritty Terminal Emulator kann jetzt in Windows - Bild arbeiten ;
- slotmap 0.3 ( Diskussion der Slot Map? ) - Benutzerdefinierte Schlüsseltypen und SecondaryMap hinzugefügt (ermöglicht das effektive Speichern zusätzlicher Informationen für Elemente);
- Gotham 0.3 ( Website , Diskussion ) ist ein schnelles und flexibles Webframework, das auf stabilem Rust ausgeführt wird. Aktualisierte
tokio
, hyper
und http
Abhängigkeiten, verbesserte Leistung, asynchrone Verteilung statischer Dateien und die Möglichkeit, die verwendete Tokio-Laufzeit zu konfigurieren. - libdiffuzz (eine sicherheitsorientierte Alternative zum Memory Sanitizer ) wurde ( in Rust umgeschrieben );
Neuer RFC
Für den RFC ist es ziemlich praktisch zu sehen, in welche Richtung sich die Sprache bewegt. Hier sind einige interessante. In der Überschrift der PRs befindet sich ein Link „Gerendert“, über den der RFC in lesbarer Form verfügbar ist.
Und hier noch ein paar Pre-RFC-Diskussionen:
Das ist alles, danke fürs Zuschauen!
Wenn ich keinen wichtigen Link oder Ereignis hinzugefügt habe, können Sie ihn gerne in den Kommentaren einfügen. :) :)
KDPV hat von hier aus die restlichen Bilder von den Standorten der jeweiligen Projekte aufgenommen.