Pull to refresh

Команда Edge экспериментирует с отключением JIT

Information Security *JavaScript *Browser extensions Browsers Microsoft Edge

Microsoft объявила, что группа по исследованию уязвимостей Edge экспериментирует с новой функцией, получившей название «Super Duper Secure Mode» и предназначенной для улучшения безопасности без значительных потерь производительности.

Читать далее
Total votes 14: ↑12 and ↓2 +10
Views 7.4K
Comments 12

Microsoft добавила сверхбезопасный режим в стабильную версию Edge

Information Security *Microsoft Edge IT-companies

Microsoft добавила режим сверхбезопасный режим под названием Super Duper Secure Mode в стабильную версию своего браузера. Об этом в своем твиттере сообщил Джонатан Норман, руководитель исследования уязвимостей Microsoft Edge. 

Читать далее
Total votes 11: ↑11 and ↓0 +11
Views 2.8K
Comments 3

Белый хакер получил $20 тыс. за обнаружение пяти уязвимостей в текущих прошивках PlayStation 4/5

Games and game consoles IT-companies


10 июня 2022 года белый хакер Энди Нгуен (Andy Nguyen ) получил на платформе HackerOne $20 тыс. за обнаружение пяти уязвимостей в текущих прошивках консолей PlayStation 4 и PlayStation 5 в рамках программы баг-баунти от Sony. Три из уязвимостей были угрозами среднего уровня, а две — высокого. Причем исследователь создал цепочку эксплойтов (на C) для активации произвольного кода на консолях, которую можно запускать на штатных версиях прошивок приставок PS4 и PS5.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views 4.3K
Comments 9

Вышел PyPy 1.2 и ускорил Python в разы!

Python *
Вышел PyPy 1.2. Основное отличие — наличие JIT компилятора.
Чтобы долго не объяснять что это и зачем — простой тест:

cnt = 10 * 1000 * 1000
for _ in xrange(cnt): 
    i = i + 1


5.8млн операций сложения в секунду на обычном СPython 2.6 (python test.py)
42.5млн операций в секунду на PyPy 1.2 (pypy test.py)
WinXP SP3, Core2Duo.

Да, в 7 раз быстрее он тест сделал! И это не только на синтетическом тесте: «django» в 3 раза быстрее, «n-body» в 7 раз быстрее… Я не знаю что такое тест «richards», но он теперь вообще в почти 12 раз быстрее. Смотрите результаты сами.

Читать и качать (из раздела "«JIT compiler» version"). 64-bit версии пока нет. А unladen-swallow нервно курит... Под катом еще несколько невероятностей (stackless, «песочница для python кода»)…
Читать дальше →
Total votes 94: ↑82 and ↓12 +70
Views 14K
Comments 94

Слияние и поглощение

Python *
Тихо и незаметно возникло желание написать ещё один пост про Unladen Swallow и опять начать его словами «тихо и незаметно». Причём в данном случае эти слова будут намного более уместны…

Мы все скучаем без новостей о «ласточке». На главной странице проекта в последних новостях сообщается про выпуск очередного ежеквартального релиза — 2009Q3, октябрь прошлого года. На Хабре пробегают новости от самих разработчиков, вызывающие сомнения в перспективах использования Python-а внутри Google-а, и, соответственно, в заинтересованности Google-а в «ласточке». Всё плохо и безрадостно, казалось бы, не видать нам годного JIT-компилятора в Python-е…

Ан нет. Сегодня, случайно зайдя на канал #unladenswallow на OFTC, с меня слетела шляпа меня встретила надпись: PEP 3146 approved! А этот самый PEP 3146 — это, между прочим, описание плана интеграции Unladen Swallow с CPython, имеющее теперь статус Accepted/Standards Track.
Читать дальше →
Total votes 56: ↑52 and ↓4 +48
Views 1.3K
Comments 17

Релиз PyPy 1.3

Python *
PyPy это экспериментальная реализация Python на языке RPython — подмножестве языка Python. Особенностями проекта является наличие JIT компилятора и возможности оттранслировать код интерпретатора в С, .Net и Java версии.

Главное нововведение версии 1.3 — поддержка С расширений СPython. Расширения не являются бинарно-совместимыми, поэтому для использования из PyPy их придется пересобрать. Не удивляйтесь если ваше любимое расширение не соберется — поддержка cpyext находится в альфа стадии и существенная часть API CPython еще не реализована. В этом случае разработчики предлагают закатать рукава и реализовать их самостоятельно.

Кроме того в релиз вошли множественные улучшения jit компилятора, в частности серьезно увеличена скорость компиляции, багфиксы и проч.

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

Подозреваю что в следующих релизах мы увидим 64-битную версию PyPy и поддержку jit для расширений С — как результат двух проектов которые реализуются в рамка GSoC в этом году.

Собственно новость
Страница для скачивания
Total votes 32: ↑29 and ↓3 +26
Views 730
Comments 11

Firefox 4 значительно ускорится и получит поддержку inline SVG

Firefox
Translation
Вечером 30 июня «Мозилла» явилась в Лондон в Англии, чтобы поведать про дополнения («Mozilla Add-Ons») и показать некоторые новые клёвые особенности грядущего Файерфокса 4.

Вероятно, наиболее впечатляющими (если не считать средства создания дополнений «Add-Ons Builder», основанного на «Беспине») оказались следующие будущие возможности Firefox 4:

→  отображение HTML5-видео (<video>)

→  рисование на холсте (<canvas>)

→  манипулирование изображениями на холсте (анализ пикселов, распознавание лиц с помощью opencivitas)

→  технологии «зелёного экрана» (хромакей) в иллюстрациях и видео, достигаемые анализом цвета пикселов

→  HTML5, встраиваемый внутрь SVG (ура!)

→  SVG как <img>

→  SVG как CSS-фон

→  SVG-фильтры, SVG-маски, SVG-контуры обрезки

→  SVG-анимация

→  inline SVG (то есть SVG внутри HTML5)

→  CSS3: селекторы, @font-face, 2D-преобразования (transforms), переходы (transitions), тени, градиенты, вычисления — calc(2em-10px)

→  API: геопозиция (geolocation), оффлайн (IndexDB, localStorage, AppCache, FileAPI: чтение двоичного содержимого из файла, перетаскивание файлов), веб-труженики (web workers) и сокеты (websockets)

→  контроллер на вебсокетах, запускающий презентацию с мобильника

→  WebGL

Некоторые из этих способностей подтверждались демонстрациями:

→  фильтры CSS3 и маски SVG на HTML5-видео:

Читать дальше →
Total votes 118: ↑97 and ↓21 +76
Views 979
Comments 72

Управлять IT-проектами — как играть в регби

Softline corporate blog
Интернет-канал SLTV.ru выпустил ролик, рассказывающий о том, как улучшить управление IT-проектами. В его основе — написанная японскими учеными Хиротако Такеути и Икудзиро Нонака статья «The New New Product Development Game».
Ученые сравнили проектную деятельность с игрой регби. Они рассматривали всю многогранность игры и, в частности, игровую ситуацию Scrum. Японцы подметили, что каждый игрок в регби кросс-функционален, но при этом остается специалистом только в одной области. В итоге был выработан определенный набор принципов, на которых строится процесс разработки, позволяющий поставлять программное обеспечение в жестко фиксированные сроки. В ролике проводится четкая параллель между конкретными игровыми ситуациями в регби и принципами ведения проектов.

Total votes 45: ↑43 and ↓2 +41
Views 8.4K
Comments 19

Немного о JIT-компиляции или пишем оптимизированный интерпретатор Brainfuck

Website development *
Суть языка Brainfuck в том, что мы всегда бегаем по ячейкам ленты, уменьшая или увеличивая значения в них. В циклах мы можем пробегать из одного конца в другой, что-то подсчитывая, зачастую используя много вложенных циклов. Не трудно догадаться, что интерпретация этого языка относительно медленна. Конечно, на современных компьютерах этого практически не заметно, но… Предлагаю небольшой тест: берите написанный вами интерпретатор, и запускайте вот этот не хитрый код:

>+>+>+>+>++<[>[<+++>-
 >>>>>
 >+>+>+>+>++<[>[<+++>-
   >>>>>
   >+>+>+>+>++<[>[<+++>-
     >>>>>
     >+>+>+>+>++<[>[<+++>-
       >>>>>
       +++[->+++++<]>[-]<
       <<<<<
     ]<<]>[-]
     <<<<<
   ]<<]>[-]
   <<<<<
 ]<<]>[-]
 <<<<<
]<<]>.


