# Julia v1.3.0-rc4 is now available

**URL:** <https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965>\
**Category:** Announcements\
**Tags:** release\
**Created:** [October 16, 2019, 2:00am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965 "2019-10-16T02:00:45Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![ararslan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ararslan/32/3825_2.png) [@ararslan](https://discourse.julialang.org/u/ararslan)\
**Post date:** [October 16, 2019, 2:00am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/1 "2019-10-16T02:00:45Z")

</div>

The fourth (and this time almost surely final) release candidate for Julia v1.3.0 is now available. You can get binaries at [Download Julia](https://julialang.org/downloads) for Linux (i686, x86-64, ARMv7, AArch64), Windows (32-, 64-bit), macOS, and FreeBSD (x86-64). Check out the [NEWS file](https://github.com/JuliaLang/julia/blob/v1.3.0-rc4/NEWS.md) to see what will be new in 1.3.0 and see the (short) list of commits included since 1.3.0-rc3 [here](https://github.com/JuliaLang/julia/compare/v1.3.0-rc3...v1.3.0-rc4).

As a release candidate, this should **not** be considered production-ready; it’s intended to give users a chance to try out their code with 1.3.0 prior to a full release. Note that 1.3 on Travis, AppVeyor (with [Appveyor.jl](https://github.com/JuliaCI/Appveyor.jl)), and Cirrus (with [CirrusCI.jl](https://github.com/ararslan/CirrusCI.jl)) now points to 1.3.0-rc4.

Let us know in the [issue tracker](https://github.com/JuliaLang/julia/issues) if you run into any issues. Assuming no problems arise with this release candidate, we’ll move forward with a full 1.3.0 release soon.

Enjoy!

---

<div class="post-metadata">

**Author:** ![jstrube](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jstrube/32/525_2.png) [@jstrube](https://discourse.julialang.org/u/jstrube)\
**Post date:** [October 17, 2019, 7:28am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/2 "2019-10-17T07:28:26Z")

</div>

I seem to be seeing a massive slowdown in code that calls C++ libraries (via CxxWrap) from rc-3 to rc-4. I’d need more tests to verify that this is indeed the new version, and not some other parts in the chain, but I’m seeing ~30% slowdown… My julia-only code did not see this slowdown…  
What I’ve run has a lot of moving parts, though. @barche might have some better test cases handy.

---

<div class="post-metadata">

**Author:** ![fredrikekre](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/fredrikekre/32/1688_2.png) [@fredrikekre](https://discourse.julialang.org/u/fredrikekre)\
**Post date:** [October 17, 2019, 7:50am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/3 "2019-10-17T07:50:08Z")

</div>

There are basically no changes between rc-3 and rc-4: [https://github.com/JuliaLang/julia/compare/v1.3.0-rc3..v1.3.0-rc4](https://github.com/JuliaLang/julia/compare/v1.3.0-rc3..v1.3.0-rc4) and in particular no changes that looks to worsen performance.

---

<div class="post-metadata">

**Author:** ![Juan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/juan/32/7657_2.png) [@Juan](https://discourse.julialang.org/u/Juan)\
**Post date:** [October 17, 2019, 11:21am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/4 "2019-10-17T11:21:33Z")

</div>

Any benchmark comparing v1.3 vs v1.2 vs v1.1 vs v1.0?

---

<div class="post-metadata">

**Author:** ![jstrube](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jstrube/32/525_2.png) [@jstrube](https://discourse.julialang.org/u/jstrube)\
**Post date:** [October 18, 2019, 5:47am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/5 "2019-10-18T05:47:53Z")

</div>

Sure, why not. This isn’t reproducible at all, because the data isn’t public, but I’m running some simple code over a large data sample. But, I guess everybody likes benchmarks, so here we go:  
julia-1.1rc1: 1080 events / s  
julia-1.2rc2: 1368 events / s  
julia-1.3alpha: 1349 events / s  
julia-1.3rc3: 1158 events / s  
julia-1.2.0: 1375 events / s  
julia-1.3rc4: 789 events / s (just ran again: 852 events / s)

For comparison: With C++ I’m clocking 1707 events / s.

There is some variation due to I/O, but the drop from rc3 to rc4 is significant.

---

<div class="post-metadata">

**Author:** ![johnh](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/johnh/32/3615_2.png) [@johnh](https://discourse.julialang.org/u/johnh)\
**Post date:** [October 18, 2019, 9:10am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/6 "2019-10-18T09:10:20Z")

</div>

Would profiling the code help here?

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [October 18, 2019, 9:15am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/7 "2019-10-18T09:15:26Z")

</div>

Can you [bisect](https://git-scm.com/docs/git-bisect) between the rc3 and the rc4 to pin down the exact commit which changed this?

---

<div class="post-metadata">

**Author:** ![dpsanders](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dpsanders/32/3573_2.png) [@dpsanders](https://discourse.julialang.org/u/dpsanders)\
**Post date:** [October 18, 2019, 10:10am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/8 "2019-10-18T10:10:31Z")

</div>

Can you just use fake data to make a MWE?

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [October 18, 2019, 1:26pm UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/9 "2019-10-18T13:26:12Z")

</div>

I get strange segfaults with RC4 that I never had before, for example:

```julia
julia> include("local_tests/run_gen_queries2.jl")

signal (11): Segmentation fault
in expression starting at /home/ufechner/n4Server/local_tests/run_gen_queries2.jl:22
getindex at ./array.jl:742 [inlined]
macro expansion at /home/ufechner/.julia/packages/CSV/YgNdL/src/CSV.jl:486 [inlined]
macro expansion at ./simdloop.jl:77 [inlined]
macro expansion at /home/ufechner/.julia/packages/CSV/YgNdL/src/CSV.jl:485 [inlined]
#34 at ./threadingconstructs.jl:113
unknown function (ip: 0x7fca0ebe3c57)
_jl_invoke at /buildworker/worker/package_linux64/build/src/gf.c:2130 [inlined]
jl_apply_generic at /buildworker/worker/package_linux64/build/src/gf.c:2300
jl_apply at /buildworker/worker/package_linux64/build/src/julia.h:1631 [inlined]
start_task at /buildworker/worker/package_linux64/build/src/task.c:659
unknown function (ip: 0xffffffffffffffff)
Allocations: 53186854 (Pool: 53177422; Big: 9432); GC: 71
Segmentation fault (core dumped)
ufechner@TUD277255:~/n4Server$ 

```

Sometimes the code executes fine for a couple of times, but then I get this segault:

```julia
julia> include("local_tests/run_gen_queries2.jl")
ERROR: LoadError: ArgumentError: Reference array points beyond the end of the pool
Stacktrace:
 [1] PooledArrays.PooledArray(::PooledArrays.RefArray{Array{UInt32,1}}, ::Dict{String,UInt32}, ::Array{String,1}) at /home/ufechner/.julia/packages/PooledArrays/ufJSl/src/PooledArrays.jl:37
 [2] PooledArrays.PooledArray(::PooledArrays.RefArray{Array{UInt32,1}}, ::Dict{String,UInt32}) at /home/ufechner/.julia/packages/PooledArrays/ufJSl/src/PooledArrays.jl:36
 [3] copy(::CSV.Column{String,CSV.PooledString}) at /home/ufechner/.julia/packages/CSV/YgNdL/src/tables.jl:80
 [4] (::DataFrames.var"#DataFrame#91#94")(::Bool, ::Type{DataFrame}, ::Array{AbstractArray{T,1} where T,1}, ::DataFrames.Index) at /home/ufechner/.julia/packages/DataFrames/yH0f6/src/dataframe/dataframe.jl:130
 [5] Type at ./none:0 [inlined]
 [6] #fromcolumns#411(::Bool, ::typeof(DataFrames.fromcolumns), ::CSV.File) at /home/ufechner/.julia/packages/DataFrames/yH0f6/src/other/tables.jl:17
 [7] #fromcolumns at ./none:0 [inlined]
 [8] #DataFrame#412 at /home/ufechner/.julia/packages/DataFrames/yH0f6/src/other/tables.jl:32 [inlined]
 [9] DataFrame(::CSV.File) at /home/ufechner/.julia/packages/DataFrames/yH0f6/src/other/tables.jl:23
 [10] top-level scope at /home/ufechner/n4Server/local_tests/run_gen_queries2.jl:26
 [11] include at ./boot.jl:328 [inlined]
 [12] include_relative(::Module, ::String) at ./loading.jl:1105
 [13] include(::Module, ::String) at ./Base.jl:31
 [14] include(::String) at ./client.jl:432
 [15] top-level scope at REPL[1]:1
in expression starting at /home/ufechner/n4Server/local_tests/run_gen_queries2.jl:26

julia> 

```

```julia
julia> versioninfo()
Julia Version 1.3.0-rc4.1
Commit 8c4656b97a (2019-10-15 14:08 UTC)
Platform Info:
  OS: Linux (x86_64-pc-linux-gnu)
  CPU: Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-6.0.1 (ORCJIT, skylake)
Environment:
  JULIA_PKG3_PRECOMPILE = enable
  JULIA_NUM_THREADS = 4
  JULIA_EDITOR = gedit

(v1.3) pkg> status
    Status `~/.julia/environments/v1.3/Project.toml`
  [1520ce14] AbstractTrees v0.2.1
  [336ed68f] CSV v0.5.13
  [a93c6f00] DataFrames v0.19.4
  [1313f7d8] DataFramesMeta v0.5.0

(v1.3) pkg> 

```

No problems with Julia 1.2.

---

<div class="post-metadata">

**Author:** ![jstrube](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jstrube/32/525_2.png) [@jstrube](https://discourse.julialang.org/u/jstrube)\
**Post date:** [October 18, 2019, 2:42pm UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/10 "2019-10-18T14:42:59Z")

</div>

I can try, but I won’t have much time to work on this over the next few days. The code doesn’t do much other than call the C++ library to read data, so it’s a bit puzzling…

I’ll try to get to it, but if somebody else would like to take a look, the package is `LCIO#master`, which needs `CxxWrap#master`. I can try to benchmark the test file of that package when I get back to my computer later today.

---

<div class="post-metadata">

**Author:** ![ufechner7](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ufechner7/32/51363_2.png) [@ufechner7](https://discourse.julialang.org/u/ufechner7)\
**Post date:** [October 18, 2019, 6:08pm UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/11 "2019-10-18T18:08:15Z")

</div>

My current assumption: Is CSV using threads in 1.3 but not in Julia 1.2? This could explain the failure and it could be bug in Julia or in the CSV package.

---

<div class="post-metadata">

**Author:** ![barche](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/barche/32/79_2.png) [@barche](https://discourse.julialang.org/u/barche)\
**Post date:** [October 19, 2019, 7:45am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/12 "2019-10-19T07:45:47Z")

</div>

> [@jstrube](#):
>
> I seem to be seeing a massive slowdown in code that calls C++ libraries (via CxxWrap) from rc-3 to rc-4.

To check if this is linked to the calling of the functions itself, you can run the CxxWrap tests, and look for output like this:

```plaintext
Julia test:
  0.102698 seconds (128 allocations: 7.938 KiB)
  0.063683 seconds (4 allocations: 160 bytes)
  0.053773 seconds (4 allocations: 160 bytes)
C test:
  0.123567 seconds (135 allocations: 8.203 KiB)
  0.118030 seconds (4 allocations: 160 bytes)
  0.116455 seconds (4 allocations: 160 bytes)
C++ test:
  0.180980 seconds (7 allocations: 384 bytes)
  0.187293 seconds (4 allocations: 160 bytes)
  0.217453 seconds (4 allocations: 160 bytes)
C++ lambda test:
  2.567566 seconds (7 allocations: 384 bytes)
  2.514374 seconds (4 allocations: 160 bytes)
  2.470426 seconds (4 allocations: 160 bytes)

```

Here, `Julia test` is a pure Julia loop, `C test` is a loop using `ccall` directly, `C++ test` calls a C++ function pointer using `ccall` and `C++ lambda` passes through a C++ `std::function` (very slow here because I ran on a debug build).

---

<div class="post-metadata">

**Author:** ![jstrube](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/jstrube/32/525_2.png) [@jstrube](https://discourse.julialang.org/u/jstrube)\
**Post date:** [October 19, 2019, 4:03pm UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/13 "2019-10-19T16:03:23Z")

</div>

I’m seeing a small difference in the C++ test, 0.188 s with rc4 vs. 0.177 s with rc3. Not enough to explain what I was seeing before.  
Wrapping my package test cases in a `@btime` doesn’t show any difference between the two releases.  
I’d have to benchmark my original script in pieces to find the culprit, but I won’t get to it for probably two weeks.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [October 20, 2019, 5:11am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/14 "2019-10-20T05:11:51Z")

</div>

Again, I would suggest bisecting. There are 11 commits between rc3 and rc4, so it would take about 4-5 runs to pin down the relevant commit.

---

<div class="post-metadata">

**Author:** ![Tero\_Frondelius](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tero_frondelius/32/7629_2.png) [@Tero\_Frondelius](https://discourse.julialang.org/u/Tero_Frondelius)\
**Post date:** [October 20, 2019, 3:18pm UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/15 "2019-10-20T15:18:38Z")

</div>

Travis log here: [https://travis-ci.com/JuliaFEM/UMAT.jl/jobs/247565737](https://travis-ci.com/JuliaFEM/UMAT.jl/jobs/247565737)

```julia
Please submit a bug report with steps to reproduce this fault, and any error messages that follow (in their entirety). Thanks.
Exception: EXCEPTION_ACCESS_VIOLATION at 0x6b5f32b8 -- gc_try_setmark at /home/Administrator/buildbot/worker/package_win64/build/src/home/Administrator/buildbot/worker/package_win64/build/src\gc.c:1557 [inlined]
gc_mark_scan_objarray at /home/Administrator/buildbot/worker/package_win64/build/src/home/Administrator/buildbot/worker/package_win64/build/src\gc.c:1669 [inlined]
gc_mark_loop at /home/Administrator/buildbot/worker/package_win64/build/src/home/Administrator/buildbot/worker/package_win64/build/src\gc.c:1960

```

Only Windows 1.3 tests fails in Travis, all others passes.

 ![image](https://global.discourse-cdn.com/julialang/original/3X/b/8/b86cef6d0bf738dbffed736b72572a42be55b8e5.png)

xref: [1.3-RC4 Windows EXCEPTION\_ACCESS\_VIOLATION at 0x6b5f32b8 -- gc\_try\_setmark · Issue #33616 · JuliaLang/julia · GitHub](https://github.com/JuliaLang/julia/issues/33616)

---

<div class="post-metadata">

**Author:** ![Tero\_Frondelius](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tero_frondelius/32/7629_2.png) [@Tero\_Frondelius](https://discourse.julialang.org/u/Tero_Frondelius)\
**Post date:** [October 21, 2019, 6:06am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/16 "2019-10-21T06:06:58Z")

</div>

Do I need to open an issue or is the above sufficient bug report? Nightly build passes maybe the issue is already fixed at master.

---

<div class="post-metadata">

**Author:** ![Karajan](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/karajan/32/8545_2.png) [@Karajan](https://discourse.julialang.org/u/Karajan)\
**Post date:** [October 21, 2019, 6:58am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/17 "2019-10-21T06:58:29Z")

</div>

I think you should open an issue. That makes sure the right people see it and the fix gets backported. Otherwise you might have to wait for 1.4 for the fix.

---

<div class="post-metadata">

**Author:** ![Tero\_Frondelius](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tero_frondelius/32/7629_2.png) [@Tero\_Frondelius](https://discourse.julialang.org/u/Tero_Frondelius)\
**Post date:** [October 21, 2019, 9:13am UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/18 "2019-10-21T09:13:51Z")

</div>

Thanks. I did: [https://github.com/JuliaLang/julia/issues/33616](https://github.com/JuliaLang/julia/issues/33616)

---

<div class="post-metadata">

**Author:** ![yuyichao](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yuyichao/32/20_2.png) [@yuyichao](https://discourse.julialang.org/u/yuyichao)\
**Post date:** [October 21, 2019, 1:07pm UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/19 "2019-10-21T13:07:28Z")

</div>

It’s very likely a user error, especially since there’s a warning for you.

---

<div class="post-metadata">

**Author:** ![Tero\_Frondelius](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tero_frondelius/32/7629_2.png) [@Tero\_Frondelius](https://discourse.julialang.org/u/Tero_Frondelius)\
**Post date:** [October 21, 2019, 2:03pm UTC](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965/20 "2019-10-21T14:03:19Z")

</div>

Do you mean this one:  
`WARNING: Method definition isotropic_elasticity_tensor(Any, Any) in module Materials at C:\Users\travis\.julia\packages\Materials\mSWeT\src\idealplastic.jl:5 overwritten at C:\Users\travis\.julia\packages\Materials\mSWeT\src\chaboche.jl:5.`  
I believe it’s unrelated, because it’s coming from different package. Of course, that should be fixed because it’s really annoying to wait `Materials.jl` building when running the tests.

[Next page](https://discourse.julialang.org/t/julia-v1-3-0-rc4-is-now-available/29965.md?page=2)
