New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed when debugging #11

Closed
MartinSher opened this Issue Nov 3, 2016 · 26 comments

Comments

Projects
None yet
2 participants
@MartinSher

MartinSher commented Nov 3, 2016

Hi

I am finding your parser very useful. However, I find that when you run the .Net dll in Visual Studio it is very slow to parse a long expression when running under the debugger F5 vs running without debugger Cntrl - F5.

For example
Expression e = new Expression("VRI * (1 - MP_MatDed) * ((1 + Inv_Ret) ^ (MP_Durn - t)) / ((1 + Disc_Ret) ^ (MP_Durn - t)) - FCF");

As I am parsing lots of expressions (effectively I am allowing users to enter expressions to process) the slow speed effectively makes debugging impossible.

The actual processing without debugger is fine.

Can seethe difference if create unit test and Run vs Debug Test.

Can anything be done to improve the speed under the debugger?

Thanks
Martin

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 3, 2016

Owner

Do you have any ideas what can cause this? The code was orignally written in java then directly ported to .net.

Owner

mariuszgromada commented Nov 3, 2016

Do you have any ideas what can cause this? The code was orignally written in java then directly ported to .net.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 3, 2016

Owner

And just to get the feedback - what parts of API you find most useful?

Owner

mariuszgromada commented Nov 3, 2016

And just to get the feedback - what parts of API you find most useful?

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 3, 2016

Owner

I am wondering where the speed difference occur. Can you measure and give the info

  1. e.calculate() + e.getComputingTime()
  2. e.checkSyntax() + e.getComputingTime(), then e.calculate() + e.getComputingTime()

both in run mode and in debug mode.

Best regards

Owner

mariuszgromada commented Nov 3, 2016

I am wondering where the speed difference occur. Can you measure and give the info

  1. e.calculate() + e.getComputingTime()
  2. e.checkSyntax() + e.getComputingTime(), then e.calculate() + e.getComputingTime()

both in run mode and in debug mode.

Best regards

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 3, 2016

No idea. Only thought if there is any #ifdebug type code that is, for
example, writing information to output traces.

But no real idea.
Martin

On Thursday, 3 November 2016, Mariusz Gromada notifications@github.com
wrote:

Do you have any ideas what can cause this? The code was orignally written
in java then directly ported to .net.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksPKAG_SDpY3LcQQT-f7Z4KvGIPRdks5q6cZpgaJpZM4KoC_y
.

Regards
Martin Sher

Tel: +44 20 8248 4340
Mobile: +44 7816 535 754

MartinSher commented Nov 3, 2016

No idea. Only thought if there is any #ifdebug type code that is, for
example, writing information to output traces.

But no real idea.
Martin

On Thursday, 3 November 2016, Mariusz Gromada notifications@github.com
wrote:

Do you have any ideas what can cause this? The code was orignally written
in java then directly ported to .net.


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksPKAG_SDpY3LcQQT-f7Z4KvGIPRdks5q6cZpgaJpZM4KoC_y
.

Regards
Martin Sher

Tel: +44 20 8248 4340
Mobile: +44 7816 535 754

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 3, 2016

I am experiencing it in the new Expression(expressionString) constructor.

Martin

On Thursday, 3 November 2016, Mariusz Gromada notifications@github.com
wrote:

I am wondering where the speed difference occur. Can you measure and give
the info

  1. e.calculate() + e.getComputingTime()
  2. e.checkSyntax() + e.getComputingTime(), then e.calculate() +
    e.getComputinTime()

both in run mode and in debug mode.

Best regards


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksAFp1g3TCJSd2PatGUOx2HZPq1w9ks5q6ch7gaJpZM4KoC_y
.

Regards
Martin Sher

Tel: +44 20 8248 4340
Mobile: +44 7816 535 754

MartinSher commented Nov 3, 2016

I am experiencing it in the new Expression(expressionString) constructor.

Martin

On Thursday, 3 November 2016, Mariusz Gromada notifications@github.com
wrote:

I am wondering where the speed difference occur. Can you measure and give
the info

  1. e.calculate() + e.getComputingTime()
  2. e.checkSyntax() + e.getComputingTime(), then e.calculate() +
    e.getComputinTime()

both in run mode and in debug mode.

Best regards


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksAFp1g3TCJSd2PatGUOx2HZPq1w9ks5q6ch7gaJpZM4KoC_y
.

Regards
Martin Sher

Tel: +44 20 8248 4340
Mobile: +44 7816 535 754

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 3, 2016

Owner

There are no "#ifdebug" statements in the code. Above you gave the example
Expression e = new Expression("VRI * (1 - MP_MatDed) * ((1 + Inv_Ret) ^ (MP_Durn - t)) / ((1 + Disc_Ret) ^ (MP_Durn - t)) - FCF");

What are you doing next? You invoke e.calculate()? I assume the parameters are user defined arguments (Argument class)? Or you have just plain without any reference in the constructor to list of object from Argument class and then looking for tokens by e.getCopyOfInitialTokens()?

Owner

mariuszgromada commented Nov 3, 2016

There are no "#ifdebug" statements in the code. Above you gave the example
Expression e = new Expression("VRI * (1 - MP_MatDed) * ((1 + Inv_Ret) ^ (MP_Durn - t)) / ((1 + Disc_Ret) ^ (MP_Durn - t)) - FCF");

What are you doing next? You invoke e.calculate()? I assume the parameters are user defined arguments (Argument class)? Or you have just plain without any reference in the constructor to list of object from Argument class and then looking for tokens by e.getCopyOfInitialTokens()?

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 3, 2016

Owner

If you do not reference the objects of Arguments class then the token types are unknown, but the parser needs to check if the tokens are known/unknown - so each tokens is verified against the complete list of parser tokens (only then it can be marked as unknown). Maybe this causes speed problems....

Owner

mariuszgromada commented Nov 3, 2016

If you do not reference the objects of Arguments class then the token types are unknown, but the parser needs to check if the tokens are known/unknown - so each tokens is verified against the complete list of parser tokens (only then it can be marked as unknown). Maybe this causes speed problems....

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 3, 2016

Possibly but there is a big difference in the speed when running under the
debugger and not. When not under the debugger the speed appears ok.

On Thursday, 3 November 2016, Mariusz Gromada notifications@github.com
wrote:

If you do not reference the objects of Arguments class then the token
types are unknown, but the parser needs to check if the tokens are
known/unknown - so each tokens is verified against the complete list of
parser tokens (only then it can be marked as unknown). Maybe this causes
speed problems....


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksMw7PNEp1Kh0BgxAMIRPWrIuSUlIks5q6iPVgaJpZM4KoC_y
.

Regards
Martin Sher

Tel: +44 20 8248 4340
Mobile: +44 7816 535 754

MartinSher commented Nov 3, 2016

Possibly but there is a big difference in the speed when running under the
debugger and not. When not under the debugger the speed appears ok.

On Thursday, 3 November 2016, Mariusz Gromada notifications@github.com
wrote:

If you do not reference the objects of Arguments class then the token
types are unknown, but the parser needs to check if the tokens are
known/unknown - so each tokens is verified against the complete list of
parser tokens (only then it can be marked as unknown). Maybe this causes
speed problems....


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksMw7PNEp1Kh0BgxAMIRPWrIuSUlIks5q6iPVgaJpZM4KoC_y
.

Regards
Martin Sher

Tel: +44 20 8248 4340
Mobile: +44 7816 535 754

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 3, 2016

Owner

Ok - we need to test and measure. Please run the code below first normal and then debug, please send the report.

using org.mariuszgromada.math.mxparser.regressiontesting;
RunTest.Start("perf");

It make take a while - depending on # of cores and CPU speed.

Regards

Owner

mariuszgromada commented Nov 3, 2016

Ok - we need to test and measure. Please run the code below first normal and then debug, please send the report.

using org.mariuszgromada.math.mxparser.regressiontesting;
RunTest.Start("perf");

It make take a while - depending on # of cores and CPU speed.

Regards

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 4, 2016

Owner

Did you manage to run the above tests?

Owner

mariuszgromada commented Nov 4, 2016

Did you manage to run the above tests?

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 4, 2016

Sorry not yet

Regards
Martin Sher

T: +44 20 8374 0255
M: +44 7816 535 754

On 4 Nov 2016 09:39, "Mariusz Gromada" notifications@github.com wrote:

Did you manage to run the above tests?


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksAFoPCwpAuFDoV1opz1Yt86zLD09ks5q6v1cgaJpZM4KoC_y
.

