Shop OBEX P1 Docs P2 Docs Learn Events
PNut/Spin2 Latest Version (v48.1 - preprocessor and flash-image saving) - Page 72 — Parallax Forums

PNut/Spin2 Latest Version (v48.1 - preprocessor and flash-image saving)

1666768697072»

Comments

  • @macca said:

    @wummi said:

    Try Spin Tools IDE ?

    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

  • cgraceycgracey Posts: 14,239

    @wummi said:

    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.

  • @cgracey said:

    @wummi said:

    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

  • cgraceycgracey Posts: 14,239

    Uwe, I've got a new version of PNut that has a 2MB object buffer. I will post it here in just a minute....

  • cgraceycgracey Posts: 14,239

    Uwe, here is a new PNut v48.2x which should compile your big application code:

    https://obex.parallax.com/obex/pnut-spin2-latest-version/

  • @cgracey said:
    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?

  • cgraceycgracey Posts: 14,239

    @wummi said:

    @cgracey said:
    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.

  • cgraceycgracey Posts: 14,239

    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.

  • cgraceycgracey Posts: 14,239

    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/

  • @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:

    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:

  • cgraceycgracey Posts: 14,239

    @wummi said:

    @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:

    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

        FG1[4] :   "FG1"
        FG6[8] :   "FG6"
        MOD[9] : "Modul"
        io[9] :       "IO"
        s[2] :         "schedule"
    

    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.

  • JonnyMacJonnyMac Posts: 9,186
    edited 2025-01-12 18:58

    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?

  • cgraceycgracey Posts: 14,239

    @wummi said:
    Hi Chip,
    yes I use obj-arrays

        FG1[4] :   "FG1"
        FG6[8] :   "FG6"
        MOD[9] : "Modul"
        io[9] :       "IO"
        s[2] :         "schedule"
    

    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.

    Well, would you like more than 256?

Sign In or Register to comment.