for testing parentheses. I figured I might as well re-use that little snippet of code else where as it is valid SQL anywhere you would use a 'field'.
One very odd place to use it would be in a sort if you want to order a list by how much over time and double time a person earned. So I added a new test to my '60_order_by.t' case;
When I first joined the Rakudo project, we used to say "there are none right now; check back in a year" whenever someone asked for a book about the language. Today,
there's a whole website for
picking out a book, and the number of available books seems to multiply every time I look at it.
Still, I feel something is amiss, when I talk to folks on our support
chat, when I read blog posts about the
language, or when I look at our official language documentation. And it's due to that feeling that I wish to join the
Rakudo book-writing club and write a few of my own. I dub it: The Rakudo Book
Project.
The Books
The Rakudo Book Project involves 3 main books—The White Book, The Gray Book, and The Black
Book—as well as 2 half-books—The Green Book and The Cracked Book.
As part of porting GraphQL to Perl (sponsored by Perl Careers), one of my goals is to use the best possible practice in making rigorous code. One way to use this is to imitate the style of the JavaScript reference implementation's use of immutable data structures.
One problem arising is creating objects that have a reference to themselves. If the objects created were mutable, then one would simply create the object, then set the relevant attribute to include the object reference. If the objects are immutable this is not possible. For example:
Today I am re-writing the '47_dynamic_gathers.t' test. Looking at the code I cannot really use any of it as my Gather concept moved from two array-refs (gathers,filters) to just a singleton of 'Gather' made up of, elements and condtions.
The test is a little simpler now as all I have to test for is when I add a 'gather' the 'elements' and 'conditions' are correctly passed down from the DA to the DAD and when I add another 'gather' the current one is overridden by the new one;
As a proof-of-concept, Importer::Zim has been released to CPAN. For modules
which export symbols and define @EXPORT, @EXPORT_OK and
@EXPORT_TAGS, zim can be used as a pragma to import subroutines
into the caller package with lexical scope for perl 5.18+.
use zim 'Scalar::Util' => qw(blessed);
use zim 'List::Util' => qw(first sum max any all);
use zim 'Fcntl' => ':flock';
use zim 'Carp'; # imports carp(), confess(), croak()
use zim 'Mango' => 'bson_time' => { -as => 'bson_dt' };
The London Perl Workshop (LPW) takes place this year on Saturday 25th Nov and you are encouraged to submit your talk proposals now (or if you have already, feel free to submit another!).
The informal theme this year is "Perl and friends". We welcome proposals relating to Perl 5, Perl 6, other languages, and supporting technologies.
If there would be an election for the single greatest Perl 6 feature, many would select the box for grammars and others would root for concurrency/async (as expressed in several articles here and elsewhere). Roles and types might be also strong contenders. Here is why I would pick: none of the above, even I like all of them very much.
Well it tests everything again day here in the Moose-Pen
Is been almost two weeks since I started mucking about with Accessor.pm again trying to get my inherited views, parentheses, and conditions all in a row before I pass them down to the DA and now that I have things I think all settled I it time again fro me got go back and re-run the test suite to see if I did not bugger too much up.
A bit overdue post, but I attended this months's Perl 6 Community Bug Squashathon last weekend and it was fun! I had a great time learning some more Perl 6 while making contributions at the same time. Definitely looking forward to next month's!
Here are a few little bits of Things I've Learned...
After explaining the kinds of prototypes that are used in complete Programming and the way code moves between them, it is time the explain the other motivation behind this concepts, before we see the big picture (project planning) next time.
Its extend API a little more Day here in the Moose-Pen
Since I was playing about with the API by adding in 'default_condition' for conditions I figured I might as well do the same for condition 'operator'. In my little abstract world the 'operator' is what I use to compare the 'left' and 'right' parts of a predicate.
I am pleased to announce that Enlightened Perl Organisation (EPO) has kindly extended the support of Strawberry Perl project by sponsoring our build server for another 12 months. I would like to thank Mark Keating for arranging the funding.
If you are also considering supporting Strawberry Perl project you can do it indirectly by becoming EPO member or via donating EPO.
https://metacpan.org/pod/Data::Edit::Xml provides a Perl centric means of editing data held in Xml format. Thus:
my $a = Data::Edit::Xml::new("
");
say STDERR -p $a;
gives:
To cut out
c
under
b
but not under
d
:
$a x= sub {--$_ if $_ <= [qw(c b a)]};
say STDERR -p $a;
gives:
Just a quick postette here today. I was thinking that it might be a good idea if I expanded my Database::Accessor API a little and give the end user the option of specifying a different 'default' condition that the present 'AND'.
I had the honor to give a talk at Barcelona.pm Meetup. Perl community rocks as everybody knows; my new friends welcomed me and my family. We felt home, learned new things, enjoyed the nice dinner and it became the most memorable night in Barcelona.
SPVM array operation is 6x faster than Perl 5.26 now. If JIT is implemented, array operation maybe 20x faster than Perl 5.26. This is planed in one year.
SPVM provide you,
-You can write Fast culculation without XS
-You can bind C library without XS
-You can write C language inline without Inline::C
XS is very complex and difficult. SPVM improve usability of C binding and inline significantly.
SPVM communicate with Perl. You can call SPVM subroutine from Perl. SPVM is not single lauguage. You can call SPVM subroutine from Perl very easy.
Rakudo.js now passes roughly of 56%+ roast test files.
I'm currently working on fixing up the remaining ones.
Getting some of them to work is requiring fairly deep changes.
For example native values need to be passed specially and maybe boxed in the called sub/method rather than boxed on the side of the callers. As that causes wide spread changes it can cause some rather annoying debugging when something is not exactly right and compiling the setting explodes :)
I had a talk at TPC::EU (link to slides).
As part of an electron+react demo for the talk I started working on a JSX slang for Perl 6 (https://github.com/pmurias/p6-jsx/blob/master/01-basic.t).
BTW. slangs already work on rakudo.js :)
In other news the --source-map option in rakudo.js and nqp.js now puts in line and file numbers in our backtraces.