LINUX.ORG.RU
ФорумTalks

Можна ли сделать портаж быстрее?

 , , ,


0

2
crusader portage # pwd
/usr/lib/portage/pym/portage
crusader portage # eix -c ^portage$
[I] sys-apps/portage (2.2.0_alpha118@07/27/2012): Portage is the package management and distribution system for Gentoo
crusader portage # grep 'been called' versions.py
	print '`vercmp` has been called'
crusader portage # emerge -1 sys-apps/portage | grep -c 'been called'
689
crusader portage # 

Для справки: строчка была добавлена в функцию которая отвечает за сортировку версий пакетов..

★★★★★

Последнее исправление: ZuBB (всего исправлений: 1)

Ответ на: комментарий от thelonelyisland

всегда есть что оптимизировать. но что же можна сравнивать 689 раз (еще раз: почти семь сотен раз!!!) при установке ОДНОГО пакета

ZuBB ★★★★★
() автор топика
Последнее исправление: ZuBB (всего исправлений: 1)

libbash пилили для ускорения портажа, но после окончания GSoC забросили. Студенты же. Энжой юр студенческая поделка.

x3al ★★★★★
()
Ответ на: комментарий от x3al

знаем, плавали. на момент окончания GSOC`а оно умело парсить <9k ебилдов. прошел один год. Скоро будет еще один EAPI (#5). как думаеш что оно может сейчас?

ZuBB ★★★★★
() автор топика
Последнее исправление: ZuBB (всего исправлений: 1)

такие вопросы надо задавать на #gentoo-portage на irc.freenode.net

У portage team насколько я знаю сейчас полный завал и недобор людей(как и среди Gentoo разработчиков вообще). Как говорится - знаешь, где исправить - исправляй. Патчам будем только рады ;-)

Pinkbyte ★★★★★
()
Ответ на: комментарий от qnikst

Libbash will enable programs to use Abstract Syntax Trees(AST) to parse and interpret shell scripts directly instead of using regular expressions. Most of bash 3.2 syntax will be supported. This will be a great benefit to programs both outside and inside Gentoo, including Portage/Paludis and repoman.

x3al ★★★★★
()
Ответ на: комментарий от Pinkbyte

такие вопросы ..

ну не умею я качественно вбросить :(

У portage team насколько я знаю сейчас полный завал и недобор людей(как и среди Gentoo разработчиков вообще). Как говорится - знаешь, где исправить - исправляй. Патчам будем только рады ;-)

из за того что оно отрабатыват ~0.7к раз оверхед по времени (я думаю) совсем небольшой. Другое дело что если таких ошибок много то это наталкивает на уже немного другие мысли..

обнаружил случайно, когда портировал ту злосчастную функцию на руби для своей поделки.

[имо]искать и править сию багу нету смысла. У портажа есть более тормозные «участки»[/имо]

ZuBB ★★★★★
() автор топика
Ответ на: комментарий от x3al

иногда мне кажется что ебилд должен быть разделен на две части. Одна простая (только definitions (descr, eapi, deps, etc)) и другая - вся остальная лабуда (установка, конфигурование итд)

ZuBB ★★★★★
() автор топика
Последнее исправление: ZuBB (всего исправлений: 1)
Ответ на: комментарий от ZuBB

У портажа есть более тормозные «участки»

Угу, например данные в кучах текстовых файлов, но это же дизайн, который имеет и плюсы.

GAMer ★★★★★
()
Ответ на: комментарий от GAMer

Для борьбы с этим есть кэш и метаданные. Там саму логику ИМХО надо оптимизировать, но я глубоко в код портажа не лез - увереннее сказать не могу

Pinkbyte ★★★★★
()
Ответ на: комментарий от ZuBB

иногда мне кажется что ебилд должен быть разделен на две части.

А мне иногда кажется, что ебилд стоит распиливать на много сущностный частей, одна сущность - один файл(или табличка в базе). И стремиться, чтобы он был не кодом(пусть и на шелле), а данными.
Но когда мне это кажется, я обычно представляю как оно разрастётся и предпочитаю промолчать -_-

GAMer ★★★★★
()
Ответ на: комментарий от GAMer

А мне иногда кажется, что ебилд стоит распиливать на много сущностный частей, одна сущность - один файл(или табличка в базе). И стремиться, чтобы он был не кодом(пусть и на шелле), а данными.

(чувствую, зря я это показываю): как то так?

ZuBB ★★★★★
() автор топика
Последнее исправление: ZuBB (всего исправлений: 2)
Ответ на: комментарий от ZuBB

ты не совсем прав:

% cat /usr/portage/metadata/cache/dev-lang/ghc-7.4.1-r1
!kernel_Darwin? ( >=sys-devel/gcc-2.95.3 ) kernel_linux? ( >=sys-devel/binutils-2.17 ) kernel_SunOS? ( >=sys-devel/binutils-2.17 ) >=dev-lang/perl-5.6.1 >=dev-libs/gmp-5 virtual/libffi !<dev-haskell/haddock-2.4.2 sys-libs/ncurses[unicode] ghcbootstrap? ( >=dev-haskell/alex-2.3 >=dev-haskell/happy-1.18 doc? ( app-text/docbook-xml-dtd:4.2 app-text/docbook-xml-dtd:4.5 app-text/docbook-xsl-stylesheets >=dev-libs/libxslt-1.1.2 ) ) || ( >=sys-devel/automake-1.11.1:1.11 >=sys-devel/automake-1.12:1.12 ) >=sys-devel/autoconf-2.68 sys-devel/libtool
!kernel_Darwin? ( >=sys-devel/gcc-2.95.3 ) kernel_linux? ( >=sys-devel/binutils-2.17 ) kernel_SunOS? ( >=sys-devel/binutils-2.17 ) >=dev-lang/perl-5.6.1 >=dev-libs/gmp-5 virtual/libffi !<dev-haskell/haddock-2.4.2 sys-libs/ncurses[unicode]
0
!binary? ( http://www.haskell.org/ghc/dist/7.4.1/ghc-7.4.1-src.tar.bz2 ) !ghcbootstrap? ( alpha? ( http://code.haskell.org/~slyfox/ghc-alpha/ghc-bin-7.4.1-alpha.tbz2 ) amd64? ( http://code.haskell.org/~slyfox/ghc-amd64/ghc-bin-7.4.1-amd64.tbz2 ) ppc? ( http://code.haskell.org/~slyfox/ghc-ppc/ghc-bin-7.4.1-ppc.tbz2 ) ppc64? ( http://code.haskell.org/~slyfox/ghc-ppc64/ghc-bin-7.4.1-ppc64.tbz2 ) sparc? ( http://code.haskell.org/~slyfox/ghc-sparc/ghc-bin-7.4.1-sparc.tbz2 ) x86? ( http://code.haskell.org/~slyfox/ghc-x86/ghc-bin-7.4.1-x86.tbz2 ) x86-macos? ( http://www.haskell.org/ghc/dist/7.4.1/ghc-7.4.1-i386-apple-darwin.tar.bz2 ) x64-macos? ( http://www.haskell.org/ghc/dist/7.4.1/ghc-7.4.1-x86_64-apple-darwin.tar.bz2 ) x86-solaris? ( http://www.haskell.org/ghc/dist/7.0.3/maeder/ghc-7.0.3-i386-unknown-solaris2.tar.bz2 ) )

http://www.haskell.org/ghc/
BSD
The Glasgow Haskell Compiler
~alpha ~amd64 -ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~amd64-linux ~x86-linux ~x64-macos ~x86-macos ~sparc-solaris ~x86-solaris
autotools base bash-completion-r1 eutils flag-o-matic ghc-package libtool multilib multiprocessing pax-utils toolchain-funcs user versionator
doc ghcbootstrap llvm binary

!ghcbootstrap? ( =app-admin/haskell-updater-1.2* ) llvm? ( sys-devel/llvm )

4

compile configure install postinst preinst prepare prerm setup unpack






qnikst ★★★★★
()
Ответ на: комментарий от ZuBB

как то так?

Агааа =) Я же помню, ты что-то пилил, как там дела? Интернационализации в базе не видно что-то.
Декларативно все ебилды не написать, внешние скрипты будут нужны, но стремление к этому должно обеспечить бОльшую стройность и порядок.

GAMer ★★★★★
()

Надо было сразу писать на CL ! И с конфигами и со скоростью не было бы проблем. Конфиги конечно в sexp'ах. Я уже молчу, что CL во много раз читабельнее этого страшного баша.

vladkuzm
()
Ответ на: комментарий от qnikst

знаю об этом. толком еще туда не смотрел..

ZuBB ★★★★★
() автор топика
Ответ на: комментарий от Pinkbyte

здесь да. вот когда будет «готово», тогда и позову

ZuBB ★★★★★
() автор топика
Последнее исправление: ZuBB (всего исправлений: 1)
Ответ на: комментарий от GAMer

Агааа =) Я же помню, ты что-то пилил, как там дела?

пилю дальше :)

Интернационализации в базе не видно что-то.

а где она там нужна? и если таки нужна, то точно не сейчас

ZuBB ★★★★★
() автор топика
Ответ на: комментарий от ZuBB

чем paludis лучше portage`? окромя С++

