Git Product home page Git Product logo

Comments (17)

rickhg12hs avatar rickhg12hs commented on July 19, 2024 1

I excel at being fall-out. 😄

I'll be upgrading to 1.0 soon too... As soon as the minimum required packages all work there. This one does with this fix, so ... progress!!!

from cudaapi.jl.

maleadt avatar maleadt commented on July 19, 2024

Isn't the directory containing the actual gcc (ie. /bin) on PATH?
Could you run with JULIA_DEBUG=CUDAapi?

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

I ran the same exact commands again after starting with JULIA_DEBUG=CUDAapi ./julia, and the same exact output was reproduced. What does the debug var do? Should I be looking for extra output somewhere?

julia> ENV["JULIA_DEBUG"]
"CUDAapi"

julia> ENV["PATH"]
"/home/rick/.cargo/bin:/home/rick/texlive/TEXDIR2017/bin/x86_64-linux:/home/rick/.cargo/bin:/home/rick/texlive/TEXDIR2017/bin/x86_64-linux:/usr/lib64/qt-3.3/bin:/usr/lib64/ccache:/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/home/rick/.local/bin:/home/rick/bin"

julia> using CUDAapi

julia> find_host_compiler()
WARNING: Could not parse GCC version info ("ccache version 3.3.6"), skipping this compiler.
ERROR: Could not find a suitable GCC
Stacktrace:
 [1] find_host_compiler(::Void) at /home/rick/.julia/v0.6/CUDAapi/src/discovery.jl:361
 [2] find_host_compiler() at /home/rick/.julia/v0.6/CUDAapi/src/discovery.jl:322

julia> find_binary(["gcc"], locations=["/usr/bin"])
"/usr/bin/gcc"

from cudaapi.jl.

maleadt avatar maleadt commented on July 19, 2024

Oh sorry, you're still using Julia 0.6. That variable only works on 0.7/1.0, could you try the package on one of those Julia versions? Thanks!

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

...could you try a master version of the package on one of those Julia versions?

Sorry, not enough of the packages I use work on 0.7/1.0 yet. I guess I'll just have to wait.

from cudaapi.jl.

maleadt avatar maleadt commented on July 19, 2024

Sorry, not enough of the packages I use work on 0.7/1.0 yet. I guess I'll just have to wait.

Understandably, but there's no need to upgrade as Julia 1.0 works in a separate package directory. Or you could even use a temporary one:

$ JULIA_DEPOT_PATH=/tmp/julia julia-1.0                                                                                                                                                                                      
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.0 (2018-08-08)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(v1.0) pkg> add CUDAapi
   Cloning default registries into /tmp/julia/registries
   Cloning registry General from "https://github.com/JuliaRegistries/General.git"
  Updating registry at `/tmp/julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
 Installed CUDAapi ─ v0.5.0
  Updating `/tmp/julia/environments/v1.0/Project.toml`
  [3895d2a7] + CUDAapi v0.5.0
  Updating `/tmp/julia/environments/v1.0/Manifest.toml`
  [3895d2a7] + CUDAapi v0.5.0
  [2a0f44e3] + Base64 
  [ade2ca70] + Dates 
  [8ba89e20] + Distributed 
  [b77e0a4c] + InteractiveUtils 
  [76f85450] + LibGit2 
  [8f399da3] + Libdl 
  [37e2e46d] + LinearAlgebra 
  [56ddb016] + Logging 
  [d6f4376e] + Markdown 
  [44cfe95a] + Pkg 
  [de0858da] + Printf 
  [3fa0cd96] + REPL 
  [9a3f8284] + Random 
  [ea8e919c] + SHA 
  [9e88b42a] + Serialization 
  [6462fe0b] + Sockets 
  [8dfed614] + Test 
  [cf7118a7] + UUIDs 
  [4ec0a83e] + Unicode 

julia> ENV["JULIA_DEBUG"] = "CUDAapi"
"CUDAapi"

julia> using CUDAapi
[ Info: Precompiling CUDAapi [3895d2a7-ec45-59b8-82bb-cfc6a382f9b3]

julia> find_binary(["gcc"])
┌ Debug: Request to look for binary gcc
│   locations = 0-element Array{String,1}
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Looking for binary gcc
│   locations =
│    5-element Array{String,1}:
│     "/home/tbesard/Config/bin"
│     "/usr/local/bin"          
│     "/usr/bin"                
│     "/bin"                    
│     "/usr/games"              
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Found binary x86_64-linux-gnu-gcc-6 at /usr/bin
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:133
"/usr/bin/x86_64-linux-gnu-gcc-6"

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

After reinstalling v1.0.0 and reorienting (no contains anymore) and dealing with PITA type conversions, find_host_compiler still doesn't work on my systems ...

$ JULIA_DEPOT_PATH=/tmp/julia ./julia 
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.0.0 (2018-08-08)
 _/ |\__'_|_|_|\__'_|  |  Official https://julialang.org/ release
|__/                   |

(v1.0) pkg> add CUDAapi
   Cloning default registries into /tmp/julia/registries
   Cloning registry General from "https://github.com/JuliaRegistries/General.git"
  Updating registry at `/tmp/julia/registries/General`
  Updating git-repo `https://github.com/JuliaRegistries/General.git`
 Resolving package versions...
 Installed CUDAapi ─ v0.5.0
  Updating `/tmp/julia/environments/v1.0/Project.toml`
  [3895d2a7] + CUDAapi v0.5.0
  Updating `/tmp/julia/environments/v1.0/Manifest.toml`
  [3895d2a7] + CUDAapi v0.5.0
  [2a0f44e3] + Base64 
  [ade2ca70] + Dates 
  [8ba89e20] + Distributed 
  [b77e0a4c] + InteractiveUtils 
  [76f85450] + LibGit2 
  [8f399da3] + Libdl 
  [37e2e46d] + LinearAlgebra 
  [56ddb016] + Logging 
  [d6f4376e] + Markdown 
  [44cfe95a] + Pkg 
  [de0858da] + Printf 
  [3fa0cd96] + REPL 
  [9a3f8284] + Random 
  [ea8e919c] + SHA 
  [9e88b42a] + Serialization 
  [6462fe0b] + Sockets 
  [8dfed614] + Test 
  [cf7118a7] + UUIDs 
  [4ec0a83e] + Unicode 

julia> ENV["JULIA_DEBUG"] = "CUDAapi"
"CUDAapi"

julia> using CUDAapi
[ Info: Precompiling CUDAapi [3895d2a7-ec45-59b8-82bb-cfc6a382f9b3]

julia> find_host_compiler()
┌ Debug: Request to look for binary gcc
│   locations = 0-element Array{String,1}
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Looking for binary gcc
│   locations =
│    12-element Array{String,1}:
│     "/home/rick/.cargo/bin"                         
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│     "/home/rick/.cargo/bin"                         
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│     "/usr/lib64/qt-3.3/bin"                         
│     "/usr/lib64/ccache"                             
│     "/usr/local/bin"                                
│     "/usr/local/sbin"                               
│     "/usr/bin"                                      
│     "/usr/sbin"                                     
│     "/home/rick/.local/bin"                         
│     "/home/rick/bin"                                
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Found binary ccache at /usr/lib64/ccache/../../bin
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:133
ERROR: UndefVarError: warn not defined
Stacktrace:
 [1] find_host_compiler(::Nothing) at /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:359
 [2] find_host_compiler() at /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:331
 [3] top-level scope at none:0

julia> find_binary(["gcc"])
┌ Debug: Request to look for binary gcc
│   locations = 0-element Array{String,1}
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Looking for binary gcc
│   locations =
│    12-element Array{String,1}:
│     "/home/rick/.cargo/bin"                         
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│     "/home/rick/.cargo/bin"                         
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│     "/usr/lib64/qt-3.3/bin"                         
│     "/usr/lib64/ccache"                             
│     "/usr/local/bin"                                
│     "/usr/local/sbin"                               
│     "/usr/bin"                                      
│     "/usr/sbin"                                     
│     "/home/rick/.local/bin"                         
│     "/home/rick/bin"                                
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Found binary ccache at /usr/lib64/ccache/../../bin
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:133
"/usr/lib64/ccache/../../bin/ccache"                   

julia> find_binary(["gcc"], locations=filter(p->!occursin(r"ccache",p), convert(Vector{String},split(ENV["PATH"],':'))))
┌ Debug: Request to look for binary gcc
│   locations =
│    11-element Array{String,1}:
│     "/home/rick/.cargo/bin"                         
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│     "/home/rick/.cargo/bin"                         
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"
│     "/usr/lib64/qt-3.3/bin"                         
│     "/usr/local/bin"                                
│     "/usr/local/sbin"                               
│     "/usr/bin"                                      
│     "/usr/sbin"                                     
│     "/home/rick/.local/bin"                         
│     "/home/rick/bin"                                
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Looking for binary gcc
│   locations =
│    34-element Array{String,1}:
│     "/home/rick/.cargo/bin"                             
│     "/home/rick/.cargo/bin/bin"                         
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"    
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux/bin"
│     "/home/rick/.cargo/bin"                             
│     "/home/rick/.cargo/bin/bin"                         
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux"    
│     "/home/rick/texlive/TEXDIR2017/bin/x86_64-linux/bin"
│     ⋮                                                   
│     "/usr/lib64/ccache"                                 
│     "/usr/local/bin"                                    
│     "/usr/local/sbin"                                   
│     "/usr/bin"                                          
│     "/usr/sbin"                                         
│     "/home/rick/.local/bin"                             
│     "/home/rick/bin"                                    
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/CUDAapi.jl:10
┌ Debug: Found binary gcc at /usr/bin
└ @ CUDAapi /tmp/julia/packages/CUDAapi/5KGp3/src/discovery.jl:133
"/usr/bin/gcc"

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

Interesting how in the last call to find_binary, locations ballooned from 11 to 34 elements.

from cudaapi.jl.

maleadt avatar maleadt commented on July 19, 2024

OK, sorry for the delay. This is caused by find_binary returning the first and only match, which is a symlink to ccache in your case. Next, those symlinks are resolved, which changes the behavior (returning ccache's version instead of the gcc's). Please test #56 and see if this fixes your issue.

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

After, ...

$ cd ~/.julia/v0.6/CUDAapi
$ git branch mytestbr
$ git checkout mytestbr
$ git merge acd564aacfab953c3038b2525ee338b5d880afdc

... it seems there's a precompile problem now.

$ cd /path/to/julia/dir
$ ./julia 
               _
   _       _ _(_)_     |  A fresh approach to technical computing
  (_)     | (_) (_)    |  Documentation: https://docs.julialang.org
   _ _   _| |_  __ _   |  Type "?help" for help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 0.6.4 (2018-07-09 19:09 UTC)
 _/ |\__'_|_|_|\__'_|  |  
|__/                   |  x86_64-redhat-linux

julia> Pkg.build("CUDAapi")

julia> using CUDAapi
INFO: Precompiling module CUDAapi.
ERROR: LoadError: ArgumentError: Module Libdl not found in current path.
Run `Pkg.add("Libdl")` to install the Libdl package.
Stacktrace:
 [1] _require(::Symbol) at ./loading.jl:435
 [2] require(::Symbol) at ./loading.jl:405
 [3] include_from_node1(::String) at ./loading.jl:576
 [4] include(::String) at ./sysimg.jl:14
 [5] anonymous at ./<missing>:2
while loading /home/rick/.julia/v0.6/CUDAapi/src/CUDAapi.jl, in expression starting on line 5
ERROR: Failed to precompile CUDAapi to /home/rick/.julia/lib/v0.6/CUDAapi.ji.
Stacktrace:
 [1] compilecache(::String) at ./loading.jl:710
 [2] _require(::Symbol) at ./loading.jl:497
 [3] require(::Symbol) at ./loading.jl:405

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

Does something need to be backported? Was my git merge not what I was supposed to do?

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

Ahhh, OK. Yeah git merge was the wrong move. If I use git cherry-pick -n then find_host_compiler works. Thanks!

Will you have a version compatible with Julia v0.6.4?

from cudaapi.jl.

maleadt avatar maleadt commented on July 19, 2024

Will you have a version compatible with Julia v0.6.4?

No, we've switched to 1.0. If you have a need, feel free to open open a back-port PR (ie. with base release-0.6 branch, adding the commits you need).

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

Sorry, I'm not sure what that means exactly.

This sequence of commands produces a CUDAapi.jl that fixes this issue for Julia v0.6.4.

$ git checkout v0.4.3
$ git cherry-pick -n acd564aacfab953c3038b2525ee338b5d880afdc

Maybe this resultant source tree could be tagged v0.4.4?

from cudaapi.jl.

maleadt avatar maleadt commented on July 19, 2024

On further thought, I'm not going to tag a new release just for this minor fix without backporting all of the other significant fixes that have happened on the master branch. But doing so requires much more effort, because they've been using 1.0-era functions, while tagging a new release with only this fix would give a false sense of maintenance.

from cudaapi.jl.

rickhg12hs avatar rickhg12hs commented on July 19, 2024

I understand. The pain of progress. When avoiding the false sense of maintenance is greater than the real sense of broken.

from cudaapi.jl.

maleadt avatar maleadt commented on July 19, 2024

When avoiding the false sense of maintenance is greater than the real sense of broken.

There's been only your report about this issue, so I'd hope that the fall-out is limited 🙂
Do you have deployment issues where it is inconvenient to cherry-pick yourself?

from cudaapi.jl.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.