Skip to content

new IR printing sometimes broken for non-stdout IO #27526

@jekbradbury

Description

@jekbradbury

(This could easily be CUDAnative-specific, but doesn't appear to be from a cursory look at the stacktrace)
Adding @device_code_warntype verbose_linetable=true softmax!(a, b) to the bottom of https://gist.github.com/jekbradbury/becd9fff1c469dc73cb57f73d1f2a439 gives the following error, but (weirdly) only when softmax_bench.jl is invoked with julia softmax_bench.jl > tmp:

1 ──        softmax_kernel at /export/home/james/flux/softmax.jl:25 ─┐
│            size at abstractarray.jl:46 ───────────────────────────┐│
│    ERROR: LoadError: ArgumentError: can't repeat a string -16 times│
Stacktrace:
 [1] repeat(::String, ::Int64) at ./strings/string.jl:334
 [2] ^ at ./strings/basic.jl:674 [inlined]
 [3] #show_ir#21(::Array{String,1}, ::Bool, ::Function, ::Base.PipeEndpoint, ::Core.Compiler.IRCode, ::typeof(InteractiveUtils.warntype_type_printer)) at ./compiler/ssair/show.jl:349
 [4] #show_ir at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/InteractiveUtils/src/codeview.jl:0 [inlined]
 [5] #code_warntype#7(::Bool, ::Function, ::Base.PipeEndpoint, ::Function, ::Any) at /buildworker/worker/package_linux64/build/usr/share/julia/stdlib/v0.7/InteractiveUtils/src/codeview.jl:81
 [6] (::getfield(InteractiveUtils, Symbol("#kw##code_warntype")))(::NamedTuple{(:verbose_linetable,),Tuple{Bool}}, ::typeof(InteractiveUtils.code_warntype), ::Base.PipeEndpoint, ::Function, ::Type) at ./<missing>:0
[a bunch of CUDAnative stuff]

(it also appears not to happen on simpler code_warntype examples)

Metadata

Metadata

Assignees

Labels

display and printingAesthetics and correctness of printed representations of objects.ioInvolving the I/O subsystem: libuv, read, write, etc.

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions