CI: test with GCC 16 - #998
Open
jmcarcell wants to merge 1 commit into
Open
Conversation
tmadlener
force-pushed
the
ci/add-gcc16
branch
from
August 13, 2026 14:38
165c848 to
263ed50
Compare
Collaborator
|
@arnavdham @veprbl it looks like we are hitting a warning inside an arrow header. Could you take a look and see whether this is something that is caused on our end, or whether this is something we would have to suppress for now to have working CI with gcc16? Relevant CI output:From this run [182/847] Building CXX object src/CMakeFiles/podioArrow.dir/ArrowFrameConverter.cc.o
FAILED: [code=1] src/CMakeFiles/podioArrow.dir/ArrowFrameConverter.cc.o
ccache /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/bin/g++ -DPODIO_ENABLE_ARROW=1 -DpodioArrow_EXPORTS -I/home/runner/work/podio/podio/include -Weffc++ -pedantic -Wextra -Wall -fdiagnostics-color=auto -Wdeprecated -Wno-long-long -Wshadow -fdiagnostics-color=always -Werror -Wno-error=deprecated-declarations -O2 -g -DNDEBUG -std=c++20 -fPIC -MD -MT src/CMakeFiles/podioArrow.dir/ArrowFrameConverter.cc.o -MF src/CMakeFiles/podioArrow.dir/ArrowFrameConverter.cc.o.d -o src/CMakeFiles/podioArrow.dir/ArrowFrameConverter.cc.o -c /home/runner/work/podio/podio/src/ArrowFrameConverter.cc
In file included from /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_base.h:30,
from /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_adaptive.h:25,
from /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/builder.h:22,
from /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/api.h:26,
from /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:9:
In member function 'int64_t arrow::BufferBuilder::length() const',
inlined from 'int64_t arrow::TypedBufferBuilder<T, typename std::enable_if<(std::is_arithmetic<_Tp>::value || std::is_standard_layout<_Tp>::value)>::type>::length() const [with T = signed char]' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/buffer_builder.h:324:56,
inlined from 'virtual int64_t arrow::BasicUnionBuilder::length() const' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_union.h:67:65,
inlined from 'arrow::Status arrow::ArrayBuilder::Reserve(int64_t)' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_base.h:140:31,
inlined from 'arrow::Status arrow::NumericBuilder<TypeClass>::Append(value_type) [with T = arrow::DoubleType]' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_primitive.h:104:5,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::buildParamMap(const podio::GenericParameters&) [with T = double; BuilderType = arrow::NumericBuilder<arrow::DoubleType>]' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:41:44,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::convertParameters(const podio::GenericParameters&)' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:53:72:
/cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/buffer_builder.h:205:35: error: array subscript 4 is outside array bounds of 'std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::DoubleType>, std::allocator<void>, __gnu_cxx::_S_atomic> [1]' [-Werror=array-bounds=]
205 | int64_t length() const { return size_; }
| ^~~~~
In file included from /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/x86_64-pc-linux-gnu/bits/c++allocator.h:33,
from /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/allocator.h:46,
from /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/memory:67,
from /home/runner/work/podio/podio/include/podio/utilities/ArrowFrameConverter.h:4,
from /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:1:
In member function 'constexpr _Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::DoubleType>, std::allocator<void>, __gnu_cxx::_S_atomic>]',
inlined from 'constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::DoubleType>, std::allocator<void>, __gnu_cxx::_S_atomic>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/allocator.h:206:40,
inlined from 'static constexpr _Tp* std::allocator_traits<std::allocator<_Up> >::allocate(allocator_type&, size_type) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::DoubleType>, std::allocator<void>, __gnu_cxx::_S_atomic>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/alloc_traits.h:638:28,
inlined from 'std::__allocated_ptr<_Alloc> std::__allocate_guarded(_Alloc&) [with _Alloc = allocator<_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::DoubleType>, allocator<void>, __gnu_cxx::_S_atomic> >]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/allocated_ptr.h:103:69,
inlined from 'std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = arrow::NumericBuilder<arrow::DoubleType>; _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr_base.h:1034:9,
inlined from 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; _Tp = arrow::NumericBuilder<arrow::DoubleType>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr_base.h:1812:14,
inlined from 'std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; _Tp = arrow::NumericBuilder<arrow::DoubleType>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr.h:463:59,
inlined from 'std::shared_ptr<std::_NonArray<_Tp> > std::make_shared(_Args&& ...) [with _Tp = arrow::NumericBuilder<arrow::DoubleType>; _Args = {arrow::MemoryPool*&}]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr.h:1066:39,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::buildParamMap(const podio::GenericParameters&) [with T = double; BuilderType = arrow::NumericBuilder<arrow::DoubleType>]' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:29:10,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::convertParameters(const podio::GenericParameters&)' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:53:72:
/cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/new_allocator.h:162:75: note: at offset 272 into object of size 232 allocated by 'operator new'
162 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
In member function 'int64_t arrow::BufferBuilder::length() const',
inlined from 'int64_t arrow::TypedBufferBuilder<T, typename std::enable_if<(std::is_arithmetic<_Tp>::value || std::is_standard_layout<_Tp>::value)>::type>::length() const [with T = signed char]' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/buffer_builder.h:324:56,
inlined from 'virtual int64_t arrow::BasicUnionBuilder::length() const' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_union.h:67:65,
inlined from 'arrow::Status arrow::ArrayBuilder::Reserve(int64_t)' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_base.h:140:31,
inlined from 'arrow::Status arrow::NumericBuilder<TypeClass>::Append(value_type) [with T = arrow::FloatType]' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_primitive.h:104:5,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::buildParamMap(const podio::GenericParameters&) [with T = float; BuilderType = arrow::NumericBuilder<arrow::FloatType>]' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:41:44,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::convertParameters(const podio::GenericParameters&)' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:52:69:
/cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/buffer_builder.h:205:35: error: array subscript 4 is outside array bounds of 'std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::FloatType>, std::allocator<void>, __gnu_cxx::_S_atomic> [1]' [-Werror=array-bounds=]
205 | int64_t length() const { return size_; }
| ^~~~~
In member function 'constexpr _Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::FloatType>, std::allocator<void>, __gnu_cxx::_S_atomic>]',
inlined from 'constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::FloatType>, std::allocator<void>, __gnu_cxx::_S_atomic>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/allocator.h:206:40,
inlined from 'static constexpr _Tp* std::allocator_traits<std::allocator<_Up> >::allocate(allocator_type&, size_type) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::FloatType>, std::allocator<void>, __gnu_cxx::_S_atomic>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/alloc_traits.h:638:28,
inlined from 'std::__allocated_ptr<_Alloc> std::__allocate_guarded(_Alloc&) [with _Alloc = allocator<_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::FloatType>, allocator<void>, __gnu_cxx::_S_atomic> >]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/allocated_ptr.h:103:69,
inlined from 'std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = arrow::NumericBuilder<arrow::FloatType>; _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr_base.h:1034:9,
inlined from 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; _Tp = arrow::NumericBuilder<arrow::FloatType>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr_base.h:1812:14,
inlined from 'std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; _Tp = arrow::NumericBuilder<arrow::FloatType>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr.h:463:59,
inlined from 'std::shared_ptr<std::_NonArray<_Tp> > std::make_shared(_Args&& ...) [with _Tp = arrow::NumericBuilder<arrow::FloatType>; _Args = {arrow::MemoryPool*&}]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr.h:1066:39,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::buildParamMap(const podio::GenericParameters&) [with T = float; BuilderType = arrow::NumericBuilder<arrow::FloatType>]' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:29:10,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::convertParameters(const podio::GenericParameters&)' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:52:69:
/cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/new_allocator.h:162:75: note: at offset 272 into object of size 232 allocated by 'operator new'
162 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
In member function 'int64_t arrow::BufferBuilder::length() const',
inlined from 'int64_t arrow::TypedBufferBuilder<T, typename std::enable_if<(std::is_arithmetic<_Tp>::value || std::is_standard_layout<_Tp>::value)>::type>::length() const [with T = signed char]' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/buffer_builder.h:324:56,
inlined from 'virtual int64_t arrow::BasicUnionBuilder::length() const' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_union.h:67:65,
inlined from 'arrow::Status arrow::ArrayBuilder::Reserve(int64_t)' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_base.h:140:31,
inlined from 'arrow::Status arrow::NumericBuilder<TypeClass>::Append(value_type) [with T = arrow::Int32Type]' at /cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/array/builder_primitive.h:104:5,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::buildParamMap(const podio::GenericParameters&) [with T = int; BuilderType = arrow::NumericBuilder<arrow::Int32Type>]' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:41:44,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::convertParameters(const podio::GenericParameters&)' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:51:65:
/cvmfs/sft-nightlies.cern.ch/lcg/views/dev4/Thu/x86_64-el9-gcc16-opt/include/arrow/buffer_builder.h:205:35: error: array subscript 4 is outside array bounds of 'std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::Int32Type>, std::allocator<void>, __gnu_cxx::_S_atomic> [1]' [-Werror=array-bounds=]
205 | int64_t length() const { return size_; }
| ^~~~~
In member function 'constexpr _Tp* std::__new_allocator<_Tp>::allocate(size_type, const void*) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::Int32Type>, std::allocator<void>, __gnu_cxx::_S_atomic>]',
inlined from 'constexpr _Tp* std::allocator< <template-parameter-1-1> >::allocate(std::size_t) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::Int32Type>, std::allocator<void>, __gnu_cxx::_S_atomic>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/allocator.h:206:40,
inlined from 'static constexpr _Tp* std::allocator_traits<std::allocator<_Up> >::allocate(allocator_type&, size_type) [with _Tp = std::_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::Int32Type>, std::allocator<void>, __gnu_cxx::_S_atomic>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/alloc_traits.h:638:28,
inlined from 'std::__allocated_ptr<_Alloc> std::__allocate_guarded(_Alloc&) [with _Alloc = allocator<_Sp_counted_ptr_inplace<arrow::NumericBuilder<arrow::Int32Type>, allocator<void>, __gnu_cxx::_S_atomic> >]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/allocated_ptr.h:103:69,
inlined from 'std::__shared_count<_Lp>::__shared_count(_Tp*&, std::_Sp_alloc_shared_tag<_Alloc>, _Args&& ...) [with _Tp = arrow::NumericBuilder<arrow::Int32Type>; _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr_base.h:1034:9,
inlined from 'std::__shared_ptr<_Tp, _Lp>::__shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; _Tp = arrow::NumericBuilder<arrow::Int32Type>; __gnu_cxx::_Lock_policy _Lp = __gnu_cxx::_S_atomic]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr_base.h:1812:14,
inlined from 'std::shared_ptr<_Tp>::shared_ptr(std::_Sp_alloc_shared_tag<_Tp>, _Args&& ...) [with _Alloc = std::allocator<void>; _Args = {arrow::MemoryPool*&}; _Tp = arrow::NumericBuilder<arrow::Int32Type>]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr.h:463:59,
inlined from 'std::shared_ptr<std::_NonArray<_Tp> > std::make_shared(_Args&& ...) [with _Tp = arrow::NumericBuilder<arrow::Int32Type>; _Args = {arrow::MemoryPool*&}]' at /cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/shared_ptr.h:1066:39,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::buildParamMap(const podio::GenericParameters&) [with T = int; BuilderType = arrow::NumericBuilder<arrow::Int32Type>]' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:29:10,
inlined from 'std::shared_ptr<arrow::Array> podio::{anonymous}::convertParameters(const podio::GenericParameters&)' at /home/runner/work/podio/podio/src/ArrowFrameConverter.cc:51:65:
/cvmfs/sft.cern.ch/lcg/releases/gcc/16.1.0-43042/x86_64-el9/include/c++/16.1.0/bits/new_allocator.h:162:75: note: at offset 272 into object of size 232 allocated by 'operator new'
162 | return static_cast<_Tp*>(_GLIBCXX_OPERATOR_NEW(__n * sizeof(_Tp)));
| ^
cc1plus: all warnings being treated as errors |
Contributor
I think this has to be suppressed. No clear reason according to me why this should be giving a warning |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
BEGINRELEASENOTES
ENDRELEASENOTES