Traitize: Remaining issues
yvt opened this issue · 0 comments
yvt commented
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 benon_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 araw
trait.KernelMutex
is araw
trait. But they are both intraits
. - Is it really a good idea to require application code to use
raw
traits in trait bounds but useKernel
for global operations?Kernel
being a kitchen sink is actually consistent with higher-level kernel object wrappers (like howTask::set_priority
is bound bySystem: raw::KernelTaskSetPriority
). But the real problem is that theraw
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