All streams
Search
Write a publication
Pull to refresh
-10
@firsttimecxxread⁠-⁠only

User

Send message
>>Ой, простите, выше Вы что-то курлыкали про дискуссию, а теперь про какие-то сливы, идиотизм и прочую фаллометрию.
Действительно. У нас есть факт, как амёбка начала мне кукарекать про рынок, жабка, кресты и прочее. После моего ответа, где я разобрал «рынок, жабку, крестовиков и прочее» данная амёбка обделалась, ничего не ответила и начала нести херню.

Слился? Да.

>>Это называется полемика, если Вы не в курсе, а Вы не в курсе, то есть, Вы как тот голубь, с которым в шахматы играли. Слился, слился, курлык.
Мне без разницы на то какие потуги ты предпринимаешь для слива — ты либо отвечаешь по теме, либо не отвечаешь. Не ответил — обосрался. Всё просто.

Ещё раз — потуги про голубя и прочие отмазоны котируются в районе твоей парты, с соседями по парте. Нахрена ты мне сюда постишь эти потуги уровня детсада?
Ну смотри, хотя это и слив — я помогу тебе всплыть.

Вот я назвал причину — жава. Опустим, что против этого тебе нечего сказать. Давай попроще. Если не жава, то что? Ты говоришь — другие причины — называй их. Если они не разобьются в пыль при первой же моей попытки их оспорить — так уж и быть я поверю в возможность влияния этих причин на андроид.

Ну уже двое скооперировались и в 2-х минусуют и друг друга плюсуют. Бывает.

>>Почему в функции curry необходимо указать лайфтаймы и trait bounds
Враньё. Конкретную цитату где объясняется «также объяснено почему необходимы лайфтаймы»? Хотя уже поплыл, уже поплыл и начал «необходимо указывать», нет, нет — такое не прокатит.

>>Причесанный вариант функции из поста с более компактной записью функции curry
Опять же враньё — никакой компактности там нет.

fn curry<'a, A: Copy + 'a, B: 'a, C: 'a>(f: Box<Fn(A,B) -> C + 'a>, a: A) -> Box<Fn(B) -> C + 'a> {
Box::new(move|b: B| {f(a,b)})
}
fn curry<A: Copy + 'static, B: 'static, C: 'static>(f: Box<Fn(A,B) -> C>, a: A) -> Box<Fn(B) -> C> {
Box::new(move|b: B| {f(a,b)})
}

Длинна портянки уменьшилась на пол символа — такая себе компактность.

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

Меня не интересует что там и кто кого и как обозначил. Смешно видеть, как попытался и слился, а что-то говорить в мой адрес, при этом сливаясь — верх идиотизма.

В конечном итоге все расставлено на свои места. Тот, кто обвиняет меня слился. Тот, кто обвиняет меня не может ничего не мне ответить, кроме банальных шаблонных сливов про «заворды», «самоутверждение», «все вокруг тупые» и прочее.

>> есть какие-то статьи
Смешно.

>>что вышеназванные проблемы имеются в платформе именно благодаря яве, а не чему-то еще?
Именно проблема в яве, ибо ничего другое данную проблему вызвать не может.

Доказательство — пожалуйста. Любые вменяемые приложения использую жаву по минимуму, да и не использовали бы вообще, если бы не обязывала платформа. Звонит нормально звонилка? Знай — там не жава. Работает нормально игра? Знай там не жава. Телефон не раскаляется до красна? Знай — там не жава.

>>>>он не может работать нормально и конкурировать с айос
И как из этого следует «оказывается телефоны Apple теперь представлены в каждом ценовом сегменте.»? Правильно — никак.

>>То чем пользуется человек — это его личное дело, и говорить что он себя обманывает это в корне не верно.
Это его дело, но при объективном сравнении его выбор проигрывает. И если он с этим не согласен — он себя обманывает. Выбирать по другим критериям(доступность цены, разнообразия и прочее) ему никто не мешает и эпл будет проигрывать там, но опять же — выигрыш в одном не даёт выигрыш в другом.
>>б/у != новый
И что? Не нравится бу? Мне то же не нравится, но такое возможно и никаких проблем нет. Да и можно купить старый новый айпонт.

>>800 USD и 400 USD — для некоторых уже существенно, а если за 200 USD будет покрывать все что нужно, то это вообще чудно.
Из этого ничего не следует. Цена хоть и завышена, но в целом сопоставима с топовыми самсунгами и в 1.5-2 раза ниже с пред/топовыми китайцами.

При сравнении качества цена(+100%) роли не играет, тем более цена тут непричём. Был бы он не жаве — цена была бы идентична.

>>Телефон перестает быть «топ»ом через пол года
Не верно. Топовый телефон — это не пластиковый обмылок и с ним ничего не будет через 2года. Прогресса в железе особого нету и года 2-3 он точно будет в районе этого топа.

И под «топ»ом тут имеется ввиду не топовые попугаи в сравнении со всеми, а уровень производительности необходимый для вменяемой работы.

>>Я не пишу под Андроид однако мне казалось, что Java это прослойка
Какая разница во что там она конвертируется — рантайм на жаве, код на жаве и реализация её ограничена самой жавой как языком. Наличие мемори-модели жавы не даёт её прямиком без кастылей транслировать в натив, динамика на уровне рантайма — туда же. Сама экосистема жабы, сам тип языка не позволяет прикрутить к ней вменяемый компилятор и рантайм.

>>а если уж хочется всегда есть NDK.
И получи всё убожество побочной ветки. Опять же жава там везде торчит. Да и причём тут ндк? Дело в том, что основной язык — жава. Выбранный мною ндк не изменить выбора других. Не изменит выбора гугла.
Если вам нужно по теме вашего доклада — я сделаю вам разбор с таймингами. И да, они не показались мне «не верными» — они и есть не верные. Не согласны — опровергните.
Я выложил доклад ради обсуждения

И где же это обсуждение? Его нету. Единственный тут человек, который что-то обсуждал по теме — это я. Но по теме дискутировать никто не хочет, ибо ваша привычная аудитория — это те, кто смотрят в рот и перед кем можно бахвалится примитивными и неверными познаниями.
Чтобы хоть в одном месте можно было бы нормально поговорить на русском языке по интересующим темам и обсудить сильные и слабые стороны.

Поговорили, обсудили? Ведь именно того, кто может говорить вы(аудитория подобная вам) минусуете, а почему минусуете? Ну мотивация «бессилие» понятна, но всё же.

Я вам написал основной минус — убогое бахвальство. Это свойственно всем в рамках слабой аудитории. Убогое противопоставление себя другим с реакция мамки во имя защиты своей темы. Как только я начал говорить плохо про стрикт-алиасинг — я сразу стал плохим, сразу начались попытки сменить тему и прочее. Зачем?

>>Откуда в вас столько ненависти?
У меня нет ненависти — у меня есть вменяемая оценка действительности. Вам же не 5лет, чтобы сюсюкать, либо почему я кому-то должен лизать жопу? Почему вы должны?

Я с чем-то несогласен — говорю прямо. Я не собираюсь писать обтекаемо, аля «ну ты тоже прав, мы все правы, но я считаю, что надо иначе — я не настаиваю, ты прям, прости меня, что вообще заикнулся об этом — молю, послушай меня, ответь мне — я буду молится на тебя во имя ответа твоего».

>>Никогда не думал что в дискуссии о компиляторах будут переходить на личности и кидаться грязью.
Я уже писал в другой теме — повторю. У вас, как и большинства банальная брешь в восприятии. Вы всю критику в адрес чего-то экстраполируете на себя. Ругаю я жабку при жабисте — он воспринимает это так, буд-то я перехожу на личности. Ругаю я доклад и отношение — я перехожу на личности. Естественно умение внятно оценивать критику в адрес своей работы — это сложно и мало кому доступно, но обвинение меня во имя оправдания себя — фу.

Критика, несогласие, отсутствие порывов лизать жопу — это не кидание грязью. Если вы не согласны с тем, что то, что вы мне пишете является непотребством — надо объяснить почему и доказать.

Да, как и все верующие вы очень ранимые когда кто-то что-то без благоговения и возвеличивания говорит в адрес объекта ваших верований, но такова жизнь. Без разницы во что верить — в раст, в го, в ллвм, в смалток и прочее. Вера отличается от вменяемости(осознаного выбора) отличается тем, и потому она такую попоболь вызывает у верующих, что вера — это вера и аргументировать за выбор, за свои утверждения верующий не может. Если бы это был осознанный выбор — у вас бы никаких проблем отстоять свою ТЗ не возникло бы, как это не возникает у меня.
Рынок всё разрулил, что Вам не нравится?

Причём тут рынок? Дело не в рынке. Если мы обсуждаем сам язык, то рынок тут не при делах. Рынок всегда разруливает так, что ширпортреб всегда популярей. Популярны фокусы, солярисы, а не мазерати — это не значит, что они лучше, либо хороши. Они доступны большинству, они вменяемо работают — от них более ничего не требуются.

Само проникновение странного языка С/C++ в индустрию это ещё один пример асимметрии информации на рынке.

Ничего странного нету. С/С++ — это смесь множества языков. Сишный диалект из С++ сам по себе, современный С++, сишный диалект из С++ с классами ака сфронт и прочее.

Альтернативы ему нет и не будет. Си с рынка не уходил никогда и как был топ1 так и остался. Собственно как и кресты — они всегда были там, где качество кода оценивается по критериям чуть шире, чем хоть как-то работает/не работает, как это происходит в мире жавы и прочих подобных языков.

>>Вообще, вы какой-то токсичный
Это ваша проблемы. Вы критику в адрес жавы экстраполируете в адрес себя, ибо являетесь её адептом. Это не верно, но вам кажется, что я что-то имею против вас. Естественно в вас говорит только защита себя через защиту жавы — не более.

>>являетесь очень умным плюсовиком, вас что-то уязвило чтоли?
Я являюсь хейтером С++ в той же степени в которой являюсь хейтером жавы. В той же степени в которой являюсь хейтером эпла. Но в отличии от вас я не строю свою аргументацию, либо мнение о чём-то на основании «нравится/не нравится». Как бы мне С++ не нравился — ему альтернативы нет.

>>рассуждая о тупых комбайнёрах?
Опять же — тупыми их назвали вы, а не я. Я привёл аналогию, которая полностью описывает ситуацию. Очередная ваша проблема заключается в том, что вы не понимаете — самоутверждение — это не только возвышение себя выше других, что вы приписываете мне. Самоутверждение это так же — приписывание себя того, чем вы не являетесь, даже если делать это до уровня «я как все», а не только «я выше».

А почему я пишу в таком стиле — всё просто — люди не могут мне оппонировать в рамках дискуссии технической и приходятся сраться на уровне доступном всем.

Научитесь не приписывать людям( в частности мне) поведение свойственное другим(в частности вам), а конкретно «я сравниваю С++ и жаву, ругая жаву потому, что я крестовик и защищаю свою кормушку/выбор, либо как это называется».
>>Ключевая фраза моего поста 'в то время'
Жава появилась в районе перед нулевыми. В начале нулевых появилась ллвм.

>>Пацаны писали jvm на ужасном Си квалифицированно, чтобы не позорить профессию
Пацаны писал на том, на чём можно написать.
>>а нормальные люди писали для бизнеса продукты
Из этого ничего не следует. Жаве дал буст сам в корпоративном секторе пропихивая её, корпаративному сектору выгоден сильный вендор с поддержкой и «заботой», чего альтернативны не имели, да и альтернатив особо и не было.

А нормальные люди да — хренак-хренак и в продакшн — главное чтобы бабки платили, а тем кто платит — главное чтобы хоть что-то работало без заморочек.

Для бизнеса так же и на пхп писали, только это не делает пхп чем-то особенным — просто не было альтернативы.

