Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -387,8 +387,8 @@ install(FILES ${CMAKE_BINARY_DIR}/etc/gitinfo.txt DESTINATION ${CMAKE_INSTALL_SY

#---Recurse into the given subdirectories. This does not actually cause another cmake executable
# to run. The same process will walk through the project's entire directory structure.
add_subdirectory (builtins/zip) # hard coded C builtin for core/zip
add_subdirectory (core)
add_subdirectory (builtins/zip) # hard coded builtin for core/zip
add_subdirectory (math)
add_subdirectory (hist)
add_subdirectory (tree)
Expand Down
3 changes: 1 addition & 2 deletions README/ReleaseNotes/v642/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,6 @@ For more information, see:

[http://root.cern](http://root.cern)

The following people have contributed to this new version:

The following people have contributed to this new version:

Bertrand Bellenot, CERN/EP-SFT,\
Expand Down Expand Up @@ -69,6 +67,7 @@ Users are encouraged to export their models to ONNX and use the retained ONNX pa
* Support for the AIX operating system has been removed from the codebase. This support has not been tested since the late v5 releases and the LLVM JIT is not yet supporting AIX.
* The headers Htypes.h and Gtypes.h that were deprecated in ROOT 6.20 will now emit warnings and will be fully removed in ROOT 6.44.
* The header GLConstants.h is no longer part of ROOT installed headers.
* The headers `ZipLZMA.h`, `ZipZSTD.h` and `ZipLZ4.h` are no longer part of ROOT installed headers. Use instead `RZip.h` methods.
* The `ROOT::Math::ParamFunctionBase`, `ROOT::Math::ParamFunctorHandler` and `ROOT::Math::ParamMemFunHandler` classes in `Math/ParamFunctor.h` are removed, together with the `ParamFunctor::GetImpl()` and `ParamFunctor::SetFunction()` methods that exposed them. They implemented the type erasure that `ParamFunctor` now gets from `std::function`, mirroring what was already done for `ROOT::Math::Functor`. Constructing and calling a `ParamFunctor` is unchanged, except that the constructor from an object and one of its member functions now takes a plain pointer to the object instead of anything dereferenceable, so smart pointers are no longer accepted there.

## Build System
Expand Down
32 changes: 31 additions & 1 deletion builtins/zip/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,42 @@
# For the licensing terms see $ROOTSYS/LICENSE.
# For the list of contributors see $ROOTSYS/README/CREDITS.

target_sources(Core PRIVATE
add_library(ROOTzip STATIC)
target_sources(ROOTzip PUBLIC
Bits.h # was renamed from Bits.c at https://github.com/root-project/root/commit/3b2f05c8ddf1001cc8eb05ad60b07b10af6ac293#diff-ff111e76990c56e7019ed0d837f1f615e280dc679ed393200c4f75b61094c5b7 and later split back to Bits.c in https://github.com/root-project/root/commit/25d5805abac4d408554e99aec6e49b8a671a2d96
Tailor.h # forked from 1993: zip 2.0 (https://github.com/root-project/root/blob/852600061bcacd9b255d44f6312c96b6b1e00a2d/zip/inc/Tailor.h vs https://github.com/pmqs/Info-ZIP-Family-Tree-for-Zip/blob/d25ed515bc56fae136b635d764ce8b363041aef5/tailor.h)
ZIP.h # forked from 1993: zip 2.0 (https://github.com/root-project/root/blob/852600061bcacd9b255d44f6312c96b6b1e00a2d/zip/inc/ZIP.h vs https://github.com/pmqs/Info-ZIP-Family-Tree-for-Zip/blob/d25ed515bc56fae136b635d764ce8b363041aef5/zip.h)
PRIVATE
Bits.c # forked from 1993: zip 2.0 (https://github.com/root-project/root/blob/852600061bcacd9b255d44f6312c96b6b1e00a2d/zip/src/Bits.c vs https://github.com/pmqs/Info-ZIP-Family-Tree-for-Zip/blob/d25ed515bc56fae136b635d764ce8b363041aef5/bits.c)
ZDeflate.c # forked from 1993: zip 2.0 (https://github.com/root-project/root/blob/852600061bcacd9b255d44f6312c96b6b1e00a2d/zip/src/Deflate.c vs https://github.com/pmqs/Info-ZIP-Family-Tree-for-Zip/blob/d25ed515bc56fae136b635d764ce8b363041aef5/deflate.c)
ZInflate.c # forked from 1994: version c14o / unzip-5.12 (https://github.com/root-project/root/blob/852600061bcacd9b255d44f6312c96b6b1e00a2d/zip/src/Inflate.c vs https://github.com/freebsd/freebsd-src/commit/37c32e9f3a0dc8ba9d0b7cd06742502dcba1b457 or https://stuff.mit.edu/afs/sipb.mit.edu/project/sipbsrc/i386_nbsd1/unzip-5.12/inflate.c)
ZTrees.c # forked from 1993: zip 2.0 (https://github.com/root-project/root/blob/852600061bcacd9b255d44f6312c96b6b1e00a2d/zip/src/Trees.c vs https://github.com/pmqs/Info-ZIP-Family-Tree-for-Zip/blob/d25ed515bc56fae136b635d764ce8b363041aef5/trees.c)
ZipLZMA.c # ROOT
ZipLZMA.h # ROOT, public
ZipLZ4.c # ROOT
ZipLZ4.h # ROOT, public
ZipZSTD.cxx # ROOT
ZipZSTD.h # ROOT, public
)

include(CheckSourceCompiles)
check_source_compiles(CXX "
#if !defined(__linux) && defined(__linux__) && !defined(linux) && !(defined(__CYGWIN__) && defined(__GNUC__))
#error \"This is not Linux\"
#endif
int main() { return 0; }
" IS_LINUX)
add_library(ROOTtls INTERFACE)
target_sources(ROOTtls PUBLIC ${CMAKE_SOURCE_DIR}/core/foundation/inc) # TODO move to builtins directory
target_compile_definitions(ROOTtls INTERFACE
$<$<BOOL:${CMAKE_USE_PTHREADS_INIT}>:R__HAS_PTHREAD>
$<$<BOOL:${IS_LINUX}>:R__LINUX>
$<$<PLATFORM_ID:FreeBSD>:R__FBSD>
$<$<PLATFORM_ID:Windows>:R__WIN32>
$<$<PLATFORM_ID:SunOS>:R__SOLARIS>
)
target_include_directories(ROOTtls INTERFACE ${CMAKE_SOURCE_DIR}/core/foundation/inc) # TODO move to builtins. could be instead a fileSET.

target_include_directories(ROOTzip PUBLIC .)
target_link_libraries(ROOTzip PRIVATE LibLZMA::LibLZMA xxHash::xxHash LZ4::LZ4 ZSTD::ZSTD ROOTtls)
set_target_properties(ROOTzip PROPERTIES POSITION_INDEPENDENT_CODE ON)
3 changes: 1 addition & 2 deletions builtins/zip/ZInflate.c
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
#include <stdlib.h>
#include <string.h>

#ifdef WIN32
#ifdef _WIN32
#define __STDC__ 1
#endif
#ifdef __MWERKS__
Expand All @@ -18,7 +18,6 @@
static const int qflag = 0;

#include "zlib.h"
#include "RConfigure.h"
#include "ZipLZMA.h"
#include "ZipLZ4.h"

Expand Down
16 changes: 7 additions & 9 deletions core/lz4/src/ZipLZ4.cxx → builtins/zip/ZipLZ4.c
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,12 @@
*************************************************************************/

#include "ZipLZ4.h"
#include "unlikely.h"

#include "ROOT/RConfig.hxx"

#include <cinttypes>
#include <cstdint>
#include <cstdio>
#include <cstring>
#include <inttypes.h>
#include <stdint.h>
#include <stdio.h>
#include <string.h>
#include <lz4.h>
#include <lz4hc.h>
#include <xxhash.h>
Expand Down Expand Up @@ -57,7 +56,7 @@
returnStatus = LZ4_compress_default(src, &tgt[kHeaderSize], *srcsize, *tgtsize - kHeaderSize);
}

if (R__unlikely(returnStatus == 0)) { /* LZ4 compression failed */

Check warning on line 59 in builtins/zip/ZipLZ4.c

View workflow job for this annotation

GitHub Actions / alma10 clang Ninja builtins auto-registration off CMAKE_CXX_STANDARD=20

equality comparison with extraneous parentheses [-Wparentheses-equality]
return;
}
XXH64_hash_t checksumResult = XXH64(tgt + kHeaderSize, returnStatus, 0);
Expand All @@ -79,7 +78,7 @@
tgt[8] = (char)((in_size >> 16) & 0xff);

// Write out checksum.
XXH64_canonicalFromHash(reinterpret_cast<XXH64_canonical_t *>(tgt + kChecksumOffset), checksumResult);
XXH64_canonicalFromHash((XXH64_canonical_t *)(tgt + kChecksumOffset), checksumResult);

*irep = (int)returnStatus + kHeaderSize;
}
Expand Down Expand Up @@ -110,8 +109,7 @@
// what size of chunks does interleaving (avoiding two fetches from RAM) improve enough for the
// extra function call costs? NOTE that ROOT limits the buffer size to 16MB.
XXH64_hash_t checksumResult = XXH64(src + kHeaderSize, inputBufferSize, 0);
XXH64_hash_t checksumFromFile =
XXH64_hashFromCanonical(reinterpret_cast<const XXH64_canonical_t *>(src + kChecksumOffset));
XXH64_hash_t checksumFromFile = XXH64_hashFromCanonical((const XXH64_canonical_t *)(src + kChecksumOffset));

if (R__unlikely(checksumFromFile != checksumResult)) {
fprintf(
Expand Down
File renamed without changes.
File renamed without changes.
File renamed without changes.
3 changes: 1 addition & 2 deletions core/zstd/src/ZipZSTD.cxx → builtins/zip/ZipZSTD.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@
*************************************************************************/

#include "ZipZSTD.h"

#include "ROOT/RConfig.hxx"
#include "unlikely.h"

#include "zdict.h"
#include <zstd.h>
Expand Down
File renamed without changes.
25 changes: 25 additions & 0 deletions builtins/zip/unlikely.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#ifndef R__unlikely
#define R__unlikely

/*---- unlikely / likely expressions -----------------------------------------*/
// These are meant to use in cases like:
// if (R__unlikely(expression)) { ... }
// in performance-critical sections. R__unlikely / R__likely provide hints to
// the compiler code generation to heavily optimize one side of a conditional,
// causing the other branch to have a heavy performance cost.
//
// It is best to use this for conditionals that test for rare error cases or
// backward compatibility code.

#if (__GNUC__ >= 3) || defined(__INTEL_COMPILER)
#if !defined(R__unlikely)
#define R__unlikely(expr) __builtin_expect(!!(expr), 0)
#endif
#if !defined(R__likely)
#define R__likely(expr) __builtin_expect(!!(expr), 1)
#endif
#else
#define R__unlikely(expr) expr
#define R__likely(expr) expr
#endif
#endif
3 changes: 0 additions & 3 deletions core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -78,9 +78,6 @@ add_subdirectory(textinput)
add_subdirectory(thread)
add_subdirectory(utils)
add_subdirectory(zip)
add_subdirectory(lzma)
add_subdirectory(lz4)
add_subdirectory(zstd)

add_subdirectory(macosx)
add_subdirectory(unix)
Expand Down
22 changes: 7 additions & 15 deletions core/foundation/inc/ThreadLocalStorage.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,14 +57,6 @@

#include <stddef.h>

#ifdef __cplusplus
#include "RtypesCore.h"
#endif

#include <ROOT/RConfig.hxx>

#include "RConfigure.h"

#if defined(R__MACOSX)
# if defined(__clang__) && defined(MAC_OS_X_VERSION_10_7) && (defined(__x86_64__) || defined(__i386__))
# define R__HAS___THREAD
Expand All @@ -81,7 +73,7 @@
#if defined(R__WIN32)
# define R__HAS_DECLSPEC_THREAD
#endif
#if defined(R__FBSD)
#if defined(R__FBSD) && !defined(R__HAS_PTHREAD)
# define R__HAS_PTHREAD
#endif

Expand Down Expand Up @@ -130,32 +122,32 @@
template <int marker, typename T>
T &TTHREAD_TLS_INIT() {
TTHREAD_TLS(T*) ptr = NULL;
TTHREAD_TLS(Bool_t) isInit(kFALSE);
TTHREAD_TLS(bool) isInit(false);
if (!isInit) {
ptr = new T;
isInit = kTRUE;
isInit = true;
}
return *ptr;
}

template <int marker, typename Array, typename T>
Array &TTHREAD_TLS_INIT_ARRAY() {
TTHREAD_TLS(Array*) ptr = NULL;
TTHREAD_TLS(Bool_t) isInit(kFALSE);
TTHREAD_TLS(bool) isInit(false);
if (!isInit) {
ptr = new Array[sizeof(Array)/sizeof(T)];
isInit = kTRUE;
isInit = true;
}
return *ptr;
}

template <int marker, typename T, typename ArgType>
T &TTHREAD_TLS_INIT(ArgType arg) {
TTHREAD_TLS(T*) ptr = NULL;
TTHREAD_TLS(Bool_t) isInit(kFALSE);
TTHREAD_TLS(bool) isInit(false);
if (!isInit) {
ptr = new T(arg);
isInit = kTRUE;
isInit = true;
}
return *ptr;
}
Expand Down
13 changes: 0 additions & 13 deletions core/lz4/CMakeLists.txt

This file was deleted.

17 changes: 0 additions & 17 deletions core/lzma/CMakeLists.txt

This file was deleted.

3 changes: 1 addition & 2 deletions core/zip/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ target_sources(Core PRIVATE
src/RZip.cxx
)

target_link_libraries(Core PRIVATE ZLIB::ZLIB)
target_include_directories(Core PRIVATE ../../builtins/zip)
target_link_libraries(Core PRIVATE ZLIB::ZLIB ROOTzip)

target_include_directories(Core PUBLIC
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/inc>
Expand Down
11 changes: 0 additions & 11 deletions core/zstd/CMakeLists.txt

This file was deleted.

Loading