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

Кажется, другие юзеры уже выяснили, что это не шаблоны.

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

Но ведь все это уже есть в более общем виде.

)))

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

Нормально тип не описать, тайпхинты - хинты, нормально проверить корректность статически можно лишь в простейших программах, так как хинты еще и убоги.

А так конечно базовые разновидности присутствуют, типизация уровень баш. Может гордиться %)

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

Логики тут нет у тебя, что мы уже давно выяснили

Опять демонстрируете свои проблемы с логикой ;) Как проблемы с логикой у Нас касаются проблем с логикой у Вас?

цопе в тредах

Не в тредах, а в черновиках :P

Вы-то так сделать не можете, завидуете?

адекватных людей

Адекватные люди в 2$21-м сайты в РФ не хостят.

не читал эпопею

Речь сейчас о первой теме ТС. Уж её Мы точно читали ;)

За два года можно было отладить циклы

Причём заметьте, силами всего двух инвалидов в виде Метапрога-RMS и иногда подхрюкивающей Котечки-Hanson ;)

которые уже реализованы в компиляторах

То есть сравнение вообще некорректно, поскольку топикстартеру опираться не на что, кроме проприетарного LabVIEW.

Разговор был о тривиальных циклах

А ломаются-то точно они?

В ОП описаны два бага:

В версии 26 исправлена трансляция циклов при определенных условиях (не всегда корректно транслировались циклы с жесткими последовательностями, идущими к входному блоку)

«Жёсткие последовательности» вообще концептуально отсутствуют в императивных языках, точнее, они там везде по дефолту ;) Это чисто Метапроговская заморочка, отсутствующая на C-шном уровне.

И:

исправление бага с сишной трансляцией циклов с регистрами

Регистры в C-шных циклах тоже отсутствуют как явление. Хоть и заменяются банальной переменной, напочатковысирачить с добавлением которой ещё надо умудриться ;)

зачем это в метапроге?

Действительно, а зачем for ( in ) в JS, например?

не делает клон лабвью, он делает нечто похожее на лабвью

Где грань? ;)

два года активного пиара

Какого активного пиара? За пределы ЛОРа он толком не вылезал, ну на пару ещё более дохлых сайтов вбросили. Здесь все сторонники собрались сразу же, а новых нет, ибо приток новых рыл на ЛОР околонулевой. Пиар начнётся, когда Метапрог сам-на-себе будет готов.

Не ври

Чавоу? Вылезайте из криокамеры, отображение игнорирующих на ЛОРе выпилено много лет назад :P

Выкуривалка не отросла

Поглядим-поглядим :P

твоя потухшая звезда

Дык у Нас и шкворца толком нет, чтобы его расходовать :P

Причём Нам ничего не стоит заводить после банов очередных виртуалов. А вот Вам с высоты много лет прокачиваемого юзернейма падать будет больно.

Всем здесь это очевидно

Опять на воображаемых единомышленников ссылаетесь?

Живи с этим. Но ты же не сможешь и продолжишь дальше за мной бегать

Где связь? :P Опять проблемы со своей логикой демонстрируете?

Нет диплома - нет пруфа

TITS or GTFO?

ему никто не мешает попыпаться стать обучаемым

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

На этом можно вопрос и закрыть

Нельзя, ведь Вы не привели примеры других примеров конструкторов диагармм со встроенным транслятором, с которыми можно сравнить и заключить, что прототип Метапрога развивается медленно :P

Как это поможет?

Поможет чему?

… О чем в течение 30 тредов ТСу и говорили, в том числе и я

А на хрена знатокам этих предметных областей навыки программирования или отдельные кодомакаки, которым надо всё разжёвывать и в рот класть вместо того, чтобы запрограммировать самостоятельно — говорили? ;)

ответы на вопросы

Это и есть образование, по сути. Причём именно бесплатное.

в виде ссылок

Это в некотором роде вредительство, ведь ссылки не являются ценным контентом, ради которого будут ходить на форум. Особенно если мимокрокодилы смогут найти их в той же поисковой выдаче, что и пост на форуме. На StackOverflow, например, является дурным тоном тупо вбросить ссылку, не приложив хотя бы краткую выжимку её содержимого, отвечающую на конкретный вопрос (кстати, приложите-ка ссылку на свой профиль на StackOverflow :P) На многих форумах запрещено давать ссылки на другие форумы, а в запущенных случаях и вовсе внешние ссылки. Это здесь цацкаются и разрешают любые ссылки, кроме явного спама и вареза.

От такого в реальной работе будет больше проблем, чем пользы

Почему вдруг? Реальная работа зачастую требует копать отсюда и до обеда, а самодеятельность и новаторство (для которого и нужна самообучаемость после ВУЗа) вредны ;) Правда, в таких случаях и оклад обычно жлобский, но это уж как кому повезёт, не всем 300k/сек рубить — работой такая деятельность ввиду тупизны и низкооплачиваемости быть не перестаёт. Но и дворницкой не является, если по специальности.

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

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

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

)))

Я так понимаю, что ты этого не знал, верно? В принципе, чему удивляться.

Нормально тип не описать

Ты давай не увиливай, а показывай конкретный пример, который демонстрирует отсутствие типизации в питоне. Побежал.

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

Так есть или рисуется?

Есть онлайн часть и рисуется остальное.

Я правильно понимаю, вы сейчас сказали что язык Метапрог уже есть? То есть работает без костылей и подпорок (Labview) и на нем потенциально можно решить любую задачу?

Очевидно что он не реализуем

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

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

Настолько ненужно что во всех языках есть аналоги или костыли для этого.

Так «не реализуем» или «есть аналоги или костыли»?

И на каждую структуру тебе придется делать функцию которая собирает инфу с указателей.

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

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

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

Там нету перегруженных функций.

генерируется код типа:

Ну вот, сами видите, что код генерируется неправильный. Хотя бы по формату printf посмотреть. А будь там не числа, а указатели? Или структуры?

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

Как проблемы с логикой у Нас касаются проблем с логикой у Вас?

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

Вы-то так сделать не можете, завидуете?

Чему мне завидовать, твоему скудоумию?

Адекватные люди в 2$21-м сайты в РФ не хостят.

Не передергивай.

Речь сейчас о первой теме ТС. Уж её Мы точно читали ;)

Обобщение не является доказательством.

То есть сравнение вообще некорректно, поскольку топикстартеру опираться не на что, кроме проприетарного LabVIEW.

Корректно, так как он опирается на существующий си.

Причём заметьте, силами всего двух инвалидов в виде Метапрога-RMS и иногда подхрюкивающей Котечки-Hanson ;)

Ты третьего забыл - самого себя.

А ломаются-то точно они?

ТС сказал - циклы. Все, что он поверх сишечки навертел, глючит. Или глючило.

Действительно, а зачем for ( in ) в JS, например?

Это выполняет другую функцию.

Где грань?

ТС ее обозначил в первых тредах.

Опять на воображаемых единомышленников ссылаетесь?

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

Где связь? :P Опять проблемы со своей логикой демонстрируете?

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

TITS or GTFO?

Да.

Старение необратимо.

Не передергивай.

Нельзя

Можно.

Поможет чему?

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

А на хрена знатокам этих предметных областей навыки программирования

Действительно. Поэтому берется и учится любой подходящий текстовый язык.

Это в некотором роде вредительство

Нет.

самодеятельность и новаторство

Осталось только найти хоть какое-то новаторство в этом прожекте, и тогда наступит полный катарсис.

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

Сложное или нет

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

все эти «многотиповые типы», «циклы по структурам» и прочие извращения, без которых нормальные языки прекрасно обходятся

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

Да даже постулирование зеро-кост как минимум на начальном этапе только мешает.

Тут не скриптуха разрабатывается %) А как иначе? Хешмапу добавлять еще сложнее, надо вводить блоки и данные времени компиляции. А иначе придется все переделывать позже.

Посмотреть какие функции реально нужны, а какие - мусор, и уже потом полировать.

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

struct:suvt ClientMessage {
  SendMessage{
    int chat_id;
    char *text;
  },
  LeaveChat {
    int chat_id;
  },
  KickUser {
    int chat_id;
    int user_id;
  }
};

void SendClientMessage(ClientSocket s, ClientMessage m) {
  s.Send(m.variant_id); // action id
  LabViewCompSerialization(m.data);  
}

byte[] LabViewCompSerialization(T struct) {
  byte[] out;
  for_each(struct, [](auto field) {
    auto str = field.toString();
    out += "[" + str.length().toString() + "]";
    out += str;
  });
  return out;
}
Давай перепишем его на язык без СУВТ, многотиповых, и циклов по структуре.
enum ClientMessageActions {
	SendMessage,
	LeaveChat,
	KickUser
};

struct SendMessage {
	int chat_id;
	char *text;
};

struct LeaveChat {
	int chat_id;
};

struct KickUser {
	int chat_id;
	int user_id;
};

union ClientMessageData {
	SendMessage send_message;
	LeaveChat leave_chat;
	KickUser kick_user;
};

struct ClientMessage {
	ClientMessageActions act;
	ClientMessageData data;
};

void SendClientMessage(Socket s, ClientMessage m) {
	s.Send(m.variant_id);
	switch(m.variant_id) {
	case SendMessage:
		s.Send(SendMessageLabViewCompSerialization(m.data));
		break;
	case LeaveChat:
		s.Send(LeaveChatLabViewCompSerialization(m.data));
		break;
	case KickUser:
		s.Send(KickUserLabViewCompSerialization(m.data));
		break;
	}
}

/*
 * И таких функций как эта нужно еще для LeaveChat и KickUser написать, а если действий еще болье? 
 */
byte[] SendMessageLabViewCompSerialization(SendMessage data) {
	string out;
	string v;
	v = data.chat_id.toString();
	out += "[" + v.length().toString() + "]";
	out += v;
	out += "[" + data.text.length().toString() + "]";
	out += data.text;
	return out;
}

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

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

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

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

А ведь можно было короче!

ВРЕТИИИ!!!

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

То есть показать ты не можешь, а просто чешешь языком?

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

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

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

Я правильно понимаю, вы сейчас сказали что язык Метапрог уже есть?

Пока что онлайн часть рисуется.

Это может быть сложно, неэффективно и т.д. - но возможно

Я говорю про эффективный и юзаемый вариант, так то все возможно, да.

Так «не реализуем» или «есть аналоги или костыли»?

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

Слушаете? Можно заранее продумать формат хранения, тогда количество извращений уменьшится на порядок.

Форматов хранения несколько, и с ними нужно работать.

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

Правильный, я его из головы выдумал, о чем ты?

Вот только типы писать в xml бесполезно

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

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

Тут уже нужно вставлять if(!ptr) { ... } но без них ты и так не обойдешься, зерокост как он есть.

А будь там не числа, а указатели?

Сгенерируется variant_pointer.

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

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

Сейчас не важно на готовом или с нуля. ТЗ-то у метапрога есть? Или лепите что в голову пришло?

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

Если не затруднит, приведите пример, скажем, на С или Lua. Потому что я там подобного не видел.

Тут не скриптуха разрабатывается %) А как иначе? Хешмапу добавлять еще сложнее, надо вводить блоки и данные времени компиляции. А иначе придется все переделывать позже.

Одно дело переделать 1000 строк кода, когда уже понятно что идея в принципе рабочая и есть куда развиваться, и другое - когда уже написано 10`000 строк и стало понятно, что проект рассыпается под собственным весом.

Хотя вы же не в строках меряете… А в чем? В гектарах?

Из того что есть нужно ВСЕ.

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

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

Так кто ж вас заставлял вместо нормального языка брыть Labview?

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

Что я должен в этой паутине увидеть?

И ты не ответил на второй вопрос. Давай, показывай, где в питоне нету типов. Заодно можешь показать, где в питоне нету итерации по структурам.

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

Пока что онлайн часть рисуется.

А зачем для языка программирования онлайн-часть?

Я говорю про эффективный и юзаемый вариант, так то все возможно, да.

Ну, скажем, dbus написана на Си. Хотя обмен идет структурированными сообщениями, причем в достаточно требовательной области. Значит, не так уж безнадежно.

Правильный, я его из головы выдумал, о чем ты?

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

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

То есть все же отказались от хранения «кода» в виде бинарных дампов? Помнится, Метапрог очень настаивал именно на бинарном формате.

А на счет загрузки-выгрузки, тут нужны именно имена, а не типы. Типы из самого xml вытянуть кое-как можно.

Тут уже нужно вставлять if(!ptr) { … } но без них ты и так не обойдешься, зерокост как он есть.

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

Кстати, а для чего кроме сериализации нужны ваши циклы по типам?

Сгенерируется variant_pointer.

…вместо вывода строки.

https://ibb.co/hfKgqSn

А в какую сторону это, простите, читать?

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

А в какую сторону это, простите, читать?

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

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

ТЗ-то у метапрога есть?

Может у ОПа и есть, я не знаю. Можешь кастануть спросить если важно.

Если не затруднит, приведите пример, скажем, на С или Lua. Потому что я там подобного не видел.

Костылинг в С - https://github.com/id-Software/Quake-III-Arena/blob/master/code/qcommon/msg.c...

СУВТ - https://doc.rust-lang.org/book/ch06-01-defining-an-enum.html

Генерики-шаблоны сам найдешь. Про std::variant наверное тоже знаешь.

когда уже понятно что идея в принципе рабочая и есть куда развиваться

Что все фичи нужные сомнений нету.

Из этого следует только что ничего вы не анализировали, а говорите от балды.

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

Так кто ж вас заставлял вместо нормального языка брыть Labview?

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

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

Что я должен в этой паутине увидеть?

Свою глупость наверное.

Давай, показывай, где в питоне нету типов.

Не разводи клоунаду, я говорил что типизация отстой. Опиши тип-хешмапу с ключем строкой хранящий виртуальный класс Animal*.

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

Из того что есть нужно ВСЕ. Возьмем допустим метапрог-онлайн, очень удобно описать протокол в виде СУВТ: …

Это такое отображение Метапрог-программы в текст? Который потом преобразуется в Сишный код? Потому-что это не Сишка, а какая-то помесь всех тебе знакомых Си-подобных языков?

Или ты на ходу это придумываешь, чтобы лузлы в ответах генерировать?

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

Свою глупость наверное.

Пока видно только твою.

Не разводи клоунаду

Это твоя прерогатива.

я говорил что типизация отстой

Как узнать, что метапрогер врёт? Он открывает рот: Метапрог-прототип 34 + СУВТ по логическому типу (комментарий)

Почему не осилили типизацию?

Не осилили = типизации нет. Но ее осилили, она есть. Называется «сильная динамическая типизация».

Опиши тип-хешмапу с ключем строкой хранящий виртуальный класс Animal*.

Что значит «опиши»? Тебе тайпхинт нужен или вся иерархия? Если ты пишешь без хинтов, то все это поместится в обычный dict. Если с хинтами, то тоже в dict, и провалидируется mypy`ем.

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

Ну, скажем, dbus написана на Си.

Ну вот можно было бы сильно сократить код и повысить удобство.

То есть все же отказались от хранения «кода» в виде бинарных дампов?

Метапрог за бинарность а не за дампы %)

А на счет загрузки-выгрузки, тут нужны именно имена, а не типы.

Да нет же, ну ладно, скоро увидишь.

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

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

И на каждый формат написать по своей функции где внутри цикл по структуре.

Кстати, а для чего кроме сериализации нужны ваши циклы по типам?

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

…вместо вывода строки.

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

А в какую сторону это, простите, читать?

В любую.

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

ТЗ-то у метапрога есть?

Может у ОПа и есть, я не знаю

Из того что есть нужно ВСЕ

То есть сам ты не знаешь, зачем это нужно, но слепо веришь в слово своего хозяина. Это так сабмиссивно!

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

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

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

Шизоидная сабмиссивка, успокойся.

Из того что есть нужно ВСЕ

Это было про фичи. Которые есть сейчас. Которые я все уже использовал.

Может у ОПа и есть, я не знаю

Это было про ТЗ, я не знаю есть ли оно у ОПа, но я примерный план знаю.

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

Что значит «опиши»?

А его не опишешь, нету такой возможности, только костылинг с тайпхинтами и сторонними инструментами.

Но с тайпхинтами так можно? Вот этого я не знаю. Что бы Dog : public Animal, Cat : public Animal туда тоже поместить можно было. Если можно то все равно отстой конечно, но уважение в моих глазах к питонистам поднимет!

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

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

Какие нахрен новые технологии? SendMessage?

Тебя спросили, что ты за си-подобный говнокод выдал, где смешиваются и Си и С++ и С#?

Еще раз для прапорщиков: это промежуточное текстовое представление диаграмм Метапрога или твои фантазии на тему?

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

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

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

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

Еще раз для прапорщиков: это промежуточное текстовое представление диаграмм Метапрога или твои фантазии на тему?

Раз прямо не можешь ответить, вывод соответствующий!

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

А то вы обещаете как появляетесь золотые горы, а на деле хрен наплакал (нативного Метапрогра за все время так и не появилось).

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

А kote4ka это почитатель этого метапрога?

