Oracle Database 12c Release 1
Available for download! Linux/Solaris only, as always...
Иногда самая банальная вещь может быть невероятно полезной. К примеру, как бы Вы решили проблему переполнения в результате арифметических операций, скажем, на
языке C/C++? Уверен, пришлось бы анализировать операнды перед операций в поиске возможного переполнения, что есть не очень тривиальная задача. Еще один недостаток
такого решения - производительность, анализ будет дороже самой операции. Конечно, можно использовать ассемблерные вставки типа _asm jo OverflowedLabel
после каждой операции, но это скорее маразм. Я хочу заметить, что язык ассемблера позволяет постфактум проверять флаг переполнения последней арифметической операции.
Язык C#, IL код и CLR позволяют легко выявлять переполнения с помощью т.н. checked секций кода. Одноименное ключевое слово языка C# определяет блок
кода в котором переполнения приводят к исключению OverflowException. Реализация проста до безобразия - JIT вставляет операцию jo SomeAddr
после каждой операции внутри блока checked, а по адресу SomeAddr находится одна единственная инструкция - call clr!JIT_Overflow.
Интересно, а многие разработчики вообще следят за такими вещами? Обрабатываете ли вы возможные переполнения? Приходит ли вообще на ум, что это может быть проблемой?
Купил себе Xbox 360 Wireless Controller for Windows, для ПК. Некоторые игры засияли во всей красе, например заброшенный почти сразу Prince of Persia Forgotten Sands. Невероятно удобный манипулятор! Втыкнул ресивер в USB, засунул батарейки в устройство, включил - все, можно играть.