Index

Show enters and exits. Hide enters and exits.

00:11:44brixenit's very cool how many rubyspecs we are passing
00:11:52brixenArray: 88 files, 1305 examples, 3464 expectations, 0 failures, 0 errors
00:12:33evanyeah
00:15:40boyscoutDisambiguate a vcall send to the send_method opcode. Fixes #293. - b4ad0af - Evan Phoenix
00:26:01boyscoutCI: rubinius: b4ad0af successful: 3458 files, 13604 examples, 41228 expectations, 0 failures, 0 errors
00:28:15brixenevan: what's the verdict on #295?
00:28:44evanmm
00:28:47evanstill considering it.
00:28:59evanno verdict yet.
00:29:52brixenk
00:32:08boyscoutMore Array specs for not calling #initialize on subclasses. - 276a2e3 - Brian Ford
00:32:09boyscoutSadly Barbara can't save us. Closes #301. - 3825295 - Brian Ford
00:32:53evanBarbara?
00:33:17brixenBarbara Liskov
00:33:32evanah
00:33:33evanhehe
00:33:43brixendespite her excellent work, people are not writing better codez :(
00:34:05evanno, they are not.
00:34:08evansadly.
00:34:20brixenthis feels like thunderstorm weather
00:34:52brixenevan: working on #302 next unless you are
00:35:15evango for it.
00:35:18brixenk
00:35:19evani'm checking out the yard hang.
00:35:24brixencool
00:36:08brixenamazing how little time the bytecode compiler takes now
00:36:18brixen107 sec for full run compiling, 83 pre-compiled
00:36:24brixenthat's wild
00:36:34evanfuck.
00:36:44evanwhy is the rspec -h output formatted for like 120 columns
00:36:44evan:/
00:36:55brixenhah, dunno
00:37:01brixenI read mspec there for a sec
00:37:03brixen:)
00:37:30brixencus all the emo rspec users have 32" apple displays?
00:38:04brixenreal devs use test/unit, and don't need no stinkin formatting
00:38:06brixenjust bytes
00:38:10brixenyarrr
00:38:17evanhah
00:39:09evanwtf. ^C send to rspec seems to make it start over.
00:39:12evanit's very weird.
00:39:17brixenheh
00:39:38brixenas long as it doesn't pop up a "You seem to be trying to quit... Can I..."
00:39:47evanhah
00:39:58evan"It appears you want to quit, please type exit."
00:40:08brixenyeah, or taht
00:40:10boyscoutCI: rubinius: 3825295 successful: 3458 files, 13630 examples, 41268 expectations, 0 failures, 0 errors
00:43:49evanoh yay.
00:43:52evanin yard
00:43:58evan class StatementList < Array
00:44:03evan def initialize(content)
00:44:04fbuilesvevan, brixen: don't make fun of rspec, right now rbx is helding my terminal hostage in sinatra until I make a request :P
00:44:07evan:/
00:44:16evangood think you just fixed that!
00:45:07brixen10 lashes for yard
00:45:50brixenfbuilesv: that's because rbx knows better than you :)
00:46:37fbuilesvbrixen: I don't doubt it, I've been developing some tools this weekend and I just realized I was running rbx :D
00:46:53evanhah!
00:47:00evan:D
00:48:00brixenfbuilesv: that's awesome!
00:48:34fbuilesvbrixen: yup, gonna see if I can fix that Kernel#caller issue now to be able to run my Sinatra code :)
00:49:15brixenfbuilesv: fun
00:49:39brixensunny all day, now it's pouring rain
00:49:41brixenbummer
00:54:02evanbrixen: oops! there are some cases in the compiler where we don't emit the value of a break or next argument
00:54:07evanthats why yard is looping forever
00:54:10evanit's got this weird code that does
00:54:28evanwhile ....include?(ary.last.class)
00:54:35evan next(ary.pop) if ....
00:54:42evanand we don't emit bytecode for the ary.pop
00:54:43evanoops!
00:54:57evanthough, i'm curious where that value is supposed to be used...
00:56:49evanthis is a definite ruby quiz question.
00:58:07evanUG
00:58:22evan"When next is used in a loop, any values following the next are ignored."
00:58:42evanso I guess 1.8 evaluates them and throws them away.
00:59:25brixenugh
00:59:51evanso yard is just being extra wonderfully clever.
01:00:03brixenthat's just terrible code
01:00:27brixeneven ary.pop or next if ... would be a tiny bit better
01:00:29brixentiny bit
01:00:42brixenwell, not
01:00:44brixenhmm
01:00:46brixenit's just terrible
01:02:50evanwow.
01:02:59evanyard... uses callcc.
01:03:01evanO_o
01:03:06brixenhah
01:03:16brixencus, what would docs be without callcc?!
01:03:17evanhe's made a special condition for jruby and rubinius to not use it
01:03:23evanwhich was nice of him.
01:03:26brixenyeah
01:03:41brixenshould have been a HUGE RED FLAG that you don't need it
01:05:03evani'm really curious why now.
01:16:47boyscoutEvaluate next's argument even though it's ignored. Fixes #307. - b99a34d - Evan Phoenix
01:25:55boyscoutCI: rubinius: b99a34d successful: 3458 files, 13631 examples, 41269 expectations, 0 failures, 0 errors
01:31:01brixendefined? you are SO crazy
01:31:29brixenespecially when you throw good ol' haphazard 1.9 in the mix
01:31:35evanheh
01:35:00boyscoutMinor spec cleanup - b0ff44f - Evan Phoenix
01:35:00boyscoutReport path to script bodies relatively. Fixes #308. - 769d17e - Evan Phoenix
01:35:07evanthats a kludge.
01:35:23evani'm not sure how much further we want to go with caller.
01:35:37evanoh wait!
01:35:53evanwe can get better file info that looking at the CompiledMethod's file field.
01:42:51boyscoutCI: rubinius: 769d17e successful: 3458 files, 13631 examples, 41269 expectations, 0 failures, 0 errors
01:45:41evanoh rad.
01:45:59evani've got Location using the active_path variables that CodeLoader sets up
01:46:18evanso backtraces now match up better
01:50:16brixennice
01:55:18jbnxhi guys. was wondering if there's anyone else experiencing weirdness serving up static files from rails with rbx (http://github.com/evanphx/rubinius/issues#issue/310). I'm trying to put a rails app through its paces but blocked because of this
01:58:18evanjbnx: i was planning on taking a look at that tomorrow
01:58:26evanwhats the easiest way to setup a repro?
02:01:11boyscoutAllow CompiledMethods to report their current path better - 93746c6 - Evan Phoenix
02:01:49jbnxevan: ok, thanks. just let me know if you need any other information
02:02:10evanjbnx: i need to know a minimal reproduction of the bug
02:02:42evanah ok, you have it in there
02:02:52evanactually, i just finished with this other bug
02:02:53evani'll do this now.
02:03:08jbnxevan: yes, and verifying it on another machine now...should have it in two minutes or so
02:03:12fbuilesvevan: wrt #311 (json), how comes it builds the gem just fine here?
02:03:30evanfbuilesv: oh it does? interesting!
02:03:36evanfbuilesv: i'm not sure then!
02:03:41fbuilesvevan: http://gist.github.com/404507
02:03:42evani know his pathing is screwy though.
02:03:48evanbecause it's trying to use MRI headers
02:03:50fbuilesvya, its loading MRI headers
02:03:51fbuilesvya
02:03:52fbuilesvits weird
02:04:06evanah! thats probably why
02:04:10fbuilesvlooks like re.h is checked in the config file but not required
02:04:13evanlooks like json is smart enough to work without re.h
02:04:16fbuilesvyup
02:04:21evanbut in his setup, re.h is sort of available.
02:04:24evanthus the weirdness.
02:04:43evanplease put your gist url in a comment
02:04:48fbuilesvon it
02:05:01evandanku
02:09:00boyscoutCI: rubinius: 93746c6 successful: 3458 files, 13631 examples, 41269 expectations, 0 failures, 0 errors
02:09:34cremesevan: question... why would you "fix" evaluating next's arg when it is just thrown away; shouldn't that be fixed downstream?
02:09:49evancremes: nope.
02:09:51evanbecause MRI evaluates them
02:09:58evanbut then ignores the value of the expression
02:10:02evanso we must as well.
02:10:17cremesurhg...
02:10:46evanjbnx: what webserver did script/server use?
02:11:01jbnxWEBrick
02:11:03evanit seems to be working ok with mongrel
02:11:04jbnxodd thing is
02:11:05evanok, let me try that.
02:11:14jbnxit says it's ruby 1.8.7
02:11:25jbnxevan: [2010-05-17 22:10:55] INFO ruby 1.8.7 (2010-05-14) [x86_64-unknown-linux-gnu]
02:11:30evan:/
02:11:33evanhow are you starting it?
02:11:39jbnx$ script/server
02:11:51jbnxafter switching to rbx via rvm
02:11:59cremesbtw, i'll take issue 311 in the next day or so... i need to work on my C api chops
02:12:20evanhrm ok.
02:12:22jbnxevan, $ rbx script/server shows same thing...1.8.7
02:12:28fbuilesvcremes: it worked here fine.
02:12:40jbnxthis is 64-bit Ubuntu Lucid
02:12:43evanjbnx: weirdness..
02:12:44cremesheh, i just read the issue comments...
02:12:46fbuilesv:)
02:12:58cremesglad it's working
02:12:59fbuilesvsomehow it's loading /Library/Frameworks... stuff, not sure how to fix that.
02:13:16evanjbnx: ok, it shows that here too
02:13:28jbnxevan: oh, ok. I'm not losing it ;)
02:13:30evanjbnx: it must be just reporting parts of the version info we provide.
02:13:30cremesfbuilesv: perhaps he's on an old rvm release; rvm update --head is your friend
02:13:44evanhrm
02:13:54evaneven so, prototype.js downloads ok...
02:14:02cremesback to hacking...
02:14:57jbnxevan: ok, verified this happening on this machine as well...though interestingly it gets to byte 49188
02:15:25evanjbnx: what else can you tell me about your machine
02:15:25jbnxevan: also interesting...it appears prototype.js is the only file it has problems with
02:15:27evanOS X?
02:15:37fbuilesvubuntu :P
02:15:41jbnxwget http://localhost:3000/javascripts/effects.js works fine
02:15:41evan64bit?
02:15:42fbuilesvah nvm, misread
02:15:54jbnx 64-bit Ubuntu Lucid
02:16:00evanjbnx: ok, this seems silly, but double check that the file on disk is the right size
02:16:04evanassume nothing!
02:16:39jbnxevan: -rw-r--r-- 1 jbnx jbnx 129738 2010-05-17 22:10 prototype.js
02:16:48jbnxand, it works if I switch to 1.8.7
02:17:03evandid you create the rails app under 1.8.7?
02:17:16jbnxevan: no
02:17:20jbnxunder rb
02:17:23jbnxrbx
02:17:33jbnxjust created a new project. same behavior
02:17:35jbnxvery, very odd
02:17:35evanok
02:17:44evanjust trying to isolate any behaviors
02:17:50jbnxevan: i understand
02:17:51evan64bit linux...
02:17:58evancould you install mongrel and see if that works?
02:18:03jbnxsure, one sec
02:18:09evanthat will at least give us a few more data points.
02:18:38evanI suddenly feel like House doing a differential...
02:19:04jbnxevan: yes, mongrel serves it just fine
02:19:10evanah ok!
02:19:15jbnxso it's a webrick+rbx thing
02:19:19evanyep.
02:20:04jbnxok, well, this gets me far enough to continue my testing. thanks. I assume it'll be a lower priority, so just msg me if you need any further info about my setup. I appreciate your help!
02:20:09evanhrmzers..
02:20:14evanok!
02:20:24evani've got a 32 and 64bit linux i'll spin up some testing on
02:20:57evanok, i'm going to get some dinner.
02:21:05jbnxevan: sounds good. thank you very much. I'll continue putting rbx through its paces. Very excited you guys have brought it this far. thanks for your hard work
02:21:08jbnxenjoy dinner
02:24:52fbuilesvevan: btw, thanks for the caller fix, everything's working fine now :D
02:39:28evanfbuilesv: oh good!
02:45:19fbuilesvevan: I also think http://github.com/evanphx/rubinius/issues#issue/288 can be closed, if he used gcc instead of g++ it'd be fine :P
02:51:27evanah! ha! very good point.
02:51:49evanfbuilesv: closed!
04:09:35boyscoutMore specs for defined? with logical connectives. - 0d44fee - Brian Ford
04:09:35boyscoutFixed defined?(a && b). Closes #302. - 82d6483 - Brian Ford
04:18:48boyscoutCI: rubinius: 82d6483 successful: 3458 files, 13649 examples, 41309 expectations, 0 failures, 0 errors
04:25:36postmodernso whens the next version of rubinius due out?
04:25:52postmodernis rubinius doing weekly/monthly hot releases now?
04:26:00postmodernor doing the death march release cycle
04:40:02brixenpostmodern: we'll do a bugfix release fairly soon
04:40:13brixenfeature releases will be less frequent
04:40:25brixenI'm going to write up a doc that explains it shortly
04:40:33brixenjust finishing up importing nkf
04:40:44brixenmechanize loads and runs for me :)
04:57:53boyscoutAdded NKF ext from MRI 1.8.7. Closes #304. - 35a1b4e - Brian Ford
05:05:50evanbrixen: woop!
05:05:55boyscoutCI: rubinius: 35a1b4e successful: 3458 files, 13649 examples, 41309 expectations, 0 failures, 0 errors
05:06:01evanNKF didn't use much in terms of c-api that we didn't have I guess?
05:06:08evanmuch == any
05:06:23evanpostmodern: you still around?
05:08:46brixenevan: well, I don't have any specs for it
05:08:59brixenI'm going through now and cleaning up RSTRING stuff
05:09:14brixenbut mechanize loads and processes junk from the net-tubes
05:09:30evanwoop woop ba-doop.
05:10:40evanug. rb_iterate gives evan a frowny face
05:10:41evan:(
05:11:46brixenyeah, I remember looking at it and just going, oh damn
05:11:49evanit creates a new NODE* containing a raw C function
05:11:52brixenhow are you going to do it?
05:11:56evanand makes a block out of it.
05:11:59brixenyeah
05:12:10evanwelp.
05:12:33brixenI love the switch with case 0: ..; default:
05:12:42evanyeah.
05:13:01evanbig attention to keeping the control flow easy to understand.
05:13:04evan*eyeroll*
05:13:18brixenabsolutely
05:13:26brixennever know when you need to add a case
05:13:36evangotta be ready!@
05:13:38brixenall ifs should be converted to switch
05:14:40evanI wonder if you can do "goto (s == 1) ? l1 : l2;" in C
05:14:42evanprobably not.
05:14:59evanbut you can move the goto inside the ternary for similar effect.
05:15:25evanfor rb_iterate
05:15:34evani'm really tempted to special case the shit out of it.
05:15:43evanand raise an error if my special case doesn't work.
05:15:46evanie
05:16:03evancheck if the 1st argument is rb_each and the 2nd is an Array
05:16:12evanand if so, just loop over it in C and call the function
05:16:26evanthat seems to be the only way people use rb_iterate
05:16:40brixenthat seems totally reasonable
05:18:39evanit certainly is the pragmatic approach.
05:19:21brixenindeed
05:21:36evanafter watching house, then looking at the MRI internals, it really is like MRI bleeding it's internals into extensions
05:22:12evanand it's being doing it for long enough I think it's got sepsis.
05:22:54postmodernevan, back
05:23:02postmodernevan, yeah this is the first i've heard of NKF
05:23:02evanpostmodern: you asked about releases
05:23:10postmodernevan, yeah
05:23:12evani was curious if you had an opinion on it
05:23:21evani'm looking for opinions on how often to be doing releases, etc.
05:23:35postmodernevan, i would ask dbussink and dkubb
05:23:35evanbrixen and I worked up a scheme that should allow us to do bugfix releases often
05:23:39postmodernevan, or lsegal
05:23:45postmodernevan, they've done roling releases
05:23:45evanthe real question is how often.
05:23:59evanhow do you define rolling releases?
05:24:07postmodernevan, lsegal did whenever a user found a show stopping bug
05:24:21postmodernevan, datamapper has doing bi-monthly releases a while back
05:24:33postmodernevan, i think it's a good idea when you have lots of minor bugs that need fixing
05:24:42evanwell, both of those are different than rbx.
05:24:48evanin terms of the effect of a release.
05:25:13evanif we release 1.0.1, 1.0.2, and 1.0.3, each 2 weeks apart.
05:25:16evanthat might be much
05:25:22evandon't ya think?
05:25:26postmodernevan, oh definitely
05:25:41postmodernevan, i would do 4 digit releases
05:25:46evannegative.
05:25:46postmodernevan, or just do weekly builds
05:25:51evanwe are not doing 4 digit releases.
05:26:04postmodernholding out for 5 digit vesion numbers? ;)
05:26:12evanweekly builds are too much work for very little payoff
05:26:27evanpeople who want something that bleeding edge are usually comfortable with using it straight from git.
05:26:34postmoderni suppose so, it is very easy to git pull and rebuild
05:26:39evanno, 3 numbers and an optional prerelease tag
05:26:39postmodernyeah
05:26:57evanany more and you add unnecessary work and confusion.
05:27:05postmoderni guess it comes down to being able to point to a specific version, and say my code works past that point
05:27:15postmodernand not have to wait a very long time for that version number
05:27:20evanwe have to be more conservative than, say, datamapper.
05:27:32evansince upgrading rbx is more work than upgrading datamapper.
05:27:37evanand it can effect a lot more.
05:27:47postmoderntrue
05:28:05postmodernim not sure where rbx is in terms of compatibility
05:28:06evanif we release too often, it's a moving target and people can't get comfortable
05:28:16evannot often enough, and bugs languish in users hands
05:28:29evanpostmodern: that doesn't matter so much wrt releases.
05:28:37fbuilesvevan: have you considered doing releases every roughly 3 months? That's how Linux works and seems like a sweet spot between getting new features in vs. scaring users with too many releases.
05:29:04postmodernevan, well i would do releases more often to clear out compatibility issues, then switch back to a conservative release cycle
05:29:14evanfbuilesv: well, brixen and I agreed to doing bugfix and feature releases seperate.
05:29:28fbuilesvevan: yup, I meant feature releases every 3 months
05:29:34postmodernevan, but if rbx is reaching the last 20% of things left, yeah a conservative cycle is better
05:29:41evanfbuilesv: thats pretty likely the scheme we'll go with
05:29:45evan3-4 months for feature releases.
05:30:08evanpostmodern: well, not sure where you've been for the last 4 years, but we're on the last 20% for sure.
05:30:10evan:)
05:30:26evanthere are certainly compatibility issues we're hitting now
05:30:37evansince a lot of people didn't test on the rc's (even though I asked them to!)
05:30:48evanso for the next month or 2, it will be a little abnormal
05:31:00evanbut I still want to prep the release cycle.
05:35:07dbussinkevan: just curious, is the numeric#== issue still on the radar?
05:35:13evanyep.
05:35:21evanprobably check it out tomorrow.
05:35:35evanare you hitting it?
05:36:34dbussinkevan: i know dkubb has hit it, he also reported it
05:36:46dbussinkbut i wondered if it was on any other list since the issue was closed as post 1.0
05:37:28evanthere is
05:37:42evanbrixen and I have put stuff in pivotal tracker
05:38:14dbussinkah ok, cool :)
05:38:53dbussinkbtw, i think doing a 1.0.1 relatively quick is probably a good idea, shows you're working actively on the bugs coming in
05:39:08dbussinkeven if you ask, people won't test as much with rc's :P
05:39:15evanso i've noticed!
05:39:41brixenbug fix releases are just rc's in reverse
05:40:43brixena bug fix release, barring security issues, once a month, with a feature release every 3-4 months is probably pretty sane
05:40:54evanyeah
05:40:56brixensince we keep master usable always
05:41:05evanpeople who want to play with the new features can use them on master
05:41:11brixenyep
05:41:33brixenand that forces some to use master rather than waiting for the release
05:41:44brixenthat's probably the best rc strategy
05:42:55dbussinkevan: is the pivotal tracker something you'd want to be somewhat public or preferably private?
05:43:04scooprremember to announce a nonsensical fibonacci benchmark numbers every now and then!
05:43:12evanwell, i'd be open to having it public, but i'm not sure how you do that.
05:43:43evanah, public access
05:45:21evandbussink: brixen and I will discuss it.
05:47:11evandbussink: ok
05:47:12evanhttp://www.pivotaltracker.com/projects/70057
05:47:20evanwe've just started using it
05:47:24evanso everything is in the icebox
05:50:44scooprI'm curious about that 'build system' task, do you foresee any system that handles the requirements as is?
05:50:56evanthats a big item
05:51:04evanbrixen and I have been discussing it for many years now.
05:51:12evanas scary as that sounds.
05:51:13evanit's true.
05:51:19brixenscoopr: no, I have not seen any system that does
05:51:52brixenincluding all the rake rewrites like boson
05:51:56scooprbecause, I've kinda missed a Good Build Solution(tm) for years as well
05:52:12scooprand my needs were smaller even!
05:52:28brixenscoopr: this must seemlessly handle building Ruby, C/C++, and external libraries
05:53:03scooprused rake for a while, kinda liked it but kinda hassle.. ended up doing massively wierd gnumakefiles ..
05:53:08brixenand correctly deal with multiple dependency trees in a single process space
05:53:29scooprhow do you mean multiple dependency trees?
05:53:44brixenexactly what it says :)
05:53:56scooprvaried by configuration?
05:54:38scooprahh, process space, that is, in one invocation?
05:54:43brixenyes
05:56:00brixenand it should gracefully handle the equivalent of rake clean build
05:56:37brixenwhereas rake resolves dependencies, then clean rm's them, then build fails because there are deps it thinks are satisfied and does not invoke the build steps
05:57:44brixenI was very keen on Tap for a bit, but when I tried to make a build system out of it, the syntax quickly got in the way
05:58:11brixenboth Thor and Boson use way to wacky a method of mapping options to methods
05:58:20brixentoo wacky*
05:58:56evanthey're also not build systems
05:59:00evanin any way.
05:59:03brixenand I want digest based dependency tracking, not mtime based
05:59:19evanbrixen: i think we're going to just have to build it
05:59:23evanhonestly.
05:59:29brixenyes, I want to :)
05:59:42brixenI've been patiently waiting for 1.0
05:59:56scooprI've wanted, simple for simple stuff (in makefile SRC=($(wildcard *.cpp) foo: $(SRC) suffices mostly), sanely putting stuff in one build dir (kinda like reverse VPATH), sane handling of concurrent building (catch build output and then serialize to stdout in humane order) .. inter-project dependencies, so I can just say "I depend on that lib in that dir", without mucking too much around with how it gets built when setting (c|ld)flags
06:03:16scoopralso as an optimization, I've thought of using filesystem notifications and a running process to handle dependency updates as they come, maybe even compiles.. a more integrated http://github.com/scoopr/autobuild ;)
06:07:29scooprI guess I'm just saying that I'm actually really interested in participating in a buildsystem project ;)
06:08:02evanwell ok then!
06:08:06evanyou're signed up.
06:08:26brixenthis is more of a build rubinius project
06:08:34brixenif it's generally useful, super
06:08:41scooprwell yeah there is that
06:08:41brixenbut that's very low on my list of features
06:09:49evanbrixen: thats for scoopr to sort out.
06:09:56brixenindeed
06:09:58scoopr=)
06:10:14scooprI guess you would like to implement it in ruby?
06:10:17evandifferent participants having different goals can be good
06:10:29evanscoopr: got a better idea?
06:10:32brixenscoopr: yes, definitely
06:10:48brixenit needs to run on Windows
06:11:12brixenand a Ruby that can run melbourne is a bootstrap requirement at this point
06:12:05scooprand when you librarize rbx, then it can become a standalone executable! ;)
06:12:38brixenhmm
06:12:50brixenI don't see those 2 being related actually
06:14:47scooprwell yeah, not quite related, thought it would help.. dunno
06:17:41evanok, time for bed!
06:17:42evannite.
06:36:47postmodernw00t, the NKF fix totally got specs passing on my web-scraping code that used mechanize
06:37:13brixenpostmodern: sweet
06:37:49postmodernone more programming-domain under rubinius'es belt
06:54:06slavahi evan
06:58:00dbussinkslava: he went to bed i think
09:01:41kronos_vanokhaase_zz, Where is on finn.de Redmine CC? I miss it :(
09:40:22khaasekronos_vano: http://ci.finn.de/
09:42:03kronos_vanokhaase, tnx
12:41:48dbussinkkhaase: ah, rbx is green :)
12:42:07khaasedbussink: that does not mean the tests pass
12:42:30khaasedbussink: it just gives the wrong return value for some reason
12:42:41dbussinkkhaase: ah, that's too bad
12:42:48khaaseyes, it is
12:42:57dbussinkkhaase: already able to reproduce that exit status issue?
12:43:30khaasedbussink: have not tried, am rather short on time atm
12:43:43khaaseone week left for implementation on my bachelor project
12:44:53dbussinkkhaase: ah, cool, what are you working on?
12:45:30khaasedbussink: interactive multimedia screens for pubs with seaside/smalltalk
12:46:29dbussinkkhaase: ah, colleague / friend of mine also did some interactive stuff for pubs :)
12:46:37dbussinknot on screens, but projecting stuff on the bar itself
12:46:49dbussinkvirtual aquarium that grows around glasses of people etc.
12:46:59khaaseactually, it's mainly about context-sensitive ads
12:47:12khaasewhich kinda sucks, as i did not know that upfront
12:47:45khaasedbussink: the interactive part is just to get people's attention
12:47:52dbussinkkhaase: ah, that's a bit annoying then yeah
12:48:05dbussinkkhaase: if you want to see what i was talking about: http://vimeo.com/5522487
12:48:45khaasewow, that's cool
12:49:12dbussinkkhaase: guess you hoped for something similar when you started ;)
12:49:22dbussinkit just reminded me of this, interactive and bar were the triggers :P
12:51:32khaasedbussink: yes, that's more like it. our 'interaction' mainly relies on folks having smartphones. but it'll be over soon.
12:54:07dbussinkkhaase: any idea what you're going to do next? master?
12:54:08dbussinkor work?
12:54:22khaasemaster
12:54:39khaaseplus part time work
12:59:04dbussinkkhaase: any specific master or more general computer science stuff?
12:59:46khaasedbussink: probably the same I'm doing as bachelor - "IT-Systems Engineering"
13:00:11khaasethough i'm not really sure atm
13:04:52khaasedbussink: btw, either my internet sucks or nedap's website has some issues
13:05:20dbussinkkhaase: dunno, what page are you going to?
13:05:40khaasehttp://www.nedap.com/en/index.php
13:34:26dbussinkkhaase: looks ok to me here in safari
13:39:55khaasedbussink: yeah, works fine now, dunno
13:41:47dbussinkkhaase: it's not that it comes from a server across the globe :P
13:41:55dbussinkbut that website has very little information
13:42:18khaasewas just trying to check out what you are actually doing
13:42:45khaasesorry, got distracted by the whole bachelor project thing (sometimes smalltalk sucks)
14:34:04cyndisgah, ruby-opengl is doing RARRAY_LEN() with a RArray* as the argument, how stupid
14:36:11cyndisbreaks horribly, horribly on rubinius..
14:38:09matthewdEveryone has to have their own unique bit of crazy... otherwise, where's the fun? :)
14:38:43matthewdWhich reminds me...
14:38:57cyndisthey could be crazy in a non-breaking way :)
14:39:14matthewdevan: Is rb_is_const_id() supportable / worth supporting, or is that in the "no, go away" bucket?
14:40:30cyndisi'm not sure this is even fixable, and gcc doesn't even give an error, so you just load the extension and get "wrong argument type UWVS�t������ (expected Array)" or something
14:41:03matthewdevan: First few pages of google code search only seem to show ruby-spidermonkey/Johnson (which is what I'm trying to get working, and am quite happy to change)
15:07:00boyscoutSet rbconfig's LIBS to "" to to appease mkrf - 1212f04 - Mikko Perttunen
15:07:00boyscoutSet rbconfig's LIBRUBYARG_SHARED to "", because we don't have a shared library yet. - 7c4aeb6 - Mikko Perttunen
15:15:01boyscoutCI: rubinius: 7c4aeb6 successful: 3458 files, 13649 examples, 41309 expectations, 0 failures, 0 errors
16:44:50brixenkronos_vano: do you have that bit shift patch somewhere and the specs?
16:45:01brixenkronos_vano: I was going to see if I can give you a hand with the specs
16:48:13brixenkronos_vano: I'm going to a talk this morning, so just link me up when you're around
17:26:03kronos_vanobrixen, I give all this stuff to you today
17:27:42evankronos_vano: at the moment, the pivotal tracker is view only for everyone except for brixen and I
17:27:58evankronos_vano: we're using tracker as a roadmap/todo list for the 2 of us
17:28:06evanwe're happy to let people see that
17:28:11kronos_vanoevan, ok, np
17:28:20evanbut for now, we don't want other people putting things in or assigning themselves stuff.
17:28:38evanmaybe later when we've got the hang of it as a workflo.
17:28:40evanworkflow.
17:34:09boyscoutRemove Numeric#== - e4efe73 - Evan Phoenix
17:42:05boyscoutCI: rubinius: e4efe73 successful: 3458 files, 13649 examples, 41309 expectations, 0 failures, 0 errors
17:42:59RORgasmhey guys
17:43:08RORgasmi have some general questions about rubinius
17:43:26evanRORgasm: ok, whats up
17:43:35RORgasmso, rubinius essentially uses ruby to write machine code correct
17:43:36RORgasm?
17:44:06evanwell no.
17:44:17evanit uses LLVM to translate rubinius bytecode into machine code.
17:44:23evanwhich is in C++.
17:44:37RORgasmLLVM is what then?
17:44:52evanLLVM is a compiler infrastructure
17:44:56RORgasmi c
17:44:57evanthink of gcc, but as a library.
17:45:02RORgasmdoes macruby use llvm
17:45:07RORgasmoh i c
17:45:08evanyes, it does.
17:45:29RORgasmwhereas MRI uses gcc correct?
17:45:40evanwell, much differently.
17:45:53evani'm not talking about the compiling of the VM itself.
17:46:07evanbut rather taking ruby code and turning that itself into machine code
17:46:10evanMRI does nothing like that
17:46:17evanit just uses gcc to compile the interpreter
17:46:24RORgasmi c
17:46:44RORgasmso in MRI.. basically ure ruby code is interpeted by c code which is compiled by gcc
17:46:46RORgasmcorrect?
17:47:05evanyeah
17:47:09RORgasmcool
17:47:35RORgasmso can you use LLVM with any language to write machine code
17:47:36RORgasm?
17:48:12evanwell, LLVM turns a special data structure into machine code
17:48:23RORgasmok
17:48:29evanyou can translate any language into that data structure, then it can turn that into machine code, sure.
17:49:12kronos_vanoRORgasm, scheme is bytecode -> LLVM IR -> machine code
17:50:04RORgasmevan: cool
17:50:17RORgasmso for the recent Rubinius 1.0 milestone u guys reached
17:50:20RORgasmcongrats btw
17:50:43RORgasmwhat ruby specs are u using ... 18.6, 1.8.7, 1.9.1 ?
17:51:04evanrubinius runs 1.8.7
17:51:11evanor, rather, is 1.8.7 compatible.
17:51:26RORgasmi c
17:51:46RORgasmoh and last question for now
17:51:48RORgasmso
17:52:12RORgasmif u have a rubygem that requres a c library
17:52:25RORgasmsay something like nokogiri which uses libxml
17:52:43RORgasmwill that gem as it is in its current state with MRI work with rubinius?
17:54:42evana number of them will, yes.
17:54:49evanwe've duplicated the C api they use
17:54:52evanit's not complete yet though
17:54:56evanso some gems don't work
17:55:02evanbut we've focused on the most popular ones first
17:55:09evannokogiri, for instance, does work.
17:55:51RORgasmhow do u duplicate the C api?
17:55:54RORgasmjust curious
17:56:10RORgasmso u have to have essentially
17:56:17evanhow? we code it.
17:56:19RORgasmthe equivalent of that C lib
17:56:25RORgasmsay libxml
17:56:26evanright.
17:56:36RORgasmwritten for LLVM
17:56:37RORgasm?
17:56:40evanno no.
17:56:46evanit's unrelated to LLVM entirely.
17:57:03evanthe C extension except certain C functions to exist, like rb_funcall()
17:57:06evanwe simply provide them.
17:57:14RORgasmoh
17:57:16evanwith implementations that hook into our system
17:57:22RORgasmi c
17:57:28RORgasmthats not too bad right
17:57:41evanwell, some are easy
17:57:43evansome are terrible.
17:57:48RORgasmi thought u would have to recreate the C libs entirely from bootom up
17:57:56evanbecause they expose details of MRI that are hard or impossible to duplicate.
17:57:59evanno no.
17:58:01RORgasmevan: whats an example of a terrible one?
17:58:07evanRREGEXP()
17:58:08evanit's a mocr
17:58:09evanmacro
17:58:22RORgasmi c
17:58:27evanthat provides access to the exact C struct MRI uses for regexps
17:58:34evanwhich we don't use.
17:58:48RORgasmhave u guys run any benchmarks on rubinius 1.0? where does it stand compared to MRI, jruby, and macruby?
17:59:01evandepends on the benchmark
17:59:09evanon micro benchmarks we're way way faster.
17:59:18evanbecause we implement large chunks of functionality in ruby
17:59:33evanthe performance evens out, since it's comparing ruby code to C code at that stage.
18:00:11tarcieriw00t installing rbx via rvm
18:00:53tarcieriyou guys have a debian/ubuntu package yet?
18:01:02evanwhy would we be doing that?
18:01:07evanwe're not experts in that.
18:01:15evani'd prefer someone that knows how to do it do it.
18:01:17tarcierior someone graciously contributed one
18:01:24tarcieriapparently not!
18:01:27evani've done it, but it's been a long time.
18:02:14tarcieriwtf @ nickname
18:07:59kronos_vanoevan, Fixnum::MIN is wrong on rubinius
18:08:16evanthere is no Fixnum::MIN in MRI
18:08:23evanso it's not wrong.
18:08:44kronos_vanoI mean value for 64x system
18:08:49evanit's right for me.
18:08:58evan>> -4611686018427387903.class
18:08:59evan=> Fixnum
18:09:11evan>> -4611686018427387904.class
18:09:11kronos_vanoon MRI it is -4611686018427387904
18:09:11evan=> Bignum
18:09:19kronos_vanoirb(main):006:0> -4611686018427387904.class
18:09:19kronos_vano=> Fixnum
18:09:22evanso?
18:09:33evando you mean the actual boundary?
18:09:39evanor the Fixnum::MIN constant?
18:10:25kronos_vanoevan, I want to find the way to get fixnum min value on all ruby platfrom ( for test)
18:10:57evanok..
18:11:46kronos_vanoI have the patch (for shifting). But haven't tests
18:12:07evank
18:18:32kronos_vanobrixen, http://gist.github.com/405319
18:21:10dbussinkkronos_vano: you could add specs for boundaries on different platforms
18:21:21dbussinkkronos_vano: so add both mri's and rbx's case
18:21:26kronos_vanodbussink, er
18:21:27kronos_vanohm
18:21:54dbussinkkronos_vano: dunno what jruby's case is, but you could look at that too
18:22:21kronos_vanodbussink, I have 1.8, 1.9, jruby
18:22:35kronos_vanoI'll test on all and rewrite spec
18:22:39kronos_vanonp
18:22:43evank
18:39:36evanMRI has the strangest caching strategies.
18:39:48evanlike rb_reg_regcomp caches a single value
18:39:52evanthe last one it returned.
18:40:09evanwhats the change that you're going to call rb_reg_regcomp on the same String twice back to back?
18:41:18dwaiteevan: sounds like a very small LRU cache
18:41:47evanI can't see how thats likely to provide any benefit.
18:44:13kronos_vanoevan, At least 1 people install rubinius an start to play with it after my speech. Not so bad :)
18:44:23evanyay!
18:44:24evangood job!
18:44:30evanyehuda said he thought it went well
18:44:32evancongrats!
18:44:55kronos_vanotnx!
18:48:02dbussinkevan: did we make the sound sample from kronos_vano the official way how to pronounce rubinius?
18:48:15kronos_vanohahaha
18:48:26evanwe could, but even I can't pronounce it so awesomely.
18:49:42kronos_vanoevan, People asking: "What about passenger?"
18:49:54kronos_vanoWhat do you think?
18:50:02evanit uses the capi I believe
18:50:11evansomeone just needs to try it.
18:50:12evanand report back.
18:52:49kronos_vanoand another one thing. Now on dummy rails app rubinius takes about 2x more memory rather than MRI. Is there possibility to decrease memory using for rubinius (in future)?
18:53:59evanmaybe.
18:54:03evanwe haven't spent a lot of time on that
18:54:10dbussinkis enjoying a stroopwafel warmed over a cup of tea
18:54:15evandbussink: WANT
18:54:23evankronos_vano: rbx has a lot more runtime data than MRI
18:54:32evanbut as the rails app grows, rbx should stay lower.
18:55:01kronos_vanook
18:55:08evanrad, gherkin's specs pass.
18:56:16kronos_vanolucky man! rmagick doesn't have specs :( :)
18:56:26evankronos_vano: oh btw
18:56:36evanwe have to talk about our GetReadFile and GetWriteFile
18:56:42evanthey're completely wrong.
18:56:57evani screwed up by leaving GetOpenFile in at all
18:56:59evanit doesn't work.
18:57:06kronos_vanoMay be! It is not ready patch
18:57:22kronos_vanoevan, hm, so we should patch rmagick?
18:57:29evanwe might have to.
18:57:32dbussinkevan: rb_iterate is weird though
18:57:54evandbussink: i know. i'm about to commit a hacked up version that seems to work the way most people use it.
18:58:07dbussinkevan: i still don't get what exactly it does :s
18:58:32kronos_vanoevan, Ok, I'll contact with gem authors.
18:58:36evanit calls a function with a C function setup as a block
18:58:54evanso when the original function does a yield, it calls the 2nd C function
18:59:15evanthe #1 way it's used is to iterate over an array and call a C function for each element.
18:59:24evanand thusly, i'm making it do just that.
19:01:59kronos_vanoevan, Do you see rb_frame_last_func() ? Is it right? I don't sure in it
19:02:41evanshould be, but you should use env->get_handle()
19:02:47evanraher than casting it directly to a ID
19:04:32kronos_vanook. another one with rb_const_get_from vs rb_const_get. It is almost same (as i understand from 1.8.7 sources), but first one isn't search const in Object class. :/
19:04:52evanthats fine
19:04:55boyscoutAdd hacked rb_iterate/rb_each - cc0c747 - Evan Phoenix
19:04:56boyscoutAdd rb_reg_regcomp - a3c4670 - Evan Phoenix
19:04:56boyscoutAnnotate rb_raise as not returning to fix gherkin warnings. Fixes #309. - 0c6aa86 - Evan Phoenix
19:04:58evanmaybe make a comment about why it seems so similar.
19:05:05kronos_vanok
19:05:49boyscoutAdd stub of re.h - d7a3b22 - Evan Phoenix
19:07:58evanthings seem to include re.h
19:08:02evanbut not use anything it provides
19:08:10evanso i'm going to just have a stub file for it
19:09:56kronos_vanoevan, Do you know what this defines (GetReadFile, GetWriteFile) actually do? I don't understand :(
19:10:16evanyeah, they expose an internal structure in MRI
19:10:23evanwe might have to treat like we do RSTRING
19:10:29evanthats probably the best solution.
19:14:11boyscoutCI: rubinius: 0c6aa86 successful: 3458 files, 13650 examples, 41311 expectations, 0 failures, 0 errors
19:24:52kronos_vanohttp://gist.github.com/405418
19:24:54kronos_vano:D
19:25:20kronos_vanoMinimal fixnum value for diffrent ruby implementation
19:25:34boyscoutAdd missing symbols for curb - 72ed7ec - Evan Phoenix
19:26:49evannice.
19:26:54evanlunch time!
19:34:43boyscoutCI: rubinius: 72ed7ec successful: 3458 files, 13650 examples, 41311 expectations, 0 failures, 0 errors
19:40:43dbussinkevan: you know happens with comments like this right?
19:40:45dbussink"/ In MRI, rb_undef also calls the undef_method hooks, maybe we should?"
19:40:47dbussink;)
19:41:07evansomeone implements it?
19:41:08evani hope.
19:41:19dbussinkevan: more that something uses it
20:06:02kronos_vanoI totally don't understand http://gist.github.com/405469 compare returns Fixnum, then fixnum coverts to native_int and then native_int converts to fixnum. oO
20:17:08Defilerkronos_vano: Well, it doesn't know if that comparison is going to succeed, so it can't really just cast the return value and go
20:17:23Defilerand those are templates, so it isn't really going to spend much time there in practice
20:19:08kronos_vanoDefiler, and it doen't pass c++ tests...
20:19:18kronos_vano*doen't
20:19:21kronos_vano:(
20:19:24kronos_vanodoesn't
20:19:28Defilerthat's not good
20:19:41kronos_vanoI mean if I remove this code
20:20:01kronos_vanoIf I don't touch it everything is ok
20:35:19dbussinkkronos_vano: that does the inverse actually
20:35:27dbussinkkronos_vano: that's why the tests fail if you remove it
20:35:30kronos_vanodbussink, arr
20:35:34kronos_vanorigth!
20:35:37kronos_vano:)
20:35:50kronos_vano*right
20:35:51dbussinkkronos_vano: so you don't have to construct another bignum
20:35:58dbussinkthis is a cheaper strategy
20:36:04dbussinkthan allocating a bignum etc.
20:36:06kronos_vanogot it
20:36:32dbussinkalso does it for fixnum + bignum for example, but + is symmetric, so that's easy :)
20:53:14dbussinkevan: cool, have an object here that turns into another object :)
20:53:23evanhuh?
20:54:38kronos_vanohttp://gist.github.com/405533 may be something like this?
20:55:03evankronos_vano: we have to fix the it block
20:55:13evanthe string description
20:55:15evani don't get it.
20:56:30evani also don't get the tests.
20:56:42kronos_vanook. About tests
20:56:49evanwhat are you trying to assert?
20:57:04kronos_vanothat coercing to bignum works fine
20:57:27evancoercing is the wrong word
20:57:30evanpromoted
20:57:33evanis the word you want.
20:58:10evanthat code is very confusing
20:58:21evanwhy is rubinius using a fixnum_min value that was <<='d in the mri block?
20:58:47kronos_vanobecause fixnum min values is diffrent on all ruby implementations
20:59:05evanyou need 4 seperate it blocks
20:59:09evanone for each impl.
20:59:14evanif you feel the need to do this.
20:59:56kronos_vanoCan you help with guard?
21:00:35tarcieri:O @ irb autoident
21:00:47kronos_vanotarcieri, yeo
21:00:49kronos_vanoyep
21:01:31kronos_vanoevan, min values is diffrent for all ruby implementation.
21:01:44evankronos_vano: how is this boundary handled in other specs?
21:01:48dbussinkis there a problem with just running all cases on all implementations?
21:01:51evanor do no other specs test the lower fixnum boundary?
21:01:59evandbussink: they don't all pass.
21:02:03evanor they shouldn't.
21:02:07evanotherwise you don't need 4 tests.
21:02:21kronos_vanoThere is no such spec
21:03:14tarcieriNameError: uninitialized constant Redis::Client::ALIASES from /var/www/jcruise/root/projects/Widgets-Numericable/work/vendor/gems/jruby/1.8/gems/activesupport-2.3 .5/lib/active_support/dependencies.rb:105:in `const_missing' from /var/www/jcruise/root/projects/Widgets-Numericable/work/vendor/gems/jruby/1.8/gems/redis-namespace-0 .4.2/lib/redis/namespace.rb:128
21:03:20tarcieriblah!
21:03:22tarcierisorry
21:03:27tarcierimispaste there
21:03:35tarcierirbx-1.0.0-20100514 > end
21:03:35tarcieriSyntaxError: (irb):1: syntax error, unexpected kEND
21:03:46evankronos_vano: so, there are no specs for the lower fixnum boundary?
21:03:57tarcierioh wait
21:03:58tarcierimy bad
21:03:59tarcierilol
21:04:14tarcieriresumes lurking
21:04:16kronos_vanoevan, I think so
21:04:24kronos_vanoI don't find it
21:04:40evanlets wait until brixen returns
21:04:42evanto discuss that.
21:04:52evanbecause if there aren't any
21:04:55evanperhaps we don't need any.
21:06:29kronos_vanoI just want to test left shifting. I can perform it without edge cases.
21:06:38evando that.
21:06:43evanignore the edge cases
21:13:23kronos_vanohttp://gist.github.com/405562 I just added test, that don't pass before fix.
21:14:16evanno
21:14:18evanuse another it block
21:14:26evandon't add another random should to the bottom of the existing one
21:14:31evanit's clearly testing somethig unique
21:16:14evanug. i think i've figured out the issue with json on OS X.
21:22:34tarcieriheh, still doing the .rbc files eh?
21:22:41tarcieriReia does the exact same thing with its compiled output
21:22:47tarcieri(well aside from the fact they're called .reb)
21:22:51tarcieriI couldn't decide if that was annoying or not
21:24:40tarcieribrb
21:26:16brixenkronos_vano: show me the case in ruby that you are trying to fix
21:26:46evantarcieri: yep, still doin' them.
21:27:10tarcieriyou thought about sticking a . in front of their names or anything like that?
21:27:29brixentarcieri: it's been requested
21:27:39brixenthe more I think about it, the more I am against it
21:27:44tarcieriheh
21:27:54brixenit's just as easy to add .gitignore line
21:28:10tarcieriyeah
21:28:14brixenor other filters
21:28:14tarcierithat doesn't fix ls though
21:28:15tarcieriheh
21:28:31brixenwhen you compile C code, you don't add . to the name
21:28:42tarcieriindeed
21:28:54evani'm less against it than brixen
21:28:58evanbut i'm still thinking aboutit.
21:29:14brixenit requires splitting every path you compile
21:29:17brixenfor what benefit?
21:29:45tarcieriI dunno, they're kinda cluttery I guess... or something
21:30:08DefilerYeah, using dotfiles for this would be evil I think
21:30:13tarcieriheh, yeah
21:30:21brixenwe have a switch to turn them off
21:30:26brixen-Xcompiler.no_rbc
21:30:30Defilershould probably be a cache bdb file or something with a user-specified max size
21:30:38evanDefiler: definitely considered that
21:30:42tarcierinice
21:30:42Defilerwould be faster than doing directory traversals on modern systems anyway
21:30:49evanbut worried about how it would interact with deleted files
21:30:58evanie, the cache could just grow and grow.
21:31:03brixenyeah
21:31:05tarcieriyou could perodically vacuum the cache
21:31:06Defileryeah, it would need a max size / max age
21:31:06tarcierior whatever
21:31:10Defilerhassle
21:31:10tarcieriyeah
21:31:15evanhehe
21:31:20brixendo like git!
21:31:27brixenjust invoke gc at random times
21:31:36Defilerrrrrrebufffering
21:31:36evana random call of #require!
21:31:43brixen"please wait while I compact your db"
21:31:47tarcierilol
21:31:53evancan we pop up a window with a indeterminate progress bar?
21:31:57brixenyes
21:32:02evani'm in then.
21:32:04brixenwith a clippy
21:32:20brixen"it appears that you are trying to run some code. can I help you by compacting your db"
21:32:25brixenwith no yes/no button
21:32:33Defilerhttp://www.yzzerdd.com/
21:32:33tarcieriyou need a popup asking the user before they run their program if they would like to maximize performance or minimize size
21:32:49brixenDefiler: haha
21:32:55tarcieriyou know, like this: http://justaddwater.dk/wp-content/uploads/2006/10/windows-help-wizard.png
21:33:05Defilerhaha I miss that wizard
21:33:22tarcieriimagines the discussions at Microsoft where that came about
21:33:38DefilerI like how microsoft can pause a decade for reflection, take careful aim, and still fail to re-invent man files correctly
21:34:00tarcieri"Should we optimize the find database for speed or size?" "I can see arguments for both" "It really depends what the user's doing" "I know, let's prompt the user every time they try to search for something!" "BRILLIANT! ASK THE USER!"
21:34:31evanhah
21:36:40tarcierialso awesome backtraces are still awesome
21:36:55evan:D
21:45:57boyscoutUse Kernel.exit! after a forked block returns. Fixes #289. - dff9d82 - Evan Phoenix
21:53:48boyscoutCI: rubinius: dff9d82 successful: 3458 files, 13650 examples, 41311 expectations, 0 failures, 0 errors
21:54:35slavaevan: http://github.com/evanphx/rubinius/commit/dff9d825bc2cb824eaeab46bcb60559ca838a1b7
21:54:38slavaevan: I had this exact same bug in factor
21:59:41evanslava: ha!
21:59:57evanok, i've denied the . to hide .rbc files feature.
22:00:09evanit introduces issues while solving others
22:00:20evanand python seems to deal with pyc files just fine
22:00:23evanso I don't see the big deal.
22:02:03brixenyeah, ditto
22:02:24Defilermy only real problem with them is that they tab-complete in vim
22:02:58Defilerand so :e app/mo<tab>/a<tab><tab> produces a different result after running under rbx than it did before
22:03:38evanhm.
22:11:48postmodernevan, do rbc files have an encoded version in them?
22:12:23brixenpostmodern: yes
22:12:25evanyep.
22:12:26kronos_vanobrixen, for example -4518325415524767873 << 35
22:12:52postmodernbrixen, evan, is that a version seperate from Rubinius's version scheme?
22:12:57brixenkronos_vano: is this the simplest possible example?
22:12:59evanpostmodern: yes.
22:13:11brixenpostmodern: it's a hash of the compile files
22:13:12kronos_vanobrixen, 1 sec
22:13:28brixenpostmodern: so if anything in the compiler+parser changes, the .rbc file is out of date
22:13:40brixenthe signature mismatch causes the file to be recompiled
22:13:53postmodernbrixen, what if one day rubinius expects a different file format?
22:13:59brixenwhat if?
22:14:11postmodernbrixen, perhaps you should put a magic version byte at the beginning of the file
22:14:13brixenthat would by definition be in the compiler files
22:14:16brixenhuh?
22:14:23evanI thought we did
22:14:26brixenwe did
22:14:35evanyeah, !RBIX
22:14:39evanis the 1st 5 bytes
22:14:40kronos_vanobrixen, Fixnum::MIN << 1
22:14:51brixenkronos_vano: ok, much better :)
22:14:51kronos_vano== 2 :)
22:14:56evanafter than is the version/signature
22:17:08postmodernah i think i got you now
22:17:21postmodernevan, does rubinius copy the file permissions across when creating the rbc file?
22:17:41evanhm, no
22:17:43evanbut we could.
22:17:50evanprobably should.
22:17:52kronos_vanobrixen, I gave you link to patch above
22:17:52brixenyeah, probably should
22:18:30brixenkronos_vano: yep, thanks, I have the patch
22:24:01brixenkronos_vano: it's going to take me a little bit to rewrite these specs
22:24:21brixenkronos_vano: can you just give me a git fp of your patch and I'll push it when I'm done
22:24:30brixenkronos_vano: that way it's got your commit info
22:24:37brixenso ppl can blame you :)
22:24:38kronos_vanobrixen, ))) ok
22:24:59brixenso, sometimes Ruby's free-wheeling is just kinda crazy
22:25:10brixenI would not allow negative arguments to #<< or #>>
22:25:23brixenthat's just being silly
22:25:29brixenor worse, masking nasty bugs
22:27:01slavawhy?
22:27:28brixenslava: why does n << -m make any sense?
22:27:46postmodernbrixen, you could map the negative integers to unsigned ints :P
22:27:48brixenif m is inadvertently negative, that's a nasty bug hiding there
22:27:56brixenpostmodern: brilliant :P
22:28:07postmodernno one gets shifts correct
22:28:10postmodernnot even gcc
22:28:37slavabrixen: I think there should be just one shift operator
22:28:49slavax shift n for left shift and x shift -n for right shift
22:28:53brixenslava: I think there should be one value and one operation
22:28:57brixen0, succ
22:28:59postmodernshal != shl
22:29:00brixenslava: :)
22:29:14slavaI think unifying shift left and shift right makes sense
22:29:21brixenslava: better: let u = 0; u succ :)
22:29:37kronos_vanobrixen, http://gist.github.com/405669
22:29:55slavathat way its clear what negative inputs represent
22:29:56brixenkronos_vano: excellent, thanks
22:30:44slavacommon lisp agrees with me
22:30:52slavathe ash function does left and right shifts
22:31:01brixenslava: I'm not opposed to that
22:31:31brixenslava: but allowing both shifts to work in either direction is unnecessary
22:31:39slavabrixen: yeah
22:31:41brixenand, I would argue, error-prone
22:32:07brixenand finally, makes me have to write a bunch more specs :P
22:32:27brixenslava: how many tests do you have for Factor now?
22:32:49slavathe total number of unit test cases in the repository?
22:32:54brixenyeah
22:33:48slava45kloc of tests with 10 thousand test cases
22:33:58slavathat's the basis library, not everything that's been contributed
22:34:01brixenslava: ok, so a fair number
22:34:47slavathe compiler is 30kloc and 10kloc of that is tests :)
22:39:15slavabrixen: are there any lint-type tools for ruby/
22:41:50brixenslava: there are lint-ish I guess
22:42:41brixenthere's flog, flay
22:42:46brixenby ryan davis
22:43:05brixendiamondback ruby is doing some work with static analysis of ruby
22:43:21brixenyou could probably build some tools on that
23:04:07boyscoutFix fork to allow SystemExit through properly - 823d5a4 - Evan Phoenix
23:04:07boyscoutAdd simplicit rb_thread_blocking_region - ff0fb8f - Evan Phoenix
23:13:21boyscoutCI: rubinius: ff0fb8f successful: 3458 files, 13651 examples, 41312 expectations, 0 failures, 0 errors
23:17:21boyscoutProvide builtin UBF macros - 290ba51 - Evan Phoenix
23:22:11evanso, I went ahead and add rb_thread_blocking_region to master even though it's a "new feature"
23:22:23brixenI saw
23:22:24evanbecause it didn't replace or effect anything
23:22:30brixenyeah
23:22:35brixenthat's a fair criterion
23:22:44brixenreplacing is the big one
23:22:45evanok
23:22:52brixenbecause it's hard to predict interaction
23:22:59brixenif it exists, something probably uses it
23:23:08evanexactly.
23:23:12brixenand replacing it means something will likely behave differently
23:23:48brixenso, I'm experimenting with the language in these fixnum specs
23:23:54evank
23:23:58brixenI'm really tempted to use more mathy language
23:24:05brixenI'll show you an example...
23:24:19slavamathy language??? oh no, you must be some kind of nerd
23:24:53brixenhttp://gist.github.com/405710
23:25:05brixenthe existing specs were quite terrible
23:25:25slavathis is valid ruby code right? :)
23:25:40brixenand communicating the details of eg Fixnum::MAX << 1 requires some explicit constructs
23:25:48brixenslava: heh, not yet
23:25:49slavareturns n when m == 0 might almost parse
23:26:25boyscoutCI: rubinius: 290ba51 successful: 3458 files, 13651 examples, 41312 expectations, 0 failures, 0 errors
23:26:26brixenslava: I'm contemplating a specification language for rubyspec 2.0 that would autogen the actual ruby code to run
23:26:38brixenso the specs would turn into just math statements
23:26:49brixendefinitions, operations, and equalities
23:28:19slavathe next step then is to make it statically analyze code instead of running it
23:28:23slavaand then you have what's called a type system!
23:28:48brixenslava: haha, I know!
23:28:54brixensounds fun, huh? :)
23:31:52evanslava: a type system? Is that like a secretary pool?
23:32:16brixenheh
23:34:41BrianRice-work:)
23:36:02spastorino1hi guys i'm getting errors installing linecache gem
23:36:24evanspastorino1: ok.
23:36:40spastorino1http://pastie.org/966762
23:36:56evanspastorino1: it's going to be hard
23:37:02evanbecause we don't and will not support NODE
23:37:05postmodernhumans are the problem
23:37:30spastorino1evan: ok nice
23:37:39postmodernno matter which fancy new committee developed language programmers pick, they always make mistakes
23:38:14spastorino1evan: i wanted to try Rails 3 test suite with rubinius
23:38:16spastorino1:D
23:38:30brixenspastorino1: just comment out the ruby-debug gems
23:38:46brixenspastorino1: we have our own debugger that evan is working to fix up
23:39:03spastorino1brixen: ohh yeah what a fool i am
23:39:21spastorino1i didn't remember that ruby-debug was on the Gemfile
23:39:30brixenspastorino1: yeah, it bit me too
23:40:03spastorino1if RUBY_VERSION < '1.9' gem "ruby-debug", ">= 0.10.3" elsif RUBY_VERSION < '1.9.2' && !ENV['CI'] gem "ruby-debug19" end
23:40:25brixenyeah, that conditional is broken
23:40:35spastorino1yeah
23:40:46brixenwell, the conditional doesn't really check the RUBY_ENGINE
23:40:55brixenit's not a version dependency totally
23:41:04brixenit should also be aware of different impls
23:41:47spastorino1yeah i will fix that
23:42:08kronos_vanoHow to invoke some code in rubinius before exit rbx (with or without error)
23:42:35spastorino1brixen: MRI has a RUBY_ENGINE env var?
23:42:39spastorino1or something like that
23:42:44evanno
23:42:45evanit doesn't.
23:42:50brixen1.8 doesn't
23:42:52brixen1.9 does
23:43:02spastorino1ahh ok
23:43:42brixenkronos_vano: you mean like at_exit handler?
23:44:45kronos_vanobrixen, may be
23:44:48kronos_vanokronos:rubinius kronos$ rake build
23:44:48kronos_vano-bash: /Developer/ruby/rubinius/gems/bin/rake: /Users/evan/git/rbx/bin/rbx: bad interpreter: No such file or directory
23:44:52kronos_vano:-)
23:45:25brixenI don't get it
23:46:14kronos_vanobrixen, My quetion and this string isn't related :)
23:46:28brixenthat script has the wrong hash bang in it
23:46:42brixenprobably because it's a pre-installed gem?
23:46:55brixenkronos_vano: the proper way to invoke it is rbx -S rake
23:47:38evanyes, i'm sure it has the wrong #!
23:47:44evanbecause i never use it other than via -S
23:47:48evanthats the only supported way
23:47:49evanreally.
23:48:05brixenyeah, that's cool
23:54:02kronos_vanobrixen, I mean http://github.com/evanphx/rubinius/issues/issue/314
23:54:37brixenok
23:57:00spastorino1hey guys did you run Rails 3 test on rubinius?
23:57:19brixenyes
23:57:40evanyep.
23:57:40spastorino1brixen: what was the output?
23:57:50evanthere were 2 weird generator failures
23:57:52evanlast I looked.
23:58:17spastorino1i'm running and i'm surprised
23:59:08spastorino1for now two weird E http://pastie.org/966799
23:59:16spastorino1i don't know why
23:59:23spastorino1memcache is up
23:59:26evanhm
23:59:33evani hadn't run the memcache related tests in a while
23:59:35evani'll have to spin that up