LuaLS / LuaLS/lua-language-server-rust
The generated executable depends on files in the source tree
Personne n'a encore pris cette issue.
- Langage dominant
- Lua
- Étoiles
- 19
- Forks
- 6
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
It is unexpected that the compiled executable requires the build dir to remain present. This additionally makes it problematic to include this software in any operating system distribution.
Currently the main() function sources main.lua at run-time using load() with a filename, and consequentially all of its required files are also read from the source tree at run-time. Furthermore version.lua parses the changelog at run-time to determine the version number. There might be more similar constructs. I have not looked further.
In order to make the built executable self-sustained, one might wish to use constructs which injects the actual Lua source files into the Rust source using e.g. include_str!(). The AsChunk trait has the required implementations for a &str to be given to load().
As for version strings, the best solution would probably to be solve issue #9, which would make the version string available at build-time in Rust context using the env!() macro with CARGO_PKG_VERSION. If that for some reason is not desired or possible, parsing the changelog at build time using a build.rs script would be an alternative.
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par crates/luals/src/main.rs, en particulier le point d’entrée main(), et script/version.lua ; examinez les autres chemins de chargement des fichiers d’exécution comme indiqué. Compilez l’exécutable, puis testez-le avec les répertoires de build et des sources indisponibles. Le travail est terminé lorsque l’exécutable s’exécute sans fichiers de l’arbre des sources et affiche sa version sans analyser le changelog à l’exécution.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- lua, rust
- Domaine
- build-system, devtools
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100