>>не тратя деньги и время на фаллометрию с единственно правильными программистами на неудобных языках.
Да, писать надо много, а на квалификацию у многих нет ни денег, ни времени, ни способностей. Не всем же строить комбайны — кому-то надо на них комбайнёрить. Только вот без комбайнёров мир проживёт(любой это может делать и создать новых проблем никаких нет), а без тех, кто эти комбайны создаёт уже не обойтись. Комбайнёры могут сколь угодно долго кричать, кичиться тем, что инженерия и «сложность» — это фаллометрия и что весь колхоз и прочий бизнес на них держиться, как и земля русская, только что же из этого?

«не удобность» — это миф и враньё обоснований которому нет. Любой другой язык не менее удобен нежели жава. Чем неудобен С++, если писать на нём как на жаве прикрутив ГЦ? В какой-нибудь свивф, го? Никаких проблем.

Где я такое писал? Правильно — нигде. Телефон андроид из ценового сегмента «не топ» неюзабелен в принципе. Можно сколько угодно долго себя обманывать, но это так.

А для ценового сегмента «не топ» — есть бушные айфоны. И опять же — цена не оправдывает, когда разница в цене не порядок, а от силы 2раза. Телефон мог бы работать лучше, но он не работает и все минусы проявляются как раз такие на «не топ» сегменте.

На сам андроид никто не гонит, но факт есть факт — жава — его слабая сторона.
Очередное враньё ради плюсиков. Можно ссылку на ответ, где описывается «более компактные», либо «почему необходимы лайфтаймы»? Не на уровне «Нужно потому что нужно».

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

Было время, когда все боролись с ручным управлением памятью. Все орали — С/С++ говно, ибо надо руками — нужны средства без рук. Появилась жава и прочие языки с гц.

Теперь же появился раст и впаривает то же самое ручное управление памятью, только не уровня «убить кусок», а на уровне хинтов при его передаче «жив, жив, мёртв» — это ещё больше действий.

Далее, пропаганда везде орёт, что в расте сила земли(компилятора) и он что-то сам, хотя на самом деле руками и нихрена не сам(ну максимум он может сказать, что «ты сказал „мёртв“, а передал дальше — ошибка»).

Синтаксис же просто «без слёз не взглянешь» — каждый раз адепты и пропагандисты тебе расскажут, что вот-вот он поменяется и будет вменяемым, но ничего не происходит. Раньше то же самое орали про «у нас свой синтаксис — кресты дерьмо — ко-ко-ко», а после все свои попытки над синтаксисом выкинули и взяли крестовый.

А потом пойдут оправдания «да как мы хотим невозможно сделать не руками», а на вопрос «а с чего это должно быть так, как вы хотите?» — ответа нет.

А далее тайлшлангер ниже пытался поспорить с крестовиком опять и опять слился. Со мною конечно он спорить не будет, ибо его я раскатаю как и раскатывал до этого, но опять же — почему все адепты раста такие ограниченные?

Почему про «троллейбус из буханки», раст, llvm, стрикт-алиасинг, кресты — мне рассказывают всегда нули? Потому что кто-то более шарящий не купится на такую херню? Потому что ему надо работать, а не онанировать на раст/смалтак и прочие куллстори?

Если бы, если бы. Смешно. Надоело уже с вами играться. Есть что ответить — отвечай. Нету? Минусуй в крысу и проходи мимо.
Оси итак написаны на С/С++, а на жаве ни одной. Хотспот так же написана на С/С++.

>>write once run everywhere
Надо понимать, что жава зависит от С++, поэтому С++ появится раньше чем жава. А жава появится через С++.

Непереносимость С/С++ вызвана не языком, а тем фактом, что это языки с доступным лоулевел. Там используются нативные api, там используются всякие таргет-специфик оптимизации, реализации и прочее, чего в жаве по определению нет. Если на С++ писать как на жаве — запускаться будет так же везде, вернее даже на большем числе целей, чем жава.

Переносимость — это не плюс жавы, не плюс её реализации, а плюс самого подхода(поставлять код в обобщенном представлении и собирать на таргете), но в С/С++ опенсорс мире это итак происходит — код можно взять и где угодно собрать.

Опять же в мире С/С++ уже есть реализация вм(правда времени компиляции, ибо не для жавы) сильнее жавы — это ллвм. Любой код можно точно так же собирать в байткод, оптимизировать(этого жава не умеет), а потом транслировать любым бекендом.

