News for hackers. Stuff that matters.
Re:A regression is the kernel not giving the same result wit... by tome on Thursday November 02, 2017 @10:21AM (#15610612)
Really? How so? If you have abstract types then you can easily make internal changes without making those changes visible externally.
Re:A regression is the kernel not giving the same result wit... by gmfawcett on Thursday November 02, 2017 @11:04AM (#15611028)
As a simple example, suppose I swap out one container type with another one in the internal code. Both implement the same interface/traits, so the change isn't visible to users. But the time complexity of the container operations are different on the new type, and the user was depending upon the time characteristics of the old container. E.g., deletions are now O(n) instead of O(1). I've violated a user expectation without breaking type safety.
Re:A regression is the kernel not giving the same result wit... by tome on Thursday November 02, 2017 @12:23PM (#15611804)
Nice counterexample!
Re:A regression is the kernel not giving the same result wit... by pjmlp on Thursday November 02, 2017 @10:48AM (#15610865)
Some examples,

1 - Not all changes can be kept internal, for example adding a new case to an ADT

2 - Internal changes can still alter the semantic of the API, even if from the outside everything still looks the same from the type system point of view

Re:A regression is the kernel not giving the same result wit... by tome on Thursday November 02, 2017 @12:23PM (#15611811)
Yes, both are true. 2 is a particularly good example.