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

Would this work with Nuitka? #10

Open
Eeems opened this issue May 6, 2020 · 1 comment
Open

Would this work with Nuitka? #10

Eeems opened this issue May 6, 2020 · 1 comment

Comments

@Eeems
Copy link

Eeems commented May 6, 2020

https://nuitka.net/

I'd be interested to know if the runtime provided by 3DS.py would work with Nuitka. If so, it would provide a mechanism to run python with better performance. I'd be interested in implementing this so that python could be used to speed up development on things that don't require as tight an integration as C/C++.

@vbe0201
Copy link
Owner

vbe0201 commented May 7, 2020

I've never used it before so I can't make an accurate statement about it. It shouldn't be unfeasible to get it to work.

I haven't checked the source code but here is some advice if you're planning to roll a customized backend for the 3DS:

  • The 3DS is running applications on an ARM11 processor, so you're going to need a cross compiler. devkitPro's devkitARM is the recommended choice due to the group having a strong focus on creating an ecosystem for console homebrew.

  • While devkitPro tries their hardest to provide POSIX-like environments to those proprietary architectures which have barely anything with POSIX in common. pthreads, for example, can't be used for the 3DS due to the incompatible nature of how 3DS threading works. Keep in mind that there are certain features of Python which, as a result of that, need to be reimplemented with native 3DS interfaces, as exposed by ctrulib.

  • As you might want to interface with 3DS services via IPC, it should be considered to roll Python bindings to ctrulib.

  • My fork of CPython is more recent than the patches in the 3DS.py repository. If you're looking for reference implementations of certain functionality, such as threading or condition variables, you're better off diffing the 3ds branch against the 3.6 branch (of my fork) and see what's been changed.

If you're running into issues, feel free to join the 3DS.py Discord server and mention Vale#5252 for more specific help.

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

No branches or pull requests

2 participants