The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



"Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от opennews (??), 05-Июл-18, 23:49 
После пяти лет существования проекта и спустя 3 года с момента первого выпуска традиционно ко Дню Независимости США подготовлен (https://metacpan.org/release/RPerl) значительный релиз свободного оптимизирующего компилятора RPerl 4.0 (http://rperl.org/), позволяющего транслировать код на языке Perl 5 в представление на языке С++ с последующим преобразованием в машинный код при помощи С++-компилятора. Исходные тексты проекта распространяются (https://github.com/wbraswell/rperl) под лицензиями Artistic и GPL, как и код интерпретатора Perl5.


RPerl является ярким примером успешного проекта, поддерживаемого сообществом. История проекта берет начало с истории основания проекта Perl11 (http://perl11.org). Решение о проекте RPerl родилось 1 января 2013 года. Создателем оптимизирующего компилятора rperl и лидером команды разработчиков является один из трёх соучредителей проекта Perl11 (http://perl11.org) Уильям Брэсвелл младший (William N. Braswell, Jr.). Он же является автором свободных книг "Learning RPerl (http://rperl.org/learning/)", которая знакомит с rperl и обучает его использованию, и "The Book Of RPerl. True Legends In Programming. (http://rperl.org/the_book_of_rperl.html)", посвященной RPerl и оформленной в виде художественного очерка. Интерес к проекту RPerl подтвержден успешным завершением двух кампании по сбору средств на краудфандинговой платформ kickstarter. Проект также получал от фонда The Perl Foundation финансирование в виде двух грантов на разработку компилятора в сентябре 2015 и феврале 2016 года.


Аббревиатура RPerl с одной стороны означает "Restricted Perl" (ограниченный Perl), так как используется определенное подмножество языка Perl5, которое позволяет скомпилировать исходные тексты в высокопроизводительный исполняемый код. С другой стороны, RPerl означает "Revolutionary Perl" (революционный Perl), так как разработчики надеятся, что производительность RPerl кардинальным образом изменит индустрию разработки программного обеспечения. Третьим значением RPerl является "Roadrunner Perl" (марафонец perl), так как RPerl действительно быстрый.


Кроме высокой скорости работы приложении, начиная с версии RPerl 2.0 обеспечена возможность использования преимуществ многоядерных систем и облачных платформ за счет автоматического распараллеливания выполнения кода, сохраняя при этом совместимость с существующими и будущими высокопроизводительными вычислительными платформами.


Важные изменения и нововведения:


-  Доступны для загрузки двоичные пакеты;
-  Включено динамическое связывание к библиотеке libperl.so (использование флагов для динамической линковки $Config::Config{ccdlflags});
-  Обеспечена возможность сборки в текущей директории '.' как и в lib/;
-  Разрешено использование идентификаторов, начинающихся с символа подчеркивания "_" в тех случаях когда это не приводит к конфликту с зарезервированными именами C++;
-  Обеспечена поддержка pod (plain old documentation), что обеспечило поддержку блочных комментариев;
-  Иные доработки по грамматике, типам данных и т.п.


URL: https://metacpan.org/release/RPerl
Новость: https://www.opennet.dev/opennews/art.shtml?num=48916

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +6 +/
Сообщение от Аноним (1), 05-Июл-18, 23:49 
Огонь
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +4 +/
Сообщение от Аноним (2), 05-Июл-18, 23:56 
> в представление на языке С++

Счастливой, как говорится, отладки, если не знаешь плюсов.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

13. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +1 +/
Сообщение от . (?), 06-Июл-18, 10:47 
>> в представление на языке С++
> Счастливой, как говорится, отладки, если не знаешь плюсов.

дык - отлаживай на обычном перле, кто ж мешает.

А если отлаживать надо по сути сам rperl - то все равно никуда не денешься.


Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

3. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 06-Июл-18, 00:06 
Зря убрали из новости заметку что код мажорного релиза RPerl выходит к Дню Независимости США, а в течение года идет разработка по вышедшей ветке. Мне кажется это достойная уважения схема разработки. Не хотелось думать что opennet политизирован, но ваша цензура наталкивает именно на эти мысли.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

4. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (4), 06-Июл-18, 00:16 
А это что "...с момента первого выпуска традиционно ко Дню Независимости США..."?
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 06-Июл-18, 00:40 
спасибо, теперь нормально
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

5. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +2 +/
Сообщение от Аноним (5), 06-Июл-18, 00:27 
>"Restricted Perl" (ограниченный Perl), так как используется определенное подмножество языка Perl5

Вы хоть напишите, от чего придётся отказаться.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

7. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +1 +/
Сообщение от Аноним (-), 06-Июл-18, 00:49 
> Вы хоть напишите, от чего придётся отказаться.

Коротко: от магии.


Подробно:
  здесь описание http://rperl.org/faq.html

> Q: What is magic?
> A: Perl was built to "make hard things easy". To achieve this, quite a lot of complexity was built into the Perl core, and hidden from the software developers who program in Perl to create applications. This hidden complexity in Perl is literally called "magic" in the Perl core source code. In addition, magic can further refer to any of the weird, wacky, or especially-complicated features of Perl.
> Q: Why is magic not always a good thing?
> A: During the quarter-century of Perl's existence, more-and-more magic has been added to make Perl more-and-more powerful. The cumulative effect of piling magic-on-magic-on-magic is that the Perl 5 core is now almost unmanageably complex, and only a handful of professional Perl core developers can make even minor changes without breaking everyone's existing Perl applications. This is known as the need to maintain bug-for-bug backward compatibility. Also, all the magic has made Perl 5 run very, very slow for normal non-magic applications, which run fast in all other popular programming languages. So basically, magic makes Perl incredibly powerful, but also very slow and unmanageable in the long-term.

здесь детали: http://rperl.org/the_low_magic_perl_commandments.html

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

8. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от vitalif (ok), 06-Июл-18, 01:52 
Там как-то нетривиально понять на самом деле, даже непонятно, нужно ли тип каждой переменной явно указывать... т.к. если нужно, то типизированный перл как-то не особо интересен, честно говоря O_o
Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +1 +/
Сообщение от Аноним 80_уровня (ok), 06-Июл-18, 01:58 
> здесь детали: http://rperl.org/the_low_magic_perl_commandments.html

П. 45 списка "Thou shalt not" как-то сильно смутил.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

10. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 06-Июл-18, 02:39 
Идите дальше - через Learning RPerl, там доберетесь до PBP. Может судьба вас приведет к переводу или написанию книги по RPerl на русском. Было бы здорово.
Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +1 +/
Сообщение от Аноним (11), 06-Июл-18, 07:38 
Зачем жертвовать выразительными возможностями Перла? Есть же XS. Если XS сложно, то можно ресурсоемкую часть написать на Си и вызывать через FFI.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +3 +/
Сообщение от Аноним (-), 06-Июл-18, 11:08 
>  Зачем жертвовать выразительными возможностями Перла? Есть же XS. Если XS сложно, то можно ресурсоемкую часть написать на Си и вызывать через FFI.

Можно, но вы не получите быстрый управляющий код, как и не получите возможность автоматической парралелизации на многоядерных или облачных платформах. RPerl определенно не помешает в будущем, т.к. ресурсоемкие задачи всплывают время от времени, тогда как писать многопоточный и оптимизированный Си-код получается не сильно быстро. RPerl - это возможность принести в жертву часть комфорта ради скорости исполнения практически при сходной скорости программирования (если не рассматривать цели проекта perl11). Это как бы анти-ответ таким решениям как electron, который позволяет разменять скорость исполнения ради комфорта.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

22. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Андрей (??), 06-Июл-18, 15:30 
> Это как бы анти-ответ таким решениям как electron, который позволяет разменять скорость исполнения ради комфорта.

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

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

12. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  –1 +/
Сообщение от Аноним (12), 06-Июл-18, 10:39 
>Разрешено использование идентификаторов, начинающихся с символа подчеркивания "_", в тех случаях, когда это не приводит к конфликту с зарезервированными именами C++;

А использовать идентификаторы, НЕначинающиеся с символа "$", ещё не разрешили?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

15. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от captcha 20168 (?), 06-Июл-18, 11:27 
почитай зачем в имени переменной указывается "$"
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

18. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  –1 +/
Сообщение от Oleg (??), 06-Июл-18, 12:28 
А где можно почитать? Вопрос возник потому, что в Пыхе например все переменные начинаются с доллара, а в Питоне - вообще нет ни доллара ни собаки ни процента. Какой смысл в явном обозначении природы объекта? оптимизация? неймспейсы? читабельность? В чем реальная причина? Спасибо.
Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

20. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 06-Июл-18, 13:03 
> Какой смысл в явном обозначении природы объекта?

Неужели кругом у всех ооп головного мозга? За объектами вы уже не видите типы данных. Сам по себе объект ничего не может и не значит, он является контейнером для управления и хранения определенных типов данных.
Cигил (https://en.wikipedia.org/wiki/Sigil_(computer_programming)) - это это не обозначение природы объекта, т.к. в Perl вообще нет объектов, как в Си. В Perl можно создать объекты, а если точнее - сэмулировать их, как в Си. В Perl имеется набор типов (как в Си) и сигил является по сути декларатором данного типа. Вы всегда можете оперировать ссылкой и уйти в сплошные скаляры (сигил - $):

> $ perl -E'my $ref2hash = {}; say ref $ref2hash;'
> HASH
> $ perl -E'my $ref2arr = {}; say ref $ref2arr;'
> HASH
> $ perl -E'my $ref2sub = sub{}; say ref $ref2sub;'
> CODE

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

А можно еще дальше извратиться, и декларировать все словами, как я показал здесь: https://www.opennet.dev/openforum/vsluhforumID3/114770.html#1... Но зачем?

PS: Почитать в явном виде негде, нужно дойти своим умом до понимания от того что я написал.

Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

23. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  –1 +/
Сообщение от Андрей (??), 06-Июл-18, 15:33 
> т.к. в Perl вообще нет объектов, как в Си. В Perl можно создать объекты, а если точнее - сэмулировать их, как в Си.

Зачем же они тогда код в Си++ транслируют, ведь код на Си менее запутан, быстрее компилируется и проще отлаживается?! Не зря же ядро использут Си с ООП подходом да и GObject(GLib/GTK/........).

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

25. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +1 +/
Сообщение от angra (ok), 06-Июл-18, 15:56 
> Почитать в явном виде негде, нужно дойти своим умом до понимания от того что я написал.

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

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

32. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 06-Июл-18, 23:28 
> Как перловик с более чем десятилетним стажем могу авторитетно заявить, ты написал лютую ахинею.

Я услышал твое заявление - ок. Но теперь будь любезен - докажи свои слова.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

35. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от angra (ok), 07-Июл-18, 09:18 
> Сам по себе объект ничего не может и не значит, он является контейнером для управления и хранения определенных типов данных.

Возьми и почитай что-то умное про ООП, так как твоё определениие объектов неверно как фактически так и чисто логически

> в Perl вообще нет объектов

Есть они там. Если они не такие, как в другом ЯП, это не значит, что они не объекты. Все основные критерии ООП объекты на perl проходят.

> В Perl можно создать объекты, а если точнее - сэмулировать их, как в Си

В C действительно можно только эмулировать. В perl тоже можно эмулировать разные варианты ООП, но при этом существует встроенный механизм ООП.

> В Perl имеется набор типов (как в Си)

Нет. Между кучей скалярных типов в С и фундаментальными типами в Perl нет практически ничего общего.

> сигил является по сути декларатором данного типа

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

> Вы всегда можете оперировать ссылкой и уйти в сплошные скаляры

Нет, не получится. Самое простое, пройдись в цикле по списку, на который у тебя есть ссылка.

Итого, все утвреждения в той или иной степени ложны. Текст в целом является ахинеей.

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

36. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от qwerty123 (??), 07-Июл-18, 11:26 
>> в Perl вообще нет объектов
>Есть они там. Если они не такие, как в другом ЯП, это не значит, что они не объекты.

Для кого и int объект.

Вообще, определение объекта так себе, на грани исчезновения =)

bless REF,CLASSNAME
bless REF

This function tells the thingy referenced by REF that it is now an object in the CLASSNAME package. If CLASSNAME is omitted, the current package is used. Because a bless is often the last thing in a constructor, it returns the reference for convenience. Always use the two-argument version if a derived class might inherit the method doing the blessing. See perlobj for more about the blessing (and blessings) of objects.

Минимальное описание, без акцессоров

package aObject;

sub construct {
    my ($class, $var1) = @_;
    my $self = {
        var1 => $var1,
    };
    bless $self, $class;
    return $self;
}

1;

package main;

my $objSample = aObject->construct("text");

И шо мы имеем? сыылку на пакет + уникальную цепочку perl переменных.

При этом речь идет сначала о пакете, потом о объекте, потом опять о пакете =)
И по сути это так и есть - perl5-объект есть пакет функций с нечаянно своими данными.
по сути, такая же концнпция в ada (концепция, не реализация), подобный подход для всяких C gObject.

>фундаментальными типами в Perl нет практически ничего общего.

Нет там фундаментальных типов, там фундаментальная магия =)

