@rurban rurban released this Oct 16, 2013 · 241 commits to master since this release

potion from 2013-10-10 12 44 44

potion was created in 2009 by why the lucky stiff, but was never formally released.
We, perl11, took over maintenance recently, because potion was choosen as vm
for a new perl called p2.
See http://perl11.org/potion/ for an overview of this new exciting little language.

Binary packages

For linux we provide 32 and 64bit packages, including a -devel package.
For darwin only a intel 64bit package, 32bit is broken.
For windows only a 32bit zip, without devel.

win64 is not yet supported.


potion is highly unstable, not production ready and misses some features
like an ffi, debugger, external compilers, database or ui libraries and native threading.
The parser is not yet GC -safe (so avoid memory hogging eval),
and the build system (parallel make), GC and jit are still a bit unstable.

New features

i.e. previously not documented

  • Mixins, a syntax for blending methods into classes.
  • MOP, changing metaclasses, the behavior of classes.
  • Coroutines, a technique for inprocess threading.
  • Continuations, for saving and resuming the stack, here and yield.
  • Exceptions for graceful error handling.
  • readline module and repl if called without file or script.

This is really new, since 2013:

  • Asynchronous non-blocking IO in the aio module via libuv. So like node, but potion is a bit faster then node.
  • Buffered stream FILE* IO in the buffile module.
  • Optional and default signature arguments.
  • argv
  • -e for cmdline scripts and various -D? debug output methods
  • more examples and documentation
  • fixed various jit-x86 limitations on max number of stack variables, eg. max 15 on amd64
  • fixed GC errors when running out of memory

Plans for 0.2

  • ffi (extern sub definition and extern block)
  • debugger and more introspection
  • gc-safe parser (eval)

Thanks to all developers and testers! Have fun