Show enters and exits. Hide enters and exits.
| 00:00:11 | karmazilla | the space between 'a' and '[' in this: a [0] |
| 00:00:36 | karmazilla | given 'a' is a list or map |
| 00:00:40 | zenspider | technomancy: burnouty. :) |
| 00:00:44 | technomancy | ugh |
| 00:00:49 | tarcieri | haha, wow |
| 00:00:52 | tarcieri | it's totally arbitrary |
| 00:01:01 | zenspider | karmazilla: heh. horrible. :) |
| 00:01:07 | tarcieri | %w{foo bar baz} [1] |
| 00:01:18 | zenspider | that looks like a method call to a with an array as an arg to my eyes. :) |
| 00:01:35 | zenspider | THAT I can see as valid... horribly |
| 00:02:09 | technomancy | tell me that doesn't parse without at least a warning |
| 00:02:32 | karmazilla | I know... I had to try it in irb several times before I was sure it worked like that |
| 00:02:48 | brixen | that's how you get a == 1 equivalent to a.== 1 |
| 00:03:18 | brixen | a.[](0) == a[0] == a [0] |
| 00:03:45 | tarcieri | holy crap, you can have arbitrary whitespace there too? |
| 00:03:58 | technomancy | karmazilla: where did you find someone using that? |
| 00:04:01 | rue | Also, someone should fix rparsec probably. |
| 00:04:01 | lopex_ leaves the room. | |
| 00:04:05 | technomancy | if it's not too incriminating to reveal |
| 00:04:10 | karmazilla | technomancy: i rparsec |
| 00:04:13 | karmazilla | *in |
| 00:05:09 | technomancy | let me guess: a library for navigational calculations on Federation Starships? |
| 00:06:04 | turtletime leaves the room. | |
| 00:06:08 | Phoop leaves the room. | |
| 00:06:09 | karmazilla | uh... not... quite.... it's a combinator based parser of stuff |
| 00:06:27 | tarcieri | Parsec for Ruby? |
| 00:06:37 | karmazilla | basically yes |
| 00:06:48 | tarcieri | Isn't Parsec monadic? |
| 00:06:55 | karmazilla | it is |
| 00:07:08 | tarcieri | does rparsec use monads? |
| 00:07:15 | karmazilla | there's a monad.rb in there too |
| 00:07:19 | tarcieri | heh |
| 00:07:20 | tarcieri | weird |
| 00:07:40 | karmazilla | I'm not sure I want to look at it just yet |
| 00:07:43 | tarcieri | doesn't see the use of monads in an imperative language |
| 00:11:48 | rue | Why not? |
| 00:12:02 | rue | You can program functionally in C |
| 00:12:10 | rue | Laziness is a bit trickier of course |
| 00:12:19 | rue | Maybe CPP even better :D |
| 00:12:48 | tarcieri | yeah, I saw the whole thread on using inner functions as "closures" in gcc |
| 00:12:57 | tarcieri | downward closures or whatever they're called |
| 00:13:12 | kAworu | do i need to setup anything to can "git push" ? |
| 00:13:35 | brixen | kAworu: do you have a commit bit? |
| 00:14:13 | kAworu | brixen> i don't know. i did paste my key but maybe it hasn't done yet. |
| 00:14:36 | brixen | kAworu: ok, first you need a bit, then check rake -T for git:committer or something |
| 00:14:53 | brixen | kAworu: then you can rake git:push from your branch or git push from master |
| 00:15:57 | kAworu | brixen> ok thanks. |
| 00:16:26 | smtlaissezfaire leaves the room. | |
| 00:19:04 | karmazilla | okidoki... posted ticket #299 :) |
| 00:19:30 | brixen | karmazilla: cool, thank |
| 00:32:13 | lopex enters the room. | |
| 00:32:33 | d2dchat leaves the room. | |
| 00:37:20 | evan | cracks his Algorithms book for the first time in 10 years |
| 00:37:29 | evan | I KNEW there was a reason I didn't sell it. |
| 00:38:04 | karmazilla leaves the room. | |
| 00:39:21 | evan | I wish when I took this class I was actually interested in algorithms |
| 00:39:23 | evan | oh well. |
| 00:40:00 | karmazilla enters the room. | |
| 00:40:11 | evan | zenspider: you around? |
| 00:41:47 | karmazilla leaves the room. | |
| 00:41:59 | karmazilla enters the room. | |
| 00:47:32 | kAworu | http://rubinius.lighthouseapp.com/projects/5089/tickets/298-patch-more-stuff-added-to-string_spec- rb |
| 00:47:41 | kAworu | erf. i wrote about the same. |
| 00:50:26 | drbrain leaves the room. | |
| 00:52:54 | kAworu | evan> did you see my key ? |
| 00:53:24 | kAworu | evan> just want to know if i can push some stuff now, i'll go to sleep :) |
| 00:57:36 | tonka enters the room. | |
| 01:01:04 | chad_ enters the room. | |
| 01:01:08 | evan | brixen: you around? |
| 01:01:11 | evan | chad_: allo! |
| 01:01:15 | brixen | yeah |
| 01:02:02 | evan | do you know if you can % a float in C? |
| 01:02:10 | chad_ enters the room. | |
| 01:02:15 | evan | chad_: welcome back! |
| 01:02:15 | brixen | evan: don't think so |
| 01:02:19 | evan | bye chad. |
| 01:02:31 | evan | crap. |
| 01:02:45 | brixen | there's fmod |
| 01:03:27 | evan | I wonder how Knuth had this working then... |
| 01:03:35 | evan | it seems that |
| 01:03:39 | evan | bin = hash % bins; |
| 01:03:46 | evan | is SOO slow on modern platforms. |
| 01:04:10 | evan | so i was looking in algorithms book, and there is another mapping function |
| 01:04:23 | brixen | hash or bins is a float? |
| 01:04:31 | brixen | or this is something else? |
| 01:04:36 | evan | bin = floor((hash * A) % 1) |
| 01:04:56 | brixen | I've got knuth's vol I-III |
| 01:05:00 | evan | where A is a fixed value (Knuth has 0.6180339887) |
| 01:05:05 | brixen | ahh |
| 01:05:13 | evan | the % 1 gets you the fractional part |
| 01:05:24 | evan | er |
| 01:05:26 | evan | it's |
| 01:05:35 | brixen | I wonder if that algorithm is in the semi-numeric book, I think vol III |
| 01:05:35 | evan | bin = floor(bins * ((hash * A) % 1)) |
| 01:05:45 | evan | i don't have those books |
| 01:05:55 | evan | gcc wont let me do that btw. |
| 01:06:19 | brixen | yeah, I distinctly remember being impressed that ruby allowed me to |
| 01:06:24 | evan | yeah |
| 01:06:30 | evan | hm. let me try using fmod |
| 01:06:33 | evan | and see what happens. |
| 01:07:29 | brixen | I could look it up later if you think it's in one of the first 3 vols, but my books are at one place, and I'm at another ;) |
| 01:08:50 | evan | oh fun. |
| 01:08:57 | evan | yeah, that didn't work |
| 01:08:58 | evan | :) |
| 01:10:46 | brixen | evan: http://www.google.com/url?sa=t&ct=res&cd=8&url=http%3A%2F%2Fwww.cecm.sfu.ca%2FCAG%2Fpa pers%2FCPpaper.pdf&ei=ucKjR8etF6KypgSIg4zgBA&usg=AFQjCNF1BVcuzVN7EBr6cvDPgm1yEPWUOA&sig2 =kQz9cyNkFYuwYbJitCmZhw |
| 01:10:57 | brixen | drat, should have tinyurl'd that |
| 01:11:14 | brixen | www.cecm.sfu.ca/CAG/papers/CPpaper.pdf |
| 01:11:16 | evan | what am i lookng for it in |
| 01:11:17 | evan | ? |
| 01:11:23 | brixen | I'm looking at a table in that |
| 01:11:28 | brixen | one sec.. |
| 01:11:52 | brixen | it's got a new_fmod that is almost 3x faster than fmod |
| 01:14:09 | technomancy | brixen: congratulations on competing successfully for Google juice with a city that's over a thousand years old. no small feat. |
| 01:14:33 | evan | hah |
| 01:15:01 | brixen | technomancy: heh, I have no idea what that means |
| 01:15:06 | brixen | should I be flattered? |
| 01:15:29 | brixen | evan: hmm, paper doesn't look very useful |
| 01:15:44 | technomancy | #1 result for brixen: "The third largest city in the province, Brixen is an old (founded 901) town" |
| 01:15:57 | technomancy | but you're still on the front page |
| 01:16:06 | brixen | technomancy: heh, nice |
| 01:16:32 | drbrain enters the room. | |
| 01:16:33 | technomancy | just thought you should know |
| 01:17:28 | brixen | I better get serious about my seo |
| 01:17:42 | brixen | brixen & sons screenpainting is kicking my butt |
| 01:17:54 | evan | fuck those guys. |
| 01:18:17 | brixen | evan: you get a bad mural from them or something? :P |
| 01:18:20 | technomancy | you should visit the city if you ever find yourself in Italy |
| 01:18:26 | brixen | technomancy: I should! |
| 01:18:37 | brixen | I should also find myself in italy someday |
| 01:18:42 | technomancy | plans on visiting the village of Hagelberg (his last name) if he finds himself in Germany |
| 01:19:21 | brixen | technomancy: my grandfather is from catanzaro italy |
| 01:19:25 | evan | i've been to Phoenix. |
| 01:19:40 | technomancy | evan: you're making us look bad |
| 01:19:49 | technomancy | oh, but before or after you changed your name? |
| 01:19:51 | evan | i wonder if there as a Webb town |
| 01:19:53 | radarek enters the room. | |
| 01:20:01 | evan | my old name. |
| 01:20:12 | technomancy | doesn't count; will have to go back |
| 01:20:28 | brixen | heh, indeed: http://maps.google.com/maps?q=webb |
| 01:20:52 | brixen | webb, tx no less |
| 01:21:21 | brixen | I like how google gives me the option of "make this my default location" |
| 01:21:37 | lopex leaves the room. | |
| 01:21:40 | brixen | unfortunately, there's no link below that which says "texas, yeah right" |
| 01:21:51 | evan | hah |
| 01:22:00 | brixen | no offense to texans of course |
| 01:23:48 | evan | i've got texas in my blood actually |
| 01:24:07 | evan | my mom's mom is from texas |
| 01:24:27 | evan | the granddaughter of an English adventure seaker, last name Whitehouse |
| 01:24:28 | brixen | wow, and she doesn't mind the cold, huh? |
| 01:24:39 | evan | he some how ended up in Texas |
| 01:24:59 | evan | married a texas girl, inherited a bunch of land. |
| 01:25:59 | technomancy | adventure seekers are a rare breed; we could use more of them |
| 01:26:07 | evan | my grandma describes him as "a real rapscalian" |
| 01:26:58 | KirinDave enters the room. | |
| 01:28:33 | twbray_ enters the room. | |
| 01:32:17 | twbray leaves the room. | |
| 01:32:57 | Defiler | That would be an awesome profession |
| 01:33:02 | Defiler | To be able to put on your business card |
| 01:39:05 | evan | hrm |
| 01:39:12 | evan | i'm getting ci failures for asinh again. |
| 01:40:16 | KirinDave leaves the room. | |
| 01:41:00 | brixen | evan: did you fetch drbrain's excludes? rue said he thought the method_table change may have affected #inspect |
| 01:41:15 | twbray_ leaves the room. | |
| 01:41:22 | evan | hm, i thought i did... |
| 01:43:04 | wifelette leaves the room. | |
| 01:44:21 | wifelette enters the room. | |
| 01:46:10 | enebo enters the room. | |
| 01:47:07 | technomancy leaves the room. | |
| 01:47:43 | headius leaves the room. | |
| 01:52:06 | headius enters the room. | |
| 01:53:43 | radarek leaves the room. | |
| 01:54:21 | Smirnov leaves the room. | |
| 01:55:33 | Smirnov enters the room. | |
| 01:57:11 | agile enters the room. | |
| 01:58:13 | mtodd_ leaves the room. | |
| 01:59:43 | headius_ enters the room. | |
| 02:00:34 | turtletime enters the room. | |
| 02:05:16 | enebo_ enters the room. | |
| 02:06:03 | enebo_ leaves the room. | |
| 02:06:32 | drbrain leaves the room. | |
| 02:06:56 | TheVoice | evan: git pull ; rake rebuild . Would that be the correct way to update rubinius? |
| 02:07:09 | evan | sure. |
| 02:07:35 | TheVoice | k just making sure, I'm doing that daily looking for bugs. |
| 02:08:23 | boyscout | 4 commits by Ryan Davis |
| 02:08:24 | boyscout | * Fixed Marshal#dump for Range - needed quasi-ivars in marshal stream; 238b595 |
| 02:08:25 | boyscout | * Refactored Marshal#dump specs and merged with fixtures/marshal_data.rb; 7f124cb |
| 02:08:26 | boyscout | * Added fixture mapping; c5b3580 |
| 02:08:27 | boyscout | * Refactored specs for Marshal#load; 3766b3e |
| 02:08:51 | zenspider | YAY! so much cleaner! |
| 02:09:47 | evan | you and drbrain do those I take it? |
| 02:10:19 | zenspider | hell no |
| 02:10:25 | zenspider | I did that all by myself |
| 02:10:32 | zenspider | he's lazy |
| 02:10:32 | evan | i was in the middle of working on those |
| 02:10:36 | zenspider | and doesn't ever work |
| 02:10:39 | evan | hopefully you didn't redo what he was doing. |
| 02:10:42 | zenspider | I do everything over here... |
| 02:10:52 | zenspider | I just commit as him sometimes so he doesn't look bad |
| 02:10:56 | evan | so you keep telling us :) |
| 02:11:02 | zenspider | exactly |
| 02:11:16 | zenspider | modesty is the something something |
| 02:11:22 | drbrain enters the room. | |
| 02:11:28 | zenspider | what were you working on? |
| 02:11:42 | zenspider | on the impl side we only fixed one small thing |
| 02:11:57 | evan | what was I working on? |
| 02:11:59 | drbrain | yes |
| 02:12:01 | zenspider | /whisper (notice it is "we" now that drbrain is in the room) |
| 02:12:07 | evan | heh |
| 02:12:26 | zenspider | evan: you said you were in the middle of working on those |
| 02:12:55 | evan | no |
| 02:12:57 | evan | drbrain. |
| 02:13:04 | evan | that was a mistype |
| 02:13:06 | drbrain | I was his wingman |
| 02:13:08 | enebo leaves the room. | |
| 02:13:10 | zenspider | ah. k |
| 02:13:18 | zenspider | not wingman |
| 02:13:22 | zenspider | CPRG |
| 02:13:43 | zenspider | the EXTREMER programming term |
| 02:14:14 | evan | Cardio Pulminary Role Gamer? |
| 02:14:21 | dysinger leaves the room. | |
| 02:14:49 | drbrain | Co-Pilot/Rear Gunner |
| 02:15:08 | evan | ah |
| 02:15:10 | drbrain | oh, right, corundum can't join because somebody drug an anchor through my internet |
| 02:15:12 | evan | hopefully not the belly gunner |
| 02:15:17 | evan | that guy is always getting killed. |
| 02:15:19 | lstoll enters the room. | |
| 02:15:22 | headius leaves the room. | |
| 02:15:24 | drbrain | only if you can't get the gear down |
| 02:15:48 | evan | i thought they got killed by flak and bullets alot |
| 02:15:49 | evan | or fall out. |
| 02:16:02 | drbrain | heh, probably |
| 02:16:18 | evan | the video of getting in the belly gun is nuts. |
| 02:16:33 | evan | you're hanging over the world with a tiny plate of glass below you |
| 02:16:45 | drbrain | upside down, too, right? |
| 02:16:51 | turtletime leaves the room. | |
| 02:17:27 | zenspider | I'm crazy... but that'd be fun as fuck |
| 02:17:42 | evan | yeah |
| 02:17:44 | evan | upside down. |
| 02:17:47 | evan | i'm sure it was fun |
| 02:17:55 | evan | otherwise no one would volunter to do it |
| 02:18:05 | zenspider | almost as fun as the industrial robot with the chair attached |
| 02:18:15 | zenspider | I'd soooo program a spirograph into that fucker |
| 02:18:33 | drbrain | http://en.wikipedia.org/wiki/Ball_Turret |
| 02:18:48 | drbrain | says here you volunteered by being short |
| 02:18:53 | rubuildius | Ryan Davis: 238b5952d; 4652 examples, 17056 expectations, 0 failures, 0 errors |
| 02:19:02 | zenspider | btw, autotest is really working nicely now... |
| 02:19:06 | zenspider | YAY! |
| 02:19:18 | headius_ leaves the room. | |
| 02:19:39 | evan | drbrain: OUCH |
| 02:19:49 | evan | drbrain: they shoved you in at the beginning of the mission |
| 02:19:56 | evan | and there you sat for the whole mission |
| 02:20:03 | evan | because it had to be attached externally |
| 02:20:12 | drbrain | I think it depends on the airplane |
| 02:20:15 | zenspider | mmmm catheter |
| 02:20:39 | drbrain | since this one was retractable on the B-24 |
| 02:20:57 | evan | zenspider: probably diaper |
| 02:22:31 | drbrain | "Even though this position was cramped and confining to the operator, it was proven after the war -- following the gathering of statistics, that the ball turret was in fact, the SAFEST position on both the B-17 and the B-24 bomber -- contrary to popular belief." |
| 02:22:56 | evan | huh |
| 02:23:10 | evan | the lucky short guy i guess then. |
| 02:23:10 | bburcham enters the room. | |
| 02:23:57 | evan | hrm. |
| 02:24:03 | evan | well, this might be beyond me for now. |
| 02:24:16 | headius enters the room. | |
| 02:24:17 | evan | i can't figure out a way to eliminate using % in the hash table implementation currently |
| 02:25:04 | zenspider | evan: I think that is actually preferable |
| 02:25:10 | zenspider | as horrid as it is |
| 02:25:18 | zenspider | ok. pretty girl just walked in... you guys lose |
| 02:25:26 | evan | bye. |
| 02:30:40 | obvio171 enters the room. | |
| 02:31:45 | turtletime enters the room. | |
| 02:33:58 | turtletime leaves the room. | |
| 02:37:39 | twbray enters the room. | |
| 02:42:23 | aotearoa enters the room. | |
| 02:46:30 | VVSiz_ enters the room. | |
| 02:47:07 | _mutle enters the room. | |
| 02:47:08 | drbrain leaves the room. | |
| 02:48:31 | Defiler | Whoa, this paper is hard-boiled http://64.233.167.104/search?q=cache:ysj7duFbPOkJ:www.cag.lcs.mit.edu/~saman/papers/mdopt-tech00.p s+pipelined+modulo+operation&hl=en&ct=clnk&cd=5&gl=us&client=firefox-a |
| 02:50:25 | evan | hah |
| 02:50:26 | obvio leaves the room. | |
| 02:50:27 | evan | i was just reading that! |
| 02:51:04 | Defiler | google will eventually turn us all into clones of each other |
| 02:51:43 | Defiler | I was all "hey cool I am grooving on this paper" until I got to the damn proof / squiggles. ;) |
| 02:52:17 | evan | i skipped that part |
| 02:52:19 | evan | and read the optimizations |
| 02:52:23 | evan | none of them work for this case |
| 02:52:33 | evan | they're all for optimizing using % and / in loops |
| 02:52:55 | Defiler | The power of two denominator thing is interesting, at least |
| 02:53:03 | evan | thats the most promising |
| 02:53:13 | evan | but our hash tables don't have a power of 2 bin size. |
| 02:53:28 | evan | we could try that I guess. |
| 02:53:34 | aotearoa_ leaves the room. | |
| 02:53:39 | evan | i'm guess we'll get some giant tables really quickly though |
| 02:54:02 | Defiler | Presumably some medium-giant thing would be the most any sane program ever used, though |
| 02:54:06 | bburcham leaves the room. | |
| 02:54:16 | evan | this is true. |
| 02:54:24 | Defiler | Or we could have an alternate algorithm for ridiculous edge-case hashes |
| 02:54:50 | VVSiz leaves the room. | |
| 02:55:42 | rue | evan: Wandering in and out but can you give a brief, two- to three-letter answer to whether we will implement a Rubinius extension API and in addition to that, use Subtend to map MRI API to ours? |
| 02:56:25 | evan | *shrug* |
| 02:56:37 | rue | That was at least two extra letters right there |
| 02:56:49 | evan | *srg* |
| 02:56:58 | evan | if we think we need one |
| 02:57:02 | evan | i'm open to it |
| 02:57:42 | brixen | I'd like our extension api to be Ruby :P |
| 02:57:48 | mutle leaves the room. | |
| 02:59:30 | evan | i wonder if float mod is faster than integer mod |
| 03:00:40 | rue | brixen: Yeah well :) |
| 03:00:50 | rue | evan: Looking for hash algorithms? |
| 03:01:31 | evan | rue: yeah |
| 03:01:43 | Defiler | See, this is why C is awesome http://www.garagegames.com/index.php?sec=mg&mod=resource&page=view&qid=961 |
| 03:01:47 | evan | i've improved the default Object#hash |
| 03:02:00 | evan | to have better distribution |
| 03:03:11 | evan | but profiling things |
| 03:03:20 | evan | hash_find_entry is taking 6% of the time |
| 03:03:29 | evan | and just the hv % bins |
| 03:03:34 | evan | is 50% of the time of the function |
| 03:03:47 | evan | 6% of the total program time, btw. |
| 03:04:13 | rue | Yeah |
| 03:04:25 | rue | Actually that is why I was asking about object IDs earlier |
| 03:04:40 | evan | I pushed that fix right? |
| 03:04:47 | evan | ah yep. |
| 03:04:54 | evan | they shouldn't collide now. |
| 03:05:10 | evan | Symbol#object_id and Fixnum#object_id might though. |
| 03:05:11 | aotearoa_ enters the room. | |
| 03:05:25 | Defiler | http://burtleburtle.net/bob/hash/perfect.html |
| 03:05:28 | Defiler | This is interesting too |
| 03:05:45 | rue | Could use cuckoo hashing |
| 03:06:37 | maduyb__ enters the room. | |
| 03:06:48 | evan | it's worth it to spend a little time on it |
| 03:06:55 | evan | since all our methods and constants are in hash tables |
| 03:07:21 | rue | The object ID could be bucketed, bound by max_obj_id |
| 03:07:42 | rue | But see http://en.wikipedia.org/wiki/Cuckoo_hashing |
| 03:08:01 | technomancy enters the room. | |
| 03:08:55 | rue | It, reportedly, responds well to caching |
| 03:10:19 | rue | http://cs.nyu.edu/courses/fall05/G22.3520-001/cuckoo-jour.pdf More official |
| 03:10:28 | evan | rue: it's more about how to take a number between 0 and INTMAX |
| 03:10:35 | evan | and map it to the initial slot. |
| 03:10:42 | evan | every algorithm seems to use % |
| 03:12:22 | evan | dealing with collisions is yet another problem |
| 03:12:42 | ezmobius | is % slow in rubinius? is that why you are looking for another way? |
| 03:12:49 | evan | it's slow in computers. |
| 03:12:50 | Defiler | % is slow in hardware |
| 03:12:51 | evan | not rubinius |
| 03:13:04 | evan | % completely flushes the pipeline on x86 platforms |
| 03:13:13 | evan | so |
| 03:13:17 | evan | div %eat |
| 03:13:18 | Defiler | Which is.. freaking expensive |
| 03:13:19 | evan | div %eax |
| 03:13:25 | evan | mov %eax, %edx |
| 03:13:33 | evan | that mov is about 1000x slower than a normal mov |
| 03:13:47 | evan | because the div completely monopolizes the pipeline |
| 03:13:55 | nicksieger leaves the room. | |
| 03:14:08 | rue | Cuckoo does away with bins, sort of |
| 03:14:20 | evan | rue: but you have to do some kind of mapping.. |
| 03:14:29 | ezmobius | ahh |
| 03:15:53 | evan | rue: it has slots though |
| 03:15:58 | twbray leaves the room. | |
| 03:16:02 | evan | the hash function has to pick a slot |
| 03:16:08 | evan | seems like everyone picks a slot using % |
| 03:16:16 | evan | or << if you have 2 ** n slots |
| 03:17:05 | evan | cuckoo tables do look interesting though |
| 03:17:21 | evan | since the 2nd hash function can just be h(h(k)) |
| 03:18:53 | evan | http://domino.research.ibm.com/library/cyberdig.nsf/papers/DF54E3545C82E8A585257222006FD9A2/$File/ rc24100.pdf |
| 03:19:42 | pkondzior enters the room. | |
| 03:19:54 | nicksieger enters the room. | |
| 03:22:09 | rue | Nice paper |
| 03:22:32 | maduyb | evan, ezmobius: what versions of rubinius and merb should I have for next friday's talk? rubinius head and merb 0.5.3? |
| 03:22:38 | turtletime enters the room. | |
| 03:23:22 | evan | maduyb__: yeah, probably. |
| 03:23:29 | evan | ok, i'm off to soccer. |
| 03:23:38 | maduyb | evan: okay, thanks. |
| 03:23:46 | ezmobius | maduyb__: im hoping to release merb-core 0.9 at the conference |
| 03:23:57 | ezmobius | but 0.5.3 will be fine too |
| 03:24:26 | maduyb | thanks! |
| 03:29:10 | ezmobius leaves the room. | |
| 03:32:02 | MenTaLguY enters the room. | |
| 03:32:11 | aotearoa leaves the room. | |
| 03:37:26 | twbray enters the room. | |
| 03:39:13 | smtlaissezfaire enters the room. | |
| 03:42:43 | smtlaissezfaire leaves the room. | |
| 03:49:32 | aotearoa_ leaves the room. | |
| 03:51:48 | twbray leaves the room. | |
| 03:54:15 | tonka leaves the room. | |
| 03:56:18 | tongueroo leaves the room. | |
| 04:00:42 | brixen | hmm, microwave seriously fucks with the bluetooth keyboard and mouse on this imac |
| 04:08:22 | up_the_irons leaves the room. | |
| 04:08:22 | maharg_ leaves the room. | |
| 04:08:22 | mass leaves the room. | |
| 04:08:22 | nro leaves the room. | |
| 04:08:24 | turtletime leaves the room. | |
| 04:08:24 | nicksieger leaves the room. | |
| 04:08:24 | lstoll leaves the room. | |
| 04:08:24 | agile leaves the room. | |
| 04:08:24 | geekounet leaves the room. | |
| 04:08:24 | RyanTM leaves the room. | |
| 04:08:24 | rue leaves the room. | |
| 04:08:24 | maduyb leaves the room. | |
| 04:08:24 | rightondev leaves the room. | |
| 04:08:24 | dgtized leaves the room. | |
| 04:08:24 | goodney leaves the room. | |
| 04:08:24 | pastie leaves the room. | |
| 04:08:24 | goodney_ leaves the room. | |
| 04:08:24 | boyscout leaves the room. | |
| 04:08:24 | matthewd leaves the room. | |
| 04:08:24 | lenbust leaves the room. | |
| 04:08:38 | GMFlash leaves the room. | |
| 04:09:20 | GMFlash enters the room. | |
| 04:10:23 | rue enters the room. | |
| 04:11:28 | dgtized enters the room. | |
| 04:15:01 | nicksieger enters the room. | |
| 04:15:40 | turtletime enters the room. | |
| 04:16:23 | lstoll enters the room. | |
| 04:16:37 | maduyb__ enters the room. | |
| 04:16:47 | matthewd enters the room. | |
| 04:18:28 | lenbust enters the room. | |
| 04:18:28 | nro enters the room. | |
| 04:18:28 | mass enters the room. | |
| 04:18:28 | maharg_ enters the room. | |
| 04:18:28 | up_the_irons enters the room. | |
| 04:20:57 | twbray enters the room. | |
| 04:21:25 | twbray leaves the room. | |
| 04:21:55 | goodney_ enters the room. | |
| 04:22:23 | RyanTM enters the room. | |
| 04:23:13 | rightondev enters the room. | |
| 04:25:42 | pergesu enters the room. | |
| 04:25:56 | agile enters the room. | |
| 04:30:11 | rue | Avoid the microwave |
| 04:32:16 | MenTaLguY | yes, look at all the damage you did |
| 04:32:20 | MenTaLguY | you even split the IRC network |
| 04:33:08 | UncleD enters the room. | |
| 04:34:16 | rue | Megawave, I call that |
| 04:34:28 | pergesu | is bin/ci -i the best way to see what specs are failing? |
| 04:35:00 | pergesu | I'd like something less verbose...just to see at a glance what classes/methods are failing |
| 04:36:34 | rue | There really is nothing like that, I think |
| 04:37:32 | rue | You can use bin/ci on individual directories too |
| 04:37:36 | rue | Or just bin/mspec |
| 04:41:28 | twbray enters the room. | |
| 04:50:27 | dysinger enters the room. | |
| 04:57:11 | twbray leaves the room. | |
| 05:00:48 | aotearoa enters the room. | |
| 05:17:45 | wmoxam enters the room. | |
| 05:25:13 | skaar leaves the room. | |
| 05:37:02 | RyanTM leaves the room. | |
| 05:38:59 | squeegy enters the room. | |
| 05:43:54 | aotearoa_ enters the room. | |
| 05:46:18 | Ingmar_ enters the room. | |
| 05:58:16 | aotearoa__ enters the room. | |
| 05:59:22 | aotearoa leaves the room. | |
| 05:59:55 | tongueroo enters the room. | |
| 06:00:54 | Ingmar leaves the room. | |
| 06:02:23 | __johan__ enters the room. | |
| 06:10:14 | __johan__ leaves the room. | |
| 06:14:44 | aotearoa_ leaves the room. | |
| 06:15:13 | dodecaphonic leaves the room. | |
| 06:15:40 | goodney enters the room. | |
| 06:15:56 | twbray enters the room. | |
| 06:19:37 | tongueroo leaves the room. | |
| 06:21:27 | hornbeck enters the room. | |
| 06:28:59 | tmpk enters the room. | |
| 06:43:40 | dysinger leaves the room. | |
| 06:47:50 | dysinger enters the room. | |
| 06:50:23 | dysinger leaves the room. | |
| 06:53:05 | aotearoa enters the room. | |
| 07:03:13 | aotearoa__ leaves the room. | |
| 07:04:50 | turtletime leaves the room. | |
| 07:07:35 | wmoxam leaves the room. | |
| 07:10:38 | MenTaLguY leaves the room. | |
| 07:13:35 | evan | wierd |
| 07:13:38 | evan | boyscout is being odd. |
| 07:14:46 | boyscout enters the room. | |
| 07:15:08 | boyscout | 2 commits by Evan Phoenix |
| 07:15:08 | boyscout | * Improve hash performance; 6740b79 |
| 07:15:10 | boyscout | * Fix object_id collisions, improve method cache code; f4ac60d |
| 07:17:44 | aotearoa_ enters the room. | |
| 07:18:39 | rue | He is fretting about selling enough cookies |
| 07:18:49 | evan | thats girlscouts |
| 07:18:55 | evan | he's making a pinewood derby car |
| 07:19:39 | rubuildius | Evan Phoenix: 6740b7937; bin/ci failed! http://rafb.net/p/SUsNOu54.html |
| 07:19:53 | evan | oh ho. |
| 07:20:04 | evan | yikes. |
| 07:20:11 | evan | could anyone else try ci? |
| 07:20:38 | rue | loader missing? |
| 07:20:52 | evan | you getting that? |
| 07:21:14 | rue | Not yet |
| 07:23:51 | twbray leaves the room. | |
| 07:24:45 | rue | No, actually I get a segfault |
| 07:24:53 | evan | arg. |
| 07:25:03 | aotearoa leaves the room. | |
| 07:25:13 | brixen | I get 1 error on leopard |
| 07:25:21 | rue | Hm, lemme verify that everything is clean |
| 07:25:28 | rue | There has been something funky about that lately |
| 07:25:35 | brixen | Process.setrlimit something |
| 07:25:44 | evan | that damn thing. |
| 07:26:00 | brixen | but otherwise bin/ci runs |
| 07:26:09 | evan | ok. |
| 07:27:44 | rue | Nope, same after distclean |
| 07:27:55 | evan | very odd. |
| 07:28:01 | evan | could you use --gdb and get a backtrace? |
| 07:28:15 | rue | http://pastie.org/146539 is Ruby side |
| 07:28:55 | evan | strange. |
| 07:29:26 | aotearoa enters the room. | |
| 07:34:08 | rue | The error inside GDB is different |
| 07:34:43 | rue | Refresh pastie |
| 07:35:08 | rue | Also, having to kill -9 gdb is a pain in the ass :P |
| 07:35:29 | evan | very. |
| 07:36:13 | twbray enters the room. | |
| 07:39:41 | __johan__ enters the room. | |
| 07:42:25 | rubyconsumer leaves the room. | |
| 07:42:35 | evan | rue: getting anything? |
| 07:43:51 | rue | Not really, looks like this would take a bit longer than I have right now. Looking at the diffs |
| 07:44:56 | technomancy leaves the room. | |
| 07:46:00 | evan | rue: try reverting my last commit |
| 07:49:27 | smtlaissezfaire enters the room. | |
| 07:51:55 | brixen | evan: reverting the last one didn't fix it, but reverting them both did, I'm going to try just reverting the "fix object_id collisions" as soon as this build finishes |
| 07:52:09 | evan | hrm. ok. |
| 07:52:19 | evan | feel free to check in the reverts |
| 07:52:24 | evan | i'll fix them tomorrow |
| 07:52:30 | evan | i got a brain storm at soccer |
| 07:52:32 | evan | that i'm working on |
| 07:52:36 | brixen | ok |
| 07:57:03 | aotearoa_ leaves the room. | |
| 08:05:30 | evan | alright |
| 08:05:33 | evan | i'm headed to bed |
| 08:05:42 | evan | sky diving tomorrow! (hopefully) |
| 08:05:45 | evan | (stupid weather) |
| 08:05:52 | brixen | fun! |
| 08:05:54 | evan | (this is supposed to be southern california!) |
| 08:06:07 | evan | i'll be back around tomorrow evening |
| 08:06:09 | evan | like i said |
| 08:06:18 | evan | feel free to revert those commits if they're causing troubles |
| 08:06:37 | brixen | ok, I was trying to isolate it a bit, but isn't looking too successful |
| 08:06:37 | evan | nite! |
| 08:06:40 | brixen | nite! |
| 08:06:42 | aotearoa_ enters the room. | |
| 08:07:28 | smtlaissezfaire leaves the room. | |
| 08:12:32 | rue | First one breaks |
| 08:20:17 | jessop enters the room. | |
| 08:23:59 | geekounet enters the room. | |
| 08:26:59 | thehcdreamer enters the room. | |
| 08:34:01 | aotearoa leaves the room. | |
| 08:35:48 | boyscout | 2 commits by Charles Nutter |
| 08:35:49 | boyscout | * Additional IO#sysseek spec for the warning after buffered writes; bf6348c |
| 08:35:50 | boyscout | * Modify IO#seek specs for IO#sysseek, adding appropriate error tests; 5241316 |
| 08:39:46 | aotearoa enters the room. | |
| 08:41:05 | headius leaves the room. | |
| 08:43:27 | pergesu leaves the room. | |
| 08:44:30 | rubuildius | Charles Nutter: bf6348c93; bin/ci failed! http://rafb.net/p/pvYfpf36.html |
| 08:55:01 | defunkt enters the room. | |
| 09:03:56 | imajes enters the room. | |
| 09:04:45 | aotearoa_ leaves the room. | |
| 09:09:09 | headius enters the room. | |
| 09:14:11 | aotearoa_ enters the room. | |
| 09:14:28 | twbray leaves the room. | |
| 09:16:54 | ttmrichter enters the room. | |
| 09:18:48 | __johan__ leaves the room. | |
| 09:19:44 | pkondzior leaves the room. | |
| 09:22:43 | dbussink enters the room. | |
| 09:27:01 | aotearoa leaves the room. | |
| 09:29:46 | aotearoa enters the room. | |
| 09:34:11 | geekounet leaves the room. | |
| 09:35:07 | TheVoice leaves the room. | |
| 09:58:15 | aotearoa_ leaves the room. | |
| 10:09:27 | tmpk leaves the room. | |
| 10:10:16 | headius leaves the room. | |
| 10:11:47 | geekounet enters the room. | |
| 10:31:12 | headius enters the room. | |
| 10:41:42 | headius leaves the room. | |
| 10:48:30 | perplexes leaves the room. | |
| 10:52:33 | jessop_ enters the room. | |
| 10:53:28 | nutrimatt enters the room. | |
| 10:57:51 | rue | Nite |
| 10:59:09 | jessop leaves the room. | |
| 11:01:11 | nutrimatt | anyone help me understand an exception being thrown from rbx? http://pastie.caboo.se/146560 |
| 11:01:28 | nutrimatt | the language is slightly different to MRI so "No Method != on an instance of String" |
| 11:03:02 | Phoop enters the room. | |
| 11:03:45 | nutrimatt | well heh, of course i can go look at kernel.rb ;-) |
| 11:09:22 | dbussink | nutrimatt: are you able to isolate the problem? |
| 11:09:38 | nutrimatt | dbussink: that one liner in the paste is breaking |
| 11:10:06 | nutrimatt | but i am totally new to Rubinius so i'm still looking at kernel.rb |
| 11:10:10 | dbussink | nutrimatt: yeah ok, but are you able to minimalize it? |
| 11:10:42 | dbussink | a minimal test case would be useful as a spec |
| 11:11:09 | dbussink | the one liner uses expand_path, join and dirname |
| 11:11:16 | nutrimatt | seems it's File.expand_path that is broken |
| 11:11:27 | dbussink | ah ok |
| 11:11:43 | nutrimatt | http://pastie.caboo.se/146561 |
| 11:11:46 | dbussink | did you check whether there is already a spec for that? |
| 11:11:52 | nutrimatt | dbussink: give me a chance |
| 11:11:59 | dbussink | no rush :) |
| 11:12:04 | nutrimatt | this morning is the first time i've gotten Rubinius to build |
| 11:12:07 | nutrimatt | and actually run any code |
| 11:12:25 | nutrimatt | so i'm new to it all |
| 11:12:51 | dbussink | hmm, it's not failing for me |
| 11:12:57 | dbussink | what platform are you on? |
| 11:13:01 | nutrimatt | MacOSX |
| 11:13:04 | nutrimatt | 10.5.1 |
| 11:13:16 | dbussink | that's weird, because that's what i have too |
| 11:13:26 | nutrimatt | mine is built today from a git pull |
| 11:13:40 | dbussink | yeah, mine too |
| 11:13:50 | nutrimatt | rubinius 0.8.0 (ruby 1.8.6 compatible) (bf6348c93) (02/02/2008) [i686-apple-darwin9.1.0] |
| 11:13:54 | chris2 enters the room. | |
| 11:13:55 | dbussink | let me try with a distclean version |
| 11:19:30 | dbussink | nutrimatt: strange, i don't get that error |
| 11:19:42 | dbussink | nutrimatt: could you try a rake distclean build ? |
| 11:20:02 | nutrimatt | sure |
| 11:21:40 | nutrimatt | i did try and build it a couple of weeks ago when the build was failing |
| 11:21:46 | nutrimatt | maybe it left something bad behind |
| 11:23:29 | nutrimatt | reinstalling now |
| 11:25:57 | nutrimatt | okay seems that was the issue |
| 11:26:10 | nutrimatt | so should i always distclean before building? |
| 11:26:20 | nutrimatt | git pull; rake distclean build install |
| 11:26:21 | nutrimatt | ? |
| 11:27:43 | dbussink | well, it depends, there have been a lot of changes in external libraries lately |
| 11:27:51 | dbussink | so that means a distclean is necessary |
| 11:28:15 | dbussink | what i usually do when something is acting up, is to do a distclean just to be sure |
| 11:28:36 | nutrimatt | okay, thanks |
| 11:28:37 | dbussink | but the build hasn't been failing the last few weeks afaik |
| 11:32:30 | nutrimatt | aha, new bug ;-) |
| 11:32:38 | nutrimatt | FalseClass can't be coerced into Fixnum (TypeError) |
| 11:32:51 | nutrimatt | okay so whats the general procudure now |
| 11:33:06 | nutrimatt | i ahould be looking for a spec that is running, essentially, the same code? |
| 11:35:38 | lopex enters the room. | |
| 11:41:09 | nutrimatt | hrmm.. this is not so easy |
| 11:41:37 | nutrimatt | the difficulty is knowing whether ruby and rbx are executing the same code |
| 11:44:48 | nutrimatt | when i find a spec file that contains just the require of spec_helper |
| 11:44:58 | nutrimatt | i guess that means i am in uncharted territory...? |
| 11:50:34 | dbussink | hmm, i don't really get what you mean |
| 11:51:22 | dbussink | if you want to add a spec, you need to put a new spec file into the appropriate directory |
| 11:51:56 | dbussink | probably somewhere in spec/ruby/1.8/core/false/ in this case |
| 11:52:40 | dbussink | you can run them in rubinius by ./bin/mspec spec/ruby/1.8/core/false/new_spec_file.rb and in ruby with the -t ruby option for mspec |
| 11:52:53 | dbussink | did you look at the lighthouse pages that cover this stuff? |
| 11:53:09 | nutrimatt | i mean i have an error in Markshall#restore |
| 11:53:13 | nutrimatt | and the spec file is empty |
| 11:54:03 | nutrimatt | but in the case of the false error i think it might be a red herring |
| 11:54:19 | nutrimatt | i think a previous issues means that the MRI and Rubinius end up evalauting a different expression |
| 11:54:51 | dbussink | well, there have been some changes to marshalling, i don't know what state it's in right now |
| 11:55:46 | cjheath enters the room. | |
| 11:59:54 | lopex leaves the room. | |
| 12:06:11 | aotearoa leaves the room. | |
| 12:07:00 | defunkt leaves the room. | |
| 12:16:45 | dbussink | nutrimatt: looks like load and restore are the same, and all specs are ok for me for marshal |
| 12:24:25 | dgtized leaves the room. | |
| 12:32:46 | UncleD leaves the room. | |
| 12:34:27 | Phoop_ enters the room. | |
| 12:35:02 | Phoop leaves the room. | |
| 12:35:08 | Phoop_ leaves the room. | |
| 12:43:07 | Phoop_ enters the room. | |
| 12:47:33 | lopex enters the room. | |
| 12:59:12 | radarek enters the room. | |
| 13:06:22 | Phoop leaves the room. | |
| 13:10:01 | maharg enters the room. | |
| 13:26:26 | maharg_ leaves the room. | |
| 13:35:06 | RyanTM enters the room. | |
| 13:38:25 | lorenzod8n enters the room. | |
| 13:59:28 | Phoop enters the room. | |
| 14:56:20 | RyanTM leaves the room. | |
| 14:57:13 | nicksieger leaves the room. | |
| 14:57:24 | RyanTM enters the room. | |
| 14:57:55 | olabini enters the room. | |
| 15:08:07 | jessop_ leaves the room. | |
| 15:18:09 | agile leaves the room. | |
| 15:19:31 | agile enters the room. | |
| 15:24:44 | geekounet leaves the room. | |
| 15:30:11 | hornbeck leaves the room. | |
| 15:32:42 | aotearoa enters the room. | |
| 15:41:06 | headius enters the room. | |
| 15:50:43 | geekounet leaves the room. | |
| 15:54:40 | __johan__ enters the room. | |
| 15:58:40 | wmoxam enters the room. | |
| 16:00:04 | Phoop leaves the room. | |
| 16:04:16 | pergesu enters the room. | |
| 16:08:07 | turtletime enters the room. | |
| 16:09:18 | GMFlash leaves the room. | |
| 16:09:23 | GMFlash enters the room. | |
| 16:10:36 | twbray enters the room. | |
| 16:15:47 | twbray leaves the room. | |
| 16:27:34 | jessop enters the room. | |
| 16:28:11 | wmoxam leaves the room. | |
| 16:31:18 | pkondzior enters the room. | |
| 16:31:28 | wmoxam enters the room. | |
| 16:37:59 | robinhoode enters the room. | |
| 16:39:14 | lopex leaves the room. | |
| 16:45:32 | boyscout | 1 commit by Charles Nutter |
| 16:45:33 | boyscout | * Repair IO#sysseek spec to not write to fixture file; uses a tmpfile now.; 8edd73d |
| 16:47:33 | lopex enters the room. | |
| 16:54:31 | rubuildius | Charles Nutter: 8edd73d99; bin/ci failed! http://rafb.net/p/ol17pT82.html |
| 17:05:50 | mad_phoenix enters the room. | |
| 17:07:01 | twbray enters the room. | |
| 17:13:29 | wmoxam leaves the room. | |
| 17:26:29 | pkondzior leaves the room. | |
| 17:31:23 | jessop leaves the room. | |
| 17:36:53 | enebo enters the room. | |
| 17:38:36 | twbray leaves the room. | |
| 17:42:59 | nutrimatt | anyone know if Matz has made any public comments about Rubinius? |
| 17:47:04 | mad_phoenix leaves the room. | |
| 17:47:23 | ttmrichter leaves the room. | |
| 17:50:44 | brixen | nutrimatt: at rubyconf he said competition is good, if I understood correctly |
| 17:51:03 | brixen | so, I'm trying to pick evan's commits apart a bit rather than reverting them |
| 17:51:12 | octopod enters the room. | |
| 17:51:25 | nutrimatt | brixen: right someone else said his said something all the lines of "spend more time worrying about the language development and leave the perf/scale/etc implementation details to other peope" |
| 17:51:31 | brixen | but if you folks on linux are blocking on them, just check in the reverts, per evan |
| 17:51:52 | brixen | nutrimatt: yeah, I seem to recall something like that |
| 17:51:57 | nutrimatt | i was musing earlier about him dumping MRI altogether |
| 17:52:04 | nutrimatt | when Rubinius catches up with MRI |
| 17:52:11 | brixen | that would be... awesome :) |
| 17:52:15 | nutrimatt | and is better implemented, faster, better spec'd, etc... |
| 17:52:24 | brixen | 'course |
| 17:52:26 | nutrimatt | http://matt.blogs.it/entries/00002788.html |
| 17:52:31 | nutrimatt | (is what i wrote) |
| 17:53:16 | nutrimatt | it just seemed odd to me to think he might continue when the state of the internals of the MRI mean that language evolution would actually end up being much slower |
| 17:53:33 | nutrimatt | well that's my hypothesis anyway |
| 17:53:39 | nutrimatt | but i think it could be easily proved |
| 17:54:03 | nutrimatt | i read the source to kernel.rb this morning tracing something that wasn't working (turned out i needed a distclean) |
| 17:54:19 | brixen | yes, I think 1.9 is a very unfortunate choice, but until we are a contending, I guess we'll just see |
| 17:54:19 | nutrimatt | i wouldn't even have bothered (although i have delved into the MRI source before) with the MRI |
| 17:54:31 | brixen | gotta grab some breakfast, bbiab... |
| 17:55:45 | twbray enters the room. | |
| 18:18:09 | twbray leaves the room. | |
| 18:19:17 | octopod leaves the room. | |
| 18:20:02 | octopod enters the room. | |
| 18:22:05 | turtletime leaves the room. | |
| 18:26:20 | Phoop enters the room. | |
| 18:27:25 | headius | I think 1.9 is a pragmatic choice |
| 18:27:40 | headius | it's faster than 1.8 and saner in a lot of areas |
| 18:27:46 | headius | and rubinius has a long way to go |
| 18:30:02 | nutrimatt | headius: doesn't 2.0 have a long way to go also? |
| 18:30:16 | nutrimatt | i'm not trying to be argumentative |
| 18:30:31 | headius | well, rubinius isn't even targeting 2.0...so it's still catching up with 1.8 |
| 18:30:33 | nutrimatt | i'm just musing that continued evolution of the MRI may not be in Ruby's best interests |
| 18:31:18 | nutrimatt | it will be interesting to see where this kind of discussion is in 6-8 months time |
| 18:31:35 | headius | yes, certainly will |
| 18:31:49 | nutrimatt | watching from the sidelines i've developed a great deal of confidence that there *will* be a Rubinius 1.0 |
| 18:31:58 | nutrimatt | i have somewhat less confidence that there will be a Ruby 2.0 |
| 18:32:35 | nutrimatt | we live in interesting times |
| 18:34:40 | nutrimatt | it was certainly a good feeling to finally get Rubinius running on my Mac |
| 18:34:50 | nutrimatt | even if it didn't take me long to run into problems ;-) |
| 18:36:38 | headius | well, I'm sure there will be both |
| 18:37:10 | headius | rubinius's challenges don't lie as much in becoming compatible as in becoming a fast enough implementation to be useful |
| 18:37:45 | headius | this is my opinion of course |
| 18:38:19 | nutrimatt | i'm not at a point where i could debate you ;-) |
| 18:39:09 | nutrimatt | my guess is that even if this is a hard problem, a working Rubinius will attract the kind of people who know how to solve those problems |
| 18:39:25 | nutrimatt | so probably getting there with a sane VM is the right goal |
| 18:40:00 | thehcdreamer leaves the room. | |
| 18:40:27 | nutrimatt | i mean we have plenty of evidence that VM's *can* be fast, right? |
| 18:40:29 | nicksieger enters the room. | |
| 18:42:03 | tmpk enters the room. | |
| 18:44:35 | dbussink | well, java is an example of that |
| 18:45:05 | nutrimatt | exactly |
| 18:45:25 | headius | it could be counter-argued that there are other fast VMs that would be better targets |
| 18:45:26 | nutrimatt | so what if it took them 8 years ;-) |
| 18:45:51 | headius | rubinius is an attempt to not only specify existing ruby behavior, not only implement that behavior, but implement a solid VM at the same time |
| 18:45:58 | nutrimatt | headius: you mean retarget the Rubinius compiler to output bytecode for a different faster VM |
| 18:46:02 | headius | which is, how shall we say...ambitious |
| 18:46:25 | nutrimatt | headius: i believe Tom Peters when he said you have to for after "big ideas" ;-) |
| 18:46:27 | turtletime enters the room. | |
| 18:46:39 | headius | yes, like perl 6 and duke nukem forever |
| 18:46:49 | nutrimatt | big, not vast ;-) |
| 18:46:52 | headius | it's also important to know when big is too big |
| 18:46:56 | dbussink | i think a major factor is that there are actually people working on this full time |
| 18:47:04 | dbussink | which is a problem for a lot of open source projects |
| 18:47:51 | headius | I'm not arguing against rubinius, it's a great project...I'm just saying it's not so insane that Matz went with YARV, since it was really the only option a year or six months ago when such decisions had to be made |
| 18:48:03 | nutrimatt | headius: right, i agree with you |
| 18:48:21 | nutrimatt | and i wouldn't expect him to change right now although i would like him to have thought about it |
| 18:48:33 | nutrimatt | and to be weighing if such a thing makes sense for Ruby |
| 18:48:51 | UncleD enters the room. | |
| 18:48:51 | dbussink | well, everyone in here would at least love it if the mri people take part in discussions on for example the specs |
| 18:48:58 | headius | I think there's a benefit to having several implementations, at any rate...everyone settling for MRI or YARV or Rubinius would be counter-productive |
| 18:49:15 | nutrimatt | headius: i am not sure i agree |
| 18:49:28 | nutrimatt | what is the benefit to having several implementations ofthe same language? |
| 18:49:50 | nutrimatt | i mean intrinsic benefit, not in the context of the specific implementations we might find available to us with Ruby right now |
| 18:49:54 | headius | if JRuby hadn't made great strides in implementing Ruby, there might be no Rubinius |
| 18:50:03 | headius | if no Rubinius, no effort to formalize the specs |
| 18:50:10 | nutrimatt | headius: that's a pretty big if |
| 18:50:12 | headius | if no YARV, no drive to improve performance in JRuby |
| 18:50:38 | headius | sure it is |
| 18:50:51 | headius | but we're each paving the way forward for each other to accomplish more things |
| 18:50:54 | nutrimatt | and i don't see these as intrinsic benefits to having multiple implementations |
| 18:51:03 | nutrimatt | so much as specific events within the ruby community |
| 18:51:18 | nutrimatt | i see a lot of benefit to people experimenting outside the norm |
| 18:52:29 | nutrimatt | but should they all turn into "real" implementations? I'm less certain |
| 18:53:18 | enebo | nutrimatt: Also having multiple compatible implementations of the same technology improves the business buy in of a language as well...no one likes being beholden to one group |
| 18:53:18 | dewd_ enters the room. | |
| 18:53:54 | enebo | It also helps expose poorly specified aspects of a language and the libraries around the language |
| 18:54:17 | nutrimatt | I don't disagree with your points |
| 18:54:33 | enebo | Just a few more points for multiple impls being good |
| 18:54:40 | nutrimatt | and maybe it is healthy to have MRI, JRuby, Rubinius, and a host of others all as viable choices |
| 18:54:57 | headius | the benefit of having multiple C impls is perhaps less clear, though competition is a driving force there |
| 18:54:58 | enebo | none by themselves justify the effort but together I think is a net positive |
| 18:55:04 | nutrimatt | i just wonder how much more might be achieved if, at some point, a winner was selected and efforts pooled |
| 18:55:13 | headius | it's fairly obvious why having JRuby, IronRuby in addition to C impls is important |
| 18:55:17 | enebo | nutrimatt: Absolutely nothing |
| 18:55:26 | enebo | I think that is a great fallacy of open source |
| 18:55:34 | headius | nutrimatt: nobody likes a winner :) |
| 18:55:40 | nutrimatt | enebo: you say that with a great deal of confidence. i am sure you have evidence to back that up. |
| 18:55:40 | enebo | The good pieces of software rarely scale by having more talent |
| 18:56:31 | nutrimatt | headius: ;-) |
| 18:56:44 | enebo | Almost every project I have ever worked on or have acknowledged as being a great implementation has been done by a relatively small number of tight members |
| 18:56:44 | nutrimatt | Well it's a moot point I guess. At least for now. |
| 18:57:03 | enebo | That is not to say a large number of people focusing cannot work but I don't think it is very likely too |
| 18:57:05 | nutrimatt | enebo: extension from a small number of cases to the wide world is a common source of fallacy |
| 18:57:38 | nutrimatt | i'm not really disagreeing with you, i just find your outright confidence in that judgement off-putting |
| 18:57:38 | headius | nutrimatt: so is assuming that everyone focusing on a single project produces better results |
| 18:58:14 | enebo | I just get a little bristly when I hear about picking a winner and focusing since I have never seen an example of anyone doing it |
| 18:58:16 | nutrimatt | headius: if you will look at what I wrote it was in the form of a question, not a statement |
| 18:58:35 | nutrimatt | enebo: sure |
| 18:58:39 | headius | well, it came across as a rhetorical question to illustrate a point :) |
| 18:58:47 | nutrimatt | headius: you read it wrong ;-) |
| 18:59:12 | headius | if it were better to focus on a single implementation, it would have made more sense a year ago for everyone to work on YARV |
| 18:59:17 | nutrimatt | But it was, i admit, a poorly worded question |
| 18:59:17 | headius | it was by far the furthest ahead |
| 18:59:25 | enebo | It is not an absolute either...there are certainly probably examples when doing that is reasonable...but it seems like everytime there is an extended debate about email clients (or something like this) the argument to pick a winner and focus seems to pop up |
| 18:59:51 | nutrimatt | enebo: what made me wonder was that, as a vehicle for language evolution, a clean VM with a great set of specs |
| 19:00:00 | nutrimatt | seemed a better choice than the ball of earwax that is the MRI |
| 19:00:22 | enebo | heh...yes. but the primary implementor of the language is tied to that ball |
| 19:00:25 | nutrimatt | i have navigated the MRI sources a few times and it's just not pretty |
| 19:00:31 | nutrimatt | enebo: yes but even he can't fix the problems with it |
| 19:00:55 | nutrimatt | and patches from smart guys who can go unimplemented |
| 19:01:04 | enebo | yeah. I agree with that. He is even starting to divorce himself form the impl and focus more on semantics |
| 19:01:08 | nutrimatt | whereas i can, with no background, open and read the Rubinius sources |
| 19:01:11 | enebo | of the language |
| 19:01:19 | nutrimatt | (not the VM, the library) |
| 19:01:40 | nutrimatt | hence my comment about language evolution |
| 19:01:51 | enebo | So I think his opinion on impls will get less pronounced over time, but I highly doubt he will say stop working on that and work on this instead. Stalemate in a way |
| 19:02:00 | nutrimatt | even Matz ought, surely, to prefer to evolve the Ruby language using Ruby than wicked C |
| 19:02:07 | enebo | nutrimatt: I think I jumped in late |
| 19:02:14 | nutrimatt | enebo: ? |
| 19:02:35 | enebo | Oh you just repeated your comment about language evolution? |
| 19:02:39 | enebo | Sorry |
| 19:02:55 | nutrimatt | Yes sorry, i was just trying to put it into context |
| 19:03:23 | enebo | yeah. I would imagine that Matz may enjoy Ruby more than C. Not positive though |
| 19:04:04 | nutrimatt | Whenever I had to delve into the MRI I would find myself wondering how the author of Ruby, a language he built for his own use, could possibly want to spend so much time in such with all that C code ;-) |
| 19:04:37 | nutrimatt | ok i need that extra 2GB of RAM in my MBP |
| 19:04:45 | nutrimatt | VMWare is kiling this thing |
| 19:04:50 | enebo | or C macros as the case may be :) |
| 19:05:06 | nutrimatt | right, i mean it's not just C it's horrible-C |
| 19:05:07 | nicksieger | nutrimatt: I just did that, I recommend http://www.crucial.com |
| 19:05:17 | nutrimatt | nicksieger: yeah I use Crucial too ;-) |
| 19:05:35 | nicksieger | been a flawless upgrade |
| 19:05:56 | nutrimatt | i think Apple do too, i wish they charged the same ;-) |
| 19:05:56 | enebo | 4Gb!?!!? nicksieger has the power |
| 19:06:09 | nicksieger | ;) |
| 19:06:23 | enebo | I would have to tape mine to the top of my older MBP :( |
| 19:06:49 | d2dchat enters the room. | |
| 19:07:03 | nutrimatt | $130 |
| 19:07:14 | nutrimatt | man RAM is so cheap these day |
| 19:07:18 | headius | MRI's C code is nowhere near the worst I've seen |
| 19:07:32 | enebo | headius: HEH...of ruby impls? :) |
| 19:07:34 | headius | it's sparsely commented and variable names could be more descriptive, but it's mostly pretty clean |
| 19:07:35 | nutrimatt | headius: that's not a competition i want to be an active player in ;-) |
| 19:08:27 | nutrimatt | £72 |
| 19:08:39 | enebo | We should not beat up on it too much...most code bases after so many hands and 13 years does not look so great |
| 19:08:43 | nutrimatt | wow they didn't take the opportunity to do the usual $ -> £ conversion ! |
| 19:08:54 | nutrimatt | enebo: fair point |
| 19:13:48 | dewd_ leaves the room. | |
| 19:17:01 | tizianobis enters the room. | |
| 19:18:14 | MenTaLguY enters the room. | |
| 19:26:09 | turtletime leaves the room. | |
| 19:37:10 | chris2 leaves the room. | |
| 19:39:45 | rue | enebo: Agree on the completing implementations, but then standardisation becomes important |
| 19:40:33 | brixen | also, adding more people to this project has scaled pretty well |
| 19:40:36 | enebo | rue: Yeah for sure. So far I can say Rubinius and JRuby are banding together in a positive way |
| 19:40:53 | enebo | Hopefully we can get MRI more into the fold |
| 19:40:58 | rue | Yeah |
| 19:41:14 | brixen | and maybe some C code is clean, but Dir.glob and the various type conversion functions are not |
| 19:41:25 | brixen | the latter are broken into so many fragments |
| 19:41:33 | brixen | and of course, then use inconsistently in various places |
| 19:41:37 | rue | It seems such a pain to keep nagging them about it. If someone dumped a ton of tests on any of my projects, I would be happy but maybe I am just weird |
| 19:42:18 | noclue123 enters the room. | |
| 19:42:21 | brixen | the sheer volume of C code is overwhelming to most devs, as is clearly evidenced by the number of yarv contributors |
| 19:43:12 | MenTaLguY | the more we can get written in Ruby the better, IMO |
| 19:43:18 | MenTaLguY | which of course is what Rubinius is all about :) |
| 19:43:24 | headius | I think it has to be a pragmatic approach |
| 19:43:47 | headius | if you have an implementation entirely written in ruby that's totally unusable, you haven't accomplished much |
| 19:43:48 | brixen | not being a lisper, is not sbcl a dyn lang? |
| 19:44:04 | brixen | headius: that goes without saying, I think |
| 19:44:11 | brixen | who would suggest that? |
| 19:44:27 | brixen | MenTaLguY: do you know if sbcl is a dyn lang? I hear it has very good performance |
| 19:44:34 | headius | I'm just saying that getting things written in ruby shouldn't be the only driving force |
| 19:45:42 | radarek leaves the room. | |
| 19:45:43 | brixen | I think it is a given that a very fast vm for a dyn lang is possible |
| 19:45:55 | brixen | the only question is the most expedient route to get there |
| 19:46:29 | MenTaLguY | well, I think if Ruby-implemented bits are too slow, then you need to use implementation tricks |
| 19:46:32 | brixen | and I think the language you use is a hugely important, too easily disregarded, factor |
| 19:46:34 | MenTaLguY | e.g. an optimizable Ruby subset |
| 19:46:36 | MenTaLguY | at that point |
| 19:48:44 | brixen | true |
| 19:48:56 | brixen | and this project really has two fundamental parts, the libs and the vm |
| 19:49:21 | brixen | if our libs were 100% semantically correct for Ruby behavior, we could refactor them much easier, being in ruby |
| 19:52:42 | brixen | rue: I pulled the first of evan's commits, created diffs for each file, and applied them in pieces. I most often get a sigsegv in cpu_marshal_to_file |
| 19:53:43 | headius | brixen: is this why ci is busted? I noticed it after a commit of mine last night, didn't figure it was anything I did |
| 19:54:13 | brixen | headius: yeah, busted on linux |
| 19:54:17 | brixen | works ok on leopard for me |
| 19:55:09 | headius | ok |
| 19:55:12 | headius | hadn't tried on leopard |
| 19:55:54 | maduyb__ enters the room. | |
| 19:58:24 | dbussink | on 64 bit, even rake build is broken atm |
| 19:58:59 | headius | bummer |
| 20:01:37 | noclue123 enters the room. | |
| 20:02:43 | turtletime enters the room. | |
| 20:11:06 | antares enters the room. | |
| 20:11:58 | __johan__ leaves the room. | |
| 20:18:58 | tmpk | brixen: it's dynamically typed, but you can add type annotations. |
| 20:19:07 | brixen | tmpk: ok, cool |
| 20:19:19 | brixen | tmpk: so, technically, it has to deal with the cost of lookup |
| 20:19:24 | brixen | tmpk: it's really fast, right? |
| 20:19:36 | tmpk | Unless you give it types. |
| 20:19:47 | brixen | ok |
| 20:19:53 | octopod leaves the room. | |
| 20:20:01 | tmpk | I don't know the details, but I believe the type checks are skipped in this case, which gives unsafe code. |
| 20:20:24 | tmpk | It's not like there's a type inference engine in there. :) |
| 20:20:31 | brixen | the only thing I'm going on is the stuff I've read about strongtalk, where performance was not significantly improved by using the typed st langs |
| 20:20:59 | octopod enters the room. | |
| 20:21:04 | brixen | I was just curious what other fast dyn langs there are we could examine |
| 20:21:07 | tmpk | I'm not sure how well Smalltalk lends itself to static typing. |
| 20:21:11 | Maledictus enters the room. | |
| 20:21:15 | tmpk | Well, if you want that, look at Lua. |
| 20:21:25 | tmpk | Particuarly what Mike Pall has been up to. |
| 20:21:29 | brixen | tmpk: have you looked at strongtalk.org? |
| 20:21:30 | tmpk | Psyco is another option. |
| 20:21:41 | brixen | tmpk: yeah, been looking at the lua 5.1 C code |
| 20:21:45 | brixen | really pretty small |
| 20:21:59 | tmpk | Take a look at LuaJIT. |
| 20:22:10 | brixen | tmpk: one thing is, lua 5.0+ is a register based vm |
| 20:23:09 | tmpk | Ah, you want to use this for Rubinius? |
| 20:23:17 | tmpk | Rubinius is stack-based? |
| 20:23:37 | tmpk | Also, regarding Strongtalk, no I never actually looked at it. |
| 20:24:13 | brixen | tmpk: yeah, for ideas, and in general understanding dyn lang issues |
| 20:24:36 | brixen | the "dyn langs are slow" meme dies a horrible, agonizing, slow death, unfortunately |
| 20:24:52 | tmpk | You'd be well-off looking at Mike Pall's code then. It's fairly small and yet decently fast. |
| 20:24:59 | brixen | ok, sweet |
| 20:25:02 | brixen | thanks |
| 20:25:02 | tmpk | Also, look at some tracing-tree papers. |
| 20:25:18 | tmpk | JITs and tracing trees lend themselves well to dynamically-typed languages. |
| 20:25:30 | tmpk | Java having a JIT is actually a bit idiotic, but I digress. |
| 20:26:03 | brixen | ok, interesting |
| 20:26:09 | agile leaves the room. | |
| 20:26:18 | brixen | tracing tree google search turns up plenty of geneology sites, heh |
| 20:26:40 | tmpk | Hang on, I'll find some links. |
| 20:26:59 | agile enters the room. | |
| 20:27:49 | jkh enters the room. | |
| 20:28:07 | tmpk | Check the three links at the bottom: http://lua-users.org/lists/lua-l/2007-08/msg00564.html |
| 20:28:27 | brixen | nice, thanks! |
| 20:28:42 | brixen | oh, to answer your Q above, yes Rubinius is stack-based |
| 20:28:44 | tmpk | They're pretty easy reading, and the dynamo one is particularly good for the big picture. |
| 20:28:50 | jkh | I have a FAQ, which I'd look up on http://rubini.us/faq except it's empty. :) |
| 20:29:03 | tmpk | brixen: okay. |
| 20:29:04 | turtletime leaves the room. | |
| 20:29:13 | jkh | Is rubinius making any conscious attempt to track language changes in ruby 1.9? |
| 20:29:21 | brixen | jkh: yes, have a look at http://rubinius.lighthouseapp.com/projects/5089-rubinius for now |