need help with internal compile error

 

Hi everybody,


I saw this question here once but can't really make anything from the answers, so here it goes:

I'm working on a project, compiling it succesfully over and over again as I work on it. I suddenly get the message "Internal compile error" with no additional info.

In the documentation I may have found something, compile error #134 (only because the word internal is included) Compilation Errors - Codes of Errors and Warnings - Constants, Enumerations and Structures - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5. But I have no idea if this is what I'm looking for, since the compiler doesn't give me more than that.

Since I worked on it and it compiled successfully there was an update to build 2994 and I leaned to blaming the update, but didn't find anybody else complaining about it.

Also very interesting:

Using F7 to compile gives me that error, using F5 runs the code smoothly and takes changes to the code.

Can anybody please help me understand this error message?


Thank you guys,

0zuhan

Documentation on MQL5: Constants, Enumerations and Structures / Codes of Errors and Warnings / Compilation Errors
Documentation on MQL5: Constants, Enumerations and Structures / Codes of Errors and Warnings / Compilation Errors
  • www.mql5.com
Compilation Errors - Codes of Errors and Warnings - Constants, Enumerations and Structures - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5
 
0zuhan:

Hi everybody,


I saw this question here once but can't really make anything from the answers, so here it goes:

I'm working on a project, compiling it succesfully over and over again as I work on it. I suddenly get the message "Internal compile error" with no additional info.

In the documentation I may have found something, compile error #134 (only because the word internal is included) Compilation Errors - Codes of Errors and Warnings - Constants, Enumerations and Structures - MQL5 Reference - Reference on algorithmic/automated trading language for MetaTrader 5. But I have no idea if this is what I'm looking for, since the compiler doesn't give me more than that.

Since I worked on it and it compiled successfully there was an update to build 2994 and I leaned to blaming the update, but didn't find anybody else complaining about it.

Also very interesting:

Using F7 to compile gives me that error, using F5 runs the code smoothly and takes changes to the code.

Can anybody please help me understand this error message?


Thank you guys,

0zuhan

Build 2994 is a beta. You should downgrade to 2981 which is the last release.

 

Thank you so much, I'll try that. Also, following the #134 error anyway opens up new things to learn for me :-D


Have a nice evening and best regards,

0zuhan

 

Hi Everyone,

I have the same problem with build 2994 which is no longer in beta (I only update to the latest release version). The compiler reports 'internal compiler error' with no error code

I've tried recompiling a lot of other systems, many of which fail with this same internal compiler error. I put together a very simple test system with a single instance of a simple class and this also produced the same error. Something is seriously broken.

I've gone back to an earlier release in order to keep working on my system, but would appreciate this bug being squashed sooner rather than later.

Thanks

Paul

 
Paul Anderson: I have the same problem with build 2994 which is no longer in beta (I only update to the latest release version). The compiler reports 'internal compiler error' with no error code

I've tried recompiling a lot of other systems, many of which fail with this same internal compiler error. I put together a very simple test system with a single instance of a simple class and this also produced the same error. Something is seriously broken. I've gone back to an earlier release in order to keep working on my system, but would appreciate this bug being squashed sooner rather than later.

2994 is beta! Stop kidding yourself. Don't connect to MetaQuotes Demo Servers if you don't want to be updated to beta versions.

Forum on trading, automated trading systems and testing trading strategies

need help with internal compile error

Alain Verleyen, 2021.07.11 19:48

Build 2994 is a beta. You should downgrade to 2981 which is the last release.


 
Fernando Carreiro:

2994 is beta! Stop kidding yourself. Don't connect to MetaQuotes Demo Servers if you don't want to be updated to beta versions.


Thanks for that Fernando, I didn't realise you always got the beta version if you connected to the Metaquotes servers. 

For anyone interested, I've pinned down what the cause of the issue. Metaquotes seem to have depreciated the creation of an indicator with universal parameters. ie; 

CiRSI rsi;

//--- This works
rsi.Create(_Symbol,_Period,14,PRICE_CLOSE);

//--- This does not
MqlParam params params[2];
params[0].type = TYPE_INT;
params[0].integerValue = 14;
params[1].type = TYPE_INT;
params[1].integerValue = PRICE_CLOSE;

rsi.Create(_Symbol,_Period,IND_RSI,ArraySize(params),params);

I have a class for flexibly handling parameters for initialising indicators in which the indicator is created like this:

// Initialise the sensor:
// paramGroups is an associative array of parameter lists
// paramList is a class for creating and accessing arrays of MqlParam
// CREATE_INDICATOR is a macro:
// #define  CREATE_INDICATOR(myInd,symbol,period,indType,params) \
//    myInd.CIndicator::Create(symbol,period,indType,params.ParamCount(),params.Params().p)
//---
bool CRsiSensor::Init(CParamGroups *paramGroups)
  {
   CParamList *params = paramGroups.GetList("Rsi");
   if(!CREATE_INDICATOR(i_rsi,m_symbol,m_period,IND_RSI,params))
     {
      PrintFormat("%s : Failed to init Rsi indicator for (%s,%s)",
                  __FUNCSIG__,m_symbol,EnumToString(m_period));
      return(false);
     }
   i_rsi.RefreshCurrent(true);

   return(true);
  }

This has proved to be a very useful generalised approach for initialising expert modules that use indicators. Unfortunately the compiler now fails to compiler this, doesn't report the cause of the error but just stops with 'internal compiler error'

Hopefully they will reconsider their decision to depreciate the creation of an indicator with universal parameters.

Paul