Show enters and exits. Hide enters and exits.
| 00:02:45 | dwaite | this sort of confusion _never_ happens with non-dynamic languages |
| 00:02:46 | dwaite | ;-) |
| 00:03:05 | dwaite | (because you get segfaults long before this point) |
| 00:03:45 | evan | hah |
| 00:03:45 | evan | yeah. |
| 00:03:49 | evan | the compiler would have just crashed. |
| 00:05:02 | evan | fuck yeah. |
| 00:05:05 | evan | rails 2.3.5 runs. |
| 00:05:32 | rue | Neat |
| 00:05:53 | rue | The old AST grapher and ASCII formatter might have some good ideas. |
| 00:06:11 | evan | we never really had an old AST grapher |
| 00:06:14 | evan | that i'm aware of. |
| 00:06:32 | rue | Really? Thought there was one generating dot files |
| 00:06:47 | rue | And I wrote something to just prettyprint them at least |
| 00:06:48 | evan | oh yes that. |
| 00:06:54 | evan | i did write that |
| 00:06:58 | evan | it was bytecode though |
| 00:07:00 | evan | not AST |
| 00:07:02 | evan | as I recall. |
| 00:07:07 | evan | it's been a while though, i could be wrong. |
| 00:07:15 | evan | brixen's printer is great |
| 00:07:20 | evan | just ambigious on this one thing. |
| 00:09:07 | brixen | the bytecode bb .dot file grapher is still there |
| 00:09:12 | brixen | might need some tweaking to run |
| 00:10:17 | rue | Why would it be graphing bytecode? |
| 00:12:33 | benschwarz | evan, brixen, whats the best way to debug / inspect the object space and find leaks or gc issues? |
| 00:12:42 | benschwarz | (mri) |
| 00:13:08 | evan | anything that you can rub and gives you good luck is a good place to start |
| 00:14:16 | brixen | haha |
| 00:15:01 | dwaite | all the things I rub wind up giving me restraining orders :'( |
| 00:15:32 | benschwarz | oh snap |
| 00:15:34 | dwaite | giggles |
| 00:15:36 | brixen | hah |
| 00:15:57 | brixen | benschwarz: I thought there was some lib out there to help track leaks in MRI... |
| 00:16:04 | benschwarz | I can watch the process grow and shrink as it processes items |
| 00:16:12 | brixen | benschwarz: I'd like to tell you, just use rbx, but... |
| 00:16:31 | benschwarz | so I suspect that the gc is running prematurely ? |
| 00:16:42 | brixen | why? |
| 00:16:47 | benschwarz | brixen: but what? |
| 00:17:05 | brixen | benschwarz: but you haven't been helping us, so we're not there yet :P |
| 00:17:15 | benschwarz | :( |
| 00:17:24 | brixen | benschwarz: the process should grow and shrink if GC is working properly |
| 00:18:03 | benschwarz | brixen: so if I can log out objects being processed, and see if grow and shrink for each one... |
| 00:18:04 | benschwarz | ? |
| 00:18:26 | brixen | um, dunno what you are processing |
| 00:18:32 | rue | ...You will be doing a lot of unnecessary work? |
| 00:18:39 | rue | (Probably) |
| 00:18:59 | brixen | benschwarz: what is your goal? tracking down a memory leak? |
| 00:19:08 | brixen | or do you just wonder if it might be leaking? |
| 00:19:36 | brixen | memory leaks by definition should produce unbounded memory growth |
| 00:19:51 | brixen | might be very slow growth |
| 00:19:55 | benschwarz | brixen: I'm wondering.. I thought it might be slowing down the processing due to constant GCing.. |
| 00:19:59 | brixen | but that's complicated by MRI's GC |
| 00:20:53 | brixen | benschwarz: I dunno, I'n no expert on tracking MRI GC perf :( |
| 00:21:04 | benschwarz | now rbx on the other hand? :D |
| 00:21:15 | brixen | heh rbx is sane :P |
| 00:21:28 | brixen | benschwarz: have you run this under REE? |
| 00:22:30 | benschwarz | no, although under 1.9 (just testing now) |
| 00:22:37 | benschwarz | its about 50% faster |
| 00:22:45 | benschwarz | and uses 10% less memory |
| 00:22:53 | benschwarz | roughly |
| 00:23:05 | brixen | benschwarz: http://ola-bini.blogspot.com/2007/11/ruby-memory-leaks.html |
| 00:24:48 | benschwarz | cheers |
| 00:26:09 | benschwarz | mmm http://blog.evanweaver.com/articles/2008/02/05/valgrind-and-ruby/ |
| 00:27:39 | brixen | there ya go |
| 00:42:45 | boyscout | Print the names of ivars that contain other Nodes - ce9b280 - Evan Phoenix |
| 00:42:45 | boyscout | Extract assignment properly. Fixes #95. - 25a1fd9 - Evan Phoenix |
| 00:42:45 | boyscout | Use chained exceptions for compiler errors - 3355561 - Evan Phoenix |
| 00:44:34 | evan | rails 2.3.5 with sqlite3 seems to be working. |
| 00:45:43 | boyscout | CI: 3355561 success. 3005 files, 11472 examples, 35615 expectations, 0 failures, 0 errors |
| 00:46:44 | dwaite | nice |
| 00:47:26 | brianmario | evan: can you add a couple of gem dependencies in your environment.rb (of the 2.3.5 app) and try an "rake gems:install" to see if you can replicate that issue I was having? |
| 00:47:28 | brianmario | if you get time |
| 00:47:49 | evan | what am I looking for? |
| 00:47:54 | evan | have you put in an issue? |
| 00:47:58 | evan | thats always step 1 |
| 00:48:08 | brianmario | not yet, was still trying to see if I could narrow it down a little better |
| 00:48:15 | brianmario | but I should have... |
| 00:48:35 | brianmario | basically, it pegs the CPU and keeps eating ram until I kill it or it finishes |
| 00:49:06 | evan | i'll wait until you put in an issue |
| 00:49:13 | evan | if gems:install uses rubygems to install stuff |
| 00:49:23 | evan | then it's likely the rubygems slowness i've been seeing |
| 00:49:25 | brianmario | not sure if it helps or not, but I notice at first it's pegged around 180% cpu (I have 4 cores in this machine), so it seems like more than one thread is doing something (?) |
| 00:49:27 | evan | i'm about to try and track it down. |
| 00:49:33 | evan | don't tell me in here |
| 00:49:36 | evan | put your info into the issue. |
| 00:49:39 | brianmario | but drops back down to 100% |
| 00:49:41 | brianmario | ok |
| 00:49:44 | evan | IRC is ephemeral. |
| 00:49:44 | brianmario | ;) |
| 00:49:46 | evan | issues are not. |
| 00:49:55 | brianmario | good point |
| 00:54:35 | brianmario | done, #107 |
| 00:55:47 | evan | cool |
| 00:55:54 | evan | i'm looking into the rubygems slowness now |
| 00:56:01 | evan | i'm sure it's the same thing |
| 00:56:26 | brianmario | yeah |
| 07:58:54 | dbussink | morning peoples |
| 09:05:20 | rue | Morning |
| 09:40:21 | dbussink | rue: the silence... |
| 10:20:52 | rue | Yep, that |
| 14:48:09 | derenrich | whoa |
| 14:48:12 | derenrich | this is a channel |
| 14:53:08 | dbussink | derenrich: what did you expect? :) |
| 14:53:31 | derenrich | i didn't actually think it was a thing |
| 14:56:10 | dbussink | derenrich: it's an alternative ruby implementation |
| 14:57:48 | derenrich | no i know |
| 15:19:29 | khaase | derenrich: this channel is one of the finest on freenode. quit entertaining even if you just listen/read. |
| 15:21:57 | Zoxc | this channel needs 600 more users |
| 17:13:00 | rue | Uncle Evan Needs You! |
| 17:13:09 | sbryant | What does he need? |
| 17:13:11 | evan | eh? |
| 17:13:38 | rue | Well, we are still about 598 people short of the goal |
| 17:13:46 | evan | ah! |
| 17:13:51 | evan | heh |
| 17:13:55 | sbryant | I'm still lost. |
| 17:14:05 | evan | he's talking about the discussion about the number of people in here earlier |
| 17:14:39 | sbryant | Oh |
| 17:14:56 | rue | Yes, I totally failed to account for timestamps |
| 17:15:06 | rue | Someone said this channel needed 600 more people |
| 17:15:28 | Zoxc | is someone :( |
| 17:16:23 | sbryant | Gotcha. |
| 17:18:09 | evan | Zoxc: you're here! |
| 17:18:11 | evan | 599 left. |
| 17:18:34 | sbryant | evan: that begs the question: is anyone ever really here? |
| 17:18:36 | sbryant | ducks |
| 17:19:02 | evan | you get on with your philosopher self! |
| 17:19:25 | sbryant | Hah. |
| 17:19:31 | Zoxc | still 598 left :/ |
| 17:23:45 | tarcieri | is here, lingering in the ether |
| 17:24:04 | evan | tackles tarcieri and gives him a noogie |
| 17:24:09 | tarcieri | lol |
| 17:24:09 | evan | GOTCHA |
| 17:24:35 | tarcieri | escapes back into the miasma of idling |
| 17:25:28 | evan | pulls tarcieri up out of the darkness |
| 17:25:31 | evan | STAY WITH US! |
| 17:25:35 | tarcieri | lol |
| 17:26:18 | Zoxc | throws a rbx fork bomb at the channel |
| 17:26:59 | evan | casually difuses it and makes it into a planter |
| 17:27:14 | evan | you'll have to try harder than that! |
| 17:29:01 | Zoxc | throws forks at evan instead |
| 17:29:09 | evan | engages the spoon shield |
| 17:29:43 | sbryant | throws fors and the spoon shield FTL to create the freak of nature known as SPORK. |
| 17:29:53 | sbryant | And spelling fail :( |
| 17:30:52 | evan | the spork effect overwhelmed you |
| 17:30:53 | evan | it happens. |
| 17:30:59 | sbryant | It does. |
| 17:32:01 | derenrich | is here still |
| 17:32:09 | derenrich | will contribute nothing useful |
| 17:37:27 | evan | nah! |
| 17:37:30 | evan | everyone helps. |
| 17:37:36 | evan | even if it's just morale support. |
| 17:37:48 | tarcieri | everything counts in large amounts |
| 17:38:58 | Zoxc | #mirb has more morale support :D |
| 18:02:43 | rue | That does not count |
| 18:24:05 | evan | yay! |
| 18:24:26 | evan | waits for boyscout |
| 18:24:26 | evan | oh |
| 18:24:30 | evan | where is boyscout!? |
| 18:24:47 | evan | fail! |
| 18:24:55 | evan | anyway, just did a couple commits |
| 18:25:05 | evan | cut the time to parse rubygem's spec.4.8 in half |
| 18:25:08 | evan | from 12s to 6s |
| 18:25:15 | evan | (it's 1.5s for MRI, btw) |
| 18:25:34 | evan | unmark_all is dead, long live rotating mark! |
| 18:26:47 | brixen | woot |
| 18:26:58 | evan | brixen: i did the change we talked about before |
| 18:27:00 | evan | but never did |
| 18:27:04 | evan | changing when immix collects |
| 18:27:11 | brixen | did only the mark change produce that speed up |
| 18:27:23 | rue | Dammit, I did not even have the chance to review the changes from yesterday |
| 18:27:28 | rue | Yet |
| 18:27:30 | evan | unmarshalling spec.4.8 creates a HUGE object graph |
| 18:27:32 | evan | that all survive |
| 18:27:35 | brixen | ahh |
| 18:27:49 | evan | using the rotating mark changed it a little |
| 18:27:56 | evan | but not collecting as often was much, much bigger. |
| 18:28:19 | evan | the rotating mark means we don't have to perform the transitivie closure after a collection |
| 18:28:27 | brixen | gotcha |
| 18:28:46 | evan | looks like that took it from 6.2s to 5.4s |
| 18:28:49 | evan | so a nice bump. |
| 18:30:42 | boyscout | CI: 17c734e success. 3005 files, 11480 examples, 35623 expectations, 0 failures, 0 errors |
| 18:32:47 | evan | haha |
| 18:32:53 | evan | the LA Ruby meeting next week |
| 18:32:58 | evan | happens to be 0.2 miles away from here. |
| 18:33:13 | evan | I literally have to cross a total of 2 streets. |
| 18:33:46 | brixen | ahh interesting, so collecting every 10 chunks (10mb) now |
| 18:33:53 | evan | yep |
| 18:33:57 | evan | tried 8, 10, and 20 |
| 18:34:06 | evan | 10 and 20 didn't make a big difference |
| 18:34:08 | evan | so went with 10 |
| 18:48:16 | evan | RAD |
| 18:48:25 | evan | small fix eliminated 30s from gem install. |
| 18:49:32 | brixen | whoa |
| 18:49:33 | brixen | do tell |
| 18:50:44 | evan | I ran it by drbrain first |
| 18:50:56 | evan | when the remote specs file is fetched |
| 18:51:00 | evan | it's gunzip'd |
| 18:51:05 | evan | and unmarshalled |
| 18:51:15 | evan | it then needs to be saved to disk |
| 18:51:21 | evan | that code remarshalled it |
| 18:51:33 | evan | rather than just saving the marshaled data it already had |
| 18:51:40 | evan | rbx marshal is pretty slow (working on that now) |
| 18:51:46 | evan | but NOT doing it is always faster than DOING it. |
| 18:51:59 | evan | 26s to save the file down to 0.002s |
| 18:52:11 | sbryant | hooray for not doing stuff! |
| 18:52:32 | brixen | sweet |
| 18:52:51 | brixen | yeah, no code runs faster than no code |
| 18:52:53 | dwaite | nice |
| 18:57:10 | marcandre | evan: Hi! There are some new features coming in 1.9.2 and I'm coding them in my backports gem when I have a second. Would you like me to adapt them for Rubinius, or would you rather wait until 1.9.2 is out? |
| 18:58:16 | brixen | I think it would be a fine time to make a 1.9 branch |
| 18:58:32 | brixen | the vm/gc/jit stuff should be able to apply cleanly |
| 18:58:39 | marcandre | Are you guys ready to implement the encoding stuff?? |
| 18:58:46 | brixen | and we could start tweaking the core lib to be 1.9.2 |
| 18:59:10 | evan | 1.9 stuff needs to start happening on a branch, yes. |
| 18:59:10 | brixen | marcandre: well, somebody might be ready :) |
| 18:59:12 | evan | not on master. |
| 18:59:25 | brixen | evan: let's just make the branch... |
| 18:59:38 | evan | k |
| 19:00:12 | sbryant | smells like git. |
| 19:00:15 | marcandre | And the goal will be to target 1.9.2, right? |
| 19:00:20 | brixen | marcandre: yes |
| 19:00:22 | boyscout | Don't remarshal specs, write the existing data - d15ece5 - Evan Phoenix |
| 19:00:31 | brixen | sbryant: heh, it does |
| 19:00:56 | evan | ok, there is a one_nine branch now. |
| 19:00:57 | evan | go to town. |
| 19:01:20 | marcandre | Cool. I'll move what I've down so far, and keep them in synch when I write other stuff. |
| 19:01:27 | evan | k |
| 19:01:30 | evan | feel free to make a mess |
| 19:01:31 | evan | in general |
| 19:01:40 | evan | branches are for making a mess. |
| 19:01:43 | marcandre | Well, I might, but not intentionally ;-) |
| 19:01:48 | evan | either way :) |
| 19:03:08 | boyscout | CI: d15ece5 success. 3005 files, 11480 examples, 35623 expectations, 0 failures, 0 errors |
| 19:12:35 | brixen | evan: http://gist.github.com/248440 |
| 19:12:47 | brixen | what type should mark() return? |
| 19:12:57 | evan | :/ |
| 19:13:12 | brixen | this is gcc 4.0.1 of course |
| 19:13:33 | evan | i guess that should be unsigned |
| 19:13:36 | evan | thats my mistake. |
| 19:13:44 | evan | so mark() returns an unsigned |
| 19:13:49 | evan | and then marked_p takes an unsigned |
| 19:13:57 | brixen | k |
| 19:14:06 | brixen | weird that gcc > 4.0.1 did not choke on this |
| 19:14:16 | brixen | do you want to change or do you want me to? |
| 19:14:18 | evan | yeah |
| 19:15:25 | brixen | which? |
| 19:18:12 | evan | change it. |
| 19:18:16 | evan | woop. |
| 19:18:19 | evan | 26s to 10s |
| 19:18:37 | evan | byte marshal was converting a Fixnum to a string using [num].pack("C") |
| 19:18:47 | evan | rather than the much more efficient |
| 19:18:50 | evan | (num & 0xff).chr |
| 19:19:01 | boyscout | Added some features of 1.9 - aabf797 - Marc-Andre Lafortune (one_nine) |
| 19:19:17 | brixen | sweet, love boyscout reporting |
| 19:19:21 | evan | yeah |
| 19:19:28 | evan | I was just thinking that. |
| 19:20:55 | sbryant | marcandre: what features did you implement? |
| 19:21:27 | marcandre | It's in the log |
| 19:21:34 | sbryant | I see! |
| 19:21:42 | marcandre | - Dir#to_path |
| 19:21:42 | marcandre | - Enumerable#chunk, #flat_map, #collect_concat |
| 19:21:43 | marcandre | - Integer#magnitude |
| 19:21:45 | marcandre | - IO.binread |
| 19:21:47 | marcandre | - File#to_path, #size |
| 19:21:54 | sbryant | I'm githubbin' it |
| 19:21:55 | marcandre | Easy stuff that is now rubinius specific. |
| 19:22:49 | marcandre | I meant _not_ rubinius specific |
| 19:23:31 | sbryant | i gotcha :) |
| 19:24:46 | brixen | evan: would it be hard to set up CI on one_nine? |
| 19:24:55 | evan | nah. |
| 19:24:59 | evan | i got it. |
| 19:25:03 | brixen | cool |
| 19:26:11 | boyscout | Fix signedness of mark flag. - 35383fc - Brian Ford |
| 19:26:18 | marcandre | CI and running the 1.9 specs? |
| 19:26:35 | marcandre | Coz there's going to be about a zillion failures... |
| 19:26:36 | brixen | marcandre: if you change RUBY_VERSION to 1.9, it will run the 1.9 specs |
| 19:26:46 | brixen | marcandre: well, we just need to tag them |
| 19:27:07 | brixen | run bin/mspec tag -G fails -G unstable -G critical -B full :ci_files |
| 19:27:14 | marcandre | Ok. I've not changed RUBY_VERSION (apart from -r 1.9) |
| 19:27:22 | brixen | well, we should |
| 19:27:27 | brixen | it's 1.9.2 after all :) |
| 19:27:52 | brixen | no half-assing it here :P |
| 19:27:54 | evan | right |
| 19:27:56 | evan | you're on a branch |
| 19:27:58 | evan | makes a mess! |
| 19:28:23 | marcandre | Well, I really wish I had the time to go and make a mess and change everything... but I don't. Hopefully others will! |
| 19:28:36 | brixen | marcandre: do you have time to change the version and tag? |
| 19:28:40 | brixen | if not, I'll do that now |
| 19:29:12 | brixen | we need to make it inviting for others to contribute |
| 19:29:18 | brixen | I think some folks will want to |
| 19:29:43 | marcandre | Let me see... |
| 19:32:42 | boyscout | CI: 35383fc success. 3005 files, 11480 examples, 35623 expectations, 0 failures, 0 errors |
| 19:51:24 | evan | brixen: do add a new instruction |
| 19:51:29 | evan | brixen: i just need to edit instructions.def |
| 19:51:29 | evan | yes? |
| 19:54:05 | brixen | should yes |
| 19:54:10 | evan | k |
| 19:54:17 | evan | while looking at marshal |
| 19:54:28 | evan | realized how silly we handle "#{}" |
| 19:54:37 | evan | not that exactly, just DynamicString in general. |
| 19:54:48 | evan | we also have a bug in it, an eval ordering bug. |
| 19:54:53 | brixen | ahh |
| 19:54:58 | evan | so i'm fixing it |
| 19:55:01 | brixen | so just going to pass all the parts to an insn? |
| 19:55:04 | evan | i'm adding a string_build instruction |
| 19:55:17 | evan | string_build(count) |
| 19:55:27 | evan | it looks at all of them and figures out how big the output needs to be at once |
| 19:55:31 | evan | then copies the parts in. |
| 19:55:31 | brixen | cool |
| 19:55:49 | marcandre | Allright, I'm at the installing stage... rake install works, but.... |
| 19:55:55 | marcandre | $ rbx |
| 19:55:55 | marcandre | Ruby Exception hit toplevel: |
| 19:55:56 | marcandre | unknown marshal code: (TypeError) |
| 19:56:08 | marcandre | Any clue? |
| 19:56:10 | evan | hm, did I break something? |
| 19:56:15 | evan | oh nope |
| 19:56:18 | evan | wrong marshal. |
| 19:56:22 | evan | you've got stale .rbcs |
| 19:56:23 | evan | probably. |
| 19:56:42 | marcandre | How do I clean them? |
| 19:56:49 | brixen | rake clean |
| 19:56:51 | evan | find . -name "*.rbc" -delete |
| 19:56:58 | evan | yes, or that. |
| 19:57:02 | brixen | that's basically what rake clean does |
| 19:57:03 | brixen | yeah |
| 19:57:11 | brianmario | marcandre: evan: what do you guys think about doing what macruby did for the JSON api in the 1.9 branch? |
| 19:57:27 | evan | i don't know what they did |
| 19:57:28 | marcandre | k. Rebuilding. Indeed I haven't built in a while |
| 19:57:33 | marcandre | ditto |
| 19:57:38 | evan | huh? |
| 19:57:40 | brianmario | http://svn.macosforge.org/repository/ruby/MacRuby/trunk/ext/json/ |
| 19:57:46 | brixen | marcandre: if you haven't built in a while, you should rake distclean; rake build |
| 19:58:09 | brixen | marcandre: we've changed some external lib stuff and atm build won't trigger a rebuild of external_libs |
| 19:58:24 | marcandre | brixen: thanks |
| 19:58:28 | brianmario | instead of having the actual json gem in there, they're using yajl and some code from yajl-ruby's JSON gem compat API (yajl's faster, better utf8 handling) |
| 19:58:37 | evan | marcandre: i'm confused on your json comment |
| 19:58:41 | evan | you said you didn't know what they did? |
| 19:58:45 | evan | but you asked me about it |
| 19:58:48 | evan | i don't understand. |
| 19:58:55 | marcandre | yeah, I don't remember seeing anything on ruby-core |
| 19:58:58 | evan | oh wait. |
| 19:58:59 | evan | man |
| 19:59:02 | evan | it's totally lunch time. |
| 19:59:06 | brixen | heh |
| 19:59:08 | evan | brianmario said it. |
| 19:59:08 | marcandre | :-) |
| 19:59:10 | evan | not marcandre. |
| 19:59:11 | brixen | brianmario != marcandre |
| 19:59:12 | evan | wow brain. |
| 19:59:14 | evan | F |
| 19:59:14 | evan | A |
| 19:59:15 | evan | I |
| 19:59:17 | brianmario | lol |
| 19:59:17 | evan | L |
| 19:59:19 | brixen | haha |
| 19:59:26 | evan | lets try that again |
| 19:59:36 | evan | brianmario: do what like macruby? bundle it? |
| 19:59:53 | brianmario | so 1.9 has the JSON gem bundled |
| 19:59:54 | brixen | does 1.9 bundle json? |
| 19:59:57 | brixen | ahh |
| 19:59:58 | brianmario | yeah |
| 20:00:00 | evan | why? |
| 20:00:09 | brianmario | dunno, but it's there |
| 20:00:17 | brixen | 1.9 has made some rather dumb bundling decisions :( |
| 20:00:21 | brianmario | so macruby had it there, since it started as a fork of 1.9 in the first place |
| 20:00:26 | evan | wait |
| 20:00:32 | evan | 1.9 bundles json? |
| 20:00:35 | evan | not just macruby |
| 20:00:38 | brianmario | yeah |
| 20:00:41 | evan | weird. |
| 20:01:31 | evan | i'm fine doing whatever |
| 20:01:33 | evan | no opinion. |
| 20:01:48 | brianmario | k |
| 20:01:50 | marcandre | brianmario: can't see the change from that link of yours. So what's the api change? And more importantly: as long as it's not in MRI, why care? |
| 20:02:31 | brianmario | http://svn.macosforge.org/repository/ruby/MacRuby/trunk/ext/json/ |
| 20:02:33 | brianmario | that's not the json gem |
| 20:02:40 | brianmario | that *is* the change I'm talking about |
| 20:03:21 | brianmario | instead, they're using yajl and some parts from yajl-ruby's JSON gem compatibility api |
| 20:03:22 | brianmario | http://svn.macosforge.org/repository/ruby/MacRuby/trunk/ext/json/rubyext.c |
| 20:03:38 | brianmario | should be really easy to port to rbx (this is for the 1.9 branch) |
| 20:04:03 | marcandre | evan & brixen: hey, you guys implemented freeze! ;-) |
| 20:04:08 | brianmario | if the goal of the 1.9 branch is full 1.9.2 compat, we'll need it one way or another |
| 20:04:14 | brianmario | lunch |
| 20:04:14 | evan | marcandre: sort of. |
| 20:04:18 | marcandre | Is that meant to be the final version |
| 20:04:18 | marcandre | ? |
| 20:04:27 | marcandre | Coz it's not equivalent... |
| 20:04:40 | evan | we know it's got holes |
| 20:04:47 | evan | which part of you refering to? |
| 20:04:49 | evan | in Array? |
| 20:04:55 | marcandre | yeah |
| 20:05:02 | brixen | marcandre: well, matz has agreed to make mutating methods raise up-front |
| 20:05:03 | evan | it's equivalent |
| 20:05:05 | evan | it passes the specs. |
| 20:05:17 | brixen | and we aren't necessarily going to implement freeze edge cases |
| 20:05:18 | marcandre | evan: I'll gladly write new specs, then... |
| 20:05:23 | marcandre | x=[:hello] |
| 20:05:29 | marcandre | m=x.method :clear |
| 20:05:33 | marcandre | x.freeze |
| 20:05:36 | marcandre | m.call |
| 20:05:45 | marcandre | No error raised, x is now empty. |
| 20:05:46 | evan | if that works in 1.8 |
| 20:05:47 | evan | it's a bug. |
| 20:05:49 | evan | thats a bug. |
| 20:05:56 | evan | or does that work in rbx |
| 20:05:58 | brixen | good lord |
| 20:06:03 | evan | you know |
| 20:06:08 | brixen | why the eff would anyone expect that? |
| 20:06:09 | evan | i don't really care about support taht atm. |
| 20:06:13 | evan | freeze is so low on the list |
| 20:06:14 | marcandre | In rbx: no error raised. In MRI: error raised |
| 20:06:23 | evan | compliance with it is not a big concern. |
| 20:07:05 | marcandre | Well, I thought the way you implement it is quite cute, and should solve 99.9% of the problem. |
| 20:07:12 | brixen | marcandre: you should write specs based on actual usage first, with an eye to whether it is a potential bug too |
| 20:07:25 | brixen | marcandre: and edge cases should be questioned on ruby-core |
| 20:07:37 | evan | the honor for this code goes to petebevin |
| 20:07:38 | brixen | freeze, like many things in mri, is/was pretty ad hoc |
| 20:11:41 | rue | Yes, yajl is the better way to go |
| 20:13:06 | rue | Could use a different write barrier for frozen stuff |
| 20:13:25 | rue | Since page locking might get a bit tricky |
| 20:14:00 | slava | on windows you can read page dirty bits so technically you don't need a write barrier at all there :) |
| 20:15:23 | rue | Should totally 'forget' to implement encodings for one_nine |
| 20:15:34 | brixen | rue: why? |
| 20:15:47 | brixen | I'm looking forward to the encoding stuff |
| 20:15:58 | rue | You are weird |
| 20:16:05 | brixen | be that as it may |
| 20:16:09 | brixen | it's good for Ruby |
| 20:16:23 | rue | I dunno, the way they are done seems awfully clumsy |
| 20:16:33 | rue | In 1.9 |
| 20:17:03 | brixen | pointer to a system that "does it right"? |
| 20:17:06 | rue | I am all for going to native Unicode |
| 20:19:08 | evan | not all data is unicode though. |
| 20:19:14 | evan | thus the problem. |
| 20:19:38 | evan | Though, having 2 encodings, binary and unicode, might get you far. |
| 20:20:27 | slava | strings should be unicode, and there should be a separate byte array type |
| 20:20:39 | slava | encodings should only be used for reading and writing external data on streams |
| 20:20:44 | slava | that's my two cents |
| 20:21:03 | evan | slava: so do you have a job lined up in NZ? |
| 20:21:54 | slava | no |
| 20:22:09 | evan | fun! |
| 20:22:20 | brixen | slava: are you going to work for the CIA? |
| 20:22:38 | brixen | or is it the NSA? |
| 20:22:51 | brixen | what's that big secret data center in NZ? |
| 20:22:58 | slava | I slang crack in the ghetto on behalf of the CIA |
| 20:23:02 | brixen | not the microsoft one, the other one... |
| 20:23:03 | brixen | haha |
| 20:23:12 | brixen | wait, or did they merge... |
| 20:27:43 | dwaite | slava: strings should also be immutable :P |
| 20:29:14 | evan | strings should be immutable only if you're allegric to fun. |
| 20:29:19 | brixen | dwaite: yeah they should be immutable arrays of chars... wait, didn't erlang try that |
| 20:29:58 | brixen | evan: heh, is that functional == allegic to fun? |
| 20:30:07 | evan | pretty much. |
| 20:30:15 | brixen | or allergic if you're a spelling phreak |
| 20:30:26 | evan | oh |
| 20:30:29 | evan | I'M NOT. |
| 20:30:34 | brixen | heh |
| 20:30:41 | brixen | inclusive "you" there ;) |
| 20:30:43 | dwaite | brixen: you're probably thinking of java |
| 20:30:49 | dwaite | or c# |
| 20:30:55 | evan | yay |
| 20:31:04 | evan | only failures for string_build change are compiler specs |
| 20:31:09 | brixen | sweet |
| 20:31:19 | dwaite | both have mutation objects used to create immutable ones (builders) |
| 20:31:46 | evan | sbryant`: YES! |
| 20:31:48 | evan | no, just kidding. |
| 20:32:02 | evan | no no |
| 20:32:03 | evan | you're fun. |
| 20:32:07 | evan | i promise. |
| 20:36:30 | slava | dwaite: I think mutable strings are useful too |
| 20:39:03 | boyscout | RUBY_VERSION now 1.9.2! Moved lib/1.9 into core lib - a4a5581 - Marc-Andre Lafortune (one_nine) |
| 20:41:49 | brixen | marcandre: woot |
| 20:42:12 | boyscout | Fix misplaced line - c6b3878 - Marc-Andre Lafortune (one_nine) |
| 20:42:39 | marcandre | Cool. :-) Except I now get a segmentation fault running the specs... |
| 20:42:49 | marcandre | Easy way to know where? |
| 20:43:02 | brixen | gdb |
| 20:43:14 | brixen | rake clean; rake build:debug |
| 20:43:22 | brixen | gdb --args vm/vm blah |
| 20:43:41 | brixen | where blah is probably mspec/bin/mspec-ci |
| 20:44:22 | marcandre | Mmm, I had hoped of something easier to just tag the killer spec |
| 20:44:34 | brixen | bin/mspec ci -V -fs |
| 20:44:42 | brixen | when you get the segfault... |
| 20:45:11 | brixen | bin/mspect tag --add critical -e "description" --dry-run --all |
| 20:45:55 | brixen | finds food |
| 20:49:32 | marcandre | Ah, it's in the literal lambda specs |
| 21:13:16 | boyscout | Commented out 5 crashing specs. Created tags using: - b565bb1 - Marc-Andre Lafortune (one_nine) |
| 21:15:57 | marcandre | brixen: I think I've done ok with the specs. Note that there are crashing specs in language/versions/literal_lambda_1.9 and language/versions/method_1.9 |
| 21:16:49 | marcandre | I think this means that rbx (1.8) will also crash when fed that code. Even though it is not legal code in 1.8, you guys probably want to avoid the crash in the parser... |
| 21:20:59 | brixen | marcandre: ok |
| 21:22:24 | rue | Still always build:debug unless I know I will run benchmarks or otherwise test performance:) |
| 21:48:40 | brixen | hah |
| 21:48:56 | brixen | I was going to say, "what *is* up with hpricot?" |
| 21:49:08 | brixen | sbryant`: are you trying to install it, run it? |
| 21:49:19 | brixen | whatever it is, post a ticket.... |
| 21:52:01 | brixen | sbryant`: sounds fun, just be sure to open tickets for issues |
| 21:52:44 | brixen | bad dwaite, that's a no! |
| 21:52:49 | dwaite | is fancy |
| 21:52:53 | brixen | dwaite: I'm tracking those links |
| 21:52:54 | brixen | :( |
| 21:52:58 | dwaite | you are? |
| 21:53:04 | dwaite | hmph |
| 21:53:12 | brixen | no worries |
| 21:53:36 | brixen | dwaite: you can use your fancy link |
| 21:53:41 | rue | sbryant`: Intentionally sabotaged to push people to Nokogiri, naturally. |
| 21:53:42 | dwaite | it actually gives you history of every clickthrough on either link, but whatever :) |
| 21:53:56 | brixen | dwaite: really? |
| 21:53:59 | brixen | cool then... |
| 21:54:16 | rue | OR AM I?! |
| 21:54:38 | dwaite | ahh, not quite |
| 21:54:52 | dwaite | on the URL page it shows that there are two links and basic info for each, but not an aggregate count |
| 21:56:11 | rue | How did you find out I was going to go watch "Ford Fairlane"?! |
| 22:02:12 | VVSiz | brixen: do you have any info on how to use FFI stuff with rbx? I have some blah.rb file that uses "ffi" stuff, and it works in JRuby, how to use it in rbx? |
| 22:13:23 | rue | VVSiz: `require "ffi"` |
| 22:13:48 | VVSiz | rue: LoadError: no such file to load -- ffi |
| 22:13:55 | rue | And remember we do not have callbacks nor a good chunk of the JRuby additions |
| 22:14:48 | rue | Hum, maybe it is already loaded. Is the FFI constant present? |
| 22:15:23 | rue | Oh, yep, it is in kernel/ |
| 22:15:54 | VVSiz | oh :) that was unexpected |
| 22:16:15 | VVSiz | so, no need to require rubygems and/or ffi. thanks! |
| 22:17:54 | evan | which? |
| 22:18:06 | rue | sbryant`: Yes, can you do it by next Wednesday? |
| 22:18:15 | evan | yeah, please got implement them. |
| 22:18:22 | evan | we haven't gotten around to it. |
| 22:18:56 | evan | there are things we don't want |
| 22:19:01 | evan | but we should get callbacks eventually |
| 22:19:03 | evan | they're just complicated |
| 22:19:09 | evan | i was hoping we wouldn't have to dit. |
| 22:19:11 | rue | VVSiz: Good point, though, do you have to require it in JRuby? |
| 22:19:57 | VVSiz | rue: in JRuby we have to require "ffi" to load the full FFI. |
| 22:20:27 | VVSiz | also, there is FFI gem, with some fixes that, for example, could be applied to older JRubies. |
| 22:20:28 | rue | OK |
| 22:22:15 | rue | I will add a dummy file |
| 22:41:39 | dgtized | wow, that Immix and Marshal tweak really sped up running throught the specs |
| 22:41:47 | dgtized | s/throught/through/ |
| 22:45:13 | boyscout | Added dummy lib/ffi.rb with note for compatibility. - e5e9a96 - Eero Saynatkari |
| 22:48:03 | boyscout | CI: e5e9a96 success. 3005 files, 11480 examples, 35623 expectations, 0 failures, 0 errors |
| 23:09:26 | rue | dgtized: How much of a difference are you seeing? |
| 23:26:33 | evan | ok, someone with some decent math skills needs to give Float#to_marshal some help. |
| 23:32:15 | boyscout | Speed up Marshal a little more - 3a4708f - Evan Phoenix |
| 23:32:15 | boyscout | Add spec for Marshaling a real Float - e4a2210 - Evan Phoenix |
| 23:32:15 | boyscout | Tag failing Float marshal spec - 8202333 - Evan Phoenix |
| 23:32:15 | boyscout | Add string_build instruction, fix string interp. - 7128425 - Evan Phoenix |
| 23:35:52 | boyscout | CI: 7128425 success. bin/rbx(__gxx_personality_v0+0x209) [0x8096bf1] |
| 23:35:53 | dgtized | rue: I was seeing spec runs in the 84 second range, and they dropped to somewhere closer to 70s with a few lower then that |
| 23:37:13 | evan | wowzers. |
| 23:37:16 | evan | thats a funny error. |
| 23:37:25 | evan | probably need to cleanup |
| 23:37:27 | evan | oh yeah |
| 23:37:36 | evan | because we're not autocleaning on compiler changes |
| 23:37:37 | evan | crap |
| 23:37:45 | evan | everyone is going to have to do kernel:clean |
| 23:37:45 | evan | :/ |
| 23:45:27 | boyscout | CI: 7128425 success. 3005 files, 11481 examples, 35624 expectations, 0 failures, 0 errors |
| 23:49:41 | evan | thats better. |