EigenD : upgrade to python 3

Seems more then reasonable/wise :wink:

1 Like

yeah, I don’t want to have to do all of these things on each OS upgrade :wink:

anyway, more good progress today…

the command line function are now starting to work, the initialisation issue is fixed.

picodump is actually communicating with the pico happily :slight_smile:
this is an important step, since means that basically c+±>python3->c++ translation is working.
it also enabled me to verify some of the python 3 changes that Ive made.

pezload kind works, but then hangs…
given it enumerates usb devices,
this is quite possibly the issue I mentioned with tp_as_sync a couple of days ago.
(in many ways I hope it is, as its a nice limited case, to try to fix and test)

so probably getting pezload to work is next thing,

Im also starting eigend from command line, and checking out python errors its throwing.

3 Likes

Yep, I think this makes a lot of sense. It’s more likely to be consistent across platforms than whatever Apple comes up with!

1 Like

indeed, the more I looked at Apple’s setup (see this post) , the more inconsistent it looks… and as we have seen, they are happy to mess about with it, as its not a ‘core part’ of their OS… I think it’s possible Apple provide it as a useful ‘system admin scripting tool’ (*), rather than something for ‘application development’


(*) Ive worked at places that used python exclusively for this, they needed more than shell scripting, but weren’t programmers, and python fitted really well, as its got some really nice ‘hooks’ into the OS.

another day, more progress… more working…

fixed the python issues with eigend app.
this included removing the bug reporting and latest version check, as not sure the Eigenlabs infra is there anymore, and obviously nothing going on with development there.

its now stalling, Id assume due to some kind of deadlock issue which I need to get into.

so, now I think, im getting close to the deeper issues…
it might take me a bit of time to resolve these, but will hopefully then ‘unlock’ eigend main functionality ()
(
) such then attention turns to individual modules

so its quite positive…


one thing this effort has shown me is just how reliant EigenD is on python :frowning:
[ rant ]
I previously thought EigenLabs had just used python as a bit of ‘glue’ for the C++ code.
but it’s now clear, that there is a lot more ‘functionality’ held in python code than Id previously thought.
a lot of the belcanto stuff is all python, which then hooks into native C++ objects.
the worst part is… this python code, is then littered with custom python C++ objects.

if you’re a C++ dev, you have to dig into the python code to see how it all hangs together.
if your a python dev, the code is alien due to all the python C++ interfaces which you have to grok (C++) to see what they are doing.
… and to make it worst still, you have to understand how the python/c++ interface works thru using pip which is a custom yacc/lex things.

really, tis a lesson in why not to use (so many) different technologies…
perhaps they are the right tool, but you are creating an environment that requires very specific/uncommon skills from your developers.
worst still, sure you can teach a C++ programmer some python to do it… but they are hardly going to be expert python programmers (and this can be seen in the EigenD code base :wink: )

[ / rant ] :wink:


anyway…

we will have to see how it goes… its definitely looking once the basics are in place, theres going to be a lot of code thats changed , so going to need careful testing etc.

definitely has given me some motivation to really think about next steps for MEC :wink:

but in the meantime, Im gonna keep plugging away at EigenD/Python 3… and just hope it works out ok in the end!

4 Likes

Yeah. From my PoV working in Python is fine. Working in C++ is also fine. Working in a combination of both, in a multi-threaded app, is painful. And I totally agree with your comments about how that reduces the talent pool (it’s a point I have to repeatedly make to our devs in my day job; “yes, I know it’s the new shiny thing; think carefully about adopting it!”).