Re:Banned C standard library functions in Git source code
by ShinTakuya on Sunday August 25, 2019 @08:37PM
(#20796660)
Regarding remaining compatible, I would argue that this is why modern languages implement lock files and version pinning. If you don't like a particular change but need some extra functionality or a security fix you can fork the relevant libraries or extend the functionality with an extra self written library.
[ Parent
| on HN ]
Re:Banned C standard library functions in Git source code
by riquito on Sunday August 25, 2019 @08:51PM
(#20796713)
It's not a guarantee that it will work, it's not that rare to encounter a minor/patch version in a library that introduced some subtle incompatible change (usually unbeknownst to the author)
Re:Banned C standard library functions in Git source code
by ShinTakuya on Sunday August 25, 2019 @09:53PM
(#20796914)
That's literally the purpose of the lock file. The lock file locks the entire dependency tree. So unless you're bumping versions or you fail to save the lock file, the entire dependency tree's versions will remain the same.
>some subtle incompatible change
In statically typed languages this normally isn't an issue. Of course I'm aware that logic can also be changed, but in that case it's up to you to write appropriate tests (or just don't bump the versions of your libraries without a good reason).
Re:Banned C standard library functions in Git source code
by Volt on Monday August 26, 2019 @12:21AM
(#20797445)
It still sucks. I have a few Haskell projects from a few years ago that I wanted to compile on another system. So I froze the dependencies, moved the project, and tried to build. Solver failed. I gave up.
Re:Banned C standard library functions in Git source code
by ShinTakuya on Monday August 26, 2019 @12:30AM
(#20797472)
As far as I'm aware, Haskell's dependency system doesn't have a lock file. That's the key part to keeping things stable. Version pinning alone isn't enough.