MartinSher commented Nov 4, 2016

Sorry not yet

Regards
Martin Sher

T: +44 20 8374 0255
M: +44 7816 535 754

On 4 Nov 2016 09:39, "Mariusz Gromada" notifications@github.com wrote:

Did you manage to run the above tests?


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksAFoPCwpAuFDoV1opz1Yt86zLD09ks5q6v1cgaJpZM4KoC_y
.

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 4, 2016

At them moment it is the ability to parse the expressiong, get the
possible argument list (via the tokens), add the arguments to the
expression and then calculated.

Regards
Martin Sher

M: +44 7816 535 754

On 03/11/2016 11:34, Mariusz Gromada wrote:

And just to get the feedback - what parts of API you find most useful?


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksEXTFFensBPkxsr5_y1MdpwLo3Kcks5q6ca7gaJpZM4KoC_y.

MartinSher commented Nov 4, 2016

At them moment it is the ability to parse the expressiong, get the
possible argument list (via the tokens), add the arguments to the
expression and then calculated.

Regards
Martin Sher

M: +44 7816 535 754

On 03/11/2016 11:34, Mariusz Gromada wrote:

And just to get the feedback - what parts of API you find most useful?


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksEXTFFensBPkxsr5_y1MdpwLo3Kcks5q6ca7gaJpZM4KoC_y.

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 4, 2016

Hi

With

Expression e = new Expression("1000 * (1 - 0.05) * ((1 + 0.08) ^ (6 -
1)) / ((1 + 0.08) ^ (6 - 1)) - 200");

var tokens = e.getCopyOfInitialTokens();

var result = e.calculate() + e.getComputingTime(); ;

I can see that

  1. the time for the constructor is similar. So not a problem there
  2. The time for the getCopyOfInitialTokens() is very different for
    debug vs non-debug
  3. The time for calulate() is very different
    • Non-debug - 0.043
    • Debug - 4.226

Simialr effect if

Expression e = new Expression("VRI * (1 - MP_MatDed) * ((1 + Inv_Ret) ^
(MP_Durn - t)) / ((1 + Disc_Ret) ^ (MP_Durn - t)) - FCF");

Does not appear to be much difference with arguments and without.

Hopefully this helps

Regards
Martin Sher

M: +44 7816 535 754

On 03/11/2016 11:41, Mariusz Gromada wrote:

I am wondering where the speed difference occur. Can you measure and
give the info

  1. e.calculate() + e.getComputingTime()
  2. e.checkSyntax() + e.getComputingTime(), then e.calculate() +
    e.getComputinTime()

both in run mode and in debug mode.

Best regards


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksAFp1g3TCJSd2PatGUOx2HZPq1w9ks5q6ch7gaJpZM4KoC_y.

MartinSher commented Nov 4, 2016

Hi

With

Expression e = new Expression("1000 * (1 - 0.05) * ((1 + 0.08) ^ (6 -
1)) / ((1 + 0.08) ^ (6 - 1)) - 200");

var tokens = e.getCopyOfInitialTokens();

var result = e.calculate() + e.getComputingTime(); ;

I can see that

  1. the time for the constructor is similar. So not a problem there
  2. The time for the getCopyOfInitialTokens() is very different for
    debug vs non-debug
  3. The time for calulate() is very different
    • Non-debug - 0.043
    • Debug - 4.226

Simialr effect if

Expression e = new Expression("VRI * (1 - MP_MatDed) * ((1 + Inv_Ret) ^
(MP_Durn - t)) / ((1 + Disc_Ret) ^ (MP_Durn - t)) - FCF");

Does not appear to be much difference with arguments and without.

Hopefully this helps

Regards
Martin Sher

M: +44 7816 535 754

On 03/11/2016 11:41, Mariusz Gromada wrote:

I am wondering where the speed difference occur. Can you measure and
give the info

  1. e.calculate() + e.getComputingTime()
  2. e.checkSyntax() + e.getComputingTime(), then e.calculate() +
    e.getComputinTime()

both in run mode and in debug mode.

Best regards


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksAFp1g3TCJSd2PatGUOx2HZPq1w9ks5q6ch7gaJpZM4KoC_y.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 4, 2016

Owner

Very strange, I will test it on my computer and let you know.

