Commit Graph

83 Commits

Author SHA1 Message Date
Sébastien Loriot cbe02d40e7 rename ilogb macro 2018-11-06 10:59:54 +01:00
Laurent Rineau 2d7dcb0c39 Merge pull request #3166 from sloriot/Core-bigfloat_from_ui
Add missing constructor for unsigned int
2018-06-14 17:36:49 +02:00
Sébastien Loriot 7511b3e1b2 add missing constructor for unsigned int 2018-06-12 12:59:51 +02:00
Sébastien Loriot ef09d971e2 undo unwanted change in 777d305 2018-06-11 22:09:37 +02:00
Andreas Fabri 777d3057d9 Undef the macros at the end, as they are not identical (one has an EXPORT) 2018-05-23 11:48:58 +02:00
Andreas Fabri b33ab791e1 Disable a warning. Fix an allocator call 2018-05-15 15:37:51 +02:00
Laurent Rineau 78e7060525 Merge pull request #2712 from afabri/CGAL-VC+warnlevel_4-GF
Deal with VC++ warnings of level /W4
2018-02-19 14:27:06 +01:00
Andreas Fabri d38fea5ffe Add missing #include 2018-02-12 09:44:10 +00:00
Andreas Fabri abe933a684 Address the warning concerning SCL_SECURE for VC++ 2018-02-09 15:00:14 +00:00
Andreas Fabri c9728abdee build CORE lib without warnings 2018-02-01 10:52:44 +00:00
Andreas Fabri 6cc385c6ec Number_types 2018-01-17 15:47:18 +00:00
Andreas Fabri cbf3a16471 libs compile without warning 2018-01-17 15:02:32 +00:00
Laurent Rineau 3c6640bf59 Merge pull request #1436 from lrineau/CGAL-new_cmake-GF
Renewal of CMake scripts: header-only, ctest, CMake>=3.1

# Conflicts:
#	Installation/config/testfiles/CGAL_CFG_NESTED_CLASS_FRIEND_DECLARATION_BUG.cpp
2017-12-05 18:20:05 +01:00
Laurent Rineau 26fe3df693 Try to fix link errors on Windows 2017-11-29 11:22:30 +01:00
Laurent Rineau bfc654c929 Change the exports of CGAL_Core, to fix a link error 2017-11-28 17:59:18 +01:00
Sébastien Loriot 8cdfad0d08 add missing URL and Id tags 2017-11-15 22:58:57 +01:00
Sébastien Loriot 6b568a8f62 add SPDX identifiers for Core 2017-11-12 10:21:35 +01:00
Sébastien Loriot 0698f79aff add SPDX identifier for files under the LGPL-3+ license 2017-11-12 10:17:50 +01:00
Laurent Rineau 8dfa4f4dc8 Fix link error of demo/Polyhedron, in Debug and CGAL_HEADER_ONLY 2017-07-27 17:28:21 +02:00
Andreas Fabri cc3c4c93ba CGAL_Core: make it less verbose to fix #1915 2017-04-03 12:36:43 +02:00
Laurent Rineau 6d79ebdaf8 Merge pull request #1916 from sloriot/Core-bug_fix_large_MSB
Fix Expr computation when a Node in the tree has a large MSB bound
2017-02-21 17:50:21 +01:00
Laurent Rineau 784ce69bea Merge pull request #1923 from sloriot/CORE-Expr_approx_bound
Make sure the approximation exceeds the separation bound
2017-02-21 17:50:08 +01:00
Sébastien Loriot aab162e81c use a thighter approximation 2017-02-21 17:30:24 +01:00
Sébastien Loriot 3dc5f7d800 make sure the approximation exceeds the separation bound 2017-02-21 17:12:56 +01:00
Sébastien Loriot e9cfce4f45 Do the approximation computation even if MSB bounds are too large
extLong manages overflow and underflow, this patch forces the
approximation to be done even if the bounds are too large
2017-02-20 18:15:49 +01:00
Laurent Rineau b73a88babc CGAL_Core MemoryPool<T> will always use Boost.Thread with g++
Because of bug in gcc, even if the C++11 `thread_local` keyword can be
used, it cannot be used for the TLS static member of the class template
`MemoryPool<T>`. That triggers a bug in gcc (tested with g++ 6.3.1):
```
.../include/CGAL/CORE/MemoryPool.h:113:25: error: redefinition of 'bool __tls_guard'
 MemoryPool<T, nObjects> MemoryPool<T, nObjects>::memPool;
                         ^~~~~~~~~~~~~~~~~~~~~~~
.../include/CGAL/CORE/MemoryPool.h:113:25: note: 'bool __tls_guard' previously declared here
.../include/CGAL/CORE/MemoryPool.h:113: confused by earlier errors, bailing out
Preprocessed source stored into /tmp/cc4xCWuR.out file, please attach this to your bugreport.
```