Все плюсы жавы как платформы — это плюсы С/С++ рантайма, ибо вм работает на уровне юзерпейса. Их можно использовать в любой С/С++ программе без вм.

У жавы осталась только динамика, но она мало кому нужна в том виде, что она есть в жаве. У С++ же есть мощные статические средства + средние динамические. У жавы статических нет вообще, кроме генериков.

>>Но цель всё та же, ведь уже 60 лет в индустрии «быстро» почти всегда значит «неудобно».
Не верно — быстро — значит квалификация уровня матчасти. «неудобно» — это очередное мифотворчество. Обычный ваятель всегда путает реализацию и интерфейс. Пользователя не должно волновать как реализовано 2 + 2 — интерфейс не меняется. Точно же и везде.

Те, кто пишут рантайм на жаве точно так же пытаются делать его быстрым(в рамках жавы конечно) и точно так же сталкиваются с тем, что «неудобно», ибо в сотни-тысячи раз больше нюансов нежели в обычной реализации.

Уровень «быстро» ещё выше — это уже понимание на уровне интерфейсов, но не это проблема жавы.
Количество китайфонов никого не интересует. Отечественный автопром тоже неплохо продаётся. Тут имеется ввиду не кол-во продаж корейфонов в 3раза дешевле, а конкуренция с т.з. качества. Аккумулятор в 3раза более ёмкий, а садится телефон в 2раза быстрее. Тормозит(без топового железа лучше адроидфон не запускать, а тот что с топовым сейчас вроде как более плавный, но не то), лагает(вменяемая работоспособность не постоянна), падает(качество приложений) и не может работать вменяемо. Ту же проблему тормозов интерфейса решили пару лет назад и то усилением железа, что не является решением проблемы.

Ах да, я ненавижу эпл и за андроид(правда без жабки, но и сейчас за андроид несмотря на жабку). Но моя неприязнь к эплу всё же не позволяет спорить с объективной реальностью в которой андроид не конкурент эплу.

Воля гугла, что привело к основной проблеме андроида — он не может работать нормально и конкурировать с айос. На этом каждый дом заканчивается. Почему жава была выбрана тем же гуглом то же понятно, но скорее выбор в пользу типа языка, а не самой жавы, а сама жава выбрана как наиболее популярный представитель.
>>В данном случае речь про проход SimpleTBAA.
Это обычный поиск алиасов, о котором я говорил. Где именно логика из крестов/с с их стрикталиасингом?

>>Вы говорите про наблюдаемое поведение, я говорю про соответстве стандарту.
Я говорю про ожидаемое поведением, про вменяемое поведение и банальную логику. Я критикую стандарт — с чего вдруг я должен ему следовать? Я где-то писал иное?

>>К слову, интересный момент заключается в том, что в отличие от языков C/C++, компилятор Rust может позволить себе использовать strict aliasing без ущерба для программиста.
Не может — это невозможно.

>>Но там это достигается как побочный результат системы типов языка, поскольку Rust на этапе компиляции обеспечивает отсутствие алиасинга читающих и модифицирующих указателей.
В конечном итоге всё так хорошо начиналось, но свелось к решению проблемы «болит голова» отрубанием головы.

>>The simplest rule is that raw pointers (*T and *mut T) may alias with anything and everything.

А далее тупо нельзя писать в не уникальную ссылку. При этом опять же в ансейфе это работать не может, при работе с биндингами так же. Ну и делается это руками, а не компилятором. Зачем мне использовать не читаемое нагромождение синтаксиса лишь потому, что авторы раста не смогли это сделать на уровне компилятора, при этом сравнивают с языками, в которых это делать не надо.
>>fn curry<A: Copy + 'static, B: 'static, C: 'static>(f: Box<Fn(A,B) -> C>, a: A) -> Box<Fn(B) -> C> {
Box::new(move|b: B| {f(a,b)})
}

И прочие страшилки.

Да и что за мода сравнивать поведение того, чего нет и поведение того, что есть.

