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)

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

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

Не, это кривая аналогия. ТС всегда чётко проводил разницу между прототипом и будущим релизом. Другое дело, что сделать релиз за 2 месяца, естественно не получилось (и за 2 года, скорее всего, не получится), поэтому он выложил прототип. Не выдавая его за метапрог ни разу, повторюсь.

Наговнякал бы он линукс-онли прототип - к нему бы не было вопросов.

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

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

Не, это кривая аналогия.

Нет, это корректная аналогия. Я тоже могу назвать плеер прототипом, но оффтопиком он быть не перестанет.

Не выдавая его за метапрог ни разу, повторюсь.

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

Также интересно, как подобные переносы делают в больших проектах, если подобная засада у NI присутствует

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

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

Также интересно, как подобные переносы делают в больших проектах

Я пробовал гуглить, никаких инструментов нету.

paramon
()
Ответ на: комментарий от paramon
  1. Поправьте в факе «пропиетарный» на «проприетарный».

  2. Видеоролики на этот сайт будут переноситься? (ну или хотя бы ссылка на предыдущий сайт с видео…)

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

Сайт подустарел по содержанию, но в целом неплохой.

Мне удалось создать новый тред под графический интерфейс. И он реально выполняется параллельно! Есть целое новое подменю «параллелизм».

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

Версия 27

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

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

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

Я тебя тоже ни разу никуда не послал за почти полтора года. Ты из тех кто стоит культурного общения. В отличие от ЧСВшных хвастунов типа liksys.

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

Что кстати думаешь о сборочках с вин10 где телеметрию вырезают?

Черт знает насколько ее там вырезают еще. Отношусь лучше, чем к официальной десятке, но даже им доверять боюсь.

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

Кстати, откуда уверенность, что раньше троянов не было? Мы знаем только то, что в десяточке наличие троянов признали официально.

Бекдоры конечно были, но именно троянов, вшитых в операционку, до выпуска десятки в винде вроде не находили.

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

Кстати, у меня есть чистые WinXP на виртуалках, причем лицензионные

А какая разница лицензионные или нет?))

Мог бы и поставить прототип, если бы захотел.

Без этого твои теоретические гадания о нем ничего не стоят.

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

Клоунада здесь только со стороны тех кто разглагольствует о Метапроге, не скачав и не запустив прототип.

Ты сам как считаешь, когда нативный метапрог на линуксе появится?

Не буду пытаться играть в Вангу. Когда получится - тогда и получится.

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

Зачем ты человека все время посылаешь решать твои задачи?

Иначе смысл мне от него и его разглагольствований?

Да еще и забесплатно.

Я не олигарх.

Так по срокам то что. Когда ждать то?

Как получится. Я и сам не знаю.

И собираешься ли улучшать интерфейс?

В сравнении с прототипом - да. Лабвьюшные возможности по графике чертовски ограничены в сравнении с Си (и Метапрогом, который на Си опирается).

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

Иначе смысл мне от него и его разглагольствований?

Толку от твоих разглагольствований в стиле «не знаю, когда-нибудь будет» тоже немного.

Я не олигарх.

Им не обязательно быть. Бесплатно тебе никто ничего делать не будет.

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

Клоунада здесь только со стороны тех кто разглагольствует о Метапроге, не скачав и не запустив прототип.

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

Не буду пытаться играть в Вангу. Когда получится - тогда и получится.

Ну да в прошлых темах наигрался сполна.

Кстати поглядел Hello world на сайте. Это намного сложнее собрать чем просто напечатать printf(«Hello world\n»).

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

Бесплатно тебе никто ничего делать не будет.

Много кто коммитит в LLVM, gcc, linux и т.д., и не все из них на зарплате. Так что кто-то работает бесплатно, это факт.

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

Много кто коммитит в LLVM, gcc, linux

Потому что они используют LLVM, gcc, linux. Возможно для заработка денег. ТСу никто бесплатно ничего делать не станет. Не тот случай.

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

Хорошо, когда ЧСВ чем-то обосновано. А когда это пустой гонор, как у тебя, то это уже клиника.

А еще не припомню, чтобы я чем-то хвалился. Ты опять начал врать и выдумывать?

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

Аттеншнвхора аттеншнвхорит уже 27 тредов, ничего нового.

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

Так что кто-то работает бесплатно, это факт.

За бесплатно делают для себя, просто потому что так хочется. Выполнение чужих хотелок уже стоит денег.

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

Сайт подустарел по содержанию

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

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

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

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

Кстати поглядел Hello world на сайте. Это намного сложнее собрать чем просто напечатать printf(«Hello world\n»).

Там Hello World на fwrite. Так то обычный хеллоуворлд состоит из строки, блока вывода и проводка между ними, и будет даже проще для понимания, так как в С еще нужно узнать о заголовочных файлах, объектниках, аргументах, функциях, возврате...

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

ТСу никто бесплатно ничего делать не станет

К счастью, в мире и на ЛОРе есть не только проститутки работающие исключительно за бабло.

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

Хорошо, когда ЧСВ чем-то обосновано. А когда это пустой гонор, как у тебя, то это уже клиника.

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

А еще не припомню, чтобы я чем-то хвалился. Ты опять начал врать и выдумывать?

Ваще-то хвалился: Метапрог-прототип 34 + СУВТ по логическому типу (комментарий)

Ничего постыдного в этом нет за исключением как раз таки «врать и выдумывать».

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

Сайт обновим позже, щас сделать бы чатик Метапрог онлайн на Метапроге с графикой и параллелизмом:)

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

ликсус пусть и дальше в своем мирке про кубики рассказывает

Да уж, будет весело почитать его маньки когда Метапрог сам на себе выйдет. Это как у Таненбаума с линуксом только в объемах намного больше.

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

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

Предложить можно только то что есть. И даже мне им пользоваться не очень удобно, но все же можно. В конце концов, это то что мне удалось собрать в свободное время, не получая за это тысячи долларов зарплаты.

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

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

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

Там Hello World на fwrite.

Мне то какая разница. Ты его разместил как пример. Что разместил то и обсуждаю.

нужно узнать

А тут надо узнать как ваш прототип запустить для начала.

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

Это как у Таненбаума с линуксом только в объемах намного больше.

Ну вот типичный пример необоснованного хвастовства.

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

Мне то какая разница.

