From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Mon, 4 Nov 2002 11:07:17 +0300 From: Alexey Tourbin To: devel@altlinux.ru Subject: Re: [devel] Re: AnyDBM_File DB_File Message-ID: <20021104080717.GA25906@homestead.turbinal.org> Mail-Followup-To: devel@altlinux.ru References: <20021029095926.GB21820@basalt.office.altlinux.ru> <20021029102641.GA22230@homestead.turbinal.org> <20021102091734.GB6621@mhz.mikhail.zabaluev.name> <20021102214555.GA22646@homestead.turbinal.org> <20021102223405.GA25148@homestead.turbinal.org> <20021104055934.GG26430@bebi.novosoft.ru> <20021104052659.GA9951@homestead.turbinal.org> <20021104080305.GH26430@bebi.novosoft.ru> <20021104062643.GA13537@homestead.turbinal.org> <20021104085329.GI26430@bebi.novosoft.ru> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="X1bOJ3K7DJ5YkBrT" Content-Disposition: inline In-Reply-To: <20021104085329.GI26430@bebi.novosoft.ru> Sender: devel-admin@altlinux.ru Errors-To: devel-admin@altlinux.ru X-BeenThere: devel@altlinux.ru X-Mailman-Version: 2.0.9 Precedence: bulk Reply-To: devel@altlinux.ru List-Unsubscribe: , List-Id: List-Post: List-Help: List-Subscribe: , List-Archive: Archived-At: List-Archive: List-Post: --X1bOJ3K7DJ5YkBrT Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit On Mon, Nov 04, 2002 at 02:53:29PM +0600, Alexey Morozov wrote: > Кто б спорил. Но, я так понимаю, коль скоро дистрибутив создается в расчете на некоторую > целевую аудиторию, имеет смысл прислушиваться к чаяниям этой целевой аудитории, как > минимум не меньше, чем к собственным идеологическим установкам :-). > В общем, я за AnyDBM в отдельном модуле и отдельных *DB* провайдеров. Дело, конечно, не в идеологии. Нужно принимать не условно верные, а безусловно верные решения. Я достаточно ясно выражаюсь? > > use 5.006_001; > > our $VERSION = '1.00'; > > -our @ISA = qw(NDBM_File DB_File GDBM_File SDBM_File ODBM_File) unless @ISA; > > +our @ISA = qw(DB_File) unless @ISA; > > > > my $mod; > > for $mod (@ISA) { > Гхм... Ну, эти правки должны, как минимум, включать в себе правку соответствующей > документации :-). А зачем? :-) Модули (и пользователи), которые просто будут использовать AnyDBM_File без всяких дальнейших уточнений, никак не пострадают (наоборот, они -- бонус! -- начинают использовать лучший из доступных модулей-backend'ов в дистрибутиве). Те же из них, которые явно пропихивают @AnyDBM_File::ISA через BEGIN{}, 1) знают (или не знают) что делают; простим им... 2) первым в таком списке чаще всего идет DB_File (как это и изображено в AnyDBM_File(3)). Пострадают только те, кто раньше использвовал AnyDBM_File->NDBM_File, а теперь будут использовать AnyDBM_File->DB_File. Но, с учетом глобального перехода на perl 5.8, я думаю, что это не главное и не единственное, от чего они могут пострадать. Здесь "под шумок" есть возможность принять безусловно верное решение. :) > Но, вообще-то, я не очень понимаю, что исправляет данный патч, > кроме усечения "функциональности по умолчанию" и возможности натравливать на все на это > perl.req без получения нерезолвящихся (ODBM_File) зависимостей. По-моему, "овчинка > выделки..." Объясняю популярно: использование AnyDBM_File фактически означает использование первого попавшегося (по списку) *DB*_File модуля в хост-системе. Это порождает поблему несовместимости: установка другого *DB*_File модуля, который в списке находится раньше, означает, что автоматически отваливаются все ранее созданные с помощью AnyDBM_File базы. Разработчики софта не имеют возможности предотвратить такой ситуации. Однако дистрибутив имеет возможность предотвратить такую ситуацию. Для этого модуль AnyDBM_File и ещё один модуль, который идёт у него первым в списке @ISA, должны находиться в одном пакете. Если это так, то необходимость в продолжении списка отпадает. -- Exit Music (for a Film) / OK Computer / Radiohead --X1bOJ3K7DJ5YkBrT Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.7 (GNU/Linux) iD8DBQE9xiq1DhJH5ZpJBTARApkDAKCX+SczAUSkYgvs3qIx4g8jwc4NuACdFRvG 457+OLedAb7SMaX6ZXVCXfo= =a8r6 -----END PGP SIGNATURE----- --X1bOJ3K7DJ5YkBrT--