* 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