# Wombat IDE - A new way

Up until now, the Petite bindings have been built around a threaded model where one thread existed solely to send new commands to the Petite process and another solely to read responses back. Mostly, this would stop the problem with the Java Process model that would cause it to deadlock if the data was not actually being consumed–the reading thread could act as a buffer in this instance.

# Wombat IDE - Busy day for small changes

Bug fixes:

• Issue 138: Automatically create a backup file (with a ~ suffix) on save and an option to disable it. There have been a few issues with Wombat crashing that I haven’t managed to track down, this should help people recover from those. (They’re rare; as in 2 cases reported among over 150 students for several months, so this shouldn’t happen to the majority of users).
• The mnemonic in the recent documents menu has been tweaked to be ascending and 1 based rather than descending and 0 based.
• Fixed an issue where occasionally hitting enter in the REPL wouldn’t run the current code based on incorrect bracket matching.
• list->image and image->list are not properly highlighted as keywords.

# Wombat IDE - A helping hand and image library updates

Two interesting things to talk about this update. First, I have my first code contribution from someone else. I’ve been working with Graham during Peer Tutoring for C212 and when we were busy, we talked about Wombat. He seemed interesting in helping, so he worked out the new about dialog for Wombat. Now it has all of the different libraries and licenses that Wombat uses, along with a nice picture.

Many thanks! (And if anyone else wants to contribute, feel free. It’s always nice to get a different viewpoint on things.)

# Wombat IDE - Assorted bug fixes (λ‎ mode fixed)

A few minor bug fixes first:

• Fixed the cursor jumping to the end of the document on saves. This was being caused by the code that automatically trimmed whitespace, which will still change the file on disk but won’t change the actual open document.
• Apparently, there were some lingering issues with the undo/redo stack sometimes erasing the document. If this happens, you can always undo once more to get passed it, but I think I’ve tracked down why it was happening. If it happens again, please let me know.
• Fixed an error where closing documents through the InfoNode close event wouldn’t actually remove them from memory.

# Wombat IDE - Updated draw-image

After a long while, I’ve actually done some work on the frame displayed with draw-image. Now rather than just showing the basic image, there’s a bit of extra information available.

# Wombat IDE - 64 bit Petite

64-bit Linux and OSX machines will now download a 64-bit version of Petite rather than the previous 32-bit versions that I was downloading for all of the systems. This should mostly help to alleviate problems that some people were having with installing the necessary 32-bit libraries on their systems. Unfortunately, this requires an update to the actual launcher, so anyone that needs the new features will need a new build of the launcher.

# Wombat IDE - λ mode

I’ve fixed the λ-mode that I was talking about earlier, adding a menu option so that all lambdas will automatically be exchanged for λs or vice versa. Behind the scenes, files are always saved with the word lambda (so that the macro in the previous post isn’t actually necessary), but such changes should be completely transparent to the end user. If you want to switch over to the new versions of Wombat, you can get it here.

# Wombat IDE - Scheme/Java Interop

In the last few days I’ve managed to get a version of Scheme/Java interoperability working where Scheme code can call to Java using a side channel alongside the normal communication with the host Wombat process.

# Wombat IDE - Updated tree and image libraries

Continuing the update to the Petite back-end, I’ve rewritten the matrix library and most of the image library (everything except for read-image, write-image, and draw-image). The current code is all in Scheme, although I don’t want to write the image loading/saving code in Scheme otherwise we’ll be back into the original situation with the C211 libraries. The APIs haven’t changed though, so the previous APIs are still valid: