"As for slowness. Yeah, if you do every math stuff with variables and loops in python code, it's going to be slow. Same with doing stuff in Matlab that it's not optimized for, though." - tinkeringdude
I'm so anal I "rolled my own" dec2hex conversions, rather than rely on the C++ libraries, as there were too many modes and unexpected behavior going on.
"But there are numerical libraries which are implemented in C in the background, for a lot of common tasks, and if you throw your data at it, only the high level glue logic of your scripts will actually be the high level, interpreted stuff, while the rest is done natively."
Interesting.
"And you could then of course make some custom routines in C for something special you need, only as much as is really needed speed wise, in C, and the rest in the convenience of the higher level language."
I was looking at months of work anyway, so interposing a new language and getting it to work with custom C modules felt like a bridge too far at the time. The Hive core isn't all that complex, but there are 8 threads so there's a lot of storage in the pipeline. Doing cycle accurate logic simulation in C means you need two SW variables for each HW register, so the "cha-cha" (HW actually stores intermediate values via setup and hold times) of the HW clock cycle doesn't produce a race condition. The closer the sim mirrors reality, the slower it tends to run. Have you made custom C modules for python code?
"I say that because I guess simulating a processor is quite a special case thing, a mapping from one instruction set to another around as few as possible corners, so there are probably no libraries for that (where people expect high speeds)?"
I don't think I'd try transferring the assembler / simulator to python at this point, though I'm not all that happy with the console ASCII "graphics" of the sim, particularly when running on Win7 / 10 where whatever they did to the console really slowed it down compared to XP. It could be that I just need to recompile to a 64 bit target, but I'm kind of doubting that. And it would be nice to make the visual side of it cross-platform.
But I'm mainly interested in getting the serial port portion of this project in better shape, maybe even make a simple editor / librarian for the presets. Have you messed at all with the default GUI tools (Tkinter) of python?