ralna / CUTEst

The Constrained and Unconstrained Testing Environment with safe threads (CUTEst) for optimization software
Other
88 stars 19 forks source link

Use GitHub Actions instead of Travis #22

Closed amontoison closed 1 year ago

amontoison commented 2 years ago

I try to cross-compile CUTEst with Yggdrasil to generate a new artifact for Julia but I have some issues to generate dynamic libraries for Windows platforms. https://github.com/JuliaPackaging/Yggdrasil/pull/5280

CUTEst doesn't have a classic Makefile and It's quite difficult to patch it... I hope that @nimgould can help us. I updated the CI script to more easily determine the origin of the problem.

dpo commented 2 years ago

@amontoison DLLs on Windows are a different kind of beast. They're not just a matter of compiling and linking properly like on Linux or macOS. Neither of us ever mustered the courage (or the interest) to compile CUTEst DLLs.

But I'd like to merge your GitHub Action after you remove Windows from there. Note that I already generate binaries for Linux and macOS here: https://github.com/optimizers/homebrew-cutest

amontoison commented 2 years ago

Is it possible to activate GHA before, such that we verify that the script works?

nimgould commented 2 years ago

I'm not an expert, so could you tell me what I need to enable, and how, please.

dpo commented 2 years ago

They are enabled but I think they won't run until they are in master. The script could use some major cleanup: remove Windows ans use ENV for starters instead of exporting every time.

nimgould commented 2 years ago

I'll leave it to you to add to master when ready. I believe that this lies within your competences, not mine

amontoison commented 2 years ago

I updated the ci.yml. It will be great great to add tests with shared libraries in the future because I have segmentation faults with them and it's hard to determine the origin within Julia. The problem could be in the Julia interface or here.

dpo commented 2 years ago

add tests with shared libraries

Well unfortunately, this package doesn't build shared libraries. We would have to change the build system to Autotools / CMake or something that can actually take care of multi-platform subtleties.

The way I hack shared libraries for macOS and Linux in the Homebrew formula and Yggdrasil is exactly that... a hack. None of us has time to revisit the build system unfortunately.

nimgould commented 2 years ago

Actually, we now have a feature to build dynamic (shared) libraries from the static ones in galahad. We need this to provide Python interfaces. There is a small script in $GALAHAD/bin/create_dynamic that needs to be fed appropriate compiler flags (and these flags are provided as part of the whole optrove install).

amontoison commented 1 year ago

@dpo I updated the CI script, it works on my fork: https://github.com/amontoison/CUTEst/pull/3 It's the same branch.

CUTEst is just not compiled in single precision, I don't know why. Maybe we should use a sleep() before the last three inputs yyb and wait during the compilation of SIFDecode.

dpo commented 1 year ago

Closing in favor of #25. Thanks!