Paul "LeoNerd" Evans
2024-10-28 12:31:31 UTC
Reply
Permalinkall complain
lib/meta.c: loadable library and perl binaries are mismatched (got
first handshake key 0xf380080, needed 0xeb80080)
I'm a core perl developer and *I know what I am doing here*, and after
some amount of digging eventually I realised it's because the system
perl has been updated from the 5.38 it was last week to 5.40 now, which
means I'll have to rebuild all my XS modules in $HOME. OK.. fine...
For a general user experience though this is kinda horrible. There's
two things bad about this message itself:
1) The message itself doesn't really point at the problem. A nicer
message would have been
lib/meta.c: loadable library and perl binaries are mismatched
(perl is version 5.40.0, library needed 5.38.2)
This one is probably fairly easy to fix in core, can we take a
look at it?
2) In this specific case that's my `meta` module which because I'm
using Module::Build I put the meta.xs file in its full path in the
lib/ directory of source, so it embeds the full path in the
message. This also comes out in message string of other of my
modules, e.g.
lib/Object/Pad/FieldAttr/Checked.c: ...
It's not *great* as a user experience but it's a start.
Annoyingly, most people use EU:MM or similar and just shove the
.xs file in the root of their source. So that means we get a
message beginning:
XS.c: loadable library and perl binaries ...
Great. That's... not helpful. Which of the potentially-hundreds of
modules whose names end in ::XS does this message refer to?
This I also feel is really not hard to fix, because surely at
compiletime we know the full module name. Can we further make the
message read:
Loadable library for module Some::Package::XS and perl binaries
are mismatched (perl version is 5.40.0, library needed 5.38.2)
Already we're even better helping users here.
Can someone take a look at this? If nobody volunteers and takes a poke
I will probably get around to it "sometime", but really this shouldn't
be a hard one to fix, it's just a message string somewhere. It would
surely be an easy project for someone new(ish) to dip their toes into
and fix, and in the process make a lot of people - new users especially
- very happy. I'd be happy to offer a hand-holding where necessary.
For further context:
https://github.com/Perl/perl5/issues/15861
--
Paul "LeoNerd" Evans
***@leonerd.org.uk
http://www.leonerd.org.uk/ | https://metacpan.org/author/PEVANS
Paul "LeoNerd" Evans
***@leonerd.org.uk
http://www.leonerd.org.uk/ | https://metacpan.org/author/PEVANS