3 ms·
My experience is that long-term image-based development isn't really that common in Lisp, maybe outside of some specialized use-cases. You can develop by mutati
by _delirium 12y ago
My experience is that long-term image-based development isn't really that common in Lisp, maybe outside of some specialized use-cases. You can develop by mutating/saving/reloading an image over an extended period of time, but in practice people mostly develop the "usual" way, with source code that's loaded into a fresh image periodically. The use of image-oriented development then gets limited to prototyping and debugging. Being able to redefine functions/etc. on the fly (even during restarts and the like) is useful while experimenting and debugging. But then the "real" code gets written into a source file, which is reloaded into a fresh image to make sure it works. For modern muti-developer Lisp this is pretty much the only way things are done, since the expectation is that you check Lisp source into svn or git, not images.
- adwf 12y agoThat's pretty much exactly how I develop. I rarely type anything directly into the REPL, instead typing into the source file in emacs and then C-c C-c it over to the REPL for me. The advantage is that I get a canonical copy of the entire source code, whilst still having the ability to inspect and hotfix things through the REPL. If I then need to reboot the image or deploy to a new server, the entire source base should be completely stable and consistent. I often connect to production servers using Slime and fix little things like typos this way - then check the source into Github and have it permanently saved. It removes a lot of the stress of doing a full deployment each time you need to patch something!
- philippeback 12y agoSame story with Pharo Smalltalk where we run CI jobs loading things into fresh images. Code lives in Git as well via GitFileTree.