spk121 / guile-gi

Bindings for GObject Introspection and libgirepository for Guile
GNU General Public License v3.0
58 stars 7 forks source link

Guile 3.0.4 #93

Closed LordYuuma closed 3 years ago

LordYuuma commented 3 years ago

Adapts Guile-GI to changes in the bitvector API, that would otherwise raise deprecation warnings.

spk121 commented 3 years ago

Should the conditional

SCM_MAJOR_VERSION == 3 && SCM_MINOR_VERSION == 0 && SCM_MICRO_VERSION < 4

be something like

(SCM_MAJOR_VERSION <= 2) || (SCM_MAJOR_VERSION == 3 && SCM_MINOR_VERSION == 0 && SCM_MICRO_VERSION < 4)

?

But that implies the question of whether to keep guile-gi compatible with Guile 2.x...

LordYuuma commented 3 years ago

Good catch, I haven't actually tested Guile 2.x. My personal intuition is that this section will only work for Guile 3.0.y, 2(?) <= y < 4, because part of the new bitvector API already exists there and only this #define needs to be made. IOW it would probably be wiser to have

#if SCM_MAJOR_VERSION < 3
#elif SCM_MAJOR_VERSION == 3
#if SCM_MINOR_VERSION...
#endif 
#endif

We should probably get our CI running for both 2.2 and 3.0 if we want to ensure backwards compatibility. So first address #59 and then merge this, WDYT?

LordYuuma commented 3 years ago

It turns out the suggestion you've made back in October works just fine.

spk121 commented 3 years ago

Looks good to me.