LINUX.ORG.RU

Метапрог-прототип, версия 7 + графические диалоги на Метапроге

 , ,


0

3

Скачать (перед запуском читайте !Русский.txt или !Українська.txt):

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

Новая версия принесла несколько новых фич интерфейса пользователя. Добавлено выделение прямоугольником для вырезания и копирования части диаграммы (в прошлой версии было только копирование и вставка одного блока по щелчку колесом мыши). После копирования куска диаграммы (с проводками с данными и жесткими последовательностями) его можно вставить кликом колесом мыши на пустом месте диаграммы. Есть план реализовать в будущий версиях также создание подфункций из выделенного куска - аналог Create SubVI из LabVIEW (так была сделана немалая часть функций в прототипе Метапрога).

Однако самая интересная фича новой версии - сериализация в base64 координат блока на диаграмме с цепочкой функций. Этому есть как минимум два возможных применения. Можно «ткнуть пальцем» на нужный блок (меню блоки - ткнуть пальцем на блок). Будет сгенерирована строка такого вида:

metaprog_debug:AAAAAAAAAAAAAAAHAAAAAFBUSDAAAAAEAAAAAAAAAAAAAAAAAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAU4fPk6Ov87ejqIO3gIOfg7+jy4PUAAAAK0+rw4L/t8fzq4AAAABXh8+To6/zt6Oog7eAg5+Dv8O7x4PUAAAAH0PPx8ero6VBUSDEAAAAxcmVsIAAr0LHRg9C00LjQu9GM0L3QuNC6INC90LAg0LfQsNC/0LjRgtCw0YUubXBiZBNiCtNfkRABAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAT9rPr7vfo8evu4ujpIOSz4Ovu4wAAAArT6vDgv+3x/OrgAAAAFPbl6+736PHr5e3t++kg5Ojg6+7jAAAAB9Dz8fHq6OlQVEgxAAAANXJlbCAAA25rYwAq0YbRltC70L7Rh9C40YHQu9C+0LLQuNC5INC00ZbQsNC70L7Qsy5tcGJkP/rfBI32qgEAAAADAAAAB01QTCAyLjAAAAAHTElDRU5TRQAAABDy5erx8u7i6Okg5LPg6+7jAAAACtPq8OC/7fH86uAAAAAQ8uXq8fLu4vvpIOTo4Ovu4wAAAAfQ8/Hx6ujpUFRIMQAAAC9yZWwgAANua2MAJNGC0LXQutGB0YLQvtCy0LjQuSDQtNGW0LDQu9C+0LMubXBiZFbEp7cIT2gBAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAV5+Dv8/HqIOKz6u3gIE51a2xlYXIrAAAACtPq8OC/7fH86uAAAAAU5+Dv8/HqIO7q7eAgTnVrbGVhcisAAAAH0PPx8ero6VBUSDAAAAAWAAEAAgNua2MNbmtjIGluaXQubXBiZFQc/+kgVZgBAAAAAwAAAAdNUEwgMi4wAAAAB0xJQ0VOU0UAAAAO+PDo9PIg7fPq6+Xg8CsAAAAK0+rw4L/t8fzq4AAAAA748Oj08iDt8+rr5eDwKwAAAAfQ8/Hx6ujpUFRIMQAAADpyZWwgAANua2MAL9GW0L3RltGG0ZbQsNC70ZbQt9Cw0YbRltGPINC90YPQutC70LXQsNGAKy5tcGJkaxMcpv873AEAAAAAUFRIMAAAAAQAAAAAdcftGC2ZsAE=:metaprog_debug

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

Вместо тысячи слов:

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

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

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

https://postimg.cc/hQVLBcHp

Дебаг-строку выводит оранжевый блок.

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

Для компиляции надо скачать https://sourceforge.net/projects/tinyfiledialogs/

Распаковать в папке с Си-файлом так, чтобы работал соответствующий инклюд.

Код:

https://pastebin.com/5NW30tQx

Введя нужное число, закрываете окошко. После ввода часа и минуты в консоль будет выведено время срабатывания. Теперь будильником можно пользоваться и для повседневных нужд (звук пронзительный, хорошо слышный, sound.wav больше не нужен), однако завершать его работу надо еще через диспетчер задач или Ctrl+C в консоли, когда не идет звук. Также нет проверки введенных чисел, если введете не то число - будильник никогда не сработает.

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

Предыдущая версия:

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



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

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

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

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

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

О сегодня формально рабочий, но бессмысленный код, все как я люблю :3 А с чего вы решили что он ликует? Я даже запустил, у меня все нормально кстати, держу в курсе ничего не ликует.

Как оправдываться будете?

Теперь относительно нынешнего ответа:

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

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

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

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

Чисто твои выдумки.

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

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

По поводу удалении там скорее всего стандартное ответ на неккоректный пост, да и к чему мне эта информации вообще?

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

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

Если кого то не устраивает моя версия по утечкам, пусть идет фиксить их, ну или туда куда посылает антиметапрогеров ОП. К чему эти выдумки? Подгорает от помножения?

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

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

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

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

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

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

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

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

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

Побежал показывать где с помощью nuklear'a была выделена память в примере.

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

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

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

Жду оправданий, живо.

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

Эти блоки это новая библиотека считай, библиотека виджетов.

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

В %скриптоте% нужно было бы сначала обернуть все функции работающие с указателями и строками

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

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

Ее сделал я…

А автор то что делает? СУВТ? «Условные схождения»? Или просто лежит на диване, устав от трудов праведных? А ты за него отдуваешься на форуме.

я как нибудь распишу все, или ОП…

Свежо питание, но серится с трудом.

Думаешь я много мануалов по nuklear’у прочел?

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

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

На выдумки отвечать не буду.

На это давно разработаны соответствующие автоматические инструменты.

Они плохо работают, я же написал. Если работают хорошо - расскажи об этих инструментах авторам биндов, я думаю они будут рады услышать о их существовании.

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

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

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

На выдумки отвечать не буду.

Ну правильно. Это вы с метапрогом последовательно вызывая две функции нуклеара создаете «новую библиотеку виджетов». А выдумщиком оказывается кто-то другой.

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

я как нибудь распишу все, или ОП…

Свежо питание, но серится с трудом.

«Обещаете, обещать, обещать». Описание СУВТ будет от метапрога, которое его столько просили? Описание всех этих квадратиков с непонятными значками, буковками «ii» и прочим будет?

Они плохо работают, я же написал. Если работают хорошо - расскажи об этих инструментах авторам биндов

http://www.swig.org/projects.html – ну как-то люди пользуются, и у них получился не «будильник метапрога». Не знаю, может и плохо работают, самому необходимости не было.

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

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

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

Ну правильно. Это вы с метапрогом последовательно вызывая две функции нуклеара создаете «новую библиотеку виджетов». А выдумщиком оказывается кто-то другой.

Я просто хотел сказать что эти блоки не связанны с самими функциями nuklear'a, кроме того что они их используют.

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

Побежал показывать где с помощью nuklear’a была выделена память в примере.

Лул что?

Позорите монархические скрепы, своими неумелыми потугами, совсем царя в голове нет…

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

Сначала говорили… потом говорили… потом говорили…

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

Почему не сбываются пророчества, а?

Значит кто-то Вангой себя почувствовал, но файрбол не вышел.

А проект все развивается и развивается, появляются новые возможности

Иногда кажется, что такое развитие хуже деградации. Да пусть развивается. Продолжу следить.

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

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

Я просто хотел сказать что эти блоки не связанны с самими функциями nuklear’a, кроме того что они их используют.

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

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

«Будильник метапрога» это как геометрия Лобачевского, только будильник метапрога, лул.

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

Лул что?

То есть мануалы уже не надо читать по Nuklear? Или надо? Тогда показывай где идет выделение памяти, которая не освобождается (с помощью Nuklear).

Позорите монархические скрепы, своими неумелыми потугами, совсем царя в голове нет…

Не плачься, я дурачусь.

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

Мне как-то побоку, вроде такого не говорил, ну а если и говорил, то значит ошибся.

Я про антиметапрогеров. Ты просто повторяешь ту же ошибку.

И сколько кроссплатформенных приложений уже создано на метапроге, кроме «будильника метапрога», который, к примеру в винде без танцев с бубном не откомпилируешь?

Ну ты подожди еще пол года.

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

Соглашусь.

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

То есть мануалы уже не надо читать по Nuklear? Или надо? Тогда показывай где идет выделение памяти, которая не освобождается (с помощью Nuklear).

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

Не плачься, я дурачусь.

Как будто у вас когда-то был выбор.

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

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

Маленькие котики, меньше больших.

Классно. Ну это очередное помножение.

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

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

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

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

А теперь ваша очередь, оправдывайтесь за котиков :3

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

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

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

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

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

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

лурку

Охрененный источник получения информации по IT.

Вообще-то да. Прочитав вот это, учить текстовые ЯП хочется еще меньше: http://lurkmore.to/Копипаста:Python

Кстати, еще интереснее читать https://habr.com/ru/users/fillpackart/posts/ и https://ebanoe.it/ - голая правда без купюр о говноскриптухе и работе ИТ-компаний, которая убила во мне остатки желания учить скриптуху и становиться говнокодером в галере.

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

Еще куча проблем. Например, отрисовка кнопки «ОК» уходии в тело if, из-за чего выполняется уже после конца отрисовки - несмотря на жесткую последовательность. Это из-за того, что в тело условия уходит сам вызов функции, а не переменная, выводящая результат. Это можно пофиксить, введя дополнительные промежуточные переменные, компилятор все равно оптимизирует лишнее.

Формальное описание

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

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

Ну ты подожди еще пол года.

Ок, мы запомнили этот пост.

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

Не только софт. Автомобили, телефоны, ботинки… Копроэкономика одноразовых вещей наступает. Ни ООП, ни ФП тут не виноваты.

