<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;" class="">See <a href="http://ccl.clozure.com/manual/chapter10.1.html#CCL-Stream-Extensions" class="">http://ccl.clozure.com/manual/chapter10.1.html#CCL-Stream-Extensions</a><div class="">10.1.3  Basic vs. Fundamental streams</div><div class=""><br class=""></div><div class="">Basic streams are builtin classes. Fundamental streams are built on CLOS classes and more extensible.</div><div class=""><br class=""></div><div class=""><div class="">? (with-open-file (in "/tmp/test.data") (describe in))</div><div class="">#<BASIC-FILE-CHARACTER-INPUT-STREAM ("/tmp/test.data"/18 UTF-8) #x302001717CED></div><div class="">Type: CCL::BASIC-FILE-CHARACTER-INPUT-STREAM</div><div class="">Class: #<<b class="">BUILT-IN-CLASS</b> CCL::BASIC-FILE-CHARACTER-INPUT-STREAM></div></div><div class=""><br class=""></div><div class="">vs.:</div><div class=""><br class=""></div><div class=""><div class="">(with-open-file (in "/tmp/test.data" :class 'CCL::FUNDAMENTAL-FILE-CHARACTER-INPUT-STREAM) (describe in))</div><div class="">#<FUNDAMENTAL-FILE-CHARACTER-INPUT-STREAM ("/tmp/test.data"/18 UTF-8) #x3020017580BD></div><div class="">Class: #<<b class="">STANDARD-CLASS</b> CCL::FUNDAMENTAL-FILE-CHARACTER-INPUT-STREAM></div></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""></div><div class=""><br class=""><div><blockquote type="cite" class=""><div class="">Am 19.04.2017 um 18:07 schrieb Joshua Kordani <<a href="mailto:jkordani@lsa2.com" class="">jkordani@lsa2.com</a>>:</div><br class="Apple-interchange-newline"><div class=""><div class="">What are CLOS/nonCLOS based streams?<br class=""><br class=""><br class="">On 4/19/17 4:31 AM, Rainer Joswig wrote:<br class=""><blockquote type="cite" class=""><blockquote type="cite" class="">Am 19.04.2017 um 05:39 schrieb Craig Lanning <<a href="mailto:craig.t.lanning@gmail.com" class="">craig.t.lanning@gmail.com</a>>:<br class=""><br class="">On Tue, 2017-04-18 at 16:34 -0700, David McClain wrote:<br class=""></blockquote>...<br class=""><br class=""><blockquote type="cite" class="">Yes, all code is compiled.  No code is run interpreted.  It is designed<br class="">the way it is specifically for that reason.<br class=""></blockquote>Things I would usually look for:<br class=""><br class=""><br class="">* is everything compiled?<br class=""><br class="">* slow stream I/O<br class=""><br class="">* slow unbuffered stream I/O<br class="">   -> for example when reading lines allocating a new string for each line<br class="">   -> or generally unbuffered streams with a lot of character operations<br class=""><br class="">* slow CLOS-based stream I/O -> in CCL CLOS based streams are usually slower than non-CLOS streams<br class=""><br class="">* slow unicode stream operations<br class=""><br class="">* slow unicode string operations<br class=""><br class="">* repeated translation between character representations in strings<br class=""><br class="">* excessive consing / slow garbage collection time -> use TIME to see the GC time<br class=""><br class="">* excessive FLOAT consing -> CCL needs more declarations / tricks<br class=""><br class="">* forgotten calls to the sleep function ;-)<br class=""><br class="">* lots of background output/logging/tracing, debug options enabled<br class=""><br class="">* time sensitive functions compiled with the wrong compiler optimizations<br class=""><br class="">* tail calls not optimized, when needed<br class=""><br class="">* algorithmic problems in user code or in the implementation: n^2 or worse complexity<br class="">   -> consing to the end of a list<br class="">    -> copying arrays in loops<br class="">    -> adjusting strings by one element<br class=""><br class=""><br class=""><br class="">_______________________________________________<br class="">Openmcl-devel mailing list<br class=""><a href="mailto:Openmcl-devel@clozure.com" class="">Openmcl-devel@clozure.com</a><br class="">https://lists.clozure.com/mailman/listinfo/openmcl-devel<br class=""></blockquote><br class="">_______________________________________________<br class="">Openmcl-devel mailing list<br class=""><a href="mailto:Openmcl-devel@clozure.com" class="">Openmcl-devel@clozure.com</a><br class="">https://lists.clozure.com/mailman/listinfo/openmcl-devel<br class=""></div></div></blockquote></div><br class=""></div></body></html>