Conversation with #inferno at Sat Dec 18 22:59:13 2010 on powerman-asdf@irc.freenode.net (irc) (00:28:27) bvalek2 left the room (quit: Quit: Page closed). (00:35:05) base2design [~stewarj@97-80-161-40.dhcp.gwnt.ga.charter.com] entered the room. (00:36:00) base2design: any experience out there using inferno on arm/linux for long-running processes? (00:37:29) mjl: not me at the moment, but i do have an arm with an inferno (just don't run emu much on it currently) (00:39:58) base2design: i need a gc-ed safe concurrent system for a small component of a consumer device. i've played w/inferno for years (nothing serious). java won't fit, go makes me nervous. (00:40:52) base2design: (apologies to all, i've never dabbled in irc, so tell me if i'm being douchey) (00:41:28) mjl: nothing wrong (00:41:33) mjl: but, inferno would probably work (00:41:54) mjl: but i haven't ran emu for long periods on an arm (00:42:01) mjl: i do remember/know there are some problems with the jit (00:42:06) mjl: so if you need speed... (00:43:07) base2design: prob wouldn't need the jit turned on. things that have bitten me in the past with non-c code on embedded systems are garbage collection that never relinquishes to the os, so the process eventually consumes all the system ram. (00:44:19) base2design: so i know bell had inferno on the pathstar, but i'd really like to hear more stories about it's use in "real" commercial systems. (00:45:58) base2design: i guess i have coraid down the street so i should bug those guys ;) (00:46:37) mjl: that's nice! (00:46:55) base2design: oh, a newb question... are the inferno or limbo irc logs kept anywhere i can look at? (00:46:56) mjl: some coraid folks are somewhat active on the inferno mailing list too (00:47:05) mjl: not that i know off... (00:47:26) base2design: have you been to a iwp9? (00:47:27) mjl: btw, i also don't know of any current reasonable-scale commercial use of inferno (00:47:31) mjl: yes (00:47:33) base2design: i went in 2009 (00:47:39) mjl: that was in volos? (00:47:45) mjl: no (00:47:53) mjl: that was at coraid? :) (00:47:59) base2design: yes (00:48:00) mjl: i've been to the european versions (00:48:41) mjl: anyway, fwiw, i have inferno running on my linux/386 server. has been serving http and all kinds of cgi for quite some time (00:49:14) mjl: powerman-asdf is also using it, i think for more important stuff than i'm using it for. don't know of the scale of his services though (00:49:48) base2design: maybe that's the way to measure this... make a prototype on non-embedded target and hammer it (00:51:46) base2design: what http server are you using? (00:52:23) mjl: http://www.ueber.net/code/r/httpd (00:54:42) base2design: mechiel's server? i think he works at coraid. if that's him, i met him (00:56:12) mjl: heh, i'm not at coraid i'm afraid ;) (00:57:37) base2design: whoops :) (00:57:57) base2design: i only thought i knew what i was talking about :) (00:58:19) mjl: i think a WIP-document about that httpd made it into the proceedings, so that could explain an association with the 2009 iwp9 :) (01:04:07) base2design: nice collection of code, btw! (01:05:30) base2design: if i go down this path, i'll have to do all kinds of unsavory things... long-running HTTP connection (request/response from both sides), soap-like XML things. pretty nasty. (01:11:26) mjl: thanks (01:11:34) mjl: sounds relatively nasty indeed :) (01:15:27) base2design: now i know why i'm confused... i though "Michaelian Ennis" was you. you had several papers in the 2009 iwp9 and I confused "Michaelian" with "Mechiel". sorry! blame my USA eyes ;) (01:17:10) base2design: you've got some neat stuff up there... snmp! i could have used that a few years back. netsnmp sucks! (02:03:21) base2design left the room (quit: Quit: base2design). (03:22:55) mjl: http://www.ueber.net/code/r/wmrun (03:22:58) mjl: replacement for wm/sh (03:23:15) mjl: it has it all: tab completion, vi-like command editing, command history, and more (06:48:03) hotaru2k3 [debian-tor@gateway/tor-sasl/hotaru2k3] entered the room. (07:22:41) anth_x left the room (quit: Quit: anth_x). (07:36:42) anth_x [none@cpe-76-190-129-110.neo.res.rr.com] entered the room. (07:55:14) jas: I've not use native Inferno for anything, but do have a production system coming out that leverages emu on for quite a few things. (08:00:47) jas: so far the only problem I"ve had w/ emu isn't really emu related, but X11 errors on Linux that are really hard to track down (08:06:45) jas: mjl: do you need feedback on wm/run? I got a little log message "tkcmd: '.t.outerr.t index @-3,398': !bad index -width (08:12:26) jas: from the looks of it, I think I'll be putting wm/run and vixen to some use in the near future. Thanks! (08:31:19) anth_x left the room (quit: Quit: anth_x). (09:33:37) bvalek2 [5985141d@gateway/web/freenode/ip.89.133.20.29] entered the room. (10:04:32) anth_x [none@cpe-76-190-129-110.neo.res.rr.com] entered the room. (10:07:15) anth_x left the room (quit: Client Quit). (10:07:34) anth_x [none@cpe-76-190-129-110.neo.res.rr.com] entered the room. (10:58:31) idr [~idr@e179154096.adsl.alicedsl.de] entered the room. (11:22:13) idr left the room (quit: Remote host closed the connection). (11:25:36) idr [~idr@e179154096.adsl.alicedsl.de] entered the room. (11:32:20) idr left the room (quit: Remote host closed the connection). (11:37:31) idr [~idr@e179154096.adsl.alicedsl.de] entered the room. (11:44:06) idr left the room (quit: Remote host closed the connection). (12:30:39) hotaru2k3 left the room (quit: Disconnected by services). (12:30:48) hotaru2k3 [debian-tor@gateway/tor-sasl/hotaru2k3] entered the room. (13:27:28) hotaru2k3 left the room (quit: Disconnected by services). (13:27:33) hotaru2k3 [debian-tor@gateway/tor-sasl/hotaru2k3] entered the room. (13:46:55) hotaru2k3 left the room (quit: Ping timeout: 245 seconds). (13:51:31) hotaru2k3 [debian-tor@gateway/tor-sasl/hotaru2k3] entered the room. (15:21:00) base2design [~stewarj@97-80-161-40.dhcp.gwnt.ga.charter.com] entered the room. (15:33:24) base2design left the room (quit: Quit: base2design). (16:06:51) hotaru2k3 left the room (quit: Disconnected by services). (16:07:00) hotaru2k3 [debian-tor@gateway/tor-sasl/hotaru2k3] entered the room. (16:30:43) base2design [~stewarj@97-80-161-40.dhcp.gwnt.ga.charter.com] entered the room. (17:08:44) mjl: jas: thanks! (17:09:49) mjl: i'll fix that tkcmd error message (17:10:06) mjl: it happens because i don't check if the mouse button is released inside the text area (17:10:20) mjl: if you have any other feedback, i'm interested too in that (17:10:40) mjl: also for usability and such. i think i went a bit overboard with the shortcuts for wm/run (17:11:27) mjl: i started wm/run as an experiment, especially the split modes, but it turned out looking useful soon enough. but using it longer should show it. (17:11:52) mjl: i've been using vixen a lot for the last days (e.g. writing wm/run, and all other editing) (17:12:12) mjl: it becomes noticably slow on larger files (17:12:43) mjl: and doesn't implement all vi commands correctly, but it hasn't crashed for me in the past week (17:12:53) mjl: i'm happy easily ;) (17:37:12) base2design left the room (quit: Quit: base2design). (17:57:20) base2design [~stewarj@97-80-161-40.dhcp.gwnt.ga.charter.com] entered the room. (18:04:13) base2design: i heard rumors of a limbo chat somewhere... is that true, or is this the best forum (18:31:17) mjl: i don't know of a channel about limbo (18:31:27) mjl: as far as i know, this is the best place (18:53:10) base2design left the room (quit: Remote host closed the connection). (18:55:46) base2design [~stewarj@97-80-161-40.dhcp.gwnt.ga.charter.com] entered the room. (18:57:44) Fish- [~Fish@9fans.fr] entered the room. (18:57:48) base2design: so it appears the emu on arm under linux (Inferno Fourth Edition (20090430) main) starts 4 processes... is there a gentle guide where can i learn of the reason for this? (18:58:38) base2design: (keep in mind, I'm trying to garner support for running inferno on an already "loaded" box) (19:00:15) mjl: inferno will start many procs, it won't stop at just 4 (19:00:52) mjl: you can look in the source for the procs it starts, /emu/port/*.c for the generic stuff and /emu/Linux/ for the linux-specific parts (19:00:56) mjl: kproc() starts a new proc (19:01:07) mjl: there is one that just reads characters from the keyboard (19:01:41) mjl: these procs are clone(2) procs on linux i think, with resources shared. i think that makes them relatively lightweight (19:02:07) mjl: anyway, blocking system calls (e.g. read) from within limbo programs are run in their own procs (19:02:24) mjl: and there is a proc that runs the dis interpreter (19:02:43) base2design: oh, that makes sense... i was going to ask if they're processes or threads. i understand the distinction clone provides. so really the overhead is less than a "fork()ed" process. (19:02:53) mjl: ys (19:02:54) mjl: yes* (19:03:50) base2design: from what i read years back (i think), then things outside of the inferno vm that might block get moved into a kproc? (19:04:08) mjl: jups (19:04:12) base2design: (oh, that's what you just said... sorry i'm so slow) (19:04:16) mjl: if (__clone(tramp, tos, CLONE_PTRACE|CLONE_VM|CLONE_FS|CLONE_FILES|SIGCHLD, p) <= 0) (19:04:33) mjl: that's at the end of the kproc() function, in /emu/Linux/os.c (19:05:03) mjl: i've been wondering whether an epoll-based implmenetation can be made for linux, or kqueue for bsd (19:05:17) mjl: i only wondered for a few moments, then moved on ;) (19:05:55) base2design: you know i think i have brian stuart's book and if i remember, it has a nice walk-thru of these issues. (19:06:06) base2design: hehe (19:06:53) base2design: my typical c-work involves heavy use of select()/poll()/epoll(). (19:08:02) base2design: i understand kqueues from a conceptual level (the thing that i liked was the ability to "block" on not only i/o but signals and process death (among others). (19:08:34) base2design: i'm using pmap to try to reason this out without busting open the code for now. (19:09:32) base2design: so it looks like i compiled this emu over a year ago (20090430). any reason to track the later changes? (19:10:03) mjl: there have been improvements, if it's not too troublesome, i would update (19:10:12) mjl: it all compiles quickly anyway (19:10:29) base2design: do you cross-compile? (19:10:57) mjl: i don't know much about the details of kqueue or epoll, i thought they did similar things. i also thought on linux there was some way to get signals to epoll (or signals through fd's?) (19:11:06) mjl: nopes, i don't crosscompile (19:11:24) mjl: my arm machine is a sheevaplug, plenty of resources to install a compiler and run it (19:11:37) base2design: it was tricky (for me) but i'm sure if i do it a few more times, it won't be so scary (19:13:33) base2design: regarding signals to epoll, i do the ugly "signal handler generates a character on a pipe that's part of my fdset" hack. (19:13:43) base2design: but there may be a better way now under linux (20:14:05) base2design left the room (quit: Quit: base2design). (20:20:40) hotaru2k3 left the room (quit: Disconnected by services). (20:20:48) hotaru2k3 [debian-tor@gateway/tor-sasl/hotaru2k3] entered the room. (20:53:34) base2design [~stewarj@97-80-161-40.dhcp.gwnt.ga.charter.com] entered the room. (21:02:24) base2design left the room (quit: Quit: base2design). (21:02:46) base2design [~stewarj@97-80-161-40.dhcp.gwnt.ga.charter.com] entered the room. (21:06:15) base2design: does anyone here understand the license better than me? (21:07:05) base2design: i wish to include emu and a bare-bones root (enough to start my own apps). (21:07:17) base2design: can i do this for a commercial product? (21:08:06) base2design: of course any changes i might make to emu, i'd expect to make public... (21:10:52) mjl: i think that should be okay, the code is gpl right? (21:11:17) mjl: well, most parts (21:11:22) mjl: but all parts of "free" (21:11:29) mjl: http://www.vitanuova.com/inferno/licence.html (21:11:39) mjl: Which licence should I choose? (21:11:40) mjl: If you distribute Inferno with changes or additions to sections of Inferno that are under GPL or LGPL, and you will distribute (or otherwise make available) the source code to those changes or additions, you can choose the Free Software Scheme, otherwise choose the Commercial Developer Licence. (21:13:18) base2design: well gpl is a dirty word at my work. (21:13:31) base2design: mit/bsd are a little easier to grok (21:14:43) mjl: gpl also doesn't have my preference. (21:15:01) base2design: i guess that reads if i change something i need to know who owns it and find the answer. (21:15:03) mjl: some code is plan 9's license (which is open source too), and there is quite a lot of MIT/BSD licensed code in inferno too (21:15:20) mjl: jups (21:15:24) base2design: so... emu+sh+* unchanges + my stuff, i should be ok (21:16:06) base2design: as you can guess, i'm trying to get my ducks in a row before i get shot down. (21:23:46) mjl: better get some ammo to shoot back! ;) (21:25:13) base2design left the room (quit: Quit: base2design). (22:00:59) base2design [~stewarj@97-80-161-40.dhcp.gwnt.ga.charter.com] entered the room. (22:01:12) base2design left the room (quit: Client Quit). (22:15:38) Fish- left the room (quit: Quit: So Long, and Thanks for All the Fish). (22:17:07) Fish- [~Fish@9fans.fr] entered the room. (22:56:42) The account has disconnected and you are no longer in this chat. You will be automatically rejoined in the chat when the account reconnects.