Дождались конца выполнения? Согласитесь, что это было не так быстро, как могло показаться сразу. Что ж, давайте посмотрим, как сделать интерпретатор, который будет выполнять данный код не больше чем за несколько секунд.
Опять brainfuck, ассемблер и паскаль
Total votes 90: ↑66 and ↓24 +42
Views 6.4K
Comments 37

Unladen Swallow — всё…

Python *
Translation
От переводчика: пару часов назад Гвидо в своём твиттере упомянул блог-пост своего коллеги, одного из (бывших) разработчиков Unladen Swallow, в котором тот рассказывает грустную историю яркой, но короткой жизни Unladen Swallow в Google.

Оригинал: Reid Kleckner — Unladen Swallow Retrospective


Читать дальше →
Total votes 42: ↑40 and ↓2 +38
Views 3.4K
Comments 17

Создание языка программирования с использованием LLVM. Часть 1: Введение и лексический анализ

Compilers *
Translation
Добро пожаловать в учебник «Создание языка программирования с LLVM». Этот учебник знакомит вас с созданием простейшего языка программирования, и при этом показывает, каким оно может быть легким и интересным, а также даёт вам начальные знания, которые вы затем сможете применить на других языках программирования. Код в этом учебнике также может быть использован в качестве стартовой площадки для ваших творений с помощью LLVM.

Целью данного учебника является постепенное представление нашего языка, описание его пошагового создания. Это позволит нам охватить достаточно широкий спектр вопросов проектирования языков и использования LLVM, попутно показывая и объясняя код без огромного количества ненужных деталей.
Читать дальше →
Total votes 65: ↑61 and ↓4 +57
Views 54K
Comments 28

Создание языка программирования с использованием LLVM. Часть 3: Генерация кода LLVM IR

Compilers *
Translation
Добро пожаловать в Главу 3 учебника «Создание языка программирования с LLVM». В этой главе мы рассмотрим, как преобразовать AST (Абстрактное Синтаксическое дерево), построенное в Главе 2, в LLVM IR. Она расскажет вам о некоторых аспектах работы LLVM, а также продемонстрирует, насколько он прост в использовании. Вы увидите, что гораздо больше труда потребовалось на лексический и синтаксический анализ, чем на непосредственное создание кода LLVM IR.

Обратите внимание: код из этой главы требует наличия LLVM 2.2 или более поздней версии. С версиями по LLVM 2.1 включительно этот код работать не будет. Также стоит отметить, что вам стоит использовать версию этого учебника, которая соответствует вашему релизу LLVM: вы можете использовать документацию, которая прилагается к официальным выпускам или посетить страницу с релизами на llvm.org.
Читать дальше →
Total votes 28: ↑26 and ↓2 +24
Views 14K
Comments 11

Создание языка программирования с использованием LLVM. Часть 4: Добавление JIT и поддержки оптимизатора

Compilers *
Translation
Добро пожаловать в Главу 4 учебника «Создание языка программирования с LLVM». Предыдущие главы (1-я, 2-я и 3-я) описывали реализацию простейшего языка программирования и добавление в него ​​поддержки генерации LLVM IR. В этой главе описаны две новых техники: добавление поддержки оптимизатора и добавление поддержки JIT-компилятора. Эти дополнения продемонстрируют как получить хороший, эффективный код для нашего языка программирования Kaleidoscope.
Читать дальше →
Total votes 25: ↑21 and ↓4 +17
Views 9.7K
Comments 4

Руководство: пишем интерпретатор с JIT на PyPy

Python *
Translation
Все исходные коды и примеры из этой статьи доступны здесь.

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

— набор инструментов для написания интерпретаторов языков программирования;
— реализация Питона с применением этого набора инструментов.

Вероятно, большинство людей думает, что PyPy это только вторая часть, но это руководство не об интерпретаторе Питона. Оно о том, как написать интерпретатор своего языка.

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

Читать дальше →
Total votes 78: ↑74 and ↓4 +70
Views 11K
Comments 6

Разработчики IE высказались против Google Dart

Website development *
Прошло полтора месяца с момента официальной презентации нового языка программирования Google Dart, который позволит создавать быстрые и высокопроизводительные веб-приложения. Он также позиционируется в качестве замены/альтернативы JavaScript, якобы страдающего от «фундаментальных изъянов».

Для развития Google Dart очень важно, чтобы во все браузеры была встроена поддержка трансляции из Dart в JavaScript, а в будущем Dart был реализован в браузере как основной нативный клиентский язык. Понятно, что с Chrome проблем не будет. Но вот разработчики других браузеров пока не спешат поддержать революционную инициативу Google, а группа разработки Internet Explorer высказалась категорически против нового языка программирования. По их мнению, JavaScript вполне может эволюционировать для создания больших масштабируемых веб-приложений.
Читать дальше →
Total votes 89: ↑75 and ↓14 +61
Views 2.6K
Comments 250

Phalanger — Пишем на PHP, компилируем в .Net. Рост производительности?

PHP *
Есть такая штука, называется Phalanger.

Как следует из заголовка, проект компилирует PHP->.Net.
Зачем? Говорят, работает быстрей стандартного метода.
пара нюансов
Total votes 27: ↑16 and ↓11 +5
Views 2.5K
Comments 31

Почему C быстрее Java (с точки зрения Java-разработчика)

Programming *
Translation
В листе рассылки Git развернулась дискуссия о том, как язык программирования высокого уровня снижает производительность приложения, в связи с обсуждением JGit. Дискуссия особенно интересна, потому что в ней принимали участие программисты, эксперты высочайшего уровня как в C, так и в Java. Один из них — Шон Пирс (Shawn O. Pearce), известный Java-программист из компании Google, активный коммитер в Eclipse, соавтор Git и автор Java-имплементации Git под названием JGit. В своём сообщении он назвал реальные ограничения, с которыми сталкивается высококвалифицированный разработчик, пытаясь написать эффективный Java-код, сравнимый по производительности с максимально оптимизированным кодом C. Хотя письмо датируется апрелем 2009 года, но некоторые аргументы Шона до сих пор не потеряли актуальность.

List: git
Subject: Re: Why Git is so fast (was: Re: Eric Sink's blog — notes on git,
From: «Shawn O. Pearce» <spearce () spearce! org>


Как было сказано ранее, мы сделали много маленьких оптимизаций в коде Git на C, чтобы добиться реально высокой производительности. 5% здесь, 10% там, и внезапно ты уже на 60% быстрее, чем был раньше. Нико [Питре], Линус [Торвальдс] и Джунио [Хамано] — все они потратили определённое время в последние три-четыре года для оптимизации отдельных фрагментов Git, исключительно для того, чтобы он работал максимально быстро.
Читать дальше →
Total votes 97: ↑79 and ↓18 +61
Views 7.5K
Comments 138

Будущее WinRT или Going Native 2.0

IT-companies
Translation
Alexandre Mutel — создатель самой быстрой и самой полной .NET обертки для DirectX, единственной, поддерживающей Windows 8 Metro, работает R&D разработчиком игрового движка в SiliconStudio, участник французской демо-группы FRequency.

В последнее время мы слышим много шума о возвращении идеи «Going Native» после эры управляемых языков, таких как Java и .NET. В прошлом году, когда WinRT был только представлен, начали появляться недалекие комментарии, которые утверждали, что что .NET умер, а С++ возвращается во всей своей красе — истинный и единственно верный способ для разработки приложений, в то время, как JIT начинает все чаще появляться в мире скриптовых языков (JavaScript активнее всех использует преимущества JIT). Любой код так или иначе станет нативным перед выполнением — разница лишь в длине пути, по которому он пройдет, чтобы стать нативным, и насколько оптимизированным он будет. Значение слова «native» немного изменилось и стало неразрывно связано со словом «производительность». Даже будучи сильным пропагандистом управляемого языка [C#], его производительность на самом деле ниже хорошо написанного С++ приложения. Получается, мы должны просто принять этот факт и вернуться к C++, когда такие штуки как WinRT будут для нас основой межязыкового взаимодействия? По правде говоря, я бы хотел, чтобы .NET умер, и этот пост о том, почему и зачем.
Читать дальше →
Total votes 56: ↑44 and ↓12 +32
Views 21K
Comments 45