Thanks to all for responding.&nbsp; I definitely have gotten some valuable pointers here and I will investigate more as I gain more experience developing in lisp.<br><br>Thanks,<br>yinso <br><br><div><span class="gmail_quote">On 10/5/06, 
<b class="gmail_sendername">Richard Newman</b> &lt;<a href="mailto:r.newman@reading.ac.uk">r.newman@reading.ac.uk</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div style=""><br><div><span class="q"><div>On&nbsp; 5 Oct 2006, at 11:11 PM, Yin-So Chen wrote:</div><br><blockquote type="cite">Thanks Ivan, Richard, and Lawrence for responding - this is all very intriguing.&nbsp; Sounds like CGI is the only sure way to go with Clisp if I am looking to run multiple concurrent sessions?&nbsp;
<br></blockquote><div><br></div></span><div>Depends. If you're limited to clisp, perhaps.</div><span class="q"><br><blockquote type="cite">Also - Lawrence, I am assuming you have a way to capture your changes in life system back into source code form easily?&nbsp; I've heard the save-image capability, but would think you still need to have source code so you can rebuild image again if you can, is this correct?&nbsp;
<br></blockquote><div><br></div></span><div>Generally, you make changes in the source, then evaluate your changes in the REPL. If you're lucky, things will work out :)</div><span class="q"><br><blockquote type="cite">Richard - you meant you can (trace) h-r-r in SBCL, right?&nbsp; In CLISP, once (host-serve-events) is called, it blocks REPL, so I can't do trace just-in-time without killing off the lisp session (I can't tell whether there is a way to accept a control-character within araneida).&nbsp;
<br></blockquote><div><br></div></span><div>Hmm. On SBCL serve-event does not block the REPL; I don't use clisp.</div><span class="q"><br><blockquote type="cite">BTW Ivan - I did find a blog article by BillClementson discussing the same topic at 
<a href="http://bc.tech.coop/blog/040224.html" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">http://bc.tech.coop/blog/040224.html</a>. <br><br>Based on all the descriptions so far, I am wondering if the development &quot;methodology&quot; is completely different with lisp.&nbsp; 
<br></blockquote><div><br></div></span><div>Yes, it is.</div><span class="q"><br><blockquote type="cite">I so far lived in the compile-link-install-test world, where most of syntactic bugs and some semantic bugs are caught during the compile phase. And that leaves the bugs that are harder to find in live systems.&nbsp; Of course, examining trace files is horrible compared to live traces, but I've found that a good majority of the bugs found in production requires non-trivial changes (even with decent abstraction layers) and hence my experience is that without going through another test cycle, changing is extremely risky.&nbsp;
<br></blockquote><div><br></div></span><div>You verify things on a test server, if you can, or by local testing of some kind... then make the change in the running server without a restart.</div><span class="q"><br><blockquote type="cite">
Unless... there is a way to quickly verify and rollback changes easily in lisp?&nbsp;<br></blockquote><div><br></div></span><div>Do it locally.</div><span class="q"><br><blockquote type="cite">It would be great if someone with experiences in both worlds (I am sure many of you do ;p) can share some light on whether lisp's development cycle is completely different than c/c++/java/c# world.&nbsp; I've started to write lisp code, but my limited experience does not allow me to grok this yet.&nbsp;
<br></blockquote><div><br></div></span><div>Yes, it is. You don't ever need to restart, unless you're testing startup code! I've had systems which I've maintained, running, for 6 months; I keep the source up to date on-disk, and they've shut down and restarted without any difficulties.
</div><div><br></div><div>You're also not limited to a compile-run-test-edit cycle to find out if you're right; you can work with live data in a REPL, so you're much more likely to be right, and you don't ever have the shutdown/restart delay.
</div><div><br></div><div>-R</div></div><br></div>
</blockquote></div><br>