From 249656ed94a1ea851654951057e1f9ea0278f763 Mon Sep 17 00:00:00 2001 From: Darren Bane Date: Fri, 9 Oct 2020 19:57:23 +0100 Subject: Doc updates --- cbasic.lisp | 1 - doc/bane.20.cdr15.md | 3 +++ doc/breaking_rules.md | 25 ++++++++++++++++++++++++- 3 files changed, 27 insertions(+), 2 deletions(-) diff --git a/cbasic.lisp b/cbasic.lisp index 706c564..a999223 100644 --- a/cbasic.lisp +++ b/cbasic.lisp @@ -7,7 +7,6 @@ (load "cutil.lisp") (load "cparse.lisp") (require "cparse") -(require "") (defpackage #:cbasic (:use #:common-lisp) (:export diff --git a/doc/bane.20.cdr15.md b/doc/bane.20.cdr15.md index bb25021..2548c7d 100644 --- a/doc/bane.20.cdr15.md +++ b/doc/bane.20.cdr15.md @@ -36,6 +36,9 @@ ISLisp doesn't have the following features (and probably many more): * structs. Use classes instead. * `print-object`. But you can define it yourself. +CL doesn't have the `*-dynamic` functions, +it's probably best to avoid dynamic scoping anyway. + ## Extensions to ISLisp It was noted in the ISLisp standard document that the committee would have liked to define packages. diff --git a/doc/breaking_rules.md b/doc/breaking_rules.md index 70bcb56..38abe77 100644 --- a/doc/breaking_rules.md +++ b/doc/breaking_rules.md @@ -10,6 +10,9 @@ are made. accumulate \.R2 +*TODO*: Q: re-cast much of this document as Architecture +Decision Records? A: N + # Introduction The conventional wisdom is that prototypes should be discarded once the lessons @@ -168,7 +171,7 @@ Then, the following code & documentation improvements should be made: Since we have a working prototype, it may make sense to write the documentation (and contracts, and tests) "bottom-up": -1. Contracts +1. Contracts, static analysis 2. Test cases 3. Module interface specs 4. Module guide, uses hierarchy @@ -224,6 +227,8 @@ basic english (the fixnum res))) ``` +`lisp-critic` can be used to perform static analysis of the codebase. + ### UI ltk is great for local GUIs. @@ -231,6 +236,24 @@ However, a product may require HTMX and the platform.sh stack. Note that I prefer HTMX & ReST (following Fielding) to single-page applications (outside the very specific case of drawing on a canvas using ParenScript). +## Dependencies + +For the prototyping phase, +you should *really* limit yourself to the ISLisp subset. +For productisation you may want to make more of an effort, +but I would still recommend limiting to the following, +in order of preference. +The language/library split isn't as clear in CL as in some other languages, +but use your judgement. + +* For "language" functionality, "[Portability layers](http://portability.cl/)" from that list +* For "library" functionality, any "stars" from the [Awesome-CL](https://github.com/CodyReichert/awesome-cl) list +* Any of the `trivial-` libraries from that list. These may be *forked* and maintained locally. +* Any other `trivial-` libraries available in Quicklisp. +* Other libraries available in Quicklisp. + +The `trivial-` libraries may be *forked* and maintained locally. + ## Testing Unit (FiveAM) tests grow in parallel with the module interface specs. -- cgit 1.4.1-2-gfad0