LINUX.ORG.RU

Желающие принять участие в написании альтернативы portage на C++ просьба отписаться

 , ,


9

17

В продолжение обсуждения: Гентушники, есть чё по мелочи?

Пока в толксах разглагольствуют о нужности или ненужности C/C++ и очередного paludis, я решил создать этот тред. Пусть он будет только трекером участников.

Все, кто пожелает поучаствовать в разработке альтернативы portage на C++ (сейчас, через пару дней, недель, или месяцев) просьба здесь отписаться и подписаться на отслеживание новых комментариев. Если есть представление — укажите, в каком направлении бы вы могли поучаствовать в проекте.

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

Т.к. фрактала могли многие заигнорить, да и мою тему наверняка десяток-второй людей не увидят, сообщайте потенциально заинтересованным гентушникам.

После определения участников можно будет создать репозиторий, назначить (по желанию) роли, и приступить к созданию документации по алгоритмам, обсуждению используемых либ, кодинг-стайлов, способа ведения документации, и, наконец, прототипа.

Пустой треп лучше перенести в вышеуказанный тред в толксах.

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

Я тут накалякал кривоизжопную читалку: Она обходит все категории, все пакеты, вызвает калбек на каждыей ебилд, а калбек читает ебил(копирует в память(не самый быстрый способ)).

$ time ./test
93918 FILES

real    0m0.290s
user    0m0.022s
sys     0m0.265s
Т.к. я убил свой 4770к и сижу на горящем танке с 2-мя гигами 533-й говнооперативы, то время говно - реально же с норм памятью это будет меньше десятой секунды.

Эта же читалка, но со сброшенным кешем:

$ time ./test
93918 FILES

real    0m22.459s
user    0m0.028s
sys     0m1.632s

Т.е. реально от ваших скулговнолайтов и прочего толку не будет.

Профит будет только от пацанского бинарного хранилища, а для этого надо выпилить ебилды вообще нахрен. Тогда даже не из кеша это будет читаться меньше секунды на моём говнодиске.

Далее, я начал пилить парсер говносинтаксиса баша. Посмотрел эту либбаш - это говнище из ада(написанно как говно - работает как говно), которое тормазить будет так же, как сам баш.

Для начала хотябы выдерание *DEPEND, но я сегодня всю ночь сидел, пока разбирался как там это говно мериет версии + всякая гниль, аля с датами, аля *-999999999999999.ebuild и прочие говно.

Меня одалевает эта гниль, которая тварится в этих юзфлагах. Допустим, есть юзфлаг - он итак подразаумевает одноименную тулзу(в 95% случаев) - нахрен его писать в каждом говноебилде? Если нужны специальные биндинги к говноязыкам - дак приделайте к юзфлагу юзфлаги.

В половине говноебилдов пакетосики из system указанны как зависимости, либо cat/a(который уже зависит от cat/b) cat/b и прочее непотребство, а так же тотальное неосиляторство инклюдов, когда 70% ебилдов - копипаста друг с друга.

Это всё вызывает у меня столько попаболи, что мне хочется снести генту нахрен.

И да, ты куда дел свои попытки запилить портеж? Напиши своё мыло, авось я захочу что-то спросить - мне лень писать на лоре, на котором меня банят слитые мною 5-тизвездачные питушки.

anonymous
()
Ответ на: комментарий от templarrr

this. emerge просчитывает столько всего, что не факт что это вообще может работать значительно быстрее.

А нехрен писать на говноязыках и использовать говноалгоритмы. Там обычное вычисление по дереву, никакой магии. Браузер при рассчёте типичной страницы какого-нибудь вконтактиа считает не меньше.

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

И да, ты куда дел свои попытки запилить портеж?

потому что

но денег нет, а есть хочется, соответственно свободного времени тоже нет. и в ближайшие пару месяцяв его тоже не предвидится.

-----

Напиши своё мыло, авось я захочу что-то спросить - мне лень писать на лоре, на котором меня банят слитые мною 5-тизвездачные питушки.

zv@sylvv на гмыле

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

