UbiquityDotNET/Llvm.NET

DebugFunctionType has the wrong signature?

Closed this issue · 3 comments

DebugFunctionType uses DebugType<ITypeRef, DIType> instead of IDebugType<ITypeRef, DIType> in its signature which causes invariance issues when trying to use it together with the other debug types. The other composite debug types uses IDebugType<ITypeRef, DIType> which leads me to think that this might be an oversight.

Nice catch! Indeed, the values of the params are only used to get the underlying DIType so the interfaces are fine.

Normally, I'd say go ahead and make a PR, however since this would be a patch to a release, and I haven't actually defined how that process should work [he said hanging head in shame] it's not so easy. Although this is small enough to manage, I'll need to nail down a plan here, that likely involves a release branch for the current release so that bug fixes can be applied and work can continue on for the next major version.

I haven't actually defined how that process should work [he said hanging head in shame] it's not so easy.

No shame, release management is tricky!

I'll need to nail down a plan here, that likely involves a release branch for the current release so that bug fixes can be applied and work can continue on for the next major version.

The way I tend to do it is to keep the master branch for the current release, and have the upcoming major in a feature branch (i.e. the opposite of what you're describing), so when you merge the feature branch, you also get the bug fixes from the previous version. I believe this model also makes it easier for people on GitHub to collaborate since it aligns with what they've come to expect from the platform.

IMO, it gets trickier to manage bug fixes when you branch out releases from master rather than pull them in since you have to distribute the bug fixes to each branch. Of course, the model I've described doesn't support parallel releases, so it all depends on whether that's something you wish to support.

Hi again. Do you have an ETA for when we can expect to see 8.0.1?