Commit | Line | Data |
---|---|---|
3e9b89d4 | 1 | This directory contains general-purpose reusable code that does not |
9bdff6ea | 2 | fit in the process. |
3e9b89d4 NB |
3 | |
4 | The split in small files is motivated by implementations too limited | |
5 | to load a single big file, but MAL has no proper module management. | |
6 | ||
7 | However, here are some guidelines. | |
8 | ||
9 | - Begin with an one-line ;; short description | |
10 | ||
3e9b89d4 NB |
11 | - Describe the restrictions on each parameter in comments. |
12 | ||
13 | - Define private symbols in hidden environments when possible. If this | |
14 | is not possible, for example for macros, give them a name starting | |
15 | with an underscore. | |
16 | ||
83665b4f NB |
17 | If a module provides tests, you may run against an implementation IMPL |
18 | with these commands. | |
19 | ``` | |
20 | make IMPL^stepA | |
21 | cd tests | |
22 | python ../runtest.py lib/MODULE.mal ../IMPL/run | |
23 | ``` | |
13e679cd NB |
24 | |
25 | Users and implementors should use the following syntax in order to | |
26 | ensure that the same file is only loaded once. | |
27 | ||
28 | ``` | |
29 | (load-file "../lib/load-file-once.mal") | |
30 | (load-file-once "../lib/foo.mal") | |
31 | (load-file-once "../lib/bar.mal") | |
32 | ``` |