westonpace commented on PR #13028:
URL: https://github.com/apache/arrow/pull/13028#issuecomment-1131898875

   > Sorry I am new to C++ development (mostly Python before), can you 
elaborate what you mean here? (Is my local build using clang and CI build using 
gcc?)
   
   @icexelloss 
   
   Yes, but the other way around.  There are a number of different C/C++ 
compilers (our CI runs on, at least, gcc, clang, msvc, and mingw).  Both gcc 
and clang are popular on Linux systems and gcc is probably more common at this 
point.  Clang is used somewhat exclusively in macos environments and has been 
gaining in popularity on Linux recently too.
   
   Each compiler has its own quirks and each compiler supports a different set 
of warnings and some even interpret a particular warning in different ways.  
`-Wshorten-64-to-32` is only supported on clang (msvc will check for this as 
well but it has a different name for it).  Gcc has `-Wconversion` but that 
covers a lot more things (some of which we tolerate in the Arrow code base) and 
so we disable that warning on gcc.  So, if you are compiling locally with gcc, 
then you will never see those warnings until you submit to CI.
   
   Ultimately, code will need to pass without warnings on all of the compilers 
(except for the warnings we specifically tolerate) before we merge it in.  I 
don't know of a great way to do this.  My own work tends to involve a certain 
amount of "lint/warning" commits which I fail to catch before it gets to CI so 
I can understand the annoyance.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to