Running Mlint on an m-file from Python
3 views (last 30 days)
Show older comments
We have code review on all our code in Gerrit, and can run automatic tests with Jenkins. What I would like to do is to add an automatic mlint check when new Matlab code is checked in. The Jenkins machines does not have Matlab installed.
My thought was to use the mlint.dll together with ctypes in Python, but then I realized that the mlint.dll has 1591 functions, and I'm unsure how to use it to use the mlint checks on a file.
I want a function similar to the mlintmex. Example:
>> str = mlintmex('perfTest.m')
str =
L 3 (C 1): The value assigned to variable 'A' might be unused.
L 4 (C 1): The value assigned to variable 'B' might be unused.
L 5 (C 1-3): Variable 'ops', apparently a structure, is changed but the value seems to be unused.
L 12 (C 9): This statement (and possibly following ones) cannot be reached.
L 53 (C 19-25): The function 'subFunc' might be unused.
L 53 (C 27-35): Input argument 'iteration' might be unused. If this is OK, consider replacing it by ~.
Please help me if you have any suggestions!
PS. I've thought about using mcc to build mlintmex into a binary, but it seems like a very awkward way around the problem.
0 Comments
Answers (1)
Nagarjuna Manchineni
on 19 Jun 2017
Edited: Nagarjuna Manchineni
on 19 Jun 2017
It is possible to check the MATLAB code by using 'mlint' or 'checkcode' (recommended) function. You can use MATLAB engine for python/Java to call this function from python/Java. This needs to have MATLAB installed on the system.
See the following link for more information of MATLAB engine:
https://www.mathworks.com/help/matlab/matlab_external/get-started-with-matlab-engine-for-python.html
Also, you can directly call the MATLAB code by running the code from the command prompt or shell:
matlab -nodisplay -nodesktop -r "checkcode('<filename>')"
Also, note that it is not recommended to call 'mlint' from the mlint.dll as this dll has many dependencies internally with other dll's that are registered by installing MATLAB.
Also, this function is not available for compiling into a module/jar/application using MATLAB Compiler/SDK.
See Also
Categories
Find more on Startup and Shutdown in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!