LINUX.ORG.RU

Метапрог-прототип 34 + СУВТ по логическому типу

 , , ,


0

3

Следующая тема:

Метапрог-прототип 42

Подпишусь в поддержку Столлмана Bitcoin-кошельком из первой темы про Метапрог:

Metaprog Project supports Richard Matthew Stallman. Shame to SJW, Big Tech and Big Media. We need to get rid of them or Big Money will enslave us. It is do or die! Stay straight, RMS!

Подпись:

H/3cqHl7HGdAQd9K/io474IbLYlIKi/8R6pw1Vbpz0oTN4kihI5YO4dIdZo2VRdJbSp8kWmtWgC5TRTs0MkBIAo=

Подробности:

Движение отмены Столлмана (комментарий)

Следующая версия:

www.linux.org.ru/forum/development/16219448

Скачать:

https://mega.nz/file/6VJCEboQ#N3pu86bqI31Jp15aHWt6l-FIkY_RUws0CZK9aMcvxZo

В версии 34 исправлен тот же баг что и в 33, но другим способом, так как багфикс из версии 33 вызывал другие баги.

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

К выпуску версии 32 неожиданно обнаружилось, что СУВТ может иметь переключатель логического типа. То есть, можно задавать типы на значения «да» и «нет». Никаких изменений для этого вносить с 31 версии не пришлось, надо лишь задавать в определении СУВТ типы по значению СУВТ 0 на «нет» и 1 на «да». Из изменений - некоторые исправления багов (например, с кодогенерацией структур и операций над структурами под указателями), а также экспериментальная фича отрисовки канваса через dll-вызов окошка на SDL, за подробностями обращаться к MOPKOBKA или kote4ka в Метапрог онлайн.

В версии 31 - доработка транслятора для трансляции циклов, включающих в себя жесткие последовательности (были баги с повторной кодогенерацией тех же участков на подфункциях и операциях над структурами).

В версии 30 - исправление бага с сишной трансляцией циклов с регистрами. Теперь их значение берется на сишном уровне не напрямую, а через промежуточную переменную. Это позволило реализовать алгоритм вычисления чисел Фибоначчи, где есть непосредственная передача данных между разными регистрами. Метапрог-схема находится в меню обучение - примеры - Фибоначчи, выглядит она так:

https://i.postimg.cc/D0W8v7XZ/image.png

Для сравнения - тот же алгоритм на LabVIEW:

https://i.postimg.cc/CLqz9L0r/image.png

Сишная трансляция:

https://pastebin.com/Z8rzvZpQ

Сравнение с тем же алгоритмом на «аналоге» Метапрога с бекендом на python говорит само за себя:

Metaprog здорового человека (комментарий)

В версии 29 - крупные изменения системы типов. «Встроенных» типов, вытягиваемых через меню «структуры», больше нет, все они теперь представлены в стандартной библиотеке. В особенности изменения коснулись числовых типов: теперь такие типы как число, дробь, целое, знаковое и беззнаковое представлены как многотиповые из соответствующих типов. Например, беззнаковое - многотиповой из 8, 16, 32, 64 и 128-разрядных беззнаковых, целое - многотиповой из знакового и беззнакового, число - многотиповой из целого и дробного. Теперь такие типы можно обрабатывать как многотиповые, поступая с числами разных типов по-разному.

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

В версии 27 добавлена удобная возможность создать новую подфункцию, не останавливая весь прототип. Кнопка блоки - новая подфункция.

Также обнаружилась (но пока не исправлена) проблема с терминалом счетчика повторений цикла в цикле по условию - пока что не используйте его!

В стандартной библиотеке добавлено меню «параллелизм» - можно создавать новые потоки средствами стандартной библиотеки Метапрога. Новые потоки можно было создавать и раньше средствами сишных функций, но теперь эта возможность стала частью официальной стандартной библиотеки.

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

В версии 25 исправлена трансляция сложных рекурсивных структур с СУВТ.

В версии 24 был исправлен баг транслятора, проявившийся в версии 23: на некоторых схемах (например, отправки данных по TCP) код, отвечающий за поток данных, «вливающийся» в ветки с условиями, мог сгенерироваться после кода самого условия.

В версии 23 исправлен еще один баг с упаковкой проектов, а также баг трансляции условных схождений.

В версии 22 исправлен баг с упаковкой проектов, из-за которого не паковались зависимости из локальных форков. При этом удалось существенно ускорить упаковку проектов.

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

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

Метапрог-прототип 19 + API на СУВТ + ускорение трансляции



Последнее исправление: metaprog (всего исправлений: 21)

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

SDL2 уже давно был доступен и используется, а metaprog в этом обновлении прикрутил отрисовку на SDL2 в самом редакторе.

Рисовать метапрог сам на себе кстати будем через nuklear canvas скорее всего, там и возможности шире, и как виджет в гуи-приложение встраивается.

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от mydibyje

Что такое СУВТ?

Местный вариант variant’a. Хотя ручные клоуны метапрога сообщают, что это все гораздо круче, но никаких реальных преимуществ продемонстрировано не было.

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

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

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 2)
Ответ на: комментарий от liksys

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

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

Слив засчитан.

@metaprog, ты уверен, что такие «помощники» тебе нужны? Смотри, два года прошло, а ничего путного вы так и не сделали. Может, все-таки стоит начать прислушиваться к профессионалам, а не клоунам? Какая польза тебе от этого псевдо-кошачьего существа?

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

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

MOPKOBKA ★★★★
()
Последнее исправление: MOPKOBKA (всего исправлений: 1)
Ответ на: комментарий от metaprog

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

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от metaprog

Ну как дела? Скоро там метапрог сам на себе? Не пропадай, а то придется считать, что мое предсказание было верным)))

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

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

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

Странно. У меня от комментариев сложилось совершенно другое впечатление. Большая часть из них сводиться к тому, что применимо визуальное программирование в очень ограниченном круге задач. А в самой статье прямо говорится, что на данный момент оно не имеет никаких шансов стать УНИВЕРСАЛЬНЫМ средством кодирования, хотя в определенных задачах оно очень удобно

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

У меня бы тоже такое мнение сложилось если бы я никогда не видел метапрог, многие проблемы в нем решены.

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

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

Вот в принципе и все что можно сказать об этих ваших инновациях.

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

Оно уже перестало течь и высирать свой выхлоп в одну функцию? Циклы уже заработали? Там появилось что-то кроме сишечки в квадратиках?

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

То есть ты хочешь скзать, что спустя два года «разработки» у тебя только щас начали нормально транслироваться структуры?

Днище. Эталонное днище.

liksys ★★★★
()
Ответ на: Версия 33 от metaprog

Комментариев от Метапрога не было 2 недели и 1 день… Оказывается, это новая версия.

hobbit ★★★★★
()

Версия 34

Подробности в заголовке

metaprog
() автор топика

https://pastebin.com/Z8rzvZpQ

А зачем в сишной трансляции программы вычисления чисел Фибоначчи ссылки на заголовочные файлы, явно относящиеся к GUI? Или там не только вычисление, но и вывод в какое-то окно?

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

Подключаемые хедеры настраиваются глобально.

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

Это что только что было, самотроллинг? Ну да, без моей (на самом деле не только моей, а вообще любых знающих людей из этого треда) помощи ты два годы шлифовал сувт, и только сейчас твое косое поделие научилось нормально генерировать структуры. Слушал бы, что тебе говорят - справился бы быстрее.

liksys ★★★★
()

В версии 34 исправлен тот же баг что и в 33, но другим способом, так как багфикс из версии 33 вызывал другие баги.

Мальчик не осилил юнит-тесты.

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

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

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

Наверняка. Третий год прожекту скоро будет, а ТС как баран все долбит и долбит башкой в стену, отрицая чужой опыт.

@metaprog, побежал оправдываться. Почему у тебя до сих пор нет юнит-тестов?

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

Помню решил обложить тестами один из своих проектов на питоне, которой уже на самом деле года полтора работал.

Жесть сколько ошибок реализации вылезло… С тех пор на любую функцию в обязательном порядке тест…

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

Обмаж линтерами еще, охренеешь. Я обычно ставлю сразу всю пачку: pylint, mypy, flake8 и vulture. Для сишки cppcheck.

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

Замедляет разработку, код фиксит сам себя, очевидно же. Для шлифовки есть gcc -fanalyzer, для быстрого выявления проблем дебаг-блоки.

MOPKOBKA ★★★★
()
Ответ на: удаленный комментарий

Не нарушай правила, сиди в своем метазагоне, и проблем не будет. Но ты не можешь, тебе нужно по всему форуму размазать свой бред.

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

Отличное оправдание для доносительства. Ничем не хуже борьбы с антисоветчиками и врагами народа.

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

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

liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от liksys

Та ладно, мне не так интересен твой бугурт как доделать трансляцию циклов по структурам. Кстати, в твоем любимом питоне они есть? А структуры вообще есть?

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

твой бугурт

РРРЯЯЯ ДОНОСЧИК ТРИДЦАТЬ СЕДЬМОЙ ПУК ПУК

Точно мой бугурт, а не твой?)

В питоне есть классы, датаклассы и прочие штуки, которые отлично занемяют структуры. Можно даже чисто сишную структуру использовать, если очень хочется. Ты бы знал, если бы не был колхозным неучем ;)

liksys ★★★★
()

Обнаружен идейный предок метапрогоподелий: https://pic4a.ru/12/ulZ.png

Такая же распиханная по меню справка окошками с портянками текста. И такое же страшное.

Программа, по всей видимости, родом из 2001-го года, что кагбэ намекаэ.

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

доделать трансляцию циклов по структурам

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

Твои циклы по структурам – такая же никому не нужная фигня, как и пресловутые СУВТ хрен знает какой версии уже.

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

Кстати, если ты бы делал на том же ненавистном тебе питоне, то давно бы был уже нативный под линукс метапрог. Пусть «не сам на себе», но был бы! А сейчас два года флуда, пустых обещаний, облизывания котечки (типа он тебе помогает, ага, с такими помощниками никаких врагов не нужно), фактически ничего, что можно продемонстрировать линукс-сообществу нет.

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

cluge
()
Последнее исправление: cluge (всего исправлений: 5)
Ответ на: комментарий от mertvoprog

Программа, по всей видимости, родом из 2001-го года, что кагбэ намекаэ.

По всей видимости в качестве GUI используется Tk, написано может быть на чем угодно, где есть привязка к Tk. Нормальную тему настроить и не будет выглядеть, как гавно мамонта. В винде вон Tk вообще нативно выглядит, т.к. использует нативные виджеты.

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