Pavel Kirienko

Results 217 comments of Pavel Kirienko

I think we should separate the question of the data structure used for port ID mapping from the question of sharding. I am quite certain that sharding as described in...

I would like to add also that the data structure should be heavily optimized for very small values of `n`. This is because most applications are unlikely to use more...

> Cost of sharding: We have to keep 256 Maps in memory. Let's assume that since Map is just an abstraction over a single linked list, that means keeping 256...

> "egads! 256 std::maps!?!" Just 256 instances of `uavcan::Map`, which are essentially just pointers. We don't use `std::map`, I couldn't wrestle the Allocator trait to make it work with our...

Invariance to the number of nodes in the network is extremely important. The ability of a node to adhere to real-time constraints should not be conditional on the number of...

What I neglected to provide for is that there are two kinds of service transfers: requests and responses. It is possible for a node to act as a service server...

> This will require changes to the driver abstraction as some platforms will require changing the CAN peripheral to accept either FD or 2.0 frames. I think the choice between...

Here: https://github.com/pavel-kirienko/o1heap While making this, I learned some new things about dynamic memory allocation algorithms and I was surprised to discover that the docs for some popular RTOS describe dynamic...

Related tasks: https://github.com/UAVCAN/libuavcan/issues/181 https://github.com/UAVCAN/libuavcan/issues/185 https://github.com/UAVCAN/libuavcan/issues/186

This change together with #186, #185, #183, #178, and the transition to C++11 would leave no stone unturned. I am getting some ideas that [most sensible people would reject immediately](https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/).