Новая версия платформы MetaTrader 5 build 4410: улучшения в работе - страница 17

 
Alain Verleyen #:
Включает ли это улучшения самого языка MQL5? Новые функции, такие как ссылочная переменная, например, или любые из многочисленных возможных улучшений по сравнению с C++...

Улучшения языка как раз с новым компилятором будут.

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

 
Renat Fatkhullin #:

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

Проблема с ABI(бинарный интерфейс связывания библиотек) и несовместимостью набора используемых регистров.

Чтобы сделать рывок вперед, мы решили отказаться от совместимостью со старыми ex5 библиотеками. Их достаточно пересобрать.

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

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

ЗЫ. Давным-давно напрашивается сделать в компиляторе MQL5 ключи с билдами (этапами развития) языка, по аналогии с тем, как компилятор C++ поддерживает компиляцию исходников по куче стандартов, на выбор.

 

это только у меня такой глюк, или на сайте что-то поменялось и вся "личка" и её история стёрта ?

PS/ "заработало" :-) это видимо был каматозный выход из бана...всё включается постепенно

 
Stanislav Korotky #:

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

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

ЗЫ. Давным-давно напрашивается сделать в компиляторе MQL5 ключи с билдами (этапами развития) языка, по аналогии с тем, как компилятор C++ поддерживает компиляцию исходников по куче стандартов, на выбор.

А разве в маркете распространяются ex5 библиотеки?

Речь ведь только о потере совместимости EX5 библиотек, а не о потере совместимости EX5 программ и терминалов.

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

 
Ivan Titov #:

Как такое возможно в отладке?

Билд 4468

Косяк в отладке остается. Билд 4473.

Приходится вставлять такие костыли:

int le = _LastError;
 
Ivan Titov #:

Косяк в отладке остается. Билд 4473.

Приходится вставлять такие костыли:

Это временные упущения при переключении на новый компилятор.

Исправим.

 

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

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

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

 

Прошу разработчиков подсказать, это нормально что с векторами и матрицами не работает многочисленное присваивание?

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
// 1) vector
   vector vc1, vc2, vc3;
   vc1 = vector::Full(5, 1.5);
   vc3 = vc2 = vc1;
// print
   ::Print("-- Test vectors --");
   ::Print("vc1 = ", vc1);
   ::Print("");
   ::Print("vc2 = ", vc2);
   ::Print("");
   ::Print("vc3 = ", vc3);
// 2) matrix
   matrix mx1, mx2, mx3;
   mx1 = matrix::Full(4, 2, 1.5);
   mx3 = mx2 = mx1;
// print
   ::Print("\n-- Test matrices --");
   ::Print("mx1 = \n", mx1);
   ::Print("");
   ::Print("mx2 = \n", mx2);
   ::Print("");
   ::Print("mx3 = \n", mx3);
  }
//+------------------------------------------------------------------+

В журнале:

test_mx_vc_multiple_assignment (EURUSD,M5)      -- Test vectors --
test_mx_vc_multiple_assignment (EURUSD,M5)      vc1 = [1.5,1.5,1.5,1.5,1.5]
test_mx_vc_multiple_assignment (EURUSD,M5)      
test_mx_vc_multiple_assignment (EURUSD,M5)      vc2 = [1.5,1.5,1.5,1.5,1.5]
test_mx_vc_multiple_assignment (EURUSD,M5)      
test_mx_vc_multiple_assignment (EURUSD,M5)      vc3 = []
test_mx_vc_multiple_assignment (EURUSD,M5)      
test_mx_vc_multiple_assignment (EURUSD,M5)      -- Test matrices --
test_mx_vc_multiple_assignment (EURUSD,M5)      mx1 = 
test_mx_vc_multiple_assignment (EURUSD,M5)      [[1.5,1.5]
test_mx_vc_multiple_assignment (EURUSD,M5)       [1.5,1.5]
test_mx_vc_multiple_assignment (EURUSD,M5)       [1.5,1.5]
test_mx_vc_multiple_assignment (EURUSD,M5)       [1.5,1.5]]
test_mx_vc_multiple_assignment (EURUSD,M5)      
test_mx_vc_multiple_assignment (EURUSD,M5)      mx2 = 
test_mx_vc_multiple_assignment (EURUSD,M5)      [[1.5,1.5]
test_mx_vc_multiple_assignment (EURUSD,M5)       [1.5,1.5]
test_mx_vc_multiple_assignment (EURUSD,M5)       [1.5,1.5]
test_mx_vc_multiple_assignment (EURUSD,M5)       [1.5,1.5]]
test_mx_vc_multiple_assignment (EURUSD,M5)      
test_mx_vc_multiple_assignment (EURUSD,M5)      mx3 = 
test_mx_vc_multiple_assignment (EURUSD,M5)      []
 
Denis Kirichenko #:

Прошу разработчиков подсказать, это нормально что с векторами и матрицами не работает многочисленное присваивание?

В журнале:

Похоже на ошибку оптимизатора. Будем исправлять.

В дебаг режиме нормально отрабатывает?

 
Renat Fatkhullin #:

А разве в маркете распространяются ex5 библиотеки?

Речь ведь только о потере совместимости EX5 библиотек, а не о потере совместимости EX5 программ и терминалов.

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

Вы что-то путаете.

Разумеется, в маркете продаются ex5-библиотеки как публичные продукты со своими экосистемами. Тут и возникает критическая ситуация. Иначе вопрос не возник бы.