perl 5.12.0

Download Perl 5.12.0

If you can't read please download the document

Upload: jesse-vincent

Post on 17-May-2015

3.689 views

Category:

Technology


6 download

TRANSCRIPT

2. Hi! 3. I'm Jesse 4. I'm the Perl 5 Pumpking 5. Pumpking? 6. I'll explain later 7. For now, justthink of me as project janitor 8. Perl 5 is 16years old 9. Perhaps you'veheard thatPerl is Dead 10. What they meant was Perl Must Die 11. They're on crack 12. Perl is very,very alive 13. Lots of exciting code on CPAN 14. Moose 15. Plack 16. Devel::Declare 17. AnyEvent 18. ...and a whole lot more 19. Two weeks ago, I made the scariest webpost of my life 20. Pic of PAUSE 21. It had ahappyending 22. The stable version of Perlis now 5.12.0 23. Nobody has reported any criticalregressions 24. ...so I haven't broken theInternet...yet 25. 5.12? What happened to Perl 6? 26. Perl 6 is adifferent language 27. Perl 6 is still being designedand built 28. rakudo.org 29. Perl 6 is awesome 30. Perl 6 is the future 31. Perl 5 is thefuture, too 32. Perl 5 and Perl6 are sisters 33. Perl 5 and Perl6 are friends 34. 5 and 6 aren't versionsof onelanguage 35. Perl 5 and Perl 6 are names... 36. ...for two different languages 37. Perl 5's Creator 38. Perl 6's Creator 39. Perl 5 and Perl 6have the same father 40. 5 and 6 are versions of Larry Wall'sbrain 41. We're looking forward to ourlittle sister growing up 42. Perl 6 will not replace Perl 5 43. A quick reminder... 44. What was new in Perl 5.10? 45. given...when 46. given ($foo) { when (/^abc/) { $abc = 1; } when (/^def/) { $def = 1; } when (/^xyz/) { $xyz = 1; } default { $nothing = 1; } } 47. defined-or 48. $a // $b defined $a ? $a : $b 49. $c //= $d$c = $d unless defined $c 50. Recursive pattens inregexes 51. Named captures inregexes 52. perldoc perl5100delta 53. What's new inPerl 5.12? 54. You can usePerl 5.10 features 55. 5.10 isn't toonew to use anymore 56. use 5.12.0;includesuse strict; 57. Deprecations warn by default 58. suidperl isdead. 59. package Foo::Bar 1.0; 60. Y2038 Compliance 61. Unicode improvements and upgrade toversion 5.2. 62. Pluggable Keywords 63. OverridableFunctionLookup 64. Dtrace Support 65. Modules deprecated from the core: Class::ISA Pod::Plainer Shell Switch 66. Don't worry, they're still on CPAN 67. Yadda yadda yadda... 68. (A new operator) 69. sub do_something { die Unimplemented!; }do_something(); 70. sub do_something {}do_something(); 71. j$ perl test.plUnimplemented at test.pl line 3. 72. perldoc perl5120delta 73. Lots of this wasnew in 5.10.1, too. 74. New release process 75. New pumpking 76. (Me) 77. So. That Pumpkingthing 78. Pumpkin King 79. Keeper of the Patch Pumpkin 80. Patch Pumpkin? 81. David Croy once told me once that at a previous job, there was one tape drive and multiple systems that used it for backups. But instead of some high-tech exclusion software, they used a low-tech method to prevent multiple simultaneous backups: a stuffed pumpkin. No one was allowed to make backups unless they had the backup pumpkin.Chip Salzenberg 82. My job got its name because we didn't use a version control system 20 years ago. 83. Learn from Perl's History 84. Use VersionControl... 85. ...otherwise, you may have to explain weird software developmenttraditions to yourchildren. 86. What's the pumpking do? 87. The Pumpkingmakes sure that the release of Perl doesn't suck. 88. ...and that itactually happens. 89. How it used towork 90. Perl 5.10 91. Perl 5.10.0 92. December 2007 93. It took 5 years 94. It burned through twopumpkings 95. Hugo van der Sanden (hvds) 96. Resigned in 2004 97. Rafael Garcia Suarez (rgs) 98. Resigned July 2009 99. Perl 5.10.1 100. MaintenanceRelease 101. 2800 commits changing over 350,000 loc in 2600 files 102. Only 700 or so blead commits weren't pickedfor 5.10.1 103. Before 5.12, maint releases: 1)include regression fixes 2)include general fixes 3)include build fixes (so it will compile on new/updated platforms) 4)include newer CPAN modules related to (3) 5)generally update CPAN modules where newer releases are available 6)include new features that aren't too scary and don't break backwards compatibility 7)maintain binary compatibility 8)don't break anything. 104. Dave Mitchell was the maint pumpking forPerl 5.10.1 105. He did all that work himself 106. Doing all the above is *very* hard.Dave Mitchell 107. Dave hasa gift for understatement 108. That was a maintenancerelease 109. It included module updates... 110. It includedbehavior changes... 111. It included bug fixes... 112. It included new features... 113. It was a lot of work 114. It took too long 115. Maintenance release 116. That doesn't sound like maintenance 117. August 2009 118. Dave Mitchell (dapm) 119. Retired October 2009 120. Pumpkings are a preciouscommodity. 121. We can't keep burning them out. 122. The Pumpking's Job Hardcore C hacker Patch applier Release Engineer Language Designer Supreme Arbiter of Good Taste Project Manager HR Manager Dispute Resolver 123. Wow. That's alot of stuff 124. Like I saidbefore... 125. Project Janitor 126. Who have ourpumpkingsbeen? 127. Larry Wall, Andy Dougherty, Tom Christiansen, Charles Bailey, Nick Ing-Simmons, Chip Salzenberg, TimBunce, Malcolm Beattie, Gurusamy Sarathy, Graham Barr, JarkkoHietaniemi, Hugo van der Sanden, Michael Schwern, Rafael Garcia-Suarez, Nicholas Clark, RichardClamp, Leon Brocard, DaveMitchell. 128. ...and now me 129. I don't want toburn out 130. How do youget to be pumpking? 131. (Traditionally) 132. Be a hardcoreC hacker... 133. ...who loves Perl... 134. ...and has a responsibility complex 135. That's right 136. We take our best hackers... 137. ...and make them intomanagers 138. That is a complete wasteof their talents 139. Nobody since Larry has beenpumpking for two majorversions 140. We can't keeplosingpumpkings! 141. After rgs anddapm... 142. ...we ran out of qualifiedpumpkings! 143. This system is broken 144. How do you fix a broken system? 145. Reimplement from scratch! 146. Like I said, earlier 147. Perl 6 is the future 148. Perl 6 is not Perl 5 149. How else do you fix a brokensystem? 150. Refactoring! 151. Role decomposition? 152. What is the pumpking? 153. Hardcore Chacker 154. Delegate it! 155. Patch applier 156. Delegate it! 157. Release Engineer 158. Delegate it! 159. Language Designer 160. Delegate it! 161. (partially) 162. Supreme Arbiter of Good Taste 163. Core responsibility! 164. Dispute Resolver 165. Core responsibility! 166. HR Manager 167. Core Responsibility! 168. Project Manager 169. Core responsibility! 170. Ok. 171. Pumpkings don't need to be C hackers 172. Development releasesleading to5.10.0: 173. 5.9.0 2003-10-27 174. 5.9.1 2004-03-16 175. 5.9.2 2005-04-01 176. 5.9.3 2006-01-28 177. 5.9.4 2006-08-15 178. 5.9.5 2007-07-07 179. Development releasesleading to5.12.0: 180. 5.11.0 2009-10-02 181. 5.11.1 2009-10-20 182. 5.11.2 2009-11-20 183. 5.11.3 2009-12-20 184. 5.11.4 2010-01-20 185. 5.11.5 2010-02-20 186. 5.12.0-RC1 2010-03-21 187. 5.13.0 2010-04-20 188. Detect a trend? 189. Every Month 190. On the 20th 191. That soundslike a lot ofwork 192. I won't lie 193. 5.11.0 took me 4 days 194. 5.11.1 took me 2 days 195. 5.11.2 released by Leon Brocard 196. 5.11.3 releasedby me 197. 5.11.4 released by Ricardo Signes 198. 5.11.5 releasedby Steve Hay On Windows!! 199. Development releases now take hours instead of days. 200. The process is documented. See porting/release_manager_guide.pod 201. Release managers make dev releases See porting/release_schedule.pod 202. Pumpkings don't need to. 203. Who actually makes Perl? 204. 41 0- 0 20 5.12.0 10 9- 1 20 60 9- 0 20 5.11.0 Unique authors per month 5.10.1 10 9- 0 205.10.0 80 8- 0 20 30 8- 0 20 00 7- 1 20 50 7- 0 20 20 6- 1 20 70 6- 0 20 20 6- 0 20 90 5- 0 20 40 5- 0 20 10 4- 1 20 5.9.0 60 4- 0 20 10 4- 0 20 80 3- 05.8.020 30 3- 0 20 00 2- 1 20 50 2- 0 20n th Mo7060 50 4030 2010 0 205. 2 -1 09 20 7 -0 09 Commits per author per month 20 2 -0 09 20 9 -0 08 20 4-008 20 1 -1 07 20- 06 07 20 1 -0 07 20 8 -0 06 20 3 -0 06 20 0 -1 05 20 5 -0 05 20 2 -1 04 20 7-004 20 2 -0 04 20- 09 03 20 4 -0 03 20 1 -1 02 20 6 -0 02 20 1 -0 02 20 864201816 1412 10 206. 8007006005004003002001000 10-0 201 Pumpking-authored-patches Pumpking vs Contributor Patches9 -09 200- 05 Porter Patches9 2009 - 01 2008 - 09 2008 - 05 200 18 -0 2007 - 09 2007 - 05 2007 - 01 2006 - 09 2006 - 05 2006 - 01 2005 - 09 2005 - 05 2005 - 01 2004 - 09 200 54-0 2004 -01 2003 - 09 2003 - 05 2003 - 01 2002 - 09 200 52 -0 2002 - 01 200 0 800700600500400300200100 207. 80070060050040030020010000 - 01 201 Pumpking vs Contributor Patches9 - 09 2009 - 05 2009 - 01 200 98 -0 2008 - 05 2008 - 01 2007 - 09 2007 - 05 2007 - 01 2006 -09 2006 - 05 2006 - 01 2005 - 09 2005 - 05 2005 - 01 2004 -09 2004 - 05 2004 - 01 2003 - 09 2003 - 05 2003 - 01 2002 -09 2002 - 05 2002 - 01 200 8007006005004003002001000 208. What about "Stable releases"? 209. Old maintperlpolicy 210. New releases of maint shouldcontain as many changes as possible 211. New maintperlpolicy 212. New releases of maint should contain as few changes as possible 213. If there is any question about whether a patch should be backported to maint, then the answer is probably No! 214. What's OK 215. Portability fixes, like changes toConfigure and hints/ 216. Documentationupdates 217. Fixes for crashes that don't change features or hurt performance 218. Patches to fix security issues 219. Minimal patchesto fix crashes or security issues in CPAN modules 220. What's not OK 221. New warnings or errors 222. Deprecatingfeatures 223. New versionsof dual-life modules 224. Breaking binarycompatibility 225. Adding or removingfeatures 226. Ports to a new platform or OS 227. ...anything else 228. When's 5.12.1 coming? 229. Estimated: May12, 2010 230. So, what's coming in5.12.1? 231. Bugfixes 232. 5.12.x will come every 3 months 233. When's 5.14coming? 234. Spring 2011 235. What's coming in 5.14? 236. I don't know 237. What I want inPerl 5.14 238. ASTroundtripping improvements 239. Easier CPAN module install 240. Better connectivity 241. HTTP Client 242. IPv6 243. SSL? 244. Performance improvements 245. Memory use improvements 246. What do you want in Perl 5.14? 247. Trying out 5.12.0 248. perlbrew (gugod) 249. # install perlbrew curl -O -L http://xrl.us/perlbrew perl perlbrew install# setup perlbrew ~/perl5/perlbrew/bin/perlbrew init echo "source $HOME/perl5/perlbrew/etc/bashrc" >> ~/.bashrc# restart your shell exec $SHELL# install perl 5.12.0: this takes ~10 minutes perlbrew -v install perl-5.12.0perlbrew switch perl-5.12.0 250. Thanks! 251. Questions? Jesse Vincent [email protected]