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)
Ответ на: комментарий от metaprog

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

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

намек на твой профессиональный уровень

Только в уборке и чистке я далеко не профессионал.

Угадай

Теряюсь в догадках.

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

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

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

их отталкивает вайн, нарушение GPL, проприетарное дерьмо и отсутствие нормальных источников в виде гитхаба

Да прям таки непреодолимые препятствия. Хай ждут Метапрога «на самом себе».

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

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

А еще я ем русскоязычных младенцев. Спойлер: младенцы не разговаривают, приходится довольствоваться пельменями из свинины.

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

Если говорить о попытках навязать мне гейхаб и текстовые ЯП - то я своей «необучаемостью» горжусь:)

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

Городские сумасшедшие, как и ты, своей шизой тоже гордятся.

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

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

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

Без понятия!

Он же вроде в живую пытался метапрог потыкать?

Вот вам и первая жертва визуального программирования :-)

У человека психологическая травма, он ушел в себя, самозабанился на всех форумах и чатиках.

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

К чему надуманные проблемы?

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

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

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

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

Ее разрабатывать я так понимаю только программисты будут?

Не-а, чтука именно в том, что в строгом соответствии с принципом «спасение утопающих - дело рук самих утопающих» разрабатывает её сама ЦА, полагающая, что на текстовых языках эта разработка будет хоть и возможной, но неимоверно сложной. Отсюда и финт с Лабвью, отсюда и отказ от английского в пользу родного языка автора.

Ни ТС, ни Котечка, насколько я понимаю, профессиональными программистами не являются.

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

А в этой среде английский практически родной.

Родной, дефолтный. С этим и боремся. Прототип вообще не должен был открываться, и у ОПа изначально LabView для линукса не было, поэтому про кодировки он наверное и не задумывался, а теперь уже поздно думать.

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

А в этой среде английский практически родной.

С этим и боремся.

Борьбу с ветряными мельницами не напоминает?

теперь уже поздно думать

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

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

Борьбу с ветряными мельницами не напоминает?

Нет.

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

Все подряд не напроектируешь и не предусмотришь. Кстати, метапрогеры оценят это: https://i.postimg.cc/PrGP2QjH/image.png

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

Все твои 30 с хвостиком тредов - пруфы на твое вранье, хамство и пустые обещания. И от того, что ты перекидываешь стрелки на других, врунишкой ты быть не перестанешь, врунишка.

Как там твоя революция в программировании поживает? СУВТ 3.0 скоро увидим?

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

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

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

Прекращай врать. Обещаний я особо и не даю, а какие даю - такие выполняю.

Как там твоя революция в программировании поживает? СУВТ 3.0 скоро увидим?

Щас делаю свич по многотиповому. Может еще заодно и цикл по структуре будет в ближайшем релизе.

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

То, что там переключатель, я понял. Только не очень понял его смысл в данном случае. На выходе ГСЧ и +1 ведь однозначно будет число?

Также не понял смысл конструкции «умова/невизначение».

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

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

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

Щас делаю свич по многотиповому

Скриптуха убогая.

liksys ★★★★
()

HiAsm — жлобяры; собирали-собирали БУДИЛЬНИК, а запустить и проверить не дают ;D

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

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

канализационным ныряльщиком

Вы что-то имеете против «киборгов»?

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

Нормальным пользователям вайн не нужен, у них и так винда стоит. Гитхабы и линуксы — для задротов.

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

Это мультик такой, пропагандирующий толерантность к латиноамериканцам.

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

Я хочу получать нормальный софт, а не нечто, сделанно на отвали

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

Хоть что-то работающее (нормально работающее) он вообще сделал за всё время?

А Гвидо?

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

Чудесно! Ждем дистрибутивов винды ХР с закрытием известных уязвимостей, поддержкой современного железа, в идеале - поддержкой современного софта (например, через вайн или библиотеки из 7/8/10).

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

Только не очень понял его смысл в данном случае. На выходе ГСЧ и +1 ведь однозначно будет число?

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

Также не понял смысл конструкции «умова/невизначение».

Это подсказка ко входу, к которому подключен проводник.

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

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

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

Мы к треду присосались лишь в этом году ;)

И забраковали Вы её не по этой причине, а по более мелкой.

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

например, через вайн или библиотеки из 7/8/10

На хрена, когда давно есть OneCore?

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

Чудесно! Ждем дистрибутивов винды ХР с закрытием известных уязвимостей, поддержкой современного железа, в идеале - поддержкой современного софта (например, через вайн или библиотеки из 7/8/10).

Ахахаха. Если это только сделает @metaprog больше этим заниматься никто не будет.

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

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

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