ericdunipace / RcppCGAL

Package to link to CGAL (Computational Geometry Algorithms Library) header files. Downloads CGAL version 5.6.1 on install.
10 stars 3 forks source link

R CMD CHECK warnings #1

Closed stla closed 2 years ago

stla commented 2 years ago

Hello,

Thank you for this nice package. I started to use it and it works well. Unfortunately R CMD CHECK throws this warning:

❯ checking compiled code ... WARNING
  File ‘RCGAL/libs/RCGAL.so’:
    Found ‘_ZSt4cerr’, possibly from ‘std::cerr’ (C++)
      Object: ‘rcgal.o’
    Found ‘abort’, possibly from ‘abort’ (C)
      Object: ‘rcgal.o’
    Found ‘exit’, possibly from ‘exit’ (C)
      Object: ‘rcgal.o’

  Compiled code should not call entry points which might terminate R nor
  write to stdout/stderr instead of to the console, nor use Fortran I/O
  nor system RNGs.

I searched the word cerr in your repo and std::cerr occurs very often. Do you think there's a possible workaround? I also found this discussion about a similar issue.

ericdunipace commented 2 years ago

Hi, thanks for bringing this up. I'll see if there's a workaround that I can introduce into the RcppCGAL package without manually editing all the header files. For now, I think the workaround they suggest to put into the header files,

#include <CGAL/assertions.h>
#undef CGAL_error
#define CGAL_error
#undef CGAL_error_msg
#define CGAL_error_msg(msg)

should work temporarily.

If you have any ideas, let me know!

stla commented 2 years ago

Hello,

Thank you for your reply. I tried to include your lines of code at the head of my CPP file and the compilation fails.

File Triangle_3_Line_3_intersection.h:

197        default: // should not happen.
198         CGAL_error();
199          return intersection_return<typename K::Intersect_3, typename K::Triangle_3, typename K::Line_3>();

Line 198: expected primary-expression before ')' token.

ericdunipace commented 2 years ago

Hm, this worked with your code as it was last night my time. Looks like you might need to play around with redefining std::cerr. I should note that if you're not planning to upload to CRAN, the warning about std::cerr doesn't matter.

ericdunipace commented 2 years ago

Hey, I've updated the package to search out and replace the calls to cerr, cout, and the like. I tried R CMD check on your package and it passed, but let me know if you find any other problems as you're making your package. I don't think it'll be on CRAN before the weekend but you can download from the GitHub here. Thank you again for finding this bug.

stla commented 2 years ago

Thanks, excellent! Will try. No, I am not in a hurry to submit it on CRAN

stla commented 2 years ago

Hello @ericdunipace

I'm sorry to announce you there is still this warning:

checjRCGAL 002

Which platform do you use for R CMD CHECK ? My warning comes from the Github action, which uses Ubutnu. I will try on Windows.

stla commented 2 years ago

Hello @ericdunipace ,

I'm currently running R CMD CHECK on my personal Ubuntu 18. I ran it on Windows 10 and got this warning:

