Live data from Hacker News

Julia 1.6 Highlights

julialang.org

41–50 of 224 posts

Re: Julia 1.6 Highlights

#41

How easy it is to produce a compiled executable in 1.6? I took a cursory look at the docs but couldn't spot the steps for doing so.

I’ve also looked for this, does it mean that I have to install julia on the target machine and it’ll recompile when running? Or are there steps to produce a binary (much like Go or C or Rust)??

Currently you can make a relocatable “bundle” / “app” with PackageCompiler.jl, but the bundle itself includes a Julia runtime.

Making a nice small static binary is technically possible using an approach similar to what GPUCompiler.jl does, but the CPU equivalent of that isn’t quite ready for primetime.

Re: Julia 1.6 Highlights

#42

Earlier quoted context omitted.

I think so - Julia master branch (1.7 precursor) works on M1, but not all the dependencies that some packages require have been built for M1. Though, I understand that the wonderful packaging system and the folks who work on it are working on it. > `git clone https://github.com/JuliaLang/julia ` and `make` should be enough at this point. https://github.com/JuliaLang/julia/issues/36617#issuecomment...

Yeah, we've managed to get Julia itself running pretty well on the M1, there are still a few outstanding issues such as backtraces not being as high-quality as on other platforms. You can see the overall tracking issue [0] for a more granular status on the platform support. For the package ecosystem as a whole, we will be slowly increasing the number of third-party packages that are built for aarch64-darwin, but this…

That's great, releasing something that isn't yet ready doesn't make sense. But when it works, it's important enough to warrant a release :)

Re: Julia 1.6 Highlights

#43

I've been running the 1.6 release candidates, and the compilation speed improvements have been massive. There have been plenty of instances in the past where I've tried to 'quickly' show off some Julia code, and I end up waiting ~45 seconds for a plot to show or a minute for a Pluto notebook to run, and that's not to mention waiting for my imports to finish. It's still slower than Matlab for the first run, but it's a…

What kind of speed do you see now?

Re: Julia 1.6 Highlights

#44

How easy it is to produce a compiled executable in 1.6? I took a cursory look at the docs but couldn't spot the steps for doing so.

I’ve also looked for this, does it mean that I have to install julia on the target machine and it’ll recompile when running? Or are there steps to produce a binary (much like Go or C or Rust)??

You probably want to check out PackageCompiler.jl (https://julialang.github.io/PackageCompiler.jl/dev/)

Re: Julia 1.6 Highlights

#45
post #39

Earlier quoted context omitted.

They are measuring compile time and runtime speed, not just runtime speed like for statically compiled langauges

Where does it say that?

I'm not a huge Julia user, but typically if they don't specifically mention they're segmenting runtime from compilation time with Julia, that's a bit of a red flag, because unlike Rust, Go, or C++ the compilation step isn't separate in Julia. To the user it just looks like it's running, when in reality it's compiling, then running, without really letting you know in between.

Re: Julia 1.6 Highlights

#46
post #39

Earlier quoted context omitted.

They are measuring compile time and runtime speed, not just runtime speed like for statically compiled langauges

Where does it say that?

Ah, I have to take that back, since benchmarks run in the order of seconds and they use sockets to start and stop the timer, which likely means compilation time is not included.

Re: Julia 1.6 Highlights

#47
post #43

I've been running the 1.6 release candidates, and the compilation speed improvements have been massive. There have been plenty of instances in the past where I've tried to 'quickly' show off some Julia code, and I end up waiting ~45 seconds for a plot to show or a minute for a Pluto notebook to run, and that's not to mention waiting for my imports to finish. It's still slower than Matlab for the first run, but it's a…

What kind of speed do you see now?

I’ve also been running the release candidates, and I get something like 6 seconds to first plot on my 2013 laptop, including the time for `using Plots` and the time to actually draw the first plot. A huge improvement; kudos to the developers.

Re: Julia 1.6 Highlights

#48
post #39

Earlier quoted context omitted.

Where does it say that?

I'm not a huge Julia user, but typically if they don't specifically mention they're segmenting runtime from compilation time with Julia, that's a bit of a red flag, because unlike Rust, Go, or C++ the compilation step isn't separate in Julia. To the user it just looks like it's running, when in reality it's compiling, then running, without really letting you know in between.

In the matrix multiplication example, the measurement is done via a simple

    t = time()
    results = calc(n)
    elapsed = time() - t
So startup time at least isn't included.

One might argue that this is still biased against Julia due to its compilation strategy, but fixing that would mean you'd have to figure out what the appropriate way to get 'equivalent' timings for any of the other languages would be as well - something far more involved than just slapping a timer around a block of code in all cases...

edit: As pointed out below, the Julia code should indeed already have been 'warmed up' due to a preceding sanity check. My apologies for 'lying'...

Re: Julia 1.6 Highlights

#50
Julia is such a wonderful language. There are many design decisions that I like, but most importantly to me, its ingenious idea of combining multiple dispatch with JIT compilation still leaves me in awe. It is such an elegant solution to achieving efficient multiple dispatch.

Thanks to everyone who is working on this language!

Post reply on HN