Re: Perl 5.11.0 now available
by Anonymous Monk on Oct 03, 2009 at 00:48 UTC
|
| [reply] [d/l] |
Re: Perl 5.11.0 now available
by BrowserUk (Patriarch) on Oct 03, 2009 at 08:09 UTC
|
They might want to clarify the when and where of:
// in where clauses
// now behaves like || in when clauses
And maybe someone well-versed in technobabble should offer a footnote decoding highlighted terms:
Due to the commutativity breakage, code references are no longer treated specially when appearing on the left of the ~~ operator, but like any vulgar scalar.
Whomever served up that sentence should be hung up by his meat and two veg until he sees the error of his ways. And no, I'm not being sexist. women do not speak that way.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] |
|
|
undef ~~ \%hash
is always false; I take that to mean, in a what-I-don't-not-say-isn't-not-true way, that other (vulgar) scalars do undergo implicit stringification. | [reply] [d/l] [select] |
|
|
I'll submit a patch for s/where/when/ later todayMonday.
If "a ~~ b" were equivalent to "b ~~ a", smart matching would be commutative. It's not equivalent, so it's not commutative. As previously mentioned in the doc, smart matching was commutative in 5.10.0. It only mattered in edge cases, and it made overloading and other factors impossibly complex to handle and/or implement.
Vulgar means ordinary, plain, unspecial. In other words, a code ref on the LHS will be treated the same as any other scalar. It's actually redundant with the previous phrase.
| [reply] [d/l] [select] |
|
|
It's not equivalent, so it's not commutative.
Vulgar means ordinary, ... It's actually redundant.
In both cases, the problem is not with the strict interpretation of the descriptions, but rather with the inadequacy of the explanations as to their consequences.
Most every programmer, new or old, good or mediocre, understands that x-y is different to y-x, but perhaps only 5% or so would ever describe subtraction as non-communicative. And far less as "commutatively broken".
Beyond the value judgement that certain combinations of letters (words), are deemed vulgar in some circles, the only relatively common use of the word vulgar is "vulgar fractions". Also known as "common fractions". Which basically reduces to just "fractions".
Neither the sentence nor the overall understanding is enhanced by the use of "vulgar" in that position. It is technical or scientific language used to convey a false impression of meaningful technical or scientific content. Which is one (of the more polite), definitions of "technobabble".
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
| [reply] |
|
|
|
|
|
|
|
|
|
|
|
In other words, a code ref on the LHS will be treated the same as any other scalar. It's actually redundant with the previous phrase.
I don't think that it really is. UPDATE: Oops, but I'm wrong, because I misremembered the original sentence. The remainder of the post is now preserved only for posterity.
A commutativity breakage means that there are some circumstances in which the smart match depends on order, not that the smart match is always completely determined by the right-hand member. Indeed, for example, a smatch $scalar ~~ \%hash behaves differently when $scalar happens to be a hashref or arrayref from the way it behaves for coderefs. I think there's nothing about the phrase “commutativity breakage” to indicate this, so it needs to be made explicit in the following sentence (or elsewhere).
| [reply] [d/l] [select] |
|
|
|
|
|
|
Though I find it amusing that you who often argue eloquently for the value of technical language are taking exception to the word "commutative", I completely agree with you that that is an awful sentence.
It is terribly overwritten, substituting rare and complex terms where simple speech would do nicely. Why not use the word "scalar" alone? Or if emphasis was desired, why not use ordinary scalar or even plain old scalar rather than the obscure word "vulgar"? Why turn the relatively clear clause ~~ is no longer commutative into a convoluted noun phrase commutivity breakage? Due to the fact that ~~ is no longer commutative... is far more specific about what has changed and avoids the awkward noun phrase entirely.
Perhaps all this seems to some like stylistic quibbling. However, programming language documentation is hard enough to read even when it is clearly and simply written. In the Perl community we are fortunate to have a fairly large number of people with right brained tendencies and strong verbal skills, more perhaps than other programming communities. Taking advantage of their insights to improve documentation can only be good for Perl.
Best, beth
| [reply] |
|
|
| [reply] |
|
|
The introduction tells all! Whispers of an "evil power" ... literature!? And its not by Tolkien!? We get it, you're well read ... wait a minute, is that book the new pumpkin?
| [reply] |
Re: Perl 5.11.0 now available
by syphilis (Archbishop) on Oct 03, 2009 at 12:09 UTC
|
I'm building with dmake and the MinGW port off gcc-3.4.5 on Win32. The actual 'dmake -f makefile.mk' ran fine, but with 'dmake test' the process has been stuck on the following for the last 15 minutes:
../cpan/CPANPLUS/t/05_CPANPLUS-Internals-Fetch.t .................. 1/
+?
Doesn't seem right - is there a way to abort this particular test without aborting the rest of the test suite ?
Cheers, Rob | [reply] [d/l] |
|
|
| [reply] [d/l] |
|
|
Maybe try to ignore CPANPLUS test files, like harness -v "-re=(?!CPANPLUS)"
Thanks, cd'ing to the t directory and running perl harness -v "-re=(?!CPANPLUS)" seemed to do the trick. There were a few failures in one of the EU::MM test scripts (basic.t, iirc) - other than that, all was fine.
Cheers, Rob
| [reply] [d/l] |
Re: Perl 5.11.0 now available
by marto (Cardinal) on Oct 04, 2009 at 09:35 UTC
|
| [reply] |
Re: Perl 5.11.0 now available
by JadeNB (Chaplain) on Oct 03, 2009 at 15:20 UTC
|
I read them both—I really did!—and I don't see any difference between the delta for Perl 5.10.1 and that for Perl 5.11.0. Can some more knowledgeable fellow spell out the difference? | [reply] |
|
|
Really? They are different, perl5110delta describes the differences from 5.10.0
The all important Yada Yada operator (...) is only available in 5.11.0
| [reply] [d/l] |
|
|
Yes, it's a good point that I neglected the poor Yada Yada operator!
You prompted me to do what I should have done in the first place …. According to the all-knowing diff, aside from such obvious differences as one delta mentioning 5.10.1 where the other mentions 5.11.0, we have:
- Unicode interpretation of … redefined.
- Labels can't be keywords.
- length undef = undef and a grab-bag of other small, pleasant stuff (see lines 376–408 of perl5110delta).
- miniperl and internals stuff.
- Changes in parsing of #line.
- An extra method for tied filehandles.
- The \N escape (I could have sworn I saw it in the 5.10.1 delta, but it seems not!)
- Implicit strictures via use VERSION
- The all-important Yada Yada operator
Then I got too tired to read through all the module changes. :-)
| [reply] [d/l] [select] |
Re: Perl 5.11.0 now available
by Anonymous Monk on Oct 03, 2009 at 16:03 UTC
|
The announcement has made it to slashdot and ibmjones is amazed:
It must be real good if it goes to eleven. | [reply] |