LINUX.ORG.RU

Metaprog: универсальная графическая среда программирования [в разработке] часть 5

 , , ,

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

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

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

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

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

это 1:n, где n - количество строк нагенеренного сишного говнокода помноженное на 10.

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

Одно дело создавать что-то существенное, принципиально новое. Этот труд заслуживает всяческого уважения. Что уважения не заслуживает - так это бегать как белка в колесе, работая на паразитов-копирастов и получать за это деньги в разы меньшие. Хорошо если в разы, а могут не платить даже 1/1000. Зачем, если лох и так вкалывает?

Посмотрите на тех же копирастов из NI (разрабы Лабвью): 300 баксов базовая подписка Лабвью в год (!), 3-5 тысяч за возможность запускаться под линуксом и прочие плюшки. Куда они это бабло девают? Львиная доля уходит на копирайтных юристов - сферических паразитов в вакууме. Как тут не процитировать Линуса?

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

...

лишь  немногие  индивидуумы  получают
патенты. А вот компании получают  их тоннами.  Это хорошее оружие для защиты
от  других  компаний,  которые  грозят  подать  в суд  за  использование  их
патентов. Современная патентная система -- это по существу "холодная война",
где вместо ядерного оружия  используется  интеллектуальная  собственность. И
эта  война  немногим  лучше  той.   Изобретатели-одиночки,  столкнувшиеся  с
безумной  системой  и  не  имеющие  возможности  нанять  12  тысяч  юристов,
оказываются загнанными в бомбоубежища.

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

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

Вроде как понятно, но все же так себе. Я вот пытался через википедию въехать как работает квиксорт - видел только фигу, несмотря на картинки. Нашел лабвью-схему - сразу все стало понятно!

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

Так что то делать по фану, из интереса итд... не запрещается моими цитатами %)

Львиная доля уходит на копирайтных юристов - сферических паразитов в вакууме

Хм!

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

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

Удивительно лишь то, что в 2019 году, когда не за горами даже беспилотные автомобили, эта философия до сих пор не стала мейнстримом. Кстати, Линукс, сделанный «just for fun», портирован на столько платформ, что пропиетарной винде и не снилось, а у копирастов из Apple есть отдельно MacOS для десктопа и IOS для айфонов. Единственное чем плох Линукс - все еще жесткая привязка к консоли, это одна из самых веских причин почему он все еще не завоевал десктоп (хотя с десктопа начинался!).

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

Единственное чем плох Линукс - все еще жесткая привязка к консоли

Кто там цитатки собирал? тут поцыэнт опять в граните отливает.

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

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

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

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

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

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

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

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

только картинки рисовать.

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

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

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

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

Ну своё рабство ты только что продемонстрировал по полной. Мои сообщения когда сносили, мне было совершенно фиолетово, ибо правда всё равно за мной. А ты — раб скора, всей этой дутой «репутации» и «кармы», ибо за пределами форума ты совершенно ничего собой не представляешь. Вот в чём разница.

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

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

Для того, чтобы работать на панов из Техаса и гордиться этим.

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

Маняфантазии какие то, мне просто доступ закроется после 20 страниц если его меньше 50 станет.

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

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

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

Ну дык найти себе занятие сверхчеловек сам не может, вот и нужна идеология, фошызм, сверхчеловечество итд. А ведь это еще и оправдание, типа: «Ты хоть и сидишь на берегу озера, но я делаю великие цели мне лучше!!!». Ужс на самом деле.

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

Если б хоть узнать над чем конкретно этот сверхчеловек работает, что программирует, раз такой великий...

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

Нет. Дальше думай.

P.S. Кто сказал, что я этим горжусь? Это всего лишь средство. Кстати, те, для кого бабло — не средство, а цель, как раз и являются рабами. Таких и среди коллег хватает, и на лоре тоже. И в фольклоре типа «Менеджера» ленинградовского такой типаж тоже хорошо описан.

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

Ну ты всякий раз гордишься тем, что ты, видите ли, в Америке, в другом часовом поясе, в командировке, что Dr Pepper пьешь в паре кварталов от его штаб-квартиры.

