You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When one starts Oscar.jl, GAP.Packages.load("ferret", install = true) is called.
I noticed that this can fail in certain situations, as follows.
Suppose you have unpacked version 1.0.5 of ferret in the directory that is used by Oscar for additional GAP packages
(GAP.Packages.DEFAULT_PKGDIR), but that the package is not compiled.
Then GAP.Packages.load("ferret", install = true) first notices that an installation of ferret is necessary, and GAP's PackageManager package downloads the current PackageInfo.g file, which belongs to version 1.0.10 of ferret.
Since we are not in interactive mode, PackageManager does not propose an upgrade to 1.0.10.
Instead, it tries to compile the "available" old version 1.0.5, without success. In the end, false is returned.
And since Oscar.jl does not evaluate this return value, the user does not notice that something went wrong.
(With the quiet = false option, one would see a lot of messages about errors, but one would also see some messages if the installation is successful, which would be bad.)
In order to clean the installation, one has to remove the 1.0.5 directory of ferret by hand.
In order to load ferret, one can at least force the installation of a newer version that can be compiled (by prescribing a version number in the load call).
How can we improve the situation?
Oscar.jl could show a message when GAP.Packages.load("ferret", install = true) returns false, then one would at least notice that there is a problem.
Or what is a better way to handle this in GAP.jl?
The text was updated successfully, but these errors were encountered:
When one starts Oscar.jl,
GAP.Packages.load("ferret", install = true)
is called.I noticed that this can fail in certain situations, as follows.
Suppose you have unpacked version 1.0.5 of ferret in the directory that is used by Oscar for additional GAP packages
(
GAP.Packages.DEFAULT_PKGDIR
), but that the package is not compiled.Then
GAP.Packages.load("ferret", install = true)
first notices that an installation of ferret is necessary, and GAP's PackageManager package downloads the currentPackageInfo.g
file, which belongs to version 1.0.10 of ferret.Since we are not in interactive mode, PackageManager does not propose an upgrade to 1.0.10.
Instead, it tries to compile the "available" old version 1.0.5, without success. In the end,
false
is returned.And since Oscar.jl does not evaluate this return value, the user does not notice that something went wrong.
(With the
quiet = false
option, one would see a lot of messages about errors, but one would also see some messages if the installation is successful, which would be bad.)In order to clean the installation, one has to remove the 1.0.5 directory of ferret by hand.
In order to load ferret, one can at least force the installation of a newer version that can be compiled (by prescribing a version number in the
load
call).How can we improve the situation?
Oscar.jl could show a message when
GAP.Packages.load("ferret", install = true)
returnsfalse
, then one would at least notice that there is a problem.Or what is a better way to handle this in GAP.jl?
The text was updated successfully, but these errors were encountered: