The document discusses the lack of a standard boolean class in Perl 5 and proposes two new candidates - bool.pm and Types::Bool - to address this issue. It provides background on how booleans are typically implemented in Perl 5 without a native type, challenges with existing solutions, and why a standard boolean class would help with serialization and interoperability. The bottom line is that any new solution needs to work well with existing Perl modules.
This document summarizes Kenichi Ishigaki's presentations and activities related to Perl conferences from 2016 to 2018. It discusses his plans and experiences attending conferences like YAPC::Okinawa 2018, London Perl Workshop 2017, The Perl Conference 2017, YAPC::Asia 2016, and Perl QA Hackathon 2016. It also mentions talks he enjoyed and discussions he had on topics like PAUSE, JSON, and DBIx::Class at these various events.
Better detection of what modules are used by some Perl 5 codecharsbar
?
This document discusses Perl::PrereqScanner::NotQuiteLite, a module that detects which modules are used by Perl 5 code in a more accurate way than existing tools. It summarizes that Perl::PrereqScanner::NotQuiteLite can detect module requirements across a wide range of frameworks and syntax, including Moose, Catalyst, and Test::More. It also migrates the detection of module requirements from Perl::PrereqScanner to Perl::PrereqScanner::NotQuiteLite and describes how to update CPAN files and test them based on the module usage detected.
This document discusses recent changes and improvements made to the JSON and JSON::PP Perl modules, including fixing various issues, adding better and faster number detection, incremental parsing, and UTF-16/32 support in an experimental capacity. It also notes that specifying PERL_JSON_BACKEND=Cpanel::JSON::XS should now work properly and that a few incompatible changes may have been introduced between JSON::PP and Cpanel::JSON::XS.
Perl 5.24 was released in 2016 with several notable changes including hashbang redirection to Perl 6, removal of autodereferencing, and performance enhancements. Perl 6 development progressed with the release of the Christmas roast specification tests and Rakudo becoming more stable on MoarVM while work continued on implementations for other platforms like JVM and JavaScript. The Perl community continued to enhance CPAN and develop new features for Perl 6 like TWEAK submethods and lexical module loading.
This document summarizes recent changes and features of the JSON and JSON::PP Perl modules. It discusses changes made to address issues, add experimental features like incremental parsing and UTF-16/32 support, and loosen validation of the PERL_JSON_BACKEND setting. It also provides examples of sorting hash keys during encoding and converting values during decoding. Remaining unimplemented features like validating Unicode characters and supporting newer JSON standards are acknowledged.
What you need to remember when you upload to CPANcharsbar
?
Perlのモジュールを公開するときに気をつけておいた方がよい個のこと
This document provides tips for publishing Perl modules to CPAN. It discusses things to be aware of such as distributions being permanently archived on BackPAN even if deleted, CPAN accepting almost anything, and several testing services that can improve modules like PAUSE, CPAN Testers, CPANTS, and more. It also covers best practices for metrics evaluated by these services around availability, integrity, file layout, prerequisites and more. Developers are encouraged to use better tools from the Perl Toolchain Gang to avoid issues.
UnQLite is an embedded key-value and document-oriented database with a simple API similar to SQLite. It uses a BSD license and supports cross-platform usage. Benchmarks show it has comparable or better performance than SQLite, Berkeley DB and other databases for common operations like storing, fetching, and iterating over large amounts of data. The developer is working on adding new storage engines to UnQLite.
This document discusses extending Perl with C libraries using XS. It explains that XS provides an interface between C and Perl by handling data conversion between their different types. The document outlines the components of a basic XS file and how it is compiled. It also discusses typemaps which define how C types are mapped to Perl types to allow values to be passed between the languages. Further details are provided on developing the XS interface and common tools like h2xs and a new converter tool.
This document appears to be an annual report from 2012 that includes:
1) A welcome from Kenichi Ishigaki and information about YAPC::Asia 2012.
2) Lists of the top 10 qualitative Japanese authors for 2012 and statistics on new CPAN authors in Japan and worldwide from 2000-2012.
3) Charts showing trends in the number of releases by Japanese authors, worldwide releases, active authors in Japan, and active authors worldwide from 2000-2012.
4) A thank you message at the end.
This document summarizes Kenichi Ishigaki's presentation on DBD::SQLite recipes, issues, and plans at YAPC::Asia 2012. The presentation covered:
1. Ten recipes for common SQLite tasks like bulk inserts, in-memory databases, table alterations, database attachments, hooks, unicode, and custom extensions.
2. Ten issues and plans for the DBD::SQLite module, including debates around the default transaction mode, refactoring the execute method, optimization efforts, and compatibility with different compilers and platforms like iOS.
3. Questions and suggestions from the audience were welcomed on improving recipes, resolving issues, and advancing plans and roadmaps for DBD::SQLite.
- Kenichi Ishigaki created a list of Japanese CPAN authors and a script to maintain it since there was a need to more easily track Japanese authors.
- He launched a website, acme.cpanauthors.org, to feature CPANTS info but it had no data since the official CPANTS site was down. He set up his own private repository to store the data.
- Work is still needed on CPANTS including adding tests, making the processing faster, fixing broken metrics, and integrating more external data sources. The tools and resources are now in place to continue improving CPANTS.
CPANTS is the CPAN Testing Service that tests Perl modules on CPAN to ensure quality. It runs 24 core tests plus 10 extras on modules to check issues like extractability, strict pragma use, POD documentation tests, dependency on other modules, and more. The tests help attract attention to quality problems. CPANTS data is now mirrored at cpants.charsbar.org since the original site was not being maintained. The speaker has been refactoring the mirror and adding improvements like renewed module metrics and queries. Future work includes faster testing, better UI, and JSON API.
The document discusses PPM (Perl Package Manager) which allows installing pre-processed Perl packages more quickly than installing from CPAN. It provides an overview of the history and development of PPM. It also describes tools for creating PPM packages and alternatives for packages not available through PPM such as building packages yourself or using another module.
12. @INC から「 . 」が消え
ました
? do や require は "./localfile.pl" の
ような書き方で回避できます
? do はファイルがなくても死なない
のでカレントディレクトリに該当
のファイルがあると新たに警告を
出すようになりました
do "localfile.pl" failed, '.' is no longer in @INC;
did you mean do "./localfile.pl"?
17. レキシカルサブルーチン
が正式化
万能ではないです
× my sub Test::More::ok { ... }
○ local *Test::More::ok = sub { ... };
use Test::More;
{
ok ...; # 先に出てきたものは当然ながら元のま
ま
my sub ok { ... }
}
34. 「ロースト」のお味、試
してみましたか?
? Perl 6 では実装と仕様が明確に分
かれています
? ラリーが「クリスマス」に持って
きてくれたのは「公式テスト
(Repository Of All Spec Tests) 」の
クリスマス?バージョンです
35. $ perl6 -v
This is Rakudo version 2017.06 built on
MoarVM version 2017.06
implementing Perl 6.c.
? say $*PERL.version; # v6.c
? say $*PERL.name; # Perl 6
? say $*PERL.compiler.version; # v2017.06
? say $*PERL.compiler.name; # rakudo
? say $*VM.version; # v2017.06
? say $*VM.name; # moar
use 文で制御できるのは v6.c の部分だけ
40. 中には特定の環境にしか公式テス
トが存在しないものがあります
given $*DISTRO.name {
when "macosx" {
#?rakudo.jvm 3 skip "file system events NYI? RT #124828"
subtest &macosx, "does watch-path work on Mac OS X";
unlink $filename; # in case we missed the cleanup
ok !$filename.IO.e, "make sure we don't have a file (2)";
subtest { macosx :io-path }, "does IO::Path.watch work on
Mac OS X";
}
default {
skip "Only OSX tests available", 3;
}
}
perl6/roast/S17-supply/watch-path.t
(for IO::Notification.watch-path)
45. 親切なエラーメッセー
ジPerl 5 ユーザがやらかしがちなミスは実行
時に正しい書き方を教えてくれます
$ perl5 -E 'say length "N{MAN}N{EMOJI MODIFIER FITZPATRICK TYPE-5}"'
$ perl6 -e 'say length "N{MAN}N{EMOJI MODIFIER FITZPATRICK TYPE-5}"'
# Unsupported use of N{CHARNAME}; in Perl 6 please use c[CHARNAME]
$ perl6 -e 'say length "c[MAN]c[EMOJI MODIFIER FITZPATRICK TYPE-5]"'
# Undeclared routine:
# length used at line 1. Did you mean 'elems', 'chars', 'graphs', 'codes'?
46. 親切なエラーメッセー
ジ
2017.05 からは Perl 5 とは無関係な
ミスも教えてくれるようになりまし
た
$ perl6 -e 'say 42.195.Inf'
No such method 'Inf' for invocant of type 'Rat'.
Did you mean 'Int'?
47. perl6-js
ついに誰でもコンパイルが可能になりま
した (Node.js 7.x が必要 )
$ git clone https://github.com/rakudo/rakudo.git rakudo-js
$ cd rakudo-js
$ git checkout js
$ perl Configure.pl --backends=moar,js --gen-nqp --gen-moar
$ make js-all
$ ./perl6-js -v
This is Rakudo version 2017.06-223-g85a481c built on JS
implementing Perl 6.c.
$ ./perl6-js -e 'say(123)'
$ make js-spectest
http://blogs.perl.org/users/pawel_murias/2017/06/rakudojs-update---
build-sanely-and-passes-some-spec-tests.html