LINUX.ORG.RU

Сообщения superhackkiller1997

 

Метапрограммирование - проблемы и пути их решения.

 , ,

Пичал я тут на днях токенайзел для C++-кода, но всё это меня добило я решил поделится.

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

Шблонную магию плюсов я не люблю, ибо она ущербна чуть более, чем полностью и тут я вспомнил, что оказывается в плюсах хотели ввести компилтайм функции, аля constexpr и подумалось мне - во, плюсы затащат и как всегда я в очередной раз убедился в ущербности плюсов и так и не понял логики тех, кто это запилил.

Чтобы не быть голословным пишем что-то типа

constexpr uint64_t f(uint64_t a, uint64_t b) {
  return a + b; 
}
Всё ок, но пишем что-то сложнее, аля:

uint64_t m[] = {0, 1, 2, 3, 4};
constexpr uint64_t f(uint64_t a, uint64_t b) {
  return m[a] + m[b]; 
}

Бида( или это моё неосиляторство плюсов?), дак зачем они запилили эту фичу, если она может лишь галимую примитивщину? Шаблоны ещё ущербней. В чем приемущество? Зачем?

А теперь у меня вопрос к вам, уважаемы батьки и отцы - что мне делать? Я хочу запонять массивы написав генератор, причем и в компилтайме тоже. Я хочу юзать libc, я хочу всё, а у меня нет ничего, почему?

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

У меня есть 3 пути: терпеть, пилить свой язык и конпелятор самому( что долго и нудно) и ваш совет.

superhackkiller1997
()

Модераторский произвол.

 

Мне вот интересно по какому критерию на лоре отбирают модераторов? Я не буду говорить словать типа «балабольство», иначе меня сольют и показательно удалят, но все же, давайте разберёмся.

Я написал ответ на это сообщение Глупый вопрос по С (комментарий) в моём ответе товарищь модератор нашел «ругательства», причем как всегда модератор даже не обязан показать где именно он их нашел, но чтоже найдём сами.

Разберём:

У меня в голове не фигня.

Объективно - нет ругани.

Твой проще - это уровень детсада, даже не 5-й, а 3-й группы. Никаких в юзерспейсе( юзерспейс, который контактирует с ведром) малоков и newвов нет, это уже локальный говноманег кучи в твоём рантайме.

Пример простой, уровня детсада - не ругательство. Говноманагер - не ругательство, это объективный факт, ибо ФС-подобный манагер кучи по определению говно.

Я не считаю себя программистов, а уж прикладным темболее. Нет, ты говоришь своему манагеру кучи. Ядро ничего тебе не заготавливает - ядро даёт тебе rw на страницы, не более. Факт, оно всегда заготовит с точностью до байта, ВСЕГДА, и я знаю сколько и когда.

Объективно - нет ругательств.

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

Автор сообщения назвал пример топистатера говном, я же назвал его пример таки же говном, что есть объективный факт и не является руганью. Идиотов - это иносказательная классификация и руганью не является.

Я писал выше нормальный пример, а не это говно.

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

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

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

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

superhackkiller1997
()