Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Reformulate speaker notes regarding Box #1819

Merged
merged 1 commit into from
Feb 20, 2024
Merged

Conversation

errge
Copy link
Contributor

@errge errge commented Feb 15, 2024

The first change is to reformulate the English in a way, that emphasizes, that this is not a decision of the compiler, but the impossibility of computing an infinite value (e.g. changed the language from "not compute" to "would not be able to compute").

The second change is to fix the error message, of course the error message from the compiler is "recursive withOUT indirection", as "recursive with indirection" is actually what we want.

@errge
Copy link
Contributor Author

errge commented Feb 15, 2024

Happy to discuss these changes, but tried to put the new formulations in a way, in which I would have understood them faster when I first started to think what this section is trying to say.

@djmitche
Copy link
Collaborator

Can you run dprint fmt on this?

The first change is to reformulate the English in a way, that
emphasizes, that this is not a decision of the compiler, but the
impossibility of computing an infinite value (e.g. changed the
language from "not compute" to "would not be able to compute").

The second change is to fix the error message, of course the error
message from the compiler is "recursive withOUT indirection", as
"recursive with indirection" is actually what we want.
@errge
Copy link
Contributor Author

errge commented Feb 17, 2024

Thanks for the pointer @djmitche , stuff is passing tests now.

reference of some kind, instead of storing a value directly.
- Remove the `Box` in the List definition and show the compiler error. We get
the message "recursive without indirection", because for data recursion, we
have to use indirection, a Box or reference of some kind, instead of storing
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small drive-by formatting fix (feel free to include this here or in another PR):

Suggested change
have to use indirection, a Box or reference of some kind, instead of storing
have to use indirection, a `Box` or reference of some kind, instead of storing

@mgeisler
Copy link
Collaborator

Thanks a lot for the clarification!

