lidnariq wrote:
I can't speak to all of the things removed, but there's definitely an argument for not leaving two different incompatible APIs for doing PPU access (namely cc65's TGI and Shiru's neslib.s methods) ... by making TGI use cause a linking error it prevents the kind of subtle bugs that would assuredly arise from mixing the two.
Hmm. But if I don't want to use certain functions, then I simply don't use/import/include them. And if I cannot distinguish between them, then maybe I shouldn't program that stuff in the first place.
I mean, that's like if I altered the standard C header files to remove the function declaration of memcpy, so that I don't accidentally use it because I have my own CopyArray function that's shorter since the size variable is only one byte instead of size_t.
na_th_an wrote:
Some people are concerned with the incompatibilities introduced between versions of compilers, specially open sourced projects which seem somewhat active. For example, in the case of SDCC you may find that your 6 months old code refuses to compile and / or work with the latest compiler version. That's why some people (not me) opt to "freeze time" by including a barebones copy of the compiler version they are using in the project folder. That usually includes the main executables and the runtime library.
I would understand this. But shiru didn't include the compiler. He included just the runtime.
Which means:
If the compiler becomes incompatible, then shiru's lib won't help you anyway.
And if the newer compiler still works, then shiru's lib can potentially work
against you because it might be possible that you get an error because you link the outdated runtime library instead of the one that belongs to the compiler.
There's no reason I can think of where compiling your own runtime and shipping it will produce
less incompatibility.
na_th_an wrote:
600Kb is nothing nowadays, but if you have quite a bunch of project folders (think about me: I have around 100 project folder for several platforms) everything adds up, more so if you use google drive or the likes (In my case, I'm struggling with a full Google Drive folder right now
).
Well, if you have to store the whole compiler for each project anyway, then the exe files will occupy the majority of space. Arbitrarily recompiling one small file would be pretty random here.
Besides, my suggestions for you: Put the various compilers in a central location and let the project reference the compiler that it belongs to.
Even though you have 100 projects that use maybe 10 different compiler versions, you don't need to store the correct compiler version in each project, i.e. 100 times. Just put all 10 compilers somewhere and make sure that the project uses the right one, by referencing it via version number or build date.