Skip to content
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

fix more array.tostring() removal issues in Python 3.9 #77

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

stuij
Copy link

@stuij stuij commented Oct 14, 2022

Several shell.py script versions use the depreciated array.tostring() method, which has been removed in Python 3.9. I changed these instances to .tobytes(), and adjusted .ljust()'s second argument to be a byte string.

I also fixed a related issue, where #flash'ing from a shell.py which assumes a 2-cell wide Forth to a non-.hex file would error
because the unsigned short array returned from serialize() would be written to file with assumptions of signed short:

open(dest, "wb").write(array.array("h", d).tobytes())

This would cause an overflow error. Changing "h" to "H" in that last code snippet (in swapforth.py), lines up the signdedness.

@stuij
Copy link
Author

stuij commented Oct 14, 2022

I did notice that the previous commit to fix this kind of issue made a wrapper function to be compatible both with pre and post Python 3.2 code. However Python 3.2 has been released 11 years ago, and I hoped for this repo which might not be too embedded in the corporate world, we might be able to make the assumption/minimum requirement of people using Python 3.2 or later?

Several shell.py script versions use the depreciated array.tostring() method,
which has been removed in Python 3.9. I changed these instances to .tobytes(),
and adjusted .ljust()'s second argument to be a byte string.

I also fixed a related issue, where #flash'ing from a shell.py which assumes a
2-cell wide Forth to a non-.hex file would error
because the unsigned short array returned from serialize() would be written to
file with assumptions of signed short:

open(dest, "wb").write(array.array("h", d).tobytes())

This would cause an overflow error. Changing "h" to "H" in that last code
snippet (in swapforth.py), lines up the signdedness.
@stuij
Copy link
Author

stuij commented Oct 18, 2022

updated with fix for J1b

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant