JuliaAttic/Markdown.jl

[PkgEval] Markdown may have a testing issue on Julia 0.4 (2015-06-27)

Closed this issue · 4 comments

PackageEvaluator.jl is a script that runs nightly. It attempts to load all Julia packages and run their tests (if available) on both the stable version of Julia (0.3) and the nightly build of the unstable version (0.4). The results of this script are used to generate a package listing enhanced with testing results.

On Julia 0.4

  • On 2015-06-26 the testing status was Tests pass.
  • On 2015-06-27 the testing status changed to Tests fail.

This issue was filed because your testing status became worse. No additional issues will be filed if your package remains in this state, and no issue will be filed if it improves. If you'd like to opt-out of these status-change messages, reply to this message saying you'd like to and @IainNZ will add an exception. If you'd like to discuss PackageEvaluator.jl please file an issue at the repository. For example, your package may be untestable on the test machine due to a dependency - an exception can be added.

Test log:

>>> 'Pkg.add("Markdown")' log
INFO: Cloning cache of Lazy from git://github.com/one-more-minute/Lazy.jl.git
INFO: Cloning cache of Markdown from git://github.com/one-more-minute/Markdown.jl.git
INFO: Installing Lazy v0.8.4
INFO: Installing Markdown v0.3.0
INFO: Package database updated

>>> 'Pkg.test("Markdown")' log
Julia Version 0.4.0-dev+5624
Commit 2b07246* (2015-06-26 20:21 UTC)
Platform Info:
  System: Linux (x86_64-unknown-linux-gnu)
  CPU: Intel(R) Xeon(R) CPU E5-2650 0 @ 2.00GHz
  WORD_SIZE: 64
  BLAS: libopenblas (USE64BITINT DYNAMIC_ARCH NO_AFFINITY Nehalem)
  LAPACK: libopenblas
  LIBM: libopenlibm
  LLVM: libLLVM-3.3
INFO: Testing Markdown
ERROR: LoadError: LoadError: LoadError: MethodError: `convert` has no method matching convert(::Type{Dict{Symbol,Any}}, ::Base.Docs.FuncDoc)
This may have arisen from a call to the constructor Dict{Symbol,Any}(...),
since type constructors fall back to convert methods.
Closest candidates are:
  Dict{K,V}(::Any)
  call{T}(::Type{T}, ::Any)
  convert{K,V}(::Type{Dict{K,V}}, !Matched::Dict{K,V})
  ...
 in setindex! at dict.jl:616
 in doc! at docs/Docs.jl:86
 in include at ./boot.jl:254
 in include_from_node1 at ./loading.jl:133
 in include at ./boot.jl:254
 in include_from_node1 at ./loading.jl:133
 in reload_path at ./loading.jl:157
 in _require at ./loading.jl:69
 in require at ./loading.jl:52
 in include at ./boot.jl:254
 in include_from_node1 at loading.jl:133
 in process_options at ./client.jl:305
 in _start at ./client.jl:405
while loading /home/vagrant/.julia/v0.4/Markdown/src/parse/util.jl, in expression starting on line 45
while loading /home/vagrant/.julia/v0.4/Markdown/src/Markdown.jl, in expression starting on line 6
while loading /home/vagrant/.julia/v0.4/Markdown/test/runtests.jl, in expression starting on line 1

==============================[ ERROR: Markdown ]===============================

failed process: Process(`/home/vagrant/julia/bin/julia --check-bounds=yes --code-coverage=none --color=no /home/vagrant/.julia/v0.4/Markdown/test/runtests.jl`, ProcessExited(1)) [1]

================================================================================
INFO: No packages to install, update or remove
ERROR: Markdown had test errors
 in error at ./error.jl:21
 in test at pkg/entry.jl:746
 in anonymous at pkg/dir.jl:31
 in cd at file.jl:22
 in cd at pkg/dir.jl:31
 in test at pkg.jl:71
 in process_options at ./client.jl:281
 in _start at ./client.jl:405


>>> End of log
hayd commented

Is this something to do with new behaviour of doc parsing of

"docstring"
function f() ...

? cc @one-more-minute @MichaelHatherly

This line https://github.com/one-more-minute/Markdown.jl/blob/ae6064d8d506efb0ad4ff6c87ff506d94efd51d6/src/parse/config.jl#L13 is stopping Base.Docs.@init from generating the module's docstring ObjectIdDict cache.

We could just rename the one here to something else, but I think this will be the cause of confusing errors for users that happen to name something META. Perhaps a gensymd name for the docstring cache?

By gensymd I mean a variable that's impossible to write without a macro's help, but with a consistent name between modules. Something like symbol("#META"), etc.

This should be fixed by the change in Base.