Index

Show enters and exits. Hide enters and exits.

20:50:22danlucrafttestytesttest
20:54:33brixen*tap* *tap*
21:14:11evano/~ la la la writing specs la la la o/~
21:14:40brixenme too
21:22:12brixenevan: so should ByteArray be indexed by Fixnum or Integer?
21:22:31evanfixnum
21:22:38brixenok
21:23:09brixenthen it seems most reasonable to me to make ByteArray::MAX_SIZE and Tuple::MAX_SIZE == max fixnum
21:23:23evansure
21:23:30brixenk
21:23:33evanif so
21:23:39evanthen we don't have to do extra checks
21:23:43evanyou can just declare the type as Fixnum
21:23:44brixenexactly
21:23:48brixenyes
21:23:51evanyou have to check if it's positive in certain places
21:23:55evanbut otherwise, sounds good.
21:23:57brixenright
21:23:59brixenok
21:24:49sbryant_workYou guys seen the new pull request stuff on github?
21:24:55evansbryant_work: we have
21:24:57brixenyes
21:25:02evani have yet to get a pull request with it
21:25:05evanbut i'm eager to.
21:25:28sbryant_workSeems like a decently basic code review tool
21:25:31dbussinkwell, let's make that the preferred way of handling issues :)
21:25:37dbussinkand see if that works
21:25:37sbryant_workand no more github message spam!
21:25:43evandbussink: fine by me.
21:26:45sbryant_workI'm still not done reading all on it yet, and don't know how it's useful for when people have commit access but want to start a discussion on patch
21:27:14evansbryant_work: depends on the person
21:27:26evanrubinius is unique in that i hand out commit bits like they're candy
21:27:34evanlots of projects don't bother to do that
21:27:40evanthey funnel changes in via pull requests
21:27:46sbryant_workyeah, but the preamble of the article stated that this should be useful in this scenario as well
21:27:50evanbut i do like getting pull requests
21:28:02brianmarioevan: yo
21:28:05dbussinkevan: i wonder what would happen if rails would hand out those commit bits like candy ;)
21:28:07sbryant_workIt wasn't so nice for a while
21:28:14evanbrianmario: hello brian. Happy Birthday.
21:28:17sbryant_workdbussink: I shudder at that thought.
21:28:18brianmariothanks dude
21:28:42dbussinkbrianmario: feeling like an old man now in your 30's?
21:28:44sbryant_workHappy birthday person I haven't had a chance to speak to yet.
21:28:49brianmariohaha nahhh
21:28:56brianmariosbryant_work: heh thanks ;)
21:29:05brianmario30 is great
21:29:20brianmarioI mean, all 4 days of it :P
21:29:24evan:)
21:29:30evanhows mysql2 going?
21:29:43brianmariogood, was actually working on getting it working with rbx earlier
21:30:00dbussinki'm trying to tempt him to help out with DO too ;)
21:30:02evanradness.
21:30:22brianmarioneed to add rb_obj_dup to rbx
21:30:37brianmariobut just to test it I changed mysql2 to use rb_funcall with dup
21:30:50brianmarioran into a strange issue with rb_thread_select earlier, don't have much info at the moment - will get more later when I have time to mess with it again
21:31:01brianmariogot some error saying something like "invalid use of handle" or something
21:31:09evanbrianmario: ok, let us know.
21:31:15brianmariosure
21:31:20evanmost cases where people see invalid use of handle
21:31:20brianmariohad a question though
21:31:24evanthey hava a bug in their extension
21:31:30evanthat MRI isn't catching
21:31:32evanbut we are.
21:31:33brianmarioyeah, I figured I probably do
21:31:35brianmarioyeah
21:32:07brianmariodbussink and I have been toying around with a lazy attribute idea
21:32:25evanwhat makes an attribute lazy? lack of work ethic?
21:32:30brixenlazy attributes are lazy?
21:32:30evanlives at home with it's parents?
21:32:43brianmariowanted to see if you had any ideas for implementation, or even something rbx might be able to offer "natively"
21:32:46brianmarioheh
21:32:51sbryant_workget job hippy attributes!
21:32:58evansbryant_work: haha
21:33:03brianmariosomething like a custom hash, that doesn't cast ruby types until they're accessed
21:33:19evan...
21:33:22evandon't know what you mean
21:33:24evan"cast ruby types"
21:34:00brianmarioresult = connection.query "SELECT int_field, date_field, timestamp_field FROM some_table"
21:34:04brianmariorow = result.first
21:34:20evanok..
21:34:28evani'm missing something
21:34:29brianmario(at this point, only one ruby object has been created - which is said custom hash or whatever)
21:34:30evanwhat about that?
21:34:40brianmariorow[:int_field] # => now the ruby Fixnum is created on the fly
21:34:45evanso result is some magic hash
21:34:47evanor row?
21:34:52brianmariorow[:timestamp_field] # => Time object created on the fly
21:34:58evanit doesn't do that now?
21:35:01dbussinkmagic row that behaves somewhat like a hash
21:35:08brianmarioand you never access row[:date_field] so the Date object is never created
21:35:09brianmarioright
21:35:15brianmariorow
21:35:24brianmariobut I'm thinking more reusable
21:35:26evansounds like just normal ruby
21:35:35evani don't see how it's related to rubinius specificly
21:35:40brianmariono no it's not
21:35:51evani'd just use a hash with a default proc
21:35:53brianmariowas just wondering if you *were* to impliment something like that
21:36:00brianmarioimplement*
21:36:05evanhash with a default proc
21:36:09evanis what i'd do
21:36:14brianmarionever done that
21:36:17evanoh man
21:36:19evansuper easy
21:36:46evanmagic = Hash.new { |h,k| h[k] = context.calculate_value(row, k) }
21:37:07evanyou create that in the result#first
21:37:35evancontext is something that holds the info about how to convert values
21:37:39brianmarioiiiiiinteresting
21:37:49evanmagic[:timespace]
21:37:50brianmariothat's
21:37:54brianmariopretty much exactly what I want
21:37:55evanif there is no :timespace
21:38:07evanit would call the proc, which is expected to populate the value
21:38:15evanafterwhich time, the value is returned as normal.
21:38:44evan(also, i like the idea of a :timespace value, even though I don't know what is)
21:38:55evanperhaps an instance of FourthDimensionalPosition
21:39:13sbryant_workhaha
21:40:00brianmariohaha
21:40:25brianmariothanks dude, I'll give that a try later
21:40:29brianmariodbussink: waddya think?
21:41:09evanbrianmario: if you want to avoid creating a block for every row
21:41:15evanthen you could do
21:41:43evanCALCULATOR = Proc.new { |h,k| h[k] = h[:context].calculate(k) }
21:41:44evanand then
21:41:52evanHash.new(&CALCULATOR)
21:41:58evanper row
21:42:14evanwell,
21:42:18evanh = Hash.new(&CALCULATOR}
21:42:19dbussinkbrianmario: this is the best way of doing it all in ruby
21:42:30evanh[:context] = thingy_that_knows_row_info
21:42:43dbussinkbut if you want to squeeze everything out of it in mri, you don't even want to have to allocate a string object at all
21:43:16dbussinkbut for rbx, this could very well be faster to do in ruby compared to shoving more into c
21:44:20dbussinkbut i'm off to get some sleep
21:44:21dbussinknite!
21:44:25brianmariolater!
21:44:33evandbussink: nite!
21:44:44boyscoutAdd gdbm extension - 8cde482 - Evan Phoenix
21:44:45boyscoutAdd specs for rb_iterate calling any method - 09d2566 - Evan Phoenix
21:44:45boyscoutFully implement rb_iterate - ca71611 - Evan Phoenix
21:44:45boyscoutAdd sdbm extension - 2243bb4 - Evan Phoenix
21:44:53evanmanveru: there ya go!
21:44:57evanenjoy!
21:46:41brianmarioevan: how's hydra goin?
21:46:48evangood good
21:46:53evanbut on the back burner until 1.1 is out.
21:46:59brianmarioah cool
21:47:10brianmariowill 1.1 include the new GIL algo?
21:47:37brixenbrianmario: yeah, it's already in master
21:47:44brianmarionice
21:49:12brixenhi luislavena!
21:49:31brixenluislavena: I got your email, will reply with more details soon
21:49:51luislavenabrixen: awesome, wasn't stalking you, but happy to hear that ;-)
21:50:19evanluislavena: hi luislavena!
21:50:28evanthanks for the heads up about the Makefile
21:50:31evanjust removed it.
21:50:33luislavenaevan: hey evan, I was stalking you ;-)
21:50:37evanhah
21:50:41evanI THOUGHT SO
21:50:46luislavena:-$
21:50:58boyscoutRemove local Makefile (extconf.rb creates them) - 482182e - Evan Phoenix
21:51:05luislavenaevan: how things are coming in the land of the alternate ruby implementations?
21:51:22evanbrixen: you're still in the depths of class variables and that rails 2.1 fix, yes?
21:51:27evanluislavena: oh, pretty darn good!
21:51:34evanoh oh
21:51:45brixenevan: yeah, auditing bytearray, tuple atm
21:51:50evanwhere was that windows fork?
21:52:14evanbrixen: are those related?
21:52:23evani thought they were 2 seperate things
21:52:38brixenthey are separate yes
21:53:02evanok
21:53:08evandid you finish with the class vars stuff?
21:53:13brixenevan: if we're not having win support in 1.1, I'd rather you get hydra building on linux and leapard
21:53:16evanjust looking to get that ticket closed.
21:53:21brixenrather than windows stuff, which is easy for me to do
21:54:04brixenbecause I wanted to base the multiverse branch on hydra
21:54:20brixenmultiverse == 1.8/1.9 + windows
21:54:26evan:)
21:54:26evansure
21:54:33evanlets finish up 1.1 then!
21:55:04brixenok
21:55:12boyscoutCI: rubinius: 2243bb4 successful: 3522 files, 15301 examples, 43159 expectations, 0 failures, 0 errors
21:55:32luislavenawould love to understand what you guys just decided
21:55:44evanluislavena: :D
21:55:50brixendoes too
21:55:56evanluislavena: for 1.1, i was gonig to give windows support a best attempte
21:55:58evanattempt
21:56:02evanbut we ran out of time slightly
21:56:07evanso it's been pushed to the next release
21:56:27luislavenaevan: well, i like that, rushing it is no good.
21:56:30evanthe next big release is (it looks like) going incorporate hydra, which is a branch that has no GIL.
21:56:46luislavenaevan: would prefer you roll 1.1 and take the time for windows stuff on a separate work.
21:56:54evanyep
21:57:34luislavenaevan: emailed brixen in stealth mode about windows progress, specially since RubyInstaller is now running GCC 4.5.0 and is more easy hack rbx as build recipe there.
21:57:49evani saw that!
21:57:50luislavenaevan: which help to build dependencies for rubinius on Windows.
21:57:55evani installed your devkit under windows 7
21:58:06evanto begin learning windows dev.
21:58:16luislavenaevan: good luck then!
21:58:18luislavena;-)
21:58:21evan:)
21:59:05luislavenaevan: a bit of warning, people complains about the lack of powerful prompt/cli interface of windows... i barely use it (git, ruby invoke, etc), all the other stuff, ruby scripts ;-)
21:59:14luislavenaevan: but you can use bash too.
21:59:24evani've been using bash
21:59:29evanboth the one in your devkit
21:59:36evanand the one that comes with the git installer
21:59:44evanwhich are both msys bash i think.
22:00:37luislavenaevan: yes, msys is nicer than cygwin ;-)
22:00:48evani've noticed
22:00:51evancygwin is quite a pain.
22:00:57luislavenaevan: specially when you can send a windows path with drive letter and gets translated automatically :-)
22:01:03evanmsys doesn't isolate you from the windows APIs like cygwin does though, yes?
22:01:11evandevelopment wise
22:01:44luislavenaevan: no, msys has a small layer for specific stuff posix stuff, but when you compile you're actually compiling natively.
22:01:59luislavenamsys is just dev environment for stuff like perl, m4, autoconf, etc.
22:02:19evanok
22:02:41luislavenaI have one question for you about hydra and the new GIL approach
22:02:49evansure
22:02:51evanwassup
22:03:16luislavenahow good will this gil behaves compared to no gil at all?
22:03:29luislavenaerr, let me rephrase maybe...
22:03:36evanyou mean the new gil I did in 1.1
22:03:38evancompared to hydra
22:03:51luislavenayes
22:03:55evanok
22:04:05evanthe difference between the GIL in 1.0.1 and 1.1 isn't very much
22:04:14evanthe GIL in 1.1 prevents a thread from starving other threads is all
22:04:22evanso it controls scheduling a bit better
22:04:28luislavenaevan: yeah, saw that, like py3.2
22:04:33evanboth of those compared to hydra is a big change
22:04:35luislavenawhich isn't great, but works.
22:04:40evanright
22:04:53evanhydra is great because there is no GIL, and thus scheduling concerns
22:05:01luislavenaI skimmed the commits and was lazy to read python code, been years since last time.
22:05:02evanjust a lot of locks to control resources
22:05:13evanluislavena: if you checked otu my code
22:05:15evanthats enough
22:05:20evani read through their impl and boiled it down
22:05:38luislavenaevan: got the idea from 1.1, still haven't checked hydra :-(
22:05:47evanthats fine
22:05:58evananyway, did I answer your question?
22:06:12evanNo GIL is much, much better than any GIL.
22:06:22evanno scheduling concerns to worry about
22:08:23luislavenaevan: indeed, thank you, you can go back to work now ;-)
22:08:29evan:D
22:08:35evanare you back in south america?
22:08:54luislavenaevan: yes, back in july.
22:09:12luislavenaevan: planning uruguay trip for october, are you coming?
22:09:31luislavenaevan: http://rubyconfuruguay.org/en
22:09:40evani don't think so :( :(
22:10:11brixenluislavena: I want to go to that
22:10:29brixenluislavena: put a good word in for me with the boss ;)
22:10:32luislavenabrixen: I will be for sure, either speaking or attending.
22:10:50brixenis there still time to submit a talk?
22:11:06evanhehe
22:11:08brixenI talked to rabble about it, but don't really know what talk to do
22:11:19evanbrixen: I approve you going.
22:11:28luislavenabrixen: hmn, no: "Proposals will be accepted until August 27th."
22:11:29brixenbeginning rails 3.0 with rubinius... is not that interesting
22:11:39brixenoops, just missed it
22:11:49brixenevan: super
22:12:04luislavenabrixen: well, emerging communities are more Windows centric, will be a good opportunity for you to look at that!
22:12:09luislavenabrixen: like going to the zoo.
22:12:24brixenluislavena: ahh, I could talk about rbx windows support! :)
22:12:26luislavenaevan: you're going to rubyconf brazil, right? will be pretty much similar I guess
22:12:33evanluislavena: yeah, I am.
22:12:45brixenluislavena: how about this, you get rbx working on windows and I'll help tell people about it :D
22:13:11luislavenabrixen: I would love to, you know, but lot of things going on :-P
22:13:29brixenluislavena: esas son nada mas excusas, hombre :)
22:13:32luislavenabrixen: perhaps I could take a sabbatical month or something like that and work on it.
22:13:38luislavenabrixen: jajaja
22:13:39brixenheh, woot
22:14:24brixenluislavena: we have some time, I'm sure we'll have basic support by then
22:14:51luislavenabrixen: when you're done with 1.1 ping me, I would love to avoid overlapping the work you had done.
22:15:01evani think it's pretty close now
22:15:03evanactually
22:15:14evanboth luislavena and that other guy ran into the FFI issue
22:15:20evanwhich should be easy to clear up
22:15:25brixenyeah
22:15:26luislavenaevan: which FFI?
22:15:47evanluislavena: you couldn't boot the VM because it complained about not finding some POSIX functions via FFI
22:16:05evanso it's 2 fold: fix FFI to find functions, don't use POSIX functions on windows
22:16:30luislavenaevan: latest libffi behaves better on Windows (actually 1.9.2 ships with it)
22:16:48evanluislavena: ok, good.
22:17:02evanit's the code that uses the dynamic linker to find symbols that was the issue
22:17:14evanie, the windows equiv of dlsym()
22:18:25luislavenaevan: LoadLibrary and GetProcAddress? will be weird using those directly :-P
22:19:48evanis there another way?
22:22:06luislavenaffi should be doing that for you.
22:22:29luislavenaevan: I'm stuck in adding conditions to headers and classes now for mingw32
22:22:57evani don't want to use libffi for that.
22:23:01luislavenaso haven't reached the build of the VM yet.
22:23:07evanok
22:23:24luislavenaevan: all dependencies compiles (excluding llvm)
22:24:11evanllvm doesnt?
22:25:08luislavenaevan: it does, but I just disabled for now and focused in external_libs and vm
22:25:29luislavenaevan: there is a llvm binary already that I can provision using rubyinstaller recipes, so was not worry about it.
22:25:29evanex
22:25:29evanok
22:40:45brixenthat class_variable_get|set are private is dumb
22:41:29evanagreed.
23:21:49brixenerg, gotta move my car before I get a ticket... bbiab..
23:21:56evanheh
23:21:56evank