vala-language-server
vala-language-server copied to clipboard
Error while compiling vls from source. Invalid regular expression.
Describe the bug Error while trying to compile vls from source
Software
OS and version: Ubuntu 22.10
Vala version (valac --version): Vala 0.56.2
Steps to reproduce the behavior:
- Clone vls repo
- apt install meson valac libjsonrpc-glib-1.0-dev libvala-0.56-dev libgee-0.8-dev scdoc build-essential
- meson -Dprefix=/usr build
- ninja -C build
- See error
ninja -C build output
~/git/vala-language-server$ ninja -C build
ninja: Entering directory `build'
[2/43] Compiling Vala source ../src/analysis/codeanalyzer.vala ../src/analysis/codelensanalyz...eporter.vala ../src/request.vala ../src/server.vala config.vala ../src/util.vala version.vala
FAILED: src/vala-language-server.p/analysis/codeanalyzer.c src/vala-language-server.p/analysis/codelensanalyzer.c src/vala-language-server.p/analysis/codestyleanalyzer.c src/vala-language-server.p/analysis/inlayhintnodes.c src/vala-language-server.p/analysis/symbolenumerator.c src/vala-language-server.p/codeaction/baseconverteraction.c src/vala-language-server.p/codeaction/implementmissingprereqsaction.c src/vala-language-server.p/codehelp/callhierarchy.c src/vala-language-server.p/codehelp/codeaction.c src/vala-language-server.p/codehelp/codehelp.c src/vala-language-server.p/codehelp/codelensengine.c src/vala-language-server.p/codehelp/completionengine.c src/vala-language-server.p/codehelp/find_scope.c src/vala-language-server.p/codehelp/formatter.c src/vala-language-server.p/codehelp/nodesearch.c src/vala-language-server.p/codehelp/signaturehelpengine.c src/vala-language-server.p/codehelp/symbolextractor.c src/vala-language-server.p/codehelp/symbolreferences.c src/vala-language-server.p/codehelp/symbolvisitor.c src/vala-language-server.p/codehelp/typehierarchy.c src/vala-language-server.p/documentation/cnamemapper.c src/vala-language-server.p/documentation/doccomment.c src/vala-language-server.p/documentation/girdocumentation.c src/vala-language-server.p/projects/buildtarget.c src/vala-language-server.p/projects/buildtask.c src/vala-language-server.p/projects/ccproject.c src/vala-language-server.p/projects/compilation.c src/vala-language-server.p/projects/defaultproject.c src/vala-language-server.p/projects/filecache.c src/vala-language-server.p/projects/mesonproject.c src/vala-language-server.p/projects/project.c src/vala-language-server.p/projects/textdocument.c src/vala-language-server.p/projects/types.c src/vala-language-server.p/protocol.c src/vala-language-server.p/reporter.c src/vala-language-server.p/request.c src/vala-language-server.p/server.c src/vala-language-server.p/config.c src/vala-language-server.p/util.c src/vala-language-server.p/version.c
valac -C --debug --debug --define=WITH_JSONRPC_GLIB_3_30 --target-glib=auto --enable-gobject-tracing --fatal-warnings --pkg gio-unix-2.0 --pkg posix --pkg libvala-0.56 --pkg jsonrpc-glib-1.0 --pkg json-glib-1.0 --pkg gee-0.8 --pkg gio-2.0 --pkg gobject-2.0 --pkg glib-2.0 --color=always --directory src/vala-language-server.p --basedir ../src ../src/analysis/codeanalyzer.vala ../src/analysis/codelensanalyzer.vala ../src/analysis/codestyleanalyzer.vala ../src/analysis/inlayhintnodes.vala ../src/analysis/symbolenumerator.vala ../src/codeaction/baseconverteraction.vala ../src/codeaction/implementmissingprereqsaction.vala ../src/codehelp/callhierarchy.vala ../src/codehelp/codeaction.vala ../src/codehelp/codehelp.vala ../src/codehelp/codelensengine.vala ../src/codehelp/completionengine.vala ../src/codehelp/find_scope.vala ../src/codehelp/formatter.vala ../src/codehelp/nodesearch.vala ../src/codehelp/signaturehelpengine.vala ../src/codehelp/symbolextractor.vala ../src/codehelp/symbolreferences.vala ../src/codehelp/symbolvisitor.vala ../src/codehelp/typehierarchy.vala ../src/documentation/cnamemapper.vala ../src/documentation/doccomment.vala ../src/documentation/girdocumentation.vala ../src/projects/buildtarget.vala ../src/projects/buildtask.vala ../src/projects/ccproject.vala ../src/projects/compilation.vala ../src/projects/defaultproject.vala ../src/projects/filecache.vala ../src/projects/mesonproject.vala ../src/projects/project.vala ../src/projects/textdocument.vala ../src/projects/types.vala ../src/protocol.vala ../src/reporter.vala ../src/request.vala ../src/server.vala config.vala ../src/util.vala version.vala
../src/documentation/girdocumentation.vala:359.29-359.57: error: Invalid regular expression `//!\[(.*?)\]\(([~:\/\\\w-.]+)\)'.
359 | comment_data = /!\[(.*?)\]\(([~:\/\\\w-.]+)\)/
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../src/documentation/girdocumentation.vala:389.25-389.47: error: Invalid regular expression `//\[(.*?)\]\[([\w-\s]+)\]'.
389 | comment_data = /\[(.*?)\]\[([\w-\s]+)\]/
| ^~~~~~~~~~~~~~~~~~~~~~~
../src/documentation/doccomment.vala:132.17-132.59: error: Invalid regular expression `//(\[\[|{{)([~:\/\\\w-.]+)(\|(.*?))?(\]\]|}})'.
132 | body = /(\[\[|{{)([~:\/\\\w-.]+)(\|(.*?))?(\]\]|}})/
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Compilation failed: 3 error(s), 0 warning(s)
Maybe related: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2529
I had issues building since Glib 2.74. Had issues with segfaults with that GLib version due to regex incompatibilities and deprecations.
The error message is very strange - notice how it's got two slashes at the start and none at the end.
error: Invalid regular expression `//(\[\[|{{)([~:\/\\\w-.]+)(\|(.*?))?(\]\]|}})'.
^^ ^
It still seems to parse what I think is a matching regex that's not done as a RegEx literal, though:
new GLib.Regex("""!\[(.*?)\]\(([~:\/\\\w-.]+)\)""")
Just made a quick PR in case anyone wants to hack in a custom patch to (hopefully) get it working until the real source is found.
Unfortunately, Vala throws away any useful information when it captures the exception and prints that message.
This is due to not escaping the - character in the regex used for parsing links in comments.
Hello @Prince781, can you please make a new release? This issue breaks the building on Arch Linux (valac 0.56.3).
@SilverRainZ please try version 0.48.7 in the AUR