[Openmcl-devel] The M1 port and the future of CCL

Robert Goldman rpgoldman at sift.info
Sun Nov 26 08:11:28 PST 2023


To be honest, I haven't worked with this enough to know if running a 
system for a long time would let the JIT compiler speed things up.  But 
that doesn't fit my use case, anyway: I am generally not writing 
long-duration server systems, so JIT optimization doesn't help me.

It's quite possible that ABCL still doesn't have tail-call optimization, 
either: I don't track Java well enough to know if they have made that 
possible yet.

On 26 Nov 2023, at 1:03, Scott L. Burson wrote:

> Ouch — I see what people mean about ABCL.  I obviously haven't done 
> any
> serious work with it yet, but I thought I was going to.  I don't need
> absolute maximum computational performance, and I do expect to be 
> running
> some very large heaps, possibly a few hundred GB, which I know the JVM 
> can
> handle.  So ABCL seemed like a reasonable choice.  But I just tried a 
> small
> benchmark that I happened to have handy, and ABCL came out three 
> orders of
> magnitude slower than SBCL.  Yikes!  I don't even know where that kind 
> of
> overhead would come from.  I did compile the code, and no, I'm not 
> running
> an x86_64 JVM under Rosetta :-)  Well, come to think of it, the code 
> is
> heavy on two things that might be poorly implemented in ABCL: generic
> function calls and multiple values.  Still, three orders of magnitude 
> — a
> simple interpreter that worked directly off list structure should do 
> better
> than that, no?
>
> Anyway, I guess the upshot is that I'm more interested in seeing CCL
> continue to be supported than I thought.
>
> -- Scott
>
>
>
> On Fri, Nov 24, 2023 at 1:34 PM J Klein <jetmonk at gmail.com> wrote:
>
>>
>> I agree with Robert that ECL and ABCL are too sluggish to be 
>> practical
>> replacements for CCL or SBCL.   I had to port a scheduling program 
>> from
>> ABCL to SBCL for this reason.
>>
>> I think that CCL is the ideal Lisp for small platforms like the 
>> Raspberry
>> Pi (and maybe phones and tablets, if the ecosystem owners permit it), 
>> given
>> its mix of speed and light weight.   I formerly used it on the RPi 
>> until
>> the failure of threading on multiple cores drove me to 64 bit Raspian 
>> and
>> SBCL, which is a tad too heavyweight.    ECL was just too slow to run 
>> and
>> compile, and broke too many packages.
>>
>> Given that arm64 is likely to be the dominant platform for 
>> small-device
>> computing, it seems that porting CCL to it would be a huge benefit, 
>> whether
>> or not the Macintosh IDE is supported.
>>
>> I'd certainly be willing to contribute a modest amount of money, 
>> enough to
>> pay for a day or two of work, to achieve a stable arm64 port.  Some
>> documentation of the internals would be great too, as I learned from 
>> my
>> efforts to tackle the thread bug in arm32.
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>>
>>> I use CL for computationally challenging processes (see, e.g.,
>> https://github.com/shop-planner/shop3).  ECL's compiler generates 
>> code
>> that is simply too sluggish to be usable for such problems.  I would 
>> warn
>> you away from that. TBH, I think pushing CL code through a C compiler 
>> is a
>> losing proposition -- the development environment is also unpleasant 
>> and
>> sluggish to work with.  For that matter, although I have used ABCL to
>> script Java applications happily, its code is also way too sluggish 
>> for
>> practical use as a "main" programming language (as opposed to a 
>> scripting
>> shell).
>>>
>>> If CCL goes away (I hope it does not, but I agree it will be very
>> challenging to keep it alive), then unless you are willing to pay for
>> LispWorks or Allegro, SBCL is the only game in town.
>>>
>>> Of course this is all my personal opinion and YMMV and YUCMV (Your 
>>> Use
>> Case May Vary).
>>>
>>> Best,
>>> R
>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.clozure.com/pipermail/openmcl-devel/attachments/20231126/f03a3cc5/attachment.htm>


More information about the Openmcl-devel mailing list