Show enters and exits. Hide enters and exits.
| 20:50:22 | danlucraft | testytesttest |
| 20:54:33 | brixen | *tap* *tap* |
| 21:14:11 | evan | o/~ la la la writing specs la la la o/~ |
| 21:14:40 | brixen | me too |
| 21:22:12 | brixen | evan: so should ByteArray be indexed by Fixnum or Integer? |
| 21:22:31 | evan | fixnum |
| 21:22:38 | brixen | ok |
| 21:23:09 | brixen | then it seems most reasonable to me to make ByteArray::MAX_SIZE and Tuple::MAX_SIZE == max fixnum |
| 21:23:23 | evan | sure |
| 21:23:30 | brixen | k |
| 21:23:33 | evan | if so |
| 21:23:39 | evan | then we don't have to do extra checks |
| 21:23:43 | evan | you can just declare the type as Fixnum |
| 21:23:44 | brixen | exactly |
| 21:23:48 | brixen | yes |
| 21:23:51 | evan | you have to check if it's positive in certain places |
| 21:23:55 | evan | but otherwise, sounds good. |
| 21:23:57 | brixen | right |
| 21:23:59 | brixen | ok |
| 21:24:49 | sbryant_work | You guys seen the new pull request stuff on github? |
| 21:24:55 | evan | sbryant_work: we have |
| 21:24:57 | brixen | yes |
| 21:25:02 | evan | i have yet to get a pull request with it |
| 21:25:05 | evan | but i'm eager to. |
| 21:25:28 | sbryant_work | Seems like a decently basic code review tool |
| 21:25:31 | dbussink | well, let's make that the preferred way of handling issues :) |
| 21:25:37 | dbussink | and see if that works |
| 21:25:37 | sbryant_work | and no more github message spam! |
| 21:25:43 | evan | dbussink: fine by me. |
| 21:26:45 | sbryant_work | I'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:14 | evan | sbryant_work: depends on the person |
| 21:27:26 | evan | rubinius is unique in that i hand out commit bits like they're candy |
| 21:27:34 | evan | lots of projects don't bother to do that |
| 21:27:40 | evan | they funnel changes in via pull requests |
| 21:27:46 | sbryant_work | yeah, but the preamble of the article stated that this should be useful in this scenario as well |
| 21:27:50 | evan | but i do like getting pull requests |
| 21:28:02 | brianmario | evan: yo |
| 21:28:05 | dbussink | evan: i wonder what would happen if rails would hand out those commit bits like candy ;) |
| 21:28:07 | sbryant_work | It wasn't so nice for a while |
| 21:28:14 | evan | brianmario: hello brian. Happy Birthday. |
| 21:28:17 | sbryant_work | dbussink: I shudder at that thought. |
| 21:28:18 | brianmario | thanks dude |
| 21:28:42 | dbussink | brianmario: feeling like an old man now in your 30's? |
| 21:28:44 | sbryant_work | Happy birthday person I haven't had a chance to speak to yet. |
| 21:28:49 | brianmario | haha nahhh |
| 21:28:56 | brianmario | sbryant_work: heh thanks ;) |
| 21:29:05 | brianmario | 30 is great |
| 21:29:20 | brianmario | I mean, all 4 days of it :P |
| 21:29:24 | evan | :) |
| 21:29:30 | evan | hows mysql2 going? |
| 21:29:43 | brianmario | good, was actually working on getting it working with rbx earlier |
| 21:30:00 | dbussink | i'm trying to tempt him to help out with DO too ;) |
| 21:30:02 | evan | radness. |
| 21:30:22 | brianmario | need to add rb_obj_dup to rbx |
| 21:30:37 | brianmario | but just to test it I changed mysql2 to use rb_funcall with dup |
| 21:30:50 | brianmario | ran 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:01 | brianmario | got some error saying something like "invalid use of handle" or something |
| 21:31:09 | evan | brianmario: ok, let us know. |
| 21:31:15 | brianmario | sure |
| 21:31:20 | evan | most cases where people see invalid use of handle |
| 21:31:20 | brianmario | had a question though |
| 21:31:24 | evan | they hava a bug in their extension |
| 21:31:30 | evan | that MRI isn't catching |
| 21:31:32 | evan | but we are. |
| 21:31:33 | brianmario | yeah, I figured I probably do |
| 21:31:35 | brianmario | yeah |
| 21:32:07 | brianmario | dbussink and I have been toying around with a lazy attribute idea |
| 21:32:25 | evan | what makes an attribute lazy? lack of work ethic? |
| 21:32:30 | brixen | lazy attributes are lazy? |
| 21:32:30 | evan | lives at home with it's parents? |
| 21:32:43 | brianmario | wanted to see if you had any ideas for implementation, or even something rbx might be able to offer "natively" |
| 21:32:46 | brianmario | heh |
| 21:32:51 | sbryant_work | get job hippy attributes! |
| 21:32:58 | evan | sbryant_work: haha |
| 21:33:03 | brianmario | something like a custom hash, that doesn't cast ruby types until they're accessed |
| 21:33:19 | evan | ... |
| 21:33:22 | evan | don't know what you mean |
| 21:33:24 | evan | "cast ruby types" |
| 21:34:00 | brianmario | result = connection.query "SELECT int_field, date_field, timestamp_field FROM some_table" |
| 21:34:04 | brianmario | row = result.first |
| 21:34:20 | evan | ok.. |
| 21:34:28 | evan | i'm missing something |
| 21:34:29 | brianmario | (at this point, only one ruby object has been created - which is said custom hash or whatever) |
| 21:34:30 | evan | what about that? |
| 21:34:40 | brianmario | row[:int_field] # => now the ruby Fixnum is created on the fly |
| 21:34:45 | evan | so result is some magic hash |
| 21:34:47 | evan | or row? |
| 21:34:52 | brianmario | row[:timestamp_field] # => Time object created on the fly |
| 21:34:58 | evan | it doesn't do that now? |
| 21:35:01 | dbussink | magic row that behaves somewhat like a hash |
| 21:35:08 | brianmario | and you never access row[:date_field] so the Date object is never created |
| 21:35:09 | brianmario | right |
| 21:35:15 | brianmario | row |
| 21:35:24 | brianmario | but I'm thinking more reusable |
| 21:35:26 | evan | sounds like just normal ruby |
| 21:35:35 | evan | i don't see how it's related to rubinius specificly |
| 21:35:40 | brianmario | no no it's not |
| 21:35:51 | evan | i'd just use a hash with a default proc |
| 21:35:53 | brianmario | was just wondering if you *were* to impliment something like that |
| 21:36:00 | brianmario | implement* |
| 21:36:05 | evan | hash with a default proc |
| 21:36:09 | evan | is what i'd do |
| 21:36:14 | brianmario | never done that |
| 21:36:17 | evan | oh man |
| 21:36:19 | evan | super easy |
| 21:36:46 | evan | magic = Hash.new { |h,k| h[k] = context.calculate_value(row, k) } |
| 21:37:07 | evan | you create that in the result#first |
| 21:37:35 | evan | context is something that holds the info about how to convert values |
| 21:37:39 | brianmario | iiiiiinteresting |
| 21:37:49 | evan | magic[:timespace] |
| 21:37:50 | brianmario | that's |
| 21:37:54 | brianmario | pretty much exactly what I want |
| 21:37:55 | evan | if there is no :timespace |
| 21:38:07 | evan | it would call the proc, which is expected to populate the value |
| 21:38:15 | evan | afterwhich time, the value is returned as normal. |
| 21:38:44 | evan | (also, i like the idea of a :timespace value, even though I don't know what is) |
| 21:38:55 | evan | perhaps an instance of FourthDimensionalPosition |
| 21:39:13 | sbryant_work | haha |
| 21:40:00 | brianmario | haha |
| 21:40:25 | brianmario | thanks dude, I'll give that a try later |
| 21:40:29 | brianmario | dbussink: waddya think? |
| 21:41:09 | evan | brianmario: if you want to avoid creating a block for every row |
| 21:41:15 | evan | then you could do |
| 21:41:43 | evan | CALCULATOR = Proc.new { |h,k| h[k] = h[:context].calculate(k) } |
| 21:41:44 | evan | and then |
| 21:41:52 | evan | Hash.new(&CALCULATOR) |
| 21:41:58 | evan | per row |
| 21:42:14 | evan | well, |
| 21:42:18 | evan | h = Hash.new(&CALCULATOR} |
| 21:42:19 | dbussink | brianmario: this is the best way of doing it all in ruby |
| 21:42:30 | evan | h[:context] = thingy_that_knows_row_info |
| 21:42:43 | dbussink | but 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:16 | dbussink | but for rbx, this could very well be faster to do in ruby compared to shoving more into c |
| 21:44:20 | dbussink | but i'm off to get some sleep |
| 21:44:21 | dbussink | nite! |
| 21:44:25 | brianmario | later! |
| 21:44:33 | evan | dbussink: nite! |
| 21:44:44 | boyscout | Add gdbm extension - 8cde482 - Evan Phoenix |
| 21:44:45 | boyscout | Add specs for rb_iterate calling any method - 09d2566 - Evan Phoenix |
| 21:44:45 | boyscout | Fully implement rb_iterate - ca71611 - Evan Phoenix |
| 21:44:45 | boyscout | Add sdbm extension - 2243bb4 - Evan Phoenix |
| 21:44:53 | evan | manveru: there ya go! |
| 21:44:57 | evan | enjoy! |
| 21:46:41 | brianmario | evan: how's hydra goin? |
| 21:46:48 | evan | good good |
| 21:46:53 | evan | but on the back burner until 1.1 is out. |
| 21:46:59 | brianmario | ah cool |
| 21:47:10 | brianmario | will 1.1 include the new GIL algo? |
| 21:47:37 | brixen | brianmario: yeah, it's already in master |
| 21:47:44 | brianmario | nice |
| 21:49:12 | brixen | hi luislavena! |
| 21:49:31 | brixen | luislavena: I got your email, will reply with more details soon |
| 21:49:51 | luislavena | brixen: awesome, wasn't stalking you, but happy to hear that ;-) |
| 21:50:19 | evan | luislavena: hi luislavena! |
| 21:50:28 | evan | thanks for the heads up about the Makefile |
| 21:50:31 | evan | just removed it. |
| 21:50:33 | luislavena | evan: hey evan, I was stalking you ;-) |
| 21:50:37 | evan | hah |
| 21:50:41 | evan | I THOUGHT SO |
| 21:50:46 | luislavena | :-$ |
| 21:50:58 | boyscout | Remove local Makefile (extconf.rb creates them) - 482182e - Evan Phoenix |
| 21:51:05 | luislavena | evan: how things are coming in the land of the alternate ruby implementations? |
| 21:51:22 | evan | brixen: you're still in the depths of class variables and that rails 2.1 fix, yes? |
| 21:51:27 | evan | luislavena: oh, pretty darn good! |
| 21:51:34 | evan | oh oh |
| 21:51:45 | brixen | evan: yeah, auditing bytearray, tuple atm |
| 21:51:50 | evan | where was that windows fork? |
| 21:52:14 | evan | brixen: are those related? |
| 21:52:23 | evan | i thought they were 2 seperate things |
| 21:52:38 | brixen | they are separate yes |
| 21:53:02 | evan | ok |
| 21:53:08 | evan | did you finish with the class vars stuff? |
| 21:53:13 | brixen | evan: if we're not having win support in 1.1, I'd rather you get hydra building on linux and leapard |
| 21:53:16 | evan | just looking to get that ticket closed. |
| 21:53:21 | brixen | rather than windows stuff, which is easy for me to do |
| 21:54:04 | brixen | because I wanted to base the multiverse branch on hydra |
| 21:54:20 | brixen | multiverse == 1.8/1.9 + windows |
| 21:54:26 | evan | :) |
| 21:54:26 | evan | sure |
| 21:54:33 | evan | lets finish up 1.1 then! |
| 21:55:04 | brixen | ok |
| 21:55:12 | boyscout | CI: rubinius: 2243bb4 successful: 3522 files, 15301 examples, 43159 expectations, 0 failures, 0 errors |
| 21:55:32 | luislavena | would love to understand what you guys just decided |
| 21:55:44 | evan | luislavena: :D |
| 21:55:50 | brixen | does too |
| 21:55:56 | evan | luislavena: for 1.1, i was gonig to give windows support a best attempte |
| 21:55:58 | evan | attempt |
| 21:56:02 | evan | but we ran out of time slightly |
| 21:56:07 | evan | so it's been pushed to the next release |
| 21:56:27 | luislavena | evan: well, i like that, rushing it is no good. |
| 21:56:30 | evan | the next big release is (it looks like) going incorporate hydra, which is a branch that has no GIL. |
| 21:56:46 | luislavena | evan: would prefer you roll 1.1 and take the time for windows stuff on a separate work. |
| 21:56:54 | evan | yep |
| 21:57:34 | luislavena | evan: 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:49 | evan | i saw that! |
| 21:57:50 | luislavena | evan: which help to build dependencies for rubinius on Windows. |
| 21:57:55 | evan | i installed your devkit under windows 7 |
| 21:58:06 | evan | to begin learning windows dev. |
| 21:58:16 | luislavena | evan: good luck then! |
| 21:58:18 | luislavena | ;-) |
| 21:58:21 | evan | :) |
| 21:59:05 | luislavena | evan: 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:14 | luislavena | evan: but you can use bash too. |
| 21:59:24 | evan | i've been using bash |
| 21:59:29 | evan | both the one in your devkit |
| 21:59:36 | evan | and the one that comes with the git installer |
| 21:59:44 | evan | which are both msys bash i think. |
| 22:00:37 | luislavena | evan: yes, msys is nicer than cygwin ;-) |
| 22:00:48 | evan | i've noticed |
| 22:00:51 | evan | cygwin is quite a pain. |
| 22:00:57 | luislavena | evan: specially when you can send a windows path with drive letter and gets translated automatically :-) |
| 22:01:03 | evan | msys doesn't isolate you from the windows APIs like cygwin does though, yes? |
| 22:01:11 | evan | development wise |
| 22:01:44 | luislavena | evan: no, msys has a small layer for specific stuff posix stuff, but when you compile you're actually compiling natively. |
| 22:01:59 | luislavena | msys is just dev environment for stuff like perl, m4, autoconf, etc. |
| 22:02:19 | evan | ok |
| 22:02:41 | luislavena | I have one question for you about hydra and the new GIL approach |
| 22:02:49 | evan | sure |
| 22:02:51 | evan | wassup |
| 22:03:16 | luislavena | how good will this gil behaves compared to no gil at all? |
| 22:03:29 | luislavena | err, let me rephrase maybe... |
| 22:03:36 | evan | you mean the new gil I did in 1.1 |
| 22:03:38 | evan | compared to hydra |
| 22:03:51 | luislavena | yes |
| 22:03:55 | evan | ok |
| 22:04:05 | evan | the difference between the GIL in 1.0.1 and 1.1 isn't very much |
| 22:04:14 | evan | the GIL in 1.1 prevents a thread from starving other threads is all |
| 22:04:22 | evan | so it controls scheduling a bit better |
| 22:04:28 | luislavena | evan: yeah, saw that, like py3.2 |
| 22:04:33 | evan | both of those compared to hydra is a big change |
| 22:04:35 | luislavena | which isn't great, but works. |
| 22:04:40 | evan | right |
| 22:04:53 | evan | hydra is great because there is no GIL, and thus scheduling concerns |
| 22:05:01 | luislavena | I skimmed the commits and was lazy to read python code, been years since last time. |
| 22:05:02 | evan | just a lot of locks to control resources |
| 22:05:13 | evan | luislavena: if you checked otu my code |
| 22:05:15 | evan | thats enough |
| 22:05:20 | evan | i read through their impl and boiled it down |
| 22:05:38 | luislavena | evan: got the idea from 1.1, still haven't checked hydra :-( |
| 22:05:47 | evan | thats fine |
| 22:05:58 | evan | anyway, did I answer your question? |
| 22:06:12 | evan | No GIL is much, much better than any GIL. |
| 22:06:22 | evan | no scheduling concerns to worry about |
| 22:08:23 | luislavena | evan: indeed, thank you, you can go back to work now ;-) |
| 22:08:29 | evan | :D |
| 22:08:35 | evan | are you back in south america? |
| 22:08:54 | luislavena | evan: yes, back in july. |
| 22:09:12 | luislavena | evan: planning uruguay trip for october, are you coming? |
| 22:09:31 | luislavena | evan: http://rubyconfuruguay.org/en |
| 22:09:40 | evan | i don't think so :( :( |
| 22:10:11 | brixen | luislavena: I want to go to that |
| 22:10:29 | brixen | luislavena: put a good word in for me with the boss ;) |
| 22:10:32 | luislavena | brixen: I will be for sure, either speaking or attending. |
| 22:10:50 | brixen | is there still time to submit a talk? |
| 22:11:06 | evan | hehe |
| 22:11:08 | brixen | I talked to rabble about it, but don't really know what talk to do |
| 22:11:19 | evan | brixen: I approve you going. |
| 22:11:28 | luislavena | brixen: hmn, no: "Proposals will be accepted until August 27th." |
| 22:11:29 | brixen | beginning rails 3.0 with rubinius... is not that interesting |
| 22:11:39 | brixen | oops, just missed it |
| 22:11:49 | brixen | evan: super |
| 22:12:04 | luislavena | brixen: well, emerging communities are more Windows centric, will be a good opportunity for you to look at that! |
| 22:12:09 | luislavena | brixen: like going to the zoo. |
| 22:12:24 | brixen | luislavena: ahh, I could talk about rbx windows support! :) |
| 22:12:26 | luislavena | evan: you're going to rubyconf brazil, right? will be pretty much similar I guess |
| 22:12:33 | evan | luislavena: yeah, I am. |
| 22:12:45 | brixen | luislavena: how about this, you get rbx working on windows and I'll help tell people about it :D |
| 22:13:11 | luislavena | brixen: I would love to, you know, but lot of things going on :-P |
| 22:13:29 | brixen | luislavena: esas son nada mas excusas, hombre :) |
| 22:13:32 | luislavena | brixen: perhaps I could take a sabbatical month or something like that and work on it. |
| 22:13:38 | luislavena | brixen: jajaja |
| 22:13:39 | brixen | heh, woot |
| 22:14:24 | brixen | luislavena: we have some time, I'm sure we'll have basic support by then |
| 22:14:51 | luislavena | brixen: when you're done with 1.1 ping me, I would love to avoid overlapping the work you had done. |
| 22:15:01 | evan | i think it's pretty close now |
| 22:15:03 | evan | actually |
| 22:15:14 | evan | both luislavena and that other guy ran into the FFI issue |
| 22:15:20 | evan | which should be easy to clear up |
| 22:15:25 | brixen | yeah |
| 22:15:26 | luislavena | evan: which FFI? |
| 22:15:47 | evan | luislavena: you couldn't boot the VM because it complained about not finding some POSIX functions via FFI |
| 22:16:05 | evan | so it's 2 fold: fix FFI to find functions, don't use POSIX functions on windows |
| 22:16:30 | luislavena | evan: latest libffi behaves better on Windows (actually 1.9.2 ships with it) |
| 22:16:48 | evan | luislavena: ok, good. |
| 22:17:02 | evan | it's the code that uses the dynamic linker to find symbols that was the issue |
| 22:17:14 | evan | ie, the windows equiv of dlsym() |
| 22:18:25 | luislavena | evan: LoadLibrary and GetProcAddress? will be weird using those directly :-P |
| 22:19:48 | evan | is there another way? |
| 22:22:06 | luislavena | ffi should be doing that for you. |
| 22:22:29 | luislavena | evan: I'm stuck in adding conditions to headers and classes now for mingw32 |
| 22:22:57 | evan | i don't want to use libffi for that. |
| 22:23:01 | luislavena | so haven't reached the build of the VM yet. |
| 22:23:07 | evan | ok |
| 22:23:24 | luislavena | evan: all dependencies compiles (excluding llvm) |
| 22:24:11 | evan | llvm doesnt? |
| 22:25:08 | luislavena | evan: it does, but I just disabled for now and focused in external_libs and vm |
| 22:25:29 | luislavena | evan: there is a llvm binary already that I can provision using rubyinstaller recipes, so was not worry about it. |
| 22:25:29 | evan | ex |
| 22:25:29 | evan | ok |
| 22:40:45 | brixen | that class_variable_get|set are private is dumb |
| 22:41:29 | evan | agreed. |
| 23:21:49 | brixen | erg, gotta move my car before I get a ticket... bbiab.. |
| 23:21:56 | evan | heh |
| 23:21:56 | evan | k |