An Array of Baby Moose

Its a little harder day here in the Moose-Pen.

Carrying on with adding to the '32_params.t' case I though today I would tackle one of the harder parts of prams and that is passing an array of params or in my case containers into a query statement.

So in my test I could have this;

$container = [{first_name=>'Bill',last_name =>'Bloggings'},
              {first_name=>'Jane',last_name =>'Doe'},
              {first_name=>'John',last_name =>'Doe'},
              {first_name=>'Joe',last_name =>'Blow'},
              ];

Rakudo.js update - builds sanely and passes some spec tests

Rakudo.js now should build in much more sane manner and passes some tests.

In directory containing a checkout of the js branch of rakudo

Once you grab a node.js (tested with 7.10.0)

$ git clone https://github.com/rakudo/rakudo.git rakudo-js-fresh
$ git checkout js
$ cd rakudo-js-fresh
$ perl Configure.pl --backends=moar,js --gen-nqp --gen-moar
$ make js-all
$ ./perl6-js -e 'say(123)'
$ make js-spectest

Rakudo.js now passes some tests https://github.com/rakudo/rakudo/blob/js/t/spectest.js.data .
The remaining majority tests are stopped from passing mostly rampant bugs and a few missing bits.
OTOH some of the more advanced features like precompilation/junctions/multi methods (including callsame) work showing that once the building blocks work we can reuse the ton of good work put into Rakudo itself.

The Rakudo js has been recently update so it's now tracking nom clearly.
nqp.js is now using the new buffer IO and character based IO ops have been removed.

On the positive side our custom C++ synchronous extension that allowed piping to a spawned process has been deleted as it was a quick and dirty hack and the way node.js extensions are done is being currently reworked.

Perl 5 Porters Mailing List Summary: May 23rd - June 5th

Hey everyone,

Following is the p5p (Perl 5 Porters) mailing list summary for the past two weeks.

Enjoy!

Updated list of drawing tools

After 11 years, I've updated the list! If you have any suggestions, please comment or email me.

Amazing: The preview feature worked. Submitting for the last time...

Baby Moose Makes a Stand

Its fix typo and a little programming day here in the Moose-Pen.

Before I get back on track and start working on test case '32_params.t' but before that I had to clean-up in my code. Seems I had 'parenthes' all over the place when it should really be 'parentheses' so the last thin I did last night was clean all those up. Thank goodness for Padre and it search and replace functions.

Anyway on to '32_params.t' and the fist thing I did was cut out some tests from other places and put them in there as it made a little more logical sense. From 20_where_basic.t I striped out all the tests that check params and ended with these tests;

Type::Tiny 1.2.0 Released

So, Type::Tiny 1.2.0 (a.k.a. 1.002000 using Perlish decimals) is now available on CPAN.

Highlights since 1.0.0:

Strawberry Perl 5.26.0.1 released

Strawberry Perl 5.26.0.1 is available at http://strawberryperl.com

More details in Release Notes:
http://strawberryperl.com/release-notes/5.26.0.1-64bit.html
http://strawberryperl.com/release-notes/5.26.0.1-32bit.html

I would like to thank our sponsor Enlightened Perl Organisation for resources provided to our project.

Perl 5.26.0 is now available!

I am delighted and proud to announce the release of Perl 5.26.0! You can read the release announcement.

It has been the first release done under my fidgety guidance. I want to take this opportunity to share my thoughts on this release and the process we had producing it.

Baby Moose Skips Along

Its think of something, look it up and skip it day here in the Moost-pen.

Yesterday I added in the first option for Accessor.pm 'only_elements' and that got me thinking, never good ever comes out of that, I should enforce the rule that 'only_element' option has to be a hash-ref.

So I quickly looked-up a MooseX that I know will let me do that 'MooseX::Params::Validate' and reading a little from Dave's POD I should skip this module and have a look at MooseX::Method::Signatures or MooseX::Declare. Now looking at both of these I see a great big '(DEPRICATED)' on each and this waring in MooseX::Declare;

