Posts
-
Async Interview #5: Steven Fackler
-
Async Interview #4: Florian Gilcher
-
Towards a Rust foundation
-
Async Interview #3: Carl Lerche
-
Async Interview #2: cramertj, part 3
-
Async Interview #2: cramertj, part 2
-
Async Interview #2: cramertj
-
AiC: Improving the pre-RFC process
-
Rust 2020
-
Async Interview #1: Alex and Nick talk about async I/O and WebAssembly
-
Announcing the Async Interviews
-
why async fn in traits are hard
-
AiC: Shepherds 3.0
-
AiC: Unbounded queues and lang design
-
Async-await status report #2
-
AiC: Language-design team meta working group
-
AiC: Collaborative summary documents
-
AiC: Adventures in consensus
-
More than coders
-
Async-await status report
-
Rust lang team working groups
-
Salsa: Incremental recompilation
-
Polonius and the case of the hereditary harrop predicate
-
Polonius and region errors
-
Rust in 2019: Focus on sustainability
-
After NLL: Moving from borrowed data and the sentinel pattern
-
Splash 2018 Mid-Week Report
-
After NLL: Interprocedural conflicts
-
MIR-based borrowck is almost here
-
October Office Hour Slots
-
Office Hours #1: Cyclic services
-
Office Hours #0: Debugging with GDB
-
Rust office hours
-
Rust pattern: Iterating an over a Rc<Vec<T>>
-
Never patterns, exhaustive matching, and uninhabited types (oh my!)
-
Proposal for a staged RFC process
-
MIR-based borrow check (NLL) status update
-
An alias-based formulation of the borrow checker
-
Rust pattern: Precise closure capture clauses
-
Rust pattern: Rooting an Rc handle
-
Maximally minimal specialization: always applicable impls
-
In Rust, ordinary vectors are values
-
An on-demand SLG solver for chalk
-
#Rust2018
-
Lessons from the impl period
-
Chalk meets SLG
-
Cyclic queries in chalk
-
Non-lexical lifetimes: draft RFC and prototype available
-
Query structure in chalk
-
gnome-class: Integrating Rust and the GNOME object system
-
Unification in Chalk, part 2
-
Rayon 0.7 released
-
Unification in Chalk, part 1
-
The Lane Table algorithm
-
Nested method calls via two-phase borrowing
-
Non-lexical lifetimes using liveness and location
-
Project idea: datalog output from rustc
-
Compiler design sprint summary
-
Unsafe code and shared references
-
Lowering Rust traits to logic
-
Assigning blame to unsafe code
-
Parallel iterators, part 3: Consumers
-
Associated type constructors, part 4: Unifying ATC and HKT
-
Associated type constructors, part 3: What higher-kinded types might look like
-
Associated type constructors, part 2: family traits
-
Associated type constructors, part 1: basic concepts and introduction
-
Switching to Jekyll
-
Supporting blanket impls in specialization
-
Observational equivalence and unsafe code
-
Announcing intorust.com
-
Distinguishing reuse from override
-
Intersection Impls
-
Thoughts on trusting types and unsafe code
-
'Tootsie Pop' Followup
-
The 'Tootsie Pop' model for unsafe code
-
Unsafe abstractions
-
Non-lexical lifetimes: adding the outlives relation
-
Non-lexical lifetimes based on liveness
-
Non-lexical lifetimes: introduction
-
Nice errors in LALRPOP
-
Parallel Iterators Part 2: Producers
-
Parallel Iterators Part 1: Foundations
-
Rayon: data parallelism in Rust
-
Virtual Structs Part 4: Extended Enums And Thin Traits
-
LALRPOP
-
Virtual Structs Part 3: Bringing Enums and Structs Together
-
Virtual Structs Part 2: Classes strike back
-
Virtual Structs Part 1: Where Rust's enum shines
-
A few more remarks on reference-counting and leaks
-
On reference-counting and leaks
-
Modeling graphs in Rust using vector indices
-
Little Orphan Impls
-
Purging proc
-
Allocators in Rust
-
Multi- and conditional dispatch in traits
-
Attribute and macro syntax
-
An experimental new type inference scheme for Rust
-
Implied bounds
-
Follow up to Focusing on Ownership
-
Focusing on ownership
-
Parallel pipelines for JS
-
Value types in JavaScript
-
Typed Objects Status Report
-
Rust RFC: Opt-in builtin traits
-
Rust RFC: Stronger guarantees for mutable borrows
-
Closures and the borrow checker
-
Rvalue lifetimes in Rust
-
DST, Take 5
-
Structural arrays in Typed Objects
-
Thoughts on DST, Part 4
-
Thoughts on DST, Part 3
-
Thoughts on DST, Part 2
-
Thoughts on DST, Part 1
-
Optimizing SIMD, part 2
-
Optimizing SIMD
-
Parameter coercion in Rust
-
Treating vectors like any other container
-
Optimizing complex typed object assignments
-
Intermingled parameter lists, take 2
-
PJS Roadmap
-
Intermingled parameter lists
-
Iterators yielding mutable references, take 2
-
Single inheritance
-
Iterators yielding mutable references
-
Typed object handles
-
Fn types in Rust, take 3
-
Type specifications in Parallel JS
-
Integrating binary data and type inference in SpiderMonkey
-
Rust presentation at Northeastern
-
On the connection between memory management and data-race freedom
-
Data Parallelism in Rust
-
Reducing DST Annotation
-
More on fns
-
Removing procs
-
Integrating binary data and PJs
-
Procedures, continued
-
Mutable fn alternatives
-
Recurring closures and dynamically sized types
-
Dynamically sized types, revisited
-
Parallelizable JavaScript Subset
-
The Case of the Recurring Closure
-
Nested lifetimes
-
A tour of the Parallel JS implementation (Part 2)
-
Associated items continued
-
Associated items
-
Guaranteeing parallel execution
-
A tour of the Parallel JS implementation (Part 1)
-
Parallel JS lands
-
Splitting the PJs API
-
Interfacing with C functions in Rust
-
Destructors and finalizers in Rust
-
Revised for loop protocol
-
Lifetime notation redux
-
The case FOR deterministic results
-
Deterministic or not?
-
Lifetime notation
-
Improving our parallel intrinsic
-
Self-hosted Parallel JS
-
Imagine never hearing the phrase 'aliasable, mutable' again
-
Restrict pointers
-
Purity in Parallel JavaScript
-
Function and object types
-
Extending the definition of purity in Rust
-
Rivertrail
-
Termination of trait matching
-
A postscript on traits and impls
-
Refining traits and impls
-
Moves based on type
-
Type system for borrowing permissions
-
Rvalue lifetimes
-
Datasort refinements
-
Type inference in Spidermonkey
-
Generalizing inherited mutability
-
Yet another tutorial on borrowed pointers
-
About that 'tutorial'...
-
Borrowed pointer tutorial
-
Concurrent maps
-
Fn types
-
Borrowed Pointer Tutorial
-
HotPar
-
Unifying patterns in alts and lets
-
Mutability
-
Mutability idea retracted
-
Simple effect system
-
Moving mutability into the type
-
Vectors, slices, and functions, oh my!
-
Iface types
-
Fn types
-
Borrowing errors
-
Borrowing
-
In favor of types of unknown size
-
Permission regions for race-free parallelism
-
References
-
Vectors, strings, and slices
-
On types and type schemes
-
Syntax matters...?
-
DOA: Don't overabstract
-
Declared vs duckish typing
-
Rust's object system
-
For loops
-
Servo design
-
Avoiding region explosion in Rust
-
Progress on inlining
-
Serialization without type information via impls
-
Regions tradeoffs
-
Versioning considered OK
-
CCI and versioning
-
Returning refs
-
Regions-lite...ish
-
Using futures in the task API
-
Task API
-
Auto-serialization in Rust
-
Breaking out is hard to do
-
Cross-crate inlining
-
Update
-
Proposed JS parallelism vs actors
-
Parallel Javascript
-
Composing blocks
-
Block sugar in expressions
-
Tone and criticism
-
Dynamic race detection
-
Implementing unique closures
-
Const vs Mutable
-
Partially ordered unique closures
-
Challengines implementing unique closures
-
Pure blocks
-
Why not modes?
-
Sendable functions
-
Rust usability problems
-
Coroutines for Rust
-
Statement-level parallelism
-
Rust without implicit copies
-
Why case classes are better than variant types
subscribe via RSS