Owner

mariuszgromada commented Nov 4, 2016

Very strange, I will test it on my computer and let you know.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 4, 2016

Owner

Expression e = new Expression("1000 * (1 - 0.05) * ((1 + 0.08) ^ (6 -1)) / ((1 + 0.08) ^ (6 - 1)) - 200");
double result = e.calculate();
mXparser.consolePrintln(result + " " + e.getComputingTime());

No debug: 0,062 s
Debug: 0,118 s

Which .Net version are you targeting? Which dll are you using?

Owner

mariuszgromada commented Nov 4, 2016

Expression e = new Expression("1000 * (1 - 0.05) * ((1 + 0.08) ^ (6 -1)) / ((1 + 0.08) ^ (6 - 1)) - 200");
double result = e.calculate();
mXparser.consolePrintln(result + " " + e.getComputingTime());

No debug: 0,062 s
Debug: 0,118 s

Which .Net version are you targeting? Which dll are you using?

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 5, 2016

Strange. I am running under VS 2015 using .Net 4.6.1 using I believe the
latest dll which I downloaded from your site.

Can you send me you test project. email: martin.sherstein@gmail.com

Regards
Martin Sher

M: +44 7816 535 754

On 04/11/2016 21:03, Mariusz Gromada wrote:

Expression e = new Expression("1000 * (1 - 0.05) * ((1 + 0.08) ^ (6
-1)) / ((1 + 0.08) ^ (6 - 1)) - 200");
double result = e.calculate();
mXparser.consolePrintln(result + " " + e.getComputingTime());

No debug: 0,062 s
Debug: 0,118 s

Which .Net version are you targeting? Which dll are you using?


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksAC0RQdrfgxFZGonyzxLPZjrePl9ks5q652fgaJpZM4KoC_y.

MartinSher commented Nov 5, 2016

Strange. I am running under VS 2015 using .Net 4.6.1 using I believe the
latest dll which I downloaded from your site.

Can you send me you test project. email: martin.sherstein@gmail.com

Regards
Martin Sher

M: +44 7816 535 754

On 04/11/2016 21:03, Mariusz Gromada wrote:

Expression e = new Expression("1000 * (1 - 0.05) * ((1 + 0.08) ^ (6
-1)) / ((1 + 0.08) ^ (6 - 1)) - 200");
double result = e.calculate();
mXparser.consolePrintln(result + " " + e.getComputingTime());

No debug: 0,062 s
Debug: 0,118 s

Which .Net version are you targeting? Which dll are you using?


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksAC0RQdrfgxFZGonyzxLPZjrePl9ks5q652fgaJpZM4KoC_y.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 6, 2016

Owner

You should have it on your email.

Owner

mariuszgromada commented Nov 6, 2016

You should have it on your email.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 6, 2016

Owner

I manage to replicate the problem. It seems to be independent form source code, rather from configuration of VS / OS.
SpeedWhenDebugging-Issue11-test-project.zip
1st computer - nodebug
1st computer - debug
2nd computer - nodebug
2nd computer - debug

Owner

mariuszgromada commented Nov 6, 2016

I manage to replicate the problem. It seems to be independent form source code, rather from configuration of VS / OS.
SpeedWhenDebugging-Issue11-test-project.zip
1st computer - nodebug
1st computer - debug
2nd computer - nodebug
2nd computer - debug

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 6, 2016

Hi Mariusz

Good that you could replicate the problem. Not sure though from the
email below if/how to overcome the problem. I still seem to have the
problem with the project in the email below.

What do I need to do?

Regards
Martin Sher

M: +44 7816 535 754

On 06/11/2016 11:49, Mariusz Gromada wrote:

I manage to replicate the problem. It seems to be independent form
source code, rather from configuration of VS / OS.
SpeedWhenDebugging-Issue11-test-project.zip
https://github.com/mariuszgromada/MathParser.org-mXparser/files/573787/SpeedWhenDebugging-Issue11-test-project.zip
1st computer - nodebug
https://cloud.githubusercontent.com/assets/16277367/20037434/5f636f22-a41f-11e6-9afd-68061c1a3616.png
1st computer - debug
https://cloud.githubusercontent.com/assets/16277367/20037436/6417b15e-a41f-11e6-9534-97e1d0d49794.png
2nd computer - nodebug
https://cloud.githubusercontent.com/assets/16277367/20037437/69c0ad22-a41f-11e6-99c5-58beb2440df0.png
2nd computer - debug
https://cloud.githubusercontent.com/assets/16277367/20037438/6ddf1ccc-a41f-11e6-8431-16cff2dceeef.png


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksA6GAaDCGJIZH8fNz8keDwdf2Qmtks5q7b7QgaJpZM4KoC_y.

