=== administrator_ [i=administ@nat/cisco/x-25d4413a51d0f9ec] has joined #upstart === mbiebl [n=michael@e180092186.adsl.alicedsl.de] has joined #upstart === j_ack [n=rudi@p508D9256.dip0.t-ipconnect.de] has joined #upstart === j_ack [n=rudi@p508D9256.dip0.t-ipconnect.de] has joined #upstart === administrator_ [i=administ@nat/cisco/x-255e312bf7d07859] has joined #upstart === Amaranth [n=travis@ubuntu/member/Amaranth] has joined #upstart === asdaf is back (gone 15:46:02) [10:48] <_ion> Sigh. === Md [i=md@freenode/staff/md] has joined #upstart === cort [n=sam@62-31-146-25.cable.ubr12.azte.blueyonder.co.uk] has joined #upstart === Keybuk [n=scott@quest.netsplit.com] has joined #upstart [12:22] <_ion> keybuk: Btw, how about LUA for an alternative to sh in jobs? liblua* are so small that moving them to /lib shouldn't be a problem. [12:23] <_ion> It's a quite nice language. [12:24] it's a nice syntax, but it's a pain since you have to code every single damned function primitive yourself === pkt [n=knoppix@85.75.167.149] has joined #upstart === pkt [n=knoppix@85.75.167.149] has joined #upstart === mbiebl [n=michael@e180122191.adsl.alicedsl.de] has joined #upstart [02:18] <_ion> keybuk: Btw, are you familiar with the dovecot library? [02:18] <_ion> keybuk: cvs -d :pserver:anonymous@dovecot.org:/home/cvs co dovecot, see dovecot/src/lib [02:23] no? [02:23] I'm familiar with dovecot, obviously [02:25] most C programs end up acquiring their own "standard library" [02:25] or they use another like glib wholesale [02:25] <_ion> The library is somewhat similar to e.g. libnih and glib. The interesting thing is the data stack / mempool stuff. [02:26] <_ion> (It's not dovecot-specific, although it has been developed with dovecot. At least icecapd+irssi2 use it in addition to dovecot.) [02:27] yeah, I do have a long-running nih todo about temporary memory [02:27] upstart does use it to a small degree (mostly in message processing) [02:27] I'd somewhat like it to be compatible with nih_alloc though, as being able to steal temporary data is useful === Keybuk has also been a little concerned about the memory usage of nih_alloc [02:28] the overhead for a job definition is quite high [02:29] I have a vague thought about it though [02:29] allocations with no parents could have a certain minimum size, say one page [02:29] if child allocations to those could be fitted into that page, they would [02:30] I'm not sure how to structure that to reduce overhead though === j_ack [n=rudi@p508dbb9c.dip0.t-ipconnect.de] has joined #upstart === Ack` [n=Ack@81-208-31-208.ip.fastwebnet.it] has joined #upstart [06:13] <_ion> keybuk: Jobs need to be able to *programmatically* create new jobs. :-) [06:13] <_ion> A pseudo-code example for the mount job: [06:13] <_ion> start on startup [06:13] <_ion> start ruby # Not that Ruby is ever going to be an Upstart scripting language [06:13] <_ion> # ... [06:14] <_ion> mountpoints.each do |mountpoint| [06:14] <_ion> deps = mountpoint_deps mountpoint [06:14] <_ion> job = Upstart::Job.new "mount-" + mountpoint.sanitize [06:14] <_ion> job.on job.and(deps.map {|dep| "filesystem-mounted " + dep }) [06:14] <_ion> job.start :script, 'mount $1; emit filesystem-mounted $1' [06:14] <_ion> end [06:14] <_ion> end lua [06:16] <_ion> I didn't think about race conditions etc, though. It's just a quick example. [06:16] <_ion> I also forgot to add 'and block-device-added ...' to the 'on' list. [06:17] start ruby, but end lua ? :p [06:17] err [06:17] how is that different from just emitting an event with the requisite details? [06:18] <_ion> Hah. I first wrote 'start lua, end lua' but then thought i'd use ruby instead. Forgot to change the end line. :-) [06:18] the trouble with trying to define a job like that is ... what happens if the event happens before the job is registered? :p [06:20] <_ion> Yes, filesystem-mounted events must not happen before that's processed. Perhaps make a special pre-startup event for metajobs, and process other job after they have done their thing. [06:22] <_ion> It would seem cleanest if the mount job computed the prerequisite mountpoints instead of the fsck job that emits the event the mount jobs act on. === Keybuk isn't convinced === j_ack [n=rudi@p508DBB9C.dip0.t-ipconnect.de] has joined #upstart === administrator_ [i=administ@nat/cisco/x-85f4ee88ac0494ea] has joined #upstart === jonib1 [n=jonas@ua-83-227-144-18.cust.bredbandsbolaget.se] has joined #upstart [07:18] <_ion> Another approach: http://soijabanaani.net/tmp/upstart-mount === juergbi [n=juerg@80-219-17-102.dclient.hispeed.ch] has joined #upstart === jonib1 [n=jonas@ua-83-227-144-18.cust.bredbandsbolaget.se] has left #upstart [] === Md [i=md@freenode/staff/md] has joined #upstart === j_ack [n=rudi@p508DBB9C.dip0.t-ipconnect.de] has joined #upstart === j_ack [n=rudi@p508DBB9C.dip0.t-ipconnect.de] has joined #upstart === Lrrr_ [i=neumann@bas1-sherbrooke40-1177937169.dsl.bell.ca] has joined #upstart [12:01] hello, how do I make upstart reread it config files? === Lrrr_ [i=neumann@bas1-sherbrooke40-1177937169.dsl.bell.ca] has left #upstart ["meh!"] [12:09] <_ion> He was in a hurry.