From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Fri, 3 Dec 2004 06:36:11 +0300 From: Alexey Tourbin To: ALT Devel discussion list Message-ID: <20041203033611.GE3898@solemn.turbinal.org> Mail-Followup-To: ALT Devel discussion list References: <20041201193308.GK7294@solemn.turbinal.org> <1101944963.3362.6.camel@localhost.localdomain> <20041202013349.GN7294@solemn.turbinal.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="Xm/fll+QQv+hsKip" Content-Disposition: inline In-Reply-To: <20041202013349.GN7294@solemn.turbinal.org> Subject: [devel] Re: RFC: perl deps versioning X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Devel discussion list List-Id: ALT Devel discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 03 Dec 2004 03:37:22 -0000 Archived-At: List-Archive: List-Post: --Xm/fll+QQv+hsKip Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Thu, Dec 02, 2004 at 04:33:49AM +0300, Alexey Tourbin wrote: > =F4=C5=CD =C2=CF=CC=C5=C5 =DE=D4=CF =DA=C1=D7=C9=D3=C9=CD=CF=D3=D4=C9 1: = =D7 =CF=C2=DD=C5=CD-=D4=CF harmful, =D4.=CB. Serial =D0=C5=D2=C5=CB=D2=D9= =D7=C1=C5=D4 > =CC=C0=C2=D5=C0 =D7=C5=D2=D3=C9=C0. =F4=C1=CB =DE=D4=CF =DA=C4=C5=D3=D8 = =D4=CF=D6=C5 =D7=CF=DA=CD=CF=D6=CE=D9 =CB=C1=DA=D5=D3=D9. =EF=C4=CE=C1=CB= =CF =D6=C5 v-strings > deprecated. =F0=D2=C1=D7=C4=C1, =C2=D5=C4=D5=D4 =CB=C1=CB=C9=C5-=D4=CF v= ersion objects. >=20 > =E4=C1, =CE=C1=D7=C5=D2=CE=CF=C5 =D4=D2=C9 =DA=CE=C1=CB=C1 -- =D4=CF=D6= =C5 =CE=C5=D0=CC=CF=C8=CF (=D4=CF=C7=C4=C1 =C4=CC=D1 v-strings =D3=CF=C8=D2= =C1=CE=C9=D4=D3=D1 > =CF=C4=C9=CE =DA=CE=C1=CB =D0=CF=D3=CC=C5 =D4=CF=DE=CB=C9, =C5=D3=CC=C9 = =CF=D4=CB=C1=DA=C1=D4=D8=D3=D1 =CF=D4 1: =DA=C1=D7=C9=D3=C9=CD=CF=D3=D4=C5= =CA). =E4=D5=CD=C1=C0 =CF=D3=D4=C1=CE=CF=D7=C9=D4=D8=D3=D1 =CE=C1 3 =C3=C9=C6=D2= =C1=C8 =C9 =CF=D4=CB=C1=DA=C1=D4=D8=D3=D1 =CF=D4 Serial. =F4.=C5. =D3=C5=CA=DE=C1=D3 =D7=D9=D0=CF=CC=CE=D1=C0=D4=D3=D1 =D3=CC=C5=C4= =D5=C0=DD=C9=C5 =D4=C5=D3=D4=D9: cmp_ok "$d >=3D 2.0", 'eq', grok qq(use $m 2;); cmp_ok "$d >=3D 2.0", 'eq', grok qq(use $m 2.0;); cmp_ok "$d >=3D 2.0", 'eq', grok qq(use $m 2.00;); cmp_ok "$d >=3D 2.0", 'eq', grok qq(use $m 2.000998;); cmp_ok "$d >=3D 2.001", 'eq', grok qq(use $m 2.000999;); cmp_ok "$d >=3D 2.010", 'eq', grok qq(use $m 2.01;); cmp_ok "$d >=3D 2.012", 'eq', grok qq(use $m 2.012;); cmp_ok "$d >=3D 2.019", 'eq', grok qq(use $m 2.0199;); cmp_ok "$d >=3D 2.0", 'eq', grok qq(use $m v2;); cmp_ok "$d >=3D 2.0", 'eq', grok qq(use $m v2.0;); cmp_ok "$d >=3D 2.0", 'eq', grok qq(use $m v2.0.998;); cmp_ok "$d >=3D 2.001", 'eq', grok qq(use $m v2.0.999;); cmp_ok "$d >=3D 2.001", 'eq', grok qq(use $m 2.1.1;); cmp_ok "$d >=3D 2.001", 'eq', grok qq(use $m v2.1.1;); =F0=D2=C9 =DC=D4=CF=CD =C4=CC=D1 =C7=C5=D2=C5=CE=C1=C3=C9=C9 =D7=C5=D2=D3= =C9=C9 =CF=D4=D2=C1=C2=C1=D4=D9=D7=C1=C5=D4 =D3=CC=C5=C4=D5=C0=DD=C9=CA =CB= =CF=C4: sub version ($) { my $sv =3D shift; my $class =3D class($sv); if ($class eq "IV" or $class eq "PVIV") { return verf($sv->int_value); } if ($class eq "NV" or $class eq "PVNV") { return verf($sv->NV); } if ($class eq "PVMG") { my @v; for (my $mg =3D $sv->MAGIC; $mg; $mg =3D $mg->MOREMAGIC) { next if $mg->TYPE ne "V"; @v =3D $mg->PTR =3D~ /(\d+)/g; last; } @v =3D map ord, split //, $sv->PV unless @v; return verf($v[0] + $v[1] / 1000 + $v[2] / 1000 / 1000); } return undef; } sub verf($) { my $v =3D shift; $v =3D sprintf("%.3f", int($v * 1000 + 1e-3) / 1000 + 1e-6); $v =3D~ s/\.000$/.0/g; return $v; } =F0=CF=C4=D2=CF=C2=CE=CF=D3=D4=C9: sprintf "%.3f" =CD=CF=D6=C5=D4 =CF=CB=D2= =D5=C7=CC=C9=D4=D8 =D7 =D7=C5=D2=C8=CE=C0=C0 =D3=D4=CF=D2=CF=CE=D5, =C1 =DC= =D4=CF =CE=C5 =CF=DE=C5=CE=D8 =C8=CF=D2=CF=DB=CF. =EB=C1=DA=C1=CC=CF=D3=D8 =C2=D9, =CF= =D4=D2=D5=C2=C9=D4=D8 =C3=C9=C6=D2=D9 =D0=CF=D3=CC=C5 =DA=C1=C4=C1=CE=CE=CF= =CA -- =CE=C5=D4 =D0=D2=CF=C2=CC=C5=CD, =CF=C4=CE=C1=CB=CF =D6=C5 =D7=CF=DA=CE=C9=CB=C1=C5= =D4 =CB=C1=DA=D5=D3: $ perl -le 'print 2.01 * 1000' 2010 $ perl -le 'print int(2.01 * 1000)' 2009 $ =F0=CF=DC=D4=CF=CD=D5 =D7 =C8=CF=C4 =D0=CF=DB=CC=C9 1e-3 =C9 1e-6. --Xm/fll+QQv+hsKip Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.2.5 (GNU/Linux) iD8DBQFBr98rfBKgtDjnu0YRAhMuAJ4n4eORAMAGz2ZT6+36HQuzxOnffwCeJcNn ABDjyMzaDSMGryuVSyy1PRY= =NC0b -----END PGP SIGNATURE----- --Xm/fll+QQv+hsKip--