Rust Programming Language / rustc lecture series

Add meeting Rate page Subscribe

Rust Programming Language / rustc lecture series

These are all the meetings we have in "rustc lecture series" (part of the organization "Rust Programming Lan…"). Click into individual meeting pages to watch the recording and search or read the transcript.

16 Mar 2022

No description provided.
  • 4 participants
  • 1:17 hours
resolving
resolutions
resolution
resolve
resolved
names
rusty
macros
command
forkstar
youtube image

12 May 2021

Niko and Jack Huey walking through how caching of trait evaluation works. The context is explaining PR #85186.
  • 3 participants
  • 1:09 hours
evaluating
debugging
crosstalk
structs
initializing
thinking
traits
compilers
implemented
assertions
youtube image

31 May 2019

Discussed how the current borrow checker tracks moves and initialization and how to move that logic to polonius.

Dropbox paper link:

https://paper.dropbox.com/doc/Polonius-and-initialization--AeKw2KzJcfEftnZDZ5C9cV8iAg-mNvR4jqITCdsJDUMEhFbv
  • 2 participants
  • 1:08 hours
initializing
careful
documenting
basic
implemented
rules
fancier
checking
notion
initially
youtube image

26 Apr 2019

This discussion covers how types are represented in rustc. It discusses the `Ty` type, generics and substitution, and type folding.

The Dropbox paper document that is being shared in the video can be found here:

https://paper.dropbox.com/doc/Ty-lecture--Ab8REO0WfNUvsZSb3L~DliFvAg-8hOUpAEhOvoBQC5EYXKJM
  • 4 participants
  • 55 minutes
rusty
types
rusts
struct
structure
ty
declarations
trait
representation
implements
youtube image

23 Apr 2019

A discussion of how the chalk-engine crate works.
  • 6 participants
  • 59 minutes
conceptually
resolution
introduce
complicated
reasoning
clarify
plan
figuring
topic
purposes
youtube image

16 Apr 2019

cramertj and nikomatsakis discuss changes to the region inferencer to try and overcome some of the limitations from https://github.com/rust-lang/rust/issues/56238. In the process, we uncover some strangeness.

Paper doc:

https://paper.dropbox.com/doc/Multiple-Unrelated-Lifetimes-in-Existential-Types--AbbZKR~LigYmDVvXErd4OO0~Ag-AuCQq4Ewy39j8Hnj3n9Qg
  • 2 participants
  • 1:07 hours
types
async
existential
existing
specifies
fn
typewriters
closures
instance
subtype
youtube image

27 Mar 2019

A pragmatic discussion about how to proceed integrating name resolution with Salsa and RLS 2.0.
  • 2 participants
  • 34 minutes
resolutions
macros
intellij
named
implementation
thinking
incremental
identifiers
clarification
abstract
youtube image

19 Mar 2019

An overview of the plans for rustc-chalk integration and some brief coverage of how it works in the code itself.
  • 3 participants
  • 1:03 hours
chalk
implementation
tricky
diagrams
understanding
sketchy
checker
proving
level
guide
youtube image

15 Mar 2019

A walk through the rustc and Polonius code bases, showing how the two are connected.

Paper doc is viewable here: https://paper.dropbox.com/doc/Polonius-Walkthrough-2--AZVdfdGwg3j9xs693~KyChtnAg-Wr90dk3V5DQQem9duos4P
  • 1 participant
  • 29 minutes
rusty
analysis
polonius
node
section
relations
debugging
vector
parameters
flow
youtube image

6 Mar 2019

We discuss the overall strategy for implementing RFC #2229, pulling together a rough roadmap including a number of refactorings, and identifying some bits of work that can be done independently.
  • 3 participants
  • 56 minutes
execution
plan
prs
fix
review
version
topple
iterating
process
closure
youtube image

6 Mar 2019

miri is an interpreter for MIR, Rust's internal representation. miri is the foundation for Rust's compile-time evaluation capabilities. Its design enables it to simulate the workings of the machine at a low-level, meaning that it can interpret not only "safe Rust" but also a lot of unsafe Rust code, including complex and highly optimized libraries like the stdlib hashmap. In this talk, compiler team member oli-obk will dig into how miri works, giving us some insight into its architecture, the way that it represents and reasons about memory, and what kinds of capabilities it offers for Rust itself.
  • 3 participants
  • 1:01 hours
evaluating
procedure
documentation
incremental
abstraction
basic
debugging
mi
constable
mirr
youtube image

6 Mar 2019

flodiebold introduces how the rust-analyzer type checker works, and we discuss various possible next steps towards integrating chalk with RLS 2.0.
  • 2 participants
  • 46 minutes
introduction
chalk
tool
checking
method
rust
traits
analyzers
primitive
integrating
youtube image

26 Feb 2019

Meeting to discuss impl strategies for various outstanding async-await bugs.