Это нето скопипастил - тут все файлы, которые есть в /usr/portage/*/.

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

Тут гитхаб нахрен не нужен - там 5строчек, но даже на гитхаб зафигачил.

Потестите у себя: https://github.com/superhackkiller1997/portage/blob/master/portage_test.c

И да, на обработку ашибок, 32битное говно и не линукс я клал, а так же я клал на то, что оно не работает и кому-то не нравится мой код.

На норм коменье он должен это выполнять за 0.1сек по идее.

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

А потом захреначь мне все файлы в скулайт и прочитай их - мне аж интересно стало - кто быстрее: ведро и 300к сисколов вопреки говённого дизайна или скулайт.

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

Запусти у себя - собирай -std=gnu11 -Ofast - скопипасть time - мне интересно как оно работает на норм каменье.

Как будет не лень допилю парсер депсов/юзфлагов и прочего. Поглядим, потом разбор самих зависимостей. Но т.к. у меня от каждой строчки бомбит - я пилю максимум минут 20-30 в день.

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

на что влиляет -std=gnu11? у меня гцц4.6 на «мощном» компе (на самом деле это ноут).

пс: у же более минуты запущено, рез-та ноль

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

у меня на «мощном» компе бубунту. дерево развернуто в /dev/shm/portage. а /usr/portage есть симлинком на дерево. может изза этого оно так долго работает или вошло в луп?

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

на тестовом компе

vv@crusader ~ $ grep -m 1 name /proc/cpuinfo
model name	: Intel(R) Core(TM)2 CPU         T5600  @ 1.83GHz
vv@crusader ~ $ free
             total       used       free     shared    buffers     cached
Mem:       2580836     742212    1838624          0     147504     453148
-/+ buffers/cache:     141560    2439276
Swap:       524284          0     524284
vv@crusader ~ $ 

дерево от

vv@crusader ~ $ cat /usr/portage/metadata/timestamp*
Tue Sep  3 00:36:56 UTC 2013
Tue, 03 Sep 2013 00:45:01 +0000
1378168501 Tue Sep  3 00:35:01 2013 UTC
vv@crusader ~ $ 

произведен запуск

vv@crusader ~/work/own/ruby/portage3/bin $ time ./03_fill_db.rb -c
Everything is OK. Database was created and filled at 
/tmp/portage-cache-20131030-182000-UTC.sqlite

real	19m3.851s
user	4m38.635s
sys	0m43.257s
vv@crusader ~/work/own/ruby/portage3/bin $ 

результат. открывать этим

ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB
Every 2.0s: ps -eo pid,cmd,etime | grep '\.\/1'        Wed Oct 30 21:04:43 2013

22341 ./1                               21:26

вырубил

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

Запусти у себя - собирай -std=gnu11 -Ofast - скопипасть time - мне интересно как оно работает на норм каменье.

Как будет не лень допилю парсер депсов/юзфлагов и прочего. Поглядим, потом разбор самих зависимостей. Но т.к. у меня от каждой строчки бомбит - я пилю максимум минут 20-30 в день.

Вот когда допишете, тогда и будем замерять вот это, на «норм каменье».

user    0m0.022s
user    0m0.028s

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

real    0m0.290s

Эта же читалка, но со сброшенным кешем:

real    0m22.459s

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

Влият на стандарт. Я же говорил, что за рабочесть на 32битном говне не отвечаю. Что вас постоянно тянет на 32битное говно? У тебя атом на ноутбуке? Уже лет 10 32битных ноутбуков не выпускают.

Проблема в linux_dirent - я запилил кастыль, сейчас должно работать - проверь.

anonymous
()
Ответ на: комментарий от anonymous
vv@vv-Latitude-E5520 /tmp $ time ./1

real	0m0.684s
user	0m0.024s
sys	0m0.640s
vv@vv-Latitude-E5520 /tmp $ grep -m 1 name /proc/cpuinfo 
model name	: Intel(R) Core(TM) i5-2540M CPU @ 2.60GHz
vv@vv-Latitude-E5520 /tmp $ 
ZuBB ★★★★★
()
Ответ на: комментарий от anonymous

Вот когда допишете, тогда и будем замерять вот это, на «норм каменье».

Что замерять, ты анскиллыш коли нихрена не шаришь - не кукарекай мне тут. Я решаю насущные проблемы и развенчиваю мифы.

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

Какого хрена ты меня учишь? От какой такой файловой системы она зависит - удиви меня.

Если ты нихрена в этой жизни не понимаешь - нахрен ты со мной споришь? Да и ещё рассуждаешь о том, что она делает. Распарсить ебилд не особо дольше, чем его прочитать, а захреначить бревно и хешмассив для 100пакетов с 900зависимостей вообще ничего не стоит, но тыж будешь мне кукарекать.

Сходи в детсад. Ах да, на питоне ты бы вместо user 0m0.022s увидел бы user 0m2.20s в лучшем случае.

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

Чёто это слишком медленно - запусти на ФС, пусть покеширует и потом ещё запусти.

model name      : Intel(R) Core(TM)2 CPU          6320  @ 1.86GHz

Какбэ у меня в полтора раза быстрее.

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

Просто в говно тормазит, просто в тотальное говно.

А теперь попробуй попробуй из это БД прочитать все ебилды, и найти в них DEPEND=«*».

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

А теперь попробуй попробуй из это БД прочитать все ебилды

vv@vv-Latitude-E5520 ~ $ time sqlite3 /tmp/portage-cache-20131030-182000-UTC.sqlite 'select * from ebuilds' > /dev/null

real	0m0.116s
user	0m0.108s
sys	0m0.004s
vv@vv-Latitude-E5520 ~ $ 

найти в них DEPEND=«*».

DEPEND пока в планах

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

О, йе. Эталонный БУГУРТ ацца.

Наконец-то мы увидели царя в деле и посмотрели на его код. Ржал даже шредер.

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

перенес на фс и оно ушло само в себя

vv@vv-Latitude-E5520 /tmp $ time ./1

real	2m43.807s
user	0m0.268s
sys	0m6.652s
vv@vv-Latitude-E5520 /tmp $ ^C
vv@vv-Latitude-E5520 /tmp $ 
vv@vv-Latitude-E5520 /tmp $ time ./1

real	0m0.805s
user	0m0.040s
sys	0m0.744s
vv@vv-Latitude-E5520 /tmp $ 
ZuBB ★★★★★
()
Ответ на: комментарий от ZuBB

Оно клало что там у тебя фс не фс. Как я поглядел толку от твоего скулайта 0 - говно говном.

Что такое 1? Ты не осилил давать нормальные имена, если не оставляешь a.out? strace.

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

Т.е. ты прокукарекался и решил съехать на бугорт - логично, для питушка.

Наконец-то мы увидели царя в деле и посмотрели на его код. Ржал даже шредер.

Что ты увидел, питушок? Свой красный, пробитый попец? С чего ты ржал, я даже не спрашиваю, ибо ты сольёшься в говно.

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

АХ да, ты не ответил. Зачем вы юзаете 32битное говно? Во что вы верите? Просто так?

Яж даже представить немогу нахрена, а потом мне кукарекают, что я должен думать о 32битных лалках. Нахрен мне о них думать, если они форфан юзают говно, а терпи его ущербанство.

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

Теперь понимаете, какую чушь вы порите?

anonymous
()

Ох уж эти гентушники.

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

Какую глупость? Ты надеюсь мне хоть скажешь в чем эта глупость заключается или ты очередная кукарекающая питушара, которая кукарекает даже не понимая почему?

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

Ответ говорит только о вашей некомпетентности в этом вопросе. Вы уже превратили тему в мусор, продолжать участвовать в этом цирке, более не намерен.

Автору темы, если вы это читаете, приношу свои глубочайшие извинения за подкормку этой креведки.

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

В каком вопросе, питушок? Как жешь вы меня одалели, вы тотальные анскильности, нихрена не знаете и не можете, но постоянно везде кукарекаете, а когда тыкнешь в говно - юлите как животные. Это такая гнустная примитивщина, что просто противно.

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

Сгинь, нечесть.

anonymous
()

Удивительно, но суперхакир-97 умудрился сделать (кривой и почти нерабочий) аналог вот такого:

$ find . -name "*\.ebuild" | xargs cat > /dev/null

Бурные, долго не смолкающие аплодисменты, переходящие в овацию.

Кстати, да, это все довольно небыстро работает, если не прокешировано. Если все ебилды собрать в кучу, сбросить кеш и прочитать этот текстовый файл будет гораздо быстрее.

$ find . -name "*\.ebuild" | xargs cat >> portages.all
$ ls -l portages.all
-rw-r--r-- 1 anon anon 54938796 Окт 31 15:10 portages.all
$ sudo echo 3 | sudo tee /proc/sys/vm/drop_caches
$ time cat portages.all > /dev/null

real	0m0.875s
user	0m0.000s
sys	0m0.144s
$ time cat portages.all > /dev/null

real	0m0.192s
user	0m0.000s
sys	0m0.136s
anonymous
()
Ответ на: комментарий от anonymous

Даже вру:

$ time ./build/portage > /dev/null 

real    0m0.459s
user    0m0.030s
sys     0m0.415s

VS

# time find . -name "*\.ebuild" | xargs cat > /dev/null 

real    0m0.709s
user    0m0.301s
sys     0m0.667s

В 10раз, просто в 10раз.

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

И хватило всего 5 страниц!

Кстати читал вскользь но по моему никто так и не пробовал не то что анализировать а что же именно „тормозит“ в portage… а даже тупо сравнить в одинаковых условиях portage, pkgcore и paludis.

ЛОР уже не торт.

+100500 к неторту!

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

#define ONEUSE_BUF_SIZE 100500

Ты так и не определился с размером? То у тебя 100500, то миллион, томильярд. А вопрос-то висит открытым аж с середины апреля.

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

Ты так и не определился с размером? То у тебя 100500, то миллион, томильярд. А вопрос-то висит открытым аж с середины апреля.

Ну мнеж не надо, чтобы это у 32битных питушков отвалилось. 100500 мне хватит - я заюзал 100500.

Яж не кукарекающая гниль типа тебя - мне не надо нисчем определятся. Я юзаю то и так, как мне надо в данный момент.

anonymous
()
Ответ на: комментарий от snaf

Пытаюсь в свободное время составить зайчатки ТЗ и разбить на модули, чтобы любой мог взяться за отдельный модуль при желании. Сообщу об этом сюда.

Что-то конкретных идей почти ни от кого не поступало, поэтому позволю себе взять на себя какие-никакие обязанности организатора.

Кстати, в каком формате лучше выкладывать в репозиторий документацию и ТЗ с графиками, схемами?

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

давай wiki где-нибудь замутим - сразу и коллективное редактирование, и обсуждение, и готовая документация к проекту.

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