Настройки компилятора -- пользователю

 

Тоже наболело.

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

Собственно темы для обсуждения:

___________________

Во-первых про директиву препроцессора #ifdef

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

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

После отладки это в принципе нафиг не нужно и по сути вкупе может конкретно замедлять работу кода.

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

Но конструкцией #ifdef это делается гораздо симпатичнее и эффективнее.

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

____________________

Тема №2 для обсуждения еще более актуальна. Это оптимизация кода.

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

Особенно дело касается функций, которые инлайнятся. Они не попадают в стек и никак не реагируют (ессно) на брейкпойнты.

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

____________________

Тема №3 -- библиотеки.

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

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

____________________

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

Документация по MQL5: Основы языка / Препроцессор
Документация по MQL5: Основы языка / Препроцессор
  • www.mql5.com
Основы языка / Препроцессор - Документация по MQL5
 
1. Над Ifdef и assert будем думать, похоже, что время пришло

2. Разумно. Постараемся реализовать, отключив большую часть оптимизаций.

3. Пока решения нет
 
Renat:
1. Над Ifdef и assert будем думать, похоже, что время пришло

2. Разумно. Постараемся реализовать, отключив большую часть оптимизаций.

Хорошие новости.  Очень хорошие.

--

Ещё хочется узнать как продвигаются дела с шаблонами (templates).   Сильно жду. 

Если процесс застрял, может быть пока реализовать разрешения (на уровне директивы компилятора) для повторной компиляции инклудников? (см. https://www.mql5.com/ru/forum/1111/page720#comment_178716)


 
Шаблонирование функций сделали, а полное будет позже.
 
Да, это действительно хорошие новости. Это мега :)
 
Renat:
Шаблонирование функций сделали, ........

Не нашёл в  "Списках изменений...".   Ещё не выпущено?

Renat:

..........., а полное будет позже.

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


 
MetaDriver:
Не нашёл в  "Списках изменений...".   Ещё не выпущено?
еще нет.