« first day (952 days earlier)      last day (2368 days later) » 
00:00 - 15:0015:00 - 00:00

3:05 PM
Народ, а какой бы способ вы предложили для наискорейшего поиска плавающей Access Violation в программе с тяжёлыми вычислениями? Просто между релизной и дебаг сборками разница раз в 5-6 по скорости выполнения, и видимо, из-за замедления ошибка не происходит. Вешать printf-ы?
 
@alexolut C++?
Похоже на race.
 
@VladD угу
@VladD да, похоже.
 
@alexolut Если race, то логирование (в надежде, что это не поменяет тайминги слишком сильно).
Ну надеяться, что нигде нет UB
То есть никто не топчется по памяти
Хотя, UB, понятно, есть :(
Иначе б не падало
Попробуйте пройтись статическим анализатором
 
@VladD какой-то можете порекомендовать?
 
@alexolut Я знаю только для .NET
 
3:09 PM
@alexolut лучше пачкой
 
@VladimirGamalyan какой пачкой?
 
Да, линукс или windows?
 
@alexolut например cppcheck + clang (max warn) + pvr (платный)
@alexolut лучше конечно параллельно разработке поддерживать в рабочем состоянии эти тесты, а так, на готовый, придется повозиться
 
@VladD винда
 
@alexolut если студия, то кроме того что ворнинги на 4, там ещё куча анализов есть
 
3:14 PM
Кто щупал Angular5?
 
@VladimirGamalyan Qt
 
@alexolut тода мимо
 
@alexolut Тогда попробуйте стоковый AppVerifier
его можно отконфигурировать, чтобы он контролировал удалённую память на предмет use after free
 
@VladD посмотрю, спасибо
 
чтобы падало в момент неправильного обращения, а не когда кто-то потоптался по чужим структурам данных
 
3:17 PM
Valgrind ещё может быть поможет?..
 
@pavel есть под венду?
 
@pavel А он есть под форточки?
@VladimirGamalyan great minds think alike
 
@VladD слышал что по 10 винду или под cygwin можно хитрым хаком включить. Сам лично не проверял.
 
@pavel AppVerifier тоже неплох, кстати. (Но у меня опыт 10-летней давности)
 
3:20 PM
@pavel в принципе, если удастся собрать под линь, то можно и валгринд натравить.
 
@vp_arth 4
 
@Grundy хотелось узнать, что нового в 5 =)
 
@vp_arth там ж есть список изменений
 
@vp_arth на днях на хабре была статья со списком новшеств (рус) Сцылку приводить я конечно же не буду.
 
@VladimirGamalyan Это? habrahabr.ru/post/341688
Там что-то прям с самых истоков)
 
3:38 PM
@VladD на хабре можно комментировать без постов уже давно
А зачем там keepalive я тоже не знаю. Более того, я уверен что даже в более сложных примерах он не нужен.
 
@PavelMayorov Правда? У меня как-то был readonly-экаунт, теперь с ним можно тоже комментировать? Не знал.
@PavelMayorov Ну там он именно для случая, чтобы посередине конструктора финализатор не начал есть объект
 
@VladD ага, с премодерацией автором поста. После трех прошедших премодерацию комментариев аккаунт получает статус Read & Comment.
 
@PavelMayorov Ах вот оно что!
Понял
 
@VladD финализатор не начнет "есть" объект раньше чем неявная this-ссылка перестанет быть нужной (если только конструктор не завершится аварийно). Это не зависит от числа устанавливаемых полей. Поэтому KeepAlive требуется в очень редких случаях.
И, скорее всего, каждый такой случай - архитектурная ошибка.
 
@PavelMayorov Ну, у Эрика есть пример
Например, в конце конструктора вызывается статическая WinAPI-функция (через P/Invoke), которая «донастраивает» объект по хэндлу на ресурс
В этот момент ссылок на this уже нет
 
3:50 PM
@VladD статическая функция по-хорошему должна принимать наследник SafeHandle а не случайный IntPtr.
 
@PavelMayorov Ну это да. Но если мы сами пишем аналог SafeHandle (а зачем ещё держать нативные ресурсы не в виде обёртки?), то это обычно кажется оверкиллом.
 
@VladD в таком случае надо передавать туда вместо хэндла this, повесив MarshalAs и реализовав ICustomMarshaler :-)
 
@PavelMayorov Ну, вот чтобы не думать о таких штуках (а вдруг мы врапим два ресурса? а вдруг мы ещё недоинициализированы, нехорошо this отдавать?), не проще ли написать KeepAlive в конце?
То есть да, в большинстве случаев KeepAlive не нужен.
А когда он реально нужен, то отловить это достаточно сложно
Поскольку race condition
Можно назвать это перестраховкой
Возможно, можно трижды аккуратным программированием обойти необходимость в KeepAlive
Но для этого нужно заэнфорсить достаточно много гайдлайнов
наподобие «использования MarshalAs»
передать чистый IntPtr выглядит как-то доступнее
И я, допустим, вообще не знаю про ICustomMarshaler
 
4:05 PM
@VladD во, нашел-вспомнил нормальный способ. Структура HandleRef в таких случаях используется.
 
@VladD под AppVerifier прога падает даже, когда в обычном случае не падает :)
 
@alexolut Это хорошо :-) Значит, он ещё что-то нашёл. Но вы не включайте все тесты сразу
@PavelMayorov Ну, окей, допустим, этот кейс мы побороли
Но нужно энфорсить очевидно непроверяемое компилятором условие «в конце конструктора ссылка на this жива».
И это мне очень не нравится. Хрупко это.
Написать в конце конструктора
// this must be last line
GC.KeepAlive(this)
выглядит всё же надёжнее
 
