|
From: Bertho S. <lc...@va...> - 2026-06-08 12:31:26
|
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) |