=== sadmac_ is now known as sadmac [15:53] Keybuk: how was the flight back? [15:57] hellish [15:57] I can never sleep on planes [15:58] unfortunate [16:03] Keybuk: I've been pondering the idea of transitions in the state machine [16:03] basically, right now if we have state A set, and we say when A on q B, we get state A and B true [16:03] this is good, we want this [16:04] but we might also want this: [16:04] on q transition A to B [16:04] so when q happens, A becomes false, and B becomes true [16:04] it depends whether you reuse your A object for "A and C" [16:04] otherwise it's just two different ways to look at the same effect? [16:05] you'd want to reuse [16:05] that'd be expected behavior for the user [16:05] so [16:05] when A on q B [16:05] when A on r C [16:05] ? [16:06] I don't think you can express that if A transitions to B on q [16:06] since you lost your A tracking for C [16:06] yes, its not appropriate there [16:06] so which you pick depends on the implementation I think [16:06] some cases you want one behavior, some the other [16:06] we can support both [16:07] with different keywords [16:07] when A on q B means if you have A and q happens you keep A and get B [16:07] when A on q goto B means if you have A and q happens you lose A and get B [16:08] would you want the latter behaviour if you have the former? [16:08] runlevels [16:08] sometimes it helps to have a use case for a feature before you worry about it [16:08] think runlevels [16:08] runlevels right now are just different values of A [16:08] but we can view them as independent states [16:09] we can, indeed [16:09] here's an interesting thought [16:09] if A is "runlevel 2" [16:09] and B is "runlevel 3" [16:09] if you transition from 2 to 3, you may not kill all the processes started by 2 [16:10] so would those still hold a reference on 2? [16:10] right [16:10] if A transitioned to B, would those suddenly have null references or reference a different state to what started them? [16:10] hmm [16:10] and if A just went away from the list of active states, and B got added, would that be bad? [16:10] the processes in runlevels right now are outside of our management [16:10] could we fix that? maybe. [16:11] sure [16:12] and can we fix it while the people using them remain oblivious to them? [16:12] we could [16:12] we may only fix it if they have LSB headers [16:13] the thing we're missing is the references go the other way [16:13] the services don't depend on the runlevel [16:13] the runlevel depends on the services [16:13] bringing up a runlevel brings up all the services. [16:14] bringing up all the services doesn't necessarily change the runlevel (in fact the people wanting sysv compat would freak if that happened) [16:16] it'd be interesting if it did :p [16:16] interesting [16:16] and I think we can do it [16:16] lamp = (apache, mysql) + auto [16:16] start lamp [16:16] will start apache and mysql [16:16] but its not right for runlevels [16:16] but [16:16] start apache [16:16] start mysql [16:16] will also inherently say lamp is running [16:16] why not? :P [16:16] take the Fedora model [16:16] if I boot into runlevel 3 [16:16] and I start X [16:16] shouldn't it now say I'm in runlevel 5? :p [16:16] because I am [16:16] not according to sysv [16:17] this is a compat mode. we can't do as much cool stuff here [16:17] show me the line that says that cannot be true :p [16:17] if it ain't broke, it ain't fixed [16:17] I'll show you the mailing list that says it cannot be true :D [16:17] sure [16:17] url to the thread? [16:20] * sadmac2 goes digging archives [16:33] not a specific example, but: [16:34] > Are you seriously suggesting that less than 50% of Fedora systems have [16:34] > yum installed? [16:34] yes; at least on my machines there is yum only on the host while [16:34] guestsystems don't need it. Ratio of physical hosts to virtual [16:34] ^^guy purporting not to have python on 3/4 of his fedora boxes [16:34] point being: the people who care most about sysv compat are batshit insane [16:55] http://cvs.fedoraproject.org/viewvc/rpms/upstart/devel/upstart-telinit-u.patch?revision=1.1&view=markup [16:55] sorry to change the subject [16:55] but about the patch [16:55] yeah [16:55] we'll need a new one won't we? [16:56] ugh, regression. [16:56] actually, it was more the implementation that interested me [16:56] you added a control message [16:56] initctl sends that control message to upstart [16:56] which handles that control message [16:56] by ... [16:56] sending itself the TERM signal [16:56] couldn't you have just made initctl send the term signal? :p [16:56] case 'u': [16:57] kill (1, SIGTERM); [16:57] break; [16:57] I think we figured there would be a better way than self-terming to handle that case down the road [16:57] so you figured it'd be better to add API without knowing what you wanted? :p [16:58] giving yourself the interesting "socket goes away during a call" problem [16:58] I'm amused, rather than anything else, btw :) [16:58] meh [16:58] "I would not have done it that way" [16:58] I learned the control system [16:58] ultimately I think its a product of not looking at both ends [16:58] I wrote the telinit bit [16:59] then realized that once I got the message in init there wasn't much interesting to do with it [16:59] :D [17:07] that sounds like my one attempt to sleep with a woman [17:07] once I got it in, there was nothing else useful to do [18:26] ...wow... [18:26] I should write that down somewhere [18:35] http://www.internettablettalk.com/2008/09/18/osim-maemo-developer-session/ [18:35] something familiar on the slide :) [18:44] HEE [18:44] *hee [18:44] capslock makes everything awkward! [19:57] indeed [19:57] As I understand they will try to go for the native upstart mode [19:58] capslock makes everything awesome! [19:58] bah, there was a bonus available for replying "INDEED" there ;) [19:58] I didn’t dare to type that in caps, though. :-) [19:58] * keesj was at the maemo summit