doc/wg/core/notes/core-notes-2021-02-05.md
tock-2.0-dev branch is ready to merge into
master?libtock-c when we do the switch.libtock-c
and change the returncode values to the negatives of the ErrorCode values.
Then you have different ErrorCode values in libtock-c from the kernel which
isn't what you want. The "correct" [sic] way to do this would be to change
libtock-c to not rely on error codes being negative. Brad and Leon seem to be
of the opinion we should do that. Should check if result equals 0 to check
success rather than result less than 0.libtock-c. Just need to change in the callback handlers
themselves. We can convert it to the native libtock-c representation using
a helper function and pass it downwards.tock-2.0-dev branch on it?tock-2.0-dev as soon as possible.
We can block a Tock 2.0 release and libtock-c on that.subscribe around swapping callbacks. Does that PR represent the semantics
you plan it to have? I know there was still the question of enforcement the
last time we spoke.libtock-rs.libtock-rs
compatible with it.libtock-rs,
it's the synchronous ones that are problematic because they get to reference
the stack. Then libtock-rs has the control to not return until the callback
is done and so it can make sure to unregister the callback before the stack
frame disappears. This impacts the design of the unit testing support, where
I will have a FakeDriver trait -- a parallel version of the kernel's
Driver trait. That trait will need to represent exactly what capsules are
capable of doing.tock-2.0-dev when merging master.
Snapshot of one merge that can be thoroughly tested and iterated
upon, so we're sure the merge doesn't break anything. Second thing is we
should review all the changes, including capsules. Many changes skimmed over
just looking at Tock 2.0 correctness, so issues may have slipped in.ReturnCode/ErrorCode transition.libtock-c changes to callback argumentslibtock-c, because that one has the most
extensive coverage still. libtock-rs might end up being more expedient and
better but we would be lacking drivers we want to test. Is that fair,
Johnathan?doc/ folder, which is a small fraction of
the drivers.libtock-rs will probably be done faster anyway, but
to my mind it doesn't seem necessary to block on it. It's fine for userspace
to take longer because we still have 1.0 versions.libtock-rs.libtock-c won't test everything. HMAC and CTAP are
libtock-rs-only.libtock-c, especially in a way that is not
testable. I suspect HMAC is pretty simple.libtock_runtime, libtock_platform, and
libtock_unittest mostly complete, the rest is parallelizable. Those three
parts are very complex. What I'm missing is:
libtock_runtimelibtock_platformlibtock_unittest frameworklibtock-c, it's also pretty close. We've been porting stuff over to
libtock-c as the kernel's being written anyway, and sorta been testing.
Alistair has a good point that there are a few drivers that we want to test
that would be hard to do in libtock-c and it would be nice to be able to
move them all in lockstep.