vala-lang / vala-language-server

Code Intelligence for Vala & Genie
GNU Lesser General Public License v2.1
287 stars 41 forks source link

Error while compiling vls from source. Invalid regular expression. #263

Closed RocketRide9 closed 1 year ago

RocketRide9 commented 1 year ago

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:

  1. Clone vls repo
  2. apt install meson valac libjsonrpc-glib-1.0-dev libvala-0.56-dev libgee-0.8-dev scdoc build-essential
  3. meson -Dprefix=/usr build
  4. ninja -C build
  5. 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) ```
JCWasmx86 commented 1 year ago

Maybe related: https://gitlab.gnome.org/GNOME/glib/-/merge_requests/2529

ErikReider commented 1 year ago

I had issues building since Glib 2.74. Had issues with segfaults with that GLib version due to regex incompatibilities and deprecations.

IBBoard commented 1 year ago

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-.]+)\)""")
IBBoard commented 1 year ago

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.

Prince781 commented 1 year ago

This is due to not escaping the - character in the regex used for parsing links in comments.

SilverRainZ commented 1 year ago

Hello @Prince781, can you please make a new release? This issue breaks the building on Arch Linux (valac 0.56.3).

benwaffle commented 1 year ago

@SilverRainZ please try version 0.48.7 in the AUR