#
                                                   sub j(\$){($
                     P,$V)=                      @_;while($$P=~s:^
                 ([()])::x){                    $V+=('('eq$1)?-32:31
           }$V+=ord(  substr(                 $$P,0,1,""))-74} sub a{
          my($I,$K,$  J,$L)=@_               ;$I=int($I*$M/$Z);$K=int(
         $K*$M/$Z);$J=int($J*$M             /$Z);$L=int($L*$M/$Z); $G=$
         J-$I;$F=$L-$K;$E=(abs($          G)>=abs($F))?$G:$F;($E<0) and($
          I,$K)=($J,$L);$E||=.01       ;for($i=0;$i<=abs$E;$i++ ){ $D->{$K
                  +int($i*$F/$E)      }->{$I+int($i*$G/$E)}=1}}sub p{$D={};$
                 Z=$z||.01;map{    $H=$_;$I=$N=j$H;$K=$O=j$H;while($H){$q=ord
                substr($H,0,1,"" );if(42==$q){$J=j$H;$L=j$H}else{$q-=43;$L =$q
              %9;$J=($q-$L)/9;$L=$q-9*$J-4;$J-=4}$J+=$I;$L+=$K;a($I,$K,$J,$ L);
              ($I,$K)=($J,$L)}a($I,$K,$N,$O)}@_;my$T;map{$y=$_;map{ $T.=$D->{$y}
              ->{$_}?$\:' '}(-59..59);$T.="\n"}(-23..23);print"\e[H$T"}$w= eval{
              require Win32::Console::ANSI};$b=$w?'1;7;':"";($j,$u,$s,$t,$a,$n,$o
              ,$h,$c,$k,$p,$e,$r,$l,$C)=split/}/,'Tw*JSK8IAg*PJ[*J@wR}*JR]*QJ[*J'.
               'BA*JQK8I*JC}KUz]BAIJT]*QJ[R?-R[e]\RI'.'}Tn*JQ]wRAI*JDnR8QAU}wT8KT'.
               ']n*JEI*EJR*QJ]*JR*DJ@IQ[}*JSe*JD[n]*JPe*'.'JBI/KI}T8@?PcdnfgVCBRcP'.
                '?ABKV]]}*JWe*JD[n]*JPe*JC?8B*JE};Vq*OJQ/IP['.'wQ}*JWeOe{n*EERk8;'.
                  'J*JC}/U*OJd[OI@*BJ*JXn*J>w]U}CWq*OJc8KJ?O[e]U/T*QJP?}*JSe*JCnTe'.
                   'QIAKJR}*JV]wRAI*J?}T]*RJcJI[\]3;U]Uq*PM[wV]W]WCT*DM*SJ'.  'ZP[Z'.
                      'PZa[\]UKVgogK9K*QJ[\]n[RI@*EH@IddR[Q[]T]T]T3o[dk*JE'.  '[Z\U'.
                        '{T]*JPKTKK]*OJ[QIO[PIQIO[[gUKU\k*JE+J+J5R5AI*EJ00'.  'BCB*'.
                             'DMKKJIR[Q+*EJ0*EK';sub h{$\ = qw(% & @ x)[int    rand
                              4];map{printf  "\e[$b;%dm",int(rand 6)+101-60*   ($w
                               ||0);system(  "cls")if$w ;($A,$S)=    ($_[1],   $
                                _[0]);($M,   @,)= split  '}';for(     $z=256
                                ;$z>0; $z   -=$S){$S*=   $A;p @,}      sleep$_
                                [2];while   ($_[3]&&($    z+=$ S)       <=256){
                                p@,}}("".   "32}7D$j"     ."}AG".       "$u}OG"
                                ."$s}WG"    ."$t",""      ."24}("        ."IJ$a"
                                ."}1G$n"    ."}CO$o"     ."}GG$t"        ."}QC"
                                 ."$h}"      ."^G$e"    ."})IG"          ."$r",
                                 "32}?"       ."H$p}FG$e}QG$r".          "}ZC"
                                 ."$l",          "28}(LC" .""            ."".
                                 "$h}:"           ."J$a}EG".             "$c"
                                 ."}M"             ."C$k}ZG".            "$e"
                                 ."}"             ."dG$r","18"          ."}("
                                ."D;"            ."$C"  )}{h(16         ,1,1,0
                               );h(8,          .98,0,0   );h(16         ,1,1,1)
                               ;h(8.0         ,0.98,0,     1);         redo}###
                             #written                                 060204 by
                           #liverpole                                  @@@@@@@
                        #@@@@@@@@@@@

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

А тут надо узнать как ваш прототип запустить для начала.

Так в видео я показывал.

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

Так в видео я показывал.

Если ты про ту гифку. Ее без Vpn не откроешь у меня например.

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

Три способа как сказать « Hello World »

printf(“Hello world\n”);

printf(“%s\n”,’Hello world’);

print “Hello World”, “\n”

Источник: http://perl.find-info.ru/perl/014/hellow-world.htm

Придуриваешься опять?

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

за исключением того что мне есть чем похвалиться.

Неужели ты поставил какой-то рекорд по чистке сараев? Иначе я прям теряюсь.

Ваще-то хвалился

Давайте поможем метадаше найти в этом посте хвастовство.

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

Да уж, будет весело почитать его маньки когда Метапрог сам на себе выйдет. Это как у Таненбаума с линуксом только в объемах намного больше.

Я тебе, кажется, уже писал, что ты на тот спор переносишь понятия каких-то посонов из подворотни. Ничего так, что впоследствии именно Таненбаум резко вступился за Linux, когда некто Браун пытался утверждать, что Linux изначально был нелегальной копией MINIX? «Маньки» — это у тебя, а там у споривших были принципы и позиции.

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

А тут надо узнать как ваш прототип запустить для начала.

Скачать. Если линукс - поставить вайн. На каком этапе у тебя затык?

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

Работаешь исключительно за бабло что ли?

Нет. Но от добровольных донатов не откажусь. И было б их побольше - работалось бы быстрее.

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

Неужели ты поставил какой-то рекорд по чистке сараев? Иначе я прям теряюсь.

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

метадаше

Это про кого?

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

То есть, подобные утверждения…

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

оппонента

Ты не оппонент. Не тянешь.

Это про кого?

Угадай.

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

Ничего так, что впоследствии именно Таненбаум резко вступился за Linux, когда некто Браун пытался утверждать, что Linux изначально был нелегальной копией MINIX?

Кто знает, может и liksys лет через 10-15 вступится за Метапрог подобным образом:)

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