Hi, I've been tinkering with Steel recently for the Helix plugin system, and there's a bug where dylibs aren't removed when cogs containing them are uninstalled, resulting in the error "Unable to discover dylib name. It is possible that it is not deleted".
The error originates from uninstall-package calling find-dylib-name, which delegates to try-parse-toml to parse the cog's Cargo.toml, and attempts to load the dylib for steel_toml:
|
(define dylib-name (find-dylib-name cargo-toml-path)) |
|
(define toml-contents (try-parse-toml contents)) |
|
(define (try-parse-toml str) |
|
;; Include the dylib if relevant |
|
(eval '(#%require-dylib "libsteel_toml" (only-in toml->value string->toml))) |
|
(eval `(toml->value (string->toml ,str)))) |
This error was reproduced on both Windows 11 and Debian sid. The easiest solution is to install the steel_toml dylib using cd libs/steel_toml && cargo steel-lib as a postinstall step right now, but you can also consider:
- Adding a cog.scm to steel_toml and making forge itself a cog to allow declaring steel_toml as a dependency
- Vendoring steel_toml within the forge binary
(1) would entail adding a bootstrap to install forge itself and then steel_toml, but this shouldn't be a problem if the install code doesn't touch any dylib.
Hi, I've been tinkering with Steel recently for the Helix plugin system, and there's a bug where dylibs aren't removed when cogs containing them are uninstalled, resulting in the error "Unable to discover dylib name. It is possible that it is not deleted".
The error originates from
uninstall-packagecallingfind-dylib-name, which delegates totry-parse-tomlto parse the cog's Cargo.toml, and attempts to load the dylib for steel_toml:steel/crates/forge/installer/package.scm
Line 362 in 09dc028
steel/crates/forge/installer/download.scm
Line 198 in 09dc028
steel/crates/forge/installer/download.scm
Lines 189 to 192 in 09dc028
This error was reproduced on both Windows 11 and Debian sid. The easiest solution is to install the steel_toml dylib using
cd libs/steel_toml && cargo steel-libas a postinstall step right now, but you can also consider:(1) would entail adding a bootstrap to install forge itself and then steel_toml, but this shouldn't be a problem if the install code doesn't touch any dylib.