110 likes | 122 Views
MDSplus Quality Improvement Project T.Fredian, J. Stillerman, G. Manduchi, K. Erickson, A. Rigoni. MDSplus Quality Improvement Project. Why focus on quality improvements? MDSplus is “ mature ” . Still has OpenVMS “ features ” . The good, bad and ugly.
E N D
MDSplus Quality Improvement ProjectT.Fredian, J. Stillerman, G. Manduchi, K. Erickson, A. Rigoni
MDSplus Quality Improvement Project Why focus on quality improvements? MDSplus is “mature”. Still has OpenVMS “features”. The good, bad and ugly. More modern software techniques available. Improvements in compilers. Wider set of standard built in functions. Broader platform capabilities Greater ease in adding new functionality to MDSplus
MDSplus Quality Improvement Project Why?(2) New team members. Increased knowledge pool of current technologies. Fresh ideas. Original team members. Understand the need to improve existing code and documentation. Willing to try new techniques and throw out older code which is hard to maintain.
MDSplus Quality Improvement Project Why?(3) MDSplus history ~ 25 years old Originally OpenVMS only Ported to linux 18 years ago (with expectation that OpenVMS would remain the predominant platform). Base code retained OpenVMS compatibility for many years. Some of the ported code used questionable techniques only recently discovered using newer compiler options for analyzing code behavior.
MDSplus Quality Improvement Project Why?(4) MDSplus history Developers had focused mostly on: Improved functionality. Wider variety of computing platforms. Remote access to data. Performance.
MDSplus Quality Improvement Project At some point we came to realization that things were just getting ‘awkward’.
MDSplus Quality Improvement Project How? General code cleanup Use of indent command to apply common indentation to all the code. Use of doxygen compatible comments to produce code documentation. Use of valgrind, --coverage, --sanitize=address to discover and fix memory leaks, coding issues etc.. Remove old/unnecessary #ifdef #else #endif code paths based on obsolete platform support. Address warnings generated by modern compilers.
MDSplus Quality Improvement Project How? (2) Improve build procedures Migrate from hand written Makefile’s to using automake tools. Move from cvs to git repository. Use of docker for builds of linux and Windows distributions. Use of GNU mingw64 and nsis for building Windows distributions.
MDSplus Quality Improvement Project How? (3) Refactor code MDSplus internals Command interpreter rewrite Tdi expression evaluator (tdishr) rewrite Migration to c++ Retain compatibility with documented API’s Retain functional compatibility Retain compatibility with existing stored data
MDSplus Quality Improvement Project How?(4) Improved user documentation New tutorials including downloadable code examples. Improvements to website layout. Explore tools to reach out to user community for more active feedback.
MDSplus Quality Improvement Project Summary We hope to improve the quality and robustness of the MDSplus system to ensure its viability as an important tool to the fusion community for many years to come. With fresh ideas from new developers MDSplus can be a much better product while maintaining compatibility with existing applications and stored data. As always, input from user community is welcomed and has been the driving force for most of the functionality found in MDSplus today!