И все же ты не спешишь хвастаться конкретными успехами и достижениями. Гордиться нечем что ли?

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

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

VarfolomeyKote4ka ()

Ну наконец-то он снова начал доставлять!

Видимо «котечки» не хватало до этого — скатился в совсем унылый и не весёлый троллинг. Казалось уже всё, клоун изжил себя… Ан нет!

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

Гордиться-то есть чем, но, во-первых, тред этот не о моих разработках, а ВНЕЗАПНО о твоих, а во-вторых, есть такая хорошая поговорка: «дураку пол-работы не показывают».

Как только моя разработка выйдет из альфа-стадии, ты об этом узнаешь. Из новостей.

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

Как только моя разработка выйдет из альфа-стадии, ты об этом узнаешь. Из новостей.

Бомбу готовишь против несверхчеловеков?

VarfolomeyKote4ka ()

Хм, сделаю ка я свой альтернативный metaprog, что бы было как perl5, и perl6, вроде похоже, но языки разные, развиваются тоже по разному, а идеи переносятся из одного в другой. Полигон для обкатывания моих идей будет!

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

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

я думаю когда вайн будет переписан на метапроге он будет работать ещё лучше а даже если что то не запустится по диаграммам можно будет с лёгкостью определить в чём проблема. кстати планируется ли графический debugger для метапрога?

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

тред этот не о моих разработках, а ВНЕЗАПНО о твоих

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

есть такая хорошая поговорка: «дураку пол-работы не показывают».

Мудрость этой поговорки подтверждается твоей реакцией на Метапрог.

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

кстати планируется ли графический debugger для метапрога?

Хороший вопрос. Это одна из ключевых фич. Думаю вместе с циклами показать как выглядит графический дебаггинг.

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

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

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

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

Хороший выбор. Значит, можно будет использовать код для моего Метапрога. Кстати, ты лучше начни с парсера castxml. На Лабвью я свой сделал. но работает медленно (инклюды из примеров с гтк парсит минут 5) и по-любому надо переносить на Си.

На входе у функции-парсера:

char* XML_string

На выходе - структура из типов и функций. С ней еще предстоит определиться, чуть позже распишу.

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

Тут смотри в чем прикол - надо чтобы можно было использовать сишные функции и типы из сторонних инклюдов. Я это делаю так:

1. incl.h:

//gcc ./test.c -o ./test $(pkg-config --cflags --libs gtk+-3.0)

#include <stdlib.h>
#include <stdio.h>
//#define NK_IMPLEMENTATION
//#include "nuklear/nuklear.h"
#include <gtk/gtk.h>

2.

gcc -E ./incl.h -o incl.c $(pkg-config --cflags --libs gtk+-3.0)

3.

castxml --castxml-output=1 -o ./incl.xml ./incl.c

4. Собственный лабвьюшный парсер incl.xml в массивы из типов и функций.

AST это позволяет или оно только для компиляции?

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

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

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

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

А на чем она написана? Не на С++ часом?

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

Для парсинга инклюдов у меня вот такая нехитрая утилита, делающая п. 2-3:

https://i.postimg.cc/LsKV1NSX/incl.png

https://pastebin.com/MR45iqba

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

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

Кстати, грубый пример работы циклов (уже работает):

https://postimg.cc/5jQrSgtt

https://pastebin.com/gttUddRL

Тут есть функция, которая выводит цифру в консоль. Вот он и дебаггинг! Я задолбался копипастить printf и решил, что лучше буду дебажить через графическую функцию, благо в Метапроге вытащить и подключить функцию несложно. Снизу вверх:

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

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

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

Конечно же, функцию вывода цифр в консоль надо доработать, чтобы выводила многозначные числа (сейчас только одна цифра), но это надо еще чуточку доработать циклы.

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

Словом, мне нужна одна сишная функция, превращающая все функции и типы из текста инклюда в структуру из их массивов.

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

