LINUX.ORG.RU

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

 , , ,


1

3

FAQ

0. Где отсутствующие примеры и пункты FAQ? Как вообще читать эти темы?

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

10. Примеры выдают варнинги при компиляции (у кое-кого еще и сегфолтятся)

Решено вводом неанонимных структур, если идет обращение к данным из сишных инклюдов.

12. Зачем ты пытаешься сделать «графический C» (используя подходы к разработке, структуры данных и прочее из C, но в виде блоксхем)?

Потому что я хочу программировать именно в графике и мне нравится Лабвью, но не нравятся ограничения его бекенда, обусловленные в основном копирастией. Хочется иметь возможность программировать не только на высоком, но даже на самом низком уровне (драйвера, ядра ОС, микроконтроллеры итп) и оперировать указателями, как в Си, но делать это в графике, а не в тексте.

13. Есть же first order logic, лямбда исчисление и т.д. Ты бы изучил для начала альтернативы, может для данного вида представления имеются лучшие подходы?

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

Примеры

Предыдущие см. в прошлых темах

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

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

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

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

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

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

Неанонимные структуры

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

Главная функция:

https://i.postimg.cc/8kJdT96h/image.png

Открытие нового окна:

https://postimg.cc/kBX6rB0P

Та же диаграмма в видео:

https://streamable.com/jqng1

Видно всплывающие подсказки, в конце удаляется и снова проводится один из проводков.

Начало рисования SDL, то что должно делаться каждый цикл в нуклеаре:

https://postimg.cc/tYS199bZ

Вставки, как видите, могут принимать и даже возвращать аргументы, как вставка обработки событий SDL возвращает running. Потом этот проводок с running будет подключен к главному циклу.

Кстати, что мешает мне сейчас сделать главный нуклеаровский цикл, ведь циклы ж уже готовы? Смотрите на этот скрин:

https://i.postimg.cc/65N2KMQz/image.png

Почти такой же пример, только есть цикл и нету sleep (чтобы можно было полюболваться на окошко 10 секунд). Что тут не так? Схема правильная, но надо еще научить транслятор ставить «тупиковые» ветки, берущие начало в цикле, в пределах цикла по-умолчанию. Сейчас код nk_end и малювання SDL оказываются за пределами тела цикла, буду это исправлять. Где-то там же находится ключ к полному налаживанию ветвления через if и switch.

Сам код:

https://pastebin.com/f5PDfi77

Использовать сишные имена типов и структур удалось благодаря многоязычным строкам, которые внедрялись для русских, англичан и прочей не понимающей украинский публики. Если в названии типа есть строка на языке «С», вместо примитивного типа (или тела структуры из примитивных типов) ставится сишный идентификатор типа из инклюда.



Последнее исправление: metaprog (всего исправлений: 15)

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

Мне понравился список Programs using libevent из http://libevent.org/ так что думаю его брать. Попытаюсь вникнуть.

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

http://www.c-cpp.ru/books/prisvaivanie-struktur

Это серьезно усложнит транслятор, черт побери. Как это обойти? Через typedef? Указатели на структуры?

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

Да потому что тут знатоков много, ответят быстрее

Знатоки предпочитают отвечать на каверзные вопросы, а не по азам Си или любого другого ЯП.

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

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

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

И так не у одного меня. У Илюхи тоже были подобные проблемы:

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

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

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

Пора строить гистограмму. Гистограмма сама не построится.

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

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

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

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

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

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

Да людям просто лень вставать с дивана, чтобы разъяснять очевидные для них вещи

Дать ответ на простой вопрос - это чаще всего один коротенький абзац настрочить, невелик труд. Котечке не лень это делать. Другое дело что

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

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

Ты лучше изучи какой-нибудь питон, уж насколько просто, что не знаю

Питон? Просто? Да ну, серьезно? И ручками на нем писать? Или транслятор с Си на него переделывать?

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

Уже есть примеры.

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

Уже получаю.

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

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

Вместо:

1) Господа, смотрите, мой язык может делать математику, реализованы +, -, \, / и т.д. Тут же и логические операторы, и битовые.

2) Появились «if ... then», разные виды циклов, switch и д.т.

3) Мой язык умеет делать функции.

