однако |
[Jan. 17th, 2017|03:16 am] |
всё сильнее хочется вернуться назад на оперу. всякие «уеб-приложения» я всё равно не использую, поэтому мне пофигу, насколько каракан устарел. а скорость охуевающая, отзывчивость великолепная — и можно будет, наконец, починить оставшиеся мелочи, которые меня в своё время раздражали. сделать нормальный блокер скриптов, который умеет правильно inline scripts убивать, высунуть остаток API, сваять на нём расширение по типу uMatrix… собственно, больше ничего и не надо. и можно будет ещё сто лет не дёргаться. |
|
|
яху! |
[Jan. 17th, 2017|10:56 am] |
function n () {
let a = 666;
{
let a = 40;
a += 2;
print(a);
}
print(a);
return a;
}
print(n()); выхлоп: 42 666 666
кривохак с подсчётом глубины блоков кривой и медленный (при каждом поиске локала делается линейный поиск по списку локалов), но очень похож на работоспособный, и каракан больше не падает!
да, я решил, что зачем я сопротивляюсь своим безобидным желаниям? ну, хочется мне заняться некрофилией — так отчего бы и да, коль скоро никому не мешает. |
|
|
кстати, ещё о си, крестах и безопасном коде |
[Jan. 17th, 2017|01:01 pm] |
у меня есть подозрение, что оперный «баг», из‐за которого надо вставлять «-fno-delete-null-pointer-checks» — на самом деле снова проявление шибко глубокого компиляторного интеллекта.
падает оно внутри delete, куда попадает с NULL. а не должно. почему же компилятор мог убрать проверку на NULL? а потому что прямо перед этим там… ну, вот такое примерно:
for (int n = 0; n < smth.fuck.count; ++n) smth.fuck[n].fuckme();
delete smth.fuck[];
delete[] smth.fuck; жопа в том, что цикл без охраны. а компилятор уверен, что программ с UB на свете не бывает. соответственно, программер гарантирует этим циклом, что `smth.fuck` ни перед, ни после цикла нулом быть не может. и проверка в заинлайненом delete идёт по пизде.
скорее всего, чтобы триггернуть эту «оптимизацию», нужны ещё какие‐то условия. а может это действительно просто баг в самом оптимизаторе. но может я и прав. но мне лень ставить туда охрану, я лучше флаг заебошу, мне так спокойней. мало ли, где ещё может подобный код быть.
да и флаг очень намекает на то, что я прав.
upd: пардон, не там скобки нарисовал. спасибо tzirechnoy |
|
|