Conversation with #inferno at Wed Nov 12 12:35:31 2008 on powerman-asdf@irc.freenode.net (irc) (12:35:31) #inferno: The topic for #inferno is: Inferno and Limbo | Website: http://www.vitanuova.com/inferno/index.html | Documentation: http://www.vitanuova.com/inferno/docs.html | Wiki: http://canto.hopto.org/wiki/1/index.html | Tutorial: http://www.resc.rdg.ac.uk/twiki/bin/view/Resc/InfernoTutorial | Mailing list archives: http://dir.gmane.org/gmane.os.inferno.general (12:42:43) mjl-: sqweek: cool, now i have a reason not to change it (12:42:50) mjl-: i always felt it would lead to trouble ;) (12:43:01) mjl-: rog: you wrote the deflate filter for inferno, right? (12:43:14) mjl-: i was wondering if there is a way to flush the buffers, while keeping the deflate state (12:43:19) rog: mjl-: yup. (12:43:42) rog: mjl-: hmm. that's a question. i'll have a look... (12:43:55) mjl-: i don't see a way to do it given the filter interface, but perhaps there is some way... (12:47:12) megaboz [i=none@201.80.219.33] entered the room. (12:47:31) rog: mjl-: filter is a demand-driven interface. i'm not sure it makes sense to ask it to "flush the buffers", as the deflate filter will be in the middle of trying to get enough data to produce some output. (12:48:21) rog: mjl-: (any more than you can do that with the gzip command) (12:48:55) mjl-: true (12:49:18) mjl-: but i guess you could respond with "flush now" when the filter asks for "more data please" (12:49:28) mjl-: but no, it doesn't really fit (12:50:04) mjl-: anyway, the context: i'm implementing an ssh client, and compressing inside the protocol requires flushing buffers (for each packet) while keeping compression state (12:50:22) mjl-: so, no compression for now :) (12:50:58) mjl-: i was pondering whether it would make sense to have a limbo-module-in-c implementation of deflate, for speed (12:51:32) rog: mjl-: if you look at the deflate code, you can see that it either fills the buffer completely, or it decides that it's got eof. (12:51:45) rog: mjl-: i think that would be a very nice thing to have. (12:52:15) rog: mjl-: i'm haven't thought about what the interface should look like though. (12:52:51) rog: mjl-: as you point out, the interface shouldn't necessarily look just like a filter (12:53:29) rog: mjl-: actually, you probably could do it with the filter interface (12:54:07) rog: (as long as you're prepared to modify the deflate code to cope) (12:54:27) rog: you could make deflate interpret a zero-length block as "flush". (12:55:45) rog: erm, no you couldn't. (12:56:03) mjl-: no, the man page says a fill of 0 means the filter will exit (12:56:09) mjl-: terminate (12:56:23) mjl-: i don't know what a deflate lib should look like either (12:56:38) mjl-: rog: was the limbo code somewhat based on/modeled after plan 9's flate(2)? (12:57:07) rog: yup. if the reply channel was (int, string) then you could send (-1, "flush") and have the deflate filter interpret the error message specially. (12:57:24) rog: mjl-: no, i don't think that existed then. (12:57:34) rog: mjl-: in fact, i don't think i've seen it (12:57:39) ***rog goes to look (12:57:42) mjl-: :) (12:58:03) mjl-: it doesn't seem to have anything on flushing buffers (12:59:00) mjl-: so doesn't help to model it after that. (12:59:14) mjl-: and even then, it uses a function pointer to get more data... (13:01:51) rog: mjl-: in fact, it's very similar to the filter interface (13:02:08) rog: mjl-: i think it has the same limitation (13:02:41) mjl-: yes, looks like it. (13:02:50) sqweek: maybe flate was modeled on the limbo code (13:03:17) rog: sqweek: it's possible, i guess (13:03:33) rog: sqweek: although it's a fairly obvious way to do things. (13:04:40) rog: i wonder what the usual zlib compression library looks like. huge, i imagine, as usual! (13:05:34) mjl-: zlib.net (13:05:46) mjl-: http://www.zlib.net/manual.html (13:05:59) mjl-: it wraps all kinds of data structures... (13:06:41) mjl-: p9 & inferno are always nice in that they don't abstract away over too many layers of goo. at least you always know what a ref Sys->FD is all about (13:07:08) rog: i agree (13:07:26) rog: most of the zlib doc seems to be in the header file (13:07:46) rog: Z_SYNC_FLUSH seems to be the thing you're talking about (13:09:16) mjl-: probably as argument to: int deflate (z_streamp strm, int flush); (13:09:30) mjl-: so the magic must by inside z_streamp :) (13:11:55) mjl-: well, i'm going to leave at that for now. don't need the compression that badly (13:12:35) rog: actually, i think the magic is inside deflate. z_streamp just provides a non-demand-driven interface to the streamed data (ugh) (13:13:18) rog: the easiest way to go would be to define a special error value (e.g. -2) which signifies flush. (13:13:20) mjl-: myeah, i saw type Bytef, and i didn't want to find what that was doing... (13:13:33) mjl-: rog: yeah, was just thinking that (13:14:07) mjl-: but i would feel evil if i would implement that :P (13:14:14) mjl-: api-abusing (13:17:09) rog: it is a bit. especially as the API currently says that the filter terminates after receiviing an error reply. it would be better if the filter always terminated by sending a specific message. that way you could send a dud error message and things would still be robust even if it was interpreted differently. (13:18:35) rog: better still would be to define FLUSH: con -2 in the interface. that way all filters that can will implement it. (13:19:10) rog: to be honest, i'm not sure that having the filter terminate immediately on error is a good idea anyway (13:19:26) rog: food for thought (13:26:27) mjl-: yes, i'll keep it in the back of my head :) (13:55:34) acmeuser [n=acmeuser@host-81.200.2.54.su29.ru] entered the room. (13:57:25) acmeuser left the room (quit: Remote closed the connection). (16:08:46) grai [n=grai@128.116.233.220.exetel.com.au] entered the room. (16:09:11) newmanbe [n=btdn@138.74.131.25] entered the room. (16:23:36) grai left the room (quit: Remote closed the connection). (16:23:49) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (16:24:11) grai [n=grai@128.116.233.220.exetel.com.au] entered the room. (16:28:07) newmanbe [n=btdn@138.74.131.25] entered the room. (16:50:01) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (16:51:03) newmanbe [n=btdn@138.74.131.25] entered the room. (17:04:21) npe [n=npe@32.97.110.63] entered the room. (17:06:09) npe: test (17:22:55) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (17:23:26) newmanbe [n=btdn@138.74.131.25] entered the room. (17:31:17) jmpnz [n=mennis@adsl-068-016-104-079.sip.asm.bellsouth.net] entered the room. (17:47:45) mennis left the room (quit: Read error: 110 (Connection timed out)). (18:00:13) jmpnz left the room (quit: ). (18:00:41) newmanbe left the room (quit: Connection reset by peer). (18:01:36) mennis [n=mennis@adsl-068-016-104-079.sip.asm.bellsouth.net] entered the room. (18:14:03) npe left the room (quit: Read error: 104 (Connection reset by peer)). (18:16:58) npe [n=npe@32.97.110.63] entered the room. (19:28:38) newmanbe [n=btdn@138.74.131.25] entered the room. (19:53:49) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (19:59:14) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (19:59:48) newmanbe [n=btdn@138.74.131.25] entered the room. (20:54:58) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (20:55:26) newmanbe [n=btdn@138.74.131.25] entered the room. (21:39:57) newmanbe left the room (quit: Read error: 110 (Connection timed out)). (21:42:22) newmanbe [n=btdn@138.74.131.25] entered the room. (22:04:08) rog left the room (quit: ). (22:27:35) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (22:28:08) newmanbe [n=btdn@138.74.131.25] entered the room. (22:30:11) newmanbe left the room (quit: Connection reset by peer). (22:30:49) newmanbe [n=btdn@138.74.131.25] entered the room. (23:27:10) jas left the room (quit: wolfe.freenode.net irc.freenode.net). (23:27:10) mjl- left the room (quit: wolfe.freenode.net irc.freenode.net). (23:27:10) KillerX left the room (quit: wolfe.freenode.net irc.freenode.net). (23:27:10) uriel left the room (quit: wolfe.freenode.net irc.freenode.net). (23:45:50) jas [n=jas@adsl-69-215-39-41.dsl.chcgil.ameritech.net] entered the room. (23:45:50) mjl- [n=none@knaagkever.ueber.net] entered the room. (23:47:54) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (23:47:54) uriel [n=uriel@li43-28.members.linode.com] entered the room. (01:04:34) newmanbe left the room (quit: Read error: 110 (Connection timed out)). (01:37:31) npe left the room (quit: Read error: 60 (Operation timed out)). (01:56:22) grai left the room (quit: "leaving"). (02:56:36) mennis: Where should I put out limbo source files so that mk will include them in the ipc when it builds? (02:58:46) anothy: you need to list them in your kernel config file. (02:59:38) mennis: Yes, I've done that but I get mk: don't know how to make '/Users/mennis/src/inferno-os-read-only/dis/hellonet.dis' (03:00:21) mennis: Having compiled the .b to dis manually and placed it in dis/ (03:01:16) mennis: So I was thinking perhaps he wants to build it and place it there himself or something. (03:58:42) newmanbe [n=btdn@138.74.131.25] entered the room. (04:00:36) npe [n=npe@66.112.249.148] entered the room. (04:32:20) KillerX left the room (quit: ). (05:57:19) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (05:57:51) newmanbe [n=btdn@138.74.131.25] entered the room. (06:58:48) npe left the room (quit: ). (07:28:18) newmanbe left the room (quit: "Leaving"). (10:10:57) mjl-: has anyone used the (undocumented it seems) blowfish implementation in inferno? (12:19:10) mjl-: does anyone know about a terminal app for inferno? (12:19:14) mjl-: there seems to be wm/vt (12:19:42) mjl-: but it isn't documented, and i'm not sure what it does. might be expecting serial or something (though i don't think so). at least nothing seems to happing when i type in text :) (12:19:43) uriel: aha! every OS needs a typewritter emulator! (12:20:02) uriel: mjl-: btw, do you have any photos from iwp9? (12:20:59) mjl-: a few, let me see (12:21:10) mjl-: http://www.ueber.net/who/mjl/tmp/iwp9-volos/ (12:21:19) mjl-: uriel: and yes, i would like a terminal emulator for inferno :) (12:21:24) mjl-: goes nicely with my ssh client! (12:24:50) uriel: :)) (12:25:10) uriel: do you mind if I add the photos to iwp9.cat-v.org? (12:26:31) mjl-: nopes, go ahead (13:54:36) megaboz left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) sqweek left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) soul9 left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) underspecified left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) auchter left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) defn left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) eekee left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) uriel left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) jas left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) mjl- left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) eno left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:36) C-Keen left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:37) anothy left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:37) mycroftiv left the room (quit: wolfe.freenode.net irc.freenode.net). (13:54:37) olegfink left the room (quit: wolfe.freenode.net irc.freenode.net). (13:55:29) uriel [n=uriel@li43-28.members.linode.com] entered the room. (13:55:29) mjl- [n=none@knaagkever.ueber.net] entered the room. (13:55:29) jas [n=jas@adsl-69-215-39-41.dsl.chcgil.ameritech.net] entered the room. (13:55:29) megaboz [i=none@201.80.219.33] entered the room. (13:55:29) underspecified [n=eric@clair16.naist.jp] entered the room. (13:55:29) anothy [i=none@cpe-76-189-197-62.neo.res.rr.com] entered the room. (13:55:29) mycroftiv [n=infernus@h69-128-47-243.mdsnwi.dedicated.static.tds.net] entered the room. (13:55:29) auchter [n=auchtemm@freya.dhcp.rose-hulman.edu] entered the room. (13:55:29) soul9 [n=none@unaffiliated/johnnybuoy] entered the room. (13:55:29) eno [n=eno@nslu2-linux/eno] entered the room. (13:55:29) C-Keen [i=ckeen@pestilenz.org] entered the room. (13:55:29) sqweek [n=none@203-206-123-128.dyn.iinet.net.au] entered the room. (13:55:29) defn [i=tao@gateway/shell/blinkenshell.org/x-ce87efb9628d27d1] entered the room. (13:55:29) olegfink [n=olegfink@62.141.52.142] entered the room. (13:55:29) eekee [n=notyou@sourcemage/apprentice/eekee] entered the room. (15:34:14) KillerX [n=anant@gentoo/developer/KillerX] entered the room. (15:43:14) npe [n=npe@66.112.249.148] entered the room. (16:00:17) npe left the room (quit: No route to host). (16:04:45) underspecified left the room (quit: ). (16:51:59) npe [n=npe@32.97.110.63] entered the room. (17:10:16) underspecified [n=eric@softbank220043052011.bbtec.net] entered the room. (17:55:57) KillerX left the room (quit: ). (18:05:29) sqweek: npe: Cinap, Uriel and ... #i think it was Fivros (18:05:47) npe: sqweek: what's up? (18:06:12) sqweek: npe: looking at http://picasaweb.google.com/noah.evans/IWP9Greece1031111 (18:07:07) sqweek: npe: Brucee and Lukas(?) #he pronounced his name "ilnis", but i'm not sure how it's spelled. however, he was the one who suggested we meet outside the park hotel on 9fans so let me look up the email (18:07:22) npe: Aaah.... (18:07:57) sqweek: Jonas Amoson (18:08:48) sqweek: so i probably just misinterpreted the syllable for the duration of the conference ;) (18:12:12) npe: cool. (18:12:58) sqweek: finally i don't think Lucio is spelled with an h :) (18:21:15) npe: sqweek: lol... picasa needs to have a wiki function or something. (18:24:58) sqweek: it has an add comment button but it wants me to activate my free picasa account first (18:25:20) sqweek: and it's way too far past my bedtime for those sorts of shenanigans (18:25:23) npe: sqweek: you don't want google selling your information to the russians? (18:25:54) sqweek: that too (18:27:11) sqweek: god forbid the russians get ahold of my real name from when i got invited to gmail (18:27:56) sqweek: "sqweek themouse" would never be able to leave the apartment again (18:28:29) olegfink: well, I work for KGB. (18:28:58) olegfink: whoops, it doesn't exist anymore you say? okay, FSB. (18:29:56) sqweek: yeah but you're like a nonuple agent (18:33:49) npe: n-tuple agent? (18:34:58) mennis: Could someone explain to me or point me at documentation how to incorporate limbo files into the source tree such that they get compiled and incorporated into the rootfs by mk. I have tried compiling the bytecode and placing it in /dis and adding the dis file to my mkfile. (18:37:20) npe: mennis: what do you mean? (18:37:28) npe: where in your tree are you putting the source? (18:37:51) mennis: I don't know where to put it. I have it in /src now. (18:37:57) olegfink: sqweek: nonuple? like in ninefold? (18:38:02) npe: What's your $OBJTYPE and $SYSTARG? (18:39:48) mennis: BJTYPE=386 SYSTARG=Inferno (18:40:08) mennis: oops, OBJTYPE=386 SYSTARG=Inferno (18:41:09) npe: are you really compiling native? (18:41:41) npe: but that's not the main point, do you know about $ROOT/mkfiles? (18:41:53) sqweek: olegfink: indeed (18:41:57) mennis: Yup, and pxe booting the resulting image on x86 hardware. (18:42:26) mennis: no, I don't know about $ROOT/mkfiles. (18:43:33) mennis: also pxe booting onto vmware fusion for convenience. (18:44:32) olegfink: sqweek: could you explain what a nonuple agent means then? :-) (18:44:44) olegfink: the dictionary wasn't really helpful (18:45:47) sqweek: you're familiar with the term double agent? (18:46:03) npe: mennis: check out $ROOT/mkfile (18:46:17) npe: that determines which directories are compiled. (18:46:41) npe: If you want your apps to be part of the main distro putting them in appl isn't a bad id. (18:48:21) mennis: and svn update won't nuke them right? (18:52:37) mennis: nm, testing was as easy as asking. (18:53:34) mennis: and "no, mennis, it won't." (19:20:46) mennis left the room (quit: Client Quit). (19:21:06) mennis [n=mennis@adsl-068-016-104-079.sip.asm.bellsouth.net] entered the room. (19:21:49) olegfink: sqweek: ah. not familiar, but I understand its meaning. (23:09:05) newmanbe [n=btdn@138.74.131.25] entered the room. (23:10:49) npe left the room (quit: ). (23:37:44) npe [n=npe@32.97.110.63] entered the room. (00:02:39) mennis left the room (quit: Client Quit). (00:53:58) npe left the room (quit: Connection timed out). (02:37:54) npe [n=npe@66.112.249.148] entered the room. (02:41:53) defn left the room (quit: Connection timed out). (02:46:24) defn [i=tao@gateway/shell/blinkenshell.org/x-05d5ce34a08c1dad] entered the room. (04:07:13) underspecified left the room (quit: ). (05:01:13) newmanbe left the room (quit: Read error: 104 (Connection reset by peer)). (05:01:52) newmanbe [n=btdn@138.74.131.25] entered the room. (07:43:32) npe left the room (quit: ). (08:11:32) newmanbe left the room (quit: "Leaving"). (11:55:40) uriel left the room (quit: wolfe.freenode.net irc.freenode.net). (11:56:13) uriel [n=uriel@li43-28.members.linode.com] entered the room. (12:42:15) rog__ [n=rog@78.148.187.119] entered the room. (12:50:28) phiber2654 [n=phiber26@modemcable037.101-21-96.mc.videotron.ca] entered the room. (13:06:41) phiber2654 left the room (quit: Read error: 54 (Connection reset by peer)). (15:20:26) rog__ left the room (quit: ).