doc/wg/core/notes/core-notes-2025-09-10.md
People are using LLMs to write/refactor/debug/etc code. There is one now
experimental such suggested contribution and one non-experimental one,
as well a draft PR to add an AGENTS.md file to better support
LLM-based tools:
AGENTS.md: https://github.com/tock/tock/pull/4582Given the inherent potential and risks of these tools, I think we should decide how we treat their use in the Tock project.
What can we gain from embracing these tools, or making them easier to work with for Tock?
What risks do using these tools pose, esp. around introducing bugs in critical subsystems, potential copyright concerns, or applying Tock in safety critical fields (i.e., do they interact with certification?).
Should we be encouraging, discouraging, or restricting the tools used to make upstream contributions?
AGENTS.md PRAGENTS.md PR)AGENTS.md we need policy too, because having one implicitly encouragesEncourage, discourage, restrict, or don't know yet?
Decide on guidelines for use of LLMs for writing or reviewing Tock code or documentation.
Either:
Write down use guidelines
Establish a TF to explore and propose an answer to these questions
Long-ago (Sep 2023, according to the half-finished branch on my machine), we agreed to extract tock-registers from the main tock repo. That project never got finished, but more interesting use cases of tock-registers (see tyler's TockWorld8 talk) have motivated making it work more like a "regular Rust crate" — in particular, the use of a hard-coded path confuses Cargo's ability to resolve "same or different".
The result is a suite of PRs:
We should start discussion with the last one (4589), as that discusses the policy for "Tock-sponsored external dependencies" and how we would like to manage them.
Pat: Driven by Tyler's safe MMIO work. There is a sitation where the
safe-mmio crate depends on tock-registers. But when trying to use
safe-mmio inside of Tock, Rust treats the two paths to the
tock-registers crate (one using a crates.io rev in the safe-mmio
crate, the other using a workspace-internal path) as different
dependencies.
So, next to splitting out tock-registers into its separate repo,
there's a question of "what is the right way to eventually refer to
the external tock-registers crate from within Tock?"
Effectively: crates.io PR vs. git revision pinned
dependencies. Everyone should take a quick look at the PR:
https://github.com/tock/tock/pull/4589
Brad: do we have the meeting minutes from the last time we discussed this? Why didn't we follow-through with splitting out Tock registers?
Pat: last time we planned on splitting it out, but it just feel off the table because of other things.
Amit: why don't we override the safe-mmio internal tock-registers dependency, when using it with the upstream Tock codebase? Would solve the issue.
Leon: Yes, that would work.
Alexandru: would prefer not to have external dependencies.
Brad: two issues: resolving Tyler's dependency conflict, and splitting code out. If we can get the former working, that would remove pressure from the more general question of splitting tock-registers out.
Leon: tangential -- we also have other external dependencies,
referenced from crates.io that we're not locking today. That is an
issue, which this would solve.
Amit: we shouldn't have Cargo.lock files for binary dependencies,
right?
Leon: lockfiles are per-Workspace. We have at least one non-library crate in our workspace (e.g., board crates), so this is why Cargo generates a lockfile. If a library dependency is used from a workspace that has a lockfile, that lockfile is ignored.
Amit: wouldn't solve the issue for out of tree boards.
Leon: yes, those should have their own lockfile.
Amit: favor Brad's position -- we resolve the short term issue. The question before us is not whether to split out the crate, but how to. So maybe we should resolve that question first.
Leon: don't want this to linger again for 2 years. We'll have to page in a bunch of context yet again.
Brad: We did generally agree to split out tock-registers: https://github.com/tock/tock/blob/5f606cc9352797b50262b4970ba169d8336aa6c4/doc/wg/core/notes/core-notes-2023-09-29.md?plain=1#L36
Pat: Agree it shouldn't linger, we should resolve PR 4589 in the next week or two.
SingleThreadValue Blog PostWe just merged
SingleThreadValue. This is a hard question the Rust ecosystem is
struggling with, and having a write-up that is both (1) accessible to a
more general audience, and (2) accurate to the important details is
valuable.
I think it's worth spending 5-10m of full core team time for folks to review and refine the post.
https://github.com/tock/tock-www/pull/122
N/A
Revise the blog post
Merge (and post), once we have proven this works in Tock