Warning: MooseX::Declare is based on Devel::Declare, a giant bag of crack originally implemented by mst with the goal of upsetting the perl core developers so much by its very existence that they implemented proper keyword handling in the core.

SPVM is developed little by little

SPVM is the language to speed up numerical operation and array operation in Perl.
SPVM is deveoped little by little. I don't know it will be success to embded SPVM to Perl , but I introduce SPVM in this entry.


SPVM-solo

SPVM means Static Perl Virtual Matchine. This is Perlish static typed language.

Today I will introduce the test script. All variables have a static type and automatic type conversion is not done. Variable declaration can be omitted because it has type inference. It is designed to be same as Perl language as possible.

COMPLETION Report / Perl 6 IO TPF Grant

This document is the May, 2017 progress report for TPF Standardization, Test Coverage, and Documentation of Perl 6 I/O Routines grant. I believe I reasonably satisfied the goals of the grant and consider it completed. This is the final report and may reference some of the work/commits previously mentioned in monthly reports.

Thank You!

I'd like to thank all the donors that support The Perl Foundation who made this grant possible. It was a wonderful learning experience for me, and it brings me joy to look back and see Perl 6 improved due to this grant.

Thank You!

Completeness Criteria

Here are the original completeness criteria (in bold) that are listed on the original grant proposal and my comments on their status:

Try this awesome trick to make your language toolchain better

Get the lead developers together in a hotel for four days. Remove all distractions. Feed them. Stand back and watch bugs get fixed, problems get solved, and new ideas implemented.

Earlier this month 38 Perl toolchain developers assembled in Lyon for the Perl Toolchain Summit, the event previously known as the QA Hackathon. This is an annual gathering where we pull together the lead developers of the core systems and tools in the CPAN ecosystem. We aim to provide an environment where for four days they can work on the tools we all rely on, with the right people around them.

This blog post is a summary of the summit. We can't cover everything, but our goal is to give you a flavour of the work that went on, and hopefully get across why the attendees typically rate this as their favourite event to attend. You can read more of the individual accomplishments on the results page of the event wiki.

Baby Moose Does More

Its wrap up a test day here in the Moose-pen;

I am going to finish off '15_alias.t' today by adding in a few more test looking at the field 'alias' and here are the tests;

$in_hash->{elements}->[0]->{alias} = 'last';
$in_hash->{elements}->[1]->{alias} = 'first';
$da  = Database::Accessor->new($in_hash);
$da->create( $utils->connect(),$container);
ok($da->result()->query() eq "INSERT INTO people sys_users ( sys_users.first_name ) VALUES( ? )","create SQL correct");
$da->retrieve( $utils->connect());
ok($da->result()->query() eq "SELECT users.last_name AS last, sys_users.first_name AS first FROM people sys_users","retrieve SQL correct");
$da->update( $utils->connect(),$container);
ok($da->result()->query() eq "UPDATE people sys_users SET sys_users.first_name = ?","update SQL correct");

No proposal for European Perl Conference 2018 yet

We did not get a single letter of intent to host the European Perl Conference in 2018 yet. So either all your monger groups try to stress out the YEF venue committee, or nobody actually wants to host the conference next year.

I do hope for the first option. But I fear that in fact nobody wants to gain endless glory by organising our yearly conference.

So here's again the Call for Venue for the Perl Conference in Europe 2018 (formerly know as YAPC::Europe). And please do consider submitting a proposal, or it might be a very sad summer in 2018...

Perl Toolchain Summit 2017 and PAUSE on Mojolicious in progress

At the last two Perl QA Hackathons, I worked on porting PAUSE on Plack, to drop old mod_perl and Apache dependencies and make it easier to set up PAUSE on your local environment. It was successful, but more could be done to fix various (visual/security/usability) issues on PAUSE UI. So, at the rebranded Perl Toolchain Summit of this year, I went a step (or a few steps) further and started to port PAUSE on Mojolicious, hoping to separate views from controllers and make it clearer for us which code belongs to which feature(s) and how.

graphql-perl - Pegex findings

I'm porting the reference implementation of GraphQL for JavaScript to Perl, sponsored by Perl Careers. Part of that is obviously to lex/parse GraphQL queries. I decided to try this with Pegex.

Key findings:

Baby Moose Yummy

It is still alias day here in the Moose-pen

So it is day two of looking at aliases and SQL and as part of this I had some time last night to have a peek about the SQL standard. So far I am doing things correctly, for table and field. Though in my first incarnation of table alias I used the 'AS' keyword in there, if you look at some of the check-in history you will see it. This 'AS' will work in a few SQL engines but not all so I was correct in dropping it out.

From my tests of yesterday’s post and last night's reading I got thinking again on the promise that Database::Accessor is making to a DAD;
'Whatever is passed into a DAD will be as valid as possible'.
What I have to look at now is one of the system rules that I want to enforce; Only 'elements' that match the name or alias of the current 'view' are passed into the DAD

The Perl Conference 2017 (formerly known as YAPC::NA) is rapidly approaching, and we believe it will be great.

The Perl Conference, 2017 will be held this year in Washington DC, at the US Patent and Trademark Office, from June 18 through June 23rd.
This is the conference that many of us have affectionately known as YAPC::NA::17.

If you haven't registered yet, please do so as soon as possible.
We want to make sure we're providing the best possible experience for our participants, and to that end, accurate registration counts are helpful, plus there is still time to get the early-bird rate.

The conference website is: [http://www.perlconference.us/tpc-2017-dc/](http://www.perlconference.us/tpc-2017-dc/)

We have talks scheduled from many of the best speakers known to the Perl community;
Damian Conway, Sawyer X, Randal Schwartz, Mark Jason Dominus, Ricardo Signes, and so many other strong speakers that I feel silly having mentioned the few that I did.

For those seeking additional enlightenment there are tutorials and master classes offered (by additional registration) on topics such as:

Mojolicious::Plugin::INIConfig 0.6 is released. State become stable, and support config_override optioon

Mojolicious-Plugin-INIConfig 0.6 is released. State become stable, and support config_override option

Mojolicious::Plugin::INIConfig

I've forgot to remove EXPERIMENTAL status from now. Mojolicious::Plugin::INIConfig become stable.

And I support the same feature as Mojolicious::Plugin::Config config_override.

Enjoy!

graphql-perl - a GraphQL implementation in Perl

I have recently started porting the reference implementation of GraphQL for JavaScript to Perl, sponsored by Perl Careers. My key considerations:

  • Use as "modern" Perl as possible: one of the Mo* family, plus type-checking
  • Follow the JS implementation where it makes sense, but be open to more Perlish ways where that's easier/better

You can see the GitHub repo at https://github.com/graphql-perl/graphql-perl, and the MetaCPAN page for the distro at https://metacpan.org/release/GraphQL.

Initial findings:

  • it will be useful to have a possibility in module-starter to generate a GitHub-aware filebase, including meta info pointing at your GH repo, and .travis.yml and .gitignore and MANIFEST.SKIP
  • a workable "modern" type system looks achievable with Moo, Type::Tiny, Function::Parameters, and Return::Type. It would probably be useful to enhance module-starter with boilerplate for these too.
  • Pegex looks promising as a means of lexing and parsing GraphQL. If this is successful enough, it may even be possible to use the grammar beyond Perl, in line with Ingy's "Acmeist" philosophy.
  • Tests will just be straightforward Test::More for the present time. A future possibility also advancing the above would be to use TestML for tests.
  • For the GraphQL internal type system, it may or may not be possible to use Type::Tiny for that too!

About blogs.perl.org

blogs.perl.org is a common blogging platform for the Perl community. Written in Perl with a graphic design donated by Six Apart, Ltd.