Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Contribute towards the Perl 5.8.9 release documents and be loved by millions!

by sasdrtx (Friar)
on Sep 06, 2008 at 14:14 UTC ( [id://709500]=note: print w/replies, xml ) Need Help??


in reply to Contribute towards the Perl 5.8.9 release documents and be loved by millions!

Pardon my ignorance, this is the first I've heard about a new 5.8 release. Why would someone want to upgrade to 5.8.9 rather than 5.10?

sas

Replies are listed 'Best First'.
Re^2: Contribute towards the Perl 5.8.9 release documents and be loved by millions!
by grinder (Bishop) on Sep 06, 2008 at 21:13 UTC

    To put another spin on chromatic's words, consider 5.8.9 to be the end-of-life release of the 5.8 track. It's been good, it's served us well (5.8.0 was released in July 2002), but a number of deep architectural changes mean that new improvements can no longer be made whilst maintaining binary compatibility.

    Binary compatibility means that the underlying C structs have kept the same layout for the past 6 years. Think adding an int to a struct would lead to a 2x speed improvement? Too bad. It would break the promise that a module with an XS component that was compiled on 5.8.3 would be able to be executed by a 5.8.8 interpreter with no ill effect.

    What this means is that you could have compiled the latest version of Perl 6 years ago, compiled a suite of modules from CPAN at the same time, and then continued to upgrade only the perl interpreter, and all those CPAN modules with XS components would have continued to work unchanged.

    But sooner or later someone comes along with a truly cool optimisation, such as Nicholas Clark's work on slimming down the core datatypes (scalars, arrays and hashes), Dave Mitchell rewriting the lexical and closure code, Yves Orton adding new features to the regexp engine, Robin Houston adding all sorts of new goodies, and the time comes when you just have to let go of the past.

    And hence, 5.10, with all its shiny new goodness.

    Nevertheless, there were a number of loose ends that needed to be tied up in the 5.8 track. Some of the new ideas that arose in the journey to 5.10 were able to be backported to to 5.8. Some people were sufficiently motivated to resolve certain 5.8 bugs, and it was only fair to get them out the door.

    So consider this release a paying of debts. Just as there will never be a 5.6.3 release, it's safe to say that there will never be a 5.8.10 release.

    With 5.8.9, all debts are paid, and the porters are free to concentrate on the 5.10 track. If you find a bug now in 5.8.whatever, you're out of luck. You might want to consider this the Last Great American Whale release. To quote Lou Reed: "It's like what my painter friend Donald said to me 'stick a fork in their ass and turn them over, they're done'"

    • another intruder with the mooring in the heart of the Perl

Re^2: Contribute towards the Perl 5.8.9 release documents and be loved by millions!
by chromatic (Archbishop) on Sep 06, 2008 at 17:01 UTC

    Despite being in development for several years, 5.10 is a testing release which will only be stable when 5.10.1 is released, and 5.8.9 is a stable release.

    Yeah, I don't understand it either.

    More seriously, 5.8.9 will be binary compatible with 5.8.x, and it has some bug fixes and updates which might be important.

Re^2: Contribute towards the Perl 5.8.9 release documents and be loved by millions!
by pjf (Curate) on Sep 08, 2008 at 07:49 UTC

    Oddly enough, finding out why someone would want to upgrade to 5.8.9 rather than 5.10 is exactly what this project is all about. ;) Without the release notes, I can't tell you for certain. However some things which immediately spring to mind:

    • Some regexps run significantly faster in 5.8 than in 5.10. If you're processing massive amounts of data, you may have benchmarked your alternatives and discovered that moving to a leaner 5.8 is better than moving to 5.10.
    • 5.8.9 is binary compatible with the previous 5.8 releases. You shouldn't need to recompile any of your modules. Yet 5.8.9 incorporates many of the performance enhancements and fixes that went into 5.10.
    • You have an organisation that doesn't want to move to a .0 release of anything. I can think of plenty of these.

    Any of the above AND...

    • You re-bless objects frequently. This is faster in 5.8.9, especially if they change their overloading behaviour.
    • You want to save your debugger history.
    • You use the diagnostics pragma, and don't want it to coat your regexps in concrete and drop them off a nearby pier.

    There'll be other reasons when we find them. Plus, as chromatic noted, 5.10.0 isn't marked as "fully stable", although I'm not sure what that means either. It's certainly stable enough for me, although I know of a few things that will be changing for the 5.10.1 release.

      5.8.9 is binary compatible with the previous 5.8 releases.
      Not true. Binary compatibility was broken several times, in 5.8.1, 5.8.2, 5.8.7 (and probably others).
Re^2: Contribute towards the Perl 5.8.9 release documents and be loved by millions!
by DrHyde (Prior) on Sep 08, 2008 at 09:46 UTC
    Because 5.10.0 was rushed out to meet an arbitrary deadline. Because 5.10.0 doesn't build on your machine. Because your employer has sensible procedures which make it easier to install a bugfix release of 5.8.x than a "ooh shiny new features" release of 5.10

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://709500]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (7)
As of 2024-03-28 21:39 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found