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

show() is broken for vectors #25

Open
Chunkulator opened this issue May 2, 2018 · 1 comment
Open

show() is broken for vectors #25

Chunkulator opened this issue May 2, 2018 · 1 comment

Comments

@Chunkulator
Copy link

FlatBuffers correctly builds flatbuffer representations of vectors but fails to show() them.

julia> versioninfo()
Julia Version 0.6.1
Commit 0d7248e (2017-10-24 22:15 UTC)
Platform Info:
  OS: macOS (x86_64-apple-darwin14.5.0)
  CPU: Intel(R) Core(TM) i7-7820HQ CPU @ 2.90GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Prescott)
  LAPACK: libopenblas64_
  LIBM: libopenlibm
  LLVM: libLLVM-3.9.1 (ORCJIT, broadwell)

julia> using FlatBuffers

julia> flatbuffer = FlatBuffers.build!([1;2;3;4])
FlatBuffers.FlatBuffers.Builder{Array{Int64,1}}: 
Error showing value of type FlatBuffers.Builder{Array{Int64,1}}:
ERROR: ArgumentError: reducing over an empty collection is not allowed
Stacktrace:
 [1] _mapreduce(::Base.#identity, ::Base.#scalarmax, ::IndexLinear, ::Array{Any,1}) at ./reduce.jl:265
 [2] show(::IOContext{Base.Terminals.TTYTerminal}, ::FlatBuffers.Builder{Array{Int64,1}}) at /Users/rcart/.julia/v0.6/FlatBuffers/src/FlatBuffers.jl:95
 [3] display(::Base.REPL.REPLDisplay{Base.REPL.LineEditREPL}, ::MIME{Symbol("text/plain")}, ::FlatBuffers.Builder{Array{Int64,1}}) at ./REPL.jl:122
 [4] display(::Base.REPL.REPLDisplay{Base.REPL.LineEditREPL}, ::FlatBuffers.Builder{Array{Int64,1}}) at ./REPL.jl:125
 [5] display(::FlatBuffers.Builder{Array{Int64,1}}) at ./multimedia.jl:194
 [6] eval(::Module, ::Any) at ./boot.jl:235
 [7] print_response(::Base.Terminals.TTYTerminal, ::Any, ::Void, ::Bool, ::Bool, ::Void) at ./REPL.jl:144
 [8] print_response(::Base.REPL.LineEditREPL, ::Any, ::Void, ::Bool, ::Bool) at ./REPL.jl:129
 [9] (::Base.REPL.#do_respond#16{Bool,Base.REPL.##26#36{Base.REPL.LineEditREPL,Base.REPL.REPLHistoryProvider},Base.REPL.LineEditREPL,Base.LineEdit.Prompt})(::Base.LineEdit.MIState, ::Base.AbstractIOBuffer{Array{UInt8,1}}, ::Bool) at ./REPL.jl:646
@rjkat
Copy link
Contributor

rjkat commented Nov 25, 2018

This is related to issue #29. Basically the show method assumes that what’s in the buffer has a vtable i.e. it’s a “table” object. Unless there is a compelling use case here, I’d say it’s unlikely that this project will support non-standard behaviour. Stay tuned for a PR on the official flatc adding julia code generation.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants