SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
PERL FAMILY
15 YEARS OF PERL 6 AND PERL 5
by
generated
Michal Jurosz (mj41)
23.6.2015
MICHAL "MJ41" JUROSZ
, PMD 85, 2 MHz, 48 kB
Turbo Pascal, 386 SX 20 MHz, 2 MB
Linux, Bash, Perl 5+6, Web/Wiki
(PHP, Perl 5), (Perl 5)
, ,
- brno.pm.org
1.pivo 24.2.2011 (skim, mj41)
BASIC-G
CVIS VUT GoodData
github.com/mj41 TapTinder Padre
Brno Perl Mongers
PERL 6 PROGRESS
following the day-to-day progress
Free/OpenSource project
taking a long time" != "not going to happen"
, rakudo.cz
, 2011, >1500 changes
perl6.cz
Perl 6 and Parrot links
PERL 6 (OR P6)
, (Wikipedia)
, ...
( )
is anything that passes
roast - repository of all spec tests
the break in compatibility was mandated from
the start
perl6.org Perl 6
learnXinYminutes.com
Rosetta Code >750
the official P6 test suite
PERL - EARLY VERSIONS
1987 Perl 1: A general-purpose Unix scripting
language to make report processing easier.
1988 Perl 2
1989 Perl 3
1991 Perl 4 (Programming Perl/Camel Book)
October 17, 1994 - Perl 5.000
PERL 6 - BEGINNING
OSCON 2000 (July 17-20)
Perl 6 started in a community session
Jon Orwant, Coffee Mugs
requests for comments
RFC1 (1 Aug 2000), RFC 361 (30 Sep 2000)
361 RFCs
PERL 6, 2000
And one of the very very high level
goals of Perl 6 is to keep Perl capable
of evolving. Perl 5 was running into
some limits and we're going to figure
out how to get around those limits.
-- Larry Wall, 10/2000
DYNAMIC LANGUAGES = PARROT
April 2001, Parrot = Py3K + Perl 6
10/9/2001 - release
a very, very early alpha - ,
virtual machine designed to run dynamic
languages efficiently
2004 - Pirate (Python on Parrot)
The Parrot Foundation
prank
Parrot 0.0.1
test.pasm
test2.pasm
THE STATE OF THE ONION 6
Let me put this bluntly. If we'd done
Perl 6 on a schedule, you'd have it by
now. And it would be crap. ... because
we don't have a schedule. We just
have a plan.
-- Larry Wall, 2002
SYNOPSES, 8/2004
Created: 10 Aug 2004
Perl 6 - specification + test suite
(1140 files, spec 37600+79000)
Perl 5 - interpreter + functional tests
The Synopsis documents
github.com/perl6/specs
roast
WHEN? TWO YEARS
Finally, when ... Perl 6 beta will be available?
That's a tough question ... With the
state of Parrot and the design work
completed so far ... a good chance we'll
see one within the next two years.
-- Allison Randal, 5/2004
VOLUNTEERS
Java has Sun. .NET has Microsoft.
FreeSW has grants and volunteers
2005, 70k$ - NLNet grant
2008, 200k$ - Ian Hague grant
2015, 10k€ - Perl 6 Core Development Fund
volunteers will do what they want
PUNIE (PERL 1.000) ON PARROT
20 years to the day Perl 1.000 was released
2007 - Perl 5.10.0 is now out
(Perl 1) compiler on Parrot VM
capable of running almost the entire Perl 1 test
suite successfully
Punie
PUGS (AUDREY TANG), 2005
>100 developers first month
"-Ofun", commit bit policy,
Synopses and >10k unit tests
Haskell - many functional programming
influences
Haskell/Perl 5/STD/JavaScript/Parrot/...
Parrot - Python, TCL, Ruby, JavaScript, ...
mod_parrot, mod_perl6, ...
IRC logs
PUGS (MJ41), 2005
21.3.2005 - my first Pugs commit
later testing "Perl 6"
mj41 -Ofun
TapTinder: ,
, , ...
2005­04­12 mj41: WinXP build failed
2005­04­12 autrijus: yeah, mj41: try r1848
GitHub taptinder.org
GoodData Docker
WHY PERL 6 IS TAKING SO ... LONG
When will Perl 6 be ready?
When it's done.
Seriously, when will it be done?
When the number of volunteers
working on it have completed the
amount of work remaining.
JNTHN'S OSCON BEERS
2004 - Parrot
Java to Parrot bytecode
2007 - Jonathan Worthington
Junctions
Perl 6 since that
JNTHN
My mission:
Eliminate the implementation issues
that stand in the way of greatly
increased Perl 6 adoption.
-- Jonathan "jnthn" Worthington
PERL 6 - GLOSSARY
language: Perl 6 (or Perl 6.0.0)
implementations: Rakudo (, Niecza, Pugs, ...)
virtual machines: MoarVM, JVM (, Parrot, ...)
binary: perl6-m, perl6-j (, perl6-p)
distribution: Rakudo Star
grammar: STD
PERL 6 - LANGUAGE/SPEC
specified by its test suite
/specs - to test suite
- repository of all spec tests
- standard grammar
whirlpool model
Synopsis links
roast
STD.pm6
IMPLEMENTATIONS
Rakudo
Niecza
...
NIECZA
C#, CLR (.NET, Mono)
one man show - sorear
2010.06.30 What's "Nie mamy
czas"? =)
2010.06.30 it means "We don't have
time" in Czech.
VIRTUAL MACHINE (VM)
execute instructions
interpreting, (JIT)
memory management
build-in data structures
strings, arrays, objects, ...
abstract OS
just-in-time
NQP - NOT QUITE PERL (6)
[en-kjů-pí], Patrick R. Michaud, end of 2007
a small, easier-to-optimize Perl 6 subset
ideal for writing compilers, especially parse tree
to AST mapping
NQP compiler is implemented in NQP
(bootstrapped)
nearly all of Rakudo is NQP code (except
CORE.setting)
PERL ?
an easy thing easy
or a hard thing possible
you can get your work done efficiently
... and have time to go for a beer
..., 4, 5, 6, ... ?
backward compatibility
finished/done?
PERL 4
Perl 4 didn't have lexical (my) variables
and the package separator was ' (not ::)
and really nobody used packages anyway
and there was no object support whatsoever
PERL 5 + 6
Perl 5
not a dead-end language
Perl 5 renaissance as
development in parallel with Perl 6
stealing features
use feature, use 5.x
release cycle
Modern Perl
PERL 6 + 5
"Perl 6 is Perl." -- Larry Wall
Rule 1: Whatever Larry says about Perl is
correct.
sister languages
no intention to have Perl 6 replace Perl 5
PERL 6 KILLING PERL 5? NO.
hugely expanded test suite (27k 2002, 93k 2009)
refactored internal - fixes, speed, memory
8/2006 dead
regex engine improvements, named captures
smart matching, given/when, state variables,
defined-or, say, ...
Moose, , CPAN modules
git, rapid release cycle, cpants
Ponie
Pluggable keywords
THE STATE OF THE ONION, 2002 - DYING
But two years ago Perl 5 had already
started dying, because people were
starting to see it as a dead-end
language. ... when we announced
Perl 6, Perl 5 suddenly took on a new
life ...
-- Larry Wall, 2002
PERL 6 - FEATURES 1
signatures
positional, named, slurpy
is ro, is rw, is copy
- Buf, Uni, Str
chained comparisons
multiline comments, heredocs
Rat type, Complex, Big integers, Buf, native
references gone
Unicode
PERL 6 - FEATURES 2
scales better from script to application
OO including roles and introspection
multiple dispatch
gradually typed - performance
lazy evaluation
concurrency - Promises, Channels, Supplies
junctions (autothreading)
PERL 6 - FEATURES 3, ...
digest CPAN down into something more
coherent
install more than one version of package
grammars and regexes
STD.pm6 written in Perl 6 - overloading
meta-operators, user-defined operators
macros
see features matrix
RAKUDO LEAVING THE PARROT NEST
3/2009 1.0.0 "Haru Tatsu" released
the first "stable" release to developers
1/2010 2.0.0 Production use
one bytecode to rule them all
separated repositories
the deprecation policy (6 months, 3 months)
people
RAKUDO TODAY
"Rakudo" - a Perl 6 language implementation
reference (or "official") Perl 6 implementation
primary backend is
JVM is also supported
Parrot VM abonded - at least for 2015
focus on "The Christmas" ToDo list
,
MoarVM
rakudo.org github.com/rakudo
RAKUDO ★
Rakudo Star - since 29.7.2010
distribution - including VM, modules, ...
a useful and usable distribution of Perl 6
aimed at "early adopters" of Perl 6
"... pretty near does exist, ..." even if it "... still runs
very slowly ... and has lots of bugs ..." -- lwall,
OSCON 2010
6GUTS BY JNTHN
Torment the implementers for the sake of the
users" isn't a joke!
In my first couple of years, I learned rather a lot
about how not to implement Perl 6.
,6guts.wordpress.com slides on jnthn.net
NOM/6MODEL/QREGEX - 2010..
“nom” Rakudo branch – short for “new object
model”
6model - design and implement a metamodel
core
NQP re-built to use 6model rather than the
Parrot object model
a parallel effort to port the NQP language to the
.Net CLR and the JVM
NOM/6MODEL/QREGEX - ..2012
1/2011 chromatic - stopped working on Parrot
(contributor since late 2001)
9/2011 - Rakudo itself is now mostly written in
NQP and Perl 6 (90-95%),
1/2012 - so, we made it, in many sense this is a
revolution
5/2012 - QRegex, QAST is AST design and
implementation, written in NQP
RAKUDO ON THE JVM - 2013
invokedynamic instruction
awful startup time
perl6-j instead of perl6-m
concurrency only provided on JVM so far
Thread, Promise, Supply, Channel, ...
7/2013 92%, 10/2013 99.9%
MOARVM - 2013/2014
lightweight and metamodel-focused runtime for
NQP and Rakudo
supports 6model and various other needs
natively (efficiently)
enable the near-term exploration of JIT
compilation in 6model
quick and easy build
1/2014 99%, 3/2015 "100%"
moarvm.com
MOARVM VS. PARROT 1
Parrot
started as a great VM to run Perl 5.6
performance - a 10+ year old codebase
visions of multiple architects
experimental code, rush to finish
the deprecation policy
MOARVM VS. PARROT 2
MoarVM
lower startup times and lower memory use
spesh and JIT - sophisticated dynamic
optimization
performance
precise, generational GC
...
PERL 6 - CHRISTMAS TODO
Great List Refactor (GLR)
the Native, Shaped Arrays (NSA)
the Normalization Form Grapheme (NFG)
PERL 6.0
Feb 2015, FOSDEM - a 6.0 language
WenZPerl Donate 10,000 EUR
4/2015 - jnthn:
May 2008, 200k$ -
4/2015 - Bart Wiegmans:
Perl 6 Core Development Fund
NFG, native arrays, ...
Ian Hague grant
Advancing the
MoarVM JIT
SLOW RAKUDO
Perl 6 - lazy lists
8/2013 - about 3,600x slower than Perl 5
8/2014 - is 34x slower
Better. But still sucks.
FAST RAKUDO
8/2014 - loop_empty_native test/micro-
benchmark
355x faster than 8/2013
so 14x faster than Perl 5
PERL 6 - PICK TWO
"Good, fast, cheap: pick two." Well, by
definition our community has to do it
cheap, so the saying reduces to "Good,
Fast: pick one." And we quite
intentionally picked good rather than
fast.
— Larry Wall (Feb 11 2015, )infoworld.com
VÝBORNĚ, DÍKY!
QUESTIONS?
Michal "mj41" Jurosz
Perl 6 guyGoodData
Generated from source
by inside .
Powered by .
github.com/mj41/perl6-history-mj41
Presentation::Builder prbuilder Docker container
reveal.js
Brno Perl Mongers 28.5.2015 - Perl family by mj41

Contenu connexe

Tendances

Efficient System Monitoring in Cloud Native Environments
Efficient System Monitoring in Cloud Native EnvironmentsEfficient System Monitoring in Cloud Native Environments
Efficient System Monitoring in Cloud Native EnvironmentsGergely Szabó
 
PFQ@ 10th Italian Networking Workshop (Bormio)
PFQ@ 10th Italian Networking Workshop (Bormio)PFQ@ 10th Italian Networking Workshop (Bormio)
PFQ@ 10th Italian Networking Workshop (Bormio)Nicola Bonelli
 
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationBKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationLinaro
 
BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?Linaro
 
Pugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationAudrey Tang
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Hajime Tazaki
 
OpenDJ, life after Sun and OpenDS
OpenDJ, life after Sun and OpenDSOpenDJ, life after Sun and OpenDS
OpenDJ, life after Sun and OpenDSLudovic Poitou
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGJDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGYuji Kubota
 
PLNOG14: Architektura oraz rozwiązywanie problemów na routerach IOS-XE - Piot...
PLNOG14: Architektura oraz rozwiązywanie problemów na routerach IOS-XE - Piot...PLNOG14: Architektura oraz rozwiązywanie problemów na routerach IOS-XE - Piot...
PLNOG14: Architektura oraz rozwiązywanie problemów na routerach IOS-XE - Piot...PROIDEA
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFILinaro
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLinaro
 
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)Linaro
 
1032 cs208 g operation system ip camera case share.v0.2
1032 cs208 g operation system ip camera case share.v0.21032 cs208 g operation system ip camera case share.v0.2
1032 cs208 g operation system ip camera case share.v0.2Stanley Ho
 
Writing an Ostinato Protocol Builder [FOSDEM 2021]
Writing an Ostinato Protocol Builder [FOSDEM 2021]Writing an Ostinato Protocol Builder [FOSDEM 2021]
Writing an Ostinato Protocol Builder [FOSDEM 2021]pstavirs
 
Tarantool: теперь и с SQL
Tarantool: теперь и с SQLTarantool: теперь и с SQL
Tarantool: теперь и с SQLMail.ru Group
 
Network stack personality in Android phone - netdev 2.2
Network stack personality in Android phone - netdev 2.2Network stack personality in Android phone - netdev 2.2
Network stack personality in Android phone - netdev 2.2Hajime Tazaki
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108Linaro
 

Tendances (19)

My First FD.io VPP
My First FD.io VPPMy First FD.io VPP
My First FD.io VPP
 
Efficient System Monitoring in Cloud Native Environments
Efficient System Monitoring in Cloud Native EnvironmentsEfficient System Monitoring in Cloud Native Environments
Efficient System Monitoring in Cloud Native Environments
 
PFQ@ 10th Italian Networking Workshop (Bormio)
PFQ@ 10th Italian Networking Workshop (Bormio)PFQ@ 10th Italian Networking Workshop (Bormio)
PFQ@ 10th Italian Networking Workshop (Bormio)
 
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP IntegrationBKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
BKK16-409 VOSY Switch Port to ARMv8 Platforms and ODP Integration
 
BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?BKK16-213 Where's the Hardware?
BKK16-213 Where's the Hardware?
 
Pugs: A Perl 6 Implementation
Pugs: A Perl 6 ImplementationPugs: A Perl 6 Implementation
Pugs: A Perl 6 Implementation
 
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
Linux rumpkernel - ABC2018 (AsiaBSDCon 2018)
 
OpenDJ, life after Sun and OpenDS
OpenDJ, life after Sun and OpenDSOpenDJ, life after Sun and OpenDS
OpenDJ, life after Sun and OpenDS
 
JDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUGJDK9 Features (Summary, 31/Jul/2015) #JJUG
JDK9 Features (Summary, 31/Jul/2015) #JJUG
 
PLNOG14: Architektura oraz rozwiązywanie problemów na routerach IOS-XE - Piot...
PLNOG14: Architektura oraz rozwiązywanie problemów na routerach IOS-XE - Piot...PLNOG14: Architektura oraz rozwiązywanie problemów na routerach IOS-XE - Piot...
PLNOG14: Architektura oraz rozwiązywanie problemów na routerach IOS-XE - Piot...
 
BKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFIBKK16-309A Open Platform support in UEFI
BKK16-309A Open Platform support in UEFI
 
Las16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - statusLas16 309 - lua jit arm64 port - status
Las16 309 - lua jit arm64 port - status
 
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
BKK16-308 The tool called Auto-Tuned Optimization System (ATOS)
 
Is Ldap Dead ?
Is Ldap Dead ?Is Ldap Dead ?
Is Ldap Dead ?
 
1032 cs208 g operation system ip camera case share.v0.2
1032 cs208 g operation system ip camera case share.v0.21032 cs208 g operation system ip camera case share.v0.2
1032 cs208 g operation system ip camera case share.v0.2
 
Writing an Ostinato Protocol Builder [FOSDEM 2021]
Writing an Ostinato Protocol Builder [FOSDEM 2021]Writing an Ostinato Protocol Builder [FOSDEM 2021]
Writing an Ostinato Protocol Builder [FOSDEM 2021]
 
Tarantool: теперь и с SQL
Tarantool: теперь и с SQLTarantool: теперь и с SQL
Tarantool: теперь и с SQL
 
Network stack personality in Android phone - netdev 2.2
Network stack personality in Android phone - netdev 2.2Network stack personality in Android phone - netdev 2.2
Network stack personality in Android phone - netdev 2.2
 
BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108BSD Sockets API in Zephyr RTOS - SFO17-108
BSD Sockets API in Zephyr RTOS - SFO17-108
 

En vedette

En vedette (7)

Advanced Regular Expressions Redux
Advanced Regular Expressions ReduxAdvanced Regular Expressions Redux
Advanced Regular Expressions Redux
 
Pushdown autometa
Pushdown autometaPushdown autometa
Pushdown autometa
 
Pda
PdaPda
Pda
 
Asymptotic notation
Asymptotic notationAsymptotic notation
Asymptotic notation
 
Context free grammars
Context free grammarsContext free grammars
Context free grammars
 
Lecture: Context-Free Grammars
Lecture: Context-Free GrammarsLecture: Context-Free Grammars
Lecture: Context-Free Grammars
 
reveal.js 3.0.0
reveal.js 3.0.0reveal.js 3.0.0
reveal.js 3.0.0
 

Similaire à Brno Perl Mongers 28.5.2015 - Perl family by mj41

Katello on TorqueBox
Katello on TorqueBoxKatello on TorqueBox
Katello on TorqueBoxlzap
 
Building and Running OpenStack on POWER8
Building and Running OpenStack on POWER8Building and Running OpenStack on POWER8
Building and Running OpenStack on POWER8Lance Albertson
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14ActiveState
 
Unit 1-introduction to perl
Unit 1-introduction to perlUnit 1-introduction to perl
Unit 1-introduction to perlsana mateen
 
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12ActiveState
 
Scaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global OrganizationScaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global OrganizationPuppet
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemRafael Winterhalter
 
Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Tim Bunce
 
Architecting a 35 PB distributed parallel file system for science
Architecting a 35 PB distributed parallel file system for scienceArchitecting a 35 PB distributed parallel file system for science
Architecting a 35 PB distributed parallel file system for scienceSpeck&Tech
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4Open Networking Summits
 
Enterprise Perl
Enterprise PerlEnterprise Perl
Enterprise PerlDave Cross
 
Quadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystemQuadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystemRob Vesse
 
Preparing OpenSHMEM for Exascale
Preparing OpenSHMEM for ExascalePreparing OpenSHMEM for Exascale
Preparing OpenSHMEM for Exascaleinside-BigData.com
 
Apache Mahout on Zeppelin.pptx
Apache Mahout on Zeppelin.pptxApache Mahout on Zeppelin.pptx
Apache Mahout on Zeppelin.pptxAndrew Musselman
 
openPOWERLINK over Xenomai
openPOWERLINK over XenomaiopenPOWERLINK over Xenomai
openPOWERLINK over XenomaiAlexandre LAHAYE
 
OpenACC Monthly Highlights- December
OpenACC Monthly Highlights- DecemberOpenACC Monthly Highlights- December
OpenACC Monthly Highlights- DecemberNVIDIA
 

Similaire à Brno Perl Mongers 28.5.2015 - Perl family by mj41 (20)

The Parrot VM
The Parrot VMThe Parrot VM
The Parrot VM
 
Katello on TorqueBox
Katello on TorqueBoxKatello on TorqueBox
Katello on TorqueBox
 
Building and Running OpenStack on POWER8
Building and Running OpenStack on POWER8Building and Running OpenStack on POWER8
Building and Running OpenStack on POWER8
 
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14Continuing Evolution of Perl: Highlights of ActivePerl 5.14
Continuing Evolution of Perl: Highlights of ActivePerl 5.14
 
Unit 1-introduction to perl
Unit 1-introduction to perlUnit 1-introduction to perl
Unit 1-introduction to perl
 
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
Keeping up with Perl: Development, Upgrade and Deployment Options for Perl 5.12
 
Lua and its Ecosystem
Lua and its EcosystemLua and its Ecosystem
Lua and its Ecosystem
 
Scaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global OrganizationScaling Puppet Usage to a Global Organization
Scaling Puppet Usage to a Global Organization
 
Java and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystemJava and OpenJDK: disecting the ecosystem
Java and OpenJDK: disecting the ecosystem
 
Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)Perl Myths 200802 with notes (OUTDATED, see 200909)
Perl Myths 200802 with notes (OUTDATED, see 200909)
 
vBACD - Crash Course in Open Source Cloud Computing - 2/28
vBACD - Crash Course in Open Source Cloud Computing - 2/28vBACD - Crash Course in Open Source Cloud Computing - 2/28
vBACD - Crash Course in Open Source Cloud Computing - 2/28
 
Architecting a 35 PB distributed parallel file system for science
Architecting a 35 PB distributed parallel file system for scienceArchitecting a 35 PB distributed parallel file system for science
Architecting a 35 PB distributed parallel file system for science
 
Perl
PerlPerl
Perl
 
[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4[Webinar Slides] Programming the Network Dataplane in P4
[Webinar Slides] Programming the Network Dataplane in P4
 
Enterprise Perl
Enterprise PerlEnterprise Perl
Enterprise Perl
 
Quadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystemQuadrupling your elephants - RDF and the Hadoop ecosystem
Quadrupling your elephants - RDF and the Hadoop ecosystem
 
Preparing OpenSHMEM for Exascale
Preparing OpenSHMEM for ExascalePreparing OpenSHMEM for Exascale
Preparing OpenSHMEM for Exascale
 
Apache Mahout on Zeppelin.pptx
Apache Mahout on Zeppelin.pptxApache Mahout on Zeppelin.pptx
Apache Mahout on Zeppelin.pptx
 
openPOWERLINK over Xenomai
openPOWERLINK over XenomaiopenPOWERLINK over Xenomai
openPOWERLINK over Xenomai
 
OpenACC Monthly Highlights- December
OpenACC Monthly Highlights- DecemberOpenACC Monthly Highlights- December
OpenACC Monthly Highlights- December
 

Dernier

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsAlberto González Trastoy
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesVictorSzoltysek
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfryanfarris8
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension AidPhilip Schwarz
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsArshad QA
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providermohitmore19
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...kalichargn70th171
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech studentsHimanshiGarg82
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdfPearlKirahMaeRagusta1
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionOnePlan Solutions
 

Dernier (20)

Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) SolutionIntroducing Microsoft’s new Enterprise Work Management (EWM) Solution
Introducing Microsoft’s new Enterprise Work Management (EWM) Solution
 

Brno Perl Mongers 28.5.2015 - Perl family by mj41

  • 1. PERL FAMILY 15 YEARS OF PERL 6 AND PERL 5 by generated Michal Jurosz (mj41) 23.6.2015
  • 2. MICHAL "MJ41" JUROSZ , PMD 85, 2 MHz, 48 kB Turbo Pascal, 386 SX 20 MHz, 2 MB Linux, Bash, Perl 5+6, Web/Wiki (PHP, Perl 5), (Perl 5) , , - brno.pm.org 1.pivo 24.2.2011 (skim, mj41) BASIC-G CVIS VUT GoodData github.com/mj41 TapTinder Padre Brno Perl Mongers
  • 3.
  • 4.
  • 5. PERL 6 PROGRESS following the day-to-day progress Free/OpenSource project taking a long time" != "not going to happen" , rakudo.cz , 2011, >1500 changes perl6.cz Perl 6 and Parrot links
  • 6. PERL 6 (OR P6) , (Wikipedia) , ... ( ) is anything that passes roast - repository of all spec tests the break in compatibility was mandated from the start perl6.org Perl 6 learnXinYminutes.com Rosetta Code >750 the official P6 test suite
  • 7. PERL - EARLY VERSIONS 1987 Perl 1: A general-purpose Unix scripting language to make report processing easier. 1988 Perl 2 1989 Perl 3 1991 Perl 4 (Programming Perl/Camel Book) October 17, 1994 - Perl 5.000
  • 8.
  • 9. PERL 6 - BEGINNING OSCON 2000 (July 17-20) Perl 6 started in a community session Jon Orwant, Coffee Mugs requests for comments RFC1 (1 Aug 2000), RFC 361 (30 Sep 2000) 361 RFCs
  • 10. PERL 6, 2000 And one of the very very high level goals of Perl 6 is to keep Perl capable of evolving. Perl 5 was running into some limits and we're going to figure out how to get around those limits. -- Larry Wall, 10/2000
  • 11. DYNAMIC LANGUAGES = PARROT April 2001, Parrot = Py3K + Perl 6 10/9/2001 - release a very, very early alpha - , virtual machine designed to run dynamic languages efficiently 2004 - Pirate (Python on Parrot) The Parrot Foundation prank Parrot 0.0.1 test.pasm test2.pasm
  • 12. THE STATE OF THE ONION 6 Let me put this bluntly. If we'd done Perl 6 on a schedule, you'd have it by now. And it would be crap. ... because we don't have a schedule. We just have a plan. -- Larry Wall, 2002
  • 13.
  • 14. SYNOPSES, 8/2004 Created: 10 Aug 2004 Perl 6 - specification + test suite (1140 files, spec 37600+79000) Perl 5 - interpreter + functional tests The Synopsis documents github.com/perl6/specs roast
  • 15. WHEN? TWO YEARS Finally, when ... Perl 6 beta will be available? That's a tough question ... With the state of Parrot and the design work completed so far ... a good chance we'll see one within the next two years. -- Allison Randal, 5/2004
  • 16. VOLUNTEERS Java has Sun. .NET has Microsoft. FreeSW has grants and volunteers 2005, 70k$ - NLNet grant 2008, 200k$ - Ian Hague grant 2015, 10k€ - Perl 6 Core Development Fund volunteers will do what they want
  • 17. PUNIE (PERL 1.000) ON PARROT 20 years to the day Perl 1.000 was released 2007 - Perl 5.10.0 is now out (Perl 1) compiler on Parrot VM capable of running almost the entire Perl 1 test suite successfully Punie
  • 18.
  • 19. PUGS (AUDREY TANG), 2005 >100 developers first month "-Ofun", commit bit policy, Synopses and >10k unit tests Haskell - many functional programming influences Haskell/Perl 5/STD/JavaScript/Parrot/... Parrot - Python, TCL, Ruby, JavaScript, ... mod_parrot, mod_perl6, ... IRC logs
  • 20. PUGS (MJ41), 2005 21.3.2005 - my first Pugs commit later testing "Perl 6" mj41 -Ofun TapTinder: , , , ... 2005­04­12 mj41: WinXP build failed 2005­04­12 autrijus: yeah, mj41: try r1848 GitHub taptinder.org GoodData Docker
  • 21. WHY PERL 6 IS TAKING SO ... LONG When will Perl 6 be ready? When it's done. Seriously, when will it be done? When the number of volunteers working on it have completed the amount of work remaining.
  • 22.
  • 23. JNTHN'S OSCON BEERS 2004 - Parrot Java to Parrot bytecode 2007 - Jonathan Worthington Junctions Perl 6 since that
  • 24. JNTHN My mission: Eliminate the implementation issues that stand in the way of greatly increased Perl 6 adoption. -- Jonathan "jnthn" Worthington
  • 25.
  • 26. PERL 6 - GLOSSARY language: Perl 6 (or Perl 6.0.0) implementations: Rakudo (, Niecza, Pugs, ...) virtual machines: MoarVM, JVM (, Parrot, ...) binary: perl6-m, perl6-j (, perl6-p) distribution: Rakudo Star grammar: STD
  • 27. PERL 6 - LANGUAGE/SPEC specified by its test suite /specs - to test suite - repository of all spec tests - standard grammar whirlpool model Synopsis links roast STD.pm6
  • 29. NIECZA C#, CLR (.NET, Mono) one man show - sorear 2010.06.30 What's "Nie mamy czas"? =) 2010.06.30 it means "We don't have time" in Czech.
  • 30. VIRTUAL MACHINE (VM) execute instructions interpreting, (JIT) memory management build-in data structures strings, arrays, objects, ... abstract OS just-in-time
  • 31. NQP - NOT QUITE PERL (6) [en-kjů-pí], Patrick R. Michaud, end of 2007 a small, easier-to-optimize Perl 6 subset ideal for writing compilers, especially parse tree to AST mapping NQP compiler is implemented in NQP (bootstrapped) nearly all of Rakudo is NQP code (except CORE.setting)
  • 32. PERL ? an easy thing easy or a hard thing possible you can get your work done efficiently ... and have time to go for a beer
  • 33. ..., 4, 5, 6, ... ? backward compatibility finished/done?
  • 34. PERL 4 Perl 4 didn't have lexical (my) variables and the package separator was ' (not ::) and really nobody used packages anyway and there was no object support whatsoever
  • 35. PERL 5 + 6 Perl 5 not a dead-end language Perl 5 renaissance as development in parallel with Perl 6 stealing features use feature, use 5.x release cycle Modern Perl
  • 36. PERL 6 + 5 "Perl 6 is Perl." -- Larry Wall Rule 1: Whatever Larry says about Perl is correct. sister languages no intention to have Perl 6 replace Perl 5
  • 37. PERL 6 KILLING PERL 5? NO. hugely expanded test suite (27k 2002, 93k 2009) refactored internal - fixes, speed, memory 8/2006 dead regex engine improvements, named captures smart matching, given/when, state variables, defined-or, say, ... Moose, , CPAN modules git, rapid release cycle, cpants Ponie Pluggable keywords
  • 38. THE STATE OF THE ONION, 2002 - DYING But two years ago Perl 5 had already started dying, because people were starting to see it as a dead-end language. ... when we announced Perl 6, Perl 5 suddenly took on a new life ... -- Larry Wall, 2002
  • 39. PERL 6 - FEATURES 1 signatures positional, named, slurpy is ro, is rw, is copy - Buf, Uni, Str chained comparisons multiline comments, heredocs Rat type, Complex, Big integers, Buf, native references gone Unicode
  • 40. PERL 6 - FEATURES 2 scales better from script to application OO including roles and introspection multiple dispatch gradually typed - performance lazy evaluation concurrency - Promises, Channels, Supplies junctions (autothreading)
  • 41. PERL 6 - FEATURES 3, ... digest CPAN down into something more coherent install more than one version of package grammars and regexes STD.pm6 written in Perl 6 - overloading meta-operators, user-defined operators macros see features matrix
  • 42.
  • 43. RAKUDO LEAVING THE PARROT NEST 3/2009 1.0.0 "Haru Tatsu" released the first "stable" release to developers 1/2010 2.0.0 Production use one bytecode to rule them all separated repositories the deprecation policy (6 months, 3 months) people
  • 44. RAKUDO TODAY "Rakudo" - a Perl 6 language implementation reference (or "official") Perl 6 implementation primary backend is JVM is also supported Parrot VM abonded - at least for 2015 focus on "The Christmas" ToDo list , MoarVM rakudo.org github.com/rakudo
  • 45. RAKUDO ★ Rakudo Star - since 29.7.2010 distribution - including VM, modules, ... a useful and usable distribution of Perl 6 aimed at "early adopters" of Perl 6 "... pretty near does exist, ..." even if it "... still runs very slowly ... and has lots of bugs ..." -- lwall, OSCON 2010
  • 46. 6GUTS BY JNTHN Torment the implementers for the sake of the users" isn't a joke! In my first couple of years, I learned rather a lot about how not to implement Perl 6. ,6guts.wordpress.com slides on jnthn.net
  • 47. NOM/6MODEL/QREGEX - 2010.. “nom” Rakudo branch – short for “new object model” 6model - design and implement a metamodel core NQP re-built to use 6model rather than the Parrot object model a parallel effort to port the NQP language to the .Net CLR and the JVM
  • 48. NOM/6MODEL/QREGEX - ..2012 1/2011 chromatic - stopped working on Parrot (contributor since late 2001) 9/2011 - Rakudo itself is now mostly written in NQP and Perl 6 (90-95%), 1/2012 - so, we made it, in many sense this is a revolution 5/2012 - QRegex, QAST is AST design and implementation, written in NQP
  • 49. RAKUDO ON THE JVM - 2013 invokedynamic instruction awful startup time perl6-j instead of perl6-m concurrency only provided on JVM so far Thread, Promise, Supply, Channel, ... 7/2013 92%, 10/2013 99.9%
  • 50. MOARVM - 2013/2014 lightweight and metamodel-focused runtime for NQP and Rakudo supports 6model and various other needs natively (efficiently) enable the near-term exploration of JIT compilation in 6model quick and easy build 1/2014 99%, 3/2015 "100%" moarvm.com
  • 51. MOARVM VS. PARROT 1 Parrot started as a great VM to run Perl 5.6 performance - a 10+ year old codebase visions of multiple architects experimental code, rush to finish the deprecation policy
  • 52. MOARVM VS. PARROT 2 MoarVM lower startup times and lower memory use spesh and JIT - sophisticated dynamic optimization performance precise, generational GC ...
  • 53.
  • 54. PERL 6 - CHRISTMAS TODO Great List Refactor (GLR) the Native, Shaped Arrays (NSA) the Normalization Form Grapheme (NFG)
  • 55. PERL 6.0 Feb 2015, FOSDEM - a 6.0 language WenZPerl Donate 10,000 EUR 4/2015 - jnthn: May 2008, 200k$ - 4/2015 - Bart Wiegmans: Perl 6 Core Development Fund NFG, native arrays, ... Ian Hague grant Advancing the MoarVM JIT
  • 56. SLOW RAKUDO Perl 6 - lazy lists 8/2013 - about 3,600x slower than Perl 5 8/2014 - is 34x slower Better. But still sucks.
  • 57. FAST RAKUDO 8/2014 - loop_empty_native test/micro- benchmark 355x faster than 8/2013 so 14x faster than Perl 5
  • 58. PERL 6 - PICK TWO "Good, fast, cheap: pick two." Well, by definition our community has to do it cheap, so the saying reduces to "Good, Fast: pick one." And we quite intentionally picked good rather than fast. — Larry Wall (Feb 11 2015, )infoworld.com
  • 60. QUESTIONS? Michal "mj41" Jurosz Perl 6 guyGoodData Generated from source by inside . Powered by . github.com/mj41/perl6-history-mj41 Presentation::Builder prbuilder Docker container reveal.js