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>