Внутри perl5 любая переменная представлена структрурой  

20.3 Perl Value Types
20.3.1 Scalar Values

A scalar value (SV) contains the value of the scalar, a reference count, and a bitmask to describe the state of the scalar. The scalar may be an integer value ("IV"), a double ("NV"), a string ("PV" for pointer value), a reference ("RV"), or a special-purpose object ("magical"). We'll discuss magical variables separately.

И эта структура при случае быстро на лету переобувается.

Только не требуйте указать это в *.h/*.c perl5. =)
Только не с утра, только не в субботу, я лучше найду все концы у пачки сваренного спагетти =)

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

38. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +1 +/
Сообщение от angra (ok), 07-Июл-18, 13:31 
Зачем ты мне рассказываешь как устроено и работает ООП в perl? С тем же успехом я могу рассказать как устроена магия ООП в том же C++ или в другом ЯП. Детали реализации роли не играют, важно наличие абстракции.
А про фундаментальные типы ты вообще не понял. Скаляр, вектор, отображение, функция - вот это имелось ввиду, а не разница между скалярами и их физическое представление в памяти.
Ответить | Правка | ^ к родителю #36 | Наверх | Cообщить модератору

44. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  –1 +/
Сообщение от Аноним (44), 07-Июл-18, 20:59 
Так вы довольно топорно ориентируетесь как в perl, так и в ООП. Вам бы подучиться, хотя наверное уже все...
Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

43. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (44), 07-Июл-18, 20:55 
>Возьми и почитай что-то умное про ООП, так как твоё определениие объектов неверно как фактически так и чисто логически

Тут слив, ибо вода без конкретики.

> Есть они там. Если они не такие, как в другом ЯП, это не значит, что они не объекты. Все основные критерии ООП объекты на perl проходят.

Нет в perl объектов, есть объектно-ориентированная нотация. Вы вероятно не разбираетесь в тонкостях объектой модели и объектно-ориентированной нотации. Вообщем снова слив.

> В C действительно можно только эмулировать. В perl тоже можно эмулировать разные варианты ООП, но при этом существует встроенный механизм ООП.

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

> Нет. Между кучей скалярных типов в С и фундаментальными типами в Perl нет практически ничего общего.

Из perldoc -f ref:

>[оверквотинг удален]
>                    ARRAY
>                    HASH
>                    CODE
>                    REF
>                    GLOB
>                    LVALUE
>                    FORMAT
>                    IO
>                    VSTRING
>                    Regexp

Вообщем тут снова у вас слив.


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

Не может быть, а именно оно и есть, но не только. Вообщем вы плаваете и тут. Тут надо вам хорошо подумать, т.к. это не описано нигде, а я как вижу довольно "типичный программист" (не в обиду).

> Нет, не получится. Самое простое, пройдись в цикле по списку, на который у тебя есть ссылка.

Я что-то не вижу ваш пример. Вообщем снова вода без конкретики. Слив.

> Нет, не получится. Самое простое, пройдись в цикле по списку, на который у тебя есть ссылка.

Вам показалось - вы слили абсолютно все. Вся разница в стом что я копаюсь в самом perl больше вас если по количеству лет (а программирую еще больше).

Соберитесь и разберитесь в том что же есть perl. Успехов!

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

46. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от angra (ok), 08-Июл-18, 02:21 
Как известно, от многократного повторения слова "сахар" во рту слаще не станет. Со словом "слив" схожая ситуация.
Ответить | Правка | ^ к родителю #43 | Наверх | Cообщить модератору

48. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  –1 +/
Сообщение от Аноним (48), 08-Июл-18, 12:20 
>  Как известно, от многократного повторения слова "сахар" во рту слаще не станет. Со словом "слив" схожая ситуация.

Спасибо за ответ. Вы хорошо показали какой вы "перловик с более чем десятилетним стажем", и насколько значимо вы можете "авторитетно заявить".

Ответить | Правка | ^ к родителю #46 | Наверх | Cообщить модератору

28. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (28), 06-Июл-18, 17:15 
> Неужели кругом у всех ооп головного мозга?
> природы объекта
> ооп

Ну назвал он сущности объектами, ну что ты, а? Да и сущности — тоже объекты. Ведь из контекста очевидно, что он не про природу рантайм-объектов, а про то, что при парсинге без проблем можно понять, где кейворд, а где переменная, и безо всяких лишних сущностей (сигилов). В целом с ним полностью согласен. Ну и считаю, что запрет на использование кейвордов в именах переменных тоже устаревшим и надуманным, это мешает делать красивые и удобные DSL. Разумеется, это не лучшая практика (в языках, где такое возможно), но для запрета плохих практик есть линтеры, незачем этим ещё и парсер/компилятор напрягать.

А ещё, объекты — это не только ООП, но и — фанфары — теория категорй, где никакого ООП искаропки нет и не особо нужно.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

29. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (28), 06-Июл-18, 17:18 
Ну и вдогонку:

> In computer science, an object can be a variable, a data structure, a function, or a method, and as such, is a value in memory referenced by an identifier.
> data structure
> function

Объекты — не только ООП. Даже за пределами теорката.

https://en.wikipedia.org/wiki/Object_(computer_science)

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

45. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  –1 +/
Сообщение от Аноним (-), 07-Июл-18, 21:06 
> Ну назвал он сущности объектами, ну что ты, а? Да и сущности — тоже объекты.

Из сущностей только объекты являются объектами, а это не весь наборю Объект -  это инстанцирование типа определенного класса. А когда вы инстанцируете скаляр, массив, хэш или что-то еще, то вы не создаете объект. А если вы хотите заниматься "жизненной" гуманитарной игрой слов - то с этим вам на другой форум, вероятно. Тут технический форум и разговор у нас про ЯП где вроде бы подразумевается строгость не только в терминологии, а не строгость не приветствуется ни в чем.

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

31. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от АнонимГоним (?), 06-Июл-18, 19:45 
Это не типы данных, а скорее контейнер для данных, который может содержать любые типы.
Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

52. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 08-Июл-18, 17:40 
Скорее да, чем нет. Но я руководствуюсь тем что написано в документации, поэтому все-таки типы.
Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

26. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от angra (ok), 06-Июл-18, 16:10 
> А где можно почитать?

man perldata

> Вопрос возник потому, что в Пыхе например все переменные начинаются с доллара

Пых изначально это кастрированный perl, как следствие и эта фича является кастрацией замечательной идеи и пользы не несет.

> а в Питоне - вообще нет ни доллара ни собаки ни процента.

Как и в большинстве других языков

> Какой смысл в явном обозначении природы объекта? оптимизация? неймспейсы? читабельность? В чем реальная причина?

В первую очередь читаемость. После перла довольно неприятно использовать язык без сигилов.


Ответить | Правка | ^ к родителю #18 | Наверх | Cообщить модератору

33. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (33), 07-Июл-18, 08:47 
Читаемость, говорите? Я бы сказал античитаемость.
Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

34. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от angra (ok), 07-Июл-18, 09:01 
Для неграмотного человека пиктограммы более "читаемы", чем буквы. Для овладевшего грамотой - наоборот. Здесь аналогично, пока я не знал perl мне его синтакис казался странным и нечитаемым, в том числе из-за сигилов. После освоения и достаточно большой практики код без сигилов кажется менее читаемым, так как отсутствует информация, которую привык видеть.
Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

37. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от qwerty123 (??), 07-Июл-18, 11:32 
> Читаемость, говорите? Я бы сказал античитаемость.

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

при сплошном немаркированом потоке мысли сначала надо понять "что это, берримор?" - "овсянка из кода, сэр"

  


Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

16. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от konst55512email (?), 06-Июл-18, 11:30 
я когда-то без проблем избавлялся от "$". С помощью perlcc переводишь скрипт в a.out. И уже его правишь, если надо.
Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

17. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +1 +/
Сообщение от Аноним (-), 06-Июл-18, 12:24 
> А использовать идентификаторы, НЕначинающиеся с символа "$", ещё не разрешили?
> $ cat NoSigils.pm

package NoSigils;

use Filter::Simple;
use strict;

our %sw = qw'
    SCALAR    $
    ARRAY    @
    HASH    %
    CODE    &
    GLOB    *
    REF        $
';

FILTER {
    while( my ($k, $v) = each %sw){
    s/(?:$k\_OF|$k\_)/$v/g
    }
};

> $ cat test.pl

#!/usr/bin/perl

package main;
use strict;

use NoSigils;

my (HASH_h, SCALAR_a, SCALAR_b) = qw/a s d f/;
my REF_r = \HASH_h;

while (my (SCALAR_a, SCALAR_b) = each HASH_OF REF_r) {
    print "key: SCALAR_a  => SCALAR_b\n";
}

GLOB_xyz = sub {
    print "sub xyz called\n";
};

my REF_to_glob = \GLOB_xyz;

GLOB_deref = GLOB_OF REF_to_glob;

xyz();
deref();


> $ perl test.pl

key: a  => s
key: d  => f
sub xyz called
sub xyz called


Не благодари.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

19. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  –2 +/
Сообщение от Аноним (19), 06-Июл-18, 12:33 
Если короткл: rperl позволяет сделать perl ещё менее понятным и более неуправляемым
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (24), 06-Июл-18, 15:55 
А вы достаточно квалифицированны что бы высказывать публично своё мнение по этому вопросу? Неплохо бы уточнить.
Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

27. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (27), 06-Июл-18, 16:52 
> А вы достаточно квалифицированны что бы высказывать публично своё мнение по этому вопросу? Неплохо бы уточнить.

1. Перл не божественный Java Script, а значит хуже!
2. Количество программистов на перл меньше (и это хорошо - и так бананов на всех не хватает!), значит опять же, перл хуже ЖС!
3. Мы все так говорим, а значит это правда!
--
Так примыкайте же к нам, прыгающим по ветвям,
Там, где легка и гибка вьется лоза по стволам.
Путь наш отмечен дымом и громом, что мы издаём.
Верьте, верьте, много славных дел свершить удастся нам!

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

49. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от IRASoldier (?), 08-Июл-18, 15:57 
Запили приличное кроссбраузерное меню для сайта на Java Script'е, чтобы не подключать при этом JQuery или подобные модные штуки, а также формы c Ajaх, тогда я поверю, что ты илита. Ах да, еще уточни, какое отношение сфера применения Java Script имеет к сфере применения perl'а, причём уточни раньше, чем запилишь меню.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

53. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (27), 08-Июл-18, 18:07 
> Запили приличное кроссбраузерное меню для сайта на Java Script'е, чтобы не подключать
> при этом JQuery или подобные модные штуки, а также формы c
> Ajaх, тогда я поверю, что ты илита.

Шарик, ты ба^W не умеешь в сарказм.

> приличное кроссбраузерное меню для сайта на Java Script'е, чтобы не подключать при этом JQuery или подобные модные штуки, а также формы c Ajaх,

Собери свой велосипед сам и выиграй приз "аноним опеннета возможно подумает посчитать тебя не ловскилом". Особенно нравится формулировка "приличное кроссбраузерное меню".
В общем, неплохо у некоторых бумкнуло.

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

57. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от IRASoldier (?), 09-Июл-18, 00:29 
> возможно подумает посчитать тебя не ловскилом

Аноним, вот ты тоже не умеешь в сарказм - потому что тема насчет меню, хоть и не совсем ловскил, но и не илита уж точно.

Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

51. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от IRASoldier (?), 08-Июл-18, 16:08 
Видишь ли, какими бы обезьянами ни были некоторые типы, освоившие начатки JS и возомнившие себя кодерами, я не поверю, что кто-то из них мог сп***нуть такую фигню, как "JS лучше perl", разве что совсем школота. А потому - поздравляю с искрометным петросянством.
Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

54. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (27), 08-Июл-18, 18:18 
> Видишь ли, какими бы обезьянами ни были некоторые типы, освоившие начатки JS
> и возомнившие себя кодерами, я не поверю, что кто-то из них мог сп***нуть такую фигню, как "JS лучше perl", разве что совсем школота. А потому - поздравляю с искрометным петросянством.

Видишь ли, какими бы крутыми вбросчиками некоторые себя не считали, я не поверю, что кто-то из вас мог недооценить вебмакак и не мог загуглить или не наткнуться на тот же "Why JavaScript Is the New Perl", как и кучу "why python/Ruby is better than perl"
https://www.reddit.com/r/programming/comments/8b6b6n/mind_yo.../
В общем, поздравляю с неумением в сарказм и гугл и очередным воспламенением.

Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

56. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от IRASoldier (?), 09-Июл-18, 00:16 
Знаешь ли, вот именно тут я не вбрасывал - раз, и ОК, похоже я таки недооценил вебмакак - два. Мда...
Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

58. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (27), 09-Июл-18, 12:03 
> Знаешь ли, вот именно тут я не вбрасывал - раз, и ОК,
> похоже я таки недооценил вебмакак - два. Мда...

С вебмакаками конечно "приятное совпадение", но вообще, обыгрывалась "аргументация" в стиле Бандерлогов: "мы все так говорим, а значит это правда!".
>> Если короткл: rperl позволяет сделать perl ещё менее понятным и более неуправляемым

Отрывок из песни Бандерлогов кстати оригинальный, без анонимных поправок )


Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

59. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от IRASoldier (?), 10-Июл-18, 09:44 
Отрывок я помню, кагбэ Киплинга читывал :-)
Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

30. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (19), 06-Июл-18, 18:47 
Конечно! Можешь мне пяток вопросов по Perl5 задать, как на собеседовании.
Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

21. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (21), 06-Июл-18, 14:27 
A good explanation of why *NOT* Perl anymore.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

47. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Мирон (?), 08-Июл-18, 12:00 
После мучительных 5 часов непрерывной работы над сборкой Постгресс 11 ( release stable ) на прошлых выходных, за 2 часа переписал пре - линкер скрипта на PowerShell и больше не хочу даже думать о Перл на Windows. Мало того, что оболочка не способна унаследовать среду у процесса вызова, среда поддержки Git заменила линкер на свой, и строит COFF бинарные выполнимые на тихушку.

Да, его можно подлатать, скачав дистрибутив от Active Perl, друзей Window, и впрочем вполне порядочных людей. Но в моем случае уже поздно.

После всех мучений и прорвы времени, чтобы после ремонта всех изъянов наткнуться на элементарное не соблюдения самых примитивных правил сожительства в операционной системе, я решил что буду писать на Perl для UNIX и транслировать код в Powershell для Windows. Чего и всем желаю.

Сон необходим для здоровья.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

50. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от IRASoldier (?), 08-Июл-18, 15:59 
А зачем собирать, если можно взять готовый дистрибутив (https://www.postgresql.org/download/windows/) , если не секрет?
Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

55. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 08-Июл-18, 21:03 
> После мучительных 5 часов непрерывной работы над сборкой Постгресс 11 ( release stable ) на прошлых выходных, за 2 часа переписал пре - линкер скрипта на PowerShell и больше не хочу даже думать о Перл на Windows. Мало того, что оболочка не способна унаследовать среду у процесса вызова, среда поддержки Git заменила линкер на свой, и строит COFF бинарные выполнимые на тихушку.
> Да, его можно подлатать, скачав дистрибутив от Active Perl, друзей Window, и впрочем вполне порядочных людей. Но в моем случае уже поздно.
> После всех мучений и прорвы времени, чтобы после ремонта всех изъянов наткнуться на элементарное не соблюдения самых примитивных правил сожительства в операционной системе, я решил что буду писать на Perl для UNIX и транслировать код в Powershell для Windows. Чего и всем желаю.

Было бы очень интересно узнать в деталях обстоятельства произошедшего, но думаю не судьба. Забавно, но в perl меня привел именно windows, так как по всем требуемым параметрам он показал себя наиболее подходящим решением для гетерогенной среды. Задачи, кстати, тоже начинались с проблем автоматизации сборки под windows, но этим не ограничивались. Я думаю дело как всегда в программисте и вы точное не сможете меня переубедить в обратном без деталей, т.к. я сам давно уже "тертый калач" с perl и не с perl под windows.

PS: ActiverPerl никогда не использовал

Ответить | Правка | ^ к родителю #47 | Наверх | Cообщить модератору

60. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (19), 11-Июл-18, 22:27 
Ребята, так оно не совместимо с Perl5?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

61. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 15-Июл-18, 03:05 
Совместимо. Perl5-код "заточенный" под rperl будет работать в Perl5 без проблем.
Ответить | Правка | ^ к родителю #60 | Наверх | Cообщить модератору

62. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (19), 15-Июл-18, 16:48 
Я про другое, браток. Могу ли я написать приложение на ванильном Perl'е и критичные моменты переписать на RPerl? Конечно, теоретически возможно всё, но насколько я понял, для проекта выбирается либо RPerl, либо Perl5, так? Т.е. это диалект языка, а не аналог inline-c, например.
Ответить | Правка | ^ к родителю #61 | Наверх | Cообщить модератору

63. "Релиз оптимизирующего компилятора Perl5-кода RPerl 4.0"  +/
Сообщение от Аноним (-), 25-Июл-18, 23:56 
>  Я про другое, браток. Могу ли я написать приложение на ванильном Perl'е и критичные моменты переписать на RPerl? Конечно, теоретически возможно всё, но насколько я понял, для проекта выбирается либо RPerl, либо Perl5, так? Т.е. это диалект языка, а не аналог inline-c, например.

Да, пишешь на ванильном, а потом оптимизируешь насколько тебе нужно под RPerl. Причем не критичные части (например разовый код на старте)  можешь не оптимизировать вовсе.

Ответить | Правка | ^ к родителю #62 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру