Стоило ли делать плату? Можно же было на монтажке собрать, схема вроде несложная… Это сейчас DIY-платы типа просто делать, раньше конечно было цирковато.
Я только вот о чем подумал — если в 2008 году вы были еще в школе, то откуда шаблонная магия? Это что за школа такая? Да и даже если самому изучать, то хз как, интернета почти не было, книги в институтской библиотеке все старые… Ну, по крайней мере в библиотеке моего института в те же годы был треш и угар, писанный наверное еще лично Керниганом и Виртом.
Я вам уже отвечал выше — это совсем другое дело, здесь речь идет про испытания. Советский Союз тоже много где и много чего испытывал, в том числе с видом из населенных пунктов на грибочки. Хотя мне непонятно например, почему вы так напираете именно на наземные испытания, подземные кагбе не сильно лучше, и тут СССР явно есть чем «похвастаться».
Речь выше шла про культуру производства. И с ней, как видно, все так же, как и всегда.
Обождите, кого я демонизирую и кого идеализирую? Какие требования я завышаю? Родина опасносте, или что у вас там произошло, я не понимаю?
Все же просто — в одной конкретной стране умудрились вылить жуть жуткую в озеро, мать его, озеро, с которого дрянь потом разнесло по населенной территории. Это ли не бред? И где тут демонизация?
Чтобы вам не было за державу обидно, скажу, что мне также весьма не нравятся факты испытаний американцами оружия на атолле Бикини и французами на Муруроа из-за вреда флоре, фауне и микроскопическому, но ненулевому количеству жителей соседних огрызков суши. Особенно интересно в данном случае, что и те, и другие делали это не на своей территории (хотя американцы и на своей нагадили), есть в этом что-то фарисейское.
Угу, причем от синтаксиса Раста просто трясет, так что остается одна Ада, а там перекати-поле и гулкий свист (хотя конечно кто-то утверждает, что это совсем не так, но даже этих людей найти не так просто).
Ну нет, э, употребление термина «RAII» имеет смысл только в контексте автоматического освобождения ресурса после выхода из области видимости. И тут кроме __cleanup__ нет никаких причин говорить про RAII в Си (да и это так себе причина).
но общей практикой было запрещать инстанциацию шаблонов в большинстве исходных файлов и явно разрешать ее в конкретных, обычно для этой цели созданных, исходниках
Это как конкретно? Организационно, макрос-магией, или просто шаблоны в cpp-файл прятали?
Вы уже рассказывали про это. Скорее всего то была ATTiny2313 (в те годы), хз как вы тулчейн собрали (в те годы), не понял в чем именно заключалось управление LM317 (квази-ЦАП на GPIO?), ну и самое главное — тут дело ж не в эмбеде, оно и под ПК выглядит как треш и угар, если голова не как у вас.
Э нет, так не пойдет. Тот факт, что все в полную силу чего-то там делали, никак не оправдывает того, что кто-то из этих всех делал это как-то по-своему и не особо задумываясь. Это как если бы вы оправдали японских камикадзе словами «нучотам, все воевали в полную силу, особой разницы не было, норм тема, можем повторить».
Чет я не помню, чтобы план «Немыслимое» во-первых содержал планы «стереть в порошок», а во-вторых вообще поднимал атомную повестку. Про атомные дела обычно вспоминают в контексте «Дропшота», который от «стирания в порошок» еще дальше.
Ну и, замечу на полях, что методы обращения с опасными веществами в большинстве случаев к сожалению оправдываются отнюдь не благими целями, а сугубо отсутствием надлежащего отношения к исполнителям, только и всего. Не нужно оправдывать чем-либо тот факт, что всем было сугубо наплевать на сотрудников комбината и местных жителей. И это положение дел сохранялось очень долго, уже после всех «Дропшотов».
Невиртуальный метод обычного класса — это просто свободная функция с неявным параметром this. Класс один — ну и метод тоже один. Тут я причин для появления копий не вижу. А разные инстансы одного шаблона — разные классы, вот методы и получаются разными.
Я имел в виду вот что — если шаблонный класс отнаследован от обычного, то теоретически компилятор мог бы сказать «да ну нахрен, перегружу-ка я все методы теневым образом, у меня ж тут шаблоны кругом, боюсь некорректного инстанцирования» и сделать копию тех же самых методов, но под видом перегрузки (даже если исходники невиртуальные).
Но если по размеру прошивки явно видно отсутствие этого, то конечно спорить не о чем.
А вообще вся переписка, если на нее поглядеть слегка со стороны, выглядит как «не используйте шаблоны, у меня от этого брат умер там какой-от треш и угар, и станет только хуже»
Насколько я понимаю, тут сложность в том, что разные инстансы шаблонов могут быть созданы в разных единицах компиляции
Не, ну если шаблоны инстанциированы в разных единицах компиляции, то почти очевидно, что и вложенные методы будут скопированы соответствующее число раз. Хотя странно, что компоновщик не оптимизирует это, для перегруженных методов обычных классов это же делается и таблица виртуальных методов одна (по крайней мере я так был всегда уверен). Хотя вот ниже пишут, что все-таки удаляет, но это видимо только полностью идентичных инстансов касается, а не вложенных методов.
Поэтому чтобы провести такую оптимизацию, нужна т.н. «link-time code generation»
Да, но это такая вещь, которая вроде и почти ничего не стоит на небольших проектах, но по отзывам иногда дает странные результаты.
Или наследую шаблонный класс от обычного
А точно ли при этом не создается новых копий и идет сугубо ссылка на методы базового класса?
Если жижа нелетучая, то она из лужи никуда не денется. Если лужа в ненаселённой местности, то никто в ней не искупается. Если у лужи нет стока и контакта с грунтовыми водами, то лужа не утечёт.
Угу, не поспоришь.
А если в емкость залить, и крышкой закрыть, и эксплуатировать как положено — то вообще хорошо будет.
Проблема-то в чём? В том, что однажды лужа пересохла, и пыль разнесло ветром?
А, гм, это недостаточная причина беспокоиться? Ну или даже так скажу — авторам решения было не очевидно, что дрянь из рек, озер и прудов иногда поднимается в воздух? Это не было известно из столетнего опыта эксплуатации химзаводов?
На фоне прочих ядерных происшествий эры условно 1945-1965 это в общем даже не особо выдающееся — ни по масштабам, ни по частоте. Ничем не лучше и не хуже подземных хранилищ Хэнфорда, тихо сочащихся в почву, вида на грибы ядерных взрывов из Лас-Вегаса или многочисленных потерянных и подорванных бомб и боеголовок.
Главное, что тот самый «единичный случай пересыхания» не превзошел по последствиям аварию 1957 года, а раз так, то не считается, верно?
Надо будет у МАГАТЭ спросить насчет того, что оно об этом думает. Что по их мнению хуже — ядерные грибы в пустыне Невада, или радиоактивные осадки в населенной местности.
А во времена, когда из радия-226 делали «краски постоянного свечения»… это выглядело далеко не таким ужасным.
В целом это все понятно, но в любом случае есть разница — СПД на шкале прибора и радиоактивная жижа в луже. Я не удивлюсь, если радиоактивные отходы сливали в землю в Чехии при переработке урановой смолки в 19 веке, это понятно. И за 20-е годы прошлого века говорить не буду, там дичь творилась. Но не в конце же сороковых! ИЧСХ непосредственные участники событий на самом деле все знали, и сами об этом пишут — знали, но что было делать, Родина опасносте, вот это вот все…
А альтернативные примеры про нефть, мусор, Бхопал и «Грета смотрит на тебя как на источник СО2» конечно правильные, но сути дела не отменяющие. Я сейчас говорю конкретно о теме радиоактивных отходов.
Ну, суть шаблонов в том, что для каждого значения шаблонного параметра генерируется свой класс или метод. Даже если метод внутри себя этот параметр никак не использует; даже если метод получается совершенно одинаковый в каждом варианте шаблона.
Теоретически, компилятор мог бы и оптимизировать пачку таких методов в один, но на практике я такого не видел.
И получается, что размер кода пухнет просто на ровном месте.
Довольно неожиданно. Я был полностью уверен, что уж одинаковый код точно должен быть в единственном варианте, как в случае с перегрузкой методов. И я не понял тогда, как с этим борются, в самых общих чертах?
Ну, главное ж что не надо все биты и все регистры руками заполнять. Ссылка на исходники парсера вроде в другой статье была. Или это другой парсер?
Хм, не видел эту ссылку. Ну ок, парсер SVD есть, но меня больше беспокоил собственно сам код классов.
Может и сравнимо, но я что-то не уверен. Ну вот правда, построить АЭС на берегу моря при условии убедительных заверений геологов/гидрологов в полной безопасности мероприятия я бы пожалуй смог. Но вот сливать ЖРАО в открытое озеро (!) — ну нет, ну как…
Эту всю хрень обычно оправдывают «недооценкой вреда», а это не недооценка ни разу, это просто свинство. Что в Хэнфорде, что в Озерске. Правда в Хэнфорде хотя бы старались конкретную дрянь в бочках держать, как мне известно «хвосты» от радиохимии там в реку/землю/озера не сливали никогда.
Да, действительно, это менее обнадеживающие данные, чем я читал когда-то. Тогда писалось о практически безопасном для окружающей среды уровне нуклидов в сбросе охладителей.
Нечто весьма занятное написано по ссылке 129: «Perhaps the most dramatic of these events was the „Green Run“ in December 1949, when 8,000 curies of iodine-131 were intentionally released from (»green") nuclear fuel with only a short cooling period. This secret release was part of a US intelligence effort to develop capability for detecting Russian plutonium production."
Я только вот о чем подумал — если в 2008 году вы были еще в школе, то откуда шаблонная магия? Это что за школа такая? Да и даже если самому изучать, то хз как, интернета почти не было, книги в институтской библиотеке все старые… Ну, по крайней мере в библиотеке моего института в те же годы был треш и угар, писанный наверное еще лично Керниганом и Виртом.
Речь выше шла про культуру производства. И с ней, как видно, все так же, как и всегда.
Все же просто — в одной конкретной стране умудрились вылить жуть жуткую в озеро, мать его, озеро, с которого дрянь потом разнесло по населенной территории. Это ли не бред? И где тут демонизация?
Чтобы вам не было за державу обидно, скажу, что мне также весьма не нравятся факты испытаний американцами оружия на атолле Бикини и французами на Муруроа из-за вреда флоре, фауне и микроскопическому, но ненулевому количеству жителей соседних огрызков суши. Особенно интересно в данном случае, что и те, и другие делали это не на своей территории (хотя американцы и на своей нагадили), есть в этом что-то фарисейское.
Это как конкретно? Организационно, макрос-магией, или просто шаблоны в cpp-файл прятали?
Ну или пользоваться совсем чуть-чуть. Описанный вами подход мне подходит.
Ну и, замечу на полях, что методы обращения с опасными веществами в большинстве случаев к сожалению оправдываются отнюдь не благими целями, а сугубо отсутствием надлежащего отношения к исполнителям, только и всего. Не нужно оправдывать чем-либо тот факт, что всем было сугубо наплевать на сотрудников комбината и местных жителей. И это положение дел сохранялось очень долго, уже после всех «Дропшотов».
Я имел в виду вот что — если шаблонный класс отнаследован от обычного, то теоретически компилятор мог бы сказать «да ну нахрен, перегружу-ка я все методы теневым образом, у меня ж тут шаблоны кругом, боюсь некорректного инстанцирования» и сделать копию тех же самых методов, но под видом перегрузки (даже если исходники невиртуальные).
Но если по размеру прошивки явно видно отсутствие этого, то конечно спорить не о чем.
А вообще вся переписка, если на нее поглядеть слегка со стороны, выглядит как «не используйте шаблоны,
у меня от этого брат умертам какой-от треш и угар, и станет только хуже»Не, ну если шаблоны инстанциированы в разных единицах компиляции, то почти очевидно, что и вложенные методы будут скопированы соответствующее число раз. Хотя странно, что компоновщик не оптимизирует это, для перегруженных методов обычных классов это же делается и таблица виртуальных методов одна (по крайней мере я так был всегда уверен). Хотя вот ниже пишут, что все-таки удаляет, но это видимо только полностью идентичных инстансов касается, а не вложенных методов.
Да, но это такая вещь, которая вроде и почти ничего не стоит на небольших проектах, но по отзывам иногда дает странные результаты.
А точно ли при этом не создается новых копий и идет сугубо ссылка на методы базового класса?
Угу, не поспоришь.
А если в емкость залить, и крышкой закрыть, и эксплуатировать как положено — то вообще хорошо будет.
А, гм, это недостаточная причина беспокоиться? Ну или даже так скажу — авторам решения было не очевидно, что дрянь из рек, озер и прудов иногда поднимается в воздух? Это не было известно из столетнего опыта эксплуатации химзаводов?
Главное, что тот самый «единичный случай пересыхания» не превзошел по последствиям аварию 1957 года, а раз так, то не считается, верно?
Надо будет у МАГАТЭ спросить насчет того, что оно об этом думает. Что по их мнению хуже — ядерные грибы в пустыне Невада, или радиоактивные осадки в населенной местности.
В целом это все понятно, но в любом случае есть разница — СПД на шкале прибора и радиоактивная жижа в луже. Я не удивлюсь, если радиоактивные отходы сливали в землю в Чехии при переработке урановой смолки в 19 веке, это понятно. И за 20-е годы прошлого века говорить не буду, там дичь творилась. Но не в конце же сороковых! ИЧСХ непосредственные участники событий на самом деле все знали, и сами об этом пишут — знали, но что было делать, Родина опасносте, вот это вот все…
А альтернативные примеры про нефть, мусор, Бхопал и «Грета смотрит на тебя как на источник СО2» конечно правильные, но сути дела не отменяющие. Я сейчас говорю конкретно о теме радиоактивных отходов.
Довольно неожиданно. Я был полностью уверен, что уж одинаковый код точно должен быть в единственном варианте, как в случае с перегрузкой методов. И я не понял тогда, как с этим борются, в самых общих чертах?
Хм, не видел эту ссылку. Ну ок, парсер SVD есть, но меня больше беспокоил собственно сам код классов.
Эту всю хрень обычно оправдывают «недооценкой вреда», а это не недооценка ни разу, это просто свинство. Что в Хэнфорде, что в Озерске. Правда в Хэнфорде хотя бы старались конкретную дрянь в бочках держать, как мне известно «хвосты» от радиохимии там в реку/землю/озера не сливали никогда.
Нечто весьма занятное написано по ссылке 129: «Perhaps the most dramatic of these events was the „Green Run“ in December 1949, when 8,000 curies of iodine-131 were intentionally released from (»green") nuclear fuel with only a short cooling period. This secret release was part of a US intelligence effort to develop capability for detecting Russian plutonium production."