Index

Show enters and exits. Hide enters and exits.

00:24:31boyscoutUpdated MSpec source to 88d85da8. - 2c42853 - Brian Ford
00:29:32boyscoutCI: rubinius: 2c42853 successful: 3037 files, 11915 examples, 36157 expectations, 0 failures, 0 errors
01:18:40brixenhm, it does take some time to install ri and rdoc for rails gems
01:35:08brixenyaml dominates the profile for installing ri, rdoc with gem
01:47:44saywatmangbrixen, thoughts https://gist.github.com/2e1d63685da14fdee0eb ?
01:53:56brixensaywatmang: did you see my changes to your last patch?
01:54:46saywatmangerr
01:54:50saywatmangi looked at the commit
01:54:58saywatmangand i didnt see any changes
01:55:15brixenthey're in the following commit
01:55:27saywatmangah
01:55:32brixen8ab09fcd
01:55:51brixengenerally, do not use begin/ensure in specs
01:56:01brixenthat's what before/after actions are for
01:56:21brixendef_repro_2781 is ugly and unnecessary, the ruby_bug guard already has the bug number
01:56:34brixenuse objects to contain these fixture methods
01:56:53brixenis GC.stress now part of the GC API on MRI?
01:56:59brixenthat's a new method to me
01:57:09saywatmangyea, not sure how longs its been there
01:57:20saywatmangyea i thot about using an Object to contain the fixture method
01:57:32saywatmangexcept in this case the problem is, we redefine the method inside a method
01:57:38saywatmangso the object cant be captured in there
01:57:42saywatmangunless we make it an ivar or global
01:58:15brixenle'see
01:58:25saywatmangand 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:25brixenhm GC.stress appears to be 1.9
01:58:41saywatmangit's in 1.8.7, maybe a backport
01:58:46brixenyeah, let's see if we can contain it in a method
01:58:50brixener object rather
01:59:45saywatmangk 1s
02:00:45antareswhat 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:53antareson rubinius everything is as usual
02:01:22brixensaywatmang: you have self inside the method
02:01:42saywatmangbrixen, ok yea cool, that worked: https://gist.github.com/cb0d8f1b0ac02dabfb44
02:02:03saywatmangyea?
02:02:24saywatmangcuz thats the only way to access the handle object unless we make it global or an ivar
02:02:52brixenwe could use ScratchPad
02:04:48brixensaywatmang: http://gist.github.com/311763
02:05:35brixensaywatmang: so, if you really want the GC.stress set, put that spec in its own describe block and use before/after
02:05:48saywatmangbrixen, what am i looking at in that gist ?
02:05:48brixenand some nice name for that method :)
02:05:56saywatmangyea, ill nicen the name, and do the befoe/after
02:06:04brixenno need to use send :define method inside class << self
02:06:20brixens/ /_/
02:06:30saywatmangi cant use class << self cuz it creates a new scope
02:06:33saywatmangneed the closure
02:06:42brixenahh
02:06:44brixenok
02:06:55brixencrazy bugs
02:06:59saywatmangyea
02:07:04mahargctrl-c never exits irb for me. Just cancels the current command if I press enter and says the word "exit"
02:07:51brixensaywatmang: so, for the spec description string, just describe the behavior
02:07:58brixen"should not segfault" is a given
02:08:18brixenlike "between the sheets" when reading a fortune cookie fortune
02:08:25brixenbut we don't add it to all the specs ;)
02:08:40saywatmangyea but in this case
02:08:46saywatmangthats the only thing
02:09:01brixenit redefines the method
02:09:16saywatmangaho k like
02:09:20saywatmang"redefine the method 1k times"
02:09:27brixenheh
02:09:30saywatmangdont u think if someone later looks at that
02:09:38saywatmangah well theres a bug #, so yea thast fine
02:09:41brixenyeah
02:09:47brixenexactamundo
02:09:59brixenthink minimum necessary info
02:24:13boyscoutForce configure to update version and release date. - ebf06c9 - Brian Ford
02:24:15boyscoutCI: Commit ebf06c9 failed. http://github.com/evanphx/rubinius/commit/ebf06c9a8941094d33407675f9bea15dbd362a43
02:28:02brixenoh elle
02:30:29saywatmangany suggestions for 'assert true' ?
02:30:36saywatmangit fails when there are no expectations
02:37:33brixensaywatmang: have the method return a value
02:37:46brixenhandle.love.should == :large
02:39:42saywatmangthat seems so misleading
02:39:57brixenhuh?
02:40:09brixenit's calling a method and asserting it gets the value from the method
02:40:12saywatmangas if it has anything to do with anything, when it really doesnt
02:40:16brixenthat's *exactly* what you should get
02:40:24brixenyou get nil anyway
02:40:34brixen*every* method returns a value
02:40:42brixenshould be_nil
02:40:45brixenwhatever
02:41:05saywatmangwell the problem is the last thing im doing is 1000.times { }, so how about 1000.times { }.should == 1000 ?
02:41:15brixenthat's really confusing
02:41:18saywatmangyea
02:41:20brixenput the expectation on the method
02:41:30brixen*method call
02:41:32saywatmangk
02:42:55saywatmanghttps://gist.github.com/46b2ef8d75810d0ef101
02:44:32brixensec..
02:46:52brixenwhy is this called the first time with nil then inside the 3.times block ?
02:47:01brixencalled with 0
02:47:09brixenoh wait
02:47:11brixenughh
02:47:21brixenthis is why names are important
02:48:11saywatmangwhat would you name them
02:48:21brixenI'm thinking... heh
02:48:48saywatmangthis bug is just so freakish i doubt anyone will really understand it by just looking at this spec anyway
02:48:59brixenheh, yeah it is freakish
02:49:10brixenbut we shall attempt to make it comprehensible
02:49:36brixenhow did you find this btw?
02:49:45saywatmanglots of debugging
02:49:51saywatmangi initially ran into it in some sinatra code
02:50:02brixenahh sinatra
02:50:10brixenI knew it was evil :)
02:50:12saywatmangsadly its caused by my fix for that last bug
02:50:20brixenoh fun
02:50:25saywatmangyea, fuckin coincidence
02:50:42saywatmangyea sinatra does has a weird recursive define_method capture thing goin on
02:51:34saywatmangs/does has/has/
02:51:40saywatmanghttps://gist.github.com/f30cd0b1fc6897662770
02:52:32brixenlovely
02:54:29brixenso, I have a metaclass helper in mspec
02:54:37brixencan you look at it?
02:54:40saywatmangsure
02:54:50brixenI think we should be able to do self.metaclass.send :define_method here
02:54:55saywatmangright
02:56:26brixenI'm assuming both methods need to be called with argc > 0 right?
02:57:35saywatmangright, 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:03brixenhmm
02:59:08brixencan we not do: def handle.defining_method(arg=nil) then?
02:59:36brixenI'm just wanting to disambiguate why we call the method with an argument
02:59:38saywatmangyea, we can do that
02:59:42brixensince in the one case it's important
02:59:43brixenok
02:59:49brixenalmost done tweaking
03:02:51brixenman this is hard to describe
03:03:16saywatmangyea, im gonna sleep, bbl
03:03:24brixenok, I'll push to your gist
03:05:16saywatmangversion sohuld be .249
03:05:22brixenk
03:06:04brixendescribe "omgwtfnowayseriouslywaitwhatwhatwhat"
03:06:08brixenthat about covers it :)
03:56:11brianmarioso 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:18brianmarioI actually already am, but am looking for a faster way ;)
03:57:39brianmariocurrently I'm memcpy'ing the part of the string I wanted into another string "buf", and do: rb_cstr2inum(buf, 10)
03:57:55brianmariobut, I'd like to have something like
03:58:11brianmariorb_cstrn2inum(originalPointer, len, 10)
03:58:29brianmarioto avoid the "extra" memcpy - any ideas?
03:58:56brixennot offhand
03:59:13brixenput a temporary NULL in the string instead of copying
03:59:18brianmarioI'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:22brianmariok
03:59:46brixenI must get food before I keel over
03:59:50brixenbbl... :)
04:00:03brianmarioheh
04:00:03brianmariocool
07:10:41brixensaywatmang: if you clone the gist, you can see my commit msg explaining the changes I made
07:31:40boyscoutActually write config version to config.rb. - c9b5580 - Brian Ford
07:36:42boyscoutCI: rubinius: c9b5580 successful: 3037 files, 11915 examples, 36157 expectations, 0 failures, 0 errors
09:28:01manverutries porting ffi-tk to rubinius
09:37:18manverujust watched the presentation at rubyconf from evan, sounds like rbx would be a much better platform for VER
09:54:54manveruhow much encoding support is in rbx?
09:57:03manveruno require_relative...
10:06:34manveruand gsub doesn't take an Hash
10:11:41manveruand FFI isn't compatible?
10:15:53mahargrbx imitates 1.8.6, require_relative doesn't exist
10:16:06maharggsub takes a hash?
10:16:21manveruin 1.9...
10:16:37manverui haven't written 1.8-compatible code in over a year
10:16:59manveruso porting is quite a challenge
10:17:36khaasemaharg: rbx imitates 1.8.7, i think
10:19:36dbussinkrbx is 1.8.7 compatible atm
10:20:07dbussinkso no 1.9 syntax and encoding stuff
10:21:04manveruhrm
10:21:37manveruright now i'm in limbo between writing ffi-oniguruma or making rbx 1.9-compatible
10:22:19dbussinkmanveru: making rbx 1.9 compatible is certainly something appreciated, evan and brixen have other priorities first though
10:22:31dbussinkso if you want to take a stab at it, it will certainly be valued :)
10:22:44manveruas long as their priorities don't conflict with mine :)
10:23:17dbussinkwell, it's not a matter of conflict, but getting a stable and complete release out is first priority
10:23:47dbussinkand imho 1.9.2 will be the first really complete 1.9 implementation
10:24:00dbussinka huge amount of stuff has changed since 1.9.1
10:24:13dbussinkit's not for nothing that rubyspec only specs 1.9 trunk atm
10:24:44manveruthe json gem doesn't build on rbx
10:27:43manveruand yaml seems to be broken?
10:29:20manverujson_pure works as a substitute for json
10:31:18dbussinkmanveru: there should be a yaml on board, or is that broken?
10:32:00manveruit seems to return "--- \n" always
10:32:10manverulemme check in irb
10:32:45manveruhm, no
10:32:53manveruso something is going wrong in my provides
10:43:25manveruhrm
10:46:54manveruoh
10:47:56manverua, b = "foo\nbar"; [a, b]
10:47:58manveru# ["foo\n", "bar"]
10:48:21manverui doubt that's compatible with any other ruby version :)
10:49:47manveruapart from that, all specs of innate pass...
15:26:24saywatmangmanveru, what impl acts lik ethat ?
15:46:41dbussinksaywatmang: rbx seems to that, looks like a bug then :0
15:46:41dbussink:)
15:46:54dbussinkbrixen: already awake?
16:55:55rueIt is probably a misimplementation of the #to_a/#to_ary/#to_splat or something..
17:32:40brixenmanveru: wow, interesting, can you file a ticket please
17:32:46brixendbussink: I am now :)
18:25:41manverujust tried building head again: vm/util/thread.hpp:155: error: unused variable ‘_policy’
18:27:29brixenmanveru: what gcc version?
18:27:35brixenos, etc
18:28:11manveruhttp://pastie.org/839024
18:29:29brixenwhat distro?
18:29:37manveruarchlinux
18:29:58brixenhrm, I don't have that
18:30:50testerjoeI have the same problem
18:30:58manveru/home/manveru/.rvm/src/rbx-head/vm/external_libs/onig/missing: line 52: aclocal-1.9: command not found
18:31:03brixenmanveru: I'm working on spec for your masgn issue
18:31:06manverumaybe that has to do with it?
18:31:14manveruoh
18:31:26manverui wanted to write that spec actually :)
18:31:29brixentesterjoe: what platform are you an
18:31:35brixener on
18:31:38testerjoegcc version 4.3.4 (Gentoo 4.3.4 p1.0, pie-10.1.5)
18:31:40manveruhaven't done much on rbx for a long time
18:31:57testerjoeruby 1.8.7 (2010-01-10 patchlevel 249) [x86_64-linux]
18:32:10brixenmanveru: well, basic issue is that we should not be calling #to_a on the object
18:32:19brixenString#to_a splits on \n
18:32:32brixenbut in general, MRI does not call #to_a in this case
18:33:04manverui think it does if the rhs has a * prefix
18:33:18brixenyour case does not though
18:33:26testerjoeso patching rakelib/vm.rake: FLAGS.concat %w[ -ggdb3 -O2 -Werror ] and removing -Werror removes all the ake failures because of unused variables
18:33:39brixentesterjoe: we can't remove -Werror
18:33:56brixentesterjoe: please file a ticket about the build
18:33:57testerjoeok....but how does this then compile then? :-)
18:34:06manveruit calls to_ary
18:34:43manverubrixen: http://pastie.org/839035
18:34:43brixenmanveru: look at kernel/bootstrap/array.rb:116
18:34:52brixenthat call to #to_a is wrong
18:35:06manveruyeah
18:35:40manveruhrm, it actually fails in configure it seems
18:37:06manveruno, that's all warnings
18:37:08brixenin priority(), _policy is only used in the assert
18:37:30brixenso if assertions are disabled, it would be unused
18:37:40manveruyeah, but it's run with -Werror
18:37:44brixenI'll see if I can install opensuse later
18:37:56brixenyes, we compile with -Werror
18:38:09manveruso this should be an issue on any platform
18:38:09brixenand we won't change that, so we'll have to fix this another way
18:38:22testerjoewhat 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:33brixenare you explicitly turning off assertions?
18:39:05testerjoethis is the build error I get without -Werror
18:39:24brixentesterjoe: that's not a build error
18:39:31manverurbx built fine this afternoon on my other machine...
18:40:26brixentesterjoe: file a ticket with all the info
18:40:46testerjoeso 'create issue' requires a Github account?
18:40:57manveruand there have been no commits since then...
18:40:59brixentesterjoe: include os, gcc version, and ./configure --show
18:41:16brixenmanveru: does it still build on your other machine?
18:41:43brixentesterjoe: yes, you need to have a github account to open an issue
18:41:55manverubrixen: yeah
18:42:01testerjoeokay...
18:42:15manveruthe other machine is x86_64 though
18:42:25brixenok
18:42:31dbussinkbrixen: i've recently tested with opensuse and it was fine then
18:42:43brixendbussink: cool
18:45:12dbussinkbrixen: maybe split out the call to pthread_getschedparam from the assert?
18:46:59brixendbussink: yeah, that wouldn't hurt
18:47:31brixenwe shouldn't assume asserts will always be enabled
18:48:57brixenman these blasted specs
18:48:57brixenit "calls #to_ary on rhs arg if rhs has only a single arg"
18:49:10manverudoes a system upgrade
18:49:14brixenorly, and why are there specs like a,b,c = x,5 in there then
18:50:20manveruto make sure it doesn't call to_ary with more than one? :)
18:50:56brixenthat's a separate spec
18:51:12manverubtw, with rbx being written in C++, is there any chance for FFI to work better with C++ libs?
18:51:35brixenthe 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:50brixener doesn't do is infinite*
18:52:13manveruthen the spec should be rephrased to "calls #to_ary on rhs arg if rhs is a single arg"
18:52:19brixenFFI has nothing to do with being written in C++
18:52:26brixenwe had FFI when rbx was written in C
18:52:43manveruhrm
18:52:57manveruok... so i'll stick with tk then
18:53:58manveruwrapping monsters like qt or gtk+ is just about impossible without lots of swig-fu on the target machine
18:54:33brixenI wonder if the MRI ruby-gnome stuff will build with rbx
18:54:39brixenwe've added a lot to the C-API
18:54:53dbussinkbrixen: although splitting this won't fix compiler warnings with assertions disabled, since in that case the return value isn't used
18:55:11manverui found the json gem doesn't build
18:55:28manveruso i changed my dependency to json_pure, but thought you should know
18:55:29brixendbussink: ok, I guess we need #ifdef NDEBUG or whatever that macro is then?
18:55:42brianmariomanveru: have you tried yajl-ruby?
18:55:49brixenmanveru: did you file a ticket on the json gem issue?
18:55:58manveruyajl-ruby?
18:56:09manverubrixen: no, i'm not sure whether they violate the API
18:56:22manverui'm really no good at C
18:56:26brianmariomanveru: I made it compatible a while back, pretty sure it still is
18:56:58brianmarioif you need a fast json lib, check it out
18:57:11manverubrianmario: will do :)
18:57:30manveruthis was just a dev dependency... and json ships with 1.9, so i usually don't bother
18:58:23brianmarioah 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:28brianmariomacruby did that
18:58:44manveruthat would be great
18:59:38brixenbrianmario: we can do that on one_nine branch
18:59:57brixenbrianmario: evan was going to merge master so it's updated, but feel free to submit the patch
19:00:03brixenwe can hand apply if needed
19:00:06manverui really can't write 1.8-compatible code anymore...
19:00:26brixenit's easy, I write it all the time :)
19:00:33dbussinkbrixen: i wonder though whether assertions are properly used there, maybe it should throw an explicit error
19:00:39brianmariobrixen: nice
19:00:58brixendbussink: yeah, not sure either, we can ask evan on wednesday
19:01:23manverubrixen: haven't written any for a year or so, my brain doesn't like to keep two apis in mind
19:01:43brixenmanveru: yeah, I don't bother, all my 1.8 code runs in 1.9 :)
19:02:14manveruthen you probably don't handle more than ASCII strings :)
19:02:38brixenheh, well, I do in the specs, but the ruby_version_is "1.9" helps focus me :)
19:03:13manveruanw, i'd love to help getting rbx for 1.9 out
19:03:28brixenyeah, it should be fun
19:03:39brixenencoding and syntax are the two big issues
19:03:46manverugot lots of 1.9-only code for your specs :)
19:04:02brixenthe specs are pretty good on 1.9 these days
19:04:17brixenanyone could start exploring adding encoding to one_nine branch
19:04:54brixenone idea was to add another immediate that would give us arrays of immediates for backing strings
19:05:08brixenso instead of ByteArray, something like CharArray
19:05:24manveruhm, yeah
19:05:26brixenand the immediate would have at least 24 bits or so
19:05:37brixenso you don't have to do a bunch of byte math
19:05:43brixenbut that was just one idea
19:06:20manveruanother thing, do you use oniguruma?
19:06:25brixenyes
19:06:29brixenwe use it in 1.8 and 1.9
19:06:46manverui've had a discussion on redmine about the /g and /G flags
19:06:51brixenyeah
19:07:27testerjoebrixen: filed as ticket 193
19:07:39brixentesterjoe: excellent, thanks
19:07:42manveruwill try to talk with matz during the tokyo kaigi... not that i have high hopes he'll still accept the patch
19:08:11testerjoehowever, that Markdown syntax and small input field gives me headaches.... :-)
19:08:54manverubut given the flexible nature of rubinius, you think it would be possible for me to pass that flag when creating a regexp?
19:08:59brixentesterjoe: heh, yeah not the best, but you can just link to a gist too
19:09:20brixenmanveru: it's possible, you'd need to look into how onig is built
19:09:26testerjoeshould I file that other issue, too ?
19:09:37brixentesterjoe: which one is that?
19:09:55testerjoethe failing assert in test
19:10:23brixenmanveru: 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:31brixenmanveru: I'd expect the flag would pass through
19:10:38manveruin that case i'll consider porting my editor and ffi-tk to rbx
19:10:50brixentesterjoe: sure
19:11:38manveruwell, 1.8 still accepts flags, but in 1.9 they have to be ignored
19:12:24manverubut anyway, if that stuff is all in ruby, there is no problem for me to define my own subclass
19:12:42manverugotta love that :)
19:13:56brixenwell, we've improved the interface to onig over time
19:14:06brixenit's all possible :)
19:14:36brixenmight take some work though
19:16:09manveruhmm
19:16:19manveruthe oniguruma binding code looks just like 1.9
19:17:27brixenwell, it's supposed to be compatible
19:17:38brixendoesn't mean we can't expose it different ways though
19:17:42brixenor whatever
19:17:59brixenyou should just see if you can patch in your /g flags
19:19:24manveruRegexp.new('', 512).options
19:19:26manveru# 0
19:19:56manveruhmm
19:20:10testerjoebrixen: filed as 194..... I havn't quite an idea what this means, but if it helps...
19:20:32testerjoethat guy in the RubyConf video said we should bang on Rubinius - so we do :-)
19:22:33brixenheh
19:22:37brixenthe guy == evan?
19:22:46brixenwhich rubyconf video?
19:23:16testerjoethe last RubyConf, just saw the video yesterday and thought I try build Rubinius again
19:23:29manverutesterjoe: same as me :)
19:23:37testerjoeI seem to have a talent for Rubinus not building - or it's my Gentoo O:-)
19:24:40brixenwhat's the easiest way to install gentoo in vbox?
19:25:20testerjoedunno... bootstrapping a Gentoo from scratch is so much work I only do it every ~3y I move to better hardware...
19:25:53manveruhttp://en.gentoo-wiki.com/wiki/Virtualbox_Guest
19:26:40brixenmanveru: thanks
19:27:13testerjoebtw, why does the Rubinius homepage say -rc3 and there's no rc3 tag in Git repo?
19:28:00brixenhmm, did evan not push the tag....
19:28:24brixenI guess he didn't
19:28:39manveruhmm
19:28:46manveruseems not too hard to change Regexp
19:28:55brixenI wonder which commit is the release...
19:29:01brixenmanveru: sweet
19:30:09brixenugh, this to_a thing
19:35:06manveruor so i thought ...
19:40:28testerjoehmmm... running the rbx I obtain without -Werror compile just hangs at a futex
19:43:04brixennot surprising
19:43:10testerjoehu?
19:43:25manveruhrm
19:43:31manveruwhere is regexp_initialize defined...
19:43:35brixenwell, the -Werror is causing the build to fail because asserts are turned off
19:43:50brixentesterjoe: there's an important method call in that assert
19:44:15testerjoeah.... ok... well, then no Rubinius for me tonight
19:44:53brixentesterjoe: you could investigate why asserts are disabled
19:45:03manveruthink i got it
19:45:05brixenor add something to vm.rake to explicitly enable them
19:47:01brixenhrm, we are emitting the same bytecode for 'a, b = x' and 'a, b = *x'
19:47:07manveruso basically Regexp::initialize forces the OnigOptionType into less than 8
19:47:15brixenahh
19:47:29brixenso, seems like an easy workaround then
19:47:45manveruno... it's in C++
19:47:59manveru opts &= OPTION_MASK;
19:48:06manveruin regexp.cpp
19:48:27brixenok, but why is that not easy to work around?
19:48:37brixenyou'd want to use a different Regexp method anyway
19:48:37manveruand i don't think i can redefine OPTION_MASK?
19:48:48brixenwell, we have to be compatible
19:49:11brixenyou can submit a patch that changes OPTION_MASK and if it doesn't break anything, evan will probably accept it
19:49:12manveruhow can you work around that?
19:49:52brixenor you can define a new primitive that passes the opts through
19:50:22brixenyou can expose onig just like Regexp::initialize does but with whatever opts you want
19:50:50manveruin ruby?
19:51:05brixenprimitives are not written in ruby, no
19:51:09brixenwhy must it be in ruby?
19:51:14brixenonig is not in ruby
19:51:24brixenyou can *expose* it in ruby
19:51:35brixenbut you need to write a primitive, or change the existing ones
19:52:14manveruthe only reason i'm not just writing ffi-oniguruma is because their encoding definitions are in structs only accessable through macros
19:52:59brixenyeah, that's a pain
19:53:01manverubecause i don't know C
19:53:14brixenwell, you don't have to know much
19:53:22brixen&= works the same as in ruby, pretty much
19:53:41brixenOPTION_MASK is just a bit mask defined at line 21
19:53:49manveruyeah
19:53:49brixentwiddle diddle :)
19:54:12manveruso i should change the lookup for OPTION_MASK to use the value from ruby?
19:54:35brixenI dunno offhand
19:54:44brixenI'm just following you :)
19:54:54manveruregexp.rb+8
19:55:33manveruthat way it stays compatible but gives me room to fiddle in ruby without adding another huge function you have to maintain
19:56:11manverukernel/common/regexp.rb, that is
19:56:34manverunot sure what your rules are with regard to bootstrapping order
19:57:31brixenless doc/bootstrapping.txt
20:00:44rueThe FFI interface to C++ can be improved slightly while still subject to dlopen()/dlsym() mechanics
20:01:49rueMuch more improvement could conceivably be had from maybe using LLVM's support, but the gain/pain might not be great.
20:03:34dbussinktesterjoe: do you have some 'optimization' flag in gentoo enabled that disables asserts?
20:03:55manveruactually, i think we can remove that &= line, it's being done in ruby already
20:04:09brixenahh cool
20:04:20testerjoedbussink: I do not understand how this assertions work
20:04:27testerjoedbussink: CFLAGS="-O2 -pipe -mtune=native -march=native -pipe -fomit-frame-pointer"
20:04:54dbussinktesterjoe: hmm, that's not that weird, do you have anything with NDEBUG somewhere?
20:05:17testerjoedbussink: don't think so
20:06:21rueWhere is the grammar?
20:06:32manverurecompiles
20:08:00dbussinktesterjoe: problem is that it seems like NDEBUG is defined and therefore assertions are disabledf
20:08:03rueI only have a grammar.o
20:08:04libctesterjoe, llvm from portages has NDEBUG
20:08:13dbussinkah!
20:08:52brixenah good find
20:09:02brixenwe still need to make that code work without asserts
20:09:04testerjoe[ebuild R ] sys-devel/llvm-2.6 USE="libffi -alltargets -debug -llvm-gcc -ocaml -test" 0 kB
20:09:13testerjoeso it's build without debug?
20:10:05dbussinkbrixen: true yeah, probably need to work through it
20:10:34dbussinkbrixen: 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:17brixendbussink: 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:32libctesterjoe, I think you shouldn't use system llvm for now. (./configure --skip-system)
20:11:34brixenjust doing if(...) { abort() } is probably fine
20:11:45testerjoe$ llvm-config --cflags
20:11:49testerjoe-I/usr/include -DNDEBUG -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS -O3 -fomit-frame-pointer -fPIC
20:11:53testerjoeyep, NDEBUG
20:13:47dbussinktesterjoe: ah, that ex
20:13:51dbussinkexplains
20:14:10dbussinkbrixen: we should just settle on a general approach and use that then instead of assert
20:14:22dbussinkbrixen: maybe our own macro or something like that
20:14:27manveruis that like --disable-debug-runtime ?
20:14:35brixendbussink: agreed
20:14:52testerjoelibc: building...
20:15:04brixendbussink: in vm and vm/builtin, that's what rubinius::bug was supposed to be
20:15:13brixendbussink: but we need something in vm/util
20:16:08manveruhttp://repos.archlinux.org/wsvn/community/llvm/repos/community-i686/PKGBUILD is what's used to build llvm on archlinux... see ./configure
20:16:54ruedbussink: A macro instead of assert(), standard throughout C and C++, because some idiot distro chooses to build shit with NDEBUG? :/
20:17:41manverubrixen: how many failures should there be in the specs?
20:17:45manverulike... 0?
20:17:48brixenyeah
20:17:52rueCI
20:17:52brixenwith rake, you should see 0
20:17:56dbussinkrue: yeah, well, problem is mainly that rubinius does actual stuff in an assert, and not just assert a result or something
20:18:14brixenmanveru: otherwise, with bin/mspec ci or bin/mspec ci -B full you should see 0
20:18:23manveruok...
20:18:27manverui was running rake
20:18:38manveruprobably should've ran it first without my modifications
20:19:53testerjoe3037 files, 11916 examples, 36160 expectations, 0 failures, 0 errors
20:19:57testerjoerubinius 1.0.0-rc3 (1.8.7 c9b5580f 2010-02-16 JI) [x86_64-unknown-linux-gnu]
20:19:58testerjoe:-)
20:20:09testerjoe --skip-system does the trick
20:20:21testerjoeso... delete issue 193 and 194 I reported?
20:21:12brixentesterjoe: no, go ahead and leave the build one
20:21:23dbussinktesterjoe: nah, it's good that we review the assert usage
20:21:24brixentesterjoe: but comment that it's related to llvm defining NDEBUG
20:21:34ruedbussink: It is bad practice to side-effect in an assert, yeah
20:21:43dbussinkrue: exactly :)
20:21:56dbussinkrue: and often if the assert fails, we should bail anyway
20:22:21dbussinkeven without assertions enabled
20:22:40manveruProcess.setpriority sets the scheduling priority for a specified user FAILED
20:22:51manveruthis still fails here...
20:25:00testerjoeissues commented with pointer to this IRC discussion
20:25:23manveruthe exception raised is #<Errno::EPERM: Operation not permitted>
20:25:48manveruit expects none or Errno::EACCES
20:26:16rueMm, both should be valid
20:26:33rueDifferent error conditions obviously
20:28:14khaasehi folks, any reason i cannot manipulate Exception#backtrace? http://github.com/evanphx/rubinius/issues/issue/195
20:28:20manverusame in mri 1.9: Process.setpriority(Process::PRIO_USER, 0, r - 1)
20:28:22manveruErrno::EPERM: Operation not permitted
20:28:36dbussinkmanveru: what platform are you on?
20:28:50manveruarchlinux x86_64
20:28:53dbussinkperhaps any ulimits or something like that?
20:29:51manveruulimit and ulimit -f are both unlimited
20:30:07rueEPERM should refer to the euid
20:30:18rueBeing wrong
20:31:35brixencast_array is unquestionably the nastiest insn we have
20:31:53manveruoh well
20:32:04manverui'll be back tomorrow... too late
20:32:19brixenmanveru: see ya tomorrow!
20:32:24manverumy change broke some cgi specs, so i'll have to find another way
20:32:48brixenmanveru: well, if you can pass the flag from ruby, you can define another method in ruby
20:32:53brixenthat calls the same primitive
20:33:09manveruyeah
20:33:19manverubut i'd rather have the function lookup the constant
20:33:33brixenthat's sounds good too
20:33:36manverubeen reading a bit in capi, but not sure how to do that it
20:33:39manveru*yet
20:33:42brixenok
20:33:51manverucya
20:34:02brixenlater
23:29:23sdsykeshi... quick question:
23:29:51sdsykeswhat's the status for C exts that do RHASH(hash)->tbl->num_entries
23:30:00sdsykesnot supportable?
23:31:10rueNope, no direct access to the structs like that...so RHASH_TBL or whatever should be used
23:31:26sdsykesyeh, I was trying to install ferret
23:31:50sdsykesOnly thing to do is to edit the gem I guess
23:32:05rueRHASH_SIZE the appropriate one, or is that doing something different?
23:32:54sdsykesyeh, replacing all the uses with RHASH_SIZE would work I think
23:33:11rueLooks like that is supported already
23:33:42sdsykesIt would be nice if the gem would install without mods, but I don't see how it could easily be dne
23:34:11rueFor 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:42ruesdsykes: Yep; mind, some of the macros are forced by 1.9 anyway
23:35:14sdsykesyep I know, actually I did contribute a port of ferret to 1.9 back to the project
23:35:28sdsykesbut it hasn't made it into a release yet
23:37:22sdsykesthanks anyway, I'll just change the code in there and get on with testing
23:56:09brixenwe emit some wacky bytecode for eg a, b, *c = 1, 2, *[3, 4]
23:56:31rueUndoubtedly