Closed LeStarch closed 1 year ago
These are good points!
Point 1 is addressed here: #197. We should switch to using BigInt to represent integer values that don't have explicit bounds in the spec. Scala does not natively support unsigned integers. I think it's a JVM issue.
Point 2 is addressed by #102 and #113. #102 will let us check generally that constants assigned to typed variables fit inside the bounds implied by the type. #113 will let us specify the F Prime opcode type in FPP. Right now we can't do that: we specify it in C++, so it's unknown to the model.
Closing this issue as addressed elsewhere. @LeStarch let me know if you think I've missed anything in documenting the other issues.
Agreed, this should be closed. Thanks for linking those issues!
When setting ids in the FPP model an artificial limitation arises from the FPP modeling language:
Here the base id is valid according to F´ as the ID type for all types is "U32". However, the FPP tooling flags an error as it is likely using a 32-bit signed integer.
This presents several concerns in practice:
I32
allows the model to express IDs that are invalid in the F´ context. i.e. a project may choose an ID type of U8, but the model allows base ids through the range of I32.At the very least, the users guide should discuss the limitations to integer and base id types. A cursory look through the user guide revealed no discussion on ranges for integers or base IDs in the FPP model.