Only two, relatively minor things.'should be unnecessary' is not quite 'unnecessary', you can't just depricate something out of existance when _you_ aren't able to find a good use for it.
First being that I wanted to deprecate the interface for Kernel->call(), ommiting the session parameter as it should be unneccesary.
Second being I was following the revision pattern noted in the wiki.
That suggestion would work perfectly fine as an optimization, but I think the call() method needs revised entirely.
Personally, I look at POE's Sessions in light of Knuth's co-routines.
Since we aren't coding in assembler, we cant actually implement Knuth's
co-routines but Sessions are practically the same thing (Only on a larger scale).
call() exists to avoid race conditions, to get things NOW. I don't think call
should be done inter-session, just as one shouldn't delve into the contents
of an external object. Thats what the public interfaces are for. Also, in
light of the co-routines, inter-session communication should be done via
post(), in order to return processing to the system core, so it can delegate
the next event appropriately.
I mean this in the nicest way possible, because I honestly can't think of a nicer way to say it without being unclear of my opinion.
I really don't think that anyone should be so pretentious as to say "you don't need this [feature]" to a programming community, doing so leads to people complaining about the programming framework and how it can't do something because of a design decision. I think that if a person wants to do it, that's reason enough to let them.
- Scott.
