From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Wed, 23 May 2001 03:09:14 +0400 From: Mikhail Zabaluev To: sisyphus@altlinux.ru Message-ID: <20010523030914.F1915@localhost.localdomain> Mail-Followup-To: Mikhail Zabaluev , sisyphus@altlinux.ru References: <3B05163A.3040800@novosoft.ru> <20010522134047.I12506@ldv.office.alt-linux.org> <3B0A6705.2060705@novosoft.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Mutt/1.2.5i In-Reply-To: <3B0A6705.2060705@novosoft.ru>; from morozov@novosoft.ru on Tue, May 22, 2001 at 08:17:57PM +0700 Subject: [sisyphus] Re: =?koi8-r?B?W3Npc3lwaHVzXSDkwdfBytTFINPQz9LJ1NguIO8gUGVybD8=?= Sender: sisyphus-admin@altlinux.ru Errors-To: sisyphus-admin@altlinux.ru X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.0 Precedence: bulk Reply-To: sisyphus@altlinux.ru List-Help: List-Post: List-Subscribe: , List-Id: List-Unsubscribe: , List-Archive: Archived-At: List-Archive: Hello Alexey, On Tue, May 22, 2001 at 08:17:57PM +0700, Alexey Morozov wrote: > > >>высчитывания зависимостей perl-пакетов (не perl(Some::Module), а > >>perl(Some/Module.pm))? И чем последняя лучше общепринятой? И почему бы > >> > >Это Вам расскажет maintainer perl'а. > > > Угу. А что, и расскажу. Когда мы с Дмитрием обсуждали авто-зависимости для Perl, никаких общепринятых схем, кроме perl-Some-Module в имени пакета, на горизонте не было. Выбранная схема позволяет включать в зависимости не только .pm-модули, но и .pl, .ph и -- теоретически -- любые другие. Почитайте внимательно TFM: оператор require допускает явную файловую форму, а также разделитель "'" вместо "::". Вы уже ненавидите Perl так, как ненавижу его я? :) Во всем этом разнобое самыми надежными выглядят имена файлов. > >>предметно на повод написания/переписывания /usr/lib/rpm/perl.{req,prov}? > >> > >К maintainer'ам perl'а и rpm'а. > > > Ok. Неплохо б только пообсуждать, что и как делать. Одна голова хорошо... > > >Опять Вы голословны, однако. > > > Хорошо. > > Пример кода: > -------------------------------------------------- > package Test::Module; > use Config; > > if ($Config{'usethreads'}) { > require Thread; > # начинаем колбаситься в threaded model > } else { > # куча-куча форков и колбасенье через shmem/pipe > } > 1; > ------------------------------------------------- > > рекомендую Вам поставить для хохмы два perl'а, так, чтобы Thread.pm > оказался в путях и попробовать собрать такой вот пакет. Я Вас уверяю, > Thread.pm _попадет_ в зависимости нашего модуля, хотя, гхм, ну, Вы > видите... Собственно, я наткнулся на что-то похожее, хотя и не столь > явно выраженное, когда собирал DBI, > > Нет, я еще раз повторю, я не знаю, как правильно. Возможно, совсем > правильно, но ломово - руками. Истинно так. AutoReq и AutoProv - подпорки, которые не должны полностью заменять высшую нервную деятельность. Они должны работать там, где эта деятельность не требуется. В тех же пакетах, где встречаются такие require "из-за угла", AutoReq: perl (на финальной стадии работы над пакетом) не используется. В текущей версии скриптов perl.{req,prov} анализируются наиболее распространенные формы операторов включения, да еще делается eval в "сейфе" как попытка определения номера версии. Есть ухищрения, которые можно применить -- например, в Perl 5.6.x можно прогнать байт-код через декомпилятор, и если тот не загнется, получить идеально выровненный текст, где уровень отступа означает вложенность. Но пока не видно практической нужды увеличивать точность работы за счет понижения производительности. Идеи, разумеется, приветствуются. Особенно - в виде кода, патчей и т.п. -- Stay tuned, MhZ JID: mookid@jabber.org ___________ The most costly of all follies is to believe passionately in the palpably not true. It is the chief occupation of mankind. -- H.L. Mencken