1
0
mirror of https://github.com/google/comprehensive-rust.git synced 2024-12-14 22:15:54 +02:00
Commit Graph

1181 Commits

Author SHA1 Message Date
Martin Geisler
6ade739651
Ensure code blocks are editable (#597)
We should default to making code blocks editable: this ensures
consistent syntax highlighting (see #343) and it allows the instructor
to freely edit anything they want.
2023-04-27 23:45:41 +02:00
Martin Geisler
5074b1751c
Hint at the list of conversions in FFI exercise (#598)
I see people struggle a lot with guessing why they need to convert
between all these types. The explanations here should help with that.
2023-04-27 23:45:15 +02:00
Olivier Charrez
d394968eaf
First part of the French translation (#559)
---------

Co-authored-by: Vadim Caen <vadimcaen@gmail.com>
2023-04-27 20:34:57 +02:00
Martin Geisler
f895ffc5a8
Remove exotic string types from scalar type slide (#593)
When teaching the class, I’ve noticed that raw strings and byte
strings tend to cause confusion. The slide is meant to be a friendly
introduction and show how Rust is similar to other languages like C
and C++. Instead, the string types cause a ton of questions which are
unnecessary at this early point.

The information is still there, but now in the form of a speaker note.
2023-04-27 19:57:07 +02:00
Martin Geisler
934f9368c1
Remove unnecessary cache key (#586)
They caches have been refreshed long ago. I'm no longer sure which #1322 I was referring to in the comment — it might have been a weird typo for #552.
2023-04-27 13:25:02 -04:00
Martin Geisler
c0d03bd86b
Consistently use err for the error value (#599) 2023-04-27 19:10:49 +02:00
jd9x
274f16b839
Add some missing Korean translation (#582)
Add some missing translation
2023-04-27 15:30:45 +00:00
Andrew Walbran
9d4a34c501
Use smccc crate rather than psci in examples and exercise. (#583)
It was renamed.
2023-04-27 10:54:48 +01:00
John Scheible
c5d15edad4
Direct users to "smccc" crate rather than "psci" (#578)
psci's docs.rs page redirects users to `smccc` instead as the crate has been renamed.
2023-04-26 17:06:28 +01:00
Eric Ye
9187bf0b5e
Add some more hints to the bare-metal RTC exercise (#581)
* Add some more hints to the bare-metal RTC exercise

I and several others had some difficulties with this part of the problem, especially with regards to knowing where the RTC was wired up and how to fully enable the GIC / interrupts, so add this information to the exercise.

* Remove extra semicolon.

---------

Co-authored-by: Andrew Walbran <qwandor@google.com>
2023-04-25 09:46:37 +01:00
Dustin J. Mitchell
69a62ba227
Add a bit about 'use' (#580)
* Add a bit about 'use'

* fix paths
2023-04-24 18:51:23 +00:00
Dustin J. Mitchell
6744822454
Minor fixes (#579)
* order the Cat and Dog correctly in the vec

* make example editable

* patterns: capture vs. constant

* clarify notes on indexing a string
2023-04-24 14:46:38 -04:00
Andrew Walbran
4266078684
Add pkg-config to list of packages (#575)
pkg-config is also required for the cargo install to work.
2023-04-21 20:29:18 +02:00
Matt Schulte
6a61829d85
Fix safe FFI exercise on macOS (#572)
* Fix safe FFI exercise on macOS

Use the macOS definition of dirent.

Fixes #570

---------

Co-authored-by: Martin Geisler <martin@geisler.net>
2023-04-21 03:10:12 +02:00
jaewan-github
e371fd7e54
Main - Fix bug in exercise solution (#569)
* Fix bug in the exercise solution

Window may be nested, so its width should also consider border size.
2023-04-20 18:04:33 +02:00
Louis Stanko
3cbd652698
Translate table of contents to German (#568) 2023-04-20 03:03:00 +02:00
Andrew Walbran
c5863f6642
Add optional extension to RTC exercise (#562)
* Add methods to mask and clear interrupts.

* Start on GICv3 driver.

* Enable and use RTC interrupt.

* WFI

* Add newtype for interrupt ID.

* Add extension to use interrupt.

* Add method to send an SGI.

* Silence warnings about unused methods in provided drivers.

* Implement Debug manually for IntId.

It's useful to say what kind of interrupt it is.

* Acknowledge and log interrupt.

We should end it as well, but doing so results in a loop unless we first
clear the match.

* cargo fmt with imports_granularity = "module"

* Use arm-gic crate rather than including driver in the example.
2023-04-17 15:38:51 +01:00
Dustin J. Mitchell
d143528e07
Minor fix-ups to the async section. (#566)
These address some comments in #496.
2023-04-16 19:20:24 -04:00
Andrew Walbran
87f1976589
cargo fmt with imports_granularity = "module" (#564) 2023-04-16 20:57:59 +02:00
Dustin J. Mitchell
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
dependabot[bot]
d6e09c8130
Bump h2 from 0.3.16 to 0.3.17 (#565)
Bumps [h2](https://github.com/hyperium/h2) from 0.3.16 to 0.3.17.
- [Release notes](https://github.com/hyperium/h2/releases)
- [Changelog](https://github.com/hyperium/h2/blob/master/CHANGELOG.md)
- [Commits](https://github.com/hyperium/h2/compare/v0.3.16...v0.3.17)

---
updated-dependencies:
- dependency-name: h2
  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-14 10:33:30 +01:00
Dustin J. Mitchell
6c97e1a7be
Add a new async exercise: elevator simulation. (#557) 2023-04-13 16:26:57 +02:00
Andrew Walbran
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
Martin Geisler
5b316b8b5b Prevent accidental publishing the link-checker exercise 2023-04-11 10:47:18 +01:00
Andrew Walbran
bf18b33e39 Use exerciser for day 4 exercises too. 2023-04-11 10:47:18 +01:00
Yuri Astrakhan
5cdb73387f
Inline format vars to make the format str simpler (#551) 2023-04-06 12:00:10 +02:00
Andrew Walbran
86d8c4ae54 Rename exercise template directory and archive. 2023-04-05 16:28:07 +01:00
Andrew Walbran
ed4f5b64c4 Zip exercise templates for translation build artifacts. 2023-04-05 16:28:07 +01:00
Andrew Walbran
6b7c7cbc73 Fix publishing translations. 2023-04-05 16:28:07 +01:00
Andrew Walbran
6cba1ef2bb rustfmt with imports_granularity = "module". 2023-04-05 16:28:07 +01:00
Andrew Walbran
b6f5ba1af0 Run exerciser as mdbook renderer. 2023-04-05 16:28:07 +01:00
Andrew Walbran
e204b5060f Rename directory to match crate name. 2023-04-05 16:28:07 +01:00
Andrew Walbran
3e224e6f55 No need to handle #include directives ourselves anymore.
The mdbook links preprocessor will process them before we get called.
2023-04-05 16:28:07 +01:00
Andrew Walbran
edd9df042c Make exerciser an mdbook renderer. 2023-04-05 16:28:07 +01:00
Andrew Walbran
b24b5b02f3 Include input filename in error message. 2023-04-05 16:28:07 +01:00
Andrew Walbran
6bac3aad01 Split out library. 2023-04-05 16:28:07 +01:00
Andrew Walbran
5f5cf9dc7f Add a comment explaining the state machine. 2023-04-05 16:28:07 +01:00
Andrew Walbran
04c36de355 Add README for exerciser. 2023-04-05 16:28:07 +01:00
Andrew Walbran
9375126b3c Use comment rather than inline code to find filename. 2023-04-05 16:28:07 +01:00
Andrew Walbran
9f91699be6 Ensure that book directory exists. 2023-04-05 16:28:07 +01:00
Andrew Walbran
06badccb19 Remove output before building exercises. 2023-04-05 16:28:07 +01:00
Andrew Walbran
3f7cc60686 Make zip part as part of script.
This makes running local builds easier.
2023-04-05 16:28:07 +01:00
Andrew Walbran
c17e8abbd7 Add links to exercise template archive. 2023-04-05 16:28:07 +01:00
Andrew Walbran
d0ef072cf2 Publish exercise templates to Pages. 2023-04-05 16:28:07 +01:00
Andrew Walbran
adabd342ff Add Rustdoc comments for functions. 2023-04-05 16:28:07 +01:00
Andrew Walbran
9372d14378 Build exercise templates in CI. 2023-04-05 16:28:07 +01:00
Andrew Walbran
97d3c9c17d Add script to run exerciser on bare metal exercises. 2023-04-05 16:28:07 +01:00
Andrew Walbran
89c8eb0ef2 Add utility to build exercise starting directory from Markdown. 2023-04-05 16:28:07 +01:00
Andrew Walbran
b85c893390 Explain entry point and entry.S. 2023-04-05 15:13:10 +01:00
Andrew Walbran
2e94a80d9d Discuss use of unsafe functions and safe wrappers. 2023-04-05 15:13:10 +01:00