circle icon indicating copy to clipboard operation
circle copied to clipboard

Circle compiles the MULTI library (almost)

Open correaa opened this issue 3 years ago • 6 comments

Hi @seanbaxter , Alfredo here.

I wanted to let you know that I worked around all the errors in my code that circle complained about and other compilers didn't complain about. So, circle b170 can compile the library (tests).

https://gitlab.com/correaa/boost-multi/-/jobs/2412971718

Thank you very much, I mention your compiler as one of the compatible compilers, https://gitlab.com/correaa/boost-multi#dependecies-and-compiler-requirements

I will keep your compiler in the CI so if something else arises, I will let you know.

Having said that, there are still about a dozen locations that I have to workaround by plainly commenting code. Fortunately they are in tests only and not in the header file.

There are two types of problems, crashes and not recognizing constexpr that other compiler do recognize as constexpr (may be you are right and other compilers are wrong, I don't know). These are all the places (file and line number and at the reason at the end of the line) I had to comment.

test/constructors.cpp:49:	#if defined(__cpp_deduction_guides) and not defined(__NVCC__) and not defined(__circle_build__)  // circle 170 crashes
test/constructors.cpp:74:#if defined(__cpp_deduction_guides) and not defined(__NVCC__) and not defined(__circle_build__)  // circle 170 crashes
test/layout.cpp:233:#if defined(__circle_build__)  // circle doesn't see dimensionality as a constexpr "cannot access value of A at compile time;"
test/layout.cpp:252:#if defined(__circle_build__)  // circle doesn't recognize this as a constexpr "cannot access value of A at compile time;"
test/initializer_list.cpp:73:	#if defined(__cpp_deduction_guides) and not defined(__NVCC__) and not defined(__circle_build__)  // circle 170 crashes
test/initializer_list.cpp:273:	#if defined(__cpp_deduction_guides) and not defined(__NVCC__) and not defined(__circle_build__)  // circle 170 crashes
test/iterator.cpp:48:	#if not defined(__circle_build__)  // circle 170 crashes
test/iterator.cpp:51:	#if not defined(__circle_build__)  // circle 170 crashes
test/iterator.cpp:54:	#if not defined(__circle_build__)  // circle 170 crashes
test/array_ref.cpp:299:	#if not defined(__circle_build__)  // circle 170 crashes https://github.com/seanbaxter/circle/issues/114

all these files are here: https://gitlab.com/correaa/boost-multi/-/tree/master/test

If it helps debugging, this is how I compile the library (tests):

$ git clone https://gitlab.com/correaa/boost-multi.git
$ cd boost-multi
$ mkdir build && cd build
$ CXX=/builds/correaa/boost-multi/build_latest/circle cmake .. -DBOOST_LIBRARYDIR=/usr/lib/x86_64-linux-gnu/ -DENABLE_CIRCLE=1
$ make VERBOSE=1
$ ctest --output-on-failure

correaa avatar May 05 '22 05:05 correaa

Thanks for the report. I'll get to work on it this week.

seanbaxter avatar May 08 '22 19:05 seanbaxter

The library is added to godbolt Circle now. https://godbolt.org/z/fMxE5GhYr Doesn't use any Circle feature yet, but I am considering to.

correaa avatar Dec 08 '22 02:12 correaa