Why a new CPAN client "cpm" is fast

Why a new CPAN client "cpm" is fast

By Shoichi Kaji (‎skaji‎)
Date: Wednesday, 22 June 2016 10:00
Duration: 20 minutes
Target audience: Any
Language: English
Tags: perl5


I write Perl everyday with great CPAN modules.
My favorite CPAN client is cpanm because it just does what I want.
I loved it, but I sometimes hoped it would be much faster.
Because cpanm installs modules in series
(downloading one and examining one module at a time),
it takes a lot of time to install a module that has many dependencies.

Last year I finally created yet another CPAN client called "cpm",
which actually used cpanm in parallel.
An example shows cpm is 3x faster than cpanm.
Please look at http://perladvent.org/2015/2015-12-02.html

In this talk, we will see the internal of cpm and why it is so fast.
cpm uses pipe(2) and select(2) to communicate and synchronize "cpanm" workers,
and you must see similarities to golang's channel and select!


Attended by: Todd Rinaldo (‎toddr‎), Lee Johnson, Robert Threet (‎RAT‎), David H. Adler (‎dha‎), Tushar Dave, Jason Crome (‎CromeDome‎), Alexander Vipach, Dave Rolsky (‎autarch‎), Paul Johnson, atoomic, Dylan Hardison (‎dylan‎), Leonard Harris, Dana Jacobsen (‎danaj‎), Aaron Staves (‎astaves‎), Jon Gentle (‎atrodo‎), Kivanc Yazan, Turd Furgison (‎fartfart‎), Doug Bell (‎preaction‎), Miller Hall,