-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Description
See also: #2331
A long time ago HAL float pins were single-precision. These were switched to double, even though at the time many CPUs were 32 bit.
Much more recently, now that most CPUs are 64-bit the 64-bit signed and unsigned HAL pins were added, along with the various conversion functions.
I think we should simply change the width of integer HAL pins rather than retain two parallel types.
As of now, LinuxCNC 2.9 does not have u64 and s64 HAL pins. We can fairly easily make a clean switch at this point in development without affecting any configs running the stable version.
As things stand almost no HAL components have 64-bit inputs or outputs, and this includes the rawcounts pins of the encoders and stepgens, which is one place where 32-bit ints may well be inadequate.
Rather than replace some instances of HAL component pins with 64-bit equivalents (which will cause incompatibilities in HAL files) I propose switching all integer HAL pins to the 64-bit equivalent simply by redefining the integer types. This way there need be no changes to existing HAL files.
Some changes to certain HAL components can be made. For example "bitwise" will gain a number of new pins, but I would anticipate that this would not cause any functional changes in existing HAL configs.
Similarly "LUT5" would gain one more input, and should probably be renamed to LUT6. This name-change can be handled by the update_ini script. For a given config and input setup the operation would be unaffected.
Metadata
Metadata
Assignees
Labels
Type
Projects
Status