Наверное тем, что C всяко производит те же операции намного быстрее чем python?

init_6 ★★★★★
()
Ответ на: комментарий от init_6

нафига нужна скорость при наличии косяков со сложными ебилдами (да примеры сразу не приведу), странной работой с USE описанными в еклассах, но не прописанными в IUSE и отсутствием динамических сетов?

qnikst ★★★★★
()
Ответ на: комментарий от stevejobs

без сохранения синтаксиса? отличная идея, я думаю она очень понравится разработчикам и еще больше пользователям :-D

ну ты понел?

Pinkbyte ★★★★★
()

Переписать на С

J ★★★★
()
Ответ на: комментарий от Pinkbyte

нет, не понел. Как разработчик, я принципиально не использую окаменелости типа Баша . Выучить нормальный язык на уровне написания скриптов - проще некуда. Баш юзать только в случаях, когда нет выбора. Случаев когда нет выбора не так много, и будет всё меньше и меньше, если приложить к экстерминатусу усилия. Пользуясь переходом на systemd, можно повыпиливать его из скриптов инициализации, например. И начинать надо с себя. То есть - никогда не использовать баш.

stevejobs ★★★★☆
()
Ответ на: комментарий от tazhate

/me сваливает на 2 или 3 недели в дефолт-сити
потому тут вряд ли появлюсь
да и сейчас я собираюсь на т.н. PIN-MIX

