Call for Interest: Clojure (or Lisp?) Code Camp with BLM focus
Robert Goldman
rpgoldman at sift.net
Thu Dec 3 15:10:47 UTC 2020
I've used ABCL very happily as a high-level way to script the JVM, and
also as a good way to explore what's going on in a big Java program,
using the REPL.
But for the AI planner I maintain and develop (GitHub.com/shop-planner),
ABCL simply won't function: it's wildly too slow compared with SBCL,
Allegro, and CCL. I can't get it to run the test suite (ECL can't do it,
either).
Also, I suspect that the inability to do tail call optimization means
that idiomatic CL code behaves very poorly on ABCL (which is the fault
of the JVM, not ABCL itself).
I wouldn't recommend ABCL as other than a tool to work with artifacts
that already live on the JVM. As a "primary" CL it just does not
perform well enough.
On 3 Dec 2020, at 8:55, Alessio Stalla wrote:
> Perhaps this will change with a future JVM with Value Types and with a
> future ABCL making use of them, but at the moment, that's the sad
> story.
>
> On Thu, 3 Dec 2020 at 15:51, Pascal Costanza <pc at p-cos.net> wrote:
>
>> We tested an implementation in Java, and the memory footprint of the
>> JVM
>> is huge. Where C++, Common Lisp, and Go could comfortably run in
>> below 256
>> GB RAM, Java needed more like 350-400 GB RAM. That was not a good
>> tradeoff.
>> I don’t expect an implementation in ABCL to solve this (which is
>> not ABCL’s
>> problem, but a problem of the JVM).
>>
>> Pascal
>>
>>> On 3 Dec 2020, at 14:47, Manfred Bergmann <manfred.bergmann at me.com>
>> wrote:
>>>
>>>> This was primarily for the lack of good parallel, concurrent
>>>> garbage
>> collectors in Common Lisp implementations.
>>>
>>> ABCL on the JVM works pretty good these days.
>>> It’s not as fast as SBCL, but much more robust from a runtime (and
>>> GC)
>> perspective.
>>>
>>>
>>> Manfred
>>>
>>>
>>>> Am 03.12.2020 um 13:57 schrieb Pascal Costanza <pc at p-cos.net>:
>>>>
>>>> This was primarily for the lack of good parallel, concurrent
>>>> garbage
>> collectors in Common Lisp implementations. The CL version of elPrep
>> was
>> actually still a tad faster than any of the C++, Go, or Java
>> versions, but
>> we had to work hard to avoid long GC pauses. elPrep allocates a lot
>> of
>> memory, and the pause time hurts a lot. We solved this by, basically,
>> disabling the garbage collector, and reusing memory manually as much
>> as
>> possible, which turned the program into almost a manually
>> memory-managed
>> affair.
>>>>
>>>> Manual memory management became a huge burden because we wanted to
>>>> add
>> more and more components to the software, and then it becomes almost
>> impossible to predict object lifetimes.
>>>>
>>>> We evaluated Go and Java for their concurrent, parallel GCs, and
>>>> C++
>> for its reference counting. Interestingly, reference counting is
>> often
>> described as more efficient than GC, but in our case that’s not
>> true:
>> Because there is a huge object graph at some stage that needs to be
>> deallocated, reference counting incurs more or less the same pause
>> that a
>> non-concurrent GC does. That’s why we don’t expect Rust to fare
>> better here
>> either.
>>>>
>>>> Again, we’re still prototyping in Common Lisp, which is a huge
>>>> win,
>> because this makes us much more productive.
>>>>
>>>> Pascal
>>>>
>>>>> On 3 Dec 2020, at 12:16, Svante Carl v. Erichsen <
>> svante.v.erichsen at web.de> wrote:
>>>>>
>>>>> Hi!
>>>>>
>>>>> I vaguely remember having read that you do that. I'm still
>>>>> wondering
>>>>> why, though. I guess that you wrote about it, but I can't find it
>> right
>>>>> now.
>>>>>
>>>>> So, if it's not because Common Lisp is not seen as “production
>>>>> ready”,
>>>>> why rewrite instead of just adding the production parts (I guess
>>>>> hardening, monitoring, logging, documentation etc.)?
>>>>>
>>>>> Yours aye
>>>>>
>>>>> Svante
>>>>>
>>>>>
>>>>> Pascal Costanza writes:
>>>>>
>>>>>> In my opinion, prototyping in Common Lisp, and then translating
>>>>>> to a
>>>>>> different programming language for creating the final product, is
>>>>>> a
>>>>>> perfectly valid professional use of Common Lisp. It’s useful to
>>>>>> know
>>>>>> which programming languages may be good targets for such an
>>>>>> approach.
>>>>>>
>>>>>> This is, of course, not ideal, because this can easily be
>>>>>> misunderstood as a statement that Common Lisp is not fit for
>>>>>> purpose. However, I don’t see it that way, and you cannot
>>>>>> control
>>>>>> people’s perceptions.
>>>>>>
>>>>>> In our particular case, our manager is on board with this
>>>>>> approach,
>>>>>> and this allows us to pay for regular licenses for LispWorks. The
>>>>>> approach works really well for us.
>>>>>>
>>>>>> Pascal
>>>>>>
>>>>>> Sent from my iPad
>>>>>>
>>>>>>> On 3 Dec 2020, at 05:29, Dave Cooper <david.cooper at genworks.com>
>> wrote:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>> Where else do Common Lispers go to talk shop, whether CL or
>> something else?
>>>>>>>
>>>>>>>
>>>>>>> To me, Common Lispers "talking shop" by definition means talking
>> about CL or related topics, not an open-ended "something else." I
>> would
>> turn that question around and ask "where else do Common Lispers go
>> for
>> unapologetic mutual support for their chosen or imposed computing
>> platform,
>> which is Common Lisp?" If groups such as this mailing list become
>> diluted
>> with hand wringing, naysaying, and negativity, then you tell me Tim,
>> where
>> do actual Common Lispers go?
>>>>>>>
>>>>>>>
>>>>>>>> CL is very good but it is not perfect. Debating the relative
>> merits of
>>>>>>>> various languages can lead to cross-pollination of ideas. It
>> appears that
>>>>>>>> most innovation is happening elsewhere, and I hope this
>>>>>>>> community
>> can
>>>>>>>> bring the best of CL into a worthy successor, whatever it may
>>>>>>>> be
>> called.
>>>>>>>>
>>>>>>>
>>>>>>> If "most innovation is happening elsewhere" then those of us who
>> have the propensity to look into other languages can serve the
>> community
>> here by reporting back the cool things they find and discussing how
>> we may
>> or may not be able to co-opt such things into CL. If such is the
>> perspective and purpose of "debating the merits of various
>> languages," then
>> indeed, such debate can result in productive cross-pollination, and
>> this is
>> needed and wanted.
>>>>>>>
>>>>>>> If the intention and focus is instead to sing the praises of
>>>>>>> other
>> environments in order to seek fellow converts or validation for
>> converting,
>> and doing this while specifically targeting a group set up to support
>> "professional common lispers," then I consider such efforts to be
>> unhelpful
>> in the context of this group and I would invite you to take such
>> discussions into the forums of those other environments or into some
>> general language discussion forums.
>>>>>>>
>>>>>>> Understand that not all of us have the "luxury" on the one hand,
>>>>>>> nor
>> the desire on the other hand, to chase the dragon of the latest cool
>> thing,
>> and we look to groups such as this one specifically to support our
>> crusty
>> old entrenched mentality -- and to improve our environment as best we
>> can,
>> understanding the inherent limitations that exist. This is the life
>> we have
>> chosen.
>>>>>>>
>>>>>>>
>>>>>
>>>>>
>>>>
>>>> --
>>>> Pascal Costanza
>>>>
>>>>
>>>>
>>>
>>>
>>
>> --
>> Pascal Costanza
>>
>>
>>
>>
Robert P. Goldman
Research Fellow
Smart Information Flow Technologies (d/b/a SIFT, LLC)
319 N. First Ave., Suite 400
Minneapolis, MN 55401
Voice: (612) 326-3934
Email: rpgoldman at SIFT.net
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/pro/attachments/20201203/4f30dbab/attachment-0001.htm>
More information about the pro
mailing list