-
Notifications
You must be signed in to change notification settings - Fork 0
/
DESIGN
32 lines (29 loc) · 1.6 KB
/
DESIGN
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
This file describes the overall design of efunge.
Modules:
* efunge - Handles command line arguments and startup.
* efunge_fingerindex - Looks up loading fun for a fingerprint. Should only be
used by efunge_fingermanager. Automatically generated
by tools/gen_fprint_list.sh.
* efunge_fingermanager - Handles loading and unloading of fingerprints, and
executing fingerprint instructions.
* efunge_fingerstack - Implements fingerprint instruction stacks (used in
efunge_fingermanager).
* efunge_fungespace - Funge space.
* efunge_input - STDIO in the Funge way. Is a gen_server.
* efunge_interpreter - Handle core instructions, main loop.
* efunge_ip - IP functions, like: reverse, turn, finding next
non-space, wrapping. In future also things like getting
and setting fingerprint specific data.
* efunge_stack - Funge stack.
* efunge_stackstack - Funge stack-stack.
* efunge_sysinfo - Implements y.
* fingerprints/ - Fingerprints should be in this subdirectory.
One fingerprint per file. The spec files are in the
same format as for cfunge. See documentation of it
included with cfunge.
Process dictionary:
* The process dictionary got two uses currently:
- Command line arguments for the program (as reported by y).
- Funge-Space bounds.
* Note that the module random (which is used in efunge) from STDLIB also uses
the process dictionary.