LINUX.ORG.RU

Метапрог-прототип 15 + модернизация СУВТ

 , ,


0

2

Скачать:

https://mega.nz/file/6RBkhIiQ#PCydINDpFpqznLfOyYDeA1u0hlYg11OP7xhRXezcZAI

СУВТ - структура условного выбора типа. По сути является структурой из числа-переключателя и юниона из разных типов. При подаче СУВТ на блок-переключатель (аналог сишного switch) можно вытаскивать из СУВТ данные определенных типов при определенных значениях числа-переключателя.

В новой версии тип СУВТ можно редактировать: назначать типам значения а также удалять типы из СУВТ (раньше можно было только добавлять). Также модернизированы блоки операции над структурой и переключателя: теперь в переключатель СУВТ можно записывать значения, не имеющие назначенного в СУВТ типа, а в блоке-переключателе можно выставлять нестандартные значения, от которого вести жесткую последовательность на его обработку. Подробности в примере (меню обучение - меню примеры - функция СУВТ+схождения).

На днях постараюсь выпустить патч, позволяющий ставить в качестве переключателя СУВТ разные числовые типы и даже енумы. Это серьезно упростит реализацию протоколов связи, построение графических интерфейсов и многие другие применения, требующие выбора данных разных типов. Заодно будут учтены баги, если они всплывут за это время.

Предыдущая версия:

Метапрог-прототип 14 + условные схождения

Ответ на: комментарий от abcq

Ну сие не удивительно. На Хабре опасно писать абычто абыкак, Мы вовсе стремаемся туда лишний раз заглядывать и тем более статьи какие-то писать. Слить карму могут за мельчайшую оплошность, а заработать её куда сложнее.

mertvoprog
()
Ответ на: комментарий от abcq

Ну видите ли, сейчас люди переводятся, которым не впадлу подобным заниматься ;) И опенсорсники к таковым не относятся, они вообще ленивые: без исходников шагу ступить не могут, а от фразы «бинарный патч» выпадают в осадок. И не удивительно, сейчас программы обновляются чуть ли не каждый день, толку их патчить?

mertvoprog
()
Ответ на: комментарий от liksys

А следовало обозвать так же? Или вовсе тащить в проект целые культи, которые даже с C не дружат? (отчего имеют в разы меньше биндингов к различным языкам, чем GTK+)

mertvoprog
()
Ответ на: комментарий от arturianec100

Метапрог ещё полностью не реализован. А к прототипу претензии предъявлять странновато.

mertvoprog
()
Ответ на: комментарий от liksys

Да тут всё бредовое. Ни одной новой концепции, даже на уровне идеи. «Условные схождения» туда же. Математики оценят, ага.

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

codemax
()
Ответ на: комментарий от mertvoprog

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

metaprog
() автор топика
Ответ на: комментарий от abcq

Не забанили, а руки не доходят написать туда статью про Метапрог.

metaprog
() автор топика
Ответ на: комментарий от arturianec100

Вообще думаю, что простенький но эффективный сборщик мусора возможен на счетчике. Он должен добавляться на разветвлениях и при итерациях цикла и убавляться на тупиках веток, использующих массив. Если убавился в 0 - освобождать память.

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

metaprog
() автор топика
Ответ на: комментарий от metaprog

Это ведь даже не Си

Ну вот Вы и реализовали подобие QVariant, транслирующееся в C.

mertvoprog
()
Ответ на: комментарий от metaprog
  1. Чтобы подсмотреть их не могли даже Вы.

  2. Чтобы исключить угон паролей путём взлома Вашего ПК. Вы уверены, что хотя бы сам Метапрог.Онлайн не содержит уязвимостей, не говоря уж о прочем сопутствующем ПО? Уж винда-то точно дырявая ;)

  3. Если тарщ майор нагрянет, пока Вас не будет дома, то никакое шифрование диска не поможет. Данные просто снимут со включённой машины.

mertvoprog
()
Ответ на: комментарий от mertvoprog

Затем, что заявлен не свободный клон LabVIEW, а универсальная графическая среда программирования (программа-минимум), призванная отправить на свалку истории существующие текстовые языки (программа-максимум). Тут уж определиться надо — либо крестик снять, либо трусы надеть.

codemax
()
Ответ на: комментарий от codemax

универсальная графическая среда программирования

Ну дык LabVIEW таковой и является, просто слишком черезжопной и закопиращенной.

mertvoprog
()
Ответ на: комментарий от liksys

Вместе с текстовой формой ввода и тормознутым интерпретатором?

metaprog
() автор топика
Ответ на: комментарий от mertvoprog

Чтобы подсмотреть их не могли даже Вы.

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

Чтобы исключить угон паролей путём взлома Вашего ПК. Вы уверены, что хотя бы сам Метапрог.Онлайн не содержит уязвимостей, не говоря уж о прочем сопутствующем ПО? Уж винда-то точно дырявая ;)

В этом деле я пока что могу положиться на принцип неуловимого Джо. Ведь не государственные секреты обсуждаем там. Всего лишь чатик как ЛОР но без модерации и цензуры.

Если тарщ майор нагрянет, пока Вас не будет дома, то никакое шифрование диска не поможет. Данные просто снимут со включённой машины.

Пока что я неуловимый Джо, а дальше планирую криптографию на стороне клиентов. В лабвьюшном клиенте этого нет из-за того, что на лабвью мало готовых библиотек. А сложность задачи их повторения на Лабвью не оправдана для прототипа.

metaprog
() автор топика
Ответ на: комментарий от liksys

ты переизобретаешь питон.

Если бы. Пока все это выглядит как С, но в очень неудобном представлении.

sergey3000
()
Ответ на: комментарий от metaprog

Да уж, куда мне до твоих сифонов:)

А чо сифон-то? Вот у меня есть КВМ. Там и питон, и сишечка, и жс, и верстка, и свой сборочный тулчейн для оси, и прочее. Люди пользуются и довольны.

Вместе с текстовой формой ввода и тормознутым интерпретатором?

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

Нахрена?

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

Пишет чел, не знающий Лабвью.

Пишет чел, не знающий ни одного языка и никогда не программировавший.

Ну ты же сам понимаешь, что это глупости.

Нет.

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

liksys ★★★★
()
Ответ на: комментарий от mertvoprog

слишком черезжопной

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

Ну и в метапроге (субъективно) черезжопность вообще не устраняется, а скорее возводится в квадрат.

codemax
()
Ответ на: комментарий от metaprog

не советую

Советы надо сразу в справку засовывать :P

могу положиться на принцип неуловимого Джо

Имея врагов-антиметапрогеров, ну да.

чатик как ЛОР

До ЛОРа этому убожеству далеко. Звякните, когда научится хотя бы во временны́е метки.

не оправдана для прототипа

То есть и Метапрог.Онлайн на самом деле ещё не Метапрог.Онлайн, а просто прототип, ясненько :3 Вы бы хоть имена им давали отдельные, что ли, дабы путаницы было меньше. Разработчики программ часто дают им в ходе разработки т.н. «кодовые имена», которые меняются перед самым релизом.

mertvoprog
()
Ответ на: комментарий от liksys

тормознутым интерфейсом

Это LabVIEW виноват. На Nuklear+ такого не будет.

кривым транслятором

В каком месте? Примеры криво оттранслированных программ будут?

невозможно

Возможно. Просто надо, чтобы единый язык хорошо умел в DSL ;) В принципе, JS куда-то в эту сторону катится, из него чего только не лепят плагинами к бабелю. И засовывают уже даже в эмбеддед.

встанут дыбом волосы в одном месте

А если это место заблаговременно депилировать?

mertvoprog
()
Ответ на: комментарий от codemax

«слегка» мешает универсальности

Не мешает, а всего лишь усложняет разработку.

по изобретаемой автором терминологии видно, что это вообще не клон LabVIEW

Расширяют по ходу, почему бы и нет?

возводится в квадрат

По сравнению с чем?

mertvoprog
()
Ответ на: комментарий от mertvoprog

Интересно если протолкнуть какой-то минимально значимый патч в разработку языка, можно ли потом считать что имеешь отношение к разработке языка? Что вы думаете по этому поводу? :)

abcq ★★
()
Ответ на: комментарий от abcq

Безусловно. Потом ещё можно упереться рогом, если основные разработчики возжелают сменить лицензию, например.

mertvoprog
()
Ответ на: комментарий от metaprog

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

Если ты в состоянии правильно использовать мьютексы (или хотя бы не стрелять себе в ногу ими), то это неплохой вариант, но производительность может уступать тому же питону.

Для счётчиков могут идеально подойти атомики. Атомики - типы, любая операция над которыми гарантированно будет потокобезопасной. Примеры использования есть здесь - https://stackoverflow.com/a/43993821

Однако учти:

Код atomic_int counter; counter += 42; является потокобезопасным.

Код atomic_int counter; counter += 42; counter += 5; НЕ является потокобезопасным.

WaitCondition’ы используются вместе с мьютексами, смысл в «остановить поток до тех пор, пока определённое условие не станет истинным». В С++11 есть в стандартной библиотеке, в Си надо напрямую использовать pthread как например здесь: https://www.geeksforgeeks.org/condition-wait-signal-multi-threading/

Навелосипедить свой WaitCondition на SDL_Thread вроде как реально, но ты не осилишь.

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

arturianec100
()
Ответ на: комментарий от arturianec100

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

Не в метаконя - метакорм. Но если нужно добавить «факи», то будет в наилучшем виде.

За ссылки на тонкости атомик спасибо.

sergey3000
()
Ответ на: комментарий от arturianec100

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

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

metaprog
() автор топика
Ответ на: комментарий от metaprog

На днях подсказал как делать несколько значений на кейс свича - очень просто, но без него я б долго искал.

Вот это прорыв.

sergey3000
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.