Mon Jul 31 16:25:53 CEST 2006


command queues have to go, since i want to remove the locks from the
list/packet memory allocation. currently it's used in:

* osc: can be removed : select based mainloop + assume output doesnt block
* readline + reader : both just input text in a separate thread. maybe combine with osc?

the snigulps have to be changed too. probably means the end of udp, glade and xfree

so the roadmap looks like:
1. create select based pf loop + find out what to plug in
2. either make the parser re-entrant, or have it use a serialized intermediate format

maybe a fast binary serial data format could be an interesting
approach. this would solve the console related problems above, plus
gives fast inter-pf communication. it could also be a good opportunity
to unify the type system. the binary format is 32bit host data
format. endianness needs to be solved elsewhere.

* int float	tag, value
* symbol	tag, words, characters
* string/raw	tag, words, characters, words, data
* list		tag, elements, ...

all other cannot be serialized. for lists: a whole list is sent at
once (list=message).  to do incremental sends, split a list in records
(atoms). knowing the number of things to read in advance easier than
trying to figure this out from the data stream.

the parser is then just transforms a text stream into a binary
stream. binary stream decoder -> internal data structures is very
straightforward, as is the serialization.