[Openmcl-devel] CCL on Solaris sparc architecture

Gary Byers gb at clozure.com
Wed Jan 20 20:03:56 PST 2010

On Thu, 21 Jan 2010, Semih Cemiloglu wrote:

> Dear CCL Developers,
> I am in need of a CL implementation for our product/project which is
> aimed at Solaris sparc and x86 platforms.
> I see that CCL is available on OpenSolaris/x86 but not on sparc
> platforms.
> Is it possible to get an idea of work involved to port CCL to sparc
> architecture? Is it necessary to write assembly code to complete the
> port? Is internals of CCL and/or building from source documented? If
> yes, where can one access the documentation?


describes how to rebuild CCL from its source code; this is also discussed
in the documentation, which is available online at:

<http://ccl.clozure.com/ccl-documentation.html> ; single HTML page

and at

<http://ccl.clozure.com/manual/> ; one page per chapter

The single page version is distributed with CCL.

Much of CCL is written in itself, which means that "compiling it from
source" is only relevant if you have a compiler that targets the
platform that you're compiling on/for.  Getting to that point
generally involves writing a compiler backend and machine-specific
runtime support for the target, using that compiler backend to
cross-compile the sources (into FASL files and a bootstrapping image)
for the new target and getting that cross-compiled code working
natively.  Matt Emerson (rme at clozure.com) wrote a wiki page with his
notes on the cross-compilation/ bootstrapping process that he used
when working on the ia32 port; I don't know the URL for that page
offhand, but I'm sure that we can find it (somehow) if anyone's

About 10 years ago, I did a port of (a very early version of) what's
now CCL to 32-bit SPARC/Solaris; that took around 2 months to get to
the point where the system could compile itself natively.  I remember
knowing of some things that didn't work at all and I'm sure that there
were some things that didn't work and that I didn't know about.  That
was done as quickly as it was by ignoring the differences between the
PPC and the SPARC (e.g., register windows weren't used by Lisp code).
CCL/OpenMCL didn't use native threads in those days, and I'm sure that
some of the things that were done in that SPARC port weren't anywhere
close to being thread-safe.

I didn't keep the results of that work (and sometimes regret that),
and AFAIK no one else did, either.  The last few ports that we've done
(ia32 and x86-64) have taken roughly 6 months each; a PPC64 port done
a few years earlier probably took around 3 months (with those months
staggered over a few years.)  My best rough guess is that a SPARC port
would be easier than the x86 ports (because the architecture is saner)
and longer than the PPC64 port (because one would have to start from
scratch), so a rough estimate would be that a SPARC port would take
~4-5 months.

> Thanks in advance,
> Kind regards,
> Semih Cemiloglu
> _______________________________________________
> Openmcl-devel mailing list
> Openmcl-devel at clozure.com
> http://clozure.com/mailman/listinfo/openmcl-devel

More information about the Openmcl-devel mailing list