Size: a a a

2019 December 25

AK

Andrey Konovalov in Modern::Perl
Vadim Goncharov
Ну как это "никуда", когда результат компиляции может быть сохранён в .pmc? А "менять в рантайме любые коды" можно хоть на ассемблере (привет, полиморфные вирусы), хотя "интерфейса нет"
Насколько я помню, страницы памяти, помеченные как код, никуда уже поменять не получится, а полиморфные вирусы сейчас меняют файлы на диске, а не машинный код в рантайме.
источник

VT

Vasily Terkin in Modern::Perl
Andrey Konovalov
Насколько я помню, страницы памяти, помеченные как код, никуда уже поменять не получится, а полиморфные вирусы сейчас меняют файлы на диске, а не машинный код в рантайме.
только в случае W^X
источник

VG

Vadim Goncharov in Modern::Perl
Oleg Pronin
На ассемблере ты меняешь откомпилированный код (не оригинал).
В перле ты меняешь структуры OP (почти исходик), которые интерпретируют.
Подумай о возможности таких штук как b::deparse
Pmc это тупо сериализация этих структур. К компиляции тоже не имеет отношения))
есть опкоды = есть компиляция
источник

OP

Oleg Pronin in Modern::Perl
Vadim Goncharov
есть опкоды = есть компиляция
Понятно, у вас компиляция значит что угодно, и все до единого языки в мире компилируемые
источник

VG

Vadim Goncharov in Modern::Perl
Oleg Pronin
Понятно, у вас компиляция значит что угодно, и все до единого языки в мире компилируемые
значит она у нас что полагается - лексер, парсер, AST, опкоды
источник

VG

Vadim Goncharov in Modern::Perl
в исходниках интерпретаторов без этого (например /bin/sh) я тож копался
источник

OP

Oleg Pronin in Modern::Perl
)) все ясно
источник

EV

Evgeniy Vansevich in Modern::Perl
😂весело тут у вас
источник

EV

Evgeniy Vansevich in Modern::Perl
Vadim Goncharov
значит она у нас что полагается - лексер, парсер, AST, опкоды
Предполагается что опкоды, опкодам рознь.
источник

VO

Vyacheslav Olkhovchenkov in Modern::Perl
это вообще-то логично, какой смысл если все опкоды одинаковые?
источник

VG

Vadim Goncharov in Modern::Perl
Vyacheslav Olkhovchenkov
это вообще-то логично, какой смысл если все опкоды одинаковые?
ну как же тогда понтоваться "у нас компиляция настоящая, а у вас понарошку"
источник

AK

Andrey Konovalov in Modern::Perl
Vadim Goncharov
есть опкоды = есть компиляция
Это прекрасно, но как только в параллельном измерении изобретут  perl-процессор или хотя бы процессор для байт-кодов perl - сразу же можно будет перебираться в счастливое параллельное будущее.
источник

VO

Vyacheslav Olkhovchenkov in Modern::Perl
одна нация один народ один опкод
источник

EV

Evgeniy Vansevich in Modern::Perl
Прям имя для Б-г - Опкод. Древним Египтом попахивает
источник

EV

Evgeniy Vansevich in Modern::Perl
Секта свидетелей Опкода
источник

VO

Vyacheslav Olkhovchenkov in Modern::Perl
ваш опкод не настоящий! самозванец!
источник

VG

Vadim Goncharov in Modern::Perl
Andrey Konovalov
Это прекрасно, но как только в параллельном измерении изобретут  perl-процессор или хотя бы процессор для байт-кодов perl - сразу же можно будет перебираться в счастливое параллельное будущее.
побенчить строковый eval ты можешь прям щас, в нашем, перпендикулярном, мире
источник

OP

Oleg Pronin in Modern::Perl
Vadim Goncharov
побенчить строковый eval ты можешь прям щас, в нашем, перпендикулярном, мире
Иии ?? Будет достаточно много. Например
perl -MBenchmark -E 'timethis(-1, sub { my $sub = eval "sub { return time() }" })' timethis for 1:  1 wallclock secs ( 1.00 usr +  0.00 sys =  1.00 CPU) @ 61440.00/s (n=61440)

А теперь забенчмаркай простейший
gcc -c file.c

И ты увидишь сем отличается компиляция от простого парсинга
источник

VG

Vadim Goncharov in Modern::Perl
ааа, ну то есть секта тех, кто думает, что "компиляция" бывает только в машинный код
источник

AP

Anton Petrusevich in Modern::Perl
слуште. ну вот есть javac, он же точно не в маш. код компилирует, в курсе, да?
источник