Skip to content
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

make sys.so redistributable or generate it at install time #5459

Closed
JeffBezanson opened this issue Jan 21, 2014 · 15 comments
Closed

make sys.so redistributable or generate it at install time #5459

JeffBezanson opened this issue Jan 21, 2014 · 15 comments
Assignees
Milestone

Comments

@JeffBezanson
Copy link
Member

Better startup time is one of the main features of 0.3. For it to work, we need to generate sys.so on the user's machine. @loladiro and I decided the best way to do this in time for 0.3 is to generate the .so ourselves (not calling llc) after install.

@ghost ghost assigned Keno Jan 24, 2014
@ihnorton
Copy link
Member

ihnorton commented Feb 8, 2014

What would be the disadvantage of using llc? or is the linker the problem?

@Keno
Copy link
Member

Keno commented Feb 8, 2014

We don't want to ship llc. Though I did realize the other day that e.g. on Windows, we don't have a system linker, so this plan might not work anyway.

@blakejohnson
Copy link
Contributor

Why not just run llc with a conservative march parameter choice on the build machine?

@kmsquire
Copy link
Member

Let me add a wrinkle: on our cluster, we have at least 2 or 3 different computer architectures (multiple Intel and AMD processor types). Software installation varies:

  1. some software is installed on each machine
  2. some software is installed for use on all machines via an NFS mount
  3. some software is installed in individual directories

For 2 or 3, it would be nice if I could

  • build julia once and run everywhere, or
  • build a different .so file for different machines, and have the correct one used

@Keno
Copy link
Member

Keno commented Mar 19, 2014

For the 0.3 release the idea is indeed to target a reasonable minimum (probably to be debated what that is), and if you have anything less than that we just won't load the precompiled .so. Eventually when we switch to LLVM 3.5 we may to do the generation at install time as outlined in my PR.

@Keno Keno closed this as completed in c90c0af Mar 21, 2014
Keno added a commit that referenced this issue Mar 21, 2014
@StefanKarpinski
Copy link
Member

Yes! This was one of the last things holding up a 0.3 release candidate :-)

@ihnorton
Copy link
Member

@staticfloat are the Mac nightlies using JULIA_CPU_TARGET=core2? see https://groups.google.com/d/msg/julia-users/xK8iE2nwc_4/Ki2MJyTAE0wJ

@staticfloat
Copy link
Member

I missed the wrap-up of that discussion, awesome! There's one further thing that needs to be done, however. To protect against people distributing a sys.{so,dylib,dll}, this line was added to Makefile. Does the closing of this issue allow us to remove it so that our binary distributions now ship with that file?

staticfloat added a commit to staticfloat/julia-nightly-packaging that referenced this issue May 17, 2014
@ihnorton
Copy link
Member

Yes, conditional on JULIA_CPU_TARGET.

@staticfloat
Copy link
Member

Alright, done in 245782c

@tkelman
Copy link
Contributor

tkelman commented May 17, 2014

You sure we should distribute sys.dll on Windows? Doesn't it makes backtraces worse? #6557 (comment)

Edit: yes, yes it does

$ usr/bin/julia -e 'include("nonexistent")'
ERROR: could not open file D:\code\msys64\home\Tony\julia\nonexistent

$ rm usr/lib/julia/sys.dll
$ usr/bin/julia -e 'include("nonexistent")'
ERROR: could not open file D:\code\msys64\home\Tony\julia\nonexistent
 in include at boot.jl:244
 in include_from_node1 at loading.jl:128

@ihnorton
Copy link
Member

Right, we won't distribute it on Windows.

@tkelman
Copy link
Contributor

tkelman commented May 18, 2014

staticfloat/julia-nightly-packaging@4e5f38d should probably be reverted then

@ihnorton
Copy link
Member

I run on a minor fork. Mostly cosmetics, but also disabling the auto-update functionality :)

@staticfloat
Copy link
Member

Ah, I misread a reply, I thought I was supposed to do it on all OS'es. :P I'll go ahead and revert now then.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants