Show enters and exits. Hide enters and exits.
| 00:00:42 | imajes leaves the room. | |
| 00:03:44 | brainopia enters the room. | |
| 00:07:45 | AndrewO leaves the room. | |
| 00:11:29 | wycats enters the room. | |
| 00:18:13 | cypher23 leaves the room. | |
| 00:22:42 | anteaya_ enters the room. | |
| 00:23:14 | anteaya leaves the room. | |
| 00:26:28 | imajes enters the room. | |
| 00:31:08 | tockitj leaves the room. | |
| 00:33:16 | dysinger leaves the room. | |
| 00:43:09 | kw enters the room. | |
| 00:52:34 | radarek leaves the room. | |
| 00:53:38 | twbray enters the room. | |
| 00:55:18 | Ingmar leaves the room. | |
| 01:00:01 | twbray leaves the room. | |
| 01:01:53 | Ingmar enters the room. | |
| 01:07:13 | Ingmar leaves the room. | |
| 01:11:09 | Ingmar enters the room. | |
| 01:17:11 | brainopia leaves the room. | |
| 01:18:42 | anteaya__ enters the room. | |
| 01:19:03 | anteaya_ leaves the room. | |
| 01:23:38 | obvio enters the room. | |
| 01:28:47 | twbray enters the room. | |
| 01:29:18 | cored enters the room. | |
| 01:36:59 | twbray leaves the room. | |
| 01:43:15 | lopex leaves the room. | |
| 01:48:22 | benburkert leaves the room. | |
| 01:49:32 | benny leaves the room. | |
| 01:50:08 | benny enters the room. | |
| 01:57:54 | peeja enters the room. | |
| 01:58:41 | peeja leaves the room. | |
| 02:01:03 | jeremydurham enters the room. | |
| 02:01:53 | peeja enters the room. | |
| 02:03:08 | peeja leaves the room. | |
| 02:05:50 | GMFlash leaves the room. | |
| 02:14:58 | qwert666_ leaves the room. | |
| 02:19:32 | kw leaves the room. | |
| 02:22:57 | smartocci leaves the room. | |
| 02:25:28 | smartocci enters the room. | |
| 02:32:54 | dlee enters the room. | |
| 02:35:13 | GMFlash enters the room. | |
| 02:45:30 | brainopia enters the room. | |
| 03:09:55 | twbray enters the room. | |
| 03:10:01 | yugui enters the room. | |
| 03:12:48 | pluskid enters the room. | |
| 03:15:23 | kw enters the room. | |
| 03:16:58 | cored leaves the room. | |
| 03:17:44 | smartocci leaves the room. | |
| 03:18:59 | smartocci enters the room. | |
| 03:19:04 | peeja enters the room. | |
| 03:22:39 | mitchellvriley enters the room. | |
| 03:23:33 | mitchellvriley | Gaah! Why must I be on the other side of the world of where the action happens! |
| 03:23:51 | mitchellvriley leaves the room. | |
| 03:26:55 | fbuilesv | poor sad and depressed soul :( |
| 03:27:36 | twbray leaves the room. | |
| 03:29:29 | jicksta leaves the room. | |
| 03:29:30 | jicksta_ enters the room. | |
| 03:31:28 | imajes leaves the room. | |
| 04:22:03 | brainopia leaves the room. | |
| 04:24:02 | antares_ leaves the room. | |
| 04:25:58 | brainopia enters the room. | |
| 04:26:32 | brainopia leaves the room. | |
| 04:27:12 | brainopia enters the room. | |
| 04:31:32 | jennyw enters the room. | |
| 04:40:40 | seydar enters the room. | |
| 04:49:22 | seydar | congrats to whomever fixed some major bug recently. rubinius no longer fails 99% of the tests of tiger/ppc. in fact, its passing all but three |
| 04:49:27 | smartocci leaves the room. | |
| 04:49:54 | smartocci enters the room. | |
| 05:02:40 | be9 enters the room. | |
| 05:03:29 | seydar leaves the room. | |
| 05:03:30 | be9 leaves the room. | |
| 05:03:40 | be9 enters the room. | |
| 05:22:35 | fbuilesv leaves the room. | |
| 05:22:47 | pluskid leaves the room. | |
| 05:27:29 | sethbc enters the room. | |
| 05:27:39 | smartocci leaves the room. | |
| 05:40:31 | AndrewO enters the room. | |
| 05:53:47 | peeja leaves the room. | |
| 05:53:56 | peeja_ enters the room. | |
| 06:02:48 | trythil leaves the room. | |
| 06:03:43 | imajes enters the room. | |
| 06:04:13 | anteaya__ leaves the room. | |
| 06:09:20 | imajes leaves the room. | |
| 06:09:39 | imajes enters the room. | |
| 06:18:01 | yugui leaves the room. | |
| 06:18:08 | benburkert enters the room. | |
| 06:18:20 | benburkert leaves the room. | |
| 06:22:11 | twbray enters the room. | |
| 06:30:30 | boyscout | 2 commits by Brian Ford |
| 06:30:31 | demisone leaves the room. | |
| 06:30:33 | boyscout | * Guard affected specs with conflicts_with :Rational.; 6101a49 |
| 06:30:33 | boyscout | * Added conflicts_with guard to MSpec.; cae9551 |
| 06:32:58 | kw leaves the room. | |
| 06:34:40 | boyscout | 1 commit by Brian Ford |
| 06:34:40 | boyscout | * Fix silly typo in Numeric#quo specs.; 3f70ece |
| 06:38:51 | kirindav_ enters the room. | |
| 06:42:21 | rubuildius_amd64 | Brian Ford: 3f70eceb3; 2090 files, 6569 examples, 22948 expectations, 0 failures, 0 errors; |
| 06:44:19 | sethbc leaves the room. | |
| 06:46:44 | jeremydurham leaves the room. | |
| 06:50:07 | rubuildius_ppc | Brian Ford: 3f70eceb3; 2090 files, 6572 examples, 22977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/183719 |
| 06:50:08 | rubuildius_ppc | Brian Ford: 6101a4992; 2090 files, 6572 examples, 22977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/183717 |
| 07:00:01 | peeja_ leaves the room. | |
| 07:00:30 | peeja enters the room. | |
| 07:00:38 | d2dchat leaves the room. | |
| 07:06:52 | Santana_ enters the room. | |
| 07:06:55 | Santana | hi |
| 07:07:25 | imajes leaves the room. | |
| 07:08:44 | Santana | any thoughts on ticket #493? |
| 07:09:33 | kirindav_ leaves the room. | |
| 07:11:38 | brixen | Santana_: it's confusing to me. I see the patch but the ticket seems to discuss a lot more than that |
| 07:11:52 | Santana | right |
| 07:11:55 | brixen | are you wondering if that patch will apply for other platforms? |
| 07:11:56 | Santana | ignore the rest |
| 07:12:28 | Santana | the patch is about Bourne shell compatibility |
| 07:13:02 | brixen | I can test it on ubuntu 32bit, leopard intel. will that help? |
| 07:13:05 | Santana | ltmain.sh doesn't work when run by Solaris' sh |
| 07:14:27 | Santana | That's ok, because all those platforms use bash |
| 07:14:41 | Santana | have you seen the patch? |
| 07:14:45 | Santana | it changes this line: |
| 07:14:50 | Santana | for arg; do |
| 07:15:01 | Santana | with this two lines: |
| 07:15:03 | Santana | for arg |
| 07:15:04 | Santana | do |
| 07:15:18 | brixen | yeah, I see it, but I don't know what the question is ;) |
| 07:15:33 | Santana | Which, by the way, already appears in other parts of the script |
| 07:15:38 | Santana | aah! :) |
| 07:15:43 | Santana | sorry |
| 07:15:55 | Santana | why hasn't it been applied? |
| 07:16:21 | brixen | hm, that I don't know. let me try it and I'll apply now |
| 07:16:25 | Santana | it will fix Solaris built |
| 07:16:56 | Santana | err, it will permit the building of Rubinius on Solaris |
| 07:17:02 | Santana | :) |
| 07:17:43 | twbray leaves the room. | |
| 07:18:03 | brixen | k |
| 07:19:55 | benny leaves the room. | |
| 07:23:39 | evan | patching ltmain.sh seems odd. |
| 07:23:50 | evan | but it's so minor, it can't hurt. |
| 07:23:58 | brixen | yeah |
| 07:24:10 | evan | it's odd because it goes via configure/autoconf |
| 07:24:21 | brixen | right |
| 07:24:38 | Santana | yeah, but didn't found the original file |
| 07:24:44 | Santana | didn't find |
| 07:25:09 | evan | it's inside autoconf somewhere |
| 07:25:10 | Santana | shouldn't it be in the git repository? |
| 07:25:20 | evan | no |
| 07:25:22 | Santana | hmm |
| 07:25:23 | evan | it's from autoconf |
| 07:25:42 | Santana | :-S |
| 07:26:01 | evan | are you famaliar with autoconf? |
| 07:26:19 | Santana | I have used it, yes |
| 07:26:44 | brixen | well, ltmain.sh is generated, but we've already got it checked in |
| 07:26:49 | Santana | and I understand you, it's somewhere inside autoconf that is producing that code |
| 07:26:51 | brixen | so patching it isn't totally unreasonable |
| 07:26:55 | evan | yeah |
| 07:27:00 | evan | it's fine to apply. |
| 07:27:03 | brixen | k |
| 07:27:12 | evan | we may ditch ltdl soon |
| 07:27:26 | evan | i'm not using it in the new VM currently |
| 07:27:34 | evan | because dl* work fine on OS X now. |
| 07:28:13 | brixen | cool, fewer deps is always a plus |
| 07:28:17 | evan | yep. |
| 07:28:58 | Santana | there's another issue on Solaris, dicussed in ticket #493, that prevents building of external_libs/* |
| 07:29:43 | Santana | the problem is that Solaris' gcc is compiled to use /usr/ccs/bin/ld, instead of GNU ld |
| 07:29:45 | evan | the soname switch? |
| 07:29:51 | Santana | yes |
| 07:29:56 | evan | hm, ok. |
| 07:30:15 | Santana | apart from replacing /usr/ccs/bin/ld with GNU ld, do you see another workaround? |
| 07:30:33 | evan | perhaps fix the Makefile's to not use soname on solaris |
| 07:31:01 | rubuildius_ppc leaves the room. | |
| 07:31:01 | Santana | that would be needed in every library under external_libs |
| 07:31:01 | boyscout | 1 commit by Gerardo Santana |
| 07:31:04 | rubuildius_ppc enters the room. | |
| 07:31:18 | Santana | I can do it, if it seems reasonable to you guys |
| 07:31:22 | evan | wtf is with boyscout. |
| 07:31:29 | Santana | or probably Solaris should fix its gcc ... |
| 07:31:54 | boyscout | * Fixing for loop for portability; de3c1fd |
| 07:32:25 | evan | i think thats ok |
| 07:32:31 | evan | some are going away soon. |
| 07:32:49 | evan | libmpa, libbstring, libcchash, probably libmquark |
| 07:32:54 | Santana | oh |
| 07:33:06 | evan | they're functionality is all replaced by using STL in C++ |
| 07:33:08 | brixen | Santana_: I'll leave #493 open then? |
| 07:33:33 | Santana | brixen, no, you can close it. I shouldn't had discussed anything else there. |
| 07:34:06 | brixen | Santana_: ok, cool |
| 07:34:42 | Santana | this may sound annecdotic, or stupid... but "I've read on the web" that the STL is not well supported on all platforms |
| 07:34:54 | Santana | is this true?, have you taking that in account? |
| 07:34:57 | evan | pretty much BS |
| 07:35:08 | Santana | ok, cool |
| 07:35:11 | evan | it's certainly more well supported than some adhoc libs we threw together. |
| 07:35:14 | evan | which is what counts in this case. |
| 07:35:23 | Santana | right, ok |
| 07:35:31 | wycats leaves the room. | |
| 07:38:35 | Santana | if quark goes away, another problem on Solaris does too. It's trying to include stdbool.h, which on Solaris requires a _STD* constant is defined |
| 07:38:56 | Santana | I can't access my Solaris box right now, to give the exact name of the constant |
| 07:39:25 | Santana | may I ask when will the new VM be available? |
| 07:40:31 | RyanTM leaves the room. | |
| 07:41:19 | rubuildius_amd64 | Gerardo Santana: de3c1fd71; 2090 files, 6569 examples, 22948 expectations, 0 failures, 0 errors; http://rafb.net/p/7K3syN89.html |
| 07:42:48 | Maledictus enters the room. | |
| 07:44:27 | rubuildius_ppc | Gerardo Santana: de3c1fd71; 2090 files, 6572 examples, 22977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/183727 |
| 07:52:04 | wycats enters the room. | |
| 07:52:46 | AndrewO leaves the room. | |
| 08:00:23 | Santana | it will help me decide wether to send a patch for external_libs/* or just wait for the new VM |
| 08:00:27 | Santana | on Solaris |
| 08:01:20 | Santana | whether |
| 08:05:34 | twbray enters the room. | |
| 08:09:32 | Santana_ leaves the room. | |
| 08:12:01 | twbray leaves the room. | |
| 08:17:53 | headius_ enters the room. | |
| 08:17:53 | headius leaves the room. | |
| 08:28:20 | maharg leaves the room. | |
| 08:29:01 | maharg enters the room. | |
| 08:40:34 | MenTaLguY leaves the room. | |
| 08:52:21 | rue | There is always STLport if all else fails |
| 09:03:48 | evan | pushed more into cpp |
| 09:04:30 | qwert666 enters the room. | |
| 09:04:33 | evan | and bed time. |
| 09:29:26 | rudebwoy leaves the room. | |
| 09:38:16 | trythil enters the room. | |
| 09:52:10 | demisone enters the room. | |
| 10:05:46 | demisone_ enters the room. | |
| 10:06:33 | demisone leaves the room. | |
| 10:09:16 | cypher23 enters the room. | |
| 10:09:28 | Arjen_ enters the room. | |
| 10:22:10 | BlackEdder enters the room. | |
| 10:50:12 | JeyR enters the room. | |
| 11:18:16 | antares enters the room. | |
| 11:30:44 | thehcdreamer enters the room. | |
| 11:58:19 | obvio leaves the room. | |
| 12:03:18 | demisone enters the room. | |
| 12:04:36 | demisone_ leaves the room. | |
| 12:05:47 | chris2 enters the room. | |
| 12:17:40 | pluskid enters the room. | |
| 12:23:13 | dlee leaves the room. | |
| 12:31:12 | radarek enters the room. | |
| 12:33:40 | trythil leaves the room. | |
| 12:59:27 | FoobarWidget enters the room. | |
| 13:07:41 | octopod enters the room. | |
| 13:32:34 | lopex enters the room. | |
| 13:34:27 | yugui enters the room. | |
| 13:38:30 | dctanner enters the room. | |
| 13:40:30 | obvio enters the room. | |
| 13:43:19 | peeja leaves the room. | |
| 13:45:41 | Fullmoon enters the room. | |
| 13:53:57 | octopod leaves the room. | |
| 14:03:26 | obvio leaves the room. | |
| 14:24:14 | Fullmoon leaves the room. | |
| 14:33:10 | imajes enters the room. | |
| 14:34:13 | yaroslav enters the room. | |
| 14:35:11 | GMFlash leaves the room. | |
| 14:35:16 | GMFlash enters the room. | |
| 14:50:35 | fbuilesv enters the room. | |
| 15:07:13 | imajes leaves the room. | |
| 15:07:33 | imajes enters the room. | |
| 15:10:45 | yaroslav leaves the room. | |
| 15:12:52 | fbuilesv leaves the room. | |
| 15:13:48 | obvio enters the room. | |
| 15:16:24 | fbuilesv enters the room. | |
| 15:17:15 | srbaker leaves the room. | |
| 15:23:51 | dbussink enters the room. | |
| 15:24:31 | dbussink enters the room. | |
| 15:24:43 | anteaya enters the room. | |
| 15:38:34 | Arjen_ leaves the room. | |
| 15:41:24 | benburkert enters the room. | |
| 15:47:47 | qwert666_ enters the room. | |
| 15:58:16 | brainopia enters the room. | |
| 16:01:29 | FoobarWidget leaves the room. | |
| 16:04:19 | benny enters the room. | |
| 16:04:56 | qwert666 leaves the room. | |
| 16:07:59 | twbray enters the room. | |
| 16:15:58 | imajes_ enters the room. | |
| 16:16:07 | twbray leaves the room. | |
| 16:16:46 | imajes leaves the room. | |
| 16:28:20 | pluskid leaves the room. | |
| 16:29:18 | brainopia leaves the room. | |
| 16:31:09 | twbray enters the room. | |
| 16:31:30 | wycats leaves the room. | |
| 16:31:56 | twbray leaves the room. | |
| 16:35:12 | sethbc enters the room. | |
| 16:35:18 | RyanTM enters the room. | |
| 16:35:46 | enebo enters the room. | |
| 16:36:27 | obvio leaves the room. | |
| 16:40:51 | anteaya leaves the room. | |
| 16:43:55 | yugui leaves the room. | |
| 16:46:38 | imajes_ leaves the room. | |
| 16:49:55 | anteaya enters the room. | |
| 16:54:39 | wycats enters the room. | |
| 16:54:59 | benny leaves the room. | |
| 16:55:13 | benny enters the room. | |
| 16:58:31 | atmos leaves the room. | |
| 16:58:34 | fbuilesv | anybody knows of the current slots for ruby in the GSoC how many will go towards Rubinius development? |
| 16:59:55 | wycats leaves the room. | |
| 17:01:36 | kirindav_ enters the room. | |
| 17:15:30 | sethbc leaves the room. | |
| 17:34:38 | antares leaves the room. | |
| 17:34:53 | imajes enters the room. | |
| 17:36:32 | chris2 leaves the room. | |
| 17:43:03 | RyanTM leaves the room. | |
| 17:47:47 | srbaker enters the room. | |
| 17:55:11 | Santana_ enters the room. | |
| 17:55:46 | anteaya leaves the room. | |
| 17:56:45 | obiejuan enters the room. | |
| 17:57:47 | chris2 enters the room. | |
| 17:58:54 | jammi | what's up with mkmf? |
| 17:59:54 | wdperson enters the room. | |
| 18:02:32 | kirindav_ leaves the room. | |
| 18:07:29 | jammi | http://pastie.caboo.se/183864 |
| 18:13:42 | chris2_ enters the room. | |
| 18:19:12 | chris2 leaves the room. | |
| 18:23:07 | fbuilesv leaves the room. | |
| 18:24:52 | ubiquitous enters the room. | |
| 18:25:56 | imajes leaves the room. | |
| 18:26:18 | jennyw leaves the room. | |
| 18:32:09 | wycats enters the room. | |
| 18:34:22 | srbaker leaves the room. | |
| 18:35:32 | Defiler | jammi: Rubinius doesn't have mkmf yet |
| 18:39:34 | anteaya enters the room. | |
| 18:40:01 | srbaker enters the room. | |
| 18:42:24 | be9 leaves the room. | |
| 18:50:14 | benny leaves the room. | |
| 18:53:39 | twbray enters the room. | |
| 18:55:45 | headius leaves the room. | |
| 18:59:49 | thehcdreamer leaves the room. | |
| 19:06:58 | rue | Morning |
| 19:08:01 | Santana | hey rue |
| 19:09:14 | srbaker leaves the room. | |
| 19:12:51 | Santana | defiler, jammi: then we can't test C extensions that rely on mkmf ... |
| 19:15:16 | d2dchat enters the room. | |
| 19:15:26 | srbaker enters the room. | |
| 19:16:27 | Defiler | Santana_: True. |
| 19:16:42 | Defiler | At least, not without doing what you can see happening in the mongrel rake task |
| 19:16:56 | Defiler | Or, more clearly, all of the extension rake tasks |
| 19:18:45 | Defiler | Anybody here a Wireshark pro? |
| 19:18:58 | Defiler | I've got two captures, one of them is via MRI, and the other is Rubinius behaving badly |
| 19:19:17 | Defiler | but I'm staring at it, and not seeing what is wrong |
| 19:19:19 | rue | Santana_: I think evan is looking at getting a degree of functionality up in the next week or so for the C++ conversion. So unless you specifically need Solaris right now, I would suggest just waiting |
| 19:19:49 | rue | Defiler: Paste it, I can stare at it with you |
| 19:20:55 | rue | Santana_: Also, the STL should really be available pretty much everywhere. If not, STLport or uSTLport can be installed, they run almost anywhere |
| 19:21:15 | dc_ leaves the room. | |
| 19:22:05 | dctanner enters the room. | |
| 19:22:06 | Defiler | http://supremetyrant.com/ruby/MRI%20Connecting%20to%20MySQL%20via%20TCP |
| 19:22:11 | Santana | ok, I will wait. |
| 19:22:12 | Defiler | http://supremetyrant.com/ruby/Rubinius%20Connecting%20to%20MySQL%20via%20TCP |
| 19:23:14 | Santana | My purpose is to help Rubinius support Solaris. I'm not in a hurry. Although I count on Rubinius for compiling a project that is in its planning stage. |
| 19:23:52 | radarek leaves the room. | |
| 19:24:43 | rue | Hum, why did they change the name.. I wondered what this Wireshark is and why you are not using Ethereal :) |
| 19:25:38 | Defiler | There was some kind of legal thing |
| 19:25:44 | Defiler | As I recall |
| 19:26:10 | dbussink | Santana_: i've looked at solaris a while back too |
| 19:26:27 | dbussink | Santana_: but went to freebsd / openbsd first, a lot of ironing out there that was easier to do ;) |
| 19:26:49 | chris2 leaves the room. | |
| 19:26:53 | Defiler | http://www.linux.com/feature/54968 |
| 19:26:54 | dbussink | Santana_: but i think we should go for the solaris ld and see whether we can make it work on that |
| 19:27:01 | ctennis enters the room. | |
| 19:28:47 | thehcdreamer enters the room. | |
| 19:28:54 | Santana | dbussink, that would be great. Rubinius build system is so GNU dependant |
| 19:29:12 | dbussink | Santana_: well, i don't think we'll ever leave gcc |
| 19:29:26 | dbussink | Santana_: but afaik using gnu ld on solaris can be problematic sometimes |
| 19:29:37 | dbussink | although i don't know whether that's still the case these days |
| 19:30:26 | Santana | do you have any test case? |
| 19:30:47 | Santana | I have access to a Solaris box right now |
| 19:30:53 | twbray_ enters the room. | |
| 19:31:28 | dbussink | Santana_: what do you mean by test case? |
| 19:32:26 | Santana | an example of the problem you mention |
| 19:32:29 | Santana | that I can reproduce |
| 19:32:55 | dbussink | ah, not a specific problem, but this is what i've read about using gnu ld on solaris |
| 19:33:00 | dbussink | not my own experience |
| 19:33:18 | dbussink | but the fact that even gcc on solaris uses sun's ld probably indicates enough |
| 19:33:43 | dbussink | that you'll have to jump through hoops to get gnu ld and that it's probably not well supported |
| 19:34:17 | Santana | in that case, it's just about editing Makefiles to add a SunOS case |
| 19:34:58 | dbussink | i don't know whether the gnu options we use are really necessary, or that we can create a cross platform makefile |
| 19:35:06 | dbussink | didn't go into that in detail |
| 19:35:47 | rue | Defiler: ACK |
| 19:36:26 | Santana | dbussink, I'd love to see a compiler/linker agnostic Rubinius |
| 19:36:37 | Santana | if that makes any sense |
| 19:36:40 | Defiler | That is super hard =( |
| 19:36:46 | imajes enters the room. | |
| 19:37:00 | dbussink | well, dunno whether linker agnostic is attainable |
| 19:37:03 | brainopia enters the room. | |
| 19:37:04 | Santana | even make agnostic |
| 19:37:16 | Santana | well, I'd like to try |
| 19:37:29 | Santana | *if* it makes sense |
| 19:37:52 | dbussink | i think linker has prio then, because gcc and gmake are reliable and reasonably available on all unix like platforms we'll probably want to support |
| 19:38:29 | Santana | can't configure help with that? |
| 19:38:36 | Defiler | Not making sense is not always a reason not to do something |
| 19:38:54 | Santana | Defiler: :) |
| 19:39:15 | Defiler | rue: ACK as in a sound of dismay, or as in TCP? :) |
| 19:40:18 | dbussink | Defiler: hmm, too bad that wireshark profile doesn't have two different hosts |
| 19:40:39 | dbussink | Defiler: did you find where the 5 second delay comes from? |
| 19:41:02 | twbray_ leaves the room. | |
| 19:41:28 | Defiler | Well, Rubinius is a LOT slower than MRI |
| 19:41:33 | wmoxam_ enters the room. | |
| 19:41:50 | Santana | Defiler: how come? |
| 19:41:51 | Defiler | It wouldn't surprise me if we were 100x slower on this run |
| 19:41:53 | dbussink | yeah ok, but that five seconds is pretty absurd slow |
| 19:42:08 | Defiler | Santana_: Because we haven't been working on it since 1993 :) |
| 19:42:52 | Santana | isn't Rubinius a recent project?, or am I missing a local joke? |
| 19:42:57 | dbussink | isn't that 5 seconds some mysql connect timeout? |
| 19:43:27 | dbussink | because the last packet after the greeting looks exactly the same on both traces |
| 19:44:20 | Defiler | Santana_: MRI came out in 1993 |
| 19:45:18 | Santana | I know. Oh, I see. Ruby guys have a head start. |
| 19:45:26 | wmoxam_ leaves the room. | |
| 19:48:18 | rue | Defiler: There is a 5-second delay between frames 4 and 5 in Rubinius? |
| 19:48:46 | Defiler | Shows up as between 5 and 6 on my end |
| 19:48:48 | Defiler | but yeah |
| 19:49:07 | Defiler | So presumably the rbx -> mysql packet there is wrong in some way |
| 19:49:12 | Defiler | ..and mysql is angry? |
| 19:49:26 | cremes leaves the room. | |
| 19:50:17 | rue | It more seems that rbx is losing frame 4 so mysql times the connection out in 5 |
| 19:50:37 | twbray leaves the room. | |
| 19:51:13 | rue | But that is clearly not the case |
| 19:51:25 | Defiler | The packet numbered '5' in the rubinius trace is the same as the matching one in mri, right? |
| 19:51:38 | demisone leaves the room. | |
| 19:53:37 | dbussink | look the same to me |
| 19:54:05 | Defiler | So rubinius gets handed back a FIN/ACK/timeout in response to that, and MRI is peachy |
| 19:55:09 | dbussink | well, rbx doesn't send the login request |
| 19:55:18 | dbussink | #6 in the mri lit |
| 19:55:19 | dbussink | list |
| 19:55:40 | dbussink | that goes from mri to mysql if i look at the source / destination ports |
| 19:56:02 | dbussink | and since mysql doesn't receive that, it disconnects after 5 secs |
| 19:56:08 | dbussink | at least, this is my interpretation |
| 19:57:03 | srbaker leaves the room. | |
| 19:58:19 | d2dchat leaves the room. | |
| 19:58:56 | rue | Yeah, 5 ACKs, then 6 is the request (the MYSQL proto name may be confusing, this is mri > mysql) |
| 20:00:08 | rue | But that seems to be it |
| 20:00:29 | dbussink | so rubinius just stops sending out packets there |
| 20:01:45 | rue | Oh.. wait |
| 20:02:29 | binary42 leaves the room. | |
| 20:02:32 | binary42 enters the room. | |
| 20:02:33 | rue | Mm. I wonder. |
| 20:02:45 | dbussink | wondering what? |
| 20:02:46 | Defiler | Back in a bit. Food |
| 20:02:48 | rue | It DOES eventually send the request but the connection is already being closed |
| 20:03:21 | dbussink | ah yeah, i see, #8 |
| 20:03:34 | rue | I was thinking it was an adapter issue but this might actually be something wrong in the IO layer |
| 20:04:02 | dbussink | well, the adapter should probably work without modifications, it's a pure ruby adapter |
| 20:04:23 | rue | I mean the other way around, sorry |
| 20:05:37 | MenTaLguY enters the room. | |
| 20:05:44 | rue | I dunno where it is getting the sequence 63 from though |
| 20:05:53 | MenTaLguY | howdy |
| 20:06:20 | rue | Heyap |
| 20:09:38 | AndrewO enters the room. | |
| 20:10:30 | fbuilesv enters the room. | |
| 20:10:33 | rue | Defiler: Out for while, but essentially the problem is as dbussink said: rbx is not sending the login request in frame #6 as it should. It does send the ACK to the greeting (that is #5) but then it pauses |
| 20:11:20 | dbussink | maybe it blocks on something because the io layer wants to get something back before sending something again? |
| 20:11:32 | rue | Yeah, that is quite possible |
| 20:11:36 | dbussink | that could explain why the login is sent at a later point |
| 20:11:59 | rue | Or maybe a status is not being cleared so the write is pending, something like that |
| 20:12:21 | thehcdreamer leaves the room. | |
| 20:17:16 | jacen_ leaves the room. | |
| 20:19:40 | srbaker enters the room. | |
| 20:20:21 | enebo leaves the room. | |
| 20:20:24 | rue | Actually, if the TCP is multiplexing it may just be a delay too--if something is being compiled, for example |
| 20:21:09 | evan | morning. |
| 20:21:34 | MenTaLguY | don't forget nagle either |
| 20:21:41 | MenTaLguY | hi evan |
| 20:23:12 | evan | how are things in code land this morning? |
| 20:26:49 | dbussink | looks like the tcp bits are on strike |
| 20:27:59 | obiejuan leaves the room. | |
| 20:32:43 | MenTaLguY | does TCP_NODELAY make the difference? |
| 20:37:05 | dbussink | it shouldn't be the cause afaik |
| 20:38:00 | dbussink | mri also doesn't use it |
| 20:38:26 | evan | "Hell no! We won't packetize!" |
| 20:40:59 | jacen_ enters the room. | |
| 20:41:10 | srbaker leaves the room. | |
| 20:41:22 | srbaker enters the room. | |
| 20:41:59 | srbaker leaves the room. | |
| 20:42:38 | twbray enters the room. | |
| 20:43:24 | boyscout | 1 commit by MenTaLguY |
| 20:43:24 | boyscout | * efficient implementation of Fukomoto's semaphore; 6f63870 |
| 20:44:11 | twbray leaves the room. | |
| 20:45:01 | evan | MenTaLguY: thats nice and tight. |
| 20:45:12 | boyscout | 1 commit by MenTaLguY |
| 20:45:15 | boyscout | * fix copyright year; 1af4a3e |
| 20:45:18 | MenTaLguY | thanks |
| 20:45:41 | MenTaLguY | the one thing I'm a little unhappy with is the initvalue.times { @channel << nil } |
| 20:45:48 | MenTaLguY | kind of sucks for large initvalues |
| 20:46:03 | MenTaLguY | may not be a significant issue in practice though |
| 20:46:10 | evan | are Semaphores actually initialized like that? |
| 20:46:25 | evan | i guess where you have a default pool or something |
| 20:46:26 | MenTaLguY | normally there's just an assignment to the count field |
| 20:46:42 | evan | ah |
| 20:46:42 | MenTaLguY | oh, you mean in terms of the constructor taking an initial count? |
| 20:46:45 | MenTaLguY | it's not too unusual |
| 20:46:47 | evan | ok |
| 20:47:02 | MenTaLguY | I actually could have done @channel.value = initvalue.to_i |
| 20:47:12 | evan | yep |
| 20:47:25 | MenTaLguY | but that depends on channel implementation details which won't remain fixed |
| 20:47:29 | evan | true |
| 20:47:42 | evan | you could hide it behind a Channel method |
| 20:47:51 | MenTaLguY | true |
| 20:47:52 | evan | Channel#prime |
| 20:48:01 | MenTaLguY | hmm. |
| 20:48:16 | MenTaLguY | if it comes up again maybe |
| 20:48:50 | evan | hm, so i think i need to give the new VM the ability to call a method and discard it's return value |
| 20:48:55 | evan | ie, proper hooks |
| 20:49:18 | evan | i guess i could just set a flag on the MethodContext |
| 20:49:36 | MenTaLguY | why is it necessary to have a special facility for discarding a return value? |
| 20:49:54 | evan | well, the biggy is initialize |
| 20:49:59 | evan | i want to move Class#new into the VM |
| 20:50:04 | evan | but others are class hooks |
| 20:50:07 | evan | like method_added |
| 20:50:25 | evan | where you want to call it if it exists, but ignore the return value |
| 20:50:36 | MenTaLguY | I see |
| 20:50:40 | evan | basically, you decide the return value up front, then call it and ignore the return value |
| 20:50:40 | rue | dbussink, Defiler: Mm, actually the times are probably more indicative of an IO layer issue |
| 20:50:44 | MenTaLguY | so you don't have to worry about whether to pop something from the stack |
| 20:50:48 | evan | right |
| 20:50:59 | evan | because the pop would have to actually be in the bytecode |
| 20:51:15 | evan | method_added is a bad example |
| 20:51:20 | evan | because it's not a VM hook anymore |
| 20:51:22 | rue | We could make up a new operator for that, like obj ->stabbymcstab-> meth |
| 20:51:23 | evan | now that we use __add_method__ |
| 20:51:52 | evan | the current VM uses a ruby trampoline to do this |
| 20:52:05 | evan | calling VM.perform_hook in ruby, with the return value it wants |
| 20:52:27 | MenTaLguY | so, basically what you want is something which calls a method if available, but leaves the stack the way it was? |
| 20:52:34 | evan | so the activation of perform_hook is the state to have the proper return value on the stack |
| 20:52:39 | MenTaLguY | or just something which pops after making the call if it succeeds |
| 20:52:40 | evan | MenTaLguY: exactly. |
| 20:52:45 | evan | well, they're the same |
| 20:52:57 | MenTaLguY | well, true, assuming proper stack hygene |
| 20:53:23 | evan | perhaps CPS style |
| 20:53:37 | evan | let the VM register a C function to call when a MethodContext returns |
| 20:53:41 | MenTaLguY | in some ways I actually prefer the idea of providing a default return value which is left on the stack if the call doesn't succeed |
| 20:53:53 | MenTaLguY | I think that has potential to be more useful |
| 20:53:58 | MenTaLguY | in more cases |
| 20:54:06 | evan | how do you define "doesn't succeed"? |
| 20:54:41 | MenTaLguY | it's not there to call |
| 20:55:09 | evan | that is the semantics i'm talking about |
| 20:55:14 | evan | same thing |
| 20:55:34 | evan | the return value of the hook doesn't replace the original return value (which is pushed on the stack BEFORE the hook is called) |
| 20:56:59 | rubuildius_amd64 | MenTaLguY: 1af4a3eeb; 2090 files, 6569 examples, 22948 expectations, 0 failures, 0 errors; http://rafb.net/p/Y1yVOU81.html |
| 20:57:00 | rubuildius_amd64 | MenTaLguY: 6f638702d; 2090 files, 6569 examples, 22948 expectations, 0 failures, 0 errors; http://rafb.net/p/PuwOnx10.html |
| 20:58:08 | rue | evan: It is not really possible to run this as an optimization instead, is it? |
| 20:58:26 | evan | not sure what ya mean |
| 20:59:16 | rue | If you just have a method call without an assignment and it is not the return value of its containing method or the return value of the containing method does not have assignment etc. |
| 20:59:43 | evan | huh? |
| 20:59:46 | evan | i still don't follow. |
| 20:59:54 | rue | def foo; blah; 5; end |
| 21:00:04 | rue | We do not need blah's return value |
| 21:00:09 | evan | sure... |
| 21:00:11 | evan | so? |
| 21:00:15 | evan | thats not really what i'm talking about |
| 21:01:39 | evan | i'm talking about where the VM contains code to run a method |
| 21:01:40 | rue | Most of the hooks would have similar semantics though, no? I am just thinking it would be better if it can be written as a general optz instead of a special-case |
| 21:01:54 | rue | But that may or may not be feasible |
| 21:01:57 | imajes leaves the room. | |
| 21:02:00 | evan | and that method should be executed without being seen at all from the context it's called, ie, doesn't touch the calling stack |
| 21:02:10 | evan | the code is INSIDE the VM |
| 21:02:13 | evan | it's not at the bytecode level. |
| 21:02:29 | evan | neither the caller nor the callee has bytecode to run the hook |
| 21:03:04 | MenTaLguY | it seems like sometimes you might have hooks whose return values you care about |
| 21:03:30 | MenTaLguY | what I was suggesting was that the return value of the hook replaces the supplied "default" return value if the hook is there to be called |
| 21:03:41 | evan | sure, but i want to deal with the case of where you don't care |
| 21:04:02 | evan | MenTaLguY: that breaks things |
| 21:04:08 | evan | thats not how MRI's hooks operate |
| 21:04:14 | imajes enters the room. | |
| 21:04:30 | MenTaLguY | none? anywhere? |
| 21:04:50 | MenTaLguY | as long as it is consistently discarded, then, yeah... I guess so |
| 21:04:56 | rue | Well, you would not necessarily want to constrain to just doing that but broadly, yeah, MRI hooks are "informational" moreso |
| 21:06:06 | evan | i agree that it would be nice for a hook to leave it's return value for the caller to see |
| 21:06:10 | evan | that case is actually really simple. |
| 21:06:14 | rue | Maybe we could use Monads for specifically side-effecting :) |
| 21:06:17 | evan | so i'm not considering it rigth now. |
| 21:06:42 | evan | i'm looking at the zero-side-effect-on-caller hook |
| 21:07:17 | MenTaLguY | what about exceptions raised by the hook? |
| 21:07:39 | evan | they flow up like normal |
| 21:07:39 | imajes leaves the room. | |
| 21:07:45 | MenTaLguY | ok |
| 21:07:51 | evan | ok, so not zero |
| 21:08:00 | MenTaLguY | is satisfied at this point |
| 21:08:07 | evan | little-to-no-side-effect-on-caller |
| 21:08:08 | evan | :) |
| 21:08:43 | evan | so, i'm thinking either a flag in the MethodContext of running the hook that indicates the return value should be discarded |
| 21:08:44 | MenTaLguY | incidentally, I'm trying to work out a nice Ruby API for joins |
| 21:08:47 | evan | thats the simplest |
| 21:08:50 | MenTaLguY | the original API I worked out was a bit grotty |
| 21:09:10 | evan | i considered running each hook on a new Task |
| 21:09:11 | MenTaLguY | and my experience implementing joins in Java for JRuby made it clear that what I was thinking of wasn't necessarily the best way to do things |
| 21:09:24 | evan | but then exceptions don't flow upwards. |
| 21:09:35 | evan | joins? |
| 21:10:28 | MenTaLguY | join calculus |
| 21:10:36 | MenTaLguY | c.f. C-omega or Join Java |
| 21:11:06 | imajes_ enters the room. | |
| 21:11:45 | evan | ah |
| 21:12:05 | MenTaLguY | what I'm thinking at the moment is something vaguely like Struct |
| 21:12:15 | MenTaLguY | in terms of a class factory sort of arrangement |
| 21:12:31 | MenTaLguY | you define your chords in a block passed to Join.new or something |
| 21:13:26 | evan | hm |
| 21:13:35 | evan | my brain still doesn't growk that very well |
| 21:13:47 | evan | the best i've gotten it is you explain channels to me over and over again |
| 21:13:54 | evan | to the point that I could implement them sorta in rubinius |
| 21:13:57 | benny enters the room. | |
| 21:14:28 | MenTaLguY | joins are sort of like bundles of channels |
| 21:14:47 | MenTaLguY | where you specify rules for callbacks that get invoked when values are available on specific combinations of channels |
| 21:15:13 | MenTaLguY | e.g. "call this if values are available on the first and second channels" |
| 21:15:22 | wmoxam_ enters the room. | |
| 21:15:35 | evan | interesting |
| 21:16:15 | wmoxam leaves the room. | |
| 21:16:25 | wmoxam_ enters the room. | |
| 21:16:28 | headius enters the room. | |
| 21:16:28 | srbaker enters the room. | |
| 21:16:29 | MenTaLguY | it seems to be helpful for solving some really hairy concurrency things in a straightforward way |
| 21:17:02 | dgtized | MenTaLguY: it lets you do dependencies in a multithreaded fashion easily right? |
| 21:17:28 | MenTaLguY | I'm not sure I'd put it like that |
| 21:17:36 | RyanTM enters the room. | |
| 21:17:39 | headius_ enters the room. | |
| 21:17:52 | headius leaves the room. | |
| 21:19:28 | headius_ leaves the room. | |
| 21:19:34 | MenTaLguY | http://svn.codehaus.org/jruby/trunk/jruby/src/org/jruby/demo/TextAreaReadline.java |
| 21:19:42 | headius enters the room. | |
| 21:19:44 | MenTaLguY | scroll down to INPUT_SPEC |
| 21:20:24 | antares enters the room. | |
| 21:20:31 | dgtized | something like it lets you fulfill a promise to do A every time B, and C are fulfilled, and B is fulfilled everyother time C is fulfilled? |
| 21:21:04 | MenTaLguY | not really |
| 21:21:08 | MenTaLguY | it's more like chemical reactions |
| 21:21:15 | xmlhacker leaves the room. | |
| 21:21:49 | dbussink | Defiler: any help from rue's and my comments? |
| 21:21:57 | dgtized | distributed prolog maybe? |
| 21:22:14 | dgtized | I dunno I'll go read up on it instead of just guessing |
| 21:22:25 | headius_ enters the room. | |
| 21:22:47 | headius leaves the room. | |
| 21:23:06 | Defiler | dbussink: It is helpful, yeah.. but I'm still trying to figure out what to check next, based on them |
| 21:23:13 | imajes__ enters the room. | |
| 21:23:26 | Defiler | As in, figuring out where/if IO is blocking |
| 21:23:57 | evan | Defiler: have you checked out senryu? it's a haiku OS image |
| 21:24:32 | Defiler | No, but that's a good name |
| 21:24:41 | xmlhacker enters the room. | |
| 21:24:55 | xmlhacker leaves the room. | |
| 21:24:57 | evan | it only works under vmware, and it seems fusion is no longer registered for me |
| 21:25:27 | evan | fires up iSerial Reader |
| 21:26:02 | Defiler | I did run Haiku under VMWare, though |
| 21:26:06 | Defiler | just using a different image |
| 21:26:11 | Defiler | I love how fast it boots. |
| 21:26:24 | cypher23 leaves the room. | |
| 21:26:24 | imajes__ leaves the room. | |
| 21:26:57 | imajes enters the room. | |
| 21:26:57 | ubiquitous leaves the room. | |
| 21:27:23 | ubiquitous enters the room. | |
| 21:27:36 | Defiler | evan: If I suspect that the rubinius IO subsystem is blocking when it should not.. what should I use to test that assertion |
| 21:27:53 | ubiquitous leaves the room. | |
| 21:28:48 | xmlhacker enters the room. | |
| 21:28:54 | evan | you should walk down Channel#receive in IO#read |
| 21:28:55 | headius | is there any way to force a stack dump at runtime, from outside the process? |
| 21:28:58 | evan | into the vm |
| 21:29:10 | evan | headius_: in general or in rubinius? |
| 21:29:29 | evan | and by stack dump, do you mean backtrace? |
| 21:29:46 | Defiler | evan: What do I do about the delay added by stepping in the debugger? As in, imagine rbx is blocking for 5 seconds on some timeout thing.. by the time I step through that, 5 seconds will definitely have elapsed, and it will just continue |
| 21:29:47 | headius | in rubinius |
| 21:29:50 | imajes_ leaves the room. | |
| 21:29:56 | headius | well backtrace, but perhaps with C frames as well |
| 21:30:04 | headius | ruby backtrace alone is probably enough |
| 21:30:39 | evan | Defiler: thats a tough one. |
| 21:30:54 | evan | Defiler: you could try running under strace/dtruss |
| 21:31:02 | evan | Defiler: see what it's doing out to the kernel |
| 21:31:10 | evan | that could show you if it's blocking into the kernel. |
| 21:31:15 | Defiler | Aha |
| 21:31:36 | evan | headius: we don't have on at present |
| 21:32:00 | headius | debugging a similar issue under jruby that's what I'd do...might be a nice thing to add |
| 21:32:07 | evan | headius: you could attach via gdb and run machine_print_callstack(0) |
| 21:32:16 | w1rele55 enters the room. | |
| 21:33:11 | evan | thats available as rbt if you runing with --gdb |
| 21:33:38 | rue | evan: Check haikuware.com |
| 21:34:13 | rue | Gotta say, Haiku is looking really good. I had almost lost faith but looks like they made a couple breakthroughs |
| 21:34:40 | headius | do you do anything special when you run under --gdb? |
| 21:34:51 | evan | no |
| 21:34:57 | evan | ./shotgun/rubinius --gdb ... |
| 21:35:19 | headius | I was thinking about adding a jdb flag for jruby, but there's not many folks that would use that over a full IDE debugger |
| 21:35:48 | rue | Defiler: To elaborate, I do not think *rubinius* is blocking for 5 seconds specifically (and I think dbussink was of the same mind.) |
| 21:36:32 | evan | i wish i could use xcode's debugger more easily |
| 21:36:39 | evan | without having to have a whole project setup |
| 21:36:57 | rue | Defiler: For whatever reason, after rbx sends the ACK it does not send the login request immediately. So MySQL times out after 2 segment TTLs which is probably the 5 secs. Then when rbx gets the FIN ACK, it kicks back in and sends the request but it is too late. |
| 21:37:08 | TheVoice enters the room. | |
| 21:38:02 | rue | Defiler: So a likely culprit is that the IO is expecting the MySQL side to re-respond or initiate the next step; or that the channel is for some reason not shown as readable or shown as having more pending data |
| 21:38:23 | rue | Which is blocking the write from going out |
| 21:38:44 | MenTaLguY | tried TCP_NODELAY? |
| 21:38:49 | rue | Oh yes, and that |
| 21:39:02 | rue | Nagle could also be the culprit |
| 21:39:19 | rue | Erm, Nagle =~ TCP_NODELAY |
| 21:39:36 | MenTaLguY | yes. |
| 21:39:37 | Defiler | According to dtruss, the noticeable 5 second delay happens between system calls |
| 21:39:43 | Defiler | So it must be inside rbx, right? |
| 21:40:28 | Defiler | Oh, and just as a reminder, this happens with unix sockets as well as TCP sockets |
| 21:40:39 | Defiler | Though I can't use wireshark to record the unix socket conversation |
| 21:40:40 | rue | It would be likely, yes |
| 21:40:43 | Defiler | So I can't prove it |
| 21:40:50 | rue | You could netcat that |
| 21:41:11 | Defiler | netcat what to what? |
| 21:41:38 | rue | Plug a netcat TCP "logger" inbetween |
| 21:42:04 | Defiler | How do I make netcat look like a socket so that I can open it? |
| 21:42:10 | Defiler | Or am I missing something fundamental here |
| 21:42:42 | rue | Sorry, I mean socat |
| 21:44:12 | Defiler | Whoa I didn't know this existed |
| 21:44:44 | rue | Basically you make a tunnel from rbx to mysql but you can peek at the data |
| 21:44:50 | Defiler | Yeah, that is genius |
| 21:45:10 | rue | I have nc aliased to socat :P |
| 21:45:36 | Defiler | "This is UNIX! I know this!" |
| 21:45:46 | rue | Check http://www.dest-unreach.org/socat/doc/socat.html#EXAMPLES for ideas |
| 21:46:31 | Defiler | Oh, the example of proxying X11 traffic is siiick |
| 21:48:19 | rue | "Wait, did he just implement a proxy in two lines?" |
| 21:48:20 | Defiler | So I want UNIX-LISTEN:/new/fake/thing UNIX-CLIENT:/path/to/mysql/socket ? |
| 21:48:29 | djwhitt | socat can be used to setup a pretty nice repl interface for vim |
| 21:49:43 | djwhitt | or just about any other editor that can send data to a shell for that matter |
| 21:50:14 | evan | ok, off to enjoy my sunday |
| 21:50:23 | evan | a walk, brunch, a comedy |
| 21:50:27 | evan | perhaps a car wash |
| 21:53:15 | kw enters the room. | |
| 21:53:16 | AndrewO leaves the room. | |
| 21:53:34 | AndrewO enters the room. | |
| 21:53:36 | peeja enters the room. | |
| 21:53:37 | Maledictus leaves the room. | |
| 21:56:16 | AndrewO leaves the room. | |
| 21:59:46 | rue | Defiler: Sorry, wandering off and on. Yeah, you can do that and then just log it. Alternatively or if that info is not enough or clear, you can set up a TCP forwarder to the mysql socket, and then the client from the rbx unix socket through TCP to your forwarder |
| 22:04:15 | Defiler | looks like the macports version is broken |
| 22:04:19 | Defiler | doing it from source now |
| 22:04:39 | rue | Hih, sometimes macports is more trouble than it is worth |
| 22:04:50 | Defiler | sudo socat -d -d -x -v UNIX-LISTEN:/tmp/socat.sock,fork UNIX-CONNECT:/tmp/mysql.sock |
| 22:04:51 | rue | Granted most of my issues have been from the pre-installed Ruby |
| 22:04:53 | Defiler | is what I've got so far |
| 22:05:54 | rue | Throw in -D and -lu |
| 22:06:03 | Defiler | What are those? |
| 22:06:27 | headius leaves the room. | |
| 22:06:57 | rue | -lu is microsecond timestamps and -D gives some info about the descriptors before transferring |
| 22:07:10 | Defiler | cool |
| 22:08:03 | Defiler | damnit, I just can't make it build on os x |
| 22:09:20 | Defiler | http://rafb.net/p/ViybS875.html |
| 22:09:40 | rue | Then the debug socket option should (hopefully) enable socket debug |
| 22:10:25 | Defiler | I'm assumign this is some nightmare readline problem |
| 22:10:26 | Defiler | as usual |
| 22:10:27 | anteaya_ enters the room. | |
| 22:11:39 | rue | Readline? |
| 22:11:43 | rue | Yeah, looks it |
| 22:11:53 | rue | --disable-readline |
| 22:12:00 | wmoxam enters the room. | |
| 22:13:45 | probablycorey enters the room. | |
| 22:13:56 | Defiler | gets further, but breaks on the symbol "_res_9_init" |
| 22:16:46 | antares leaves the room. | |
| 22:19:23 | rue | That is the resolver, probably |
| 22:19:56 | Defiler | haha got it |
| 22:20:05 | rue | resolv.h |
| 22:20:42 | Defiler | rghhgh still the same error |
| 22:21:02 | Defiler | http://rafb.net/p/RmyBvg37.html |
| 22:21:10 | Defiler | (that's the one I got via macports that made me install from source) |
| 22:22:03 | luislavena enters the room. | |
| 22:22:49 | luislavena | hello guys, to whom I should direct some mspec questions? |
| 22:23:09 | srbaker leaves the room. | |
| 22:23:12 | Defiler | brixen is in charge of that |
| 22:23:15 | Fullmoon enters the room. | |
| 22:23:21 | Defiler | Though various people can probably answer most questions you may have |
| 22:23:22 | Fullmoon leaves the room. | |
| 22:23:32 | Defiler | He's the guy if you want to suggest changes, though |
| 22:24:03 | luislavena | Defiler: no changes for now, want to be sure it's working properly (it's own specs passes)... |
| 22:24:32 | luislavena | want to introduce some changes to allow backslash in the paths (for windows) to allow running rubyspecs against MRI. |
| 22:25:02 | MenTaLguY | doesn't MRI use forward slashes in paths too? |
| 22:25:06 | Defiler | luislavena: I have always used forward-slashes in Ruby on Windows. I take it some folks do otherwise? |
| 22:25:08 | Fullmoon enters the room. | |
| 22:25:19 | imajes leaves the room. | |
| 22:25:30 | imajes enters the room. | |
| 22:25:46 | luislavena | Defiler: \ vs / let autocomplete work out of the box. |
| 22:26:15 | imajes leaves the room. | |
| 22:26:18 | luislavena | Defiler: but is not a blocker, just want to be sure it's working before evaluate why some the specs passes... |
| 22:26:29 | Defiler | k |
| 22:26:33 | luislavena | think you cannot trust a tool that have it's own specs failing :-) |
| 22:26:39 | imajes enters the room. | |
| 22:26:43 | Defiler | True. All the mspec specs should pass |
| 22:26:57 | Defiler | If they don't we need to fix whatever platform bug is at fault |
| 22:27:12 | luislavena | Defiler: that's my task for today :-) |
| 22:27:29 | luislavena | Defiler: if you have a minute, can you run mspec -t ruby mspec/spec on your box? |
| 22:28:05 | rue | Defiler: Hm, it seems to build OK from macports here |
| 22:28:05 | adamwiggins enters the room. | |
| 22:29:06 | Defiler | rue: builds OK, doesn't run |
| 22:29:18 | Defiler | luislavena: tons of failures. I believe that isn't the correct way to run it. Let me look |
| 22:29:54 | Defiler | Oh, right. the mspec specs are meant to run in rspec |
| 22:30:02 | luislavena | Defiler: thank you, just wanted to be sure, since it expected you ruby mspec with your current ruby implementation :-) |
| 22:30:09 | Defiler | so 'spec spec/mspec' should do what you want |
| 22:30:14 | luislavena | Defiler: oh, great! :-D |
| 22:30:42 | Defiler | I guess that is a little like how rspec has some test/unit bootstrap tests |
| 22:30:48 | Defiler | You'll have to ask brixen about the 'why' part, though |
| 22:30:51 | anteaya leaves the room. | |
| 22:30:58 | Defiler | "rake spec:mspec" will do it as well |
| 22:31:14 | luislavena | Defiler: great, thank you for your time :-) |
| 22:31:20 | rue | Defiler: Oh, maybe termios.. sec |
| 22:32:10 | Defiler | luislavena: Thanks for taking a look at it on Windows |
| 22:32:13 | luislavena | Defiler: 671 examples, 10 failures, not that bad :-D |
| 22:32:37 | luislavena | Defiler: no problem, want to use the rubyspecs into MinGW One-Click Installer :-) |
| 22:32:43 | Defiler | Let me run it here as well to make sure there are no errors |
| 22:32:48 | Defiler | hot |
| 22:33:03 | luislavena | since 1.8.7 really screwed up things a bit on this side :-P |
| 22:33:28 | rue | I am fully expecting 1.8.7 to bomb |
| 22:33:54 | Defiler | Running MRI releases before they have a patch-level tacked onto the end is bad |
| 22:33:56 | luislavena | rue: they backported a lot of things that will make 1.8 users unhappy :-( |
| 22:33:56 | rue | Maybe they will finally adopt the novel "running tests" approach though |
| 22:33:58 | Defiler | At least recently |
| 22:36:34 | Defiler | luislavena: 0 failures here, so at least it is meant to pass :) |
| 22:37:08 | luislavena | Defiler: excellent :-) |
| 22:37:34 | luislavena | Defiler: it seems most of the failures came from hardcoded /tmp/tags.txt |
| 22:37:49 | luislavena | Defiler: will workaround those and make it pass. |
| 22:37:58 | rue | luislavena: Using rspec to run the tests is specifically because it is not possible to run some of the specs on MatzRuby because of the "recursion" |
| 22:38:42 | luislavena | rue: yes, also because sometimes is not possible test your tool with the tool itself :-P |
| 22:38:43 | probablycorey leaves the room. | |
| 22:39:22 | luislavena | running mspec on spec/ruby/1.8 got a bug crash, so I can say I'm happy :-D |
| 22:41:36 | rue | Defiler: -d -d -d -d also gives you the c function calls socat is making which may help with timing issues |
| 22:42:53 | rue | Haha: echo -e "\0\14\0\0\c" |socat -u - file:/usr/bin/squid.exe,seek=0x00074420 |
| 22:43:17 | imajes leaves the room. | |
| 22:43:24 | Defiler | rue: So, it is working for you on your Mac OS install? |
| 22:43:28 | Defiler | Or is that on a different platform |
| 22:44:15 | benny leaves the room. | |
| 22:44:48 | kw leaves the room. | |
| 22:46:23 | wmoxam leaves the room. | |
| 22:46:47 | rue | Defiler: I installed it manually just now |
| 22:47:17 | Defiler | What did you type to get that to work? |
| 22:47:50 | adamwiggins | Hey guys, I've got my first (attempt at a) patch, a couple of specs for IO.popen. What's the best way to get this reviewed, stick it in a pastie and link here? Or create a ticket in lighthouse? |
| 22:48:43 | Defiler | ticket |
| 22:49:04 | Defiler | Feel free to link it here after doing so, though, to attract interest |
| 22:50:14 | adamwiggins | Cool, thanks. |
| 22:51:50 | demisone enters the room. | |
| 22:52:39 | rubuildius_ppc | MenTaLguY: 1af4a3eeb; 2090 files, 6572 examples, 22977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/183928 |
| 22:52:41 | rubuildius_ppc leaves the room. | |
| 22:52:43 | rubuildius_ppc enters the room. | |
| 22:52:45 | rue | Defiler: `./configure --prefix=/opt/local --disable-termios --disable-readline` and then edited config.h to #define HAVE_RESOLV_H 0 instead of 1 |
| 22:52:53 | Defiler | aha |
| 22:55:33 | Defiler | rue: Cool. That works. You are a pro |
| 22:57:41 | Defiler | rue: Hrm. I'm not getting the content that I'm sending on STDERR. Do I need another flag for that? |
| 22:58:12 | Defiler | Client can connect through the proxied socket and talk to mysql, though, so that part is working at least |
| 22:58:20 | jicksta enters the room. | |
| 23:02:26 | rue | Are you seeing nothing or just the mysql side/ |
| 23:02:28 | adamwiggins | Here's the patch, feedback appreciated: |
| 23:02:29 | adamwiggins | http://rubinius.lighthouseapp.com/projects/5089-rubinius/tickets/506-specs-for-io-popen |
| 23:03:22 | Defiler | rue: Nothing |
| 23:03:33 | Defiler | rue: Other than the one line that prints showing a successful startup of socat |
| 23:05:44 | rubuildius_ppc | MenTaLguY: 1af4a3eeb; 2090 files, 6572 examples, 22977 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/183932 |
| 23:08:41 | rue | Defiler: Oh, the fork probably? |
| 23:09:39 | Defiler | Works the same without the fork |
| 23:10:01 | Defiler | oh wait |
| 23:10:02 | rue | socat -d -d -d -d -lu -v -x UNIX-LISTEN:/tmp/fakerbxtest.sock UNIX-CONNECT:/tmp/rbxtest.sock |
| 23:10:37 | fbuilesv | luislavena: can MRI be built on Windows right now without using Cygwin? |
| 23:10:54 | wdperson leaves the room. | |
| 23:11:06 | rue | fbuilesv: Yeah, the one-click uses VC++ 7 or something |
| 23:11:12 | Defiler | I was setting the wrong env variable durh |
| 23:11:32 | luislavena | fbuilesv: yes, but didn't followed that path, if you want mingw I can help :-D |
| 23:11:38 | fbuilesv | rue: I see. |
| 23:11:56 | luislavena | fbuilesv: oh, without cygwin... yeah, take a look at One-Click installer bootstrap project. |
| 23:11:56 | fbuilesv | luislavena: Nah, just checking the patch uploaded by adamwiggins so I'm guessing that echo and cat will fail on Windows? |
| 23:12:28 | luislavena | yep, these will fail, cat/type , echo will work unless you use $VAR |
| 23:13:06 | rue | The specs do rely rather heavily on the shell to verify the system side |
| 23:13:20 | Defiler | OK, check this out |
| 23:13:21 | Defiler | http://rafb.net/p/oyJ3vo49.html |
| 23:13:38 | rue | fbuilesv, luislavena: Emm, I do not think IO.popen works on Win32 to begin with? :) |
| 23:13:40 | luislavena | rue: current one click uses VC6, upcoming uses GCC |
| 23:13:51 | luislavena | fbuilesv: yes, IO.popen now works. |
| 23:14:05 | adamwiggins | What would be a cross-platform way to test writing to a pipe, then? |
| 23:14:06 | brainopia_ enters the room. | |
| 23:14:13 | luislavena | rue: do you want me to test something? |
| 23:14:21 | fbuilesv | luislavena: How do you make that work in Windows? Is there anything that resembles a pipe? |
| 23:14:28 | adamwiggins | Or should I go with the eyesore of if RUBY_PLATFORM = ... |
| 23:14:33 | adamwiggins | And specify an alternate command in each case. |
| 23:14:37 | Defiler | fbuilesv: Windows has named pipes |
| 23:14:38 | luislavena | fbuilesv: there are pipes on Windows :-) |
| 23:14:44 | fbuilesv | :O |
| 23:14:46 | Defiler | and mailboxes, even |
| 23:15:02 | rue | Defiler: Can you run it with -d * 4 ? |
| 23:15:16 | luislavena | abuses of unnamed pipes quite often to redirect child processes. |
| 23:15:40 | rue | adamwiggins: There is a guard mechanism for this |
| 23:15:59 | fbuilesv | adamwiggins: you can use guards but there must be something that runs both in Unix and Win |
| 23:16:18 | Defiler | rue: http://rafb.net/p/7jwvBr95.html |
| 23:16:28 | adamwiggins | Meaning I can use platform_is :something and make a different spec for each? |
| 23:16:58 | rue | adamwiggins: Yeah, you could do that--however, there may be a simpler way to verify the write works than cat |
| 23:17:09 | rue | Well, not simpler but more portable |
| 23:17:27 | adamwiggins | That'd be great, couldn't think of anything though - ideas? |
| 23:17:41 | Defiler | and -d -d -d -d with MRI: http://rafb.net/p/c2MHmD52.html |
| 23:19:31 | adamwiggins | Does "sh" run on windows? I noticed that referenced elsewhere in the IO class |
| 23:19:44 | luislavena | adamwiggins: http://pastie.caboo.se/private/ulue4fxyaesbsxaqs2w5yg |
| 23:19:46 | Defiler | It does, but via trickery |
| 23:20:47 | adamwiggins | luislavena: can you suggest a command that can be written to in a pipe and its result easily tested? |
| 23:20:48 | luislavena | adamwiggins: there is no write for IO.popen on Windows... even replacing cat |
| 23:20:59 | brainopia leaves the room. | |
| 23:21:15 | adamwiggins | As in, MRI doesn't support writing to pipes? |
| 23:21:29 | fbuilesv | adamwiggins, rue: Would doing something like "ruby -e "print 'foo'" be too expensive for a spec? |
| 23:21:34 | lstoll leaves the room. | |
| 23:21:37 | adamwiggins | Haha |
| 23:21:55 | fbuilesv | you can be sure that it will be on both platforms :P |
| 23:22:06 | luislavena | fbuilesv: echo will work, what wouldn't is write... |
| 23:22:23 | adamwiggins | Hehe, unless some purist has uninstalled it and has only rbx :) |
| 23:22:41 | fbuilesv | luislavena: I see |
| 23:22:50 | adamwiggins | ruby -e 'print "foo"' take 0.01s on my system... seems reasonable |
| 23:22:51 | luislavena | fbuilesv: let me see what I came up for the writing... |
| 23:23:16 | luislavena | adamwiggins: there is no need for that, echo will work out of the box on most of the OS... |
| 23:23:31 | fbuilesv | luislavena: will cat work too? |
| 23:24:07 | luislavena | fbuilesv: there is no cat, and type doesn't work like that... I'm looking what could replace it :-) |
| 23:24:21 | zimbatm leaves the room. | |
| 23:24:37 | Defiler | COPY CON |
| 23:24:37 | Defiler | heh |
| 23:24:42 | rue | Defiler: Looks like a different problem at least |
| 23:24:42 | fbuilesv | luislavena: I may seem nubish but my only real approach to Win in the last years was to play WoW :P |
| 23:25:18 | Defiler | rue: Man, I am really skeptical that TCP and UNIX sockets have two different problems that result in the exact same 5 second timeout |
| 23:25:26 | luislavena | fbuilesv: hehehe, I don't remember last time I played a game :-P |
| 23:25:28 | Defiler | Surely this is one underlying problem? |
| 23:26:25 | adamwiggins | luislavena: can you try applying this? http://pastie.caboo.se/183939 |
| 23:26:32 | luislavena | fbuilesv: ok, you must guard against write on pipes... that doesn't work... |
| 23:27:10 | adamwiggins | luislavena: pipe writing doesn't work at all, so the command doesn't matter...? |
| 23:27:11 | fbuilesv | adamwiggins: Now that I think about it, calling ruby -e wouldn't make much sense if we're trying to improve rbx, and calling rbx -e is pretty slow. I support the idea to guard it |
| 23:27:47 | adamwiggins | Will do then. What should I pass to platform_is to guard win32? |
| 23:27:50 | Defiler | luislavena: I thought you could just do WriteFile to write to a pipe in Win32? |
| 23:27:57 | luislavena | adamwiggins: is halting trying to read from the pipe... |
| 23:28:36 | luislavena | Defiler: want me take a look at the internals?, sometimes I got amazed how MRI do things... even I create things with win32 :-P |
| 23:28:44 | rue | Defiler: Sec, I thought I saw no delay in the AF_UNIX output |
| 23:28:53 | adamwiggins | platform_is_not :mswin ? |
| 23:29:09 | rue | adamwiggins: Perhaps a small script that reads its input? |
| 23:29:10 | imajes enters the room. | |
| 23:29:47 | luislavena | platform_is_not :windows ? |
| 23:29:49 | rue | I suppose it might be simpler to just guard it for now |
| 23:30:02 | adamwiggins | Yeah, that's what I was trying with ruby -e 'print STDIN.gets' |
| 23:30:06 | rue | You will need both platform_is_not and platform_is |
| 23:30:16 | Defiler | luislavena: 'platform' inspects the string that the runtime returns.. e.g. mswin32 |
| 23:30:18 | dctanner leaves the room. | |
| 23:30:29 | luislavena | Defiler: oh, that will then fail for mingw32 |
| 23:30:34 | Defiler | platform_is_not :win would exclude both mswin32 and darwin, for example |
| 23:30:59 | rue | Defiler: Sorry, I see it now. I was looking at the usecs :D |
| 23:31:37 | rue | A 5-second delay and network debugging cause an existential conflict in my perception-processing organs |
| 23:32:02 | fbuilesv | luislavena: any idea of what does Config::CONFIG['host_os'] return on Windows? |
| 23:32:59 | luislavena | fbuilesv: mswin32 for VC6 (One-Click installer) |
| 23:33:10 | rue | Defiler: So yes, this does in fact seem to be the same problem |
| 23:33:27 | luislavena | fbuilesv: mingw32 for the new MinGW based build of One-Click Installer. |
| 23:33:42 | luislavena | fbuilesv: take in consideration mswin64 too :-P |
| 23:34:01 | luislavena | can you guard against two platforms in the same line? platform_is_not :mswin, :mingw ? |
| 23:34:26 | Defiler | Yes |
| 23:34:33 | Defiler | two on the same line is an 'or' |
| 23:34:40 | Defiler | If you need 'and' exclusion, you nest them |
| 23:35:36 | rue | Defiler: You would want to hook into the VM network layer with GDB and see. I can try to take a look later too, what are you using to test? The unmodified pure-Ruby mysql driver? |
| 23:36:02 | Defiler | Though I suspect we are going to want to address the concept of 'windows' in specs often enough that we should make a cleaner way |
| 23:36:15 | Defiler | platform_is_not :windows would be nice to be able to say |
| 23:36:17 | brainopia enters the room. | |
| 23:36:25 | brainopia leaves the room. | |
| 23:36:30 | Defiler | rue: I have slightly modified mine to print some crap to the console |
| 23:36:34 | Defiler | rue: but it is otherwise unmodified |
| 23:36:35 | adamwiggins | Arguably you might want platform_is_not :unix |
| 23:36:47 |