Index

Show enters and exits. Hide enters and exits.

00:00:06brixenthe spec is a good start
00:00:23langenbergare there actually test for MRI?
00:00:39wifelette leaves the room.
00:00:40brixenlangenberg: there are some
00:00:46brixenin our repo: test/mri
00:00:56langenbergBecause now I'm writing specs using the comments above the methods.
00:01:17brixenyeah, that's a good start
00:01:35wycats enters the room.
00:01:38brixenthen do: bin/mspec -tr spec/ruby/1.8/library/base64/... to run them under mri
00:02:13langenbergIs it okay to copy to original documentation (MRI) and use it again for the Rubinius implementation?
00:02:19brixenlangenberg: yeah
00:02:25brixenactually, what I'd suggest...
00:02:33brixenjust write the specs and when they run under mri
00:02:48brixenyou can make base64.rb run under rubinius
00:02:53brixenthen just copy it from stdlib to lib
00:03:01brixensince it's already ruby
00:03:28langenbergAlright, will do that.
00:03:32brixencool
00:03:35brixenthanks!
00:04:05langenbergnp
00:08:08defunkt enters the room.
00:12:41wycats leaves the room.
00:12:45cjheath leaves the room.
00:17:06ruelangenberg: Make sure not to rely on MRI RDoc
00:17:16rueWe find 1-2 incorrect docs every week
00:20:05brixenright, but reading the docs to initially write the spec can work ok
00:20:14brixenjust be sure to run them under MRI to validate
00:20:47mosfet51 enters the room.
00:22:01langenbergI'll
00:22:37mosfet51I am new to ruby and I would like to know what is the status of rubinius ?
00:22:42mosfet51or maybe first
00:22:55mosfet51what is the VM actually used in ruby 1.9.0 ?
00:23:12mosfet51I saw some referrrnces t oYARV ?
00:23:35langenberg leaves the room.
00:23:37drbrainYARV was merged into MRI 1.9, and is now MRI 1.9
00:23:37brixenmosfet51: yes, yarv is now basically ruby 1.0
00:23:39brixen1.9
00:23:49drbrainYARV had no name because, if accepted it didn't need one
00:23:55drbrainand if not, it didn't need one
00:24:56langenberg enters the room.
00:25:16langenbergguys I'm off to bed, nighty night. (I'll post a ticket when my Base64 spec/implementation is done)
00:25:59brixenlangenberg: cool, thanks again
00:26:05langenbergbye
00:26:09skaar leaves the room.
00:26:13langenberg leaves the room.
00:26:54hornbeck leaves the room.
00:27:15mosfet51 leaves the room.
00:32:38lopex enters the room.
00:35:22nitay_ enters the room.
00:36:15octopod leaves the room.
00:41:31jennyw_ enters the room.
00:41:48jennyw_ leaves the room.
00:41:57KirinDav leaves the room.
00:41:57KirinDav_ leaves the room.
00:42:06lopex leaves the room.
00:43:41KirinDave leaves the room.
00:50:12imajes leaves the room.
00:50:25imajes enters the room.
00:52:36nitay leaves the room.
00:52:36imajes leaves the room.
00:52:56imajes enters the room.
00:55:58twbray leaves the room.
00:58:53jennyw leaves the room.
01:19:49aotearoa enters the room.
01:19:51aotearoa_ leaves the room.
01:22:23aotearoa leaves the room.
01:25:41djwhitt enters the room.
01:26:02nitay enters the room.
01:28:09aotearoa enters the room.
01:29:01kwatch[Q] I want to use erb.rb in Rubinius, but it is categorized in 'stdlib/' and not in 'lib/'. Why? What is problem using erb.rb in Rubinius?
01:29:49djwhittkwatch: might just be that no one has tried it yet
01:30:12kwatchI see
01:31:21kwatchWhat do I do to move erb.rb from 'stdlib/' to 'lib/'?
01:33:22djwhittwell, I ran a simple test and it seems to work
01:33:36djwhittI would suggest not moving it
01:34:04djwhittinstead just run rubinius like this ./shotgun/rubinius -Istdlib erbtest.rb
01:34:35djwhittwhere erbtest.rb is a script that uses erb
01:34:41technomancy leaves the room.
01:35:51brixenkwatch: we just need some specs for it, and then we can move it over to lib
01:36:08ragge leaves the room.
01:36:13brixenkwatch: but stdlib should be in $: in rbx, so: require 'erb' should work
01:37:54kwatchthank you. I'll write spec file of erb.rb.
01:38:22brixenkwatch: super, thanks
01:39:27aotearoa_ enters the room.
01:39:27brixenkwatch: here's a command that will create some template files: bin/mkspec -tr -b spec/ruby/1.8/library/ -rerb -c ERB
01:39:42brixenkwatch: you can also do -c ERB::Compiler
01:39:45brixenfor example
01:40:53kwatchthank you brixen, but bin/mkspec reports that 'invalid option: -tr'.
01:41:54brixenoh, hmm, le'me check right quick
01:42:19brixenkwatch: yeah, nm, -tr is for the other scripts, so they run under ruby instead of rbx
01:42:24brixenso, just drop the -tr
01:43:04kwatchthank you, brixen. Dropping '-tr' seems to be well.
01:43:09brixencool
01:45:26nitay_ leaves the room.
01:46:11enebo leaves the room.
01:47:57aotearoa__ enters the room.
01:53:05cjheath enters the room.
01:56:56wifelette enters the room.
01:57:44brixenrue: 0f/0e!
01:58:06brixenrue: if you want to turn a 2.5 hr project into 1.5 days, just don't notice there's no ivars slot :P
01:59:04wifelette leaves the room.
01:59:10wifelette enters the room.
02:01:02nitay_ enters the room.
02:01:15wifelette leaves the room.
02:01:40wifelette enters the room.
02:03:06nitay leaves the room.
02:04:18ruebrixen: Cool
02:05:04d2dchat enters the room.
02:06:14brixenrue: other stupid thing of course, small commits. I was trying to remove this thing in one go
02:06:17brixenpainful
02:06:27brixenstupid == not using small commits
02:06:54aotearoa leaves the room.
02:11:10wycats enters the room.
02:15:13ctennis leaves the room.
02:16:42aotearoa_ leaves the room.
02:22:02nitay enters the room.
02:23:38ctennis enters the room.
02:23:53_VVSiz_ enters the room.
02:25:36kwatch[Q] is there any tool to test a certain spec? 'rake spec:ci' is too large to test only spec of erb.rb.
02:25:51ruebin/ci path/to/spec.rb
02:26:03rueOr bin/mspec if you want to run excluded by default too
02:28:16kwatchthank you, rue. 'bin/cgi path/to/dir' tests all spec files under path/to/dir. cool.
02:30:27brixenrue: one thing about the imac, the fans never spin up like they do on this mbp
02:30:47brixenrue: I had to have the fans replaced already, only about 10 mon old
02:30:55obvio171 enters the room.
02:32:58rubyconsumer enters the room.
02:33:15imajes leaves the room.
02:34:35_ezmobiu enters the room.
02:40:21nitay_ leaves the room.
02:40:55tongueroo leaves the room.
02:41:56VVSiz_ leaves the room.
02:47:23obvio leaves the room.
02:48:54_mutle enters the room.
02:56:53cored enters the room.
03:01:25dysinger_ enters the room.
03:01:48dysinger leaves the room.
03:04:39mutle leaves the room.
03:05:20cored leaves the room.
03:09:07wycats_ enters the room.
03:09:34wycats leaves the room.
03:15:22_ADS enters the room.
03:18:35cjheath_ enters the room.
03:26:32nitay_ enters the room.
03:26:37defunkt leaves the room.
03:33:18nitay leaves the room.
03:37:08cjheath leaves the room.
03:39:05brynary enters the room.
03:44:41smtlaissezfaire enters the room.
03:46:44defunkt enters the room.
03:47:52smtlaissezfaire leaves the room.
03:49:04brynary leaves the room.
03:52:33MenTaLguY enters the room.
03:54:16agile enters the room.
03:57:51mae leaves the room.
03:58:15mae enters the room.
04:03:31wifelette_ enters the room.
04:03:52wifelette leaves the room.
04:09:00aotearoa__ leaves the room.
04:13:41smtlaissezfaire enters the room.
04:18:40boyscout6 commits by Brian Ford
04:18:41boyscout * Finally, completely remove old primitive. New stables.; 20917d9
04:18:42boyscout * Renamed File::BasicStat to File::Stat. New stables.; c656db9
04:18:43boyscout * Replaced code in old stat_file primitive. New stables.; a4c1117
04:18:44boyscout * Replaced File::Stat with File::BasicStat (transition step).; e6ebe97
04:18:45boyscout * Added StructStat. Added a field to File::Stat. New stables.; e0ad112
04:18:46boyscout ...
04:20:28headiushey, brixen, can you repost that stat benchmark you had up earlier
04:20:45brixenhttp://pastie.org/148842
04:20:46brixen:)
04:21:13brixenso, there's a perf regression with Stat.file?
04:21:29brixenbut that's in the space of stuff that needs to be optimized anyway
04:21:39brixenparticularly, math ops
04:21:46headiuswhat's ./stat
04:21:58brixenthe script at top
04:22:14brixennow our Stat.new is basically as fast as MRI
04:22:19headiusoh, got it
04:22:22brixenand with 1.7-1.8 of C
04:22:48brixenk hopefully that doesn't blow up rubyconsumer
04:22:52brixener rubuildius
04:22:58brixenback in a bit..
04:23:02nitay_ leaves the room.
04:23:20ezmobius leaves the room.
04:23:23rubyconsumerMe either, brixen
04:23:35headiushmmm
04:24:00nitay enters the room.
04:24:43headiuswhich numbers should be high
04:26:12headiusoh, this is using rubinius-specific dirs
04:26:17headiusno wonder the numbers made no sense
04:26:47defunkt leaves the room.
04:27:05headiusI guess the C times don't have anything to do with the rest then, do they?
04:27:11headiusthey don't seem to run against the same set of files
04:27:21brixenheadius: it's just using the *.rb under specs
04:27:28brixenthere are 1645 of them in the repo
04:27:58brixenmake that *_spec.rb
04:28:07headiusok
04:28:11brixen1652 I guess
04:28:14rubuildiusBrian Ford: 20917d9f1; build failed! http://rafb.net/p/T3fgTu96.html
04:28:14headiusI was running in jruby dir
04:28:16headiusthere's no spec/
04:28:20brixendammit
04:28:38brixenwell, that built fine on ey 64bit slice
04:29:00brixenoh lovely, damn stables
04:29:10brixenhmm, I'll try on my parallels ubuntu
04:29:49headiusdo you guys have stat implemented via ffi, or as a straight-up primitive?
04:31:05headiuswhy do math opts particularly need to be optimized
04:31:15headiusI don't understand that statement
04:32:04brixenthe stat is a primitive, but it's only slightly slower with FFI
04:32:18brixenthe biggest thing is I couldn't find the functions to get dev_major and dev_minor
04:32:24brixenso I left it as a primitive for now
04:32:35headiusyeah, our stat is considerably slower
04:32:42brixenthe math ops need to be optimized because right now it uses a fairly naive method for coercing
04:32:48headiuswe've never even looked at stat performance, are you seeing something specific that's a problem?
04:33:00headiushmm, naive how?
04:33:03brixene.g. if you call 1.0 + 1, that goes to float, then up to Numeric, then back down to Float
04:33:06smtlaissezfaire leaves the room.
04:33:11headiuswe haven't done any specific math optimizations I know of
04:33:24brixenwell, our Dir.glob uses stat a ton
04:33:37brixenand we were at 30sec when mri was at 11-12
04:34:04headiusoh, I see
04:34:06brixenheadius: this is what I'm chasing: http://pastie.org/148889
04:34:08headiusyeah, we don't use stat at all there
04:34:26headiusall, just trying to get dir glob faster
04:34:31smtlaissezfaire enters the room.
04:34:53nicksiegeroh my
04:34:55brixenwe also stat quite a bit compiling, which hopefully we can optimize
04:35:08brixenwe stat compiler.rba like 12 times every file we compile
04:35:53nicksiegerthat seems excessive
04:37:23richc enters the room.
04:37:44headiusyeah, out glob is pretty slow too
04:38:08headiusit's a short benchmark, but it's a lot slower than MRI
04:40:12boyscout1 commit by Brian Ford
04:40:13boyscout * New stables built on linux.; 77cba65
04:41:00pergesu enters the room.
04:41:46headiusyeah, looks like our glob is about 3x MRI
04:41:58brixenheh, 3x is not bad
04:42:06brixenor wouldn't be for us
04:42:14headiusanything file or process related is always slow for us
04:42:17headiuslots of extra layers
04:42:37brixenyeah, I was curious about that
04:42:43brixenis that for the jvm in general?
04:42:59headiusyes, because the APIs presented have to be platform-agnostic
04:43:08headiusso there's a lot of gymnastics happening under the covers
04:43:28headiusand for places where we skip all that and go straight to the C layer, there's other hindrances to map native code and structures into Java objects
04:43:57headiusit's not a huge price to pay to have JRuby work anywhere the JVM works, but it does slow some things down more than we'd like
04:44:13brixentrue
04:44:37brixenseems like the jvm, being a particular piec of software on all the platforms, would be able to be faster
04:44:56brixendoes it emulate missing stuff or something?
04:45:16richc leaves the room.
04:45:51richc enters the room.
04:47:20skaar enters the room.
04:47:52wyhaines leaves the room.
04:48:49headiusin some cases, yes
04:49:02headiusbut more than that it tries to provide a view of such features that's platform-agnostic
04:49:23headiusso there's a higher level of abstraction, which means more logic to get to that point
04:49:53nitay_ enters the room.
04:50:15cjheath_ leaves the room.
04:50:59cjheath enters the room.
04:52:11nitay leaves the room.
04:56:10noclue123 enters the room.
04:56:39rubuildiusBrian Ford: 77cba6534; 4717 examples, 17231 expectations, 5 failures, 0 errors; http://rafb.net/p/JliLix77.html
05:02:38rueEbening
05:03:50brixenevening
05:04:17brixenheadius: well, I think some blame is on the api designers, posix isn't perfect but achieves something of the same thing without the perf penalties
05:04:38headiusJava predates POSIX being prevalent on all systems
05:04:48headiuswindows and mac, for example
05:05:13headiusthat there's *still* no clean POSIX abstraction is an obvious failure of "the old Sun" which I'm actively trying to remedy
05:05:46headiuswe will very soon start pushing our POSIX layer as god's gift to Java platform developers
05:05:53brixennice
05:05:56smtlaissezfaire leaves the room.
05:05:57headiusperformance warts and all
05:06:04headius(but performance warts mean someone will want to make it faster)
05:07:18headiushey, should I run any rubinius benchmarks tomorrow during my jruby talk? I was planning to only pummel ruby 1.9, but if you guys want...
05:07:32brixenhmm, I get no errors on gentoo but these errors on ubuntu
05:07:43headiusall press is good press, so they say
05:07:51brixenheadius: hmm, I haven't looked at them recently
05:07:58rueSure, go ahead
05:07:58brixenI think we should at least be able to run them now
05:08:16brixenheadius: when is your talk?
05:08:23headius10AM
05:08:41brixenoh, probably not enough time to check in a bunch of perf enhancements then :P
05:08:53brixenactually, evan's sendsite should be awesome
05:09:11brixenwe should see e.g. the stat calling the primitive approach C speed
05:10:11headiuswhat does sendsite do
05:11:13smtlaissezfaire enters the room.
05:11:27headiusheh, yeah, unless you're going to improve matrixbenchmark by an order of magnitude, don't bother
05:13:17headiusstill curious about sendsite though
05:13:26headiusI know evan was looking at our CallSite some time back, is it related?
05:13:29brixenI haven't seen the code yet, but a sendsite is an object that will be used to implement cache
05:13:45be9 enters the room.
05:13:47headiusok, so it's our CallSite
05:13:50brixenevan said he's got a simple monomorphic cache, a primitive cache and an ffi cache
05:13:54brixenyeah
05:13:55headiushah
05:14:08brixenwell, I should say, sounds like yes
05:14:09headiussounds familiar
05:14:24brixenhe said similar to dlr and something else
05:14:38headiusI haven't implemented the primitive and ffi/java integration caching yet, because they're not as heavily hit
05:14:47headiussame logic though
05:14:51rueheadius: A lot of the core arch is moving to a sort of functor pattern
05:14:51brixencool
05:15:17brixendammit, looks like struct generator is not working on linux for struct stat
05:15:18headiusthere is one flaw in our call site at present that may or may not affect you
05:15:26headiusshould I keep it a secret?!
05:15:51rueTune in tomorrow! Same IRC time, same IRC channel!
05:15:56headiuseesh, matrixbenchmark for 64 clocks in at 249s on rubinius
05:16:02headiusran it just for kicks
05:16:15headiusthat's probably array cost mostly
05:17:48headiusI can't imagine the math ops are that big an issue
05:18:49nitay enters the room.
05:19:23brixenheadius: what should the numbers look like
05:19:36headiusYARV runs it in 21s or so
05:19:46brixenI think there's a ticket about matrix benches causing a sigbus or something
05:19:48headiusMRI is 31s I think
05:19:54brixenah, ok
05:19:55headiusahh, seems to be working ok for me
05:20:07brixenwhat's the command line you're using?
05:20:32headiusshotgun/rubinius -I <matrix bench dir> <matrix bench dir>/MatrixBenchmark.rb
05:20:38brixenboth array and string have some very de-optimized methods
05:20:38headiusnothing fancy
05:20:43brixenI'll try it
05:20:47headiusyeah, that's what I figured
05:21:14headiusI'll be using it tomorrow as my non-micro benchmark example
05:21:26headiussomething that's doing real work across many methods and nontrivial data structures
05:21:33brixenso, darwin defines the st_mode field of struct stat to be a ushort
05:21:36brixensuck
05:21:40headiusmicro example will be a simple method dispatch bench, and pseudo-micro will be fib
05:21:56nitay_ leaves the room.
05:21:58headiusunlike rubinius I have to constantly battle the idea that anything JVM or Java related must be slow
05:22:14brixenheh, yeah, C doesn't have a rep for being slow
05:22:16brixenbut ruby does
05:22:20brixenand we've got a ton of ruby
05:24:22headiusright
05:24:31headiusbut people still assume rubinius must be faster already
05:24:44headiusor perhaps, they don't assume it's slower
05:24:49headiuswhere they do assume JRuby's slow
05:24:57headiusthat blasted J means slow to so many people
05:26:53MenTaLguYthe startup experience doesn't help
05:27:46brixenwell, we are faster than mri on some stuff: http://pastie.org/pastes/147861
05:27:51brixenlook at Fixnum#<=>
05:27:53headiusMenTaLguY: truly
05:27:58headiusI wish I could do something about that
05:28:02brixenyeah, the startup is killer
05:28:18brixeneverytime I run it, I feel like I'm stuttering
05:28:19headiuswith nailgun it improves a lot, but it's a bandaid
05:28:21MenTaLguYwell, it sounds like we'll need to address the classloader thing on the MLVM side
05:28:46MenTaLguYbut startup is important psychologically because it colors subsequent experience
05:28:50headiusMenTaLguY: by most of my measurements, the cost of starting up is almost entirely classloading and verification, both JRuby and Java classes
05:29:16headiusJava ME has a concept of "preverified" code that it doesn't try to verify again
05:29:21headiusit signs it or sums it or something
05:29:28headiusthere's no such concept for SE
05:29:37MenTaLguYthat's a shame
05:29:56MenTaLguYI think it's sorely needed
05:29:56headiusthis also plays into my understanding of the CLR
05:30:03MenTaLguY?
05:30:09headiusit signs assemblies so that once installed (and jitted) it can know they won't change
05:30:13headiusbecause of the CLR's very static nature
05:30:20MenTaLguYnods
05:30:37MenTaLguYwe definitely need to get some of that action
05:30:45headiusagain, nothing ever pre-jits on JVM, so this hasn't been considered
05:31:06headiusalthough JVM guys have told me they've frequently kicked around ideas and prototypes for dumping jitted code to disk in a cache
05:31:40headiuswhat pisses me off is that all the cool improvement ideas everyone else in the world has wished for they've already prototyped once and had thrown out by the idiots of "old Sun"
05:31:55headiusthankfully those idiots are gone
05:32:28MenTaLguYI'm not sure pre-jit is really that useful
05:32:36MenTaLguYbut being able to skip verification certainly is
05:32:46MenTaLguYor being able to pre-verify rather
05:36:36richc leaves the room.
05:37:29headiuspre-jit or pre-verify is certainly useful for startup
05:37:35nitay_ enters the room.
05:37:58headiusas anyone running ironpython will realize (ironpython takes forever to start up because it compiles everything and then CLR has to immediately jit everything)
05:38:10brixenheadius: hah, yeah, we need to work on the way math ops coerce:
05:38:10brixen % time slices name
05:38:11brixen 36.19 6318 Numeric#do_coerce
05:38:14rueheadius: Just call it HRuby, no-one will be the wiser
05:38:25headiusdon't think I haven't considered it
05:38:28brixenheadius: that's the most expensive thing in the matrix benches
05:38:36headiusbrixen: figures
05:38:56brixennext worse:
05:38:57brixen 18.31 3197 Bignum#%
05:39:09headiusmmmm tasty
05:39:15headiusI don't know why your bignum stuff is slow
05:39:36headiusan iterative fib benchmark on JRuby smokes every C-based impl of Ruby, including Rubinius
05:39:51headiusand Java's bignum (BigInteger) is implemented in Java
05:39:55rueThe coercion infra really needs help
05:40:12headiusit just doesn't seem like there should be that big a gap
05:40:29rueheadius: Most of it is method dispatch
05:40:37rue*wild guess*
05:40:43brixenrue: indeed
05:41:29headiusperhaps so
05:41:42headiusbut method dispatch isn't so bad in rubinius
05:42:05headiuson my test .68s versus almost 1s for YARV
05:42:20headiusby far the fastest of the C-based impls
05:42:42brixenyeah, dispatch can be
05:42:43brixenhttp://pastie.org/148413
05:42:51brixenlook at the ffi s + s
05:42:58brixenvs the F.add s, s
05:43:01headiusoh wait, maybe I was looking at the wrong one
05:43:18headiusok, rubinius fib is 0.68s versus YARV 0.41
05:43:36headiusrubinius method dispatch benchmark is 1.5-1.7 versus YARV 1x
05:43:37brixenwhat's 1.8?
05:43:38headiuser
05:43:39headius1s
05:43:52defunkt enters the room.
05:43:52headius1.8 is about 1.55-1.7 on fib, something like 2.3-2.5 on method dispatch
05:44:11brixeninteresting
05:44:12headiusmy system is a little twitchy, but those are rough numbers
05:44:22headiusso both are definitely faster than 1.8
05:44:26brixendang, I threw away my C code to verify the offsetof macro
05:44:29rueheadius: No, a single one is not so bad, but if you do 3-4 unnecessary ones per invocation it adds up
05:44:39headiusrbx's problem is that it will always have to do many more calls
05:44:40_ADS_ enters the room.
05:44:53headiusrue: how about 3-4 necessary ones? :)
05:45:08rueThen those are necessary elsewhere too
05:45:21headiuswell, that's not the point
05:45:27rueheadius: Trace one of our numeric coercions sometime
05:45:31headiusif you have to do 3-4 dynamic calls where other impls do 1
05:45:40headiusyou need to be 3-4x faster to even reach parity
05:46:04brixenwell, no
05:46:11brixenwe need to be able to collapse those 3-4 to 1
05:46:14brixenalternatively
05:46:25headiussure, by jitting or making them primitives
05:46:34brixennot primitives necessarily
05:46:42brixenwe've got almost 0 opts
05:46:51brixenand a lot of poorly coded stuff in core libs
05:46:59brixenlike assignments in loops
05:47:01brixenearly branches
05:47:03brixenetc
05:47:03headiussure
05:47:09headiusbut method dispatch, for example, must be faster
05:47:12brixenit's really easy to rewrite some of this ruby code
05:47:22headiusslower than YARV won't cut it when you have so much more ruby code
05:47:30brixenoh sure
05:48:07headiusbut I know perf hasn't been any sort of focus, so it's not a big deal
05:48:19headiusso I'm not running jruby versus rbx tomorrow
05:48:27headiusit would be pointless
05:48:32headiusI'm taking on the big dog
05:48:42brixenironruby
05:48:46headiushahah
05:48:48brixenheh
05:48:52headiusno, YARV
05:49:35_ADS leaves the room.
05:54:44nitay leaves the room.
06:00:50dewd leaves the room.
06:05:33brixenwhy oh why is this stat stuff not working on linux
06:05:49brixenrue: what platform do you have handy?
06:09:21rueFreeBSD
06:09:45benburkert enters the room.
06:09:58smtlaissezfaire leaves the room.
06:10:14headiusyou know stat is different between 32 and 64 bit linux, right?
06:10:21headiusthe structure changes
06:19:22kwatch[BUG] shotgun/rubinius -e 'p binding' #=> NoMethodError
06:19:42kwatchbut binding() seems to be implemented in Rubinius
06:20:07kwatchp binding #=> OK
06:20:22kwatcheval 'p binding()' #=> Error
06:20:56brixenheadius: yeah, but it's getting the struct layout from gcc's offsetof macro
06:21:04brixenfor each platform
06:21:13brixenand that seems to be correct
06:21:16headiushmmm
06:21:47brixenit's working for me on darwin and gentoo-64bit
06:21:55brixenrue: 64bit?
06:22:47brixenmaybe it's an ffi issue
06:22:50brixenhm
06:24:39kwatchshould I register new ticket about it?
06:26:36binary42_ enters the room.
06:29:03brixenkwatch: sure
06:31:40mae leaves the room.
06:32:08mae enters the room.
06:32:34rueRebuilding
06:38:32wycats_ enters the room.
06:39:54kwatchthank you brixen, I have just now registered new ticket #314.
06:42:07binary42 leaves the room.
06:42:39rue315 examples, 682 expectations, 0 failures, 0 errors
06:42:55rue39 examples, 61 expectations, 0 failures, 0 errors
06:43:09rue49 examples, 82 expectations, 0 failures, 0 errors
06:43:24ruefile, file/stat and filetest
06:45:19GMFlash leaves the room.
06:45:25GMFlash enters the room.
06:45:28_ADSdoes anyone know about cygwin's auto-import?
06:45:38_ADSI'm down to 1 link error on cygwin
06:46:01_ADSmultiple definition of __imp__timezone
06:49:17wycats leaves the room.
06:50:03brixenrue: cool, thanks
06:50:11brixenrue: dunno what's up with ubuntu
06:50:56brixen_ADS: sorry, haven't used cygwin in forever
07:04:38wycatshey Defiler
07:09:57_ADSso I faked out ffi_timezone for now, and I actually got a rubinius.bin on cygwin!
07:10:15brixen_ADS: woot!
07:10:18brixennice work
07:10:30_ADSI still need to patch ucontext though
07:10:43_ADSright now it's stubbed out
07:10:47brixenwell, it can't all be gravy :P
07:10:57_ADSI did find a good example of how to do it
07:11:05brixencool
07:11:21__johan__ enters the room.
07:11:37corundum enters the room.
07:19:38_ADSso if I just keep going with rake build, I get the following error
07:19:41_ADShttp://www.pastie.org/149636
07:20:22_ADSis this b/c subtend is broken or haven't I even got into rbx yet
07:21:22brixennot in rbx yet
07:21:30brixenI checked in updates for that code
07:21:41brixennot sure why it was casting 0 to a pointer to a struct
07:21:53brixenI changed it to just create a struct on the stack
07:22:12brixennot sure of those changes made it into a tarball yet
07:22:16brixenare you using git?
07:22:40_ADSyes but i haven't pulled for a day or 2
07:22:53brixenah, yeah, just pushed it a couple hours ago
07:23:10brixennot positive it will make a difference, but it might
07:23:18_ADSnew to git, what happens when I pull and I have changed files - it must detect, right?
07:23:41brixenit won't let you pull into a dirty dir, afaik
07:23:49brixengit checkout -b <name> to create a branch
07:23:56brixenit should take your changes with you
07:24:06_ADSbetter scan the git docs again
07:24:09brixenthen, if you have > 1.5.3, you can use git stash
07:24:24smtlaissezfaire enters the room.
07:24:55brixenwhat version of git?
07:29:05_ADS1.5.4
07:29:26ruebrixen: Input? http://pastie.org/149639
07:30:54brixenheh, #3 is neat, but I think #1 is the easiest to read with one mod: a single - for open and a x for strickent
07:30:57brixenstricken
07:31:06brixen- Fix IO#syswrite
07:31:12be9git pull is git fetch + git merge
07:31:13brixenx Make :ruby implicit
07:31:22brixenbe9: yeah
07:31:22wycatsanyone know anything about proc {|x,| x} semantics?
07:31:36rueNope, never heard of that cat
07:31:38be9if you pull onto a dirty dir, it'll try to merge
07:31:39brixenwycats: elaborate?
07:31:41rueN-uh, no sir
07:31:54brixenbe9: you have to commit, right?
07:32:00brixenyou can't merge if you haven't committed
07:32:02brixenafaik
07:32:50brixen_ADS: so, try just: git stash; git fetch; git rebase origin
07:33:01brixen_ADS: if you are on master
07:33:22wycatsIt seems to me that it's identical to a regular lasgn
07:33:22wycatsand I have a patch that fixes a failing spec by doing just that
07:33:34be9brixen: right
07:34:27wycatsbut I want to make sure there's nothing I'm missing
07:34:49brixenwycats: best person to ask about that is evan or ryan
07:35:05brixenwycats: as long as you don't break anything else, it's probably an improvement ;)
07:35:31wycatsthoughts?
07:35:53brixenabout what?
07:37:33be9_ADS: you can do just git fetch and then git rebase origin
07:37:44_ADSbrixen: is origin a keyword
07:38:02rueOrigin is a reference
07:38:34brixen_ADS: cat .git/config
07:38:43wycatsdid I get disconnected?
07:38:51brixen_ADS: you should see remote "origin"
07:38:59brixenwycats: hehe, you must've
07:39:05brixen23:34 brixen >> wycats: best person to ask about that is evan or ryan
07:39:05brixen23:35 brixen >> wycats: as long as you don't break anything else, it's probably an improvement ;)
07:39:08brixen23:35 wycats >> thoughts?
07:39:17brixen23:35 brixen >> about what?
07:39:28_ADSremote "origin" Ok I think I understand
07:40:00wycats?
07:40:18brixenwycats: you there?
07:40:57brixentoys with wycats :P
07:41:44wycatslol
07:41:45wycatsI'm here
07:41:49wycatsI just got all that at once
07:41:51wycatslol
07:42:00brixenheh
07:42:05wycatsI think I bugged Evan enough for one night ;)
07:42:37brixenwycats: well, we can always revert if it breaks
07:43:57ruebrixen: http://pastie.org/149639 :D
07:44:27wycatsbrixen: the thing is that there are specs for what things should compile into that fail
07:45:38brixenrue: hah!
07:45:44brixenrue: oh my eyes :P
07:46:14brixen| |
07:46:17brixen _
07:46:28brixenrue: can you make a box out of those or something?
07:46:53brixenbut really, I think:
07:46:54rueNot really, takes too much space
07:46:56brixen- this thing
07:46:57brixenand
07:47:01brixenx that thing
07:47:04brixenis good enough ;)
07:47:15rueI am just playing around. I do not really see any reason to show the remaining and the stricken at the same time
07:47:15brixentoo much space?!
07:47:36wycatslol
07:47:43wycatsbrixen: I'm going to investigate a bit
07:47:51wycatsseems it has even weirder semantics than I thought
07:48:07wycatsbut barelty
07:48:39brixenwycats: if you can find charles, he'll know about it too
07:49:25wycatsthis is pretty insane
07:49:40wycatshttp://pastie.caboo.se/149641
07:49:42wycatscheck that out
07:50:34rueWe have specs for these, no?
07:51:03rueLook at spec/ruby/1.8/language
07:51:28be9you can just do "a, = 1,2"
07:51:37be9a will be 1, not [1,2]
07:51:48wycatsexplain, if you dare
07:54:36be9there's more fun stuff
07:54:53be9if you do "b=(a,=1,2)", you get [1,2] for b in MRI
07:54:58be9but true for b in Rubinius
07:55:33wycatsI'm working on this stuff
07:55:53be9went skiing
07:55:53wycatsI'm trying to understand semantically what's happening
07:56:33wycatsspecifically, I'm trying to understand why the top line doesn't return 1
07:58:39d2dchat leaves the room.
07:58:50rueYou are passing a single argument
07:59:03wycatsyep
07:59:10wycatsin both cases, I'm passing [1,2] to the proc
07:59:15__johan__ leaves the room.
07:59:17wycatsunless map does something crazier than I think
08:00:15wycatsmap uses yield
08:00:38wycatsdoes yield have different semantics than call?
08:01:16rueNo, but proc and blocks do
08:01:46wycatsit's the same damn object
08:01:55rueNot it is not :)
08:02:00wycats:P
08:02:12wycatsit's p in both places
08:05:20wycatsso why specifically, are they different?
08:06:22obvio171 leaves the room.
08:07:21wycatsthe issue is that the proc object gets converted into the same bytecode in both context
08:08:01pietia enters the room.
08:08:02wycatscontexts
08:08:02wycatswhile {|x,| x} means {|x| x} as a proc and {|x,*| x} as a block
08:09:27rueNo, you are unwinding the Proc with &
08:10:09wycatsthe semantics are as I said though
08:10:27wycatswhat does "unwinding" entail?
08:10:49rue&p is same as {...}
08:12:12wycatsright
08:12:32wycatswhat I'm trying to understand is why, in this case, the semantics are different
08:12:50wycatsprobably sounds like a broken record, because he's just not grokking it :P
08:13:33_ADScan you do a LIBS-= -lwhatever in a Makefile?
08:14:46ruewycats: Are you asking why Proc and block are different? Or why your code specifically does not do what you expect?
08:15:00wycatsrue: I'm actually trying to make rbx specs pass :P
08:15:17wycatsbut yeah... I guess I'm asking how's they're different with respect to this semantic
08:16:18_ADS_ADS: apparently not
08:16:49dbussink enters the room.
08:16:50ruewycats: ri lambda
08:17:07wycatsdoes
08:17:22rue_ADS: No, that would not work
08:17:32wycatsrue: thanks a million /snark
08:17:53wycats"Equivalent to +Proc.new+, except the resulting Proc objects check the number of parameters passed when called."
08:17:58wycatsdoes that explain something?
08:18:11smtlaissezfaire leaves the room.
08:18:12wycats:P
08:18:39smtlaissezfaire enters the room.
08:20:04wycatsrue: so the thing is that the first instruction in both cases is cast_for_multi_block_arg
08:20:18wycatswhich is handling the semantics of array/typical args
08:20:40wycatsit's actually an identical instruction sequence in both cases
08:23:02_ADShow do i catch the files generated when making rbx_struct_gen_bin?
08:23:15_ADSor where are they generated from?
08:23:26_ADSthe temps are getting deleted.
08:24:57wycatsrue: gotta hit the hay
08:25:06wycatsmaybe I'll have more luck with a fresh mind and cuppa joe
08:26:42brixen_ADS: you can rake --trace, but the file get's output essentially as runtime/platform.conf
08:27:38dbussinkbrixen: nice work in the stat stuff
08:28:05brixendbussink: thanks, it's failing for some unknown reason on ubuntu
08:28:12dbussinkbrixen: but i see someone already found a bug
08:28:21brixenlike 4 fileds
08:28:33brixenyeah, rubuildius :P
08:28:44brixenthe maddening thing is that it passes on 64bit gentoo
08:28:48dbussinkbrixen: ah, there is also a lighthouse ticket :)
08:28:54brixenheh, ahh
08:29:52_ADSbrixen: thanks. struct_generator is too much to decode this late.
08:29:54_ADSgoodnight
08:30:35brixen_ADS: night
08:30:42brixenlh is sloooow
08:30:58brixenyou'd think it was a rails app or something
08:31:46brixenok, well, I'm getting the same failures as #315
08:31:51brixenso that's good, I guess
08:32:11dbussinkthat means that it at least is reproducable
08:33:08brixenalways nice
08:38:57dbussinkis rubuildius also running on a virtual machine?
08:39:27brixenI don't think so
08:39:35brixenI think it's a PIII iirc
08:40:03brixenit would be really cool to get it on a set of machines, so there's not just this one failing build reported
08:40:27dbussinkyeah, some sort of build farm that tests all kinds of archs
08:42:03dbussinkhmm, this is definitely strange, it works ok in my 64 debian etch box, but fails on the 32 bit version
08:44:30brixenyeah, really odd
08:44:36wycats leaves the room.
08:45:07brixengcc is generating those offsets with offsetof
08:45:36brixenunless perhaps different flags are given to gcc in the rakefile for StructGenerator than are used in compiling?
08:47:09brixenI wonder if they used enough thermal putty when replacing my mbp fans
08:47:22brixensure seem to be spinning up very high a lot
08:47:39dbussinkhmm, there are no parameters given to stat.field in the rakefile
08:47:44dbussinkrakelib i mean
08:47:49dbussinkwhat is the default in that case?
08:48:13brixennot sure, but I added them locally on ubuntu
08:48:19brixendoesn't seem to make a difference
08:48:33brixenand, the offset should be most important I think
08:48:51brixenfor example, on darwin, I was getting a sign error, so I added the :ushort
08:49:07dbussinkbut isn't the offset also computed by the size of these fields?
08:49:09brixenbut in general, looking at field by field, the wrong value seems to be there
08:49:18brixenno, shouldn't
08:49:26brixenrm runtime/platform.conf; rake --trace
08:49:32brixenyou can see the C code it generates
08:49:47brixenuses offsetof macro to calc the offset, then sizeof() to get the size
08:51:11dbussinkstrange, because when i look at the 32 bit version it's actually wrong
08:51:16dbussinki mean 64 bit, dog
08:51:18dbussinkdoh
08:51:46brixenreally?
08:51:56dbussinkwell, the casts are not all safe
08:52:02brixenugh, 64bit is wrong but works, 32bit is right but doesn't?
08:52:12brixenhmm
08:52:26brixenthat's why I'm more worried about the offsets
08:52:42brixenI'm doing a quick tweak to move major minor out of the primitive and then I'll look at linux again
08:52:46dbussinkyeah, the casts probably don't break things, only some edge cases
08:53:15brixenwell, for instance, here (ubuntu) st_blocks should be 8, it's 0
08:53:34dbussinkis that 8 in some other field?
08:54:03brixenatime is messed up, but ctime and mtime are fine
08:54:25dbussinkaren't those shifted by one position then>
08:54:27dbussink?
08:54:37dbussinkso ctime == atime, mtime == ctime
08:54:41dbussinksomething like that
08:55:06brixenno, atime is dec 31 1969, mtime/ctime are right
08:55:43brixenactually st_blksize = 0, should be 4096; st_blocks = 4096, should be 8
08:56:10brixeneverything else looks right
08:56:43dbussinkbut isn't than atime 8 or something?
08:56:58dbussinkbecause in your timezone that will probably result in a date on dec 31 1969
08:57:39brixenahh
08:57:41brixenheh, could be
08:58:12kwatchI wrote spec files for erb.rb. Where to send these files?
08:58:42dbussinkkwatch: you should put them in spec/ruby/1.8/library/erb
08:58:43brixenkwatch: best would be a ticket on http://rubinius.lighthouseapp.com
08:59:03dbussinkkwatch: and use git-format-patch to create a patch to put on lighthouse
08:59:04brixenkwatch: please use git format-patch also
08:59:33kwatchthank you brixen and dbussink. I'll try.
08:59:36brixendbussink: so, I have blksize, blocks, atime in that order
08:59:48brixenoffsets: 48, 52, 56
09:00:00brixensize 4, type int
09:00:25dbussinkhmm, isn't blocks probably 64 bit? because it should support larger files?
09:00:37brixenwondering that too
09:01:13brixenrdev is offset 32, 8, long; next is size: offset 44, 4, int
09:01:56brixenthe frustrating thing is these are generated by offsetof and sizeof
09:02:16dbussink:#define __BLKSIZE_T_TYPE __SLONGWORD_TYPE
09:02:22dbussinkon 32 bit linux...
09:02:34dbussinkso it should have size 8
09:03:39brixenwell, I wonder why offsetof is returning a different value
09:03:50brixenwe must not be setting the same flags for gcc in both cases?
09:04:54rueSo anyway
09:05:04rueWe need to figure out something other thand offsetof
09:06:09dbussinki think offsetof should be fine, everything in c depends on it
09:06:22dbussinkmaybe it's somewhere in stuff like __USE_FILE_OFFSET64
09:06:41dbussinkthat one part is compiled with large file support, another part isn't
09:07:01brixenright, I think we're not giving the right flags to StructGenerator
09:07:18brixenI was going to put some code in shotgun and double check the offsets when rbx is compiled
09:07:25brixento test
09:10:46pergesu leaves the room.
09:15:10dysinger_ leaves the room.
09:17:32rueIt is GCC only
09:19:48dbussinkbrixen: i know that on linux you have to explicitly enable large file support
09:20:04dbussinkand on os x it's enabled by default afaik
09:20:15dbussinkso it makes perfect sense that this is the cause of the bu
09:20:16dbussinkbug
09:21:10brixenoh, ok
09:21:23brixenso, we just need to know what flag to give gcc in struct generator
09:21:32brixenand that makes sense since it works for you and I on 64bit
09:21:56dbussinkhttp://www.suse.de/~aj/linux_lfs.html
09:22:47dbussinkD_FILE_OFFSET_BITS is in shotgun/lib/Makefile :0
09:22:48dbussink:)
09:23:01dbussinkCPPFLAGS += -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64
09:23:03brixenheh, just saw that
09:23:11brixenok, I'll try that here
09:23:49__johan__ enters the room.
09:23:56dbussinkstill think we need to fix the types for the stat struct though, because otherwise we can't report a file size larger than 2gb for example
09:36:40brixenso, our sizes should always be 8 bytes, right?
09:36:59brixenI'm trying to avoid the PLATFORM.match stuff in plaform.rake
09:37:10dbussinkwell, they should match what is rubinius is compiled with
09:37:21dbussinkis simply adding the gcc flag not sufficient?
09:37:46dbussinkthe flag won't hurt on systems that don't support it
09:38:16brixenright
09:38:30brixenyeah, it will then output the right size
09:38:54brixenas long as the FFI routines for accessing that field (i.e. wrapping it in a ruby obj) work ok, we should be good to go
09:39:12brixenboy, updating primitives is such a pita
09:39:22dbussinkhehe, yeah, all kinds of stuff to consider
09:39:28brixenI wish they could be dispatched like normal
09:39:56dbussinkif you push the fixes, i could fix up the types so no valuable information is thrown away by incorrect casting
09:40:09dbussinkor did you tackle that too already?
09:40:29brixennot yet, but I think I'm almost done with this primitive change
09:40:37brixenI'll push the -D stuff too
09:40:40brixenand you can tweak it
09:42:13dbussinkso you can get some sleep ;)
09:43:26brixenheh
09:43:31brixenI'm in the doghouse :P
09:43:38brixenbarely got a 'goodnight' from my gf
09:44:13dbussinkwell, you're making us happy :)
09:44:39brixenI guess that's some consolation
09:45:46manveruso... how do you do a BlankSlate in rubinius? :)
09:47:36dbussinkmanveru: did you try? and if so, did you run into problems?
09:47:48brixenmanveru: class BlankSlate < NilClass; end
09:48:02brixenmanveru: I think evan's talk at rubyconf had a slide for that
09:48:09brixenor railsconf?
09:48:26brixenbut the idea is, you can inherit from NilClass, so you don't have to jump through all those hoops
09:48:58brixenugh! conflict with the .rba's, suck
09:49:51dbussinkbrixen: maybe you could write a "caveats when working with ffi" page :P
09:50:10dbussinkbrixen: guess you're the expert on it
09:50:18manverudbussink: i did try
09:50:25manveruhttp://p.ramaze.net/472
09:50:30brixenhm, perhaps add some to readme-developers
09:50:37manverutry yourself, it's pretty nasty :)
09:51:19brixenmanveru: did you try inheriting from NilClass ?
09:51:27brainopia enters the room.
09:51:42manverubrixen: i'm searching for an implementation that works on 1.8/1.9/rubinius/jruby
09:52:05dbussinkbrixen: if i test that, i still get a lot of methods on blankslate
09:52:09manveruand well, NilClass inherits from Kernel
09:53:17manveruon 1.9 you can go with BasicObject, but i'm not sure if rubinius plans on that?
09:53:27brixensorry, class Mu < nil
09:53:36brixenwww.slideshare.net/evanphx/rubinius-a-tool-of-the-future/
09:53:54brixenclass BasicObject < nil; end :)
09:54:15dbussinkwhy can i still can .methods on that?
09:54:36brixenoh damn these rba conflicts suck
09:55:39manverumanveru@delta rubinius-git/src/rubinius % ./shotgun/rubinius -e 'class B < nil; end; p B.instance_methods.size'
09:55:40manveru61
09:57:15manveruthe normal BlankSlate has 2 instance methods
10:01:05brixenfuck I hate these stables checked in
10:01:14brixenI'm going to have to reapply all this by hand
10:01:19dbussinkyou can't just replace them?
10:02:23__johan__ leaves the room.
10:05:51brixenno, you can't
10:06:21brixenthe .rba's have calls to the specific primitives
10:06:39brixenif the vm is out of sync, say because you renamed a primitive, it blows up
10:07:07brixenyou have to have both the set of stables and the vm in a synchronized stat to compile the next set
10:07:43brixenI just did git format-patch and I'll apply them one by one, making new stables as I go
10:11:36dbussinksounds like incredible fun...
10:12:07brixenheh
10:13:22brixenif only I had Defiler's ssd
10:13:34brixenit takes a while to build each time
10:13:54dbussinkbuy it at company costs and claim that it increases your productivity enough to warrant it ;)
10:14:44ragge enters the room.
10:15:29brixenthe awesome thing is hand editing these patches
10:15:35brixengit makes it so easy to do stuff
10:35:09dbussinkstupid upgrades that need a reboot...
10:35:27dbussink leaves the room.
10:39:28yaroslav enters the room.
10:39:52dbussink enters the room.
10:40:28dbussinkand back
10:40:55dbussinkbrixen: any luck get it working?
10:40:59dbussink leaves the room.
10:41:03dbussink enters the room.
10:41:30dbussink enters the room.
10:41:47dbussinkhmm, i'm not seeing my own messages
10:41:51dbussinkah, now i am :)
10:44:36boyscout7 commits by Brian Ford
10:44:37boyscout * New stables (hopefully to make rubuildinus happy).; 99dfc4d
10:44:38boyscout * Ensure StructGenerator uses the same flags as when compiling rbx;; 256c84a
10:44:39boyscout * Finally, removed old primitive. New stables.; 341f0a3
10:44:40boyscout * New stables.; 1b83413
10:44:41boyscout * Switched back to File::Stat.stat. Updated primtive.; 2ff4b27
10:44:42boyscout ...
10:45:37brixendbussink: ok, I'm running a test on 64bit
10:46:48chris2 enters the room.
10:47:31dbussinkbrixen: gonna run it on my machines too
10:47:39brixencool
10:48:51brixenfuck
10:48:58brixenwhat is with these stables
10:49:08brixennot working on linux when i build them on osx
10:50:18brixendbussink: my 32bit seems to hang in the specs, 64bit is going ok
10:51:20dbussinkhmm, building fails on my 64 bit
10:51:31hornbeck leaves the room.
10:51:42hornbeck enters the room.
10:52:11dbussinkUnable to compile extension into rmd160.so. Check compiler log.
10:52:34rubuildiusBrian Ford: 99dfc4d72; build failed! http://rafb.net/p/xoy2BN30.html
10:52:34dbussinksame on 32 bit linux
10:53:21akshay enters the room.
10:53:36boyscout1 commit by Brian Ford
10:53:36boyscout * New stables built on linux.; acc9deb
10:53:55be9How come stables differ at all?
10:54:27brixenbe9: they are essentially a full set of precompiled bytecode files for all of kernel and lib/compiler
10:54:53brixenit's a bootstrap thing
10:55:24lstoll enters the room.
10:55:49be9I mean, when you build them on osx and linux
10:56:34be9With 99dfc4d I have a fuckup on 64bit (same thing with rmd160)
10:59:28brixenbe9: not sure what's up with the conflict between osx and linux
10:59:35brixenthey're supposed to be x-platform
11:00:01be9brixen: that's my point :)
11:00:29brixendbussink: hmm, something happend to class Mu < nil; end :(
11:00:35brixenit used to work
11:01:46brixenI bet I know why
11:01:55brixenanyway, sleep for me
11:02:06rubuildiusBrian Ford: acc9deb76; build failed! http://rafb.net/p/hutWI831.html
11:02:11dbussinkbrixen: could you wait a sec?
11:02:30brixenuh, ok
11:02:31dbussinki just got the same build failure as rubuildius
11:02:37lstoll leaves the room.
11:02:40dbussinkdunno if it's an easy fix
11:02:59brixengah, we're going to have to figure this out
11:03:08brixenI built them on 64bit, it works there :P
11:03:09be9BTW, I always get something like this upon build: /tmp/rbx_const_gen_tmp.1637.0:490: warning: format ‘%llu’ expects type ‘long long unsigned int’, but argument 2 has type ‘long unsigned int’
11:03:17dbussinkbrixen: the stables?
11:03:24brixendbussink: yeah
11:03:29dbussinkbrixen: maybe they work better if build on 32 bit linux
11:03:32brixenbe9: checkout the stuff in rakelib/
11:03:34dbussinkwould be really nasty though
11:03:53brixendbussink: yeah, the platform should not matter
11:04:15be9binary diff may help&
11:04:16brixenbut rubinius knows how to compile C stuff, I bet it's picking up a bad command or something on osx
11:04:25brixenlinux is a serious pita
11:06:18dbussinkreally need to get ci running on various platforms
11:06:31dbussinkso we know these kind of issues right away
11:06:58be9like rubuildius64 :)
11:07:08zenspidereric's got his tinderbox that he was hoping to get running for rubinius, but it requires rubygems to work
11:07:38dbussinki think we need at least a linux32, linux64, a bsd like freebsd on both 32 and 64 and os x
11:07:53dbussinkthe latter is used by most devs, so there's no immediate need for that
11:07:54brixendbussink: sorry, this problem on 32bit is different than before, I can't hand compile it
11:08:01zenspiderosx comes in both flavors too
11:08:27be9well someone has succeeded to build rubinius on cygwin :)
11:08:29dbussinkos x is even more funky
11:08:51zenspidernot sure how much (if at all) it affects rubinius, but it has for me on other projects
11:08:51dbussinkbe9: ah, who is that?
11:09:04be9dbussink: saw today
11:09:20dbussinkzenspider: Defiler has been toying with os x 64 bit, but i think he hit a pretty serious bug
11:09:21brixendbussink: likely something in lib/bin/compile.rb
11:09:37yaroslav leaves the room.
11:10:39dbussinkbrixen: just to get some sleep, that would probably be more useful :)
11:10:52be9dbussink: that chat has passed away in my channel log
11:11:17dbussinkbe9: then it should be in the online log probably
11:12:29akshay_ enters the room.
11:12:49langenberg enters the room.
11:13:36be9dbussink: look for cygwin then. anyway, the future farm should include mswin too
11:14:21be9I wonder will it be possible to compile Rubinius at least with Mingw or better with Visual C++
11:14:21dbussinkbe9: yeah, as soon as we get it running on mswin it should yeah, but on mswin there's also the cygwin version, but the final goal is of course a mingw or vcc build
11:14:46dbussinknot atm, there are a lot of posix dependencies
11:18:46brixendbussink: just a wild-ass-guess, but it's probably related to the stat struct, since it works on osx and 64bit for me
11:19:16dbussinkhmmm
11:19:25dbussinkmaybe more gcc calls that need the defines?
11:19:49brixenpossibly
11:20:17brixenalso, the only thing that is failing is the lib ext builds, so you should be able to compile/use rbx
11:20:29brixenthe specs seem to hang for me on the continuation specs
11:20:49brixenanyway, sleeptime
11:20:51brixen:_
11:20:54dbussinknite
11:20:57brixennight
11:22:21pietia leaves the room.
11:23:51langenberg leaves the room.
11:24:22langenberg enters the room.
11:24:56cjheath leaves the room.
11:29:24akshay leaves the room.
11:30:53langenberg leaves the room.
11:36:00Swistak leaves the room.
11:37:04Swistak enters the room.
11:54:38lopex enters the room.
11:54:48langenberg enters the room.
11:58:34be932bit linux still fails on acc9deb
11:59:00dbussinkyeah, we know
12:00:52be9huh, think I'll try to at least compile rubinius on mSys under m$win
12:01:26be9and 64bit linux still works on acc9deb :)
12:02:18be9guys from msysgit project are having good progress lately
12:02:51be9which opens up a possibility for msysrubinius
12:05:15dbussinkbe9: does msysgit work then?
12:06:17be9dbussink: Not that fast, with some quirks, but it does.
12:06:58dbussinktoo bad brixen is gone, i think i've found the source of the 32 bit problem
12:07:02Amberq40z4rh6d0 enters the room.
12:07:07Amberq40z4rh6d0it. see that experience virtual term to to compact two As use and least defined the and wouldn't
12:07:09Amberq40z4rh6d0 leaves the room.
12:07:34be9%) what's that?
12:08:02be9which is it, dbussink?
12:10:10dbussinkDir.glob is broken on 32 bit linux, probably because dirent entries now behave differently
12:12:32Mollyo31j24vm9d0 enters the room.
12:12:33Mollyo31j24vm9d0 leaves the room.
12:14:11akshay_ leaves the room.
12:16:42__johan__ enters the room.
12:17:39dgtized leaves the room.
12:53:03langenberg leaves the room.
13:05:13codebrulee enters the room.
13:05:29codebrulee leaves the room.
13:12:10ctennis leaves the room.
13:12:30ctennis enters the room.