On Sunday, 27 January 2019 12:18:51 CET Heiko Bauke wrote:
> Hi,
> 
> I think darktable has made a huge step forwards regarding new features
> in the recent 2.6 release.  For this reason I would like to focus on
> code quality, performance and user experience in my future contributions.

Hello Heiko,

static code analysis is OK. I use csbuild in my CI and have a Coverity 
account. However the Coverity scan service is currentrly down.

csbuild is what we use internally to do static analyis on every package which 
goes into the distribution, but it is open source so could be integrated into 
CI easily. See. e.g. here:

https://gitlab.com/libssh/libssh-mirror/pipelines
or
https://gitlab.com/cmocka/cmocka/pipelines

select a pipeline and look for the csbuild runner. It wont run Coverity for 
you, but clang-analyzer and cppcheck and more.

Extremly good are the Sanitizers. There is AddressSanitzer, MemorySanitizer, 
UndefinedSanitizer and ThreadSanitizer. However they do runtime detection and 
for that you need tests. Darktable doesn't have any testing at all. It means 
you would need to run darktable and edit images with it. The sanitizers make 
the code much slower, even with optimization turned on. Might still be worth 
to try them.

If you write multithreaded code you should always run your stuff with helgrind 
and drd.

Also compilers have really good warnings in the meantime you just need to turn 
them on and make them errors for developers. See the projects mentioned above.



Cheers,


        Andreas


___________________________________________________________________________
darktable developer mailing list
to unsubscribe send a mail to darktable-dev+unsubscr...@lists.darktable.org

Reply via email to