I spent some time getting a decent cross compiler toolchain for
arm-linux-gnueabi running on Mac OS X, including GNU binutils 2.22, gcc 4.6.2 and OCaml 3.12.1. The cross compiler toolchain targets ARM boards running Debian/armel squeeze or later.
I decided that it was about time to get used to OASIS, that new all-in-one build system generator for OCaml projects. So I started by getting it up and running using various local MacPorts. Once everything was up and running, I started to switch my implementation of Red-Black Trees for OCaml to use OASIS instead of my custom
Makefile-based approach. That went amazingly well, and so here’s my first release, version 0.1.0, of
ocaml-rbtrees featuring an OASIS-generated build system.
This paper presents the current state of our work on an interactive toplevel for the OCaml language based on the optimizing native code compiler and runtime. Our native toplevel is up to 100 times faster than the default OCaml toplevel, which is based on the byte code compiler and interpreter. It uses Just-In-Time techniques to compile toplevel phrases to native code at runtime, and currently works with various Unix-like systems running on x86 or x86-64 processors.
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