Index

Show enters and exits. Hide enters and exits.

00:59:01evanwhat
00:59:02evanthe
00:59:03evanfuck.
00:59:18evansomone please run http://gist.github.com/277671
00:59:20evanunder MRI
00:59:31evanand tell me the time
01:01:22brixensec..
01:03:21brixenabout 17s under os x 1.8.6
01:03:29evanok, change the 3 to s
01:03:34evanand run it again
01:03:45brixenk
01:04:06brixen~4s
01:04:20evando you realize how fucking bizarre that is?
01:04:26brixenyes
01:04:36jvoorhisi played along too
01:04:39evanif you RETAIN all those Floats
01:04:41brixenany idea why?
01:04:43evanit's 4x faster.
01:04:45jvoorhisthat's incredibly weird
01:04:47evanno fucking clue.
01:04:52brixenso weird
01:05:02evanwell
01:05:13jvoorhis1.8.7 and 1.9.1 behave the same way
01:05:16evanit could be because MRI's object cleanup is slower than it's allocation
01:05:27evanthis ends up being a GC benchmark
01:05:30brixenoh, so the gc is running
01:05:33brixengotcha
01:05:37evanit's gotta be
01:06:00brixenthat actually makes sense
01:06:01evanrbx shows the behavior i'd expect more
01:06:07evanit's slower when they're retained
01:06:11evana little too slow
01:06:13evanhonestly
01:06:39brixenwow
01:07:00jvoorhisevan: MRI behaves the same way in both cases if i call GC.disable first
01:07:04brixen7.4 retaining, 2.1 not
01:07:07brixenin rbx
01:07:12evanyeah
01:07:23evanit's not just the retaining
01:07:28evanit's running write barriers, etc.
01:07:35evanbut still
01:07:44evanjvoorhis: where did you put the GC.disable?
01:08:07jvoorhisevan: after require 'benchmark'
01:08:14evank
01:08:16evanyep
01:08:27evanthis is because MRI's object cleanup is so much slower
01:08:30evani guess
01:08:38evanso retaining them is faster than cleaning them up
01:08:47jvoorhis1.9.1 flies without GC
01:09:00jvoorhis1.76sec
01:09:44evansuch a wierd behavior.
01:10:05jvoorhisnot if you expect a slow GC :)
01:10:21evanwell, i expect it to be constantly slow
01:10:34evanthis is showing that one particular phase is a lot slower than another
01:11:54jvoorhisi'm just glad allocation isn't as slow as collection :)
02:56:49rueHuh, 1.9.1 has issues with Time Ranges
10:04:35khaasehttp://github.com/evanphx/rubinius/commit/49d87b85918171a201c306923e5353f57ada9e2f#comments
10:06:32dbussinkkhaase: it's a special compiler construct
10:07:28dbussinkkhaase: a special value that be used in the kernel
10:07:37khaasedbussink: so, is it only available when compiling kernel?
10:07:38khaaseok
10:07:42dbussinkkhaase: yeah
10:07:57dbussinkkhaase: should also not be necessary anywhere else
10:08:39khaasedbussink: was just curious. thx.
10:09:42dbussinkkhaase: it's only used for arguments, you often need to distinguish there between for example a nil value and not getting passed in parameter at all
10:09:53dbussinkkhaase: so a default argument is not enough
10:13:41khaasedbussink: that's kinda what i guessed. it is handled by the compiler? what happens if it is returned?
10:14:08khaase"special compiler construct" of course it is
10:14:11dbussinkkhaase: returned from a method you mean?
10:14:17khaasedbussink: yeah
10:14:43dbussinkkhaase: dunno what happens then, but you probably shouldn't do it ;)
10:15:01khaasemkay
10:17:03dbussinkkhaase: it compiles into a special vm code, you could look at lib/compiler/ast/transforms.rb
10:18:42khaasedbussink: thx, i'll take a look
17:01:33rue~68s for a -B full run, not shabby
17:16:11brixensweet
17:17:31rue45ish for plain ci
17:22:23rueAlthough, ci runs almost 600ex/sec, full "only" 550ex/sec, so cannot draw too many conclusions there..
17:23:28brixenlibrary spec have more that cause pauses
17:23:42brixensome literally for sleep and stuff like making socket connections
17:38:15rueYep
17:38:33rueThough there are some in the basics, too. The Process specs take noticeably longer on rbx
17:38:47DefilerThat's a lot better than 10 minutes
17:39:33rueAlso, oddly all of a sudden I started getting errors from spec/default.mspec trying to require "spec/custom/or/something"...seems the lib path changed
17:43:28brixenrue: gist?
17:44:34rueRebuilding...it started when I tried on 1.9.2, see if I can reproduce it
17:53:10rueNope, cannot reproduce it. Oddity
18:05:26scooprrue, there was some arm-talk lately, yes, I do have an arm box, linkstation live.. lately I haven't been able to test rbx on it, as I can't compile llvm *on* the device (128megs of ram is totally not enough for that x86idagsel.cpp or whatever it was called)
18:06:07scoopralso, in work I have couple of n900 that I could try testing, for that I have a cross-compiler env, even if it's a bit odd environment
18:23:37rueHow is it that apparently everyone has an n900? :P
18:26:17BrianRice-workor an iphone... because they get excited and noisy about it. (I have one of the first N770's, of course)
18:26:21scooprhey, it's for work stuff :P (and besides probably actually nokia's)
18:49:21ZoxcHow fast is the rubinius interpreter vs. 1.9?
18:49:58brixenZoxc: benchmark/tiers
18:50:06brixengive it a whirl and let us know what you find
18:50:47brixenalso wayneeseguin has some recent #s running those
19:06:54wayneeseguinZoxc: http://rvm.beginrescueend.com/benchmarks/2010-01-06/
19:07:06wayneeseguinMost recent ones, next set hopefully out this weekend including MagLev
19:07:54brixenthanks wayneeseguin
19:08:00wayneeseguinAbsolutely
19:08:06wayneeseguinLike I said I'll have another set out asap
19:08:10wayneeseguinI've been working on adding MagLev first
19:14:52evanhi wayneeseguin!
19:16:30wayneeseguinevan: hihi!!!!
19:16:43wayneeseguinOne more 'breakage' and rvm 0.1.0 is out!
19:16:44wayneeseguinw00t
19:16:46wayneeseguinMagLev is done
19:16:54evanwoop!
19:17:10wayneeseguinSo now I'm going to move the rubies install path from ~/.rvm/ to ~/.rvm/rubies/ so that users can change it to anywhere they want
19:18:07brixencool
19:19:21evanwayneeseguin: i'd like to discuss GEM_HOME before you release 1.0.0
19:19:22evanif possible
19:32:49wayneeseguinevan: absolutely
19:32:58wayneeseguinevan: whenever you want
19:33:10evanbasically, if someone has rvm installed
19:33:16evanand they try and use rbx not via rvm
19:33:18evanthey're screwed.
19:33:24wayneeseguinok?
19:33:45wayneeseguinwouldn't they use it by switching back to sysetm ?
19:33:53evanbecause rvm sets GEM_HOME to (likely) MRI's gem home
19:33:55wayneeseguinrvm system ; # now commands are without rvm loaded
19:33:59evanah!
19:34:02evanok, thats what I wanted to know
19:34:06wayneeseguinyeah
19:34:08evandoes that remove all the env vars in the current shell?
19:34:10wayneeseguin'rvm system' unsets GEM_HOME / etc
19:34:14wayneeseguinpath back to normal
19:34:14wayneeseguinetc
19:34:25evanback to normal being not set?
19:34:26wayneeseguinall the rvm planted ones yes
19:34:29evanthey're not normally set.
19:34:33wayneeseguinyes
19:34:42wayneeseguinthe first time rvm loads it takes a 'system' snapshot
19:34:51wayneeseguinrecords the settings for GEM_HOME, GEM_PATH, etc...
19:34:59wayneeseguinwhen you switch to system it loads those values
19:35:11evanok, thats exactly what I needed to know
19:35:20wayneeseguinAnd to have rvm re-load the system settings you do 'rvm system ; rvm reset' then open a new shel and do a rvm action
19:35:26evanpeople have been using the OS X installer for rubinius
19:35:32evanso thats why they didn't have rbx via rvm
19:35:39wayneeseguinok?
19:35:49wayneeseguinYeah rvm is used to 'select' your environment
19:35:51evanjust giving you the context
19:35:55wayneeseguinThat's about all
19:35:56evanfor my query
19:36:01wayneeseguingotcha
19:36:05wayneeseguinThat makes sense.
19:36:14evanso in that case, they need to do "rvm system" before they can use "rbx"
19:36:18wayneeseguinyes
19:36:22wayneeseguinand that's only per-shell
19:36:28wayneeseguin(unless they have a default ruby specified)
19:36:54evansounds good
19:36:55evanthanks!
19:36:59evanyou're free to release 1.0
19:36:59evan:D
19:37:23wayneeseguinlol
19:37:28wayneeseguin0.1.0 and Thanks :)
19:38:50evanooh
19:38:51evan0.1
19:38:52evanhah
19:38:57evani thought you had said 1.0 before
19:39:00evan:)
19:39:29brixenwayneeseguin is conservative with his versions
19:39:35brixenrvm is rockin'
19:39:40wayneeseguin::grin::
19:40:17wayneeseguinI just want to make sure that I'm done changing the internals before releasing 0.1.0 so it's quite literally a 'limiting' process ::grin::
19:40:24wayneeseguin(ran out of double digits ;))
19:40:36wayneeseguinrvm 0.0.9999999
19:48:23evanhm, i wonder if it's worth while to add allocation-less Float's
19:55:35brixenpools or immediates?
19:56:57evanimmediates
19:57:39brixensure, could
19:58:26evani probably wont
19:58:33evanit would solve this one, silly, benchmark
19:58:40evanbut not the real reason for the benchmark being slower
19:58:58evanie, if you use Object.new rather than Math::PI * i
19:59:04evanthen i'm back at square one
19:59:06evanso nevermind.
19:59:12brixenyeah, makes sense
19:59:36brixenrunning to appt, back after lunch!
19:59:59evank
20:23:07seydargreetings, y'all
20:25:43evanhi hi
20:26:58seydargood news: i'm getting an intel machine in 6-9 months
20:27:13seydarwhich means i can use rubinius!
20:28:06evansweet!
21:38:11rueThat boy is fast in his moves
21:46:26PierreYHi guys. You know what ? You just rock ! 3024 files, 11748 examples, 35951 expectations, 0 failures, 0 errors. Happy new year :-)
21:46:40evan:)
21:46:45evanwell thanks!
21:49:19rueYou too!
21:49:23rueJust sobered up? :)
21:50:58PierreYyes, that was hard this year
21:53:45PierreYnote that here, in france, we use to wish an happy new year all january month long
21:58:25PierreYbm_so_concatenate.rb has eaten all my ressources, seems that something killed it with a SIGSERV
22:28:54PierreYhow long should benchmarks normally run ?
22:34:49brixendepends on the benchmark
22:34:55brixenwhat are you running?
22:42:30PierreYrake bench
22:56:36Zoxcwayneeseguin: those numbers uses the JIT right?
23:06:25evanbrixen: ooh http://groups.google.com/group/bahaskell/browse_thread/thread/faef5110e126921f
23:07:47evanhaskell group meeting at the office on monday
23:14:48brixensweet
23:15:33brixenthose presentations look interesting
23:17:11brixensplitty split ditty
23:24:52evanmaybe i should figure out what monad is
23:24:52evanif i'm going to sit in
23:24:57alexsuracievan: have fun with that. :P i started digging in to all kinds of people's monad metaphors, but I ended up just looking at their definitions and how they *actually work*.
23:29:10brixenthis is pretty good http://book.realworldhaskell.org/read/monads.html
23:29:53alexsuraciwhich i found much more productive
23:29:58alexsuracimost peoples' monad "guides" seem to me like they're just written down for the author
23:31:22evanprobably.
23:31:22alexsuracibut once you treat them as what they are - just a set of functions like any other ones, using language facilities just like any others would - it's a bit easier to grasp, at least at an objective level
23:36:37evanbrixen: i think i need to know more haskell to get it
23:36:53brixenthat book is pretty good
23:37:23alexsuracithere's also http://learnyouahaskell.com/ which is great
23:37:28brixenhah
23:37:36brixenthat is... fun
23:37:44brixenI found real world haskell more useful
23:38:33brixenanyone know why we have both #load and #require?
23:38:35alexsuraciLYAH doesn't have a chapter on monads yet unfortunately
23:38:40brixenMRI really failed at the whole objectifying code loading
23:39:59alexsuracii don't think you'd really need to know what monads are to sit in on a haskell presentation anyway. the only reason it's so talked about is because it confuses so many people, and the only reason it confuses so many people is because so many people hear other people are confused by it :P
23:40:09brixenevan: the pres sounds interesting more for the experiences with a non-trivial haskell app
23:40:56evanyeah