Changes between Initial Version and Version 1 of BuildingLargeProjects


Ignore:
Timestamp:
07/05/07 06:17:11 (7 years ago)
Author:
bfulgham
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • BuildingLargeProjects

    v1 v1  
     1[[PageOutline]] 
     2= Building Large Projects = 
     3Lisp is very similar to languages like Java, C++, and Python in that a program (of any size) is typically broken down into individual compilation units that are stored as separate text files, usually with an extension such as {{{lisp}}}, {{{lsp}}}, or {{{cl}}}.  The one example of this that comes with the '''OpenMCL''' distribution is in "ccl:examples;cocoa-application.lisp", which creates a double-clickable GUI application. 
     4 
     5In practice, people often make "applications" by simply passing a few {{{--load}}} and/or {{{--eval}}} arguments on the command line.  It's also possible to load application-specific 
     6code into a running lisp and then save a memory image via the function {{{CCL:SAVE-APPLICATION}}} (possibly specifying that that application do something other than start a REPL when it's invoked.)  In a lot of cases, which general approach is better may depend on how long-lived the application is (it might be harder to debug something built with {{{SAVE-APPLICATION}}}.) 
     7 
     8== Make == 
     9Some people use {{{make}}} to build lisp applications; it's sometimes preferable to use lisp-specific system construction tools (such as {{{DEFSYSTEM}}} and {{{ASDF}}}).   A lot of modern freely-available lisp packages (things that one might find on [http://common-lisp.net common-lisp.net] or via [http://cliki.net cliki.net]) are intended to be built with {{{ASDF}}}; they're typically distributed with {{{.asd}}} files which serve a similar role to Makefiles in C packages. 
     10 
     11