Size: a a a

Programming Offtop

2020 March 20

АХ

Алексей Худяков in Programming Offtop
Ну и кодогенерация из того же хаскелля :-Р
источник

Д

Декар in Programming Offtop
Алексей Худяков
Пока только раст
там нет полного zero-cost. Слабая поддержка оптимизации.
источник

AD

Aleksey D. in Programming Offtop
источник

AM

Andrew Mikhaylov in Programming Offtop
Декар
там нет полного zero-cost. Слабая поддержка оптимизации.
А вы непосредственно железо программируете, или прикладной софт, который с этим железом коммуницирует?
источник

АХ

Алексей Худяков in Programming Offtop
Декар
там нет полного zero-cost. Слабая поддержка оптимизации.
А что подразумевается под zero-cost? На контроллеры нонче жырные. На них порой можно и худенький рантайм засунуть
источник

AN

Alexander Nozik in Programming Offtop
Декар
А как без них?
Вообще запретить касты не связанных типов. Если у тебя такой редкий случай, когда надо работать с байтовыми блоками и интерпретировать их, работать с ними как с блоками байтов при помощи адаптеров
источник

Д

Декар in Programming Offtop
Алексей Худяков
Ну и кодогенерация из того же хаскелля :-Р
Кодогенерация идея хороша, да. Но хаскелем делать асинхронные statefull протоколы проще удавиться. И кодогенератон на какой-нибудь USB нагенерит тебе совсем не ZeroCost
источник

AM

Andrew Mikhaylov in Programming Offtop
Alexander Nozik
Вообще запретить касты не связанных типов. Если у тебя такой редкий случай, когда надо работать с байтовыми блоками и интерпретировать их, работать с ними как с блоками байтов при помощи адаптеров
Реинтерпрет ровно для таких "байтовых блоков" и используется обычно, да.
источник

AM

Andrew Mikhaylov in Programming Offtop
Там как раз описываются структуры с чёткими правилами выравнивания полей и т.п.
источник

AN

Alexander Nozik in Programming Offtop
Декар
У zero-cost programming всегда будет своя ниша
Можно сделать zero-cost без убогих решений.
источник

Д

Декар in Programming Offtop
Alexander Nozik
Вообще запретить касты не связанных типов. Если у тебя такой редкий случай, когда надо работать с байтовыми блоками и интерпретировать их, работать с ними как с блоками байтов при помощи адаптеров
А как тогда объявить таблицу векторов прерываний?
memcpy это тоже каст.
источник

АХ

Алексей Худяков in Programming Offtop
Alexander Nozik
Вообще запретить касты не связанных типов. Если у тебя такой редкий случай, когда надо работать с байтовыми блоками и интерпретировать их, работать с ними как с блоками байтов при помощи адаптеров
Это экстремизм
источник

Д

Декар in Programming Offtop
Alexander Nozik
Можно сделать zero-cost без убогих решений.
Теоритически - можно. На практике это будет мешанина union-подобного шлака.
источник

AN

Alexander Nozik in Programming Offtop
Декар
А как тогда объявить таблицу векторов прерываний?
memcpy это тоже каст.
Так явный же.
источник

Д

Декар in Programming Offtop
Кто явный?
источник

Д

Декар in Programming Offtop
А, memcpy.
источник

АХ

Алексей Худяков in Programming Offtop
reinterpret_cast тоже явный
источник

Д

Декар in Programming Offtop
и c-like тоже.
источник

AN

Alexander Nozik in Programming Offtop
Декар
Теоритически - можно. На практике это будет мешанина union-подобного шлака.
Ничего подобного. Опять-таки вопрос в ширине кругозора. В С этого нельзя сделать нормальные акксессоры для байтовых массивов просто потому что уровень абстркции в языке нулевой. В современных языках это можно сделать
источник

AN

Alexander Nozik in Programming Offtop
Алексей Худяков
reinterpret_cast тоже явный
Ну да, но все равно, если кто-то где-то поменяет структуру класса/структуры, оно не просто ляжет, а будет генерить ерунду
источник