project8 / monarch

Data File Library for the Project 8 Collaboration
Other
3 stars 1 forks source link

Full upgrade to HDF5 1.10 #21

Closed nsoblath closed 6 years ago

nsoblath commented 7 years ago

The Problem

Monarch3 was originally written for the HDF5 1.8 API, and with the introduction of v1.10.1, two things broke:

  1. In HDF5 1.8 we had class H5::CommonFG that contained a bunch of functions that are common to H5Files and H5Groups. Those functions were added to H5Location in v1.10, and CommonFG disappeared in 1.10.1. Therefore version 1.10.1 was incompatible with Monarch3.

  2. In both 1.10 and 1.8, H5Object inherits from H5Location. In 1.8, H5Location contained functions to interact with H5Attributes, and in 1.10.1 those functions were moved to H5Object. Since we used H5Location pointers to manipulate attributes, which was incompatible with Monarch3.

The Solution

A full upgrade to HDF5 1.10 will require two changes (in this order):

  1. References and pointers to H5Location will need to change to H5Object.

  2. References and pointers to CommonFG will need to change to H5Location.

The Current Situation

As of this writing (June 13, 2017), HDF5 1.10 is not fully available in the relevant package managers:

So the current limitation is Debian, which is our standard linux flavor. Fortunately, Debian 9 is scheduled for release on June 17, 2017, at the end of this week. Once we've upgraded to Debian 9, we can proceed with the full upgrade to requiring HDF5 1.10. While the release of Debian 9 is soon, I don't assume that we'll upgrade our servers immediately. Therefore I will proceed with a temporary fix to Monarch3.

The Temporary Fix

From Temporary Fix to Full Upgrade

nsoblath commented 7 years ago

The temporary fix is complete as of feature-branch commit 3dde7380655b78f3cd568200baf05edb728094fe

nsoblath commented 6 years ago

I'm declaring the "temporary" fix as ok to keep in place for the time being, and closing this issue.