ok, so bit by bit , a little further ![:slight_smile: :slight_smile:](https://community.polyexpression.com/images/emoji/apple/slight_smile.png?v=12)
so I now having things mostly compiling… modules and apps.
ive excluded the following modules… as I dont need for proof of concept… easy to do, once I know other modules are working… but need to focus now!
./plg_synth/ignore
./plg_tabulator/ignore
./plg_conductor/ignore
./plg_illuminator/ignore
./plg_language/ignore
./plg_ukbd/ignore
./plg_rig/ignore
./plg_convolver/ignore
./plg_simple/ignore
./plg_loop/ignore
./plg_strummer/ignore
./plg_sampler2/ignore
./plg_t3d/ignore
./plg_livepad/ignore
./plg_primitive/ignore
./plg_midi/ignore
./plg_keyboard/ignore
./plg_host/ignore
./plg_stk/ignore
./plg_midi_monitor/ignore
./plg_scale_illuminator/ignore
./plg_recorder/ignore
./plg_midi_device/ignore
./plg_arranger/ignore
./plg_finger/ignore
./plg_osc/ignore
./app_commander/ignore
so tools/app_eigend and some essential modules (e.g devices/audio) are compiling.
but that really is only step 1… and possibly the simplest of steps ![:wink: :wink:](https://community.polyexpression.com/images/emoji/apple/wink.png?v=12)
most of the python changes , Im ‘reasonably’ confident with…
the main question marks are…
pi/async.py → pi/pisync.py
so, I noticed the other day, eigend was NOT using async, but its own decorator called async, and this appeared to creating some kind of clash…
so for now Ive rename pi/async.py to pi/pisync.py , and changed references where necessary.
but this is no guarantee it’ll work ![:slight_smile: :slight_smile:](https://community.polyexpression.com/images/emoji/apple/slight_smile.png?v=12)
… but it compiles, and kind of looks right
piw ->TypeObject… tp_compare → tp_as_async
this one could be problematic… and will need a bit of digging I suspect… and its pretty much ‘commented out’ for now… so nothing is likely to work.
so, EigenD is defining its own python object types, and this includes iterating over some types.
the issue is python 2 used to so this with a simple compare function, returning -1,0,1
where python 3, uses iterators using PyAsyncMethods. which as the name implies not only is working as an iterator , but also handling ‘async’ functionality (eg. wait etc) - so to implement this, Im going to really need to understand now only the python3 functionality in this area , but also what EigenD is doing with its PiSync decorator… and is that even compatible, with this functionality.
unfortunately, thats going to probably take quite some experimenting.
next steps?
first steps is to get some of the basic command line tools working, this’ll basically verify the simplest functions of python 3 working from the EigenD build.
once thats working, I’ll try doing more complex things, like seeing if the pico ‘module’ will instantiate.
at some point, Im definitely going to hit the tp_as_async issue above… at that point, I think I’ll end up having to try to create a test app where I prove things like the iterators, and also the pisync functionality…
as I’ll need it running in a ‘simple test environment’ … as they’ll be no chance of seeing whats going on in a full EigenD type setup, which’ll throws huge numbers of errors ![:wink: :wink:](https://community.polyexpression.com/images/emoji/apple/wink.png?v=12)
… thats the point I suspect progress will slow quite a bit!
edit: not sure if Ive mentioned but Im keeping (very rough) notes in the eigend repo
documentation/dev_notes_python.md
mostly, just so when things dont work… I can look over them to see if there is an obvious change that could cause issue… that said, they are not really complete, so shouldn’t be relied on!