1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2025-03-21 06:36:31 +02:00

2199 Commits

Author SHA1 Message Date
Dustin J. Mitchell
f1ad41e2bc
Add TODO to indicate let-else example should be rewritten (#2562)
Fixes #2473.
2025-01-19 01:47:33 -05:00
Max Heller
bcbe6b0876
Fix incorrectly hidden lines in Rust code blocks in PDFs (#2565)
Upgrades `mdbook-pandoc` to pull in a fix relating to hidden lines in
Rust code blocks. The bug was causing lines like `#[test]` to be hidden
when they should not have been.

## HTML
<img width="500" alt="Screenshot 2025-01-18 at 12 50 26 PM"
src="https://github.com/user-attachments/assets/c3363696-6ab6-4537-8285-fad047cb384f"
/>

## PDF (before)
<img width="500" alt="Screenshot 2025-01-18 at 12 51 25 PM"
src="https://github.com/user-attachments/assets/19539a9b-db24-41c5-98be-87d5a6228423"
/>

## PDF (after)
<img width="500" alt="Screenshot 2025-01-18 at 12 52 25 PM"
src="https://github.com/user-attachments/assets/b19f1e6c-d717-449e-8799-c56d9b5401ca"
/>
2025-01-19 01:45:22 -05:00
Henri F.
957c404ad0
Revert "Fix a few accessibility violations" (#2564)
Reverts google/comprehensive-rust#2547
2025-01-17 01:53:58 -05:00
Martin Huschenbett
9e5c318a57
Fix minor inconsistencies and naming issues (#2563) 2025-01-17 01:53:37 -05:00
Dustin J. Mitchell
58bf01f1ef
Updates to APS segment of Bare-Metal (#2560) 2025-01-17 10:43:46 +08:00
Jonatandb
5af4a74591
es: Fix translation of course length (#2552)
Edit course length from 3 days to 4 which is actually the total length.
2025-01-16 09:36:32 +00:00
Dustin J. Mitchell
6dce638c6e
Reorder type aliases (#2554) 2025-01-16 10:30:32 +01:00
Dustin J. Mitchell
fec5f2eb48
Update timings for first 'references' segment (#2553)
Based on a course session just completed. The instruction itself took
less time, but the exercise took longer.
2025-01-16 10:29:59 +01:00
Dustin J. Mitchell
5f447b403b
Remove speaker note on "runtime evaluated constants" (#2555)
It's unclear what this would mean! It was introduced in 89ddb2c19.
2025-01-16 10:20:31 +01:00
Dustin J. Mitchell
3291cb6c62
Make const slide less silly (#2557)
A constant named ZERO that does not contain zero seems pretty silly!

This also shows an example of a const fn.
2025-01-16 10:18:29 +01:00
Dustin J. Mitchell
cb5409052a
Add timing for const slide (#2556)
I think this was missed when it split from the static slide. In the last
course session, we spent a fair amount of time on this slide.
2025-01-16 10:18:12 +01:00
Henri F.
f95c28f9a7
Fix a few accessibility violations (#2547)
* Add chrome.css and general.css to override default css file. This is
necessary to fix links without underline (hyperlinks relying only on
color).
* Fix pop-out button without id and wrong ARIA-ROLE
* Speaker's notes now at correct heading sequence (H3)
2025-01-15 19:11:19 -08:00
Alex Lai
aa548f4431
Revert "Exercise: method and traits: change output" (#2548)
Reverts google/comprehensive-rust#2383

Since #2397 is merged, to align the goal in #2478, rollback this temp
workaround.
2025-01-15 10:22:48 +00:00
Martin Geisler
1c709efac0
Remove flaky JS test (#2551)
This should stop the test failures, but of course it won’t fix the
underlying problem.

Reverts part of #2513. Related to #2549.
2025-01-15 09:28:57 +01:00
Max Heller
9493a8deb7
Fix missing images and Arabic fonts in course PDFs (#2544)
Let's give #2531 another try
- Fixes missing images in PDFs (those specified as <img> elements)
- Configures Arabic fonts

[The
fix](https://github.com/max-heller/mdbook-pandoc/pull/144/files#diff-b17b0f99aa22ee1ccf99778ca74c3c7a27af87f41544194cc95f82c012e8a507)
for the Persian translation issue, if you're curious.
2025-01-14 17:23:30 +01:00
kweber
0c91136396
de: synchronize the German translation (#2543)
I want to contribute to German translation, so i set up the complete
toolchain and git project for proper operation. This is my initial
commit to verify, that all is correct and i can continue.
2025-01-14 11:00:30 +01:00
Martin Geisler
093d980152
Add RustConf 2024 talk to Press section (#2546) 2025-01-14 10:57:04 +01:00
michael-kerscher
34920c76e6
tests: hello world playground run with success and failure tests (#2513)
Implement two tests for the rust playground:
- successful run of the hello world example with the hello world message
in stdout and a hidden stderr
- on purpose compilation error is shown in stderr and "No output" in
stdout
2025-01-14 10:44:23 +01:00
Younies Mahmoud
7584ce0048
Fix Wording Mistakes in TRANSLATIONS.md (#2545) 2025-01-13 20:35:03 -05:00
Dustin J. Mitchell
c04d2860e8
APS updates (#2528)
These are some minor updates from walking through the session myself.

* Add some context to the `entry.S` slide, which is otherwise a bit
terrifying for someone who does not speak ARM assembly.
 * Include a simple, fake example of MMIO.
* Add a "Using It" section to the minimal UART segment, parallel to the
better UART
* Better explanation of the `unwrap` calls in the logging example.
Unwrap is never "unsafe", so remove that word.
 * Allow dead code in some `.rs` files.
 * Remove redundant warning about use of memory before MMU setup.
 * Rephase text about buddy-system
 * Fix lint warning in spin slide.
2025-01-07 19:07:39 +00:00
kamal
3764569198
Update translations.md (#2538)
Remove duplicate line containing details about language translation and
it's contributors.
2025-01-07 12:26:19 +00:00
Martin Huschenbett
8233599741
Use clamp in bare-metal compass solution (#2537)
The custom function `cap` does the same as `Ord::clamp`, which was
introduced in Rust 1.50. Let's use the latter instead.

I've flashed the new program onto my microbit and can confirm it still
works as intended.
2025-01-07 12:54:58 +01:00
Martin Geisler
76e2cfe53e
Revert "Upgrade mdbook-pandoc to fix missing images in PDFs" (#2540)
Reverts google/comprehensive-rust#2531

This accidentally broke the build because the Persian translation
doesn't build with this version.
2025-01-05 11:15:20 -05:00
dependabot[bot]
8173e5fd74
cargo: bump the minor group with 3 updates (#2534)
Bumps the minor group with 3 updates:
[tokio](https://github.com/tokio-rs/tokio),
[scraper](https://github.com/causal-agent/scraper) and
[http](https://github.com/hyperium/http).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-02 08:52:58 +00:00
Max Heller
d4cc29ff0e
Upgrade mdbook-pandoc to fix missing images in PDFs (#2531)
[`mdbook-pandoc`
0.8](https://github.com/max-heller/mdbook-pandoc/releases/tag/v0.8.0)
now supports `<img>` elements in raw HTML, fixing a few missing images
in the PDF versions of the course.
2025-01-02 08:52:42 +00:00
dependabot[bot]
549391119b
cargo: bump the patch group in /src/exercises/bare-metal/rtc with 2 updates (#2533)
Bumps the patch group in /src/exercises/bare-metal/rtc with 2 updates:
[chrono](https://github.com/chronotope/chrono) and
[cc](https://github.com/rust-lang/cc-rs).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-02 09:52:09 +01:00
dependabot[bot]
2c8786b392
cargo: bump cc from 1.2.2 to 1.2.6 in /src/bare-metal/aps/examples in the patch group (#2532)
Bumps the patch group in /src/bare-metal/aps/examples with 1 update:
[cc](https://github.com/rust-lang/cc-rs).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-02 09:51:42 +01:00
Dustin J. Mitchell
ac7c0506fd
Fix typo: build-essential, not build-essentials (#2527) 2025-01-02 09:41:16 +01:00
dependabot[bot]
a0ef82ef7c
cargo: bump the patch group with 12 updates (#2535)
Bumps the patch group with 12 updates:

| Package | From | To |
| --- | --- | --- |
| [anyhow](https://github.com/dtolnay/anyhow) | `1.0.93` | `1.0.95` |
| [clap](https://github.com/clap-rs/clap) | `4.5.21` | `4.5.23` |
| [serde](https://github.com/serde-rs/serde) | `1.0.215` | `1.0.217` |
| [serde_json](https://github.com/serde-rs/json) | `1.0.133` | `1.0.134`
|
| [fantoccini](https://github.com/jonhoo/fantoccini) | `0.21.2` |
`0.21.3` |
| [glob](https://github.com/rust-lang/glob) | `0.3.1` | `0.3.2` |
| [tokio-util](https://github.com/tokio-rs/tokio) | `0.7.12` | `0.7.13`
|
| [zerocopy](https://github.com/google/zerocopy) | `0.8.11` | `0.8.14` |
| [thiserror](https://github.com/dtolnay/thiserror) | `2.0.3` | `2.0.9`
|
| [reqwest](https://github.com/seanmonstar/reqwest) | `0.12.9` |
`0.12.12` |
| [cxx](https://github.com/dtolnay/cxx) | `1.0.133` | `1.0.136` |
| [cxx-build](https://github.com/dtolnay/cxx) | `1.0.133` | `1.0.136` |

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-02 09:35:25 +01:00
dependabot[bot]
3ffd55ca52
Bump crate-ci/typos from 1.28.1 to 1.29.0 (#2536)
Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.28.1 to
1.29.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-01-02 09:34:59 +01:00
Adrian Taylor
665300e373
Update Chromium Rust policy (#2530)
Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
2024-12-28 21:08:34 +00:00
Nicole L
7f0c591b0b
Rework iterator section (#2523) 2024-12-17 15:59:39 -08:00
Nicole L
e902b1ef60
Add a slide on match to control flow section (#2515) 2024-12-17 12:08:42 -08:00
Nicole L
2ff30edd93
Improve dangling reference example and move to its own slide (#2518)
The current example demonstrating how rustc prevents dangling references
is really gross and hard to read (my own fault lol, I wrote that
example). I finally realized that there's a much simpler, easier to read
way of expressing the same thing. I also moved this to its own slide
after the reference slides so that we can call it out as an early
example of the borrow checker. I then call back to this example in the
borrow checker slide to remind students that the aliasing rule isn't the
only thing the borrow checker is enforcing.
2024-12-17 14:44:33 -05:00
andriyDev
5bf04964f6
Fix the unit testing docs referring to integration tests (#2524)
The side bar is out of date, and also the the unit testing docs are
talking about integration tests. These tests are discussed on the next
slide in "Other Types of Tests".
2024-12-17 17:37:11 +00:00
Nicole L
fe554251cb
Reframe FromIterator slide to focus on collect (#2516) 2024-12-16 14:37:02 -08:00
Nicole L
4663ec838e
Rework the error handling exercise to be based on the expression evaluator exercise (#2521) 2024-12-16 14:36:35 -08:00
Martin Geisler
644f849bf8
Add speaker notes to bindgen slides (#2491)
Part of #1083.
2024-12-16 16:54:13 -05:00
Martin Geisler
dad8cadc6b
Add speaker notes to Android build rules (#2492)
Part of #1083.
2024-12-16 16:54:04 -05:00
Martin Geisler
64bd331314
Add speaker notes to interop with C slides (#2496)
Part of #1083.
2024-12-16 16:53:54 -05:00
Nicole L
2bae363d16
Remove error handling from expression evaluation exercise (#2517)
I think it would be good to simplify the expression evaluation exercise
by removing the error handling around the divide-by-zero case. I think
it overcomplicates the exercise and and adds confusion since at this
point we haven't introduced `Result` (or at least not in any detail).
This allows the students to just focus on writing the pattern matches on
`Expression` and `Op`, and allows the exercise to be shorter (and I
think we need to free up some time where we can, my classes often run
long and cut into how much time students have for exercises).
2024-12-16 16:36:27 -05:00
Nicole L
f60513ebe2
Add a slide about struct visibility and encapsulation (#2522)
The current slide on visibility introduces the idea that modules are the
encapsulation boundary, but it doesn't explicitly doesn't talk about
struct fields/methods. I think it's worth talking explicitly about
structs and encapsulation because most students are going to be coming
from a background where types (instead of modules) are the encapsulation
boundary. It's worth talking explicitly about how encapsulation works,
even if we're kind of repeating information from the previous slide.
2024-12-16 16:34:40 -05:00
Nicole L
2e8d5d3d9c
Use .iter() instead of (&values).into_iter() (#2519)
The `(&values).into_iter()` construct used in the solution to the
iterators exercise is kind of awkward and always gets questions from
students. I think the better thing would be to use the `iter` method to
get the initial iterator, as that's the more idiomatic way to. It's also
an opportunity to point out that there are helper methods for getting an
iterator for a collection.
2024-12-16 15:22:44 -05:00
Nicole L
c33a9b2ca4
Better demonstrate imports in modules exercise (#2514)
The solution to the modules exercise changes how `Button`, `Window`, and
`Label` are referenced, adding a `widgets::` prefix to them. This seems
weird to me because the more idiomatic thing to do would be to import
those types at the top of the file. Unless I'm missing a reason why the
solutions is written the way it is, I think this is a good
simplification.
2024-12-16 11:42:22 -05:00
Alex Lai
999490fae4
book.js: early return if response error (#2520)
It used to have a ugly error message shows that "Playground
Communication: Cannot read properties of undefined (reading 'trim')",
which is due to the fact that the response lacks stdout attr.

Issue: #2477

Signed-off-by: Alx-Lai <alexabc722@gmail.com>
2024-12-16 09:42:52 -05:00
Dustin J. Mitchell
de8ae4fe08
Remove the phrase "third-party" (#2512)
"Third-party" is a Googleism that doesn't make much sense otherwise.
Most references to crates just say "crate", implying that they are
open-source packages available on https://crates.io, so this updates a
few additional locations to do the same.
2024-12-13 09:33:58 +00:00
Andrew Walbran
fbeef48c50
Fix example from zerocopy. (#2511)
This was changed incorrectly in #2434.

Fixes #2472.
2024-12-13 10:17:37 +01:00
TalonsLee
699cceadef
Set the correct element type in vector (#2500) 2024-12-12 15:02:54 +00:00
Dustin J. Mitchell
d7ed1944c2
Changes to do bare-metal from chromebook (#2510)
On my chromebook:
 * I needed build-essentials to install cc
* I needed to enable sharing the USB device with linux. This instruction
was from a support.google.com article so well-known but not obvious.

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2024-12-11 21:49:46 +00:00
Andriy Redko
d686ab83cf
uk: Fix failing test case (#2506)
Fix one failing test case introduced by
https://github.com/google/comprehensive-rust/pull/2490

Signed-off-by: Andriy Redko <drreta@gmail.com>
2024-12-09 04:47:04 -05:00