LINUX.ORG.RU

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

 , , ,


4

3

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

FAQ

1. Где скачать?

Релиза еще не было. Идет разработка, темы посвящены ей. Есть сделанный на LabVIEW прототип (его работа показана в примерах).

2. Почему не открыт код LabVIEW-прототипа Метапрога?

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

3. Почему не Дракон, MIT App Inventor, Unreal Blueprints?

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

4. Чем плохи LabVIEW или MyOpenLab?

LabVIEW пропиетарный, а MyOpenLab - хоть и опенсорсный, но какой-то недоделанный (пытался у себя запустить - выдало джава эксепшоны). Да-да, опенсорсный «клон» LabVIEW написанный на джаве! LabVIEW хотя бы на C++, а это все же меньшее зло. Обе эти системы даже не сделаны «сами на себе» в графике. Они даже не пытаются претендовать на универсальную замену всем текстовым языкам, хотя LabVIEW могло бы, если бы не тупость копирастов. Эти системы написаны на текстовых языках, их код (даже если б LabVIEW был опенсорсным) невозможно редактировать, ни разу не обращаясь к текстовым языкам. Метапрог изначально предполагает полный отрыв от текста и текстовых языков, за исключением Си как бэкенда. И то пользователям никогда не придется иметь дело с текстовым Си за исключением блоков сишных вставок (для особых случаев типа арифметических операций, ассемблерных вставок итп).

5. Почему как бэкенд выбран именно Си?

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

6. В Си указатели и ручное управление памятью. Это же так сложно!

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

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

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

8. Почему в Метапроге будут предпочитаться бинарные форматы и чем это лучше?

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

http://zone.ni.com/reference/en-XX/help/371361R-01/glang/flatten_to_string/

http://zone.ni.com/reference/en-XX/help/371361R-01/glang/unflatten_from_string/

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

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

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

Примеры

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

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

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

Прокручиваемая и выделяемая строка с автопереносом

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

https://pastebin.com/SWJJwvvC

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

Скрины подфункций в следующем примере.

Тот же пример, но покрасивее

Что можно сделать для большего удобства? Убрать инициализацию, подвязку коллбэка на закрытие окна и главную петлю гтк в подддиаграму «главное окно»:

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

На сей раз не поленюсь сделать скрины и объяснить их суть.

В подфункциях есть три вида контейнеров с данными: константа (стала, constant), контроль и индикатор (сверху вниз):

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

Значение константы задается прямо в диаграмме. В Си константа превращается в объявление переменной с инициализатором. Контроли и индикаторы в теле подфункции превращаются в терминалы, к которым можно подключаться в «вызывающей» функции.

Сама подфункция «главное окно»:

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

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

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

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

Подфункция для подцепки асинхронных функций:

https://i.postimg.cc/3r0rYVCS/image.png

Добавить объект в контейнер:

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

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

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

Делаем лейбл (и любой другой нужный виджет) прокручиваемым:

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

Как видим, сишные функции успешно уходят под капот и программировать в графике становится намного проще. Из этого получается такой код:

https://pastebin.com/16bq1Jbs

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

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

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

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

Беззнаковое 32-битное, означающее размер массива (темно-синий провод) кастуется в знаковое 32-битное (светло-синие провода и пустая константа, задающая тип). Функция gtk_text_buffer_set_text в качестве размера строки берет беззнаковое, а не знаковое, как принято - видимо, чтобы через "-1" говорить, что строка нуль-терминированная. Но из-за этого вместо 4 гб строки туда можно подать лишь 2 гб - аж в 2 раза меншье! Что за люди?

Тем не менее, с нуль-терминированными функциями в текстовых полях покончено - и это победа!

https://pastebin.com/hQRMSZ1s

Также там был изменен текст. В остальном пример соответствует скринам выше.

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

Поэты подъехали. Зачёт. Но ТС не поймёт. Нужны художники.

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

Ты стал чей-то музой (в смысле породил у того anonymous вдохновение, творческий порыв). Полагаю это плюс тебе.

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

Вообще фигня вопрос.

Да? Учти, нужны разные виды прокси http, https, socks... Какой модуль из red, rebol такое может?

Это на какой системе такая маздайщина происходит?