4) Из моего языка можно использовать любую Сишную библиотеку.

5) Теперь я могу свой язык и среду разработки реализовать сам на себе.

У тебя:

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

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

Уже есть примеры.

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

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

1) Господа, смотрите, мой язык может делать математику, реализованы +, -, \, / и т.д. Тут же и логические операторы, и битовые.

Уже можно, через вставки сишного кода.

2) Появились «if ... then», разные виды циклов, switch и д.т.

Частично, еще в процессе доработки.

3) Мой язык умеет делать функции.

4) Из моего языка можно использовать любую Сишную библиотеку.

Еще с первых хеллоуворлдов из первой темы.

5) Теперь я могу свой язык и среду разработки реализовать сам на себе.

Стратегическая цель.

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

Ну да, а что?

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

Питон? Просто?

Да.

И ручками на нем писать?

И что такого? Пару месяцев ручками, потом вернешься к своему мышевозюканью.

Или транслятор с Си на него переделывать?

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

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

А что, по скринам и даже видео не очевидно?

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

Описание всех этих треугольников, квадратиков, параллелепипедов и линий, их соединяющих все равно нужно. Ну ни хрена это не очевидно!

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

1) Господа, смотрите, мой язык может делать математику, реализованы +, -, \, / и т.д. Тут же и логические операторы, и битовые.

Уже можно, через вставки сишного кода.

А что, собственных графических примитивов для этого до сих пор нет?

4) Из моего языка можно использовать любую Сишную библиотеку.

Еще с первых хеллоуворлдов из первой темы.

Молодец, только таки, объясни, почему ты начал с 4-го пункта, а не 1-2-3-4?

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

Нет. Питон для меня сложный. Сложнее, чем Си, который я, как писали выше, хотя бы «наполовину знаю». К тому же, мне доводилось читать питоньи исходники, уши бы у тебя завяли как я при этом матерился. В Лабвью (и даже недоделанном лабвьюшном прототипе) я еще могу ориентироваться, а а питоне писать что-либо сложнее хеллоуворлдов - это, наверное, как для тебя писать исполняемый файл прямо в машинном коде даже без Си, ассемблеров и компиляторов.

а циклы и условия так и не научился нормально

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

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

У меня такое ощущение, что в итоге это придёт к логическим схемам, только к каждому блоку будет подведён скрытый сигнал от тактового генератора. Чтобы сделать вычисления, нужно будет нарисовать схему, выполняющую эти вычисления. Для удобства можно будет делать модули, которые на схемах большего масштаба изображаются чёрными ящиками. На уровне выше блоки ещё большей абстракции, и так далее. Эдакий нарисуй-сам-себе-asic. В каком-то смысле, анти-verilog.

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

А что, собственных графических примитивов для этого до сих пор нет?

В Лабвью эти примитивы упираются в «черные ящики», в Метапроге - во вставки сишного кода. Как в этом примере:

https://postimg.cc/5jQrSgtt

Здесь «+1» означает

(сишное_выражение)+1

Если подключить сишное выражение

function_returninig_a_number()

То получим

(function_returninig_a_number())+1

Понятно?

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

писать исполняемый файл прямо в машинном коде даже без Си, ассемблеров и компиляторов.

Лол, мы так делали. Инструментов не было, ничего не знали, но разобрали в досовском debug’е 128-байтную демку с эффектом огня, и написали на бумажке свой вариант со своей картинкой на ассемблере. Потом перевели в коды по справочнику, и набили в хекс-редакторе. С первого раза оказался фейл, зато со второго уже сделали правильно. Потом цвета пламени меняли тоже в хекс-редакторе. Потратили кучу времени, но осилили.

Недавно патчил virt-manager, чтобы он логи с 0644 писал, а не 0600. Так оказалось проще, чем в сишных исходниках править и пересобирать пакет.

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

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

Я знаю, что машинный код не так уж и сложен, как его малюют. И кое в чем даже проще ООПнутых абстракций:) Инструкции процессора, все вроде четко и ясно: регистры, операции и адреса в памяти. Только библиотек готовых на асме и машинном коде поменьше, чем на сях.

Так что насчет присваивания структур? Котечка пока что в оффлайне, не хочешь ускорить рабработку?

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

