Index

Show enters and exits. Hide enters and exits.

<
00:00:09rubuildius_amd64Eric Hodel: 92cf26374; 1840 files, 6238 examples, 22073 expectations, 0 failures, 0 errors; http://rafb.net/p/KQPMjR57.html
00:03:43hoopy enters the room.
00:04:11sofal enters the room.
00:06:27rubuildius_ppcEric Hodel: 92cf26374; 1840 files, 6241 examples, 22102 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/172279
00:20:22rueNice slides for both
00:23:25bitbang enters the room.
00:25:13boyscout1 commit by Michael S. Klishin
00:25:14boyscout * Tag new spec for ensure as failing; f6e698f
00:25:29antaresoops
00:25:41antaresa missing commit applied with git am -s, hm
00:26:35antaresah no it's in
00:29:27NoKarma leaves the room.
00:33:26antaresdjwhitt: how often does rubildius check for new commits in master?
00:33:33djwhittevery 5 minutes
00:34:14djwhittit's running the specs right now
00:34:18antaresdjwhitt: ok I am waiting for CI run results :)
00:34:20antaresthanks
00:34:23djwhittshould be done in about a minute
00:34:26antaresI am about to do another push
00:34:41djwhittyeah, don't break anything now, you'll be shamed on the mailing list ;)
00:34:43boyscout2 commits by Hongli Lai
00:34:43boyscout * Spec: Marshal raises EOFError on loading an empty file; 204d8ce
00:34:45boyscout * Fix for spec: Marshal.load raises EOFError on loading an empty file; f673321
00:35:07rubuildius_amd64Michael S. Klishin: f6e698f96; 1840 files, 6238 examples, 22073 expectations, 0 failures, 0 errors; http://rafb.net/p/R5nMGk18.html
00:35:45rueHrm, has anyone noticed issues with mspec not recompiling?
00:35:59antaresrue: I did not
00:40:25antaresrue: what's the bonus field of CompiledMethod?
00:42:16rueApart from the most obtuse field name in the history?
00:42:33twbray leaves the room.
00:42:36rueIt contains the metadata, mainly
00:45:07rubuildius_amd64Hongli Lai: 204d8ce1a; 1840 files, 6239 examples, 22074 expectations, 0 failures, 0 errors; http://rafb.net/p/63vM3s67.html
00:47:22rubuildius_ppcHongli Lai: 204d8ce1a; 1840 files, 6242 examples, 22103 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/172297
00:47:23rubuildius_ppcMichael S. Klishin: f6e698f96; 1840 files, 6241 examples, 22102 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/172296
00:50:52antaresrue: I don't quite get what you're saying :)
00:51:06antaresrue: you mean you have no clue I guess?
00:52:20dkubb leaves the room.
00:52:48wayneeseguin enters the room.
00:53:43wayneeseguin_ enters the room.
00:57:32rueantares: Metadata, argument names at least
00:57:51rueI dunno if agardiner has added anything new
00:57:56antaresrue: ok thanks
00:58:06antaresrue: I am documenting stuff in compiled_method.rb
00:59:55rueMy understanding is that the idea is to just have that field kind of like a pointer so metadata can be added without having to modify CM itself
01:05:03cored enters the room.
01:05:57jartz leaves the room.
01:07:08antaresrue: rbx running as irb helps a lot ;)
01:07:08GMFlash leaves the room.
01:08:41rueI dun trust irb--but there is a bunch of reflection you can do definitely
01:09:43wayneeseguin leaves the room.
01:14:34AndrewO leaves the room.
01:17:40GMFlash enters the room.
01:21:39sofal leaves the room.
01:25:57lopex enters the room.
01:26:50tmornini enters the room.
01:28:04Defiler'bonus' is meant to hold a tuple of local variable names, and was added to support eval
01:28:25antaresDefiler: thanks
01:28:26Defilereval has changed a lot since then, though, so I would need to check the code to see if it is really used
01:28:46Defilernobody could think of a name for it, because it was meant to hold other kinds of metadata as needed
01:28:53DefilerSo it got called 'bonus'
01:29:17rueWhat the f.. this fastri backtrace comes from a file that does not exist
01:29:38rueI am not sure why "metadata" was rejected :D
01:30:13tmorniniHey all.
01:30:22d2dchat leaves the room.
01:32:02Defilerrue: Nobody suggested it
01:32:31DefilerKids these days.. always second-guessing our decisions :)
01:34:50antarestmornini: hi there
01:35:19antaresDefiler: ho-ho :)
01:35:37rueHalo, tmornini
01:35:54tmorniniHey.
01:36:23tmorniniWho knows how method dispatch caching works?
01:37:15rueHow much detail do you need? I have not looked at the SendSite stuff (which replaced the original)
01:38:09Defilertmornini: Every 'send' gets a SendSite instance, which by default has a NULL in the 'real compiled method object to invoke' field
01:38:44Defilertmornini: When the VM runs into a sendsite that looks like that, it does the method lookup junk, and shoves it into the sendsite
01:39:07kw leaves the room.
01:39:13tarcieri/cl
01:39:19tarcierigeh :(
01:39:33mark___ enters the room.
01:39:44DefilerWhen a method is replaced/redefined/etc, it clears out the field from all the sendsites that need to be updated
01:43:09Defilerevan likes rewriting huge chunks of the code all the time, so some of that might be outdated.. but I believe it was correct as of a couple weeks ago
01:43:41DefilerThe previous way did it in 'reverse'.. as in, there was a big method cache table that got cleared when things were redefined
01:44:04DefilerThis way is a lot simpler, as far as I can tell.. though I can't say the sendsite 'specialization' methods are the most readable in the whole project
01:45:02tmorniniDefiler: thanks!
01:45:11Defilerde nada
01:45:47tmorniniDo you know where this code actually lives?
01:46:02DefilerYeah
01:46:04tmorniniI would appear to be in selector.c
01:46:14tmorniniLine 26
01:46:16Defilercpu_instructions.c contains most of it
01:46:23tmornini sel = lookuptable_fetch(state, state->global->selectors, name);
01:46:53antarestmorini: basics are at http://betterruby.wordpress.com/2008/03/19/how-rubinius-sendsites-work-part-1/
01:47:07tmorniniantares: Read that last night.
01:47:15tmornini:-)
01:47:24Defiler..but yeah, selector.c is the code that connects send sites and the results of lookups
01:47:39antarestmorini: write part 2 when you are familiar with it from the inside ;)
01:48:21Defilerselector_lookup is the function that is generally shoved into the lookup field of the sendsite
01:48:24DefilerAs I recall
01:48:47mark___ leaves the room.
01:49:20tmorninicool.
01:49:56antaresDefiler: is opcode of Instruction the actual integer?
01:50:13antaresI can't dig to it from the iseq in irb (rbx)
01:50:48DefilerNo, it's this crazy OpCode instnace
01:51:00antaresDefiler, let me find it
01:51:06DefilerI don't know why it was added, but I can't say I'm much of a fan
01:51:49antaresDefiler: where does it live? rak can't find OptCode in kernel/
01:53:14Defilerkernel/core/iseq.rb
01:53:19binary42 enters the room.
01:53:21Defilerclass OpCode etc etc
01:53:33rueThe actual code is a big-endian 4-byte integer
01:55:06rueBut the number it represents is just the index in the OpCodes array
01:55:31mark__ leaves the room.
01:55:37rueOr vice versa
01:55:40mark__ enters the room.
01:55:56wycats enters the room.
01:57:35crafterm leaves the room.
01:59:30antaresDefiler, thanks
02:00:17Defilerno problem
02:01:07binary42 leaves the room.
02:01:26binary42 enters the room.
02:01:37tmorniniHow about lookuptable? Is there one giant lookup table per VM?
02:01:46rueHum, I suppose segfaulting specs should be tagged
02:01:54rueLookupTable is a simplified Hash
02:02:10tmorniniI see references to lookuptable_(fetch|store)
02:02:13binary42 leaves the room.
02:02:29binary42 enters the room.
02:02:38tmorniniall over the place. How is the key space separated?
02:04:32rueThey are handled as objects, second argument should be 'self'
02:08:30Defilertmornini: LookupTable is basically just Hash, but without all the support for fancy arguments
02:08:36Defilertmornini: ..and I believe the keys have to be symbols
02:08:40nemerle enters the room.
02:08:44rueDunno if/how that is being used in the cache though
02:08:53tmorniniDefiler: thanks!
02:08:56DefilerIt is, yeah
02:09:18Defilerthe selector_* functions fetch and store from the 'selectors' lookup table
02:09:41Defilerwhich is a: state->global->selectors = lookuptable_new(state);
02:09:44srbaker leaves the room.
02:11:38cored leaves the room.
02:12:04tmorniniDefiler: Thanks!
02:12:23tmorniniDo you know immediately what a "state" is?
02:12:25tarcieri*boggle*
02:12:37antaresDefiler: we need you blogging about Rubinius internals :)
02:12:44tarcieriI thought Rubinius's Object.const_get allowed you to do like...
02:12:46antaresDefiler: I mean *world* needs you :)
02:12:49tarcieriObject.const_get "::MyConstant"
02:13:00tarcierino?
02:13:15Defilertmornini: It is an object that is passed around on a per-VM basis
02:13:30Defilertmornini: it's the first argument to every function that needs to 'look into' the VM state
02:13:34drbraintarcieri: try const_lookup
02:13:41drbraintarcieri: we made const_get match MRI
02:13:49tmorniniOk, that's what I was beginning to think.
02:13:51rueInteresting behaviour in FFI
02:14:02tarcieridrbrain: aah, ok
02:14:16tarcieridrbrain: so const_lookup will check the root namespace?
02:14:17antarestarcieri: MRI does not allow usage of ::Object instead of Object for const_get
02:14:32tarcieriantares: yeah
02:14:43drbraintarcieri: I don't remember
02:14:46Defilertmornini: see struct rubinius_state in shotgun/lib/state.h
02:15:11Defilertmornini: Doesn't hold much, but a pointer to the current stack is one of those things
02:16:37ruetarcieri: const_lookup should allow all types of "Class::Blah" and so on
02:16:46tarcieriok, awesome
02:16:54tarcieriis effectively trying to implement apply() :/
02:17:26tarcieriall right, I made my spec fail instead of hang again
02:17:27tarcieriheh
02:17:56antarestarcieri: now the hardest part:)
02:19:14tarcieriheh
02:20:02tmorniniDefiler: Does the code selector.c:26 i.e. selector_lookup look like a monomorphic cache to you? :-)
02:20:54DefilerIt is, but it is called per-SendSite, so that is worth keeping in mind
02:22:10tmorniniOK, so I'm not far off. Weird thing is that removing the cache doesn't slow things down much. :-)
02:22:11Defilerbut I agree that the current implementation is a simple one
02:22:14pate enters the room.
02:22:26paterue, you about?
02:22:49Defilertmornini: check out cpu_instructions.c and search for the word 'specialization'
02:22:59Defilertmornini: To see where the rubber meets the road
02:23:02tmorniniWill do
02:23:47jtoy enters the room.
02:24:44VVSiz_ enters the room.
02:25:05mark__ leaves the room.
02:25:09ruepate: In and out, what is up?
02:25:17rueConf going smoothly?
02:25:32patevery, thanks
02:25:35tarcieriurgh, I need Rubinius::VM.fork
02:25:44pateso, we've got a mod_rubinius proposal for GSoC
02:26:02pateI don't really feel like I can evaluate it though
02:26:04nemerle_afk leaves the room.
02:26:46tarcieriw00t!
02:26:49tarcierispec passes!
02:26:50paterue, have you talked w/ Chiyuan Zhang at all?
02:27:06ruepate: Yeah, he sent me a copy of his proposal
02:27:14pateok.
02:27:16tarcierimay have found an MRI incompatibility too
02:27:55pateif you're interested in mentoring it/him, you'll need to sign up. If you're not, I'd still like to hear your feedback
02:28:15tarcierinope
02:28:17tarciericrazy
02:28:19patefeel free to email me about it if that's better
02:28:32pate(probably better than reviewing the proposal in public)
02:29:15ruepate: Yep, I will send a mail
02:29:22patethanks
02:30:28obvio171_ enters the room.
02:31:12srbaker enters the room.
02:31:16tmorniniDefiler: were you pointing out the SS_DISABLE stuff?
02:31:26tmorniniOr just dispatch in general?
02:31:41DefilerNot exactly, just the way the dispatch code manipulates the sendsite
02:31:45wmoxam enters the room.
02:32:03brixentmornini: hey, did you get my email re justin?
02:32:44boyscout3 commits by Brian Ford
02:32:45boyscout * Added CType#isctrl, #toprint. Rework String#inspect, #dump.; 6774123
02:32:46boyscout * Reworked String#each and #sum. Added String#modified? and specs.; 87ba991
02:32:47boyscout * Replace bm_string and scale all benches to approx same magnitude.; 8a8c7ab
02:33:44tmorninibrixen: Hello. No, I'm assiduously avoiding email this weekend.
02:33:46tmornini:-)
02:33:51tarcieriwow, I think I actually have a patch to submit now :)
02:33:56brixentmornini: heh ok
02:34:01tmorninitarcieri: Congrats!
02:34:46ruebrixen: Eew, #ctrl? ;)
02:34:58tarcieriI need to uhh, write comments and stuff
02:35:05wayneeseguin leaves the room.
02:35:22DefilerWhat, you don't write your comments first and then look surprised when the code doesn't do anything?
02:35:30DefilerYou are not practicing CDD
02:35:30tarcieriheh
02:35:41wycatsConference-Driven-Development?
02:35:48tarcieriHahahaha
02:35:49DefilerThat too
02:35:52wycatslol
02:35:56tarcieriIt most certainly is CDD in that regard :)
02:36:11antaresDefiler: Instruction#agrs returns arguments or local variables? Specs of #decode methods name it "local variable names" :\
02:36:47Defilerantares: There are a lot of things called 'args' these days, sadly
02:37:14DefilerOne of which might refer to the arguments to an instruction
02:37:21Defilere.g. send :foo, 1
02:37:41DefilerIn the compiler, args returns something relevant for the node type
02:38:31DefilerIn the OpCodes thing, args contains the types (to be guarded for) for the various opcodes
02:38:46fbuilesv enters the room.
02:38:47Defilere.g. push_int says it needs an int as a single argument
02:38:53obiejuan leaves the room.
02:39:52DefilerI assume you are talking about the Instruction class in kernel/core/compiled_method.rb, though?
02:40:15rubuildius_amd64Brian Ford: 677412353; 1843 files, 6251 examples, 22308 expectations, 0 failures, 0 errors; http://rafb.net/p/4V1S6p55.html
02:40:15antaresDefiler: right
02:40:33antaresfbuilesv: hey ;)
02:41:23DefilerIn that case, it is the argument list for that instruction
02:41:32Defiler(I believe.. I don't know who wrote this code or when)
02:42:10DefilerI don't think 'Instruction' is an implementation class
02:42:40DefilerI think it's just a helper for decode
02:42:47VVSiz leaves the room.
02:43:12DefilerThe fact that this was necessary/wise shows me that our compiler isn't factored correctly, though
02:43:53twbray enters the room.
02:45:44rubuildius_ppcBrian Ford: 677412353; 1843 files, 6254 examples, 22337 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/172323
02:47:33obvio171 leaves the room.
02:47:41antaresDefiler: thanks for the help
02:48:23antaresok, gotta have some sleep now:)
02:48:31antares leaves the room.
02:49:43sudoer enters the room.
02:49:50sudoer leaves the room.
02:52:13aotearoa enters the room.
02:54:44sofal enters the room.
02:56:15twbray leaves the room.
02:58:23obvio171 enters the room.
02:59:42obvio171_ leaves the room.
03:02:30fbuilesv leaves the room.
03:07:09sudoer enters the room.
03:08:53webmat leaves the room.
03:13:51rueDefiler: Should probably come up with more distinctive names to simplify
03:14:25rueDefiler: Although I think the rationale for the current layout is the 'self-documenting' idea
03:15:13binary42 leaves the room.
03:17:24pate leaves the room.
03:17:30wycatsevan: there's no way in MRI to hook into modification of an ivar, right?
03:17:55obiejuan enters the room.
03:18:11rueDamn, VMWare /really/ wants to keep me out
03:18:31ruewycats: Apart from set_trace no
03:18:58wycatsset_trace from ruby-prof?
03:19:38jtoy leaves the room.
03:20:38rueset_trace_func
03:21:14fbuilesv enters the room.
03:21:56rueArgh
03:22:11rueKernel.set_trace_func ,geez
03:22:26rueMy typinator is being funky
03:22:27wycatstoo bad you can't do @obj.set_trace_fun
03:22:29wycatsfunc(*
03:23:15hassox leaves the room.
03:23:48hassox enters the room.
03:24:00twbray enters the room.
03:26:05wycatstoo bad you can't do something like a taint bit that would turn off if the thing was mutated
03:26:08wycatslike a soft freeze
03:28:50rueSomething to check if it is mutated?
03:33:21ruewycats: You might as well just write an interface for it. Thing is that with Ruby, you just have to trust the user to do the right thing
03:34:10rueEven if there was such a method, a user could go around it (probably)
03:37:41srbaker leaves the room.
03:43:18binary42 enters the room.
03:43:55binary42 leaves the room.
03:44:26binary42 enters the room.
03:46:22ezmobius enters the room.
03:50:49binary42 leaves the room.
03:51:15binary42 enters the room.
03:52:31obiejuan leaves the room.
03:54:36rueHey--did anyone talk to Kevin Tew at MWRC?
03:59:07agile enters the room.
04:00:03binary42 leaves the room.
04:00:30binary42 enters the room.
04:01:48drbrainhrm, I hit some magical button that threw my chat windows to the left
04:01:54wmoxam_ enters the room.
04:03:24wmoxam leaves the room.
04:03:35wmoxam_ enters the room.
04:04:31binary42_ enters the room.
04:04:32rueI make a point of purchasing 102-key typinators only
04:04:33binary42 leaves the room.
04:05:10drbrainI think I only have 80-something keys
04:05:46binary42 enters the room.
04:06:06binary42_ leaves the room.
04:06:39binary42 leaves the room.
04:07:04binary42 enters the room.
04:09:14ezmobius leaves the room.
04:11:05binary42 leaves the room.
04:11:14binary42 enters the room.
04:13:04headius enters the room.
04:13:17binary42 leaves the room.
04:13:56binary42 enters the room.
04:15:18binary42 leaves the room.
04:15:47binary42 enters the room.
04:17:34dewd enters the room.
04:19:30wycatsis there a way to get the current method name from inside a method in rbx?
04:20:48drbraincaller(0).first
04:24:41binary42 leaves the room.
04:24:54binary42 enters the room.
04:26:14ruewycats: MethodContext.current # => :WIN
04:27:41kw enters the room.
04:30:42agile leaves the room.
04:38:34tarcieriyay
04:38:38tarcierisubmits patch!
04:38:44tarcierisee, I'm not all talk and no code! :)
04:41:44twbray leaves the room.
04:46:04rueYay patches!
04:47:29obiejuan enters the room.
04:48:30srbaker enters the room.
04:55:28binary42 leaves the room.
04:56:12binary42 enters the room.
05:00:49twbray enters the room.
05:01:57lopex leaves the room.
05:07:52ezmobius enters the room.
05:08:23wmoxam_ leaves the room.
05:20:50binary42 leaves the room.
05:21:00wycats leaves the room.
05:22:10obiejuan leaves the room.
05:22:40binary42 enters the room.
05:23:21rue leaves the room.
05:25:52ezmobius leaves the room.
05:31:21headius_ enters the room.
05:31:21headius leaves the room.
05:32:38context leaves the room.
05:32:41context enters the room.
05:39:45binary42 leaves the room.
05:40:50binary42 enters the room.
05:44:17dkubb enters the room.
05:46:00bitbang enters the room.
05:46:18TheVoice leaves the room.
05:54:14binary42 leaves the room.
05:54:26binary42 enters the room.
06:02:27bitbang leaves the room.
06:02:46binary42 leaves the room.
06:03:15binary42 enters the room.
06:06:20fbuilesvany idea of what's Arthur Schreiber's nick in here?
06:11:16GMFlash leaves the room.
06:11:59rue enters the room.
06:14:52headius_ enters the room.
06:14:52headius leaves the room.
06:22:29headius_ leaves the room.
06:22:35headius enters the room.
06:23:35headius leaves the room.
06:24:06headius enters the room.
06:28:13yipstar leaves the room.
06:30:32headius leaves the room.
06:31:00headius enters the room.
06:31:06headius leaves the room.
06:31:24pluskid enters the room.
06:33:12GMFlash enters the room.
06:35:45pluskid leaves the room.
06:36:33pmcgee enters the room.
06:39:14pmcgeei just tried running rubygem's 1.0.1 setup.rb file and rubinius threw an error:
06:39:17pmcgeehttp://pastie.caboo.se/172379
06:40:01pmcgeethe file itself is available here:
06:40:03pmcgeehttp://pastie.caboo.se/172380
06:41:02pmcgeejust figured i would let you guys know
06:41:39drbrainpmcgee: that doesn't have anything to do with setup.rb
06:41:46drbrainit's loading fileutils at that point
06:41:53drbrainand, RubyGems 1.0.1 is already in rubininus
06:41:56drbrain-n
06:42:12pmcgeeright, but i just figured i would let people know that something went awry
06:42:27pmcgeei don't know enough about the project to know if this is a known bug or anything
06:42:38drbraincan you run that mkdir command?
06:42:48drbrainI bet you forgot to sudo
06:43:54pmcgeewell, sudo shouldn't be required, should it?
06:44:11pmcgeeim installing it to path local to my account
06:44:20drbrainto create a directory in /usr/local/lib?
06:44:25drbrainno you're not
06:44:48drbrainyou need --prefix for that
06:45:05drbrainby default, rubygems installs system-wide
06:47:39pmcgeeohh
06:47:44pmcgeei didn't realize that
06:47:59pmcgeei thought it installed to whatever the ruby "lib" directory was
06:48:04context leaves the room.
06:48:18context enters the room.
06:48:24drbrainby default, that's in /usr/local/lib
06:48:33pmcgeeoh
07:07:05ezmobius enters the room.
07:07:37jartz enters the room.
07:09:01binary42 leaves the room.
07:15:55jartz leaves the room.
07:26:39rueHrm, this might be bad
07:27:17ezmobiuswhats that?
07:30:12twbray leaves the room.
07:30:30jartz enters the room.
07:31:10rueContents of a string are accessed through byte_address which ends up being BYTES_OF
07:31:19rueBut it does not check size
07:31:34ezmobiusahh
07:33:07dkubb leaves the room.
07:34:46contextrue. direct access? being \0 terminated im guessing
07:34:57contextbut doesnt check writes? :x
07:35:01contexttalks randomly
07:38:58rueMy problem seems to be that the actual ByteArray's \0 may be in the wrong place
07:39:42rueString only relies on the @length, I think
07:39:58ezmobiusbuffer overflow potential?
07:41:48DefilerWe use bstring, which has length tags, I thought
07:42:59Defilerhttp://bstring.sourceforge.net/
07:43:11DefilerYeah. it has conversions for things that expect \0, but doesn't use it itself
07:43:35Defilerhttp://bstring.cvs.sourceforge.net/*checkout*/bstring/tree/security.txt?pathrev=HEAD
07:43:35brixenrue: for the bytearray backing string, we do some C string functions, notably strncmp in the symbol tables
07:44:15brixenrue: it was doing strcmp only, but I changed it to strcmp since any ByteArray can be modified from Ruby code and then passed to that function via #to_sym
07:44:18brixenbad news
07:44:54DefilerIt should be fine to use strcmp on a bstring
07:44:55brixenanywhere we use C string functions on ByteArray contents, we must use the 'n' versions
07:45:06brixenbstring is not used by String
07:45:10brixena bytearray is
07:46:12rueYa, the @data in a String is just a ByteArray which in turn is just a sequence of bytes `fields * field_length` long
07:46:53DefilerAah. strcmp bad, then
07:47:06brixenyeah, I realized the potential when working on #strip and friends
07:47:16brixenit's pointless to rely on the \0 to be there
07:47:19DefilerWhy don't we back String with a bstring?
07:47:22DefilerThat seems like a mistake
07:47:22brixenall Strings have an explicit length
07:47:41Defilerbstring has a superset of ByteArray's functionality
07:48:18brixena ByteArray is an OBJECT. a bstring isn't
07:48:20rueMore baggage I suppose
07:48:44ruePlus the boxing/unboxing any time it is accessed, no?
07:49:01DefilerWe have to do that either way
07:49:17Defilerbut having a 'real' string behind the scenes would make implementing RSTRING a lot easier, right?
07:49:24brixenno
07:49:35DefilerWhy not?
07:49:36rueI will just write a string_to_bstring() or so and make sure string_byte_address() is not being used generally
07:49:38brixenthe issue with RSTRING is that C cannot have access to the pointer
07:49:49DefilerWhy not?
07:49:56brixenbecause it's a moving GC
07:50:04brixens/it's/we have/
07:50:21brixenthat's the whole point of the ID's in subtend
07:50:26DefilerWe could add a space that things that get accessed from C extensions go into
07:50:28brixenor handles rather
07:50:38brixenyep, that's the plan
07:50:51DefilerI guess I'm behind the times. Heh
07:50:58DefilerWait now..
07:50:58brixenbut when you transition back from C-land in subtend, you have to update the real objects
07:51:11Defilerthe GC wouldn't move the bstring, since it isn't an object, right?
07:51:16DefilerIt would just move the String that wrapped it
07:51:40brixenare you talking in general for String, or for subtend C ext?
07:51:49Defilersubtend
07:52:02DefilerIt's a non-issue from the ruby level, right?
07:52:07DefilerWe can back it up with anything we want
07:52:24brixenafaik, we don't have finalizers, so how would you GC strings then?
07:52:36brixenhow would you know the C ext was done with them?
07:53:25brixena ByteArray is a real object. I cannot see how to back String with anything but a real object
07:53:31DefilerWell, we are writing all these macros
07:53:35DefilerSo we can notify ourselves
07:54:03brixenas I understand it, there will be a table between subtend C ext and the VM
07:54:31brixenwhen you call RSTRING macro, it copies @data and @bytes into a C struct that C functions can manipulate
07:54:53brixenwhen you switch back to the VM, that table will need to be processed to update the Ruby objects
07:55:02brixenotherwise you are out of sync
07:55:06DefilerI don't see why it needs to copy it
07:55:23DefilerAs long as the back-end (length and data) is something that C is OK with
07:55:25brixenbecause the GC can move it while you are in Ruby land
07:55:39DefilerWell we have to make it not do that. :)
07:55:52brixenok, well you'll have to ask evan how to do that ;)
07:56:07brixendoing that would require *all* Strings to be that way
07:56:11brixenhow would GC work then?
07:57:09brixenthe GC does not look at the C stack for pointers
07:57:39DefilerWhat's stopping us from doing that?
07:57:52brixenthe GC moves
07:58:07brixenheh, I'm probably not explaining it well. you should ask evan to explain it :)
07:58:15DefilerI understand how the GC works
07:58:24DefilerI'm just saying that we control what it does.
07:58:51DefilerWe could move things accessed by C exts to their own section of memory, and then scan the C stack for just those pointers to determine when they could go back in the 'mortal' pile
07:59:37brixenI don't understand how that is any easier
07:59:47brixenthe whole "move things to their own memory"
07:59:53brixenthat's what I'm describing
08:00:00brixenexcept that it doesn't implicate the GC
08:00:11brixenjust the transition back to the VM context from the subtend context
08:00:25DefilerThe other way just seems to be a lot of copying
08:00:39DefilerThey don't really have to 'move', they just need to get tagged as 'unmovable'
08:00:47brixensounds like the same amount of copying either way
08:00:55brixenthat sounds like a read barrier
08:01:01DefilerZero copying in what I am describing
08:01:19brixenyou have to know that you cannot move this pointer
08:01:30brixenor you have to insulate stuff from that pointer moving
08:01:36brixenthat's the only two ways I know of
08:01:51DefilerWe already walk a tree to find objects to move, right?
08:01:58DefilerOr am I out of date
08:02:01rueTee hee, Google went dark again
08:02:16brixenonly the GC knows about those
08:02:26DefilerRight
08:02:42brixennot C code in extensions
08:02:42DefilerThe GC just needs to know to skip anything that it has been asked to freeze for C
08:02:49brixensure
08:02:55jacenmaybe totally old news to you or not necessary - but do you know: http://talloc.samba.org/ ?
08:02:58brixenwhere do you put that info?
08:03:02DefilerWhich is what RSTRING (say) would do before returning a pointer
08:03:07jacena hierarchical pool based memory allocator
08:03:19jacenrelease the root ptr to free everything
08:03:40brixenDefiler: the GC has to know that. what does RSTRING do before returning a pointer the C ext can use?
08:04:46DefilerGC.magic_thingy_activate!(some_object)
08:06:03brixenand then a GC cycle comes, what does it do?
08:06:36DefilerIt keeps walking, looking for objects, but just retains an unmodified pointer to the original location of any marked 'freeze'
08:07:14thehcdreamer enters the room.
08:07:34brixenthat's a read barrier, as I understand it, because object X will move from A spece to B space, but when you access object X, you have to look in the "other" space
08:07:45brixenthe GC needs to be written to handle that uniformly
08:08:39brixenand you need that info on any object that may be so handled
08:09:16brixenhow is that simpler than a table of only those objects explicitly access via RSTRING from subtend?
08:10:10DefilerI don't see how it needs a read barrier or a copy/move, but I'll leave it for another time
08:10:23DefilerLuckily I'm not working on RSTRING :)
08:10:56DefilerTime for some sleep, though.. I will work on that
08:11:05brixenheh, ok
08:12:15w1rele55 leaves the room.
08:14:42w1rele55 enters the room.
08:19:02dewd leaves the room.
08:22:33jartz leaves the room.
08:28:56NoKarma enters the room.
08:29:20NoKarmaGood Morning
08:35:16jartz enters the room.
08:38:39rueHey
08:50:47kw leaves the room.
09:01:43jartz leaves the room.
09:06:48aotearoa leaves the room.
09:12:49ezmobius leaves the room.
09:14:15jinjing enters the room.
09:17:40jartz enters the room.
09:18:39jinjing leaves the room.
09:23:01jinjing enters the room.
09:26:25sudoer leaves the room.
09:28:38crafterm enters the room.
09:29:01jartz leaves the room.
09:31:22chris2 enters the room.
09:38:27naeu enters the room.
09:39:53joachimm enters the room.
09:44:22jartz enters the room.
09:50:21qwert666 enters the room.
10:01:53thehcdreamer leaves the room.
10:06:58thehcdreamer enters the room.
10:14:44jinjing leaves the room.
10:15:53jinjing enters the room.
10:36:43crafterm leaves the room.
10:40:24NoKarma leaves the room.
11:27:24webmat enters the room.
11:36:31wycats enters the room.
11:40:01GMFlash leaves the room.
11:54:56crafterm enters the room.
11:54:56tmornini leaves the room.
11:55:30tmornini enters the room.
12:02:33webmatevan: ping
12:04:14jinjing_ enters the room.
12:17:18jinjing leaves the room.
12:18:56NoKarma enters the room.
12:22:01ctennis enters the room.
12:23:20dbussinkwebmat: he's either traveling or asleep afaik :)
12:23:42webmatah, ok. thanks :-)
12:27:39rueOr both
12:38:36antares enters the room.
12:40:50fbuilesv_ enters the room.
12:43:13dbussinkrue: still awake or already?
12:46:53fbuilesv_ leaves the room.
12:47:45rueStill
12:48:13rueI have had some issues with sleep recently
12:50:01wycats leaves the room.
12:50:21crafterm leaves the room.
12:53:38wycats enters the room.
12:53:52fbuilesv_ enters the room.
12:54:05fbuilesvmorning
12:54:11fbuilesvNoKarma: ping
12:56:28ruedbussink: How is your new job/gig going?
12:56:53dbussinkrue: just started some prototyping and experiments
12:57:09dbussinkand thinking about a scalable architecture for the system
12:57:26dbussinkbecause there is no easy cutting point, so that's always a challenge
12:57:57NoKarmafbuilesv_: Heya :)
12:58:03wycats leaves the room.
12:58:09fbuilesvNoKarma: hola
12:58:30fbuilesvNoKarma: wanna talk a bit about the proposals and see how we can split the work?
12:58:41NoKarmafbuilesv_: sure :)
12:59:03fbuilesvNoKarma: In your proposal, did you cover some specific libs?
12:59:07NoKarmanope
12:59:08fbuilesv leaves the room.
12:59:26ctennis enters the room.
12:59:27NoKarmafbuilesv_: I wrote it in a more general way
13:00:11NoKarmafbuilesv_: and you?
13:00:20dbussinkrue: but i probably need an extra person on the project, also because i don't want it to be a one man design
13:00:34fbuilesvNoKarma: Cool. In mine I proposed to cover REXML, YAML, Socket and if time allows, IO. Another good idea provided by headius was to check out the existing tests for other Ruby implementations and try to port them to the current spec set
13:02:28NoKarmafbuilesv_: cool. The problem with existing tests is that they are often either pretty basic or are covering only small parts
13:02:42antaresg'day
13:02:44fbuilesvNoKarma: yes, or even worse, old
13:02:46fbuilesvantares: hola
13:02:55NoKarmafbuilesv_: Exactly :)
13:03:30fbuilesvNoKarma: well, do you have any lib that you specially want/need spec'd out?
13:03:37dbussinkrue: also started with merb for the prototype to see how that's holding up
13:04:01VVSiz_ enters the room.
13:04:09antaresfbuilesv: I want readline and optparse speced out
13:04:16NoKarmafbuilesv_: Oh, I also send in an application to test gems in Rubinius. But I'm not sure whether anyone of the RubyCentral Guys has seen/reviewed that yet
13:04:27antaresVVSiz_: hi there :)
13:04:31NoKarmafbuilesv_: CGI comes in my mind first
13:05:07fbuilesvantares: it optparse a wrapper from C's getopt or is it written in Ruby?
13:05:10antaresNoKarma: good choice but original cgi could be done much better I think. It is very messy.
13:05:19antaresfbuilesv: pure Ruby
13:05:30antaresfrom MRI stdlib
13:06:12antaresfbuilesv: I suggest you looking through all of it's code before you start. It has some tricky decisions.
13:06:13NoKarmaantares: many parts of the stdlib could be rewritten to be much cleaner, smaller and faster, propably
13:06:42fbuilesvantares: Both NoKarma and I sent apps for GSoC to improve the specs, we're trying to see how can we split it to cover as much stuff as we can
13:06:53antaresNoKarma: probably. But if you could focus on cgi and make it better for next version of MRI it would be double cool :)
13:06:57ruedbussink: Cool; merb is definitely nice
13:07:16fbuilesvas I see it right now we could be working on CGI, REXML (our personal needs), OptParse, Readline, IO, Socket and YAML
13:07:22NoKarmaantares: heh, maybe outside of GSOC ;)
13:07:41antaresfbuilesv_: REXML is screwed up in both 111 and 114... :(
13:07:44NoKarmafbuilesv_: I suggest we get a list of things that haven't been covered
13:07:46drbrainwhat's wrong with optparse?
13:07:47fbuilesvantares: and 1.9, it's painful
13:08:07NoKarmafbuilesv_: Then it'd be easy to split that up in to euql sized chunks
13:08:29NoKarma*equal
13:08:41fbuilesvNoKarma: That's true
13:09:11antaresdrbrain: everything is cool, we are talking about cgi.rb problems in MRI
13:09:40NoKarmaI think we should create a page on the lighthouse wiki
13:09:47antaresdrbrain: optparse is the best command line arguments parse I've used so far in Ruby and Python
13:10:03VVSiz leaves the room.
13:10:20fbuilesvNoKarma: do you have permission to do this? I can't seem to be able to modify/create wiki pages
13:10:37drbrainI can think of some things I'd like done better in optparse, but they're minor
13:10:47antaresfbuilesv_: I do, let me check whether I can share it :)
13:11:09NoKarmafbuilesv_: Yes, I do
13:11:13fbuilesvdrbrain: if we can setup the wiki page you could add them up there
13:11:42drbrainwhy? I'd just write a patch, if I was really motivated, and ask to check it in
13:12:25fbuilesvdrbrain: because you have two slaves here who would be willing to write that so you dont have to :P
13:12:28NoKarmaantares: pages can't be shared, afaics
13:12:33antaresdrbrain: I am about to invite fbuilesv_ to rubinius so he can edit pages. Sounds good?
13:12:39drbrainheh
13:12:44antaresNoKarma: not pages, rights to add them
13:12:45drbrainfine with me
13:12:54NoKarmahehe
13:13:12fbuilesvantares: I'm already in the project and I can play with all the the tickets opts, what I can't seem to be able to do is modify wiki pages
13:13:24antaresNoKarma, fbuilesv_: may I have your emails guys?
13:13:31NoKarmahttp://rubinius.lighthouseapp.com/projects/5089/gsoc-08-extending-standard-library-specs
13:13:47antaresNoKarma: even better
13:13:51fbuilesvantares: federico.builes@gmail.com
13:14:11NoKarmaantares: I've been active in Rubinius' development before
13:14:53rueInteresting. This string is 36 bytes, header + 6 fields. However, the bytearray it contains has 39 characters.
13:15:06fbuilesveffectively, I don't get the tabs to modify the page
13:16:16antaresfbuilesv_: and it seems I can't do something about it, you are already a member of the project. You may consider using a new LH project :)
13:16:57fbuilesvantares: I'll try to talk to evan or someone before that to see what can be done
13:17:13antaresfbuilesv_: hold on, there's the page
13:17:52fbuilesvantares: I can see the page, but I should be able to see the tabs up there to modify it, right?
13:18:25obvio171 leaves the room.
13:18:35antaresfbuilesv_: if you can see edit page next to new ticket at the top, you are fine
13:19:07antaresfbuilesv_: I can see it :)
13:19:21NoKarmafbuilesv_: I added some libraries
13:19:26fbuilesvantares: hehe, didn't you have the same issues when you started working on the reading list?
13:19:50antaresfbuilesv_: not exactly, but yeah, I had to ask evan
13:20:04fbuilesvevan: ping
13:21:04fbuilesvNoKarma: do you know who's Pat Eyler in here to make sure he sees where we're heading?
13:21:18NoKarmafbuilesv: Nope, no idea :)
13:21:21antaresfbuilesv: I sent out an invite to all projects for rubinius account: should do the trick
13:21:25rueHis nick is pate
13:21:33antaresLightHouse is confusing
13:21:34fbuilesvrue: ty
13:22:18antaresNoKarma: what is your name at LH again?
13:22:24fbuilesvantares: that did the trick, thanks
13:22:33NoKarmaantares: Arthur Schreiber
13:22:40antaresNoKarma: sec
13:22:53NoKarmaantares: ok
13:23:24antaresI get the following: No invites sent out. Check the email format and the number of allowed members for this account.
13:23:31antaresand it seems we have 33/50 people
13:23:54antareslighthouse is confusing unless you are Rick Olson :)
13:24:22antaresbut anyway one of you guys now has rights to add and edit pages
13:24:27antaresso you are cool for now
13:24:36NoKarmahehe
13:24:50fbuilesvantares: I'll actually like LH quite a lot, maybe it's because I've never really liked Trac or BugZilla
13:25:10NoKarmahehe, I favor Trac :)
13:25:15antaresfbuilesv: I like it for working with tickets but administration interface is horrible
13:26:57NoKarmafbuilesv: There's actually a whole bunch of libraries that haven't been covered yet... Most of them are pretty small fish, tho, like Tmpdir
13:28:30squeegy leaves the room.
13:28:32fbuilesvNoKarma: first time I hear of Tmpdir :)
13:28:42squeegy enters the room.
13:29:03NoKarmafbuilesv: That's gonna be lower priority then :)
13:29:21antaresfbuilesv: it has just a couple of methods ;)
13:29:27antaresbut very convenient sometimes
13:29:44fbuilesvNoKarma: I'd like to make sure we work based on the current needs on the projects. Take a look at what's currently needed for Rails or some big project and start there
13:30:00NoKarmafbuilesv: that's what I think, too
13:30:27NoKarmafbuilesv: we gather some condidates, sort them by priorities and split that up :)
13:30:33NoKarma*candidates
13:30:36fbuilesvNoKarma: sounds good
13:31:10antaresCGI, OpenStruct, Set and YAML are used in Rails for sure
13:31:55NoKarmais there some way to make stuff colored in Lighthouse?
13:32:25antares leaves the room.
13:32:28antares enters the room.
13:33:05fbuilesvNoKarma: I _think_ you can use basic HTML on pages
13:33:29fbuilesv"Tickets for public projects go a step further and block any custom HTML from being added. Since Messages, Pages, and Milestones are created by members of your project, this extra protection is not needed"
13:33:48antaresUse h2 — h4
13:33:54antaresLH uses Textile
13:34:03antaresh2. Top priority
13:34:09antaresh4. Low priority
13:34:40antaresRemember there's only one h1 per page or Google won't respect that
13:35:30NoKarmawell, it has no support for colorization :(
13:35:43NoKarmaand it eats inline style tags
13:35:57fbuilesvNoKarma: h* will make the differentiation then :)
13:36:06NoKarmahehe, ok
13:36:57NoKarmahttp://rubinius.lighthouseapp.com/projects/5089/gsoc-08-extending-standard-library-specs
13:37:03NoKarmanot really, kind of weird
13:37:27fbuilesvNoKarma: I think it reads the number of "#" before the word that turns that into H*, let me try
13:37:42NoKarmasure
13:37:44fbuilesvmmm nope
13:38:27fbuilesvI still have problems remembering Textilize vs. Markdown
13:38:40NoKarmagood ol' font tag will do it, I think
13:39:18NoKarmanope
13:39:26fbuilesvthere, it seems to be working now
13:39:46fbuilesvI hope no one goes to the overview page trying to see what's new :S
13:42:36NoKarmahaha
13:42:48NoKarmaok, I used ** for now
13:43:34NoKarmafbuilesv: ok, I got to leave.
13:43:43NoKarmafbuilesv: I'll be back in a couple of hours
13:44:06fbuilesvNoKarma: I got an exam in a couple hours too but let's try to have this ready before monday, sounds fine?
13:44:13NoKarmasure :D
13:47:38fbuilesvantares: with REXML broken, should the specs be tagged as failing or do we wanna wait on an answer from ruby-core?
13:48:13dbussinkfbuilesv: wait for ruby-core, we shouldn't model actual and obvious bugs
13:49:11fbuilesvdbussink: ok, last pull's giving me a ton of fails/errors there and some on pathname
13:49:36antaresfbuilesv: tag as failing for now, I think it would take eternity for ruby-core, they have a lot of things to do other than caring about Ruby spec and quality of releases (IMO)
13:49:42dbussinkfbuilesv: you mean the specs against mri?
13:50:01fbuilesvdbussink: nah, rubinius CI
13:50:05antaresfbuilesv: and Matz and ko1 are at the conference in Prague these days so no answer in a few next days for sure
13:50:42nicksieger leaves the room.
13:53:15brainopia enters the room.
13:53:29benburkert enters the room.
13:58:50Fullmoon enters the room.
14:09:35VVSizantares: morning to you too :)
14:11:57binary42 enters the room.
14:12:27binary42 leaves the room.
14:12:47binary42 enters the room.
14:13:31binary42 leaves the room.
14:13:50binary42 enters the room.
14:14:08qwert666__ enters the room.
14:14:23binary42 leaves the room.
14:14:42binary42 enters the room.
14:15:16binary42 leaves the room.
14:15:34binary42 enters the room.
14:16:10pauldix enters the room.
14:16:21binary42 leaves the room.
14:16:29binary42 enters the room.
14:16:58binary42 leaves the room.
14:17:12Fullmoon leaves the room.
14:17:13binary42 enters the room.
14:17:39jtoy enters the room.
14:17:50binary42 leaves the room.
14:18:06binary42 enters the room.
14:18:34binary42 leaves the room.
14:18:38binary42 enters the room.
14:24:40benburkert leaves the room.
14:31:38binary42 leaves the room.
14:31:51binary42 enters the room.
14:32:18binary42 leaves the room.
14:32:27qwert666 leaves the room.
14:32:37binary42 enters the room.
14:33:04binary42 leaves the room.
14:33:21binary42 enters the room.
14:34:01binary42 leaves the room.
14:34:15binary42 enters the room.
14:34:43binary42 leaves the room.
14:34:59binary42 enters the room.
14:35:38binary42 leaves the room.
14:35:55binary42 enters the room.
14:36:23binary42 leaves the room.
14:36:40binary42 enters the room.
14:37:10binary42 leaves the room.
14:37:26binary42 enters the room.
14:38:02binary42 leaves the room.
14:38:18binary42 enters the room.
14:38:57binary42 leaves the room.
14:39:12binary42 enters the room.
14:39:48binary42 leaves the room.
14:40:05binary42 enters the room.
14:40:37chris2i bet the mwrc-network sucks :-P
14:40:40binary42 leaves the room.
14:40:55binary42 enters the room.
14:41:31rueIt does seem slightly inconsistent
14:41:35binary42 leaves the room.
14:41:48binary42 enters the room.
14:42:29binary42 leaves the room.
14:42:37fbuilesvrue: Actually, it's pretty consistent, he connects he disconnects, connects, disconnects...
14:42:42binary42 enters the room.
14:43:13antaresfbuilesv: yeah, indeed :)
14:43:24binary42 leaves the room.
14:43:35binary42 enters the room.
14:43:50antaresrue: hey can you review my doc patch for compiled_method.rb stuff when you finally get some sleep? I am relatively new to Ruby side of things
14:44:13binary42 leaves the room.
14:44:29binary42 enters the room.
14:45:04webmatDamn I wish I could ignore these join/left messages with Colloquy :-)
14:45:32antareswebmat: you can
14:45:42antareshit Cmd + , then go to alerts tab
14:45:56webmatyeah, I just checked the "ignore notifications" and it seems to do it
14:46:36anony leaves the room.
14:47:24twbray enters the room.
14:48:23binary42 leaves the room.
14:48:37binary42 enters the room.
14:48:42antaresdiscovered nickname tab completion on colloquy
14:48:56anonuser enters the room.
14:48:57fbuilesvantares: Check http://rubinius.lighthouseapp.com/projects/5089/gsoc-08-extending-standard-library-specs and see if there's anything missing
14:49:13binary42 leaves the room.
14:49:16antaresfbuilesv: ok
14:49:31binary42 enters the room.
14:49:41fbuilesvantares: how exactly do you use IRC without nick completion, isnt that on the RFC or something? "You _have_to use nick completion" :P
14:50:18binary42 leaves the room.
14:50:34binary42 enters the room.
14:51:18binary42 leaves the room.
14:51:24webmatantares: The alert tabs only allows me to configure the icon bouncing and sounds... What I mean is that I don't want to see the join/leave messages... Is there something I'm missing?
14:51:26antaresfbuilesv: I used to just type :)
14:51:30binary42 enters the room.
14:51:41fbuilesvouch
14:52:10binary42 leaves the room.
14:52:14webmatwell, OTOH it builds up the typing-fu :-)
14:52:21binary42 enters the room.
14:53:43antaresfbuilesv: I see no major libs missing. Though it would be cool to explore what rack, rspec, merb-more, mechanize and rails use
14:53:53antaresfbuilesv: and eventmachine of course
14:54:01binary42 leaves the room.
14:54:17binary42 enters the room.
14:54:28fbuilesvantares: I'm grepping Rails right now to see what I'm missing what might be missing
14:54:38Skip enters the room.
14:55:35antaresfbuilesv: good idea
14:55:52binary42 leaves the room.
14:56:10binary42 enters the room.
14:57:35binary42 leaves the room.
14:58:28twbray leaves the room.
14:59:43VVSiz leaves the room.
15:00:04VVSiz enters the room.
15:01:08antaresok guys I'll get back to you in a couple of hours
15:01:14antares leaves the room.
15:13:19twbray enters the room.
15:15:29twbray leaves the room.
15:16:03GMFlash enters the room.
15:18:14jartz leaves the room.
15:23:57agile enters the room.
15:24:15binary42 enters the room.
15:24:29webmatQuestion: does the task 'rake stats:collect' go back to the first commit in 2006 or what? :-)
15:27:53rueIt might, I think we have history from June 2006 or so
15:31:17webmatrue: Do you know about the flog command it's trying to use? Is it the file log tool that can be found here http://oss.ezic.com/?
15:32:14webmatI compiled it w/o a problem, but when I put it in my path, as soon as the task got to try to use it, it just hung forever...
15:34:36rueI suspect that is zenspider's flog
15:34:42rueA complexity analyser
15:35:03webmatah, makes sense. Thx :-)
15:37:42benburkert enters the room.
15:48:56jtoy leaves the room.
15:57:14fbuilesv leaves the room.
15:59:09ariesroyaal enters the room.
15:59:55obiejuan enters the room.
16:12:40webmat leaves the room.
16:13:17gnufied enters the room.
16:21:21twbray enters the room.
16:26:45binary42 leaves the room.
16:34:11twbray leaves the room.
16:39:21FoobarWidget enters the room.
16:39:47FoobarWidgethi
16:40:22FoobarWidgetevan: some patches that I submitted have been applied, and I was told to send you my SSH key
16:45:19dbussinkFoobarWidget: afaik he's not in atm
16:45:42antares enters the room.
16:54:40rueThink he is traveling to Denmark today
16:57:18FoobarWidgethm ok
17:00:02rueYou could e-mail it to him or make a private pastie or something
17:00:26FoobarWidgetsure, thanks
17:00:28FoobarWidget leaves the room.
17:03:14mibbit enters the room.
17:09:08NoKarmaheya
17:09:47boyscout1 commit by Eero
17:09:48boyscout * rbx_string_to_cstr() for obtaining a char* safely-ish.; 7e7e9ee
17:10:11rueHellos.
17:12:45rue*sigh* One would think I would learn one of these days.
17:14:26rueLet me know if something breaks, I reworked FFI a bit
17:15:55rubuildius_amd64Eero: 7e7e9eefc; build failed! http://rafb.net/p/RNe2QK34.html
17:16:02djwhittoh dear
17:16:32djwhittooo... nice, it emailed the list too :)
17:16:41mibbit leaves the room.
17:16:56djwhittoh, but it's missing the info
17:16:59djwhitthmm... that's not good
17:18:04dbussinkhmm, the defined? stuff is pretty broken
17:18:20NoKarmadefined? is evil
17:18:23naeu leaves the room.
17:19:01antaresNoKarma: go work with edge rails without it
17:19:25NoKarmawell, yeah, Rails makes extensive use of it...
17:19:29antaresNoKarma: to keep you app backwards compatible at least to the point it runs your tests on elder revisions
17:19:34NoKarmadoesn't change the fact that it's evil :)
17:19:57antaresNoKarma: see http://novemberain.com/2008/3/25/fix-markaby-haml-and-liquid-to-work-with-edge-rails-from-february -2008
17:20:16antaresNoKarma: dogmas and bold statements are evil; other things are of limited use
17:20:45NoKarmaantares: There's a type
17:20:54NoKarmaantares: "He is the pastie"
17:21:04NoKarmaantares: sounds funny :)
17:21:34rubuildius_ppcEero: 7e7e9eefc; 1843 files, 6254 examples, 22337 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/172466
17:21:35djwhittrue: you around?
17:21:53antaresNoKarma: :)
17:22:28NoKarmaantares: couldn't you use const_defined, btw?
17:22:34NoKarma*const_defined?
17:22:59antaresNoKarma: I could. It does not make things any different.
17:23:37NoKarmawell, yeah. The reason I said defined? is evil is because it's a pita to implement
17:24:27wayneeseguin enters the room.
17:25:59dbussinkdefined? currently even uses const_defined? directly, but that needs to be changed
17:28:13ruedjwhitt: Sorta, 64 problem?
17:28:32lopex enters the room.
17:29:17antaresNoKarma: too much stuff is evil then ;)
17:29:26NoKarmahehe
17:29:26ariesroyaal leaves the room.
17:30:32ruedjwhitt: Can you see the failure on your side/
17:32:01djwhittrue: sorry, afk for a sec
17:32:07djwhittrue: what details do you need?
17:33:37dkubb enters the room.
17:34:31rueWell, it looks like a runtime issue but any type of error message would be helpful
17:34:41djwhittk, I'll see what I can come up with
17:34:49djwhittdoing a manual build now
17:36:24djwhitthttp://pastie.org/172469
17:36:36djwhittthat's slightly more info
17:44:27rueHrm, probably the structs.. lemme see if I can find the 64-bit board
17:48:19dbussinkdjwhitt: you can run it in gdb, that would be even more informative
17:49:45djwhitthmm... I don't suppose there's an easy way to get the build processes to fire up gdb when that happens is there?
17:49:52wayneeseguin leaves the room.
17:51:10dbussinkdjwhitt: of course there is :)
17:51:39djwhittoh yeah? tell me, tell me!
17:52:11dbussinkGDB=1 rake build
17:52:34djwhittnice
17:52:39djwhittdo I need DEV=1 too?
17:52:50dbussinkcould be useful yeah
17:53:00djwhittok, running
17:53:05dbussinkrake build:vm:clean build:vm:dev is what i usually use
17:54:00dewd enters the room.
17:55:07rueHa, found one after all
17:55:11djwhittok, I am in gdb, but I'm not exactly a gdb expert
17:55:50dbussinkdjwhitt: type run :)
17:55:50rueJust type 'run' and when it crashes, 'bt' to get started
17:56:08djwhittk
17:57:05djwhitthttp://pastie.org/172475
17:57:31djwhittanything else I can do that would be useful?
17:57:41dbussinkrbt
17:58:37djwhitthttp://pastie.org/172477
17:58:40djwhittdidn't seem to like that
17:59:22djwhittbacktrace for that SIGSEGV: http://pastie.org/172478
17:59:31dbussinkprobably because something inside string is broken
17:59:44rueOh, glimmer of hope this might be simple
17:59:46dbussinksame error indeed
18:03:19rue