# Julia v1.1.0-rc1, the first 1.1 release candidate, is now available

**URL:** <https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172>\
**Category:** Announcements\
**Tags:** release\
**Created:** [January 1, 2019, 10:05pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172 "2019-01-01T22:05:53Z")\
**Posts on this page:** 18\
**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:** [January 1, 2019, 10:05pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/1 "2019-01-01T22:05:53Z")

</div>

Happy new year, everyone!

The Julia developers are pleased to announce the first release candidate for Julia v1.1.0. As usual, binaries are available for all [tier 1](https://github.com/JuliaLang/julia#support-tiers) platforms—Linux i686 and x86-64, macOS, FreeBSD x86-64, and Windows 32- and 64-bit—as well as Linux ARMv7, at [https://julialang.org/downloads](https://julialang.org/downloads). You can find them in the “upcoming releases” section.

As a release candidate, this should **not** be considered production-ready; it’s intended to give users, especially package developers, a chance to test their code with v1.1.0 before the full release.

Julia v1.1.0 will be the first minor release in the 1.x series of releases. As a minor release, it will contain no breaking changes, only new features, performance improvements, and marginal, undisruptive changes in behavior. The largest difference from the 1.0.x series of releases are that 1.0 will have longer-term support, and that 1.1 contains new features that 1.0 will not have. The most useful reference for the changes is the [NEWS file](https://github.com/JuliaLang/julia/blob/v1.1.0-rc1/NEWS.md) for v1.1.0-rc1, but you can also see the commit comparison with v1.0.3 [here](https://github.com/JuliaLang/julia/compare/v1.0.3...v1.1.0-rc1).

1.1 is now available by name on Travis and AppVeyor (using [Appveyor.jl](https://github.com/JuliaCI/Appveyor.jl)). We encourage everyone to give it a try and let us know in the [issue tracker](https://github.com/JuliaLang/julia/issues) if you run into any issues.

Enjoy!

---

<div class="post-metadata">

**Author:** ![Seif\_Shebl](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Seif\_Shebl](https://discourse.julialang.org/u/Seif_Shebl)\
**Post date:** [January 1, 2019, 10:20pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/2 "2019-01-01T22:20:40Z")

</div>

Amazing! Thank you.

I just noticed a repeated statement in [NEWS.md](https://github.com/JuliaLang/julia/blob/v1.1.0-rc1/NEWS.md) in the **Standard library changes** section:

- `range` can accept the stop value as a positional argument, e.g. `range(1,10,step=2)` ([#28708](https://github.com/JuliaLang/julia/issues/28708)).
- `range` now accepts `stop` as a positional argument ([#28708](https://github.com/JuliaLang/julia/issues/28708)).

These are points 5 and 19.

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [January 2, 2019, 12:17am UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/3 "2019-01-02T00:17:19Z")

</div>

Going forward after more releases, is it recommended to continue testing on 1.0 or to switch to 1.x only?

---

<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:** [January 2, 2019, 4:52am UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/4 "2019-01-02T04:52:10Z")

</div>

It’s best to test on both, as 1.0 will have long-term support.

---

<div class="post-metadata">

**Author:** ![essenciary](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/essenciary/32/210469_2.png) [@essenciary](https://discourse.julialang.org/u/essenciary)\
**Post date:** [January 3, 2019, 7:19pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/5 "2019-01-03T19:19:49Z")

</div>

Off topic, but shouldn’t it be “the _step_ value” and “accepts _step_” (instead of _stop_)?

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [January 3, 2019, 7:23pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/6 "2019-01-03T19:23:25Z")

</div>

> [@chakravala](#):
>
> Going forward after more releases, is it recommended to continue testing on 1.0 or to switch to 1.x only?

I’m not understanding what you mean. Continue testing what on 1.0 or 1.x?

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [January 3, 2019, 7:39pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/7 "2019-01-03T19:39:47Z")

</div>

What I meant to ask is whether it is needed to test packages on v1.0 to maintain compatibility with it in the future, or is it enough to only test v1.1, because v1.1 does not have breaking changes, right? So the question was whether 1.0 needs to be tested for packages to maintain compatibility with long term release.

---

<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:** [January 3, 2019, 7:46pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/8 "2019-01-03T19:46:01Z")

</div>

If you want to claim that your package works on Julia 1.0 you should test on Julia 1.0.

---

<div class="post-metadata">

**Author:** ![Seif\_Shebl](https://avatars.discourse-cdn.com/v4/letter/s/eada6e/32.png) [@Seif\_Shebl](https://discourse.julialang.org/u/Seif_Shebl)\
**Post date:** [January 3, 2019, 8:16pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/9 "2019-01-03T20:16:17Z")

</div>

No, the old `range` syntax was like this:

```julia
range(start; length, stop, step=1)

```

but the new 1.1 syntax is like this:

```julia
range(start[, stop]; length, stop, step=1)

```

So, you can now do all of the following 6 combinations, the second argument being `stop` unless otherwise specified (very nice!):

```julia
  julia> range(1, length=100)
  1:100

  julia> range(1, stop=100)
  1:100

  julia> range(1, step=5, length=100)
  1:5:496

  julia> range(1, step=5, stop=100)
  1:5:96

  julia> range(1, 10, length=101)
  1.0:0.09:10.0

  julia> range(1, 100, step=5)
  1:5:96

```

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [January 3, 2019, 8:18pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/10 "2019-01-03T20:18:35Z")

</div>

> [@fredrikekre](#):
>
> If you want to claim that your package works on Julia 1.0 you should test on Julia 1.0.

Don’t get it. The promise of 1.0 was that things would not break till 2.0, so why keep testing 1.0x when 1.1 is out?

---

<div class="post-metadata">

**Author:** ![ImreSamu](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/imresamu/32/20677_2.png) [@ImreSamu](https://discourse.julialang.org/u/ImreSamu)\
**Post date:** [January 3, 2019, 8:21pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/11 "2019-01-03T20:21:37Z")

</div>

> [@joa-quim](#):
>
> so why keep testing 1.0x when 1.1 is out?

Check the `New language features` - ( not in v1.0 )

- [https://github.com/JuliaLang/julia/blob/v1.1.0-rc1/NEWS.md#new-language-features](https://github.com/JuliaLang/julia/blob/v1.1.0-rc1/NEWS.md#new-language-features)

---

<div class="post-metadata">

**Author:** ![StefanKarpinski](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stefankarpinski/32/24_2.png) [@StefanKarpinski](https://discourse.julialang.org/u/StefanKarpinski)\
**Post date:** [January 3, 2019, 8:23pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/12 "2019-01-03T20:23:25Z")

</div>

You’ve got the compatibility direction backwards. Something that works on 1.0 will work on 1.1 but something that works on 1.1 need not work on 1.0.

---

<div class="post-metadata">

**Author:** ![joa-quim](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/joa-quim/32/227_2.png) [@joa-quim](https://discourse.julialang.org/u/joa-quim)\
**Post date:** [January 3, 2019, 8:26pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/13 "2019-01-03T20:26:49Z")

</div>

Sure. I was thinking on codes that were written at the 1.0x time (me, confusion)

---

<div class="post-metadata">

**Author:** ![chakravala](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chakravala/32/6832_2.png) [@chakravala](https://discourse.julialang.org/u/chakravala)\
**Post date:** [January 3, 2019, 9:33pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/14 "2019-01-03T21:33:52Z")

</div>

That makes sense, but my question was subtly more general than your answer satisfies.

I’m also asking about the more general case when v1.x is released, let’s say v1.2, then it is recommended to continue testing for compatibility with v1.0 and v1.2, since v1.0 is long term. However, because v1.1 is a short term release, is it recommended to drop it from testing and only continue with v1.0 and v1.2 compatibility? Otherwise, the tests would keep getting longer and longer with each version.

It doesn’t necessarily make sense for the Julia package community to explicitly support v1.1 when (for example) v1.0 is long term and v1.2 is the current stable release. So my question is slightly more general, about what kind of compatibility people would like to expect out in the packages.

---

<div class="post-metadata">

**Author:** ![angusmoore](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/angusmoore/32/5654_2.png) [@angusmoore](https://discourse.julialang.org/u/angusmoore)\
**Post date:** [January 4, 2019, 1:45am UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/15 "2019-01-04T01:45:11Z")

</div>

I think this really comes down to your preferences as a package maintainer, and how disruptive/how much extra work is required supporting older versions of 1.x Julia (including test run time) becomes for your package as time goes by (e.g. you may want to rely on new language features that make supporting 1.0 difficult or impossible).

I think an entirely pragmatic approach would be to explicitly test only against the latest stable release and whatever 1.x version is the LTS version (this is only my view, primarily as a user of Julia, not a package developer). If the package works on the LTS version, Julia’s adherence to SemVer means that any versions in between the LTS version and the newest stable version _should_ also work (unless you’re relying on undocumented features). Currently the LTS version is 1.0, but (as I understand it) that isn’t set in stone, as outlined by Stefan:

> [@Proposed release process and schedule](https://discourse.julialang.org/t/proposed-release-process-and-schedule/15623/1):
>
> Once 1.1 comes out, 1.0 will be the new LTS branch since it’s the only other release branch; but after 1.2 comes out, we have a choice between keeping 1.0 as the LTS branch for longer or making 1.1 the new LTS branch. We’ll have to see how people feel and what the demand is.

I take Alex’s initial post to mean that 1.1 won’t be a LTS branch, but my reading of Stefan’s comments is that future minor versions (e.g. 1.2) could replace 1.0 as the LTS branch if there is demand for that.

---

<div class="post-metadata">

**Author:** ![essenciary](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/essenciary/32/210469_2.png) [@essenciary](https://discourse.julialang.org/u/essenciary)\
**Post date:** [January 4, 2019, 8:19am UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/16 "2019-01-04T08:19:09Z")

</div>

That’s pretty cool, thanks for the detailed explanation. I wasn’t aware of the stop option. I always used the range literal to create new instances, but `stop` is great to avoid bound checks during an iteration. Would be nice to see a `range` literal which includes it, too, like maybe `(1:5:96:100)`

---

<div class="post-metadata">

**Author:** ![dhazeghi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dhazeghi/32/7107_2.png) [@dhazeghi](https://discourse.julialang.org/u/dhazeghi)\
**Post date:** [January 7, 2019, 6:45pm UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/17 "2019-01-07T18:45:21Z")

</div>

Looking forward to the final 1.1. Quick question: is PackageCompiler expected to work? Same command that worked with 0.7.0 is failing on 1.1.0rc1 with ‘ERROR: Unexpected format of “Base.julia\_cmd()”, you may be using an incompatible version of Julia’. This is with the latest version of PackageCompiler (0.5.1 installed this morning).

Thanks,

Dara

```julia
julia> using PackageCompiler

julia> build_executable("hello.jl")
Julia program file:
  "/tmp/hello.jl"
C program file:
  "/test/julia-1.1.0-rc1/pkg/packages/PackageCompiler/jBqfm/examples/program.c"
Build directory:
  "/tmp/builddir"
ERROR: Unexpected format of "Base.julia_cmd()", you may be using an incompatible version of Julia
Stacktrace:
 [1] error(::String) at ./error.jl:33
 [2] build_julia_cmd(::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing) at /test/julia-1.1.0-rc1/pkg/packages/PackageCompiler/jBqfm/src/static_julia.jl:213
 [3] build_object(::String, ::String, ::String, ::Bool, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing) at /test/julia-1.1.0-rc1/pkg/packages/PackageCompiler/jBqfm/src/static_julia.jl:239
 [4] #static_julia#1(::Nothing, ::Bool, ::Bool, ::Nothing, ::Nothing, ::Nothing, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::Bool, ::Nothing, ::Bool, ::Bool, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::Nothing, ::typeof(static_julia), ::String) at /test/julia-1.1.0-rc1/pkg/packages/PackageCompiler/jBqfm/src/static_julia.jl:172
 [5] #static_julia at ./none:0 [inlined]
 [6] #build_executable#22 at /test/julia-1.1.0-rc1/pkg/packages/PackageCompiler/jBqfm/src/api.jl:104 [inlined]
 [7] build_executable at /test/julia-1.1.0-rc1/pkg/packages/PackageCompiler/jBqfm/src/api.jl:104 [inlined] (repeats 2 times)
 [8] top-level scope at none:0

shell> cat /tmp/hello.jl
module Hello

Base.@ccallable function julia_main(ARGS::Vector{String})::Cint
    println("hello, world")
    return 0
end

end

julia>

```

---

<div class="post-metadata">

**Author:** ![dhazeghi](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/dhazeghi/32/7107_2.png) [@dhazeghi](https://discourse.julialang.org/u/dhazeghi)\
**Post date:** [January 24, 2019, 12:21am UTC](https://discourse.julialang.org/t/julia-v1-1-0-rc1-the-first-1-1-release-candidate-is-now-available/19172/18 "2019-01-24T00:21:54Z")

</div>

Happily, PackageCompiler has now been updated to fix this issue: [Unexpected format of "Base.julia\_cmd()" compatability issues with 1.2.0-dev.60 · Issue #162 · JuliaLang/PackageCompiler.jl · GitHub](https://github.com/JuliaLang/PackageCompiler.jl/issues/162)