4:24 PM
@VladD я пока только базовые, включенные по дефолту
 
@alexolut Не, по дефолту оно включает скорее всего не то, что вам надо
То есть да, многие приложения упадут, если им система даст 100K heap-памяти
 
@VladD может быть стоит автору на хабре кинуть ссылку на ericlippert.com/2013/06/10/construction-destruction?
@VladD а то никто не сказал ему, зачем там KeepAlive
 
@PashaPash Я посмотрю из дому, вроде где-то был readonly-акк. Pavel Mayorov говорит, что с него сейчас можно писать комментарии.
У меня ещё была ссылка ericlippert.com/2015/05/21/… (часть "Myth: An object being finalized was fully constructed")
 
в ответе?
а, выше - да, видел
 
@PashaPash Нет, в чате
Кстати да, надо бы кинуть ссылки в ответ. Раз возникают вопросы.
 
4:38 PM
13
Q: Потерялся 1 бит в long double

QwertiyПо следам вопроса о битовом представлении вещественных чисел и моего ответа на него. Хочу программно для любого вещественного типа определить, сколько бит в нём отводится под мантиссу, а сколько под экспоненту. Для этого написал следующий код (в нём бит под знак считается отдельно от мантиссы, п...

@VladD, когда ответишь? ^^
 
4:50 PM
@Qwertiy Кстати да, что-то я забыл о нём. Посмотрю ближе к вечеру.
 
5:46 PM
@VladD я тож забыл, сегодня вдруг открытую вкладку в браузере обнаружил)))
 
Возможный дубликат вопроса: [Неправильное форматирование больших чисел: английский разделитель тысяч и дробной части, дефис вместо минуса](ru.meta.stackoverflow.com/questions/5623/…alexolut 5 hours ago
Признавайтесь, кто восстановил коммент?
 
@alexolut я его специально восстановил, чтоб остался для поста на мете
 
@Qwertiy одобрям!
правда, теперь надо пост править, так как я уже отписался, что коммент удален ;)
 
@alexolut зачем?
 
@Qwertiy ^
 
5:54 PM
@alexolut ты меня запутал)
 
я сначала подумал, может кто из разрабов восстановил
@Qwertiy да, всё норм ;) пусть остается
 
A K
@VladimirGamalyan Прочитал, как "днях на хабре была статья со списком веществ. Сцылку приводить я конечно же не буду" )
 
@alexolut а, всё, распутался... не дочитал до конца :D
 
А оказалось, всего лишь какой-то избранный модератор ;)
 
A K
@alexolut настоящий модератор! )
 
5:56 PM
@AK вот такая формулировка мне сразу "иностранных агентов" напоминает :)
Наконец-то прошел тест на программиста. Мне рекомендуют посмотреть в сторону платформы Нет
2
А я хотел бы платформу 9¾
3
 
@alexolut что за тест?) 3 вопроса: любишь винду, любишь веб и не против писать под десктопы?)
 
A K
6:17 PM
@alexolut Блин, вот что вам мешало в одну строчку написать? Аккуратненько бы поставили звезду, а так ни туда, ни сюда... (
 
@pavel тентакли, хентай и писать под десктопы :D
 
@AK можно звездить так, чтобы поддерживать синхронность
 
A K
7:19 PM
@alexolut Э? То есть?
 
7:51 PM
@AK звезда тут, звезда там
 
8:33 PM
люблю таких авторов) ru.stackoverflow.com/questions/742078Как-ускорить-алгоритм для тех кто видит.
 
Здравствуйте.Для удобства чтения хочется изменить цвет фона и цвет шрифта pdf. В программе Atril от Evince этого сделать нельзя, можно только инвертировать цвета что по сути мне не помогает. Читать белые буквы на чёрном фоне - не приятно. Кто-то может что-то посоветовать? На Linux.
 
@stackflow wine+acrobat reader
 
Без wine. :)
 
8:49 PM
@alexolut Если на "Вы любите смузи, барбершопы и свитшоты?" ответить "да", то будет жаваскрипт. be careful.
 
Впрочем нашёл ссылочку.Попробую пока что оттуда что-нибудь)
 
This Russian has the power to turn 100,000 Android phones into cryptocurrency miners: http://on.forbes.com/6011D6qK1
@VladimirGamalyan очевидней было бы спросить в лоб: "вы @Grundy?"
 
@alexolut только @Grundy - @Grundy
 
9:22 PM
@Grundy только @Grundy - @Grundy, @Grundy.
 
@Grundy И никто кроме @Grundy не @Grundy!
 
@NicolasChabanovsky Сделано.
 
9:54 PM
@alexolut ru.meta.stackoverflow.com/revisions/4222/6 — «банан Дзержинского»? Что это?
 
11:50 PM
о_0
MiNET is a stimulus protocol that carries keystroke information from a telephone set to a call control server. It can also be used to carry information to the set for the control of simple text displays. Mitel Corporation designed it in the 1980s as a signaling protocol for its proprietary digital TDM telephone sets. Later it was used to control Mitel IP sets by being encapsulated within TCP. Mitel uses it as an alternative to the functional protocol SIP to maintain the practical life of its PBX call control software....
 
00:00 - 15:0015:00 - 00:00

« first day (952 days earlier)      last day (2368 days later) »