LINUX.ORG.RU

(Pragmatic Perl) Выпуск 31

 , , pragmatic perl


0

2

Выпуск 31. Сентябрь 2015

В этом номере:

  • От редактора, Вячеслав Тихановский
  • YAPC::Europe 2015, Андрей Шитов

    Рассказ о конференции. Первый доклад начался примерно так:

    Леон Тиммерманс кратенько рассказал о том, как устроена разработка Perl 5, ... и про то, что слушать мнения пользователей не всегда обязательно (по этому поводу Рейни Урбан заметил в Твиттере: «This is really the perl community as we know it. A committer publicly calling a user asshole. Nothing changed»).

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

  • Прецизионные бенчмарки Perl, Владимир Леттиев

    Какой Perl самый быстрый? Имеет ли смысл переходить на cperl или stableperl? Возможно ли провести точное сравнение производительности разных perl? (Назрело ввиду последних флеймов и форков, видать :-D)

  • Обзор CPAN за август 2015 г., Владимир Леттиев

    Рубрика с обзором интересных новинок CPAN за прошедший месяц.

    Приглянулось:

    Возможность делать вставки C-кода внутри Perl-программ. В отличии от схожих по функционалу модулей, как например, Inline::C, в C::Blocks возможно использовать также Perl-переменные внутри C-кода:

    # расчёт суммы целых положительных чисел от 1 до 100
    my $N = 100;
    my $result;
    cblock {
        int i;
        int result = 0;
        int N = SvIV($N); /* скаляр $N */
        for (i = 1; i < N; i++) result += i;
        sv_setiv($result, result); /* скаляр $result */
    }
    print "Сумма чисел от 1 до $N = $result\n";
    

  • Интервью с Алексеем Капрановым, Вячеслав Тихановский

    Алексей Капранов (kappa) — Perl-программист со стажем, менеджер крупных проектов на Perl и не только

>>> Подробности

Deleted

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

Да!

use C::Blocks;
use C::Blocks::PerlAPI;

$str = "Превед каг дила?";
$len = length $str;

cblock {
    __asm__  (
        "movl $4, %%eax\n\t"
        "movl $1, %%ebx\n\t"
        "movl %0, %%ecx\n\t"
        "movl %1, %%edx\n\t"
        "int $0x80\n\t"
        : /* no output registers */
        : "c" (SvPVbyte_nolen ($str)),
          "d" (SvIV ($len))
    );
}

Бгг) Но проще взять Inline::ASM

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