Show enters and exits. Hide enters and exits.
| 00:03:26 | GMFlash leaves the room. | |
| 00:03:33 | GMFlash enters the room. | |
| 00:06:55 | twshelton leaves the room. | |
| 00:08:15 | agile leaves the room. | |
| 00:10:18 | drbrain | did the Unable to resolve type 'off_t' (FFI::TypeError) problem on FreeBSD get resolved somehow? |
| 00:10:42 | drbrain | I'm still getting it |
| 00:10:57 | tongueroo leaves the room. | |
| 00:11:19 | tmpk | Oh, that reminds me, with the direct threading, when are the addresses generated? From the bytecode at runtime? |
| 00:11:51 | agardiner | tmpk: for the direct threading we currently have, they are generated at shotgun compile time |
| 00:12:04 | agardiner | for the fusion stuff, they will be generated at run time |
| 00:13:07 | tmpk | What I mean is, the compiler spits out bytecode. Presumably the bytecode is converted to actual machine addresses for the NEXT then. |
| 00:13:26 | agardiner | yeah, that's true |
| 00:13:47 | agardiner | there's a method called cpu_compile_method that converts bytecode to direct-threaded code at run time |
| 00:14:15 | benburkert leaves the room. | |
| 00:14:15 | benburkert_ leaves the room. | |
| 00:14:30 | tmpk | Okay. Just checking that bytecode is going nowhere. |
| 00:14:33 | benburkert enters the room. | |
| 00:14:43 | tmpk | Although I'm not sure how rbc's would work then. |
| 00:14:51 | agardiner | yeah, it is kept around |
| 00:14:56 | pd enters the room. | |
| 00:15:39 | agardiner | since we can (and do) manipulate compiled methods at run time, and therefore need the ability to regenerate direct-threaded code |
| 00:15:44 | headius leaves the room. | |
| 00:15:52 | agardiner | the debugger relies on this |
| 00:16:09 | murphee enters the room. | |
| 00:17:46 | benburkert leaves the room. | |
| 00:17:48 | benburkert_ enters the room. | |
| 00:17:52 | mernen enters the room. | |
| 00:17:58 | enebo leaves the room. | |
| 00:23:06 | tmpk | Now that I think on it, instruction fusion makes branch monitoring cheaper. |
| 00:23:31 | tmpk | So if you ever get around to JITing things, it won't be too expensive when you're determining hot paths. |
| 00:23:40 | ezmobius enters the room. | |
| 00:24:48 | agardiner | hmmm... not sure it makes it cheaper; simpler perhaps, but we haven't eliminated any branches, just coalesced linear code paths into single code blocks |
| 00:25:49 | tmpk | The branches are still there, but you're not NEXTing constantly in straight-line code. |
| 00:25:52 | agardiner | but the notion of a sendsite equivalent for branches to code blocks could track hotness and be used for jiting |
| 00:26:05 | agardiner | yeah |
| 00:28:04 | tmpk | I'm still not clear on what sendsite is, except that it's similar to a polymorphic inline cache. |
| 00:29:17 | nicksieger leaves the room. | |
| 00:29:39 | agardiner | well, its an object used to handle method sends; it contains unchanging information, such as the method selector, as well as changing information such as hotness |
| 00:29:59 | agardiner | and custom send sites can be used for different types of method calles |
| 00:30:49 | agardiner | e.g. when a method is compiled, we know whether a send is to a primitive or FFI function which are static (non-virtual), so we can avoid method lookup checks |
| 00:31:22 | hornbeck leaves the room. | |
| 00:31:26 | murphee | howdy - quick question - is the Selector.lookup API something that'll stick around? |
| 00:31:34 | hornbeck enters the room. | |
| 00:31:56 | murphee | I find it incredibly useful - eg. graphing the live Rubinius code image |
| 00:32:06 | agardiner | i certainly hope so! |
| 00:32:16 | agardiner | as you say, it is *incredibly* useful |
| 00:32:58 | drbrain | where do I find documentation on Channel and friends? |
| 00:33:27 | tmpk | What is the hotness in a sendsite used for? |
| 00:33:33 | agardiner | i don't think there is much beyond what i had in the VM doc |
| 00:34:49 | agardiner | not much yet... though you can run shotgun with -ps and get stats |
| 00:35:06 | eventualbuddha enters the room. | |
| 00:35:18 | agardiner | but obviously, it will be useful for jiting later |
| 00:35:42 | tmpk | Stats alone is pretty handy. |
| 00:35:55 | agardiner | great for finding things to optimise! |
| 00:36:04 | murphee | damn... stats are pretty cool! |
| 00:36:06 | tmpk | :) |
| 00:36:15 | agardiner | and more accurate than the sampling profiler |
| 00:37:13 | murphee | BTW: the whole Selector.lookup stuff could make something like this possible |
| 00:37:14 | murphee | http://factorcode.org/responder/help/show-vocab?vocab=byte-arrays |
| 00:37:29 | murphee | Live view inside an image... + "Used by" cross referencing... |
| 00:37:46 | agardiner | yeah... |
| 00:37:57 | agardiner | i think this is something i'll add to the debugger |
| 00:38:14 | agardiner | so you can find out what calls a method, get stats on how often etc |
| 00:39:01 | therealadam leaves the room. | |
| 00:39:14 | murphee | BTW I saw some discussion about ParseTree some days ago... |
| 00:39:15 | tmpk | That would be useful. There's been a number of times I wished I could pipe out everything to graphviz. |
| 00:39:32 | murphee | Are method bodies still available as s-exprs? |
| 00:40:07 | agardiner | still? there's talk of adding that to CM, but it hasn't been there before |
| 00:40:17 | murphee | No? |
| 00:40:24 | agardiner | although if you have the source, you can always get one using String#to_sexp |
| 00:40:31 | murphee | Hmm... |
| 00:41:01 | agardiner | maybe you were thinking of describe.rb? |
| 00:41:03 | murphee | Would be useful... eg. for debugging code that was created at runtime |
| 00:41:18 | murphee | eg. take s-expr, yank it through Ruby2Ruby -> done |
| 00:41:26 | agardiner | yeah... and for better macro capabilities |
| 00:41:28 | murphee | agardiner: what's describe.rb |
| 00:41:39 | agardiner | in lib/compiler |
| 00:41:53 | agardiner | give it a source file and it describes the compilation process |
| 00:41:58 | agardiner | sexp, bytecode, etc |
| 00:43:03 | murphee | Ah... I saw that as a feature of Rubinius' irb, with a command line argument |
| 00:43:25 | agardiner | ah, yeah, we used to have -dc etc with sirb |
| 00:43:35 | agardiner | not sure if that has been added to IRB yet |
| 00:43:44 | murphee | Oh, about macros: http://www.infoq.com/news/2008/02/using-parsetree |
| 00:43:52 | murphee | (sorry for self promotion) |
| 00:44:06 | agardiner | hehe, not at all! you write some good stuff |
| 00:44:48 | murphee | thanks... though the Rubinius crowd adds stuff too fast for me to write up |
| 00:44:55 | agardiner | i've added infoq to my bookmarks, after all the recent coverage on Rubinius |
| 00:45:26 | agardiner | murphee: yeah, i keep meaning to start blogging, but it takes away from coding... |
| 00:46:37 | murphee | yeah... for now I'll just keep on mining the IRC logs... |
| 00:46:58 | lopex leaves the room. | |
| 00:47:04 | agardiner | probably the best source :-P |
| 00:48:02 | lstoll enters the room. | |
| 00:50:44 | agardiner | murphee: good article, btw... i knew merb was using parsetree this way, but not Ambition and Sequel |
| 00:51:12 | murphee | yeah... I was really surprised about merb using it this way |
| 00:51:22 | agardiner | its great to have use cases for this stuff |
| 00:51:52 | murphee | Yeah... and I guess the whole hubbub... hububb...hmm... excitement about LINQ adds some merit... |
| 00:53:26 | tarcieri | Sequel's use of ruby2ruby is pretty slick |
| 00:54:06 | agardiner | ruby2ruby is pretty darn slick too! |
| 00:54:09 | agardiner | :-) |
| 00:54:28 | tarcieri | yeah, kinda like Erlang parse transforms |
| 00:54:45 | tarcieri | That's what inspired Ambition |
| 00:54:48 | agardiner | doesn't know Erlang... :-( |
| 00:54:51 | tarcieri | Mnesia's use of parse transforms |
| 00:56:42 | smartocci leaves the room. | |
| 00:57:53 | murphee | http://www.jroller.com/murphee/entry/metaprogramming_erlang_macros_from_ground |
| 00:58:28 | murphee | Heh... blog long enough and you can post a link for every topic at your local dinner party... |
| 00:58:37 | agardiner | :-D |
| 01:03:37 | murphee | OK... getting late here... cheerio... |
| 01:03:39 | murphee leaves the room. | |
| 01:06:21 | Fishy5 enters the room. | |
| 01:10:00 | pd leaves the room. | |
| 01:13:23 | wmoxam leaves the room. | |
| 01:16:27 | Fishy5 leaves the room. | |
| 01:18:39 | nicksieger enters the room. | |
| 01:27:24 | pd enters the room. | |
| 01:30:17 | femtowin enters the room. | |
| 01:31:12 | cored enters the room. | |
| 01:32:22 | femtowin leaves the room. | |
| 01:42:03 | rubyconsumer enters the room. | |
| 01:43:08 | twshelton enters the room. | |
| 01:44:17 | mernen leaves the room. | |
| 01:47:51 | vintrepid leaves the room. | |
| 01:48:32 | d2dchat leaves the room. | |
| 01:56:49 | agile enters the room. | |
| 02:04:39 | zuwiki leaves the room. | |
| 02:08:47 | mernen enters the room. | |
| 02:09:39 | tmpk | agardiner: what do you do at UniMelb? |
| 02:09:49 | Yurik leaves the room. | |
| 02:09:54 | tmpk | studied there for a while. |
| 02:10:06 | agardiner | i'm contracting on a data warehouse implementation |
| 02:10:29 | boyscout | 1 commit by Eric Hodel |
| 02:10:30 | boyscout | * Add some RDoc, cleanup some RDoc.; 5a53add |
| 02:12:14 | tmpk | I'm not familiar with what a data warehouse is. Is this like the huge rooms full of tape racks of yore? |
| 02:12:42 | agardiner | hehe... no |
| 02:13:23 | agardiner | a data warehouse is a database used to combine data from a myriad of operational systems and make it available for reporting and analysis |
| 02:14:00 | jeremydurham enters the room. | |
| 02:14:02 | Yurik enters the room. | |
| 02:15:29 | tmpk | Sounds like something that gets a heavy load. |
| 02:15:35 | technomancy leaves the room. | |
| 02:15:57 | agardiner | yeah... the largest databases in the world are data warehouses |
| 02:16:22 | agardiner | e.g. WalMart have a gargantuan data warehouse |
| 02:16:31 | agardiner | but ours is tiny at present |
| 02:17:07 | tmpk | How do you handle queries on such data? Regular vertical scaling probably doesn't work that well. |
| 02:17:39 | agardiner | a data warehouse has a different design to a normal (operational) database |
| 02:17:42 | bburcham leaves the room. | |
| 02:17:43 | agardiner | its not 3NF |
| 02:17:58 | agardiner | but something known as a star schema |
| 02:18:22 | agardiner | its a design that trades redundancy for query simplicity and performance |
| 02:19:17 | jeremydurham leaves the room. | |
| 02:20:02 | jeremydurham enters the room. | |
| 02:20:18 | noclue123 enters the room. | |
| 02:20:44 | tmpk | Reading the wiki entry does bad things to my brain. I'm not good with DB. D: |
| 02:21:36 | agardiner | hehe... it takes a bit to get your mind around, but then it all falls into place |
| 02:21:45 | eventualbuddha leaves the room. | |
| 02:23:18 | bburcham enters the room. | |
| 02:24:11 | VVSiz_ enters the room. | |
| 02:27:58 | zuwiki enters the room. | |
| 02:31:39 | VVSiz leaves the room. | |
| 02:34:02 | obvio171 enters the room. | |
| 02:39:25 | bburcham leaves the room. | |
| 02:46:14 | Defiler | Hah. Too bad I missed muphee |
| 02:48:50 | obvio leaves the room. | |
| 02:49:05 | _mutle enters the room. | |
| 02:51:53 | femtowin enters the room. | |
| 02:52:52 | cored leaves the room. | |
| 03:04:39 | mutle leaves the room. | |
| 03:18:12 | boyscout | 2 commits by Adam Gardiner |
| 03:18:13 | boyscout | * Rename CompiledMethod#locals to CompiledMethod#local_count; 4462dd5 |
| 03:18:14 | boyscout | * Remove unused fields from CompiledMethod; ddc63b9 |
| 03:18:33 | mernen leaves the room. | |
| 03:23:01 | macournoyer enters the room. | |
| 03:23:32 | djwhitt | benny: you around? |
| 03:24:04 | benny | djwhitt: yes |
| 03:24:20 | djwhitt | you know that rubuildius is down? |
| 03:24:28 | benny | nope |
| 03:24:41 | djwhitt | yeah, went down a day or two ago |
| 03:24:48 | djwhitt | I wasn't sure if anyone had told you |
| 03:24:58 | jeremydurham leaves the room. | |
| 03:25:07 | rue | Knowledge is half the battle! |
| 03:25:21 | macournoyer leaves the room. | |
| 03:26:15 | rubuildius enters the room. | |
| 03:27:38 | benny | I guess it had to do with the network outage at the colocation |
| 03:28:00 | benny | it's somehow amateur the way they do it, but that has other advantages :-) |
| 03:30:12 | djwhitt | excellent, thanks for starting it back up |
| 03:30:55 | benny | my pleasure, you guys can always privately msg me so I notice, because I don't keep track of this channel that much |
| 03:33:09 | macournoyer enters the room. | |
| 03:34:24 | imajes leaves the room. | |
| 03:36:14 | imajes enters the room. | |
| 03:39:25 | Defiler | I think a "restartable" Exception could be implemented by |
| 03:39:25 | Defiler | creating an Exception with an instance variable that holds |
| 03:39:25 | Defiler | a Continuation. The Continuation would assigned when |
| 03:39:25 | Defiler | the Exception was created such that when .call'd it |
| 03:39:25 | Defiler | resumed (or restarted) execution at the desired point. |
| 03:39:30 | rubuildius | Adam Gardiner: 4462dd5dd; 4789 examples, 17479 expectations, 1 failure, 0 errors; http://rafb.net/p/wsmvNk58.html |
| 03:39:32 | Defiler | oops. Meant that to paste on one line. |
| 03:40:17 | pergesu enters the room. | |
| 03:40:42 | agardiner | sounds interesting |
| 03:41:39 | MenTaLguY enters the room. | |
| 03:41:45 | Defiler | Sounds slow. Heh |
| 03:43:28 | agardiner | can't have everything... :-) |
| 03:46:30 | rue | Hrm, wtf |
| 03:47:34 | rue | Strings are very slow for some weird reason |
| 03:47:50 | Defiler | evan: Ooh.. cool idea for what to do with the 'data' immediate tag defined in oop.h |
| 03:53:10 | mae leaves the room. | |
| 03:53:24 | ezmobius leaves the room. | |
| 03:53:36 | mae enters the room. | |
| 03:58:59 | rue | Hehe, the old #sort processes about 1500 strings in the same time new does 150000 |
| 03:59:33 | agardiner | 2 orders of magnitude improvement! now that's worth bragging rights! :-D |
| 04:00:17 | rue | Think we are still about two behind Matz though |
| 04:00:42 | agardiner | heh.. 2 steps at a time |
| 04:01:07 | agardiner | that's because they are strings, right? |
| 04:02:00 | rue | Have not looked at it too closely, we still have to use the same #<=> |
| 04:02:46 | agardiner | yeah, but i thought your changes were faster than MRI with fixnums, no? |
| 04:03:24 | agardiner | ooh, interesting... just noticed we aren't evaluating constant expressions like 2**28 at compile time |
| 04:03:36 | Defiler | Yeah, ** could be redefined :) |
| 04:03:53 | agardiner | oh |
| 04:04:05 | Defiler | "It's Ruby, Jack" |
| 04:04:10 | Defiler | "Just walk away" |
| 04:04:24 | agardiner | that example came from BlockEnvironment#under_context |
| 04:04:48 | agardiner | so every block creation is doing an unnecessary send |
| 04:05:09 | Defiler | Oh, that value isn't being stored in a constant somewhere? |
| 04:05:18 | agardiner | no, i think i'll change it though |
| 04:05:51 | Defiler | Oh yeah, I see that. Definitely worth changing |
| 04:06:41 | agardiner | a constant isn't any better here... should be a literal number to avoid a lookup/send, no> |
| 04:07:31 | Defiler | The constant will only be calculated when the class body runs the first time |
| 04:07:38 | Defiler | But a literal would be even better |
| 04:07:44 | Defiler | This looks like a rich trove, actually |
| 04:07:44 | Defiler | http://rafb.net/p/eAustc32.html |
| 04:07:56 | rue | Reversed order perfoms badly at high counts, it looks like |
| 04:08:03 | Defiler | Look at all that stuff in integer.rb |
| 04:08:26 | agardiner | wow! |
| 04:08:54 | Defiler | The compiler one is the only one that does it right, that I can see |
| 04:09:23 | agardiner | well, there's still a problem with the compiler one two... |
| 04:09:31 | Defiler | Why? |
| 04:09:35 | agardiner | because a constant has to be looked up using find_constant |
| 04:09:35 | Defiler | Or, rather.. what? |
| 04:09:45 | Defiler | Yeah. Should just inline that |
| 04:10:23 | agardiner | inlining kinda sucks though, since then you end up with magic numbers everywhere |
| 04:11:19 | agardiner | couldn't we make an argument that constant expressions will be inlined at compile time? |
| 04:12:02 | agardiner | i.e. Numeric <op> Numeric gets inlined? |
| 04:12:41 | agardiner | or at least, they should be inlined when compiling kernelland |
| 04:14:35 | Defiler | Yeah, that would be fun too |
| 04:15:13 | Defiler | Are you changing this, by the way, or should I? |
| 04:15:17 | Defiler | I changed the one in compiler |
| 04:15:18 | agardiner | wonder what JRuby/1.9 do for constant expressions |
| 04:15:46 | agardiner | well, i think we ought to resolve it in the compiler, rather than using magic numbers |
| 04:16:10 | agardiner | only question is whether it should be a global or kernelland feature |
| 04:20:06 | railsfactory enters the room. | |
| 04:20:09 | Defiler | I have to say I think it would be a pretty safe feature to enable |
| 04:20:16 | Defiler | ..but it might be a little early for it |
| 04:21:32 | agardiner | i guess if the logic is implemented in the compiler, it would be easy to change whether it was on all the time, on just for kernelland, or a switch for userland... |
| 04:23:42 | Defiler | Huh. With this change to BlockContext, ci is running a little faster than I've ever seen it run before |
| 04:24:08 | agardiner | not surprised... that's gonna reduce the number of sends by a huge amount |
| 04:24:31 | agardiner | particularly on specs |
| 04:24:32 | boyscout | 2 commits by Wilson Bilkovich |
| 04:24:33 | boyscout | * Avoid a Fixnum#** in BlockContext; b0851e6 |
| 04:24:34 | boyscout | * Avoid a constant lookup for inline integer cutoff; d8e700d |
| 04:28:17 | Defiler | The C version of that method has a similar issue, actually |
| 04:28:46 | Defiler | I2N(0) and I2N(1 << 25) always result in the same object, and could be static, I think |
| 04:29:00 | Defiler | Maybe gcc optimizes all that away, though |
| 04:29:18 | agardiner | yeah, it would |
| 04:33:04 | macournoyer leaves the room. | |
| 04:34:13 | rubuildius | Wilson Bilkovich: b0851e653; 4789 examples, 17479 expectations, 1 failure, 0 errors; http://rafb.net/p/bK9bv348.html |
| 04:39:21 | squeegy enters the room. | |
| 04:40:24 | rue | OK, final results: http://pastie.org/152553 |
| 04:40:32 | rue | Need to clean up my commits a bit |
| 04:46:47 | femtowin enters the room. | |
| 04:56:21 | wmoxam enters the room. | |
| 05:19:03 | cremes enters the room. | |
| 05:19:36 | cremes | Build is broken on OSX PPC since at least yesterday (20080213). Here are the details: |
| 05:19:38 | cremes | http://pastie.caboo.se/152562 |
| 05:19:48 | cremes | Shall I open a ticket or is this a known issue? |
| 05:20:35 | rue | Yeah, open one |
| 05:20:41 | rue | This just started yesterday? |
| 05:21:13 | cremes | I do a fresh build (git pull; rake distclean; rake build) about every other day... so yeah, yesterday |
| 05:25:45 | lstoll leaves the room. | |
| 05:26:25 | lstoll enters the room. | |
| 05:27:15 | cremes | Ticket 328 is now open: |
| 05:27:16 | cremes | http://rubinius.lighthouseapp.com/projects/5089/tickets/328-build-broken-on-osx-ppc |
| 05:29:00 | cremes leaves the room. | |
| 05:33:08 | agardiner | bleh... |
| 05:33:24 | agardiner | Defiler: i wrote a compiler plugin for const expressions |
| 05:34:08 | agardiner | works well for cases like 2**28 |
| 05:34:25 | agardiner | but not for more complex expressions like 2**32-1 |
| 05:38:39 | lstoll_ enters the room. | |
| 05:38:39 | lstoll leaves the room. | |
| 05:41:59 | RyanTM leaves the room. | |
| 05:42:06 | drbrain | Defiler: why didn't you drop the lvar in lib/compiler/generator |
| 05:43:22 | gmh33 enters the room. | |
| 05:44:22 | agardiner | drbrain: i've got an alternate solution to this problem |
| 05:44:24 | femtowin enters the room. | |
| 05:44:38 | agardiner | it's a compiler plugin that replaces constant expressions with literal values |
| 05:45:16 | drbrain | yeah, it just seems silly to replace a CONST lookup with an lvar lookup |
| 05:45:27 | agardiner | well, at least lvar lookup is a lot faster |
| 05:45:45 | drbrain | but, a literal is faster yet |
| 05:45:49 | agardiner | of course |
| 05:47:19 | agardiner | so, think i should push my plugin? it's only enabled for kernel mode |
| 05:48:43 | drbrain | for things in kernel/? yes |
| 05:48:49 | drbrain | I think that would be safe |
| 05:48:58 | drbrain | we can always revert it, if there are problems |
| 05:49:03 | agardiner | it's easy to disable at any rate |
| 05:49:44 | agardiner | unfortunately, the plugin only handles cases where the receiver and arg are both literals |
| 05:50:22 | agardiner | so it only does the highest precedence part when you have an expression like 2**32-1 |
| 05:50:53 | agardiner | i think our plugin architecture could use a little more flexibility... |
| 05:51:34 | agardiner | it only allows plugins at the bytecode generation stage, but in this instance, that's too late to handle this properly |
| 05:52:14 | agardiner | ideally, i'd plug into the node stage, and replace the Call node with a NumberLiteral node |
| 05:52:35 | drbrain | yeah |
| 05:52:48 | drbrain | SexpProcessor would let you do that more easily |
| 05:53:33 | agardiner | i think we ought to have a more flexible pipeline, where plugins can be installed at any of the node, bytecode, or generation stages |
| 05:55:19 | ezmobius enters the room. | |
| 06:04:23 | srbaker leaves the room. | |
| 06:04:26 | rubyconsumer leaves the room. | |
| 06:04:46 | rubyconsumer enters the room. | |
| 06:10:00 | maharg | it should be possible to do that kind of optimization at the bytecode level |
| 06:10:06 | maharg | possibly it makes even more sense |
| 06:14:53 | agardiner | sure, it's possible... why do you think it makes more sense though? |
| 06:15:39 | boyscout | 1 commit by Adam Gardiner |
| 06:15:40 | boyscout | * Add a compiler plugin for constant expressions; f1370ac |
| 06:17:02 | agardiner | gotta run... bye |
| 06:17:06 | agardiner leaves the room. | |
| 06:17:18 | boyscout | 9 commits by Eero Saynatkari |
| 06:17:19 | boyscout | * Implemented new, better Array#sort and #sort!; c3a735e |
| 06:17:20 | boyscout | * Improved Array#sort, #sort! specs.; 56af7be |
| 06:17:21 | boyscout | * Improved benchmark files a bit in case of reuse.; 45a987d |
| 06:17:22 | boyscout | * Rewrote Array#sort. Performance gain anywhere from 40x to infinite.; d4cede4 |
| 06:17:23 | boyscout | * Improved Array#sort specs a bit.; 714ea4b |
| 06:17:24 | boyscout | ... |
| 06:19:53 | scoopr | that sounds like a nice perf increase =) |
| 06:19:59 | kofno_away leaves the room. | |
| 06:20:39 | ezmobius | nice |
| 06:23:17 | rue | 'S limited with our data sets, should help generally though |
| 06:25:13 | scoopr | don't be modest, infinite performance gain is good even if with only very special sets =) |
| 06:25:43 | rue | Heh |
| 06:29:11 | rubuildius | Eero Saynatkari: c3a735e9e; 4796 examples, 17489 expectations, 1 failure, 0 errors; http://rafb.net/p/gRJYV111.html |
| 06:29:48 | ezmobius | ./bin/ci runs in ~17seconds for me now |
| 06:31:14 | rue | About 32 seconds here |
| 06:31:21 | rue | MatzRuby clocks in at 5 seconds |
| 06:36:33 | rue | That is actually surprisingly good. Took a moment for that to sink in |
| 06:37:19 | pietia enters the room. | |
| 06:39:24 | drbrain | rue: I think something is broken |
| 06:39:29 | drbrain | I can't install rake anymore |
| 06:42:41 | drbrain | strange, I only have 112 gems now |
| 06:43:05 | rue | Oo, can you distill? |
| 06:43:22 | drbrain | I'm trying |
| 06:43:36 | rue | I do not have gems/rake here in any capacity |
| 06:43:55 | drbrain | yeah, and there's a ton of crap in there, too |
| 06:44:58 | drbrain | ok, I'm seeing 1% of all the gems here |
| 06:49:54 | pergesu leaves the room. | |
| 06:53:07 | drbrain | rue: I give up, something hates me |
| 06:53:13 | drbrain | rue: I'll look into it tomorrow |
| 06:53:53 | rue | Roger |
| 06:54:01 | MenTaLguY leaves the room. | |
| 06:55:25 | pietia leaves the room. | |
| 07:06:51 | cjheath leaves the room. | |
| 07:07:13 | lstoll_ leaves the room. | |
| 07:10:24 | jero5 leaves the room. | |
| 07:18:09 | lvmc enters the room. | |
| 07:18:23 | lvmc | rue, |
| 07:18:41 | lvmc | i`m very interested on mod_rubinius! |
| 07:19:02 | lvmc | eva |
| 07:19:03 | lvmc | evan, |
| 07:19:06 | lvmc | you are on? |
| 07:19:27 | hornbeck leaves the room. | |
| 07:20:26 | dewd leaves the room. | |
| 07:22:22 | lvmc | can mod_rubinius be index on google summer code |
| 07:23:06 | w1rele55 enters the room. | |
| 07:23:29 | lvmc | i`m very interested with it, but i really need some ($$) motivation [to buy a apple notebook]. any chances? |
| 07:23:38 | Fullmoon enters the room. | |
| 07:25:45 | ezmobius leaves the room. | |
| 07:34:17 | rue leaves the room. | |
| 07:39:52 | femtowin enters the room. | |
| 07:42:32 | lvmc leaves the room. | |
| 07:43:07 | TheVoice enters the room. | |
| 07:43:36 | Yurik | anybody was able to repeat http://blog.segment7.net/articles/2008/02/14/rubygems-in-rubinius ? |
| 07:43:36 | mae leaves the room. | |
| 07:44:00 | mae enters the room. | |
| 07:45:39 | mae leaves the room. | |
| 07:45:56 | mae enters the room. | |
| 07:48:54 | dbussink enters the room. | |
| 07:49:58 | dbussink | morning |
| 07:55:59 | obvio171 leaves the room. | |
| 08:03:20 | Fullmoon leaves the room. | |
| 08:11:37 | langenberg enters the room. | |
| 08:13:23 | w1rele55 leaves the room. | |
| 08:16:24 | w1rele55 enters the room. | |
| 08:16:31 | nicksieger leaves the room. | |
| 08:16:48 | dbussink leaves the room. | |
| 08:17:57 | thehcdreamer enters the room. | |
| 08:20:29 | femtowin enters the room. | |
| 08:25:23 | femtowin leaves the room. | |
| 08:28:25 | gra enters the room. | |
| 08:40:41 | gra_ enters the room. | |
| 08:40:42 | gra leaves the room. | |
| 08:44:25 | langenberg leaves the room. | |
| 08:53:19 | gra enters the room. | |
| 08:53:23 | gra_ leaves the room. | |
| 08:57:07 | mae leaves the room. | |
| 08:57:31 | mae enters the room. | |
| 08:59:42 | VVSiz | morning indeed! :) |
| 09:01:24 | wycats leaves the room. | |
| 09:11:03 | gra_ enters the room. | |
| 09:11:05 | gra leaves the room. | |
| 09:15:18 | rubyconsumer leaves the room. | |
| 09:15:51 | rubyconsumer enters the room. | |
| 09:22:14 | dctanner enters the room. | |
| 09:24:27 | gra enters the room. | |
| 09:24:29 | gra_ leaves the room. | |
| 09:25:13 | Arjen_ enters the room. | |
| 09:27:52 | benburkert enters the room. | |
| 09:28:08 | benburkert_ leaves the room. | |
| 09:28:19 | benburkert leaves the room. | |
| 09:28:48 | benburkert enters the room. | |
| 09:28:50 | obvio enters the room. | |
| 09:29:07 | obvio171 enters the room. | |
| 09:31:04 | benburkert_ enters the room. | |
| 09:31:04 | benburkert leaves the room. | |
| 09:31:06 | gra leaves the room. | |
| 09:35:24 | maduyb__ leaves the room. | |
| 09:35:30 | ragge enters the room. | |
| 09:36:23 | graza enters the room. | |
| 09:38:04 | langenberg enters the room. | |
| 09:46:34 | langenberg leaves the room. | |
| 09:49:08 | imajes leaves the room. | |
| 09:51:16 | graza_ enters the room. | |
| 09:51:17 | graza leaves the room. | |
| 09:57:35 | fork_ enters the room. | |
| 10:00:43 | GMFlash | congrats on getting rubygems running! rubinius ftw! |
| 10:00:55 | dctanner leaves the room. | |
| 10:00:55 | edward_g leaves the room. | |
| 10:00:55 | zenspider leaves the room. | |
| 10:00:55 | lenbust leaves the room. | |
| 10:00:55 | Chrononaut leaves the room. | |
| 10:01:35 | wmoxam_ enters the room. | |
| 10:01:40 | kAworu leaves the room. | |
| 10:01:41 | halorgium leaves the room. | |
| 10:01:43 | halorgium enters the room. | |
| 10:01:52 | kAworu enters the room. | |
| 10:07:36 | dctanner enters the room. | |
| 10:07:36 | edward_g enters the room. | |
| 10:07:36 | zenspider enters the room. | |
| 10:07:36 | Chrononaut enters the room. | |
| 10:07:36 | lenbust enters the room. | |
| 10:10:42 | graza enters the room. | |
| 10:10:43 | graza_ leaves the room. | |
| 10:13:32 | wmoxam leaves the room. | |
| 10:15:38 | fork leaves the room. | |
| 10:23:57 | graza_ enters the room. | |
| 10:23:58 | graza leaves the room. | |
| 10:47:30 | cavalle enters the room. | |
| 10:47:36 | graza_ leaves the room. | |
| 10:54:16 | ruivaldo enters the room. | |
| 11:01:54 | ragge leaves the room. | |
| 11:13:58 | dbussink enters the room. | |
| 11:17:05 | dbussink_ enters the room. | |
| 11:17:05 | dbussink_ leaves the room. | |
| 11:23:28 | _helo enters the room. | |
| 11:23:30 | ragge enters the room. | |
| 11:24:01 | dbussink leaves the room. | |
| 11:26:23 | dbussink enters the room. | |
| 11:31:31 | ruivaldo leaves the room. | |
| 11:31:55 | dbussink | and, anyone in? |
| 11:43:49 | dbussink | i got it working again on freebsd, but for some reason irb fails |
| 11:47:13 | dbussink_ enters the room. | |
| 11:47:21 | femtowin enters the room. | |
| 11:47:51 | ragnard | dbussink: aha, so it workds on freebsd... cool. know if anyone is working on openbsd? |
| 11:48:08 | dbussink | i'm gonna push the current fixes for now |
| 11:48:26 | dbussink | at least it's a better state then :P |
| 11:51:54 | dbussink | ragnard: you have a freebsd system available? |
| 11:52:16 | dbussink_ leaves the room. | |
| 11:57:18 | ragnard | dbussink: nope... only openbsd. apparently the machine is unhappy right now though... just tried to boot it... |
| 11:57:27 | boyscout | 2 commits by Dirkjan Bussink |
| 11:57:28 | boyscout | * Fixed some white spaces; daeac3d |
| 11:57:29 | boyscout | * Add support for the GCC __attribute__ construct to TypesGenerator; 04da8d7 |
| 11:57:46 | dbussink | ragnard: ah, well, would be nice to test there :) |
| 11:57:58 | ragnard | dbussink: i'll give it a try soon |
| 11:59:04 | dbussink | ragnard: ah ok |
| 11:59:26 | dbussink | i don't know whether the current failure on freebsd on because of the new typesgenerator, or that the problem already existed |
| 11:59:48 | dctanner leaves the room. | |
| 12:03:29 | GMFlash leaves the room. | |
| 12:03:37 | GMFlash enters the room. | |
| 12:07:45 | xmlhacker | Just for fun > http://www.oreillynet.com/xml/blog/2008/02/how_to_pronounce_rubinius.html |
| 12:09:31 | rubuildius | Dirkjan Bussink: daeac3de9; 4796 examples, 17489 expectations, 1 failure, 0 errors; http://rafb.net/p/M8TLhq95.html |
| 12:14:45 | hornbeck enters the room. | |
| 12:19:21 | kofno enters the room. | |
| 12:19:33 | boyscout | 1 commit by Dirkjan Bussink |
| 12:19:34 | boyscout | * Removed now working exclude for Array#sort; f25e0e1 |
| 12:20:16 | ragnard | dbussink: hmm... does ftruncate not fail on linux with negative offset? |
| 12:21:00 | dbussink | ragnard: let me check on my linux machine |
| 12:21:53 | ragnard | dbussink: rubuildius runs i686-pc-linux-gnu i see... the specs hade a comment about "May fail"... |
| 12:27:08 | dbussink | ragnard: fails on my linux machine too |
| 12:27:43 | ragnard | dbussink: aha... how do you handle such platform differences? |
| 12:29:42 | rubuildius | Dirkjan Bussink: f25e0e130; 4796 examples, 17489 expectations, 1 failure, 0 errors; http://rafb.net/p/dAjvUd73.html |
| 12:29:49 | dbussink | well, this could be fixed by checking it in ruby |
| 12:29:50 | chris2 enters the room. | |
| 12:30:01 | dbussink | ragnard: if we can prevent platform diversion, we really should |
| 12:30:33 | dbussink | right now the truncate argument is just passed through to the c function |
| 12:32:52 | ragnard | dbussink: of course... hm. makes me curious what happens when you pass -1 to ftruncate on linux... |
| 12:35:44 | ragnard | dbussink: should we raise an ArgumentError instead and be non_compliant? what's the policy? (still haven't pastied my pubkey to evan so I can't do anything yet though...) |
| 12:36:34 | dbussink | we could manually raise the Errno exception, but that's also ugly |
| 12:36:59 | dbussink | i'm not gonna make a call on this one atm, don't know that the policy has been in other cases |
| 12:38:17 | ragnard | allrightey... i agree about raising Errno manually being ugly... |
| 12:39:45 | dbussink | according to the man page, the linux version should fail with EINVAL too |
| 12:43:25 | ragnard | another strange thing is that the spec for File.truncate is the same as #truncate, but doesn't fail... that means truncate sets errno, but not ftruncate.. no? |
| 13:03:31 | gnufied enters the room. | |
| 13:04:45 | dctanner enters the room. | |
| 13:05:36 | dctanner leaves the room. | |
| 13:08:20 | graza enters the room. | |
| 13:10:11 | dbussink | ragnard: probably, but it's really strange yeah |
| 13:10:27 | dctanner enters the room. | |
| 13:11:51 | ragnard | dbussink: well... I guess the ruby solution is the best... seems like it's using ftruncate64 on linux when _FILE_OFFSET_BITS == 64 |
| 13:12:14 | dbussink | yeah, the LFS supports makes it use some other functions under water |
| 13:12:25 | ragnard | http://repo.or.cz/w/glibc-cvs.git?a=blob;f=sysdeps/unix/sysv/linux/ftruncate64.c;h=60e7ae0ac729a44 eae7854fde856226eb8d8bcc4;hb=HEAD |
| 13:12:39 | cavalle leaves the room. | |
| 13:13:06 | dctanner_ enters the room. | |
| 13:13:46 | cavalle enters the room. | |
| 13:17:41 | smartocci enters the room. | |
| 13:21:07 | d2dchat enters the room. | |
| 13:23:22 | imajes enters the room. | |
| 13:27:14 | graza_ enters the room. | |
| 13:27:15 | graza leaves the room. | |
| 13:28:15 | dctanner leaves the room. | |
| 13:31:26 | cavalle leaves the room. | |
| 13:34:35 | dodecaphonic leaves the room. | |
| 13:34:39 | dodecaphonic enters the room. | |
| 13:35:40 | dodecaphonic leaves the room. | |
| 13:37:17 | dodecaphonic enters the room. | |
| 13:44:16 | langenberg enters the room. | |
| 13:49:26 | bburcham enters the room. | |
| 13:49:45 | AndrewO enters the room. | |
| 13:55:41 | rubyconsumer leaves the room. | |
| 14:02:27 | graza enters the room. | |
| 14:02:28 | graza_ leaves the room. | |
| 14:03:10 | pd leaves the room. | |
| 14:04:29 | cjheath enters the room. | |
| 14:09:55 | rubymaverick enters the room. | |
| 14:10:14 | cjheath leaves the room. | |
| 14:16:32 | anonuser enters the room. | |
| 14:27:15 | probablycorey enters the room. | |
| 14:34:12 | rubyconsumer enters the room. | |
| 14:36:29 | wmoxam_ leaves the room. | |
| 14:38:09 | bburcham leaves the room. | |
| 14:38:17 | _maarten_ leaves the room. | |
| 14:41:16 | graza leaves the room. | |
| 14:41:31 | graza enters the room. | |
| 14:48:43 | graza_ enters the room. | |
| 14:49:09 | twshelton leaves the room. | |
| 14:57:05 | crossblaim enters the room. | |
| 14:57:17 | crossblaim | hello |
| 14:58:23 | femtowin enters the room. | |
| 14:59:56 | wmoxam enters the room. | |
| 15:01:34 | kAworu leaves the room. | |
| 15:03:05 | moofbong enters the room. | |
| 15:04:05 | kAworu enters the room. | |
| 15:05:59 | RyanTM enters the room. | |
| 15:09:28 | graza leaves the room. | |
| 15:10:20 | Yurik | crossblaim, hey |
| 15:10:35 | RyanTM_ enters the room. | |
| 15:10:39 | pd enters the room. | |
| 15:10:55 | crossblaim | hey Yurik |
| 15:11:10 | RyanTM leaves the room. | |
| 15:11:24 | nicksieger enters the room. | |
| 15:11:33 | twshelton enters the room. | |
| 15:15:51 | graza_ leaves the room. | |
| 15:28:06 | macournoyer enters the room. | |
| 15:30:05 | squeegy leaves the room. | |
| 15:34:24 | rue enters the room. | |
| 15:39:14 | dbussink | interesting conversation :P |
| 15:39:48 | srbaker enters the room. | |
| 15:41:53 | pauldix enters the room. | |
| 15:42:01 | mae leaves the room. | |
| 15:42:03 | rue | Morning |
| 15:44:39 | rue | Hrm, string allocation performance is shot to hell |
| 15:45:35 | skaar enters the room. | |
| 15:46:05 | anonuser | rue, how so? I'm not really familiar with the code base but hopefully this weekend I can take a crack and start helping out rubinius. |
| 15:49:03 | dbussink | rue: has it ever been any decent then? |
| 15:51:29 | rue | ('hello there what aaaa'..'hello there what iiii').to_a worked OK previously, it takes forever now |
| 15:53:43 | anonuser | Any idea why it takes so long. |
| 15:56:25 | rue | Nope, need to investigate late |
| 15:56:32 | therealadam enters the room. | |
| 16:01:12 | dctanner_ leaves the room. | |
| 16:08:46 | dbussink leaves the room. | |
| 16:18:03 | wvl enters the room. | |
| 16:18:04 | anonuser | I assume rubinius has a profiler. |
| 16:18:37 | dctanner enters the room. | |
| 16:19:11 | defunkt enters the room. | |
| 16:20:01 | gnufied leaves the room. | |
| 16:28:07 | enebo enters the room. | |
| 16:31:33 | dctanner leaves the room. | |
| 16:32:56 | headius enters the room. | |
| 16:36:39 | headius | howdy |
| 16:41:48 | nicksieger leaves the room. | |
| 16:43:00 | nicksieger enters the room. | |
| 16:43:45 | dewd enters the room. | |
| 16:55:13 | chris2 leaves the room. | |
| 16:57:12 | crossblaim leaves the room. | |
| 17:02:27 | lopex enters the room. | |
| 17:11:53 | headius leaves the room. | |
| 17:12:09 | headius enters the room. | |
| 17:12:56 | langenberg leaves the room. | |
| 17:20:31 | agile leaves the room. | |
| 17:20:57 | dctanner enters the room. | |
| 17:26:28 | Defiler | drbrain: (belatedly) I wanted to give it a name to make it clearer |
| 17:27:37 | wycats enters the room. | |
| 17:28:14 | dgtized | anonuser: yes if you use shotgun/rubinius -p |
| 17:34:06 | technomancy enters the room. | |
| 17:34:06 | bburcham enters the room. | |
| 17:34:16 | technomancy | is this correct? http://www.oreillynet.com/xml/blog/2008/02/how_to_pronounce_rubinius.html |
| 17:34:25 | cavalle enters the room. | |
| 17:34:46 | technomancy | i thought it was a long "I" |
| 17:35:19 | Defiler | Yeah, it is an I as in the first sound in 'each' |
| 17:36:24 | Defiler | Though he might be right, since it is modified from the Latin, and I am not sure how the latin word is pronounced |
| 17:36:31 | Defiler | ..but that page is definitely not how Evan says it :) |
| 17:36:59 | technomancy | ok, that's what I thought. Evan is right by definition. |
| 17:37:46 | djwhitt | egad, don't tell him that |
| 17:38:01 | brixen | heh, if you listen to the text-to-speech, she pronounces it pretty much right in this sentence "... and that?s it! You now know how to properly pronounce the Rubinius project" |
| 17:38:06 | bburcham leaves the room. | |
| 17:38:08 | thehcdreamer leaves the room. | |
| 17:38:24 | brixen | ru bin aye us |
| 17:38:32 | brixen | the pirate pronunciation |
| 17:39:01 | technomancy | arrrrrrbx |
| 17:39:07 | brixen | hah |
| 17:39:52 | boyscout | 1 commit by Brian Ford |
| 17:39:53 | boyscout | * Rework Fixnum, Bignum equal and compare primitives.; f873a25 |
| 17:41:10 | brixen | rue: were you going to move the other benchmarks to the toplevel dir? |
| 17:41:58 | dgtized | what platform does the File#truncate spec work on? |
| 17:42:33 | dgtized | specifically the one that is supposed to throw EINVAL on a -1 argument |
| 17:43:04 | dgtized | there is a comment in the code that says "# may fail" next to it, so clearly it's known that a platform guard is necessary, but I don't know what platforms it works on |
| 17:43:14 | brixen | dgtized: works on os x, checking on ubuntu 32bit gutsy now |
| 17:43:20 | tongueroo enters the room. | |
| 17:43:36 | brixen | dgtized: I'll check on gentoo 64bit too |
| 17:44:16 | brixen | I've got an opensuse 1/2 installed too, I need to finish that |
| 17:44:30 | KirinDav enters the room. | |
| 17:44:37 | dysinger enters the room. | |
| 17:45:21 | w1rele55 leaves the room. | |
| 17:46:48 | dgtized | it breaks on my ubuntu 32bit gutsy |
| 17:47:12 | anonuser | dgtized, thanks |
| 17:47:30 | dgtized | so maybe it's an osx versus linux issue? |
| 17:47:36 | dgtized | anonuser: no problem |
| 17:47:41 | anonuser | The lighthouse pages aren't mutable are they? |
| 17:47:51 | dgtized | anonuser: they are if you have an account |
| 17:49:14 | dgtized | so is FFI the same speed as primitives, and if so why is it we are using primitives for everything? |
| 17:49:20 | rubuildius | Brian Ford: f873a2574; 4796 examples, 17489 expectations, 1 failure, 0 errors; http://rafb.net/p/aKZrYU30.html |
| 17:49:45 | TheVoice enters the room. | |
| 17:49:53 | wifelette enters the room. | |
| 17:49:58 | dgtized | looks like it's linux that doesn't throw EINVAL based on rubuildius |
| 17:50:06 | brixen | dgtized: it's not the same speed |
| 17:50:18 | brixen | ffi is for external lib stuff, it it's not a headache |
| 17:50:26 | anonuser | dgtized, hrrm I signed up but not sure where you're able to edit the pages, but then again I'm new to the site. |
| 17:50:29 | brixen | primitives are for primitive vm/language implementatinos |
| 17:50:42 | Defiler | You have to click 'Edit' near the top of the page. It is hard to see =( |
| 17:51:10 | langenberg enters the room. | |
| 17:51:50 | brixen | dgtized: the truncate spec passes on gentoo 64bit |
| 17:52:06 | brixen | fails on 32bit gutsy for me also |
| 17:53:54 | anonuser | I'm not finding it :( |
| 17:54:43 | probablycorey leaves the room. | |
| 17:55:07 | brixen | dgtized: were you able to confirm the "-0".to_f => 0 bug with libc version <= 2.6.1 |
| 17:55:23 | brixen | dgtized: donald luo's comment on #307 |
| 17:57:07 | brixen | anonuser: what's your LH account email? I'll invite you to the project |
| 17:58:26 | anonuser | rue, are you still having problems with devel/git ? |
| 17:58:53 | dgtized | brixen: yea the String#to_f spec fails for me, i'm a little foggy today, what is the quick way to check libc version? |
| 17:58:58 | brixen | anonuser: sent |
| 17:59:13 | brixen | dgtized: ldconfig -v | grep libc is how I did it |
| 17:59:20 | brixen | I'm at 2.6.1 and have the issue |
| 17:59:30 | brixen | anyone have an easy way to upgrade libc on ubuntu |
| 17:59:50 | anonuser | brixen, thanks :) |
| 18:00:06 | brixen | anonuser: np |
| 18:00:13 | dgtized | brixen: yup I have 2.6.1-1 |
| 18:00:52 | evan | morning. |
| 18:02:28 | brixen | morning |
| 18:02:45 | brixen | dgtized: hmm, not sure I want to source upgrade libc on this ubuntu |
| 18:03:47 | evan | oooh cool |
| 18:04:12 | evan | adam committed a plugin to perform constant propogation of fixnum operations |
| 18:04:14 | evan | yay! |
| 18:04:28 | brixen | yeah, nice |
| 18:04:57 | evan | have a nice valentines day? |
| 18:05:07 | brixen | dgtized: I suppose I could try using hardy's libc under ubuntu, it's 2.7 |
| 18:05:12 | evan | abby and I got a hotel room in a fancyish hotel last night |
| 18:05:20 | brixen | evan: nice! |
| 18:05:25 | evan | lounged, got room service, that kinda thing. |
| 18:05:28 | brixen | jenny and I had a fight :P |
| 18:05:32 | evan | :/ |
| 18:05:45 | brixen | I think we worked it out though |
| 18:06:01 | bburcham enters the room. | |
| 18:06:48 | brixen | evan: so, string perf, do we want to just tweak or consider implementing ropes or something more radical like that? |
| 18:07:04 | evan | i'm open to whatever. |
| 18:07:08 | brixen | ok |
| 18:07:10 | evan | like rue is considering for Array |
| 18:07:13 | brixen | sure |
| 18:07:22 | evan | it could be useful to implement it as a seperate class |
| 18:07:35 | brixen | so, mri runs bin/ci in 3.6 vs 18 for rbx |
| 18:07:40 | evan | play with, debug it in that capacity |
| 18:07:42 | brixen | that's pretty damn hot |
| 18:07:53 | brixen | evan: yeah, make sense |
| 18:07:56 | brixen | easy to load over what we have |
| 18:08:02 | brixen | gotta love ruby |
| 18:08:05 | evan | :) |
| 18:08:12 | evan | call it... BString |
| 18:08:17 | evan | B for Brian |
| 18:08:22 | evan | :) |
| 18:08:23 | brixen | heh, ok |
| 18:08:29 | dbussink enters the room. | |
| 18:08:37 | brixen | dbussink: 'lo |
| 18:08:46 | dbussink | brixen: howdy |
| 18:08:55 | evan | dbussink: evening |
| 18:09:02 | dbussink | evan: :) |
| 18:09:20 | dbussink | i got it working on freebsd, only irb is failing for some reading |
| 18:09:24 | dbussink | ./bin/ci is working though |
| 18:09:32 | brixen | awesome! |
| 18:09:32 | dbussink | for some reason |
| 18:09:37 | evan | sweet! |
| 18:09:41 | brixen | drbrain will be happy to hear that |
| 18:10:08 | brixen | damn, with docwiki, drbrain will likely have the first website running on rubinius |
| 18:10:36 | dbussink | http://pastie.org/152782 |
| 18:11:17 | brixen | dbussink: but bin/ci runs without errors? |
| 18:11:27 | dbussink | brixen: only some minor |
| 18:11:33 | dbussink | brixen: with BSD in the name too |
| 18:11:35 | dbussink | brixen: let me check |
| 18:12:06 | brixen | either way, I guess good opportunity for a new spec :) |
| 18:12:28 | dctanner leaves the room. | |
| 18:12:38 | dbussink | brixen: http://pastie.org/152786 |
| 18:13:20 | brixen | hmm, the float one concerns me |
| 18:13:21 | agile enters the room. | |
| 18:13:43 | vintrepid enters the room. | |
| 18:13:43 | dbussink | looks like perhaps a parse problem or something like that |
| 18:13:53 | brixen | yeah |
| 18:14:00 | brixen | the other's could be platform related |
| 18:14:56 | dbussink | i find the fact that irb doesn't work more troubling |
| 18:15:20 | dbussink | because that constant should be defined |
| 18:15:30 | brixen | yeah |
| 18:15:49 | brixen | looking at the float spec, probably unrelated, since it should be parsing that float literal from the spec |
| 18:16:06 | brixen | still, great progress :) |
| 18:17:03 | anonuser | Is there a place that list platform specific problems. I only ask because I'll be developing in FreeBSD and dbussink says he's gettings to work on FreeBSD. |
| 18:18:04 | dbussink | anonuser: not atm, but my opinion on this is that we should setup some basic systems like rubuildius, so problems are immediately identified |
| 18:18:32 | anonuser | dbussink, I'm going to assume that will be platform specific CI servers? |
| 18:19:30 | dbussink | anonuser: yeah, something like, some virtual machines with at least linux 32 / 64 bit, some bsd flavours and eventually even windows |
| 18:20:17 | anonuser | dbussink, I have been looking for an excuse to use Amazon's EC2 service. |
| 18:20:56 | rubyconsumer_ enters the room. | |
| 18:20:59 | rubyconsumer_ leaves the room. | |
| 18:21:20 | rubyconsumer leaves the room. | |
| 18:21:26 | anonuser | That could be overkill though. |
| 18:21:30 | rubyconsumer enters the room. | |
| 18:23:32 | dbussink | well, we've got ey people, maybe they can provide some :P |
| 18:23:34 | wifelette leaves the room. | |
| 18:24:57 | anonuser | What are the issues I'm going to be running into when trying to develop the thing on FreeBSD? |
| 18:26:34 | dbussink | well, most important right now is that irb doesn't work |
| 18:26:37 | benburkert_ leaves the room. | |
| 18:27:11 | benburkert enters the room. | |
| 18:28:15 | benburkert_ enters the room. | |
| 18:28:31 | anonuser | Okay. |
| 18:29:12 | benburkert__ enters the room. | |
| 18:29:20 | benburkert_ leaves the room. | |
| 18:29:32 | wycats leaves the room. | |
| 18:30:00 | benburkert_ enters the room. | |
| 18:34:34 | yipstar enters the room. | |
| 18:42:58 | probablycorey enters the room. | |
| 18:43:04 | KirinDave leaves the room. | |
| 18:43:43 | benburkert leaves the room. | |
| 18:45:21 | benburkert__ leaves the room. | |
| 18:47:09 | wifelette enters the room. | |
| 18:47:29 | lvmc enters the room. | |
| 18:47:37 | lvmc | rue, you are on? |
| 18:47:53 | lvmc | evan, you are on? |
| 18:48:37 | evan | yep |
| 18:48:52 | lvmc | evan, |
| 18:49:03 | lvmc | can mod_rubinius project be part of google summer code? |
| 18:49:12 | lvmc | i'm really very interested to help it |
| 18:49:24 | defunkt enters the room. | |
| 18:49:41 | evan | i'm sure we could work something out to that effect |
| 18:49:50 | wifelette leaves the room. | |
| 18:49:55 | evan | i've offered to mentor again this year |
| 18:49:56 | lvmc | i need buy a new laptop to devel, and google summer code can give me this chance |
| 18:50:09 | lvmc | nice! |
| 18:50:10 | evan | to pat eyler, he's who organizes the ruby guys |
| 18:50:14 | lvmc | can i participate? |
| 18:50:25 | lvmc | mail? |
| 18:50:27 | evan | yeah, you'll need to submit a proposal |
| 18:50:43 | lvmc | the proposal are open? |
| 18:51:08 | evan | doesn't look like 2008 proposal are open yet |
| 18:51:50 | lvmc | thanks! |
| 18:52:05 | lvmc | i will see google summer code constantly |
| 18:55:25 | tmornini enters the room. | |
| 18:56:15 | octopod leaves the room. | |
| 18:56:45 | thehcdreamer enters the room. | |
| 18:56:56 | dbussink | brixen: hmm, the float spec breaks because the float defined in the spec file is cut off |
| 18:57:55 | dbussink | brixen: the problem is not the float that comes from the header files |
| 18:58:25 | lvmc leaves the room. | |
| 18:59:21 | probablycorey leaves the room. | |
| 19:00:50 | brixen | dbussink: yeah, parse error |
| 19:01:07 | brixen | dbussink: do you know why it's truncating it? |
| 19:01:25 | probablycorey enters the room. | |
| 19:01:38 | dbussink | no idea actually |
| 19:01:47 | Defiler | brixen: I need a knowledge transfer |
| 19:01:49 | dbussink | didn't have time to really look into it |
| 19:01:55 | obvio171 leaves the room. | |
| 19:01:58 | Defiler | brixen: What have we learned about writing specs for socket.rb? |
| 19:02:04 | Defiler | brixen: As in.. what to avoid.. what is a good idea, etc |
| 19:02:13 | obvio leaves the room. | |
| 19:02:38 | brixen | Defiler: good question, but I don't have a good answer |
| 19:02:51 | brixen | iirc socket specs segfault on os x, but le'me check |
| 19:03:02 | Defiler | I need to get UNIXSocket working today |
| 19:03:11 | Defiler | ..but you can't even call 'new' on it as it stands |
| 19:03:26 | brixen | Defiler: yeah, they segfault in |
| 19:03:26 | brixen | S |
| 19:03:35 | brixen | Socket#pack_sockaddr_in |
| 19:03:43 | dbussink | brixen: maybe it's a problem with long variable names, or something |
| 19:03:54 | dbussink | brixen: might be the same cause as the irb failure |
| 19:04:04 | brixen | dbussink: that would be most odd, wouldn't it? |
| 19:04:19 | dbussink | brixen: definitely, but it's just a first guess |
| 19:04:33 | brixen | Defiler: sorry, no good answer, I'd just start with what's there and make sure there's no races or deadlocks |
| 19:05:29 | Defiler | Is there someone more opinionated I could talk to? :) |
| 19:06:05 | evan | Defiler: you suck. |
| 19:06:07 | evan | hows that? |
| 19:06:56 | brixen | Defiler: haha, PDS (please do spec) :P |
| 19:07:01 | brixen | how's that for an opinion? |
| 19:07:23 | evan | Defiler: you're dealing with the totally busted class hierarchy of Socket |
| 19:07:38 | evan | UnixSocket#initialize can't call super |
| 19:07:46 | evan | it needs to do all the work to create the unix socket |
| 19:07:52 | evan | then call setup(descriptor) |
| 19:08:52 | Defiler | evan: Yeah, I ran into that before with TCPServer and crew |
| 19:08:58 | evan | hm, i don't think you can ever do dead code elimination in ruby |
| 19:08:59 | evan | sad. |
| 19:09:29 | evan | well, you might be able to do simple, trivial DCE |
| 19:09:31 | evan | but it would be useless. |
| 19:11:25 | dbussink | brixen: definitely looks like a length issue |
| 19:11:26 | Defiler | evan: So.. do you follow ruby-core these days? |
| 19:11:37 | dbussink | brixen: works ok for a float of 511 chars, not 512 |
| 19:11:50 | brixen | dbussink: oh that, I thought you meant the name of the constant |
| 19:11:51 | probablycorey leaves the room. | |
| 19:12:05 | dbussink | brixen: yeah, but that got me the idea to test this |
| 19:12:05 | evan | Defiler: not much, no. |
| 19:12:14 | evan | Defiler: i wait for people to point out messages I should be reading |
| 19:12:24 | dbussink | brixen: just a weird way of thinking out loud on my behalf |
| 19:12:26 | probablycorey enters the room. | |
| 19:12:29 | evan | late binding mailling list reading |
| 19:12:30 | Defiler | evan: So, there has been a discussion of why 1.9 is so slow on character-by-character string walking |
| 19:12:31 | brixen | dbussink: heh, np |
| 19:12:33 | evan | is the method I use. |
| 19:12:34 | evan | :) |
| 19:12:42 | brixen | evan: works well I'd say |
| 19:12:47 | Defiler | evan: ..and matz patched it up to be 'only' 2.3x slower than 1.8 |
| 19:12:54 | KirinDave enters the room. | |
| 19:12:58 | tarcieri | heh, nice |
| 19:13:17 | Defiler | evan: The consensus at the moment is that 1.9 doesn't treat individual characters as Fixnums anymore, due to m17n, but creates String objects for them |
| 19:13:40 | Defiler | evan: What if we use our badass oop.h definition of DATA_ and make an immediate type that holds a UTF8 codepoint? We only need 21 bits |
| 19:13:51 | evan | Defiler: for access it does, yeah. |
| 19:13:55 | evan | (1.9) |
| 19:14:03 | brixen | Defiler: that would be cool |
| 19:14:09 | Defiler | That way we don't need to allocate a String for a single character |
| 19:14:09 | evan | Defiler: sounds perfect. |
| 19:14:13 | brixen | perhaps an immediate type of Char? |
| 19:14:25 | Defiler | Codepoint, because it could be a combining character or other whatnot |
| 19:14:27 | evan | we have a the bit space |
| 19:14:28 | Defiler | (I vote, at least) |
| 19:14:34 | brixen | Defiler: oh yeah, right |
| 19:14:37 | evan | the custom type currently has 28 bits of data |
| 19:14:40 | evan | i believe |
| 19:14:44 | evan | we can just divide it again |
| 19:14:47 | Defiler | Even cooler, we have room to hold the codepoint AND a prefix, leaving room for future similar things |
| 19:14:52 | evan | make a custom and char immediate |
| 19:14:56 | evan | they'd have 27 bits |
| 19:15:12 | dbussink | brixen: any idea where these sizes are defined? |
| 19:15:26 | evan | i'm specificaly always leaving a bitspace as custom btw so we can do stuff like this |
| 19:15:26 | Defiler | Which sizes? |
| 19:15:35 | brixen | dbussink: none, but I'd guess maybe the lexer? |
| 19:15:56 | dbussink | brixen: yeah, but it's strange that this is platform dependent |
| 19:16:06 | evan | Defiler: can you fit the codepoint and prefix in 27 bits? |
| 19:16:10 | brixen | Defiler: seems that a long number literal is being truncated when read/lexed/parsed ? |
| 19:16:23 | Defiler | Yeah. I think we need 21 bits for the codepoint, leaving 6 for a prefix |
| 19:16:25 | evan | obviously 64bit platforms have PLENTY of room. |
| 19:16:55 | evan | i've actually considered enlarging out refs to always be 64bits wide |
| 19:17:06 | Defiler | brixen: compiler/generator.rb specifies the max size of a parsed int before it gets shoved into a literal |
| 19:17:23 | Defiler | 32bit systems are on their way out :) |
| 19:17:58 | evan | they shouldn't be truncated anymore. |
| 19:18:46 | Defiler | Yeah, we have specs for that now, so I would be surprised |
| 19:18:58 | dbussink | Defiler: for truncated stuff in the lexer? |
| 19:19:08 | evan | it's not in the lexer |
| 19:19:09 | evan | do |
| 19:19:15 | evan | "code with the thing".to_sexp |
| 19:19:18 | Defiler | Yeah, use 'describe' on a script, as well |
| 19:19:19 | defunkt leaves the room. | |
| 19:19:20 | evan | and see if the sexp has it truncated |
| 19:19:29 | evan | if so, then it's the lexer (unlikely) |
| 19:19:48 | defunkt enters the room. | |
| 19:20:38 | dbussink | it's in the lexer then |
| 19:20:47 | dbussink | on freebsd that is |
| 19:21:04 | dbussink | if i put in a float with more than 512 chars, it gets truncated |
| 19:21:28 | dbussink | http://pastie.org/152811 |
| 19:22:07 | Defiler | Ooh floats |
| 19:22:14 | Defiler | we didn't look at floats |
| 19:22:35 | dbussink | ah |
| 19:22:35 | Defiler | Are you sure a double has enough precision for a float that long? |
| 19:22:38 | evan | the compiler doesn't handle floats in a special way |
| 19:22:42 | evan | and it's the lexer doing it |
| 19:22:45 | evan | as he shows |
| 19:22:47 | dbussink | this comes straight from the specs |
| 19:22:51 | evan | the lit is truncated |
| 19:22:57 | Defiler | Yeah, I see that |
| 19:23:13 | evan | it's missing the e-308 |
| 19:23:25 | Defiler | I hadn't scrolled all the way on the second one. Oops |
| 19:23:35 | dbussink | for each extra numeral, on of the parts on the end gets cut off |
| 19:23:58 | evan | float_from_bstring must be truncating it |
| 19:23:59 | dbussink | but i assume this uses some platform dependent platform buffer? |
| 19:24:10 | dbussink | my typing sucks today... |
| 19:24:11 | evan | yep |
| 19:24:24 | evan | er... |
| 19:24:52 | dbussink | what is actually the length we want to support? |
| 19:24:52 | evan | it's using sscanf |
| 19:25:00 | evan | to convert the string into a double |
| 19:25:29 | evan | perhaps it's being truncated before it gets to float_from_string |
| 19:25:34 | dbussink | apparently that is cut off at 512 bytes on freebsd |
| 19:25:46 | evan | perhaps thats a cutoff in sscanf |
| 19:25:58 | evan | i don't see anywhere else thats truncating on a buffer size |
| 19:26:06 | dbussink | yep, sscanf cuts it |
| 19:26:18 | evan | BAD SSCANF |
| 19:26:22 | dbussink | Numerical strings are truncated to 512 characters; for example, %f and %d are implicitly %512f and %512d |
| 19:26:23 | evan | sends sscanf to the corner |
| 19:26:25 | dbussink | from the manpage |
| 19:26:46 | defunkt leaves the room. | |
| 19:27:01 | evan | we should be using |
| 19:27:03 | evan | strtod |
| 19:27:04 | bburcham leaves the room. | |
| 19:27:05 | evan | to sscanf |
| 19:27:06 | evan | er. |
| 19:27:08 | evan | not sscanf |
| 19:27:13 | evan | check the strtod manpage |
| 19:27:22 | evan | see if it says anything about an internal buffer |
| 19:28:17 | dbussink | nothing mentioned there |
| 19:28:31 | evan | try changing float_from_string to use strtod |
| 19:28:38 | evan | it's a one line change |
| 19:30:52 | thehcdreamer leaves the room. | |
| 19:36:23 | dbussink | hmm, what kind of error handlng should be done there? or is it by definition not possible to have an error there? |
| 19:42:11 | evan | it's not realy |
| 19:42:15 | evan | well |
| 19:42:28 | evan | thats not stictly true |
| 19:42:31 | evan | what do you want to signal? |
| 19:42:46 | dbussink | well, the old sscanf version had nog error handling |
| 19:42:51 | dbussink | when i'm there i can add some |
| 19:43:00 | dbussink | for if the string can't be parsed into a float |
| 19:43:29 | evan | add a /* HACK */ note |
| 19:43:33 | evan | and just return Qnil |
| 19:43:33 | bburcham enters the room. | |
| 19:46:01 | boyscout | 1 commit by Dirkjan Bussink |
| 19:46:01 | boyscout | * Change sscanf to strtod in Float primitive; 340b780 |
| 19:47:12 | thehcdreamer enters the room. | |
| 19:47:37 | benburkert_ leaves the room. | |
| 19:49:04 | dbussink | evan: do you have any idea what the cause of the failure of irb could be? |
| 19:49:09 | dbussink | evan: on freebsd |
| 19:49:27 | evan | do you have a pastie for the error? |
| 19:51:02 | dbussink | evan: http://pastie.org/152782 |
| 19:51:26 | tarcieri | oh boy MRI's profiler.rb caused a null pointer error in a totally random place |
| 19:51:30 | tarcieri | longs for Rubinius's |
| 19:51:31 | evan | dbussink: interesting.... |
| 19:51:43 | evan | HA! |
| 19:51:47 | evan | loves SendSite |
| 19:52:03 | evan | when i'm profiling, i can actually look and see how well the method was dispatched |
| 19:52:16 | evan | cm = def foo2; some_method; end |
| 19:52:21 |