Size: a a a

Compiler Development

2020 July 06

M

MaxGraey in Compiler Development
Вообще эту дискуссию предлагаю продолжить в этом чате:
https://t.me/LanguageDev
источник

К

Константин in Compiler Development
Есть тут вообще кто разбирал AS3 и его машину?
Должны быть олдфаги.

Тут про операцию 1 вопрос. @maxgraey ровно ту же, надо тестить конечно же на оригинале, и писать на асемблере.

Операция SWAP на стеке в 1 элемент.
В офлдоке написано, что она свапает 2 элемента стека, но не говорится что будет если стек пуст или 1
источник

M

MaxGraey in Compiler Development
Константин
Есть тут вообще кто разбирал AS3 и его машину?
Должны быть олдфаги.

Тут про операцию 1 вопрос. @maxgraey ровно ту же, надо тестить конечно же на оригинале, и писать на асемблере.

Операция SWAP на стеке в 1 элемент.
В офлдоке написано, что она свапает 2 элемента стека, но не говорится что будет если стек пуст или 1
Ну если сама оригинальная AVM не крашиться при этом, то просто игнорировать такие случаи видимо
источник

К

Константин in Compiler Development
MaxGraey
Ну если сама оригинальная AVM не крашиться при этом, то просто игнорировать такие случаи видимо
Как игнорить? Там стек операций.
AVM2 не крашлейт, 1 - да, она сбрасывает операции в undef
источник

К

Константин in Compiler Development
Лан, пойду писать на асме. Пытаться трейсить стек
источник

К

Константин in Compiler Development
MaxGraey
Ну если сама оригинальная AVM не крашиться при этом, то просто игнорировать такие случаи видимо
https://github.com/adobe/avmplus/blob/master/doc/bytecode/src/swap.dox
Вот, тут пишут что должен быть рантайм эксепшен.
Он просто крашит ядро
источник

К

Константин in Compiler Development
JPEX тоже говорит что там своп на неверном стеке, но там и скачек в непонятное место, возможно там стек пушится
источник

К

Константин in Compiler Development
А, это прикол с try/cache
источник

ВМ

Виталий Медоваров... in Compiler Development
сначала траим, потом кешируем
источник

К

Константин in Compiler Development
Ну тут странно. Те по сути тогда где-то нужно иметь свой стек в блоке, который под ним. Там операций то много может быть.

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

Upd.
Да, кач порождает своп. Но ек, у меня не падает. Ваще странно. пойду смотреть кодовую базу того, что падает.
источник

AG

Alex Gryzlov in Compiler Development
Eugene
idris2 разве не на первом идрисе написан?
уже нет, на втором
источник

E

Eugene in Compiler Development
Alex Gryzlov
уже нет, на втором
а расширение как было idr так и осталось :(
источник

AG

Alex Gryzlov in Compiler Development
там не так чтобы много отличий внешне
источник

AG

Alex Gryzlov in Compiler Development
в основном только что касается линейности/стирания
источник

AG

Alex Gryzlov in Compiler Development
Alexander Tchitchigin
Я с ходу на такой вопрос не могу ответить...
Призываю @clayrat и @igorjirkov на помощь. 😊
не очень понял вопрос
источник

А

Алексей in Compiler Development
try/cache это интересная идея, типа если получилось то кэшировать результаты и не выполнять в след раз
источник

К

Константин in Compiler Development
Алексей
try/cache это интересная идея, типа если получилось то кэшировать результаты и не выполнять в след раз
для этого нужно делать диффчек параметров, которые в него попадают.
Что порой дороже.
Те сторить стейты, с которым он не падает.
источник

К

Константин in Compiler Development
у меня прикольнее бага.
Я пол часа не могу понять, что он там делает.
Так как байкод отличается только лишними инструкциями.
источник

TS

Timur Safin in Compiler Development
Константин
у меня прикольнее бага.
Я пол часа не могу понять, что он там делает.
Так как байкод отличается только лишними инструкциями.
??
(зачем это нам? о чем это должно нам сказать?)
источник

RB

Rustem B. in Compiler Development
Константин
у меня прикольнее бага.
Я пол часа не могу понять, что он там делает.
Так как байкод отличается только лишними инструкциями.
байкод))
источник