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

Feature request: "Build minmal julia" makefile option #3128

Closed
ldgirod opened this issue May 16, 2013 · 12 comments
Closed

Feature request: "Build minmal julia" makefile option #3128

ldgirod opened this issue May 16, 2013 · 12 comments
Labels
domain:building Build system, or building Julia or its dependencies

Comments

@ldgirod
Copy link

ldgirod commented May 16, 2013

It would be nice to have a target in the makefile that built only the base components of julia required to get to the REPL loop with a minimal set of builtins and dependencies.

This came up because I wanted to find out what the minimal requirements are to port Julia to a new architecture (e.g. arm) or platform (e.g. android).

@JeffBezanson
Copy link
Sponsor Member

This is a good idea, but "minimal" means something different to everybody. To some people julia is useless without FFTs, and to others they are bloat that is never used. I would welcome suggestions of which pieces are especially troublesome.

@ldgirod
Copy link
Author

ldgirod commented May 16, 2013

This came up in the context of figuring out what's required to port to arm

  • so minimal referred to getting the JIT and REPL loop etc. built.

On Thu, May 16, 2013 at 1:29 PM, Jeff Bezanson notifications@github.comwrote:

This is a good idea, but "minimal" means something different to everybody.
To some people julia is useless without FFTs, and to others they are bloat
that is never used. I would welcome suggestions of which pieces are
especially troublesome.


Reply to this email directly or view it on GitHubhttps://github.com//issues/3128#issuecomment-18016071
.

@JeffBezanson
Copy link
Sponsor Member

This will probably require some significant reorganization of the standard library (which might be worthwhile anyway). We will still have several external dependencies, however, since a lot of the functionality is used internally rather than just exported to the user. This includes PCRE (regular expressions), libm, libunwind, double-conversion, and libuv (for all our I/O). If those are ok, then this might be doable. But eliminating all of those would require very major rewrites.

@ViralBShah
Copy link
Member

I think of that as the minimal set too. It seems that this would also not depend on any gpl libs.

@lindahua
Copy link
Contributor

The most important library that Julia relies on is probably BLAS & LAPACK. Even in a "minimal version", they are indispensable.

Here are some efforts to port these to ARM: http://www.vesperix.com/arm/

However, as far as I can tell, they are far less mature than the counterparts for X86 architecture, and LAPACK is still not there.

@lindahua
Copy link
Contributor

I would say at this point the easiest way to use Julia on devices (e.g. smartphones and pads) is to develop a thin client that connects to a web-REPL, instead of porting Julia altogether.

@ldgirod
Copy link
Author

ldgirod commented May 20, 2013

In my case, I am doing signal processing on a phone and cannot send all the
raw data to a server; I was looking at Julia because it looks very pleasant
to use and also high performance. At the moment though it looks like it is
non-trivial to port.

On Mon, May 20, 2013 at 9:51 AM, Dahua Lin notifications@github.com wrote:

I would say at this point the easiest way to use Julia on devices (e.g.
smartphones and pads) is to develop a thin client that connects to a
web-REPL, instead of porting Julia altogether.


Reply to this email directly or view it on GitHubhttps://github.com//issues/3128#issuecomment-18148217
.

@ldgirod
Copy link
Author

ldgirod commented May 20, 2013

This guy got LINPACK running on android:

http://specificimpulses.blogspot.com/2011/01/my-android-speaks-fortran-yours-can-too.html

On Mon, May 20, 2013 at 9:47 AM, Dahua Lin notifications@github.com wrote:

The most important library that Julia relies on is probably BLAS & LAPACK.
Even in a "minimal version", they are indispensable.

Here are some efforts to port these to ARM: http://www.vesperix.com/arm/

However, as far as I can tell, they are far less mature than the
counterparts for X86 architecture, and LAPACK is still not there.


Reply to this email directly or view it on GitHubhttps://github.com//issues/3128#issuecomment-18148034
.

@ViralBShah
Copy link
Member

We will probably do all yhe linear algebra using trivial implementations for bigfloat, and that will also serve as a fallback in absence of lapack.

@vtjnash
Copy link
Sponsor Member

vtjnash commented Mar 16, 2016

closing in favor of #5155

@vtjnash vtjnash closed this as completed Mar 16, 2016
@timholy
Copy link
Sponsor Member

timholy commented Jun 20, 2017

For folks working on Julia's core, it might be interesting to be able to build a really minimal julia...not something any user would want, but effectively a gdb-like mode for Core.

@timholy
Copy link
Sponsor Member

timholy commented Jun 23, 2017

With reference to the above comment, for anyone hacking on inference.jl: just go to the base/ directory and then do include("coreimg.jl"). It will replace the current Core.Inference with a new one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
domain:building Build system, or building Julia or its dependencies
Projects
None yet
Development

No branches or pull requests

6 participants