Some questions regarding my SAoC project
ZILtoid1991 opened this issue · 5 comments
The project proposal suggested the conversion of mago to D, so I tried my best at going through with it, however the one month project grew too big for me. I found too many dependencies that are not easy to resolve, since they're C++ classes and use smart pointers. While they solve a lot of problems on the C++ side, they cause a lot of trouble when interfacing with D, which also made partial conversions just as troublesome as full ones.
I'm currently looking for other options, which might lead to abandoning this part of the project, and instead work on the already existing C++ code, but that comes with great complications of reevaluating the project. The alternative is to write a C wrapper to the functions those classes need from the libraries, but that would just cause yet further delays.
The proposal on the wiki page was about converting mago-mi only. I wondered whether you enhanced the scope to whole mago. Is it a valid option to convert mago-mi to D?
Probably yes, but if I have to pass things through smart pointers that might be a trouble. The easiest thing would be writing a function that generates them on the C++ side.
Well, I think I'll downscale it to mago-mi (+editline, +gdblogger), but keeping the things that interfacing to the debugger engine in C++ form, but exposing the Debugger class' function to the D side.
Might do the same with the disassembler if I find it important to add AVX support once I upgrade my PC, which will be able to execute such code.
Yeah, translating mago-mi including bindings to the C++ classes should be large enough to keep you busy.
Might do the same with the disassembler if I find it important to add AVX support once I upgrade my PC
Just found https://github.com/vmt/udis86 which seems to have AVX support according to the list of commits. I guess we should update the source in mago.
Just found https://github.com/vmt/udis86 which seems to have AVX support according to the list of commits. I guess we should update the source in mago.
Done: 4bdb8d9