@djmitche djmitche merged commit d5879d8 into google:main Feb 20, 2024
33 checks passed
JasperPluijmers added a commit to nedap/comprehensive-rust that referenced this pull request Mar 8, 2024
* Fix typo in googletest.md (google#1804)

The word `strings` is repeated unnecessarily

* Update try.md - syntax error (google#1807)

Add second `:`

* Use existing function as an example for automatic dereferncing (google#1799)

* Fix Chromium link in README.md (google#1812)

Fixes google#1806.

* Make content of variable "name" an actual name (google#1816)

In the example, somebody who is trying to understand this code has to
follow a lot of moving pieces: prefix, name, make_greeter, and then also
learn the new move concept at the same time.

It'd be better if the content were to actually match the name of the
variables. "Hi" is a good prefix, but "there" is not a name, so let's go
with an actual name.

* Added break-continue section. (google#1793)

This is a contribution of a break-continue section for Comprehensive
Rust.


![image](https://github.com/google/comprehensive-rust/assets/65899331/e68bf439-bcbd-43c9-88bd-f66470a5956f)

![image](https://github.com/google/comprehensive-rust/assets/65899331/1644a460-8373-4878-b6b9-0ce498e8c95d)

---------

Co-authored-by: Dustin J. Mitchell <dustin@v.igoro.us>

* Change String representation to actual (google#1817)

Tested with rust 2015, 2018, 2021 and 2024, on amd64 musl, amd64 glibc
and aarch64 musl, all of them represent Strings with (ptr, capacity,
len).

This is an internal implementation detail, that shouldn't be exposed
anyway, so it's no big deal, but in the speaker notes, we provide a
debugging tool for demonstration purposes, so at least that should have
a correct output.

* zh-CN: index & preparation translation (google#1800)

The po file has been refreshed. Translation range: L1173-L2241.

google#324

---------

Co-authored-by: Yihao Wang <42559837+AgainstEntropy@users.noreply.github.com>

* Added blocks and scopes section (google#1822)

* Translation correction on Update es.po (google#1780)

I added a tranlation correction on the line 1287, I change "tres"
instead "cuatro", because "cuatro" is the meaningful of four in Spanish.

---------

Co-authored-by: Henri F <henrif75@users.noreply.github.com>

* da: refresh translation for January 2024 (google#1742)

This is a clean refresh, requires only a syntactical review.

You can skim this PR with the [GitHub CLI](https://cli.github.com/):

```
gh pr diff 1742 | bat -l patch
```

* fa: refresh translation for January 2024 (google#1751)

This is a clean refresh, requires only a syntaxtical review.

You can skim this PR with the [GitHub CLI](https://cli.github.com/):

```
gh pr diff 1751 | bat -l patch
```

* Translation correction on Update es.po (google#1781)

I added a tranlation correction on the line 1287, I change "tres"
instead "cuatro", because "cuatro" is the meaningful of four in Spanish.

---------

Co-authored-by: Henri F <henrif75@users.noreply.github.com>

* cargo: bump the patch group with 1 update (google#1828)

Bumps the patch group with 1 update:
[clap](https://github.com/clap-rs/clap).

Updates `clap` from 4.5.0 to 4.5.1

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* uk: Day 3: morning (google#1826)

Day 3: morning

Signed-off-by: Andriy Redko <drreta@gmail.com>

* Suggest --locked for cargo installs (google#1792)

This is already used in the GitHub actions, and avoids issues like those
in google#1791.

Fixes google#1791.

* Fix style in glossary.md (google#1825)

`id` of `h1` title in the translated version will be changed to the
translated text.
Fixed `id` configured here will not take effect in the translated
version.

Correct style: https://google.github.io/comprehensive-rust/glossary.html
Wrong style (zh-CN): https://google.github.io/comprehensive-rust/zh-CN/glossary.html

* Add heading attribute to glossary.md (google#1829)

Add heading attributes[1] to avoid ID changes in translation.

[1]: https://rust-lang.github.io/mdBook/format/markdown.html#heading-attributes

Related: google#1825

---------

Co-authored-by: Martin Geisler <martin@geisler.net>

* Rendered PDF improvements (google#1805)

Updates `mdbook-pandoc` to
[0.5.0](https://github.com/max-heller/mdbook-pandoc/releases/tag/v0.5.0)
to use some new features:
- Table wrapping (closes google#1709)
  
The wrapping logic mirror's
[Pandoc's](https://pandoc.org/MANUAL.html#extension-pipe_tables) (i.e.,
compare the relative widths of the `---` columns to determine column
widths) so tables in the source may need tweaking to get the proportions
right
- Replace broken links in PDF with corresponding links to
https://google.github.io/comprehensive-rust/

* Make the "break with label" example more illustrative (google#1830)

In the old version, using "break 'outer;" and using "break;" (without
the label) produce the same output.

This version fixes that to make the example more illustrative.

---------

Co-authored-by: Martin Geisler <martin@geisler.net>

* fr: Updating the first few pages (up to 1.1). (google#1778)

* Update translations.md with new Korean contributor (google#1823)

Co-authored-by: Martin Geisler <mgeisler@google.com>

* Reformulate speaker notes regarding Box (google#1819)

The first change is to reformulate the English in a way, that
emphasizes, that this is not a decision of the compiler, but the
impossibility of computing an infinite value (e.g. changed the language
from "not compute" to "would not be able to compute").

The second change is to fix the error message, of course the error
message from the compiler is "recursive withOUT indirection", as
"recursive with indirection" is actually what we want.

* Put a header on schedule comments (google#1814)

This will add a little more context. See the current result in
google#1813.

* Add missing editable attribute to exercise (google#1827)

I was reading the docs and I stumbled upon this.

I'm unsure about when exercises should be solved directly on the site
and when they should be copied and pasted into a playground. But since
the previous chapter's exercise is solvable in the site [(fibonacci
sequence)](https://github.com/google/comprehensive-rust/blob/0cb7f496b542d76468fa950718f57f4037abc8fa/src/types-and-values/exercise.md?plain=1#L15),

I figured this one might be missing the attribute. Anyway amazing work
on the docs!

* Change hardcoded vector update to a for loop (google#1833)

iterating over the vector instead of hardcoding each item

---------

Co-authored-by: Martin Geisler <mgeisler@google.com>

* Expand Traits, add associated types (google#1815)

This breaks the "Traits" slide into three smaller sub-slides. It also
addresses part of google#1511 by explicitly addressing associated types.

---------

Co-authored-by: Martin Geisler <martin@geisler.net>

* Update exercise to add also the tests, in a TDD style (google#1832)

Having the tests only in the result brings less value, so the
participants can do it following TDD practices

* Update user-defined-types/exercise.md (google#1835)

Allow us to edit so we can complete the exercise :)

* Move hello world example to second section (google#1838)

The current location for the hello world example is awkward since the
two surrounding pages are both talking about Rust from a high level
without talking about syntax at all. I think starting the second section
(types and values) with the hello world example would help the first
section flow more smoothly.

* Add translation comment to glossary (google#1831)

With google/mdbook-i18n-helpers#107 merged, we
can begin adding comments for the translators to our Markdown files.

* Tweak timings of exercises to better reflect teaching times (google#1839)

A few of the early exercises had much larger estimates than were
actually necessary for the super simple early exercises. I've gone
through and reviewed the time estimates for exercises and tweaked the
estimates based on how much time students have actually needed in my
classes so far.

* Flesh out `for` loop example (google#1841)

* Add example of iterating over a collection.
* Update speaker notes to call out the use of iterators.

I think it's useful to call out that `for` loops primarily are used to
iterate over a collection of objects, even though we haven't yet talked
about any concrete collection types at this point. I think using the
array literal syntax is simple enough to understand that it should be
quick to explain when we get to this slide.

* pt-BR: Merge CR v.2 pt-BR translation back into main (google#1846)

This PR merges the pt-BR v.2 translation back to main.
Also, it refreshes the .po file format removing the line numbers.
This requires just a syntactical review, as the partial PRs into this
branch were reviewed already.

You can skim this PR with the [GitHub CLI](https://cli.github.com/):

gh pr diff 1846 | bat -l patch

google#317 google#1463

---------

Co-authored-by: João Victor Mendes <mendesjoaovic@gmail.com>
Co-authored-by: azevedoalice <158203674+azevedoalice@users.noreply.github.com>

* Fix definition of Rust Fundamentals in glossary.md (google#1844)

Small nitpick: Days 1 to **4** are Rust Fundamentals

* Fix typo in cargo.md (google#1847)

* Remove tangential text from `if` slide (google#1840)

* Update cargo.md to fix typos (google#1848)

* cargo: bump the patch group with 6 updates (google#1850)

Bumps the patch group with 6 updates

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* cargo: bump the patch group in /src/bare-metal/aps/examples with 1 update (google#1851)

Bumps the patch group in /src/bare-metal/aps/examples with 1 update:
[cc](https://github.com/rust-lang/cc-rs).

Updates `cc` from 1.0.83 to 1.0.88

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* cargo: bump the patch group in /src/exercises/bare-metal/rtc with 1 update (google#1852)

Bumps the patch group in /src/exercises/bare-metal/rtc with 1 update:
[cc](https://github.com/rust-lang/cc-rs).

Updates `cc` from 1.0.83 to 1.0.88

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* uk: Day 3: afternoon (google#1849)

uk: Day 3: afternoon

Signed-off-by: Andriy Redko <drreta@gmail.com>

* Link to PDF version of course from first page (google#1836)

Re
google#1805 (review)

---------

Co-authored-by: Martin Geisler <martin@geisler.net>

* Skip translation of large bare-metal code blocks (google#1853)

This was done a bit inconsistently before. We now skip all of these
large blocks which are meant to be used as-is by the students.

This removes 700 lines from the PO files. I found this during the review
of google#1651.

* Sort `mdbook` redirects (google#1761)

There were a few comments, but I think it’s better to make it all
uniform and avoid these comments. The comment was about the v2 rewrite,
but this is now done and so the comment is less useful.

I also normalized the quotes to double-quotes instead of single-quotes.
The latter is a literal string in TOML, but we don’t actually have any
special characters to escape here.

* Rework introduction of pattern matching (google#1843)

* Update course-schedule PR comments in-place (google#1856)

Instead of always adding a new comment, just update the existing comment
if one exists.

This fixes google#1834.

* cargo: bump the patch group in /src/bare-metal/aps/examples with 1 update (google#1871)

Bumps the patch group in /src/bare-metal/aps/examples with 1 update:
[log](https://github.com/rust-lang/log).

Updates `log` from 0.4.20 to 0.4.21

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* build(deps): bump crate-ci/typos from 1.18.2 to 1.19.0 (google#1872)

Bumps [crate-ci/typos](https://github.com/crate-ci/typos) from 1.18.2 to
1.19.0.

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* cargo: bump the patch group with 4 updates (google#1873)

Bumps the patch group with 4 updates:
[log](https://github.com/rust-lang/log),
[tempfile](https://github.com/Stebalien/tempfile),
[cxx](https://github.com/dtolnay/cxx) and
[cxx-build](https://github.com/dtolnay/cxx).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* cargo: bump the patch group in /src/exercises/bare-metal/rtc with 1 update (google#1874)

Bumps the patch group in /src/exercises/bare-metal/rtc with 1 update:
[log](https://github.com/rust-lang/log).

Updates `log` from 0.4.20 to 0.4.21

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* cargo: bump the minor group with 2 updates (google#1870)

Bumps the minor group with 2 updates:
[scraper](https://github.com/causal-agent/scraper) and
[tokio-websockets](https://github.com/Gelbpunkt/tokio-websockets).

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* URGENT: Fix course schedule watcher github action (google#1867)

@djmitche Currently all PRs are marked as schedule change PRs.

This is my try to propose a fix for this, but please review diligently,
I'm no github actions expert, and I don't have an environment to test.

* Small formatting fix (google#1866)

This is a typo, that actually @mgeisler stopped in my previous PR, I was
just not around to fix it fast enough to make it to the previous merge.
Thanks for the catch!

* Move Mockall and GoogleTest slides to Android section (google#1533)

After google#1528 and google#1532, we now have actual slides which showcase the
crates in action. So we can reclaim a few minutes by removing the slide
which mentions Mockall and GoogleTest slide.

The slide mentioned [proptest](https://docs.rs/proptest) and
[rstest](https://docs.rs/rstest) as well. While I'm sure the libraries
are useful, we don't have them imported into AOSP and I've never
personally used them. We should therefore not advertise them yet at this
point since they won't be useful to Android engineers.

Of course we can mention things that are not in AOSP (or in Chromium),
but I think we should do it in the speaker notes at most.

* Always install and run `mdbook-pandoc` (google#1713)

Before, we only installed and ran `mdbook-pandoc` when publishing the
course — which means that a PR change could accidentally break the
publish workflow. We now test that it works on every PR.

From a discussion in google#1704.

* Add a dev theme to help with slide aspect ratio (google#1842)

Added a dev theme to help with slide aspect ratio while updating content
or for reviewing PRs.

Fixes google#1796.

---------

Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
Co-authored-by: Martin Geisler <martin@geisler.net>

* cargo: bump mio from 0.8.10 to 0.8.11 (google#1877)

Bumps [mio](https://github.com/tokio-rs/mio) from 0.8.10 to 0.8.11.

* Fix some typos (google#1864)

Signed-off-by: geekvest <cuimoman@sohu.com>

* es: Merge CR v.2 Spanish translation back into main (google#1879)

This PR merges the Spanish (es) v.2 translation back to main.
This requires just a syntactical review, as the partial PRs into this
branch were reviewed already.

You can skim this PR with the [GitHub CLI](https://cli.github.com/):

gh pr diff 1879 | bat -l patch

google#1463 google#284

---------

Co-authored-by: David Martínez Martí <deavid@google.com>

* tr: cr2 update changes (google#1865)

updated for cr2 and added some translations

Part of google#500

* Divided Array and tuples (google#1859)

google#1824 PR Changes

* Make diagram consistent with code (google#1855)

* Retire @duyguisler as a Turkish reviewer (google#1880)

Thanks for the work so far, feel free to come back if you have more
time!

* Tweak solution to iter exercise (google#1884)

Because `.zip()` is limited to the shorter length, the `.take()` call
here is unnecessary. When explaining this solution I don't want to have
to explain a call to a method that, used as it is, does nothing.

* concurrency: Add detailed teaching notes for welcome and threads slides (google#1885)

These follow the flow of what I actually teach, which spends a
significant amount of time on the latter slide. I think it's worthwhile
to have a real flow documented in the teaching notes, both to make sure
nothing gets forgotten and to structure the experience of teaching.

* Do not show trait vtables as located in the heap in memory diagram (google#1882)

This diagram is misleading and I often explain that the character data
of string literals resides in the executable's static data, with vtables
working the same.

* concurrency: Update async trait slide (google#1883)

Clarify that the basics are stable, but dyn support is still missing.
This slide was outdated and didn't explain the current state of stable
correctly.

* set fallback fonts for PDF rendering (google#1728)

Once a new version of Pandoc is released that includes
jgm/pandoc#9204 and
jgm/pandoc#9353 (both merged), this will fix the
emoji and symbol rendering issues in google#1708.

It doesn't seem to be possible to set fallback fonts with
`luatexja-fontspec` (used to configure CJK fonts), which results in some
missing symbols in the translations but at least renders the emoji
properly.

Closes google#1708

* Fix typo in associated-types.md (google#1887)

A minor nitpick, but as someone new to the language I did spend a bit
more time than I'd like to admit trying to understand the meaning of
`allow` before realizing this is likely a typo. Maybe I still don't
understand, and in that case I'd appreciate a correction!

* Refreshed Bengali Translations and Added New Translations to Bengali (google#1876)

This PR aims to do the following:
1. Refresh the Bengali Translations
2. Add new translations in line with google#653 to complete up to 10%.
3. Corrections to existing translations.

Edit: Recent commits bump up the % completed to 12.

---------

Co-authored-by: abhik-bits <127435906+abhik-bits@users.noreply.github.com>
Co-authored-by: Mir Wasi Ahmed <1697945+mirwasi@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Signed-off-by: Andriy Redko <drreta@gmail.com>
Signed-off-by: geekvest <cuimoman@sohu.com>
Co-authored-by: IP1llar <isaac.pillar@icloud.com>
Co-authored-by: Gergely Risko <errge@nilcons.com>
Co-authored-by: Dustin J. Mitchell <djmitche@google.com>
Co-authored-by: Manichand Kondapaka <mani.chand01@gmail.com>
Co-authored-by: Dustin J. Mitchell <dustin@v.igoro.us>
Co-authored-by: mobyw <44370805+mobyw@users.noreply.github.com>
Co-authored-by: Yihao Wang <42559837+AgainstEntropy@users.noreply.github.com>
Co-authored-by: Diego Romero <68618228+DraketRomero@users.noreply.github.com>
Co-authored-by: Henri F <henrif75@users.noreply.github.com>
Co-authored-by: Martin Geisler <mgeisler@google.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Andriy Redko <drreta@gmail.com>
Co-authored-by: Martin Geisler <martin@geisler.net>
Co-authored-by: Max Heller <max.a.heller@gmail.com>
Co-authored-by: Marja Hölttä <marja@chromium.org>
Co-authored-by: AdrienBaudemont <59776880+AdrienBaudemont@users.noreply.github.com>
Co-authored-by: titong0 <68573622+titong0@users.noreply.github.com>
Co-authored-by: Jean Carlo Vicelli <jcvicelli@gmail.com>
Co-authored-by: Michael Graf <mikegraf000@gmail.com>
Co-authored-by: Nicole L <dlegare.1001@gmail.com>
Co-authored-by: João Victor Mendes <mendesjoaovic@gmail.com>
Co-authored-by: azevedoalice <158203674+azevedoalice@users.noreply.github.com>
Co-authored-by: Adrian Taylor <adetaylor@chromium.org>
Co-authored-by: geekvest <126322776+geekvest@users.noreply.github.com>
Co-authored-by: David Martínez Martí <deavid@google.com>
Co-authored-by: Enes Aydın <destansi.13@gmail.com>
Co-authored-by: Yuri Astrakhan <yuriastrakhan@gmail.com>
Co-authored-by: Frances Wingerter <91758128+fw-immunant@users.noreply.github.com>
Co-authored-by: Aaron M <webgovernor@gmail.com>
Co-authored-by: Abhik Banerjee <38981107+abhik-99@users.noreply.github.com>
Co-authored-by: abhik-bits <127435906+abhik-bits@users.noreply.github.com>
Co-authored-by: Mir Wasi Ahmed <1697945+mirwasi@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants