On 6/8/26 2:01 PM, andy pugh wrote:
The answer is as obvious and simple as it is intricately complex. The
"abstraction" in HAL is there in name only and not in the
implementation. Code is accessing private HAL constructs and data with
complete disregard of the - abstraction - that is promised by HAL. This
is also known as a layer violation.
I think that you may be applying a modern definition of a "HAL" to our "HAL"
LinuxCNC HAL does function as intended, it allows the integrator to
link data sources and sinks freely. That is all it was ever meant to
do.
I disagree. HAL has two sides.
One side is the external side is where user-space can abstractly
manipulate components, functions, pins, params and signals. This is the
side you are talking about.
The other side is the internal HAL where components, functions, pins,
params and signals are implemented. This is the side I've been talking
about.
They have to be abstract on both sides. Currently, only the external
side is abstract and the internal side is a mess.
If you want to keep the status quo, then by all means go ahead. But then
you are just messing about and digging a deeper hole filled with
techdept for every small change.
--
Greetings Bertho
(disclaimers are disclaimed)
_______________________________________________
Emc-developers mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/emc-developers