nwchemgit / nwchem

NWChem: Open Source High-Performance Computational Chemistry
http://nwchemgit.github.io
Other
496 stars 160 forks source link

It is unbuildable on FreeBSD. Any chance to switch to cmake or meson? #29

Closed yurivict closed 6 years ago

yurivict commented 6 years ago

GNU makefiles are extremely convoluted, and it can't be built.

Are you able to change to cmake or meson, which are known to be much easier and more scalable build systems compared to gmake?

jeffhammond commented 6 years ago

Please report actual problems. This sort of issue is unhelpful.

Whatever your issues are with FreeBSD, they are solvable within the existing build system. Please create a detailed issue and we will investigate. It will be relatively difficult to install a FreeBSD VM on the machines I currently have, but I'll try to figure something out if necessary.

Now for some higher-level comments...

The NWChem build system is designed to support a wide range of platforms, including exotic ones where certain tools are not available. While it is not transparent to new developers, it is well-understood by experienced developers and servers our purposes. In a moment of frustration, I tried to rewrite it from scratch (still in GNU make, but with a cleaner design), but realized that this would introduce a huge number of regressions and waste the time of every other developer of the project.

Changing to a different build system is extremely costly in developer time and is unlikely to cause any real benefit. I have seen CMake used for many years by HPC application developers. It is an unmitigated disaster. Meson is a non-starter because it is written in Python3. We are not going to assume Python3 is available on every machine where NWChem is installed.

yurivict commented 6 years ago

I have seen CMake used for many years by HPC application developers. It is an unmitigated disaster.

cmake projects normally build on new platforms with almost no problems, while gmake-based projects often do not. Just like nwchem. So IMO it's quite the opposite, based on seeing hundreds of projects of both kinds.

jeffhammond commented 6 years ago

@yurivict I wrote that comment as someone who has maintained CMake build system projects for more than five years on multiple supercomputers.

As you have failed to provide any information about the problems you observe on FreeBSD, I have no confidence in your assessment about build system quality. For all I know, the reason NWChem isn't building is because of user error or a broken toolchain.

yurivict commented 6 years ago

As you have failed to provide any information about the problems you observe on FreeBSD, I have no confidence in your assessment about build system quality. For all I know, the reason NWChem isn't building is because of user error or a broken toolchain.

Same here. As somebody who has seen hundreds of cmake projects, and who has created ports for dozens of them, I can tell you with certainty that cmake-based projects build much easier once CMakeFile.txt files are right. And I have seen many large projects switching from gmake to cmake or meson, for example Urbit operating function (https://github.com/urbit/urbit) or Faust audio processor (https://github.com/grame-cncm/faust). So I have no confidence in soundness of your judgement when you say that gmake is easier.

Anyway, I just need it to build on FreeBSD, and I opened a separate bug report for it, #30 .

jeffhammond commented 6 years ago

GNU make does exactly what the developers make it do. Any failures in GNU make build systems are failures of the developers, not GNU make itself. In contrast, CMake itself can break builds. Please google cmake infinite loop as but one example where CMake itself is or has been broken.