<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
This is one of the deviant and brilliant features of CCL: "look ma,
no interpreter." Every other Lisp has to fastidiously maintain
equivalent semantics between <b>eval</b> and the compiler. This
was more of a burden when not-yet-standardized Lisp semantics were a
moving target, like around when lexical closures were introduced.
Before CCL there was Coral Software's ObjectLogo, which used the
same strategy. The trick there was to present to the Logo REPL <i>user</i>,
the <i>appearance</i> that their code was interpreted (in the grand
tradition of Logos not having a compiler). For example, when an
error was recognized at compile-time, the error <i>message</i> was
reported at run time.<br>
<br>
<div class="moz-cite-prefix">On 1/5/24 1:15 PM, Tim Bradshaw wrote:<br>
</div>
<blockquote type="cite"
cite="mid:64C0C10E-FDD2-4FA7-BE1D-2B871C068475@tfeb.org">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<div dir="ltr">I didn't know that: thanks.</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">However in this case it looks mostly like the SBCL
GC is doing better: CCL is spending 85% of the time in GC, SBCL
somewhat less (about 65%).</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">I am trying to think of a case where a
microbenchmark like this tells you anything useful about real
programs. But I can't.</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">--tim</div>
<div dir="ltr"><br>
</div>
<div dir="ltr">
<blockquote type="cite">On 5 Jan 2024, at 17:55, Ron Garret
<a class="moz-txt-link-rfc2396E" href="mailto:ron@flownet.com"><ron@flownet.com></a> wrote:<br>
<br>
</blockquote>
</div>
<blockquote type="cite">
<div dir="ltr">
<meta http-equiv="Content-Type"
content="text/html; charset=UTF-8">
CCL compiles everything. The SBCL compiler is just better.<br
class="">
<div><br class="">
<blockquote type="cite" class="">
<div class="">On Jan 5, 2024, at 9:11 AM, Tim Bradshaw
<<a href="mailto:tfb@tfeb.org"
class="moz-txt-link-freetext" moz-do-not-send="true">tfb@tfeb.org</a>>
wrote:</div>
<br class="Apple-interchange-newline">
<div class="">
<meta http-equiv="content-type"
content="text/html; charset=UTF-8" class="">
<div dir="auto" class="">
<div dir="ltr" class="">You realise that SBCL is
almost certainly compiling this and CCL is almost
certainly not?</div>
<div dir="ltr" class=""><br class="">
</div>
<div dir="ltr" class="">--tim</div>
<div dir="ltr" class=""><br class="">
<blockquote type="cite" class="">On 5 Jan 2024, at
14:29, Taoufik Dachraoui <<a
href="mailto:dachraoui.taoufik@gmail.com"
class="moz-txt-link-freetext"
moz-do-not-send="true">dachraoui.taoufik@gmail.com</a>>
wrote:<br class="">
<br class="">
</blockquote>
</div>
<blockquote type="cite" class="">
<div dir="ltr" class="">
<div dir="ltr" class="">It looks like it is not
because of the threads:
<div class=""><br class="">
</div>
<div class="">taoufik@Ankbot:~/workspace/ccl/actor$
sbcl<br class="">
This is SBCL 2.3.11, an implementation of ANSI
Common Lisp.<br class="">
More information about SBCL is available at
<<a href="http://www.sbcl.org/"
class="moz-txt-link-freetext"
moz-do-not-send="true">http://www.sbcl.org/</a>>.<br
class="">
<br class="">
SBCL is free software, provided as is, with
absolutely no warranty.<br class="">
It is mostly in the public domain; some
portions are provided under<br class="">
BSD-style licenses. See the CREDITS and
COPYING files in the<br class="">
distribution for more information.<br class="">
* (time (reduce #'+ (loop for i from 0 upto
100000000 collect i)))<br class="">
Evaluation took:<br class="">
1.836 seconds of real time<br class="">
1.835223 seconds of total run time (1.351394
user, 0.483829 system)<br class="">
[ Real times consist of 1.184 seconds GC
time, and 0.652 seconds non-GC time. ]<br
class="">
[ Run times consist of 1.184 seconds GC
time, and 0.652 seconds non-GC time. ]<br
class="">
99.95% CPU<br class="">
3,876,850,246 processor cycles<br class="">
1,600,427,200 bytes consed<br class="">
<br class="">
5000000050000000<br class="">
* taoufik@Ankbot:~/workspace/ccl/actor$ ccl<br
class="">
Clozure Common Lisp Version 1.12.1
(v1.12.1-22-g6b1f1d3a) LinuxX8664<br class="">
<br class="">
For more information about CCL, please see <a
href="http://ccl.clozure.com/"
class="moz-txt-link-freetext"
moz-do-not-send="true">http://ccl.clozure.com</a>.<br
class="">
<br class="">
CCL is free software. It is distributed under
the terms of the Apache<br class="">
Licence, Version 2.0.<br class="">
? (time (reduce #'+ (loop for i from 0 upto
100000000 collect i)))<br class="">
(REDUCE #'+ (LOOP FOR I FROM 0 UPTO 100000000
COLLECT I))<br class="">
took 13,091,079 microseconds (13.091079
seconds) to run.<br class="">
11,036,666 microseconds (11.036666
seconds, 84.31%) of which was spent in GC.<br
class="">
During that period, and with 24 available CPU
cores,<br class="">
12,734,283 microseconds (12.734283
seconds) were spent in user mode<br class="">
336,005 microseconds ( 0.336005
seconds) were spent in system mode<br class="">
1,600,000,032 bytes of memory allocated.<br
class="">
397,400 minor page faults, 0 major page
faults, 0 swaps.<br class="">
5000000050000000<br class="">
?<br class="">
</div>
</div>
<br class="">
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Fri, Jan 5,
2024 at 3:10 PM Taoufik Dachraoui <<a
href="mailto:dachraoui.taoufik@gmail.com"
class="moz-txt-link-freetext"
moz-do-not-send="true">dachraoui.taoufik@gmail.com</a>>
wrote:<br class="">
</div>
<blockquote class="gmail_quote"
style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div dir="ltr" class="">Hi
<div class=""><br class="">
</div>
<div class="">In my current implementation
of a classical actor model</div>
<div class="">I found that using ccl
processes is much slower than sbcl threads</div>
<div class=""><br class="">
</div>
<div class="">to create a thread I use
<a class="moz-txt-link-freetext" href="ccl:process-run-function">ccl:process-run-function</a>, is there another
way to </div>
<div class="">create native threads that are
much faster; I do not need the ccl
scheduling,</div>
<div class="">I want to create threads that
are scheduled by the OS, I think that the
ccl </div>
<div class="">scheduler is the reason why my
ccl tests are much slower than the tests
run </div>
<div class="">with sbcl</div>
<div class="">
<div class=""><br class="">
</div>
<span class="gmail_signature_prefix">
<div class=""><span
class="gmail_signature_prefix">Regards</span></div>
-- </span><br class="">
<div dir="ltr" class="gmail_signature">
<div dir="ltr" class="">Taoufik
Dachraoui
<div class=""><br class="">
</div>
</div>
</div>
</div>
</div>
</blockquote>
</div>
<br class="" clear="all">
<div class=""><br class="">
</div>
<span class="gmail_signature_prefix">-- </span><br
class="">
<div dir="ltr" class="gmail_signature">
<div dir="ltr" class="">Taoufik Dachraoui
<div class=""><br class="">
</div>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
</div>
<br class="">
</div>
</blockquote>
</blockquote>
<br>
</body>
</html>