Пускай на винде.

Red сможет.

Если свои либы накидать, то конечно.

Это пишется на Red/System, ага. Но мне что с этого?

Не пишется, нужно делать свою библиотеку.

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

А если я деньги буду с метапрога получать, мне что, налоги честно платить государству клептократии?:)

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

А если я деньги буду с метапрога получать, мне что, налоги честно платить государству клептократии?:)

По очевидным причинам ты можешь не задаваться этим вопросом.

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

Паранойя и шизоидное весеннее обострение налицо. Мы стебемся над автором, а может он себе на лечение деньги собирает...

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

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

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

OpenSource — увы, да // идеалы, принципы, честность, ...
Commerce SOFT — нет, зачем. И это не обман, а инвестиция (в себя любимого). И это не воровство, а оптимизация налогового бремени...

Ну ты понял (с)

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

Пишется.

Я могу такое и на шеле написать. Сделаю на манер gtk-server программку, и что?

Сравним, так сказать, объём усилий.

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

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

Модуль ядра на шелле? Это прям новое слово в драйверостроении.

Маэстро, жгите исчо!

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

В NetBSD на lua программируют, только там это сделанно нормально, и с твоими язычками не сравнится. Модуль на реболе, вот что действительно смешно.

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

Художник от слова «худо». Но и я поржал. Над обезьяньей тупостью критиканов.

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

Вот именно, там это сделано нормально. А здесь прямо кладезь талантов какая-то: один сервера на лабвью ваяет, другой - драйвера на шелле…

P.S. Вспомнилось, как в защиту Дедала в его тему припёрся уже упомянутый Базист. Ровно такая же ситуация.

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

Ну все с Rebol, Red разобрались, С подходит лучше.

А здесь прямо кладезь талантов какая-то

Ты сравниваешь lua в ядре и тред? Окей.

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

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

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

Художник от слова «худо». Но и я поржал. Над обезьяньей тупостью критиканов.

А что в противовес можешь показать (из кода, например)? Ничего? Я так и знал.

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

В том виде, в котором аффтар собрался его использовать

Что не так с этим видом?

но до вас с аффтаром это дойдёт очень не скоро

Но ведь глупый - ты, при этом еще и склонный к фанатизму, как в принципе и анонимы, нулевые бездари! На твоих недоязычках ничего написать нельзя нормального, никто из вас даже не хочет разобраться с идеей metaprog'a, вы просто увидели что графика, что как в Scratch, а значит для детей, значит нужно смеятся, ну и на этом мыстильные процессы кончились, если это можно ими назвать конечно.

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

Чтобы разобраться нужны исходники, а аффтар 100$ просит. Стоит ли оно того - непонятно.

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

Что не так с этим видом?

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

На твоих недоязычках ничего написать нельзя нормального

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

никто из вас даже не хочет разобраться с идеей metaprog’a

Где она? Нет, не так: ГДЕ ОНА?!

Кто-то может эту идею внятно сформулировать, не?

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

Кстати, что на твоем Red/Rebol написано такого? Red есть с 2011 года, а в русской википедии о нем написано слишком уж кратко. Ребол существует подольше, но пропиетарщина и тоже не слышал чтоб на нем особо что-то писали.

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

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

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

Кто ж тебе поверит....

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

У тебя есть знания LABView? Ты вообще ни с чем разбираться не хочешь, это уже видно по прошлым тредам, да и в принципе не в адеквате, к чему ты тут спамишь вообще? Жизнь плоха? Сходи прогуляйся по ночным улицам, порелаксируй, так ты ничего не решишь.

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

Ты вообще ни с чем разбираться не хочешь

Я бы разобрался, но пока не в чем.

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

Те кто надо.

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

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

если вокруг тебя одни идиоты и неадекваты - ты центральный (с)

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

Что такое Red я вообще не знаю, и не буду даже пытаться узнать если ты мне не объяснишь доступно по-русски (или українською мовою) что это такое и с чем его едят.

