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

update to master. #5

Merged
merged 36 commits into from Oct 17, 2018
Merged

update to master. #5

merged 36 commits into from Oct 17, 2018

Conversation

nagexiucai
Copy link
Owner

No description provided.

vchuravy and others added 30 commits October 8, 2018 11:30
Co-authored-by: Valentin Churavy <v.churavy@gmail.com>
Co-authored-by: Jameson Nash <vtjnash@gmail.com>
Adjust gc-debug for new task interface
* Fix abs for Rational{<:Unsigned}

* Add tests for abs(x::Rational)
An errant space was causing the online documentation to render the docstring incorrectly: https://docs.julialang.org/en/v1/stdlib/Statistics/index.html#Statistics.quantile
Falls back to stack copying if there are too many stack mappings.

Also adds some code to free unused pooled stacks.
…uliaLang#29551)

* improve performance for materializing a string from a vector of Char

* fixup names from review
…#29142)

Without these make install prints errors when trying to copy these files.
The $libdir/julia/libopenlibm.so symlink wasn't created with USE_SYSTEM_LIBM=0 USE_SYSTEM_OPENLIBM=1.
If the system provides an ILP64 BLAS with suffixed symbols (as e.g. Fedora does), SuiteSparse needs to use the suffixes. It doesn't matter that it's the system BLAS.
The bogus -Wclobbered warning "argument ‘x’ might be clobbered by
‘longjmp’ or ‘vfork’" is a gcc bug. It's been reported several times on
gcc bugzilla, see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65041 for
example. It's not clear how to work around this in code so I've disabled
it as locally as possible.
| subarray: Test Failed at /usr/share/julia/test/subarray.jl:611
|  Expression: #= /usr/share/julia/test/subarray.jl:611 =# @inferred(sum(Base.unaliascopy(V))) == sum(V) == sum(A[2:5, :, 2:5, 1:2:5])
|   Evaluated: 121.8579669083425 == 121.8579669083425 == 121.85796690834263

A = rand(5,5,5,5)
V = view(A, 2:5, :, 2:5, 1:2:5)
@code_typed sum(V)  # calls mapfoldl
@code_typed sum(A[2:5, :, 2:5, 1:2:5])  # calls mapreduce

mapreduce doesn't guarantee the associativity, which is likely
the cause of this precision issue in random sum.
Cassette and packages that work similarly (e.g. Zygote) perform
essentially the following transformation:

For `f(args...) = g(args...)`, they define

```
(::overloaded{f})(c::Context, f, args...) = _apply(overloaded{g}(), (c, g), args)
```

With all of our recent compiler improvements inference can now handle
this pattern fairly well. However, inlining was falling over for the
case where `g === _apply` (because it didn't check the _apply special
case again after inlining the first _apply), causing inefficiencies
(_apply is fairly expensive). Fix that by revisiting the _apply check.
While we're at it, also remove the obsolete isapply flag in InliningTodo,
since we now do all the rewriting up front.
* improve performance for reverse

* further perf improvement
KristofferC and others added 6 commits October 16, 2018 10:50
* propgate inbounds to substring and use it in split

* remove Base prefix
The -Wclobbered warnings were fixed in JuliaLang#29642 by disabling that
particular GCC diagnostic for particular blocks of code. However, it was
guarded by a check on __GNUC__, which Clang also defines, and Clang
doesn't understand that diagnostic group, so it emits its own warning.
This change introduces a macro to control -Wclobbered suppression that's
defined in terms of _COMPILER_GCC_ to avoid Clang warnings and reduce
ifdef boilerplate.
@nagexiucai nagexiucai merged commit e504ab2 into bob-nx Oct 17, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet