The answer is probably a very big "NO", but I might as well ask.
I am writing a system which has now regrettably resorted to Strings in order to keep track of data for certain objects.
(A better description: It is an Extensions system where Extensions which may or may not exist are linked to Containers which may or may not exist based on key / value combinations that are stored in a TMap - though there is a high chance that said keys do not exist because they are specifically set by different Containers (which as I already said may or may not exist in a manner essentially unknown by the actual program), thus breaking things if the program is compiled as Strict).
This is unfortunate to be using strings, because the whole process of keeping track of data for those objects is hidden away thus rendering their use pointless!
Not too much of a problem for processing speeds because it only happens at particular moments, and memory waste is hardly a problem, but it just looks DUMB!
( And dumb is just not acceptable at this point, since I've now scratched out every bit of wonderful automagic code I previously had :( )
My last hope to make this system actually sane, I suspect, is a precompiler. (That, or I wait for the DLL support to be officially "Usable")
Is it possible to write code in BlitzMax that runs in its precompiler?
Theoretically, it could be quite possible, with the precompiler getting an in-line precompiling program compiled, running that, then finishing compiling the actual program. Of course, there would have to be some pretty creepy stuff going on for that to actually work; I realize that I am simplifying immensely and it would actually be both very difficult and near impossible.
There are unofficial precompilers such as BLIde's, which could work well, but I don't want to have people tethered to a single IDE.
So, thinking before compilation in BlitzMax, in any way at all, no matter how simple: Is it possible?
Even something really simple, like "If some constant is set, compile this code, otherwise remove it!"
I am writing a system which has now regrettably resorted to Strings in order to keep track of data for certain objects.
(A better description: It is an Extensions system where Extensions which may or may not exist are linked to Containers which may or may not exist based on key / value combinations that are stored in a TMap - though there is a high chance that said keys do not exist because they are specifically set by different Containers (which as I already said may or may not exist in a manner essentially unknown by the actual program), thus breaking things if the program is compiled as Strict).
This is unfortunate to be using strings, because the whole process of keeping track of data for those objects is hidden away thus rendering their use pointless!
Not too much of a problem for processing speeds because it only happens at particular moments, and memory waste is hardly a problem, but it just looks DUMB!
( And dumb is just not acceptable at this point, since I've now scratched out every bit of wonderful automagic code I previously had :( )
My last hope to make this system actually sane, I suspect, is a precompiler. (That, or I wait for the DLL support to be officially "Usable")
Is it possible to write code in BlitzMax that runs in its precompiler?
Theoretically, it could be quite possible, with the precompiler getting an in-line precompiling program compiled, running that, then finishing compiling the actual program. Of course, there would have to be some pretty creepy stuff going on for that to actually work; I realize that I am simplifying immensely and it would actually be both very difficult and near impossible.
There are unofficial precompilers such as BLIde's, which could work well, but I don't want to have people tethered to a single IDE.
So, thinking before compilation in BlitzMax, in any way at all, no matter how simple: Is it possible?
Even something really simple, like "If some constant is set, compile this code, otherwise remove it!"