## Parable Progress Report, Mid-February

Since last month's initial release of Parable many things have been changed. Here's a quick overview:

Added:

* lookup-name
* invoke<preserving>
* round
* redefine
* stack-values
* abort
* abort<with-error>
* number?
* character?
* string?
* bytecode?
* remark?
* funcall?
* flag?
* pointer?

New Prefixes:

* @
* !

Renamed:

   COMMENT          ->  REMARK
   :comment         ->  :r
   :call            ->  :x
   FUNCTION-CALL.   ->  FUNCALL
   *Current-Buffer  ->  CurrentBuffer
   *Buffer-Offset   ->  BufferOffset
   *TOB             ->  TOB
   *Hash-Prime.     ->  HashPrime

Removed:

* value
* values
* value!
* value-handler
* to
* @
* !
* if-number
* if-character
* if-string
* if-flag
* if-pointer

Fixed:

* The GC no longer reclaims hidden functions
* String interpolation no longer injects extra spaces when the source list is smaller than the number of insertion points
* Joining a string now works properly
* Character parsing ($ prefix) now works properly
* Lots of typos in the documentation
* Empty strings now have a length of zero as expected
* Redefining a variable with an initial value now works properly

Other:

* Full support for Python3 (both CPython and PyPy3)
* Improved reentrancy for functions using variables in the standard library
* Parable is now case sensitive
* Rewrote nip, tuck, over, reset in Parable and removed the old byte codes
* apropos now returns a string with the stack comment as well as the closing comment (if it exists)

Interfaces:

* Added PaaS (Parable-as-a-Service) backend and example code
* Removed *ika*
* Added *Allegory*, a replacement for *ika* which also has an interactive mode based on *Listener*
* *Legend* no longer crashes when including files
* Readline support added to *Legend*, *Listener*, and *Allegory*
* Interfaces now support CTRL+C for aborting long running execution and exiting the interactive interpreters
* Removed the obsolete *Apologue* backends
* Fixed *Punga* to work with the latest sources
* *Listener* now aligns multiline input with the input prompt
* *Listener*, *Legend*, *Apologue*, and *Pre* all load a **~/.parable** file before processing input (if it exists)

### Future Projects

I have a few things to do before the 2016.2 release:

* Remove *pre* (it's redundant due to *allegory*)
* Adapt *allegory* to work under Pythonista without changes