Pugs Perl 6 For Real http://pugscode.org/ Autrijus Tang CUFP - - PowerPoint PPT Presentation

pugs
SMART_READER_LITE
LIVE PREVIEW

Pugs Perl 6 For Real http://pugscode.org/ Autrijus Tang CUFP - - PowerPoint PPT Presentation

Pugs Perl 6 For Real http://pugscode.org/ Autrijus Tang CUFP 2005, Tallinn Perl is ergonomic P is for Practical Manipulexity & Whipuptitude Manipulexity Perl C awk sed shell (circa. 1990) Whipuptitude Abstraction Sexy


slide-1
SLIDE 1

Pugs

Perl 6 For Real

http://pugscode.org/

Autrijus Tang

CUFP 2005, Tallinn

slide-2
SLIDE 2

Perl

is ergonomic

slide-3
SLIDE 3
slide-4
SLIDE 4

P is for

Practical

slide-5
SLIDE 5

Manipulexity & Whipuptitude

slide-6
SLIDE 6

Manipulexity Whipuptitude

C

shell

sed awk

Perl

(circa. 1990)

slide-7
SLIDE 7

Abstraction

→ Sexy

slide-8
SLIDE 8

Closures Bless / Tie BEGIN block

slide-9
SLIDE 9

Shorthand

→ Natural

slide-10
SLIDE 10

Regex Contexts $_ as Topic

slide-11
SLIDE 11

Stepping sideways

slide-12
SLIDE 12

CPAN

is versatile

slide-13
SLIDE 13
slide-14
SLIDE 14

No coding = Best coding

slide-15
SLIDE 15

10+ years 2500+ authors 8000+ modules

slide-16
SLIDE 16

Smoke Testing Issue Tracking

Rating & Discussion Package Management

slide-17
SLIDE 17

Vocabulary > Syntax

slide-18
SLIDE 18

Addictive

Super glue

slide-19
SLIDE 19

Jenga

Syndrome

slide-20
SLIDE 20

Perl 6

is powerful

slide-21
SLIDE 21
slide-22
SLIDE 22

RFC

Parrot

Apocalypses

slide-23
SLIDE 23

Lazy Evaluation

slide-24
SLIDE 24

Rebindable Grammar

slide-25
SLIDE 25

Dependent Constrained Soft Typing

slide-26
SLIDE 26

Traits Metamodel

slide-27
SLIDE 27

MMD on

Type & Value

slide-28
SLIDE 28

Syntactic Aspartame without Bloat

slide-29
SLIDE 29

use perl5:DBI; use jsan:DOM;

slide-30
SLIDE 30

…but it stayed

Imaginary

for 5 years

slide-31
SLIDE 31

Perl6::Rules P6C/PIR PGE/PAST

slide-32
SLIDE 32

Deadlocked: Insufficient Manipulexity

slide-33
SLIDE 33

Haskell

is fantastic

slide-34
SLIDE 34
slide-35
SLIDE 35

SVK

steals from the best:

Darcs

slide-36
SLIDE 36

“The Dream that stuff are made of” “An alien language”

slide-37
SLIDE 37

$work in C

Terabytes of AFP Evil Binary Format Old AIX machine

slide-38
SLIDE 38

Parse::AFP Prototype in perl5 Leaks horribly Hard to refactor

slide-39
SLIDE 39

OpenAFP.hs 30 days 3000 lines Highly efficient

slide-40
SLIDE 40

touchForeignPtr unsafeInterleaveIO WriterT ReaderT IO 3-arg class with Fundeps DSL, TH, Generics (Kudos to #haskell)

slide-41
SLIDE 41

Feb 1st TaPL arrived as an exercise…

slide-42
SLIDE 42

Pugs

is expansive

slide-43
SLIDE 43
slide-44
SLIDE 44

Feb 6th

Primitive Interpreter

(1|2)+(3|4)→(4|5|6)

Parsec.Expr

slide-45
SLIDE 45

Feb 16th Imperative runtime

say “Hello, world”

ContT ReaderT

slide-46
SLIDE 46

Feb 23rd Test.pm runs

is(1+1, 2, ‘add’)

10,000 tests today

slide-47
SLIDE 47

Mar 19th PCRE Regex

s:p5:g/x/Y/;

hsregex

slide-48
SLIDE 48

Apr 26th BEGIN blocks

use fp;

unsafePerformIO

slide-49
SLIDE 49

May 25th

Embedded Perl5/Parrot

AddHandler mod_pugs

FFI & hsc2hs

slide-50
SLIDE 50

Jun 24th

Perl6→PIL→Parrot

make smoke-pir

GADT & Fundeps

slide-51
SLIDE 51

Jul 14th

PIL→Perl5

make smoke-perl5

DrIFT

slide-52
SLIDE 52

Jul 17th

PIL→Javascript

make smoke-js

Passes 90% tests now

slide-53
SLIDE 53

Aug 1st

Self-hosting Object Model

class Class is Object;

Ported to JS, P5, P6

slide-54
SLIDE 54

Sep 21st Blondie

Type inferencer Codegen to native C

slide-55
SLIDE 55

People

are alive

slide-56
SLIDE 56
slide-57
SLIDE 57
  • Ofun
slide-58
SLIDE 58

Anarchistic Development

slide-59
SLIDE 59

Arrow length Time 7000+ commits 120+ committers

slide-60
SLIDE 60

@Larry λcamels

slide-61
SLIDE 61

#perl6 p6[cli] Journals

slide-62
SLIDE 62

Poetry Obfuscation JAPH

slide-63
SLIDE 63

Hackathons

Taipei Vienna Toronto Tel-Aviv …and more

slide-64
SLIDE 64

Plans

are for real

slide-65
SLIDE 65
slide-66
SLIDE 66

6.0 Initial Release 6.2 Functions 6.28 Objects 6.283 Grammars

slide-67
SLIDE 67

6.2831 Types 6.28318 Macros 6.283185 Self-host

slide-68
SLIDE 68

use pugs;

slide-69
SLIDE 69

import Pugs

JSAN().use(‘pugs’) #include <pugs.h>

slide-70
SLIDE 70

CLR? JVM? YARV?

slide-71
SLIDE 71

Visiolize Formalize

slide-72
SLIDE 72

Erdösing

Wanderdekade Feb 1st, 2006

slide-73
SLIDE 73

Thank you!