Skip to content
Snippets Groups Projects
Commit 88ae60c0 authored by Giovanni Bussi's avatar Giovanni Bussi
Browse files

Improved changelog v2.5

parent 906ee939
No related branches found
No related tags found
No related merge requests found
......@@ -94,13 +94,32 @@ Changes from version 2.4 which are relevant for developers:
in the core parts of the code have been eliminated.
- Exceptions cannot be disabled (`--disable-cxx-exceptions` option has been removed from `./configure`).
- Every exception thrown in PLUMED now also writes its message on PLUMED log.
- Runtime loader in `Plumed.c` now works also when linked without `-rdynamic` (that is,
its names are not exported). Notice that all the combinations are expected to
work, that is: `Plumed.c` from <=2.4 or >=2.5 combined with libplumedKernel
from <=2.4 or >=2.5. In order to achieve this the following changes are implemented:
- libplumedKernel does not depend anymore on `Plumed.c`. This allows loading it even
in cases where names in the loader are not visible. The relevant function needed
to be compatible with `Plumed.c` <=2.4 are found using `dlsym`.
- `Plumed.c` does not need anymore libplumedKernel to register itself, but rather
searches the relevant functions using `dlsym`. In addition, if it is not able to
load `libplumedKernel` since the latter is <=2.4 and needs `Plumed.c` to be visible,
it just uses as a fallback `libplumed`, which should load properly.
- In addition to the capability mentioned above, the MD-code interface has been significantly
improved and allows for:
- Translation of exception (allowing to mix PLUMED and an MD-code linked against a different C++ library).
- Possibility to choose the path to the PLUMED kernel while instantiating a Plumed object.
See the developer documentation for more information.
- The installation layout of shared libraries has been modified. In particular,
both `libplumed.so` and `plumed` links to `libplumedKernel.so`.
This reduces considerably the size of the installed package. In addition, it allows
using two-level namespace on OSX. Notice that this implies that on Linux one should
always set the `LD_LIBRARY_PATH` flag to have a working executable.
- A smaller number of header files is installed. In particular, all the files that were historically generated in subdirectories
(such as `plumed/core/tools/Vector.h', just including `plumed/tools/Vector.h`) are not installed and the related include
statements are fixed. This makes the installed package smaller.
- List of preferred compilers (used when `CXX` or `CC` are not set) has been changed. On OSX, `./configure` will try `clang++/clang` as first choices.
- Added `--enable-static-archive` to `./configure` to build a `libplumed.a` static library.
- Added `--enable-static-archive` to `./configure` to build a `libplumed.a` static library (yes by default).
- Stop setting `DYLD_LIBRARY_PATH` in `sourceme.sh` and in modulefile. Notice that as of PLUMED v2.3.3
it should not be needed.
- Coverage scan is not anymore contained in developer manual. It can be found in a separate repository
......@@ -109,21 +128,9 @@ Changes from version 2.4 which are relevant for developers:
- It is not possible anymore to use `make install prefix=/path`. Prefix can only be changed during `./configure` (see \issue{332}).
- Exception class has been rewritten to allow more extensive messages. Now also function name is shown.
- On linux, library is linked with `-Bsymbolic`.
- A small number of header files is installed
- When launching `plumed`, flags `--no-mpi` and `--mpi` can appear multiple times. The last appearence is the effective one.
- Internal blas and lapack libraries updated to gromacs 2018.
- Choosing `./configure --prefix=$PWD` does not lead anymore to deletion of all header files.
- Runtime loader in `Plumed.c` now works also when linked without `-rdynamic` (that is,
its names are not exported). Notice that all the combinations are expected to
work, that is: `Plumed.c` from <=2.4 or >=2.5 combined with libplumedKernel
from <=2.4 or >=2.5. In order to achieve this the following changes are implemented:
- libplumedKernel does not depend anymore on `Plumed.c`. This allows loading it even
in cases where names in the loader are not visible. The relevant function needed
to be compatible with `Plumed.c` <=2.4 are found using `dlsym`.
- `Plumed.c` does not need anymore libplumedKernel to register itself, but rather
searches the relevant functions using `dlsym`. In addition, if it is not able to
load `libplumedKernel` since the latter is <=2.4 and needs `Plumed.c` to be visible,
it just uses as a fallback `libplumed`, which should load properly.
- A copy of `plumed-runtime` is installed in `prefix/lib/plumed` and can be used for testing.
- Absolute/relative soname/install_name can be configured on linux/OSX. This feature is only
for testing, the default choice is the typical one used on the respective operating system.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment