New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Hitting OpenSpin's error : Limit of 256 subroutines + objects exceeded
#34
Comments
You can't increase this number. The Spin interpreter (in the ROM on the chip) would have to be changed to allow more, since the number has to fit in a byte. |
Then something really strange is going on that I really do not understand...
I'm trying to get TriOS built by OpenSpin. |
It's removing unused PUBs, -Oa includes that feature. Try using the -u feature of OpenSpin. |
Using OpenSpin's "-u" makes no difference:
...but indeed: Running BSTC without optimisations does fail:
|
Okay, I guess BSTC does things differently and manages to make it work. I'm not sure this can be solved easily with OpenSpin, because of how the internal structure works (based on Chips original x86 code). You might need to split apart the file that has 299 PUBs to be in separate objects in order to get it working. If that is even an option for you. |
Thanks! Maybe some PUBs could be used like a BDOS call with function numbers as 1st argument. That would be a dramatic change of the OS's function call API. This code in its current state is in use for years now. IIRC the OS and it's transient programs (without counting some separately distributed add-ons) make >51000 lines of code now. We definitely have something to discuss: Change or stick to BSTC forever? Tertium non datur? |
Which constant (in PropellerCompiler/PropellerCompiler.h#L42-L57?) needs to be increased to compile sources with more than 256 such items?
The text was updated successfully, but these errors were encountered: