This topic contains 1 reply, has 1 voice, and was last updated by  Eliot Muir 2 years, 4 months ago.

Iguana 5.6.12 Released

  • Iguana 5.6.12 has been released.

    I thought this post would help to complement the formal change log:

    We’ve been doing silent releases for a little bit since in Iguana 5.6.10 and 5.6.11 we did some significant changes to how fossil is used in the deployment of channels.

    Prior to now the fossil check out process would happen every time a channel was started. This is has been improved so that the check out process happens:

    1. When you save a milestone (assuming that you have the channel configured to use the latest milestone.
    2. Or if you change the configured milestone of a translator instance.

    We also went through and greatly optimized how the Iguana GUI was calling fossil so that it does a lot less calls to fossil that it did previously.

    The impact of this will be very significant if you are running more than 50 translator instances – it makes for a big improvement in the responsiveness of the dashboard and other parts of the GUI.

    Some other significant changes…

    json.serialize can now deal with userdata or ‘node trees’ without needing to convert them into strings. How it works is very similar to the json module that I wrote earlier this year:

    Only it’s built into Iguana so it should ‘just work’.

    There is a bug fix to the exporting of log data which has be a bit of pain to a number of people:

    Another significant change is 5.6.12 is that we gave up trying to use Lua JIT 2.0 on 64 bit linux. We have had trouble with this version of Lua on 64 bit Linux and when Chris from Prognosis noticed the issue with the incompatibility of this version of Lua with standard Lua:

    We have been using on Windows we decided to use standard Lua on 64 bit Linux also. We’ve already had a report from one 64 bit Linux user that this change broke their code because they were using the ‘goto’ statement. We’ll monitor what is happening. Generally speaking I wouldn’t encourage using a feature like ‘goto’. It’s surprising that it was added to the Lua language.

    Openssl has been updated again – seem to be new security patches required every month now.

    Now a really cool improvement to Iguana is the log API has been improved. You can specify two new parameters, firstly a parameter to specify the limit of log entries coming back:


    And secondly a ‘reverse’ parameter which you can set to true which will reverse the chronological order that log entries come back.

    The motivation for all this came from a couple of conversations I had with people at our user conference who been using a filter I wrote for removing duplicate messages. The implementation of that filter did a query against the log every time it got a new message.

    I got Jon on our team to write a better one that had a more efficient algorithm. What it does is keep a linked list of the last N messages – but not in their raw format. Instead it calculates the MD5 hash of each message – new messages are hashed to compared against the existing known set of messages. The script then adds their hash with a FIFO (first in, first out) rotation.

    Making it possible to write such a script pushed the boundaries in a couple of areas. Firstly we had to improve the log API to make it possible to query the last N messages that have gone through a channel. Hence the improvements to that API. We also found some issues with dialogs that have deeply nested tables (which is how a linked list is done in Lua). So we had to resolve those. So what was meant to be a 2 day script ended up requiring deeper engineering than anticipated. Anyway we’ve finally got the version of Iguana out which can support this script now so I will work with Jon today to get that duplicate filter into our Iguana community repository.

    For a more formal summary of the changes, see:

    There are a couple of bug fixes that I haven’t covered.

    Here’s the link to the duplicate script:

You must be logged in to reply to this topic.