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.