The Dropbox Paper doc that we were using is available here:

https://paper.dropbox.com/doc/2019.02.26-impl-discussion-notes--AYcSQHRnxOOCEjqwYjqmcUjmAg-5v4Q2n9cRn2KYgVyWMphQ
  • 2 participants
  • 1:01 hours
lifetimes
implicit
issue
infiltrate
iterating
lifetime
parameters
passed
bugging
trait
youtube image

26 Feb 2019

@matklad walks us through how syntax trees are implemented in rust-analyzer.

Recorded 2019.02.26.
  • 2 participants
  • 57 minutes
analyzing
implementation
tree
rust
editing
needs
finalizing
repository
explicitly
c63
youtube image

14 Feb 2019

An overview of how higher-ranked types/trait-bounds (`for<'a> fn(&'a u32)` or `for<'a> T: Foo<'a>`) are implemented in rustc. Focuses on the idea of universes and placeholders and how those are used in subtyping.

The paper doc used in the video is readable here:

https://paper.dropbox.com/doc/Universes-and-57639--AXjnSUh91ZmbD0dDMwTTfFHfAg-vVrMCkndUoXzyrHCOQdq8

Or in gist form:

https://gist.github.com/nikomatsakis/848f6bd0db706b1f0596e7e559588128
  • 3 participants
  • 51 minutes
rusty
issue
subtyping
trade
clarifying
tip
rust
spoiler
iteratively
handling
youtube image

31 Jan 2019

Dan Gohman explains the basic idea of the Cranelift code generator, covering the setup of the IR, the overall philosophy of its design, and some details of how it could be integrated with rustc.
  • 2 participants
  • 53 minutes
lift
compiler
functions
overview
cleaner
codec
machine
encoded
smooth
queen
youtube image

29 Jan 2019

The Dropbox Paper has been converted to a gist here:

https://gist.github.com/nikomatsakis/0bd497f157a40776216f37d8bbec25cd

Or, if you prefer, you can view the original document here (but it will record your e-mail, I believe):

https://paper.dropbox.com/doc/How-Salsa-Works-2019.01--AWnkDrrWoSyv0yfTleFeyGElAg-u8rQGbebYIxSA8r23muiN
  • 1 participant
  • 25 minutes
salsa
salsas
implementing
computation
incremental
functions
inputs
concepts
invokes
things
youtube image

29 Jan 2019

  • 2 participants
  • 56 minutes
salsa
methods
complicated
understanding
query
invoking
user
observe
house
executing
youtube image

25 Jan 2019

Walk through the steps to convert the internal representation of closures to use a tuple for the upvar types. In the process, explain a lot about how closures work in rustc itself.
  • 2 participants
  • 47 minutes
struct
tuple
parameter
declarations
iterates
compilers
subst
bit
mutated
manipulations
youtube image

23 Jan 2019

The talk gives a high-level overview of how Rust integration with gdb, lldb, and so forth work. It discusses some of the steps that are needed to add extensions to the DWARF standard for Rust-specific features.

Speaker: Tom Tromey, who added Rust support to gdb, and implemented the rust-lldb debugger.
  • 3 participants
  • 53 minutes
rusty
rust
gdb
bugging
general
debugging
geb
clang
discussion
parsers
youtube image

20 Jan 2019

A walk-through of the rust-analyzer implementation, which talks about implementing compiler-driven completion for IDEs.

rust-analyzer: https://github.com/rust-analyzer/rust-analyzer
transcript of the talk: https://github.com/rust-analyzer/rust-analyzer/pull/578
  • 1 participant
  • 1:37 hours
analyzer
rust
implementation
raster
processing
indication
analysis
rs
compiler
binder
youtube image

10 Jan 2019

Discussing how to refactor the way closure upvar types are represented with @blitzerr.
  • 3 participants
  • 60 minutes
closures
reviewing
struct
computing
iteration
tweak
dereference
deal
structure
thinking
youtube image

30 Oct 2018

Discussing how closure desugaring and upvar inference works in rustc today with blitzerr on 2018-10-30
  • 3 participants
  • 43 minutes
closures
mutable
struct
debugging
borrows
notion
fn
recursively
callbacks
wraps
youtube image

28 Jun 2018

This video was recorded during the Bay Area Rust Meetup in San Francisco, CA, USA on June 28, 2018.

https://www.meetup.com/Rust-Bay-Area/events/251073767/

Sunjay Varma presented an overview of his work on Chalk, the new trait-solving implementation in the Rust Compiler. He talked about the concept of coherence in the Rust language, described how it is implemented in rustc today, and then covered how he has implemented it in Chalk using logic programming.

Talk written and presented by:
Sunjay Varma (https://twitter.com/sunjay03)
  • 8 participants
  • 39 minutes
rust
chalk
meetup
currently
summary
talks
tricky
learning
harrop
tea
youtube image