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
julia_10: rewrite #103783
julia_10: rewrite #103783
Conversation
Maybe enable aarch64, like I pushed for julia_15 before squashing? |
dontUseCmakeConfigure = true; | ||
|
||
# We assert that compatible blas and lapack are used. | ||
buildInputs = assert (blas.isILP64 == lapack.isILP64); [ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Why is this assert here, rather than at the top where asserts are usually found?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good question. It might be a bit hard to explain: #94892 (comment)
Did @Lucus16 or anyone else tested the expression on aarch64? I didn't even do it for x86_64 😅 . |
> Maybe enable aarch64, like I pushed for julia_15 before squashing?
Did @Lucus16 or anyone else tested the expression on aarch64? I didn't even do it for x86_64 😅 .
I did check that both x86_64 and aarch64 passed on ofborg at least; isn't a part of the point of the cleanup to reenable a sufficient amount of tests for this to be enough?
Maybe before backporting it is a good idea to wait for Hydra to build all the supported architectures and test them…
|
By the way, 1.5 built on my handheld overnight and at least starts and does basic things. |
930293c
to
1a6aed3
Compare
Enabled aarch64 in the last push. |
homepage = "https://julialang.org/"; | ||
license = stdenv.lib.licenses.mit; | ||
maintainers = with stdenv.lib.maintainers; [ raskin rob garrison ]; | ||
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ]; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding aarch64-linux
also requires a change in meta.platforms
1a6aed3
to
f05990b
Compare
Right, I was fuzzy. Fixed now.
…On Nov 16 2020, at 1:09 pm, Michael Raskin ***@***.***> wrote:
@7c6f434c commented on this pull request.
In pkgs/development/compilers/julia/1.0.nix (#103783 (comment)):
> + ln -sv $lib $out/lib/julia/$(basename $lib)
+ fi
+ done
+ '';
+
+ passthru = {
+ inherit majorVersion minorVersion maintenanceVersion;
+ site = "share/julia/site/v${majorVersion}.${minorVersion}";
+ };
+
+ meta = {
+ description = "High-level performance-oriented dynamical language for technical computing";
+ homepage = "https://julialang.org/";
+ license = stdenv.lib.licenses.mit;
+ maintainers = with stdenv.lib.maintainers; [ raskin rob garrison ];
+ platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" ];
Adding aarch64-linux also requires a change in meta.platforms
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub (#103783 (review)), or unsubscribe (https://github.com/notifications/unsubscribe-auth/ACT5IMYDJZTKKFCHY5SX5XDSQECANANCNFSM4TVNO2HQ).
|
or (throw "unsupported architecture: ${arch}"); | ||
# Julia requires Pentium 4 (SSE2) or better | ||
cpuTarget = { x86_64 = "x86-64"; i686 = "pentium4"; }.${arch} | ||
or (throw "unsupported architecture: ${arch}"); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
And now aarch64
is missing here, am I right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think you are right. But IDK what to put here, reading: https://github.com/JuliaLang/julia/tree/v1.0.4#architecture-customization .
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about armv8-a+crc
? https://gcc.gnu.org/onlinedocs/gcc/AArch64-Options.html
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
First of all these are not even gcc options (apparently llc, but I am not sure there are no catches)…
+ makeFlags =
+ let
+ arch = stdenv.lib.head (stdenv.lib.splitString "-" stdenv.system);
+ march = { x86_64 = stdenv.hostPlatform.platform.gcc.arch or "x86-64"; i686 = "pentium4"; }.${arch}
+ or (throw "unsupported architecture: ${arch}");
+ # Julia requires Pentium 4 (SSE2) or better
+ cpuTarget = { x86_64 = "x86-64"; i686 = "pentium4"; }.${arch}
+ or (throw "unsupported architecture: ${arch}");
I think you are right. But IDK what to put here, reading: https://github.com/JuliaLang/julia/tree/v1.0.4#architecture-customization .
I would put the same as in 1.5, then see whether ofborg complains…
|
Don't use ./shared.nix as it's not shared anymore. Fix tests with an upstream patch and a few commands in postPatch. Assert that blas and lapack are compatible. Rename utf8proc patch.
Good idea. Done now. |
f05990b
to
ba9d95c
Compare
meta = { | ||
description = "High-level performance-oriented dynamical language for technical computing"; | ||
homepage = "https://julialang.org/"; | ||
license = stdenv.lib.licenses.mit; | ||
maintainers = with stdenv.lib.maintainers; [ raskin rob garrison ]; | ||
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
meta = { | |
description = "High-level performance-oriented dynamical language for technical computing"; | |
homepage = "https://julialang.org/"; | |
license = stdenv.lib.licenses.mit; | |
maintainers = with stdenv.lib.maintainers; [ raskin rob garrison ]; | |
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; | |
}; | |
meta = with stdenv.lib; { | |
description = "High-level performance-oriented dynamical language for technical computing"; | |
homepage = "https://julialang.org/"; | |
license = licenses.mit; | |
maintainers = with maintainers; [ raskin rob garrison ]; | |
platforms = [ "i686-linux" "x86_64-linux" "x86_64-darwin" "aarch64-linux" ]; | |
}; |
pcre2.dev blas lapack openlibm openspecfun readline utf8proc | ||
zlib | ||
] | ||
++ stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
++ stdenv.lib.optionals stdenv.isDarwin [CoreServices ApplicationServices] | |
++ stdenv.lib.optionals stdenv.isDarwin [ CoreServices ApplicationServices ] |
Don't use ./shared.nix as it's not shared anymore.
Fix tests with an upstream patch and a few commands in postPatch.
Assert that blas and lapack are compatible.
Rename utf8proc patch.
Motivation for this change
#91930 - Get an abandoned commit from #98043 .
Things done
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)