Skip to content

Releases: perl11/potion

0.3.1264

17 Oct 08:59
Compare
Choose a tag to compare

Highlights

Fast unsafe arrays
Fixed comparison and equalness esp. for numbers.
Added a couple of new methods, fixed segfaults on empty methods.

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.

The source should build on most newer GNU systems and OS, or cross-compile it.

Limitations

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).

Changes

  • Added new syntax tuple[index] for fast, unsafe array access,
    also for table with a string literal: table["key"]
  • Fixed comparison and equalness esp. for numbers. Check now also double
    values, before only int. All values are now compared strictly, numeric types
    are not promoted to match. i.e 0 != 0.0
    The jit now requires at least a x86 with sse2 (Pentium 4).
  • Changed the name Decimal in the API to Double
  • Promote integer to double on arithmetic overflow (gcc-5, clang-3.6 or a
    single jo insn in the jit)
  • Added seperate Double and Integer vtables, which are both of kind Number.
    Added specialized methods.
  • Added isa? and subclass? methods, re-enabled test/classes/creature.pn
  • string: improve performance of at and ord
  • Added more examples
  • Updated libuv from 0.11.23 to 1.0.0
  • New syntax error: Call empty message
  • Fixed size method for objects and primitives
  • Added parent and methods methods to the Lobby (Peter Arthur)

0.2.1153

11 Sep 16:59
Compare
Choose a tag to compare

Highlights

Stabilized the GC, jit and build system.
Added some experimental new features, even if very rudimentary yet (ffi, debugger, types).
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.

The source should build on most newer GNU systems and OS, or cross-compile it.

Limitations

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).

Changes

  • print and say methods return "" instead of nil.
  • Added methods for table: clone, slice, keys, values.
    For tuple: slice. For bytes and string: clone.
  • Added support for negative arguments for string.slice
  • Changed API's for potion_type_error_want
  • Updated libuv from 0.11.14 to 0.11.23
  • Fixed uv_buf_t handling in aio
  • Added SANDBOX support: make SANDBOX=1
    omit access to local filesystem, processes, loading shared libraries
    -L, and external compilers. bin/potion-s includes all modules statically.
    See INSTALL.md
  • Added rudimentary src debugger with -d (unfinished, c-version only)
  • parse extern functions, but args are not yet translated (unfinished)
  • Added typed function calls with compile-time binding (experimental)
  • Fixed GC stability issues

0.1.1061

16 Oct 18:31
Compare
Choose a tag to compare

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.

Limitations

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