-
Notifications
You must be signed in to change notification settings - Fork 19
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
Installation problem for release 2.0.9 and 2.1.0 on Ubuntu 18 #99
Comments
Hi |
Same here with RHEL 8, R v.4.3.1 |
It seems that nobody has update it's system. Do it! the newer gcc has incredible optimizations from execution time to compilation size. |
Just did a Of note, the latest default system gcc in RHEL8 is the following: I guess I could upgrade gcc from source, but from @leahfa's comment this does not change anything? |
@ManosPapadakis95 this is not about my own operating system. This is about whether or not as maintainer of a package depending on Rfast I can continue to facilitate backward compatibility for my package with these older Ubuntu/gcc versions. So, this affects all users of the package and not just me. Further, this is not only about people's personal laptop but also about what is installed on computing clusters and servers, things that can be hard to control for a user and for that reason some level of backward compatibility is helpful. However, it is understandable that backward compatibility cannot be preserved forever and we are talking here about fairly old stuff. So, my post is mainly intended to better understand whether I should consider these gcc/Ubuntu versions as no longer supported. |
I understand what you mean. Each new version of Rfast fixes bugs and optimize code from the previous ones. So no, there is not a backward compatibillity for Rfast and of course this affects everyone. It is a great idea to to do it but I am alone. I support this package alone and its core is huge. Rfast is always checked to work with CRAN's supported operating systems. I cannot check for any system that exist out there. Also I don't know what to answer about all these different operating systems. If anyone knows how to fix it I will gladly accept his help. |
closed as duplicate to #92 |
@VincentGardeux - After updating my compilers to gcc13/gcc++13, and properly configuring R session to use these compilers (below) -I did manage to install older Rfast versions (up to 2.0.8). ** Flags set to configure R session ** |
Hi @leahfa and thank you for your comment. I was probably unclear with my message, but I could install Rfast 2.0.8 as well without issue (did not even need to add specific flags, or update gcc, it worked with the default system config). This actually matches with the title of this issue, which states that the problem is only related to the latest versions (after version 2.0.8). It's only the latest versions that did not work with the default RHEL8 gcc:
However, I installed the gcc-toolset-13 package with yum:
Which creates two new gcc / g++ compilers in /opt/rh/gcc-toolset-13/ (at least on my RHEL8 system). And thus do not update the default system gcc/g++
And, when I compile Rfast from R using
So it seems that the issue was indeed coming from the gcc/g++ version, as suggested by @ManosPapadakis95 Hope this helps |
Hi Vincent
Answering directly cause Manos closed teh issue already .
Thanks for sharing your experience
I understand its probably something related to my OS, but I cant figure it
out-I have installed gcc13 and gcc13++, and am pointing R directly to use
them .Its actually not a big deal now, as I finally have Rfast 2.0.8 which
(for now) is good enough for me. Am still curious though as to why this
happens, and have outlined the situation below in case you are interested
(disclaimer: am not a computer scientist, only got this far with a lot of
help from chatgpt :-) ).
Best
Leah
*Situation in detail*
slc_source is a solution for RHEL systems to choose between different
programs versions in a shell session without affecting system-wide
preferences; but in my OS (LEAP) I dont think it exists as such; instead,
we can set flags such as CC (for gcc version) and CXX (for gcc ++) to
choose compilers for that session. I have tried setting these flags ,and a
few others to be on the safe side, both from within the bash shell or from
within the R session(both should work similarly ). Setting these flags had
a lot of effect:
1. I was finally able to install Rfast 2.0.8 ( I know this one installed
for you previously with gcc8.5, but my system compiler was gcc7.5, probably
not enough for Rfast ),
2. I was able to update some old packages which had compiling issues
So I think this is evidence R is using gcc13 as expected
But still , installing Rfast v2.0.9 and up gives compiler error
(outputted below)
when I have some time I'll set gcc13 system-wide to see if it makes a
difference (not supposed to but who knows....)
g++ -std=gnu++17 -I"/usr/lib64/R/include" -DNDEBUG -I../inst/include
-I'/home/leah/R/x86_64-suse-linux-gnu-library/4.1/Rcpp/include'
-I'/home/leah/R/x86_64-suse-linux-gnu-library/4.1/RcppArmadillo/include'
-I'/home/leah/R/x8
6_64-suse-linux-gnu-library/4.1/RcppParallel/include' -I/usr/local/include
-fopenmp -fpic -fmessage-length=0 -grecord-gcc-switches -O2 -Wall
-D_FORTIFY_SOURCE=2 -fstack-protector-strong -funwind-tables
-fasynchronous-unwin
d-tables -fstack-clash-protection -g -c Coeff.cpp -o Coeff.o
In file included from ../inst/include/Rfast/templates.h:10:0,
from ../inst/include/Rfast/matrix.hpp:14,
from ../inst/include/Rfast.h:5,
from mn.h:4,
from Coeff.cpp:4:
../inst/include/Rfast/parallel.h:20:10: fatal error: execution: No such
file or directory
#include <execution>
^~~~~~~~~~~
compilation terminated.
make: *** [/usr/lib64/R/etc/Makeconf:177: Coeff.o] Error 1
ERROR: compilation failed for package ‘Rfast’
|
Hi @leahfa, Your error seems exactly the same as the one I had with gcc/g++ 8.5.0 but disappeared with gcc/g++ 13.1.1 Could you share the very beginning of the installation output?
Just to see which version of gcc/g++ is used by the installation procedure? Thanks |
Hey, i dont know how you get it to print out the compiler version! Its one of my frustrations that I cant (maybe depends on OS) . However can verify my flags are pointing to correct location, and other packages that had been giving me compilation issues do get installed now:
Pasting below the full output from install.packages ( after setting Sys.setenv(VERBOSE = "1"), which is as verbal as i know of) . Full output from installation attempts
The downloaded source packages are in |
Hi @leahfa Maybe you could try running this from R:
Just before running the [Edit] I think that running install.packages() from within R makes it that it's not using the Sys.getenv("CXX") information? |
Guess your OS is friendlier :-)
right, so, I know the system gcc is different - its 7.5 - but thats
the whole idea, if I understand it right, of setting the "CC" and "CXX"
variables, whether from bash shell or r session - this should determine
the gcc config for that particular bash/R session , without changing the
systemwide config - same idea as the scl_source command you use in RHEL.
Guess only way to know for sure is to update it system wide, will do that
next week as am a bit rushed today
Best and thanks for all suggestions!
…On Thu, 29 Feb 2024 at 14:31, Vincent Gardeux ***@***.***> wrote:
Hi @leahfa <https://github.com/leahfa>
Ha sorry, it's printing on my R output, I thought it was the default
behaviour, but apparently not, since you don't have it.
Maybe you could try running this from R:
system("gcc --version")
system("g++ --version")
Just before running the install.packages() function. To see which gcc/g++
versions are currently used?
—
Reply to this email directly, view it on GitHub
<#99 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AKHLAAPR2EUHHMK2MGK6LWDYV4PTFAVCNFSM6AAAAABC4KK2CWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNZRGA2DANRWGU>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
--
[image: חתימה2]
|
Yep indeed... It's because it seems to run Changing the .R/Makevars file could maybe fix it. Just another option. Good luck! |
uh-uh, pretty sure the g++ -std=gnu++17 is NOT version number (I dont even think there is one that high), it refers to some standard of C++ language, quote chatgpt (as I am no computer scientist :-) ) - "the GNU dialect of the C++17 standard" |
I meant the CXX you defined is "/usr/bin/g++-13" if I understand correctly? |
Describe the bug
I am not able to install the two most recent Rfast versions (2.0.9 and 2.1.0) on Ubuntu 18.04.6 LTS (bionic):
I get the same error when installing from CRAN via install.packages().
However, I managed to successfully install:
Could it be that the latest releases have a new dependency that is not automatically installed on Ubuntu 18 which I missed? or should I conclude that Ubuntu 18 is no longer supported by Rfast or its dependencies?
To Reproduce
I hope the description above is enough to reproduce the issue.
Expected behavior
Successful installation
Desktop (please complete the following information):
- OS: Ubuntu 18.04.6 LTS (bionic)
- R-Version 4.3.2
- Rfast-Version 2.1.0
- GCC-Version gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0
Additional context
none
The text was updated successfully, but these errors were encountered: