This page was generated by Text::SmartLinks v0.01 at 2014-04-17 08:01:07 GMT.
(syn 4d7ca45)
  [ Index of Synopses ]

TITLE

Synopsis 99: Glossary

AUTHORS

    Elizabeth Mattijsen (liz@dijkmat.nl)
    Moritz Lenz
    Larry Wall

VERSION

    Created: 26 June 2013
    Last Modified: 30 June 2014
    Version: 4

This document tries to define many of the terms used within the Perl 6 community. It does not have an Apocalypse or Exegesis predecessor. It is intended as both a quick introduction to terms used on the #perl6 channel (on freenode), as well as a more permanent, and deeper source of explanations in the context of Perl 6.

If you, as a reader, miss a term in a glossary, just add the term with the explanation. Or if you are not sure what the missing term means, just add a header for the term. Without doubt, someone else more knowledgable will add the explanation later for you and everybody else.

A

ack

An improved version of "grep", written in Perl (beyondgrep.com).

Also used by old folks to indicated acknowledgement.

actions

A class used to generate an "AST" from the results of parsing text with a "grammar".

adverb

See "adverbial pair".

adverbial pair

A generalized form of "pair notation". They all start with the colon, like:

  adverbial pair  | pair notation
  ================|==============
  :foo<bar>       | foo => 'bar'
  :foo(bar)       | foo => bar
  :$foo           | foo => $foo
  :foo            | foo => True
  :!foo           | foo => False

AFAICS

As Far As I Can See.

AFAICT

As Far As I Can Tell.

AFAIK

As Far As I Know.

afk

Away From Keyboard. Logged in, but there's noone looking at the screen.

Any

The class from which most things derive, except for "junction"s.

any()

A junction with "or" semantics.

API

Application Programming Interface. Ideally, someone using your system or library should be able to do so with knowledge only of the API, but not necessarily knowing anything about the internals or implementation.

Apocalypse

A document originally written by "TimToady", in which he processed the initial barrage of RFC's that came out of the Perl community. Now only kept as an historical document for reference. See also "Exegesis" and "Synopsis".

array

AST

Short for Abstract Syntax Tree. Used in many places, including "actions", "PAST", and "QAST".

attribute

Per-object storage slot. Other languages call it "Field", "Member", "Slot" or "Property".

auth

Way of deliberately ambiguously expressing "author" or "authority".

author

authority

autopun

"Are you ignorant or apathetic?" - "I don't know, and I don't care."

B

backlog

That part of a discussion on an "IRC" channel that you've missed. If it is not or no longer available in your IRC client, you can go to sites such as http://irc.perl6.org to see what has been logged for you.

Bailador

Spanish for "dancer", The Bailador module (https://github.com/tadzik/Bailador/) is a port of Perl 5's Dancer web framework (http://perldancer.org/).

biab

Back In A Bit. Only "afk" for a little while.

blast

"Block, Alternatively Statement". Several constructs in Perl 6 expect either a single statement, or a block. Thus, a blast:

    try { dangerous(); functions() };
    #   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^  Block
    try dangerous-function();
    #   ^^^^^^^^^^^^^^^^^^^^          Statement

Particularly cute, because "phaser"s expect blasts.

brb

Be Right Back. Only "afk" for a little while.

BS

Bounded Serialization.

C

caller

The piece of code (or its lexical environment) that called a given piece of code. Generally only known at run time.

CALLER::

A pseudo scope to access variables from the caller's scope.

Camelia

The butterfly-like logo of Perl 6 as can be observed at http://perl6.org.

camelia

The IRC-bot on #perl6 that will evaluate code for you in various version of Perl 5, Perl 6 and NQP.

capture

A regex can record text that are matched by a certain part of the regex. That part (and the matched text) is a capture.

For example

    if '..42' ~~ / \.+ (\d+) / {
        #              ^^^^^ capture
        say $0;
        #   ^^ capture variable
    }

CAS

An atomic Compare And Swap. Primitive for lock-free multi-threaded read/write access.

circularity saw

A pun on "circular saw". When bootstrapping a language in terms of itself, we must rely on circular definitions in various places. Obviously if we were really to use those circular definitions to implement our language, we'll just get stuck in an infinite regress. So instead we grab our trusty "circularity saw" to cut those circular definitions in a spot deep down, hopefully in a way that the resulting splice will be very difficult for the end-user to notice in day-to-day use.

circumfix

If a syntactic construct, for example a pair of parenthesis, surrounds another piece of syntax, that first part is called a circumfix.

    say (2 + 3);
      # ^^^^^^^ circumfix
    say <a b c>;
      # ^^^^^^^ circumfix

class

See http://en.wikipedia.org/wiki/Class_%28computer_programming%29

clog

To "backlog".

Etymology: There is a website irclog.perlgeek.de providing either IRC logs or IR clogs, depending on how you interpret the domain name.

CLR

Common Language Runtime, as used by Niecza/mono/.NET.

compilation unit

compile time

compunit

See "compilation unit".

concurrency

CPAN

Comprehensive Perl Archive Network. Content delivery system for Perl distributions.

credentials

D

dalek

An "IRC" bot that reports when various projects have been updated. It gives "karma" to those who pushed the changes to the project.

dead code

Code that is never called. For example

    sub f() {
        say 42;
        return;
        # everything below this is dead code,
        # because the return; above prevents it from running
        say 23;
    }

debugger

A piece of software that helps you to track down errors in your software. It typically allows things like stepping through code, setting breakpoints and inspecting variables.

dev

Either a developer (person), or a development version of a program, or a branch for development in a repository.

dies_ok

A Test function that succeeds when its argument, a Code object, dies at run time. See S24.

DIHWIDT

Doctor, It Hurts When I Do This. Well, stop doing it then.

dispatcher

The piece of code in the runtime that determines which (multi) method or subroutine to invoke.

distribution

A collection of 1 or more "compunit"s for installing locally, or for loading from a remote location.

dynamic

E

eager

One of the opposites of "lazy".

ecosystem

edsel

Something that intends to please everyone by catering for everybody's taste, yet in the end pleasing nobody, because nobody is catered for enough.

EPIC FAIL

EVAL

Exegesis

A document originally written by "TheDamian", in which he tried to explain the "Apocalypse"s to the common (wo)man. Now only kept as an historical document for reference. See also "Synopsis".

export

EXPORT::

F

FAIL

fork

The creation of another process in Perl 6.

Also, a feature of "github" that copies a repository from one user to another, to allow users to make changes to a repository without needing permissions on the original project. After a user makes changes they will likely submit a "pull request".

fossil

Something in a generally current document that is no longer true but which has not yet been fixed by correcting or removing it.

ftfy

Fixed That For You.

fudge

Way to temporarily mark tests in the "spectest" for a specific Perl 6 version as todo (so that a failure of the test will be marked ok, and a pass will be marked as an exception), or as skip if they cause a "compile-time" or "runtime" exception.

G

gimme

gist

git

The distributed source revision system used by many, if not all Perl 6 projects.

git submodule

github

Online open source repository hoster using "git".

GLOBAL::

good *

Good morning/afternoon/evening. Since the contributors are in many different timezones, one contributor's morning is another contributor's evening.

grammar

A feature of Perl 6 that uses "regex"es to implement a grammar for parsing text. Perl 6 implementations use grammars themselves to parse the language. The results of parsing with a grammar can be further passed on to "actions".

green threads

Threads that are scheduled by the virtual machine, not by the operating system.

H

hash

A data type, conveniently available in variables starting with the percent sign % and provided by type Hash.

HN

Hacker news as seen on https://news.ycombinator.com.

HN'ed

Being mentioned on Hacker news (https://news.ycombinator.com).

HPMoR

Harry Potter and the Methods of Rationality. An inexplicably good Harry Potter fanfic with far more significance than the word "fanfic" might lead you to believe. See http://hpmor.com.

hyper

Process data asynchronously when possible, but return the result data in the order it would have been if the source data had been processed in a single thread/process.

I

IC

I see.

IIRC

If I Remember Correctly.

IIUC

If I Understand Correctly.

import

infix

An operator that can appear between two terms.

inline

install

installer

Int

A built-in arbitrary-sized integer type. See http://doc.perl6.org/type/Int.

int

interface

invocant

IRC

Internet Relay Chat. Perl 6 developers and users usually hang out on the #perl6 channel on irc.freenode.org. See also http://perl6.org/community/irc.

ISTR

I Seem To Remember.

item

J

jakudo

"Rakudo" running on the "JVM".

JAST

Intermediate representation of code used in the JVM backend of Rakudo and NQP.

junction

A compound type that is transparent to many operations. See http://doc.perl6.org/type/Junction.

JVM

Java Virtual Machine.

K

karma

KISS

Keep It Simple, Stupid!

L

lazy

The property of a list not to evaluate elements until they are needed.

lexical

Lexical properties are derived from the structure of the source code itself, not from any information from run time.

lexical pad

A data structure that holds the values of lexical variables.

lexotic

A dynamic operation with a lexically scoped target. For example, return has a dynamic effect (it peels back the call stack), but the thing it's returning from is a lexically defined routine.

LHF

Low Hanging Fruit.

lmddgtfy

Let Me DuckDuckGo That For You. http://lmddgtfy.net

LMGTFY

Let Me Google That For You. http://lmgtfy.com/

LTA

Less Than Awesome. #xa*~`ñ|Error -37: Operation not completedEgP&*1EW…

LTM

Longest Token Matching. See "Longest Token Matching" in S05.

M

match

metamodel

method

MMD

See "multi-method dispatch".

MoarVM

A virtual machine designed specifically for "NQP" and its "MOP": "6model".

module

MOP

Meta-Object Protocol.

MRO

Method Resolution Order

Mu

The mystical class from which all other classes are derived (無).

multi

multi method

multi sub

multi-method dispatch

mumble

Placeholder; Something that's left unclear deliberately. Either because the speaker doesn't know or because it's an unimportant detail.

my

MY::

N

named parameter

namespace

need

NFG

Proposed Unicode normilization form for Perl6, in which composed characters always get their own codepoint. If a codepoint doesn't exist for that composed character, one is assigned dynamically.

Documentation for this can hypothetically be found in S15.

Niecza

An implementation of Perl 6 targeting the .NET platform.

nom

The name of the main branch of current "Rakudo" in "git". Originally named so for its "new object model".

null-PMC access

Num

number

NQP

Short for Not Quite Perl, a subset of Perl 6 suitable for tasks such as implementing "Rakudo". Targets "Parrot" and the "JVM", with work underway on targeting "MoarVM".

O

our

OUR::

OUTER::

P

package

pad

See "lexical pad".

Pair

The simplest object containing a key and value pair.

pair notation

Way of expressing key/value pairs, using the "fat comma", creating a "Pair" object, for instance:

  foo => 1

Panda

A Perl 6 program designed to make it easier to install "module"s.

panda bootstrap script

parakudo

"Rakudo" running on "Parrot".

parrakudo

See "parakudo".

Parrot

A virtual machine designed to run Perl 6 and other dynamic languages.

parse

PAST

Parrot "AST".

PAUSE

Perl Authors Upload SErvice. The place where author upload their distributions to CPAN.

pb

Short for "problem". As in "that's not the pb".

PDD

Parrot Design Document. Numbered documents detailing various parts of the design of Parrot.

Could also be used to refer to "Presentation-Driven Development", the practice of implementing a feature after having submitted a presentation about said feature.

Perlito

A compiler project that has frontends for Perl 5 and Perl 6, and multiple backends.

phaser

A piece of code (a "blast") that runs at a particular phase in the program's lifecycle, for example during compilation (BEGIN), the first time a loop is entered (FIRST), or after al regular code has run (END).

PIR

Parrot Intermediate Representation.

PMC

Parrot Magic Cookie.

pod

Plain Ol' Documentation, a documentation format understood by Perl 6. See "S26" for details.

pod6

Used to specify Perl 6's version of "pod", as opposed to Perl 5's.

Positional

positional parameter

postcircumfix

postfix

An operator that comes after the term it belongs to.

precedence

The order in which operators bind terms together; tighter precedence evaluates before looser precedence. See "Operator precedence" in S03 for details.

prefix

An operator that comes before the term it belongs to, for example

    say ?42;    # True
    #   ^ prefix operator

private

PROCESS::

producer

proto

PSGI

pull request

A feature of "github" that's used after a user has "fork"ed a project and made changes to it that they wish to have in the main project.

pugs

A Perl 6 implemetation in Haskell, led by the efforts of Audrey Tang. The first truly usable Perl 6 implementation, it was actively developed 2005 through 2007. Currently on life support.

p5

Short for Perl 5, the (older brother|parent) of Perl 6.

p6

Short for Perl 6, the (spunky little sister|child) of Perl 5.

Q

QAST

Successor to PAST.

R

race

Process data asynchronously when possible, and don't care in which order the result data is returned.

Rakudo

An implementation of Perl 6 originally targeting "Parrot", it now targets Parrot, the "JVM", and (soon) "MoarVM" through "NQP".

Rakudo *

Rakudo Star, a useful and supposedly monthly distribution of Rakudo which includes modules and "Panda".

rakudobug

A bug in "rakudo". Usually used in contexts such as "/me submits rakudobug".

regex

Short for Regular Expressions, an easy way of parsing text for certain kinds of information.

regexp

An alternative abbreviation of "regex" that usually occurs in non-Perl 6 contexts.

reification

reify

REPL

Read Eval Print Loop. Read a line of code, evaluate, print, wait for new line of code.

repository

require

revert

roast

The Perl 6 specification tests, which live here: https://github.com/perl6/roast/ Originally developed for "pugs", it now serves all Perl 6 implementations. Why roast? It's the repository of all spec tests.

role

RPA

Resizable "PMC" Array.

RT

Request Tracker (http://rt.perl.org/). To open a ticket, email rakudobug@perl.org.

runtime

S

sanity test

A test for a basic feature that robs your sanity if it doesn't work, and the fact that it doesn't work goes unnoticed.

scalar

segfault

See "segmentation fault".

segmentation fault

Something that should never, ever happen. Complain on #perl6 if you see one.

serialization

setting

sigil

In Perl, the sigil is the first character of a variable name. It must be either $, @, %, or & respectively for a scalar, array, hash, or code variable. See also twigil.

sink context

sixplanet

slurpy

slushy

A specification that has frozen chunks in it, but remains frustratingly fluid. Ranges from S02 and S03 which are nearly frozen, to S16 which is more like a glass of ice water.

spectest

spesh

A functionality of the MoarVM platform that uses run-time gathered data to improve commonly used pieces of bytecode. It is much like a JIT Compiler, except that those usually output machine code rather than bytecode.

star

See "Rakudo *".

STM

Software Transactional Memory

Str

sub

subroutine

Synopsis

The current definition of the Perl 6 language. Still in development. Much more a community effort than the "Apocalypse"s and /Exegesis were.

T

TheDamian

"IRC" screen name for Damian Conway, writer of the original /Exegesis.

thinko

A thinkographical error; i.e. a small mistake made by improperly expecting code to "DWIM" or from an interrupted thought process.

thread

thunk

A piece of code that isn't immediately executed, but doesn't have an independent scope.

Examples for thunks:

    my $a;
    $a = 1 if 1;
 #  ^^^^^^ thunk
    class MyClass {
        has $.attr = 42 + 23;
        #            ^^^^^^^ thunk
        method x($attr = say 42) {
            #            ^^^^^^ thunk
        }
    }
    $a = 1 || say 2;
    #         ^^^^^ thunk

TimToady

"IRC" screen name for Larry Wall, creator of Perl. The name comes from the pronunciation of "TIMTOWTDI" as a word.

TIMTOWTDI

An abbreviation of "There Is More Than One Way To Do It".

token

topic

trait

TTIAR

Two Terms In A Row.

TMTOWTDI

An alternative form of "TIMTOWTDI". It occurs when the user replaces "There Is" with "There's" (removing the I that goes in the other abbreviation).

tpyo

Typo.

tuit

The mystical unit of effort in the open source community. Sometimes materialized in wooden nickels.

twigil

U

ufo

unit

See "compilation unit".

UNIT::

unslushing

V

ver

Short way to indicate "version".

version

VM

Virtual Machine. Such as "Parrot", "JVM" and "MoarVM".

v5

Stands for "Perl, version 5" and is used in code to indicate that the code is Perl 5:

    use v5;

v6

Stands for "Perl, version 6" and is used in code to indicate that the code is written in Perl 6:

    use v6;

W

warnocked

This lemma will never be explained.

WAT

https://www.destroyallsoftware.com/talks/wat.

wfm

Works For Me.

whatever

whitespace

ww

Short for wrong window. When on IRC, someone types something in a channel that was intended for another channel, or for a private message.

X

XY Problem

Sometimes people want to achieve X, and think Y is the best way to do it. So they ask "How do I do Y?", but doing Y is actually harder or less idiomatic than solving X some other way. So the person asking how to do Y has an XY problem.

Y

yoleaux

The IRC-bot on #perl6 that is your personal assistant.

Z

*

Oh, um... "whatever".

.

..

...

:

Everybody wants the colon.

?

*

Oh, um... "whatever".

@_

Something you should stop using, and just use subroutine signatures instead.

$_

%_

++

Way to increase "karma" on IRC.

&

Sigil for executable code. Also used at the end of a line of an "IRC" message to indicate the user is away, doing something else in the background. For instance:

  sleep&

6model

The "new object model"/"MOP" that's currently in rakudo.

POD ERRORS

Hey! The above document had some coding errors, which are explained below:

Around line 839:

Non-ASCII character seen before =encoding in '#xa*~`ñ|Error'. Assuming UTF-8

Around line 1439:

alternative text '/Exegesis' contains non-escaped | or /

Around line 1450:

alternative text '/Exegesis' contains non-escaped | or /

[ Top ]   [ Index of Synopses ]