Поздравляем !Neofit с днём рождения!
- Парни, мало ли кому надо, делал давно плагин под FF и EDGE OlegPowerC(28 знак., 11.11.2020 11:13, dao, ссылка, ссылка, полностью)MBedder
- Случайно нашел примеры как загнать линкер в ступор BlackMorda(373 знак., 11.11.2020 11:42, dao)
- есть ли смысл писать у каждой функции noexcept в с++ в embedded сфере? - Constantin24(02.11.2020 08:56, dao, полностью)
- Я слышал правильные пацаны пишут STDEPILOGUE и определяют макро.
Иногда из одних подчеркиваний. Заодно и читающему приятно. ;) - RxTx(02.11.2020 22:07)
- Только в случае, когда определение функции не видно вызывающей
стороне. Когда функция глобальная и определена в другом модуле. В
случае статических и инлайн (определённых в хедере) функций
компилятор может сам догадаться. Я так думаю. - fk0(02.11.2020 15:15)
- Везде - вряд ли. Плохо не будет, но лучше cработает если опциями
компилятора запретить исключения во всем проекте. Малый
джентельменский список где нужно, если есть возможность -
конструкторы, копирование, перемещенеие, etc. - Kabdim(02.11.2020 15:07)
- используется ключ -fno-exceptions для g++. По источникам не тоже
самое что и noexcept. Вот и задумался, а будет ли вообще какая
выгода с этого noexcept - Constantin24(03.11.2020 21:10)
- Это дурноватая идея. Оправдана только для экономии памяти. Когда уж
вот 10% очень как нужны. - fk0(02.11.2020 15:16)
- Исключения тормозят + прошивки как правило то место где все
исключительные ситуации должны быть обработаны сознательно. По
крайней мере у меня это так. Поэтому для меня bool,
Result<>, getLastError, (*onError) - каждая в своих
ситуациях лучше исключения. Kabdim(57 знак., 03.11.2020 12:08)
- У Александреску где-то видео было, рекомендую: fk0(336 знак., 05.11.2020 17:38, ссылка, youtube)
- Исключения тормозят только в том случае если пытаться (по
непониманию) их использовать как некий стандартный механизм-замену
возвращаемых значений. При выбросе исключения происходит stack
unwinding, возврат указателя стека и это делается в цикле, стек
вызовов интерпретируется как список (list, примерно). Поэтому это
будет разумеется не так быстро как возврат значения, но сейчас тоже
не так фатально. Жуть о очень медленных исключениях идет с эпохи
примерно 96..98 годов, RxTx(674 знак., 03.11.2020 23:34)
- поделитесь подробным использованием Result<>,
getLastError, (*onError) - Constantin24(03.11.2020 21:06)
- Посоветуйте плз что-нибудь на тему описания логики автомата
состояний интерфейса пользователя. VLLV(1111 знак., 08.11.2020 19:37, dao, полностью)
- Да, если у тебя мега-большой автомат, то его НУЖНО бить на десяток
более мелких организованных в иерархическую систему. Где мелкие
отвечают за что-то одно. Иначе ты и не сможешь, если не дай бог,
автоматы должны работать параллельно (число состояний перемножается
и достигает огромных значений). - fk0(09.11.2020 14:38)
- Можно сделать "автомат с магазинной памятью" (см. "Введение в
теорию автоматов, языков и вычислений", Ульман Джеффри Д., Хопкрофт
Джон Э.) но оно того не стоит. Не того уровня задача. - fk0(09.11.2020 14:26, ссылка)
- Шалыто читал? Это называется вложенный автомат. Идея в том, что
есть иерархическая система КА. Где автоматы связаны вместе тем, что
сами встроены в один КА верхнего уровня. И отдельных состояниях КА
верхнего уровня может быть вложен внутренний КА. Т.е. при переходе
в это состоение запускается внутренний КА и внешний КА не выходит
из состояния пока внутренний не дойдёт до некого финального
состояния. См. цикл статей на - fk0(09.11.2020 14:24, ссылка)
- Что-то мне подсказывает, что достаточно очереди (для "нажатий") и
спулера. При обратных связях соответствующие одиночные элементы или
последовательности вставляются в очередь, остальное "расталкивая
локтями". Времена для спулера задавать в элементах очереди. - Vit(08.11.2020 22:37)
- смотря что у вас за автоматы ? думаю нет проблем ввести ожидание
перехода на следующий шаг автомата... у мну каждая функция автомата
возвращает следующий шаг автомата, из основной логики нет никаких
проблем ожидать решение о переходе из вне! - Aleksey_75(08.11.2020 22:28)
- Автоматы состояний в GUI? Зачем? Пример? GUI - это кнопки,
чекбоксы, формы, поля ввода или что-то иное? В первом приближении -
подстостояния у состояний, подавтоматы. - RxTx(08.11.2020 19:48)
- Чем меньше "инструментов ради инструментов" тем лучше. Это моя
мысль такая :) Cкpипaч(356 знак., 08.11.2020 19:41)
- Ну стек окон не такая же и сложная в понимании штука - lloyd(08.11.2020 19:38)
- Сделаем Linux RT системой (почти) при помощи Lua in the kernel! Evgeny_CD(246 знак., 01.11.2020 00:34, dao, ссылка, ссылка, полностью)
- Евгений, вы же знаете про проект LinuxCNC? Он сейчас может по
другому называется, но там управляющий софт был в том числе и на
питоне, взаимодействуя с ядром, из которого "торчали" RT вызовы. Не
вижу препятсвий для использования с Lua. Управление ЧПУ - вполне
себе реалтайм, имхо. - Dingo(05.11.2020 16:31)
- затащить непойми-какую хрень в ринг0 и взбадривать машину внешним
ресетом? ну, такое... - фyтбoлиcт(01.11.2020 14:31,
)
- Ключевой вопрос - M$ имеет какой-нибудь запрет на VM в драйверах? - Evgeny_CD(01.11.2020 00:49)
- Замысел прост - я могу на непатченном (до RT) ядре Linux развернуть
PLC с латентностью менее 1мс. Что сильно-сильно меняет дело. - Evgeny_CD(01.11.2020 00:48)
- Мысль в том, что латентность, вызванная оверхедами на собственно
VM, сильно ниже латетности самой ОСи в user mode. Evgeny_CD(102 знак., 01.11.2020 00:37)
- А вот в Матлабе-2009 размер шрифта в редакторе как-то меняется? - Kpoк(03.11.2020 13:49, dao, полностью)
- ЯВУ -> байткод -> C код. Интересно, что за велосипед я сейчас изобрету. Навеяно -> Evgeny_CD(3366 знак., 19.11.2012 23:10, dao, ссылка, полностью)
- Parrot - довольно интересная виртуальная машина. Респект Д.ARMоед -> Evgeny_CD(1577 знак., 21.11.2012 01:10 - 01:13, ссылка)
- Comparison of application virtual machines -> - Evgeny_CD(21.11.2012 00:13, ссылка)
- Сравнение производительности языковых VM (Universal bytecode VM comparison) -> Очень интересно! - Evgeny_CD(20.11.2012 20:43, ссылка)
- Всё давно изобретено -- Java назвается. В этой идее байтокод не нужен. Идеальный вариант трансляция в C и потом в машинный код. Отлаживать нужно на уровне того ЯВУ с которого в C транслируется. И, кстати, к вопросу о непопулярности. Штуки вроде fk0(449 знак., 20.11.2012 12:39)
- Вы, наконец, придумали как пользоваться llvm? :) - vanner(20.11.2012 10:55)
- Чем-то вся эта борьба байт-код vs asm напоминает битву CISC vs RISC. vmp(1117 знак., 20.11.2012 09:57)
- Это не оно, "только в профиль" (с)? - Chum_A(20.11.2012 09:46, ссылка)
- "ЧТО НЕ ТАК В ЭТОЙ ИДЕЕ?" - слишком много "если" (ака "пусть будет") - Snaky(20.11.2012 01:06)
- "Берем четырех человек" мультик напомнило про лемлекопов / полтора часа ;) - Гудвин(20.11.2012 00:19)
- ну очень интересная фирмешка! Franz Inc. -> 1) Common Lisp, компилятор в бинарник. 2)Графовая БД 3) Семантические тулзы под WEB 3.0 Много чего еще есть. Как мысли-то сходятся... - Evgeny_CD(20.11.2012 00:15, ссылка)
- Но сколько выкурил Боб Марли -- столько ты не скуришь... - fk0(19.11.2012 23:41)
- Поясню еще один кайф от байткода. Тонкая настройка. Evgeny_CD(1098 знак., 19.11.2012 23:34)
- Вам не кажется что ЯВУ предполагает "высокий уровень" обоих? :) Это противоречит тенденции
квадратиллионы обезьян "сто индусов по цене одного немца". - Скрипач(19.11.2012 23:18)
- Д.ARMоед, пожалуйста, почитай мою писанину... - Evgeny_CD(19.11.2012 23:12)
- Есть желание заюзать malloc и сразу назрел вопрос, как из проги
узнать кол-во используемого озу ? - Aleksey_75(30.10.2020 21:08, dao, полностью)
- man mallinfo -- в приличной C-библиотеке он есть. - fk0(02.11.2020 13:09, ссылка)
- если имеется ввиду всё ли развернулось... анализировать ответ =)) я
так периодически нахожу багги, когда heap не хватает... тогда такие
феерические глюки... - sav6622(30.10.2020 21:10)
- не очень понятно что значит "всё ли развернулось" , размер heap и
stack известен (если конечно все норм), если будет известно кол-во
занятого озу, по средствам не хитрых мат вычислений можно получить
максимальный размер буфера обмена и под него выделить память - Aleksey_75(30.10.2020 21:16)
- Обьекты создаются ОДИН РАЗ за время работы устр-ва по приходу
конфигурации (и НЕ уничтожаются)... размер обьекта меняется при
перекомпиляции, проще смотреть все ли развернулись, чем пытаться их
посчитать и сравнить с остатком доступной памяти... sav6622(81 знак., 02.11.2020 13:30)
- Кстати, максимальный кусок легко найти двоичным поиском. 16 ok, 32
ok, 64 ok, 128 ok, 256 fail, 192 ok, ... - SciFi(30.10.2020 21:26)
- Куча фрагментируется. То есть сумма размеров свободных кусков и
размер максимального свободного куска — это не одно и то же. Ну и
есть ли смысл выделять буфер недетерминированного размера? Как-то
это не по-ымбеддерски. Типа сегодня работает, а завтра нет. Или
наеборот. - SciFi(30.10.2020 21:25)
- Сделай обёртку, которая суммирует кол-во выделенной памяти. - SciFi(30.10.2020 21:10)
- [Взрослый WEB сервер на Lua] какие-то параметры фантастические. Low memory footprint (~500KiB
for 10k idle connections) - Evgeny_CD(01.11.2020 19:38, dao, ссылка)
- [Кастомный PLC на Lua] - реальность! Подборка. Evgeny_CD(1058 знак., 01.11.2020 18:52, dao, ссылка, ссылка)
- [LXP32] is a lightweight, open source and FPGA-friendly 32-bit CPU IP
core. A soft processor core based on a simple, original instruction
set designed for efficient FPGA implementation. Обалдеть! Читаем
документы! Наш человек делал! Copyright © 2016–2019 by Alex I.
Kuznetsov. Evgeny_CD(01.11.2020 18:22, dao, ссылка, ссылка, полностью)
- [Port luajit to RISC-V] наш человек делал! Evgeny_CD(35 знак., 01.11.2020 18:06, dao, ссылка, ссылка)
- Ravi is a dialect of Lua, featuring limited optional static typing
and JIT compilers - Evgeny_CD(01.11.2020 01:10, dao, ссылка, полностью)
- Познакомился с Tcl/Expect. Это офигенно, давно я не испытывал
такого экстаза от автоматизации. Почти весь тот монстр, что у меня
запускался на pytest/labgrid полминуты, поместился в 400 строк кода
с авторизацией по паролям, переходом между пингвином и загрузчиком
(в обе стороны), выполнение команд с захватом результата. Да, мб
Tcl работает медленно, зато не медленно запускается, а бОльшая
часть простоев в моих операциях - запись флешки или тест IO,
переход между этапами не lloyd(403 знак., 29.10.2020 21:15, dao, полностью)
- Вообще такую автоматизацию можно часто делать на awk. Его
совершенно зря недооценивают. Это вполне полноценный язык
программирования, который есть практически на любой платформе. При
этом на нём можно и математические функции программировать, и
обработку текста, разное. И он умеет, неожиданно, работать с
сокетами! С ком-портами можно заставить (с помощью stty и какой-то
матери). Да там даже встроенный дебаггер есть! fk0(1292 знак., 29.10.2020 23:27)
- Ты еще m4 вспомни. Perl 5 тогда уже. Тоже есть на всех платформа, и
очень даже продвинутый на самом деле. - Evgeny_CD(31.10.2020 14:43)
- Я правильно понимаю, что все эти ваши луи, авки, тцлы, питоны и
прочая скриптовая нечисть - это всего-лишь навсего более
накрученные варианты интерпретатора команд ОС для написания
скриптов пакетной обработки а-ля autoexec.bat? - MBedder(29.10.2020 23:39)
- Нет, скорей это полноценные языки программирования с динамической
типизацией. С command.com от микрософта сравнивать вообще
бессмыленно -- последний какая-то кривая паделка. cmd.exe получше,
но тоже страшен. Реальная микрософтовская альтернатива --
PowerShell. Можно сравнить command.com и bash, но последний много
мощней и является как раз больше не универсальным языком
программирования, а shell-языком, подходящим для написания
"батников" или работы из консоли. Для обычного fk0(2004 знак., 30.10.2020 00:06)
- Нет. Это самостоятельные языки программирования в комплекте со
средами. Они могут вызывать команды хостовой OS, но это мелкая
часть их возможностей. - Evgeny_CD(29.10.2020 23:42)
- Существует компилятор (скорее конвертер), превращающий скрипт
autoexec.bat в самодостаточный исполняемый ехе-файл - это чем тогда
считать? И самое главное - нахуя весь этот зоопарк нужен при
наличии С++ - неужели на плюсах невозможно сделать то, что возможно
сделать на тцл? - MBedder(29.10.2020 23:50)
- Существует Си-интерпретатор со своим шеллом - Ch. Можно обойтись
без плюсов:) - Vit(30.10.2020 04:32, ссылка)
- Процитирую сам себя: "Разработка ПО большого объёма на языках с
динамической типизацией, как правило затруднена, но в целом
скорость разработки на таких языках может быть сильно выше..."
Помимо прочего, скриптовые языки обычно выполняют роль "клея",
склевивающего разные компоненты (отдельные программы,
библиотеки...) Ко многим скриптовым языкам есть "биндинги" ко
многим C/C++ библиотекам. Кроме того, почти все скриптовые языки
позволяют REPL, что может ускорить разработку fk0(379 знак., 30.10.2020 02:00, ссылка, картинка)
- Спасибо еще раз. Не полезу - стар-с :(( - MBedder(30.10.2020 02:04)
- К слову, так получилось что на неделе впервые за полугода сел
писать на Си. Не на Питоне. Какой же он нудный, ваш компилятор -
почти ассемблер :) Все ему разжуй, по шагам. Cкpипaч(252 знак., 30.10.2020 10:22)
- Нас эта ситуация полностью устраивает. Чтобы не набежали пионэры с
адуринами. - SciFi(30.10.2020 10:29)
- пока вы тут жуете это древнее гавно один раз, пионеры с ардуинами
уже сожрут всех клиентов и свалят на багамы LordN(92 знак., 30.10.2020 10:35)
- Странно. Чаго тогда за 2 недели два автора воделий на аурдино
пришли с просьбой выкинуть нах аурдину и сделать по человечески? symbions(2 знак., 30.10.2020 14:11)
- Я уже давно продвигаю решение в виде условно кроссплатформенного
фреймворка и коллекции дополнительных инструментов, например
конфигураторов PLL под какую-либо платформу. Это позволит размазать
временные и финансовые затраты на написание драйверов на все
сообщество. evgeniy1294(611 знак., 30.10.2020 13:12)
- А где этот концепт изложен? - Dingo(31.10.2020 14:12)
- Удачи, дело нужное. - symbions(1 знак., 30.10.2020 14:16, картинка)
- Из той же оперы, "деревянный менеджмент". Купили для поставки
заказчику мегаомметр у "Радиосервиса", прибор отличный, в
госреестре, с поверкой, но есть один минус - софт под него работает
только под виндой, а заказчик сидит на Астре. evgeniy1294(417 знак., 30.10.2020 13:31)
- Один раз мне дали полную свободу по решению одной задачи Дoктyp77(447 знак., 30.10.2020 13:30)
- Один далеко не уедешь. Увы, но метод "британского музея" в больших
масштабах -- очень даже имеет смысл. В организации имеет смысл
внедрять "внутрифирменный opensource"... - fk0(30.10.2020 13:19)
- Это разные философии. В скриптовых языках много автоматизировано -
тот же сборщик мусора, работа с сложными объектами в памяти - ценой
некоторого оверхеда. В скриптовых языках важна скорость написания
рабочего и достаточно надежного кода, и она выше С++ - Evgeny_CD(29.10.2020 23:54)
- На самом деле здесь ничего уникального в expect. За ним стоит
простейшая идея: циклический буфер на N килобайт, в него постоянно
добавляются вновь принятые данные, что не влезло -- откидывается с
конца. И по этому буферу ищем регэкспы. Такое можно руками сделать
в любом языке. А каждый "оператор" expect -- это по-сути while(1) с
дочитыванием сколько есть в буфер. Другое дело, что такой подход не
эффективен. Ты будешь каждый раз с начала буфера всё парсить
заново... fk0(1154 знак., 29.10.2020 23:17, ссылка, ссылка)
- Ну парусить AT команды на питоне тоже легко - OlegPowerC(29.10.2020 23:08)
- Я кстати предупреждаю, что expect -- порядочная наколенная паделка.
Там многое через ()() и пару раз из-за этого всё бросал и
переписывал на чистом Tcl. Там какие-то малопонятные глюки если его
заставить работать с сокетами во-первых. Во-вторых фокусы вроде
того, что он переменные устанавливает (по факту парсинга) в каком
попало скоупе: может в локальном (процедуры), может в глобальном.
Когда пишешь скрипт (без процедур) и всё глобальное -- оно не
заметно. Но когда начинаешь fk0(206 знак., 29.10.2020 22:59, ссылка)
- Есть Jim, который раз в 5-10 меньше, чем Tcl. Но по скорости
заметно хуже (т.к. работает с текстом в лоб, не имеет текстового и
одновременно бинарного представления объектов). Совместимость с Tcl
достаточно высокая, но не 100%. Есть ещё масса недо-Tcl
интерпретаторов, но они в целом вряд ли интересны, кроме как shell
микроконтроллере: partcl, lil, picol... fk0(74 знак., 29.10.2020 22:54, ссылка, ссылка)
- К вопросу об искусстве преставления информации - Evgeny_CD(30.10.2020 01:16, dao, ссылка)