И даже тут, без «анатомии структур» ты умудрился обосраться.

==28637== Command: ./test
==28637== 
==28637== Conditional jump or move depends on uninitialised value(s)
==28637==    at 0x4EC932D: _IO_file_overflow@@GLIBC_2.2.5 (fileops.c:789)
==28637==    by 0x4ECA493: _IO_default_xsputn (genops.c:417)
==28637==    by 0x4EC7A32: _IO_file_xsputn@@GLIBC_2.2.5 (fileops.c:1287)
==28637==    by 0x4EBB976: fwrite (iofwrite.c:39)
==28637==    by 0x10879D: main (test.c:29)
==28637== 
==28637== Conditional jump or move depends on uninitialised value(s)
==28637==    at 0x4EC935A: _IO_file_overflow@@GLIBC_2.2.5 (fileops.c:797)
==28637==    by 0x4ECA493: _IO_default_xsputn (genops.c:417)
==28637==    by 0x4EC7A32: _IO_file_xsputn@@GLIBC_2.2.5 (fileops.c:1287)
==28637==    by 0x4EBB976: fwrite (iofwrite.c:39)
==28637==    by 0x10879D: main (test.c:29)
==28637== 
==28637== Conditional jump or move depends on uninitialised value(s)
==28637==    at 0x4ECA497: _IO_default_xsputn (genops.c:417)
==28637==    by 0x4EC7A32: _IO_file_xsputn@@GLIBC_2.2.5 (fileops.c:1287)
==28637==    by 0x4EBB976: fwrite (iofwrite.c:39)
==28637==    by 0x10879D: main (test.c:29)
==28637== 
==28637== Syscall param write(buf) points to uninitialised byte(s)
==28637==    at 0x4F4C154: write (write.c:27)
==28637==    by 0x4EC71BC: _IO_file_write@@GLIBC_2.2.5 (fileops.c:1203)
==28637==    by 0x4EC8F50: new_do_write (fileops.c:457)
==28637==    by 0x4EC8F50: _IO_do_write@@GLIBC_2.2.5 (fileops.c:433)
==28637==    by 0x4EC79EC: _IO_file_xsputn@@GLIBC_2.2.5 (fileops.c:1266)
==28637==    by 0x4EBB976: fwrite (iofwrite.c:39)
==28637==    by 0x1087C0: main (test.c:32)
==28637==  Address 0x522d043 is 3 bytes inside a block of size 1,024 alloc'd
==28637==    at 0x4C2FB0F: malloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==28637==    by 0x4EBA18B: _IO_file_doallocate (filedoalloc.c:101)
==28637==    by 0x4ECA378: _IO_doallocbuf (genops.c:365)
==28637==    by 0x4EC9497: _IO_file_overflow@@GLIBC_2.2.5 (fileops.c:759)
==28637==    by 0x4EC79EC: _IO_file_xsputn@@GLIBC_2.2.5 (fileops.c:1266)
==28637==    by 0x4EBB976: fwrite (iofwrite.c:39)
==28637==    by 0x10879D: main (test.c:29)
==28637== 
00?
10??
20??
30??
40?
==28637== 
==28637== HEAP SUMMARY:
==28637==     in use at exit: 0 bytes in 0 blocks
==28637==   total heap usage: 1 allocs, 1 frees, 1,024 bytes allocated
==28637== 
==28637== All heap blocks were freed -- no leaks are possible
==28637== 
==28637== For counts of detected and suppressed errors, rerun with: -v
==28637== Use --track-origins=yes to see where uninitialised values come from
==28637== ERROR SUMMARY: 4 errors from 4 contexts (suppressed: 0 from 0)

просто вин ящитаю

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

Я пока что оставлю это тебе, с меня графическая рисовалка диаграмм и сопутствующие плюшки типа чата.

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

https://postimg.cc/5jQrSgtt

О да, эта схема куда понятнее, чем for i in range(5) или for(int i = 0; i < 5; i++). Даже на брейнфаке понятнее наверно, чем на схеме.

anonymous ()
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)