uncomplicate / neanderthal

Fast Clojure Matrix Library
http://neanderthal.uncomplicate.org
Eclipse Public License 1.0
1.06k stars 56 forks source link

files that are named aux on windows #53

Closed sogaiu closed 5 years ago

sogaiu commented 5 years ago

Hi,

I'm trying to follow some of your Deep Learning from Scratch posts and noticed that there's a bit about cloning Neanderthal in one. I tried to do this on a Windows machine and at the checkout stage got a failure message. IIUC, naming a file (before the extension) 'aux' is not something that works on Windows (at least not in 7) -- and this repository has aux.clj in it.

Coincidentally, I hit this problem with a completely different project today -- in that case it was a file named 'aux.cljs'.

I don't know if there's a work-around apart from renaming...

For reference, here are some other incidents:

https://github.com/gajus/react-aux/issues/10 https://github.com/invenia/PowerSystemsUnits.jl/issues/6

Any ideas?

P.S. Can I have an invite to the discussion server mentioned in #50?

blueberry commented 5 years ago

You do not have to clone Neanderthal. I've just mentioned that you can use the examples folder as a starting point. If cloning the whole repo have issues on windows, you can just create a vanilla leiningen project and see a few more lines that you have to add to it by inspecting hello-world/project.clj

Regarding aux.clj: as I understand, aux in windows filenames causes troubles when deleting files and possibly some other operations. Is it so, or is it completely unable to exist?

As you do not have to build Neanderthal yourself (it is available in Clojars) that aux file will not be a file in windows, but a file inside the jar. Is there any problem with aux namespace when you just require it from a uncomplicate/neanderthal dependency in your project?

sogaiu commented 5 years ago

I tried cloning Neanderthal as that appeared to be a convenient way to get the Hello World project :)
FWIW, in this case, git reset HEAD puts things in a state where just the one file is missing, so for the purpose of accessing the Hello World project, this seems fine. May be there will be other folks who encounter this situation.

For reference, in another repository that had a file named aux.cljs, checkout failed so I created the file manually via the bash shell + vim that comes with https://gitforwindows.org/, but operations such as git diff act as if the file is /dev/null (according to its output). Compiling (using shadow-cljs) failed too. I didn't succeed in finding a work-around to these points.

I haven't tried manually requiring the aux namespace yet, may be it will be fine as you suggest.

In any case, thanks for your response (and your ongoing work on these GPU-related projects).

blueberry commented 5 years ago

I'm closing this for now. Please reopen if requiring aux on windows causes any trouble.

blueberry commented 5 years ago

@sogaiu aux has been renamed to auxil in Neanderthal 0.25.0. Please test and report whether it works well for you.

sogaiu commented 5 years ago

After a fresh checkout of the respositoy (no problems this time), I tried the following with ae085a5c (0.25.0 is this I presume):

(require 'uncomplicate.neanderthal.auxil)

It did not lead to any error output here.

Sorry it took a while to test this -- setting MKL up this time appears to have been different than before. Your notes at the "Get Started" page near "Note for Windows users" were helpful in taking appropriate action.

(It appears though that there is no libiomp5.dll in 2019 Update 4 -- here there is something else called libiomp5md.dll, and as hinted at in your "note" it doesn't live in the same directory as its mkl_*.dll friends live, but rather a sibling directory. Some modification of PATH via "Settings -> System -> About -> System info -> Advanced system settings -> Sytem Properties -> Advanced -> Environment Variables -> System Variables" to add the two directories seemed to address the issue.)

At any rate, thanks for this and your continued efforts!