I don't need a new IDE. I am happy with the VSC Editor.
And the compiler from Macca don't compile unused Methods.
I call unused Methods frequently with callbacks.
You can disable the unused method removal from the preferences page, and the command line compiler doesn't remove unused methods by default anymore.
This must be new. I will give Vers. 0.43 a try.
Thanks for the hint.
Uwe
If an #include file feature is eventually supported we could just put common defines in a single shared file there and include them in the required files. This might also be useful for including shared CON constants from different levels in the object hierarchy.
Being able to #include different files from #ifdef logic is a particularly useful thing, otherwise everything conditional needs to be put into a single file - or at least on a per included object basis (which itself is going to be very useful).
#include will be very very useful.
But I have another big Problem. My Propeller 2 Projekt is very big with many objects.
The last Pnut Version is v35u to compile my software.
All newer Versions brings Error: OBJ data exceeds 1024k limit.
I think Chip cannot expand the OBJ data space.
So I must wait for Pnut48 TS which has the #include Command and not the OBJ data space limit.
Uwe
Uwe, are you saying that older versions of PNut used to compile your large program, but newer ones do not? Perhaps I introduced some kind of pinch point, inadvertently.
Does the program grow during compilation, before duplicate objects are recognized and then collapsed into one? I am wondering why this occurs.
If an #include file feature is eventually supported we could just put common defines in a single shared file there and include them in the required files. This might also be useful for including shared CON constants from different levels in the object hierarchy.
Being able to #include different files from #ifdef logic is a particularly useful thing, otherwise everything conditional needs to be put into a single file - or at least on a per included object basis (which itself is going to be very useful).
#include will be very very useful.
But I have another big Problem. My Propeller 2 Projekt is very big with many objects.
The last Pnut Version is v35u to compile my software.
All newer Versions brings Error: OBJ data exceeds 1024k limit.
I think Chip cannot expand the OBJ data space.
So I must wait for Pnut48 TS which has the #include Command and not the OBJ data space limit.
Uwe
Uwe, are you saying that older versions of PNut used to compile your large program, but newer ones do not? Perhaps I introduced some kind of pinch point, inadvertently.
Does the program grow during compilation, before duplicate objects are recognized and then collapsed into one? I am wondering why this occurs.
Yes, i can compile my Programm with v35u without Problems.
V36 has a bug and don’t work for me.
V37 - 48 brings the error: OBJ data exceeds 1024k limit
In v37 Parameterization added to child-object instantiations.
You say to me that this is the problem. I think you cannot expand the OBJ data space.
I don’t use Parameterization but I have very much objects.
Uwe, do you have some files that are full of constants, mainly, that get included throughout your object tree?
I think redundancy might be causing the overflow. I am modifying the compiler now to check if an identical object exists before adding it to the buffer. If it exists, already, it will just set the new pointers to the extant object. We shouldn't need more than 2MB to fix this.
Uwe, I added some smarts to the internal object handling and I think it will solve the problem. I also realized there were some limit checks missing, which I added. If you go to the obex, it's in PNut_v48p3.zip:
@cgracey said:
Uwe, I added some smarts to the internal object handling and I think it will solve the problem. I also realized there were some limit checks missing, which I added. If you go to the obex, it's in PNut_v48p3.zip:
@cgracey said:
Uwe, I added some smarts to the internal object handling and I think it will solve the problem. I also realized there were some limit checks missing, which I added. If you go to the obex, it's in PNut_v48p3.zip:
Chip, I try to compile it and now I get: Limit of 512 object files exceeded
I have over 1000 objects in my Project.
Compiler output with Pnut35u:
Uwe, thanks for trying that out. I will expaaaaand the limits some more.
When the compiler went to object parameterization, I started keeping a buffer of all objects. So objects weren't thrown out along the way, with the compiler only working incrementally.
I have a question. Are you ever instantiating arrays of objects, like this?
AnObjectArray[100] : "SomeObject"
The compiler considers an array of objects as a single object. So, you have over 1,000 instantiations, which may or may not include arrays.
I will increase the object limit from 512 to 4096. I also have a limit of 32 unique sub-object files per object. I will increase that to 256.
wenn i not include the array I have 700 instantiations.
I now the limit of 32 unique sub-object files per object.
And i have exactly 32 objects in my main File.
It was great wenn you will increase that to 256.
My Propeller 2 Projekt is very big with many objects.
I'm really kind of curious about your application that uses all those objects, Uwe. I have a couple of really big apps with my laser tag job, but I've never run into the problems you're having. Again, it's just a curiosity thing. Can you share what you're doing?
wenn i not include the array I have 700 instantiations.
I now the limit of 32 unique sub-object files per object.
And i have exactly 32 objects in my main File.
It was great wenn you will increase that to 256.
Comments
This must be new. I will give Vers. 0.43 a try.
Thanks for the hint.
Uwe
Uwe, are you saying that older versions of PNut used to compile your large program, but newer ones do not? Perhaps I introduced some kind of pinch point, inadvertently.
Does the program grow during compilation, before duplicate objects are recognized and then collapsed into one? I am wondering why this occurs.
Yes, i can compile my Programm with v35u without Problems.
V36 has a bug and don’t work for me.
V37 - 48 brings the error: OBJ data exceeds 1024k limit
In v37 Parameterization added to child-object instantiations.
You say to me that this is the problem. I think you cannot expand the OBJ data space.
I don’t use Parameterization but I have very much objects.
Uwe
Uwe, I've got a new version of PNut that has a 2MB object buffer. I will post it here in just a minute....
Uwe, here is a new PNut v48.2x which should compile your big application code:
https://obex.parallax.com/obex/pnut-spin2-latest-version/
Thanks Chip,
I try it and get: OBJ data exceeds 2048k limit.
Next try with 4096k?
Yes, I will make it bigger, then. Thank you for trying it.
Uwe, do you have some files that are full of constants, mainly, that get included throughout your object tree?
I think redundancy might be causing the overflow. I am modifying the compiler now to check if an identical object exists before adding it to the buffer. If it exists, already, it will just set the new pointers to the extant object. We shouldn't need more than 2MB to fix this.
Uwe, I added some smarts to the internal object handling and I think it will solve the problem. I also realized there were some limit checks missing, which I added. If you go to the obex, it's in PNut_v48p3.zip:
https://obex.parallax.com/obex/pnut-spin2-latest-version/
Chip, I try to compile it and now I get: Limit of 512 object files exceeded
I have over 1000 objects in my Project.
Compiler output with Pnut35u:
Uwe, thanks for trying that out. I will expaaaaand the limits some more.
When the compiler went to object parameterization, I started keeping a buffer of all objects. So objects weren't thrown out along the way, with the compiler only working incrementally.
I have a question. Are you ever instantiating arrays of objects, like this?
AnObjectArray[100] : "SomeObject"
The compiler considers an array of objects as a single object. So, you have over 1,000 instantiations, which may or may not include arrays.
I will increase the object limit from 512 to 4096. I also have a limit of 32 unique sub-object files per object. I will increase that to 256.
Hi Chip,
yes I use obj-arrays
wenn i not include the array I have 700 instantiations.
I now the limit of 32 unique sub-object files per object.
And i have exactly 32 objects in my main File.
It was great wenn you will increase that to 256.
I'm really kind of curious about your application that uses all those objects, Uwe. I have a couple of really big apps with my laser tag job, but I've never run into the problems you're having. Again, it's just a curiosity thing. Can you share what you're doing?
Well, would you like more than 256?