1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-06-17 22:57:35 +02:00
Commit Graph

1376 Commits

Author SHA1 Message Date
0d30da7f23 Add an "async" session (#496)
* beginning of an Async section

* address review comments

* Add futures page (#497)

NOTE: `mdbook test` does not allow code samples to reference other crates, so
they must be marked as `compile_fail`; see #175.

* Add Runtimes & Tasks (#522)

These concepts are closely related, and there's not much else to know
about runtimes other than "they exist".

This removes the bit about futures being "inert" because it doesn't
really lead anywhere.

* Async chapter (#524)

* Add async channels chapter

* Async control flow

* Async pitfalls

* Separate in multiple chapters + add daemon section

* Merge reentering threads in blocking-executor

* async_trait

* Async fixes (#546)

* Async: some ideas for simplifying the content (#550)

* Simplify the async-await slide
* Shorten futures and move it up
* Add a page on Tokio

* Modifications to the async section (#556)

* Modifications to the async section

* Remove the "Daemon" slide, as it largely duplicates the "Tasks" slide.
  The introduction to the "Control Flow" section mentions tasks as a
  kind of control flow.

* Reorganize the structure in SUMMARY.md to correspond to the directory
  structure.

* Simplify the "Pin" and "Blocking the Executor" slides with steps in
  the speaker notes to demonstrate / fix the issues.

* Rename "join_all" to "Join".

* Simplify some code samples to shorten them, and to print output rather
  than asserting.

* Clarify speaker notes and include more "Try.." suggestions.

* Be consistent about where `async` blocks are introduced (in the
  "Tasks" slide).

* Explain `join` and `select` in prose.

* Fix formatting of section-header slides.

* Add a note on async trait (#558)

---------

Co-authored-by: sakex <alexandre@senges.ch>
Co-authored-by: rbehjati <razieh@google.com>
2023-04-14 14:06:50 +00:00
6c97e1a7be Add a new async exercise: elevator simulation. (#557) 2023-04-13 16:26:57 +02:00
d8e442b9cb Extend bare metal afternoon exercise (#561)
* Add methods to set match register and check whether it matches.

* Add first extension to RTC exercise, using match register.

* No need for constants to be public.
2023-04-13 10:58:06 +01:00
5b316b8b5b Prevent accidental publishing the link-checker exercise 2023-04-11 10:47:18 +01:00
bf18b33e39 Use exerciser for day 4 exercises too. 2023-04-11 10:47:18 +01:00
5cdb73387f Inline format vars to make the format str simpler (#551) 2023-04-06 12:00:10 +02:00
86d8c4ae54 Rename exercise template directory and archive. 2023-04-05 16:28:07 +01:00
9375126b3c Use comment rather than inline code to find filename. 2023-04-05 16:28:07 +01:00
c17e8abbd7 Add links to exercise template archive. 2023-04-05 16:28:07 +01:00
b85c893390 Explain entry point and entry.S. 2023-04-05 15:13:10 +01:00
2e94a80d9d Discuss use of unsafe functions and safe wrappers. 2023-04-05 15:13:10 +01:00
5068b1288d Add notes about running examples. 2023-04-05 15:13:10 +01:00
907608c504 Format title consistently (#526) 2023-04-04 17:29:33 +02:00
a3eaeca212 Update scraper dependency (#547)
* Update scraper dependency to 0.15.0

No code changes required because of this.

* Update dependencies in lock file
2023-04-04 14:27:46 +02:00
64ee862f26 Bump spin from 0.9.6 to 0.9.8 in /src/bare-metal/alloc-example (#544)
Bumps [spin](https://github.com/mvdnes/spin-rs) from 0.9.6 to 0.9.8.
- [Release notes](https://github.com/mvdnes/spin-rs/releases)
- [Changelog](https://github.com/mvdnes/spin-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mvdnes/spin-rs/commits)

---
updated-dependencies:
- dependency-name: spin
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-04 08:54:39 +02:00
4338cd5744 Bump spin from 0.9.6 to 0.9.8 in /src/exercises/bare-metal/rtc (#543)
Bumps [spin](https://github.com/mvdnes/spin-rs) from 0.9.6 to 0.9.8.
- [Release notes](https://github.com/mvdnes/spin-rs/releases)
- [Changelog](https://github.com/mvdnes/spin-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mvdnes/spin-rs/commits)

---
updated-dependencies:
- dependency-name: spin
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-04 08:54:30 +02:00
b32af58a5f Bump spin from 0.9.5 to 0.9.8 in /src/bare-metal/aps/examples (#542)
Bumps [spin](https://github.com/mvdnes/spin-rs) from 0.9.5 to 0.9.8.
- [Release notes](https://github.com/mvdnes/spin-rs/releases)
- [Changelog](https://github.com/mvdnes/spin-rs/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mvdnes/spin-rs/commits)

---
updated-dependencies:
- dependency-name: spin
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-04-04 08:54:20 +02:00
acf2990243 Update if-let-expressions.md (#540)
* Update if-let-expressions.md

add a note about let-else expressions.  Closes #536

* Remove old mention of let-else

* Indent code block to match the bullet point

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2023-04-03 12:04:26 +02:00
739b3a01e0 Restructure Day-3 morning (#503)
* Restructure Day-3 morning
2023-03-30 13:25:34 +01:00
780368b4f7 Minor fixes for Day 3 Morning (#532)
* don't explain default trait methods early

* talk about Iterator before IntoIterator

* Defer discussion of trait objects to that chapter

* be more specific about turbofish, in speaker notes
2023-03-28 15:42:56 -04:00
8c56c949ef Fix GCC package name. 2023-03-27 17:20:31 +01:00
4427241ca7 cargo-binutils requires llvm-tools-preview 2023-03-27 17:20:31 +01:00
aa1036af66 Add more hints for bare metal morning exercise. 2023-03-27 17:20:31 +01:00
956c137e51 Format hints as bullet-points. 2023-03-27 17:20:31 +01:00
d513109b92 Add Mac OS instructions for picocom too. 2023-03-27 17:20:31 +01:00
6f83b97e69 Fix Markdown formatting. 2023-03-27 17:20:31 +01:00
357f62e137 A compass doesn't tell us the temperature. 2023-03-27 17:20:31 +01:00
8ed300d620 Fix Linux build of bare metal AP code. 2023-03-27 17:20:31 +01:00
ae83778173 Show actual driver code on solution page. 2023-03-27 17:20:31 +01:00
9c166d4e97 Set publish = false in examples and exercises. 2023-03-23 15:12:23 +00:00
f8dea1df2f Use title case in SUMMARY. 2023-03-23 15:12:23 +00:00
fa56c70dcb Get AP examples working on Mac OS too. 2023-03-23 15:06:23 +00:00
fc36e40eef Make base address constants a pointer rather than a usize. 2023-03-23 15:06:23 +00:00
782313e16e Add commands to run examples to speaker notes. 2023-03-23 15:06:23 +00:00
72ff50e60b Build bare-metal examples in presubmit. 2023-03-23 15:06:23 +00:00
b670098ab1 Update Cargo.lock, and no need for beta toolchain. 2023-03-23 15:06:23 +00:00
b2ce958f2e Add pages about Android and vmbase. 2023-03-23 15:06:23 +00:00
8aef12bf1d Add page about spin. 2023-03-23 15:06:23 +00:00
f5b6e47f31 Put tinyvec example inline. 2023-03-23 15:06:23 +00:00
fb3fd3979c Add RTC exercise. 2023-03-23 15:06:23 +00:00
8b21f5070e Add page about inline assembly. 2023-03-23 15:06:23 +00:00
f293ede958 Add page about tinyvec. 2023-03-23 15:06:23 +00:00
8d1f903202 Add MacOS instructions. 2023-03-23 15:06:23 +00:00
56319e016b Add page about buddy_system_allocator. 2023-03-23 15:06:23 +00:00
f0043637e2 Write page about aarch64-paging. 2023-03-23 15:06:23 +00:00
dc95bd1dae Write page about zerocopy. 2023-03-23 15:06:23 +00:00
f3edffd1a7 Fix mdbook test failure. 2023-03-23 15:06:23 +00:00
ada6a53942 Improve makefile. 2023-03-23 15:06:23 +00:00
31c7b283c2 Add example implementing logger. 2023-03-23 15:06:23 +00:00
15518aa177 Add separate binary for minimal UART driver. 2023-03-23 15:06:23 +00:00