But: below [1] is the test code, to implement a diagnostic about a maybe
problematic GMP version. I'd like to code it like this:
.local pmc cl, v, need
cl = getclass 'BigInt'
v = cl.'version'() # return a .Version PMC
need = new .Version, '4.1.4'
if v < need goto warn
...
So the idea is:
- fill version.pmc with some initializers
- assume version =~ / (major(\.minor(\.patch)*))?.* /x at least for now
- provide compare functions that do arithmetic compares on subcomponents from
left to right.
Comments welcome,
leo
[1] s. also t/pmc/bigint.t
.sub main :main
.local pmc b, ar
.local string v
.local int ma, mi, pa
b = new .BigInt
v = b.'version'()
ar = split '.', v
ma = ar[0]
mi = ar[1]
pa = ar[2]
if ma >= 4 goto ge_4
warn:
print 'GMP version '
print v
print " is buggy with huge digit multiply - please upgrade\n"
end
ge_4:
if mi >= 2 goto ok
if mi == 0 goto warn
# test 4.1.x
if pa >= 4 goto ok
goto warn
end
ok:
.end