>>Компилятор далеко не всегда знает, есть или нет. Может оказаться так, что единственное что есть на руках у компилятора, это прототип функции которую надо вызывать, или прототип функции откуда она получила два значения.
Ну это уже зависит от того как писать. Входит и выход указателей с разными типами довольной редкий юзкейс, а в случае с одинаковыми оно не может. Хотел написать ремарку про аргументы недоступных функций, но подумал, что это итак ясно.

>>В этом смысле strict aliasing работает как последняя способ для компилятора.
Опять же — на каком уровне ему работать в рамках того же шланга? Я не эксперт, но вроде вся работа с ир — это прерогатива ллвм, а там они должны быть обобщенными. Впиливать какие-то проходы в сам шланг? Хотя возможно там они и есть.

В конечном итоге есть рестрикт, который должен решать эту проблему. Его итак надо использовать в более общем юзкейсе — если к этому добавится и более редки — ничего сложного. Это решит все проблемы без создания новых.

>>Вы сами себе противоречите. Сначала вы говорите про выход за семантику языка, потом что код перестает соответствовать тому, что задумал программист.
Нет. На уровне семантики есть только поведение кода. Компилятор меняет поведение того, что написал я. Т.е. код не соотносится с семантикой тех контрукций, что написал я.

А то, что задумал программист как результат — это не семантика языка — это уже левая логика и строится она уже на результатах, а не на самих конструкциях.

И да, оптимизатор ломает то, что написал программист. Я написал «крутить цикл» — он его не крутит и прочие проблемы стана «бенчмаркеров».

>>Зачастую люди сами не знают, что они тут написали, а вы хотите чтобы компилятор это понимал.
Я ничего не хочу — эти лишь ваши попытки меня на чём-то поймать и как-то интерпретировать мои слова в свою пользу выдёргивая их из контекта.

В данном случае компилятор знает что хотел программист и используя стрикт-алиасинг — он ломает код. Такое поведение, даже если оно соответствует стандарту, не очень приемлемо.

>> Именно так и происходит, что «код должен делать что от него требуется, но не должен следовать семантики написанного кода».
Но он не делает, при этом это невалидная оптимизация, которую без пункта стандарта «руби с плеча» компилятор бы никогда не сделал.

>>Устройство компиляторов далеко не банально
Ну это спорный вопрос банальный ли компилятор того уровня на котором он сейчас находится, вернее является ли он менее банальным в сравнением с любым другим проектом того же класса.

Но я об этом не писал — банальным я назвал не устройство компилятора, а причину. «банальная причина — устройство компилятора» — это допущение можно легко интерпретировать верно уже из того, что уточнение «какое именно устройство» у компилятора в данном контексте не имеет смысла.

>>Давайте все же не будем обсуждать личные качества разработчиков стандарта/компиляторов а сконцентрируемся на описании того что есть.
Никому не интересны личные качества каких-то там разработчиков и я их не обсуждаю — мне они не интересны. Я обсуждаю их творения. Я написал почему стрикт-алиасинг не имеет смысла и привносить больше проблем чем пользы, а для получения той же пользы — уже давно в языке есть средства.

Хорошо — то что есть. Я не видел ни одного(не протухшего, не убогого) компилятора, который бы следовал стрикт-алиасингу. Ни шланг, ни гцц ему не следуют, либо я этого не видел, а видел я много.

Зачем же тогда обсуждать то, чего нет? Надо определиться. Зачем решить те проблемы, которые решать не надо? Надо просто выкинуть убогое решение, которое их создаёт и не даёт профит.

>>Я не ставлю себе целью защитить strict aliasing, я стараюсь всего лишь донести информацию.
Я видел ваш доклад. Он строится на невнятной критике и «фи» в адрес код, который перестал работать, либо не работает из-за стрикт-алиасинга. Тем более нигде не указывается, что «может авторы его выкинули», «может авторам не нужно ничего кроме 1/2компиляторов и ни один компилятор этого код не ломает», «может код собирается вообще с другим стандартов, в котором нет стрикт-алиасинга», да и вообще с чего вдруг код плох — плохо тут стрикт-алиасинг, а не код.

