Apologue Update: 08.15.2014

I have a few minor updates on Apologue. The first version is basically complete. I'm happy with the overall UI layout, have it working smoothly for my purposes, and have some nice language tweaks that can be toggled as desired. The only thing still lagging behind is documentation. I'm continuing to write this, but it's slow going. I have a little time off this weekend, so I will try to finish up this over the weekend.

There have been a couple of minor adjustments to the interface. The only one of significance is that the stack display now uses background colors to indicate types. I find that this makes it easier for me to quickly group and locate specific groups of results in the output.

Retro 11.6.1 has been released

I've pushed out Retro 11.6.1, a minor update featuring a couple of patches from Marc Simpson. This release does not make any changes to the retroImage. It does fix a bug in the ANS Forth implementation of Ngaro and adds support for treating doc{ }doc pairings as comments under vim.

There will be an 11.6.2 release with a few more changes in the next few weeks. I'm still going through the dissect' vocabulary and autopsy trying to decide on the best means of fixing problems that have been mentioned to me.

Delays in Retro 11.6.1

Delays are always annoying, especially when they are unexpected.

While working on the 11.6.1 release, Marc pointed out a couple of bugs that affect the Autopsy debugger. I'm working to fix these before I finish the 11.6.1 update. If I can't finish them soon, I may still push out 11.6.1 with release notes covering the bug, and then an 11.6.2 once I decide how to proceed with fixing it. 

Numbers without Prefixes in Parable

The need for a prefix to identify numbers in Parable is sometimes annoying. For my work on Apologue, I wanted to be able to optionally have the system try to handle this on its own. Turns out it's actually a pretty easy filter, assuming that you aren't naming functions something that would otherwise be a valid number.

def is_number(s):
    """return True if s is a number, or False otherwise"""
        return True
    except ValueError:
        return False

def addNumberPrefix(code):
    r = []
    for l in code:
        q = l.split(' ')
        m = ''
        for t in q:
            if is_number(t):
                m = m + ' #' + t
                m = m + ' ' + t
    return r

Read the code into an array, pass it to the addNumberPrefix function, and then iterate over the newly processed array. 

Apologue Update: 8.5.2014

A bit more than two weeks into active work on Apologue, and it's reached a mostly usable state.

At this point the core interface is finished. There's still room for improvement, but I'm happy with the overall layout and functionality now.

On the back end, I've added support for a several nice things not in the existing Parable UI's. First off, it's now possible to use definitions spanning multiple lines (which requires a separate preprocessing step on my other interfaces to Parable). Secondly, it is also now possible to use numbers directly in most cases. Both of these can be enabled or disabled as the user sees fit.

So it's now on to the more annoying bits. There's a lot to be done in documenting things. I have a lot of writing ahead of me... But it'll be worth it in the end I think. 

For the curious, a brief list of changes:

  • improved user interface
  • persistent editor
  • persistent storage of execution results
  • byte code listings
  • settings: multi-line definitions, numbers without prefixes, reduce memory consumption
  • lots of internal cleanups, refactorings

Over the rest of this week I'm going to work on getting an initial set of documentation finished. I have lots of notes and partial starts, so this will hopefully go pretty smoothly. Apart from this and some remaining artwork, Apologue is now fully functional. I'll be using it for most of my work with Parable going forward.

Retro 11.6.1 coming soon

This week I've received a few patches from Marc Simpson which fix a bug in retro.fs (Ngaro in ANS Forth) and add support for treating doc{ }doc as comments in vim.

I'll be pushing a small maintenance update incorporating these (and possibly some other small things) for Retro 11.6 next week. If anyone has patches they want included, please send them to me so I can have time to test and merge them.