YAPC::Europe 2011 in Riga

YAPC::Europe 2011 “Modern Perl”

Twitter #ye2011    RSS       Log in

Extending Perl with functional macros

By Rolf Langsdorf (‎LanX‎) from Darmstadt.pm
Date: Monday, 15 August 2011 16:10
Duration: 40 minutes
Target audience: Intermediate
Language: English
Tags: extension language

You can find more information on the speaker's site:

A multitude of extension were invented for Perl5, using "source
filters" and various "XS" add-ons or even darker magic.

Unfortunately mostly without wide acceptance within the community!

The complexity of Perl's syntax limits most approaches severely, they
- not reliable enough,
- too complex to install, use, maintain ...
- incompatible with established development tools
- too delicate in edge cases, hence limited to narrow use cases

We are trying to analyze the nature of these problems and and will discuss
design principles to avoid them systematically.

In consequence we will show a functional approach to elegantly
provide a wide variety of new idioms, including operators and
control structures, just by using

a) The syntactic sugar of chaining functions with special prototypes
b) A LISP like macro system which expands functions to inlined code.

A working proof of concept is presented, realized in pure Perl, only
by using (and patching) CORE modules like B::Deparse.

The prototype is simple to install, backward compatible to previous
Perl versions and easy to adapt w/o knowledge of any perlguts.

We will demonstrate how to extend Perl5 like this with idioms like

- List Comprehensions,
- Co-Routines and Gather-Take,

Aim of this presentation is to discuss pro and cons of this strategy
within a proficient audience. No C or XS knowledge will be needed to
follow, we'll develop step by step on the basis of core perldocs.


Discussion board: The "Abstract-URL" leads to nabbles.

Talksheets: To be published soon.

Articles covering and extending the subject with full code:

1. $foo-Magazine IV/2010 (German)

2. $foo-Magazine II/2011 (German)

Attended by: