LINUX.ORG.RU

Метапрог-прототип 16 + СУВТ по енумам

 , , ,


0

2

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

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

Скачать:

https://mega.nz/file/nFBCGKDL#93jJc0bxyq6fc0bKpfPV3sv753dbyP9qfkvbvfK_uBE

Выпуск этой версии подзадержался, так как пришлось отвлечься от разработки. Но изменений тут много. В основном они касаются СУВТ и переключателей (свичей) по ним. СУВТ теперь можно задавать тип-переключатель в виде енума. Также можно задать несколько значений переключателя на один тип. А в блоке условного разветвления по числу/енуму/СУВТ можно задать несколько значений числа на один случай. Также в операции над СУВТ можно задавать нестандартные значения переключателя (не привязанные к определенному типу), а в разветвлении - выставлять реакцию на разные нестандартные значения.

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

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

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



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

Считаю что enum + union не может быть оверхедом

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

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

СУВТ не используется для всех значений, можно воспринимать как альтернативу std::variant из стандартной библиотеки метапрога.

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

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

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

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

Вы говорите что я не прав, только потому что лжец i-rinat начал приписывать мне выдуманные слова

Где это я приписывал тебе выдуманные слова?

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

Ложного цитирования не было, но сути не меняет

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

Вот посмотри на комментарий, на который я начал отвечать: Метапрог-прототип 16 + СУВТ по енумам (комментарий). Тебе @metaprog писал про общий случай, а ты на это заявляешь: «Нет, все лишнее удаляется».

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

А зачем я до этого писал что массив не оптимизируется?

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

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

Да.

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

В метапроге можно сделать typedef и свои структуры.

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

Царь таки решил определение дать:

Скриптуха это всё то, что является бездарным дерьмом и паразитом на теле С/С++. Что не является самодостаточным.

Очевидно, под понятие «бездарное дерьмо» можно подвести по вкусу всё, что угодно.

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

Царь таки решил определение дать:

Скриптуха это всё то, что является бездарным дерьмом и паразитом на теле С/С++. Что не является самодостаточным.

Вот есть язык Common Lisp, есть куча его реализаций, среди которых:

clisp – «убогая скриптуха», паразитирующая на Си

ecl – мало того, что скриптуха, но она еще и транслируется в Си (как и метапрог, кстати), т.е. паразит в квадрате.

sbcl – компилируется в машкод, для создания новой версии достаточно его самого или другой реализации CL, т.е. самодостаточен. Очевидно, что это тоже «убогая скриптуха», хотя если в проблемных по скорости местах аннотировать типы и применять оптимальные алгоритмы, то по скорости выполнения он будет не намного медленнее Си.

Ну и очевидно, что царь посчитает все это «бездарным дерьмом».

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

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

Котечка в своем репертуаре: «В метапроге будет…».

Это «будет» ты с автором темы хоть согласовываешь? И он согласен, что будет? Ладно, будет, но не в этом десятилетии.

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

Он это определение больше года использует. Правда очень редко он явно пишет это определение. А вообще из его ответа выяснилось, что для него есть «язык №1 на конкретный момент времени», а всё остальное – скриптуха. Ну и критерии для него в виде фундаментальности и правильной для него типизации. Ну и гибкость, производительность, выразительность и прочее потом идут.

arturianec100
()

Не только лишь «необучаемые дворники» хейтят питон.

Docker and cgroupsv2 and etc (комментарий)

Python это такая дрянь. Когда учебный язык продвинули в ынтерпрайз, получаем вот это вот и кучу непонятных Traceback-ов, которые хз как отлаживать. И это юзабилити?! Варианты кроме докера – тяжело себе представить.

И полезли костыли через костыли! Мало того что типизацию не завезли, так еще и вечные поломки в новых версиях, если софт перестали писать, то можно о его простом запуске забыть.

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

Это все уже есть.

Что это уже есть? Ты же понимаешь, что поменяв столько аккаунтов, никто уже не будет искать все твои обещания насчет метапрога и ловить тебя на лжи. Ты наверно специально свои аккаунты убиваешь, чтобы тебя на очередной ложью не поймали. А потом новый создаешь, чтобы в очередной раз продекларировать «в метапроге будет…».

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

На сегодняшний момент это есть или нет? Иначе это очередное заявление котечки «в метапроге будет…».

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

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

Что это уже есть?

Ты даже не знаешь про что пишешь? Ну typedef и наборы СУВТ.

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

Что за бредни, ты вообще читаешь что пишешь? Как забрасывание старых аккаунтов мешает использовать поиск сообщений?

На сегодняшний момент это есть или нет?

Да.

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

Ну typedef и наборы СУВТ.

Котечка начал бредить.

Как забрасывание старых аккаунтов мешает использовать поиск сообщений?

Это надо помнить все твои аккаунты, а кому это нужно? Вот этим ты и пользуешься повторяя мантру «в метапроге будет…».

На сегодняшний момент это есть или нет?

Да.

Молодцы, за день после «в метапроге будет…» реализовали.

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

Это надо помнить все твои аккаунты, а кому это нужно? Вот этим ты и пользуешься повторяя мантру «в метапроге будет…».

Можно запросить у меня полный список.

Молодцы, за день после «в метапроге будет…» реализовали.

Пей меньше, я писал что это УЖЕ есть.

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

Пей меньше, я писал что это УЖЕ есть.

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

За день!

Это не вранье?

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

ты явно пишешь, что БУДУТ

«можно создавать свои наборы СУВТ с указанными типами»
«можно создавать свои наборы СУВТ где будут указанные типы»

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

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

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

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

Но ведь ее реально не завезли

Ты всё-таки решил давить эту линию, да?

Вот же типы. Зачем ты продолжаешь своё враньё?

>>> type("What is this? A <class 'str'>?!")
<class 'str'>
>>> "I knew you'd say that!"
i-rinat ★★★★★
()
Ответ на: комментарий от paramon

стыдно должно быть тем кто это типизацией называет.

Питон - это когда исключения с нестыковками типов всплывают только в рантайме при выполнении участка кода. Лично я этим дерьмом брезгую.

Ща тестирую 17 версию прототипа, если все будет успешно - выложу.

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

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

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

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

Если бы только на Си, это были бы личные тараканы в голове царя (и я, например, считаю кодогенерацию в Си самым удачным решением ТСа, и мне в этом вопросе на мнение царя плевать). Но оно куда в большей степени прибито к Лабвью, а это, да, падение в «скриптуху».

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

К Лабвью оно прибито потому что другого нормального визуального инструмента нет. А так я делаю целый прототип Метапрога, который еще и работает - и при этом ВООБЩЕ не пишу код на текстовых ЯП (не считая инклюдов).

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

И да, Лабвью таки скриптуха, по-своему убогая. Но в ней система типов чертовски похожа на сишную - я на нем собираю почти все нужные тайпдефы, выражаясь по-сишному, из примитивных типов, массивов и структур. Правда юнионов не хватает. Но есть даже подобие указателя (data value reference), кстати весьма полезная вещь.

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

https://godbolt.org/z/QWZ6yk

t явно может содержать только один тип СУВТ, однако компилятор кладёт на это болт и генерирует бесполезную проверку и бесполезный же код.

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

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

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

чтобы наконец-то переделать Лабвью «на самом себе»

Вы же сами жалуетесь, что LabVIEW — тормозная скриптуха. Представляете, что будет, если LabVIEW перепишут на LabVIEW?

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

Писал в последней теме, но удалили. Продублирую.

Лисп - полумертвая скриптуха. Хотя Столлман ей болеет, видно подхватил в лаборатории ИИ в 70х, когда с этим вовсю баловались.

Как там с письмом Столлману? И еще: кроме самообучения нейросетей от M$ могут быть и положительные примеры автоматической кодоконверсии. Например, автоконверсия опенсорсного сишного кода в опенсорсные же схемы на Метапроге. Но так, чтобы опенсорс остался опенсорсом по лицензии. Улавливаешь?

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

Ну так сделать так шоб оно тормозным не было. Это ж корпорация со штатом кодеров на долларовых ЗП, а не любители, пилящие Метапрог в свободное время - смешно смотреть какие же они неосиляторы:)

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