LINUX.ORG.RU

Метапрог-прототип, версия 5

 , ,


1

2

Следующий релиз

Метапрог-прототип, версия 6 + будильник на Метапроге

Скачать:

https://www71.zippyshare.com/v/flBFevsS/file.html

В архив добавлены скомпилированные ехе: теперь прототип Метапрога и Метапрог онлайн можно запустить без LabVIEW, в том числе под линуксом через Wine (скрин: https://ibb.co/0XTVx6F инструкции: Метапрог-прототип, версия 5 (комментарий)).

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

Из нереализованного - схождение данных из двух и более веток условий. Подробнее:

Метапрог-прототип, версия 4 (комментарий)

Условные схождения будут сделаны уже в 6 версии. Скорее всего, это - последняя нереализованная крупная функция прототипа Метапрога. После ее воплощения планирую начать делать раскрутку/бутстрап/«Метапрог сам на себе» с полной отвязкой от LabVIEW.

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

https://streamable.com/rgk86

Выход из записи обучалки (под конец, когда происходит ее сохранение на диск) по кнопке Esc.

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

Предыдущий релиз прототипа:

Метапрог-прототип, версия 4



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

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

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

Как насчет обратить внимание на многоязычный Метапрог?

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

den73 ★★★★★
()
Последнее исправление: den73 (всего исправлений: 1)
Ответ на: Who Watches the Watchmen / Quis custodiet ipsos custodes от hobbit

освободило ли Лабвью от манов и гугла создателей самого Лабвью и его стандартной библиотеки?

При разработке самого Лабвью на текстовом языке (С++) наверняка им пришлось курить маны, гуглить и читать скучные книги по текстовым языкам программирования. И мне порой приходится курить мануалы для того, чтобы сделать метапроговские обертки над сишными функциями. Но к готовым функциям на Метапроге (как к лабвьюшным) мануалы курить едва ли придется, а если и придется - то намнооого реже, чем в текстовой форме.

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

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

Дело твое, но при замыкании на одном языке теряются миллиарды потенциальных пользователей, его не знающих - это касается даже английского.

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

теряются миллиарды

Все семь, да.

Чот я не вижу, чтоб ни китайцев, ни индусов не останавливал английский.

Хотя яп на хинди, который популярен у полутора индуса, тут даже кто-то скидывал.

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

Все дело в библиотеках. Кому тот хиндийский ЯП нужен без библиотек? И кому был бы сейчас нужен Си без библиотек и кучи готового кода?

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

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

Ну это если у него нет сильной финансовой поддержки и адмминресурса (привет 1С).

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

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

Кстати кому нужен твой метапрог без сотен готовых диаграмм сторонних либ?

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

И как в этом случае потенциальный программист узнает, что делает вызов get_value из библиотеки brdc.lib?

Надо будет открыть диаграмму кликом на блоке функции.

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

Надо будет открыть диаграмму кликом на блоке функции.

Что он там увидит, если этого никто не нарисовал еще? А если нарисовал, то ровно так же добавит и в язык для индусов.

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

Многое сделается в процессе раскрутки Метапрога.

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

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

Чот я не вижу, чтоб ни китайцев, ни индусов не останавливал английский.

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

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

Ну так реализуй на Си без math.h

Лол, окей.

double func(void) {
    int x = 5;
    float y = 10;
    double z = __builtin_sqrt((x * 5) / 2.0 + __builtin_pow(x, 10) + (x * y) / y);
    return z;
}
func:
        movsd   .LC0(%rip), %xmm0
        ret
.LC0:
        .long   1862295061
        .long   1084779009
i-rinat ★★★★★
()
Ответ на: комментарий от metaprog

Лабвью освободило меня от манов и гугла!

Да мы уже видели твоё решение квадратного уравнения. Для уравнения, которое имеет аналитическое решение, ты наворотил чёрт знает что. Зато без чтения манов и гугла!

i-rinat ★★★★★
()
Ответ на: комментарий от i-rinat
$ gcc sq.c
/usr/bin/ld: /tmp/ccpWNeDU.o: в функции «func»:
sq.c:(.text+0x49): неопределённая ссылка на «pow»
/usr/bin/ld: sq.c:(.text+0x6e): неопределённая ссылка на «sqrt»
collect2: ошибка: выполнение ld завершилось с кодом возврата 1
shpinog ★★★★
()
Ответ на: комментарий от i-rinat
ldd ./a.out 
	linux-vdso.so.1 (0x00007ffebb1b1000)
	libc.so.6 => /usr/lib/libc.so.6 (0x00007fae54716000)
	/lib64/ld-linux-x86-64.so.2 => /usr/lib64/ld-linux-x86-64.so.2 (0x00007fae54929000)
shpinog ★★★★
()

Когда, кстати, будем праздновать год метапрогу? Вообще-то думается, нужно кутёж устроить по такому случаю и объявить выходные в IT-сфере на 8 дней.

kostyarin_ ★★
()

Да мы уже видели твоё решение квадратного уравнения. Для уравнения, которое имеет аналитическое решение, ты наворотил чёрт знает что. Зато без чтения манов и гугла!

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

А то, что метапрог не помнит матана, это ложь. В 5-6 классах свойства параболы и решения полных квадратных уравнений вдалбывают месяцами. И даже если формулы позабылись, найти их в Википедии или Гугле дело нескольких секунд. Уж явно быстрее, чем писать и отлаживать решение уравнения при помощи брутфорса всех его значений. К тому же, вроде, в его диаграммах было упоминание одного/двух корней, т.е. про саму параболу он помнит.

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

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

Ты добавил функцию main и собрал как исполняемый файл. Собери как shared-библиотеку, и будет statically linked.

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

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

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

Мне что-то подсказывает, что большинство из реализованного просто обёртки вокруг labwiev рантайма.

А то, что метапрог не помнит матана, это ложь.

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

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

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

Это был не метапрог, это был LabVIEW. В LabVIEW есть formula node, вот: http://www.ni.com/tutorial/7572/en/.

А то, что метапрог не помнит матана, это ложь.

Называть квадратные уравнения «матаном» только @metaprog додумался. Матана там и близко нет.

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

Так если я эту библиотеку где то буду использовать соответсвенно оно динамический к libc приленкуется

Нет. Там определяется один символ, и он указывает на последовательность из двух команд, mov и ret. Mov загружает константу, ret возвращает управление вызвавшему коду. Незачем линковаться к libc или к чему-то ещё.

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

Давным-давно я пытался написать переборщик для md5 (с модификациями), чтобы пароль из хеша восстановить. Во время оптимизаций до меня дошло, что часть операций можно же предпосчитать! Всего два раунда, имело смысл написать сразу развёрнутый код. Сделал «оптимизацию», скорость не изменилась. И тут я догадался посмотреть, что компилятор сгенерировал для оптимизированного руками варианта. В общем, не было там разницы. Компилятор «догадался» о возможности оптимизации раньше меня.

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

Разве это не справедливо только для константных значений.

Я попозже посмотрю и попробую собрать как библиотеку, но перед этим удалю libc из системы, что-то мне подсказывает что оно не соберётся.

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

Разве это не справедливо только для константных значений.

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

перед этим удалю libc из системы

Хе-хе. Удачи.

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

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

А на асемблер есть какие-нибудь библиотеки подобные libc ?

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

даже круче было

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

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

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

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

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

Только ТСу об этом — тс-с…

(Впрочем, уже говорили.)

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

А на асемблер есть какие-нибудь библиотеки подобные libc?

Ну, libc, например. Вообще всё, что хочешь. Полная свобода выбора. Можно даже C++ библиотеки использовать. Просто удостоверься, что передаёшь параметры правильно, а твои функции размечены в соответствии с C++ ABI, то есть есть информация о фреймах, и исключения ты ловишь правильно. Не забывай про this.

Вот уж действительно закат солнца вручную.

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

Ну, libc, например. Вообще всё, что хочешь. Полная свобода выбора. Можно даже C++ библиотеки использовать. Просто удостоверься, что передаёшь параметры правильно, а твои функции размечены в соответствии с C++ ABI, то есть есть информация о фреймах, и исключения ты ловишь правильно. Не забывай про this.

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

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

Для написания больших вещей типа калибриОС

Это графический ДОС. Хотя в общем то ОС мне нравится, портирую на нее метапрог. И какую вообще библиотеку в стиле libc ты хочешь видеть для написания ОС? Это лол.

А на fasm есть такое вот:

Но ассемблер то нестандартный, антиметапрогеры не осилят.

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

Это графический ДОС. Хотя в общем то ОС мне нравится, портирую на нее метапрог.

Ты сперва на линукс appimage собери, портеровщик.

Но ассемблер то нестандартный, антиметапрогеры не осилят.

Параша без AT&T на линуксе не нужна, они сами это поняли и даже не собрали готовые пакеты.

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

Ты сперва на линукс appimage собери, портеровщик.

Я же писал уже. Программировать ниумеешь, читать тоже, плов то хоть хороший делаешь?

Параша без AT&T на линуксе не нужна, они сами это поняли и даже не собрали готовые пакеты.

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

Параша без AT&T

Ты даже не понимаешь в чем суть fasm'a, в нем крутейший макроязык. Так же недавно появился интересный проект, это fasmg, но кто захочет тот посмотрит, а я держу в курсе.

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

Я же писал, программировать ниумеешь, читать тоже, плов то хоть хороший делаешь?

У вас с матапрогом много общего, главное - всё в будущем.

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

Тебе сказали про твой flash IDE, где пакеты?

https://fresh.flatassembler.net/content/_download/bleeding_edge_fresh.tar.gz

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

Ты даже не понимаешь в чем суть fasm’a в нем крутейший макроязык.

Я рад за fasm. У метапрогеров непреодолимое желание не соблюдать стандарты? 1. Linux без AT&T 2. Разработка метапрога без сборки под linux, на линукс форуме 3. Разработка метапрога под лицензией которую он нарушает 4. Обсуждение чего угодно, только не метапрога?

Так же недавно появился интересный проект, это fasmg, но кто захочет тот посмотрит, а я держу в курсе.

Я голову помыл, держу в курсе.

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

У вас с матапрогом много общего, главное - всё в будущем.

Примеры на nuklear можно запускать прямо сейчас. Неожиданно пришло и настоящее, а?

Тебе сказали про твой flash IDE, где пакеты?

Почитай скрипт-установщик, станет ясно.

1. Linux без AT&T

Это такой стандарт? Посмотрим что же требуется для сборки Firefox - https://gitweb.gentoo.org/repo/gentoo.git/tree/www-client/firefox/firefox-68..... Емае! Да там же yasm с intel-синтаксисом! А ну выбрасывай, будешь теперь сидеть на lynx.

2. Разработка метапрога без сборки под linux, на линукс форуме

Это форум не про linux.

3. Разработка метапрога под лицензией которую он нарушает

Не нарушает, плюс есть множество проектов на LabView под GPL - https://github.com/ALSETLab/S3DK

4. Обсуждение чего угодно, только не метапрога?

Так обсуждай метапрог.

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

Примеры на nuklear можно запускать прямо сейчас. Неожиданно пришло и настоящее, а?

Примеры для nuklear можно запускать и без метапрога, внезапно. Спасибо метапрогу за возможность запускать nuklear, Мир благодарен. Без си, напрямую когда научится ?

Почитай скрипт-установщик, станет ясно.

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

Это форум не про linux.

Linux.org.ru — клуб пользователей операционной системы Linux и других Unix-систем, предназначенный для обмена интересной информацией по тематике сайта.

Каким боком метапрог относится к unix?

Не нарушает, плюс есть множество проектов на LabView под GPL - https://github.com/ALSETLab/S3DK

Он нарушает по простой причине, как и всё что ты покажешь на labwiev.
GPL требует распространять исходный код ( source code), а не исходные бинарные файлы которыми являются файлы .vi

И из этих множеств, самоё крупное это реп на гитхабе с 12 звёздами?
Я могу на гитхаб залить что угодно под какой-либо лицензией, пока это не популярно и теряется в общей массе, всем по боку.

Так обсуждай метапрог.

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

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

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

Метапрогеры сдают позиции.

пойду правило на ублок напишу.

На метапроге можно писать правила для ублока? Предлагаю нарисовать интернет на метапроге. Веб фреймворк - NetProg. А название сети - MetaNet.

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

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

// ==UserScript==
// @name         RemovePlov
// @namespace    http://tampermonkey.net/
// @version      0.1
// @description  try to take over the world!
// @author       You
// @match        *://*/*
// @include      *://linux\.org\.ru/*
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    const badboys = ['shpinog'];

    function enableBlur(node, v) {
        if(v) {
            node.style['height'] =  '50px';
            node.style['overflow'] = 'hidden';
            node.style['filter'] = 'blur(10px)';
        } else {
            node.style.cssText = 'filter: none;';
            node.style['height'] =  'none';
            node.style['overflow'] = 'none';
        }
    };

    Array.from(document.querySelectorAll('a[itemprop="creator"]'))
        .filter(a => badboys.includes(a.textContent))
        .forEach((a) => {
            let commentary = a.parentNode.parentNode.parentNode.parentNode;
            enableBlur(commentary, true);
            commentary.onmouseover = () => {
                commentary.ismouseover = true;
                setTimeout(() => { if(commentary.ismouseover) { enableBlur(commentary, false) } }, 1250);
            };
            commentary.onmouseout = () => { commentary.ismouseover = false; enableBlur(commentary, true) };
        });
})();

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

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

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