Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improvement backports from CDT_3 branch (Follow-up to PR #8170) #8273

Draft
wants to merge 18 commits into
base: master
Choose a base branch
from

Conversation

lrineau
Copy link
Member

@lrineau lrineau commented Jun 10, 2024

Summary of Changes

In the PR #8170, merged for CGAL-6.0, there was several commits that I had to revert, because they broke the testsuite results:

This pull-request reintroduces those features, for CGAL-6.1.

Release Management

  • Affected package(s):
  • License and copyright ownership: maintenance by GeometryFactory

@lrineau

This comment was marked as outdated.

@lrineau

This comment was marked as outdated.

lrineau added a commit to lrineau/cgal that referenced this pull request Jul 1, 2024
@lrineau lrineau changed the title Follow-up to PR #8170 Improvement backports from CDT_3 branch (Follow-up to PR #8170) Aug 22, 2024
@lrineau

This comment was marked as off-topic.

@lrineau

This comment was marked as off-topic.

@lrineau

This comment was marked as off-topic.

This comment was marked as off-topic.

...and `refactor Polyline_constraint_hierarchy_2` to use it.

`CGAL::unordered_flat_map` will be Boost `unordered_flat_map` if availlable, or the standard `std::unordered_map` otherwise.
To debug non-determinism on Linux platforms.
That uses Boost.STLInterfaces from Boost >= 1.74.
  That code was never used nor tested, and cannot compile anyway.
- remove all mentions of `Edge` and `Constraint`
- `Subconstraint_iterator` is renamed `Subconstraint_and_contexts_iterator` (because of its value type)
- a new `Subconstraint_iterator`, with value type `Subconstraint`
- a few unused/untested and uncompilable functions are removed from the code
- a lot of internal renamings

== Breaking changes ==

For `Constrained_triangulation_plus_2`, there are a few breaking changes...

- The value type of `subconstraints_begin()`, `subconstraints_end()`, of the range `subconstraints()` has changed to `Subconstraint` (a simple `std::pair` of vertex handles). That is actually a kind of bug-fix, because it was documented as such in the user manual.
- The new member functions `subconstraints_and_contexts_begin()`, `subconstraints_and_contexts_end()`, `subconstraints_and_contexts()` are created get the old value type (`std::pair<const Subconstraint, std::list<Context>*>`).
- A few range types have changed from `CGAL::Iterator_range<It>` to `unspecified_type`, for efficiency reasons.
- Doc fixes.

== Determinism ==

Even if it was not documented, the range `subconstraints()` is deterministic (used by Mesh_2), and `subconstraints_and_contexts()` is not.
@lrineau lrineau force-pushed the CGAL-followup_PR_8170-lrineau branch from e0ba29f to eafa97a Compare January 13, 2025 16:07
@sloriot
Copy link
Member

sloriot commented Jan 14, 2025

boost 1.74 is requested but some test plateforms do not have it. Do you really need that minimal version?

The regular expression I used was:

```
((?!(?:^.*(\/\/|\/\*).*|^ *\* .*|^[^"]*"(?:"[^"]*"|[^"])*))^(?:.*[ ,\(]|))(\b(?:(?:[A-Za-z]+::)*)(?:max|min))\b *\(
```
@lrineau
Copy link
Member Author

lrineau commented Jan 14, 2025

Dump the requirement for Boost to 1.74 or later? (currently 1.72)

boost 1.74 is requested but some test plateforms do not have it. Do you really need that minimal version?

Short answer

Yes, I really need it.

Long answer

Actually no: I could use the ancient boost::iterator_facade from Boost.Iterator, but Boost.STLInterfaces is a lot nicer to use, and create real iterator types, even with proxy iterators like the one I wrote.

But platforms supported by CGAL-6.0 currently have also Boost 1.74 or later.

Details... (click to expand)

So...

  • there is no supported versions of Linux that is currently supported by CGAL-6.0 and will not be by CGAL-6.1,
  • all the package managers have Boost >= 1.85,
  • and for Windows that is as easy to install any version of Boost as it is for version 1.72.

@afabri
Copy link
Member

afabri commented Jan 14, 2025

I saw that you changed it in ThirdParties.txt,. So all which remains to do is to ask Nicolas to upgrade the testsuite machines.

@@ -3,6 +3,9 @@

## [Release 6.1](https://github.com/CGAL/cgal/releases/tag/v6.1)

### General Changes
- The minimal supported version of Boost is now 1.74.0.

### [Algebraic Kernel](https://doc.cgal.org/6.1/Manual/packages.html#PkgAlgebraicKernelD)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Must also announce the breaking changes in Triangulation_2/doc/Triangulation_2/CGAL/Constrained_triangulation_plus_2.h.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants