/srv/irclogs.ubuntu.com/2008/11/06/#upstart.txt

=== Keybuk_ is now known as Keybuk
sadmac2Keybuk: have time to look at the state machine prototype today?15:34
Keybukno, I haven't even got the url to it15:37
Keybukdid you mail it to upstart-devel?15:37
sadmac2Keybuk: I pinged it here. I'll mail it to devel if that's where you want it15:39
Keybuksure15:42
KeybukIRC is lossy ;)15:42
sadmac2Keybuk: just sent15:45
Keybukthx15:46
* Keybuk is still insanely busy15:46
Keybukjaunty planning \o/15:46
Keybukso it's fun busy15:46
sadmac2This summer, Ubuntu gets Jaunty15:47
sadmac2What is it that's Jaunty? Jackalope? Jaguar?15:47
suihkulokkihmm.. I have some post-lenny development plans I should write up and push to ubuntu devs too.. Shared workload and all :P15:53
KeybukJackalope16:22
sadmac2thought that was it16:22
KeybukK is proving tricky on the acronym front ;)16:22
KeybukI liked Kafkaesque :p16:22
sadmac2Kafkaesque Kangaroo16:22
sadmac2heh, Kafkaesque: our most depressing release yet! Fill your computer with existential horror today!16:23
Keybuknot having the name is actually annoying, because jaunty is a bug fix focus release, so we're targetting features to k already16:23
sadmac2Kettle-cooked16:24
KeybukI like Kinky ;)16:25
AlexExtremeKamikase Kangaroo!16:25
sadmac2Ubuntu 9.04: Kinky Keybuk?18:08
* Keybuk gets the chains18:09
sadmac2It seems strange that I'm getting paid at a time like this18:11
Keybukhow so?18:12
sadmac2Hmm, I dunno18:13
Keybukyou mean while I'm not working on anything for you to package?18:13
sadmac2I mean while you're getting the chains18:13
Keybuklol18:13
Keybukit's 6pm here, I'm on my own time ;)18:13
sadmac2I have various infrastructure tasks to keep me busy whilst you're otherwise occupied18:14
Keybukalso note that right now, it's not clear how much work I'll be doing on Upstart for jaunty18:14
Keybukwe're planning over two releases18:14
Keybukso you may end up waiting a whole year for a 1.018:14
sadmac2Oh I think its going to take a year, definitely18:17
sadmac2most of what I need from you is protocol and operating principle for the actual pid 1 service manager18:17
sadmac2after that I can do most of what I need here.18:18
Keybukright, but I may not even *start* that for 6 months18:18
Keybukthat's my point18:18
sadmac2meh, all good18:18
Keybukdepends what ends up on the jaunty list18:19
sadmac2I actually might be moving positions soon18:19
KeybukI know it's kinda a bitch for you guys, but you've done it to us *so* many times ;)18:19
Keybukand at the end of the day, Ubuntu pay my salary not RH, so I do what they want :p18:19
sadmac2absolutely18:19
KeybukI'm probably being a bit more pessimistic than reality right now18:20
KeybukI suspect I'll have lots of time18:20
Keybukand this time round I plan to make regular releases all through development, and keep it in a roughly working state18:20
Keybukas aposed to 0.5, where so much was stripped out, it took ages to get it working again18:20
sadmac2yeah18:21
sadmac2I think it'd be beneficial to look at libnih18:21
Keybukthere's lots of things wrong with libnih18:21
sadmac2for one of my side projects I am experimenting with a new memory model that really makes C a lot easier.18:21
Keybukoh?18:21
sadmac2yeah18:21
Keybukoddly enough that's what I've been playing with recently18:21
sadmac2basically you have a series of "contexts" that are all referred to by name18:21
Keybukhave a prototype new nih_alloc that's based on ion_'s ideas18:21
sadmac2when you allocate you specify a context to allocate into18:22
sadmac2and when you free, you free everything in a context at once, never just one object18:22
Keybukisn't there a name for an allocator like that?18:22
KeybukI'm sure there's something like that in glibc18:23
sadmac2Its quasi region based18:23
sadmac2but the idea is you allocate by the time period an object is relevant for18:23
Keybukit's a bit like obstack18:24
sadmac2so for this web server dealie: theres a context for transactions (opened on a request, closed on reply), a context for the time between receiving the start of a header and receiving the start of the entity, a context between the open and close of the connection, etc.18:25
sadmac2you get a lot of performance gains too, because the allocation operations are simpler, and the free operations are infrequent and much simpler18:27
Keybukare you sure you've not just reinvented an alternate API to obstack? :p18:27
Keybukobstacks are simple, for each obstack you can allocate as many items as you want18:28
sadmac2let me see...18:28
Keybukwhen you free an item, all items allocated *after* that item are also freed18:28
Keybukfreeing the first item clears the obstack18:28
Keybukthey're really useful for exactly what you describe18:28
Keybukattach an obstack to the transaction18:28
Keybukallocate everything from there, including header stuff18:28
Keybukeach time you finish a header parse, free the item that started it (everything allocated for the header goes too)18:28
Keybukeach time you finish a transaction, free the obstack18:29
sadmac2that's good to know :)18:29
sadmac2I think most allocation should work that way.18:29
sadmac2the one thing I did different is most/all of the stacks are globally accessable.18:30
Keybukthe really nice thing about obstacks is they have a sort of memory18:30
Keybukso if you repeatedly do the header phrase, there won't be any actual malloc() or free() calls18:30
Keybuksince you'll just continually reuse the same bit18:31
sadmac2yes. this is good :)18:31
sadmac2why are there no manpages for it?18:32
Keybukbecause it's in glibc18:32
Keybukread the info docs :p18:32
sadmac2friggin gnu freaky manpages18:33
sadmac2granted, info is superior to man in most every way...18:33
sadmac2but who has time for this shit?18:34
sadmac2Keybuk: please note the mailing list post I just made.22:19
ion_tl;dr22:22
ion_Nah, just kidding. I’ll try to read it. :-)22:22
sadmacheh22:35

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!