After several additional hours of testing and bugfixing it was time for another test release of our new OCaml native code toplevel
ocamlnat. The test release includes a fully featured OCaml 3.12.1 distribution plus our new toplevel ocamlnat, which is up to 100 times faster than the byte code toplevel. See the website for installation instructions and additional information.
Now that we have working versions of our new native OCaml toplevel
ocamlnat without toolchain dependencies for both
amd64, I decided to run a few benchmarks, comparing our ocamlnat to OCaml 3.12.1 (both the byte code toplevel and the ocamlnat that silently ships with 3.12.1) and to our byte-code just-in-time compiler OCamlJIT2.
I decided to update the website design again. Text should be easier to read now, and the new design feels lighter and less cluttered.
Imagine you want to connect via SSH to remote systems
hostC on an intranet behind
hostA. This could be achieved easily using port forwarding via
hostA, just pick two arbitrary ports on the local machine and forward them to ports 22 of
hostC. This works very well for a small amount of intranet hosts, but it get’s quite messy as the list of hosts grows. After some time you’ll have a rather huge amount of local ports to remember (or to lookup in your port forwarding script several times a day). It’d certainly be easier to just type
ssh hostB and have the tunnel setup automatically.
During the last two days I managed to setup a GitHub mirror of OCaml. It works by importing the changes from the official OCaml Subversion Repository using
git-svn and pushing them to the GitHub mirror. This is done automatically every hour by one of my servers. It works by setting up a Git branch for every
version Subversion branch and a Git branch with a
tags/ prefix for every
tags Subversion branch. Also note that the master branch is called
Next monthly meeting of the CocoaHeads Siegen scheduled for September, 13th 2011 at 19:00, feat: “iOS 5 - New and Noteworthy” (Benjamin Mies). Third meeting already and this time we also have a nice flyer!
I received several complaints about random crashes lately. The complaints of course did not mention any specific version of iOS nor any other useful details. So I had to digg into it myself. As it turned out the crashes were due to the use of
DISPATCH_QUEUE_PRIORITY_BACKGROUND, which is not only unavailable with iOS 4.2.1 (and earlier), but also causes
dispatch_async to crash - which is rather bad IMHO, a fallback to
DISPATCH_QUEUE_PRIORITY_LOW would be better from both the user’s and the developer’s POV.