https://github.com/JuliaLang/julia
Revision f922a6371c6b658aa955e5096774509b12dd7579 authored by Jeff Bezanson on 07 September 2018, 03:32:38 UTC, committed by Keno Fischer on 08 September 2018, 19:47:23 UTC
In this case, the result of `iterate` has not been checked for
`nothing`, so we try to call `indexed_iterate` (for destructuring
assignment) on a Union of Nothing and the tuple returned by
`iterate`. That has two method matches, and so was excluded from
constant propagation. This commit fixes that by generalizing the
constant prop heuristic from requiring one method match to
requiring one non-Bottom method match.

This issue caused a large slowdown in DelimitedFiles, where
the inner loop consists of

```
        while idx <= slen
            val,idx = iterate(dbuff, idx)
```
1 parent 65e4c13
Raw File
Tip revision: f922a6371c6b658aa955e5096774509b12dd7579 authored by Jeff Bezanson on 07 September 2018, 03:32:38 UTC
fix #29036, poor inference of `val,i = iterate(x,i)`
Tip revision: f922a63
NEWS.md
Julia v1.0.0 Release Notes
==========================

Julia v1.0 is identical to the v0.7 release, with the exception that
it removes all deprecations and deprecation related warnings. When
upgrading a codebase from v0.6, the process is to first get the code
to work on v0.7, and fix all the deprecation warnings. Once the code
runs on v0.7 without warnings, it should be good to run on v1.0.

Refer to the [Release Notes for
v0.7](https://github.com/JuliaLang/julia/blob/master/HISTORY.md) for a
detailed list of changes from Julia v0.6.

Standard Library Changes
------------------------

* The `Libdl` module's methods `dlopen()` and `dlsym()` have gained a
  `throw_error` keyword argument, replacing the now-deprecated `dlopen_e()`
  and `dlsym_e()` methods.  When `throw_error` is `false`, failure to locate
  a shared library or symbol will return `nothing` rather than `C_NULL`.
  ([#28888])

Deprecated or removed
---------------------

* The old package manager (now called `OldPkg`) has been moved to a
  separate repository at https://github.com/JuliaArchive/OldPkg.jl ([#27930])

<!--- generated by NEWS-update.jl: -->
[#27930]: https://github.com/JuliaLang/julia/issues/27930
[#28888]: https://github.com/JuliaLang/julia/issues/28888
back to top