2 min read

ULC New beta almost ready, fixes broken update system & broken features

Thank you all for your interest in this beta. The initial release had 800 downloads, before people started sending me mails about problems that arose while using it. Remember, this is still a beta, and the reason I am releasing it as a beta before uploading to the Mac App Store is because I knew that due to the complexity of UNIX calls that produce large amounts of output bytes on OS X, and due to NSFileHandle parsing and changing library headers with plain C calls (as it happens now on Unilib), I would end up having problems.

It seems there were some problems with the original release, as I hadn’t taken into account the different processor architectures for each one using OS X. For starters, allow me to say that I’m sorry for any problems that you may have encountered, but, hey… That’s why the word ‘beta’ exists, and that’s why I mentioned earlier that there will certainly be problems with this release. The new beta, fixes many problems, and will also fix the broken update system, so you will have to download it again from this server in order to properly update it using the auto-update feature in the future.

Here is some explanation about the problems that appeared in the initial release:

Unilib relies heavily into instructing the underlying UNIX system to perform some tasks. Apple provides developers with some realy handy classes in order for them to make calls to UNIX. However, there are limitations that are not apparent to the user at first, and it seems Apple’s documentation on the matter is pretty vague concerning calls to UNIX and asynchronous threads.

So, when the initial beta came out, I was very upset when I found out that Apple’s APIs had a limit of 4096 bytes of output, which means that you cannot use them as-is in the case of really big libraries.

I now redesigned the underlying infrastructure of the application so that it makes calls to essential system APIs asynchronously, in a background thread, and procedurarly cleaning out any buffers while doing so, so that I don’t end up having overflows all over the place.

I am testing the newest beta now, and it seems to handle pretty well static libraries that are over 20mbytes long. I will continue testing, and I hope I release the newest beta tomorrow.