Index

Show enters and exits. Hide enters and exits.

00:01:52jaribevan: ah, ok
00:02:03evanwhat version of rack do you have installed in rbx?
00:02:21jarib1.2.1
00:02:28evanand in 1.9?
00:02:42jarib1.1.0
00:02:45jaribok
00:02:54evanyep, thats the reason
00:02:59evanplease close that issue.
00:03:08evanyou're supposed to use Rack::Server now
00:03:09evani guess.
00:03:59jaribseems so
00:04:55jaribi'm having a hard time isolating the assertion failure
00:05:04jariblots of moving parts in this code.
00:05:12jakedouglasevan: i discovered that rb_marshal_load is already implemented in capi/util.cpp. should I move rb_marshal_dump to that file, or vice versa?
00:05:18evanjarib: can you make it happen everytime?
00:05:29jaribyes
00:05:54evanjakedouglas: you only list one file
00:06:01evanyou can move them out of util.cpp though
00:06:08evani'm not sure where you're moving them to
00:06:08jaribany clever tricks for gdb in a forked process?
00:06:10jakedouglasevan: i created marshal.cpp in the last commit to implement it.
00:06:11evanbut they should be together
00:06:53evanjarib: you can use follow-fork mode
00:06:55evanbut it's a pain.
00:07:26jaribi can try
00:07:41jaribalternatively, add something to linkedlist.hpp and recompile maybe?
00:08:45jaribthis isn't the only process forked even
00:09:12evansure
00:09:21evanyou can have linkedlist.hpp use rubinius::abort
00:09:24evanwhich will print out a backtrace
00:09:58jaribinstead of the assertion?
00:10:09evanas the assertion
00:10:24evanif(cocondition) rubinius::abort();
00:10:34jaribok
00:10:44jaribi'll try that
00:12:55jaribvm/linkedlist.hpp:36:35: error: ‘rubinius’ has not been declared
00:13:05evanum
00:13:05evanok
00:13:11evanyou'll have to leave that for me.
00:13:32jaribaye
00:26:02boyscoutadd capi spec for rb_marshal_load - 5bf23ba - Jake Douglas
00:26:02boyscoutmove rb_marshal_load to marshal.cpp - 26de7b3 - Jake Douglas
00:34:53boyscoutCI: rubinius: 26de7b3 successful: 3503 files, 14374 examples, 42151 expectations, 0 failures, 0 errors
00:35:56jakedouglasevan: for some reason im now getting slayed by the bundler seg fault before i can get to the AR one. not sure why that's different now.
00:36:08evanok
00:36:22evani've got a repro for the bundler one
00:36:25evanit's stumping me atm.
00:36:33jakedouglasrepro is good :P
00:36:43evanI might work around a symptom without figuring out the cause.
00:37:00evanbecause i've made it go away
00:37:03evanby changing a few things
00:37:09evanbut i don't yet know why those changes cause it to go away.
00:37:12evanit's one of those bugsy.
00:37:14evanbugs.
00:37:17evanit's a bugsy.
00:37:19evanthats a good name.
00:38:21jakedouglascool. dinner, bbl
00:38:26evanlater.
00:45:50evanhrm
00:45:53evani think i've been chasing my tail.
01:16:56slavabrixen: are you guys getting beer later?
01:19:06brixenslava: hey, just thinking about plans
01:19:21brixenwhat do you have in mind?
01:19:32brixenwe're over by F152
01:19:40slavaI'm at powell's
01:19:49brixenthat's a long ways away man
01:19:53brixen:)
01:20:21brixenare you going to rogue again?
01:20:30slavano
01:21:29brixenanother place?
01:22:22slavado you have anything in mind?
01:22:50brixenpossibly making some plans on this side of the river, waiting to hear...
01:23:40slavaare you meeting up with ola later?
01:23:53brixenthey took off, not sure where they went
01:24:01brixenI'm up for meeting up with them later though
01:24:11brixenI think we're going to grab some dinner near here
01:25:46brixenslava: tweet @ me if you guys pick a place for beer later
01:26:07bakkdoorslava: amos and me will go with brixen i think
01:26:53bakkdoorslava: i'm off for now. we can meet later and drink something. tweet us, like brixen said
01:27:41slavaalright
04:41:55jakedouglassup
07:27:32dbussinkmorning
07:32:28kronos_vanomorning
08:47:18kronos_vanohehe, a = [0]; a.shift; a.delete(nil) makes rubinius cry
08:57:26dbussinkkronos_vano: ah, tricky find :)
10:09:40kronos_vanodbussink, it is not mine, #422 ;)
13:06:48jaribheh, still getting these weird Ar failures on my work machine
13:07:11jaribhttp://gist.github.com/484455
13:13:20dbussinkjarib: no stale files floating around?
13:15:05jaribdbussink: don't think so
13:15:48dbussinkjarib: what platform are you on?
13:16:20jaribdbussink: i recall mentioning this before, IIRC it's caused by my Process.uid being pretty high
13:16:24jaribleopard
13:16:41jarib>> Process.uid
13:16:41jarib=> 323354445
13:18:23dbussinkhuh, how can that happen?
13:20:15jaribi'm not a unix expert, but why wouldn't it happen?
13:20:39dbussinkjarib: could be related then yeah, that something caps it
13:20:39dbussinkbut i wonder what that would be then
13:20:39dbussinkjarib: how do you get them that high? :)
13:20:40dbussinkwell, because they usually start numbering at 1
13:20:49dbussinkand you need to be spawning processes pretty hard for this
13:21:12dbussinkand i've never had any above 100000 i think
13:21:37jaribdoes it have anything to do with processes though?
13:21:52jaribhttp://en.wikipedia.org/wiki/User_identifier_(Unix)
13:22:06jaribi work in a big company.
13:22:16dbussinkwell, there's a 323354445 in the gist
13:22:16dbussinkah wait, uid
13:22:16dbussinksorry, read it wrong
13:22:32dbussinkprobably some domain account then right?
13:22:37jaribprobably, yeah
13:22:59jaribfunny that wikipedia says "ranging between 0 and 32767"
13:23:40dbussinklooks it's an unsigned integer on os x
13:25:19dbussink uid = io.read( 6).to_i
13:25:27dbussinklooks like the uid is limited to 6 characters
13:25:29dbussinkin kernel/common/ar.rb
13:25:51dbussinkyou could check if there are more of those hardcoded limits and see if changing them fixes it
13:26:19jaribdbussink: interestingly, doing `id` in the shell says my uid=1000
13:26:28jaribdbussink: ok, i'll take a look
13:27:31jaribah
13:27:40jaribnever mind the `id` comment. that was an ssh session :P
13:33:53jaribi guess the bug is really in the spec
13:38:42dbussinkjarib: well, it's probably in the implementation then too, because it's only reading those 6 characters
13:39:03dbussinkwhich you can see in the spec because it truncates it at 6 characters
13:46:57jaribdbussink: isn't that the ar(5) format though?
13:48:21dbussinkjarib: true yeah, but that means that ar files are inherently broken with these huge uid's
13:48:55jaribwell, if it's always truncated to 6 chars
13:48:58jaribexcept in the spec
13:49:06jaribreally has no idea
13:53:06dbussinkjarib: just get a sane uid on your machine ;)
16:08:15evanWe should remove Ar and it's test for now.
16:08:17evanwe're not using it.
17:25:32evanhuzzah
17:25:40evanslayed a crash bug.
17:27:04sbryant!
17:27:07sbryantwhat was the bug?
17:28:21evanframes for jit'd blocks weren't marked as being jit'd frames
17:28:45sbryantah
17:28:46evanwhich caused their jit'd code to not be strongly referenced
17:28:59evanwhich causes the jit'd code to be deleted while the block was still running
17:29:10evanwhich cause the CPU to run invalid x86
17:29:32sbryantoh, that would be quite a problem.
17:29:39evanquite.
17:44:40boyscoutMake sure a JITd block strongly references it's JITd code. Fixes #413. - bdb802d - Evan Phoenix
17:44:40boyscoutAdd some code to aid in debug JITd code being destroyed - b3ca6bb - Evan Phoenix
17:50:05dbussinkevan: https://gist.github.com/f8a507f74b2aecfec259 shall i commit that? :)
17:51:34evandbussink: sure
17:55:20boyscoutCI: rubinius: b3ca6bb successful: 3503 files, 14374 examples, 42151 expectations, 0 failures, 0 errors
17:55:55dbussinkevan: was that the cause of some reported crashes?
17:56:03evanyep
18:00:25tarcieriyay crashfix :)
18:00:30evan:)
18:03:28boyscoutRemove Ar since it's not used anymore - 80cbe44 - Dirkjan Bussink
18:03:55Defileryay less code
18:04:00dbussinkjarib: there you go :)
18:04:06dbussinkDefiler: removing stuff is always good :P
18:04:07tarcieria mother from Ar who has lost her 3 kids?
18:12:08boyscoutCI: rubinius: 80cbe44 successful: 3498 files, 14361 examples, 42133 expectations, 0 failures, 0 errors
18:15:03jaribdbussink: thanks!
18:15:10jaribwhat was it intended for?
18:15:42evanwe used to have .rba
18:15:51evanwhich stored .rbc files as one file
18:15:59jaribah
18:16:05evanbut we stopped using them long ago
18:16:11evanand hadn't maintained it for a while
18:16:15evanbetter to cut it loose
18:16:20evanand come back to it later if we still want it.
18:17:03jaribhow's that ruby archive rsoc project going, btw?
18:17:46evangood good
18:17:52evanhe's using zip atm.
18:18:02jaribis the code public?
18:18:13evanthere is some on github
18:18:17evanhe told me he's got it torn apart atm.
18:18:20evanlet me find the url.
18:18:26jaribok
18:18:56evanjarib: http://github.com/byuni/rark
18:19:42jaribthanks
18:22:51boyscoutCleanup old rba task - 0a02737 - Dirkjan Bussink
18:22:52boyscoutRemove ar.rbc from load_order.txt - 4f05e29 - Dirkjan Bussink
18:22:53dbussinkforgot that :S
18:22:59evannp.
18:23:46brixendbussink: only shows up after a clean build huh? :)
18:24:38jaribevan: i have some time if you want to look into that linkedlist assertion btw
18:25:02evanjarib: can you repro it?
18:25:28jaribnot isolated
18:25:44jariband not outside the forked child
18:26:04jaribwhich was why we considered adding rubinius::abort() if the condition failed
18:26:52jaribi could try follow-fork-mode as well.
18:31:28boyscoutCI: rubinius: 4f05e29 successful: 3498 files, 14361 examples, 42133 expectations, 0 failures, 0 errors
18:37:11jaribhmm, nvm, doesn't happen on OS X it seems
18:37:24jaribwill have to wait until i'm back on linux
18:37:53evank
18:41:20jakedouglasyay, bundler works again :p
18:41:45evan:)
18:42:26jakedouglaslet me try the other thing now.
18:44:19jakedouglassuccess :)
18:44:42dbussinkbrixen: yeah, only clean build triggers that
18:44:42jakedouglaswell. the spec fails, but it doesn't crash.
18:44:48dbussinkbrixen: easy to forget :)
18:45:20brixendbussink: yep :)
18:46:17jakedouglasevan: do you want me to close the ticket?
18:46:23evansure
18:46:31jakedouglask.
18:47:56jakedouglasthanks
18:48:22jakedouglastheres something funny going on with AR or machinist now i think. all of my specs that try to use db objects fail, and mysql is around 30% CPU the whole time (usually only 5% during spec run)
19:03:15dbussinkjakedouglas: what kind of spec failures are you seeing?
19:03:32jakedouglastalking about my own specs
19:09:37dbussinkjakedouglas: yeah, but curious where it's something consistent you could reproduce
19:16:28jakedouglasdbussink: i dont know the cause yet. its obscured by some other stuff.
19:32:59dbussinkkronos_vano: you there?
19:33:06boyscoutUse the correct exception constant in generator. - 603b45d - Brian Ford
19:35:59kronos_vanodbussink,
19:36:02kronos_vanoyep
19:36:12dbussinkkronos_vano: i was look at that fix you wrote
19:36:37kronos_vanowhich one
19:36:48dbussinkbut i wonder what happens if you have a total of 3 elements with a start at 2 http://github.com/evanphx/rubinius/issues#issue/422
19:38:47dbussinkkronos_vano: https://gist.github.com/e9b41a746eadfabd4a5a
19:40:08kronos_vanobad.
19:42:51boyscoutCI: rubinius: 603b45d successful: 3498 files, 14361 examples, 42133 expectations, 0 failures, 0 errors
19:45:36kronos_vanodbussink, then instead of @start <= @total condition we can use @total > 0
19:50:18kronos_vanoMay be better solution is change the c++ code? hm...
20:15:42dbussinkevan: on tht fix for #422, what do you think? should we add a length check in Fixnum* Tuple::delete_inplace ?
20:15:48dbussinkvm/builtin/tuple.cpp
20:51:39evandbussink: sounds good.
20:56:50dbussinkevan: how do you feel about the suggested spec kronos|inception added? http://gist.github.com/484235
20:57:15dbussinkit's a bit tricky because this bug occurs because of how we do a shift and set a different start pointer
20:57:34dbussinkand a side effect of that is what causes this bug
20:57:50evandbussink: ah hm
20:58:01evanhis spec seems fine
20:58:15evanwell, the description should be better
20:58:33evanperhaps: it "is not confused by shift"
20:58:59dbussink it "returns nil if the array is empty due to a shift" ?
21:00:04evansure
21:00:11evanit neesd to mention shift
21:00:13evanneeds.
21:01:24dbussinkevan: hmm, this change to delete_inplace does mean it doesn't throw object bounds exceeded if somecall calls some weird start with a lenght of 0
21:01:27dbussinkis that problematic?
21:01:50evanwell, we never said what the boundary cases are for delete_inplace
21:01:56evanie, does it just ignore out of bounds
21:04:26dbussinkevan: this is what i have now: https://gist.github.com/5c5f5eeca78905b96dc9
21:05:35evandbussink: seems fine.
21:14:38boyscoutAdd spec that asserts Array#shift doesn't trip up Array#delete - 9a203fa - Dirkjan Bussink
21:14:39boyscoutShortcircuit deleting elements if the part to be deleted as 0 elements - 7508201 - Dirkjan Bussink
21:23:05khaaseevan: you know what would be a fun idea? packaging the ruby archive code and the zip in one rb file (the zip after __END__), so ppl wont have to install anything
21:23:16boyscoutCI: rubinius: 7508201 successful: 3498 files, 14362 examples, 42134 expectations, 0 failures, 0 errors
21:23:26evan__END__ abuse!
21:23:30evan:D
21:23:48evansadly DATA only works once in the whole system
21:23:59evanand only on the script given on the command line
21:24:07evanso it's pretty limiting.
21:48:49boyscoutAdd ability for inlining to request send as the fallback - 8c5d701 - Evan Phoenix
21:57:35boyscoutCI: rubinius: 8c5d701 successful: 3498 files, 14362 examples, 42134 expectations, 0 failures, 0 errors
22:33:03goyox86evan: i have a question, I just playing a bit, and i want inside a primitive i want to call "Exception::frozen_error"
22:33:11evanwhy?
22:33:18evanwhat primitive?
22:34:29goyox86evan: i'm just playing with c++ code trying to understand, yesterday i saw a Module failing spec
22:34:57evanok, what is your question?
22:35:25goyox86evan: wait a moment please :)
22:35:37evank
22:40:04goyox86evan: yesterday i was looking at this tagged failing spec "Module#class_variable_set raises a TypeError when self is frozen"
22:41:31evanok
22:41:42goyox86evan: and i started looking for how to fix it, i found in the implementation of Module#class_variable_set
22:42:18goyox86evan: i found -> Ruby.primitive :module_cvar_set
22:42:34evanyep
22:42:46evanok
22:44:58goyox86evan so i went to the implementation of the primitive, Object* Module::cvar_set(STATE, Symbol* name, Object* value) in vm/builtin/module.cpp
22:45:12evanyep.
22:45:52goyox86evan: and my question is it right to call "Exception::frozen_error" here inside?
22:46:05evanwell, lets see..
22:46:33evanwell
22:46:41evanyou'd have to change the primitive
22:46:52evanbecause frozen_error has to be passed the current CallFrame*
22:46:56evanwhich it isn't passed atm.
22:47:11evanan easier way would be to have the primitive fail if self is frozen
22:47:18evanand put Ruby.check_frozen in the ruby method
22:48:04goyox86evan: oh man! this is my point i almost went nutz trying to get the current CallFrame*
22:48:20goyox86evan: /me is a noob
22:48:26evanright
22:48:28goyox86is a noob
22:48:30evanit's not passed into primitives by default.
22:50:43goyox86evan: actually i get the spec pass by throwing a Ruby Exception directly from inside primtive, but this was just for testing
22:51:16evanwhat code did you add?
22:53:58goyox86evan: mmm let me get home and (i'm at work), i'll gist that (i don't like that code :]) , i live at walking distance let me get home :-) 30 min at most
22:54:16evanok
22:54:57goyox86leaving office
23:18:36goyox86at home
23:19:15goyox86evan: here is what i've done http://gist.github.com/485291, don't expulse me from de rbx church please :]
23:20:36evangoyox86: thats ok to do
23:20:41evanthere are a few changes
23:20:50evanit should just be
23:21:04evanif(RTEST(frozen_p(state)) {
23:21:44evanyou can access TypeError by doing
23:21:47evanG(exc_type)
23:21:54evanwhich accesses the global object exc_type
23:21:58evanwhich is the TypeError class
23:22:20evanactually
23:22:25evanthere is Exception::type_error
23:22:28evanso you should just do
23:22:46evanif(RTEST(frozen_p(state)) { Exception::type_error(state, "unable to change frozen object"); }
23:24:22jakedouglasso 'tagged' spec is disabled right? so i can look at tags and find ones to fix like goyox86?
23:25:18evanyep
23:25:37goyox86evan: so, it wasn't that bad as i was thinking after all :] ?
23:25:54jakedouglaslooks like lots of approachable stuff
23:25:56evangoyox86: nope, you had the right idea
23:28:09jakedouglasso i just have to delete the tag line or something to make it run?
23:28:30goyox86evan: and if(RTEST(frozen_p(state)) { Exception::type_error(state, "unable to change frozen object"); } should not be in some primitive just to dry up things? (noob question)
23:28:40evanno
23:28:41evanit should not.
23:30:29goyox86evan: so in conclusion i can create a patch with the modifications an open a ticket?
23:30:37evanyep
23:30:54goyox86thinks if evan has been in southamerica?
23:31:03evana couple of times
23:31:12goyox86evan: where?
23:31:16evanSantiago Chile and Beanos Aires
23:31:53evangoing to Sao Paulo in October
23:37:01jakedouglasis rbx supposed to support utf8?
23:39:04evanthe same way MRI does
23:39:04jakedouglasactually i dont even know enough about encoding stuff to ask that question. i should have asked something else
23:39:05evanyes.
23:39:15jakedouglaswhat i meant to ask was
23:39:30jakedouglasExpected ["Q", "u", "i", " ", "?"] to equal ["Q", "u", "i", " ", "è"] <- should i bother trying to fix this? should it work?
23:39:43evani'd find something else
23:39:46jakedouglask
23:39:46evanthats going to be tricky probably
23:39:53evanfind something you feel more confident about.
23:39:59jakedouglas:)
23:44:29goyox86thinks evan must come Venezuela an eat some arepas :]
23:44:44evangoyox86: heh
23:55:07jakedouglasdo i have to do something to make changes take effect when i edit stuff in kernel/ ?
23:55:20evanrun rake build
23:55:23jakedouglasthanks