moyix / pdbparse

Python code to parse Microsoft PDB files
Other
309 stars 83 forks source link

[setup] Future proofing construct dependency #36

Closed lucasg closed 7 years ago

lucasg commented 7 years ago

While porting pdbparse to Python3, I've noticed a bunch of construct errors (ULInt32 not being defined for example). The reason being that, after several years of sleep, the construct2 project is active again.

However they introduced breaking changes in the API around v2.8 (see this issue for example). Honestly this is kind of infuriating ( who break a 5 y.o library without at least changing the major version ? ) and I don't want to update all the construct structs in pdbparse until I'm positive the construct guys won't break again the API.

To stay on the safe side, I stopped the dependency requirement to the last version released by tomer filiba, the original author of construct.

L.

PS: as a side note, if I were you I would drop the undname C module in pdbparse which greatly encumber the whole building process while providing little added value and release the next version of pdbparse as a Pure-python library (no separate Linux/Windows build toolchain requirements anymore).

moyix commented 7 years ago

Thanks! I had noticed that construct was active again. Annoying that they've decided to break backwards compatibility.

As for dropping undname – I'm reluctant to do so because I actually use it in my own code pretty often to demangle MSVC++ symbols on Linux. If there's a pure-python alternative that we could drop in in its place, I'd be happy to do that, but it's fairly complex and I haven't wanted to reimplement it myself.

lucasg commented 7 years ago

As you want.