Changes between Initial Version and Version 1 of BuildingLargeProjects

07/05/07 06:17:11 (10 years ago)



  • BuildingLargeProjects

    v1 v1  
     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. 
     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}}}.) 
     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 [] or via []) are intended to be built with {{{ASDF}}}; they're typically distributed with {{{.asd}}} files which serve a similar role to Makefiles in C packages.