The bug seems to be from g++ >= 5:
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54948
2017-02-08 17:05:13 +01:00
Laurent Rineau 4e1b250b9c Followup for PR #1744
The commit 6c77740485 was not complete:
> CORE MemoryPool<T> has to be destroyed last
>
> If Boost implementation of thread local storage is used, the order of
> destructors is reversed, compared to C++11 `static thread_local`. The
> solution for CORE `MemoryPool<T>` is to make the static variable a
> static member of the class, and initialize the pointer only inside the
> function. That ensures that the destructor will be called after the
> destructor of local static variables.

Actually the explanation about the reverse order is not right, and even
with C++ `thread_local`, we have to ensure that the static data member
of `MemoryPool<T>` is created before any other CORE static variable.

This commit is a followup of the commit
6c7774048521d2779d1657871f476624a46d220b: even in C++11, the `memPool`
variable becomes a thread-local data member, instead of a thread-local
variable at function scope.

Fix #1844.
2017-02-07 14:18:32 +01:00
Laurent Rineau ee21a5a077 Merge pull request #1744 from afabri/CORE-static-GF
CGAL_CORE:  Make it thread safe
2017-01-12 11:10:38 +01:00
Laurent Rineau 6c77740485 CORE MemoryPool<T> has to be destroyed last
If Boost implementation of thread local storage is used, the order of
destructors is reversed, compared to C++11 `static thread_local`. The
solution for CORE `MemoryPool<T>` is to make the static variable a
static member of the class, and initialize the pointer only inside the
function. That ensures that the destructor will be called after the
destructor of local static variables.
2017-01-10 16:27:44 +01:00
Andreas Fabri e869afa8af bugfix 2017-01-10 14:09:27 +01:00
Andreas Fabri 7b6e4a27ca Even read only static const variables must be thread local
as otherwise their destructor is called after the destructor
of the CORE memory pool.
2017-01-10 13:53:50 +01:00
Andreas Fabri 46c6ea1f3f Deal with CGAL_NO_ATOMIC 2017-01-09 15:08:42 +01:00
Sébastien Loriot e696a857f9 use direct initialization also in header-only mode 2017-01-09 15:08:42 +01:00
Sébastien Loriot 109f021a3a use direct initialization 2017-01-09 15:08:42 +01:00
Andreas Fabri 185208646a fixed and tested 2017-01-09 15:08:42 +01:00
Andreas Fabri f1a39ef43f No need for static 2017-01-09 15:08:42 +01:00
Andreas Fabri 8972c92a14 make Memory pool thread safe 2017-01-09 15:08:42 +01:00
Andreas Fabri 1b2fcdb82a make static variable for pretty printing const 2017-01-09 15:08:42 +01:00
Andreas Fabri fab26b5a05 make variables atomic 2017-01-09 15:08:42 +01:00
Andreas Fabri 1d0ec5bd38 WIP: make variables atomic; it no longer compiles :( 2017-01-09 15:08:42 +01:00
Andreas Fabri 8faf83433b declare constants const 2017-01-09 15:08:42 +01:00
Andreas Fabri 4b79bd484f NT_TYPE is not used anywhere 2017-01-09 15:08:42 +01:00
Andreas Fabri 36b34b3e63 declare constants const 2017-01-09 15:08:42 +01:00
Andreas Fabri e0d026d552 polyWilkinson is not used anywhere 2017-01-09 15:08:42 +01:00
Andreas Fabri 4f71d02c6f Remove random functions as they are not in the CGAL Core API 2017-01-09 15:08:42 +01:00
Andreas Fabri 5321a90c27 Remove the geometry files 2017-01-09 15:08:42 +01:00
Andreas Fabri fa7217c682 declare constants const 2017-01-09 15:08:41 +01:00
Andreas Fabri bb033e2037 Remove export declaration for member functions as the class is exported. Suppress VC++ warnings 2016-09-22 12:11:35 +02:00
Laurent Rineau 54fe1b8b56 CGAL_Core: fix -fvisibility issues on Linux 2016-09-14 16:12:02 +02:00
Sébastien Loriot ff1b240a37 replace assert by CGAL_assertion in CGAL code 2016-08-25 11:12:17 +02:00