<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow">
    <title>gmane.comp.lang.perl.perl-mongers.moscow</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10082"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10081"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10080"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10079"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10078"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10077"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10076"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10075"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10074"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10073"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10072"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10071"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10070"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10069"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10068"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10067"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10066"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10065"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10064"/>
        <rdf:li rdf:resource="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10063"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10082">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10082</link>
    <description>&lt;pre&gt;
Приведу примеры, вдруг кто-то поймет.

Корутины, файберы, etc.:

    my $x = 1;
    my $y = func1($x);
    func2($y);

Чем отличается func1 от func2? Абсолютно не видно, при этом одна из
них делает yield, а другая нет. Это очень быстро приводит к
неправильным предположениям о работе программы. И не видно даже, что
тестировать. Это те самые последствия сложности кода, которые в итоге
приведут к ошибкам.

При этом тоже самое с обычным event loop'ом не даст вам сделать
неправильных предположений, потому что continuation задается явно:

    my $x = 1;
    func1 $x, sub {
        my $y = shift;
        func2($y);
    };

Т.е. видно, только func1 уходи&lt;/pre&gt;</description>
    <dc:creator>Alexandr Gomoliako</dc:creator>
    <dc:date>2012-05-25T22:57:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10081">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10081</link>
    <description>&lt;pre&gt;
Да ок, не всем дано :)
&lt;/pre&gt;</description>
    <dc:creator>Alexandr Gomoliako</dc:creator>
    <dc:date>2012-05-25T22:26:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10080">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10080</link>
    <description>&lt;pre&gt;Оставайтесь со своими тараканами, мой господин :)

А мы пойдём дальше.

26 мая 2012 г., 2:04 пользователь Alexandr Gomoliako &amp;lt;zzz&amp;lt; at &amp;gt;zzz.org.ua&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T22:09:46</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10079">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10079</link>
    <description>&lt;pre&gt;
За программирование без догмы.

Мне не нравится, что слепо берете говеннейшие проекты и сразу говорите
"приятная штука". Программирование все-таки серъезная наука. Тут не
должно быть нравится, не нравится, так у других и т.д.

А на счет коро, то мне никаким образом в голову не ложится, как
implicit continuation у корутин может быть проще, чем explicit
continuation с обычными колбэками, когда четко ясно что за чем
выполняется. Но по сложности вам объяснять что-то нереально, уже
пробовал. Это как топик, о которым никто ничего не слышал. Благо она
всегда приводит к плохим последствия&lt;/pre&gt;</description>
    <dc:creator>Alexandr Gomoliako</dc:creator>
    <dc:date>2012-05-25T22:04:59</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10078">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10078</link>
    <description>&lt;pre&gt;Иван, это не так немного. Но  я вам сочуствую. вы попали под батхёрт
Александра :)

26 мая 2012 г., 0:12 пользователь Ivan Petrov &amp;lt;i.petro.77.00&amp;lt; at &amp;gt;gmail.com&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T20:20:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10077">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10077</link>
    <description>&lt;pre&gt;

кооперативная многозадачность на сегодня чуть ни единственный способ
решить проблему 10К
&lt;/pre&gt;</description>
    <dc:creator>Ivan Petrov</dc:creator>
    <dc:date>2012-05-25T20:12:58</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10076">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10076</link>
    <description>&lt;pre&gt;Кстати, если брать чисто нативный код, то там поддержка файберов дешёвая.
setjump/longjump сохраняют только регистры процессора. Ну и плюс учёт
кэш-миссов.

26 мая 2012 г., 0:03 пользователь Akzhan Abdulin
&amp;lt;akzhan.abdulin&amp;lt; at &amp;gt;gmail.com&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T20:07:36</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10075">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10075</link>
    <description>&lt;pre&gt;Спасибо за чёткий ответ. Совсем позабылось, что в Ruby и в node-fibers
поддержка из коробки.

В таком случае я бы Coro использовать не стал.

26 мая 2012 г., 0:00 пользователь Vladimir Timofeev &amp;lt;vovkasm&amp;lt; at &amp;gt;gmail.com&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T20:03:44</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10074">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10074</link>
    <description>&lt;pre&gt;25 мая 2012 г., 15:43 пользователь Ivan Petrov
&amp;lt;i.petro.77.00&amp;lt; at &amp;gt;gmail.com&amp;gt; написал:

Проверил сейчас Corona, вроде работает на "Hello, world!", на чем-то
сложном долго проверять.
Даже не свалилось при LIBEV_FLAGS=8 - это включение kqueue на FreeBSD
в дефолтовом цикле у libev.

Детально я все это щупал года 1.5 - 2 назад. Тогда было так (целевая
платформа FreeBSD):
* Coro - сплошные core-дампы на FreeBSD, получались только простейшие
вещи из документации, шаг вправо, шаг влево - core.
* Corona - не работала вообще
* EV - основной цикл в kqueue не работал, приходилось делать его в
select, а уже в него вставлять embedded loop на kqueue для основной
работы. (А &lt;/pre&gt;</description>
    <dc:creator>Vladimir Timofeev</dc:creator>
    <dc:date>2012-05-25T20:00:38</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10073">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10073</link>
    <description>&lt;pre&gt;Александр, вы за что бьётесь, не понимаю?

Я решаю стоящие передо мной задачи, например.

2012/5/25 Alexandr Gomoliako &amp;lt;zzz&amp;lt; at &amp;gt;zzz.org.ua&amp;gt;

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T19:52:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10072">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10072</link>
    <description>&lt;pre&gt;
"When SMP was introduced to Unix kernels, it was done by extending the
semantics of cooperative threading to multiple processors. Once you
get that right, because you have to do real locking to make it work,
you can start adding __real preemption__ while you are at it. "
&lt;/pre&gt;</description>
    <dc:creator>Alexandr Gomoliako</dc:creator>
    <dc:date>2012-05-25T18:22:29</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10071">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10071</link>
    <description>&lt;pre&gt;"It's noteworthy that traditional Unix kernels are cooperative;"
http://c2.com/cgi/wiki?CooperativeThreading

25 мая 2012 г., 20:20 пользователь Alexandr Gomoliako &amp;lt;zzz&amp;lt; at &amp;gt;zzz.org.ua&amp;gt; написал:
&lt;/pre&gt;</description>
    <dc:creator>Андрей П. Ковбович</dc:creator>
    <dc:date>2012-05-25T17:53:47</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10070">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10070</link>
    <description>&lt;pre&gt;
Это не имеет ничего общего с continuations, с помощью которых
"сопрограммы" реализуются.
&lt;/pre&gt;</description>
    <dc:creator>Alexandr Gomoliako</dc:creator>
    <dc:date>2012-05-25T17:34:16</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10069">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10069</link>
    <description>&lt;pre&gt;Зачем мне ссылка на continuations? Де факто сопрограммы обычно с их помощью
и реализуются.

25 мая 2012 г., 21:26 пользователь Alexandr Gomoliako &amp;lt;zzz&amp;lt; at &amp;gt;zzz.org.ua&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T17:30:34</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10068">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10068</link>
    <description>&lt;pre&gt;
Ну ясно, т.е. вы понятия не имеете и судя по всему не только вы,
почему так. Я вам советую почитать про CPS (continuation passing
style).
&lt;/pre&gt;</description>
    <dc:creator>Alexandr Gomoliako</dc:creator>
    <dc:date>2012-05-25T17:26:51</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10067">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10067</link>
    <description>&lt;pre&gt;Нет, это мой личный критерий. Когда приложение становится неудобным в стиле
набора обратных вызовов, имеет смысл переписать его в стиле сопрограмм.
Код становится проще и читаемее.

Но, судя по всему, это не только мой критерий.

25 мая 2012 г., 21:19 пользователь Alexandr Gomoliako &amp;lt;zzz&amp;lt; at &amp;gt;zzz.org.ua&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T17:24:18</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10066">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10066</link>
    <description>&lt;pre&gt;
Откуда этот критерий взялся? Придумался только что?


"Asynchronous, or event-driven programming relies on the concept of
callbacks): blocks of code whose execution is deferred until an
appropriate event (ex: socket IO) triggers it. While this is not a
complicated concept on its own, in the long run, it seems to result in
complicated, non-linear execution models which are hard to maintain -
we have experienced this firsthand at PostRank and hence made it a
primary concern for Goliath."

Объяснения на основе опыта, это как религия, Ilya Grigorik (я так
понимаю автор Goliath'а) по сути говорит, "понятию не имею, почему не
получилось, пробуем что-то другое". Карго культ это да, хорошая
причина :)
&lt;/pre&gt;</description>
    <dc:creator>Alexandr Gomoliako</dc:creator>
    <dc:date>2012-05-25T17:19:39</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10065">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10065</link>
    <description>&lt;pre&gt;Типичный критерий необходимости сопрограмм, - это ветвистое дерево
коллбэков.

25 мая 2012 г., 21:01 пользователь Akzhan Abdulin
&amp;lt;akzhan.abdulin&amp;lt; at &amp;gt;gmail.com&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T17:03:55</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10064">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10064</link>
    <description>&lt;pre&gt;У меня нет никакого желания что-то доказывать. Будут у вас задачи под
сопрограммы, начнёте этим пользоваться. Нет, - и слава Богу.

25 мая 2012 г., 21:00 пользователь Alexandr Gomoliako &amp;lt;zzz&amp;lt; at &amp;gt;zzz.org.ua&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T17:01:53</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10063">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10063</link>
    <description>&lt;pre&gt;

И что? Это не значит, что это хорошо. Это значит, что не очень много
вменяемых "современных библиотек".
&lt;/pre&gt;</description>
    <dc:creator>Alexandr Gomoliako</dc:creator>
    <dc:date>2012-05-25T17:00:01</dc:date>
  </item>
  <item rdf:about="http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10062">
    <title>Re: HTTPD на короутинах</title>
    <link>http://permalink.gmane.org/gmane.comp.lang.perl.perl-mongers.moscow/10062</link>
    <description>&lt;pre&gt;Не знаю, кто с вами разбирался.

Файберы активно используются в программировании уже много лет. Кстати, на
уровне ОС они прекрасно поддерживаются ядром NT, к примеру.

Очень многие современные библиотеки основаны на их использовании, начиная с
async. rails, заканчивая common-node и
Goliath&amp;lt;http://www.igvita.com/2011/03/08/goliath-non-blocking-ruby-19-web-server/&amp;gt;
.


25 мая 2012 г., 20:20 пользователь Alexandr Gomoliako &amp;lt;zzz&amp;lt; at &amp;gt;zzz.org.ua&amp;gt;написал:

&lt;/pre&gt;</description>
    <dc:creator>Akzhan Abdulin</dc:creator>
    <dc:date>2012-05-25T16:27:20</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.lang.perl.perl-mongers.moscow">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.lang.perl.perl-mongers.moscow</link>
  </textinput>
</rdf:RDF>