Он ему «помогает». «Стокгольмский синдром» похоже, но тут не могу давать оценок почему котенок так проникся идеями метапрога, может, как программист не состоялся. Это все ИМХО, никакого отношения к реальности может не иметь.

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

А его не опишешь

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

Но с тайпхинтами так можно?

Можно:

class Animal:
   ...

class Dog(Animal):
   ...

class Cat(Animal):
   ...

animals: Dict[str, Animal] = {}
liksys ★★★★
()
Последнее исправление: liksys (всего исправлений: 1)
Ответ на: комментарий от kote4ka

Это псевдокод.

Ну вот же смог, признался, пересилил себя.

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

То-то сам Метапрог демки перестал выкладывать.

качай метапрог, и смотри если тебе мало того что есть.

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

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

И абсолютно нет никакого желания анализировать, что за адов код на Си выдает транслятор диаграмм.

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

Ну вот же смог, признался, пересилил себя.

Я думал что это будет очевидно всем.

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

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

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

Может у ОПа и есть, я не знаю. Можешь кастануть спросить если важно.

Да нет, у меня со времен Labview к графическим языкам негативное отношение. Просто интересно есть ли у вас план разработки или как повезет делаете.

Что все фичи нужные сомнений нету.

Из этого следует только что ничего вы не анализировали, а говорите от балды.

Ну да.

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

Значит вам с самого начала придется бороться с легаси.

Да нет же, ну ладно, скоро увидишь.

Если оно опять будет в виде «жгутиков и квадратиков», то не увижу.

И на каждый формат написать по своей функции где внутри цикл по структуре.

Или, что тоже самое, перегруженные методы или функции. Вот и оверхед подъехал.

Ну и можно гуи-окошко по структуре генерировать например, с просмотром и редактированием полей.

А зачем в ядре языка гуи?

А в какую сторону это, простите, читать?

В любую.

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

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

Или, что тоже самое, перегруженные методы или функции.

Перегруженных функций в метапроге нету.

А зачем в ядре языка гуи?

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

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

Потому что надо смотреть в редакторе с подсказками.

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

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

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

Потому что надо смотреть в редакторе с подсказками.

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

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

Опять метапрогеры в своем репертуаре: обещают, обещают

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

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

Впрочем, я иногда хаживаю на ЛОР посмеяться над перлами антиметапрогеров.

И какие перлы ты увидел, кроме фейлов тебя, котечки и мертвопрога?

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

У вас с Метапрогом остался один год.

Иначе что?

У вас с ЧУ совсем плохо? Да разрабатывай хоть десять лет. Пусть через десять лет совершится революция в программировании.

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

ТЗ-то у метапрога есть?

Вказивки от менеджеров, без котрых ты и пальцем пошевелить не можешь?

Или лепите что в голову пришло?

Да, ибо своя голова есть.

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

Твое понимание Метапрога смешно.

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

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

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

И какие перлы ты увидел

Из недавнего:

очередную версию сувт

Для начала узнай что такое СУВТ.

в какую сторону ни читай, ничего непонятно

Походу дело в умственных способностях.

То есть сам ты не знаешь, зачем это нужно, но слепо веришь в слово своего хозяина. Это так сабмиссивно!

Хахахахахаха

Не осилили = типизации нет. Но ее осилили, она есть. Называется «сильная динамическая типизация».

Речь о питоне:

Python 3.7.3 (default, Jul 25 2020, 13:03:44) 
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> a: int = 10
>>> a = 'Tipizacia v pitone govno'
>>> print(a)
Tipizacia v pitone govno
>>> 

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

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

ТЗ-то у метапрога есть? Или лепите что в голову пришло?

Уже ответил выше.

Можно заранее продумать формат хранения

Или исключить таковую необходимость, сделав универсальную бинарную сериализацию/десериализацию и версионированные форматы.

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

нормальных языков

Критерий нормальности в студию.

Те, на которых систематически пишут полезный софт

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

Например такие:

очередную версию сувт

Для начала узнай что такое СУВТ.

А что там узнавать то? Судя по предыдущим описаниям очередная реализация variant, может со своими особыми фичами. Это что-то революционное?

в какую сторону ни читай, ничего непонятно

Походу дело в умственных способностях.

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

Речь о питоне:

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

Для этого есть свич по многотиповому

Из-за того, что у тебя нет сайта с документацией, вот это хрень начинает выглядеть абракадаброй. Что это такое «свич по многотиповому»?

cluge
()
Последнее исправление: cluge (всего исправлений: 4)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.