Только ООПнутый и ФПнутый софт в разы медленнее чисто сишного и по бенчмаркам, и в реальной жизни. Винда ХР, сделанная когда дотнетов, сишарпов и электронов, лучше. И даже в десятке, насколько я знаю, стабильнее всего именно компоненты, оставшиеся с тех времен, новые на скриптухе самые говенные.

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

Ты ж вроде не из истеричных антиметапрогеров, к чему такие обобщения?

Кстати, твою недавнюю цитату про метапрогеров и антметапрогеров потерли по 7.1, хотя она мне понравилась.

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

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

Убрать генерацию условий? Тогда будешь пердеть, что условий нет.

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

да нет там никакой архитектуры

Как же я жить-то без этого буду?

структура имеет поле dynamic если это поле имеет не нулевое значение считается что «массив» которой этой структурой представлен является так называемым «динамическим» то есть выделяемым и высвобождаемым через malloc/free куском памяти. Ну так вот если поле структуры именуемое dynamic не нуль что проверяется этим дубильным if (dynamic) { free() } else {} в котором еlse ветка вообще пустая, а структура условно глобальная и открытая для изменения. Вот такая вот «архитектура» в общем-то, как то так устроен массив метапрога

Просто, логично и транслируется прямо в Си без оверхеда - какой ужас! Срочно завезти побольше PyObject!

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

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

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

Ты ж вроде не из истеричных антиметапрогеров, к чему такие обобщения?

Я ж тебе говорил, к чему. Если главным и возможно, единственным преимуществом метапрога будет снижение порога вхождения, то первое, для чего он будет востребован — это найм ещё более дешёвых кодеров. Остальное уже приложится.

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

Кстати палки обмазанные говном это нынче биокомпозит. Смесь говна и опилок нанобиокомпозит.

Это сишка, обмазанная питоном и прочей скриптухой.

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

Если главным и возможно, единственным преимуществом метапрога будет снижение порога вхождения

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

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

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

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

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

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

Да только сдается, что на «прототипе» сделать хотя бы компилятор вряд-ли представляется возможным

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

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

Миллениалы открывают абстракции. 2020, холст, масло.

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

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

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

Для конечного пользователя — совершенно одно говно.

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

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

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

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

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

Э… У нас в рабочей группе (речь идёт о подразделении одного института ран) заявление «у вас ничего не работает» без стектрейса в теле письма просто не рассматривается разработчиком:-)

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

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

Кстати, еще интереснее читать https://habr.com/ru/users/fillpackart/posts/ и https://ebanoe.it/ - голая правда без купюр

Человек, ищущий негатив, найдёт его всегда и везде. Тем более, на втором сайте вообще странно было бы искать что-то ещё, судя по его названию. Это раз.

Теперь два. Я вот по первой ссылке сходил и в одном из его постов читаю:

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

Просто я задумался — а не стали ли наши ЯПы уже чем-то таким?

Тебе не кажется, что это исключительно точное описание прототипа метапрога и его кодогенератора в Си в частности?

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

Таки да, это история успеха

Э… У нас в рабочей группе (речь идёт о подразделении одного института ран) заявление «у вас ничего не работает» без стектрейса в теле письма просто не рассматривается разработчиком:-)

Мне внезапно захотелось работать у вас… Но не со всеми пользователями такое катит. В заказной разработке, думаю, не катит вообще.

hobbit ★★★★★
()
Последнее исправление: hobbit (всего исправлений: 1)
Ответ на: Таки да, это история успеха от hobbit

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

Мне внезапно захотелось работать у вас…

Дык велкам:-)

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

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

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

потом говорили что это дополнение к labview

Уже без рантайма запускается? AppImage сделал или клятвы нарушены ?

потом говорили что ничего никто не осилит

Метапрог сам на себе! В итоге будильник и смешное решение квадратных уравнений? МАТАН!

никаких графических программ не будет

А они есть? Калькулятор на метапроге по планам в 2030?

А проект все развивается и развивается, появляются новые возможности

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

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

Только заслуги г*прога в этом - ноль. Ибо гпрог это язык без компилятора, так что его то и полноценным считать не стоит, обычный транслятор. По этому заканчивает влажные мечты, там не то что rust - bash хотя бы догнать ему).

А где антиметапрог? Почему не сбываются пророчества, а?

Компилятора самого на себе нет, отвязки от лабвью нет ( кто-то грозился переписать), прямой компиляции нет, кроссплатформености нет.

Я просто хотел сказать что эти блоки не связанны с самими функциями nuklear’a, кроме того что они их используют.

Примерно как метапрог, СИ, лабвью, нуклер, что там ещё было? Метапрог никак не связан с ними, кроме того, что их использует. 99% от собранного бинаря метапрога - чужие библиотеки и рантайм лабвью.

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

Стектрейсам самое место в логе. Который присылается клиентом при обращении в саппорт. Это если о заказной разработке. У нас так, по крайней мере.

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

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

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

И еще наверное есть некоторая специфика.

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

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

Коредамп может быть наведенным, смотришь в отладчике и видишь что ошибка в std::vector::resize каком нить - все, приплыли, в тыщще строк кода выше этого вызова что то пошло не так.

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

В общем приходи к нам работать, у нас весело;-)

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