BhallaLab / moose-core

C++ basecode and python scripting interface
https://moose.ncbs.res.in
GNU General Public License v3.0
15 stars 27 forks source link

Thread-safe and more performant parser based on ExprTK #387

Closed dilawar closed 4 years ago

dilawar commented 4 years ago

This PR replaces muParser by ExprTK based parser. The details are/will be in the code comments, the essentials are the following.

Parser related

Other changes

Tests

Build system

TODO

Before fix

==8883== HEAP SUMMARY:
==8883==     in use at exit: 168 bytes in 14 blocks
==8883==   total heap usage: 1,270,404 allocs, 1,270,390 frees, 254,115,799 bytes allocated
==8883==
==8883== LEAK SUMMARY:
==8883==    definitely lost: 152 bytes in 13 blocks
==8883==    indirectly lost: 0 bytes in 0 blocks
==8883==      possibly lost: 0 bytes in 0 blocks
==8883==    still reachable: 16 bytes in 1 blocks
==8883==         suppressed: 0 bytes in 0 blocks
==8883== Rerun with --leak-check=full to see details of leaked memory
==8883==
==8883== For counts of detected and suppressed errors, rerun with: -v
==8883== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)

After fix https://github.com/BhallaLab/moose-core/pull/387/commits/51da6935f775a0d9d58b024ebab9dfe2ae24d96e

==23965== 
==23965== HEAP SUMMARY:
==23965==     in use at exit: 16 bytes in 1 blocks
==23965==   total heap usage: 1,265,916 allocs, 1,265,915 frees, 253,854,188 bytes allocated
==23965== 
==23965== LEAK SUMMARY:
==23965==    definitely lost: 0 bytes in 0 blocks
==23965==    indirectly lost: 0 bytes in 0 blocks
==23965==      possibly lost: 0 bytes in 0 blocks
==23965==    still reachable: 16 bytes in 1 blocks
==23965==         suppressed: 0 bytes in 0 blocks
==23965== Rerun with --leak-check=full to see details of leaked memory
==23965== 
==23965== For counts of detected and suppressed errors, rerun with: -v
==23965== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)