Perl 5 Porters Mailing List Summary: May 17th-22nd
Hey everyone,
Following is the p5p (Perl 5 Porters) mailing list summary for the past week.
Enjoy!
Hey everyone,
Following is the p5p (Perl 5 Porters) mailing list summary for the past week.
Enjoy!
ts re-factor day again here at the Moose-pen
With all my test passing since yesterday's post I think it is time I spend a little time re factoring before I move onto other things. Now as I said many times before I would like to have whatever is going to the DAD, Driver::DBI in this case, to be as free of logic errors as possible.
In this vain I noticed that when dealing with a where clause and predicates in general there are a two rules that should be enforced before any conditions or filters are passed into a DAD, First any parentheses that is opened must be closed and second two or more predicates must be joined by a condition.
I will be back in Oslo next week, and we still have a few spaces available in the
public class I'm teaching there next Tuesday. They'll be taking enrolments right up until 12 noon on Monday, so if you're in the area, there's still time to sign up and discover all the amazing new features and the many significant improvements that have been added to Perl in the past few years.
We'll also be organizing a public talk one evening, which I'll post about separately once the details are settled. Or you can keep an eye on Oslo.pm's Meetup page.
Se deg der, du vikinger av Perl!
Damian
I didn't get as much done on the final day of the Perl Toolchain Summit because I needed to get home for work on Monday. But I did manage to enlist others in helping me, which is even better.
Devel::Cover has always had a problem in that top level statements (those not in a sub) in modules cannot be covered. This is because perl throws away the optree as soon as it has executed. My knowledge of the internals has never been good enough to even work out a sensible plan for how to solve this, but fortunately Aaron Crane is a good deal cleverer than me and thinks he might be able to develop a solution. It may need perl to have extra hooks, or it might involve deep magic, or both, but at least the end of the tunnel is not pitch black any more. Thanks Aaron!
Introducing the new way to grep CPAN: https://grep.metacpan.org/
My co-worker Nicholas and I were honored to be invited to attend the Perl Toolchain Summit in Lyon, France last week. It was a great experience for both of us.
Earlier this year, I needed to answer some questions being put to me by the toolchain gang about the scope of the problem of build/test/install without . in @INC. However, grep.cpan.me was down that day. Additionally I needed to be able to execute Makefile.PL on each distro and see what happened. I tried to do some simple walking using CPAN::Mini when I was done, I played around with putting the data in git so I could use tools like git grep. On a whim I uploaded it to github but found 2 problems: 1. You're not allowed to have files over 50MB. 2. github won't search repos with over a certain number of files. I worked around the problem and uploaded the repo.
Well is bug squish day here in the Moost-Pen
Yesterday I manged to get my test to fail properly I guess today I better start looking at fixing the code that is breaking starting with my update;
I left print warn on and in my output I am getting this
DBD::DBM::db prepare failed: Couldn't parse at C:/Dwimperl/perl/site/lib/DBI/DBD/SqlEngine.pm line 340
[for Statement "UPDATE user SET address = ?"] at
and a little playing about with a small test script I discovered that I have to add in a 'where' clause to make an update work. I first have to change my test a little;
El próximo día 3 de junio celebraremos el primer Madrid Perl Workshop.
Ya podéis consultar la lista de charlas.
Participar en el evento es gratis y obsequiaremos a los asistentes con una camiseta, comida y café por cortesía de nuestros patrocinadores.
Os animamos a todos a venir.
Cerraremos inscripciones el viernes 19 a las 15:00.
Podríamos aceptar inscripciones de última hora, pero no garantizamos que queden camisetas para los últimos.
Podéis seguir las noticias sobre el evento en @PerlMadrid
Hey everyone,
Following is the p5p (Perl 5 Porters) mailing list summary for the past week.
Enjoy!
Everyone at TPF and the local DC-Baltimore Perlmonger groups are super-excited about the upcoming conference in June! We've posted almost all of the talk descriptions and are working on the full schedule.
The core conference itself is Mon-Wed, and we're hosting some paid-tutorials on the days before and after. The outline:
Sunday 6/18 - Pre-Conference Tutorials
Perl in a Day (John Anderson)
Introduction to Moose (Dave Rolsky)
Perl Second Best Practices ( Randal Schwartz ) - 1/2 day
Unicode and Associated Punishments (Ricardo Signes) - 1/2 day
Monday 6/19 - Conference Day 1
Registation, Intro, Announcements, Snacks
Talks -- 4 tracks
Lightning Talks!
Keynote
Evening activities -- VIP and Sponsors Dinner
Tuesday 6/20 - Conference Day 2
Intro, Announcements, Snacks
Talks -- 4 tracks
Lightning Talks!
Keynote
Evening activities -- General Event
Wednesday 6/21 - Conference Day 3
Intro, Announcements, Snacks
Talks -- 4 tracks
Lightning Talks!
Keynote
Thursday 6/22 - Post-Conference Tutorials 1
Advanced Parsing Techniques (Mark Jason Dominus) - 1/2 day
Higher Order Perl (Mark Jason Dominus) - 1/2 day
MongoDB with Perl (David Golden)
New Perl (Damian Conway)
Friday 6/23 - Post-Conference Tutorials 2
Parsing with Perl 6 Regexes and Grammars (Damian Conway)
It is getting all my Baby Moose in a row day here in the Moose-Pen
So after yesterday's major TARFU with five tests failing and worse three tests reporting false positives I think a good review is needed.
The first thing I am going to clean up is the false positive test like this one;If you are in the area on August 25/26th, perhaps still in Europe after The Perl Conference in Amsterdam, and need another reason to come to the Swiss Perl Workshop, here it is...
Ladies and gentlemen, we are very pleased to announce that Damian Conway will be attending the fourth Swiss Perl Workshop as speaker, participant, and godfather!
Damian is well known for his talks, his modules, and of course his work on both Perl 5 and Perl 6.
You can sign up for the Swiss Perl Workshop here.
As always, thanks to our sponsors:
OETIKER+PARTNER | Perl Careers | GivenGain. If you would also like to sponsor the workshop then please do get in touch and see here for more information.
The ambush of WWW::Mechanize::Chrome shows more fallout before the module itself has been released. The module is one in a long line of browser automation modules I wrote, starting with WWW::Mechanize::Shell, reaching is breakthrough with WWW::Mechanize::Firefox and continuing from WWW::Mechanize::PhantomJS to WWW::Mechanize::Chrome.
PPI is a Perl document parser that enables easy analysis and manipulation of Perl source code in a structured manner.
It has been 2.75 years since the last PPI release, v1.218, so we're on a curve of shortening the gaps. ;)
Thanks to the efforts of many contributors to PPI, the support of the people at the Perl Toolchain Summit, the sponsors of the PTS, and specifically Matthew Horsfall (alh) (WOLFSAGE) i have been able to confidently release again after years spent grappling with overwhelming amounts of fixes to untested behavior, often with mutually conflicting results.
Particular thanks goes to the Sponsors for the Perl Toolchain Summit 2017:
Booking.com, ActiveState, cPanel, FastMail, MaxMind, Perl Careers, MongoDB, SureVoIP, Campus Explorer, Bytemark, CAPSiDE, Charlie Gonzalez, Elastic, OpusVL, Perl Services, Procura, XS4ALL, Oetiker+Partner.
Without the support of all of these people and companies this release would not have happened.
The highlights of this release are:
Its find a flaw here in the Moose-Pen
Well today did start out well and I began work on expanding Driver::DBI a little when I just wanted to check to see if that DBD::DBM driver of mine could do a little more that what I played with in '10_crud_basic.t' and I go it to take this SQL;
SELECT username as name,address, addresses.street FROM users join addresses on users.address = addresses.id
after adding in the 'addresses' table and a few rows. I thought that was a little odd as DBD::DBM is suppose to use DBI::SQL::Nano so to figure out what SHQ driver I was using I added this into some of code;
print $dbh->{sql_handler}
and that printed out
My third day at the Perl Toolchain Summit was primarily spent in trying to make the cpancover server and infrastructure into more of a production-ready system and less of a Devel::Cover playground. The first step in this direction was supposed to be easy - I made a login for the metacpan group with the idea that they could regularly rsync the coverage results for backup purposes. Unfortunately, this lead me down a yak shaving path I wasn't planning on travelling until later.
When setting up cpancover, I decided to take the easy option and chuck all the
results into a single directory. I made the filesystem ext4 so I wouldn't have
to worry about hitting limits. Unfortunately, the metacpan box doing the rsync
is set up on ext3 and won't support more that 32k subdirectories. So I need to
fix up the way that results are stored. I knew this would come sooner or
later, even if only because I would surely one day get sufficiently tired of
typing ls and immediately regretting it.
This post is to introduce another BNF, namely MarpaX::ESLIF - as the name suggests, it is largely inspired by Marpa::R2's BNF, and aim to extend the later.
The intent was to provide the following features:Although it looks like Marpa's BNF, it is not fully backward compatible with it! I invite readers to read the Introduction, that is covering the architecture and the main features, as well as its BNF.
The inner implementation is an XS proxy to a complete C library built on top of Marpa::R2's core engine, namely c-marpaESLIF.
This could have never exist without remarkable Marpa library, copyrighted by Jeffrey, that I applaud here for his fantastic work that deserve a wide audience IMHO.
I'm shortly going to drive back to Switzerland after attending the Perl Toolchain Summit in Lyon. I was mostly here on photo duties, but between taking photos did manage to file a bug against Time::HiRes, which seems to be down to some unexpected behaviour in File::Spec::Unix after testing the RC of 5.26 against our stack.
I also managed to provide a little help to the metacpan developers by getting to the bottom of an issue upgrading the VM for use with vagrant. As usual it was down to "I updated vagrant/virtualbox and it broke" kind of regressions. I'd already spent the last week upgrading our vagrant build scripts at work, so this turned out to be fresh in my mind and therefore reasonably straightforward. You can now build the up to date metacpan dev environment in a few minutes, win!
Its Moose day here in the Moose-Pen today.
Still playing about with re-factoring things before I move along too far and what I wan to fix today is this block of code;Location: Lyon, France
Date: 12 May 2017
Attending: SawyerX, Merijn (Tux) Brand, Todd (toddr) Rinaldo, Nicolas (atoomic) Rochelemagne, Lee Johnson, Aaron (arc) Crane, Leon (leont) Timmermans, Matthew (alh) Horsfall, Kenichi (charsbar) Ishigaki, Graham (haarg) Knop, Karen (ether) Etheridge, Stefan (nine) Seifert, Aristotle
We met to discuss the recent changes to @INC for Perl 5.26.
A timeline and summary of CVE-2016-1238 was given to attendees. P5P has not yet disclosed the original report that led to removal of . from @INC in 5.26 but will be doing so soon. It was requested that this be delayed due to the severity of the original bug.
As of 5.26.0, Perl will be compiled without . in @INC by default. There is a Configure option (-Udefault_inc_excludes_dot) to revert Perl to its 5.24 behavior but this is not recommended.
This is the first release of the Perl5 to Java compiler.
https://github.com/fglock/Perlito/releases
In the github page there is a link to the "jar" file and the lib directories for JVM-specific Perl modules.
The "perlito5.jar" file provides a perl-like command line:
java -jar perlito5.jar -I src5/lib -e ' print "hello, World!\n" '
Note that you don't need to compile a Java file. Perlito5 now compiles the Perl code to JVM bytecode in memory and executes it. Also eval-string is executed as JVM bytecode - there is no interpreter.
Perlito5 is an implementation of the Perl5 language. It is work-in-progress. It provides an impressive coverage of Perl features, but it will not run most existing Perl programs due to platform differences.
More details in the GitHub Perlito5-Java page: https://github.com/fglock/Perlito/blob/master/README-perlito5-Java.md
blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.