From 249656ed94a1ea851654951057e1f9ea0278f763 Mon Sep 17 00:00:00 2001 From: Darren Bane Date: Fri, 9 Oct 2020 19:57:23 +0100 Subject: Doc updates --- doc/bane.20.cdr15.md | 3 +++ doc/breaking_rules.md | 25 ++++++++++++++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) (limited to 'doc') 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 shes'>
3c10cc59 ^

b74360cd ^


3c10cc59 ^

b74360cd ^
6a705830 ^


b74360cd ^
6a705830 ^


b74360cd ^
6a705830 ^






2a8565d1 ^
6a705830 ^
















































b74360cd ^
3c10cc59 ^
7b8087a2 ^
b74360cd ^
7b8087a2 ^
b74360cd ^
7b8087a2 ^
b74360cd ^




7b8087a2 ^
b74360cd ^
3c10cc59 ^

b74360cd ^







7b8087a2 ^
b74360cd ^

3c10cc59 ^
b74360cd ^


7b8087a2 ^
b74360cd ^



3c10cc59 ^

b74360cd ^












3c10cc59 ^

b74360cd ^













1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140