aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: d790c8be239640c3e9b33d277238ce62c4d7df53 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# Intermediate code generation

- Put symbol table in the reader monad and it to the stack
  or use the state monad for everything.
- Add errors handling to the monad stack.

# ELF generation

- Don't ignore relocations where the symbol is not defined in the symbol table.
  Report an error about an undefined symbol.
- elfObject always uses LSB. It should decide the byte order based on the ELF
  header.
- Relocation section header relates to another section (e.g. .rel.text). The
  index of that section should be passed together with collected relocations.
- symstrtab creates 3 section headers and does some math to calculate the
  offsets and names. Introducing the state monad can help to get rid of magic
  numbers.
- The final reutrn value of the state monad should be the Elf header.