The OpenNET Project / Index page

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



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

Оглавление

Утечка исходных текстов браузера Opera 12.15, opennews (??), 14-Янв-17, (0) [смотреть все] +1

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


115. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 16-Янв-17, 11:02 
> Реквестирую патч, кэп!

вон он, ниже. запусти оперу из цветочка (flower run, не забыв собрать с отладочными символами, там есть опция), она тогда сразу под gdb поедет. потом пойди, например, в opera:config — она сразу упадёт. вот перед той самой строкой, где упала — смело пихай мою строку.

по какой‐то причине gcc дурит, и без вызова функции с сайд‐эффектом пытается освободить nullptr. а если вызов есть, и в условии переменная фигурирует — всё нормально. я долго думать не стал, и просто засунул printf, не жалко. но пойдёт любая фигня — лишь бы компилятор не решил, что она там лишняя, и не выкинул вместе с условием.

p.s.: нет, просто проверка на NULL перед вызовом delete-враппера не катит. gcc в курсе, что delete можно вызывать на нулах, и условие убирает.

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

135. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от Анончик (?), 16-Янв-17, 23:15 
>[оверквотинг удален]
> поедет. потом пойди, например, в opera:config — она сразу упадёт. вот
> перед той самой строкой, где упала — смело пихай мою строку.
> по какой‐то причине gcc дурит, и без вызова функции с сайд‐эффектом пытается
> освободить nullptr. а если вызов есть, и в условии переменная фигурирует
> — всё нормально. я долго думать не стал, и просто засунул
> printf, не жалко. но пойдёт любая фигня — лишь бы компилятор
> не решил, что она там лишняя, и не выкинул вместе с
> условием.
> p.s.: нет, просто проверка на NULL перед вызовом delete-враппера не катит. gcc
> в курсе, что delete можно вызывать на нулах, и условие убирает.

А не может ли тут помочь -fno-delete-null-pointer-checks?

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

139. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 16-Янв-17, 23:38 
>> p.s.: нет, просто проверка на NULL перед вызовом delete-враппера не катит. gcc
>> в курсе, что delete можно вызывать на нулах, и условие убирает.
> А не может ли тут помочь -fno-delete-null-pointer-checks?

может и может, я не пробовал: этих -f в gcc так много, что я их все не помню, а читать лениво. ;-)

в принципе, компилятор *не* *должен* удалять *внутреннюю* проверку (delete же по стандарту обязана, то есть, компилятор обязан) — и он не удаляет нигде, кроме вот этого одного места. чем это место такое особенное — я не знаю. где‐то оптимизатор споткнулся. попробую собрать с этим флагом ради интереса сейчас.

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

140. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от Анончик (?), 16-Янв-17, 23:39 
>>> p.s.: нет, просто проверка на NULL перед вызовом delete-враппера не катит. gcc
>>> в курсе, что delete можно вызывать на нулах, и условие убирает.
>> А не может ли тут помочь -fno-delete-null-pointer-checks?
> может и может, я не пробовал: этих -f в gcc так много,
> что я их все не помню, а читать лениво. ;-)
> в принципе, компилятор *не* *должен* удалять *внутреннюю* проверку (delete же по стандарту
> обязана, то есть, компилятор обязан) — и он не удаляет нигде,
> кроме вот этого одного места. чем это место такое особенное —
> я не знаю. где‐то оптимизатор споткнулся. попробую собрать с этим флагом
> ради интереса сейчас.

Ну у меня падал релизный билд прямо на спид-диале, с -fno-delete-null-pointer-checks вроде работает и пока не падает.

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

141. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 16-Янв-17, 23:55 
> Ну у меня падал релизный билд прямо на спид-диале, с -fno-delete-null-pointer-checks вроде
> работает и пока не падает.

да, на спиддиале тоже падал, надо было только чуть‐чуть подождать. с opera:config просто быстрее, а так в одном и том же месте рушился. и не только на спиддиале — на куче сайтов, на самом деле.

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

142. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 17-Янв-17, 00:08 
> Ну у меня падал релизный билд прямо на спид-диале, с -fno-delete-null-pointer-checks вроде
> работает и пока не падает.

да, ты прав, больше не падает. спасибо, это однозначно лучше, чем мой кривохак с printf.

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

144. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от Анончик (?), 17-Янв-17, 00:41 
>> Ну у меня падал релизный билд прямо на спид-диале, с -fno-delete-null-pointer-checks вроде
>> работает и пока не падает.
> да, ты прав, больше не падает. спасибо, это однозначно лучше, чем мой
> кривохак с printf.

Да не за что, как там с караканом дела?

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

146. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 17-Янв-17, 01:04 
> Да не за что, как там с караканом дела?

с наскоку — как и полагается — не очень получилось. то есть, оно работает, но не совсем так, как надо. большинство кода, конечно, этого не заметит, потому что почти никто не перемешивает в одной функции let, var и дикий реюз имён — а я откатил свой мусор, и захачил let при помощи переписи его в `let a;` -> `var a = undefined;`. но как понимаешь, это неправильная реализация.

complier.addVariable умеет то, что мне надо, но требуется ещё вхачить специальный скоуп, который будет за собой убирать локалы по выходу из ES_BlockStmt (и создавать по входу). а в визиторе, который собирает локалы по функции, сделать пару хаков, чтобы он не создавал let'ные.

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

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

147. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 17-Янв-17, 01:11 
p.s.: а вот парзер у них очень забавно сделан: с ручным управлением стеком. то есть, парзер имеет свой стек, куда суёт выхлоп лексера и ещё чуть‐чуть всякого, а потом из этого стека достаёт. видимо, они так сделали, чтобы иметь возможность руками контролировать глубину рекурсии. пазер выражений тоже на ручном push/pop в массив‐ака‐стек.
Ответить | Правка | К родителю #144 | Наверх | Cообщить модератору

157. "Утечка исходных текстов браузера Opera 12.15"  +2 +/
Сообщение от arisu (ok), 17-Янв-17, 12:02 
> Да не за что, как там с караканом дела?

function test () {
  let v = 69;
  {
    let v;
    v = 42;
    print(v);
  }
  print(v);
  return v;
}

print(test());

и на выходе:
42
69
69

да, я знаю, что это, в принципе, не совсем валидный es6. неважно.

p.s.: патч ещё не готов, это только первый тест, который не сегфолтится и похож на правду. но принцип, судя по всему, работает. ужасно медленно (линейный поиск по всей таблице локалов каждый раз), но неважно — ускорить потом проблемой не будет.

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

p.p.s.: возможно, это поломает стрекозу, потому что теперь несколько переменных могут иметь одно имя. возможно, стоит их переименовывать потом, но пока я считаю, что работоспособность let (хоть частичная) важнее, чем стрекоза.

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

171. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 18-Янв-17, 12:58 
ну и раз уж я тут: более‐менее переписал тот хтонический ужос, который родил изначально. сделаю тесты, погоняю «вживую» и выложу. лишь бы не забыть.
Ответить | Правка | Наверх | Cообщить модератору

203. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 21-Янв-17, 01:48 
> ну и раз уж я тут: более‐менее переписал тот хтонический ужос, который
> родил изначально. сделаю тесты, погоняю «вживую» и выложу. лишь бы не
> забыть.

ага. тесты рулят и жгут. а отсутствие нормального сна — не очень. я совсем забыл, что внутри вложеных функций тоже код, и он может обращаться к переменным родителя. и вот тут у нас случается полная беда, потому что компилятор собирает все вложеные функции в кучку, и обрабатывает тоже кучкой, перед основным кодом. отличное решение для старого js, очень плохое для нового. я пока не совсем понимаю, как и когда создаются замыкания (в смысле объектов компилятора). без этого вариант решения есть, он будет работать, но убьёт производительность на корню: перед каждым блоком с let запоминать «перекрытые» (буде такие будут) переменные во временных регистрах, блок оборачивать в try/finally, в finally восстанавливать.

увы, try/finally в каракане наглухо отключает value tracking (это DFA/CSE отимизации) для всей функции. как и `with`, кстати — это два performance killers. поэтому решение мне не нравится.

решение иметь отдельный стек «перекрытых» переменных и восстанавливать их буквально в каждом операторе, который меняет code flow — ещё хуже. работать, может, и будет, но обгадит весь код (каракана).

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

p.p.s.: простое добавление `let` как синонима `var` позволяет где‐то треть скриптов с `let` запускать. но это не наш путь, конечно.

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

210. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 21-Янв-17, 10:51 
окей, никто это не читает, но мне всё равно интересно писать. итого, реализация распадается на две: «быструю» (переименование) — для случаев, когда в коде нет замыканий, и «медленную» (try/finally), когда замыкания есть. в принципе, «медленная» вполне способна справиться с обоими случаями, но она таки медленная, потому что отключает каракановский оптимизатор. а каракан и так скоростью не блещет, если на каждом скрипте, где случайно `let` встретился (все новые es6 скрипты, в принципе), идти медленным путём — будет совсем плачевно.

к сожалению, чтобы сделать это всё правильно и без замедлений, надо переписать парзер и компилятор, достаточно сильно. по крайней мере, я другого пути не вижу. вышеописаные хаки хоть и хаки, но относительно понятные и сопровождаемые. а если хачить парзер‐компилер без переписи — это будет совсем невнятная кодокаша.

пока что имею рантаймовую настройку «let как синоним», что позволило хотя бы некоторые свои скрипты более‐менее запустить. но выкладывать этот патч смысла не вижу.

p.s.: чёрт, а `of`-то — не ключевое слово. поломало стрекозу (которая из гита). пришлось понизить в статусе назад до простого идентификатора.

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

211. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от Mihail Zenkov (ok), 21-Янв-17, 13:48 
> окей, никто это не читает

Читать то - читаем, просто помочь не можем, ввиду отсутствия подобного опыта и знаний.

P.S. Если допилить их js движок окажется очень сложно, насколько сложно прикрутить чужой js движок?

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

212. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 21-Янв-17, 14:09 
>> окей, никто это не читает
> Читать то - читаем, просто помочь не можем, ввиду отсутствия подобного опыта
> и знаний.

да ладно, я рисуюсь, конечно. но спасибо, иногда даже просто «keep it up» (или «да ты балабол!») помогают.

> P.S. Если допилить их js движок окажется очень сложно, насколько сложно прикрутить
> чужой js движок?

сильно‐сильно сложнее. у каракана своя… как бы это сказать поприличней… «экосистема», пардон май фрэнч. форматы объектов, API, идеи о том, как он себя ведёт — это вот всё. чтобы заменить — фактически, надо знать *точно* как работает каракан, и вдобавок обладать столь же глубокими знаниями о другом движке. конечно, сразу отвалится стрекоза — что для меня потеря невосполнимая, например. короче: заменить намного сложнее.

тут дело даже не в том, что допилить каракан сложно, а в том, что не хочется в нём откровенно гадить: там очень чисто и культурно всё. а тут я такой, с пивными банками, окурками, сэмками везде плевать… как жывтоне какое‐то. фу.

я пока не понимаю, как он смотрит во внешние области видимости для создания замыканий. скорее всего, можно без try/finally трюка, но надо понять эту часть. автора бы на интервью…

а вот что реально сложно сделать, например — это yield. если let — всего лишь вопрос правильно сгенерированого кода для VM, то с yield всё значительно хуже: это требует переделки «нативного» кодогенератора. то есть, двигатель попросту не умеет в ситуацию, когда надо заморозить выполнение функции, а потом с этого же места продолжить. опять же: это можно обойти при помощи генерации cps-кода, но тогда про эффективность можно забыть навсегда. поэтому за yield я даже не возьмусь. по крайней мере не раньше, чем пойму, как там всё‐всё работает (что малореально).

p.s.: точнее, в заморозить‐продолжить умеет, но именно с места заморозки, не выполняя между этим другого кода. и да, трюк с try/finally я потихоньку реализовываю, что уж тут. тоже некрасиво, но…

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

214. "Утечка исходных текстов браузера Opera 12.15"  –1 +/
Сообщение от Michael Shigorinemail (ok), 21-Янв-17, 14:51 
> автора бы на интервью…

У меня был знакомый, ушедший из оперы (а может, и два даже) -- поискать контакты, вдруг дальше подскажут, кому пива заказать? :)

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

217. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 22-Янв-17, 03:33 
>> автора бы на интервью…
> У меня был знакомый, ушедший из оперы (а может, и два даже)
> -- поискать контакты, вдруг дальше подскажут, кому пива заказать? :)

авторы‐то все в исходниках указаны. в частности, за интересующие меня части отвечал Jens Lindstrom. проблема в том, что вряд ли он имеет возможность рассказывать про свою прошлую работу, нарушая NDA, да ещё и на основе «краденого» материала. поэтому просить у него консультаций было бы неэтично: зачем ставить человека в заведомо проигрышное положение, когда любой ответ так или иначе неприятен/неудобен?

хотя, конечно, если ему кто‐то даст знать, и он посчитает, что консультации не создадут ему проблем… не просить о них, а просто дать знать.

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

215. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 21-Янв-17, 20:53 
Я читаю, хоть и ничего не понимаю) - душа болит за угробленный Presto. И рад, что хоть кто-то что-то делает.

P.S. У меня тоже такое бывает - начинаю что-то фиксить не до конца разобравшись, - быстрее входишь в курс по ходу дела. Хотя серьёзные вещи не запилить без полного понимания, больше вероятности что-то отломать. Бывает, приходится переписать с нуля, если оно того стоит. Только я люблю правильные и расширяемые решения, чтобы сделать, так на совесть, и чтобы потом уже не переделывать.

P.P.S. В общем, по делу я сказать ничего не могу, потому: Так держать! :)

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

216. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 22-Янв-17, 03:16 
> Я читаю, хоть и ничего не понимаю) - душа болит за угробленный
> Presto.

та же эф. тем более после того, как я код увидел: это же сказка! я давно уже в жизни не видел настолько красивого внешне и внутренне проекта. с ним просто в кайф работать.

и заодно убедился в том, что подозревал изначально: все разговоры про «престо перестал успевать в современный веб и аккумулирует хаки» — маркетинговый bullshit, который манагеры гнали чтобы оправдать убийство оперы. поэтому фразы про «протухший» и «не умеет в современность» мгновенно триггерят во мне ЗЛО. если я один в принципе могу тянуть любую из частей после двух‐трёх недель въезжания, то команда оперы без труда бы справилась. и нет там кодокаши. кодокаша — это gecko. это webkit (раньше был чуть меньше gecko, сейчас не знаю). вот это — кодокаша.

> P.S. У меня тоже такое бывает - начинаю что-то фиксить не до
> конца разобравшись, - быстрее входишь в курс по ходу дела.

тут иначе и не получилось бы. я вполне сознательно выбрал `let` — то есть, я ожидал этих всех проблем. благо, компиляторы писал, и js-ные тоже. нет, я, конечно, мечтал, что там уже всё есть, а мне только какой‐нибудь ifdef поменять… ничего, у меня ещё столько гениальных идей! ;-)

> Бывает, приходится переписать с нуля, если оно того стоит.

переписать кое‐что стоило бы, конечно. но тогда у твоих детей уже дети будут, когда я закончу. не совсем то, чего хотелось бы. ;-)

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

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

> P.P.S. В общем, по делу я сказать ничего не могу, потому: Так
> держать! :)

спасибо. когда знаешь, что кто‐то смотрит, даже лентяйничать приятней, а работать тем более. ;-)

по ходу дела: я и забыл, насколько крутая штука fit-to-width. всё больше сайтостроителей отчего‐то уверены, что у меня экран в пять метров шириной, и я обязательно на весь экран разверну браузер.

и ещё: несмотря на то, что опера отрисовывается визуально чуть медленней, чем Pale Moon, в целом сайты рендерятся — парадоксально — быстрее. а вот попытка зафорсить вывод с hw-акселерацией периодически намертво вешает вегу. надо будет потом полезть и в неё: может, если не починить, так хоть понять удастся, что за ерундень.

p.s.: а вы знали, что уже установленую десктопную оперу (как минимум версий до девятой) можно было встраивать в свои софтины как html engine? причём API для этого чисто сишный. читать модуль adjunct/embrowser. я не уверен, что этот модуль актуален, но если что — его можно реанимировать.

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

229. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 24-Янв-17, 00:04 
> опера отрисовывается визуально чуть медленней, чем Pale Moon, в целом сайты рендерятся — парадоксально — быстрее

C отрисовкой было 2 парадигмы: либо отображать страницу сразу же после полной загрузки (по умолчанию в Presto) либо подгружать и отображать по частям (как в других браузерах; у Presto в этом режиме иногда всплывает баг недозагрузки страниц). Если я ничего не путаю, и если в 12-й ветке это не отломали (а они кое что успели отломать), то эта настройка по идее д.б. и сейчас.

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

235. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 24-Янв-17, 06:18 
> C отрисовкой было 2 парадигмы: либо отображать страницу сразу же после полной
> загрузки (по умолчанию в Presto) либо подгружать и отображать по частям
> (как в других браузерах; у Presto в этом режиме иногда всплывает
> баг недозагрузки страниц). Если я ничего не путаю, и если в
> 12-й ветке это не отломали (а они кое что успели отломать),
> то эта настройка по идее д.б. и сейчас.

всё вообще не так, пардон. опера всегда умела перемежать парзинг, лайаутинг и рендеринг, и посейчас умеет. это спокойно регулируется в настройках, можешь хоть вообще таймаут на рендер убрать. при этом опера *визуально* и «на уровне ощущений» — быстрее. в основном за счёт общей отзывчивости: закрытие таба, например, в опере *мгновенно* перекитывает на один из старых, а у Pale Moon — весьма ощутимая пауза.

и нет, «баг недозагрузки страниц» не имеет отношения к рендеру, он имеет отношение к кривым скриптам и рекламным хламосайтам. я этого «бага» не видел в опере много лет — с тех пор, как перевёл JS в режим белого списка и побанил большинство рекламной $#%%^@^&.

p.s.: «видузально». теперь вот думаю, что это я написать хотел.

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

255. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 24-Янв-17, 21:09 
> «баг недозагрузки страниц» не имеет отношения к рендеру, он имеет
> отношение к кривым скриптам и рекламным хламосайтам.

Возможно и так. Я как раз примерно в одно время игрался опциями отрисовки и очень многое тогда же забанил через urlfilter.

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

258. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 25-Янв-17, 07:08 
впрочем, он имеет какое‐то отношение к кэшу, конечно. когда опера не догружает нечто по таймауту, например — она иногда, похоже, пишет в кэш мусор. и потом его использует.
Ответить | Правка | К родителю #255 | Наверх | Cообщить модератору

218. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 22-Янв-17, 03:47 
кажется, я мало‐мало идиот. всё‐таки стек «запомненых» переменных должен быть решением. зачем try/finally, если при исключении всё равно без разницы, какие там значения у переменных были, а дальше их восстановит outer code block? ну ладно, придётся хачить break/continue — не самое страшное в жизни.

реализовал, кстати, «псевдоскопы» с with — так, чисто проверить концепт. то есть, примерно такую трансформацию:
  {
    print(v);
    let v = 69;
    print(v);
  }

в:
  var __tmp__ = {};
  with (__tmp__) {
    print(v);
    __tmp__.v = 69;
    print(v);
  }

почти работает (падает со вложеными функциями, потому что где‐то я пропустил момент установки флага «внутри with» — он из парзера устанавливается, зараза, а я трансформации уже в компиляторе делаю. но это так, крайний случай — медленно же до ужаса. попробую всё‐таки сделать вот это:
  {
    print(v);
    {
      var __old_v__ = v;
      v = 69;
      print(v);
      v = __old_v__;
    }
  }
это будет значительно быстрее, можно будет потом оптимизировать для случая «let никого не перекрывает» (вообще, если нет замыканий, то можно смело делать «let lifting», повышая все let-ы до var-ов), да вдобавок — в отличие от with — это не убивает value tracking (aka оптимизатор). придётся только захачивать в break/continue вместо простого jmp восстановление.

кто удивился, откуда выше взялся вложеный кодовый блок — неявно добавился анализатором. чтобы границы запоминания‐восстановления были чётко по границам блоков, так проще. а кодогенератору без разницы, есть там блок или нет, он на переходы смотрит.

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

261. "Утечка исходных текстов браузера Opera 12.15"  +2 +/
Сообщение от arisu (ok), 25-Янв-17, 08:22 
опять рандомный репорт под рандомным комментарием: я нечаянно реализовал `let` лучше, чем надо по стандарту. оказывается, `let` — это на самом деле просто похаченый `var`, а не полноценная конструкция. то есть, по стандарту оно делает именно то, что делаю я — сохраняет и восстанавливает перекрытые переменные — но не с места, где встретился `let`, а с самого начала блока, где `let` живёт.

мораль: не думайте о людях лучше, чем следует.
ещё мораль: резать к чёртовой матери, не дожидаясь перитонитов! ломать, то есть, красивую реализацию.

примечание: не считая этой ерунды и одного бага с перекрытием глобалов, всё очень похоже на работоспособное.

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

263. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 25-Янв-17, 21:26 
> ещё мораль: резать к чёртовой матери, не дожидаясь перитонитов! ломать, то есть,
> красивую реализацию.

Такого же мнения.
Поддерживать костыли имеет смысл, когда делаешь правки на уже работающей системе. В ситуации как сейчас, лучше отламывать костыли ради правильного, однозначного и понятного кода, и если что-то всплывёт (т.е. упадёт), разбираться и фиксить по месту. Я уверяю, - бесплатных тестеров ради ИДЕИ, которые готовы будут погонять развивающуюся Opera Classic, будет предостаточно! Успевайте только давать скомпиленые версии, чтобы люди не мучились :)

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

275. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 26-Янв-17, 10:52 
продолжаем рандомные репорты: ALL TESTS ARE GREEN! даже вот такие извращения:

b = 666;
c = 669;

function test () {
  let a = [1, 69, 2, 42, 8];
  print(a);

  for (let b of a) {
    print(b);
  }
  ++b; // here our engine should use global
  print("last b: "+b);
  print("last c: "+c);
}


test();
print("global b: "+b);
print("global c: "+c);


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

279. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 26-Янв-17, 16:28 
%#?:%"#»% насос, да. совсем забыл, что по легенде let создаёт новые переменные. это неважно ни для чего кроме… замыканий, падла. соответственно, замыкания вместо upvalue получают полную фигню. если бы я мог менять семантику байткода — это решилось бы влёт. но по очевидным причинам я не могу, поэтому придётся опять хаки накручивать. тоскую. плачу. ем позапрошлогодний орбитбезсахара.
Ответить | Правка | К родителю #275 | Наверх | Cообщить модератору

163. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 17-Янв-17, 16:12 
> Да не за что, как там с караканом дела?

ещё обнаружил, что каракан не умеет в `for (let a of arr) …`. но это проще, это я могу просто в обычный for ещё в парзере преобразовать.

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

167. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 18-Янв-17, 06:29 
> ещё обнаружил, что каракан не умеет в `for (let a of arr)
> …`. но это проще, это я могу просто в обычный for
> ещё в парзере преобразовать.

не, преобразовывать некрасиво (а точнее, сложно, потому что надо заводить AST nodes для временных переменных, считать их…). сделал вместо этого нормально, с правильным кодогенератором и скрытыми temporaries в регистрах.

понятно, что нормальный SSA они не стали делать из‐за потерь скорости в компиляторе. но так руки чешутся! оно там даже некие «псевдо‐фиты» расставляет (потому что оптимизатор умеет в не очень сложное DFA и CSE).

кстати, оптимизатор иногда ещё и циклы анроллит. под какое настроение — пока не смотрел.

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

168. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 18-Янв-17, 06:34 
кусочек патча вам, нерабочего. для тех, кто не верит в ведущиеся работы. умные поймут.

http://dpaste.com/0ZV9MY9

p.s.: говноингриш, я знаю. увы.

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

225. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от dimcha (??), 23-Янв-17, 15:19 
> кусочек патча вам, нерабочего. для тех, кто не верит в ведущиеся работы.
> умные поймут.
> http://dpaste.com/0ZV9MY9

лень-таки одолела или каракан еще препарируется? Очень хочется узнать вести с полей.

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

226. "Утечка исходных текстов браузера Opera 12.15"  +2 +/
Сообщение от arisu (ok), 23-Янв-17, 16:02 
>> кусочек патча вам, нерабочего. для тех, кто не верит в ведущиеся работы.
>> умные поймут.
>> http://dpaste.com/0ZV9MY9
> лень-таки одолела или каракан еще препарируется? Очень хочется узнать вести с полей.

нет, пока не одолела. как раз в процессе очередной переписи (так каждый раз: чем глубже понимаю код, тем опять всё переписывать ;-). новая реализация уже поддерживает `for (let v…)` и замыкания. остались break/continue и try/catch — тоже требуют специальной обработки. а потом поверх накатить анализатор, который уберёт лишние копирования (не обязательно, но приятно).

не то, чтобы каждый из предыдущих вариантов не мог работать — просто каждый новый проще, а код делает пошустрей. теперешняя реализация даже немного сотрудничает с value propagation. она не совсем верная, но нафиг эти corner cases: не надо так код писать; да и в es6 strict это запрещено.

по дороге чиню всякую мелочёвку типа ненужного автоматического добавления «http://» к шаблонам urlfilter типа «||example.com/*».


реализую таки путём переписи
let v = xxx;
<smth>
в
{
  __tempregX__ = v;
  <smth>
  v = __tempregX__;
}

это, всё‐таки, самый нормальный вариант, и позволяет не отрубать наглухо оптимизатор.

p.s.: мне, собственно, не жалко было бы текущее состояние дел показать в виде патча, но он размазан по истории, надо собирать в кучу, очищать от случайного мусора и отладки, которые совсем в других местах сидят, и всё такое. морока.

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

238. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от операст со стажем (?), 24-Янв-17, 06:50 
> по дороге чиню всякую мелочёвку типа ненужного автоматического добавления «http://»
> к шаблонам urlfilter типа «||example.com/*».

К слову, этой ерунды когда-то не было. Введенные строки сохранялись как есть. Поведение изменилось приблизительно в то время когда urlfilter научили синхронизироваться (и добавили метки uuid). Так что годно.

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

239. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 24-Янв-17, 07:03 
>> по дороге чиню всякую мелочёвку типа ненужного автоматического добавления «http://»
>> к шаблонам urlfilter типа «||example.com/*».
> К слову, этой ерунды когда-то не было. Введенные строки сохранялись как есть.
> Поведение изменилось приблизительно в то время когда urlfilter научили синхронизироваться
> (и добавили метки uuid). Так что годно.

оно, в принципе, удобно. и добавляет не всегда, пытается понять, когда не надо. просто когда для расширений добавили фильтры типа «||example.com/*», то UI поправить забыли, и оно о таких фильтрах не знает. а это очень удобные фильтры, потому что они обозначают «любой протокол, включая поддомены». без «||» для этого надо два фильтра: отдельно на основной домен, и отдельно на поддомены. и они медленней.

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

240. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 24-Янв-17, 07:07 
>> по дороге чиню всякую мелочёвку типа ненужного автоматического добавления «http://»
>> к шаблонам urlfilter типа «||example.com/*».
> К слову, этой ерунды когда-то не было. Введенные строки сохранялись как есть.
> Поведение изменилось приблизительно в то время когда urlfilter научили синхронизироваться
> (и добавили метки uuid). Так что годно.

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

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

254. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 24-Янв-17, 17:08 
рипорт апдате в рандомный пост. на вторую неделю до Зоркого Глаза дошло, что вместо жестокого переписывания AST внутри компилятора (это чревато ошибками связности — хоть в данном случае они и не проявляются) можно сделать новую ноду‐наследника ES_BlockStmt, которая будет сохранять и восстанавливать переменные. а потом вставлять её прямо в парзере, чисто, красиво и лаяй^w^w.

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

тем временем правильно заработали break и continue, пока без меток.


также появилось мнение, что гадить в опеннет блогозаписями (по сути‐то) стало несколько неудобно. аноны‐анончики, а какой сечайс есть блогосервис, чтобы скриптами не обвешан, мозги не насиловал, не грузил 100500 петабайт мусора вместе со страницей и вам удобно было следить? предлагайте свои предложения — и уедем туда, может быть, со всей этой лабуденью?

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

256. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 24-Янв-17, 21:15 
> также появилось мнение, что гадить в опеннет блогозаписями (по сути‐то) стало несколько
> неудобно. аноны‐анончики, а какой сечайс есть блогосервис, чтобы скриптами не обвешан,
> мозги не насиловал, не грузил 100500 петабайт мусора вместе со страницей
> и вам удобно было следить? предлагайте свои предложения — и уедем
> туда, может быть, со всей этой лабуденью?

Поддерживаю! Всё толковое, что касается сабжа, надо бы обязательно перенести.
Я предлагаю на конфе ру-боарда в разделе "Программы" создать отдельную тему. Есть там и отдельный форум "Варез", который закрыт для незагереных пользователей; можно там запостить тему.
Ру-боард очень прост, почти ничего лишнего - всё летает. Некоторые ненужные штуки почикал с помощью UserCSS - простой таблично-линейный вид.

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

259. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 25-Янв-17, 07:10 
> там и отдельный форум "Варез", который закрыт для незагереных пользователей

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

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

262. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 25-Янв-17, 21:17 
> я принципиально за то, чтобы анонимус мог читать и писать
> свободнобезрегистрациибезсмс.

На Ру-боарде плюс в том, что это единственное оставшееся место, где общаются фаны старой Оперы. Кроме 3,5 человек там реально много людей, кому это интересно; когда всплыла инфа о сабже, то люди весьма оживились!
Я думаю, что проще всего зарегиться одному человеку (там, кстати, не надо никаких смс; при регистрации указывается только e-mail), чем всем мониторить ещё один ресурс. Но, как бы то ни было, я запостил там Ваши требования, и один человек даже предлагает развернуть свой собственный бесплатный форум для тех, кто будет допиливать Opera Claccic; короче вот обсуждение: http://forum.ru-board.com/topic.cgi?forum=5&topic=48802&star...

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

281. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от andy (??), 27-Янв-17, 08:23 
>> там и отдельный форум "Варез", который закрыт для незагереных пользователей
> нет путей. я принципиально за то, чтобы анонимус мог читать и писать
> свободнобезрегистрациибезсмс.

В итоге чем закончился поиск хостинга? Ты так и остался на
форуме opennet? ;)

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

282. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 27-Янв-17, 08:49 
> В итоге чем закончился поиск хостинга? Ты так и остался на
> форуме opennet? ;)

я и не искал, я ждал предложений от анонимусов (ну, и не совсем анонимусов). парочка поступила, но энтузиазма не наблюдаю. то есть, видно, что читать простыни людям неинтересно — а потому пусть будет опеннет с краткими отчётами.

судя по всему, те, кто что‐то с кодом делает — я да iSage. то есть, расписывать внутреннее устройство кодовой базы не для кого. ну, мне же легче. подумываю о том, чтобы выложить патч как есть, написать пару строк о том, что там надо допилить — и тоже в тень уйти. это я не угрожаю и не требую восхвалений с просьбами остаться, это я подустал просто. в том числе и от просьб. опеннет в этом плане самый приличный, кстати, оказался: читают, радуются, не пристают. ;-)

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

283. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от andy (??), 27-Янв-17, 09:23 
> судя по всему, те, кто что‐то с кодом делает — я да
> iSage. то есть, расписывать внутреннее устройство кодовой базы не для кого.

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

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

Понятное дело, энтузиазм иссякает, а когда еще и знаешь, что будут
пользоваться наработками полтора человека, то и ценность
производимых работ как-то теряется. А для себя можно и потерпеть :)

> в том числе и от просьб. опеннет в этом плане самый приличный, кстати,
> оказался: читают, радуются, не пристают. ;-)

А где пристают и требуют?

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

284. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 27-Янв-17, 09:47 
>> судя по всему, те, кто что‐то с кодом делает — я да
>> iSage. то есть, расписывать внутреннее устройство кодовой базы не для кого.
> Думаю, что это отчасти связано с тем, что работа с исходным кодом
> Оперы
> лежит вне правового поля.

а также с тем, что «иметь» хотят многие, а «делать» — почти никто.

> Понятное дело, энтузиазм иссякает, а когда еще и знаешь, что будут
> пользоваться наработками полтора человека, то и ценность
> производимых работ как-то теряется. А для себя можно и потерпеть :)

для себя я как раз терпеть и не собираюсь. и энтузиазм никуда не девается. просто «для себя» можно не напрягаться особо: фигачить любой обезьянокод, лишь бы собралось и не падало (хотя бы не очень часто). и тупо заниматься вандализмом, вырезая «с концами» всё, что мне неинтересно — вместо нежного твикования.

те же let: да мне нафиг не упёрся JIT в каракане, мне вообще наплевать на скорость js. для себя я могу просто вырвать JIT, добавить в VM несколько команд — и всё работает.

>> в том числе и от просьб. опеннет в этом плане самый приличный, кстати,
>> оказался: читают, радуются, не пристают. ;-)
> А где пристают и требуют?

очевидно же: в других местах. ;-)

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

285. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от andy (??), 27-Янв-17, 10:04 
> очевидно же: в других местах. ;-)

Какие вести с полей? Будешь патчи культурно
оформлять или рано еще?

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

286. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 27-Янв-17, 10:20 
> Какие вести с полей? Будешь патчи культурно
> оформлять или рано еще?

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

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

306. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 29-Янв-17, 13:01 
я всё ещё не умер, мне просто очень не хочется делать придуманый хакфикс: он отвратителен. поэтому я откладываю — в надежде на то, что придумаю что‐нибудь получше. если в ближайшее время (дни‐недели‐года, как‐то так) не придумаю, то придётся так.
Ответить | Правка | К родителю #285 | Наверх | Cообщить модератору

287. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от челсруборды (?), 27-Янв-17, 13:47 
>> В итоге чем закончился поиск хостинга? Ты так и остался на
>> форуме opennet? ;)
> я и не искал, я ждал предложений от анонимусов (ну, и не
> совсем анонимусов). парочка поступила, но энтузиазма не наблюдаю. то есть, видно,
> что читать простыни людям неинтересно — а потому пусть будет опеннет
> с краткими отчётами.

Пользователь timsky [ http://forum.ru-board.com/topic.cgi?forum=5&topic=48802&star... ] для обсуждения исходников Oперы 12.15 поднял форум [ http://forum.timsky.ru/ ] :
> Гости имеют возможность создавать темы, отвечать и прочее.
> Регистрироваться не обязательно, но желательно.
> Регистрация без капчи и подтверждения.
> Вбил логин, пароль, мыло - и вперёд!
> Приглашайте кого хотите

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

289. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 27-Янв-17, 14:38 
спасибо. однако форум и бложег — вещи разные. в бложеге я королева сцены, пишу простыни и всё такое. а форум — он и здесь терпимый, да и интерфейс приятней.
Ответить | Правка | К родителю #287 | Наверх | Cообщить модератору

290. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от Mihail Zenkov (ok), 27-Янв-17, 15:28 
> спасибо. однако форум и бложег — вещи разные. в бложеге я королева
> сцены, пишу простыни и всё такое. а форум — он и
> здесь терпимый, да и интерфейс приятней.

Здесь уже месиво из постов. На форуме можно создавать отдельные темы по решению/обсуждению конкретных задач. Так сказать unix way: одна задача, одна тема. А самопровозглашенным королем территории Carakan ты и так останешься на долго, ибо пока никто даже и не помышляет вторгаться на эту территорию :)

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

292. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 27-Янв-17, 15:59 
> Здесь уже месиво из постов.

хаос всепобеждающ!

> А самопровозглашенным королем территории Carakan ты и так останешься на долго,
> ибо пока никто даже и не помышляет вторгаться на эту территорию
> :)

да я хоть сейчас все регалии сдам! только возьмите кто‐нибудь! ;-)


p.s.: уф. пол‐дня поисков для двух строчек патча. подарите мне кто‐нибудь запасную голову, эта болит.

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

293. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 27-Янв-17, 16:12 
> уф. пол‐дня поисков для двух строчек патча.

В хорошем коде патч из двух строк - серьёзный патч!

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

294. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 27-Янв-17, 16:17 
> однако форум и бложег — вещи разные. в бложеге я королева
> сцены, пишу простыни и всё такое.

Эти вещи как раз общие.
И у блога, и у форума в темах есть возможность написать неизменяемую шапку.
И у блога, и у форума в темах есть возможность вести дальнейшую переписку.

Другое дело, что Вы почему-то утеряли желание куда-то переходить...

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

295. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 27-Янв-17, 16:23 
как я писал — мне интересны сольные выступления. и тряпка, чтобы глупости из комментариев чистить. формат форума — это: «вот вам патч. любитесь.» в формате блога же можно рассказывать о том, что такое опера внутри, как я дошёл до жизни такой и почему все вокруг идиоты, один я стою умный в белом пальто.
Ответить | Правка | К родителю #294 | Наверх | Cообщить модератору

296. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от Mihail Zenkov (ok), 27-Янв-17, 17:18 
> как я писал — мне интересны сольные выступления. и тряпка, чтобы глупости
> из комментариев чистить.

Я думаю вакансия модератора на форуме также открыта :)

> в формате блога же можно рассказывать о том, что такое опера
> внутри, как я дошёл до жизни такой и почему все вокруг
> идиоты, один я стою умный в белом пальто.

Так сделай тему на форме "Внутренности carakan" или "Моя война за каракан" и пиши все что считаешь нужным.

На форуме плюс в том, что и остальные смогут параллельно создавать и обсуждать темы не мешая друг другу. В тоже время все будет соборно в одном форуме - проще и тебе и остальным - сразу видно кто над чем работает и какие проблемы кого волнуют.

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

297. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 27-Янв-17, 17:36 
>> как я писал — мне интересны сольные выступления. и тряпка, чтобы глупости
>> из комментариев чистить.
> Я думаю вакансия модератора на форуме также открыта :)

нененене. я в этом уже бывал неоднократно, больше не хочу.

> Так сделай тему на форме "Внутренности carakan" или "Моя война за каракан"
> и пиши все что считаешь нужным.

не то! ну вот не то, и всё тут. ;-)

> На форуме плюс в том, что и остальные смогут параллельно создавать и
> обсуждать темы не мешая друг другу. В тоже время все будет
> соборно в одном форуме - проще и тебе и остальным -
> сразу видно кто над чем работает и какие проблемы кого волнуют.

да никто ни над чем не работает. на руборде посмотри, например (откуда и форум пошёл) — там и собрать‐то некому, какой «работать»… понапихают риквестов — как обычно, — да и всё.

iSage разве что зазвать: может, он ещё не забил на ECC.

а я вот не хочу риквестов, кстати, они меня раздражают.

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

288. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 27-Янв-17, 14:32 
> я и не искал, я ждал предложений от анонимусов (ну, и не
> совсем анонимусов). парочка поступила, но энтузиазма не наблюдаю.

Поднят открытый форум http://forum.timsky.ru/ специально для тех, кто пилит код и для всех заинтересованных.
Регистрация осталась для тех, кто хочет региться. Можно зайти в "Вопросы форума" и потестить - сообщения и темы добавляются без регистрации, смс, капчей и т.п.

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

325. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от anonymous (??), 07-Фев-17, 22:52 
>[оверквотинг удален]
> что читать простыни людям неинтересно — а потому пусть будет опеннет
> с краткими отчётами.
> судя по всему, те, кто что‐то с кодом делает — я да
> iSage. то есть, расписывать внутреннее устройство кодовой базы не для кого.
> ну, мне же легче. подумываю о том, чтобы выложить патч как
> есть, написать пару строк о том, что там надо допилить —
> и тоже в тень уйти. это я не угрожаю и не
> требую восхвалений с просьбами остаться, это я подустал просто. в том
> числе и от просьб. опеннет в этом плане самый приличный, кстати,
> оказался: читают, радуются, не пристают. ;-)

а я бы почитал подробнее. Примерно раз в неделю берусь за оперу. Правда, у меня ситуация более безнадёжная: приходится отлаживать краши внутри блоков jit. пока могу сказать одно: рушится stack frame после выхода из jit блока. При этом jsshell работает нормально. Просто загадка какая-то.

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

331. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 07-Фев-17, 23:13 
> Правда, у меня ситуация более безнадёжная: приходится отлаживать краши внутри блоков
> jit. пока могу сказать одно: рушится stack frame после выхода из
> jit блока. При этом jsshell работает нормально. Просто загадка какая-то.

так, с ходу, очень похоже на то, что где-то кто-то мажет мимо нужной памяти, и повреждает какую-то фигню. или выравнивание. или таки инструкции «не те». увы: пытайся повторить на jsshell, иначе фиг ты чего отладишь, неудобно и пересобирать запаришься.

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

227. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 23-Янв-17, 16:09 
типа вот такого: http://dpaste.com/2B0D4CX

патч не накатится, конечно: вырван с мясом, с кусками, которые удаляют старые эксперименты, типа того.

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

236. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 24-Янв-17, 06:25 
> лень-таки одолела или каракан еще препарируется? Очень хочется узнать вести с полей.

также есть подозрение, что потом получится реализовать полноценный yield. если я правильно понял внутреннюю механику — есть шанс, что не придётся при этом полностью JIT отрубать и крушить VM кувалдой. соответственно, будут так любимые хипстерами и мной генераторы. а это, почитай, все модные‐стильные‐современные фичи es6 покрывает. промисы можно и шимом добавить из расширения/browser.js.

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

257. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 24-Янв-17, 21:19 
> промисы можно и шимом добавить из расширения/browser.js.

По моему, лучше такие штуки делать в основном коде, т.к. browser.js такая штука - каждый навернуть может, а потом ищи-свищи, почему что-то не работает...

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

260. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 25-Янв-17, 07:17 
это мечты. а жестокая реальность заключается как минимум в том, что мне промисы абсолютно неинтересны: они в моих скриптах не фигурируют — в отличие от `let` и `yield`. поэтому шим — лучшее, что я могу предложить. это если ты имел в виду реализацию в core, «как надо».

а если именно «гадить захардкоженым текстом, а не browser.js» — нит. browser.js предназначен именно для того, чтобы чинить всякие сайты; если кто‐то полезет и допишет в него ерунды — сам себе виноват. есть механизм, предназначеный именно для того, что надо сделать — следует его использовать, а не вбивать кувалдометром болты. я специально для этого проверку подписи в browser.js убрал.

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

246. "Утечка исходных текстов браузера Opera 12.15"  +2 +/
Сообщение от arisu (ok), 24-Янв-17, 11:38 
расскажу немного про то, что такое каракан внутри.

внутри это более‐менее стандартный компилятор в регистровую VM, написаный практически «по учебнику».

парзер сделан руками, и немного «шиворот‐навыворот»: вместо прямой рекурсии она отслеживается вручную, и парзер кладёт на стеки куски собраных AST для выражений и операторов. а потом из них строит AST повыше. сделано так для того, чтобы на устройствах, где со стеком напряг, не начинать rampage, когда всё становится плохо. внутри кода есть твики, указывающие максимальный уровень вложенности для парзера и подобное, поэтому поломать каракан очень‐очень глубокой глоткой нельзя (если в коде каракана нет ошибок, конечно ;-).

флажок «у нас есть try/finally или with», к сожалению, трекается внутри парзера, а не внутри компилятора. отчасти потому, что он нужен для кодогенерации вложеных функций, а к этому моменту (кодогенерации) вложеные функции уже собраны в отдельные объекты, и информация о точном месте их объявления утеряна.

практически всё выделение памяти в лексере/парзере/компиляторе делается в отдельном пуле, который потом выкидывается. во‐вторых, так быстрее, а во‐первых, опять таки позволяет удобней контролировать, сколько движку позволено выжрать.

компилятор в процессе создания кода пытается отслеживать значения локальных переменных и делать constant folding. периодически у него это получается. однако любое использование try/catch/finally и/или with отрубает эту функциональность наглухо для всей функции. также каракан может отрубить оптимизатор, если посчитает, что вложеные функции слишком сложные (расплывчатое понятие, да).

по некоторым причинам значения аргументов функции не отслеживаются, даже если аргументу явно присваивается какое‐то значение и его можно отслеживать. так что заводите локальные переменные, когда пишете js-код для оперы. ;-)

for и while, у которых известно количество повторений, компилятор может unroll'нуть. он там как‐то считает весовые коэффициенты и выгоду, но я не смотрел, как именно. если честно, я вообще не уверен, что от этого есть большая выгода. впрочем, см. ниже. это тоже часть оптимизатора, и тоже будет отрублена, если вдруг.

jit. он там есть. даже пытается выводить типы, отслеживать их изменение и периодически перекомпилировать код, если считает, что это будет полезно. компилируется не вся функция целиком, а кусками. базовый кусок — это выражение. потом набор выражений без переходов. у цикла, по‐моему, компилируется только тело (возможно, именно по этой причине оптимизатор пытается циклы разворачивать — чтобы помочь jit'у).

код компилятора вполне читабельный. есть документация по командам VM: краткая, но вполне достаточная для справочника. авторы знали про паттерн visitor, и кое‐где его используют. однако стадии Prepare и Compile не «запатернены»: скорее всего, писались первыми, а потом просто не было глубокого смысла делать код «модным».

нативного дизассемблера нет (или я долблюсь в глаза), но дизасм VM есть, конечно. впрочем, он включается только для standalone jsshell, а сама опера собрана без него.

в целом — каракан оставляет очень приятное впечатление и вполне поддаётся разбору. с jit'ами чуть сложнее (потому что один jit больше всего компилятора в целом), но при беглом осмотре они тоже вполне адекватны.


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

примечание: в течение этой недели с хвостиком я честно использую оперу как основной браузер. работает, не падает. прямо как настоящая.


p.s.: есть какой‐то интересный исходник, который — по идее — должен сохранять на диск сгенерированый код для VM. однако судя по тому, что в этом исходнике можно прочитать — он всего лишь обломок футарка (предыдущего js-двигателя), и для каракана такой фичи попросту не планировалось.

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

247. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от iSage (?), 24-Янв-17, 12:53 
> p.s.: есть какой‐то интересный исходник, который — по идее — должен сохранять
> на диск сгенерированый код для VM. однако судя по тому, что
> в этом исходнике можно прочитать — он всего лишь обломок футарка
> (предыдущего js-двигателя), и для каракана такой фичи попросту не планировалось.

Емнип, это используется турбо на сервере, клиенту отдается уже байткод

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

248. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 24-Янв-17, 13:04 
> Емнип, это используется турбо на сервере, клиенту отдается уже байткод

как минимум то, что там лежит — уже давно протухшее и нерабочее. даже несобираемое. возможно, была идея перевести обрезок с футарка на каракан. или просто забыли исходник, и он там гниёт потихоньку. в общем, он бесполезен, мусор.

то есть, ты прав в том, что это огрызок operette, но её у нас всё равно нет.

p.s.: не вводи народ в заблуждение на гт: каракан однопоточный. точнее, там cooperative multithreading. возможность сборки с «настоящими» потоками существует только для standalone, и то я не уверен, что оно будет нормально работать. вся opera core строго однопоточная внутри, без исключений почти.

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

249. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от andy (??), 24-Янв-17, 13:57 
> примечание: в течение этой недели с хвостиком я честно использую оперу как
> основной браузер. работает, не падает. прямо как настоящая.

Читаю тред с самого начала. Очень интересно, хотя исходников у меня нет.
Но, готов помочь с созданием rpm для Fedor'ы, если кому-то надо.
Хотелось бы узнать, сколько людей работает над утекшими исходниками?
arisu есть ли у тебя какой-нибудь кошелек, дабы люди могли твой энтузиазм
денежными переводами поддерживать?

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

250. "Утечка исходных текстов браузера Opera 12.15"  +3 +/
Сообщение от arisu (ok), 24-Янв-17, 14:19 
> Но, готов помочь с созданием rpm для Fedor'ы, если кому-то надо.

а смысл? то есть, любое желание помочь — это хорошо, спасибо, но делать пакеты… оперу можно без особых проблем запускать из одного каталога, утрамбовав туда же профиль. к тому же цветочек в принципе способен делать deb и rpm сам — при наличии соответствующих инструментов. он, собственно, и пытается сразу. проще нафантазировать себе исходники и проверить, действительно ли цветочек ещё не поломан.

> Хотелось бы узнать, сколько людей работает над утекшими исходниками?

вряд ли это кому‐то известно. в любом случае — думаю, что меньше десятка (хорошо, если хоть половина десятка ;-). в принципе, всё равно лучше, чем ноль.

> arisu есть ли у тебя какой-нибудь кошелек, дабы люди могли твой энтузиазм
> денежными переводами поддерживать?

нет. и я бы не показал в любом случае: это уже прямой путь к пативэну. пока что я просто вольно фантазирую на тему неких байтов, которые — прошу заметить — сам себе и придумал. а как только появляются деньги — в любом виде — позиция становится намного более шаткой.

тем не менее, спасибо: думаю, предложение было сделано от чистого сердца, и при других обстоятельствах я бы не отказался. будем надеяться, что всё‐таки случится чудо, и инопланетные мозговые слизни заставят операсофтваре открыть исходники под нормальной лицензией.

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

251. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от andy (??), 24-Янв-17, 15:16 
> вряд ли это кому‐то известно. в любом случае — думаю, что меньше
> десятка (хорошо, если хоть половина десятка ;-). в принципе, всё равно
> лучше, чем ноль.

То есть ни ты, ни с тобой никто не связывался с предложением
пилить совместно и никто патчи не присылал?

> нет. и я бы не показал в любом случае: это уже прямой
> путь к пативэну. пока что я просто вольно фантазирую на тему
> неких байтов, которые — прошу заметить — сам себе и придумал.
> а как только появляются деньги — в любом виде — позиция
> становится намного более шаткой.

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

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

Другие обстоятельства - это другие проекты, или именно исходники Presto,
под открытой лицензией?

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

Вроде на change.org петиция была, но, уверен, на нее забьют. Ждем чуда, одним словом.


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

252. "Утечка исходных текстов браузера Opera 12.15"  +1 +/
Сообщение от arisu (ok), 24-Янв-17, 15:33 
> То есть ни ты, ни с тобой никто не связывался с предложением
> пилить совместно и никто патчи не присылал?

вся ветка тут. как видишь. ;-)

впрочем, какие мне патчи, или кому я? я плотно присел на каракан, в остальные части особо не вчитывался; не думаю, что кто‐то ещё занимается караканом. а у меня хобби — написание всяких компиляторов, мне интересно.

>> нет. и я бы не показал в любом случае: это уже прямой
>> путь к пативэну. пока что я просто вольно фантазирую на тему
>> неких байтов, которые — прошу заметить — сам себе и придумал.
>> а как только появляются деньги — в любом виде — позиция
>> становится намного более шаткой.
> А вот тут я сомневаюсь. Ты же не будешь распространять исходный код,
> а будешь распространять патчи, для некоей абстрактной фантазии.

«сомнение не есть уверенность: можно и ошибиться» (ц) когда начинают фигурировать деньги, говорить, что это просто развлечение, которое никому не приносит вреда и не предназначено для извлечения коммерческой выгоды из чужой собственности — сильно сложнее.

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

>> тем не менее, спасибо: думаю, предложение было сделано от чистого сердца, и
>> при других обстоятельствах я бы не отказался.
> Другие обстоятельства - это другие проекты, или именно исходники Presto,
> под открытой лицензией?

престо. мне не особо интересно в другие проекты впрягаться. я и этих воображаемых розовых единорогов не собираюсь развивать, мне просто хочется, чтобы там работали нужные мне фичи. если бы вдруг кто‐то мне их сделал — я бы в ту же секунду бросил сам маяться. но если никого нет… что ж, DIY тогда.

>> будем надеяться, что всё‐таки
>> случится чудо, и инопланетные мозговые слизни заставят операсофтваре открыть исходники
>> под нормальной лицензией.
> Вроде на change.org петиция была, но, уверен, на нее забьют. Ждем чуда,
> одним словом.

да они ещё тогда, когда она появилась, забили. скорее всего, ещё и бетоном сверху забитое залили. но надеяться‐то это не мешает.

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

253. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от Анончик (?), 24-Янв-17, 15:34 
> Но, готов помочь с созданием rpm для Fedor'ы, если кому-то надо.

Это абсолютно не нужно, ибо система сборки умеет делать tar, rpm и deb.

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

320. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от anonymous (??), 07-Фев-17, 12:27 
>[оверквотинг удален]
> с jit'ами чуть сложнее (потому что один jit больше всего компилятора
> в целом), но при беглом осмотре они тоже вполне адекватны.
> остальные части кода я смотрел очень бегло, так что ничего особо интересного
> о них написать не могу пока.
> примечание: в течение этой недели с хвостиком я честно использую оперу как
> основной браузер. работает, не падает. прямо как настоящая.
> p.s.: есть какой‐то интересный исходник, который — по идее — должен сохранять
> на диск сгенерированый код для VM. однако судя по тому, что
> в этом исходнике можно прочитать — он всего лишь обломок футарка
> (предыдущего js-двигателя), и для каракана такой фичи попросту не планировалось.

А есть что-нибудь для отладки jit? gdb вроде бы бессилен т.к краш обычно находится в глубине jit блока и не понятна не причина ни даже место js кода его вызвавшее?

jit не работает на armhf системе по непонятной причине, возможно, дело в каких-то armv7 фичах. падает или с неверной инструкцией или с segmentation fault. При этом говорят что на RPI всё работает.

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

322. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 07-Фев-17, 21:09 
для всего этого были тесты, но запускалку их нам не слили.

впрочем, в случае каракана использовались от соответствующего времени санспайдер и как его, чёрта… этот, второй.

в любом случае — вся информация сохраняется для вывода стектрэйсов. printf'ы, всё такое.

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

327. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от anonymous (??), 07-Фев-17, 23:04 
> для всего этого были тесты, но запускалку их нам не слили.
> впрочем, в случае каракана использовались от соответствующего времени санспайдер и как
> его, чёрта… этот, второй.
> в любом случае — вся информация сохраняется для вывода стектрэйсов. printf'ы, всё
> такое.

Ну я прогонял на jsshell тесты которые там есть, они не крашатся.
Может есть какие-то отличия сборки standalone от полной?
Я попытался врубить встроенный дизассемблер, но он пока ничего не вывел.

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

330. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 07-Фев-17, 23:10 
> Может есть какие-то отличия сборки standalone от полной?

да. по дефолту, как я писал, jsshell не использует jit. надо -np указывать.

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

дизасм дизасмит только инструкции VM, дизасма для нативного кода там нет.

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

332. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от anonymous (??), 07-Фев-17, 23:26 
>> Может есть какие-то отличия сборки standalone от полной?
> да. по дефолту, как я писал, jsshell не использует jit. надо -np
> указывать.
>> Я попытался врубить встроенный дизассемблер, но он пока ничего не вывел.
> дизасм дизасмит только инструкции VM, дизасма для нативного кода там нет.

есть. сишный файл.
Он использует binutils для дизассемблирования, но прикручивали его по быстрому.
Я видимо что-то пропустил.

carakan/src/util/es_codegenerator_mips.cpp
#carakan/src/util/es_native_disass.c # [no-jumbo;no-pch] ; used for debugging on lingogi, uncomment if needed
carakan/src/util/es_strtod.cpp
carakan/src/util/es_util.cpp
carakan/src/util/es_tempbuf.cpp

На убунте нужен binutils-dev, в ldflags добавить -lopcodes
Собирал так:
./flower -v -j 5 --without-kde4 --without-gtk3 --without-gtk2 -k --without-plugins --without-dual-plugin-wrapper --without-autoupdatechecker --no-package-devel --debug --package=tar -D FT_INTERNAL_FREETYPE --without-gstreamer -D NO_CUPS --no-jumbo --lib-per-module -D FEATURE_SCOPE_ECMASCRIPT_DEBUG=YES -D DUMP_TRAMPOLINE_CODE_VECTORS -D NATIVE_DISASSEMBLER_SUPPORT -D ES_DISASSEMBLER_SUPPORT

Там ещё пара патчей исправляющих сборку без cups и без jumbo

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

333. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 07-Фев-17, 23:35 
>>> Я попытался врубить встроенный дизассемблер, но он пока ничего не вывел.
>> дизасм дизасмит только инструкции VM, дизасма для нативного кода там нет.
> есть. сишный файл.
> Он использует binutils для дизассемблирования, но прикручивали его по быстрому.
> Я видимо что-то пропустил.

я провтыкал, значит. извиняюсь за дезу.

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

334. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от anonymous (??), 07-Фев-17, 23:45 
>[оверквотинг удален]
> carakan/src/util/es_strtod.cpp
> carakan/src/util/es_util.cpp
> carakan/src/util/es_tempbuf.cpp
> На убунте нужен binutils-dev, в ldflags добавить -lopcodes
> Собирал так:
> ./flower -v -j 5 --without-kde4 --without-gtk3 --without-gtk2 -k --without-plugins --without-dual-plugin-wrapper
> --without-autoupdatechecker --no-package-devel --debug --package=tar -D FT_INTERNAL_FREETYPE
> --without-gstreamer -D NO_CUPS --no-jumbo --lib-per-module -D FEATURE_SCOPE_ECMASCRIPT_DEBUG=YES
> -D DUMP_TRAMPOLINE_CODE_VECTORS -D NATIVE_DISASSEMBLER_SUPPORT -D ES_DISASSEMBLER_SUPPORT
> Там ещё пара патчей исправляющих сборку без cups и без jumbo

А как включить основной дизасм? Он там связан с нативным, но надо как-то заставить его работать в рантайме. Без него нативный ничего и не пишет.

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

336. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 08-Фев-17, 00:01 
> А как включить основной дизасм? Он там связан с нативным, но надо
> как-то заставить его работать в рантайме. Без него нативный ничего и
> не пишет.

должен. если нативный включен, то при создании `ES_Native` сразу зовут `EnableNativeDisassemble()` же.

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

338. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от anonymous (??), 08-Фев-17, 00:15 
>> А как включить основной дизасм? Он там связан с нативным, но надо
>> как-то заставить его работать в рантайме. Без него нативный ничего и
>> не пишет.
> должен. если нативный включен, то при создании `ES_Native` сразу зовут `EnableNativeDisassemble()`
> же.

Пробегусь ещё раз, может что-то найду. Но уже не сегодня.

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

353. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 11-Фев-17, 15:01 
Переходите сюда, пожалуйста: http://forum.timsky.ru/viewtopic.php?f=5&t=86 ибо хотелось бы, чтобы вся полезная инфа была в одном месте, а собирать её и фильтровать, потом переносить занимает много времени(
Ответить | Правка | К родителю #338 | Наверх | Cообщить модератору

354. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от AHTurocnODb (?), 11-Фев-17, 17:13 
> Переходите сюда, пожалуйста: http://forum.timsky.ru/viewtopic.php?f=5&t=86 ибо хотелось
> бы, чтобы вся полезная инфа была в одном месте, а собирать
> её и фильтровать, потом переносить занимает много времени(

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

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

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

355. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 11-Фев-17, 17:19 
> вот меня в частности интересует обсуждение вопроса будущего распространения готовых решений
> в доступной для юзверей форме, когда опера уже будет к тому
> готова. но на тимском нет соответствующего раздела, где можно об этом
> разглогольствовать. раздел с пожеланиями как-то не очень для этого подходит.

так я тебе скажу, что вопросы по поводу нового раздела *там*, обсуждаемые *тут* — это не самая конструктивная идея.

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

356. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от AHTurocnODb (?), 11-Фев-17, 18:32 
> так я тебе скажу, что вопросы по поводу нового раздела *там*, обсуждаемые
> *тут* — это не самая конструктивная идея.

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

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

357. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 11-Фев-17, 22:38 
Завтра во второй половине дня постараюсь сделать подборку уже имеющихся сообщений и создать тему там. Тоже думал, куда бы её присобачить, вроде подходящего форума нет, но ради одной-двух тем отдельный форум выделять не дело.
Короче, всё завтра.
Ответить | Правка | К родителю #356 | Наверх | Cообщить модератору

358. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от AHTurocnODb (?), 11-Фев-17, 23:42 
> Завтра во второй половине дня постараюсь сделать подборку уже имеющихся сообщений и
> создать тему там. Тоже думал, куда бы её присобачить, вроде подходящего
> форума нет, но ради одной-двух тем отдельный форум выделять не дело.
> Короче, всё завтра.

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

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

359. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 12-Фев-17, 00:42 
> так вот в том то и фикус, что я и вышесказанное там
> не могу сказать.

почему? O_O

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

360. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от AHTurocnODb (?), 12-Фев-17, 13:03 
>> так вот в том то и фикус, что я и вышесказанное там
>> не могу сказать.
> почему? O_O

негде. но вроде как VladSh собирается расширить разделы, может тогда и будет можно обо всём жуметь на тимском.

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

361. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 12-Фев-17, 13:11 
>>> так вот в том то и фикус, что я и вышесказанное там
>>> не могу сказать.
>> почему? O_O
> негде.

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

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

362. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 12-Фев-17, 16:33 
> но вроде как VladSh собирается расширить разделы, может тогда и будет
> можно обо всём жуметь на тимском.

У меня нет столько прав, чтобы добавить/удалить раздел/форум.
Но тема создана, пользуйтесь: http://forum.timsky.ru/viewtopic.php?f=9&t=100

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

363. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от AHTurocnODb (?), 12-Фев-17, 16:57 
>> но вроде как VladSh собирается расширить разделы, может тогда и будет
>> можно обо всём жуметь на тимском.
> У меня нет столько прав, чтобы добавить/удалить раздел/форум.
> Но тема создана, пользуйтесь: http://forum.timsky.ru/viewtopic.php?f=9&t=100

тогда вот этот пост поправь http://forum.timsky.ru/viewtopic.php?f=9&t=100&sid=d54bc8376...
там аттач не нужен, я давал ссылку и на превью и на ригенал, чтоб кликабелку можно было сделать. незнаю как сюда текст набросать, чтобы в матюги не записало, но попробую..

Кстати ради интереса прошерстил ворстат, вот что вышло.
[урл=http://s008.radikal.ru/i306/1702/ff/e7fc44ff534e.png]&#...
Не знаю, оптимистично это или нет, но радует что непосредственно сорцами интересуется около 20%. К слову для сравнения: вивальди интересует не большее число людей, может и меньшее. если кто считает, что я учел не все запросы - учел, просто там по нулям. разве что не все англоязычные запросы были проверены.
Адвордс не люблю, потому там ничего не проверял.

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

364. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от AHTurocnODb (?), 12-Фев-17, 17:00 
хреново вышло, но думаю догадаешься, на что "урл" подменить, и скопируй линк, чтоб получить остаток от bbкодов
Ответить | Правка | К родителю #363 | Наверх | Cообщить модератору

365. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от VladSh (?), 12-Фев-17, 23:10 
Не знаю, как вставить там линк на превью(

И не знаю, как аттач сделать не развёрнутым, а такой, как в патчах...

P.S. Я специально туда вложил файл, т.к. на радикале это с течением времени исчезнет, и из инета эта инфа исчезнет, а на форуме останется.

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

366. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от AHTurocnODb (?), 13-Фев-17, 12:49 
> Не знаю, как вставить там линк на превью(
> И не знаю, как аттач сделать не развёрнутым, а такой, как в
> патчах...
> P.S. Я специально туда вложил файл, т.к. на радикале это с течением
> времени исчезнет, и из инета эта инфа исчезнет, а на форуме
> останется.

Кстати ради интереса прошерстил ворстат, вот что вышло.
[урл=хттп://s008.radikal.ru/i306/1702/ff/e7fc44ff534e.png][img]хттп://s008.radikal.ru/i306/1702/ff/e7fc44ff534et.jpg[/img][/url]
Не знаю, оптимистично это или нет, но радует что непосредственно сорцами интересуется около 20%. К слову для сравнения: вивальди интересует не большее число людей, может и меньшее. если кто считает, что я учел не все запросы - учел, просто там по нулям. разве что не все англоязычные запросы были проверены.
Адвордс не люблю, потому там ничего не проверял.

вот так вот оформи текст (русское замени на инглиш, я про "урл" и "хттп") и удали аттач вообще, я на радикале картинки храню с 2008, их никто не удалял, одна по сей день с того года там лежит (лишь про нее я точно знаю, так как все форумы, где я использовал радикал посдыхали раньше, чем можно было проверить сохранность других картинок). на радикале, может, что-то и удалят, но только в том случае, если к файлу не будет обращений регулярных. а они будут. даже если и удалится, у меня есть оригенал, всё можно будет восстановить. в любом случае данные актуальны на какое-то время.

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

335. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 07-Фев-17, 23:59 
> Я видимо что-то пропустил.

учти, что jit триггерится только если движок решает, что увидел «горячий» код. например, для простого

function n () {
  let a = 40;
  a += 2;
  return a;
}

print("a!");
print(n());

фиг тебе, а не нативный код. а вот если `print(n());` вызывать в цикле — прибежит джитер.

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

337. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от anonymous (??), 08-Фев-17, 00:13 
>[оверквотинг удален]
> например, для простого
>
function n () { 
>   let a = 40;
>   a += 2;
>   return a;
> }
> print("a!");
> print(n());

> фиг тебе, а не нативный код. а вот если `print(n());` вызывать в
> цикле — прибежит джитер.

знаю про это.
Я включил дамп трамплинов, он показывает только заголовки, но внутри пусто.

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

339. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 08-Фев-17, 00:23 
тогда не знаю, увы. я в джит практически не лазил.
Ответить | Правка | К родителю #337 | Наверх | Cообщить модератору

324. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 07-Фев-17, 21:11 
больше я тебе ничего не скажу, потому что у меня из всех армов только N900, и я даже не пробовал пока для него собирать.
Ответить | Правка | К родителю #320 | Наверх | Cообщить модератору

326. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от anonymous (??), 07-Фев-17, 23:00 
> больше я тебе ничего не скажу, потому что у меня из всех
> армов только N900, и я даже не пробовал пока для него
> собирать.

ну так он же как раз с armv7, там и есть эта проблема.
Правда, сборка ресурсов требует. С --no-jumbo и --lib-per-module памяти хватит, но будет доого ползти.

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

329. "Утечка исходных текстов браузера Opera 12.15"  +/
Сообщение от arisu (ok), 07-Фев-17, 23:09 
собирать можно кросс-компилятором, то не проблема. но мне пока не до этого.
Ответить | Правка | Наверх | Cообщить модератору

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

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




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

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