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

Traitize: Remaining issues #2

Open
6 of 14 tasks
yvt opened this issue Dec 3, 2021 · 0 comments
Open
6 of 14 tasks

Traitize: Remaining issues #2

yvt opened this issue Dec 3, 2021 · 0 comments

Comments

@yvt
Copy link
Member

yvt commented Dec 3, 2021

Raw interface specificity:

  • Should the priority-based scheduling be enforced at API level? How should the test suite handle kernels without strict scheduling?
  • Some kernel implementations may prefer not returning BadId and causing an undefined behavior instead.

Raw interface extensibility:

  • MutexProtocol should be non_exhaustive? How is the kernel supposed to deal with unknown values?
  • The same goes for QueueOrder
  • Multi-processing
  • Some properties added to a Bag might be unsafe to ignore. How can we ensure the safety? What properties might fall under this criterion?

API design:

  • Implement object safety
  • The definer methods should be named define to make room for runtime construction.
  • r3::kernel::Cfg isn't a pretty name.
  • Kernel is not a raw trait. KernelMutex is a raw trait. But they are both in traits.
  • Is it really a good idea to require application code to use raw traits in trait bounds but use Kernel for global operations? Kernel being a kitchen sink is actually consistent with higher-level kernel object wrappers (like how Task::set_priority is bound by System: raw::KernelTaskSetPriority). But the real problem is that the raw traits are supposed to be bound by kernel-side semver guarantees.

r3_kernel:

  • r3_kernel::CfgBuilder is an awful name.

Documentation:

  • Update CHANGELOG.md
  • Define the versioning scheme
@yvt yvt pinned this issue Dec 10, 2021
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

No branches or pull requests

1 participant