* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
@ 2013-04-09 6:25 ` Dmitry V. Levin
2013-04-09 6:42 ` Dmitry V. Levin
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry V. Levin @ 2013-04-09 6:25 UTC (permalink / raw)
To: Eugeny A. Rostovtsev; +Cc: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 477 bytes --]
On Sat, May 19, 2012 at 04:53:05PM +0400, Eugeny A. Rostovtsev wrote:
> Update of /people/real/packages/python3-module-pygobject.git
[...]
> +for i in $(find ./ -name '*.py'); do
> + sed -i 's|%_bindir/env python|%_bindir/env python3|' $i ||:
> +done
1. Игнорировать код завершения "sed -i" неправильно.
2. find -exec ... + будет работать на порядки быстрее.
find -type f -name '*.py' -exec sed -i 's|%_bindir/env python|%_bindir/python3|' -- '{}' +
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 6:25 ` [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus Dmitry V. Levin
@ 2013-04-09 6:42 ` Dmitry V. Levin
2013-04-09 6:46 ` REAL
2013-04-09 9:14 ` Paul Wolneykien
0 siblings, 2 replies; 11+ messages in thread
From: Dmitry V. Levin @ 2013-04-09 6:42 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 3514 bytes --]
On Tue, Apr 09, 2013 at 10:25:09AM +0400, Dmitry V. Levin wrote:
> On Sat, May 19, 2012 at 04:53:05PM +0400, Eugeny A. Rostovtsev wrote:
> > Update of /people/real/packages/python3-module-pygobject.git
> [...]
> > +for i in $(find ./ -name '*.py'); do
> > + sed -i 's|%_bindir/env python|%_bindir/env python3|' $i ||:
> > +done
>
> 1. Игнорировать код завершения "sed -i" неправильно.
> 2. find -exec ... + будет работать на порядки быстрее.
>
> find -type f -name '*.py' -exec sed -i 's|%_bindir/env python|%_bindir/python3|' -- '{}' +
Я посмотрел логи последней тестовой пересборки, там более 60
пакетов python*-module-*, в которых используется
for var in $(find
и что-то мне подсказывает (не глядя в спеки), что все это будет
гораздо лучше работать в форме
find -exec ... +
P.S. Список логов с for..find'ами:
python-module-BeautifulSoup4-4.1.3-alt1.1
python-module-CleverCSS-0.1-alt2.1
python-module-DateTime-1:3.0.3-alt1.1
python-module-PasteScript-1:1.7.5-alt1.hg20120208.1
python-module-PyQt4-4.9.6-alt3
python-module-RDFAlchemy-1:0.2.9-alt1.1
python-module-Scientific-2.9.2-alt1
python-module-autobahn-0.5.14-alt1.git20130210.1
python-module-babel-0.9.6-alt1
python-module-cbc.solve-0.1.0-alt1.bzr20120913
python-module-cgen-2012.1-alt1.1
python-module-chameleon.core-2.11-alt1.git20130114.1
python-module-cheetah-2.4.4-alt1.1
python-module-cherrypy-3.2.2-alt1.hg20120408.1
python-module-codepy-2012.1.2-alt1.git20120607.1
python-module-coopr-3.3-alt2.svn20130213
python-module-cvxpy-0.1-alt1.svn20130211.1
python-module-cx-freeze-4.2.3-alt3.svn20120223.1
python-module-django-1.5.1-alt1
python-module-docutils-0.11-alt1.svn20130117.1
python-module-fanstatic-0.16-alt1.1
python-module-fastimport-0.9.2-alt1.1
python-module-flup-1.0.3-alt1.hg20120223.1
python-module-genshi-0.6-alt2.1
python-module-gevent-1.0-alt3.git20130221.1
python-module-gevent-socketio-0.3.6-alt1.git20130201.1
python-module-gevent-websocket-0.3.6-alt1.hg20120723.1
python-module-html5lib-0.95-alt3.1
python-module-httpencode-0.1.1-alt2.svn20090926.1
python-module-logilab-common-0.59.0-alt1.hg20130215
python-module-logilab-constraint-0.5.0-alt1.hg20120329.1
python-module-logilab-database-1.9.0-alt1.hg20130321
python-module-manuel-1.7.2-alt1
python-module-matplotlib-1.3.0-alt4.git20121010
python-module-networkx-1.8-alt2.git20130303
python-module-numpy-2.0.0-alt7.git20121009.1
python-module-paste-1.7.5.1-alt1.hg20130207
python-module-ply-3.4-alt1.1
python-module-psycopg2-2.4.5-alt1.git20120328.1
python-module-pycairo-1.10.1-alt2.git20120522
python-module-pygraphviz-1.2-alt1.svn20120328.1
python-module-pymta-0.5.2-alt2.1
python-module-python-subunit-0.0.10-alt1
python-module-repoze.sphinx.autointerface-0.7.1-alt1
python-module-repoze.who-2.1-alt1.b1
python-module-scipy-0.12.0-alt2.git20121009.1
python-module-setupdocs-1.0.6-alt2.svn20101016.1
python-module-sphinx-1:1.1.3-alt4.1
python-module-tablib-0.9.11.20120702git752443f-alt1
python-module-texttemplate-0.2.0-alt2.1
python-module-zconfig-2.9.2-alt1.1
python-module-zdaemon-2.0.4-alt2.1
python-module-zope.component-4.1.0-alt1
python-module-zope.configuration-3.8.0-alt2.1
python-module-zope.contenttype-3.5.5-alt2.1
python-module-zope.i18n-3.8.0-alt1.1
python-module-zope.tal-3.6.1-alt1.1
python-module-zope.tales-3.5.1-alt4.1
python3-module-gunicorn-0.14.4-alt2.git20120604.1
python3-module-pycairo-1.10.1-alt3.git20120819.1
python3-module-pygobject-2.28.6-alt4.1
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 6:42 ` Dmitry V. Levin
@ 2013-04-09 6:46 ` REAL
2013-04-09 6:53 ` Dmitry V. Levin
2013-04-09 9:14 ` Paul Wolneykien
1 sibling, 1 reply; 11+ messages in thread
From: REAL @ 2013-04-09 6:46 UTC (permalink / raw)
To: ALT Linux Team development discussions
09.04.2013 13:42, Dmitry V. Levin пишет:
> Я посмотрел логи последней тестовой пересборки, там более 60
> пакетов python*-module-*, в которых используется
> for var in $(find
> и что-то мне подсказывает (не глядя в спеки), что все это будет
> гораздо лучше работать в форме
> find -exec ... +
>
> P.S. Список логов с for..find'ами:
Не думаю, что только ради find нужно устраивать пересборку всего этого
безобразия. По крайней мере, есть и посрочнее дела.
--
REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 6:46 ` REAL
@ 2013-04-09 6:53 ` Dmitry V. Levin
2013-04-09 7:57 ` Aleksey Avdeev
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry V. Levin @ 2013-04-09 6:53 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 766 bytes --]
On Tue, Apr 09, 2013 at 01:46:53PM +0700, REAL wrote:
> 09.04.2013 13:42, Dmitry V. Levin пишет:
> >Я посмотрел логи последней тестовой
> >пересборки, там более 60
> >пакетов python*-module-*, в которых используется
> > for var in $(find
> >и что-то мне подсказывает (не глядя в
> >спеки), что все это будет
> >гораздо лучше работать в форме
> > find -exec ... +
> >
> >P.S. Список логов с for..find'ами:
>
> Не думаю, что только ради find нужно
> устраивать пересборку всего этого
> безобразия. По крайней мере, есть и
> посрочнее дела.
Заметьте, вы сами назвали все это безобразием.
Если эти ничем не обусловленные for..find не исправить,
то они так и дальше будут кочевать из пакета в пакет,
пробуждая недобрые чувства.
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 6:53 ` Dmitry V. Levin
@ 2013-04-09 7:57 ` Aleksey Avdeev
2013-04-09 8:15 ` REAL
0 siblings, 1 reply; 11+ messages in thread
From: Aleksey Avdeev @ 2013-04-09 7:57 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 907 bytes --]
09.04.2013 10:53, Dmitry V. Levin пишет:
> On Tue, Apr 09, 2013 at 01:46:53PM +0700, REAL wrote:
>> 09.04.2013 13:42, Dmitry V. Levin пишет:
>>> Я посмотрел логи последней тестовой
>>> пересборки, там более 60
>>> пакетов python*-module-*, в которых используется
>>> for var in $(find
>>> и что-то мне подсказывает (не глядя в
>>> спеки), что все это будет
>>> гораздо лучше работать в форме
>>> find -exec ... +
>>>
>>> P.S. Список логов с for..find'ами:
>>
>> Не думаю, что только ради find нужно
>> устраивать пересборку всего этого
>> безобразия. По крайней мере, есть и
>> посрочнее дела.
>
> Заметьте, вы сами назвали все это безобразием.
> Если эти ничем не обусловленные for..find не исправить,
> то они так и дальше будут кочевать из пакета в пакет,
> пробуждая недобрые чувства.
OK. По мере обращения к пакетам буду править.
--
С уважением. Алексей.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 7:57 ` Aleksey Avdeev
@ 2013-04-09 8:15 ` REAL
0 siblings, 0 replies; 11+ messages in thread
From: REAL @ 2013-04-09 8:15 UTC (permalink / raw)
To: ALT Linux Team development discussions
09.04.2013 14:57, Aleksey Avdeev пишет:
>> Заметьте, вы сами назвали все это безобразием.
>> Если эти ничем не обусловленные for..find не исправить,
>> то они так и дальше будут кочевать из пакета в пакет,
>> пробуждая недобрые чувства.
>
> OK. По мере обращения к пакетам буду править.
Спасибо.
--
REAL aka Евгений Ростовцев, программист ЦНИТ КемГУ
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 6:42 ` Dmitry V. Levin
2013-04-09 6:46 ` REAL
@ 2013-04-09 9:14 ` Paul Wolneykien
2013-04-09 9:51 ` Dmitry V. Levin
1 sibling, 1 reply; 11+ messages in thread
From: Paul Wolneykien @ 2013-04-09 9:14 UTC (permalink / raw)
To: devel
09.04.2013 10:42, Dmitry V. Levin пишет:
> Я посмотрел логи последней тестовой пересборки, там более 60
> пакетов python*-module-*, в которых используется
> for var in $(find
> и что-то мне подсказывает (не глядя в спеки), что все это будет
> гораздо лучше работать в форме
> find -exec ... +
А почему так? "for" же встроенная конструкция, а find -exec наверняка
на каждый exec форкает отдельную оболочку.
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 9:14 ` Paul Wolneykien
@ 2013-04-09 9:51 ` Dmitry V. Levin
2013-04-09 10:19 ` Aleksey Avdeev
0 siblings, 1 reply; 11+ messages in thread
From: Dmitry V. Levin @ 2013-04-09 9:51 UTC (permalink / raw)
To: ALT Devel discussion list
[-- Attachment #1: Type: text/plain, Size: 1238 bytes --]
On Tue, Apr 09, 2013 at 01:14:21PM +0400, Paul Wolneykien wrote:
> 09.04.2013 10:42, Dmitry V. Levin пишет:
> >Я посмотрел логи последней тестовой
> >пересборки, там более 60
> >пакетов python*-module-*, в которых используется
> > for var in $(find
> >и что-то мне подсказывает (не глядя в
> >спеки), что все это будет
> >гораздо лучше работать в форме
> > find -exec ... +
>
> А почему так? "for" же встроенная
> конструкция, а find -exec наверняка на каждый
> exec форкает отдельную оболочку.
Если я расскажу, как именно оно происходит, вы же все равно не поверите.
И правильно сделаете, зачем верить на слово, когда можно проверить
собственноручно. Сравните
strace -feexecve -o '|grep -Fc execve' sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null'
и
strace -feexecve -o '|grep -Fc execve' sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null'
Можете еще и время сравнить:
time sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null'
против
time sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null'
Только сперва убедитесь, что я предварительно не нахимичил с
/usr/bin/{strace,time} ;)
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 9:51 ` Dmitry V. Levin
@ 2013-04-09 10:19 ` Aleksey Avdeev
2013-04-09 10:32 ` Aleksey Avdeev
0 siblings, 1 reply; 11+ messages in thread
From: Aleksey Avdeev @ 2013-04-09 10:19 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1352 bytes --]
09.04.2013 13:51, Dmitry V. Levin пишет:
> On Tue, Apr 09, 2013 at 01:14:21PM +0400, Paul Wolneykien wrote:
>> 09.04.2013 10:42, Dmitry V. Levin пишет:
>>> Я посмотрел логи последней тестовой
>>> пересборки, там более 60
>>> пакетов python*-module-*, в которых используется
>>> for var in $(find
>>> и что-то мне подсказывает (не глядя в
>>> спеки), что все это будет
>>> гораздо лучше работать в форме
>>> find -exec ... +
>>
>> А почему так? "for" же встроенная
>> конструкция, а find -exec наверняка на каждый
>> exec форкает отдельную оболочку.
>
> Если я расскажу, как именно оно происходит, вы же все равно не поверите.
> И правильно сделаете, зачем верить на слово, когда можно проверить
> собственноручно. Сравните
> strace -feexecve -o '|grep -Fc execve' sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null'
> и
> strace -feexecve -o '|grep -Fc execve' sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null'
>
> Можете еще и время сравнить:
> time sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null'
> против
> time sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null'
А как на этом фоне конструкции вида:
find ... | xargs ...
PS: Интересует экспертная оценка.
--
С уважением. Алексей.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus
2013-04-09 10:19 ` Aleksey Avdeev
@ 2013-04-09 10:32 ` Aleksey Avdeev
2013-04-10 18:04 ` [devel] "find -exec +" vs "find | xargs" Dmitry V. Levin
0 siblings, 1 reply; 11+ messages in thread
From: Aleksey Avdeev @ 2013-04-09 10:32 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 1730 bytes --]
09.04.2013 14:19, Aleksey Avdeev пишет:
> 09.04.2013 13:51, Dmitry V. Levin пишет:
>> On Tue, Apr 09, 2013 at 01:14:21PM +0400, Paul Wolneykien wrote:
>>> 09.04.2013 10:42, Dmitry V. Levin пишет:
>>>> Я посмотрел логи последней тестовой
>>>> пересборки, там более 60
>>>> пакетов python*-module-*, в которых используется
>>>> for var in $(find
>>>> и что-то мне подсказывает (не глядя в
>>>> спеки), что все это будет
>>>> гораздо лучше работать в форме
>>>> find -exec ... +
>>>
>>> А почему так? "for" же встроенная
>>> конструкция, а find -exec наверняка на каждый
>>> exec форкает отдельную оболочку.
>>
>> Если я расскажу, как именно оно происходит, вы же все равно не поверите.
>> И правильно сделаете, зачем верить на слово, когда можно проверить
>> собственноручно. Сравните
>> strace -feexecve -o '|grep -Fc execve' sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null'
>> и
>> strace -feexecve -o '|grep -Fc execve' sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null'
>>
>> Можете еще и время сравнить:
>> time sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null'
>> против
>> time sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null'
>
> А как на этом фоне конструкции вида:
>
> find ... | xargs ...
>
> PS: Интересует экспертная оценка.
По
strace -feexecve -o '|grep -Fc execve' sh -c 'find /usr/ -type f -name
"*.py"|xargs ls -- > /dev/null'
time sh -c 'find /usr/ -type f -name "*.py"|xargs ls -- > /dev/null'
У меня получилось что вариант "find ... | xargs ..." близок к
"find ... -exec ...", но немного затратнее.
--
С уважением. Алексей.
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 897 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [devel] "find -exec +" vs "find | xargs"
2013-04-09 10:32 ` Aleksey Avdeev
@ 2013-04-10 18:04 ` Dmitry V. Levin
0 siblings, 0 replies; 11+ messages in thread
From: Dmitry V. Levin @ 2013-04-10 18:04 UTC (permalink / raw)
To: ALT Linux Team development discussions
[-- Attachment #1: Type: text/plain, Size: 2246 bytes --]
On Tue, Apr 09, 2013 at 02:32:02PM +0400, Aleksey Avdeev wrote:
> 09.04.2013 14:19, Aleksey Avdeev пишет:
> > 09.04.2013 13:51, Dmitry V. Levin пишет:
> >> On Tue, Apr 09, 2013 at 01:14:21PM +0400, Paul Wolneykien wrote:
> >>> 09.04.2013 10:42, Dmitry V. Levin пишет:
> >>>> Я посмотрел логи последней тестовой
> >>>> пересборки, там более 60
> >>>> пакетов python*-module-*, в которых используется
> >>>> for var in $(find
> >>>> и что-то мне подсказывает (не глядя в
> >>>> спеки), что все это будет
> >>>> гораздо лучше работать в форме
> >>>> find -exec ... +
> >>>
> >>> А почему так? "for" же встроенная
> >>> конструкция, а find -exec наверняка на каждый
> >>> exec форкает отдельную оболочку.
> >>
> >> Если я расскажу, как именно оно происходит, вы же все равно не поверите.
> >> И правильно сделаете, зачем верить на слово, когда можно проверить
> >> собственноручно. Сравните
> >> strace -feexecve -o '|grep -Fc execve' sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null'
> >> и
> >> strace -feexecve -o '|grep -Fc execve' sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null'
> >>
> >> Можете еще и время сравнить:
> >> time sh -c 'for f in $(find /usr/ -type f -name "*.py"); do ls -- "$f"; done > /dev/null'
> >> против
> >> time sh -c 'find /usr/ -type f -name "*.py" -exec ls -- {} + > /dev/null'
> >
> > А как на этом фоне конструкции вида:
> >
> > find ... | xargs ...
> >
> > PS: Интересует экспертная оценка.
>
> По
>
> strace -feexecve -o '|grep -Fc execve' sh -c 'find /usr/ -type f -name
> "*.py"|xargs ls -- > /dev/null'
>
> time sh -c 'find /usr/ -type f -name "*.py"|xargs ls -- > /dev/null'
>
> У меня получилось что вариант "find ... | xargs ..." близок к
> "find ... -exec ...", но немного затратнее.
Конструкция "find ... -exec ... +" появилась в GNU findutils всего 8 лет назад,
в отличие от "find ... | xargs ...", которая там уже, видимо, более 22 лет.
У xargs есть параметры, которые позволяют строить такие конструкции
"find | xargs", для которых нет точного эквивалента в "find -exec".
Ну и вообще, в пакете findutils есть приличная документация,
см. "info -f find".
--
ldv
[-- Attachment #2: Type: application/pgp-signature, Size: 198 bytes --]
^ permalink raw reply [flat|nested] 11+ messages in thread
end of thread, other threads:[~2013-04-10 18:04 UTC | newest]
Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-09 6:25 ` [devel] [SCM] packages/python3-module-pygobject: heads/sisyphus Dmitry V. Levin
2013-04-09 6:42 ` Dmitry V. Levin
2013-04-09 6:46 ` REAL
2013-04-09 6:53 ` Dmitry V. Levin
2013-04-09 7:57 ` Aleksey Avdeev
2013-04-09 8:15 ` REAL
2013-04-09 9:14 ` Paul Wolneykien
2013-04-09 9:51 ` Dmitry V. Levin
2013-04-09 10:19 ` Aleksey Avdeev
2013-04-09 10:32 ` Aleksey Avdeev
2013-04-10 18:04 ` [devel] "find -exec +" vs "find | xargs" Dmitry V. Levin
ALT Linux Team development discussions
This inbox may be cloned and mirrored by anyone:
git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
public-inbox-index devel
Example config snippet for mirrors.
Newsgroup available over NNTP:
nntp://lore.altlinux.org/org.altlinux.lists.devel
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git