Comments (4)
Can't reproduce any longer. Thanks!
from zef.
I suspect if you run with --ll-exception
the trace will lead to CompUnit::Repository::Installation.install
. NQP errors that happen during the install phase are also indicative of CompUnit::Repository::Installation.install
. An additional clue is that the module is actually installed, and fails when precompiling.
This leads to the question: is this a zef or rakudo bug? On one hand zef could reinstall all reverse dependencies. On the other hand if precompilation was disabled this problem would not occur, and because all precomp happens automatically it puts the onus to a correct solution on CompUnit::Repository::Installation
.
Personally I don't consider reinstalling all reverse dependencies to be anything more than a hacky workaround; The correct solution is to re-precompile the reverse dependencies, but the only way for a package manager to do that is to do a complete reinstall or to nuke entire precomp directories. CUR
should really be handling that automatically.
tl;dr: rakudo is failing to invalidate precomp files in situations that it actually should
from zef.
This may be a good reason to finally design the hook system for the various phases. This will allow a workaround (as well as the current Build.pm cruft) to act as compatibility adapters alongside similar before/after style phase modifiers. It will also make it easier to drop (or at least bury) the technical debt of future "temporary" solutions. The current plugin system can probably be adapted to take on this role, essentially allow hooks to wrap
each phase plugin (each hook is guaranteed to be called whereas plugins act similar to a lazy iterator where the last plugin in the chain may never need to be called)
In such a system I think the solution is then a pre-install
hook script that will delete precomp files for reverse dependencies if the rakudo version is less than $whenever-its-fixed
from zef.
Please test again with latest rakudo. This patch might improve the situation: rakudo/rakudo@d0a00164e9
(if so, we can close https://rt.perl.org/Ticket/Display.html?id=128088)
from zef.
Related Issues (20)
- Command `zef install ...` results in `Type check failed for return value; expected IO::Path but got Any (Any)` HOT 1
- zef does not compile under rakudo-jvm HOT 1
- Cannot install modules with zef on multi-user system HOT 1
- "latest" tag is strange :)
- Failed to create directory '/usr/share/perl6/site/short' with mode '0o777': Failed to mkdir HOT 2
- Installing `DateTime::Timezones:ver<0.4.1>:auth<zef:guifa>` fails but keeps installation HOT 2
- How to fix destroot for zef? HOT 12
- `zef depends` suggests using `--exclude` but then doesn't recognize the flag
- fetch 'Usage' message incorrectly suggests arguments are optional HOT 2
- Feature request: `zef config` subcommands for debugging HOT 1
- Confusing message for command 'upgrade' HOT 4
- Feature request: Have option "--serial" be the default for commands "install" and "upgrade" HOT 2
- zef install treated "v6" as a dependency HOT 1
- No such method 'remove-artifacts' for invocant of type HOT 4
- Can't `zef install` YAMLish on Windows 10 HOT 6
- Error: Type check failed in binding to parameter '$repo-id'; HOT 1
- Use of uninitialized value @short-names-to-index HOT 4
- zef installs some module resources to /tmp/.zef which are missing on reboot HOT 5
- Add `--precomp` flag to zef HOT 1
- Use of uninitialized value @short-names-to-index in Zef::Repository::Ecosystems line 250 HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from zef.