MartinSher commented Nov 6, 2016

Hi Mariusz

Good that you could replicate the problem. Not sure though from the
email below if/how to overcome the problem. I still seem to have the
problem with the project in the email below.

What do I need to do?

Regards
Martin Sher

M: +44 7816 535 754

On 06/11/2016 11:49, Mariusz Gromada wrote:

I manage to replicate the problem. It seems to be independent form
source code, rather from configuration of VS / OS.
SpeedWhenDebugging-Issue11-test-project.zip
https://github.com/mariuszgromada/MathParser.org-mXparser/files/573787/SpeedWhenDebugging-Issue11-test-project.zip
1st computer - nodebug
https://cloud.githubusercontent.com/assets/16277367/20037434/5f636f22-a41f-11e6-9afd-68061c1a3616.png
1st computer - debug
https://cloud.githubusercontent.com/assets/16277367/20037436/6417b15e-a41f-11e6-9534-97e1d0d49794.png
2nd computer - nodebug
https://cloud.githubusercontent.com/assets/16277367/20037437/69c0ad22-a41f-11e6-99c5-58beb2440df0.png
2nd computer - debug
https://cloud.githubusercontent.com/assets/16277367/20037438/6ddf1ccc-a41f-11e6-8431-16cff2dceeef.png


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksA6GAaDCGJIZH8fNz8keDwdf2Qmtks5q7b7QgaJpZM4KoC_y.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 6, 2016

Owner

I do not know... This seems to be VS issue... There are lot of info in google, I will read more. VS-s on both my PCs have the same configuration, but the result are extremely different...

Owner

mariuszgromada commented Nov 6, 2016

I do not know... This seems to be VS issue... There are lot of info in google, I will read more. VS-s on both my PCs have the same configuration, but the result are extremely different...

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 6, 2016

Owner

I think I have a clue:

https://blogs.msdn.microsoft.com/visualstudioalm/2015/02/23/performance-improvement-when-debugging-net-code-with-visual-studio-2015/

I may have significant number of properly handled exceptions (planned) - this is to verify if the form of the number in text is proper - I will think how to change this. It seems that since .NET 4.6 and VS 2015 MS improved this problem o slowing debugging performance by thrown and handled exceptions.

Owner

mariuszgromada commented Nov 6, 2016

I think I have a clue:

https://blogs.msdn.microsoft.com/visualstudioalm/2015/02/23/performance-improvement-when-debugging-net-code-with-visual-studio-2015/

I may have significant number of properly handled exceptions (planned) - this is to verify if the form of the number in text is proper - I will think how to change this. It seems that since .NET 4.6 and VS 2015 MS improved this problem o slowing debugging performance by thrown and handled exceptions.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 6, 2016

Owner

Martin,

Check this one - "Just My Code" in debugger options - should help :-) Please let me know!

Best regards

Owner

mariuszgromada commented Nov 6, 2016

Martin,

Check this one - "Just My Code" in debugger options - should help :-) Please let me know!

Best regards

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 6, 2016

Owner

I will change this issue related to exceptions in source code not ot have this kind of problems any more.

Owner

mariuszgromada commented Nov 6, 2016

I will change this issue related to exceptions in source code not ot have this kind of problems any more.

@MartinSher

This comment has been minimized.

Show comment
Hide comment
@MartinSher

MartinSher Nov 6, 2016

This makes a big difference. Thanks

Regards
Martin Sher

M: +44 7816 535 754

On 06/11/2016 20:02, Mariusz Gromada wrote:

Martin,

Check this one - "Just My Code" i debugger options - should help :-)
Please let me know!

debugger-just-my-code
https://cloud.githubusercontent.com/assets/16277367/20041085/40f0d4f4-a464-11e6-8c74-d227b2cc4abd.PNG

Best regards


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksP9iXVeQiM8QBa2t95uS9U5Vchu8ks5q7jJQgaJpZM4KoC_y.

MartinSher commented Nov 6, 2016

This makes a big difference. Thanks

Regards
Martin Sher

M: +44 7816 535 754

On 06/11/2016 20:02, Mariusz Gromada wrote:

Martin,

Check this one - "Just My Code" i debugger options - should help :-)
Please let me know!

debugger-just-my-code
https://cloud.githubusercontent.com/assets/16277367/20041085/40f0d4f4-a464-11e6-8c74-d227b2cc4abd.PNG

Best regards


You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
#11 (comment),
or mute the thread
https://github.com/notifications/unsubscribe-auth/AQpksP9iXVeQiM8QBa2t95uS9U5Vchu8ks5q7jJQgaJpZM4KoC_y.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada

mariuszgromada Nov 6, 2016

Owner

I am glad I could help. Still - this will be re-implemented.

Owner

mariuszgromada commented Nov 6, 2016

I am glad I could help. Still - this will be re-implemented.

@mariuszgromada

This comment has been minimized.

Show comment
Hide comment
@mariuszgromada
Owner

mariuszgromada commented Feb 13, 2017

Fixed in #14

mariuszgromada added a commit that referenced this issue Mar 15, 2017

mariuszgromada added a commit that referenced this issue Mar 26, 2017

v.4.0: Major update - release
v.4.0.0 (2017-03-27): Major update
- Bitwise Operators
- Numbers in scientific notation
- Units, Physical & Astronomical Constants,
- Equations solving via finding function root
- Better tokens handling
- Function Extensions - possibility of using your own implementation
- Bugs fixed

* Bitwise Operators

- @~   Bitwise unary complement
- @&   Bitwise AND
- @^   Bitwise exclusive OR
- @|   Bitwise inclusive OR
- @<<  Signed left shift
- @>>  Signed right shift

* Numbers in scientific notation

- 1.2e10
- 1.2e-10
- 1.2e+10
- 1.2E10
- 1.2E-10
- 1.2E+10
- ...

* Units

- [%]   <Ratio, Fraction> Percentage = 0.01
- [%%]   <Ratio, Fraction> Promil, Per mille = 0.001
- [Y]   <Metric prefix> Septillion / Yotta = 10^24
- [sept]  <Metric prefix> Septillion / Yotta = 10^24
- [Z]   <Metric prefix> Sextillion / Zetta = 10^21
- [sext]  <Metric prefix> Sextillion / Zetta = 10^21
- [E]   <Metric prefix> Quintillion / Exa = 10^18
- [quint]  <Metric prefix> Quintillion / Exa = 10^18
- [P]   <Metric prefix> Quadrillion / Peta = 10^15
- [quad]  <Metric prefix> Quadrillion / Peta = 10^15
- [T]   <Metric prefix> Trillion / Tera = 10^12
- [tril]  <Metric prefix> Trillion / Tera = 10^12
- [G]   <Metric prefix> Billion / Giga = 10^9
- [bil]   <Metric prefix> Billion / Giga = 10^9
- [M]   <Metric prefix> Million / Mega = 10^6
- [mil]   <Metric prefix> Million / Mega = 10^6
- [k]   <Metric prefix> Thousand / Kilo = 10^3
- [th]   <Metric prefix> Thousand / Kilo = 10^3
- [hecto]  <Metric prefix> Hundred / Hecto = 10^2
- [hund]  <Metric prefix> Hundred / Hecto = 10^2
- [deca]  <Metric prefix> Ten / Deca = 10
- [ten]   <Metric prefix> Ten / Deca = 10
- [deci]  <Metric prefix> Tenth / Deci = 0.1
- [centi]  <Metric prefix> Hundredth / Centi = 0.01
- [milli]  <Metric prefix> Thousandth / Milli = 0.001
- [mic]   <Metric prefix> Millionth / Micro = 10^-6
- [n]   <Metric prefix> Billionth / Nano = 10^-9
- [p]   <Metric prefix> Trillionth / Pico = 10^-12
- [f]   <Metric prefix> Quadrillionth / Femto = 10^-15
- [a]   <Metric prefix> Quintillionth / Atoo = 10^-18
- [z]   <Metric prefix> Sextillionth / Zepto = 10^-21
- [y]   <Metric prefix> Septillionth / Yocto = 10^-24
- [m]   <Unit of length> Metre / Meter (m=1)
- [km]   <Unit of length> Kilometre / Kilometer (m=1)
- [cm]   <Unit of length> Centimetre / Centimeter (m=1)
- [mm]   <Unit of length> Millimetre / Millimeter (m=1)
- [inch]  <Unit of length> Inch (m=1)
- [yd]   <Unit of length> Yard (m=1)
- [ft]   <Unit of length> Feet (m=1)
- [mile]  <Unit of length> Mile (m=1)
- [nmi]   <Unit of length> Nautical mile (m=1)
- [m2]   <Unit of area> Square metre / Square meter (m=
- [cm2]   <Unit of area> Square centimetre / Square cent
- [mm2]   <Unit of area> Square millimetre / Square mill
- [are]   <Unit of area> Are (m=1)
- [ha]   <Unit of area> Hectare (m=1)
- [acre]  <Unit of area> Acre (m=1)
- [km2]   <Unit of area> Square kilometre / Square kilom
- [mm3]   <Unit of volume> Cubic millimetre / Cubic mill
- [cm3]   <Unit of volume> Cubic centimetre / Cubic cent
- [m3]   <Unit of volume> Cubic metre / Cubic meter (m=
- [km3]   <Unit of volume> Cubic kilometre / Cubic kilom
- [ml]   <Unit of volume> Millilitre / Milliliter (m=1)
- [l]   <Unit of volume> Litre / Liter (m=1)
- [gall]  <Unit of volume> Gallon (m=1)
- [pint]  <Unit of volume> Pint (m=1)
- [s]   <Unit of time> Second (s=1)
- [ms]   <Unit of time> Millisecond (s=1)
- [min]   <Unit of time> Minute (s=1)
- [h]   <Unit of time> Hour (s=1)
- [day]   <Unit of time> Day (s=1)
- [week]  <Unit of time> Week (s=1)
- [yearj]  <Unit of time> Julian year = 365.25 days (s=1)
- [kg]   <Unit of mass> Kilogram (kg=1)
- [gr]   <Unit of mass> Gram (kg=1)
- [mg]   <Unit of mass> Milligram (kg=1)
- [dag]   <Unit of mass> Decagram (kg=1)
- [t]   <Unit of mass> Tonne (kg=1)
- [oz]   <Unit of mass> Ounce (kg=1)
- [lb]   <Unit of mass> Pound (kg=1)
- [b]   <Unit of information> Bit (bit=1)
- [kb]   <Unit of information> Kilobit (bit=1)
- [Mb]   <Unit of information> Megabit (bit=1)
- [Gb]   <Unit of information> Gigabit (bit=1)
- [Tb]   <Unit of information> Terabit (bit=1)
- [Pb]   <Unit of information> Petabit (bit=1)
- [Eb]   <Unit of information> Exabit (bit=1)
- [Zb]   <Unit of information> Zettabit (bit=1)
- [Yb]   <Unit of information> Yottabit (bit=1)
- [B]   <Unit of information> Byte (bit=1)
- [kB]   <Unit of information> Kilobyte (bit=1)
- [MB]   <Unit of information> Megabyte (bit=1)
- [GB]   <Unit of information> Gigabyte (bit=1)
- [TB]   <Unit of information> Terabyte (bit=1)
- [PB]   <Unit of information> Petabyte (bit=1)
- [EB]   <Unit of information> Exabyte (bit=1)
- [ZB]   <Unit of information> Zettabyte (bit=1)
- [YB]   <Unit of information> Yottabyte (bit=1)
- [J]   <Unit of energy> Joule (m=1, kg=1, s=1)
- [eV]   <Unit of energy> Electronovolt (m=1, kg=1, s=1
- [keV]   <Unit of energy> Kiloelectronovolt (m=1, kg=1,
- [MeV]   <Unit of energy> Megaelectronovolt (m=1, kg=1,
- [GeV]   <Unit of energy> Gigaelectronovolt (m=1, kg=1,
- [TeV]   <Unit of energy> Teraelectronovolt (m=1, kg=1,
- [m/s]   <Unit of speed> Metre / Meter per second (m=1,
- [km/h]  <Unit of speed> Kilometre / Kilometer per hour
- [mi/h]  <Unit of speed> Mile per hour (m=1, s=1)
- [knot]  <Unit of speed> Knot (m=1, s=1)
- [m/s2]  <Unit of acceleration> Metre / Meter per squar
- [km/h2]  <Unit of acceleration> Kilometre / Kilometer p
- [mi/h2]  <Unit of acceleration> Mile per square hour (m
- [rad]   <Unit of angle> Radian (rad=1)
- [deg]   <Unit of angle> Degree of arc (rad=1)
- [']   <Unit of angle> Minute of arc (rad=1)
- ['']   <Unit of angle> Second of arc (rad=1)

* Physical Constants

- [c]  Light speed in vacuum [m/s] (m=1, s=1)
- [G.]  Gravitational constant (m=1, kg=1, s=1)]
- [g]  Gravitational acceleration on Earth [m/s^2] (m=1, s=1)
- [hP]  Planck constant (m=1, kg=1, s=1)
- [h-]  Reduced Planck constant / Dirac constant (m=1, kg=1, s=1)]
- [lP]  Planck length [m] (m=1)
- [mP]  Planck mass [kg] (kg=1)
- [tP]  Planck time [s] (s=1)

* Astronomical Constants

- [ly]    Light year [m] (m=1)
- [au]    Astronomical unit [m] (m=1)
- [pc]    Parsec [m] (m=1)
- [kpc]    Kiloparsec [m] (m=1)
- [Earth-R-eq]  Earth equatorial radius [m] (m=1)
- [Earth-R-po]  Earth polar radius [m] (m=1)
- [Earth-R]   Earth mean radius (m=1)
- [Earth-M]   Earth mass [kg] (kg=1)
- [Earth-D]   Earth-Sun distance - semi major axis [m] (m=1)
- [Moon-R]   Moon mean radius [m] (m=1)
- [Moon-M]   Moon mass [kg] (kg=1)
- [Moon-D]   Moon-Earth distance - semi major axis [m] (m=1)
- [Solar-R]   Solar mean radius [m] (m=1)
- [Solar-M]   Solar mass [kg] (kg=1)
- [Mercury-R]  Mercury mean radius [m] (m=1)
- [Mercury-M]  Mercury mass [kg] (kg=1)
- [Mercury-D]  Mercury-Sun distance - semi major axis [m] (m=1)
- [Venus-R]   Venus mean radius [m] (m=1)
- [Venus-M]   Venus mass [kg] (kg=1)
- [Venus-D]   Venus-Sun distance - semi major axis [m] (m=1)
- [Mars-R]   Mars mean radius [m] (m=1)
- [Mars-M]   Mars mass [kg] (kg=1)
- [Mars-D]   Mars-Sun distance - semi major axis [m] (m=1)
- [Jupiter-R]  Jupiter mean radius [m] (m=1)
- [Jupiter-M]  Jupiter mass [kg] (kg=1)
- [Jupiter-D]  Jupiter-Sun distance - semi major axis [m] (m=1)
- [Saturn-R]  Saturn mean radius [m] (m=1)
- [Saturn-M]  Saturn mass [kg] (kg=1)
- [Saturn-D]  Saturn-Sun distance - semi major axis [m] (m=1)
- [Uranus-R]  Uranus mean radius [m] (m=1)
- [Uranus-M]  Uranus mass [kg] (kg=1)
- [Uranus-D]  Uranus-Sun distance - semi major axis [m] (m=1)
- [Neptune-R]  Neptune mean radius [m] (m=1)
- [Neptune-M]  Neptune mass [kg] (kg=1)
- [Neptune-D]  Neptune-Sun distance - semi major axis [m] (m=1)

* Equations solving via finding function root

- solve( f(x), x, a, b ) - solving f(x) = 0

* Function Extensions

- FileExtension interface + new constructor in Function class

* Better tokens handling

- Better handling of invalid / not known tokens
- Looks like functionality

* Bugs fixed

- Exception thrown by getCopyOfInitialTokens() #21
- System.format.exception - system.IO.EndOfStreamException #20
- Expression relating factorial "!" cause the application to hang #17
- Negative sign missing when is right of operators #16
- Negative in if statement #12
- Speed when debugging #11
- User defined arguments ending in e #10

* New regression tests - current tests coverage:

- 622 expression related tests
- 114 syntax related tests
- 30 api related tests
- 20 performance tests
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment