Show enters and exits. Hide enters and exits.
| 00:24:31 | boyscout | Updated MSpec source to 88d85da8. - 2c42853 - Brian Ford |
| 00:29:32 | boyscout | CI: rubinius: 2c42853 successful: 3037 files, 11915 examples, 36157 expectations, 0 failures, 0 errors |
| 01:18:40 | brixen | hm, it does take some time to install ri and rdoc for rails gems |
| 01:35:08 | brixen | yaml dominates the profile for installing ri, rdoc with gem |
| 01:47:44 | saywatmang | brixen, thoughts https://gist.github.com/2e1d63685da14fdee0eb ? |
| 01:53:56 | brixen | saywatmang: did you see my changes to your last patch? |
| 01:54:46 | saywatmang | err |
| 01:54:50 | saywatmang | i looked at the commit |
| 01:54:58 | saywatmang | and i didnt see any changes |
| 01:55:15 | brixen | they're in the following commit |
| 01:55:27 | saywatmang | ah |
| 01:55:32 | brixen | 8ab09fcd |
| 01:55:51 | brixen | generally, do not use begin/ensure in specs |
| 01:56:01 | brixen | that's what before/after actions are for |
| 01:56:21 | brixen | def_repro_2781 is ugly and unnecessary, the ruby_bug guard already has the bug number |
| 01:56:34 | brixen | use objects to contain these fixture methods |
| 01:56:53 | brixen | is GC.stress now part of the GC API on MRI? |
| 01:56:59 | brixen | that's a new method to me |
| 01:57:09 | saywatmang | yea, not sure how longs its been there |
| 01:57:20 | saywatmang | yea i thot about using an Object to contain the fixture method |
| 01:57:32 | saywatmang | except in this case the problem is, we redefine the method inside a method |
| 01:57:38 | saywatmang | so the object cant be captured in there |
| 01:57:42 | saywatmang | unless we make it an ivar or global |
| 01:58:15 | brixen | le'see |
| 01:58:25 | saywatmang | and the only reason i gave it that name which is redundant, is since i was defining it on Object, so to prevent name clashses |
| 01:58:25 | brixen | hm GC.stress appears to be 1.9 |
| 01:58:41 | saywatmang | it's in 1.8.7, maybe a backport |
| 01:58:46 | brixen | yeah, let's see if we can contain it in a method |
| 01:58:50 | brixen | er object rather |
| 01:59:45 | saywatmang | k 1s |
| 02:00:45 | antares | what is interesting, on MRI 1.8.7 setting GC.stress to true does something weird to irb — you can't exit it with C-c or C-d |
| 02:00:53 | antares | on rubinius everything is as usual |
| 02:01:22 | brixen | saywatmang: you have self inside the method |
| 02:01:42 | saywatmang | brixen, ok yea cool, that worked: https://gist.github.com/cb0d8f1b0ac02dabfb44 |
| 02:02:03 | saywatmang | yea? |
| 02:02:24 | saywatmang | cuz thats the only way to access the handle object unless we make it global or an ivar |
| 02:02:52 | brixen | we could use ScratchPad |
| 02:04:48 | brixen | saywatmang: http://gist.github.com/311763 |
| 02:05:35 | brixen | saywatmang: so, if you really want the GC.stress set, put that spec in its own describe block and use before/after |
| 02:05:48 | saywatmang | brixen, what am i looking at in that gist ? |
| 02:05:48 | brixen | and some nice name for that method :) |
| 02:05:56 | saywatmang | yea, ill nicen the name, and do the befoe/after |
| 02:06:04 | brixen | no need to use send :define method inside class << self |
| 02:06:20 | brixen | s/ /_/ |
| 02:06:30 | saywatmang | i cant use class << self cuz it creates a new scope |
| 02:06:33 | saywatmang | need the closure |
| 02:06:42 | brixen | ahh |
| 02:06:44 | brixen | ok |
| 02:06:55 | brixen | crazy bugs |
| 02:06:59 | saywatmang | yea |
| 02:07:04 | maharg | ctrl-c never exits irb for me. Just cancels the current command if I press enter and says the word "exit" |
| 02:07:51 | brixen | saywatmang: so, for the spec description string, just describe the behavior |
| 02:07:58 | brixen | "should not segfault" is a given |
| 02:08:18 | brixen | like "between the sheets" when reading a fortune cookie fortune |
| 02:08:25 | brixen | but we don't add it to all the specs ;) |
| 02:08:40 | saywatmang | yea but in this case |
| 02:08:46 | saywatmang | thats the only thing |
| 02:09:01 | brixen | it redefines the method |
| 02:09:16 | saywatmang | aho k like |
| 02:09:20 | saywatmang | "redefine the method 1k times" |
| 02:09:27 | brixen | heh |
| 02:09:30 | saywatmang | dont u think if someone later looks at that |
| 02:09:38 | saywatmang | ah well theres a bug #, so yea thast fine |
| 02:09:41 | brixen | yeah |
| 02:09:47 | brixen | exactamundo |
| 02:09:59 | brixen | think minimum necessary info |
| 02:24:13 | boyscout | Force configure to update version and release date. - ebf06c9 - Brian Ford |
| 02:24:15 | boyscout | CI: Commit ebf06c9 failed. http://github.com/evanphx/rubinius/commit/ebf06c9a8941094d33407675f9bea15dbd362a43 |
| 02:28:02 | brixen | oh elle |
| 02:30:29 | saywatmang | any suggestions for 'assert true' ? |
| 02:30:36 | saywatmang | it fails when there are no expectations |
| 02:37:33 | brixen | saywatmang: have the method return a value |
| 02:37:46 | brixen | handle.love.should == :large |
| 02:39:42 | saywatmang | that seems so misleading |
| 02:39:57 | brixen | huh? |
| 02:40:09 | brixen | it's calling a method and asserting it gets the value from the method |
| 02:40:12 | saywatmang | as if it has anything to do with anything, when it really doesnt |
| 02:40:16 | brixen | that's *exactly* what you should get |
| 02:40:24 | brixen | you get nil anyway |
| 02:40:34 | brixen | *every* method returns a value |
| 02:40:42 | brixen | should be_nil |
| 02:40:45 | brixen | whatever |
| 02:41:05 | saywatmang | well the problem is the last thing im doing is 1000.times { }, so how about 1000.times { }.should == 1000 ? |
| 02:41:15 | brixen | that's really confusing |
| 02:41:18 | saywatmang | yea |
| 02:41:20 | brixen | put the expectation on the method |
| 02:41:30 | brixen | *method call |
| 02:41:32 | saywatmang | k |
| 02:42:55 | saywatmang | https://gist.github.com/46b2ef8d75810d0ef101 |
| 02:44:32 | brixen | sec.. |
| 02:46:52 | brixen | why is this called the first time with nil then inside the 3.times block ? |
| 02:47:01 | brixen | called with 0 |
| 02:47:09 | brixen | oh wait |
| 02:47:11 | brixen | ughh |
| 02:47:21 | brixen | this is why names are important |
| 02:48:11 | saywatmang | what would you name them |
| 02:48:21 | brixen | I'm thinking... heh |
| 02:48:48 | saywatmang | this bug is just so freakish i doubt anyone will really understand it by just looking at this spec anyway |
| 02:48:59 | brixen | heh, yeah it is freakish |
| 02:49:10 | brixen | but we shall attempt to make it comprehensible |
| 02:49:36 | brixen | how did you find this btw? |
| 02:49:45 | saywatmang | lots of debugging |
| 02:49:51 | saywatmang | i initially ran into it in some sinatra code |
| 02:50:02 | brixen | ahh sinatra |
| 02:50:10 | brixen | I knew it was evil :) |
| 02:50:12 | saywatmang | sadly its caused by my fix for that last bug |
| 02:50:20 | brixen | oh fun |
| 02:50:25 | saywatmang | yea, fuckin coincidence |
| 02:50:42 | saywatmang | yea sinatra does has a weird recursive define_method capture thing goin on |
| 02:51:34 | saywatmang | s/does has/has/ |
| 02:51:40 | saywatmang | https://gist.github.com/f30cd0b1fc6897662770 |
| 02:52:32 | brixen | lovely |
| 02:54:29 | brixen | so, I have a metaclass helper in mspec |
| 02:54:37 | brixen | can you look at it? |
| 02:54:40 | saywatmang | sure |
| 02:54:50 | brixen | I think we should be able to do self.metaclass.send :define_method here |
| 02:54:55 | saywatmang | right |
| 02:56:26 | brixen | I'm assuming both methods need to be called with argc > 0 right? |
| 02:57:35 | saywatmang | right, well redef(), explicitly yes, but def_redef, only implicity yes, because we need to pass the lambda, but the fact argc>0 isnt really special there |
| 02:58:03 | brixen | hmm |
| 02:59:08 | brixen | can we not do: def handle.defining_method(arg=nil) then? |
| 02:59:36 | brixen | I'm just wanting to disambiguate why we call the method with an argument |
| 02:59:38 | saywatmang | yea, we can do that |
| 02:59:42 | brixen | since in the one case it's important |
| 02:59:43 | brixen | ok |
| 02:59:49 | brixen | almost done tweaking |
| 03:02:51 | brixen | man this is hard to describe |
| 03:03:16 | saywatmang | yea, im gonna sleep, bbl |
| 03:03:24 | brixen | ok, I'll push to your gist |
| 03:05:16 | saywatmang | version sohuld be .249 |
| 03:05:22 | brixen | k |
| 03:06:04 | brixen | describe "omgwtfnowayseriouslywaitwhatwhatwhat" |
| 03:06:08 | brixen | that about covers it :) |
| 03:56:11 | brianmario | so I have a pointer to a non null-terminated C string, I also have the length of which I care about using - I want to convert it to a Fixnum and am wondering if anyone has any pointers |
| 03:56:18 | brianmario | I actually already am, but am looking for a faster way ;) |
| 03:57:39 | brianmario | currently I'm memcpy'ing the part of the string I wanted into another string "buf", and do: rb_cstr2inum(buf, 10) |
| 03:57:55 | brianmario | but, I'd like to have something like |
| 03:58:11 | brianmario | rb_cstrn2inum(originalPointer, len, 10) |
| 03:58:29 | brianmario | to avoid the "extra" memcpy - any ideas? |
| 03:58:56 | brixen | not offhand |
| 03:59:13 | brixen | put a temporary NULL in the string instead of copying |
| 03:59:18 | brianmario | I'd also like to convert it to a Float if it contains '.', 'E' or 'e' - I'm currently doing rb_float_new(strtod(buf, NULL)) after doing that same memcpy I mentioned for the other case |
| 03:59:22 | brianmario | k |
| 03:59:46 | brixen | I must get food before I keel over |
| 03:59:50 | brixen | bbl... :) |
| 04:00:03 | brianmario | heh |
| 04:00:03 | brianmario | cool |
| 07:10:41 | brixen | saywatmang: if you clone the gist, you can see my commit msg explaining the changes I made |
| 07:31:40 | boyscout | Actually write config version to config.rb. - c9b5580 - Brian Ford |
| 07:36:42 | boyscout | CI: rubinius: c9b5580 successful: 3037 files, 11915 examples, 36157 expectations, 0 failures, 0 errors |
| 09:28:01 | manveru | tries porting ffi-tk to rubinius |
| 09:37:18 | manveru | just watched the presentation at rubyconf from evan, sounds like rbx would be a much better platform for VER |
| 09:54:54 | manveru | how much encoding support is in rbx? |
| 09:57:03 | manveru | no require_relative... |
| 10:06:34 | manveru | and gsub doesn't take an Hash |
| 10:11:41 | manveru | and FFI isn't compatible? |
| 10:15:53 | maharg | rbx imitates 1.8.6, require_relative doesn't exist |
| 10:16:06 | maharg | gsub takes a hash? |
| 10:16:21 | manveru | in 1.9... |
| 10:16:37 | manveru | i haven't written 1.8-compatible code in over a year |
| 10:16:59 | manveru | so porting is quite a challenge |
| 10:17:36 | khaase | maharg: rbx imitates 1.8.7, i think |
| 10:19:36 | dbussink | rbx is 1.8.7 compatible atm |
| 10:20:07 | dbussink | so no 1.9 syntax and encoding stuff |
| 10:21:04 | manveru | hrm |
| 10:21:37 | manveru | right now i'm in limbo between writing ffi-oniguruma or making rbx 1.9-compatible |
| 10:22:19 | dbussink | manveru: making rbx 1.9 compatible is certainly something appreciated, evan and brixen have other priorities first though |
| 10:22:31 | dbussink | so if you want to take a stab at it, it will certainly be valued :) |
| 10:22:44 | manveru | as long as their priorities don't conflict with mine :) |
| 10:23:17 | dbussink | well, it's not a matter of conflict, but getting a stable and complete release out is first priority |
| 10:23:47 | dbussink | and imho 1.9.2 will be the first really complete 1.9 implementation |
| 10:24:00 | dbussink | a huge amount of stuff has changed since 1.9.1 |
| 10:24:13 | dbussink | it's not for nothing that rubyspec only specs 1.9 trunk atm |
| 10:24:44 | manveru | the json gem doesn't build on rbx |
| 10:27:43 | manveru | and yaml seems to be broken? |
| 10:29:20 | manveru | json_pure works as a substitute for json |
| 10:31:18 | dbussink | manveru: there should be a yaml on board, or is that broken? |
| 10:32:00 | manveru | it seems to return "--- \n" always |
| 10:32:10 | manveru | lemme check in irb |
| 10:32:45 | manveru | hm, no |
| 10:32:53 | manveru | so something is going wrong in my provides |
| 10:43:25 | manveru | hrm |
| 10:46:54 | manveru | oh |
| 10:47:56 | manveru | a, b = "foo\nbar"; [a, b] |
| 10:47:58 | manveru | # ["foo\n", "bar"] |
| 10:48:21 | manveru | i doubt that's compatible with any other ruby version :) |
| 10:49:47 | manveru | apart from that, all specs of innate pass... |
| 15:26:24 | saywatmang | manveru, what impl acts lik ethat ? |
| 15:46:41 | dbussink | saywatmang: rbx seems to that, looks like a bug then :0 |
| 15:46:41 | dbussink | :) |
| 15:46:54 | dbussink | brixen: already awake? |
| 16:55:55 | rue | It is probably a misimplementation of the #to_a/#to_ary/#to_splat or something.. |
| 17:32:40 | brixen | manveru: wow, interesting, can you file a ticket please |
| 17:32:46 | brixen | dbussink: I am now :) |
| 18:25:41 | manveru | just tried building head again: vm/util/thread.hpp:155: error: unused variable ‘_policy’ |
| 18:27:29 | brixen | manveru: what gcc version? |
| 18:27:35 | brixen | os, etc |
| 18:28:11 | manveru | http://pastie.org/839024 |
| 18:29:29 | brixen | what distro? |
| 18:29:37 | manveru | archlinux |
| 18:29:58 | brixen | hrm, I don't have that |
| 18:30:50 | testerjoe | I have the same problem |
| 18:30:58 | manveru | /home/manveru/.rvm/src/rbx-head/vm/external_libs/onig/missing: line 52: aclocal-1.9: command not found |
| 18:31:03 | brixen | manveru: I'm working on spec for your masgn issue |
| 18:31:06 | manveru | maybe that has to do with it? |
| 18:31:14 | manveru | oh |
| 18:31:26 | manveru | i wanted to write that spec actually :) |
| 18:31:29 | brixen | testerjoe: what platform are you an |
| 18:31:35 | brixen | er on |
| 18:31:38 | testerjoe | gcc version 4.3.4 (Gentoo 4.3.4 p1.0, pie-10.1.5) |
| 18:31:40 | manveru | haven't done much on rbx for a long time |
| 18:31:57 | testerjoe | ruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux] |
| 18:32:10 | brixen | manveru: well, basic issue is that we should not be calling #to_a on the object |
| 18:32:19 | brixen | String#to_a splits on \n |
| 18:32:32 | brixen | but in general, MRI does not call #to_a in this case |
| 18:33:04 | manveru | i think it does if the rhs has a * prefix |
| 18:33:18 | brixen | your case does not though |
| 18:33:26 | testerjoe | so patching rakelib/vm.rake: FLAGS.concat %w[ -ggdb3 -O2 -Werror ] and removing -Werror removes all the ake failures because of unused variables |
| 18:33:39 | brixen | testerjoe: we can't remove -Werror |
| 18:33:56 | brixen | testerjoe: please file a ticket about the build |
| 18:33:57 | testerjoe | ok....but how does this then compile then? :-) |
| 18:34:06 | manveru | it calls to_ary |
| 18:34:43 | manveru | brixen: http://pastie.org/839035 |
| 18:34:43 | brixen | manveru: look at kernel/bootstrap/array.rb:116 |
| 18:34:52 | brixen | that call to #to_a is wrong |
| 18:35:06 | manveru | yeah |
| 18:35:40 | manveru | hrm, it actually fails in configure it seems |
| 18:37:06 | manveru | no, that's all warnings |
| 18:37:08 | brixen | in priority(), _policy is only used in the assert |
| 18:37:30 | brixen | so if assertions are disabled, it would be unused |
| 18:37:40 | manveru | yeah, but it's run with -Werror |
| 18:37:44 | brixen | I'll see if I can install opensuse later |
| 18:37:56 | brixen | yes, we compile with -Werror |
| 18:38:09 | manveru | so this should be an issue on any platform |
| 18:38:09 | brixen | and we won't change that, so we'll have to fix this another way |
| 18:38:22 | testerjoe | what does that mean: Running 705 tests.runner: tpp.c:63: __pthread_tpp_change_priority: Assertion `new_prio == -1 || (new_prio >= __sched_fifo_min_prio && new_prio <= __sched_fifo_max_prio)' failed. rake aborted! |
| 18:38:33 | brixen | are you explicitly turning off assertions? |
| 18:39:05 | testerjoe | this is the build error I get without -Werror |
| 18:39:24 | brixen | testerjoe: that's not a build error |
| 18:39:31 | manveru | rbx built fine this afternoon on my other machine... |
| 18:40:26 | brixen | testerjoe: file a ticket with all the info |
| 18:40:46 | testerjoe | so 'create issue' requires a Github account? |
| 18:40:57 | manveru | and there have been no commits since then... |
| 18:40:59 | brixen | testerjoe: include os, gcc version, and ./configure --show |
| 18:41:16 | brixen | manveru: does it still build on your other machine? |
| 18:41:43 | brixen | testerjoe: yes, you need to have a github account to open an issue |
| 18:41:55 | manveru | brixen: yeah |
| 18:42:01 | testerjoe | okay... |
| 18:42:15 | manveru | the other machine is x86_64 though |
| 18:42:25 | brixen | ok |
| 18:42:31 | dbussink | brixen: i've recently tested with opensuse and it was fine then |
| 18:42:43 | brixen | dbussink: cool |
| 18:45:12 | dbussink | brixen: maybe split out the call to pthread_getschedparam from the assert? |
| 18:46:59 | brixen | dbussink: yeah, that wouldn't hurt |
| 18:47:31 | brixen | we shouldn't assume asserts will always be enabled |
| 18:48:57 | brixen | man these blasted specs |
| 18:48:57 | brixen | it "calls #to_ary on rhs arg if rhs has only a single arg" |
| 18:49:10 | manveru | does a system upgrade |
| 18:49:14 | brixen | orly, and why are there specs like a,b,c = x,5 in there then |
| 18:50:20 | manveru | to make sure it doesn't call to_ary with more than one? :) |
| 18:50:56 | brixen | that's a separate spec |
| 18:51:12 | manveru | btw, with rbx being written in C++, is there any chance for FFI to work better with C++ libs? |
| 18:51:35 | brixen | the set of things that something does is infinite, you don't include the things it doesn't do in a spec for what it does do |
| 18:51:50 | brixen | er doesn't do is infinite* |
| 18:52:13 | manveru | then the spec should be rephrased to "calls #to_ary on rhs arg if rhs is a single arg" |
| 18:52:19 | brixen | FFI has nothing to do with being written in C++ |
| 18:52:26 | brixen | we had FFI when rbx was written in C |
| 18:52:43 | manveru | hrm |
| 18:52:57 | manveru | ok... so i'll stick with tk then |
| 18:53:58 | manveru | wrapping monsters like qt or gtk+ is just about impossible without lots of swig-fu on the target machine |
| 18:54:33 | brixen | I wonder if the MRI ruby-gnome stuff will build with rbx |
| 18:54:39 | brixen | we've added a lot to the C-API |
| 18:54:53 | dbussink | brixen: although splitting this won't fix compiler warnings with assertions disabled, since in that case the return value isn't used |
| 18:55:11 | manveru | i found the json gem doesn't build |
| 18:55:28 | manveru | so i changed my dependency to json_pure, but thought you should know |
| 18:55:29 | brixen | dbussink: ok, I guess we need #ifdef NDEBUG or whatever that macro is then? |
| 18:55:42 | brianmario | manveru: have you tried yajl-ruby? |
| 18:55:49 | brixen | manveru: did you file a ticket on the json gem issue? |
| 18:55:58 | manveru | yajl-ruby? |
| 18:56:09 | manveru | brixen: no, i'm not sure whether they violate the API |
| 18:56:22 | manveru | i'm really no good at C |
| 18:56:26 | brianmario | manveru: I made it compatible a while back, pretty sure it still is |
| 18:56:58 | brianmario | if you need a fast json lib, check it out |
| 18:57:11 | manveru | brianmario: will do :) |
| 18:57:30 | manveru | this was just a dev dependency... and json ships with 1.9, so i usually don't bother |
| 18:58:23 | brianmario | ah yeah, I was actually wanting to submit a patch to rbx to use some code from yajl-ruby for the json api once 1.9 compat development starts |
| 18:58:28 | brianmario | macruby did that |
| 18:58:44 | manveru | that would be great |
| 18:59:38 | brixen | brianmario: we can do that on one_nine branch |
| 18:59:57 | brixen | brianmario: evan was going to merge master so it's updated, but feel free to submit the patch |
| 19:00:03 | brixen | we can hand apply if needed |
| 19:00:06 | manveru | i really can't write 1.8-compatible code anymore... |
| 19:00:26 | brixen | it's easy, I write it all the time :) |
| 19:00:33 | dbussink | brixen: i wonder though whether assertions are properly used there, maybe it should throw an explicit error |
| 19:00:39 | brianmario | brixen: nice |
| 19:00:58 | brixen | dbussink: yeah, not sure either, we can ask evan on wednesday |
| 19:01:23 | manveru | brixen: haven't written any for a year or so, my brain doesn't like to keep two apis in mind |
| 19:01:43 | brixen | manveru: yeah, I don't bother, all my 1.8 code runs in 1.9 :) |
| 19:02:14 | manveru | then you probably don't handle more than ASCII strings :) |
| 19:02:38 | brixen | heh, well, I do in the specs, but the ruby_version_is "1.9" helps focus me :) |
| 19:03:13 | manveru | anw, i'd love to help getting rbx for 1.9 out |
| 19:03:28 | brixen | yeah, it should be fun |
| 19:03:39 | brixen | encoding and syntax are the two big issues |
| 19:03:46 | manveru | got lots of 1.9-only code for your specs :) |
| 19:04:02 | brixen | the specs are pretty good on 1.9 these days |
| 19:04:17 | brixen | anyone could start exploring adding encoding to one_nine branch |
| 19:04:54 | brixen | one idea was to add another immediate that would give us arrays of immediates for backing strings |
| 19:05:08 | brixen | so instead of ByteArray, something like CharArray |
| 19:05:24 | manveru | hm, yeah |
| 19:05:26 | brixen | and the immediate would have at least 24 bits or so |
| 19:05:37 | brixen | so you don't have to do a bunch of byte math |
| 19:05:43 | brixen | but that was just one idea |
| 19:06:20 | manveru | another thing, do you use oniguruma? |
| 19:06:25 | brixen | yes |
| 19:06:29 | brixen | we use it in 1.8 and 1.9 |
| 19:06:46 | manveru | i've had a discussion on redmine about the /g and /G flags |
| 19:06:51 | brixen | yeah |
| 19:07:27 | testerjoe | brixen: filed as ticket 193 |
| 19:07:39 | brixen | testerjoe: excellent, thanks |
| 19:07:42 | manveru | will try to talk with matz during the tokyo kaigi... not that i have high hopes he'll still accept the patch |
| 19:08:11 | testerjoe | however, that Markdown syntax and small input field gives me headaches.... :-) |
| 19:08:54 | manveru | but given the flexible nature of rubinius, you think it would be possible for me to pass that flag when creating a regexp? |
| 19:08:59 | brixen | testerjoe: heh, yeah not the best, but you can just link to a gist too |
| 19:09:20 | brixen | manveru: it's possible, you'd need to look into how onig is built |
| 19:09:26 | testerjoe | should I file that other issue, too ? |
| 19:09:37 | brixen | testerjoe: which one is that? |
| 19:09:55 | testerjoe | the failing assert in test |
| 19:10:23 | brixen | manveru: if it's all the functionality is turned on when built, you could either make sure the flag passes through or define a new Regexp method |
| 19:10:31 | brixen | manveru: I'd expect the flag would pass through |
| 19:10:38 | manveru | in that case i'll consider porting my editor and ffi-tk to rbx |
| 19:10:50 | brixen | testerjoe: sure |
| 19:11:38 | manveru | well, 1.8 still accepts flags, but in 1.9 they have to be ignored |
| 19:12:24 | manveru | but anyway, if that stuff is all in ruby, there is no problem for me to define my own subclass |
| 19:12:42 | manveru | gotta love that :) |
| 19:13:56 | brixen | well, we've improved the interface to onig over time |
| 19:14:06 | brixen | it's all possible :) |
| 19:14:36 | brixen | might take some work though |
| 19:16:09 | manveru | hmm |
| 19:16:19 | manveru | the oniguruma binding code looks just like 1.9 |
| 19:17:27 | brixen | well, it's supposed to be compatible |
| 19:17:38 | brixen | doesn't mean we can't expose it different ways though |
| 19:17:42 | brixen | or whatever |
| 19:17:59 | brixen | you should just see if you can patch in your /g flags |
| 19:19:24 | manveru | Regexp.new('', 512).options |
| 19:19:26 | manveru | # 0 |
| 19:19:56 | manveru | hmm |
| 19:20:10 | testerjoe | brixen: filed as 194..... I havn't quite an idea what this means, but if it helps... |
| 19:20:32 | testerjoe | that guy in the RubyConf video said we should bang on Rubinius - so we do :-) |
| 19:22:33 | brixen | heh |
| 19:22:37 | brixen | the guy == evan? |
| 19:22:46 | brixen | which rubyconf video? |
| 19:23:16 | testerjoe | the last RubyConf, just saw the video yesterday and thought I try build Rubinius again |
| 19:23:29 | manveru | testerjoe: same as me :) |
| 19:23:37 | testerjoe | I seem to have a talent for Rubinus not building - or it's my Gentoo O:-) |
| 19:24:40 | brixen | what's the easiest way to install gentoo in vbox? |
| 19:25:20 | testerjoe | dunno... bootstrapping a Gentoo from scratch is so much work I only do it every ~3y I move to better hardware... |
| 19:25:53 | manveru | http://en.gentoo-wiki.com/wiki/Virtualbox_Guest |
| 19:26:40 | brixen | manveru: thanks |
| 19:27:13 | testerjoe | btw, why does the Rubinius homepage say -rc3 and there's no rc3 tag in Git repo? |
| 19:28:00 | brixen | hmm, did evan not push the tag.... |
| 19:28:24 | brixen | I guess he didn't |
| 19:28:39 | manveru | hmm |
| 19:28:46 | manveru | seems not too hard to change Regexp |
| 19:28:55 | brixen | I wonder which commit is the release... |
| 19:29:01 | brixen | manveru: sweet |
| 19:30:09 | brixen | ugh, this to_a thing |
| 19:35:06 | manveru | or so i thought ... |
| 19:40:28 | testerjoe | hmmm... running the rbx I obtain without -Werror compile just hangs at a futex |
| 19:43:04 | brixen | not surprising |
| 19:43:10 | testerjoe | hu? |
| 19:43:25 | manveru | hrm |
| 19:43:31 | manveru | where is regexp_initialize defined... |
| 19:43:35 | brixen | well, the -Werror is causing the build to fail because asserts are turned off |
| 19:43:50 | brixen | testerjoe: there's an important method call in that assert |
| 19:44:15 | testerjoe | ah.... ok... well, then no Rubinius for me tonight |
| 19:44:53 | brixen | testerjoe: you could investigate why asserts are disabled |
| 19:45:03 | manveru | think i got it |
| 19:45:05 | brixen | or add something to vm.rake to explicitly enable them |
| 19:47:01 | brixen | hrm, we are emitting the same bytecode for 'a, b = x' and 'a, b = *x' |
| 19:47:07 | manveru | so basically Regexp::initialize forces the OnigOptionType into less than 8 |
| 19:47:15 | brixen | ahh |
| 19:47:29 | brixen | so, seems like an easy workaround then |
| 19:47:45 | manveru | no... it's in C++ |
| 19:47:59 | manveru | opts &= OPTION_MASK; |
| 19:48:06 | manveru | in regexp.cpp |
| 19:48:27 | brixen | ok, but why is that not easy to work around? |
| 19:48:37 | brixen | you'd want to use a different Regexp method anyway |
| 19:48:37 | manveru | and i don't think i can redefine OPTION_MASK? |
| 19:48:48 | brixen | well, we have to be compatible |
| 19:49:11 | brixen | you can submit a patch that changes OPTION_MASK and if it doesn't break anything, evan will probably accept it |
| 19:49:12 | manveru | how can you work around that? |
| 19:49:52 | brixen | or you can define a new primitive that passes the opts through |
| 19:50:22 | brixen | you can expose onig just like Regexp::initialize does but with whatever opts you want |
| 19:50:50 | manveru | in ruby? |
| 19:51:05 | brixen | primitives are not written in ruby, no |
| 19:51:09 | brixen | why must it be in ruby? |
| 19:51:14 | brixen | onig is not in ruby |
| 19:51:24 | brixen | you can *expose* it in ruby |
| 19:51:35 | brixen | but you need to write a primitive, or change the existing ones |
| 19:52:14 | manveru | the only reason i'm not just writing ffi-oniguruma is because their encoding definitions are in structs only accessable through macros |
| 19:52:59 | brixen | yeah, that's a pain |
| 19:53:01 | manveru | because i don't know C |
| 19:53:14 | brixen | well, you don't have to know much |
| 19:53:22 | brixen | &= works the same as in ruby, pretty much |
| 19:53:41 | brixen | OPTION_MASK is just a bit mask defined at line 21 |
| 19:53:49 | manveru | yeah |
| 19:53:49 | brixen | twiddle diddle :) |
| 19:54:12 | manveru | so i should change the lookup for OPTION_MASK to use the value from ruby? |
| 19:54:35 | brixen | I dunno offhand |
| 19:54:44 | brixen | I'm just following you :) |
| 19:54:54 | manveru | regexp.rb+8 |
| 19:55:33 | manveru | that way it stays compatible but gives me room to fiddle in ruby without adding another huge function you have to maintain |
| 19:56:11 | manveru | kernel/common/regexp.rb, that is |
| 19:56:34 | manveru | not sure what your rules are with regard to bootstrapping order |
| 19:57:31 | brixen | less doc/bootstrapping.txt |
| 20:00:44 | rue | The FFI interface to C++ can be improved slightly while still subject to dlopen()/dlsym() mechanics |
| 20:01:49 | rue | Much more improvement could conceivably be had from maybe using LLVM's support, but the gain/pain might not be great. |
| 20:03:34 | dbussink | testerjoe: do you have some 'optimization' flag in gentoo enabled that disables asserts? |
| 20:03:55 | manveru | actually, i think we can remove that &= line, it's being done in ruby already |
| 20:04:09 | brixen | ahh cool |
| 20:04:20 | testerjoe | dbussink: I do not understand how this assertions work |
| 20:04:27 | testerjoe | dbussink: CFLAGS="-O2 -pipe -mtune=native -march=native -pipe -fomit-frame-pointer" |
| 20:04:54 | dbussink | testerjoe: hmm, that's not that weird, do you have anything with NDEBUG somewhere? |
| 20:05:17 | testerjoe | dbussink: don't think so |
| 20:06:21 | rue | Where is the grammar? |
| 20:06:32 | manveru | recompiles |
| 20:08:00 | dbussink | testerjoe: problem is that it seems like NDEBUG is defined and therefore assertions are disabledf |
| 20:08:03 | rue | I only have a grammar.o |
| 20:08:04 | libc | testerjoe, llvm from portages has NDEBUG |
| 20:08:13 | dbussink | ah! |
| 20:08:52 | brixen | ah good find |
| 20:09:02 | brixen | we still need to make that code work without asserts |
| 20:09:04 | testerjoe | [ebuild R ] sys-devel/llvm-2.6 USE="libffi -alltargets -debug -llvm-gcc -ocaml -test" 0 kB |
| 20:09:13 | testerjoe | so it's build without debug? |
| 20:10:05 | dbussink | brixen: true yeah, probably need to work through it |
| 20:10:34 | dbussink | brixen: i think that often the assertions would warrant throwing some sort of exception into ruby land (if the vm isn't to borked yet) |
| 20:11:17 | brixen | dbussink: well, we have rubinius::bug, but that code is in the util dir, so it's not supposed to be tied to rbx/ruby |
| 20:11:32 | libc | testerjoe, I think you shouldn't use system llvm for now. (./configure --skip-system) |
| 20:11:34 | brixen | just doing if(...) { abort() } is probably fine |
| 20:11:45 | testerjoe | $ llvm-config --cflags |
| 20:11:49 | testerjoe | -I/usr/include -DNDEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3 -fomit-frame-pointer -fPIC |
| 20:11:53 | testerjoe | yep, NDEBUG |
| 20:13:47 | dbussink | testerjoe: ah, that ex |
| 20:13:51 | dbussink | explains |
| 20:14:10 | dbussink | brixen: we should just settle on a general approach and use that then instead of assert |
| 20:14:22 | dbussink | brixen: maybe our own macro or something like that |
| 20:14:27 | manveru | is that like --disable-debug-runtime ? |
| 20:14:35 | brixen | dbussink: agreed |
| 20:14:52 | testerjoe | libc: building... |
| 20:15:04 | brixen | dbussink: in vm and vm/builtin, that's what rubinius::bug was supposed to be |
| 20:15:13 | brixen | dbussink: but we need something in vm/util |
| 20:16:08 | manveru | http://repos.archlinux.org/wsvn/community/llvm/repos/community-i686/PKGBUILD is what's used to build llvm on archlinux... see ./configure |
| 20:16:54 | rue | dbussink: A macro instead of assert(), standard throughout C and C++, because some idiot distro chooses to build shit with NDEBUG? :/ |
| 20:17:41 | manveru | brixen: how many failures should there be in the specs? |
| 20:17:45 | manveru | like... 0? |
| 20:17:48 | brixen | yeah |
| 20:17:52 | rue | CI |
| 20:17:52 | brixen | with rake, you should see 0 |
| 20:17:56 | dbussink | rue: yeah, well, problem is mainly that rubinius does actual stuff in an assert, and not just assert a result or something |
| 20:18:14 | brixen | manveru: otherwise, with bin/mspec ci or bin/mspec ci -B full you should see 0 |
| 20:18:23 | manveru | ok... |
| 20:18:27 | manveru | i was running rake |
| 20:18:38 | manveru | probably should've ran it first without my modifications |
| 20:19:53 | testerjoe | 3037 files, 11916 examples, 36160 expectations, 0 failures, 0 errors |
| 20:19:57 | testerjoe | rubinius 1.0.0-rc3 (1.8.7 c9b5580f 2010-02-16 JI) [x86_64-unknown-linux-gnu] |
| 20:19:58 | testerjoe | :-) |
| 20:20:09 | testerjoe | --skip-system does the trick |
| 20:20:21 | testerjoe | so... delete issue 193 and 194 I reported? |
| 20:21:12 | brixen | testerjoe: no, go ahead and leave the build one |
| 20:21:23 | dbussink | testerjoe: nah, it's good that we review the assert usage |
| 20:21:24 | brixen | testerjoe: but comment that it's related to llvm defining NDEBUG |
| 20:21:34 | rue | dbussink: It is bad practice to side-effect in an assert, yeah |
| 20:21:43 | dbussink | rue: exactly :) |
| 20:21:56 | dbussink | rue: and often if the assert fails, we should bail anyway |
| 20:22:21 | dbussink | even without assertions enabled |
| 20:22:40 | manveru | Process.setpriority sets the scheduling priority for a specified user FAILED |
| 20:22:51 | manveru | this still fails here... |
| 20:25:00 | testerjoe | issues commented with pointer to this IRC discussion |
| 20:25:23 | manveru | the exception raised is #<Errno::EPERM: Operation not permitted> |
| 20:25:48 | manveru | it expects none or Errno::EACCES |
| 20:26:16 | rue | Mm, both should be valid |
| 20:26:33 | rue | Different error conditions obviously |
| 20:28:14 | khaase | hi folks, any reason i cannot manipulate Exception#backtrace? http://github.com/evanphx/rubinius/issues/issue/195 |
| 20:28:20 | manveru | same in mri 1.9: Process.setpriority(Process::PRIO_USER, 0, r - 1) |
| 20:28:22 | manveru | Errno::EPERM: Operation not permitted |
| 20:28:36 | dbussink | manveru: what platform are you on? |
| 20:28:50 | manveru | archlinux x86_64 |
| 20:28:53 | dbussink | perhaps any ulimits or something like that? |
| 20:29:51 | manveru | ulimit and ulimit -f are both unlimited |
| 20:30:07 | rue | EPERM should refer to the euid |
| 20:30:18 | rue | Being wrong |
| 20:31:35 | brixen | cast_array is unquestionably the nastiest insn we have |
| 20:31:53 | manveru | oh well |
| 20:32:04 | manveru | i'll be back tomorrow... too late |
| 20:32:19 | brixen | manveru: see ya tomorrow! |
| 20:32:24 | manveru | my change broke some cgi specs, so i'll have to find another way |
| 20:32:48 | brixen | manveru: well, if you can pass the flag from ruby, you can define another method in ruby |
| 20:32:53 | brixen | that calls the same primitive |
| 20:33:09 | manveru | yeah |
| 20:33:19 | manveru | but i'd rather have the function lookup the constant |
| 20:33:33 | brixen | that's sounds good too |
| 20:33:36 | manveru | been reading a bit in capi, but not sure how to do that it |
| 20:33:39 | manveru | *yet |
| 20:33:42 | brixen | ok |
| 20:33:51 | manveru | cya |
| 20:34:02 | brixen | later |
| 23:29:23 | sdsykes | hi... quick question: |
| 23:29:51 | sdsykes | what's the status for C exts that do RHASH(hash)->tbl->num_entries |
| 23:30:00 | sdsykes | not supportable? |
| 23:31:10 | rue | Nope, no direct access to the structs like that...so RHASH_TBL or whatever should be used |
| 23:31:26 | sdsykes | yeh, I was trying to install ferret |
| 23:31:50 | sdsykes | Only thing to do is to edit the gem I guess |
| 23:32:05 | rue | RHASH_SIZE the appropriate one, or is that doing something different? |
| 23:32:54 | sdsykes | yeh, replacing all the uses with RHASH_SIZE would work I think |
| 23:33:11 | rue | Looks like that is supported already |
| 23:33:42 | sdsykes | It would be nice if the gem would install without mods, but I don't see how it could easily be dne |
| 23:34:11 | rue | For the life of me, I can never understand why the Ruby C API is considered great. Good/serviceable, sure, and much better than many others. But not _that_ good |
| 23:34:42 | rue | sdsykes: Yep; mind, some of the macros are forced by 1.9 anyway |
| 23:35:14 | sdsykes | yep I know, actually I did contribute a port of ferret to 1.9 back to the project |
| 23:35:28 | sdsykes | but it hasn't made it into a release yet |
| 23:37:22 | sdsykes | thanks anyway, I'll just change the code in there and get on with testing |
| 23:56:09 | brixen | we emit some wacky bytecode for eg a, b, *c = 1, 2, *[3, 4] |
| 23:56:31 | rue | Undoubtedly |