* checking whether package 'RCGAL' can be installed ... WARNING
Found the following significant warnings:
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:214:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'boost::movelib::detail::iterator_to_element_ptr<std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >*>::element_type' {aka 'struct std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:214:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'boost::movelib::detail::iterator_to_element_ptr<std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>*>::element_type' {aka 'struct std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Advancing_front_surface_reconstruction_cell_base_3<CGAL::Epick, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Epick, CGAL::Triangulation_cell_base_3<CGAL::Epick, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Advancing_front_surface_reconstruction_vertex_base_3<CGAL::Epick>, CGAL::Advancing_front_surface_reconstruction_cell_base_3<CGAL::Epick> > > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Triangulation_vertex_base_with_info_3<unsigned int, CGAL::Epick> > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Delaunay_triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_with_info_3<int, CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Reconstruction_vertex_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_vertex_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_vertex_base_3<void> > >, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_with_info_3<int, CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_cell_base_3<void> > > >, CGAL::Sequential_tag> > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Delaunay_triangulation_cell_base_with_circumcenter_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Surface_mesh_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Surface_mesh_vertex_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_vertex_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_vertex_base_3<void> > >, CGAL::Delaunay_triangulation_cell_base_with_circumcenter_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Surface_mesh_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_cell_base_3<void> > > > >, CGAL::Sequential_tag> > > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
See 'C:/SL/MyPackages/RCGAL.Rcheck/00install.out' for details.
stla commented 2 years ago

Hello @ericdunipace

R CMD CHECK has been successfull on my personal Ubuntu

ericdunipace commented 2 years ago

So it sounds like the issue is resolved? I ran the command check on my Mac running OS 11.6. Let me know if you're still getting errors.

stla commented 2 years ago

On Ubuntu it is resolved. But now I get these warnings on Windows:

* checking whether package 'RCGAL' can be installed ... WARNING
Found the following significant warnings:
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:214:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'boost::movelib::detail::iterator_to_element_ptr<std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >*>::element_type' {aka 'struct std::pair<CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > >, CGAL::internal::In_place_list_iterator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > >, std::allocator<CGAL::HalfedgeDS_in_place_list_halfedge<CGAL::I_Polyhedron_halfedge<CGAL::HalfedgeDS_halfedge_max_base_with_id<CGAL::HalfedgeDS_list_types<CGAL::Epick, CGAL::I_Polyhedron_derived_items_3<CGAL::Polyhedron_items_with_id_3>, std::allocator<int> >, long long unsigned int> > > > > >'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:214:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'boost::movelib::detail::iterator_to_element_ptr<std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>*>::element_type' {aka 'struct std::pair<CGAL::SM_Halfedge_index, CGAL::SM_Halfedge_index>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Advancing_front_surface_reconstruction_cell_base_3<CGAL::Epick, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Epick, CGAL::Triangulation_cell_base_3<CGAL::Epick, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Advancing_front_surface_reconstruction_vertex_base_3<CGAL::Epick>, CGAL::Advancing_front_surface_reconstruction_cell_base_3<CGAL::Epick> > > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Triangulation_vertex_base_with_info_3<unsigned int, CGAL::Epick> > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Delaunay_triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_with_info_3<int, CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Reconstruction_vertex_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_vertex_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_vertex_base_3<void> > >, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_with_info_3<int, CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_cell_base_3<CGAL::Reconstruction_triangulation_default_geom_traits_3<CGAL::Robust_circumcenter_filtered_traits_3<CGAL::Epick> >, CGAL::Triangulation_ds_cell_base_3<void> > > >, CGAL::Sequential_tag> > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
  C:/PortableApps/R/R-4.1.2/App/R-Portable/library/BH/include/boost/container/detail/copy_move_algo.hpp:184:19: warning: 'void* memmove(void*, const void*, size_t)' writing to an object of type 'value_type' {aka 'struct std::pair<CGAL::internal::CC_iterator<CGAL::Compact_container<CGAL::Delaunay_triangulation_cell_base_with_circumcenter_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Surface_mesh_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_cell_base_3<CGAL::Triangulation_data_structure_3<CGAL::Surface_mesh_vertex_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_vertex_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_vertex_base_3<void> > >, CGAL::Delaunay_triangulation_cell_base_with_circumcenter_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Surface_mesh_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Delaunay_triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_cell_base_3<CGAL::Robust_circumcenter_traits_3<CGAL::Epick>, CGAL::Triangulation_ds_cell_base_3<void> > > > >, CGAL::Sequential_tag> > > > > >, CGAL::Default, CGAL::Default, CGAL::Default>, false>, int>'} with no trivial copy-assignment; use copy-assignment or copy-initialization instead [-Wclass-memaccess]
See 'C:/SL/MyPackages/RCGAL.Rcheck/00install.out' for details.

Perhaps I will open a CGAL issue to ask what they think about that.

ericdunipace commented 2 years ago

I agree that's probably something internal to CGAL itself and they would have the best insight.

stla commented 2 years ago

Hello Eric,

Here is a blog post which talks about your package (and mine).

ericdunipace commented 2 years ago

Awesome, thank you!

stla commented 1 year ago

Hello Eric,

I finally put almost all my packages using RcppCGAL in the trash to keep only one: cgalMeshes. This one is better.

R CMD Check still found some stderr and things like that:

Warning: File ‘cgalMeshes/libs/cgalMeshes.so’:
  Found ‘exit’, possibly from ‘exit’ (C)
    Object: ‘isomesh.o’
  Found ‘puts’, possibly from ‘printf’ (C), ‘puts’ (C)
    Object: ‘isomesh.o’
  Found ‘stderr’, possibly from ‘stderr’ (C)
    Object: ‘isomesh.o’
  Found ‘stdout’, possibly from ‘stdout’ (C)

I believe they are related to #include <CGAL/Gray_level_image_3.h>.

But this is used for a feature which is not important, I can remove it.

ericdunipace commented 1 year ago

What platform are you using, version of R, and version of CGAL?

stla commented 1 year ago

I'm using Linux Mint 20, R 4.2.2, and the version of CGAL provided by your package (the one released on CRAN).

ericdunipace commented 1 year ago

Ok. I’m in a bit of a busy stretch for the next week or so but will take a look at after. I’ll also update the version of the CGAL header files and see if that helps. You could also play around with that too. On Jan 31, 2023, 7:25 PM -0800, stla @.***>, wrote:

I'm using Linux Mint 20, R 4.2.2, and the version of CGAL provided by your package (the one released on CRAN). — Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you were mentioned.Message ID: @.***>

stla commented 1 year ago

No problem, I removed this feature, it was not important.

Currently some packages using RcppCGAL on CRAN can't be installed on Windows, because of an issue with the mpfr library. I have been told by a CGAL member that on summer 2023, version 5.6 will be released and this version will no longer depends on gmp and mpfr, these dependencies will be "replaced" with the Boost header files. So maybe it would be judicious to wait summer for upgrading.

stla commented 1 year ago

By the way I would be glad to help for the upgrade in RcppCGAL, but I don't know what I'd have to do...

ericdunipace commented 1 year ago

Hi @stla , I'm in the middle of an update for this package. I've tried testing your packages on Mac BigSur and they seem to be working. Windows will still likely give an error because of the mpfr library. I agree waiting for the mpfr library to be updated this summer would probably be the best course.

I've opened an issue #7

stla commented 1 year ago

Hello @ericdunipace ,

CRAN has updated mpfr and now it works.

I was not clear enough: mpfr will not be updated this summer. I said that CGAL will no longer depend on mpfr this summer.

stla commented 1 year ago

It's nice if you upgrade, I'd like to implement the alpha-wrapping. And maybe some warnings which prevent me to publish some packages on CRAN have gone in 5.5.2.

ericdunipace commented 1 year ago

Sorry, I should have said CGAL library, not mpfr. You were clear.

I'm negotiating with CRAN now about the update. Should be up soon!

ericdunipace commented 1 year ago

@stla the latest GitHub release and CRAN versions are live. Let me know if it's working ok for you now

stla commented 1 year ago

Yes I saw that, thanks. That seems to work fine. Except my package cgalPolygons, the CRAN checks still found some errors with CLANG-USBAN when the examples run. That's sad, this package is really cool.