Difference between revisions of "Common Lisp Creating A New Project"
From copec
Line 29: | Line 29: | ||
=== Edit Stuff === | === Edit Stuff === | ||
==== Hack the planet starting in '''swatchblade.lisp''' ==== | ==== Hack the planet starting in '''swatchblade.lisp''' ==== | ||
− | ==== Import symbols under '''package.lisp''' ==== | + | ==== Import ''vecto'' symbols under '''package.lisp''' ==== |
<pre> | <pre> | ||
(defpackage #:swatchblade | (defpackage #:swatchblade | ||
Line 50: | Line 50: | ||
</pre> | </pre> | ||
==== Add source files ''utils'', ''graphics'', ''web'' under '''swatchblade.asd'''==== | ==== Add source files ''utils'', ''graphics'', ''web'' under '''swatchblade.asd'''==== | ||
+ | Simple ":serial t" loading example: | ||
<pre> | <pre> | ||
(asdf:defsystem #:swatchblade | (asdf:defsystem #:swatchblade | ||
Line 61: | Line 62: | ||
(:file "swatchblade"))) | (:file "swatchblade"))) | ||
</pre> | </pre> | ||
− | + | ==== Export some sort of entry point symbols under '''package.lisp''' ==== | |
+ | <pre> | ||
+ | (defpackage #:swatchblade | ||
+ | (:use #:cl) | ||
+ | (:export #:start-web-server) | ||
+ | (:shadowing-import-from #:vecto | ||
+ | #:with-canvas | ||
+ | #:rounded-rectangle | ||
+ | #:set-rgb-fill | ||
+ | #:save-png-stream)) | ||
+ | </pre> | ||
=== Load Project === | === Load Project === | ||
<pre> | <pre> | ||
CL-USER> (ql:quickload "swatchblade") | CL-USER> (ql:quickload "swatchblade") | ||
+ | </pre> | ||
+ | === Use Project === | ||
+ | <pre> | ||
+ | CL-USER> (ql:quickload "swatchblade") | ||
+ | loading output | ||
+ | CL-USER> (swatchblade:start-web-server :port 8080) | ||
+ | Server started on port 8080. | ||
</pre> | </pre> |
Revision as of 12:42, 15 September 2016
Contents
Overview
Template procedure on how to create new Common Lisp project. Totally stolen from:
Project Creation (Steps)
Make Sure Environment is Setup
Install quickproject
CL-USER> (ql:quickload "quickproject")
Create Project
CL-USER> (quickproject:make-project "~/org.unaen.dev.src/lisp/swatchblade/" :depends-on '(vecto hunchentoot)) "swatchblade"
Default Files Created
~/org.unaen.dev.src/lisp/swatchblade/
- package.lisp
- swatchblade.lisp
- swatchblade.asd
- README.txt
Edit Stuff
Hack the planet starting in swatchblade.lisp
Import vecto symbols under package.lisp
(defpackage #:swatchblade (:use #:cl) (:shadowing-import-from #:vecto #:with-canvas #:rounded-rectangle #:set-rgb-fill #:save-png-stream))
Add libraries cl-colors under swatchblade.asd
(asdf:defsystem #:swatchblade :serial t :depends-on (#:vecto #:hunchentoot #:cl-colors) :components ((:file "package") (:file "swatchblade")))
Add source files utils, graphics, web under swatchblade.asd
Simple ":serial t" loading example:
(asdf:defsystem #:swatchblade :serial t :depends-on (#:vecto #:hunchentoot) :components ((:file "package") (:file "utils") (:file "graphics") (:file "web") (:file "swatchblade")))
Export some sort of entry point symbols under package.lisp
(defpackage #:swatchblade (:use #:cl) (:export #:start-web-server) (:shadowing-import-from #:vecto #:with-canvas #:rounded-rectangle #:set-rgb-fill #:save-png-stream))
Load Project
CL-USER> (ql:quickload "swatchblade")
Use Project
CL-USER> (ql:quickload "swatchblade") loading output CL-USER> (swatchblade:start-web-server :port 8080) Server started on port 8080.