Архив за 13 марта 2016 - 3

Продолжаем перевод серии статей об обработки исключений в C++

1 часть
2 часть

C++ exceptions под капотом: поиск верного landing pad

Это уже 15-я глава в нашей длинной истории. Мы уже изучили достаточно много о том, как работают исключения, и даже имеем написанную работающую собственную персональную функцию с небольшим количеством рефлексии, определяющей где находится catch-блок (landing pad в терминах исключений). В прошлой главе мы написали персональную функцию, которая может обрабатывать исключения, но она всегда подставляет только первый landing pad (т.е. первый же catch-блок). Давай те улучшим нашу персональную функцию, добавив возможность выбирать правильный landing pad в функции с несколькими catch-блоками.
Читать полностью »

Продолжаем перевод серии статей об обработки исключений в С++

1 часть
3 часть

C++ exceptions под капотом: милая персональность

Наша поездка в удивительном путешествии изучения работы исключений еще далека от конца, нам еще предстоит изучить что-то называемое "call frame information", помогающая библиотеке Unwind делать разворачивание стэка, а так же что компилятор пишет в чем-то, называемом LSDA, в которой определяется, какие ошибки метод может обрабатывать. А так же мы уже узнали, что большинство магии происходит в персональной функции, которую мы пока еще не видели в действии. Давай те резюмируем, что мы уже знаем о пробросе и отлове ошибок (или, точнее, что мы уже знаем о том, как брошенное будет перехвачено):

  • компилятор транслирует throw объявление в пару cxa_allocate_exception/xca_throw
  • __cxa_allocate_exception создает исключение в памяти
  • __cxa_throw запускает работу разворачивания и передает исключение в низко-уровневую библиотеку разворачивания, вызывая _Unwind_RaiseException
  • Разворачивание стэка использует CFI, чтобы узнать, какая сейчас функция в стеке
  • Каждая функция имеет LSDA, добавляя что-то, называемое .gcc_except_table
  • Разворачивание вызывает персональную функцию с текущим фреймом стэка и LSDA, которая должна продолжить разворачивать стэк, если текущая функция не имеет обработчиков исключения данного типа.

Читать полностью »

С++ exception handling под капотом или как же работают исключения в C++ - 1

От переводчика

В мире победили языки высокого уровня и в мирах руби-питон-js разработчиков остается только разглагольствовать, что в плюсах не стоит использовать то или иное. Например, исключения, потому что они медленные и генерируют много лишнего кода. Стоило спросить "и какой же код он генерирует", как в ответ получил мямленье и мычание. А и правда — как же они работают? Ну что ж, компилируем в g++ с флагом -S, смотрим что получилось. Поверхностно разобраться не сложно, однако то, что остались недопонимания — не давали мне спать. К счастью, готовая статья нашлась.

На хабре есть несколько статей, подробных и не очень (при этом все равно хороших), посвященных тому, как работают exceptions в C++. Однако нет ни одной по-настоящему глубокой, поэтому я решил восполнить этот пробел, благо есть подходящий материал. Кому интересно как работают исключения в C++ на примере gcc — запаситесь pocket-ом или evernot, свободным временем и добро пожаловать под кат.
Читать полностью »

Всем известная онлайн-энциклопедия Wikipedia в ближайшем будущем может обзавестись новыми функциями. Шведские компании Swedish Post и Telecom Authority запустили проект по сбору средств на расширение возможностей Wikipedia.

Читать полностью »

SFML и Xcode (Mac OS X) - 1

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

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

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

image

Все большее число стартапов старается изменить привычные процессы. Эта концепция оказалась особенно успешной для таких проектов, как Uber и Airbnb — теперь на рынке может появиться новый игрок Screening Room. Основной концепцией стартапа является предоставления фильмов для домашнего просмотра прямо в день премьеры.Читать полностью »

Магнитные чипы потребляют в миллион раз меньше энергии, чем электронные транзисторы. Принцип Ландауэра - 1

В 1961 году Рольф Ландауэр из компании IBM сформулировал принцип, который позже назвали его именем: в любой вычислительной системе, независимо от её физической реализации, при потере 1 бита информации выделяется теплота в количестве по крайней мере W джоулей:

W = kB T ln 2,

где kB — константа Больцмана, T — абсолютная температура вычислительной системы в кельвинах.

Физикам из Калифорнийского университета в Беркли удалось провести успешный эксперимент с битовыми операциями в магнитной памяти и вплотную приблизиться к этому теоретическому пределу.
Читать полностью »

Вслед за меньшим братом на препараторский стол iFixit попал смартфон Samsung Galaxy S7 edge. Забегая вперёд, отметим — наличие изогнутого дисплея не поспособствовало снижению баллов по сравнению с Galaxy S7. То есть S7 edge также заработал три балла из десяти.

Читать полностью »

image

На встрече Европейского стратегического форума по исследовательским инфраструктурам (ESFRI) в Амстердаме было решено включить проект постройки Европейского солнечного телескопа EST в программу развития, вместе с двадцатью другими проектами, среди которых будут пять новых предприятий.

4-метровый Европейский солнечный телескоп будет расположен на Канарских островах и станет крупнейшим солнечным телескопом мира. Он будет изучать магнитные свойства светила, солнечные пятна и вспышки с невиданным ранее разрешением в несколько сот метров поверхности Солнца.

В связи с приданием проекту статуса приоритетного правительство Испании уже выразило готовность осуществлять всяческую поддержку при строительстве телескопа.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js