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)
Ответ на: комментарий от metaprog

А как будет на Си с многопоточностью?

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

В свете первой цитаты очень хотелось бы услышать что есть «скорость чистого С»?

Астанавитесь, ведь от смеха можно автоперелом ребер заработать…

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

Вот можешь посмотреть программу i-rinat (только там строчка из 20 символов фиксированная на все вызовы, а не случайная на на каждой итерации, и когда собирать будешь напиши -march=native , просто может быть не skylake у тебя, а так компилятор сам выберет подходящие инструкции):

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

Раз уж ты все версии собираешь посмотри ещё на rust версию(она тоже многопоточная):

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

C быстрее всех конечно…

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

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

А вкратце и простыми словами? Что может быть быстрее сишки кроме ассмеблера?

Так и представил метапроговских массивы которые жгутиками отбиваются от злых уязвимостей!

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

Ну далеко не так часто как вы с Царем и котей.

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

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

В свете первой цитаты очень хотелось бы услышать что есть «скорость чистого С»?

По бенчмаркам Си быстрее всего. Правда реализацию теста на АСМе еще не написали.

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

А вкратце и простыми словами? Что может быть быстрее сишки кроме ассмеблера?

  1. Вы исходно спрашивали «что может быть лучше Сишной системы типов»

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

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

Это приводит к потере производительности, тут это уже обсуждали. И Вы тут далеко не первый, std::vector::at например такое делает уже дцать лет.

А вот в чем Царь-то ошибается? Сколько его читал - ошибок не видел.

Я почти не шарю в текстовых ЯП и не профессиональный матанщик,

Вот потому и не видели.

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

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

Прочитать книгу https://www.amazon.com/Using-OpenMP_The-Next-Step-Accelerators/dp/0262534789 (я не искал, но наверное на торрентах можно найти)

Я сам ещё не читал, пока времени нет, но надеюсь в этом году прочитаю. Я читал только вот эту книгу: https://apps2.mdp.ac.id/perpustakaan/ebook/Karya%20Umum/Parallel_Programming_in_OpenMP.pdf

Но это старая книга, там лишь возможности OpenMP 2.0

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

По бенчмаркам Си быстрее всего. Правда реализацию теста на АСМе еще не написали.

Для данной конкретной задачи которую решали один программист и полтора инвалида? Аргумент железобетонный!

Я Вам одну вещь скажу, но Вы все равно не поймете - все нормальные (сделанные прямыми руками) реализации этого «бенчмарка» на ЯП типа С/C++, фортран, паскаль и пр. будут примерно одинаково быстрыми, и ассемблер даст такую же скорость.

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

В случае ТС это будет отличный способ замедлить его код в несколько раз. Это при условии что он поймет написанное.

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

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

лол.

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

В целом, больинство проблем с безопасностью в Си - из-за нуль-терминированных строк, так ведь?

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

Черт знает, надо смотреть по конкретным ситуациям.

Я вам описал вполне конкретные ситуации, куда уж конкретнее?

любом случае, статический анализатор на Метапрог будет еще не скоро.

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

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

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

  1. включаем в начале
#include <omp.h>
  1. перед каждым циклом for ставим
#pragma omp parallel for  
  1. собираем с опцией
gcc ... -fopenmp
  1. замеряем производительность, видим падение в несколько раз (да еще и работает неправильно)

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

Если перейти сразу к п.5 - можно сэкономить много времени и сил.

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

Я вам описал вполне конкретные ситуации, куда уж конкретнее?

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

простейшая программа на десяток логических действий течет как водосточная труба, и вам это как-то вообще не сильно волнительно?

«а разве это проблема?» (про сборку мусора)

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

А может лучше, всё-таки, начать с обычных тредов? Правда ты наверняка захочешь использовать POSIX Threads, только вот оно не очень переносимо. В идеале ты бы заменил уже эту сишку на кресты хотя бы и юзал std::thread, но ты так, кстати, и не поведал, чем тебе так кресты не угодили.

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

Вкратце - как этим пользваться?

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

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

почему вы так страстно желаете его «проскочить»?

metaprog ☆ (11.02.20 10:06:30) у меня есть цель софт делать, а не учиться

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

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

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

использовать POSIX Threads, только вот оно не очень переносимо

да есть уже реализации вполне переносимые.

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

Слушайте, я в восхищении, сколько же тут позитивно смотрящих на мир людей! Сначала @abcq пытался (ушел в туман, не вынесла душа поэта…), теперь вот Вы… интересно, как быстро Вы сломаетесь или будете посланы мыть полы?

хочу попробовать уговорить ТСа отказаться от этого концепта не через насмешки и унижения

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

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

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

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

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

в блокноте и виме

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

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

И в этом — его сила. Текст всегда одинаково понятен и человеку, и машине, его гораздо легче формализовать, разобрать… Текст — одно из величайших изобретений человечества.

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

Иногда — нужно. Но очень уж иногда. ИМХО, она что-то делает неправильно, ну или у неё какой-то очень экзотический язык, для которого нормальной IDE нет.

В Лабвью платить не придется.

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

А функция «упорядочить диаграмму» есть?

Где-то есть. Но её упорядочивание далеко не всегда заменяет ручное, диаграмму упорядочить куда сложнее, чем текст, принцип «от важного к второстепенному» программа не соблюдёт. И насчёт Лабвью я не уверен, что автомат там работает не хуже человека.

Не просто написать for, а еще и кое-что в скобочках, точки с запятыми и все такое.

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

Кстати, ты упорно пишешь «диагармма» и «пропиетарный». Это что-то принципиальное, вроде «девчЕнки» у Солженицына или «беЗсмысленно» у верующих, или ты себя просто не можешь переучить на правильное написание?

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

Я щас думаю, что ему всё-таки больше подойдут Win32 Threads, а линуксоеды один хрен, пускай в вине пускают.

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

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

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

Я тут как-то с @provatonом больше согласен…

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

Метапрог-прототип, Метапрог онлайн с многокомнатным чатом и VCS под Метапрог, сервер под это дело

Нифигасе! А корованы там грабить можно?

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

Так как ТС сам себя тут унижает его никто унизить не может

Да, и больно на это смотреть…

Сначала @abcq пытался (ушел в туман, не вынесла душа поэта…)

Еще хоббит очень качественно и корректно отвечает, и я уверен были и другие. Я все предыдущие треды не осилил прочитать.

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

Про многоязычность

А вот про это напишу отдельно. Ибо тема интересная.

Да и вообще - Метапрог, скорее всего, первая среда программирования, поддерживающая многоязычность. Где еще такое видано?

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

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

Теоретически это может работать в ОЧЕНЬ БОЛЬШОМ проекте с большим многонациональным сообществом трёх уровней. Есть «основной» разработчик, владеющий «основным» языком. Есть «переводящие» разработчики, которые переводят все имена на другие языки и с других языков обратно на основной (это самые замученные участники команды, на них ложится основная тяжесть работы над тем, чтобы результат всего этого не выглядел как говно). И есть просто разработчики, которые не знают «основного языка», но умеют программировать (для скептиков — это я сейчас представляю некую идеальную ситуацию, не как сейчас).

У меня есть сомнения, что даже при обозначенных условиях эта цепочка будет работать (хотя ты можешь попробовать опровернуть это делом, если опровергнешь — будет революция). А во всех остальных случаях она просто не нужна. В международном проекте разработчики обычно знают английский язык, в заведомо местном (какая-нибудь заказуха) можно ограничиться либо местным (эту нишу окучивает 1С, опенсорсных НЕучебных аналогов не знаю, увы), либо опять-таки английским.

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

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

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

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

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

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

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

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

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

Еще хоббит очень качественно и корректно отвечает, и я уверен были и другие.

Были, почти все. Я в начале тоже пытался, но быстро был послан мыть полы.

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

При личном, живом общении, было бы конечно намного проще. Но я на Украину не поеду (Вам проще). Поробуйте орагнизовать с ним встречу, но я сразу предупреждаю - это большая ответственность. Если он Вам поверит а Вы потом не асилите будет очень некрасиво… у меня такой опыт был;-(

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

Вкратце - как этим пользваться?

Если тебе совсем «вкратце», то нашёл открытую книгу:

https://www.gitbook.com/download/pdf/book/dautov2/openmp-book

  1. Она под лицензией Apache License 2.0, не нужно пиратить

  2. Она всего 82 страницы(притом там есть картинки, текста ещё меньше, чем 82 страницы)

  3. Она на русском.

Серьёзно, идеальный вариант для начала освоения OpenMP.

На форумах ты получишь лишь такие советы +-:

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

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

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

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

Для начала ТС стоит знать

Вы злой и жестокий человек, редиска можно сказать!

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

Но есть нюанс - коллективный разум ЛОРа этого хочет, а вот ТС не хочет, у него и так все хорошо.

Я на Лабвью прекрасно делаю огромные проекты.

Мне лень гуглить. Я прекрасно программирую на Лабвью и Метапроге, не зная что такое «консистенция».

Императивный, декларативный, функциональный. Lingua Latina non penis canina. Да-да, я прекрасно программирую на Лабвью, не зная значения всех этих заумных словес.

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

Ребят @AntonI @provaton @everyone хватит хоронить коня, то есть меня :) Я так, то почитываю, просто комментировать пока по сути нечего, когда ТС будет замечен в попытках учиться и если я буду способен ему что-то сказать по поводу этих попыток я обязательно подскажу, а против его естества бунтаря вдалбливать в него знания мне чето-то как-то «подустало», пущай сам барахтается до осознания очевидных проблем.

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

Прочитать книгу

Эх, было б у меня больше времени и желания на это дело... Вот в Лабвью я кликнул право мыши по циклу, configure iterational parallelism. Чуть поэкспериментировал - и к гадалке не ходи. Да, есть кейсы когда параллелизация только замедляет все - в генерации 100000 строк так и было. Но в цикле поиска подстрок все ускорилось в разы.

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

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

все нормальные (сделанные прямыми руками) реализации этого «бенчмарка» на ЯП типа С/C++, фортран, паскаль и пр. будут примерно одинаково быстрыми, и ассемблер даст такую же скорость.

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

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

Джава скорее всего отстанет в разы (но это неточно).

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

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

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

Список возможных багов при работе с памятью огромен

Ну попробуй приведи хоть часть. Вызод за границы массива невозможен, что еще?

Я вам описал вполне конкретные ситуации, куда уж конкретнее?

Конкретная диаграмма конкретной программы.

у вас самого простейшая программа на десяток логических действий течет как водосточная труба

Что где течет? И откуда уверенность что именно моя программа, а не библиотеки? Тут утечки есть? Метапрог-прототип, версия 7 + графические диалоги на Метапроге (комментарий)

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

Утечки устраняются, фундаментальная ограниченность скриптухи - нет.

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

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

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

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

Мне б готовые ответы сразу.

Для начала Вам надо усвоить три простых аксиомы:

  1. Если Вы что то не понимаете, это не значит это ненужно.

  2. Если Вы чего то не знаете, это не значит что этого нет.

  3. Если Вы слышите что то неприятное о себе/своем коде, это не значит что это априори неверно (аналогично, приятное не значит что это априори верно).

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

Вам вот неплохую книгу @fsb4000 посоветовал по OpenMP, читается за пару часов - Вы на ЛОРе больше профлеймите по этому поводу… Эх.

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

А может лучше, всё-таки, начать с обычных тредов? Правда ты наверняка захочешь использовать POSIX Threads, только вот оно не очень переносимо

На самом деле,я тоже так думал. Каковы альтернативы pthreads?

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

В ранних темах писал. Если вкратце - скорость хуже, низкоуровневости нет, ядро и дрова на плюсах не сделаешь (по крайней мере под х86), сложности с ООП, которое я даже на Лабвью не использую (хотя там есть ООП с классами).

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

Как раз таки генерация кучи несвязанных строк легко паралелится.

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

Без 4го пункта (замера производительности) они не имеют смысла. И второй пункт не является универсальным решением.

Распараллеливание это сложно, и тут общих простых решений увы нет.

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

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

Некогда. Я даже прототип Метапрога на хорошо знакомом мне Лабвью разрабатываю крайне медленно, и дело в недостатке не знаний, а времени.

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

На винде фурычат? Можно будет компилять сорцы использующие POSIX Threads и на линуксе, и на винде без изменений?

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

фундаментальная ограниченность скриптухи - нет.

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

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