-
Notifications
You must be signed in to change notification settings - Fork 6
/
TODO
39 lines (31 loc) · 1.68 KB
/
TODO
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
* Complete the bibliography
* Write a variant of libgc suitable for the linear lisp
* Write a variant of the core language interpreter,
* in the style of maru? of gambit?
* Bootstrap a fuller Linear Lisp on top of the core language
* in the style of gerbil?
* Use ptrace and/or /proc for editing memory in a foreign process
* by default manipulate an external slave, don't modify current image
* initial state for the external slave is a mindless worker waiting
* still have special ways to work in the same process? atomically?
By creating a slave that hooks back onto the detached parent?
* Bibliography:
http://dev.exherbo.org/~alip/pinktrace/
http://www.linuxjournal.com/article/6100
http://www.linuxjournal.com/node/6210
* Use SYSV shared memory (or mmap to same file?) to share data with child.
beware read/write barriers and icache flush.
* Reuse the insns.dat from nasm and write an assembler / disassembler
* have a maru-style assembler, except defined based on the nasm database
* use some reversible computing framework if possible
* use a framework that makes partial evaluation easier
so we can assemble faster by eliminating unused cases.
* if that helps, start by implementing 64-bit mode only
* General x86 information: http://www.sandpile.org/
* Nasm: git://repo.or.cz/nasm.git
* Bootstrap with some maru-style emit.l based on the above assembler
* Maintain a content-addressed database of slave processes vs source
* where "source" means "all the things that led to building that"
* where "source" gives us complete offline debug information
* where we also have intent-addressed mapping of source to object
* Profit!