Merge pull request #532 from dubek/vhdl-fix-defmacro
[jackhill/mal.git] / impls / lib / README.md
1 This directory contains general-purpose reusable code that does not
2 fit in the process.
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
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
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 ```
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 ```