Charles Childers


blog | parable | retro | ios apps | fountain pens


Parable 2016.03: Revising Punga

Parable includes a web-based interface called Punga. This has been a pretty minimal environment up to this point. It provided an editor, and a view of the stack.

I'm working on revising this and trying to make Punga more useful.

The original has suffered from a few issues:

I've rectified the first problem by using a precompiled snapshot of the Parable stdlib. This provides the full environment without needing to be compiled on startup, freeing up a couple of additional seconds of runtime and reducing server load. It also opens the possibility of incremental evaluations.

The layout issues were a bigger headache. In the previous incarnations the layout, css, etc were all embedded into the Python source. This worked, but didn't allow a good separation of code and presentation. I really needed to fix this and today I have finished: the majority of the HTML (all of the static parts) are now separated into a separate template.

The template currently has hooks for:

I'm generating tables for the stack, dictionary, and errors.

The stack results will be getting more detailed soon. It currently has the formatted values, slice numbers for strings and remarks, and stack item numbers. I'll be adding indicators for the TOS, and also showing raw values and type numbers for unrecognized items.

The error log is very minimal at present. Soon it'll be getting some small tweaks, but there's not a lot to do with this currently.

The dictionary is a new addition. It's intended to be a helpful resource, providing the name, slice, stack comment, and descriptive comment for each word. There are some things that can be done here: filtering, clicking on a name to append it to the editor, supporting drilling down into vocabularies.

It's finally at a state where I can add new functionality without the old headaches. I may not add a lot more in this release, but it's finally a viable target that I can make increasingly usable into the future.

For some future direction and ideas: