Show enters and exits. Hide enters and exits.
| 00:03:39 | kronos_vano | 1.8.7 have tests like http://gist.github.com/405741 for non-windows plaform. Should we pay attention to the tests? |
| 00:05:15 | evan | kronos_vano: are you still going through the MRI tests? |
| 00:05:40 | kronos_vano | Yep. Some times |
| 00:05:43 | spastorino1 | evan: i can create a pastie when this run finish for you to see |
| 00:05:50 | evan | spastorino1: ok. |
| 00:05:52 | kronos_vano | there are still some failing tests |
| 00:05:52 | spastorino1 | i'm running the whole test suite |
| 00:06:40 | kronos_vano | *Sometimes |
| 00:06:54 | spastorino | evan: i'm running mysql and postgresql tests also |
| 00:06:59 | evan | spastorino: ok. |
| 00:07:07 | spastorino | ;) thx |
| 00:13:56 | kronos_vano | evan, Is it known issue that _id2ref doesn't work in eval? |
| 00:14:06 | evan | show me. |
| 00:14:25 | kronos_vano | http://gist.github.com/405754 |
| 00:14:51 | evan | you're wrong. |
| 00:14:59 | evan | remove the eval |
| 00:15:01 | evan | just run the code without it. |
| 00:15:08 | evan | what happens then? |
| 00:15:21 | evan | i suspect it's jsut that i don't have _id2ref handling object_id's for Fixnums |
| 00:16:31 | kronos_vano | Ah. But, anyway this is error. |
| 00:16:44 | evan | open an issue. |
| 00:16:52 | kronos_vano | ok |
| 00:17:21 | evan | hello explody from gemstone. |
| 00:17:31 | explody | howdy |
| 00:29:26 | boyscout | Add vim syntax file for instructions.def - 1216737 - Evan Phoenix |
| 00:29:36 | brixen | evan: thanks! |
| 00:29:37 | spastorino | evan: just twitter the output of the tests |
| 00:29:46 | spastorino | twitted* |
| 00:29:57 | evan | um. |
| 00:29:59 | evan | just give me the url. |
| 00:30:02 | brixen | haha |
| 00:30:14 | evan | twitter makes a pretty bad paste board. |
| 00:30:26 | brixen | evan: we should put a BERT backend in rbx that marshals over twitter |
| 00:30:34 | evan | hehe |
| 00:31:05 | evan | spastorino: have you run them on MRI lately? |
| 00:31:10 | evan | because i thought they didn't pass there either |
| 00:31:14 | evan | because they found a bunch of bad tests. |
| 00:31:21 | spastorino | http://pastie.org/966837 |
| 00:31:28 | spastorino | evan: yes |
| 00:31:38 | spastorino | there are some failures on MRI |
| 00:32:01 | spastorino | i can do a pastie for you |
| 00:32:24 | evan | and? |
| 00:32:27 | evan | yes |
| 00:32:32 | evan | please pastie those |
| 00:32:54 | spastorino | 7 failures on AR |
| 00:33:42 | evan | :/ |
| 00:33:51 | spastorino | evan: http://pastie.org/966851 |
| 00:34:23 | spastorino | you can see there a lot of warnings on AP i run the tests before i remove the warnings |
| 00:34:52 | evan | AP? |
| 00:35:01 | spastorino | evan: ActionPack |
| 00:35:08 | evan | ok |
| 00:35:12 | evan | so |
| 00:35:12 | spastorino | nope sorry ActionMailer is the one that warns |
| 00:35:20 | evan | i see really 4 errors |
| 00:35:24 | evan | the 2 memcache ones |
| 00:35:27 | evan | and 2 ones related to timezone |
| 00:35:32 | spastorino | yes |
| 00:35:36 | evan | ok |
| 00:35:39 | spastorino | really nice |
| 00:35:43 | evan | yeah! |
| 00:36:37 | spastorino | evan: ohh the output was truncated |
| 00:36:48 | spastorino | there are two more on postgre i think |
| 00:36:55 | spastorino | and one on Railties |
| 00:37:17 | boyscout | CI: rubinius: 1216737 successful: 3458 files, 13651 examples, 41312 expectations, 0 failures, 0 errors |
| 00:38:17 | spastorino | evan: http://pastie.org/966862 |
| 00:38:18 | evan | ok |
| 00:38:20 | spastorino | the second part |
| 00:39:24 | spastorino | 4 and 5 on postgresql are the ones that MRI doesn't has |
| 00:43:19 | evan | so, on linux, seems that the max number of bytes write(2) will accept is 64k |
| 00:43:56 | evan | ie if you pass it more, it will return 64k (a short write) |
| 00:44:05 | spastorino | linux amd64 |
| 00:44:15 | evan | spastorino: ? |
| 00:44:45 | spastorino | evan: are you talking about the output of the tests? |
| 00:44:49 | evan | no |
| 00:44:52 | spastorino | ohh ok |
| 00:46:42 | spastorino | sorry, hehe, i didn't analize the output of the tests and thought that you were talking about postgresql errors or something |
| 00:47:08 | evan | ah |
| 00:47:10 | evan | no no. |
| 00:47:15 | evan | fixing another bug. |
| 00:48:54 | spastorino | ok thanks guys |
| 00:48:56 | spastorino | seeya |
| 00:49:05 | boyscout | Be persistant with write(2) - f667a2b - Evan Phoenix |
| 00:49:44 | evan | spastorino: bye! |
| 00:57:05 | boyscout | CI: rubinius: f667a2b successful: 3458 files, 13651 examples, 41312 expectations, 0 failures, 0 errors |
| 00:58:26 | evan | sweet, curb will compile and run on rubinius in their next release |
| 01:01:11 | brixen | nice |
| 01:01:42 | evan | he just tagged it, so should be out shortly. |
| 01:25:59 | boyscout | Handle object_id's for immediates. Fixes #315. - 6ee0e43 - Evan Phoenix |
| 01:27:37 | evan | kronos_vano: you should be making specs for these issues. |
| 01:28:14 | kronos_vano | evan, for all, that current in tracker? |
| 01:28:26 | evan | for the stuff you've been putting in lately |
| 01:28:29 | evan | the last few |
| 01:28:40 | evan | it helps |
| 01:28:42 | evan | if you can. |
| 01:28:45 | evan | otherwise I have to. |
| 01:29:41 | kronos_vano | np. My bug. My spec. |
| 01:30:37 | boyscout | CI: Commit 6ee0e43 failed. http://github.com/evanphx/rubinius/commit/6ee0e4357e99ede5f4ca080d38cbf649002e69ba |
| 01:30:54 | evan | :/ |
| 01:32:24 | boyscout | Appease the GCC deities. - 44cc696 - Evan Phoenix |
| 01:35:48 | evan | nari: could you send me the url for your book? I want to order it |
| 01:42:21 | boyscout | Show that Proc#call to a Method should go straight through - acac3d0 - Evan Phoenix |
| 01:42:21 | boyscout | Alter protocol for how Proc with a bound method is invoked. Fixes #277. - b504876 - Evan Phoenix |
| 01:46:06 | boyscout | CI: rubinius: 44cc696 successful: 3458 files, 13651 examples, 41312 expectations, 0 failures, 0 errors |
| 01:49:28 | nari | evan: thanks! Do you atend in RubyKaigi2010? I'd like to present the gcbook to you. |
| 01:50:31 | evan | oh my! |
| 01:50:36 | evan | i haven't decided yet. |
| 01:50:44 | brixen | kronos_vano: http://gist.github.com/405850 :) |
| 01:50:57 | brixen | I believe I have the left shift specs sane-itized |
| 01:51:00 | brixen | reasonably |
| 01:51:42 | kronos_vano | brixen, This means my patch doesn't work propely? |
| 01:51:59 | brixen | kronos_vano: not at all! it's just showing the bug :) |
| 01:52:06 | kronos_vano | ah, ok |
| 01:52:11 | kronos_vano | :) |
| 01:52:15 | brixen | finally :) |
| 01:54:04 | nari | evan: ok :) I will e-mail it. |
| 01:56:01 | brixen | evan: I've been trying to put stuff like #define HAVE_RB_THREAD_BLOCKING_REGION 1 in defines.h |
| 01:56:06 | brixen | which ruby.h includes |
| 01:58:12 | kronos_vano | There is an issue with bignum << 2147483648 on 64x platforms (because of using int instead of native_int in our code). But bignum << 2147483648 is very hard operation, so I write test bignum[2147483648] (it's repeat the bug, but more quickly): http://gist.github.com/405854 |
| 01:58:19 | evan | brixen: ah, ok. |
| 01:58:51 | evan | kronos_vano: i'm not worried about a left shift that big. |
| 01:59:01 | evan | i'd prefer to just raise a RangeError actually. |
| 01:59:20 | evan | ok, i'm off for a jog. |
| 01:59:25 | brixen | ok |
| 01:59:50 | kronos_vano | brixen, So, what I should do? |
| 02:00:37 | brixen | first thing you should do is use the guards ;) |
| 02:00:51 | kronos_vano | ar |
| 02:00:52 | brixen | platform_is :wordsize => 32 or 64 |
| 02:00:56 | kronos_vano | 64 I mean |
| 02:01:07 | kronos_vano | I use it! |
| 02:01:11 | brixen | do not do stuff like (0.size*8+1) in the specs |
| 02:01:21 | brixen | what is that value and why is it important? |
| 02:02:31 | brixen | I mean use the guards to avoid these mystery computations |
| 02:02:46 | brixen | since you have the guard there, you have no reason to use 0.size* anything |
| 02:03:08 | kronos_vano | brixen, refresh the page |
| 02:04:01 | brixen | ok, now how does that code example conform to "accepts fixnum" ? |
| 02:04:23 | brixen | wait a sec till I commit these helpers |
| 02:04:24 | brixen | :) |
| 02:04:29 | brixen | and it will make more sense |
| 02:04:33 | kronos_vano | mmmm 2147483648 is fixnum on 64x |
| 02:04:34 | kronos_vano | ok |
| 02:04:36 | kronos_vano | :) |
| 02:04:52 | brixen | yes, but that's confusing in the spec because you have to figure it out |
| 02:05:17 | boyscout | Added fixnum_max(), fixnum_min() helpers to mspec. - c40ad91 - Brian Ford |
| 02:05:17 | boyscout | Fixed Fixnum#<< specs. - b9b52d7 - Brian Ford |
| 02:05:17 | boyscout | Fix left shifting for fixnums - 3601126 - Ivan Samsonov |
| 02:05:29 | brixen | ok, so now we have fixnum_max() and fixnum_min() :) |
| 02:05:43 | kronos_vano | Cheat! :) |
| 02:06:10 | brixen | haha, why? |
| 02:06:39 | brixen | now we need to make the spec actually test the boundary |
| 02:07:42 | kronos_vano | brixen, because you patch mspec! |
| 02:08:03 | brixen | of course, that's why we have mspec :) |
| 02:08:18 | brixen | we have to make the specs as simple as possible |
| 02:08:31 | brixen | the Fixnum boundary is really a PITA |
| 02:09:48 | kronos_vano | dictionary tells to me that PITA is "People Ingesting Tasty Animals". That's you mean? |
| 02:10:51 | brixen | heh, no, pain in the ass |
| 02:10:54 | brixen | sorry :) |
| 02:11:04 | kronos_vano | ahahah |
| 02:11:47 | brixen | PETA is the people for the ethical treatment of animals, so that def of PITA is probably about PETA |
| 02:11:59 | brixen | but the other definition is about Ruby :) |
| 02:12:14 | kronos_vano | I'll remember! |
| 02:12:53 | brixen | so 0xffff_ffff << ((2**31)) => Abort trap on 32bit os x MRI |
| 02:12:54 | brixen | :) |
| 02:13:07 | brixen | ignore the extra parens |
| 02:13:17 | boyscout | CI: rubinius: 3601126 successful: 3458 files, 13661 examples, 41308 expectations, 0 failures, 0 errors |
| 02:13:19 | brixen | anyway, I'm wondering about testing this |
| 02:15:18 | brixen | man, these specs drive me to drink |
| 02:15:28 | kronos_vano | ah |
| 02:15:31 | kronos_vano | ok. |
| 02:16:40 | kronos_vano | English drive me to drink :( |
| 02:16:52 | brixen | heh, sorry |
| 02:17:01 | brixen | Russian would likely do the same to me |
| 02:17:06 | brixen | x10 |
| 02:17:59 | kronos_vano | oh, Russian... We have been studying it for 10!!! years at school. |
| 02:18:10 | kronos_vano | brixen, So, what I should change in spec |
| 02:18:19 | brixen | I'm not sure |
| 02:18:27 | brixen | 0xffff_ffff << ((2**30) - 1) is broken on os x mri |
| 02:18:36 | brixen | and it takes a very long time to complete on rbx |
| 02:18:43 | brixen | probably will use all my memory |
| 02:18:58 | kronos_vano | what about 0xffff_ffff[((2**30) - 1)] |
| 02:20:55 | brixen | well, that's not really testing #<< |
| 02:21:07 | brixen | there's no shifting required to read a bit |
| 02:23:12 | kronos_vano | brixen, in Integer#[] : (self >> index) & 1 |
| 02:23:16 | brixen | http://gist.github.com/405876 :) |
| 02:23:17 | kronos_vano | ar |
| 02:23:18 | kronos_vano | nm |
| 02:23:28 | kronos_vano | << is not >> |
| 02:24:40 | brixen | unfortunately, I can't think of a computationally reasonable way to straight test this |
| 02:24:53 | brixen | this is where formal methods would be nice |
| 02:25:18 | brixen | that int instead of native_int would cause a verification error |
| 02:25:56 | kronos_vano | verification error? |
| 02:26:44 | brixen | if we were formally verifying properties of http://gist.github.com/405876 |
| 02:26:55 | brixen | er Integer* Bignum::right_shift(STATE, Fixnum* bits) |
| 02:27:12 | brixen | we could not assign bits->to_native() to int |
| 02:27:47 | brixen | I wonder how we could make this a type error |
| 02:27:57 | brixen | without it being a pita for other stuff |
| 02:33:23 | slava | ( scratchpad ) [ HEX: ffff,ffff 30 2^ 1 - shift drop ] time |
| 02:33:24 | slava | Running time: 0.721964015 seconds |
| 02:35:21 | brixen | slava: nice |
| 02:35:59 | brixen | are these machine ints are bignums? |
| 02:36:05 | brixen | s/are/or/ |
| 02:36:12 | slava | bignums I would hope |
| 02:36:31 | brixen | what are you using for bignums? your own lib? |
| 02:36:47 | slava | scheme48 code |
| 02:36:51 | brixen | hmm |
| 02:37:11 | slava | http://gitweb.factorcode.org/gitweb.cgi?p=factor/.git;a=blob;f=vm/bignum.cpp;hb=HEAD |
| 02:39:26 | brixen | slava: on rbx, running time is 0.398376 |
| 02:39:38 | brixen | slava: try to print out the number though |
| 02:39:44 | kronos_vano | :D |
| 02:41:20 | slava | brixen: that takes ages |
| 02:41:25 | brixen | heh |
| 11:20:00 | kronos_vano | Does someone have rubinius-head ? |
| 11:22:34 | dbussink | kronos_vano: i have the legs here, dunno where the head went |
| 11:23:04 | kronos_vano | dbussink, Pls, try to run "Marshal.dump(String.clone.new)" code in bin/rbx |
| 11:23:11 | kronos_vano | Is it hang? |
| 11:28:44 | matthewd | kronos_vano: Yup |
| 11:28:52 | kronos_vano | tnx. |
| 11:29:29 | matthewd | Well, that's e6c32af |
| 11:30:21 | kronos_vano | String2 = String.clone |
| 11:30:21 | kronos_vano | String2.new(String2.new) |
| 11:30:22 | kronos_vano | :) |
| 11:31:44 | dbussink | kronos_vano: yeah, hangs here too |
| 11:32:24 | kronos_vano | ok. I think I cat fix it |
| 11:35:19 | kronos_vano | String#initialize => StringValue(arg) => to_str(alias for to_s) => String#replace => StringValue => ... |
| 12:31:54 | jhchabran | Hi, I just installed Rubyinius, and I get some strange errors when running specs throught Textmate RSpec bundle : http://pastie.org/967483 any clues from where it comes ? |
| 12:32:05 | jhchabran | s/Rubyinus/Rubinius/ |
| 12:32:41 | jhchabran | specs run correctly outside TM |
| 12:46:52 | kronos_vano | evan, I've updated #316. I dunno how to fix it. |
| 12:51:07 | kronos_vano | :D |
| 12:51:09 | kronos_vano | "Railsinius" |
| 12:54:16 | dbussink | jhchabran: looks like it comes from option parser |
| 12:54:25 | dbussink | jhchabran: can you find the command that textmate executes? |
| 12:54:36 | dbussink | probably uses some command line options that you don't use when outside TM |
| 12:54:51 | jhchabran | dbussink: my rvm_wrapper may have something to do with this |
| 12:56:06 | jhchabran | dbussink: ${TM_RUBY:-ruby} /tmp/textmate-command-$$.rb; exit_status=$?; rm /tmp/textmate-command-$$.rb; exit $exit_status |
| 12:56:22 | jhchabran | it's pretty straightforward, no weird parameters there :/ |
| 12:56:56 | wayneeseguin | "Insinius" |
| 14:01:47 | spastorino | evan: http://github.com/rails/rails/commit/5573ab2047b07c3de08d40566de8a8fc80a676cf |
| 14:10:04 | ddfreyne | what’s the reasoning behing that? |
| 14:10:10 | ddfreyne | s/behing/behind/ |
| 14:11:06 | spastorino | ddfreyne: that was for me? |
| 14:11:25 | ddfreyne | yeah… was wondering what the reason for disabling ruby-debug elsewhere is |
| 14:12:04 | spastorino | that's going to change in the future |
| 14:13:14 | spastorino | ddfreyne: but you're right |
| 14:13:42 | spastorino | the only thing we do was disabling for Rubinius |
| 14:13:53 | spastorino | i'm installing all the platforms |
| 14:16:42 | spastorino | perhaps i should fix now because as far as i know jruby supports ruby-debug |
| 14:17:41 | spastorino | i don't know what about another alternatives like macruby, ironruby, etc |
| 16:05:53 | evan | spastorino: ah! thanks for that! |
| 16:06:06 | evan | spastorino: last night I was looking over the ruby-debug situation |
| 16:06:22 | evan | sadly, it seems that right now the ruby-debug gem will only work on ruby 1.8 |
| 16:06:34 | evan | and it's very tangled up with 1.8s internals as well |
| 16:06:49 | evan | i'd love to see a ruby-debug gem that supports more than 1.8, but thats going to be hard to do. |
| 16:07:02 | spastorino | yeah there's a ruby-debug19 |
| 16:07:14 | spastorino | i don't know them internally |
| 16:19:21 | brixen | mri fixnum/bignum #>> #<< is pita |
| 16:21:05 | brixen | #<< -n is equiv to #>> n except that #>> n will accept a Bignum for n |
| 16:21:18 | brixen | which is stupid |
| 16:23:24 | evan | ug. |
| 16:23:51 | brixen | and of course mri just passes obj around anywhere it pleases |
| 16:24:08 | brixen | oh, want to operate on this fixnum like a bignum, just pass it along to the bignum stuff |
| 16:24:12 | brixen | let it sort it out |
| 16:24:15 | brixen | so crazy |
| 16:26:49 | evan | brianmario: any luck on using rb_thread_blocking_region? |
| 16:27:32 | brianmario | didn't get a chance to try it out last night, I installed the latest from rbx-head and got as far as trying to create the makefile by running extconf and got some error (sec I'll gist it) |
| 16:28:22 | brianmario | "Tried to use object of type System (45) as type String (51) (TypeError)" |
| 16:28:24 | brianmario | http://gist.github.com/406493 |
| 16:28:43 | brianmario | that's from doing |
| 16:28:51 | brianmario | rbx ext/extconf.rb |
| 16:29:22 | evan | geez. |
| 16:29:24 | evan | thats weird. |
| 16:29:34 | evan | are you getting it consistently? |
| 16:55:06 | evan | man, so tempted to just raise an error if someone tries to clone/dup a Class |
| 17:02:24 | brixen | probably should |
| 17:02:58 | brixen | I'm so tempted to raise an error on #>> or #<< if the arg is a Bignum |
| 17:02:59 | evan | it confuses String's methods so hard |
| 17:03:13 | evan | brixen: i'd be ok with that. |
| 17:03:17 | brixen | ok, done |
| 17:03:24 | brixen | I'll add rbx specific specs |
| 17:03:42 | brixen | mri's RangeError based on fitting in a long is stupid as fock already |
| 17:03:51 | evan | hah |
| 17:03:52 | evan | yes. |
| 17:04:01 | brixen | the code is such a nest for these 2 methods |
| 17:26:11 | boyscout | Add missing header files to scan for mode_t - 4cbdcc3 - Evan Phoenix |
| 17:30:52 | evan | UG. |
| 17:30:59 | evan | can't disable Class#clone entirely. |
| 17:31:04 | evan | singleton uses it. |
| 17:35:06 | brixen | :( |
| 17:35:27 | kronos_vano | :/ |
| 17:35:59 | brixen | can we rewrite it? |
| 17:36:19 | evan | i suppose, but how will you implement clone? |
| 17:36:42 | evan | i'm thinking about just disabling clone of String/Array for now |
| 17:36:44 | brixen | we could provide __clone__ for it |
| 17:37:17 | evan | ug. singleton uses Thread.critical. |
| 17:37:20 | evan | megafail! |
| 17:37:28 | brixen | +2 for rewrite! :) |
| 17:38:01 | evan | man, it needs a mega rewrite. |
| 17:38:16 | evan | wait wait |
| 17:38:20 | evan | why is this clone here..... |
| 17:38:43 | evan | why doesn't Singleton.clone return self... |
| 17:38:53 | brixen | never saw a Class#clown I didn't wonder about... :) |
| 17:39:05 | evan | esp. since the behavior according to the spec is that a clone'd Singleton returns the same instance |
| 17:45:23 | boyscout | CI: rubinius: 4cbdcc3 successful: 3458 files, 13661 examples, 41308 expectations, 0 failures, 0 errors |
| 17:52:15 | boyscout | Remove unnecessary test - 8ad1a0b - Evan Phoenix |
| 17:52:16 | boyscout | Disable ability to clone/dup Class objects. Fixes #316. - d1deaa7 - Evan Phoenix |
| 18:00:09 | boyscout | CI: rubinius: d1deaa7 successful: 3458 files, 13661 examples, 41307 expectations, 0 failures, 0 errors |
| 18:35:00 | boyscout | Teach Signal.trap the rest of it's tricks. Fixes #314. - 3e03dd6 - Evan Phoenix |
| 18:35:26 | evan | i wonder how hard it's going to be to get rmagic to compile |
| 18:35:38 | evan | and by that, I mean just getting imagemagick to compile. |
| 18:35:47 | brixen | worst thing about rubyspec... whenever I try to fix some specs up real nice I find so much ridiculous MRI behavior it makes me sad |
| 18:35:51 | brixen | and wonder why bother |
| 18:36:10 | brixen | evan: I installed from ports, which wasn't hard |
| 18:36:17 | evan | ok, i'm trying that now. |
| 18:36:18 | brixen | but Defiler suggested homebrew |
| 18:36:26 | brixen | which sounds like a good idea too |
| 18:36:28 | evan | i've still got ports installed. |
| 18:36:33 | evan | FUCK PORTS |
| 18:36:36 | evan | why is it installing X |
| 18:36:48 | brixen | because imagemagick is a horrid lib |
| 18:36:56 | brixen | for some values of horrid |
| 18:37:11 | brixen | I should say, X is a horrid system, and a lot of software was built for it |
| 18:38:49 | evan | oh |
| 18:38:51 | evan | +no_x11 |
| 18:38:56 | evan | maybe I can make this work. |
| 18:42:03 | evan | nicksieger: hi |
| 18:42:10 | nicksieger | hey |
| 18:43:16 | boyscout | CI: rubinius: 3e03dd6 successful: 3458 files, 13661 examples, 41307 expectations, 0 failures, 0 errors |
| 18:44:18 | evan | brixen: started working on the debugger last night |
| 18:44:24 | brixen | saweeet |
| 18:44:42 | evan | got it rewired so that a thread will pass control to a debugger thread when a breakpoint is set on an ip |
| 18:44:52 | brixen | excellent |
| 18:45:05 | evan | going to have it pass the VariableScope, CompiledMethod, and StaticScope |
| 18:45:17 | evan | which means that I can synthesize a Binding object from them |
| 18:45:43 | brixen | nice |
| 18:46:50 | evan | need to work out how I want to implement next/step |
| 18:47:26 | brixen | hmm |
| 18:47:43 | brixen | could you work that into the debug interp? |
| 18:48:05 | evan | i probably will, yeah |
| 18:48:07 | evan | to have it assist |
| 18:48:09 | brixen | since nexti would be just the next instruction and next could be figured out from the lines to ip tuple |
| 18:48:51 | evan | I'll need to work out step for methods |
| 18:49:29 | evan | so that I can have the method called and transfer control to the debugger at ip 0 |
| 18:49:30 | brixen | what's the behavior of step? step into? |
| 18:50:21 | brixen | ok, yeah step into |
| 18:50:21 | evan | yeah |
| 18:50:33 | evan | hit step on a method call and you enter the method |
| 18:50:36 | brixen | right |
| 18:51:05 | evan | there is the "issue" of when you're on a line like |
| 18:51:10 | evan | puts a.thing |
| 18:51:12 | evan | and hit s |
| 18:51:15 | brixen | yeah |
| 18:51:51 | evan | also, ruby-debug is sad town. |
| 18:52:00 | evan | and linecache |
| 18:52:06 | evan | the big mess of code that uses MRI |
| 18:52:19 | evan | is all to implement CompiledMethod#lines |
| 18:52:21 | evan | basically. |
| 18:52:28 | evan | it's so you can do |
| 18:52:50 | evan | Lines.lines("class A\ndef foo\nputs 'hello'\nend\nend\n") => [1,2,3] |
| 18:52:57 | evan | ie, the lines in the code. |
| 18:53:29 | brixen | huh |
| 18:53:46 | brixen | well, we don't need any of it, right? |
| 18:53:50 | evan | yep. |
| 18:54:03 | brixen | win |
| 18:54:23 | brixen | I can't think of any mri code that we use that we wouldn't replace given the time to do so |
| 18:54:35 | evan | pretty much. |
| 18:54:35 | brixen | sadly enough |
| 19:00:38 | cyndis | so, ruby-opengl does "RArray* obj = RARRAY(ary); blah(RARRAY_LEN(obj));". do you think that this should be classified as a ruby-opengl bug? |
| 19:01:23 | evan | cyndis: yes. |
| 19:01:27 | evan | bug. |
| 19:01:30 | cyndis | ok, good. |
| 19:01:39 | evan | well, it's not technically a bug. |
| 19:01:42 | evan | but it's bad practice. |
| 19:01:46 | cyndis | yes |
| 19:02:11 | cyndis | it's nasty because gcc doesn't catch it (it only gives a warning) and rbx just crashes |
| 19:02:29 | evan | ah |
| 19:02:32 | evan | yes, thats a bug |
| 19:02:37 | evan | now that I think about it |
| 19:02:50 | evan | because the RArray will point into the middle of the object |
| 19:03:01 | evan | and RARRAY_LEN will cast obj back to a normal object |
| 19:03:06 | evan | so the len will be read from the wrong place |
| 19:03:09 | cyndis | yes |
| 19:07:59 | kronos_vano | evan, Should I write spec for trap? |
| 19:08:23 | evan | yes. |
| 19:08:28 | kronos_vano | k |
| 19:09:56 | kronos_vano | evan, And what about yesterday's patch for Bignum shifting? (int => native_int) |
| 19:10:16 | evan | ask brixen |
| 19:10:19 | evan | i think he wrote it already. |
| 19:11:04 | kronos_vano | brixen, ^^ |
| 19:13:47 | brixen | kronos_vano: you should commit the patch |
| 19:14:02 | kronos_vano | without spec? |
| 19:14:10 | brixen | kronos_vano: there is not a way to calculate that value reasonably, but n->to_native() should never be assign to an int |
| 19:14:22 | kronos_vano | ok |
| 19:14:23 | brixen | that should be a type error, but I don't know how to do that |
| 19:14:39 | brixen | we can't calculate that value, especially not on 64bit |
| 19:14:50 | brixen | on 32bit, it takes 135 million bytes |
| 19:15:21 | brixen | we could use a completely different type for to_native() |
| 19:18:19 | evan | brixen: i wish that g++ just had stronger integer casting rules. |
| 19:18:40 | evan | using a completely different type thats not an int at all will just cause more grief |
| 19:20:42 | brixen | probably |
| 19:20:52 | brixen | there's just no feasible way to spec that |
| 19:21:01 | brixen | and it sucks the type system doesn't catch it |
| 19:21:23 | brixen | but it is very easy to audit too |
| 19:21:30 | brixen | grep to_native() :) |
| 19:22:59 | evan | yep |
| 19:31:34 | boyscout | to_native() should be assign to native_int - d98c107 - Ivan Samsonov |
| 19:39:43 | boyscout | CI: rubinius: d98c107 successful: 3458 files, 13661 examples, 41307 expectations, 0 failures, 0 errors |
| 20:02:15 | kronos_vano | Oh, who did write bignum math stuff? "Bug on bug" :( |
| 20:59:09 | brianmario | evan: sorry - got crazy busy right after I sent that msg earlier :P |
| 20:59:33 | brianmario | so I narrowed the "bug" down to the fact that I had a magic comment at the top of the file right before the require to mkmf |
| 20:59:35 | evan | oh, no problem. |
| 20:59:41 | brianmario | removing the comment seemed to fix it |
| 20:59:44 | evan | weird. |
| 20:59:48 | evan | what was the comment? |
| 20:59:53 | brianmario | # encoding: UTF-8 |
| 21:00:02 | evan | thats weird it would cause that |
| 21:00:07 | brianmario | wait |
| 21:00:09 | brianmario | now it's working |
| 21:00:11 | evan | hopefully I can repro it. |
| 21:00:15 | brianmario | now I can't :P |
| 21:00:22 | evan | such is software. |
| 21:00:36 | brianmario | oh wait, lemme wipe the rbc files and try again |
| 21:00:49 | brianmario | wtf, yeah it works fine now |
| 21:00:52 | brianmario | heh |
| 21:05:10 | evan | what, the, fuck. |
| 21:05:22 | evan | imagemagick is spinning up background threads. |
| 21:06:44 | boyscout | Fixed Fixnum#>> specs. - 9fc80b0 - Brian Ford |
| 21:06:44 | boyscout | Added rbx specific Fixnum#<<, #>> specs. - b2acbcd - Brian Ford |
| 21:06:44 | boyscout | Fixed Fixnum and Bignum bit shifts. - e851fa1 - Brian Ford |
| 21:06:44 | boyscout | Fixed Fixnum#[] specs. - daec8cb - Brian Ford |
| 21:06:44 | boyscout | Fixed Bignum#<<, #>> specs. - 15d14c6 - Brian Ford |
| 21:07:19 | brixen | probably nothing imagemagick does could suprise me |
| 21:07:37 | brixen | I really wish I knew how to help people write decent specs |
| 21:07:51 | brixen | I don't get why decomposition to cases is so hard |
| 21:08:05 | brixen | seriously, any insight on how to explain this would be great |
| 21:08:12 | brixen | cus I'm so sick of fixing specs |
| 21:12:27 | evan | brixen: :/ |
| 21:14:43 | boyscout | CI: rubinius: 15d14c6 successful: 3460 files, 13702 examples, 41319 expectations, 0 failures, 0 errors |
| 21:22:12 | boyscout | Flesh out C-API to compile ImageMagick. Fixes #294. - 56b08bf - Evan Phoenix |
| 21:22:35 | evan | so, what should we do about the issue about compiling with mingw |
| 21:22:41 | evan | sounds like he got as for as the other effort did |
| 21:22:54 | evan | and that we need to address the ability to import symbols from the current process on windows |
| 21:26:19 | brixen | yeah, the importing symbols is a big one |
| 21:28:07 | evan | ok, i closed his issue saying he needs to make a fork of rubinius with his code on it. |
| 21:28:25 | evan | 0 issues! woo! |
| 21:28:30 | brixen | woohoo! |
| 21:28:40 | evan | we weathered the first storm! |
| 21:29:03 | evan | i'm thinking perhaps 1.0.1 next week |
| 21:29:06 | evan | monday perhaps |
| 21:29:07 | brixen | ok |
| 21:29:13 | evan | since we've fixed a bunch of things |
| 21:29:16 | evan | including some crash bugs. |
| 21:29:17 | brixen | I'm syncing rubyspec right now |
| 21:29:20 | evan | ok |
| 21:29:21 | brixen | yeah |
| 21:29:41 | brixen | we've got features to start commiting to master |
| 21:29:56 | evan | actually |
| 21:30:05 | evan | i'm going to make a 1.0-bugfix branch now. |
| 21:30:09 | evan | since there are zero issues. |
| 21:30:12 | brixen | that's a good idea |
| 21:30:17 | brixen | I was just going to suggest it |
| 21:30:26 | bignum_hater | there is one actually |
| 21:30:28 | brixen | maybe we should make the branch right after a release |
| 21:30:47 | brixen | so we can shuffle stuff to it and still keep master the dev branch |
| 21:31:01 | evan | bignum_hater: there is what? |
| 21:31:05 | bignum_hater | http://gist.github.com/406862 |
| 21:31:18 | bignum_hater | Bignum#divmod |
| 21:31:31 | evan | huh? |
| 21:31:49 | evan | what are you talking about? |
| 21:31:54 | boyscout | CI: rubinius: 56b08bf successful: 3460 files, 13704 examples, 41321 expectations, 0 failures, 0 errors |
| 21:32:29 | boyscout | Flesh out C-API to compile ImageMagick. Fixes #294. - 56b08bf - Evan Phoenix (1.0-bugfix) |
| 21:32:44 | evan | oh thats weird. |
| 21:32:45 | evan | but fine. |
| 21:33:31 | evan | ok, so now bugfixes need to be commited to both branches |
| 21:33:38 | evan | until 1.0.1 is out |
| 21:33:42 | evan | people can just commit to master |
| 21:33:49 | evan | and i'll push them across to the bugfix branch |
| 21:33:55 | evan | so that I can figure out a good workflow |
| 21:34:10 | toulmean | evan: cherry pick ? |
| 21:34:13 | brixen | yeah, seems like we should cherry pick them |
| 21:34:14 | toulmean | that's a good approach imo |
| 21:34:18 | brixen | yeah |
| 21:34:18 | evan | toulmean: yeah, most likely. |
| 21:34:32 | evan | or fast-forward if possible |
| 21:34:34 | toulmean | sorry, giving advice, I'm not even active on this. |
| 21:34:43 | evan | toulmean: thats fine :) |
| 21:34:51 | toulmean | I can tell from my xp that cherry pick is ok |
| 21:34:54 | evan | i like opinions. |
| 21:35:03 | toulmean | a bit risky and mind blowing sometimes |
| 21:35:10 | evan | toulmean: it doesn't get confusing that there is commits that are nearly identical? |
| 21:35:16 | toulmean | I would recommend to accept commits that are really atomic |
| 21:35:26 | toulmean | ask people to rebase their contributions |
| 21:35:30 | toulmean | before you accept them |
| 21:35:40 | evan | they already do. |
| 21:35:42 | toulmean | so that you get really: one commit, one thing |
| 21:35:44 | evan | we've got a fine workflow |
| 21:35:46 | toulmean | ok then you're good. |
| 21:35:54 | evan | our workflow atm is fine. |
| 21:35:56 | toulmean | and you know better than I do :) |
| 21:36:07 | evan | people are going to need to dispiline themselves to seperate out features from bugfixes |
| 21:36:14 | evan | but people have actually been pretty good about that up to now. |
| 21:36:18 | evan | so shouldn't be a big deal |
| 21:36:33 | evan | one thing that would help is if people put a special tag in their commit message |
| 21:36:36 | evan | perhaps |
| 21:36:37 | evan | @bugfix |
| 21:36:48 | evan | that lets me pick them out easier |
| 21:36:58 | evan | either @bugfix or Fixes #<num> |
| 21:37:02 | evan | thoughts? |
| 21:37:25 | brixen | Fixes/Closes # seems least burdensome |
| 21:37:31 | brixen | since we are doing that already |
| 21:37:40 | brixen | if we restrict issues to bugs |
| 21:37:43 | evan | ok, and if there is no issue number for the bug? |
| 21:37:48 | evan | or should we require an issue |
| 21:37:49 | brixen | hm |
| 21:37:55 | brixen | perhaps require an issue |
| 21:37:56 | evan | Fixes #NAN |
| 21:38:06 | brixen | makes it easier to search for issues too |
| 21:38:51 | brixen | Fixes #NaN works too |
| 21:38:57 | brixen | I wonder what gh does with that |
| 21:39:07 | evan | i'd prefer to have a way to mark a commit that there is no issue for as a bugfix too |
| 21:39:17 | evan | because it's often that i'll fix a crash or something while working on something else |
| 21:39:22 | evan | and want to commit it seperately |
| 21:39:26 | brixen | right |
| 21:39:38 | brixen | might be worthwhile to just open an issue |
| 21:39:53 | brixen | even with just a title and "I'm working on this" |
| 21:40:12 | evan | hrm. |
| 21:40:34 | kronos_vano | http://gist.github.com/406868 case+patch |
| 21:41:18 | brixen | kronos_vano: spec |
| 21:42:05 | kronos_vano | brixen, working on it. |
| 21:42:13 | brixen | why is this IO#reopen spec failing on all 3 versions of ruby... |
| 21:42:20 | evan | it is? |
| 21:42:26 | evan | which one? |
| 21:42:39 | brixen | core/io/reopen_spec.rb:100 |
| 21:43:19 | evan | hrm |
| 21:43:27 | evan | fuck. |
| 21:43:31 | evan | thats my bad. |
| 21:43:35 | evan | i swear it had this behavior. |
| 21:43:38 | evan | wtf. |
| 21:43:42 | brixen | hmm |
| 21:44:40 | evan | ah crap |
| 21:44:48 | evan | maybe because the mode of @io is just r |
| 21:45:05 | evan | it opens the new file with the same mode to fopen |
| 21:45:30 | evan | could you check that using an io opened for write fixes it? |
| 21:45:36 | brixen | yep |
| 21:45:39 | brixen | one sec.. |
| 21:47:32 | brixen | man, crazy amounts of water falling out of the sky |
| 21:52:19 | BrianRice-work | indeed. |
| 21:54:51 | BrianRice-work | my iPad makes a pretty good weather radar widget |
| 21:56:02 | evan | brixen: ok, first cut at this |
| 21:56:07 | evan | i'm not going to wire up control flow |
| 21:56:11 | evan | (this is the debugger) |
| 21:56:27 | evan | it it will be an on-demand data inspector only |
| 21:56:38 | evan | thats still pretty useful. |
| 21:57:14 | brixen | not sure I follow |
| 21:57:27 | evan | rather than wait until i've got something that can even step |
| 21:57:37 | evan | i'm going to wire it up so you can set breakpoints |
| 21:57:42 | evan | and inspect the program at the breakpoints |
| 21:57:43 | brixen | oh ok, cool |
| 21:57:43 | evan | only. |
| 21:57:55 | evan | you won't be able to move around though |
| 21:58:02 | evan | you can just set other explicit breakpoints |
| 21:58:05 | brixen | just set another bt |
| 21:58:06 | brixen | :) |
| 21:58:07 | brixen | yeah |
| 21:58:08 | evan | sure |
| 21:58:10 | brixen | er br |
| 21:58:47 | brianmario | evan: it looks like have_func('rb_thread_blocking_region') is returning false in my extconf against rbx |
| 21:59:00 | brixen | ok, so #reopen will create the file if the original file has write mode |
| 21:59:08 | evan | brianmario: yes, thats true |
| 21:59:16 | brianmario | but when it goes to compile, it looks like everything works ok |
| 21:59:17 | evan | but I hardcode provide HAVE_RB_THREAD_BLOCKING_REGION in the ruby.h |
| 21:59:22 | brianmario | ah |
| 21:59:23 | brixen | but now these specs have some wacky interaction that is causing the reopened file not to be rm'd |
| 21:59:27 | brixen | ugh |
| 21:59:37 | evan | mkmf doesn't really "work" right because it requires rbx be a shared library |
| 21:59:41 | evan | to detect internal symbols. |
| 22:00:00 | evan | so we hardcode the #defines it would set |
| 22:00:08 | evan | as needed. |
| 22:00:25 | brianmario | also, unable to install rspec to try my specs out - getting this from trying to invoke "gem" |
| 22:00:26 | brianmario | http://gist.github.com/406892 |
| 22:00:40 | evan | everytime? |
| 22:00:42 | brianmario | yeah |
| 22:00:52 | brianmario | I installed with rvm, and I'm not sure how much I trust it yet :P |
| 22:01:18 | evan | ok, could you run it under gdb and get me some data from the crash point? |
| 22:01:23 | brianmario | sure, sec |
| 22:01:26 | brianmario | just a bt? |
| 22:01:32 | evan | lets start with that |
| 22:01:37 | evan | don't exit it once you've got the bt. |
| 22:02:14 | brianmario | so right away - vm/builtin/exception.cpp:124 |
| 22:02:20 | brianmario | was->type_name << " (" << was->type << ")"; |
| 22:02:26 | brianmario | EXC_BAD_ACCESS |
| 22:02:32 | brianmario | gisting the bt |
| 22:02:47 | evan | k |
| 22:02:51 | brianmario | http://gist.github.com/406900 |
| 22:03:06 | evan | hrm |
| 22:03:14 | evan | can you print was->type_name and was->type? |
| 22:04:10 | brianmario | "Cannot access memory at address" for both |
| 22:04:35 | brianmario | 0x88 and 0x80 were the addresses |
| 22:04:45 | evan | ok |
| 22:04:46 | evan | go up |
| 22:04:50 | evan | into instructions.cpp |
| 22:04:57 | evan | can you 'p e' |
| 22:06:38 | kronos_vano | brixen, http://gist.github.com/406901 |
| 22:06:48 | brianmario | my gdb skills are pretty limited |
| 22:06:54 | evan | thats ok |
| 22:06:55 | brianmario | how do you go "up" |
| 22:06:59 | evan | up |
| 22:07:02 | brianmario | haha |
| 22:07:17 | brianmario | Unable to access variable "e" |
| 22:07:17 | brianmario | $1 = <variable optimized away by compiler> |
| 22:07:21 | evan | i'll put exactly what yous should type in `` |
| 22:07:22 | evan | ok |
| 22:07:24 | brianmario | ok |
| 22:08:19 | evan | `b rubinius::TypeError::raise` |
| 22:08:31 | evan | `r` |
| 22:08:32 | brianmario | k |
| 22:08:37 | evan | answer yes that you want to restart |
| 22:08:45 | evan | it will chug along and hopefully stop |
| 22:08:45 | brianmario | k, it's at the bp |
| 22:08:53 | evan | ok, now `c` |
| 22:08:58 | brianmario | k |
| 22:08:59 | evan | did it crash? |
| 22:09:01 | brianmario | yeah |
| 22:09:04 | evan | perfect |
| 22:09:11 | evan | `r` |
| 22:09:13 | evan | yes, you want to restart |
| 22:09:17 | brianmario | k |
| 22:09:19 | evan | then, when it hits the bp |
| 22:09:21 | evan | `bt` |
| 22:09:23 | evan | and gist that. |
| 22:09:50 | brianmario | http://gist.github.com/406908 |
| 22:09:52 | brixen | kronos_vano: too many cases in one spec |
| 22:10:24 | evan | hm, interesting. |
| 22:10:55 | evan | brianmario: ok |
| 22:10:57 | evan | `up` |
| 22:11:05 | evan | `p call_frame->print_backtrace(state)` |
| 22:11:08 | evan | that will output a ruby backtrace |
| 22:11:09 | evan | gist that. |
| 22:11:22 | kronos_vano | brixen, I can split it in a > b and b > a |
| 22:11:30 | brianmario | http://gist.github.com/406909 |
| 22:12:31 | evan | oh wonderful. |
| 22:12:33 | evan | ok... |
| 22:14:19 | evan | hm |
| 22:18:20 | kronos_vano | brixen, Split it in 4 cases. |
| 22:20:58 | evan | brianmario: hm |
| 22:21:08 | evan | nuke the .rbc file for that rubygems_plugin.rb |
| 22:21:12 | evan | see if that makes a difference. |
| 22:21:17 | brianmario | k |
| 22:22:05 | brianmario | yep |
| 22:22:15 | brianmario | but the first line of output says |
| 22:22:15 | brianmario | error loading "/Users/brianmario/.rvm/gems/rbx-head/gems/gemcutter-0.5.0/lib/rubygems_plugin.rb": Tried to use object of type System (45) as type String (51) (TypeError) |
| 22:22:18 | brianmario | but it runs |
| 22:22:28 | evan | ok, we get that again... |
| 22:22:43 | evan | interesting.. |
| 22:23:20 | evan | brianmario: you get that running what command? |
| 22:23:34 | brianmario | just gem |
| 22:23:38 | evan | gem what |
| 22:23:44 | brianmario | no params |
| 22:23:44 | evan | i need the exact thing. |
| 22:23:48 | brianmario | `gem` |
| 22:23:58 | evan | so you're expecting to see the help? |
| 22:24:08 | brianmario | oh it runs and the help shows up |
| 22:24:14 | brianmario | but that line is at the top |
| 22:24:16 | evan | run it again |
| 22:24:19 | evan | to get you the crash? |
| 22:24:23 | brianmario | no crash |
| 22:24:27 | evan | :/ |
| 22:24:27 | brianmario | seems to run ok now |
| 22:24:33 | brianmario | just with that same line at the top every time |
| 22:24:42 | evan | right. |
| 22:25:03 | evan | hrm |
| 22:25:12 | evan | ok, i'm going to backburner this for the moment. |
| 22:25:24 | evan | something is up, but i need to get the old subconscience work on it. |
| 22:26:12 | brianmario | np |
| 22:26:23 | brianmario | I'll mess around later and see if I can find anything more specific |
| 22:26:29 | evan | k |
| 22:26:30 | brianmario | thanks |
| 22:26:33 | evan | no prob. |
| 22:26:42 | evan | thanks for soldiering through with me |
| 22:26:54 | brianmario | np, felt like performing remote surgery ;) |
| 22:27:00 | evan | it was :) |
| 22:27:10 | brianmario | fwiw I was able to install rspec fine |
| 22:27:13 | evan | brixen: so, how would you like to be able set a breakpoint? |
| 22:27:19 | evan | brianmario: ok |
| 22:27:42 | agardiner | hey evan, brixen! |
| 22:27:50 | evan | well hi there adam! |
| 22:27:57 | agardiner | just saw the news about 1.0!! |
| 22:28:00 | evan | yeah! |
| 22:28:03 | agardiner | great work guys |
| 22:28:07 | evan | thanks! |
| 22:29:09 | evan | agardiner: started work on fixing the debugger and making it more robust last night |
| 22:29:19 | evan | i've opted for a whole different approach than we had before. |
| 22:29:24 | agardiner | oh, good stuff |
| 22:29:35 | agardiner | how are you going? |
| 22:29:38 | evan | I've added a LookupTable to every CompiledMethod |
| 22:29:45 | evan | that will map ip => object |
| 22:29:52 | evan | the object can be anything the debugger wants |
| 22:30:01 | evan | it's presense alone signifies there is a breakpoint |
| 22:30:07 | agardiner | excellent! |
| 22:30:17 | evan | and I use the channel switch mechanism to pass that object, plus state info, to the debugger on the channel |
| 22:30:18 | agardiner | that is very flexible |
| 22:30:22 | evan | yeah |
| 22:30:31 | evan | and it lets the debugger pass state between breakpoints trivially |
| 22:30:36 | evan | something that was kind of hard to manage before |
| 22:30:38 | agardiner | awesome |
| 22:30:47 | evan | you'd have a stop and then have to figure out "um, why did we stop here again?" |
| 22:30:48 | agardiner | yeah, and no need to twiddle the iseq |
| 22:30:53 | evan | yep |
| 22:31:06 | evan | each Thread has a debugger_thread slot now too |
| 22:31:11 | agardiner | man, that would gut breakpoint.rb |
| 22:31:22 | evan | yeah |
| 22:31:33 | agardiner | whats the debugger_thread used for? |
| 22:31:46 | evan | thats where the channel to use for a thread that hit a breakpoint should use |
| 22:32:03 | evan | when a breakpoint is seen, it looks to see if the current thread has a debugger thread registered |
| 22:32:12 | evan | if so, it passes control to that thread via a Channel |
| 22:32:32 | evan | i'm going to deal with the bootstrapping problem seperately |
| 22:32:37 | agardiner | oh, neat - so you can debug more than one thread at a time? |
| 22:32:43 | evan | sure |
| 22:32:51 | evan | it would be confusing, but sure. |
| 22:32:53 | evan | it's explicit |
| 22:32:59 | evan | so normally you'd probably want to just debug one. |
| 22:33:19 | agardiner | right - we had a global debug channel before |
| 22:33:45 | evan | right |
| 22:33:52 | evan | which adds to the chaos |
| 22:34:01 | evan | so, how did we allow a breakpoint to be set before? |
| 22:34:12 | evan | ie, you need to take some user input and map that to a CompiledMethod and an ip |
| 22:34:22 | evan | the simple case is.. simple |
| 22:34:25 | agardiner | we had a couple of ways |
| 22:34:28 | evan | b Class#method:line |
| 22:34:40 | evan | but what if Class and/or method doesn't exist yet? |
| 22:34:41 | agardiner | you could use Kernel#breakpoint in code |
| 22:34:47 | evan | sure |
| 22:34:54 | evan | so an explicit breakpoint |
| 22:35:09 | agardiner | that was never handled before |
| 22:35:14 | agardiner | on the TODO list |
| 22:35:17 | evan | ok |
| 22:35:28 | evan | so you need to spin up your code |
| 22:35:37 | evan | then break into the debugger to set the breakpoints |
| 22:35:40 | evan | then run the code. |
| 22:35:50 | agardiner | kinda |
| 22:35:54 | evan | ok |
| 22:36:01 | agardiner | you could start any script with the -debug option |
| 22:36:09 | agardiner | and then set breakpoints as you went |
| 22:36:29 | agardiner | not sure if any of that is still there |
| 22:37:26 | evan | well |
| 22:37:34 | evan | what i'm doing is wiring it back up |
| 22:37:38 | evan | little bit at a time |
| 22:37:43 | evan | so at the end of today |
| 22:37:49 | evan | i want to have a way to inspect data at a breakpoint |
| 22:37:54 | evan | but not move from that breakpoint |
| 22:37:56 | agardiner | hmm... |
| 22:37:58 | evan | ie, no next/step, etc |
| 22:38:02 | evan | i'm nearly there already |
| 22:38:10 | agardiner | last time i looked, the Context object had gone away |
| 22:38:11 | evan | just need to figure out how/where to let a user set breakpoints. |
| 22:38:30 | agardiner | i started re-wiring it, but never finished |
| 22:38:35 | evan | yeah |
| 22:38:36 | evan | no prob |
| 22:38:40 | evan | we've got a lot of good stuff in here still |
| 22:38:43 | evan | just need to shuffle it around. |
| 22:38:58 | evan | seems like the easiest for right now is require an explicit Debugger.start call |
| 22:39:03 | evan | that the user would put in after their code had loaded |
| 22:39:08 | brixen | that would be cool |
| 22:39:14 | evan | which would spin up the debugger and the user could enter breakpoints then |
| 22:39:27 | brixen | I didn't like the starting the debugger at the start of the script |
| 22:39:38 | agardiner | why's that? |
| 22:39:41 | brixen | because it needed a lot of conditionals |
| 22:39:48 | agardiner | in loader? |
| 22:39:49 | evan | ok, i'll go with the explicit start as a first cut. |
| 22:39:52 | brixen | yeah |
| 22:40:02 | agardiner | right, it was a bit of a pain |
| 22:40:10 | brixen | we can wire it back up |
| 22:40:15 | brixen | once we have a better API for it |
| 22:40:29 | agardiner | yeah, the API is what's needed |
| 22:40:29 | brixen | because with a script you don't have a stopping point |
| 22:40:32 | brixen | yeah |
| 22:40:37 | brixen | that's what I mean |
| 22:41:09 | evan | for now, it will be |
| 22:41:12 | evan | require 'debugger' |
| 22:41:14 | evan | Debugger.start |
| 22:41:20 | agardiner | man, back in the shotgun days i also started work on a ruby-debug adapter |
| 22:41:23 | evan | we can flow things out of that later. |
| 22:41:31 | evan | agardiner: yeah! i thought you did |
| 22:41:35 | evan | i started looking through ruby-debug |
| 22:41:38 | evan | it made me sad. |
| 22:41:53 | evan | it doesn't appear to have adapters atm |
| 22:41:55 | evan | i thought it did |
| 22:41:56 | agardiner | i only needed to work with ruby-debug-base |
| 22:42:08 | evan | really? |
| 22:42:16 | evan | seems like it depends on a bunch of stuff like linecache and such. |
| 22:42:24 | evan | in ruby-debug proper. |
| 22:42:24 | agardiner | yeah... i think there was a jruby version as well |
| 22:42:29 | evan | hm |
| 22:42:29 | evan | ok |
| 22:42:39 | agardiner | hang on, let me see if I can dig this up |
| 22:42:52 | evan | k |
| 22:43:30 | evan | oh, maybe ruby-debug-base is where it is... |
| 22:44:39 | agardiner | yeah, i've got what i had up on github |
| 22:44:49 | evan | where at? |
| 22:44:52 | agardiner | http://github.com/agardiner/rubinius-debug-base |
| 22:45:24 | agardiner | there's a ruby impl of linecache and tracelines that ruby-debug needs |
| 22:45:25 | brixen | FUCK.ING. IO#reopen |
| 22:45:30 | brixen | takes a walk |
| 22:45:33 | evan | brixen: :( |
| 22:45:41 | agardiner | those are ripped straight off of the jruby version, i think |
| 22:46:52 | evan | ok |
| 22:48:19 | agardiner | i think that was mostly working... but of course, most of the hard work was in breakpoint.rb |
| 22:48:45 | evan | sorry, did someone say something? |
| 22:48:47 | evan | i had just clicked restart on limechat |
| 22:48:59 | kronos_vano | [02:46] <evan> ok |
| 22:48:59 | kronos_vano | [02:48] <agardiner> i think that was mostly working... but of course, most of the hard work was in breakpoint.rb |
| 22:49:37 | evan | ok |
| 22:49:46 | evan | thanks |
| 22:49:53 | agardiner | np! |
| 22:49:55 | evan | agardiner: well, i'll get it sorted out hopefully |
| 22:50:14 | agardiner | tell you what, if you can get the VM support there, i'll get the debugger working on top of it |
| 22:50:20 | evan | is there a reason you started working on our own debugger rather than ruby-debug? |
| 22:50:29 | evan | the ruby-debug source leaves something to be desired, personally. |
| 22:50:56 | agardiner | didn't really consider it... |
| 22:51:02 | evan | agardiner: you're welcome to jump in, but i'm going to push forward on the debugger side too |
| 22:51:04 | evan | ok |
| 22:51:16 | evan | i want the debugger to be a big 1.1 feature. |
| 22:51:23 | agardiner | excellent! |
| 22:51:53 | agardiner | I tried a couple of times to get it going again, but couldn't keep up with the bit rot |
| 22:52:03 | evan | yeah, no prob. |
| 22:52:07 | evan | hows london? |
| 22:52:18 | agardiner | its good |
| 22:52:43 | agardiner | i seem to have much less time for hacking though... :-( |
| 22:53:06 | agardiner | not that it's london, more kids getting older |
| 22:53:26 | evan | how old are the kids now? |
| 22:53:36 | agardiner | Jared is 6 and Chloe is 3 |
| 22:53:47 | evan | ah! yeah, i'll bet they take a bit of time. |
| 22:54:06 | agardiner | hehe, yeah! |
| 22:54:11 | agardiner | but its all good! |
| 22:54:37 | evan | course :) |
| 22:55:12 | agardiner | so, for the debugger, are you thinking ruby-debug, or resurrecting the rubinius debugger? |
| 22:55:25 | evan | probably the rubinius one |
| 22:55:32 | evan | resurrected bit by bit. |
| 22:55:48 | evan | then i'll figure out what to do about ruby-debug |
| 22:55:50 | agardiner | yay! nice to know it won't be discarded... |
| 22:55:50 | evan | if anything. |
| 22:56:21 | agardiner | yeah |
| 22:56:48 | agardiner | but ruby-debug support shouldn't be too hard as well, once the foundation is there |
| 22:56:57 | evan | yeah |
| 22:58:02 | agardiner | i like the lookup table idea off of CM... |
| 22:58:09 | agardiner | that's a really neat solution |
| 22:58:20 | agardiner | seems kinda obvious now! |
| 23:00:14 | evan | :) |
| 23:00:15 | evan | it's slower |
| 23:00:19 | evan | but easier to manage |
| 23:00:47 | agardiner | slower when debugging only? |
| 23:00:55 | evan | yeah |
| 23:01:00 | agardiner | who cares! |
| 23:01:03 | evan | because there is a table lookup per ip |
| 23:01:05 | evan | exactly! |
| 23:01:16 | agardiner | at that point, speed isn't your problem! |
| 23:01:28 | agardiner | your already in the method you want to be in... |
| 23:01:39 | agardiner | and you got there at full speed |
| 23:02:35 | agardiner | are you still attaching a special interpreter to CMs with breakpoints? |
| 23:02:45 | agardiner | (only) |
| 23:02:56 | evan | yeah |
| 23:03:00 | evan | thats a critical part |
| 23:03:06 | agardiner | exactly |
| 23:03:13 | evan | methods being debugger are "deoptimized" |
| 23:03:18 | evan | er. being debugged. |
| 23:03:24 | agardiner | :-D |
| 23:10:22 | agardiner | right, i'm off - congrats again on 1.0! |
| 23:11:03 | evan | :) |
| 23:11:04 | evan | bye! |
| 23:11:20 | agardiner | o/ |
| 23:14:50 | kronos_vano | evan, So. In which branch i should commit bugfix, and should I create tickets for this? |
| 23:16:17 | evan | you can commit them to master |
| 23:16:25 | evan | and if they're bug fixes |
| 23:16:39 | evan | put @bugfix in your comimt |
| 23:16:43 | evan | if you don't have a ticket. |
| 23:21:23 | evan | @bugfix in the commit message |
| 23:21:24 | evan | that is. |
| 23:31:47 | evan | kronos_vano: um. |
| 23:31:51 | evan | whats the plan? |
| 23:32:00 | kronos_vano | Plan? |
| 23:32:02 | evan | i have a few comments on it strings |
| 23:32:07 | evan | you asked about commiting |
| 23:32:14 | evan | but you put in an issue with a patch instead |
| 23:32:32 | kronos_vano | Spec. |
| 23:32:37 | evan | huh? |
| 23:32:38 | kronos_vano | I'm not sure in it |
| 23:32:49 | evan | well, replace "returns an array of two elements q and r which correspond to the conditions" with "given" |
| 23:32:49 | kronos_vano | so I put it for reviewing |
| 23:32:52 | evan | in your spec |
| 23:33:14 | evan | actually |
| 23:33:19 | evan | even thats exactly the same isn't it? |
| 23:33:34 | evan | use a nested describe |
| 23:34:01 | evan | describe "returns [q,r], given q = floor(x/y) and a = q*b + r" do |
| 23:40:37 | kronos_vano | evan, http://gist.github.com/406999 right? |
| 23:41:24 | evan | better, yes. |
| 23:55:32 | boyscout | More specs for Bignum#divmod - 03c7c26 - Ivan Samsonov |
| 23:55:33 | boyscout | Repair Bignum#divmod for cases with negative numbers. Fixes #319. - f79bf37 - Ivan Samsonov |