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

Build failure of mac app related to JuliaSyntax #50245

Closed
pablosanjose opened this issue Jun 21, 2023 · 11 comments
Closed

Build failure of mac app related to JuliaSyntax #50245

pablosanjose opened this issue Jun 21, 2023 · 11 comments
Labels
parser Language parsing and surface syntax

Comments

@pablosanjose
Copy link
Contributor

pablosanjose commented Jun 21, 2023

On macos 13.4, the latest master builds the julia binary, but making the corresponding mac app (contrib/mac/app) fails. The error suggests it could be related to #46372.

➜  app git:(master) make
rm -rf dmg *.dmg notarize-*.xml
mkdir -p dmg
osacompile -o dmg/Julia-1.10.app startup.applescript
.: replacing existing signature
rm dmg/Julia-1.10.app/Contents/Resources/applet.icns
cp julia.icns dmg/Julia-1.10.app/Contents/Resources/
plutil -replace CFBundleDevelopmentRegion  -string "en" dmg/Julia-1.10.app/Contents/Info.plist
plutil -insert  CFBundleDisplayName        -string "Julia" dmg/Julia-1.10.app/Contents/Info.plist
plutil -replace CFBundleIconFile           -string "julia.icns" dmg/Julia-1.10.app/Contents/Info.plist
plutil -insert  CFBundleIdentifier         -string "org.julialang.launcherapp" dmg/Julia-1.10.app/Contents/Info.plist
plutil -replace CFBundleName               -string "Julia" dmg/Julia-1.10.app/Contents/Info.plist
plutil -insert  CFBundleShortVersionString -string "1.10.0" dmg/Julia-1.10.app/Contents/Info.plist
plutil -insert  CFBundleVersion            -string "1.10.0-DEV-95749c3784" dmg/Julia-1.10.app/Contents/Info.plist
plutil -insert  NSHumanReadableCopyright   -string "© 2023 The Julia Project" dmg/Julia-1.10.app/Contents/Info.plist
mkdir -p dmg/Julia-1.10.app/Contents/Resources/julia
make -C /Users/pablo/Build/julia binary-dist
rm -fr /Users/pablo/Build/julia/julia-*.tar.gz /Users/pablo/Build/julia/julia*.exe /Users/pablo/Build/julia/julia-95749c3784
    CC usr/tools/stringreplace
Building HTML documentation.
  Installing known registries into `~/Build/julia/doc/deps`
┌ Warning: The active manifest file has dependencies that were resolved with a different julia version (1.9.0-DEV). Unexpected behavior may occur.
└ @ ~/Build/julia/doc/Manifest.toml:0
   Installed Parsers ───────────── v2.4.0
   Installed IOCapture ─────────── v0.2.2
   Installed JSON ──────────────── v0.21.3
   Installed DocStringExtensions ─ v0.9.1
   Installed ANSIColoredPrinters ─ v0.0.1
   Installed Documenter ────────── v0.27.23
Precompiling project...
  7 dependencies successfully precompiled in 5 seconds
  1 dependency had warnings during precompilation:
┌ Parsers [69de0a69-1ddd-5017-9359-2bf0b02dc9f0]
│  WARNING: method definition for dpeekbyte at /Users/pablo/Build/julia/doc/deps/packages/Parsers/34hDN/src/utils.jl:199 declares type variable T but does not use it.
└
[ Info: SetupBuildDirectory: setting up build directory.
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/Build/julia/base/JuliaSyntax/src/source_files.jl:119
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{…}; color::Tuple{…}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/Build/julia/base/JuliaSyntax/src/source_files.jl:221
...

The resulting dmg contains a damaged Julia.app that fails to launch with the unusual error:
Screenshot 2023-06-21 at 13 41 18

@George9000
Copy link
Contributor

I'm on macOS as well, 12.6.6.
gmake on the master branch succeeds but gmake docs fails with the above error.

JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]

Details below of JuliaSyntax error. Repeated 7 times.

error details
julia> versioninfo()
Julia Version 1.10.0-DEV.1541
Commit 8d0d012de5* (2023-06-21 16:13 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.6.0)
  CPU: 10 × Apple M1 Max
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
  Threads: 5 on 8 virtual cores
Environment:
  JULIA_NUM_THREADS = 4
  JULIA_DEPOT_PATH = /Users/foo/applications/juliabuild

% gmake docs                                                                                                                                                                                                                                                                                                            13:34
.
.
.
Building HTML documentation.
  Installing known registries into `~/applications/julia/doc/deps`
┌ Warning: The active manifest file has dependencies that were resolved with a different julia version (1.9.0-DEV). Unexpected behavior may occur.
└ @ ~/applications/julia/doc/Manifest.toml:0
   Installed ANSIColoredPrinters ─ v0.0.1
   Installed JSON ──────────────── v0.21.3
   Installed Parsers ───────────── v2.4.0
   Installed IOCapture ─────────── v0.2.2
   Installed Documenter ────────── v0.27.23
   Installed DocStringExtensions ─ v0.9.1
Precompiling project...
  7 dependencies successfully precompiled in 5 seconds
  1 dependency had warnings during precompilation:
