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)

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

Жгутики. Из них плетется клубочек. Понимаишь!?

Клубочек это программа?

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

Жгутики. Из них плетется клубочек. Понимаишь!?

Терминология еще не устоялась.
Предлагаю употреблять термин - «плетет паутину».

anonymous
()

Метапрог-прототип 21 + рекурсия!

@metaprog имеет право разрабатывать свой проект.
Плохо лишь одно - этот проект приведет к тому, что термин «графическая программа» будет восприниматься как - мат.

Владимир

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

Просьба объяснить в чем польза от проекта Метапрог.

Цель моих постов не в том, чтобы «очернить» Метапрог.
ИМХО графический язык программирования:

 - Не нужно разрабатывать его фанатично как это делает @metaprog, для которого  
   все текстовые языки программирования - "не нужно";  

 - Должны быть разработаны удобные графические примитивы;  

 - Графический язык программирования должен предоставить "из коробки" высокоуровневое API, которое много упрощает разработку алгоритмов.

 - ...

Си же в кружочках и жгутиках - бред.
Разве, что tools, который позволяет произвести визуализацию AST.

PS: Пока как-то так … /суждения высказанные выше для обсуждения и ни как ни априори/.

Владимир

anonymous
()

Не слежу за развитием прожекта. Что там по факту за 1.5 года? Ничего не готово, 1 юзер, 1 разраб и 1 сочувствующий тролль?

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

Проводки. В C-шной трансляции они представляются глобальными переменными. Локальных как таковых нет.

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

Когда будет готово, шума будет на весь ЛОР. Пока просто мелкие пререлизы, на которые и внимание-то обращать не обязательно.

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

ИМХО ныне Метапрог является скорее программой, которая имеет графический интерфейс, позволяющий разработать алгоритм.
На нынешнем этапе этот tools позволяет создавать лишь какую-то нишу алгоритмов.
Понятно, что можно/нужно совершенствовать tools, но графический интерфейс - не удобен, …

Владимир

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

Понятно, что можно/нужно совершенствовать tools, но графический интерфейс - не удобен, …

Графический интерфейс, используемый для Метапрог похож на инструмент, используемый не по назначению.

https://www.youtube.com/watch?v=T3Zgc7U_WF4 забивание гвоздя микроскопом

Владимир

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

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

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

Это особенно хорошо подходит для ТСа и его товарищей, поскольку паутину пачки плетут жопой.

https://www.google.ru/search?newwindow=1&source=univ&tbm=isch&q=%D0%BC%D0%BD%D0%BE%D0%B3%D0%BE+%D0%BF%D0%B0%D1%83%D0%BA%D0%BE%D0%B2+%D1%84%D0%BE%D1%82%D0%BE&sa=X&ved=2ahUKEwjf1ufz4erqAhUMr4sKHX1KAo4QsAR6BAgJEAE

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

Вот лентяи, даже тред не могут найти, с которым Мы вернулись на ЛОР.

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

Вы никогда мессенджеров не видели, да? Это базовая терминология.

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

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

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

mertvoprog
()

В данной версии наконец-то добавлена корректная трансляция схем, содержащих рекурсии.

Теперь осталось выявлять и оптимизировать (превращать в цикл) случаи хвостовой рекурсии.

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

Теперь осталось выявлять и оптимизировать (превращать в цикл) случаи хвостовой рекурсии.

Это сложно видимо, gcc, clang(что rust, что с) и msvc постоянно фейлят с этим…

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

Опять Светило отвлекаете от первоочерёдной цели?

Он сам отвлекается от первоочередной цели, которая «метапрог сам на себе», то пилит СУВТ 2.0, то рекурсию.

Но новые демки хотелось бы увидеть.

Кстати, на ЛОРе по очевидным причинам визуалы практически не обитают, поскольку это сугубо текстовый ресурс, здесь даже картиночки к постам прикреплять нельзя

Ну это же хорошо, что есть такой ресурс.

Здоровых нет, есть недообследованные.

Это не повод плотно общаться с очевидно поехавшими.

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

Этим занимается clang.

Вот этим заявлением ты только подтвердил, что метапрог ни хрена не самостоятелен, а только надстройка над Си.

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

Ассемблер тоже не самостоятелен, его потом проц оптимизирует и в нормальный код перегоняет для риска.

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

то пилит СУВТ 2.0, то рекурсию

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

Ну это же хорошо, что есть такой ресурс.

Для антиметапрогеров — да. А целевой аудитории Метапрога нет. Да и вообще, существование этого рассадника токсичных анти-SJW-шников определённо напрягает многих людей.

Это не повод плотно общаться с очевидно поехавшими.

Это почему ещё? Что за дискриминация поехавших?

mertvoprog
()

Новая версия

Выпущена версия 22, подробности в заголовке.

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

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

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

Я, кстати, против SJW, так как это по сути марксизм, в котором в роли «угнетенного пролетариата» сам понимаешь кто.

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

Жгутики. Из них плетется клубочек. Понимаишь!?

Сразу видно уровень умственных способностей антиметапрогеров.

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

ЗЫ: @metaprog, тебе реально приятно работать с таким клоуном?

Клоун или нет, но проекту реально помогает уже больше года. Так что да, приятно.

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

Окей, специально для тех кому лень заглянуть в лабвьюшные и метапроговские исходники. Отправляется: 64-битное число, означающее версию протокола (на данный момент 0), 16-битное число 3 (опкод метапроговского АПИ, означающий чтение комнаты), логин, пароль (через тор можно). В ответ получается массив из структур, содержащих информацию о чат-комнатах, в которых данный пользователь принимает участие. Структуры содержат: номер комнаты, количество непрочитанных и название комнаты.

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

Интересно увидеть, как рекурсия на схемах транслируется в Си, скриншот схемы с рекурсией. Ну и как обычно, ждем новые и старые исправленные демки, которых не было уже давно.

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

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

А, ну ещё это всё надо настраивать, конфиги и HTMLи на текстовых языках править… На файлопомойку выложить проще.

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

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

Сам метапрог утверждал что National Instruments ее как универсальную среду программирования не продвигают... Я не думаю что в National Instruments работают глупые люди.

Они не просто глупые люди. Они идиоты. Поймешь когда по-настоящему въедешь в Лабвью.

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

Я так понимаю изучение Labview, а потом и метапрога нам и предлагают вместо объяснений и документации.

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

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

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

Странно, как то метапрог для создания прототипа метапрога на лабвью обошелся без всего этого.

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

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

Что за дискриминация поехавших?

А че? Нормально. Давайте выпустим из психбольниц маньяков чтобы не было дискриминации.

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

Алё, на дворе 2020 год. Сайтик «с простым гуем» со скачиванием бинарников, мануалами и даже видосами можно сделать без PHP и вообще без скриптоты, на чистом HTML+CSS.

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

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

HTML+CSS

HTML еще на самом-самом базовом уровне знаю, но трахаться с CSS мне лень.

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

Странно, как то метапрог для создания прототипа метапрога на лабвью обошелся без всего этого.

В схемах прототипа Метапрога куча мест с самопальными заменителями СУВТ и бинарных версионированных форматов из енума/числа и строки с сериализированными данными.

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

Бабло капает - жизнь удалась

Ты немного не понимаешь, как работает капитализм.

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

Сказал человек, который полгода назад узнал, что такое тернарный оператор. Доооо, много ты натаскаешь, ага.

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

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

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

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

Кстати об общедоступном мануале. Я наконец довел до релиза свой долгострой. Пока болтается в неподтвержденных, может, вывесят на главную: Pi-KVM - проект открытого IP-KVM на Raspberry Pi. А вот мануал: https://github.com/pikvm/pikvm.

Это я к тому, что стоило написать приличный текст - и завелось коммьюнити. Я не отфутболивал людей качать и читать исходники. Просто написал док и завел удобный для юзеров чат в дискорде (а не в никому неизвестном недопрог-онлайне). @metaprog не понимает, что надо делать проект для людей, я не для того, чтобы показать, какой ты принципиальный гений с недооцененными идеями.

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

Они не просто глупые люди. Они идиоты.

Зря ты так.

Если хочешь

Спасибо, но не буду тебя отвлекать зазря. Мне пока книжек по С хватает.

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

Мерси. Будем надеяться, что ТС сделает из этого какие-то выводы и, как минимум, осознает важность текстовой документации %)

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