[Openmcl-devel] trunk unstable. Linux ARM port identified as culprit.

Gary Byers gb at clozure.com
Thu Aug 5 21:45:53 UTC 2010

On Wed, 4 Aug 2010, Gary Byers wrote:

> I need to merge some changes that I've been working on in a branch into the 
> svn
> trunk.  That process should take anywhere from several hours to a few days, 
> and
> until it's finished the trunk sources may not build properly on some or all
> platforms.
> I'll sound the all-clear (and write up a description of those changes) when 
> the
> dust settles.

The dust seems to have finally settled.  I merged my changes into the trunk
and built new binaries for all platforms and checked those binaries into
svn, then kicked up a little more dust.  Most of the most recent changes
(after I built the binaries) have to do with how some things are defined
in the lisp kernel sources and I don't think that any changes that I
introduced affect anything user-visible; the binaries are there because
the binaries in the trunk were getting a little long in the tooth (and
to address an issue described in ticket 709.)

As people who look at the "timeline" in the CCL Trac page have probably
noticed, CCL now runs on the ARM under Linux.  It's the nature of the
ARM (and to some extent the nature of ARM Linux) that that has to be
qualified a bit:

  - it's intended that CCL run on ARM architecture variants "ARMv6t2"
    and later; the port depends on some features present in variants
    that support the "Thumb 2" instruction set (the "t2" in ARMv6t2),
    though we use ARM instructions and don't currently use Thumb 2.

    There are certainly interesting machines out there that use older/
    other architecture variants (see <http://www.plugcomputer.org>, for
    example.)   It might be possible to support those machines in the
    future if there's interest and I'd sort of intended to until fairly
    recently; it eventually became clear that the newer machines could
    be better supported by better exploiting the newer features that they

  - it's intended to run under an ARM Linux distribution that runs in
    little-endian mode ("armel"), supports the "embedded ABI" ("eabi",
    sometimes "gnueabi") and "soft-float" FP conventions (where C
    functions pass floating-point arguments and return floating-point
    results in general-purpose registers.)

It's actually only been run on a few FreeScale i.MX515 machines running
Ubuntu 9.04,9.10, and 10.04;  I was able to get the kernel to run on a
Nokia N900 (which is a TI Omap3 running some flavor of Debian).   It'd
be good to know if it runs on other "similar" hardware/Linux releases.
I'm fairly sure that some tweaking (memory barrier instructions in
strategic places) will be required to get it to run reliably on multi
core machines (I have such a machine on order.)

The code and ARM binaries are in the trunk and can be checked out via:

svn co http://svn.clozure.com/publicsvn/openmcl/trunk/linuxarm/ccl

This is basically just a desktop CCL image (not too different in size
or functionality from what CCL looks like on other platforms.)  It
passes CCL's test suite (a modified version of GCL's) and can build
itself; there are a small number of relatively obscure functions (4, IIRC)
that aren't yet implemented (and therefore ~4 warnings near the end of
REBUILD-CCL.)  There are almost certainly bugs (possibly bad ones) and
there's certainly a lot of tuning and tweaking to be done to fit better
into resource-constrained environments (that aren't that different from
the environments that many of us used daily not too long ago), but what's
there works and seems usable.

This isn't "CCL on Android" or "CCL on iOS", but it addresses many of
the technical issues involved in getting to those points.  (Especially
in the case of iOS, there are non-technical issues as well, of course.)

If you're interested in this and are wondering where to get a Linux ARM
box ... well, depending on which rumor sites you look at, the market
may get flooded with cheap Linux-based ARM netbooks/smartbooks any day now.
(That was supposed to have happened by now, and other rumor sites offer
other rumors.)  The Efika MX smarttop (about the size of a paperback book,
see <https://www.genesi-usa.com/products> is available now; the smartbook
shown on that page is supposed to be released this month.)

More information about the Openmcl-devel mailing list