OSCON 2011 - Perl 5.16 and beyond
Upcoming SlideShare
Loading in...5
×
 

OSCON 2011 - Perl 5.16 and beyond

on

  • 9,773 views

 

Statistics

Views

Total Views
9,773
Views on SlideShare
9,726
Embed Views
47

Actions

Likes
12
Downloads
86
Comments
3

7 Embeds 47

http://www.redditmedia.com 17
http://twitter.com 10
http://lanyrd.com 10
https://twitter.com 5
http://djibril.developpez.com 2
http://www.linkedin.com 2
http://paper.li 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
  • Got a good overview of what should be expected of future releases.
    Are you sure you want to
    Your message goes here
    Processing…
  • Very exciting stuff. This presentation motivated me to donate to the Perl Foundation for the first time.
    Are you sure you want to
    Your message goes here
    Processing…
  • very good overview about the recent politics in perl
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

OSCON 2011 - Perl 5.16 and beyond OSCON 2011 - Perl 5.16 and beyond Presentation Transcript

  • Perl 5.16 and BeyondFriday, July 29, 11
  • Jesse VincentFriday, July 29, 11
  • PumpkingFriday, July 29, 11
  • Former Perl 6 Project ManagerFriday, July 29, 11
  • Whats a Pumpking?Friday, July 29, 11
  • BDFLFriday, July 29, 11
  • BDFLFriday, July 29, 11
  • BDFLFriday, July 29, 11
  • I make decisionsFriday, July 29, 11
  • I’m a managerFriday, July 29, 11
  • I don’t do “real work”Friday, July 29, 11
  • So, who makes Perl?Friday, July 29, 11
  • Many awesome peopleFriday, July 29, 11
  • I just stand around looking pretty...Friday, July 29, 11
  • ...while other people do awesome stuffFriday, July 29, 11
  • Is your name in Perl’s AUTHORS file?Friday, July 29, 11
  • Are you a CPAN author?Friday, July 29, 11
  • You rockFriday, July 29, 11
  • You make PerlFriday, July 29, 11
  • The Release ProcessFriday, July 29, 11
  • Releases in the last 12-or-so months:Friday, July 29, 11
  • 5.12.2Friday, July 29, 11
  • 5.12.3Friday, July 29, 11
  • 5.12.4Friday, July 29, 11
  • 5.13.2Friday, July 29, 11
  • 5.13.3Friday, July 29, 11
  • 5.13.4Friday, July 29, 11
  • 5.13.5Friday, July 29, 11
  • 5.13.6Friday, July 29, 11
  • 5.13.7Friday, July 29, 11
  • 5.13.8Friday, July 29, 11
  • 5.13.9Friday, July 29, 11
  • 5.13.10Friday, July 29, 11
  • 5.13.11Friday, July 29, 11
  • 5.14.0Friday, July 29, 11
  • 5.14.1Friday, July 29, 11
  • 5.15.0Friday, July 29, 11
  • 5.15.1Friday, July 29, 11
  • Perl 5.14.1 is the current release of Perl 5Friday, July 29, 11
  • It came out 6ish weeks agoFriday, July 29, 11
  • As did Perl 5.12.4Friday, July 29, 11
  • As did Perl 5.15.0Friday, July 29, 11
  • It used to take us 3 weeks to prepare a releaseFriday, July 29, 11
  • And we made the Pumpking do itFriday, July 29, 11
  • Now it takes less than a dayFriday, July 29, 11
  • The 43 step process is documentedFriday, July 29, 11
  • Releases are still a chore if you do them every monthFriday, July 29, 11
  • Now we have rotating release engineersFriday, July 29, 11
  • Most of them are new committersFriday, July 29, 11
  • Nice side effect: release engineers need commit bitsFriday, July 29, 11
  • Since the move to git, we’ve nearly doubled our committer listFriday, July 29, 11
  • The world hasn’t endedFriday, July 29, 11
  • Some of those release engineers have become prolific contributorsFriday, July 29, 11
  • I just make decisionsFriday, July 29, 11
  • I try to get them rightFriday, July 29, 11
  • Sometimes they’re wrongFriday, July 29, 11
  • I have a little bit of coverFriday, July 29, 11
  • Rule 1Friday, July 29, 11
  • Larry is always rightFriday, July 29, 11
  • Rule 2Friday, July 29, 11
  • Larry is allowed to change his mindFriday, July 29, 11
  • I’m not LarryFriday, July 29, 11
  • I’m nowhere near as cleverFriday, July 29, 11
  • My shirts are nowhere near as loudFriday, July 29, 11
  • At YAPC::NA, Larry said that the time of hero-pumpkings is overFriday, July 29, 11
  • DFriday, July 29, 11
  • DictatorFriday, July 29, 11
  • DelegatorFriday, July 29, 11
  • DocumenterFriday, July 29, 11
  • Thankfully, Larry’s rules set me up to succeedFriday, July 29, 11
  • Rule 1 definitely doesn’t apply to the Perl 5 runtimeFriday, July 29, 11
  • HoweverFriday, July 29, 11
  • The core needs more support for Rule 2Friday, July 29, 11
  • I haven’t heard this in a while:Friday, July 29, 11
  • Perl is Dead!Friday, July 29, 11
  • What I’ve been hearing lately:Friday, July 29, 11
  • Where are we going?Friday, July 29, 11
  • It’s changing too fast. Can you slow down?Friday, July 29, 11
  • You made regexes crazier?$#@!?Friday, July 29, 11
  • smartmatch isn’t named correctly...Friday, July 29, 11
  • ...can we rename it to psychoticmatch?Friday, July 29, 11
  • The futureFriday, July 29, 11
  • I’ve been accused of lacking a vision for PerlFriday, July 29, 11
  • What I lack is a flame-proof suit.Friday, July 29, 11
  • If I’d talked about my vision 2 years ago...Friday, July 29, 11
  • You would have laughed at meFriday, July 29, 11
  • ...now that we can do do releases...Friday, July 29, 11
  • A VisionFriday, July 29, 11
  • New versions of Perl shouldn’t break your existing softwareFriday, July 29, 11
  • Old syntax and semantics can’t stop Perl 5 from evolvingFriday, July 29, 11
  • We need to be able to make mistakes as we rebuild Perl 5Friday, July 29, 11
  • We will make mistakes as we rebuild Perl 5Friday, July 29, 11
  • *coughsmartmatchcough*Friday, July 29, 11
  • We have made mistakes as we’ve rebuilt PerlFriday, July 29, 11
  • We need to be able to recover from mistakes as we rebuild PerlFriday, July 29, 11
  • The runtime footprint is too big and must be slimmed downFriday, July 29, 11
  • Perl should have sane defaultsFriday, July 29, 11
  • It should be possible to build more of Perl in PerlFriday, July 29, 11
  • Perl should run everywhereFriday, July 29, 11
  • Not just on every kind of hardwareFriday, July 29, 11
  • or every OSFriday, July 29, 11
  • Every VMFriday, July 29, 11
  • Every BrowserFriday, July 29, 11
  • Every PhoneFriday, July 29, 11
  • How do we get there?Friday, July 29, 11
  • New versions of Perl shouldn’t break existing softwareFriday, July 29, 11
  • Old syntax and semantics must not stop Perl 5 from evolvingFriday, July 29, 11
  • When your code runs, you have no idea what semantics it’ll seeFriday, July 29, 11
  • You need to jump through defensive hoops.Friday, July 29, 11
  • Lots of defensive hoopsFriday, July 29, 11
  • use v5.14;Friday, July 29, 11
  • “Can I have a Perl that’s 5.14 or newer?”Friday, July 29, 11
  • “Anything newer than 5.14.0 would be great!”Friday, July 29, 11
  • “Ok. I’m 5.30. Have fun!”Friday, July 29, 11
  • That’s not usefulFriday, July 29, 11
  • It needs to changeFriday, July 29, 11
  • Declare the version of Perl 5 you expectFriday, July 29, 11
  • use v5.16;Friday, July 29, 11
  • “I want a Perl that works like 5.16”Friday, July 29, 11
  • The runtime should honor that requestFriday, July 29, 11
  • Perl should give you semantics as close as possible to what you requestFriday, July 29, 11
  • New features should not work under ‘use v5.$older;’Friday, July 29, 11
  • It’s critical that we be able to evolveFriday, July 29, 11
  • We need an escape hatchFriday, July 29, 11
  • We don’t have oneFriday, July 29, 11
  • We need Rule 2Friday, July 29, 11
  • Changes to syntax or semantics break existing codeFriday, July 29, 11
  • Why?Friday, July 29, 11
  • They conflict with existing syntaxFriday, July 29, 11
  • They change the meaning of existing semanticsFriday, July 29, 11
  • They conflict with things users doFriday, July 29, 11
  • What do we do?Friday, July 29, 11
  • If you declare an old version, you get old syntax and semanticsFriday, July 29, 11
  • ...at least to the best of our abilitiesFriday, July 29, 11
  • Perfection isn’t possibleFriday, July 29, 11
  • We can get far closer than we do nowFriday, July 29, 11
  • Breaking existing code should be a last resortFriday, July 29, 11
  • We will break backward compatibility in limited circumstancesFriday, July 29, 11
  • Some craziness can’t be fixed in an “optional” or lexical wayFriday, July 29, 11
  • This is going to be hard workFriday, July 29, 11
  • A lot of hard workFriday, July 29, 11
  • It’s not impossibleFriday, July 29, 11
  • I have proofFriday, July 29, 11
  • DeprecationFriday, July 29, 11
  • Our current deprecation cycle is 1 yearFriday, July 29, 11
  • “It warns in 5.16.0”Friday, July 29, 11
  • “It’s gone in 5.18.0”Friday, July 29, 11
  • That’s turning out to be too shortFriday, July 29, 11
  • Very few operating systems release that frequentlyFriday, July 29, 11
  • “Declare by default” means we can make some changes soonerFriday, July 29, 11
  • If it still works in old code, we can change it with no deprecation cycleFriday, July 29, 11
  • Some old misfeatures need to come out lest they block significant improvementsFriday, July 29, 11
  • If we can’t emulate the old feature for old code, we need a longer deprecation cycleFriday, July 29, 11
  • “It dies in code that declares ‘use v5.16’”Friday, July 29, 11
  • “It warns in older code on 5.16.0”Friday, July 29, 11
  • “It still warns in old code on 5.18.0”Friday, July 29, 11
  • “It’s gone in 5.20.0”Friday, July 29, 11
  • Old ModulesFriday, July 29, 11
  • We haven’t just been deprecating and yanking broken old featuresFriday, July 29, 11
  • We’ve been doing the same to old modulesFriday, July 29, 11
  • They all end up on CPANFriday, July 29, 11
  • This has started to hurt users who wrote code with “no non-core deps”Friday, July 29, 11
  • We need to make it easier to ship two flavors of Perl 5Friday, July 29, 11
  • Hotel CaliforniaFriday, July 29, 11
  • aka Traditional PerlFriday, July 29, 11
  • The Times,They Are A-Changin’Friday, July 29, 11
  • aka Bootstrappable PerlFriday, July 29, 11
  • There’s work going on to make this easierFriday, July 29, 11
  • Cleaning up the languageFriday, July 29, 11
  • The runtime footprint is too big and must be slimmed downFriday, July 29, 11
  • One of the points of doing this is to clean up the coreFriday, July 29, 11
  • How does this clean up the core?Friday, July 29, 11
  • Perl is a big languageFriday, July 29, 11
  • There are bigger languagesFriday, July 29, 11
  • Its harder to manage a big languageFriday, July 29, 11
  • It’s harder to learn a big languageFriday, July 29, 11
  • It’s harder to fix bugs in a big languageFriday, July 29, 11
  • We’re ok, but not amazing at core language devFriday, July 29, 11
  • As a community, we’re awesome at modulesFriday, July 29, 11
  • How do we make Perl a smaller language?Friday, July 29, 11
  • It’s possible to load modules that inject new builtinsFriday, July 29, 11
  • It’s possible to load modules that inject old builtinsFriday, July 29, 11
  • Time to start...Friday, July 29, 11
  • ...refactoringFriday, July 29, 11
  • Lots of stuff in perl isnt necessarily part of Perl 5 the LanguageFriday, July 29, 11
  • This stuff is part of Perl 5 the chainsawFriday, July 29, 11
  • I like our chainsawFriday, July 29, 11
  • I’m not talking about deprecating this stuffFriday, July 29, 11
  • ...just about decoupling itFriday, July 29, 11
  • SysV IPC functionsFriday, July 29, 11
  • Socket IO functionsFriday, July 29, 11
  • Unix user & group information functionsFriday, July 29, 11
  • Unix network information functionsFriday, July 29, 11
  • Process and process group functionsFriday, July 29, 11
  • FormatsFriday, July 29, 11
  • smartmatchFriday, July 29, 11
  • ...and probably a bunch of other stuffFriday, July 29, 11
  • That bit about “forcing a version declaration”Friday, July 29, 11
  • If you don’t, you’ll get whatever was in 5.14.Friday, July 29, 11
  • The implementation of SysV might be a moduleFriday, July 29, 11
  • As a developer writing code in Perl 5, you won’t need to careFriday, July 29, 11
  • ..and shouldn’t be able to tellFriday, July 29, 11
  • In the future we might fix a bug or two in the modularized codeFriday, July 29, 11
  • You could take the update without having to upgrade all of Perl 5Friday, July 29, 11
  • Someday we might remove things from the default runtimeFriday, July 29, 11
  • Every feature we externalize reclaims precious memoryFriday, July 29, 11
  • Every feature we externalize reclaims precious sanityFriday, July 29, 11
  • That just means you’ll need to declare you want an older featureFriday, July 29, 11
  • ...but only if you ask for v5.16Friday, July 29, 11
  • ...but only if you ask for v5.18Friday, July 29, 11
  • ...but only if you ask for v5.20Friday, July 29, 11
  • Existing code won’t breakFriday, July 29, 11
  • There are many, many unanswered questionsFriday, July 29, 11
  • But it’s doableFriday, July 29, 11
  • I have proof!Friday, July 29, 11
  • Case study: SmartmatchFriday, July 29, 11
  • After YAPC::NA rjbs (and others) raised the issue of smartmatchFriday, July 29, 11
  • Perl has a history of theft from other languagesFriday, July 29, 11
  • Perl has a history of borrowing from other languagesFriday, July 29, 11
  • We stole smartmatch from Perl 6Friday, July 29, 11
  • It’s very cleverFriday, July 29, 11
  • It’s nearly impossible to explainFriday, July 29, 11
  • It’s nearly impossible to understandFriday, July 29, 11
  • RJBS (the previous speaker) proposed a saner, much less clever, smart matchFriday, July 29, 11
  • I don’t want to break existing code that uses smartmatchFriday, July 29, 11
  • Jesse Luehrs (DOY) was sitting in the back of my YAPC talkFriday, July 29, 11
  • He...Friday, July 29, 11
  • ...threw himself at the problemFriday, July 29, 11
  • He extracted smartmatch into an XS moduleFriday, July 29, 11
  • He reimplemented it entirely in pure perlFriday, July 29, 11
  • It’s slower, but it’s understandable and hackableFriday, July 29, 11
  • He implemented Ricardo’s saner smart match as an alternativeFriday, July 29, 11
  • I’m hoping that 5.16 ships DOY’s smartmatch implementationsFriday, July 29, 11
  • use v5.16; should load the new one in your scopeFriday, July 29, 11
  • use v5.14; should load the old one in your scopeFriday, July 29, 11
  • no “use v5.x;” line should load the old one in your scope.Friday, July 29, 11
  • We need a module hierarchy for such things in coreFriday, July 29, 11
  • The Test SuiteFriday, July 29, 11
  • (Keeping us honest)Friday, July 29, 11
  • We have an amazing test suiteFriday, July 29, 11
  • Over time, we need to tease apart (at least) 3 kinds of testsFriday, July 29, 11
  • Language testsFriday, July 29, 11
  • Bug-fix testsFriday, July 29, 11
  • Implementation testsFriday, July 29, 11
  • To hold us to the compatibility promises we make, we need a new test harnessFriday, July 29, 11
  • “Run the test suites we shipped with previous releases...”Friday, July 29, 11
  • ...all of emFriday, July 29, 11
  • Weve been moving pretty fastFriday, July 29, 11
  • We’ve done some things I...Friday, July 29, 11
  • ...wouldn’t do againFriday, July 29, 11
  • I’m going to be a lot more skeptical about new featuresFriday, July 29, 11
  • ...at least ones that don’t make it easier to have fewer featuresFriday, July 29, 11
  • We should have sane defaultsFriday, July 29, 11
  • There’s lots of crazy in Perl 5Friday, July 29, 11
  • Syntactic CrazyFriday, July 29, 11
  • Semantic CrazyFriday, July 29, 11
  • Internal CrazyFriday, July 29, 11
  • Module CrazyFriday, July 29, 11
  • It may be time to consider doing away with some of thatFriday, July 29, 11
  • But ONLY if you declare “use v5.16”Friday, July 29, 11
  • But ONLY if you declare “use v5.18”Friday, July 29, 11
  • But ONLY if you declare “use v5.20”Friday, July 29, 11
  • We’ve started down this roadFriday, July 29, 11
  • “use v5.12” includes “use strict;”Friday, July 29, 11
  • Where do we go next?Friday, July 29, 11
  • warnings on by defaultFriday, July 29, 11
  • autodie-esque defaultsFriday, July 29, 11
  • autodie does good for your codeFriday, July 29, 11
  • using deep, scary evilFriday, July 29, 11
  • I will not show you the evilFriday, July 29, 11
  • Ask Paul FenwickFriday, July 29, 11
  • The guy with the accentFriday, July 29, 11
  • In the hatFriday, July 29, 11
  • We should throw exceptions rather than just return on failureFriday, July 29, 11
  • I don’t want us to bikeshed an exception hierarchyFriday, July 29, 11
  • Heck, I’d be happy if we started with dying with well-defined stringsFriday, July 29, 11
  • (I’d love an exception hierarchy)Friday, July 29, 11
  • 2-arg open() gone by defaultFriday, July 29, 11
  • 1-arg open() gone by default?Friday, July 29, 11
  • Latin-1 autopromote off by defaultFriday, July 29, 11
  • utf-8 everything by defaultFriday, July 29, 11
  • A clean, simple meta-model with basic classes and methodsFriday, July 29, 11
  • No indirect object syntax by defaultFriday, July 29, 11
  • But only if you declare “use v5.16”Friday, July 29, 11
  • But only if you declare “use v5.18”Friday, July 29, 11
  • But only if you declare “use v5.20”Friday, July 29, 11
  • So, Why?Friday, July 29, 11
  • Perl needs to be cleaner, simpler and easier to work withFriday, July 29, 11
  • For users...Friday, July 29, 11
  • ...and for implementersFriday, July 29, 11
  • Perl should run everywhereFriday, July 29, 11
  • Why isn’t Perl 5 on other Runtimes?Friday, July 29, 11
  • “There’s no spec”Friday, July 29, 11
  • That didn’t stop RubyFriday, July 29, 11
  • “Only Perl 5 can parse Perl 5”Friday, July 29, 11
  • That didnt stop PPIFriday, July 29, 11
  • To survive, a desperate hacker needs to be able to reimplement Perl 5Friday, July 29, 11
  • Thanks!Friday, July 29, 11
  • How do we make this happen faster?Friday, July 29, 11
  • Perl 5 Maint FundFriday, July 29, 11
  • perlfoundation.orgFriday, July 29, 11
  • Questions/Tomatoes? http://blog.fsck.com jesse@perl.org @obraFriday, July 29, 11
  • About the nameFriday, July 29, 11
  • Our language is called Perl 5Friday, July 29, 11
  • Perl 6 is our precocious kid sisterFriday, July 29, 11
  • I’m happy to talk about renaming Perl 5...Friday, July 29, 11
  • ...if you write me a second implementation that passes the test suiteFriday, July 29, 11