Mar. 29th, 2011

avva: (Default)
Вопросы русским писателям зарубежья. Забавны лаконичные ответы Сергея Болмата (не читал его):
— Как влияет на ваше письмо то обстоятельство, что вы пишете за пределами России и русского языка?
— Положительно, как мне кажется. Современная русская письменность ужасна. Лучше держаться от неё подальше.

— Как из вашего «далёка» выглядит литературная ситуация метрополии?
— Настолько непривлекательно, что я уже много лет почти ничего не читаю по-русски.

— Каким является ваше литературное окружение на новом месте?
— Я обычных людей с трудом выношу, не то что писателей.

— Что нужно сделать для обеспечения равенства между литературой эмиграции и метрополии, если, конечно, это равенство возможно и нужно?
— Уезжать, наверное, из России всем, кто хочет что-нибудь толковое написать.
avva: (Default)
(эта запись будет интересна лишь программистам и сочувствующим)

Из недавно обнаруженного бага в дистрибутиве Линукса Федора сложилась очень поучительная история, которую на мой взгляд неплохо бы преподавать в университетах, на уроках программирования, чтобы объяснять студентам не только как ключевые слова писать, но и как работать вместе с другими программистами и проектами. Чтобы видели, как нужно делать, и как нельзя. Эта полезная история - как бесплатный мастер-класс, проведенный Линусом Торвальдсом. И если вам непонятно в ней, на чьей стороне правда, или вам кажется, что она на стороне разработчиков Федоры и glibc, то вы - часть проблемы.

Вот краткий пересказ этой истории.

Функция memcpy(dst, src, size), как известно, копирует блок памяти размером size, начиная с адреса src, в адрес dst. Иными словами, она копирует регион src----->src+size в регион dst---->dst+size. Что будет, если эти два региона пересекаются? что, действительно? )

Это была присказка. А сказка начинается прошлым летом, когда в исходники glibc внесли существенное изменение в код memcpy(), предложенное программистами из Интела. Новая версия memcpy() на некоторых процессорах при некоторых условиях копирует регионы от конца к началу, а при других условиях - от начала к концу. На других процессорах она как и раньше всегда копирует от начала к концу. Все эти сложные изменения должны были ускорить memcpy(), и вполне возможно, что они добились этой цели, хотя точных и убедительных измерений я так и не нашел. В Интеле работают хорошие программисты, но грамотная оптимизация такого рода - задача непростая и не всегда легко понять, что лучше.

Формально говоря, это изменение не противоречит стандарту. Но на практике оказалось, что во многих программах есть вызовы memcpy(), в которых регионы пересекаются тем путем, что работает нормально в традиционной имплементации. А в новой, при копировании от конца к началу, выходит ошибка. Но не всегда, а лишь на некоторых процессорах и в некоторых условиях. И пока что никто этого еще не знает, в конце июня прошлого лета. и вот тут начинается Хронология Одного Бага... )
avva: (Default)
Покажите, пожалуйста, число "три" на пальцах вашей руки. А теперь ответьте: какие пальцы вы использовали (а остальные загнули)?

[Poll #1724345]

January 2026

S M T W T F S
    1 2 3
45678910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 4th, 2026 06:53 pm
Powered by Dreamwidth Studios