Show enters and exits. Hide enters and exits.
| 00:01:24 | jartz leaves the room. | |
| 00:03:34 | AndrewO enters the room. | |
| 00:06:29 | headius leaves the room. | |
| 00:06:58 | ezmobius leaves the room. | |
| 00:06:59 | headius enters the room. | |
| 00:08:04 | antares | FoobarWidget: hi :) |
| 00:08:15 | FoobarWidget | hello |
| 00:09:16 | ctennis leaves the room. | |
| 00:14:13 | KirinDave enters the room. | |
| 00:14:39 | ctennis enters the room. | |
| 00:17:37 | rby_ leaves the room. | |
| 00:19:28 | wycats_ leaves the room. | |
| 00:26:07 | rue | FoobarWidget: Apache does need help--the terminal kind--but I mainly wanted to pick your brain about the architecture you chose. As it happens, I am just on my way out though |
| 00:26:34 | rue | antares_: Just paste the .pub to pastie and give him the link |
| 00:26:43 | FoobarWidget | sure just ask |
| 00:30:48 | rue | FoobarWidget: Was the COW/GC behaviour your main focus? My approach is essentially crafting an application server mode into Rubinius itself |
| 00:31:21 | FoobarWidget | you're referring to mod_rails/passenger, right? |
| 00:32:00 | FoobarWidget | copy-on-write friendliness was an important design goal. but it was also designed to work fine without proper copy-on-write semantics |
| 00:32:06 | FoobarWidget | the main focus is ease of deployment |
| 00:32:40 | headius leaves the room. | |
| 00:33:04 | rue | FoobarWidget: Cool. Certainly looks like you met that one |
| 00:33:21 | FoobarWidget | thanks :) |
| 00:33:47 | FoobarWidget | other important goals are of course security, stability, low maintenance overhead, easy installation, etc etc |
| 00:33:52 | headius enters the room. | |
| 00:33:58 | FoobarWidget | and acceptable performance |
| 00:34:00 | rue | FoobarWidget: Was there anything in particular you were running into with MatzRuby? Something that we can address in Rubinius? |
| 00:34:15 | FoobarWidget | I don't say "fastest" because that's just not possible with apache's architecture |
| 00:34:43 | FoobarWidget | hm, not that I know of. as far as I'm aware rubinius has already addressed (or will address) all the shortcoming in MRI that I see |
| 00:35:07 | rue | Heh. Yes, I am constantly amazed at the Apache "architecture" |
| 00:35:46 | FoobarWidget | the prefork MPM is kinda legacy. probably mostly because mod_perl/mod_php and such aren't thread-safe |
| 00:36:14 | rue | Hard to say which party is at fault :) |
| 00:36:19 | FoobarWidget | yeah |
| 00:36:44 | FoobarWidget | how does your design look like? |
| 00:37:16 | FoobarWidget | will it embed rubinius in the apache address space? |
| 00:37:36 | rue | No, we came to the conclusion early on that it will not be advantageous to anyone |
| 00:37:44 | FoobarWidget | yeah |
| 00:38:07 | rue | So we are actually doing a hard split between the adapter and the backend/daemons |
| 00:38:08 | FoobarWidget | it'll do all kinds of nasty things to you, like running rubinius as root or leak file descriptors |
| 00:38:20 | rue | Yep. |
| 00:39:18 | rue | The idea in the most generic case would be that N backends serve a specific location/dir, M serve another location etc. |
| 00:40:25 | FoobarWidget | is the ability to be usable on a shared host a goal? |
| 00:40:31 | rue | Yep |
| 00:40:51 | FoobarWidget | well, then I'm not sure whether that is a good idea. shared hosts usually host thousands of websites on a single server |
| 00:41:01 | FoobarWidget | if you have to manually specify the number of backends per virtual host, |
| 00:41:05 | FoobarWidget | then it quickly becomes a pain |
| 00:41:45 | FoobarWidget | and depending on the current site traffics, some backends may be wasted because they're idling and doing nothing |
| 00:41:45 | rue | It would be, definitely. Massive shared hosting will use a slightly different resource pooling model |
| 00:41:51 | wycats enters the room. | |
| 00:41:51 | FoobarWidget | passenger has a single backend pool for the entire apache |
| 00:42:09 | FoobarWidget | and there's a single maximum limit |
| 00:43:40 | rue | Yeah, that definitely simplifies handling in a case like that |
| 00:44:13 | FoobarWidget | though the pool algorithm is kinda complex |
| 00:44:22 | FoobarWidget | it tries hard to minimize spawning |
| 00:44:31 | FoobarWidget | and keeps backend restarts in mind |
| 00:45:48 | rue | Yep yep. I am leaning on actually divergent implementations for the three main types of environments |
| 00:46:06 | FoobarWidget | what resource pooling model do you use for massive shared hosting? |
| 00:46:09 | rue | Of course from the sysadmin side it should all be equally simple to configure and so on |
| 00:46:21 | FoobarWidget | yes |
| 00:47:02 | FoobarWidget | we've clearly documented our algorithm, in readable pseudo code, including invariant descriptions and thread-safety notes |
| 00:47:04 | rue | It requires a bit more on the adapter side, though |
| 00:47:06 | FoobarWidget | so you may want to take a look at it once it's released :) |
| 00:47:11 | rue | FoobarWidget: Definitely |
| 00:47:25 | antares_ leaves the room. | |
| 00:47:57 | antares_ enters the room. | |
| 00:48:43 | rue | I have not settled on anything at this point although I have done some preliminary testing. Mainly I have been concentrating on the non-massive hosting side first |
| 00:50:56 | headius leaves the room. | |
| 00:51:34 | FoobarWidget | how do you plan to test your massive shared hosting resource pooling model? |
| 00:56:05 | wycats leaves the room. | |
| 00:57:44 | rue | Heh, that part should be interesting. Simulations can only go so far. |
| 00:58:13 | FoobarWidget | apache modules are also a pain to debug |
| 00:58:28 | FoobarWidget | hard to tell what they're doing |
| 00:58:34 | rue | Honestly, though, I am not that ambitious for the first cut. I want to see how the backend side comes into being mainly |
| 00:58:51 | rue | Yeah, it is abysmal. Even Apache::Test merely scratches the surface |
| 00:59:19 | FoobarWidget | so you'd have to rely on log files |
| 01:00:14 | FoobarWidget | passenger has integration tests which test the apache module |
| 01:00:24 | FoobarWidget | it does so by creating a custom apache config file |
| 01:00:31 | FoobarWidget | which contains a few stub websites |
| 01:00:36 | rue | Possibly to some degree, yeah. I am setting up integration/functional tests with mocked requests and backend |
| 01:00:41 | FoobarWidget | and then telling the system's apache to use that config file |
| 01:00:49 | FoobarWidget | then it sends http requests and checks the results |
| 01:00:52 | rue | Heh, pretty much the same there. |
| 01:01:16 | rue | I am also abusing C a bit to be able to get some sembalance of unit tests in place |
| 01:01:20 | FoobarWidget | and I've made 90% of the code apache-independent |
| 01:01:28 | FoobarWidget | so that I can test them independently |
| 01:01:36 | rue | Definitely helps |
| 01:01:38 | FoobarWidget | that's so much easier than restarting apache over and over |
| 01:01:49 | FoobarWidget | and it allows me to use valgrind |
| 01:03:42 | rue | Yups. I have been a bit cross whether to push a lot of logic in the adapter or not |
| 01:04:29 | FoobarWidget | the apache-independent approach has the added benefit that it can be ported to other web servers (say, nginx or lighttpd) relatively easily |
| 01:04:38 | KirinDave leaves the room. | |
| 01:06:03 | headius enters the room. | |
| 01:06:47 | rue | Now, you are still referring to code that is a part of the adapter? |
| 01:08:13 | rue | Or do you actually have a three-tier with the adapter, the "middleware" and then the backend? |
| 01:12:35 | imajes enters the room. | |
| 01:13:42 | imajes_ leaves the room. | |
| 01:16:38 | headius | evenin |
| 01:16:45 | rue | Alohaloo |
| 01:19:05 | jrun leaves the room. | |
| 01:27:05 | eventualbuddha leaves the room. | |
| 01:33:56 | antares | headius, evening |
| 01:34:07 | headius | hiya hiya! |
| 01:40:48 | FoobarWidget | rue: I guess you could call it "middleware" |
| 01:41:02 | FoobarWidget | though I think the word "middleware" is a buzzword :) |
| 01:41:24 | FoobarWidget | it's just a bunch of classes that are part of the apache module, but can be compiled without apache |
| 01:41:38 | FoobarWidget | and parts are written in ruby |
| 01:48:47 | jrun enters the room. | |
| 01:53:20 | imajes_ enters the room. | |
| 02:06:03 | macournoyer leaves the room. | |
| 02:08:13 | octopod leaves the room. | |
| 02:09:40 | _VVSiz_ enters the room. | |
| 02:09:50 | FoobarWidget | gotta sleep now |
| 02:09:51 | FoobarWidget | bye |
| 02:10:16 | antares | FoobarWidget: bb |
| 02:10:16 | MenTaLguY enters the room. | |
| 02:10:28 | rue | FoobarWidget: Later! Sorry, in and out |
| 02:10:32 | rue | Meh :P |
| 02:14:57 | dkubb enters the room. | |
| 02:18:21 | wycats enters the room. | |
| 02:22:28 | ezmobius enters the room. | |
| 02:25:59 | benburkert_ enters the room. | |
| 02:27:21 | benburkert leaves the room. | |
| 02:27:53 | VVSiz_ leaves the room. | |
| 02:31:25 | jan_andersson enters the room. | |
| 02:46:03 | jan_andersson leaves the room. | |
| 02:46:29 | wycats leaves the room. | |
| 03:01:26 | benburkert enters the room. | |
| 03:01:26 | benburkert_ leaves the room. | |
| 03:01:30 | wycats enters the room. | |
| 03:02:00 | chop3 leaves the room. | |
| 03:02:33 | imajes leaves the room. | |
| 03:05:06 | imajes enters the room. | |
| 03:08:46 | antares | rue, a question |
| 03:09:32 | antares | rue: you mentioned my docpatch to shotgun still have some redundant comments. Could you point me to them? I want to do a cleanup. |
| 03:15:42 | jayWHY enters the room. | |
| 03:16:00 | jayWHY leaves the room. | |
| 03:20:27 | squeegy leaves the room. | |
| 03:25:23 | rubuildius_amd64 leaves the room. | |
| 03:26:13 | lachie enters the room. | |
| 03:27:17 | wycats leaves the room. | |
| 03:29:09 | jrun leaves the room. | |
| 03:33:09 | djwhitt | evan: are you saying I just need to remove *.d files to get the parallel make working? |
| 03:36:58 | squeegy enters the room. | |
| 03:43:27 | rue | antares_: Function name is `baker_gc_set_forwarding_address`, comment is `/* sets forwarding pointer on object */` |
| 03:49:22 | antares | rue, it was going to describe how forwarding pointer is used, I will remove it for now |
| 04:03:09 | rubuildius_amd64 enters the room. | |
| 04:03:54 | djwhitt | there's going to be a duplicate run for rubuildius_amd64 |
| 04:04:07 | djwhitt | feel free to ignore it |
| 04:07:03 | jicksta leaves the room. | |
| 04:12:16 | ko1_away leaves the room. | |
| 04:13:14 | mediogre enters the room. | |
| 04:13:30 | rue | antares_: You can leave it out or fix it, however you want to do it |
| 04:19:49 | antares_ leaves the room. | |
| 04:29:29 | ko1_away enters the room. | |
| 04:30:30 | elight enters the room. | |
| 04:36:34 | womble enters the room. | |
| 04:53:29 | jptix_ enters the room. | |
| 04:53:46 | jptix_ leaves the room. | |
| 04:54:39 | obiejuan enters the room. | |
| 05:11:25 | obiejuan leaves the room. | |
| 05:11:28 | lachie leaves the room. | |
| 05:33:43 | srbaker leaves the room. | |
| 05:33:51 | imajes_ leaves the room. | |
| 05:36:45 | dewd_ leaves the room. | |
| 05:37:11 | srbaker enters the room. | |
| 05:37:11 | benburkert leaves the room. | |
| 05:37:29 | benburkert enters the room. | |
| 05:40:07 | AndrewO leaves the room. | |
| 05:42:08 | jptix_ enters the room. | |
| 05:45:52 | elight enters the room. | |
| 05:48:17 | jptix_ leaves the room. | |
| 05:56:03 | jptix leaves the room. | |
| 05:58:04 | mae leaves the room. | |
| 05:58:05 | mae_ enters the room. | |
| 06:00:16 | rubuildius_amd64 | Charles Comstock: 5caf94ce6; 1764 files, 6137 examples, 20403 expectations, 0 failures, 0 errors; http://rafb.net/p/Vq2amJ79.html |
| 06:03:39 | elight leaves the room. | |
| 06:07:23 | RyanTM leaves the room. | |
| 06:12:43 | srbaker leaves the room. | |
| 06:23:12 | jartz enters the room. | |
| 06:32:51 | mae_ leaves the room. | |
| 06:32:57 | mae enters the room. | |
| 06:39:29 | mae leaves the room. | |
| 06:52:19 | headius_ enters the room. | |
| 06:55:25 | jptix enters the room. | |
| 07:04:40 | headius_ leaves the room. | |
| 07:05:11 | jptix leaves the room. | |
| 07:05:41 | headius leaves the room. | |
| 07:11:56 | qwert666 enters the room. | |
| 07:21:42 | qwert666_ enters the room. | |
| 07:37:17 | qwert666 leaves the room. | |
| 07:52:17 | jinjing enters the room. | |
| 08:01:01 | hassox enters the room. | |
| 08:01:10 | hassox leaves the room. | |
| 08:06:37 | ezmobius leaves the room. | |
| 08:07:03 | lachie enters the room. | |
| 08:25:36 | hassox enters the room. | |
| 08:26:18 | hassox leaves the room. | |
| 08:28:31 | ezmobius enters the room. | |
| 08:33:11 | jartz leaves the room. | |
| 08:33:15 | jartz enters the room. | |
| 08:53:24 | GMFlash leaves the room. | |
| 08:53:30 | GMFlash enters the room. | |
| 08:57:41 | lachie leaves the room. | |
| 09:08:10 | ezmobius leaves the room. | |
| 09:11:40 | lachie enters the room. | |
| 09:19:27 | GMFlash leaves the room. | |
| 09:37:03 | lachie leaves the room. | |
| 09:48:24 | thehcdreamer enters the room. | |
| 10:00:21 | brainopia enters the room. | |
| 10:15:50 | brainopia leaves the room. | |
| 10:16:15 | brainopia enters the room. | |
| 10:18:39 | brainopia leaves the room. | |
| 10:25:38 | lachie enters the room. | |
| 10:32:16 | jptix enters the room. | |
| 10:42:49 | rby enters the room. | |
| 11:02:51 | antares enters the room. | |
| 11:32:19 | jan_andersson enters the room. | |
| 11:34:00 | lachie leaves the room. | |
| 11:48:38 | chris2 enters the room. | |
| 12:06:29 | mae enters the room. | |
| 12:10:40 | mae | hello my intrepid rubinius warriors |
| 12:17:11 | jptix leaves the room. | |
| 12:52:32 | jrun enters the room. | |
| 13:03:21 | VVSiz_ enters the room. | |
| 13:05:22 | nemerle leaves the room. | |
| 13:15:01 | jartz leaves the room. | |
| 13:16:00 | cored enters the room. | |
| 13:21:33 | _VVSiz_ leaves the room. | |
| 13:26:33 | AndrewO enters the room. | |
| 13:43:27 | antares leaves the room. | |
| 13:44:22 | antare1 enters the room. | |
| 13:53:01 | srbaker enters the room. | |
| 13:54:51 | srbaker leaves the room. | |
| 14:01:36 | jrun leaves the room. | |
| 14:03:28 | mutle enters the room. | |
| 14:03:42 | RyanTM enters the room. | |
| 14:03:50 | jinjing_ enters the room. | |
| 14:03:52 | jinjing leaves the room. | |
| 14:05:57 | srbaker enters the room. | |
| 14:13:15 | enebo enters the room. | |
| 14:13:57 | jrun_ enters the room. | |
| 14:15:21 | bigl enters the room. | |
| 14:18:36 | benburkert leaves the room. | |
| 14:21:11 | jrun enters the room. | |
| 14:21:11 | jrun_ leaves the room. | |
| 14:25:15 | cored leaves the room. | |
| 14:32:04 | enebo leaves the room. | |
| 14:33:53 | chop3 enters the room. | |
| 14:33:54 | jrun leaves the room. | |
| 14:34:03 | jrun enters the room. | |
| 14:37:53 | dancroak enters the room. | |
| 14:39:52 | thehcdreamer leaves the room. | |
| 14:52:06 | binary42 enters the room. | |
| 14:56:16 | jrun_ enters the room. | |
| 14:56:16 | jrun leaves the room. | |
| 15:00:42 | GMFlash enters the room. | |
| 15:01:54 | dewd enters the room. | |
| 15:02:54 | jrun_ leaves the room. | |
| 15:06:02 | jrun enters the room. | |
| 15:08:19 | Skip enters the room. | |
| 15:10:54 | benburkert enters the room. | |
| 15:25:03 | brainopia enters the room. | |
| 15:30:28 | rby leaves the room. | |
| 15:44:45 | fbuilesv leaves the room. | |
| 15:45:01 | fbuilesv enters the room. | |
| 15:46:49 | jrun leaves the room. | |
| 15:49:52 | rubuildius_amd64 leaves the room. | |
| 16:00:13 | AndrewO leaves the room. | |
| 16:04:48 | jinjing enters the room. | |
| 16:07:41 | mediogre leaves the room. | |
| 16:12:19 | jptix enters the room. | |
| 16:15:04 | Skip leaves the room. | |
| 16:18:16 | jinjing_ leaves the room. | |
| 16:19:13 | jinjing_ enters the room. | |
| 16:20:21 | mediogre enters the room. | |
| 16:24:47 | joachimm enters the room. | |
| 16:26:41 | brainopia leaves the room. | |
| 16:27:47 | chop3 leaves the room. | |
| 16:33:01 | jinjing leaves the room. | |
| 16:34:01 | jinjing enters the room. | |
| 16:35:19 | Skip enters the room. | |
| 16:48:35 | AndrewO enters the room. | |
| 16:49:33 | jinjing_ leaves the room. | |
| 16:50:30 | RyanTM leaves the room. | |
| 16:54:46 | mediogre leaves the room. | |
| 17:11:39 | obiejuan enters the room. | |
| 17:20:26 | jartz enters the room. | |
| 17:21:47 | dewd leaves the room. | |
| 17:23:14 | wycats enters the room. | |
| 17:28:24 | wycats leaves the room. | |
| 17:30:34 | chris2 leaves the room. | |
| 17:31:29 | headius enters the room. | |
| 17:34:52 | benburkert_ enters the room. | |
| 17:36:16 | jptix leaves the room. | |
| 17:37:01 | cyndis leaves the room. | |
| 17:37:12 | dctanner enters the room. | |
| 17:37:29 | cyndis enters the room. | |
| 17:51:16 | obiejuan leaves the room. | |
| 17:57:24 | benburkert leaves the room. | |
| 17:58:24 | thehcdreamer enters the room. | |
| 17:59:57 | rue | Morgenstrom |
| 18:01:58 | rue | Final draft, it looks like: https://www.securecoding.cert.org/confluence/display/seccode/CERT+Secure+Coding+Standards |
| 18:03:37 | djwhitt | neeto |
| 18:04:55 | djwhitt | or neato depending on how much you care about spelling |
| 18:05:29 | rue | Could be a security issue |
| 18:05:53 | djwhitt | so, what's everyone up to these days. I keep expecting to see some hug commit that fix everything |
| 18:06:28 | djwhitt | *huge |
| 18:06:29 | headius | everything! |
| 18:06:34 | djwhitt | man, can't type |
| 18:06:51 | benburkert_ leaves the room. | |
| 18:07:56 | headius | djwhitt: well, what are you up to? committed anything lately? |
| 18:08:19 | djwhitt | heh, well, I just got rubuildius to quit sending duplicate messages after restarts |
| 18:08:22 | djwhitt | that's something |
| 18:08:45 | djwhitt | other than that not really though :) |
| 18:10:15 | rue | The argument eval order will be a fairly big one, I suspect |
| 18:11:08 | mae_ enters the room. | |
| 18:11:14 | headius | yeah I would imagine |
| 18:11:23 | headius | touches a lot of code |
| 18:11:38 | headius | and a tough one to avoid some amount of perf degradation |
| 18:12:00 | mae leaves the room. | |
| 18:27:26 | brainopia enters the room. | |
| 18:35:24 | headius leaves the room. | |
| 18:35:50 | headius enters the room. | |
| 18:35:56 | tizianobis enters the room. | |
| 18:41:49 | rue | Still not sure why we are changing it but nevertheless :) |
| 18:41:53 | benburkert enters the room. | |
| 18:44:26 | antare1 | rue: hi there :) |
| 18:45:08 | rue | Ahlo |
| 18:55:38 | headius | rue: because it's wrong the way it is |
| 18:55:43 | headius | oh wait |
| 18:55:47 | headius | what are we talking about? :) |
| 18:58:58 | rby enters the room. | |
| 19:00:22 | binary42 leaves the room. | |
| 19:01:59 | rue | headius: Argument evaluation order (which should be unspecified) |
| 19:02:11 | rue | I dunno if there was another problem in the same area |
| 19:02:29 | headius | well, you can argue that all you want, but it's not unspecified in ruby |
| 19:02:29 | headius | if shit breaks, it's broken |
| 19:02:40 | headius | language idealism aside |
| 19:05:58 | headius | it's also not unspecified in java |
| 19:06:00 | headius | so it's certainly not the norm |
| 19:08:00 | tizianobis leaves the room. | |
| 19:11:39 | FoobarWidget enters the room. | |
| 19:12:54 | rue | headius: It most definitely is unspecified. I am not arguing that people have--incorrectly--relied on a specific order. |
| 19:17:39 | rue | FoobarWidget: *wave* Dashing off again, thanks for the answer last night. That is basically what I was asking, you do not really have three "physical" units of code, the adapter side is just logically split in two |
| 19:18:12 | FoobarWidget | hi rue |
| 19:18:22 | headius | I don't think matz would agree |
| 19:18:26 | FoobarWidget | yeah, it's a logical split. I actually have about 20 source files |
| 19:18:49 | headius | he said something along the lines of "I think evaluation order must be left to right" on ruby-core...which is as close as we'll get to specified behavior |
| 19:19:14 | headius | at any rate it's hard to argue that it's unspecified when there's no spec |
| 19:19:20 | headius | MRI is the spec and MRI evaluates left-to-right |
| 19:19:29 | headius | so the specified behavior is left-to-right |
| 19:19:40 | FoobarWidget | rue: btw, I'm wondering how you want to handle misbehaving apps |
| 19:19:53 | FoobarWidget | suppose an app does "while true; sleep(1); end" |
| 19:19:56 | FoobarWidget | what happens? |
| 19:21:14 | tarcieri | doesn't see what else could happen but the ostensible |
| 19:21:35 | tarcieri | the loop ticks once a second? |
| 19:21:46 | FoobarWidget | no I mean, what will mod_rubinius do about it |
| 19:22:08 | FoobarWidget | you obviously don't want a single app to lock up apache |
| 19:22:43 | tarcieri | was under the impression mod_rubinius would be backed by multiple worker VMs |
| 19:23:25 | FoobarWidget | yeah. but what if an attacker continuously accesses a website that runs "while true; something; end"? |
| 19:23:40 | FoobarWidget | all the worker VMs will be busy trying to run infinite loops |
| 19:23:44 | tarcieri | a configurable request timeout would be a good idea |
| 19:24:24 | rue | Hm, it should not lock -Apache- up. That backend process obviously would be, but I am not sure it is my place to say how it needs to be handled. I think a default max execution time and a timeout policy should be reasonable |
| 19:24:35 | tarcieri | yes |
| 19:25:02 | FoobarWidget | a timeout is the most obvious solution, yes. but if the attacker is continuously accessing a broken website, then all the backend processes will be locked up for at least the duration of the timeout |
| 19:25:05 | rue | But that is more for the server admin to decide in their individual case given the suitable tools to do so of course |
| 19:25:06 | headius | FoobarWidget: if that were the case I probably wouldn't deploy that code :) |
| 19:25:12 | FoobarWidget | leaving very little time for normal ruby websites to be processed |
| 19:25:28 | FoobarWidget | well I'm trying to think from the point of view of a shared host :) |
| 19:25:46 | tarcieri | FoobarWidget: the same can be said for an attacker who is able to create long-running SQL queries |
| 19:25:57 | rue | I think that breaks the distinction between what is the server admin's responsibility |
| 19:26:05 | FoobarWidget | yeah, I suppose so |
| 19:26:10 | rue | While we can help him out, ultimately the sysadmin needs to set the policy |
| 19:26:28 | rue | Plus there are lots of anti (D)DoS tools and even modules there |
| 19:27:01 | headius | are there any specs for left-to-right? I feel like writing some |
| 19:27:23 | GMFlash leaves the room. | |
| 19:27:34 | rue | FoobarWidget: So we can probably say that X seconds is the max execution time by default, Y for request timeout. Most installations do not need to change them but they can be if needed |
| 19:27:52 | FoobarWidget | >> def foo(a, b); end |
| 19:27:52 | FoobarWidget | => nil |
| 19:27:52 | FoobarWidget | >> foo(puts("a"), puts("b")) |
| 19:27:52 | FoobarWidget | a |
| 19:27:52 | FoobarWidget | b |
| 19:28:06 | tarcieri | a side effect other than puts is probably in order |
| 19:28:12 | FoobarWidget | right-to-left? my ruby interpreter says things are evaluated left to right |
| 19:28:12 | tarcieri | like assignment |
| 19:28:58 | tarcieri | >> (a = 1) + (a = 2) |
| 19:29:08 | headius | a = [1, 2]; foo(a.pop, a.pop) |
| 19:29:15 | tarcieri | a.should == 2 |
| 19:29:38 | headius | I've written some eval order tests for jruby in the past |
| 19:29:49 | headius | I can make some new specs |
| 19:30:32 | rue | headius: I will see what the new Ruby Language book says |
| 19:32:18 | anon enters the room. | |
| 19:34:11 | anony enters the room. | |
| 19:36:25 | Fishy5 enters the room. | |
| 19:37:19 | dewd enters the room. | |
| 19:39:01 | headius | well here's an interesting surprise |
| 19:39:09 | headius | ruby evaluates a block pass before its arguments |
| 19:46:03 | headius | ugh, and before receiver |
| 19:46:07 | headius | that's unexpected :) |
| 19:46:43 | headius | I'd argue that's an unexpected bug |
| 19:46:56 | headius | it doesn't fit with l-to-r argument ordering |
| 19:46:57 | anonuser leaves the room. | |
| 19:48:46 | Fishy5 | Evaluating a block shouldn't be able to change any state anyways, so I don't see that it would matter being out of order. |
| 19:49:08 | headius | foo(a += 1, a += 1, &(a += 1; proc {})) |
| 19:49:18 | headius | or any method that returns a proc, for that matter |
| 19:49:28 | thehcdreamer leaves the room. | |
| 19:49:31 | headius | it will be called before arguments or receiver are evaluated |
| 19:49:42 | headius | that's a spicy meatball |
| 19:51:11 | jartz leaves the room. | |
| 19:51:43 | boyscout | 1 commit by Charles Oliver Nutter |
| 19:51:44 | boyscout | * Added order-of-evaluation spec and tags for rubinius failures.; 7d18171 |
| 19:51:46 | anon leaves the room. | |
| 19:52:05 | lvmc enters the room. | |
| 19:52:36 | headius | jruby fails the two that order block pass in odd ways |
| 19:57:29 | ctennis leaves the room. | |
| 20:02:22 | Fishy5 | Aye. I guess that could be bad. :\ |
| 20:05:28 | brainopia leaves the room. | |
| 20:05:51 | rubuildius_ppc | Charles Oliver Nutter: 7d181716a; 1765 files, 6142 examples, 20435 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/169171 |
| 20:07:28 | anony leaves the room. | |
| 20:09:30 | jayWHY enters the room. | |
| 20:12:59 | anonuser enters the room. | |
| 20:20:08 | dysinger enters the room. | |
| 20:29:58 | jartz enters the room. | |
| 20:35:44 | headius | I emailed ruby-core about the block pass ordering |
| 20:35:58 | headius | goofy as hell |
| 20:40:05 | wifelette enters the room. | |
| 20:41:53 | wmoxam leaves the room. | |
| 20:50:24 | lvmc leaves the room. | |
| 20:52:24 | wmoxam enters the room. | |
| 20:54:41 | wycats enters the room. | |
| 21:12:59 | wycats leaves the room. | |
| 21:13:13 | rubuildius_amd64 enters the room. | |
| 21:22:38 | rubuildius_amd64 | Charles Oliver Nutter: 7d181716a; 1765 files, 6139 examples, 20406 expectations, 0 failures, 0 errors; http://rafb.net/p/Qf2dHO22.html |
| 21:24:30 | FoobarWidget | in an interview with evan, I've heard that you guys have a subversion mirror for your git repo |
| 21:24:33 | FoobarWidget | is it still online? |
| 21:47:10 | ezmobius enters the room. | |
| 21:48:03 | srbaker leaves the room. | |
| 21:48:06 | srbaker_ enters the room. | |
| 21:51:49 | aotearoa enters the room. | |
| 21:52:24 | jayWHY leaves the room. | |
| 21:57:19 | headius | FoobarWidget: no, they abandoned the svn mirror a long time ago |
| 21:57:49 | FoobarWidget | why's that? |
| 21:57:56 | Ski1 enters the room. | |
| 22:01:58 | headius | I guess it was too buggy |
| 22:02:46 | scoopr | headius, interesting stuff on duby! |
| 22:02:58 | headius | ahh thanks |
| 22:03:09 | headius | hadn't posted an update in a couple weeks, and been doing a lot of work on it |
| 22:03:26 | headius | hopefully this weekend I'll try to wire up a JVM bytecode backend to test it all out from end to end |
| 22:03:29 | headius | bbiab |
| 22:03:58 | scoopr | that'd be rather awesome |
| 22:05:58 | wmoxam leaves the room. | |
| 22:11:39 | Skip leaves the room. | |
| 22:13:52 | jptix enters the room. | |
| 22:21:30 | srbaker_ leaves the room. | |
| 22:21:40 | srbaker enters the room. | |
| 22:23:05 | binary42 enters the room. | |
| 22:32:41 | jartz leaves the room. | |
| 22:33:34 | fbuilesv | Hi, I'm writing a spec for REXML, so far I've done the document class and you can see it in http://tinyurl.com/28nwc2 . Any comments/suggestions will be appreciated. |
| 22:40:03 | GMFlash enters the room. | |
| 22:40:18 | antare1 | rue: I am yet to meet Evan online to give him my pubkey pastie, so here is another shotgun doc patch: http://tinyurl.com/29zb25 |
| 22:40:40 | wmoxam enters the room. | |
| 22:45:20 | KirinDave enters the room. | |
| 22:55:47 | jptix_ enters the room. | |
| 23:01:59 | _mutle enters the room. | |
| 23:05:34 | MenTaLguY enters the room. | |
| 23:07:24 | AndrewO leaves the room. | |
| 23:09:45 | FoobarWidget leaves the room. | |
| 23:12:02 | jayWHY enters the room. | |
| 23:15:55 | macournoyer enters the room. | |
| 23:17:46 | mutle leaves the room. | |
| 23:25:25 | cremes | antare1: just send him a note here including the reference to your commit and a pastie link; he'll likely see if when he reads the logs |
| 23:29:12 | antare1 | cremes_: will do |
| 23:30:11 | dysinger leaves the room. | |
| 23:30:55 | KirinDave leaves the room. | |
| 23:31:00 | antare1 | evan: commit ref: http://git.rubini.us/?p=code;a=commit;h=55cbcc60f2c3804c62d5d73ff06ebbc4c0b00b95, here is my public key: http://pastie.org/private/t0pffcnbg1gtsdfaaf5ng -- may I have a commit bit, please? :) |
| 23:35:34 | antare1 leaves the room. | |
| 23:38:20 | macournoyer leaves the room. | |
| 23:38:59 | macournoyer enters the room. | |
| 23:42:31 | bigl leaves the room. | |
| 23:43:28 | qwert666_ leaves the room. | |
| 23:44:10 | antares enters the room. | |
| 23:45:32 | jicksta enters the room. | |
| 23:48:04 | MenTaLguY leaves the room. | |
| 23:48:08 | wycats enters the room. | |
| 23:48:12 | Jicksta leaves the room. | |
| 23:48:16 | jicksta enters the room. | |
| 23:55:38 | srbaker leaves the room. | |
| 23:57:58 | antares | http://tinyurl.com/2q8cp6 example group could use before block probably |