Если вы его не защищаете и внятно оцениваете, но при этом хотите людям донести сам факт его наличия и что он может сделать — дак так и делайте.

Да и сама аргументация «не просто так», про юнион и прочее. Про разработчиков ОС, который к синшным биндингам из glibc не имеют никакого отношения. Про магию с transparent_union, которая нужна не для стрикт-алиасинга, а для того, чтобы компилятор не ругался на несовместимые типы указателей. В функцию передаются юнион — один тип. Указатели спокойно накладываются в юнионе, а атрибут к этому не имеет никакого отношения — он лишь позволяет кастовать в него те типы, которые в нём есть.

Тем боле опять же — это не «системый кастыль» — это гнуц. Тем более всё это к теме не имеет никакого отношения.

Тем более всё это нужно для тайпсейфа, а не для реализации. Для реализации там достаточно void *.

Всё это глумление смотрится глупо и отбивает всё желание это смотреть. Зачем это? Произвести вауэффект на зелёных?

>>то при включенном strict aliasing-е, оптипизатор имеет полное право протолкнуть константу 3.14 в загружаемое значение %float_value минуя операцию load, поскольку операции тэгированы типами, которые с точки зрения семантики языка являются несовместимыми.
Оптимизатор чего? В том же шланге на уровне фронтенда? Да и в любом другом компиляторе.

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

Поэтому какой-то алиасинг на уровне вменяемого компилятора в данном случае не имеет смысла, ибо компилятор итак знает есть там алиасинг или нет. Нахрен это впилили в стандарт С++, когда как С++ без сильного компилятора не имеет смысла к существованию — мне так неведомо.

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

>>Все ужасы которые выполняет оптимизатор направлены в конечном итоге на производительность и достигаются ценой определенных уступок.
Стрикталиасинг не имеет никакого отношения к оптимизациям на том уровне оптимизаторов, которые в эту оптимизацию вообще могут. Там где нет алиасинга — компилятор об этом знает, а там где он есть — это нарушает поведение на которое надеялся тот, кто его писал. Кому нужен профит, если он ломает код, при этом пусть и ломает в рамках стандарта?
>>Простите, но фраза «какое отношение компилятор имеет к архитектуре» звучит, скажем так, чересчур громко.
Звучит так, как должно звучать. Никакие архитектуры друг от друга не отличаются. Что ООО, что не-ООО. Разницы нет — в любом случае компилятор обязан уметь шедулить инструкции сам. Другое дело, что никакой(из тех, что я знаю) компилятор это делать не умеет, ибо зачем — когда есть ООО.

>>Компилятор — или его бэкэнд
Бэкэнд — это малая часть компилятора. Остальная часть архитектуро-независима( вернее как — естественно зависима, но скорее от более обобщенной архитектуры c «обычными» инструкциями).

>>пишется под конкретную архитектуру.
Архитектура — это лишь таблица трансляции операций. На этом архитектура закончилась.

>>Например, тот же Эльбрус.
Почему же — работает и без вменяемого компелятора, правда хуже, чем х86 в равных условиях, но из этого ничего не следует, кроме более серьёзных требований к компилятору для работы и хоть какой-то производительности.

Вся та логика, что требуется для эльбруса — требуется и для х86. Шедулинг не ограничен окном в сотню инструкций.

В конечном итоге разница только в том, что для эльбруса это собирается в одну, а для х86 во множество инструкций, которая так же представляет из себя «одну».

Опять же, ещё раз — если чего-то нет — это не значит что этого не надо. И если мы говорим о гипотетически «идеальных» компиляторах — они идентичны за редкими исключениями именно на уровне генерации машинкодов.
Спасибо. Когда-то давно я пытался что-то подобно делать со сменой ip, но у меня не получалось. Возможно не осилил. Оно точно работает? Хотя как время будет — попробую перепроверить.
Т.е. ждёт «сегфолта» у каждого потока на такой точки? Но в целом понятно — типичный стопворлд о котором я даже не предполагал. Бывает.

Information

Rating
Does not participate
Registered
Activity