megabaks ★★★★
()
Ответ на: комментарий от ZuBB

а где она там нужна?

Ну как минимум в ebuild_descriptions, а по хорошему, почти для каждой таблички надо бы сделать ещё одну *_i18n с полями id, lang и description, но это конечно не приоритетно =)

GAMer ★★★★★
()
Ответ на: комментарий от GAMer

а, понял об чем ты

Но у нас всего

vv@crusader /dev/shm/portage $ ack -w 'lang=' */*/metadata.xml | grep -vc en
91

локализированных строк в package's metadata.xml. а пакетов - 15673. тоесть нужность этой фичи ~0.006 (пока что)

ZuBB ★★★★★
() автор топика
Последнее исправление: ZuBB (всего исправлений: 1)
Ответ на: комментарий от GAMer

В спеках всё равно есть скрипты

Совсем без них, похоже, обойтись не получится, однако по большей частью спек декларативен

а вот юз-флагов нету.

не правда, есть, только называются по-другому

annulen ★★★★★
()
Ответ на: комментарий от stevejobs

можно повыпиливать его из скриптов инициализации

А чем он плох там?

То есть - никогда не использовать баш.

Денис что, уже написал свой Lolgenos?

Deleted
()
Ответ на: комментарий от qnikst

скорость имеет смысл при равном функционале, сейчас же палудис однозначно проигрывает портажу.

Судя по вопросу ТС волнует скорость но не функционал.

init_6 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.