-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathnotes.txt
More file actions
55 lines (50 loc) · 1.98 KB
/
notes.txt
File metadata and controls
55 lines (50 loc) · 1.98 KB
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
Axioms:
1. Keep it simple. Make it more complex only if it will be more efficient.
Internal design:
1. Explicitly define what kind of object is field or function argument
if it is not any object.
Contributing:
1. If patch is explicitly fixing something then it should contain
a fixline in a commit message. First type an alias command
```git config alias.fixline "log -1 --abbrev=12
--format='Fixes: %h (\"%s\")%nCc: %ae'"```.
Then generate a fixline
```git fixline <SHA>```.
And you will get something like following
```
object: ops: fix pointer type
Fixes: 2653aae51867 ("object: add abstract object operations interface")
Cc: dilshod@difengine.xyz
```
Doc for contributors:
1. Quick start:
- Clone repo
- Install meson build system
- $ cd difengine
- $ chmod a+x scripts/test_build_run.sh
- scripts/test_build_run.sh -v
What will happen:
- Difengine libs building
- Difengine tests building
- tests/api suite run
TODO:
Irrelevant:
1. List objects: extend items vector. Define extension itself in /memory.
2. Code: how to consider opcode if opcode is list object.
May be do internal array of uints?
3. Objects: make it possible to cast float and list to DfObject and vice versa.
Relevant:
4. Generalize/put to function common operations (i.e. init, cast,
get list element and cast it to some specific object etc).
5. Get rid of memory leak (always).
6. Error handling.
7. Pay attention to the types (int/uint8_t/ssize_t etc)
8. Integer object: support long arithmetic.
9. Make code consistent codestyle-wise.
10. Write and build doc.
11. Code: RLE encoding may be combined with difference encoding i.e. done after.
Then, code object should store first line number, code->lines should store
difference between consecutive line numbers.
12. Code: LOAD_CONST now handles only indices in [0, 255]. So only 256 constants can be
used for now. Will be fixed when operations arguments will be handled.
13. Build: support configure/make build.