У меня такое ощущение, что в итоге это придёт к логическим схемам

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

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

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

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

В общем, самая большая сложность - это те, кого я послал в жопу и им подобные.

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

Хорошо бы.

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

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

В Лабвью эти примитивы упираются в «черные ящики»

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

Понятно?

То, что ты написал, понятно. Схема все равно представляет из себя набор непонятных проводков и символов. Это раз. Во вторых, тебе сколько говорили: ну мелко все очень, не видно ни хрена. Ты хочешь чтобы часть лоровцев еще и зрение испортили от твоих диаграмм?

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

Но если мне будут подсказывать получше - получше будет и с темпами разработки.

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

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

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

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

было бы уже получше, если бы не как ты разрабатываешь, сначала 4, потом нужны пиктограммы, а как нормальные люди делают 1-2-3-4.

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

Перестань придумывать, каким Си должен быть, и почитай о том, какой он есть.

Ответ можешь дать или будешь троллить?

Ты серьёзно считаешь это троллингом?

hobbit ★★★★★
()
Ответ на: комментарий от metaprog
#include <stdio.h>

int main(int argc, char **argv) {
	struct s1 {
		unsigned short int sin_family;
		unsigned short int sin_port;
		struct {
			unsigned long int s_addr;
		} sin_addr;
		char sin_zero[7];
	} metaprog_instance_1;
	
	struct s2 {
		unsigned short int sin_family;
		unsigned short int sin_port;
		struct {
			unsigned long int s_addr;
		} sin_addr;
		char sin_zero[7];
	} metaprog_instance_2;
	
	metaprog_instance_1.sin_family = 1; metaprog_instance_1.sin_port = 2; metaprog_instance_1.sin_addr.s_addr = 3;
	metaprog_instance_2.sin_family = 5; metaprog_instance_2.sin_port = 6; metaprog_instance_2.sin_addr.s_addr = 7;
	
	printf("metaprog_instance_1: %d, %d, %ld\n", metaprog_instance_1.sin_family, metaprog_instance_1.sin_port, metaprog_instance_1.sin_addr.s_addr);
	printf("metaprog_instance_2: %d, %d, %ld\n", metaprog_instance_2.sin_family, metaprog_instance_2.sin_port, metaprog_instance_2.sin_addr.s_addr);
	
	metaprog_instance_1 = *((struct s1 *) &metaprog_instance_2);
	metaprog_instance_2.sin_family = 10; metaprog_instance_2.sin_port = 12; metaprog_instance_2.sin_addr.s_addr = 14;
	
	printf("metaprog_instance_1: %d, %d, %ld\n", metaprog_instance_1.sin_family, metaprog_instance_1.sin_port, metaprog_instance_1.sin_addr.s_addr);
	printf("metaprog_instance_2: %d, %d, %ld\n", metaprog_instance_2.sin_family, metaprog_instance_2.sin_port, metaprog_instance_2.sin_addr.s_addr);
}
ilya@www ~/tmp $ gcc test.c 
ilya@www ~/tmp $ ./a.out 
metaprog_instance_1: 1, 2, 3
metaprog_instance_2: 5, 6, 7
metaprog_instance_1: 5, 6, 7
metaprog_instance_2: 10, 12, 14
ilya@www ~/tmp $

извиняюсь, переменные немного переименовал

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

metaprog_instance_1 = *((struct s1 *) &metaprog_instance_2);

-- Эт и я так могу.

-- А что ж сыграть то?

-- Мурку!

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

Глубоко презираю людей, которым даже подсказкой помочь влом

Глубоко презираю людей, которым даже по первой ссылке в гугле сходить влом

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

Это то, чем тебе проще всего помочь с разработкой Метапрога

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

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

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

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

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

если автор осилит написать доки они наверное будут в стиле доков к ubilling. там даже вроде слово из трёх букв где то видел прям в мануале.

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

Скорее он кучу наскальных рисунков нам вывалит.

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

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

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

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

Это серьезно усложнит транслятор, черт побери. Как это обойти? Через typedef? Указатели на структуры?

для анонимных структур используй такую конструкцию: for (size_t i = 0; i < sizeof(metaprog_instance_2); i++) *((char *)&metaprog_instance_1 + i) = *((char *)&metaprog_instance_2 + i);

#include <stdio.h>

int main(int argc, char **argv) {
	struct {
		unsigned short int sin_family;
		unsigned short int sin_port;
		struct {
			unsigned long int s_addr;
		} sin_addr;
		char sin_zero[7];
	} metaprog_instance_1;
	
	struct {
		unsigned short int sin_family;
		unsigned short int sin_port;
		struct {
			unsigned long int s_addr;
		} sin_addr;
		char sin_zero[7];
	} metaprog_instance_2;
	
	metaprog_instance_1.sin_family = 1; metaprog_instance_1.sin_port = 2; metaprog_instance_1.sin_addr.s_addr = 3;
	metaprog_instance_2.sin_family = 5; metaprog_instance_2.sin_port = 6; metaprog_instance_2.sin_addr.s_addr = 7;
	
	printf("metaprog_instance_1: %d, %d, %ld\n", metaprog_instance_1.sin_family, metaprog_instance_1.sin_port, metaprog_instance_1.sin_addr.s_addr);
	printf("metaprog_instance_2: %d, %d, %ld\n", metaprog_instance_2.sin_family, metaprog_instance_2.sin_port, metaprog_instance_2.sin_addr.s_addr);
	
	for (size_t i = 0; i < sizeof(metaprog_instance_2); i++) *((char *)&metaprog_instance_1 + i) = *((char *)&metaprog_instance_2 + i);
	
	metaprog_instance_2.sin_family = 10; metaprog_instance_2.sin_port = 12; metaprog_instance_2.sin_addr.s_addr = 14;
	
	printf("metaprog_instance_1: %d, %d, %ld\n", metaprog_instance_1.sin_family, metaprog_instance_1.sin_port, metaprog_instance_1.sin_addr.s_addr);
	printf("metaprog_instance_2: %d, %d, %ld\n", metaprog_instance_2.sin_family, metaprog_instance_2.sin_port, metaprog_instance_2.sin_addr.s_addr);
}

но будь осторожен, такое отношение к типам данных до добра не доведёт, жди новых segfaultов.

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

для анонимных структур используй такую конструкцию: for (size_t i = 0; i < sizeof(metaprog_instance_2); i++) *((char *)&metaprog_instance_1 + i) = *((char *)&metaprog_instance_2 + i);

memcpy уже вышел из моды?

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

They told me I was too young. They told me I needed more training. I told them to drop dead идти в жопу. How ironic.

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

Под «одинаковым типом» имелось в виду это?

//clang sockaddr_test.c -std=c99 -pedantic -O2 -o test -lSDL2 -lGLESv2 -lm

int main(int argc, char **argv){
struct metaprog_instance_0_8262442935555737601_struct_5562572915605350401 {
unsigned short int sin_family;
};

struct metaprog_instance_0_8262442935555737601_struct_5562572915605350401 metaprog_instance_0_8262442935555737601_junction_5562572915605350401;

struct metaprog_instance_0_8262442935555737601_struct_5562572915605350401 metaprog_instance_0_3919427819432921089__7158408156748161025__structure_constant_6033721645320783873;

metaprog_instance_0_8262442935555737601_junction_5562572915605350401 = metaprog_instance_0_3919427819432921089__7158408156748161025__structure_constant_6033721645320783873;

}

Оно сработало. С юнионами та же история?

Странно, конечно, после Лабвью, что структуры с одинаковыми внутренностями (но разными декларациями) нельзя просто так брать и присваивать. Придется допилить транслятор, но это сравнительно несложно.

Что куда хуже - вместо того чтобы подсказать такую мелочь, «знатоки» пошли в троллинг. Таких надо не в жопу посылать, а как Пушкин Толстого. Поскорее б уже открыть собственный ресурс со своими правилами:)

Кстати, от Рината не припомню особой пользы проекту. Только какие-то претензии да троллинг.

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

Конкурс на пиктограммы завершен. Так как варианты пиктограмм предложил, насколько я помню, только ты - только твои варианты и принимаются. Спасибо за идеи.

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

Совершенно верно.

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

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

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

Жаль только, подавляющее большинство дельных советов ты, в силу своего скудоумия, проигнорировал.

Ну играйся, играйся)

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