я ж тебе объяснял, где-то во второй или третьей теме. есть язык REBOL, в котором GUI рисуется в полпинка. язык похож на лисп и лого. в том смысле, что [оператор [выражения :символ ...] выражения] это гомоиконное ребол-выражение. то есть, у него гомоиконный синтаксис — как пишется, так и представляется в памяти. язык интерпретатор, предназначен для парсинга выражений. интернет протоколы читаются как обычные локальные файлы. довольно мощный язык. можно подключать .so .dll библиотеки и напрямую вызывать сишный код через такой FFI, так что всё довольно быстро .

далее, этот язык REBOL v2 был платный, где-то в середине 2000-х его открыли, частично. отдельные части, например «исполняемый интернет» REBOL/IOS пытались продавать. потом появился форк REBOL v3 полностью открытый. он сейчас есть в исходниках на гитхабе. из нововведений — допилили модули, нормальную объектную систему, GUI диалект стал гибче и мощнее.

фича языка REBOL — диалекты. про них прочитай в википедии, или в примерах. например, GUI реализован как диалект, среди прочих других. диалекты это eDSL, языки предметных областей (в общем универсальном гомоиконном синтаксисе ребол выражений.

язык компактный, мощный, гибкий, есть под 10500 платформ ещё со времён v2 (с середины 90-х). REBOL v3 расширяемый, есть FFI в сишку, можно также из сишки дёргать его как библиотеку.

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

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

За этот месяц я их реализовал и они уже есть в компилируемых примерах!

Без пруфов ты сам знаешь кто. Дальше смысла нет говорить про это.

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

далее, есть язык RED. это наиболее удачное воплощение концепции REBOL, близкое к изначальному по духу.

была предложена такая схема: RED писать на RED/System. Red/System это низкоуровневый язык, эквивалентный Си. далее добавить сборщик мусора, объекты, модули и высокоуровневые типы данных (в оригинальном REBOL их 42). далее писать RED на себе самом (и на Red/System).

реализация имеется, можно скачать и потыкать. любопытно устроена: компилятор кроссплатформенный подо всё, то есть можно компилировать из линукса под андроид или под оффтопик. это не удивительно, потому что весь тулчейн RED реализован сам на себе. например, они не используют ld линкер из binutils, у них линкер написан на Red/System под все основные системы (Lin,Win,MacOSX). очень компактная реализация линкера — если не знаешь как устроен линкер, что такое Linker scripts и прочее — есть очень интересная книжка linkers and loaders, где это всё расписано. ну или можно посмотреть в более простой линкер из RED тулчейна.

далее, в блоге есть любопытные примеры мощности и компактности языка. например, livecoding и REPL, reactive GUI и эксель в 17 строк кода, сборщик мусора GC на Red/System, rich text edit widget, порт под андроид, библиотека для парсинга (также есть PEG парсер)

например, GUI устроен компактно и наглядно.

для рисования диаграмм есть диалект Draw. пример SVG тигра на этом диалекте, как видишь — легко читаемый.

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

по скорости Red/System незначительно отличается от обычной сишки (конкретные примеры, конечно надо мерять).

в общем, нормальный и вполне полноценный язык программирования.

гомоиконность позволяет легко кодогенерировать код на RED/RED/System/REBOL, на любом языке. например, на себе самом.

например, сгенерировать reactive код, отрисовывающий диаграммы. разобрать код на RED кодом на RED. сгенерировать по коду, отрисовывающему диаграмму — целевой код на Red/System.

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

в целом, лисп или ребол или RED — любопытная цель для кодогенерации, из-за 1)гомоиконности 2)нормального FFI с сишкой

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

Без пруфов ты сам знаешь кто. Дальше смысла нет говорить про это.

+1. Предлагаю автору помогать только если докажет, что он не балабол.

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

Кстати, что на твоем Red/Rebol написано такого?

Блокчейн-сервисы, например (man Red/C3).

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

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

идею Метапрога я выложил только месяц назад

Ссылку в студию.

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

Но вам с мегапрогером это что об стенку горохом.

Вранье, я сам ему объяснял что будет segfault при pack структурах. Ты можешь что то реальное говорить? Как мешают баги в преальфе? Сейчас главное прототип выкатить, и потом можно будет допилить его.

На твоих вообще ничего написать нельзя, ведь их тупо нет.

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

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

В лет 13 что ли писал, не помню уже, и сделал на нем сайт с новостями и форумом, веб сервер написал на плюсах.

Где она? Нет, не так: ГДЕ ОНА?!

Читай треды. Можешь погрепать по этому вопросу самому.

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

Ага, нечитаемая каша аля «компилятор все стерпит».

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

Показывай свои языки, творец

Какой именно? Myth? Impera? MSM? STXTRM? StackBeat?

Ну да, языки, референсные реализации которых умещаются в один твит - это тебе не портянка из struct{struct{struct{struct…

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

Анон, спасибо, что пишешь интересные посты, узнаю новые вещи.

Кстати, у тебя есть еще что-нибудь про org-mode? В этих темах был один пост (весьма интересный), в еще одной теме N-летней давности тоже вроде от тебя. Я в плане идей и «видения».

Ну и вообще если есть крутые посты, кинь ссылкой или скажи где найти.

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

Какой именно? Myth? Impera? MSM? STXTRM? StackBeat?

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

это тебе не портянка из struct{struct{struct{struct…

Это портянка уже может показать Hello World используя Gtk.

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

Это портянка уже может показать Hello World используя Gtk.

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

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

Блокчейн-сервисы, например (man Red/C3).

Что еще? Почему я впервые увидел слово «Red» в значении «язык программирования» в моих темах и до сегодня вообще ничего о нем не знал? И это несмотря на то что ему уже 8 лет! Метапрогу, считай, месяц, если не считать еще нескольких месяцев работы над ним до моей первой публикации на ЛОРе.

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

Русский язык нечеловеческий? А что бы ты об украинском сказал? Я уже не раз высказывал мысль, что засилие английского в программировании - общая беда всех народов кроме исконно англоязычных. Где же политики и прочие говорящие головы, где их праведный гнев по этому поводу?

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

Ссылку в студию.

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

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

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

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

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

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

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

Это не текстовый язык, словами описать сложно.

но ведь как-то же всё равно надо описывать ? не методом тыка же ты там проводки скручиваешь. кстати, вот в circuit bending есть anti-theory, не-теория. основные принципы как оно там происходит, и зачем. методика какая-то есть, принципы действия, цели и задачи — поиски интересных звуков.

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

Читать я твой линк не буду - лень.

ну звиняйте, пиктограм нема. всё текстом. ты его читать-то умеешь?

А Си я, кстати, знаю.

не видно. знал бы хорошо, не было бы 500 воньингов. но для этого нужно читать.

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

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

вон, в соседнем треде приводили пример про расчётную программу, где хедер с прототипом fabs не подключил, а слинковал правильно, с libm (оно вроде и так по дефолту). в итоге вместо float fabs(fabs x) получился int fabs(int x). в итоге оно даже иногда работало, когда не глючило.

а когда глючило, врало неподеццки. и никто не знал почему.

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

Мне бы такое стыдно было показывать

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

Myth - реализация string-rewriting paradigm в рамках стандартного JSON-формата. Impera - пример Minsky machine с минимально возможным количеством инструкций. MSM и STXTRM - стек-машины с мутирующим кодом (первой даже автор Unlambda заинтересовался). А StackBeat - bytebeat-движок для браузерной вкладки со стековым синтаксисом а-ля IBNIZ.

Это портянка уже может показать Hello World используя Gtk.

И свалиться на чём-либо чуть более сложном.

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

Ну так терпит же ж и выдает бинарник, которые еще и работает!

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

Почему я впервые увидел слово «Red» в значении «язык программирования» в моих темах и до сегодня вообще ничего о нем не знал?

Ты и про связный список ничего не знал. И про парадигмы. И про остальные «непонятные слова». Ответ на этот вопрос прост — ты просто вообще в принципе очень мало чего знаешь.

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

Ахах, такую хрень я делал когда только начинал программировать, ты троллишь что ли?

лол. Ну давай, показывай, что ты там делал.

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

которые еще и, по счастливой случайности, работает!

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

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

Это ты на нуле если думаешь что для меня твоя примитивщина какие то сверхзнания. Ну тут сразу виден https://ru.wikipedia.org/wiki/Эффект_Даннинга_—_Крюгера

И свалиться на чём-либо чуть более сложном.

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

VarfolomeyKote4ka ()
Ограничение на отправку комментариев: