rename 'designing a library' example
library design in Rust is its own topic that this course does not cover; to avoid confusion, let's stick to describing things in terms of books
In C (as opposed to C++) the explicit cast from void* to int* is not required. It is also not idiomatic to do so in C code.
Actual C codebase would use `malloc()` without the cast, and a C++ one (when not using abstractions) a `new int[n]` - both a bit cleaner and less verbose than this example.
Clarify that each philosopher should think/eat 100 times.
Folks who have hazy memories of the philosopher dining problem may
interpret the original instructions as "make each philosopher think and
eat once". This interpretation loses a critical detail, because the
resulting code is highly unlikely to deadlock in practice, even without
breaking the symmetry.
* Suggest to run day 3 afternoon exercise locally
Based on feedback from running the class, students found developing
the day 3 afternoon exercise locally was a better experience than
using Playground.
* Update src/exercises/day-3/afternoon.md
---------
Co-authored-by: Martin Geisler <martin@geisler.net>
* Run builds on both Mac OS and Linux
This would have helped us catch #570.
* Fix MacOS CI (#848)
* Revert unnecessary changes
The changes might be good, but I want to keep this PR small and
focused. If we end up with the extra `cfg` statements, we should
include a comment to let students know what they do: we’re targeting
people new to Rust, so we need to be careful with explanations.
---------
Co-authored-by: Dominik Maier <domenukk@gmail.com>
* Update default-methods.md
This commit resolves two issues.
a) typo: Equal -> Equals
b) update details to comply w/ example source code
* Update src/traits/default-methods.md
Co-authored-by: Edward Liaw <edliaw@google.com>
---------
Co-authored-by: Martin Geisler <martin@geisler.net>
Co-authored-by: Edward Liaw <edliaw@google.com>
* Add page about entry point before Rust code.
* Convert tabs to spaces.
mdbook doesn't seem to handle tabs in code properly.
* Add page about handling exceptions.
* More nuanced discussion of Rust Raspberry Pi OS tutorial.
* Add note about EL1 to entry point page too.
The link worked fine when GitHub was rendering it — it rewrites the relative path correctly. However, when viewed as the output of `mdbook`, the link pointed to nowhere.
* Mention cancellation via select!
* Add a section on async cancellation
* Update cancellation slide, rework example
* Rework select! note about cancellation
* Collapse cancellation comparision to panic and ?
* Don't keep null bytes from incomplete reads
These translations all have more than 200 translated messages and
they’ve been updated in the last month.
I suggest we update the list here every few weeks based on input from
the translators: we don’t need a super strict rule here, we just need
interested translators who would like to see their work celebrated.
I suggest we only link completed translations in the language picker
since we have limited space there to differentiate the different
levels of completeness.
* Update build_all.sh
The path, $ANDROID_BUILD_TOP and/or $ANDROID_PRODUCT_OUT, can contain spaces, which results in error. As long as shell var is not number, it is safe to enclose it with ""
* Enclose full shell word in quotes
This is just a stylistic choice: I find it easier to parse a command line if the full shell word is in quotes.
---------
Co-authored-by: Martin Geisler <martin@geisler.net>