Index

Show enters and exits. Hide enters and exits.

00:00:34Defilerbut time to watch 24 first :)
00:05:27evanmmm
00:05:28evancool
00:05:34evannew variable system is working nicely.
00:06:03brixennice
00:10:47boyscoutQuit as early as possible if we're building on an unsupported platform - 04ba109 - Wilson Bilkovich
00:18:52boyscoutCI: rubinius: 04ba109 successful: 3463 files, 13862 examples, 41517 expectations, 0 failures, 0 errors
00:24:35Defilerevan: http://github.com/evanphx/rubinius/issues/issue/332
00:24:52evanok, thanks.
00:24:58evani'll put them in place now.
00:25:17Defilercool
00:25:26evandone.
00:52:30boyscoutUpdated MSpec source to a11ca3cf. - ac4d7be - Brian Ford
00:52:30boyscoutUpdated CI specs to RubySpec 7e8b572e. - 31d008a - Brian Ford
00:53:08brixenwell, planned on getting c-api specs moved over
00:53:16brixeninstead just fixed messed up specs :/
00:54:46Defilerwhat would it take to get the build working on 1.9? I might be willing to spend a minute on that sometime
00:55:08brixenvarious stuffs
00:55:15brixenmaking sure melbourne builds
00:55:24brixenaccounting for #require changes
00:55:33brixenfeel free to whack on it
00:55:41Defilerwell there's some really immediate thing where gitlib can't be found
00:55:59brixenyeah, cus #require changed
00:56:10brixencould probably put . in $:
00:56:18brixengotta catch a bus
00:56:23brixenback in a bit..
01:00:46boyscoutCI: rubinius: 31d008a successful: 3463 files, 13862 examples, 41516 expectations, 0 failures, 0 errors
01:24:24Defilerman, shell script condition syntax is so wack
01:24:40DefilerI'm trying to write a condition that is true when the output of a certain grep is blank
01:24:48Defilerand it's like "error: hate huuumaaaaaanns"
01:25:12Defilererror: put your hand in the box
01:25:31explodyer, why not just check the return code from grep
01:26:10explody0 if it hits, 1 if it doesn't
01:26:31Defileroh, I didn't know it did that. handy
01:26:57explodyif `grep -q thing /some/file`; then echo "yay"; else echo "nope"; fi
01:27:20Defileraha, nice
01:58:05matthewdbrixen: Thanks!
01:59:54matthewdbrixen: I'll note that "called on a module" wasn't distinguishing from a call on an array, but from a call on a class
02:03:56brixenmatthewd: ok, that makes sense
02:04:08brixenbut if that's a distinction, where's the spec using Class.new?
02:04:15brixenI may have missed it
02:05:36matthewdI didn't add it; I'm drawing a distinction from the already-specified "normal" behaviour
02:06:08brixencould you point me to the file again?
02:07:12matthewdcore/module/method_defined.spec
02:09:16brixenhmm
02:09:40brixena module has no ancestors
02:10:14brixenare you saying contrasts with this first humunguous spec at the top?
02:10:51brixenI'm having trouble seeing the contrast
02:11:01brixenwhat was rbx doing special with Kernel?
02:11:02matthewdTrue
02:11:14matthewdIt was searching Object (and thus Kernel) always
02:11:23brixenfrom a module?
02:11:38matthewdWhich is correct (and newly specced) behaviour for alias, module_function, public, etc... but not method_defined?
02:12:07brixenok
02:12:33brixentrying to think of how to describe this
02:12:47brixenthe "instance method defined on Kernel" is kinda misleading
02:12:54brixenthat was an implementation error
02:12:56matthewdSo I guess technically, this contrasts with that, more than a (arguably missing) "returns false for a method defined in some arbitrary non-ancestor class"
02:13:07brixenyeah
02:15:07brixenperhaps: it "does not search Object or Kernel when called on a module" ?
02:20:37matthewdk. Worthwhile adding a "# unlike alias and friends" comment, to clarify why it's not quite as pointless as it sounds?
02:21:40brixencertainly
02:22:17brixenwhen you've done everything you can to make it clear, adding a # comment is always an option
02:22:45brixenanyway, thanks for working on this!
16:11:57brixenmorning folks
16:12:17brixenhow about attacking some c-api specs...
16:15:49evanmorning
16:32:53toulmeanbrixen: https://twitter.com/toulmean/status/14774213226
16:32:57toulmeanyou're crazy man
16:33:05brixentoulmean: :D
16:34:03brixentoulmean: I won't disagree with you and many others wouldn't either :)
16:34:34brixenis also frying an egg while chatting...
16:56:35toulmeanbrixen: so you can load a simple .class file ?
16:57:07brixentoulmean: nah, I can parse a simple class file
16:57:15toulmeanso just parse
16:57:17brixenwhich is almost loadingi it
16:57:37toulmeanthen the goal is to load it in memory and make it available somehow ?
16:57:37brixenI'll define "load" to mean I have it in a format that the translater can consume
16:57:41brixenit's not there yet
16:57:44toulmeanok
16:57:49toulmeanimpressive.
16:57:50brixenthe goal is to run it, via translation
16:58:03brixenwell, maybe some day :)
16:58:08toulmeanso to run it: you have people give you the main method ?
16:58:14brixenit's just a hobby to get me more info about other vm's
16:58:17toulmeanor you want to interface it jruby style ?
16:58:24toulmeanok
16:58:27brixenno, it would just run
16:58:39brixenin this case, just like you did java Hello with Hello.class
16:58:50toulmeanwhat would be the difference with shelling out ?
16:58:57toulmeanwhy all the pain :) ?
16:58:58brixenshelling out?
16:59:07brixenI don't follow
16:59:19toulmean%x[java Hello.class]
16:59:39brixenum, why would I do that? :P
16:59:41toulmeanoh ok
16:59:55toulmeanit's more for consumers like me
16:59:56brixenthe goal is to integrate java running *in* rbx
17:00:11brixenso, I don't want to use the jvm
17:00:16toulmeanyep.
17:00:28brixenheh
17:00:34toulmeancan you call out methods or whatnot and get results
17:00:42toulmeanand you know, integrate them back in ruby
17:00:50brixenthat would be stage 2
17:00:53toulmeanoh well. I'm asking too much.
17:01:00toulmeanthat sounds like a nice alt to rjb
17:01:01brixenstage one is just to make rbx look like a jvm to some java code
17:01:16toulmeangood enough for me.
17:01:16Defilerbrixen: What if I wanted to become the maintainer of Net::HTTP
17:01:23Defilerhow would I go about doing that
17:01:24brixenI think ultimately, it will be easier to do RI (ruby integration) on rbx than JI on jvm
17:01:44toulmeanbrixen: just beware that the .class format changed a few times in between java versions
17:01:52brixenDefiler: hmm, yugui set up a thing to ask to be maintainer of a lib
17:02:01brixenDefiler: this is in stdlib, yes?
17:02:08Defileryes
17:02:11toulmeanI can give you places where to pick up hard code to parse at some point.
17:02:14brixentoulmean: yes, that's why it's got a version #
17:02:16Defilerhttp://redmine.ruby-lang.org/wiki/8/Maintainers
17:02:21toulmeanok going to work
17:02:23toulmeanah ok
17:02:23Defilershows no maintainer
17:02:35brixenDefiler: I think you can just request it then
17:02:42brixenI forget the details
17:02:51Defileryugui_zzz: I volunteer to maintain net/http. I already have many patches.
17:03:12evanDefiler: email is much better.
17:03:18brixenheh "I beseech you, let me make good codez"
17:03:28Defileryeah but I'm busy maintaining net/http hehe
17:03:29brixenDefiler: yeah, I'm thinking ruby-core email there
17:03:33brixenhaha
17:03:47Defilerok, cool. I'll send one out today when I get a chance
17:03:58DefilerIf it's going to be in there, it should be hardcore
17:04:01brixenwhen you get a break from all the Net::HTTP fun
17:04:59DefilerI'm working on taking all the 'legacy' api features in it as well, and moving them to a separate module
17:05:09Defilerwhich is only loaded when you call one of those methods
17:05:23Defilerand legacy will include a ton of things that aren't deprecated yet
17:05:37brixensounds cool
17:05:50Defilerand then I will stop it from allocating a hojillion procs every time it wants to do anything at all
17:06:12brixenbut you might *need* those procs
17:06:25Defilerright now there is a core method that supports every feature that net/http exposes, ever, including getting notified every time it reads a chunk from the stream
17:06:34brixenhaha
17:06:37Defilerand even the bare-bones non-block methods end up calling down into it
17:06:59DefilerI'm fine to retain compatibility with the API though; that is certainly the whole point of being in stdlib
17:07:21evanDefiler: yes, changing the hot loop from using timeout() would be nice.
17:07:26Defilerword
17:07:54DefilerRight now it is like a swarming barely-contained beehive of closures
17:08:17Defilersnake mating season in siberia
17:08:26evanhah
17:35:53evanwhats up with matthewd's bug.
17:36:01evanit should be an easy fix
17:36:06evani'd like to get it closed.
17:38:26brixenI think he's got the fix
17:38:30brixenand the specs
17:38:39brixenbut he didn't get a chance to finish it up last night
17:38:49brixenwe discussed the spec changes I suggested though
17:39:08brixenmatthewd: ping
18:03:40Defilerbrixen: around?
18:04:14brixenyes
18:04:26DefilerI'm always needing to tell some piece of code which directory something that is calling it is in
18:04:52Defilerso I have lots of base_dir = File.expand_path("../..", __FILE__)
18:04:53brixenhmm, sounds like you need __DIR__
18:04:59Defilerand then passing that base_dir into something
18:05:32Defilerbut, in this particular case, what I really want is a method I can put in this gem that things can call to get back a Pathname for where they are
18:05:41Defilere.g. Helper.where_am_i?
18:05:52brixenhmm
18:06:03DefilerI can think of a bunch of ways to implement that, but I'm wondering if you have an opinion on the most portable way
18:06:05brixenwhy are these things always needing to know?
18:06:16Defilerusually because they are/involve daemons
18:06:22Defilerand need to know where to go to re-exec themselves
18:06:34brixenhm
18:07:09Defilerbut there are lots of cases; right now I've got a pile of daemon tasks that would like to load a config file in a relative way
18:07:26Defilerbut need to make sure they know proper paths, so they can do it all after a pair of forks
18:07:57Defiler__DIR__ would be great though
18:08:01Defilerbut I need to run on 1.8.7
18:08:15brixenI was kidding about __DIR__ :)
18:08:19brixenbut hmm
18:08:45brixenI try to have relative things all relate to one absolute thing
18:08:51DefilerI've got a helper in this library already for determining your actual working directory
18:09:01Defilerso do I; with a daemon that happens to always be / though heh
18:09:10brixenother than Dir.pwd?
18:09:24Defileryeah, Dir.pwd? can be confused by symlinks
18:09:31brixenso with processes you can put an ENV var in
18:09:46brixenthis is so sysadminny
18:09:51brixenwhere is evan?
18:09:59brixenis not a sysadminny :)
18:10:00evanhere
18:10:04evansup?
18:10:09brixenevan: you so silent
18:10:12Defilerhttps://gist.github.com/8538b47cb48fe6841526
18:10:17evansorry, playing with the agent
18:10:20brixenheh
18:10:32evanand packing up to drive up to glendale to have lunch with tenderlove
18:10:34brixenevan: dare you to name our agent Nikita :)
18:10:39evanhah
18:10:49evan-Xnikita.activate
18:10:53brixenhehe
18:11:06brixen"playing with our agent" has a whole new connotation
18:11:08brixen:)
18:11:16evanwas there a question you had for me?
18:11:20brixenanyway, Defiler wants __DIR__ :)
18:11:28evanah
18:11:34brixenj/k but he has a question about loading daemons relative
18:11:49DefilerIt's not really a question, since I already do it a lot
18:11:53brixenread the last screen of discussion
18:11:58evanFile.dirname(CompiledMethod.of_sender.scope.active_path)
18:12:04Defilerit's mostly for advice about the most portable way to figure out the directory my caller is implemented in
18:12:15Defilerand I guess it's caller sadly
18:12:21evanno no
18:12:23evanlook up.
18:12:27evanfor Rubinius
18:12:29DefilerHas to work on 1.8.7
18:12:32Defilerbut I could do that when on rbx, yeah
18:12:33brixenwell, that's not portable
18:12:39evancaller is all you've got.
18:12:41brixenyou can special case it
18:12:42evanon MRI
18:13:16brixenif defined?(THE_AWESOME_IS_THIS) File.dirname(CompiledMethod.of_sender...) else caller() end
18:13:53Defilerwe could make special return values for magic defined? arguments in rbx
18:14:12Defilerpath = defined?(caller.active_path)
18:14:12Defilerheh
18:14:17brixenheh
18:14:36brixena whole language in a language
18:14:45brixensince defined? processes expressions
18:15:05brixenbut doesn't evaluate their truth value
18:15:18Defilererlang?(start() -> io:format("Hello!").)
18:23:36cremesbrixen: learned my lesson (again) on writing specs; wrote my first spec for my 0mq bindings and discovered a bug :)
18:23:43cremesyou are the master
18:24:01brixenhaha
18:24:15cremesthe *very first* one... <sigh>
18:24:18brixenwell, I'm glad you found a bug, but I am no master
18:24:24brixenhah
18:24:26cremesand it was on code that just could NOT be wrong
18:24:30cremesbut it was
18:24:33brixenyou know what happens when you find the first one?
18:24:40cremestip of the ice berg?
18:24:51brixenit's an inductive set
18:25:02cremesgiven k, k + 1 is buggy too?
18:25:11brixenwhere the first one invokes the succ function
18:25:11brixenheh
18:25:11brixenpretty much
18:25:18brixenand it recurses
18:25:25brixennasty beasts :)
18:25:32cremesargh... well, at least i won't keep causing regressions as i muck around
18:25:43brixenindeed
18:26:35cremesbtw, do you know of a way to test that a finalizer gets called on an object when it gets gc'ed?
18:31:04Defilerbrixen: OK, so, imagine you had, say, 8 to 10 things that had this same need for boilerplate: https://gist.github.com/ea07b7cda6d890201ea4
18:31:20Defilerwhat would you factor out and where would you put it? heh
18:35:28brixenI would be inclined to make an Environment class or some such
18:35:37brixenthat is created and passed to these guys
18:35:46Defileryeah
18:35:46brixenor that there is a way for them to invoke
18:36:00Defilertask.environment maybe
18:36:04Defileror .env
18:36:04brixenyeah
18:36:07brixensure
18:36:11Defilerand that hands back an instance of something happy slappy
18:36:17brixenyep
18:36:31Defilerand I guess that has to use 'caller' to answer one of those questions
18:36:35Defileroh well
18:36:49brixensometimes there is no other way
18:36:52brixenhangs head
18:37:04Defilerat least rvm lets me run the test suite for it under a bunch of rubies
18:37:07Defilerhandy
18:37:39brixenyeah
18:37:46brixenrvm rocks
18:38:25brixenmostly because the name reminds me of "Ruby virtual machine"
18:40:11mahargit'd be nice if jruby and rubinius had a uniform interface for getting at that kind of info
18:40:20mahargso that eventually mri has something to adopt
18:40:34brixenthat would be interesting, yeah
18:41:04brixenjruby could make CompiledMethods :)
18:41:50wayneeseguinw00t!
18:41:55wayneeseguin-ish :-p
18:42:01brixen:D
18:42:10brixenwayneeseguin: j/k, rvm is awesome
18:48:13wayneeseguinlol
18:48:17wayneeseguinTrying.
18:48:22wayneeseguinNot an easy project.
18:49:20brixenno kidding
19:04:26brixenrussian_vodka: what's you favorite?
19:04:30brixener your
19:04:35brixendamn engrish
19:33:01russian_vodkabrixen, "Russian Standart"
19:33:34russian_vodkabrixen, http://www.sostav.ru/articles/rus/2008/07.06/news/images/90.jpg
19:34:54brixenrussian_vodka: cool, I'll have to see if I can get that here somewhere
19:35:17russian_vodkabrixen, I can send one to you )
19:35:52brixenheh
19:36:28brixenrussian_vodka: I should just visit Russia and have the real thing there :)
19:36:54russian_vodkaoh.
19:37:29russian_vodkaYes, right. Take evan an come here, Moscow :)
19:37:37russian_vodka*an => and
19:37:48brixenthat would be fun! :)
19:38:30russian_vodkagirls, vodka & rock'n'roll :D
19:41:06brixenhaha
19:41:35brixenrussian_vodka: evan is married... I, on the other hand, am not :)
19:45:44russian_vodkabrixen, girls for you and vodka & rock'b'roll for evan
19:46:54brixenmmm, interesting possibility
19:47:14russian_vodka:D
19:47:29russian_vodkabrixen, ok. vodka for both ;)
19:47:37brixenheh
20:42:01PierreYHi, I cannot build rubinius for a while, I got tons of errors while compiling grammar.y/cpp (Ubuntu 10.04)
20:53:39brixenPierreY: are you build with ruby 1.8?
20:53:50PierreYyes
20:53:56brixenPierreY: and did you follow getting_started.txt?
20:53:58PierreYbuild fails with ruby 1.9
20:54:21PierreYarg, things have changed into getting_started.txt ?
20:54:23brixencould you gist me your output?
20:54:43PierreYI'm cloning th repository to restart from scratch
20:54:44brixenthings haven't changed much, but I've clarified the steps in that file, yes
20:54:51PierreYright now
20:55:00brixenmake sure you follow the steps for ubuntu
20:55:10PierreYand the problem is that my terminal buffer is too small to contain all error lines
20:55:14brixenand then gist me your terminal output
20:55:19brixenyou can increase the buffer
20:55:38brixenare you running the gui or no?
20:55:49PierreYsure, I'm using gnome-terminal
20:56:34brixenok, there's a setting... :)
20:56:42brixenI was just there yesterday, what was it...
20:57:25PierreYmmm preferences / scrolling / history lines ?
20:57:32brixenyeah
20:57:55brixenyou found it faster than I could boot vbox
20:58:13PierreYvbox ?
20:58:19brixenlooks like gnome beats windows... I'd still be trying to show the icons in control panel
20:58:45brixenvirtualbox
20:58:51brixenwww.virtualbox.org/
20:59:00PierreYsure, I know that, but why do you have to use vbox ?
20:59:10brixenbecause I use os x
20:59:19PierreYoh, sorry :-)
20:59:20brixenso I don't have no use ubuntu :)
20:59:23brixenheh
21:00:19PierreY(still cloning... my bandwidth has decreased here down to 64kb... what a pity)
21:00:27brixen:(
21:00:46brixenI should snapshot this 9.10 and distupgrade to 10.04
21:00:50PierreYmy provider fault
21:01:34PierreYyeah 10.04 is close to osx now, the windo buttons are on the left side of the title bar ;-)
21:03:08brixenheh
21:03:13brixenthe small things :)
21:08:50PierreYdo you require bison or bison++ on ubuntu ?
21:10:27PierreYexit
21:10:34PierreYoups
21:12:16brixenyes
21:12:59brixenPierreY: if you discover things that are required but not listed in getting started, let us know
21:15:32PierreYok... checked ruby : 1.8.7, dependencies : ok... building, now
21:15:36brixenvbox can I have my computer back now, kthx, and dump that openoffice shit in the bin...
21:15:44brixenPierreY: ok
21:18:18PierreYlubuntu is lighter than ubuntu and don't carry openoffice by default
21:18:47BrianRice-workwonders whether ubuntu will run out of prefixes...
21:19:05PierreY:-)
21:19:46PierreYafter one letter prefixes, they will use two letter prefixes... be sure
21:20:03PierreYbrixen: build failed ...
21:21:50brixenPierreY: I've opened my remote-viewing guide book but the image is very fuzzy
21:21:55PierreYhttps://gist.github.com/2fab5fc6cb3e65f810b1
21:21:57brixenare you wearing a pink garter?
21:22:03brixenah ok
21:22:53brixenPierreY: install ruby-dev
21:22:58brixenthat should be on the list....
21:23:08brixenor did you already?
21:23:34brixenPierreY: could you rake --trace and paste me everything?
21:24:50PierreYsorry ruby-dev was not installed
21:24:54PierreYshame on me
21:24:56brixenok
21:25:08evanok, back.
21:25:17PierreYbuild continues now
21:25:25brixenPierreY: excellent :)
21:25:53PierreYwhay don't configure scripts check for required files ?
21:26:00PierreYfrom ruby-dev ?
21:26:36brixennot yet
21:26:42PierreYrunning 706 tests.... OK! ;-)
21:26:49brixenbut that's on the list kinda
21:26:54brixensame with checking for readline.h
21:27:35brixenPierreY: you will probably see one spec failure about getting '0.0.0.0' instead of '127.0.0.0'
21:27:51brixens/probably/may/
21:28:05brixenPierreY: if you get other failures, please gist them
21:28:39PierreYI love the rubinius specs lines of dots
21:28:48brixenheh
21:29:00brixenPierreY: try bin/mspec ci -fa :)
21:32:33PierreYgot that awful "F" in my lines of dots... due to 0.0.0.0 being equal to 127.0.0.1
21:32:44brixenyeah spurious
21:35:27PierreYtrying mspec ci -fa :-) I prefer dots
21:35:37brixenheh
21:36:35PierreYmspec without options gave me tons of errors and failures
21:36:59brixenyes, you have to use ci
21:37:09brixentons =~ 500 or so
21:37:29brixenyou can see what is failing with bin/mspec tag --list-all
21:37:49brixener bin/mspec tag --list-all :files
21:38:13PierreYnot 500, mspec itself seems to have failed before the end
21:38:45PierreYlast line is "Backtrace:" with no backtrace
21:38:55brixenPierreY: hmm, so perhaps a segfault
21:39:03brixenPierreY: I'll upgrade to 10.04 and run it later
21:39:18PierreYso... how do I install gems ;-)
21:39:38brixenbin/rbx gem install foo
21:40:02brixenonce you do, if it installs a script (like spec), bin/rbx -S spec to run it
21:40:52brixenPierreY: gotta run, bbl... but evan can probably help you out
21:41:00evansure
21:42:23PierreYgod, I'm installing rails 3.0 (rbx gem install rails --pre ?) in rubinius...
21:42:49evancool
21:43:30PierreYsomebody already tried to run a rails application with rbx in production ?
21:44:26evanin production, not that I know of.
21:45:17PierreYso... to run rails, I have to run bin/rbx -S rails ?
21:50:56PierreYINFO WEBrick 1.3.1 / INFO ruby 1.8.7 (2010-05-14)... does that mean that WEBrick is powered by MRI and not Rubinius ?
21:52:24PierreYno... there is no ruby process running, but rbx yes, maybe a bug in WEBrick
21:53:02mahargI bet you that's a hard coded string in the MRI libs for WEBrick and it just wasn't changed in the rbx import
21:55:21evanthats not a bug, thats just how WEBrick reports it
21:55:35evanwe report ourself as 1.8.7 since some code checks for that
21:55:38evanand WEBrick is reporting
21:56:23evanthat.
21:56:39mahargyeah just looked. That makes sense
22:01:05PierreYthank you for your help. I have to go. Congratulations for the 1.0 milestone ;-)
22:28:54toulmeanbrixen: evan: got a question for ruby core specs
22:29:07toulmeanFile.mtime(file) returns a time object
22:29:25toulmeanin Buildr, some specs fail as it seems mtime compares to the ms
22:29:42toulmeanis there a spec for this ? Is there interest over standardizing over mtime comparison ?
22:30:11toulmeanthe funny thing is: File.mtime(a).to_s == File.mtime(b).to_s if they have been created in the same second.
22:30:27toulmeanour spec is a big bogus so we stopped doing equality over mtimes. It's a bad idea overall.
22:30:41toulmeanjust curious if there should be a spec over this.
22:31:14toulmeanalso - it might be OS dependent.
22:35:38toulmeanok discussing it with headius on jruby