Comments (4)
From today's call, where we talked about this issue. An alternative approach to this could be to use traits and generics for the "real" and "mock" implementations of the different subsystems respectively. A concern that was voiced is that this generic argument would then need to be carried throughout much of Tock's codebase. A benefit would be that we would have a shared explicit interface between both implementations, which may reduce the potential for mismatches to evolve between the two implementations.
If the fact that this generic argument would need to be carried through much of Tock's codebase is the primary concern, we may be able to alleviate that by assigning a default type to that generic.
from tock.
I don't think we should make Tock code harder to read and harder to write for unit testing. That feels like the wrong-way-round. We want to build the best OS to run, not to test.
If we need a stub library, like the TBF headers, that seems like a cargo.toml issue. Can't we just compile the kernel crate with a different dependency? Even if that requires some extra scripts to accomplish, that seems fine, and overall a bunch less work than propagating a generic argument everywhere.
from tock.
(If you would like to have some fun propagating generic types, you can help me remove dyn
from capsules. It's fun, I promise!)
from tock.
I have some experience with removing dyn
(from #3431), so it might be interesting to try removing dyn
from other capsules. Do you have any starting points from where I can start?
from tock.
Related Issues (20)
- Move implementations of kernel configuration tools to capsules
- tock_memory_usage: SyntaxWarning: invalid escape sequence '\S'
- AppID Roadmap HOT 1
- RFC: Expand Alarm Range HOT 8
- License checker incorrectly rejects `.txt` files HOT 1
- Tracking: Tockbot HOT 1
- IEEE 802.15.4: Receive Raw
- RFC: Flash Storage with Isolation HOT 8
- Tracking: Implement Configuration Boards
- Writing the Tock OS kernel to the stm32f303discovery development board failed. HOT 5
- 6LoWPAN Indexing Bug HOT 3
- Alarm: Change prescaler for NRF 5x boards HOT 2
- Tracking: WiFi Support
- Process loading: applications' FLASH order must be the same as RAM order; otherwise loading fails for some HOT 2
- Tockloader: erase does not erase all apps HOT 2
- CI-Nightly Syntax Error HOT 1
- stm32f4xx: clocks: enabling PLL fails at some target frequencies HOT 2
- LowRISC UART driver: `hil::uart::Configure::configure` can corrupt data
- LowRISC UART driver: enable_rx_timeout overwrites the timeout value
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from tock.