┌ Parsers [69de0a69-1ddd-5017-9359-2bf0b02dc9f0]
│  WARNING: method definition for dpeekbyte at /Users/foo/applications/julia/doc/deps/packages/Parsers/34hDN/src/utils.jl:199 declares type variable T but does not use it.
└
[ Info: SetupBuildDirectory: setting up build directory.
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:119
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:221
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::IOBuffer; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] interpinner(stream::IOBuffer, greedy::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [19] interpinner(stream::IOBuffer)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [20] (::Markdown.var"#91#92"{IOBuffer})()
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [21] withstream(f::Markdown.var"#91#92"{IOBuffer}, stream::IOBuffer)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [22] interp(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [23] parseinline(stream::IOBuffer, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [24] parseinline(stream::IOBuffer, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [25] parseinline(s::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [26] paragraph(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Common/block.jl:34
│     [27] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [28] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [29] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [30] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [31] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/julia/doc/deps/packages/Documenter/yf96B/src/Documents.jl:58
│     [32] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/julia/doc/deps/packages/Documenter/yf96B/src/Documents.jl:397 [inlined]
│     [33] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/julia/doc/deps/packages/Documenter/yf96B/src/Builder.jl:131
│     [34] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/julia/doc/deps/packages/Documenter/yf96B/src/Utilities/Selectors.jl:170
│     [35] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/julia/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:273 [inlined]
│     [36] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [37] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/julia/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:272
│     [38] top-level scope
│        @ ~/applications/julia/doc/make.jl:293
│     [39] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [40] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│     [41] _start()
│        @ Base ./client.jl:552
│   offset = 0
│   code = ")' may trigger package precompilation):"
└ @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:258

@George9000
Copy link
Contributor

Similar errors seen in gmake testall during the REPL tests.

details
REPL                                             (2) |        started at 2023-06-21T14:40:52.777
SparseArrays/sparsematrix_constructors_indexing  (3) |    86.44 |  28.66 | 33.2 |    3736.90 |  3824.28
Random                                           (3) |        started at 2023-06-21T14:40:52.801
      From worker 2:    ┌ Error: JuliaSyntax parser failed — falling back to flisp!
      From worker 2:    │   exception =
      From worker 2:    │    BoundsError: attempt to access 38-codeunit SubString{String} at index [39]
      From worker 2:    │    Stacktrace:
      From worker 2:    │      [1] _nextind_str(s::SubString{String}, i::Int64)
      From worker 2:    │        @ Base ./strings/string.jl:177
      From worker 2:    │      [2] nextind(s::SubString{String}, i::Int64)
      From worker 2:    │        @ Base ./strings/substring.jl:104 [inlined]
      From worker 2:    │      [3] source_location(source::Base.JuliaSyntax.SourceFile, byte_index::Int64)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:64
      From worker 2:    │      [4] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:61
      From worker 2:    │      [5] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:86
      From worker 2:    │      [6] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/parser_api.jl:20
      From worker 2:    │      [7] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
      From worker 2:    │        @ Base ./strings/io.jl:114
      From worker 2:    │      [8] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
      From worker 2:    │        @ Base ./strings/io.jl:107 [inlined]
      From worker 2:    │      [9] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:184
      From worker 2:    │     [10] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
      From worker 2:    │        @ Base ./essentials.jl:898
      From worker 2:    │     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
      From worker 2:    │        @ Base ./essentials.jl:895
      From worker 2:    │     [12] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::String, ::Vararg{…}; kws::@Kwargs{})
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:118
      From worker 2:    │     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::String, ::Vararg{…})
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:117
      From worker 2:    │     [14] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
      From worker 2:    │        @ Base.Meta ./meta.jl:200
      From worker 2:    │     [15] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
      From worker 2:    │        @ Base.Meta ./meta.jl:237 [inlined]
      From worker 2:    │     [16] (::REPL.var"#98#108"{…})(::REPL.LineEdit.MIState, ::Any, ::Vararg{…})
      From worker 2:    │        @ REPL ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1182
      From worker 2:    │     [17] invokelatest(::REPL.var"#98#108"{…}, ::Any, ::Any, ::String; kwargs::@Kwargs{})
      From worker 2:    │        @ Base ./essentials.jl:864 [inlined]
      From worker 2:    │     [18] invokelatest(::REPL.var"#98#108"{…}, ::Any, ::Any, ::String)
      From worker 2:    │        @ Base ./essentials.jl:861 [inlined]
      From worker 2:    │     [19] (::REPL.LineEdit.var"#27#28"{REPL.var"#98#108"{…}, String})(s::Any, p::Any)
      From worker 2:    │        @ REPL.LineEdit ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:1612
      From worker 2:    │     [20] prompt!(term::REPL.Terminals.TextTerminal, prompt::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
      From worker 2:    │        @ REPL.LineEdit ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2749
      From worker 2:    │     [21] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
      From worker 2:    │        @ REPL.LineEdit ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2651
      From worker 2:    │     [22] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
      From worker 2:    │        @ REPL ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1297
      From worker 2:    │     [23] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
      From worker 2:    │        @ REPL ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/src/REPL.jl:373
      From worker 2:    │    Some type information was truncated. Use `show(err)` to see complete types.
      From worker 2:    │   offset = 7
      From worker 2:    │   code = "julia> begin\n           α=1\n           β=2\n"
      From worker 2:    └ @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:258
Printf                                           (7) |    12.68 |   0.16 |  1.2 |    1795.28 |  4753.70
SHA                                              (7) |        started at 2023-06-21T14:41:01.111
      From worker 2:    ┌ Error: JuliaSyntax parser failed — falling back to flisp!
      From worker 2:    │   exception =
      From worker 2:    │    BoundsError: attempt to access 4-codeunit SubString{String} at index [5]
      From worker 2:    │    Stacktrace:
      From worker 2:    │      [1] _nextind_str(s::SubString{String}, i::Int64)
      From worker 2:    │        @ Base ./strings/string.jl:177
      From worker 2:    │      [2] nextind(s::SubString{String}, i::Int64)
      From worker 2:    │        @ Base ./strings/substring.jl:104 [inlined]
      From worker 2:    │      [3] source_location(source::Base.JuliaSyntax.SourceFile, byte_index::Int64)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:64
      From worker 2:    │      [4] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:61
      From worker 2:    │      [5] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:86
      From worker 2:    │      [6] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/parser_api.jl:20
      From worker 2:    │      [7] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
      From worker 2:    │        @ Base ./strings/io.jl:114
      From worker 2:    │      [8] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
      From worker 2:    │        @ Base ./strings/io.jl:107 [inlined]
      From worker 2:    │      [9] core_parser_hook(code::SubString{String}, filename::String, lineno::Int64, offset::Int64, options::Symbol)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:184
      From worker 2:    │     [10] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
      From worker 2:    │        @ Base ./essentials.jl:898
      From worker 2:    │     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
      From worker 2:    │        @ Base ./essentials.jl:895
      From worker 2:    │     [12] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::SubString{…}, ::Vararg{…}; kws::@Kwargs{})
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:118
      From worker 2:    │     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::SubString{…}, ::Vararg{…})
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:117
      From worker 2:    │     [14] _parse_string(text::SubString{String}, filename::String, lineno::Int64, index::Int64, options::Symbol)
      From worker 2:    │        @ Base.Meta ./meta.jl:200
      From worker 2:    │     [15] parseatom(text::SubString{String}, pos::Int64; filename::String, lineno::Int64)
      From worker 2:    │        @ Base.Meta ./meta.jl:288 [inlined]
      From worker 2:    │     [16] shell_parse(str::String, interpolate::Bool; special::String, filename::String)
      From worker 2:    │        @ Base ./shell.jl:78
      From worker 2:    │     [17] shell_parse(str::String, interpolate::Bool)
      From worker 2:    │        @ Base ./shell.jl:19 [inlined]
      From worker 2:    │     [18] shell_completions(string::String, pos::Int64)
      From worker 2:    │        @ REPL.REPLCompletions ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/src/REPLCompletions.jl:1175
      From worker 2:    │     [19] test_scomplete(s::String)
      From worker 2:    │        @ Main.Test78Main_REPL.REPLCompletionsTest ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/test/replcompletions.jl:155
      From worker 2:    │     [20] top-level scope
      From worker 2:    │        @ ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/test/replcompletions.jl:996
      From worker 2:    │     [21] include(mod::Module, _path::String)
      From worker 2:    │        @ Base ./Base.jl:489
      From worker 2:    │     [22] include(x::String)
      From worker 2:    │        @ Main.Test78Main_REPL.REPLCompletionsTest ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/test/runtests.jl:9
      From worker 2:    │     [23] top-level scope
      From worker 2:    │        @ ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/test/runtests.jl:10
      From worker 2:    │     [24] include(mod::Module, _path::String)
      From worker 2:    │        @ Base ./Base.jl:489 [inlined]
      From worker 2:    │     [25] macro expansion
      From worker 2:    │        @ Main ~/applications/julia/test/testdefs.jl:29 [inlined]
      From worker 2:    │     [26] macro expansion
      From worker 2:    │        @ Main ~/applications/julia/usr/share/julia/stdlib/v1.10/Test/src/Test.jl:1577 [inlined]
      From worker 2:    │     [27] macro expansion
      From worker 2:    │        @ Main ~/applications/julia/test/testdefs.jl:23 [inlined]
      From worker 2:    │     [28] macro expansion
      From worker 2:    │        @ Main ./timing.jl:503 [inlined]
      From worker 2:    │     [29] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
      From worker 2:    │        @ Main ~/applications/julia/test/testdefs.jl:21
      From worker 2:    │     [30] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{seed::UInt128})
      From worker 2:    │        @ Base ./essentials.jl:866
      From worker 2:    │     [31] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})()
      From worker 2:    │        @ Distributed ~/applications/julia/usr/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
      From worker 2:    │     [32] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool)
      From worker 2:    │        @ Distributed ~/applications/julia/usr/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:70
      From worker 2:    │     [33] (::Distributed.var"#109#111"{Distributed.CallMsg{:call_fetch}, Distributed.MsgHeader, Sockets.TCPSocket})()
      From worker 2:    │        @ Distributed ~/applications/julia/usr/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
      From worker 2:    │    Some type information was truncated. Use `show(err)` to see complete types.
      From worker 2:    │   offset = 4
      From worker 2:    │   code = "cd \$(max"
      From worker 2:    └ @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:258
      From worker 2:    ┌ Error: JuliaSyntax parser failed — falling back to flisp!
      From worker 2:    │   exception =
      From worker 2:    │    BoundsError: attempt to access 5-codeunit SubString{String} at index [6]
      From worker 2:    │    Stacktrace:
      From worker 2:    │      [1] _nextind_str(s::SubString{String}, i::Int64)
      From worker 2:    │        @ Base ./strings/string.jl:177
      From worker 2:    │      [2] nextind(s::SubString{String}, i::Int64)
      From worker 2:    │        @ Base ./strings/substring.jl:104 [inlined]
      From worker 2:    │      [3] source_location(source::Base.JuliaSyntax.SourceFile, byte_index::Int64)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:64
      From worker 2:    │      [4] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:61
      From worker 2:    │      [5] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:86
      From worker 2:    │      [6] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/parser_api.jl:20
      From worker 2:    │      [7] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
      From worker 2:    │        @ Base ./strings/io.jl:114
      From worker 2:    │      [8] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
      From worker 2:    │        @ Base ./strings/io.jl:107 [inlined]
      From worker 2:    │      [9] core_parser_hook(code::SubString{String}, filename::String, lineno::Int64, offset::Int64, options::Symbol)
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:184
      From worker 2:    │     [10] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
      From worker 2:    │        @ Base ./essentials.jl:898
      From worker 2:    │     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
      From worker 2:    │        @ Base ./essentials.jl:895
      From worker 2:    │     [12] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::SubString{…}, ::Vararg{…}; kws::@Kwargs{})
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:118
      From worker 2:    │     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::SubString{…}, ::Vararg{…})
      From worker 2:    │        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:117
      From worker 2:    │     [14] _parse_string(text::SubString{String}, filename::String, lineno::Int64, index::Int64, options::Symbol)
      From worker 2:    │        @ Base.Meta ./meta.jl:200
      From worker 2:    │     [15] parseatom(text::SubString{String}, pos::Int64; filename::String, lineno::Int64)
      From worker 2:    │        @ Base.Meta ./meta.jl:288 [inlined]
      From worker 2:    │     [16] shell_parse(str::String, interpolate::Bool; special::String, filename::String)
      From worker 2:    │        @ Base ./shell.jl:78
      From worker 2:    │     [17] shell_parse(str::String, interpolate::Bool)
      From worker 2:    │        @ Base ./shell.jl:19 [inlined]
      From worker 2:    │     [18] shell_completions(string::String, pos::Int64)
      From worker 2:    │        @ REPL.REPLCompletions ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/src/REPLCompletions.jl:1175
      From worker 2:    │     [19] test_scomplete(s::String)
      From worker 2:    │        @ Main.Test78Main_REPL.REPLCompletionsTest ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/test/replcompletions.jl:155
      From worker 2:    │     [20] top-level scope
      From worker 2:    │        @ ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/test/replcompletions.jl:1065
      From worker 2:    │     [21] include(mod::Module, _path::String)
      From worker 2:    │        @ Base ./Base.jl:489
      From worker 2:    │     [22] include(x::String)
      From worker 2:    │        @ Main.Test78Main_REPL.REPLCompletionsTest ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/test/runtests.jl:9
      From worker 2:    │     [23] top-level scope
      From worker 2:    │        @ ~/applications/julia/usr/share/julia/stdlib/v1.10/REPL/test/runtests.jl:10
      From worker 2:    │     [24] include(mod::Module, _path::String)
      From worker 2:    │        @ Base ./Base.jl:489 [inlined]
      From worker 2:    │     [25] macro expansion
      From worker 2:    │        @ Main ~/applications/julia/test/testdefs.jl:29 [inlined]
      From worker 2:    │     [26] macro expansion
      From worker 2:    │        @ Main ~/applications/julia/usr/share/julia/stdlib/v1.10/Test/src/Test.jl:1577 [inlined]
      From worker 2:    │     [27] macro expansion
      From worker 2:    │        @ Main ~/applications/julia/test/testdefs.jl:23 [inlined]
      From worker 2:    │     [28] macro expansion
      From worker 2:    │        @ Main ./timing.jl:503 [inlined]
      From worker 2:    │     [29] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
      From worker 2:    │        @ Main ~/applications/julia/test/testdefs.jl:21
      From worker 2:    │     [30] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{seed::UInt128})
      From worker 2:    │        @ Base ./essentials.jl:866
      From worker 2:    │     [31] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})()
      From worker 2:    │        @ Distributed ~/applications/julia/usr/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
      From worker 2:    │     [32] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool)
      From worker 2:    │        @ Distributed ~/applications/julia/usr/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:70
      From worker 2:    │     [33] (::Distributed.var"#109#111"{Distributed.CallMsg{:call_fetch}, Distributed.MsgHeader, Sockets.TCPSocket})()
      From worker 2:    │        @ Distributed ~/applications/julia/usr/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
      From worker 2:    │    Some type information was truncated. Use `show(err)` to see complete types.
      From worker 2:    │   offset = 4
      From worker 2:    │   code = "cd \$(Iter"
      From worker 2:    └ @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:258
REPL                                             (2) |    13.30 |   0.32 |  2.4 |    1622.48 |  4984.36

c42f added a commit that referenced this issue Jun 21, 2023
Fixes an issue with error formatting in Meta.parse with nontrivial
starting indices (#50245)
@c42f
Copy link
Member

c42f commented Jun 21, 2023

I think I've got a fix for this in #50253 - certainly it should fix the REPL errors reported above but I don't have access to macos to test the app build.

@c42f
Copy link
Member

c42f commented Jun 21, 2023

It would help if you posted the full Error: JuliaSyntax parser failed log from building the mac app. It's the tail of that log which contains the important information about what actually failed.

@George9000
Copy link
Contributor

I think these are the full errors @pablosanjose reported above. The output exceeded the scrollback buffer, but the sample below should help.

app JuliaSyntax errors
 Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:119
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:221
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] pushitem!(list::Markdown.List, buffer::IOBuffer)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Common/block.jl:329
│     [43] (::Markdown.var"#35#36"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Common/block.jl:317
│     [44] withstream(f::Markdown.var"#35#36"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [45] list(stream::IOBuffer, block::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Common/block.jl:266
│     [46] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [47] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [48] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [49] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [50] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documents.jl:58
│     [51] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documents.jl:397 [inlined]
│     [52] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Builder.jl:131
│     [53] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Utilities/Selectors.jl:170
│     [54] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documenter.jl:273 [inlined]
│     [55] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [56] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documenter.jl:272
│     [57] top-level scope
│        @ ~/applications/julia/doc/make.jl:293
│     [58] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [59] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")\"` produces a [regular expression object](@ref man-regex-literals) rather than a string"
└ @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:258
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:119
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:221
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documents.jl:58
│     [43] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documents.jl:397 [inlined]
│     [44] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Builder.jl:131
│     [45] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Utilities/Selectors.jl:170
│     [46] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documenter.jl:273 [inlined]
│     [47] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [48] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documenter.jl:272
│     [49] top-level scope
│        @ ~/applications/julia/doc/make.jl:293
│     [50] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [51] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")\"` should"
└ @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:258
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:119
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/source_files.jl:221
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{Base.JuliaSyntax.var"#invoke_fixedworld#116#120"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/julia/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documents.jl:58
│     [43] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documents.jl:397 [inlined]
│     [44] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Builder.jl:131
│     [45] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Utilities/Selectors.jl:170
│     [46] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documenter.jl:273 [inlined]
│     [47] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [48] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/julia/doc/deps/packages/Documenter/H5y27/src/Documenter.jl:272
│     [49] top-level scope
│        @ ~/applications/julia/doc/make.jl:293
│     [50] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [51] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")\"` is compiled and inserted into the syntax tree when"
└ @ Base.JuliaSyntax ~/applications/julia/base/JuliaSyntax/src/hooks.jl

@IanButterworth
Copy link
Member

Similar errors seen here https://buildkite.com/julialang/julia-master/builds/25058#0188e011-a197-4d0f-89b9-54c814f4d2d6/769-1242

  | REPL                                              (5) \|        started at 2023-06-21T23:02:58.509 on pid 493
  | Mmap                                              (9) \|    29.92 \|  21.60 \| 72.2 \|     119.52 \|  1823.94
  | Random                                            (9) \|        started at 2023-06-21T23:03:06.798 on pid 574
  | From worker 5:	┌ Error: JuliaSyntax parser failed — falling back to flisp!
  | From worker 5:	│   exception =
  | From worker 5:	│    BoundsError: attempt to access 38-codeunit SubString{String} at index [39]
  | From worker 5:	│    Stacktrace:
  | From worker 5:	│      [1] _nextind_str(s::SubString{String}, i::Int64)
  | From worker 5:	│        @ Base ./strings/string.jl:177
  | From worker 5:	│      [2] nextind(s::SubString{String}, i::Int64)
  | From worker 5:	│        @ Base ./strings/substring.jl:104 [inlined]
  | From worker 5:	│      [3] source_location(source::Base.JuliaSyntax.SourceFile, byte_index::Int64)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/source_files.jl:64
  | From worker 5:	│      [4] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/diagnostics.jl:61
  | From worker 5:	│      [5] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/diagnostics.jl:86
  | From worker 5:	│      [6] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/parser_api.jl:20
  | From worker 5:	│      [7] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
  | From worker 5:	│        @ Base ./strings/io.jl:114
  | From worker 5:	│      [8] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
  | From worker 5:	│        @ Base ./strings/io.jl:107 [inlined]
  | From worker 5:	│      [9] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:184
  | From worker 5:	│     [10] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
  | From worker 5:	│        @ Base ./essentials.jl:898
  | From worker 5:	│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
  | From worker 5:	│        @ Base ./essentials.jl:895
  | From worker 5:	│     [12] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::String, ::Vararg{…}; kws::@Kwargs{})
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:118
  | From worker 5:	│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::String, ::Vararg{…})
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:117
  | From worker 5:	│     [14] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
  | From worker 5:	│        @ Base.Meta ./meta.jl:200
  | From worker 5:	│     [15] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
  | From worker 5:	│        @ Base.Meta ./meta.jl:237 [inlined]
  | From worker 5:	│     [16] (::REPL.var"#98#108"{…})(::REPL.LineEdit.MIState, ::Any, ::Vararg{…})
  | From worker 5:	│        @ REPL /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1182
  | From worker 5:	│     [17] invokelatest(::REPL.var"#98#108"{…}, ::Any, ::Any, ::String; kwargs::@Kwargs{})
  | From worker 5:	│        @ Base ./essentials.jl:864 [inlined]
  | From worker 5:	│     [18] invokelatest(::REPL.var"#98#108"{…}, ::Any, ::Any, ::String)
  | From worker 5:	│        @ Base ./essentials.jl:861 [inlined]
  | From worker 5:	│     [19] (::REPL.LineEdit.var"#27#28"{REPL.var"#98#108"{…}, String})(s::Any, p::Any)
  | From worker 5:	│        @ REPL.LineEdit /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:1612
  | From worker 5:	│     [20] prompt!(term::REPL.Terminals.TextTerminal, prompt::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
  | From worker 5:	│        @ REPL.LineEdit /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2749
  | From worker 5:	│     [21] run_interface(terminal::REPL.Terminals.TextTerminal, m::REPL.LineEdit.ModalInterface, s::REPL.LineEdit.MIState)
  | From worker 5:	│        @ REPL.LineEdit /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/src/LineEdit.jl:2651
  | From worker 5:	│     [22] run_frontend(repl::REPL.LineEditREPL, backend::REPL.REPLBackendRef)
  | From worker 5:	│        @ REPL /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/src/REPL.jl:1297
  | From worker 5:	│     [23] (::REPL.var"#62#68"{REPL.LineEditREPL, REPL.REPLBackendRef})()
  | From worker 5:	│        @ REPL /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/src/REPL.jl:373
  | From worker 5:	│    Some type information was truncated. Use `show(err)` to see complete types.
  | From worker 5:	│   offset = 7
  | From worker 5:	│   code = "julia> begin\n           α=1\n           β=2\n"
  | From worker 5:	└ @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:258
  | From worker 8:	TLS host verification: the identity of the server `localhost` could not be verified. Someone could be trying to man-in-the-middle your connection. It is also possible that the correct server is using an invalid certificate or that your system's certificate authority root store is misconfigured.
  | LibGit2/libgit2                                   (8) \|   139.02 \|   1.01 \|  0.7 \|    1088.51 \|  2490.54
  | SHA                                               (8) \|        started at 2023-06-21T23:03:15.640 on pid 554
  | From worker 5:	┌ Error: JuliaSyntax parser failed — falling back to flisp!
  | From worker 5:	│   exception =
  | From worker 5:	│    BoundsError: attempt to access 4-codeunit SubString{String} at index [5]
  | From worker 5:	│    Stacktrace:
  | From worker 5:	│      [1] _nextind_str(s::SubString{String}, i::Int64)
  | From worker 5:	│        @ Base ./strings/string.jl:177
  | From worker 5:	│      [2] nextind(s::SubString{String}, i::Int64)
  | From worker 5:	│        @ Base ./strings/substring.jl:104 [inlined]
  | From worker 5:	│      [3] source_location(source::Base.JuliaSyntax.SourceFile, byte_index::Int64)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/source_files.jl:64
  | From worker 5:	│      [4] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/diagnostics.jl:61
  | From worker 5:	│      [5] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/diagnostics.jl:86
  | From worker 5:	│      [6] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/parser_api.jl:20
  | From worker 5:	│      [7] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
  | From worker 5:	│        @ Base ./strings/io.jl:114
  | From worker 5:	│      [8] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
  | From worker 5:	│        @ Base ./strings/io.jl:107 [inlined]
  | From worker 5:	│      [9] core_parser_hook(code::SubString{String}, filename::String, lineno::Int64, offset::Int64, options::Symbol)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:184
  | From worker 5:	│     [10] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
  | From worker 5:	│        @ Base ./essentials.jl:898
  | From worker 5:	│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
  | From worker 5:	│        @ Base ./essentials.jl:895
  | From worker 5:	│     [12] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::SubString{…}, ::Vararg{…}; kws::@Kwargs{})
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:118
  | From worker 5:	│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::SubString{…}, ::Vararg{…})
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:117
  | From worker 5:	│     [14] _parse_string(text::SubString{String}, filename::String, lineno::Int64, index::Int64, options::Symbol)
  | From worker 5:	│        @ Base.Meta ./meta.jl:200
  | From worker 5:	│     [15] parseatom(text::SubString{String}, pos::Int64; filename::String, lineno::Int64)
  | From worker 5:	│        @ Base.Meta ./meta.jl:288 [inlined]
  | From worker 5:	│     [16] shell_parse(str::String, interpolate::Bool; special::String, filename::String)
  | From worker 5:	│        @ Base ./shell.jl:78
  | From worker 5:	│     [17] shell_parse(str::String, interpolate::Bool)
  | From worker 5:	│        @ Base ./shell.jl:19 [inlined]
  | From worker 5:	│     [18] shell_completions(string::String, pos::Int64)
  | From worker 5:	│        @ REPL.REPLCompletions /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/src/REPLCompletions.jl:1175
  | From worker 5:	│     [19] test_scomplete(s::String)
  | From worker 5:	│        @ Main.Test8Main_REPL.REPLCompletionsTest /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/test/replcompletions.jl:155
  | From worker 5:	│     [20] top-level scope
  | From worker 5:	│        @ /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/test/replcompletions.jl:996
  | From worker 5:	│     [21] include(mod::Module, _path::String)
  | From worker 5:	│        @ Base ./Base.jl:489
  | From worker 5:	│     [22] include(x::String)
  | From worker 5:	│        @ Main.Test8Main_REPL.REPLCompletionsTest /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/test/runtests.jl:9
  | From worker 5:	│     [23] top-level scope
  | From worker 5:	│        @ /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/test/runtests.jl:10
  | From worker 5:	│     [24] include(mod::Module, _path::String)
  | From worker 5:	│        @ Base ./Base.jl:489 [inlined]
  | From worker 5:	│     [25] macro expansion
  | From worker 5:	│        @ Main /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/test/testdefs.jl:29 [inlined]
  | From worker 5:	│     [26] macro expansion
  | From worker 5:	│        @ Main /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/Test/src/Test.jl:1577 [inlined]
  | From worker 5:	│     [27] macro expansion
  | From worker 5:	│        @ Main /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/test/testdefs.jl:23 [inlined]
  | From worker 5:	│     [28] macro expansion
  | From worker 5:	│        @ Main ./timing.jl:503 [inlined]
  | From worker 5:	│     [29] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
  | From worker 5:	│        @ Main /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/test/testdefs.jl:21
  | From worker 5:	│     [30] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{seed::UInt128})
  | From worker 5:	│        @ Base ./essentials.jl:866
  | From worker 5:	│     [31] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})()
  | From worker 5:	│        @ Distributed /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
  | From worker 5:	│     [32] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool)
  | From worker 5:	│        @ Distributed /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:70
  | From worker 5:	│     [33] (::Distributed.var"#109#111"{Distributed.CallMsg{:call_fetch}, Distributed.MsgHeader, Sockets.TCPSocket})()
  | From worker 5:	│        @ Distributed /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
  | From worker 5:	│    Some type information was truncated. Use `show(err)` to see complete types.
  | From worker 5:	│   offset = 4
  | From worker 5:	│   code = "cd \$(max"
  | From worker 5:	└ @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:258
  | From worker 5:	┌ Error: JuliaSyntax parser failed — falling back to flisp!
  | From worker 5:	│   exception =
  | From worker 5:	│    BoundsError: attempt to access 5-codeunit SubString{String} at index [6]
  | From worker 5:	│    Stacktrace:
  | From worker 5:	│      [1] _nextind_str(s::SubString{String}, i::Int64)
  | From worker 5:	│        @ Base ./strings/string.jl:177
  | From worker 5:	│      [2] nextind(s::SubString{String}, i::Int64)
  | From worker 5:	│        @ Base ./strings/substring.jl:104 [inlined]
  | From worker 5:	│      [3] source_location(source::Base.JuliaSyntax.SourceFile, byte_index::Int64)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/source_files.jl:64
  | From worker 5:	│      [4] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/diagnostics.jl:61
  | From worker 5:	│      [5] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/diagnostics.jl:86
  | From worker 5:	│      [6] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/parser_api.jl:20
  | From worker 5:	│      [7] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
  | From worker 5:	│        @ Base ./strings/io.jl:114
  | From worker 5:	│      [8] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
  | From worker 5:	│        @ Base ./strings/io.jl:107 [inlined]
  | From worker 5:	│      [9] core_parser_hook(code::SubString{String}, filename::String, lineno::Int64, offset::Int64, options::Symbol)
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:184
  | From worker 5:	│     [10] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
  | From worker 5:	│        @ Base ./essentials.jl:898
  | From worker 5:	│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
  | From worker 5:	│        @ Base ./essentials.jl:895
  | From worker 5:	│     [12] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::SubString{…}, ::Vararg{…}; kws::@Kwargs{})
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:118
  | From worker 5:	│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#119"{…})(::SubString{…}, ::Vararg{…})
  | From worker 5:	│        @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:117
  | From worker 5:	│     [14] _parse_string(text::SubString{String}, filename::String, lineno::Int64, index::Int64, options::Symbol)
  | From worker 5:	│        @ Base.Meta ./meta.jl:200
  | From worker 5:	│     [15] parseatom(text::SubString{String}, pos::Int64; filename::String, lineno::Int64)
  | From worker 5:	│        @ Base.Meta ./meta.jl:288 [inlined]
  | From worker 5:	│     [16] shell_parse(str::String, interpolate::Bool; special::String, filename::String)
  | From worker 5:	│        @ Base ./shell.jl:78
  | From worker 5:	│     [17] shell_parse(str::String, interpolate::Bool)
  | From worker 5:	│        @ Base ./shell.jl:19 [inlined]
  | From worker 5:	│     [18] shell_completions(string::String, pos::Int64)
  | From worker 5:	│        @ REPL.REPLCompletions /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/src/REPLCompletions.jl:1175
  | From worker 5:	│     [19] test_scomplete(s::String)
  | From worker 5:	│        @ Main.Test8Main_REPL.REPLCompletionsTest /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/test/replcompletions.jl:155
  | From worker 5:	│     [20] top-level scope
  | From worker 5:	│        @ /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/test/replcompletions.jl:1065
  | From worker 5:	│     [21] include(mod::Module, _path::String)
  | From worker 5:	│        @ Base ./Base.jl:489
  | From worker 5:	│     [22] include(x::String)
  | From worker 5:	│        @ Main.Test8Main_REPL.REPLCompletionsTest /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/test/runtests.jl:9
  | From worker 5:	│     [23] top-level scope
  | From worker 5:	│        @ /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/REPL/test/runtests.jl:10
  | From worker 5:	│     [24] include(mod::Module, _path::String)
  | From worker 5:	│        @ Base ./Base.jl:489 [inlined]
  | From worker 5:	│     [25] macro expansion
  | From worker 5:	│        @ Main /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/test/testdefs.jl:29 [inlined]
  | From worker 5:	│     [26] macro expansion
  | From worker 5:	│        @ Main /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/Test/src/Test.jl:1577 [inlined]
  | From worker 5:	│     [27] macro expansion
  | From worker 5:	│        @ Main /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/test/testdefs.jl:23 [inlined]
  | From worker 5:	│     [28] macro expansion
  | From worker 5:	│        @ Main ./timing.jl:503 [inlined]
  | From worker 5:	│     [29] runtests(name::String, path::String, isolate::Bool; seed::UInt128)
  | From worker 5:	│        @ Main /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/test/testdefs.jl:21
  | From worker 5:	│     [30] invokelatest(::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{seed::UInt128})
  | From worker 5:	│        @ Base ./essentials.jl:866
  | From worker 5:	│     [31] (::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}})()
  | From worker 5:	│        @ Distributed /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
  | From worker 5:	│     [32] run_work_thunk(thunk::Distributed.var"#110#112"{Distributed.CallMsg{:call_fetch}}, print_error::Bool)
  | From worker 5:	│        @ Distributed /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:70
  | From worker 5:	│     [33] (::Distributed.var"#109#111"{Distributed.CallMsg{:call_fetch}, Distributed.MsgHeader, Sockets.TCPSocket})()
  | From worker 5:	│        @ Distributed /cache/build/default-amdci4-2/julialang/julia-master/julia-2490a9c4f5/share/julia/stdlib/v1.10/Distributed/src/process_messages.jl:285
  | From worker 5:	│    Some type information was truncated. Use `show(err)` to see complete types.
  | From worker 5:	│   offset = 4
  | From worker 5:	│   code = "cd \$(Iter"
  | From worker 5:	└ @ Base.JuliaSyntax /cache/build/default-amdci4-4/julialang/julia-master/base/JuliaSyntax/src/hooks.jl:258
  | Printf                                           (11) \|    62.20 \|   1.17 \|  1.9 \|    1799.23 \|  2376.62

c42f added a commit that referenced this issue Jun 22, 2023
Fixes an issue with error formatting in Meta.parse with nontrivial
starting indices (#50245)
@c42f
Copy link
Member

c42f commented Jun 22, 2023

Thanks for pasting in all those errors ❤️

I've gone ahead and merged #50253 which definitely fixes related issues and I think will resolve the issues here too.

But if people with access to macos could confirm that would be great.

@George9000
Copy link
Contributor

Rebuilt julia at fbb8d6c
gmake docs continues to have JuliaSyntax errors

errors
julia> versioninfo()
Julia Version 1.10.0-DEV.1543
Commit fbb8d6cc45 (2023-06-22 00:28 UTC)
Platform Info:
  OS: macOS (arm64-apple-darwin21.6.0)
  CPU: 10 × Apple M1 Max
  WORD_SIZE: 64
  LIBM: libopenlibm
  LLVM: libLLVM-15.0.7 (ORCJIT, apple-m1)
  Threads: 5 on 8 virtual cores
Environment:
  JULIA_NUM_THREADS = 4
  JULIA_DEPOT_PATH = /Users/foo/applications/juliabuild

% gmake docs
.
.
.  
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:120
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:222
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::IOBuffer; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] interpinner(stream::IOBuffer, greedy::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [19] interpinner(stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [20] (::Markdown.var"#91#92"{IOBuffer})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [21] withstream(f::Markdown.var"#91#92"{IOBuffer}, stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [22] interp(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [23] parseinline(stream::IOBuffer, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [24] parseinline(stream::IOBuffer, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [25] parseinline(s::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [26] paragraph(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Common/block.jl:34
│     [27] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [28] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [29] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [30] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [31] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:58
│     [32] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:397 [inlined]
│     [33] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Builder.jl:131
│     [34] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Utilities/Selectors.jl:170
│     [35] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:273 [inlined]
│     [36] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [37] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:272
│     [38] top-level scope
│        @ ~/applications/juliadev/doc/make.jl:293
│     [39] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [40] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│     [41] _start()
│        @ Base ./client.jl:552
│   offset = 0
│   code = ")' may trigger package precompilation):"
└ @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:258
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:120
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:222
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:58
│     [43] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:397 [inlined]
│     [44] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Builder.jl:131
│     [45] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Utilities/Selectors.jl:170
│     [46] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:273 [inlined]
│     [47] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [48] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:272
│     [49] top-level scope
│        @ ~/applications/juliadev/doc/make.jl:293
│     [50] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [51] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")"
└ @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:258
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:120
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:222
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:58
│     [43] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:397 [inlined]
│     [44] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Builder.jl:131
│     [45] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Utilities/Selectors.jl:170
│     [46] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:273 [inlined]
│     [47] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [48] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:272
│     [49] top-level scope
│        @ ~/applications/juliadev/doc/make.jl:293
│     [50] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [51] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")"
└ @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:258
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:120
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:222
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:58
│     [43] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:397 [inlined]
│     [44] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Builder.jl:131
│     [45] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Utilities/Selectors.jl:170
│     [46] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:273 [inlined]
│     [47] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [48] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:272
│     [49] top-level scope
│        @ ~/applications/juliadev/doc/make.jl:293
│     [50] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [51] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")"
└ @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:258
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:120
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:222
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] pushitem!(list::Markdown.List, buffer::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Common/block.jl:329
│     [43] (::Markdown.var"#35#36"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Common/block.jl:317
│     [44] withstream(f::Markdown.var"#35#36"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [45] list(stream::IOBuffer, block::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Common/block.jl:266
│     [46] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [47] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [48] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [49] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [50] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:58
│     [51] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:397 [inlined]
│     [52] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Builder.jl:131
│     [53] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Utilities/Selectors.jl:170
│     [54] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:273 [inlined]
│     [55] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [56] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:272
│     [57] top-level scope
│        @ ~/applications/juliadev/doc/make.jl:293
│     [58] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [59] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")\"` produces a [regular expression object](@ref man-regex-literals) rather than a string"
└ @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:258
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:120
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:222
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:58
│     [43] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:397 [inlined]
│     [44] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Builder.jl:131
│     [45] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Utilities/Selectors.jl:170
│     [46] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:273 [inlined]
│     [47] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [48] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:272
│     [49] top-level scope
│        @ ~/applications/juliadev/doc/make.jl:293
│     [50] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [51] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")\"` should"
└ @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:258
┌ Error: JuliaSyntax parser failed — falling back to flisp!
│   exception =
│    BoundsError: attempt to access empty SubString{String} at index [0]
│    Stacktrace:
│      [1] checkbounds(s::SubString{String}, I::Int64)
│        @ Base ./strings/basic.jl:216 [inlined]
│      [2] getindex(s::SubString{String}, i::Int64)
│        @ Base ./strings/substring.jl:91
│      [3] getindex(source::Base.JuliaSyntax.SourceFile, i::Int64)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:120
│      [4] highlight(io::IOBuffer, source::Base.JuliaSyntax.SourceFile, range::UnitRange{Int64}; color::Tuple{Int64, Int64, Int64}, context_lines_before::Int64, context_lines_inner::Int64, context_lines_after::Int64, note::String, notecolor::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/source_files.jl:222
│      [5] show_diagnostic(io::IOBuffer, diagnostic::Base.JuliaSyntax.Diagnostic, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:76
│      [6] show_diagnostics(io::IOBuffer, diagnostics::Vector{Base.JuliaSyntax.Diagnostic}, source::Base.JuliaSyntax.SourceFile)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/diagnostics.jl:86
│      [7] showerror(io::IOBuffer, err::Base.JuliaSyntax.ParseError)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/parser_api.jl:20
│      [8] sprint(f::Function, args::Base.JuliaSyntax.ParseError; context::Nothing, sizehint::Int64)
│        @ Base ./strings/io.jl:114
│      [9] sprint(f::typeof(showerror), args::Base.JuliaSyntax.ParseError)
│        @ Base ./strings/io.jl:107 [inlined]
│     [10] core_parser_hook(code::String, filename::String, lineno::Int64, offset::Int64, options::Symbol)
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:184
│     [11] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any}; kwargs::@Kwargs{})
│        @ Base ./essentials.jl:898
│     [12] invoke_in_world(::UInt64, ::Any, ::Any, ::Vararg{Any})
│        @ Base ./essentials.jl:895
│     [13] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any}; kws::@Kwargs{})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:118
│     [14] (::Base.JuliaSyntax.var"#invoke_fixedworld#120"{Base.JuliaSyntax.var"#invoke_fixedworld#117#121"{typeof(Base.JuliaSyntax.core_parser_hook), UInt64}})(::String, ::Vararg{Any})
│        @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:117
│     [15] _parse_string(text::String, filename::String, lineno::Int64, index::Int64, options::Symbol)
│        @ Base.Meta ./meta.jl:200
│     [16] parse(str::String, pos::Int64; greedy::Bool, raise::Bool, depwarn::Bool)
│        @ Base.Meta ./meta.jl:237 [inlined]
│     [17] _parse(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}; greedy::Bool, raise::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:5
│     [18] kwcall(::NamedTuple, ::typeof(Markdown._parse), stream::IO)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:3 [inlined]
│     [19] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, greedy::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:14
│     [20] interpinner(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:11 [inlined]
│     [21] (::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:27 [inlined]
│     [22] withstream(f::Markdown.var"#91#92"{Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}}, stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [23] interp(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Julia/interp.jl:26
│     [24] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, parsers::Vector{Function})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:47
│     [25] parseinline(stream::Base.GenericIOBuffer{SubArray{UInt8, 1, Vector{UInt8}, Tuple{UnitRange{Int64}}, true}}, md::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:57
│     [26] parseinline(s::SubString{String}, md::Markdown.MD, c::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:72 [inlined]
│     [27] parseinline(s::SubString{String}, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:75 [inlined]
│     [28] (::Markdown.var"#56#58"{Markdown.MD})(x::SubString{String})
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54 [inlined]
│     [29] iterate(g::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, s::Int64)
│        @ Base ./generator.jl:47 [inlined]
│     [30] collect_to!(dest::Vector{Vector{Any}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, offs::Int64, st::Int64)
│        @ Base ./array.jl:890
│     [31] collect_to_with_first!(dest::Vector{Vector{Any}}, v1::Vector{Any}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, st::Int64)
│        @ Base ./array.jl:868 [inlined]
│     [32] _collect(c::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}}, ::Base.EltypeUnknown, isz::Base.HasShape{1})
│        @ Base ./array.jl:862
│     [33] collect_similar(cont::Vector{SubString{String}}, itr::Base.Generator{Vector{SubString{String}}, Markdown.var"#56#58"{Markdown.MD}})
│        @ Base ./array.jl:761 [inlined]
│     [34] map(f::Markdown.var"#56#58"{Markdown.MD}, A::Vector{SubString{String}})
│        @ Base ./abstractarray.jl:3263 [inlined]
│     [35] (::Markdown.var"#55#57"{IOBuffer, Markdown.MD})()
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:54
│     [36] withstream(f::Markdown.var"#55#57"{IOBuffer, Markdown.MD}, stream::IOBuffer)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/util.jl:113 [inlined]
│     [37] github_table(stream::IOBuffer, md::Markdown.MD)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/GitHub/table.jl:41
│     [38] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config; breaking::Bool)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:83
│     [39] parse(stream::IOBuffer, block::Markdown.MD, config::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:79 [inlined]
│     [40] parse(stream::IOBuffer; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/parse/parse.jl:94
│     [41] parse(markdown::String; flavor::Markdown.Config)
│        @ Markdown ~/applications/juliadev/usr/share/julia/stdlib/v1.10/Markdown/src/Markdown.jl:31 [inlined]
│     [42] Documenter.Documents.Page(source::String, build::String, workdir::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:58
│     [43] addpage!(doc::Documenter.Documents.Document, src::String, dst::String, wd::String)
│        @ Documenter.Documents ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documents.jl:397 [inlined]
│     [44] runner(::Type{Documenter.Builder.SetupBuildDirectory}, doc::Documenter.Documents.Document)
│        @ Documenter.Builder ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Builder.jl:131
│     [45] dispatch(::Type{Documenter.Builder.DocumentPipeline}, x::Documenter.Documents.Document)
│        @ Documenter.Utilities.Selectors ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Utilities/Selectors.jl:170
│     [46] (::Documenter.var"#2#3"{Documenter.Documents.Document})()
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:273 [inlined]
│     [47] cd(f::Documenter.var"#2#3"{Documenter.Documents.Document}, dir::String)
│        @ Base.Filesystem ./file.jl:112
│     [48] makedocs(; debug::Bool, format::Documenter.Writers.HTMLWriter.HTML, kwargs::@Kwargs{build::String, modules::Vector{Module}, clean::Bool, doctest::Bool, linkcheck::Bool, linkcheck_ignore::Vector{String}, strict::Bool, checkdocs::Symbol, sitename::String, authors::String, pages::Vector{Any}})
│        @ Documenter ~/applications/juliadev/doc/deps/packages/Documenter/yf96B/src/Documenter.jl:272
│     [49] top-level scope
│        @ ~/applications/juliadev/doc/make.jl:293
│     [50] include(mod::Module, _path::String)
│        @ Base ./Base.jl:489
│     [51] exec_options(opts::Base.JLOptions)
│        @ Base ./client.jl:318
│   offset = 0
│   code = ")\"` is compiled and inserted into the syntax tree when"
└ @ Base.JuliaSyntax ~/applications/juliadev/base/JuliaSyntax/src/hooks.jl:258

@George9000
Copy link
Contributor

julia fbb8d6c
Though errors with make docs persist, make testall REPL errors with JuliaSyntax parser are gone.

@c42f
Copy link
Member

c42f commented Jun 22, 2023

Thanks so much for checking again and posting the detailed logs! I can now reproduce locally so I'll look into this.

@brenhinkeller brenhinkeller added the building Build system, or building Julia or its dependencies label Aug 4, 2023
@c42f c42f added parser Language parsing and surface syntax and removed building Build system, or building Julia or its dependencies labels Aug 15, 2023
@c42f
Copy link
Member

c42f commented Aug 21, 2023

I believe this is fixed as of #50928

@c42f c42f closed this as completed Aug 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
parser Language parsing and surface syntax
Projects
None yet
Development

No branches or pull requests

5 participants