Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 23 Nov 2013 23:32:29 +0100
From:      Mathieu Arnold <mat@FreeBSD.org>
To:        "Ronald F. Guilmette" <rfg@tristatelogic.com>, ports list <freebsd-ports@freebsd.org>
Subject:   Re: Upgrading Perl... Somebody just shoot me and put me out of my misery!
Message-ID:  <845A2E7E540E58EFD7F05B6B@atuin.in.mat.cc>
In-Reply-To: <87614.1385244732@server1.tristatelogic.com>
References:  <87614.1385244732@server1.tristatelogic.com>

next in thread | previous in thread | raw e-mail | index | archive | help
+--On 23 novembre 2013 14:12:12 -0800 "Ronald F. Guilmette"
<rfg@tristatelogic.com> wrote:
|> Perl _was_ set up to be threaded (although I have no idea what is
|> actually threaded there), but the port option to enable it being
|> threaded was not enabled by default.
| 
| (One might well ask "why not?" but we will leave that question aside for
| the moment.)

Mainly because in early days, many software had problems with the changes
that went into the interpreter when it had threads, like a smaller stack,
which made amavis pretty unhappy, for instance. And from then, it stay off
because nobody thought of changing it.

|> The implication is that if you compiled it with default
|> options, it wasn't threaded. But now it (the option) has been changed to
|> be enabled by default, and so the point of that UPDATING entry was that
|> if you are running with default options, then your Perl will switch from
|> non-threaded to threaded when you recompile it,
| 
| OK, that part, at least is clear.

Yeah, sorry, english is not my mother tongue, my explanations can be a bit
off :-)

|> and you will thus need to recompile all ports that depend on Perl.
| 
| This is the part that is still utterly baffling.
| 
| Why would _anything_ that is in any way dependent upon the Perl
| interpreter need to be rebuilt?  In this switch to threads=on, has the
| language itself changed?  And if not, shouldn't the change to
| multi-threading capability within the interpreter be utterly transparent
| to (and a non-event for) any and all pre-existing Perl code?
| 
| Obviously, there's something that I'm missing, but I have no idea what it
| might be.

Because, hum, quite a few things change when you enable threads, some
headers bits change, some calls that are noop without become real call
with, things like that.

Now, it obviously is a non issue with ports that only use perl to run
scripts, or p5- ports that are only scripts, but for ports that have XS
files that get compiled into .so, they need to get recompiled, and the same
goes for every bit of software that includes the interpreter.

As there is no simple way to differentiate between those two categories of
dependencies, I ask people to rebuild (or reinstall, if you're using binary
packages) everything.

I assure you, it does not make me happy at all to have people rebuild
everything depending on Perl every two weeks (like it feels I've been doing
that for a few months...)

|> IF you already had this option enabled to begin with, I believe you don't
|> need to recompile and reinstall anything (including Perl itself, but do
|> note that the ports system will then keep thinking that Perl hasn't been
|> upgraded - which isn't an issue, since the only thing changed here is the
|> defaults and not any functionality, and so you can just wait to recompile
|> it when something more serious changes; this is up to you though).
|> 
|> Hope this clears it up a bit.
| 
| Well, I thank you for your attempt to help clear up the confusion, but I
| do confess that the need to rebuild... or the value of rebuilding... all
| of the stuff that _depends_ on Perl is still rather entirely mystifying.
| 
| I'm *not* claiming that the maintainer didn't have a good reason for
| suggesting these rebuilds.  I'm only saying that *I* personally still
| don't have a good understanding of what the need for this is/was.

As the maintainer, I hope my previous bit did explain that a bit better, if
things are not that clear, do feel free to point them out and I'll try
better.

The thing is that all those explanations can't go into UPDATING, we try to
keep it short not to confuse people.

-- 
Mathieu Arnold



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?845A2E7E540E58EFD7F05B6B>