Skip to content

Traitize: Remaining issues #2

Open
@yvt

Description

@yvt

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions