Potion (programming language)
||This article may be too technical for most readers to understand. (September 2013)|
|Paradigm(s)||Functional, stack-oriented, message passing|
|Designed by||Why the lucky stiff|
|Stable release||v0.1.1061 / Oct 16, 2013|
|Influenced by||Io, Ruby, Ocaml, Lua, REBOL, Smalltalk and C|
|OS||Linux, BSD, Darwin, Windows|
potion is a tiny, fast dynamic, stack-oriented computer programming language with a JIT compiler, closures, continuations and exceptions, a Lua-based VM and an Io-based object model built around message passing, a MOP and mixins. It is technically a lexical-only Lisp-1 with two languages: one for code, one for data and it is written in under 10K lines of C.
After _why's disappearance, a developer named Fogus took over maintenance until 2013.
In 2013 a group calling itself perl11 "(5+6=11)" with Reini Urban as lead developer took over potion development  to be used as Virtual Machine for "p2", a planned implementation for Perl5 and Perl6. Both languages, potion and p2 are now developed together by perl11 developers. v0.1 was released on Oct 16th, 2013 on the perl11 github account.
"If you keep it small, fit the VM and the parser and the stdlib all into 10k lines, then it's no sweat." 
fib = (n): if (n < 2): n. else: fib (n - 1) + fib (n - 2). . n = argv(1) number if (n<1): n=28. ("fib(",n,")= ", fib(n)) join say # parrot example/fib.pir 40 3m36.447s # perl example/fib.pl 40 2m19.752s # potion example/fib.pn 40 0m3.512s
- pure object-oriented based on prototypes
- callcc/yield based exception handling in unportable assembler
- Perl-like regular expressions (planned)
- compacting inprecise garbage collecting supporting weak links
- DLL/shared library dynamic loading on most platforms
- introspection, reflection and metaprogramming
- Actor-based concurrency
- fast asynchronouos IO
- small virtual machine
- higher-order functions
- Lowrey, Annie (15 March 2012). "Where’s _why? What happened when one of the world’s most unusual, and beloved, computer programmers disappeared". Slate. Retrieved 15 March 2012.
- fogus (11 August 2013). "_why’s Potion — a new home". Retrieved 21 August 2013.
- Urban, Reini (4 June 2013). "Design Decisions on p2". Retrieved 15 September 2013.
- _why (22 December 2008). "README". Retrieved 15 September 2013.