-
Homework 3 final due date is tomorrow.
-
Read Piazza threads!
-
Remember to run
cargo clippyandcargo fmt. -
Make sure to
.gitignorethe/targetdirectory. -
Email before the deadline to use late days.
-
-
Connect with your final project team! (Form a group chat?) Team assignments are on Piazza.
-
Homework 4 and final project (proposal + final) posted soon.
-
Homework 3 grading is underway. Out of 130. Common mistakes today if time.
Comments are in the dedicated git pull request
-
Final project proposal due tomorrow April 16
I will not delay the deadline for this, but I will allow this to be more interactive, i.e. you first post your idea / what you are thinking about, I can comment on it and you will have a chance to update it. But you need to show that you have thought about / are working on it
(Use the GitHub classroom link to create a team, and then join the appropriate team)
-
Homework 4 available and due Thursday, April 22.
straceutility (with extra credit) -
Homework make-up option (choose 1 assignment)
-
Only 1-2 more lectures after today -- TBD topic preferences. Options:
-
Concurrent and parallel programming
-
Useful crates and tools, e.g. web programming
-
Advanced features and future of Rust
- async/await related features
- const generics
-
Sometimes in Rust we want really low-level control over how our program runs. Examples:
-
Manipulating and passing around direct references to memory (pointers);
-
Making system calls;
-
Interfacing with C code;
-
Dealing with low-level IO (e.g. file handles and pipes; network hosts, ports, and sockets); and
-
Spawning and handling threads and processes.
In this lecture we will go over some of the things in the Rust toolbox for these programming tasks, which will be useful for Homework 4. Like the last few, this lecture will be split into multiple parts.
-
Unsafe code (
unsafeblocks and functions) -
Introduction to smart pointer types:
IDMangercase study
-
C code wrappers and system calls (
libc,nix) -
Smart pointer types continued (
Box,Cell,Rc,RefCell, etc.)
-
Manual memory management (the
Droptrait,mem::replace) -
HW3 common mistakes