3 ms·
Digging down, it seems to be implemented in antediluvian C++: Equalizer::~Equalizer(void) { } It probably could be cut to half the LOC just by modernizi
by pencilguin 4y ago
Digging down, it seems to be implemented in antediluvian C++:
Equalizer::~Equalizer(void)
{
}
It probably could be cut to half the LOC just by modernizing, and get more reliable and faster.
- midislack 4y agoYou can rewrite it in Rust, because we all know Rust has almost no original software.
- pencilguin 4y agoThen nobody would be using the result. Modernizing, however many users it has would benefit immediately.
- nyanpasu64 4y agoI agree that you could reduce the lines of code by modernizing, and get more reliable code (the current codebase has cases of UB that they neglected pull requests to fix for a year and counting, see https://github.com/milkytracker/MilkyTracker/pull/255 https://github.com/milkytracker/MilkyTracker/pull/255 and https://github.com/milkytracker/MilkyTracker/pull/256 https://github.com/milkytracker/MilkyTracker/pull/256). But MilkyTracker is uniquely fast in compiling, I think because of avoiding STL and heavyweight headers. My hope is that in the future we can have container niceties and lightning-fast compilation (perhaps modules over headers, concepts over SFINAE, or using STL alternative containers designed to be lightweight like EASTL or Corrade, or jumping ship from C++ entirely to Zig or Nim or so).
- pencilguin 4y agoModernizing wouldn't slow down building. Probably you could speed up the build by consolidating it into a few files; linking is about the slowest thing compilers do, although mold could help, there. Moving small things into headers might seem like it would slow down the build, but anything wholly defined in a header doesn't need to be linked. Looking at your pull 256, a delegating constructor would seem to be right thing, but initializing in the class declaration is absolutely best. I wonder who still wants it pre-C++11.