Show enters and exits. Hide enters and exits.
| 00:00:03 | rue | .fi |
| 00:00:24 | rue | And, nope, still blocked. |
| 00:00:51 | benny | I can upload the flv if you really want to see it |
| 00:00:54 | benny | because it works for me |
| 00:02:07 | scoopr | um, what is blocked? |
| 00:02:33 | benny | thedailyshow.com |
| 00:02:45 | scoopr | oh, works for me .. |
| 00:02:50 | scoopr | (and I'm .fi too) |
| 00:03:41 | benny | specifically the embedded player in the url posted an hour ago |
| 00:04:13 | rue | The clips work, the "full episode player" does not |
| 00:04:13 | scoopr | yah, thats what I'm watching right now |
| 00:04:18 | scoopr | ah |
| 00:05:30 | benny | the full episode player works for me too: http://www.thedailyshow.com/full-episodes/index.jhtml?episodeId=225916 |
| 00:06:08 | rue | Hm, might have to block some ports |
| 00:06:29 | scoopr | yah full-episodes don't work |
| 00:06:57 | rue | 1935, 443 and 80 probablies |
| 00:08:09 | rue | Might worry about it later at some point...really meant to look for solutions for Hulu, but this will not work |
| 00:08:22 | rue | Leastwise I have /a/ proxy now. |
| 00:16:31 | boyscout | Made UnMarshaller::get_*_varint() work on 64 bit systems. - 24022e7 - Tilman Sauerbeck |
| 00:19:27 | boyscout | CI: 24022e7 success. 2647 files, 10140 examples, 32380 expectations, 0 failures, 0 errors |
| 00:26:16 | rue | Here too: http://crosstwine.com/linker/ruby.html |
| 00:48:30 | brixen | interestingly, they say the 1.8.6 enhancements pass the tests |
| 00:48:36 | brixen | but they don't mention rubyspec |
| 00:48:48 | brixen | I hope they are not relying on the MRI tests :P |
| 00:52:51 | ezmob | heh |
| 00:52:54 | ezmob | all 3 of them? |
| 00:53:06 | drbrain | probably test-all |
| 00:53:26 | drbrain | there's a good 20k assertions in test-all, but it's nowhere near complete |
| 00:53:30 | ezmob | they twittered that it can run the sup gem which is fairly big and complex code wise |
| 01:03:25 | evan | it appears to be a simple tracing jit |
| 01:03:41 | evan | that identifies hot AST sequences and collapses them down into machine code |
| 01:07:26 | ezmob | they are making me a gentoo build to test out |
| 01:08:09 | headius | yeah |
| 01:08:15 | headius | looks like it's only improving execution perf |
| 01:08:35 | ezmob | thats a good thing to improve no? |
| 01:08:52 | headius | well, it's not what slows things like rails down though |
| 01:09:21 | ezmob | meh i dont care about rails anymore. i only write fibonaci these days anyways |
| 01:09:33 | ezmob | ;) |
| 01:09:36 | headius | then you should be all set :) |
| 01:09:45 | headius | I'm interested to see how it runs at any rate |
| 01:10:12 | ezmob | yeah definitley interesting |
| 01:10:29 | ezmob | i heard maglev will demo running rails at railsconf |
| 01:10:31 | headius | could at least solve one aspect of the C impls |
| 01:10:54 | headius | yeah, I'm not too surprised |
| 01:11:03 | ezmob | probably sans active record |
| 01:11:10 | headius | especially if they're still piggy-backing off rbx core classes |
| 01:11:41 | headius | evan: do you know if they're still using rbx stuff? |
| 01:14:06 | headius | hmm, I don't have an x86_64 linux handy |
| 01:18:49 | boyscout | Compiler plugin to protect critical rbx kernel methods. - 5935d13 - Brian Ford |
| 01:18:49 | boyscout | Module#instance_method specs for undef'd methods. - b3b7d5c - Brian Ford |
| 01:18:49 | boyscout | Fixed Module#instance_method for undef'd methods. - 8550eac - Brian Ford |
| 01:25:19 | boyscout | CI: 8550eac success. 2647 files, 10146 examples, 32387 expectations, 0 failures, 0 errors |
| 01:42:54 | bitsweat | basic rails hello-world is slower on xtruby |
| 01:43:14 | bitsweat | by roughly 60% |
| 02:00:31 | headius | bitsweat: yeah, not too surprising I suppose |
| 02:00:40 | headius | everyone can make the microbenchmarks faster |
| 02:01:15 | headius | bitsweat: I saw he mentioned eval, but I don't think there are any evals now during a typical production request, right? |
| 02:02:42 | bitsweat | for rendering block helpers, yeah |
| 02:03:03 | bitsweat | but I'm testing head :ok basically |
| 02:03:16 | bitsweat | so webrick + controller dispatch |
| 02:03:37 | slava | hi guys |
| 02:03:46 | brixen | the benchmarks they show would benefit from collapsing boxing and removing dispatch I think |
| 02:03:57 | brixen | it's telling they don't publish more results |
| 02:04:32 | brixen | collapsing boxing on floats that is |
| 02:04:34 | bitsweat | 100% rubyspec? |
| 02:04:50 | brixen | 100% what? passage? |
| 02:05:15 | brixen | do you see where they mention rubyspec? whitepaper doesn't |
| 02:06:02 | bitsweat | they don't, I'm asking |
| 02:06:22 | headius | I'm not too skeptical |
| 02:06:57 | headius | if it's actually an in-place enhancement of MRI/YARV it could easily improve execution perf quite a bit |
| 02:06:57 | brixen | bitsweat: yeah I see the test mentioned but not rubyspec |
| 02:07:06 | headius | without breaking too much |
| 02:07:11 | brixen | headius: yeah, I'd expect that too |
| 02:07:16 | brixen | but curious they don't say |
| 02:07:25 | headius | it's still going to be bound by MRI/YARV code class perf and memory characteristics though |
| 02:07:29 | headius | code=core |
| 02:07:36 | headius | yeah |
| 02:08:00 | bitsweat | too bad no source |
| 02:08:01 | headius | I don't have the stomach for this stuff anymore |
| 02:08:48 | headius | I keep expecting someone to blindside us all |
| 02:08:59 | headius | so far nobody's managed to do anything but speed up microbenchmarks though |
| 02:09:43 | brixen | yeah, I don't expect any blindsiding |
| 02:09:50 | brixen | this shit is hard work |
| 02:09:59 | brixen | much harder than people wish |
| 02:10:03 | headius | bootstrapping off MRI's core classes certainly cuts to the chase |
| 02:10:21 | headius | every couple weeks a more likely candidate comes along |
| 02:10:37 | headius | at this rate Java 7 will be done |
| 02:12:32 | slava | evan: so I figured out how to do PICs for tail call sites |
| 02:15:18 | brixen | slava: how do you debug writes to an object beyond its bounds? |
| 02:24:50 | brixen | hm, looking promising, the obj before the mangled one is a string |
| 02:26:12 | brixen | perhaps some food will help.. |
| 02:27:11 | slava | brixen: I have a bunch of #ifdef FACTOR_DEBUG which enable additional assertions |
| 02:31:26 | slava | brixen: I'm actually hunting down a GC bug right now |
| 02:31:43 | slava | brixen: how does your GC scan C local variables for pointers into the heap? |
| 02:34:08 | brixen | slava: it doesn't scan C locals |
| 02:34:10 | brixen | see http://github.com/evanphx/rubinius/blob/24022e70f59e2e5ad9d90929e65a1779f2ed7731/vm/on_stack.hpp |
| 02:34:20 | brixen | if you leave a obj on the stack, you have to use that |
| 02:35:52 | slava | "on the stack" = C stack or VM bytecode stack? |
| 02:36:34 | brixen | C stack |
| 02:37:47 | brixen | eg http://github.com/evanphx/rubinius/blob/24022e70f59e2e5ad9d90929e65a1779f2ed7731/vm/builtin/io.cpp #L366 |
| 02:38:01 | slava | that's so elegant |
| 02:38:03 | brixen | ok, dinner, bbl.. |
| 02:38:06 | brixen | heh |
| 02:38:12 | brixen | that's evan for ya :) |
| 02:39:12 | slava | it makes me want to switch to C++ |
| 02:39:52 | slava | brixen: http://gitweb.factorcode.org/gitweb.cgi?p=factor/.git;a=blob_plain;f=vm/inline_cache.c;hb=HEAD |
| 02:39:59 | slava | brixen: look at the REGISTER_ROOT / UNREGISTER_ROOT stuff |
| 02:40:06 | slava | brixen: that's my approach (in C) and its not nearly as nice |
| 02:42:37 | slava | brixen: I want to do something like OnStack, but for all locals |
| 03:24:24 | headius | hey brixen, does that safe kernel methods change basically just emit the longer safe names for certain methods when compiling core? |
| 06:41:54 | brixen | headius: yeah, that's all it does right now |
| 06:43:54 | headius | cool, it's a good idea |
| 06:44:20 | headius | it made me think of another idea |
| 06:44:28 | brixen | in this case, it's to prevent BlankSlate from blowing up our method_missing, which does obj.class |
| 06:44:41 | brixen | but we may discover other methods too |
| 06:44:55 | headius | it seems like you could lift those key core methods into additional opcodes and emit the opcode instead |
| 06:45:16 | brixen | yeah, probably could |
| 06:45:25 | brixen | that would require a lot more work potentially |
| 06:45:30 | headius | I don't think that would scale as a general-purpose optimization, but it would at least give the VM the option of choosing the right method, regardless of overrides |
| 06:45:43 | brixen | right |
| 06:46:06 | headius | I assume you did this so you didn't have to start writing __class__ everywhere you really want it to be the core impl |
| 06:46:15 | brixen | yeah |
| 06:46:25 | brixen | this is more like "I said don't cross this fence" |
| 06:46:34 | brixen | but there's not really a fence there |
| 06:46:45 | headius | it's kinda funny...john rose often tells us that if you want to add another operation to the JVM, just implement it as a static method |
| 06:46:56 | headius | since it will jit and inline everywhere as if it were an opcode |
| 06:47:01 | headius | this is a form of that, really |
| 06:47:15 | brixen | interesting |
| 06:47:31 | headius | you could also have a marker sequence like CORE.class(receiver) that the compiler turns into an operation |
| 06:47:36 | headius | which would make it exactly like that |
| 06:47:59 | brixen | yep |
| 07:33:27 | headius | evan: I have been slacking, but I finally bought keynote yesterday |
| 07:33:43 | headius | I'll do some slide work between now and monday, probably on the flight or something |
| 07:36:15 | erikh | did the rubinius talk get accepted at osbridge? |
| 07:36:21 | erikh | I guess I could check. |
| 07:36:33 | headius | the "1.0" talk? |
| 07:37:17 | evan | headius: ok, no sweat |
| 07:37:25 | evan | just got back from wolverine and dinner |
| 07:37:29 | evan | about to get some sleep |
| 07:37:52 | erikh | headius: yessir |
| 07:38:06 | headius | I thought I heard something about it |
| 07:38:13 | headius | so I guess you'll have to check ;) |
| 07:38:36 | erikh | heh |
| 07:39:17 | brixen | erikh: nah, just the rubyspec talk was accepted |
| 07:39:32 | brixen | erikh: the rubinius 1.0 talk was accepted for oscon though |
| 07:39:36 | erikh | cool |
| 07:42:11 | slava | brixen: my VM is C++ now :) |
| 07:42:14 | slava | but ist still C |
| 07:42:21 | slava | I just fixed all the errors from recompiling it with G++ :) |
| 07:42:34 | evan | welcome, to the dark side. |
| 07:43:54 | brixen | slava: heh, cool! |
| 07:46:44 | headius | evan: railsconf site shows you as "not yet registered" btw |
| 07:47:56 | evan | wah? |
| 07:48:00 | evan | mmm |
| 07:48:26 | evan | I appear to be |
| 07:48:28 | evan | i just logged in |
| 07:48:31 | evan | where do you see this? |
| 07:51:13 | headius | where it lists the talks I'm doing |
| 07:51:22 | headius | Evan Phoenix. Not yet registered. |
| 07:51:32 | headius | right below "Charles Nutter. Registered." |
| 07:51:38 | evan | url? |
| 07:51:45 | headius | http://en.oreilly.com/rails2009/user/proposal/speaking |
| 07:51:50 | headius | if you're logged in |
| 07:52:30 | evan | umm.... |
| 07:53:50 | headius | I think it refers to being registered for the conf |
| 07:53:57 | headius | you're supposed to register as a speaker for $0 |
| 07:54:06 | headius | I don't remember the link for that |
| 07:54:39 | evan | bingo |
| 07:54:42 | evan | yeah |
| 07:54:46 | evan | i guess I never registered |
| 07:54:47 | evan | just did it |
| 07:55:00 | headius | ok |
| 07:55:29 | evan | thanks for the heads up |
| 07:55:33 | evan | i guess I thought that was done for me |
| 07:55:39 | evan | well, i'm off to bed |
| 07:55:40 | evan | nite. |
| 12:11:13 | boyscout | Test unmarshalling of large varints in the VM. - 8f507e3 - Tilman Sauerbeck |
| 12:16:38 | boyscout | CI: 8f507e3 success. 2647 files, 10146 examples, 32387 expectations, 0 failures, 0 errors |
| 12:34:27 | dbussink | tilman: btw, we have a mp_set_long in bignum.cpp afaik |
| 12:34:36 | dbussink | tilman: perhaps that's also reusable for http://github.com/evanphx/rubinius/commit/24022e70f59e2e5ad9d90929e65a1779f2ed7731 |
| 18:48:09 | headius | evan: around? |
| 19:07:19 | evan | headius: sup? |
| 19:07:35 | headius | ah, was just going to show you timeout numbers with us using a thread pool now |
| 19:07:37 | headius | http://gist.github.com/105641 |
| 19:07:52 | headius | makes it essentially free |
| 19:08:59 | evan | quite nice |
| 19:09:02 | evan | where is the java code? |
| 19:09:22 | evan | i'm betting I could easily port it |
| 19:12:01 | headius | well it uses a thread pool library in java, but I can point you toward the code on the jruby side |
| 19:14:08 | headius | evan: http://github.com/jruby/jruby/blob/1cd554c7c6b5981889e21e9edfa15b5f48f0dac0/src/org/jruby/ext/Time out.java |
| 19:14:51 | headius | oh, hmm |
| 19:14:58 | headius | I haven't pushed the pool changes |
| 19:15:58 | headius | should be there in about 5 min |
| 19:17:02 | evan | k |
| 19:20:17 | evan | headius: so, Thred::interrupt is whats used to signal between threads |
| 19:22:30 | headius | http://github.com/jruby/jruby/blob/3a88d8790fb7734c6600523e398e1ea28c39606e/src/org/jruby/ext/Time out.java |
| 19:22:46 | slava | evan: my C++ VM port is almost ready |
| 19:22:48 | headius | well interrupt interrupts it if it's in the middle of waiting |
| 19:22:59 | evan | ah |
| 19:23:07 | headius | it's part of the communication, but it's not the only bit of data passed |
| 19:23:41 | evan | so the user thread than needs to be stop from running the block won't stop until something checks that it's supposed to be interrupted |
| 19:23:50 | evan | slava: oh? |
| 19:24:07 | headius | evan: I'm not sure I understood that sentence |
| 19:25:09 | evan | ok, nm. |
| 19:25:30 | headius | the timeout event propagates the same way as it does in the ruby version, by setting a flag on the target thread |
| 19:25:37 | headius | it won't die itself until it picks up that message |
| 19:26:13 | headius | obviously a lot of the complexity of this is due to having actual parallel-executing threads, which you don't have to worry |
| 19:29:16 | headius | evan: let me know what you come up with |
| 19:37:05 | evan | sure |
| 19:40:18 | joachimm | is the master branch the place to with all the action right now? |
| 19:52:18 | joachimm | I get => Failed 62 of 726 tests, when running rake on master. |
| 19:54:23 | brixen | joachimm_: yes, master is the active branch |
| 19:54:26 | brixen | what platform |
| 19:54:33 | brixen | and pastie the errors please |
| 19:54:36 | joachimm | Mac os X |
| 19:54:52 | brixen | you might try a rake distclean |
| 19:55:00 | brixen | it's running fine for me on os x |
| 19:55:29 | brixen | are you on intel or ppc? |
| 19:56:17 | joachimm | intel |
| 19:57:03 | brixen | well, try rake distclean; rake then |
| 20:07:37 | joachimm | brixen: that seems to have fixed it. |
| 20:12:23 | joachimm | brixen: What issues needs to be solved before declaring 1.0. I saw you had a talk about 1.0 which is why I ask. |
| 20:12:54 | joachimm | s/had/will give/ |
| 20:15:41 | brixen | joachimm_: broadly, compatibility ond perf, most of the infrastructure is really solid now |
| 20:15:58 | brixen | joachimm_: we'll be putting out a roadmap very soon |
| 20:16:46 | brixen | joachimm_: if you have ruby gems or code that you maintain or use, trying to run it on rbx is a good way to contrib |
| 20:17:28 | slava | what kind of perf goals do you have |
| 20:17:51 | dbussink | brixen: did you get rspec to work? |
| 20:17:56 | brixen | 1.8.6 parity is the minimum |
| 20:18:17 | brixen | dbussink: how do you mean? do you know of specific issues? or have you not tried it? |
| 20:18:21 | dbussink | brixen: if that runs it also opens up a whole bunch of tests for other tools |
| 20:18:26 | dbussink | brixen: more in general actually |
| 20:18:36 | brixen | I can try it |
| 20:18:43 | brixen | I've been working on other gems |
| 20:20:47 | dbussink | brixen: going to railsconf? |
| 20:21:05 | brixen | yep |
| 20:21:12 | brixen | dbussink: you? |
| 20:21:31 | dbussink | brixen: nope, am going to euruko though which is next weekend |
| 20:22:18 | brixen | ahh no stroopwafels then :) |
| 20:25:24 | evan | BOOO |
| 20:25:27 | evan | stroopwafels! |
| 20:25:30 | brixen | dbussink: well, I got rbx -S rake -T to run in rspec 1.2.6 gem dir, which involves installing 6 other gems |
| 20:25:53 | dbussink | brixen: hehe, nope, maybe another year :P |
| 20:26:01 | dbussink | brixen: cool :) |
| 20:26:28 | dbussink | brixen: did you ever look at the problem i had with do_postgres? |
| 20:26:38 | brixen | I looked at the bt :) |
| 20:26:52 | dbussink | some const lookup that failed, didn't know if that part has changed lately |
| 20:26:53 | brixen | I've been focusing on rails stuff using sqlite3 |
| 20:27:00 | brixen | since that's the default |
| 20:27:09 | dbussink | understandable |
| 20:27:26 | dbussink | i'll check whether it's still an issue |
| 20:28:05 | brixen | hrm, rake spec in rspec depends on autotest |
| 20:28:21 | brixen | by the time this thing runs anything, I'll have 50 new gems installed |
| 20:29:25 | evan | brixen: could you do 'which rake' for me? |
| 20:29:47 | brixen | evan: you mean for MRI or rbx? |
| 20:30:10 | evan | well, i think that our -S doesn't pick up our bin/ dir |
| 20:30:20 | evan | and that 'rbx -S rake' works by accident |
| 20:30:27 | evan | because you have a /usr/bin/rake |
| 20:30:57 | brixen | I think you are right |
| 20:31:06 | evan | I think i'll fix that |
| 20:31:38 | brixen | dbussink: rbx -S rake examples in rspec gem => 171 examples, 28 failures, 2 pending |
| 20:32:49 | dbussink | brixen: is there a way to run specs in a directory outside the rbx dir with rbx? |
| 20:33:42 | brixen | dbussink: yeah, you can ln vm/vm to anywhere |
| 20:33:49 | brixen | or you can even move vm/vm |
| 20:33:56 | brixen | but don't change the name of the build dir |
| 20:34:14 | dbussink | brixen: but if i'd want to run rake spec for another project using rbx, how'd i do that? |
| 20:34:33 | brixen | rbx -S rake spec |
| 20:34:36 | brixen | try that |
| 20:35:19 | brixen | or path/to/rbx/dir/bin/rake |
| 20:35:22 | dbussink | hmm, ../rubinius/bin/rbx -S rake spec doesn't work for me |
| 20:35:24 | brixen | if you installed rake in rbx |
| 20:35:35 | brixen | what does "doesn't work" mean? |
| 20:35:56 | dbussink | No method 'bin_path' on Gem (Module) (NoMethodError) |
| 20:36:10 | dbussink | but using rake directly from the rubinius bin dir seems to do something |
| 20:36:21 | brixen | cool, evan is fixing the other thing |
| 20:37:51 | dbussink | brixen: ah, got some more capi fun :P |
| 20:37:53 | dbussink | http://gist.github.com/105682 |
| 20:38:33 | brixen | I saw that trying to install hpricot |
| 20:38:42 | brixen | you'll have to use pure ruby json for now |
| 20:39:06 | brixen | use of RHASH in those gems is mega lame |
| 20:39:41 | dbussink | brixen: i've tried to contact the json guy for some other issue, but haven't heard back from him |
| 20:39:52 | brixen | ok |
| 20:39:57 | dbussink | dunno if anyone knows him |
| 20:41:26 | brixen | something must be wrong with our rbconfig or mkmf because it should not find ruby/st.h |
| 20:41:38 | brixen | anyway, I'm not messing with that now |
| 20:42:08 | dbussink | ah, cool, got the extlib specs running :) |
| 20:42:15 | brixen | nice |
| 20:42:27 | brixen | dbussink: what are your top 10 gems that you use? |
| 20:42:57 | dbussink | brixen: atm, mainly merb / datamapper stuff and it's dependencies |
| 20:43:03 | brixen | ok |
| 20:44:04 | dbussink | use rspec for specs, cucumber for features |
| 20:46:22 | headius | json and hpricot use RHASH eh? |
| 20:46:44 | dbussink | brixen: a lot of failures are due to failures in rspec, not extlib per se |
| 20:46:54 | dbussink | headius: looks like it yeah |
| 20:49:18 | brixen | dbussink: ok, good to know |
| 20:49:24 | headius | that sucks |
| 20:49:41 | headius | hpricot must have been one I looked at when we were working our version of capi |
| 20:50:40 | brixen | dbussink: it'd be great if you could get new datamapper gems out that don't reassign rb_cTime etc :P |
| 20:50:55 | brixen | I'll have to go build my version of do_sqlite3 |
| 20:52:05 | dbussink | brixen: hehe, yeah, they are ready to release |
| 20:52:14 | dbussink | brixen: gonna do that this week or during euruko |
| 20:52:43 | dbussink | brixen: but there is a bit more included, like precompiled windows gems that i can compile on my os x machine now :) |
| 20:52:50 | dbussink | long live cross compiling :) |
| 20:52:52 | brixen | dbussink: did you fix do_sqlite3? |
| 20:53:41 | dbussink | brixen: yeah, it's fixed but not yet released |
| 20:54:21 | brixen | dbussink: is it not in master? |
| 20:54:32 | dbussink | brixen: no, in next |
| 20:54:38 | brixen | k |
| 20:59:06 | brixen | dbussink: sweet, do_sqlite3 from next installed |
| 20:59:17 | dbussink | brixen: cool :) |
| 20:59:54 | brixen | I mistakenly typed gem install merb :P |
| 21:00:01 | brixen | now I have a universe of gems |
| 21:00:04 | dbussink | hehe |
| 21:00:37 | dbussink | apparently the be_kind_of matches is problematic |
| 21:00:37 | brixen | I think I now have more gems installed in rbx than in mri |
| 21:03:44 | dbussink | brixen: hmm, still the same lookup issue that goes into infinite recursion |
| 21:04:06 | brixen | ok |
| 21:18:36 | dbussink | brixen: did you try reproducing it too? |
| 21:18:56 | dbussink | brixen: or if you have pointers on how to debug it, that would be cool too ;) |
| 21:18:57 | dbussink | :) |
| 21:19:52 | headius | I didn't realize until yesterday that I'd gone over a month without installing any gems in MRI at all |
| 21:20:08 | headius | I hadn't even updated rubygems from whatever OS X ships |
| 21:20:48 | brixen | dbussink: um, I'll take a look, sec.. |
| 21:36:25 | brixen | lord, const_get is so lame |
| 21:36:35 | brixen | let's wrap another method |
| 21:36:38 | brixen | convert to a symbol |
| 21:36:42 | brixen | convert back to a string |
| 21:36:47 | brixen | make a regexp |
| 21:36:56 | brixen | a few conditionals |
| 21:39:12 | brixen | I think it would work fine to put the sentry on setting the const |
| 21:39:26 | brixen | to get it, just try. if it fails, check the name |
| 23:35:34 | brixen | dbussink: correct me if I'm wrong, but I believe if we translate what you are doing in do_postgres ext into ruby, this is what you have |
| 23:35:46 | brixen | http://gist.github.com/105737 |
| 23:35:53 | brixen | try running that in MRI |