Tags: afanfa/OpenCoarrays
Tags
Bug fixes & partial support for allocatable components ====================================================== Enhancements ------------ - __*experimental*__ partial support for allocatable components. The [register_alloc_vector.f90] test is known to currently fail by timing out after hanging. Please see issue sourceryinstitute#260 and 285-289 for a discussion of what has yet to be implemented. For examples that are currently working, please see: - [register_alloc_comp_1.f90] - [register_alloc_comp_2.f90] - [register_alloc_comp_3.f90] - sourceryinstitute#39 Use the more canonical CMake invocation of `FC=gfortran CC=gcc cmake <path/to/src/dir>` and rely on the more robust `FindMPI` CMake module, rather than relying on passing the MPI wrappers as the compiler to CMake. The previous method of passing the compiler wrappers as `FC` and `CC` still currently works, but is deprecated and no longer supported. - sourceryinstitute#246 MPI and Fortran is handled more robustly: since Fortran .mod files have no standardized ABI, we fall back to using `mpif.h` instead of the `mpi` module if this will cause problems, and if that fails as well, then the auxiliary `opencoarrays` module is not built, since the core library only requires a functional C compiler and C MPI implementation which is also now checked at build time. - More tests added and duplicate tests deleted - sourceryinstitute#244 Disable building and running of tests that rely on assembly code for use by package maintainers using `-DSKIP_ASSEMBLY_DEPS:BOOL=ON` - sourceryinstitute#245 Support for Building shared libraries with `-DBUILD_SHARED_LIBS:BOOL=ON` - sourceryinstitute#204 Expose `caf_init()` and `caf_finalize()` via `-DCAF_EXPOSE_INIT_FINALIZE:BOOL=ON` so that e.g. Python can call coarray Fortran Bug-fixes --------- - sourceryinstitute#254 bug fix for strided send-gets (image A gets a remote coarray object from image B and assigns it to memory on image C with strided access) - sourceryinstitute#234 Library header file [`libcaf.h`] updated to include missing entities - sourceryinstitute#234 Work around GCC's `download_prerequisites` script failing when a particular branch of GCC is requested to be built with [`install.sh`] - sourceryinstitute#239 tests updated to ensure compliance with Fortran standard, code relying on compiler extensions replaced - sourceryinstitute#265 Fix typo in OpenMPI flags specified for tests when they are oversubscribed - sourceryinstitute#273 Fix deficiency in documentation --- To view the issue related to the enhancement or bugfix on Github, please point your browser to https://github.com/sourceryinstitute/opencoarrays/issues and append `/<issue-number>` to the end of the URL, replacing the text between and including the angle braces with the actual issue number specified in these release notes. [register_alloc_vector.f90]: https://github.com/sourceryinstitute/opencoarrays/blob/7e56c59bcb4ce295f7716728812712898cb8ef62/src/tests/unit/init_register/register_alloc_vector.f90 [register_alloc_comp_1.f90]: https://github.com/sourceryinstitute/opencoarrays/blob/7e56c59bcb4ce295f7716728812712898cb8ef62/src/tests/unit/init_register/register_alloc_comp_1.f90 [register_alloc_comp_2.f90]: https://github.com/sourceryinstitute/opencoarrays/blob/7e56c59bcb4ce295f7716728812712898cb8ef62/src/tests/unit/init_register/register_alloc_comp_2.f90 [register_alloc_comp_3.f90]: https://github.com/sourceryinstitute/opencoarrays/blob/7e56c59bcb4ce295f7716728812712898cb8ef62/src/tests/unit/init_register/register_alloc_comp_3.f90 [`libcaf.h`]: https://github.com/sourceryinstitute/opencoarrays/blob/7e56c59bcb4ce295f7716728812712898cb8ef62/src/libcaf.h [`install.sh`]: https://github.com/sourceryinstitute/opencoarrays/blob/7e56c59bcb4ce295f7716728812712898cb8ef62/install.sh
Installation bug fix release This release fixes bugs that caused the installation script to fail in the following circumstances: A pre-installed gfortran version is too old to support the Fortran intrinsic function [`compiler_version`](http://docs.w3cub.com/gnu_fortran~6/compiler_005fversion/). No acceptable gfortran is present and the `wget` download program is not in the PATH (in which case, the OpenCoarrays installation script now patches gfortran's download_prerequisites script to switch to alternate mechanisms `curl` or `ftp` for fetching remote files.) Correct the handling of the `--install-branch` argument for using the installation script to install a [GCC](http://gcc.gnu.org) branch (e.g., when using `./install.sh --package gcc --install-branch trunk` to install the current "trunk" development version of GCC).
Bug fix release
The installation path naming convention that release 1.7.0 adopted for prerequisite packages now applies to OpenCoarrays itself. An installation line such as
./install.sh --install-prefix /opt/my-stuff
will result in all installed files and directories (.e.g, bin, setup.sh, etc.) being installed directly in /opt/my-stuff without appending the package name (opencoarrays) and version number to the path as happened in previous versions. If no installation prefix is supplied, the package name and version will still be in the default installation path. For example, installing the current version (1.7.1) with no arguments
./install.sh
will still result in an installation in ${OPENCOARRAYS_SRC_DIR}/prerequisites/installations/opencoarrays/1.7.1.
Bug fixes and minor improvements to build system - Build defaults to installing GCC 6.1 if GCC is not recent enough - Tests now run with GCC-6.1 on the continuous integration testing infrastructure - `-y`/`--yes-to-all` added as an `install.sh` option to aid in scripted installations - Improved support for CSH environment setup - Fixed sourceryinstitute#42 (coarray navier stokes failing) by correctly identifying OS and build system to CMake to run and link the tests only on x86_64 Linux (Custom assembly FFT routines prevent compiling and linking on ARM, OS X, etc.) - Fixed bug causing sourceryinstitute#161 (allocate_as_barrier_proc failing) and added tests to ensure that such a failure would be caught more regularly - Add more flexible download capability based on which download method is available on the system (FTP, wget, curl, etc.) - Made git-hooks installed for developers/contributors more robust, and fixed problems on Linux (sourceryinstitute#202)
New in this release for the install.sh automatic installation script: 🚧 GCC 6.1.0 is the default minimum requirement to avoid an automatic gfortran download, build, & installation. 🔨 GCC 6.1.0 fixes issue sourceryinstitute#160. (GCC 5.4.0 contains the fix also.) 🔫 Users can force the use of a given compiler (or compiler version) by using `--with-*` arguments: ``` ./install.sh \ --with-fortran <fortran-compiler-path> --with-c <c-compiler-path> --with-cxx <C++-compiler-path> ``` or by using the corresponding `-f`, `-c`, and `-C` arguments, respectively. 🐚 install.sh writes ```setup.csh``` for C-shell users to source in order to set up their environment for using OpenCoarrays. 📦 Improved handling of individual prerequisite package installation: ``` ./install.sh --package mpich --install-dir <desired-installation-path> ``` ☁️ install.sh replaces `wget` with `curl` for fetching packages online in OS X. Multi-threaded GCC builds fail (e.g., ./install.sh -p gcc -j 2). This is a known issue with GCC and can be resolved by restarting with "-j 1" or no -j argument. It might be required that also delete the prerequisites/builds/gcc directory, if it exists, before restarting.
Fix semantics of calling `stop` from some images __*As of 2016-03-27 gcc-trunk (GCC 6) and gcc-5-branch (gcc > 5.3) will not build OpenCoarrays versions prior to this release, 1.4.0*__ The semantics of calling `stop` from a subset of images was incorrect. This defect was reported by Anton Shterenlikht (@mexas) in bug report sourceryinstitute#160. (Thanks Anton!) The fix for this bug required changes to GCC as well as OpenCoarrays. As a result, starting with the development versions mentioned above and the as-of-yet-unreleased GCC 5.4, OpenCoarrays will fail to build, unless using this release, 1.4.0, or a future one. *If you want to use the latest development versions of GCC and OpenCoarrays, you will need to use an OpenCoarrays release >= 1.4.0.* *If you are using GCC 5.3 or older versions, OpenCoarrays 1.4.0 and previous versions should continue to build as expected.* (However, bug sourceryinstitute#160 may persist without upgrading GCC.)
PreviousNext