Index

Show enters and exits. Hide enters and exits.

00:00:54joachimm enters the room.
00:02:18chris2 leaves the room.
00:02:19shoe leaves the room.
00:04:34shoe enters the room.
00:05:34postmodernModule#const_missing at kernel/common/module.rb:599
00:06:41postmodernNameError: Missing or uninitialized constant: MethodContext
00:06:55boyscoutSome rbconfig fixes for linux. - 5cb55f3 - Brian Ford
00:07:36brixenI was able to gem install mongrel on ubuntu 32bit with those changes
00:07:51brixenobviously, we need to figure out a real solution to rbconfig
00:08:11boyscoutCI: 5cb55f3 success. 1427 files, 6935 examples, 23105 expectations, 0 failures, 0 errors
00:08:21brixenalas, must go shopping now
00:09:00headius enters the room.
00:14:30binary42 leaves the room.
00:18:28postmodernso what does ci stand for?
00:18:43tarciericontinuous integration?
00:19:16postmodernah that makes sense
00:20:47cored enters the room.
00:24:44rueOccasionally, continuous irritation
00:24:48tarcierihaha
00:24:53nemerle enters the room.
00:32:35tongueroo enters the room.
00:33:36evanmacruby is abondoning YARV
00:33:37evanhttp://www.macruby.org/blog/2009/03/28/experimental-branch.html
00:33:46evanthey're writing their own VM using LLVM
00:34:35postmodernmakes sense
00:34:44postmodernsince Xcode already relies on LLVM
00:35:34headiusllvm is the flavor of the year
00:35:50evanseriously.
00:35:52headiusexecution is probably not why macruby has perf issues though
00:36:02headiusit's the objc classes not mapping to ruby semantics well
00:36:23evanLLVM is going to give them trouble
00:36:37postmodernlast i checked LLVM hasn't done much with ObjC
00:37:01headiusgoing from objc + yarv and way slower than 1.8 to objc + llvm
00:37:22headiusbut it will be exciting to see what they do
00:37:51Maledikt leaves the room.
00:37:51headiusEarly performance measurements are also very promising, with substantial room for improvement remaining.
00:37:53headiusso it's still slow
00:37:55headius:)
00:38:03headius</asshole>
00:38:26evanhah
00:38:31evanwell, i found the same to be true
00:38:36evanwhen doing small scale LLVM experiments
00:38:42evanbut it appears they've got no interpreter
00:38:56evanand thus will be compiling all ruby methods with LLVM
00:39:16headiushmm, won't that be a bit of a startup hit?
00:39:19evanand it's just not tuned to be used for in high speed compiling
00:39:44rueYeah, so open_module is not handling autoloads
00:39:53evanrue: oh
00:39:56evanrue: crap.
00:39:59evanthats my bad
00:40:04evanopen_module is gone
00:40:20evani forgot to implement Rubinius.open_module in ruby to handle autoload
00:40:21tarcieriheh crazy
00:40:22headiusevan: so yeah, the new ivar table seems to work well
00:40:42evanrue: let me fix that now
00:40:47headiusI actually extended the idea to include call-site caching of "ivar accessors", mainly so the cache is a single atomic read/write
00:40:53tarciericrazy @ macruby switching to llvm
00:40:59tarcierithey should... get it working on the goddamn iphone
00:40:59evantarcieri: yeah
00:41:13evanha.
00:41:14evannope.
00:41:18tarcieri:(
00:41:20evanit's using the LLVM JIT entirely.
00:41:28evanwhich definitely isn't present on the iphone
00:41:34tarcieriheh, I meant MacRuby in general
00:41:48headiusno GC on iphone either
00:42:08tarcierithey use their own GC
00:42:10tarcieriautozone
00:42:12tarcierior whatever
00:42:16evanyeah
00:42:19evanthats not on the iphone.
00:42:55rueYou *can* run it on "the i", apparently
00:43:00rueOr something
00:47:49joachimm leaves the room.
00:51:09asap18 enters the room.
00:56:29boyscoutAdd proper versions of open_module/open_module_under - 8c7f978 - Evan Phoenix
00:56:48evanrue: there ya go
00:56:53rueGoodies
00:57:14rueMongrel runs on Rack minus Lint
00:57:21evanwhats Lint?
00:57:27evandid you install LintTrap?
00:57:36evanotherwise your clothes will have lint on them
00:57:47boyscoutCI: 8c7f978 success. 1427 files, 6935 examples, 23105 expectations, 0 failures, 0 errors
02:05:51rueMm, something is severely breaking
02:10:39benny leaves the room.
02:13:46evanheadius: not that I think it matters
02:14:04evanheadius: but everything i've found indicates that the array header in the JVM is bigger than the object header
02:14:12headiusyeah, I looked it up, it's 3 words
02:14:16headiusobject is two words
02:14:24evanright
02:14:26headiusso object header plus size
02:14:31evanye
02:14:33evanyep
02:14:37evansame thing Rubinius uses now
02:14:44headiusstill way smaller than the giant thing we had before though
02:14:50evanyeah
02:14:51evanno doubt
02:15:11evanso are you putting the name => index table on the the object's real class?
02:15:13rueAbstractBigGiantFactoryFacade
02:15:45headiusyeah, it's on the real class fo rnow
02:15:54headiusI need a strategy for singletons though
02:15:59evanwhy?
02:16:06rueHm, weird, lsof shows a connection to sourceforge.net?
02:16:11evani don't think you can have one
02:16:20headiuswell, think about it, halfway through their lifecycle they get a new immediate metaclass
02:16:25evanunless you sync the singleton tables with the class table
02:16:26headiusso do you then track new ivars on that one or the parent?
02:16:36evanno
02:16:38evanoh
02:16:39evanby real class
02:16:43evani mean not the metaclass
02:16:49headiusright, you'd have to sync with parent, put them all on the real class, or something
02:16:53evani mean whatever obj.class returns
02:17:02headiusright now it's just immediate superclass, but will probably be real class
02:17:14headiusit just means singletons everywhere can cause the ivar table to grow
02:17:19evanyep
02:19:01evanoh btw.
02:19:03evaner.
02:19:04evanwtf.
02:19:14evando_sqlite3 MUST have a bug
02:19:15evanit's doing
02:19:19evan rb_cTime = CONST_GET(rb_mKernel, "Time");
02:19:24evanbut not declaring rb_cTime
02:19:47evanie, it's redefining the static variable
02:19:51evanthats busted.
02:21:31headiusahh crap
02:21:43headiusmacruby requires llvm trunk build
02:21:48evanno surprise.
02:21:48headiuswell there goes an hour of cpu time
02:23:03headiusevan: hey, what actually uses LLVM successfully right now?
02:23:13evandefine success
02:25:59headiuswell, what projects ship real production software on it?
02:26:06headiusapple has some stuff, don't they?
02:26:10evaniphone sdk
02:26:18evanis the only one i know of
02:26:36headiusI keep hearing about people moving to llvm, and no success stories about how well it's worked out
02:27:08evani think that people look and see all the things it has and assume it wil be easy to adapt their model to it
02:27:11evanand while it can do a lot
02:27:18evanit's just not as simple as people make it sound
02:27:31evanesp. when you're project is applying a dynamic language model to it
02:27:43evannot that it's impossible
02:27:47rueSo one of our cats is much smarter than I thought
02:27:49evanbut it's just not trivial.
02:28:00evanrue: did it order pizza again?
02:28:20headiuswhat do you think of the hotspot + llvm project?
02:28:36headiusI don't know a lot about llvm, but it seems like a great match
02:28:41rueI have empirically witnessed that she will drag the toilet paper off its roll and drag it over to me when--and ONLY when--her litterbox is overdue cleaning.
02:29:05rueShe does not play with it, nor does she do it any other time
02:29:24evanheadius: yeah, project zero seems like a great fit
02:29:47evanbut thats still applying java execution like gcj
02:30:02evanrue: hah
02:30:23rueIt actually is fairly complex reasoning
02:30:37evanbigtime
02:30:51evanthats a lot of logic
02:31:37headiusthe project I mean is shark
02:31:50headiusit's supposed to backend hotspot with llvm, but leave the dynamic optimizations of hotspot in place
02:32:15headiuszero is the first half of the project, getting openjdk with no assembly, so they can start punting that to llvm
02:32:21evanoh right
02:32:22evanshark
02:33:55rueIt might be there is still an issue with the R*->ptr, the only other symptom I see so far is that the constant SERVER_NAME is not being set
02:34:02rueThe stack is pretty fucked though
02:35:09ruehttp://gist.github.com/87260 if you want to play along at home for fabulous prizes
02:36:33macournoyer enters the room.
02:36:57evanheh
02:38:07evanwhere is dbussink...
02:41:07rueAsleep?
02:41:15evanyes, probably.
02:41:20rueIt is 04:40
02:41:33rueIf you remembered to turn your watch anyway
02:41:36boyscoutFlesh out some missing capi code - 05489c8 - Evan Phoenix
02:42:14evantrue
02:42:20evanok, i'm going to play some ps3 now.
02:42:21evanbbiab.
02:46:04boyscoutCI: 05489c8 success. 1427 files, 6935 examples, 23105 expectations, 0 failures, 0 errors
02:54:04lopex leaves the room.
03:02:19rueWell, good news is Rack runs on Mongrel too
03:09:24headiushah
03:09:37headiusenebo says macruby-experimental produces a 25MB binary
03:09:46headiusI hope that can be trimmed
03:12:34imajes enters the room.
03:13:39tarcieriman
03:14:35tarcierilooking at these Ruby DSLs... all based on blocks, heh
03:14:47tarcieriblocks allow you to represent nested structures without using objects
03:15:15tarcieriabout to get them working, finally, ugh
03:15:43headiusheheh
03:15:48headiusgot your new parsing logic in place?
03:16:26tarcieriI had to go through and manually change everywhere I defined or called functions, ugh
03:16:41tarcierimy old functions used raw Erlang arguments and were thus arity-sensitive
03:16:58tarcierinow I have an argument tuple as the first parameter and a block as the second
03:17:13tarcieriI needed to do that anyway for default arguments, keyword arguments, etc
03:17:28tarcieriit was not a fun change
03:18:12tarcieriarity-sensitive functions were one of those "I've never heard of that before Erlang" things
03:18:21tarcierithen I found out... Prolog! it came from prolog
03:18:23tarcieriof course
03:20:33slavajava can overload functions on arity
03:20:42rueheadius: Our 64-bit binary at least used to be huge, 20MiB or so
03:21:03rueDunno if it still is
03:21:20headiusI suppose this is a universal binary also
03:23:57headiusmath perf is pretty good
03:25:00headiusbetter than jruby for fib
03:25:11headiussounds like they spent some time on that
03:26:01slavamath perf of what?
03:26:07headiusfib!!
03:26:16tarcierislava: heh, guess so, the difference is in Erlang it's used practically everywhere, mostly as a cheap hack for default arguments
03:26:17slavawhat vm I mean
03:26:22headiusmacruby
03:26:24slavaah
03:28:01headiushmm, they've broken some stuff I expected
03:33:43headiuslots of stuff is broken
03:33:44headiuslike binding
03:37:59headiusman, String operations are super slow
03:42:16brynary enters the room.
03:44:36evanheadius: i don't think they have a bunch of control working
03:44:41evanbreak/next etc in a block
03:44:43evanfor instance
03:44:50evani guess i could build it...
03:44:52headiuswell, they've totally busted eval and bindings too
03:44:58evanyep
03:45:06headiuswhich are kinda the tricky part of optimizing
03:45:06evanand it won't work again until they make stuff slower
03:45:16headius➔ ./miniruby -e "a = 1; eval 'a = 2'; puts a"
03:45:17headius1
03:45:51headius➔ ./miniruby -e "binding"
03:45:51headiusundefined local variable or method `binding' for #<TopLevel:0x1816b20> (NameError)
03:45:53evanthey're lowering locals to LLVM directly
03:45:56headiusyes
03:46:17evani guess they're hoping that their autozone GC can pick things up properly
03:46:57headiusso some low-level and math stuff is pretty fast
03:47:12headiusbut most core classes are really slow, and lots of stuff is broken
03:47:27evani'll take a look at what they decided to use for math
03:47:31evanprobably the same tricks I play
03:47:39headiussome of these benches don't even seem like they're running
03:47:49rueWell, this IS like day 3 of the effort so could maybe cut them some slack ;)
03:47:55headiusno slack
03:47:58rueOr him more aptly
03:48:13evanrue: it's actually more like month 3
03:48:15headiusthey've been bragging how great it's going to be, so they have to stand up :)
03:48:16evanbut still.
03:49:07headiuslots more peephole opts
03:49:18evanyeah
03:49:27evanthey've got a bunch of caching stuff I can see
03:49:38evanbut I don't think they're caches have flushing
03:50:58evanwhich is... fun.
03:51:03imajes leaves the room.
03:51:32headiusheheh
03:51:38headiuswell, it will keep things interesting :)
03:51:45evanyes, yes it does.
03:51:46headiusa fast fork of ruby
03:51:53evanI don't mean to poo poo on their effort
03:52:03evani really want to talk with them about what their architecture ideas are
03:52:19evansince AST => LLVM IR => machine code for every method, every time
03:52:23evanwill be too much.
03:52:29headiushell, they haven't even implemented flip
03:52:32evanif they do it all as JIT
03:52:39evanOH NOES
03:52:41evannot flip!
03:52:41evan:(
03:52:52evani don't think they actually have closures
03:53:13evantry create a block and access and change an outer variable
03:53:25rueOh, duh, I bet it is exceptions again
03:53:39headiusI did, the closure seems to work
03:53:39slavaevan: what is flip?
03:53:46evanah, ok.
03:53:48headiusblocks as bindings don't work
03:54:02evanslava: this stupid ruby syntax
03:54:07evanthat no one uses
03:54:14evanthat is inherited from ack
03:54:17evaner. awk
03:54:34evanif i>0...i<10
03:54:36evan puts "blah"
03:54:40evan i += 1
03:54:41evanend
03:54:44evanit's stupid
03:55:46evanwell, it's dinner time.
03:55:47slava...? man
03:55:56slavawhat are the semantics?
03:55:58headiushmm
03:56:18headiusevan: actually I'm having some trouble with closures now
03:56:47evancolor me unsurprised
03:57:53headius➔ ./miniruby -e "a = 1; 1.times { 1.times { p a } }"
03:57:54headiusnil
03:58:01headiusinside a single block it's ok
03:58:09evanwhat about doing
03:58:11evana = 2
03:58:14evanthen p a
03:58:15evanafter
03:58:16headius➔ ./miniruby -e "a = 1; 1.times { p a; 1.times { p a } }"
03:58:16headius1
03:58:17headius1
03:58:23headiusweird
03:58:35evanok, dinner.
03:58:41headius➔ ./miniruby -e "a = 1; 1.times { p a; 1.times { p a; a = 2 } }; p a"
03:58:41headius1
03:58:42headius1
03:58:42headius2
03:58:58headiusit's doing static inspection
03:59:00headiusbut not going all the way down
03:59:08headiusand not considering that blocks can be used as a binding
03:59:13asap18 leaves the room.
03:59:32headiusI have the same optimization in some disabled jruby code
04:00:13macournoyer leaves the room.
04:01:42macournoyer enters the room.
04:07:22slavado any dynamic languages have test coverage tools?
04:08:15rueThere is rcov
04:10:31tarcierislava: Erlang has coverage analysis
04:10:35rueslava: The flipflop is ridiculous, the first condition is "on" and the second is "off"
04:11:08macournoyerheadius: what VM are you talking about?
04:11:14headiusmacruby
04:11:21headiusthey opened up their llvm work today
04:11:50macournoyerah ok just saw the post
04:13:29headiusyup yup
04:13:40headiuslooks like it's pretty fast on some low-level vm stuff, math, local vars, etc
04:14:15macournoyerprobably, it's all jited
04:16:00headiusheh, it blew up during an eval bench
04:16:08headiusImplicit binding (short) JIT: Ran out of space for generated machine code!
04:16:25headiusnever returned a result
04:18:19tarcierihaha
04:18:38rueslava: It maintains its own state, so it is usually in loops.. you could e.g. have every third line in a file toggle it on and any other off to print every third line only
04:20:30headiuson real heap variables it doesn't appear to be faster than jruby
04:20:46headiusthat static inspection is going to burn them though
04:44:10macournoyer leaves the room.
04:55:04nari enters the room.
05:06:18headius leaves the room.
05:13:16headius enters the room.
05:32:21binary42 enters the room.
05:35:05postmodern leaves the room.
05:39:50jicksta leaves the room.
05:40:12antares_ enters the room.
05:58:59joearnold leaves the room.
06:08:33binary42 leaves the room.
06:34:47qbproger_ leaves the room.
06:53:17headius leaves the room.
07:13:23nari leaves the room.
07:39:47joachimm enters the room.
07:49:28imajes enters the room.
08:06:21joachimm leaves the room.
08:23:05brynary leaves the room.
08:27:40sunblush leaves the room.
08:36:33lstoll leaves the room.
08:39:12headius enters the room.
08:43:58tongueroo leaves the room.
08:46:49stepheneb leaves the room.
08:49:18tongueroo enters the room.
09:01:15asap18 enters the room.
09:05:33brixenthe capi handle scheme is fundamentally broken atm
09:05:55brixendue to rb_intern
09:05:58evanoh?
09:06:01evanwhats wrong
09:06:02evan?
09:06:08brixenthe quick fix is to get handles for symbols
09:06:19brixenrb_intern return the symbol recast as an id
09:06:28brixenlater in eg rb_funcall that is put in an array
09:06:36brixeneven later, get_object is called on it
09:06:47brixenI have a scheme that uses tagged values instead
09:07:01brixenand can pass Symbol and Fixnum straight through
09:07:26evanwell
09:07:29evanah
09:07:32evani gotcha
09:07:33brixenif we get handles for ID's also, it will break the equality in C extensions
09:07:42brixenthis will be better I think
09:07:47evanpassing a VALUE for a Symbol to get_object == fail
09:07:53brixenyes
09:08:01mutle_ enters the room.
09:08:01evanjust ditch the recast
09:08:06evancreate handles for Symbols
09:08:12evanwell
09:08:20evani guess the worry there is people cast the Symbol to an ID
09:08:20brixenwell, like I say, then you don't have symbol equality
09:08:26evanand store it into a static ID
09:08:30brixenyeah
09:08:38evanok
09:08:42brixenthis tagged value scheme works
09:08:42evanso
09:08:50evanyeah, lets just add tagging
09:09:05brixenI'll push it tomorrow, have to crash
09:09:05evanthat way we can tell the difference between local and global handles easier
09:09:12evanno need for the negative 'magic'
09:09:17brixenbreakfast with mom and nephew at 8am
09:09:20brixenyeah, exactly
09:09:20evanjust a tag bit for a global handle
09:09:25brixenyep
09:09:27evandid you implement the tagging?
09:09:31brixenyah
09:09:33brixensec..
09:09:33evansweetness
09:09:35evangood job.
09:09:57brixensomething is broken atm, but I'm mushy headed right now
09:10:02evanget some sleep
09:10:02brixenI'll pastie this..
09:10:05evank
09:10:36brixenhttp://pastie.org/430344
09:10:51brixenso, 110 is still a symbol
09:11:10brixen010 is the tag for handles and immediates/bools
09:11:36brixen01010 is global, 11010 is non-global handles
09:11:49evanah
09:11:50brixenQfalse stays 0
09:11:58evanyou used the same tag scheme we use in oop.hpp then?
09:12:15brixenyeah, so fixnum and symbol can go through
09:12:28evanAH
09:12:31evanmakes sense
09:12:34evansounds good!
09:12:44brixenk
09:13:29brixenrefresh the pastie, added nativemethod.cpp
09:13:53brixenthere's a mistake somewhere, but I'll track it down
09:14:21brixendo you have a better way to do the get_object/handle than the if else?
09:14:31brixenI could do a switch
09:14:36evanvery nice
09:14:40brixenoh not
09:14:52brixencus I use obj->symbol_p() etc
09:15:01evanright
09:15:02brixenthat's why I didn't use a switch
09:15:04evanthere is a way
09:15:10evanbut it's more complicated
09:15:12evanthis is fine
09:15:17brixenok, sweet
09:15:52brixenwell, nite!
09:16:08imajes leaves the room.
09:16:12evannite!
09:21:19imajes enters the room.
09:24:58mutle leaves the room.
09:53:48headius leaves the room.
10:06:11dbussinkrue: see there is some brokenness in do_sqlite3?
10:06:17dbussinki'll fix that up then
10:18:43chris2 enters the room.
10:21:46SoreGums- leaves the room.
10:34:25tilmanrue: you added rb_ary_new2 (and rb_ary_new4) to subtend^Wcapi, right? why do you have those create an array twice as large as requested by the caller? i think just using the requested size is a better idea
10:45:13bitsweat leaves the room.
11:04:12tongueroo leaves the room.
11:05:52Maledictus enters the room.
11:31:14nari enters the room.
11:32:55chris2 leaves the room.
11:33:20chris2 enters the room.
11:33:37chris2 leaves the room.
11:34:08chris2 enters the room.
11:58:39imajes leaves the room.
12:10:49antares__ enters the room.
12:11:02sunblush enters the room.
12:12:14antares___ enters the room.
12:15:53antares____ enters the room.
12:27:18antares_ leaves the room.
12:29:10antares__ leaves the room.
12:31:16antares___ leaves the room.
12:35:41lopex enters the room.
13:12:21joachimm enters the room.
13:29:01boyscoutUse Tuple#at instead of Array#at in Array#pop. - 3e5c0a2 - Tilman Sauerbeck
13:29:01boyscoutrb_ary_new2() creates empty arrays. - 4e1293a - Tilman Sauerbeck
13:29:36asap18 leaves the room.
13:33:05boyscoutCI: 4e1293a success. 1427 files, 6935 examples, 23105 expectations, 0 failures, 0 errors
14:27:31asap18 enters the room.
14:38:54qbproger enters the room.
15:00:23jicksta enters the room.
15:14:10akshay enters the room.
15:16:29botanicus enters the room.
15:23:34akshay leaves the room.
15:23:46akshay enters the room.
15:35:23joearnold enters the room.
15:40:02botanicus leaves the room.
15:49:16danlucraft enters the room.
15:51:02chris2 leaves the room.
16:00:06joearnold leaves the room.
16:30:06binary42 enters the room.
16:42:33ruetilman: Those are probably similar to MRI to have extra reserve capacity, do not recall.
16:44:20tilmanrue: i checked ruby 1.8.7 yesterday; it doesn't do that
16:54:49antares_ leaves the room.
17:12:55headius enters the room.
17:21:58macournoyer enters the room.
17:31:27shoe leaves the room.
17:37:57brynary enters the room.
17:50:58shoe enters the room.
17:54:12nari leaves the room.
18:16:20sunblush leaves the room.
18:17:59headius leaves the room.
18:21:48kongmi enters the room.
18:23:32macournoyer leaves the room.
18:52:25naeu enters the room.
19:09:37kongmi leaves the room.
19:21:05akshay enters the room.
19:29:38libc_ leaves the room.
19:29:38kronos_vano leaves the room.
19:37:31headius enters the room.
19:38:22libc_ enters the room.
19:38:35kronos_vano enters the room.
19:41:54imajes enters the room.
19:58:30brynary leaves the room.
19:59:34chris2 enters the room.
20:07:49evandbussink: poke
20:08:06dbussinkevan: g'day
20:08:21dbussinkevan: saw the remark on do_sqlite3, already fixed the redefinition of rb_cTime
20:08:23evanif you fix one bug in do_sqlite3, it will compile (and hopefully run)
20:08:26evanyay
20:08:43evandid you just remove the rb_cTime = CONST...
20:08:45evan?
20:08:48dbussinkyeah
20:08:54evancool!
20:09:02dbussinkin mri it probably results in the same object being set
20:09:04evandid you push out a new gem?
20:09:06evanyeah
20:09:08evanit does
20:09:13dbussinkno, not yet
20:09:19evanin rubinius though, rb_cTime expands to be a function call
20:09:28evanok, well, let me know when you do
20:09:31dbussinkprobably will release a new version somewhere in the near future
20:09:32evani want to try it out
20:09:40evanor
20:09:46dbussinki can make you a gem if you want
20:09:46evantell me how to create a gem from the checkout
20:09:48evani tried
20:09:49evanrake package
20:09:53evanand it didn't work
20:10:03dbussinkclone it, switch to next branch and do rake gem
20:10:21dbussinkyou might also need data_objects from the next branch
20:10:31evannext branch?
20:10:43dbussinkgithub.com/datamapper/do.git
20:10:52dbussinkmy clone is probably an old one
20:11:32evanah ok.
20:11:43evanwhere is do_sqlite3?
20:12:20dbussinkhttp://github.com/datamapper/do/tree/master
20:12:41dbussinkcontains the generic data_objects gem and the drivers for different rdbms
20:14:02evanah
20:14:14evanyour do_sqlite3 one isn't the one to use then?
20:14:43dbussinkthis is the official repo, i'm maintaining these so i mainly work in this repo
20:15:24dbussinkmy clone is probably way older before this was all moved under datamapper/ account
20:15:31dbussinkbtw, anyone in here going to euruko?
20:17:13brixenI wish I were going
20:17:34brixenmaybe after 1.0 I will go on evangelism trips to eu :)
20:18:47dbussinkbrixen: barcelona is really nice :)
20:19:05evandbussink: so you feel like the do drivers are better than the existing ones?
20:19:51brynary enters the room.
20:20:09dbussinkevan: they provide a standard api and are more actively maintained
20:20:27dbussinkevan: standard database api like perl::dbi, jdbc, ado.net, etc.
20:21:12evandbussink: do i need a specific version of extlib?
20:21:46dbussinkevan: hmm, might also need datamapper/extlib next branch
20:21:55dbussinkthat one i know works at least
20:22:10brixendbussink: did you apply my patch to extlib?
20:22:19dbussinkbrixen: yeah, that's in
20:22:24brixenok good
20:22:34boyscoutMade rb_ary_new4() copy the provided elements to the new array. - 64a3bc1 - Tilman Sauerbeck
20:22:38dbussinkbrixen: afaik you should have been notified of that through LH
20:22:56evandbussink: i'm confused
20:22:56brixendbussink: yeah, I thought I would have, but never saw the email
20:23:00brixenand lost the ticket #
20:23:02evani shouldn't be using master?
20:23:07evanit says it's 0.9.12
20:23:41brixentilman: there's an issue with handles in capi that I'm fixing atm
20:23:48brixentilman: just fyi
20:23:58tilmanbrixen: yeah, i hit that earlier today :D
20:24:00dbussinkbrixen: http://extlib.lighthouseapp.com/projects/15339/tickets/7-adding-proxy-methods-in-lazy_arrayrb-does nt-account-for-assignment-methods#ticket-7-3
20:24:03brixenyou will get bus errors on some stuff till this is fixed
20:24:35brixendbussink: ahh thanks
20:24:43ruetilman: There is probably no particular reason to keep it
20:25:01tilmanrue: keep what? the length * 2?
20:25:44dbussinkevan: ah, well master probably works too
20:25:51dbussinkevan: but i know for sure next does
20:25:53ruedbussink: I will be in Barcelona that week, but do not have a conference ticket
20:26:32boyscoutCI: 64a3bc1 success. 1427 files, 6935 examples, 23105 expectations, 0 failures, 0 errors
20:26:59dbussinkevan: but a new extlib is also about to be released
20:27:16evandbussink: rather than futz with it
20:27:21evani'm just going to wait until you release new gems.
20:27:57dbussinkevan: ok, i might test a bit myself then before releasing
20:28:05dbussinkif there are any similar small changes i need to make
20:29:04dbussinkbrixen: looks like extlib passes the specs with rubinius now
20:29:14brixendbussink: excellent
20:29:48dbussinkbrixen: but that's someone else running it though, so not first hand, but i'm going to verify it
20:30:33brixenok
20:30:44dbussinklooks like datamapper in memory adapter is running all specs ok with rubinius
20:34:33stepheneb enters the room.
20:38:19rueThink that is inherited stuff
20:38:55ruetilman: Yeah. Can devise a reserve strategy for Array itself
20:39:27rueAlthough I thought that was already done at some point
20:42:38ruedbussink: You making the trip?
20:44:44tilmanrue: k, i'll kick it out
20:46:05dbussinkrue: yeah, presenting on data_objects too
20:46:55ruedbussink: Cool
20:47:19rueWill definitely make time for a coffee.rb or whatever
20:48:05rueMight hit the conf if any seats become available but I figure I will probably be sitting at G??ell watching the sea instead
20:48:35dbussinkrue: hehe, also a nice thing to do :)
20:54:41ruebrixen: Do you think the Rack::Lint + Mongrel crash I saw was related to the handle issue or was it something else you ran into?
20:55:51dbussinkevan: just installed do_sqlite3 here locally :)
20:56:47rueIs anyone else seeing improvement in gem installs, or did the sysread just help me past whatever issue it was I was running into?
20:56:48brixenrue: dunno
20:57:47brixenit's a little pointless to push too hard on capi till I fix this though
20:57:51dbussinkevan: and i've hit the first issue
20:58:16dbussink> class ByteArray < String; end
20:58:21dbussinkTypeError: Superclass mismatch: Object != String
20:58:29brixenanything that does an rb_funcall with an rb_intern("blah") call will bus error
20:58:33stepheneb leaves the room.
20:58:43rueAh, yes, that could be bad
20:58:46brixenugh
20:58:57dbussinkbrixen: that's a pretty common use case yeah
20:58:58ruedbussink: We have a ByteArray.. it is not namespaced for you?
20:59:02brixendbussink: who named that class :P
20:59:16dbussinkah, someone who wrote a patch for it
20:59:19libcevan, http://pastie.org/430710 should I move coerce_into_array to Array, or Rubinius module is ok? (actual implementation line 95-100)
20:59:21dbussinki didn't really consider it a lot
20:59:24stepheneb enters the room.
20:59:33dbussinkbrixen: but ByteArray isn't in the Rubinius namespace?
20:59:40brixennot atm
21:00:21dbussinkah ok, well, this one exists to be able to tell the difference between binary data and a string for rdbms backends
21:00:30dbussinkbecause it needs to be quoted differently etc.
21:00:33ruelibc_: Hm, you are working around something where Tuples and Arrays are used interspersed?
21:01:07libcrue, I pass Tuples down to cast_array operation
21:01:28rueWould it not be better to make everything use either-or?
21:02:04brixendbussink: we should probably namespace all our non-MRI classes in core
21:02:12brixendbussink: we've done some of them
21:02:20tarcierihey brixen
21:02:26brixenhey tarcieri
21:02:28tarcieridoes mspec need instance_eval?
21:02:34brixenyes
21:02:38tarcieriyeah thought so
21:02:39tarcieriheh
21:02:39brixenit uses it rather
21:02:55brixenyou can get 99% of the way there with block.call
21:02:59libcrue, There're some places with cast_array left
21:03:08tarcieridoesn't have that either :/
21:03:13explody leaves the room.
21:03:13ko1_away leaves the room.
21:03:13brixenheh
21:03:15tarcierierr
21:03:17tarcieriwell I do
21:03:20dbussinkbrixen: seems like a good idea yeah to prevent more clashes
21:03:22tarcieriwith the Python-style syntax
21:03:27brixendbussink: agreed
21:03:45libcrue, ok, I'll try to remove it entirely
21:03:46explody enters the room.
21:05:31rueHm, well, Rack + Mongrel is considerably faster than the CGI route :P
21:06:00ko1_away enters the room.
21:12:59rueServing the env output is ~172ms/request for rbx, ~162ms/request for MRI
21:14:16yipstar leaves the room.
21:20:08evanlibc_: no!
21:20:10evandon't do that
21:20:11evanplease
21:20:47evanthat will impact performance a lot
21:21:32headiusdo it!!
21:21:44evanlibc_: you should just have the cast_array instruction call out to a method if it has to
21:22:19evanlibc_: i'm headed out for a while, but please do not commit this
21:22:32evanuntil we've talked about it
21:32:45tilmanbrixen: hum. i cannot run capi/array_spec anymore. my two last array fixes don't seem to be responsible though
21:37:20brixentilman: well, why don't you wait till I fix this
21:37:32brixendunno why we're clustering in capi
21:37:34macournoyer enters the room.
21:37:40brixenthere's a ton of other failing specs
21:38:16tilmani just noticed two obvious and easy bugs
21:38:25tilmanwhich i tested in isolation and with the specs
21:38:26brixenthat's cool
21:39:26brixentilman: you could try going back a few commits and seeing if that helps
21:39:52brixenI don't yet have a grasp of why my handle-to-tags is failing either
21:39:53tilmani did that with the few commits of today
21:40:05tilmani'll go to bed soonish and i don't have time for a longer bisect run :P
21:40:11brixenk
21:40:20tilmanbrixen: i just wanted to give you a heads up. if you see anything new and weird, it's probably my fault
21:40:27joearnold enters the room.
21:40:35brixenwell, I doubt it's your fault
21:41:19brixenI'll do a quick check
21:42:01febeling enters the room.
21:48:40macournoyer leaves the room.
21:49:44brixentilman: I just pulled, they seem to run the same for me
21:49:52brixentilman: what platform or you on?
21:51:08brixens/or/are/
21:52:02tilmanlinux, x86
21:52:16tilmanmaybe my build is just messed up
21:53:11brixenchecking on ubuntu 32bit now
21:56:22brixenseems ok to me
21:57:40tilmanit's the DLEXT confusion again
21:58:24tilmanbrixen: see line 26 of rakelib/configure.rake
21:58:45tilmanasdf
21:58:47tilmanhang on
21:59:45tilmanline 27 on the tip of master
22:00:03tilmanare lines 171..175 really correct? :p
22:00:28tilmanin any case there should be only one assignment to DLEXT there
22:05:21libc_ leaves the room.
22:05:21ice799 leaves the room.
22:05:21naeu leaves the room.
22:05:21joachimm leaves the room.
22:05:21benny leaves the room.
22:05:21tarcieri leaves the room.
22:05:21jammi leaves the room.
22:05:21adelcambre leaves the room.
22:05:21corundum leaves the room.
22:05:21octopod leaves the room.
22:05:21jp_tix leaves the room.
22:05:21pastie leaves the room.
22:05:21matthewd leaves the room.
22:05:21wycats_afk leaves the room.
22:05:21danlucraft leaves the room.
22:05:21brixen leaves the room.
22:05:21gnufied leaves the room.
22:05:21dgtized leaves the room.
22:05:21Defiler leaves the room.
22:05:21dbussink leaves the room.
22:05:21flori_ leaves the room.
22:05:21skaar leaves the room.
22:05:21Ingmar leaves the room.
22:05:21ko1_away leaves the room.
22:05:21chris2 leaves the room.
22:05:21SoreGums leaves the room.
22:05:21rue leaves the room.
22:05:21kronos_vano leaves the room.
22:05:21qbproger leaves the room.
22:05:21rudebwoy leaves the room.
22:05:21jero5 leaves the room.
22:05:21tilman leaves the room.
22:05:21joearnold leaves the room.
22:05:21febeling leaves the room.
22:05:21stepheneb leaves the room.
22:05:21brynary leaves the room.
22:05:21Maledictus leaves the room.
22:05:21mutle_ leaves the room.
22:05:21manveru leaves the room.
22:05:21asap18 leaves the room.
22:05:21lopex leaves the room.
22:05:21djwhitt leaves the room.
22:05:21dgfitch leaves the room.
22:05:21nemerle leaves the room.
22:05:21rue_XIV leaves the room.
22:05:21yuguiaway leaves the room.
22:05:21cored leaves the room.
22:05:21ddub leaves the room.
22:05:21cout leaves the room.
22:05:21cyndis leaves the room.
22:05:21stormbrew leaves the room.
22:05:21evan leaves the room.
22:05:21explody leaves the room.
22:05:21shoe leaves the room.
22:05:21binary42 leaves the room.
22:05:21loop leaves the room.
22:05:21boyscout leaves the room.
22:05:21hoopy leaves the room.
22:05:21drbrain leaves the room.
22:07:42febeling enters the room.
22:07:42joearnold enters the room.
22:07:42ko1_away enters the room.
22:07:42explody enters the room.
22:07:42stepheneb enters the room.
22:07:42brynary enters the room.
22:07:42chris2 enters the room.
22:07:42kronos_vano enters the room.
22:07:42libc_ enters the room.
22:07:42naeu enters the room.
22:07:42shoe enters the room.
22:07:42binary42 enters the room.
22:07:42danlucraft enters the room.
22:07:42qbproger enters the room.
22:07:42asap18 enters the room.
22:07:42joachimm enters the room.
22:07:42lopex enters the room.
22:07:42Maledictus enters the room.
22:07:42benny enters the room.
22:07:42mutle_ enters the room.
22:07:42nemerle enters the room.
22:07:42cored enters the room.
22:07:42rudebwoy enters the room.
22:07:42gnufied enters the room.
22:07:42ice799 enters the room.
22:07:42djwhitt enters the room.
22:07:42jero5 enters the room.
22:07:42dgfitch enters the room.
22:07:42skaar enters the room.
22:07:42ddub enters the room.
22:07:42brixen enters the room.
22:07:42rue enters the room.
22:07:42loop enters the room.
22:07:42evan enters the room.
22:07:42yuguiaway enters the room.
22:07:42stormbrew enters the room.
22:07:42cyndis enters the room.
22:07:42Ingmar enters the room.
22:07:42tilman enters the room.
22:07:42rue_XIV enters the room.
22:07:42dbussink enters the room.
22:07:42flori_ enters the room.
22:07:42SoreGums enters the room.
22:07:42hoopy enters the room.
22:07:42drbrain enters the room.
22:07:42boyscout enters the room.
22:07:42adelcambre enters the room.
22:07:42octopod enters the room.
22:07:42matthewd enters the room.
22:07:42jp_tix enters the room.
22:07:42pastie enters the room.
22:07:42wycats_afk enters the room.
22:07:42corundum enters the room.
22:07:42jammi enters the room.
22:07:42tarcieri enters the room.
22:07:42cout enters the room.
22:07:42manveru enters the room.
22:07:42Defiler enters the room.
22:07:42dgtized enters the room.
22:08:36hoopy leaves the room.
22:09:52hoopy enters the room.
22:18:00Keltia leaves the room.
22:18:00Keltia__ enters the room.
22:18:00brixentilman: but make sure the '.' doesn't mess up mkmf
22:18:00brixenactually, should remove the '.' to be consistent with mri rbconfig
22:18:00tilmanyes, i noticed that, too
22:18:00tilmani don't want to push more stuff until i get this working again though
22:18:00brixenok
22:18:00brixenI'm in the same boat :)
22:18:18jicksta leaves the room.
22:23:55imajes leaves the room.
22:44:20jicksta enters the room.
22:53:15naeu leaves the room.
23:00:03imajes enters the room.
23:13:56Maledictus leaves the room.
23:14:29febeling leaves the room.
23:25:15brynary leaves the room.
23:38:55joearnold leaves the room.
23:51:26brynary enters the room.
23:51:32brynary leaves the room.
23:51:32brynary enters the room.
23:51:32stepheneb leaves the room.
23:51:32brynary leaves the room.
23:55:24jicksta leaves the room.
23:55:48yipstar enters the room.
23:58:26asap18 leaves the room.