Show enters and exits. Hide enters and exits.
| 02:53:46 | dwaite | I think I figured out the newline thing brixen |
| 05:45:45 | evan | brixen: poke |
| 06:01:58 | brixen | evan: yo |
| 06:02:20 | brixen | I was off reading zedshaw :) |
| 06:02:35 | brixen | interesting post on epoll vs poll |
| 06:11:03 | dwaite | yeah both suck ;) |
| 06:17:37 | brixen | dwaite: what would you use? |
| 06:18:22 | dwaite | I'm trying to find this amazing article I read where the guy basically made a comit-style server on hardware he borrowed @ facebook |
| 06:18:27 | dwaite | and got it up to 1 million sockets |
| 06:19:09 | brixen | 1 million actual sockets or virtual sockets? |
| 06:19:25 | evan | brixen: yes, his article is quite interesting |
| 06:19:34 | evan | his reasoning makes good sense to me as well. |
| 06:19:35 | dwaite | he had to bind to multiple addresses and have multiple client simulators because ports are only 16 bit |
| 06:19:55 | brixen | evan: yeah, actually running some tests and testing assumptions is a novel thought :) |
| 06:20:04 | evan | the thing he didn't mention is whether are not his benchmarking included putting active fds into the epoll data structure |
| 06:20:10 | evan | in poll, thats very fast |
| 06:20:16 | evan | in epoll, thats a syscall, like he says |
| 06:20:20 | brixen | yeah |
| 06:20:25 | evan | so i wonder if we're seeing that syscall overhead as well. |
| 06:20:34 | brixen | he followed up with his test harness and graphing scripts |
| 06:20:40 | brixen | I didn't look through that though |
| 06:20:45 | evan | ah cool. |
| 06:20:53 | evan | now, why did I ping you. |
| 06:20:57 | brixen | heh |
| 06:20:58 | evan | the brownies just came out of the oven |
| 06:21:01 | evan | so i've got brownie brain. |
| 06:21:04 | brixen | you wanted to share some brownies! |
| 06:21:10 | evan | hah |
| 06:21:14 | brixen | <3 brownies |
| 06:21:17 | evan | /dcc brixen /oven/brownie |
| 06:21:20 | brixen | heh |
| 06:21:27 | brixen | /accept |
| 06:21:48 | evan | well, anyway |
| 06:21:50 | dwaite | mmm brownies |
| 06:21:52 | evan | i'm headed to MT tomorrow. |
| 06:21:56 | brixen | ok |
| 06:22:02 | evan | should be mostly online though. |
| 06:22:14 | brixen | cool |
| 06:22:22 | brixen | I'm hoping to finish pack/unpack this week |
| 06:22:25 | evan | going to be working on hydra more and do a little bit of sorted out for 1.1 |
| 06:22:36 | evan | there is one thing left to finish for the debugger for 1.1 |
| 06:22:36 | brixen | when do you want to release 1.1? |
| 06:22:48 | evan | well, i'd said august. |
| 06:22:57 | evan | i'd like to get our ducks in a row |
| 06:23:04 | brixen | sure |
| 06:23:06 | evan | big feature wise |
| 06:23:14 | evan | then look and see if we want/need to pull in little things |
| 06:23:38 | brixen | I was hoping to have rbx doc a bit ready to go with the other dev tools |
| 06:23:45 | evan | for instance, i'd love for the json thing to be sorted out for 1.1 |
| 06:23:45 | brixen | but I think pack/unpack is more important |
| 06:23:56 | brixen | can't we push a json gem? |
| 06:24:11 | evan | that would mean either fixing the json gem (possible) or doing a change to our rubygems to redirect people who want json 1.4.3 to our version |
| 06:24:20 | evan | we can push one, but it won't be named json |
| 06:24:35 | evan | charlie has some privs to push version of json, he got that to push the java version |
| 06:24:38 | brixen | I thought rubygems was allowing jruby to push one |
| 06:24:51 | brixen | hmm |
| 06:24:52 | evan | he's looking into if they're ok with us changing the gem in non-java ways |
| 06:24:57 | brixen | ok |
| 06:25:02 | evan | i'm treading lightly there |
| 06:25:11 | brixen | yeah, of course |
| 06:25:14 | evan | since it's easy to start a shit storm. |
| 06:25:17 | brixen | no doubt |
| 06:25:29 | brixen | but this guy is pretty unreasonably absent |
| 06:25:36 | brixen | from the perspective of the gem's users |
| 06:25:45 | evan | yep. |
| 06:26:04 | evan | if the rubygems admins give the thumbs up, it will be easy |
| 06:26:10 | evan | since we've changed a total of 2 lines. |
| 06:26:10 | brixen | cool |
| 06:26:37 | brixen | yeah, would be hard to have a fit about that |
| 06:26:48 | evan | i guess rails 3 is looking to go gold soon |
| 06:26:59 | brixen | oh awesome |
| 06:27:08 | evan | so we need to do a round of running the rails 3 tests |
| 06:27:30 | brixen | yeah |
| 06:31:18 | evan | ok, i have to go pack (aka eat another brownie) |
| 06:31:26 | brixen | hah |
| 06:31:28 | brixen | ok! |
| 06:31:28 | evan | hydra is going well |
| 06:31:33 | evan | thread specs running more stable |
| 06:31:34 | brixen | that is awesome |
| 06:31:37 | evan | still some crashes |
| 06:31:40 | brixen | so awesome |
| 06:32:37 | evan | going to work on making LookupTable and MethodTable threadsafe |
| 06:32:45 | evan | i've got an idea for lock-less reads |
| 06:32:52 | brixen | ah cool |
| 06:33:03 | brixen | I'm reading wait-free synchronization |
| 06:33:09 | evan | oh good. |
| 06:33:24 | evan | basically, my thinking is to not reuse LookupTable::Entry's much at all. |
| 06:33:58 | evan | so that a reader can tolerate a writer modifying the bin chains |
| 06:34:20 | evan | probably slightly higher allocation rate, but that should be a big deal. |
| 06:34:31 | brixen | cool |
| 06:35:30 | brixen | ok, gotta bougie, this place is closing... |
| 06:35:36 | evan | also got to work on something describing the memory model |
| 06:35:37 | evan | ok cool |
| 06:35:38 | dwaite | oh sorry |
| 06:35:40 | evan | talk to ya tomorrow. |
| 06:36:14 | brixen | ok, enjoy the brownies! |
| 06:36:15 | dwaite | I'm mostly interested in kqueues and aio, kqueues because they seem to be the nicest programming interface, and aio because its the standard |
| 06:36:23 | dwaite | but I've been unable to really get performance benchmarks on them |
| 06:36:32 | dwaite | and don't really have server hardware lying around to try it myself |
| 06:37:03 | dwaite | given infinite time and some multiplier of my current energy level |
| 06:37:33 | dwaite | I wanted to try to divide the networking driver between the kernel and user mode, actually much much more in user mode |
| 06:38:01 | dwaite | see if I can just hand a user process a memory page with a packet in it, or vice versa |
| 06:39:38 | dwaite | I figure you could still put a posix api on it, but the direct interface would allow for zerocopy reads/writes |
| 06:40:05 | dwaite | one of the L4 kernels seemed the best testbed for this :) |
| 07:24:14 | dbussink | evan: is one of the thread crashes when raising an exception in the thread? because i had that as a crash repro |
| 07:28:46 | evan | dbussink: yes, it was. |
| 07:29:06 | dbussink | evan: ah ok, but that one is fixed or still an issue? |
| 07:29:16 | evan | fixed. |
| 07:29:21 | evan | if you still have issue with it, let me know. |
| 07:29:24 | evan | there might still be one |
| 07:29:31 | evan | but it seems to work well enough for the thread specs to normally pass |
| 07:33:14 | dbussink | evan: my repro doesn't crash anymore :) |
| 07:33:49 | dbussink | evan: hydra is planned to be merged after the 1.1 release i guess? |
| 07:34:49 | evan | if all goes well, yep! |
| 07:36:16 | evan | awesome |
| 07:36:23 | evan | united now has mobile phone boarding documents. |
| 07:36:35 | dbussink | evan: klm has had that for quite a while here i think |
| 07:36:39 | evan | ok, off to bed with me |
| 07:36:44 | evan | got to be up in 5 hours. |
| 07:36:47 | dbussink | colleague of mine tried it last time to the us |
| 07:37:00 | evan | i'll let ya know how it works on united tomorrow. |
| 07:37:01 | dbussink | but it had some annoyances, it worked better with my paper version :P |
| 07:37:01 | evan | :) |
| 07:37:04 | dbussink | evan: nite! |
| 07:37:13 | evan | nite! |
| 07:37:26 | evan | dbussink: please bang on hydra and let me know |
| 07:37:35 | evan | feel free to fix any bugs |
| 07:37:35 | dbussink | evan: ok, cool :) |
| 07:37:36 | evan | :) |
| 07:38:17 | evan | k |
| 07:38:18 | evan | nite. |
| 12:18:18 | goyox86 | morning! |
| 12:29:55 | JamesKilton | yo yo |
| 14:56:13 | dwaite | good morning |
| 14:59:35 | dbussink | morning |
| 14:59:40 | dbussink | or afternoon ;) |
| 15:00:02 | kronos_vano | evening... |
| 15:01:58 | dwaite | goodtimes |
| 15:02:23 | dwaite | hope everyone is well at this particular moment of the day |
| 17:20:41 | goyox86 | http://www.youtube.com/watch?v=PtRhID6qs14 |
| 17:21:55 | brixen | haha |
| 17:22:08 | brixen | goyox86: this is a serious channel, we do serious work here |
| 17:22:17 | brixen | :) |
| 17:22:20 | goyox86 | :) |
| 19:43:34 | chanks | I just cloned Rubinius and did ./configure and rake, and I got some test failures which I don't really understand |
| 19:43:43 | chanks | I put them in a gist: http://gist.github.com/508664 |
| 19:45:17 | Defiler | What operating system are you running? |
| 19:47:52 | Defiler | My guess is that the specs have mis-detected which flavor of unix you are using |
| 19:47:54 | chanks | Ubuntu Lucid |
| 19:49:26 | Defiler | hrm |
| 19:49:27 | Defiler | http://manpages.ubuntu.com/manpages/maverick/man2/read.2.html |
| 19:49:38 | Defiler | It really should be giving back EISDIR |
| 19:49:52 | Defiler | Short answer: Don't worry about it |
| 19:50:11 | Defiler | Longer answer: It's probably a bug in Ubuntu Lucid's version of the kernel, etc, etc. |
| 19:50:49 | chanks | Hmm, ok |
| 19:50:57 | Defiler | That's just a guess though |
| 19:51:07 | Defiler | but definitely those errors don't signify a problem with your rubinius build |
| 19:51:26 | Defiler | at worst they will necessitate some extra if/then action in the rubyspecs |
| 19:53:08 | brixen | or a giant sledge hammer on ubuntu's head |
| 19:53:22 | Defiler | brixen: is bin/mspec -tr spec/ruby still the right way? |
| 19:53:30 | Defiler | to check that those specs fail identically on 1.8? |
| 19:53:34 | brixen | yeah |
| 19:53:51 | Defiler | chanks: ok, try that then :) |
| 19:54:51 | brixen | I'll load lucid in a vbox instance sometime today |
| 19:55:00 | brixen | probably shouldn't do that on cafe wifi |
| 19:58:39 | Defiler | brixen: so, hey.. spec run on OS X.. if I have the firewall, I get prompted for that damn 'allow connections' thing |
| 19:58:50 | Defiler | Is there a way to work around that, other than disabling the firewall before a build? |
| 19:59:11 | brixen | hmm |
| 19:59:15 | Defiler | It's fairly irritating because every time the 'vm' binary signature changes it comes back |
| 19:59:36 | brixen | I don't know about a workaround |
| 19:59:49 | brixen | which specs are causing it? |
| 19:59:56 | Defiler | one of the socket ones I presume |
| 20:00:04 | Defiler | something that needs to connect to localhost |
| 20:00:14 | brixen | I could try to make a without_firewall do ... end guard |
| 20:00:16 | brixen | :P |
| 20:00:19 | Defiler | hehe |
| 20:00:28 | Defiler | that could get skeevy on your, say, coffee shop wifi |
| 20:00:58 | brixen | every network/socket spec needs to be audited frankly |
| 20:01:36 | brixen | the w/o_fw guard would try to detect if you have a firewall running and avoid yielding ;) |
| 20:01:48 | brixen | accepting patches for the "try to dectect" parrt |
| 20:01:59 | brixen | I've got the yielding covered |
| 20:04:36 | chanks | I tried bin/mspec -tr spec/ruby, and it spat out some failures, and now it looks hung |
| 20:04:50 | chanks | And now it's sucking down 1.1GB of my memory :-o |
| 20:06:03 | Defiler | Now I finally believe you that you are running Ubuntu. :) |
| 20:06:58 | chanks | Wonderful |
| 20:07:46 | Defiler | brixen: We should list Ubuntu in the 'supported operating systems' at the same level of the hierarchy as 'Linux' and 'Mac OS' |
| 20:08:32 | brixen | chanks: some specs get committed that expose bugs in mri |
| 20:08:52 | brixen | chanks: kill it and run with mspec -tr -V spec/ruby if you can |
| 20:08:57 | brixen | and tell me which file it hangs in |
| 20:09:09 | brixen | Defiler: because Ubuntu is its own system? |
| 20:09:18 | Defiler | Yeah |
| 20:09:26 | chanks | Could RVM be messing it up? |
| 20:09:39 | Defiler | Shouldn't be; I use rvm myself and I just completed a clean run of the specs |
| 20:10:06 | chanks | I have my default ruby set to REE, and it starts off the spec run with that |
| 20:10:06 | brixen | chanks: run rvm reset in your terminal before running that command |
| 20:10:12 | brixen | ok |
| 20:10:59 | brixen | then perhaps it exposes a bug in ree |
| 20:13:51 | chanks | Well, they ran all the way through that time |
| 20:13:55 | chanks | 45 errors |
| 20:14:11 | Defiler | Does REE regression-test with rubyspec? |
| 20:14:17 | brixen | probably not |
| 20:14:21 | Defiler | fail |
| 20:17:39 | brixen | I think hongli got pissed when I thinned the rubyspec commit bits |
| 20:18:50 | Defiler | welp |
| 20:19:47 | brixen | I haven't lost any sleep over it |
| 20:20:09 | brixen | but I sure enjoy fixing all these terrible specs |
| 20:20:52 | Defiler | Man you should just let the Stockholm Syndrome kick in |
| 20:21:28 | brixen | I should just delete rubyspec.org and keep them in rbx :) |
| 20:21:45 | Defiler | Fully |
| 20:22:05 | Defiler | Now that the pan has flashed, it can go back to being efficient |
| 22:53:57 | tarcieri | evan: ping? |
| 23:01:30 | evan | allo. |
| 23:04:16 | brixen | evan: so, the CAS intrinsic is not in gcc 4.0.1 |
| 23:04:22 | evan | yep. |
| 23:04:27 | brixen | I've been running hydra on ubuntu |
| 23:04:38 | evan | gcc 4.1 is when they were added. |
| 23:04:41 | brixen | but we should probably address that for eg compiling with clang |
| 23:04:52 | evan | I think clang supports those. |
| 23:04:57 | brixen | oh |
| 23:05:11 | brixen | doesn't os x have one too? |
| 23:05:23 | brixen | that can be used in place of the intrinsic? |
| 23:05:31 | evan | but either way, yes, we fix it for non-gcc 4.1 |
| 23:06:02 | evan | CAS for x86 is easy with inline assembly |
| 23:06:08 | evan | then it will work on all gcc's |
| 23:06:10 | evan | and clang. |
| 23:06:21 | brixen | is that what we should do? |
| 23:06:21 | evan | since they use the same inline assembly format. |
| 23:06:29 | evan | thats pretty much the only option. |
| 23:06:32 | brixen | ok |
| 23:07:54 | evan | I knew about these going in |
| 23:08:00 | evan | but ignored them on purpose for now. |
| 23:08:08 | brixen | sure, no biggie |
| 23:08:20 | brixen | just curious about how to generalize it |
| 23:08:38 | brixen | I know you can do it with asm, wasn't sure if you had another plan |
| 23:09:00 | evan | well, depends on the platform/os |
| 23:09:13 | evan | generalizing it for x86 gets us a long way. |
| 23:09:27 | evan | and it's easy to find the assembly for this for arm, ppc, etc. |
| 23:09:33 | evan | because it's a quite common thing. |
| 23:12:19 | brixen | cool |
| 23:14:10 | evan | i was going to abstract it soon |
| 23:14:14 | evan | i'll go ahead and do that next. |
| 23:14:34 | evan | and I'll introduce a generic x86 version. |
| 23:17:04 | brixen | sweet |
| 23:20:01 | evan | i'm abstracting Mutex and SpinLock a little bit now |
| 23:20:09 | evan | to track the ruby thread that locked them |
| 23:20:15 | evan | and be able to report the file:line that they were locked on |
| 23:20:39 | evan | next is to register them with the thread that locked them to be able to dynamicly report why a deadlock occured. |
| 23:20:48 | brixen | excellent |
| 23:20:56 | brixen | that's what I get running the specs, a deadlock |
| 23:21:33 | evan | oh? still? |
| 23:21:35 | brixen | it's not deterministic, but I was pondering that very question |
| 23:21:36 | evan | ok |
| 23:21:50 | evan | yeah, pthread can sort of report a deadlock |
| 23:22:36 | evan | it usually does it by just reporting EDEADLK if you lock a mutex that the current thread has already locked. |
| 23:23:00 | brixen | well, I was hitting an assert |
| 23:23:11 | evan | yeah |
| 23:23:20 | evan | thread::Mutex aborts on deadlock |
| 23:24:12 | evan | we're not going to use thread::Mutex directly, but rather rubinius::Mutex which will have this extra info. |
| 23:24:34 | brixen | ok |
| 23:29:56 | evan | brixen: see im. |
| 23:35:24 | goyox86 | evan: hi man!, is just me?, running ci specs give me a Terminated: signal SIGHUP, and the runner gets hung before exiting |
| 23:35:36 | evan | on the main branch or hydra? |
| 23:36:23 | goyox86 | evan: omg good question let me check i'm pretty sure it's in master |
| 23:36:36 | evan | if it's master, it's just you. |
| 23:36:40 | evan | i haven't heard of that. |
| 23:36:44 | goyox86 | evan: k |
| 23:52:26 | evan | ok, off for a jog |
| 23:52:29 | evan | going to be fun |
| 23:52:32 | evan | i'm at 6k feet. |
| 23:54:23 | brixen | wow, I didn't realize you were that high |
| 23:56:34 | evan | :D |
| 23:56:36 | evan | i'm here: http://en.wikipedia.org/wiki/Quake_Lake |
| 23:58:16 | brixen | wow, cool |
| 23:58:59 | evan | more specificly: http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=quake+lake,+mt&sll =34.085506,-118.331316&sspn=0.011729,0.019226&ie=UTF8&hq=&hnear=Quake+Lake&ll=44 .825294,-111.461642&spn=0.002511,0.004807&t=h&z=18 |