Если ваш браузер поддерживает ES5, то вы его не расширяете, а напротив «портите». Потому что в ES5 уже есть Function.bind со своей семантикой. В MooTools даже баг есть связанный с этим: их bind неправильно себя ведёт в браузерах где уже есть Function.bind c ES5 семантикой, потому что они пытаются его использовать в качестве своего bind. И вот решение:
For MooTools Core 1.3 we are going to adopt the ES5 version of Function.prototype.bind.
вы так говорите «никогда не добъется», словно флэш был дарован нам Богом на горе Синай.
у меня каждый раз на Маке включается вентилятор, когда я смотрю видео во флэше. и что?
люди работающие в разных компаниях по всему миру тратят своё время, чтобы оптимизировать встроенные в браузеры механизмы рендеринга и исполнения JS (который осмелюсь напомнить вам лет 10 назад сам по себе неплохо тормозил, а сейчас его в серверных приложениях используют).
ой, зачем же перемешали кодогенератор с ассемблером, читать же (не говоря о поддерживать) не удобно.
Сгенерированный п-код использует четыре «абстрактных физических регистра» R01..R04, которым естественно сопоставить настоящие регистры EAX,ECX,EDX,EBX: т.е. номер настоящего регистра получается из номера «абстрактного» вычитанием единицы
эх, из-за того что у вы регаллок делаете слишком высоко приходится вам пляски с бубнами устраивать там где вылазит неортогональность (деление, сдвиги), плюс он ничего не знает о конвенциях вызова (мог бы допустим учитывать их и стараться садить темпоралы на портящиеся вызовами регистры).
>> но у меня математическое высшее образование, и чтото мне из этого образования подсказывает
3-SAT проходят в курсе теории алгоритмов на матмехе. Там все доказывается. Это одна из базовых NP-полных задач.
>> К примеру такими задачами сейчас считаются «необратимые» функции
кем считаются? вами?
я вам по секрету сообщу, что сама «необратимая» функция вычисляется эффективно за полиномиальное время, а вот обратная к ней, как раз предполагается, сложно вычислимой, не вычислимой за полиномиальное время. однако никто не предполагает, что задача вычисления обратной функции является NP-полной.
существование «необратимой» функции f само по-себе будет означать, что P != NP, поскольку задача вычисления f^-1 очевидно принадлежит NP, но не принадлежит P. и полнота или неполнота этой задачи не имеет ну совершенно никакого значения.
статья очень мутная не удивлён, что её не приняли никуда.
уже на второй странице перестаешь понимать что и как он строит. привел бы описание алгоримтма в виде псевдокода, тогда сразу стало бы все понятно.
Я думаю в советские годы термин «точка останова» произошел от названия инженерного приспособления «останова». Ведь многие связанные с ЭВМ в те годы имели именно инженерное образование.
на ассемблере кратко и понятно, но в user space не работает (как я написал, и даже пример ассемблера привел) — mov инструкции работающие с отладочными регистрами требуют нулевого уровня привилегий =)
а можете рассказать, что там было такого особенного? из интервью я не понял =)
// я сам считаю, что к отладчику нужно прибегать только в совершенно безвыходных ситуациях. крэшдамп там изучить, повреждение памяти за хвост схватить… как Фейнман чинил радиоприемники «думаньем», так и я предпочитаю чинить программы думаньем (ну и протыкиванием assertов во все щели) =)
Если ваш браузер поддерживает ES5, то вы его не расширяете, а напротив «портите». Потому что в ES5 уже есть Function.bind со своей семантикой. В MooTools даже баг есть связанный с этим: их bind неправильно себя ведёт в браузерах где уже есть Function.bind c ES5 семантикой, потому что они пытаются его использовать в качестве своего bind. И вот решение:
у меня каждый раз на Маке включается вентилятор, когда я смотрю видео во флэше. и что?
люди работающие в разных компаниях по всему миру тратят своё время, чтобы оптимизировать встроенные в браузеры механизмы рендеринга и исполнения JS (который осмелюсь напомнить вам лет 10 назад сам по себе неплохо тормозил, а сейчас его в серверных приложениях используют).
неэффективен он у тех, кто не стремится сделать его эффективным.
Сделать класс Assembler с методами mov, jmp и т.д.
эх, из-за того что у вы регаллок делаете слишком высоко приходится вам пляски с бубнами устраивать там где вылазит неортогональность (деление, сдвиги), плюс он ничего не знает о конвенциях вызова (мог бы допустим учитывать их и стараться садить темпоралы на портящиеся вызовами регистры).
o[ "Foo" ][ "Bar" ] = function( a, b ) {}
o[ "Foo" ]( 1, 2 )
не заработает это.
3-SAT проходят в курсе теории алгоритмов на матмехе. Там все доказывается. Это одна из базовых NP-полных задач.
>> К примеру такими задачами сейчас считаются «необратимые» функции
кем считаются? вами?
я вам по секрету сообщу, что сама «необратимая» функция вычисляется эффективно за полиномиальное время, а вот обратная к ней, как раз предполагается, сложно вычислимой, не вычислимой за полиномиальное время. однако никто не предполагает, что задача вычисления обратной функции является NP-полной.
существование «необратимой» функции f само по-себе будет означать, что P != NP, поскольку задача вычисления f^-1 очевидно принадлежит NP, но не принадлежит P. и полнота или неполнота этой задачи не имеет ну совершенно никакого значения.
Пусть выложит реализацию алгоритма в свободный доступ. Из статьи очень сложно понять что он делает, из кода будет проще.
почитайте что ли в википедии, что такое класс NP и что-такое NP-полнота.
уже на второй странице перестаешь понимать что и как он строит. привел бы описание алгоримтма в виде псевдокода, тогда сразу стало бы все понятно.
меня очень интересуют русские аналоги английских технических слов, поэтому если предложите более адекватный перевод, буду очень благодарен.
я на научную новизну не претендую, просто документирую совершенные мной шаги.
// я сам считаю, что к отладчику нужно прибегать только в совершенно безвыходных ситуациях. крэшдамп там изучить, повреждение памяти за хвост схватить… как Фейнман чинил радиоприемники «думаньем», так и я предпочитаю чинить программы думаньем (ну и протыкиванием assertов во все щели) =)
спасибо за названия функций, сократит время на поиск, если придется отлаживать что-то аналогичное под Windows/Linux.