Index

Show enters and exits. Hide enters and exits.

00:03:38twbray leaves the room.
00:11:44ezmobius leaves the room.
00:13:53anonuser enters the room.
00:20:45neelance leaves the room.
00:21:36qrushJust curious, why doesnt rbx have $KCODE defined?
00:25:01rueevan: builtin_object.cpp
00:25:20rueevan: Erm, line 307, should be tup rather than tbl, right?
00:26:13rueqrush: Hm, dunno.. I thought we did. Sec
00:27:13qrushrue: I'd love to know what/where it would be defined. i'm still running through the Ruby Way trying out examples in rubinius, getting a better grasp on the language.
00:27:17rueqrush: I see it being handled in string.rb.. maybe it does not get set up right? Where did you come across this?
00:27:35qrushrue: i just fired up rbx, typed in $KCODE, and i get nil
00:28:30qrushhttp://pastie.org/228719
00:28:46rueAh, so it is _defined_, just wrong :)
00:28:55rueShould be NONE probably
00:29:10qrushor "n"
00:29:15qrushaccording to the Ruby Way.
00:29:36ezmobius enters the room.
00:29:43qrushshould i file a bug, or perhaps could i send in a patch?
00:30:15rueBoth would be great
00:30:32qrushsweet.
00:31:16rueThe global could probably be set to a default value in the VM bootstrap, or it could be delayed to be set in loader.rb (since it can be given as a commandline switch)
00:31:19Maledictus leaves the room.
00:31:47qrushso going to kernel/core/string.rb would be a bad call.
00:35:26rueJust to avoid any dependency issues. As a quick fix it would probably work there too
00:36:09qrushI'll have to look into loader.rb, as i have no idea how the VM works
00:40:06qrushrue: what command line argument? I don't see anything listed for $KCODE/encoding settings under irb --help
00:42:34jp_tixqrush: try `ruby --help`
00:42:38jp_tixit's -K
00:42:58qrushhow would one invoke that with rubinius?
00:44:19jp_tixit's not there in rubinius atm
00:44:26jero5qrush: rbx -e 'puts `ruby --help`' :)
00:44:36rueHeh
00:44:53qrushah
00:45:22rueqrush: See, we lure you in with an innocent $KCODE addition and the next thing you know, you are adding handling for a new command-line option ;)
00:45:26rueAnd specs :)
00:45:33qrushSo it seems that setting it inside of the VM would be the best then
00:45:49qrushrue: that's fine, i've been looking for a way to contribute and happy that i found an issue.
00:46:18qrushbecause it's either the VM setting or String.after_loaded
00:47:29qrushAny suggestions as where I could start on the VM path?
00:48:17rueSee if you can find other predefined global variables
00:48:55rueGrep might be useful; the regexp ones ($&, $1 etc.) are handled separately but there might be others
00:49:07rueI need to hopsy over to bed though, see you tomorrow
00:50:29evaneven if you define $KCODE
00:50:33evanit will do almost nothing
00:50:43evanbecause only one method even checks it's value currently
00:51:23qrushso should i give up on this or what
00:51:53qrushgot excited that he found an issue. :|
00:51:58rueI think it would be worthwhile
00:52:13rueParticularly if you want to bang out the command-line option
00:52:36rueevan: I pushed the LLVM build fixes
00:52:42evank
00:52:52rueGoing now
00:53:37jp_tixis trying to type UTF-8 into rbx's irb
00:53:45jp_tixfails
00:53:49evanah, test wouldn't link
00:56:11qrushevan: so is this entire $KCODE issue worth it?
00:56:20evanno
00:56:34evannot until it's checked by the various methods that need to
00:56:41evanthats where the work needs to go
00:56:45evanwell, we can set it
00:56:52evanbut it wont actually DO anything
00:57:25qrushseems like it would be good just to say we follow matz irb, but perhaps i'm wrong.
00:58:13qrushreturns to the ruby way
01:04:45rue leaves the room.
01:05:18rue enters the room.
01:07:20obvio171 enters the room.
01:09:38fbuilesv leaves the room.
01:11:33seydar enters the room.
01:13:12twbray enters the room.
01:31:39twbray leaves the room.
01:32:24twbray enters the room.
01:34:22mkescher enters the room.
01:39:23chadhey where's this LLVM stuff happening?
01:39:33chadi see people talking about running code
01:40:08evanon the cpp branch
01:40:36evani have a seperate clone to work on it
01:41:18chadahh cool
01:41:28chadhaving fun?
01:42:18nicksieger leaves the room.
01:43:20evanyeah1
01:43:21evan!
01:43:30evanchad headed up to gemstone tomorrow
01:43:32evanack.
01:50:25Vagabond enters the room.
01:50:49twbray leaves the room.
01:52:26qrushI just installed a gem via 'rbx gem install'
01:52:34qrushand it won't respond to requiring it
01:52:37qrushmemoize
01:53:17qrushHmm, it's not in gems/
01:53:57chadare you sure you have the right rbx in the path?
01:54:18chadtry rbx gem env
01:54:18qrushit should be
01:54:59qrushalright, it install into tmp/gems/1.8/gems/
01:55:03qrush*installed.
01:55:15qrushthe paths look fine to me
01:55:23qrushrequire 'memoize' is failing
01:55:32chaddid you require 'rubygems' first?
01:55:49qrushah
01:55:51qrushdoh.
01:55:54qrushThanks.
01:55:56chadnp
01:56:27chadbeing on a bleeding edge platform is a big red herring sometimes :)
01:57:49qrush:P
01:58:05qrushjust trying my best to soak up this awesome language and try to break rubinius
02:04:34rue leaves the room.
02:04:59jtoy enters the room.
02:05:49rue enters the room.
02:18:32blakewatters leaves the room.
02:23:54dlee enters the room.
02:25:48VVSiz_ enters the room.
02:26:08qrushHeh, and memoize doesn't work with rubinius. joy
02:28:25headiusevan: ping
02:28:31headiusgot another good one for you
02:28:36headiuspastie: for evan
02:29:18dgtizedhey the version of llvm-config I have doesn't accept --cflags, only --cxxflags
02:30:12pastieevan: http://pastie.org/228764 by headius.
02:31:07yugui enters the room.
02:34:05dgtizedand fastthread is still not installing correctly
02:35:37evanheadius: ping
02:36:01evandgtized_: the cpp is behind the main branch for fastthread and such
02:36:10evanthat hasn't been merged over.
02:36:18evandgtized_: you need a new version of llvm
02:36:20evanat least 2.3
02:36:40evanheadius: yeah, invalid return.
02:36:47evanthat one is actually always in the back of my mind.
02:37:38evani forget how I handle that now...
02:38:00evanoh wait
02:38:04evanthis isn't an invalid return
02:38:19evanyou should move the #call outside the def
02:38:22evanfor increased fun.
02:38:38headiusyeah, I've tried that
02:38:44headiusLocalJumpError
02:38:51headiusRBX seems to do LJE in both cases though
02:38:59evanlooks like we don't handle it in rubinius really currently.
02:39:03headiusyeah
02:39:09headiusI broke it just now in JRuby fixing something else
02:39:18headiusdoing the break rewiring I mentioned
02:39:45evanah
02:39:59mernen enters the room.
02:40:19evanah, i see why this one gets by rubinius's current LRE logic
02:40:33evanhm
02:41:04evanI should just detect this raise and raise a YoureADouche exception
02:41:27headiusit's in test.rb where I found it
02:41:43evandef test_douchiness_of_proc
02:41:47headiusso basically unless it's a lambda, a return in a proc needs to bubble out to the containing method
02:41:54evanyeah
02:42:01headiusif it escapes that method, it needs to LJE
02:43:50VVSiz leaves the room.
02:44:02evanGROSS.
02:44:05evani've got a better one.
02:44:11headiusdamnit
02:44:17evanhttp://rafb.net/p/69MAmg98.html
02:44:33evanthe poor man's continuation!
02:45:20evanactually, thats just non-local return i think...
02:45:30evanthat one I think i've got working already
02:45:42evansame error
02:45:47evanLRE
02:46:15evanyep
02:46:17headiusyeah
02:46:21headiusbuggles all the way out
02:46:22headiuser
02:46:23headiusbubbles
02:46:29evanso check out: http://rafb.net/p/mo3K9g83.html
02:46:33evanworks properly in rubinius
02:46:44evanbecause i'm only putting LRE rescue code around send's with a block
02:46:54headiusyeah
02:47:00evanhrm.
02:47:05headiusI only have it around those calls as well, but I'll have to re-add it to the others
02:47:10evanrather than clutter EVERY send with LRE rescue code
02:47:12headiusphuc
02:47:20evani think i'll just have to wire some VM logic into Proc#call
02:47:27evanto rescue LRE
02:47:44evanand have the VM perform a little unwind magic or raise LocalJumpERror
02:47:59headiusyick
02:48:13headiushave to unwind all the way to the place the original proc instantiation happened though
02:48:21evanotherwise i'll have to put a LRE rescue block around EVERY send
02:48:28evanyeah, thats easy
02:48:31evanthats stored in the Proc
02:48:34evanit knows it's home.
02:49:58evanhrm. maybe instead I could have every method contain a LRE rescue region that is the entire method
02:50:05evanno no, thats dumb too.
02:50:25evanhow are you going to handle this?
02:51:20headiusall ruby methods are already wrapped with an exception-handling block for flow control stuff
02:51:39headiusI just need to get the non-local jump targets wired up right
02:52:01headiuslarger problem is making it into a rescuable LJE
02:52:10headiussince normally they propagate out as a simple Java exception
02:52:47headiusthe ability to rescue that shit infuriates me
02:53:17evanyou can rescue the LJE?
02:53:35evanI mean, where can you rescue it at?
02:55:54headius➔ ruby -e "def foo; Proc.new { return 1 }; end; begin; foo.call; rescue; puts 'yay'; end"
02:55:54headiusyay
02:58:01headiusbut you can't rescue it if will eventually find its target
02:58:11headius➔ ruby -e "def foo; bar(Proc.new { return 1 }); end; def bar(x); begin; x.call; rescue; puts 'gross'; end; end; foo"
02:58:14evanhm. i wonder if i can spy on the body of the proc to make this easier...
02:58:17headius...no output
02:58:35evanah
02:58:36evanyeah.
03:02:09headiuswhich is a bit...frustrating
03:02:15evanquite.
03:02:25evanalso, as I recall, ensures have to return.
03:02:29evanup the tree.
03:02:46headiushow do you mean
03:02:55evanor maybe i'm just thinking return in a begin
03:04:16evannope, i'm right: http://rafb.net/p/5gd8ql75.html
03:04:22evan:go
03:04:23evan:bleh
03:04:23evan1
03:04:39rue leaves the room.
03:04:50dgtizedevan: fastthread problem was not on cpp branch it was on the main branch
03:04:59evanok
03:05:07evanrun it by drbrain
03:05:12dgtizedk
03:05:20rue enters the room.
03:06:30dgtizedwhat is the correct way to build llvm from source do you need all the compiler packages?
03:06:44evandownload it, ./configure; make; make install
03:07:04dgtizedcompiler front end as well as llvm source?
03:07:07dgtizedor just llvm source?
03:07:12evanjust llvm source
03:07:14dgtizedk
03:07:21evanif you want to do dev though, you'll need the gcc frontend
03:07:26evanbut you can just get binaries of that
03:07:33evanso you have llvm-gcc, llvm-g++, etc.
03:08:00evanvm/instructions.bc is generated from vm/llvm/instructions.cpp with llvm-g++
03:08:06evanoh, dinner time!
03:08:50dgtizedwhich have to be built from source since there is not .deb package
03:09:41evaneeks
03:09:42evandon't
03:09:44evanif you can
03:09:48evandownload the linux binaries.
03:09:59evanthey're a bear to compile i've heard.
03:10:03dgtizedthere aren't any -- it's just for redhat
03:10:06evanthats why they've got binaries for everything.
03:10:07headiusevan: ahh, yeah, that's not too bad here though
03:10:11headiusany ensure we wrap with a finally
03:10:14dgtizedRHEL to be precise
03:10:17headiusjava finally
03:10:46dgtizedcan I use an older version of llvm-gcc and co or do they have to be the latest version?
03:10:51evandgtized: well, go for it.
03:11:07evandgtized: what version?
03:11:12evanyou could try at least a version 4
03:11:23evansee if it works.
03:11:30evananyway, i'm off.
03:12:28evandgtized: you should try using alien on the redhat packages
03:23:07sholden enters the room.
03:23:08headiushmph
03:23:20headiusI don't know how to reconcile this LJE stuff
03:29:40chadit's interesting how complicated stuff gets just because blocks are supposed to work like looping constructs
03:33:54benburkert enters the room.
03:35:59cremes leaves the room.
03:36:43benburkert leaves the room.
03:37:07ezmobius leaves the room.
03:37:37benburkert enters the room.
03:42:27headiuschad: yeah quite...and this case I think is so obscure I'm just going to call it broken, file a bug, and see if anyone wants it fixed
03:42:47headiusMRI has to be inspecting the stack to know whether to propagate an LJE or not
03:43:05headiusit's the only way it could work
03:45:18benburkert leaves the room.
03:51:55atmos leaves the room.
03:53:34mkescher leaves the room.
04:01:01qrushalright, i believe i've found an issue with rubinius and using metaclasses. i'm trying out the memoize gem with this: http://pastie.org/228798 , and finding this error: http://pastie.org/228799
04:01:07cremes enters the room.
04:02:14qrushSource of the gem is here: http://pastie.org/228776
04:04:30qrushany clues, folks?
04:05:16sholden_ enters the room.
04:05:19mernen leaves the room.
04:06:57sholden leaves the room.
04:10:43lchin enters the room.
04:11:07robin_dewd enters the room.
04:19:39robin_dewd leaves the room.
04:20:08AndrewO leaves the room.
04:25:04sholden_ leaves the room.
04:33:02qrush leaves the room.
04:35:44blakewatters enters the room.
04:35:53ryanlowe leaves the room.
04:36:02yugui leaves the room.
04:50:41trythil enters the room.
04:53:07benny leaves the room.
04:56:29Yurik enters the room.
05:04:18lstoll enters the room.
05:04:18rue leaves the room.
05:04:52rue enters the room.
05:31:43Jzalae leaves the room.
05:57:07blakewatters leaves the room.
06:04:03rue leaves the room.
06:09:20wmoxam leaves the room.
06:10:24rue enters the room.
06:18:14yugui enters the room.
06:20:03yugui leaves the room.
06:20:15yugui enters the room.
06:24:21thehcdreamer enters the room.
06:37:18thehcdreamer leaves the room.
06:37:50krsh enters the room.
06:46:11twbray enters the room.
07:04:03rue leaves the room.
07:09:56rue enters the room.
07:13:09trythil leaves the room.
07:15:27twbray leaves the room.
07:16:42radarek enters the room.
07:20:30krsh_ enters the room.
07:31:31dbussinkmorning
07:34:39krsh leaves the room.
07:38:55dbussinksomeone alive still?
07:39:08headiusme, but I'm not sure I count
07:42:30dleemorning
07:42:54dleeheadius: why don't you count?
07:43:11headiuswell, I don't generally work on rbx
07:44:32dleeok
07:44:35dleei guess i don't count either
07:45:50headiusheheh
07:46:51dbussinkheadius: you're just abusing evan for help on complex issues :P
07:47:19headiusyeah, something like that
07:49:36dbussinki guess he's already gone now then
07:56:04Yurik leaves the room.
08:04:42lchin_ enters the room.
08:05:30lchin leaves the room.
08:10:03botanicus enters the room.
08:11:41thehcdreamer enters the room.
08:11:52enebo leaves the room.
08:13:51lchin_ leaves the room.
08:17:55lchin enters the room.
08:31:22Arjen_ enters the room.
08:34:29nicksieger enters the room.
08:35:24botanicus leaves the room.
08:35:44qwert666 enters the room.
08:48:52lstoll leaves the room.
08:49:59rueMorning
08:51:37brixennight rue :)
08:51:51rue*wave
08:54:12dbussinkalready or still up?
08:54:47brixendbussink: lights out for me, I'll leave the candle to you slackers :P
08:55:04octopod enters the room.
08:55:09dbussinkbrixen: hehe, night then
08:55:18brixennight :)
08:55:39corundum leaves the room.
08:55:50corundum enters the room.
08:57:31zenspider leaves the room.
09:03:42rue leaves the room.
09:09:29rue enters the room.
09:09:57NoKarma enters the room.
09:12:48dlee leaves the room.
09:17:52lchin leaves the room.
09:22:48boyscout1 commit by Eero Saynatkari
09:22:49boyscout * Instructions for the C++ branch.; 6b5b318
09:27:35rubuildius_ppcEero Saynatkari: 6b5b318fd; 2534 files, 8411 examples, 28044 expectations, 0 failures, 0 errors
09:30:23nicksieger leaves the room.
09:32:05dbussinkrue: did you get the tests running already?
09:32:36rubuildius_ey64Eero Saynatkari: 6b5b318fd; 2534 files, 8412 examples, 28022 expectations, 0 failures, 0 errors
09:32:56rueNah, have not tried, just doing minor stuff to get the building a bit smoother
09:35:46michalw enters the room.
09:39:31antares_ enters the room.
09:40:34qwert666 leaves the room.
09:55:28gnufied enters the room.
10:03:15lchin enters the room.
10:08:28naeu enters the room.
10:33:12rubuildius_amd64 leaves the room.
10:38:15neelance enters the room.
10:43:30jtoy leaves the room.
10:43:34mutle_ enters the room.
11:00:42chris2 enters the room.
11:01:22mutle leaves the room.
11:08:13sholden enters the room.
11:12:03rueAway a while
11:12:09rueWell, offline
11:34:51Maledictus enters the room.
11:45:42yugui leaves the room.
11:50:21sholden_ enters the room.
11:51:04sholden leaves the room.
11:52:33qrush enters the room.
11:55:03krsh_ leaves the room.
11:56:33zimbatm enters the room.
12:01:31neelance leaves the room.
12:03:10rue leaves the room.
12:06:50rubuildius_amd64 enters the room.
12:09:02rue enters the room.
12:13:28sholden enters the room.
12:13:36sholden_ leaves the room.
12:15:58cremes leaves the room.
12:19:15neelance enters the room.
12:54:19dctanner enters the room.
12:58:54sholden leaves the room.
13:23:37scottholden leaves the room.
13:29:38cremes enters the room.
13:46:53AndrewO enters the room.
14:15:55sholden enters the room.
14:16:03blakewatters enters the room.
14:18:16benburkert enters the room.
14:20:04wmoxam enters the room.
14:34:58heycarsten enters the room.
14:41:07pauldix enters the room.
14:41:08Yurik enters the room.
14:44:34rueBack
14:44:57ruedbussink: So the error message seems rather straightforward
14:45:15dbussinkwhich one do you mean?
14:45:19dbussinkthe assert failure?
14:45:27dbussinkbecause i fixed that one locally already
15:01:46dctanner leaves the room.
15:02:43rue leaves the room.
15:02:49wmoxam leaves the room.
15:03:34rue enters the room.
15:04:23ruedbussink: Ah, can you push the fix or patch?
15:06:58dctanner enters the room.
15:08:39benburkert leaves the room.
15:11:44binary42 leaves the room.
15:15:06dbussinkrue: not easy now, i'm at work now
15:16:21dbussinkwhat i did was only initializing a new mp and engine in llvm.cpp:63
15:16:29dbussinkonly a new one if there isn't one
15:16:39dbussinkbut i don't really know if that's the correct fix
15:21:39gnufied leaves the room.
15:23:57imajes_office leaves the room.
15:24:15lchin leaves the room.
15:24:56wmoxam enters the room.
15:27:15jackdempsey enters the room.
15:30:41ryanlowe enters the room.
15:33:35lchin enters the room.
15:33:37imajes enters the room.
15:38:46fbuilesv enters the room.
15:47:20dbussinkrue: any luck with it?
15:50:43binary42 enters the room.
15:55:49moofbong enters the room.
16:00:52nexcastellan enters the room.
16:02:37rue leaves the room.
16:04:06botanicus enters the room.
16:04:08twbray enters the room.
16:05:01krsh enters the room.
16:09:06rue enters the room.
16:09:21edwardam leaves the room.
16:11:37headius leaves the room.
16:11:56headius enters the room.
16:13:00benburkert enters the room.
16:20:04twbray leaves the room.
16:23:39headius leaves the room.
16:25:02headius enters the room.
16:25:41enebo enters the room.
16:30:15jbarnette enters the room.
16:31:04rue leaves the room.
16:32:20lstoll enters the room.
16:38:50atmos enters the room.
16:41:07headius leaves the room.
16:41:25enebo leaves the room.
16:41:57headius enters the room.
16:47:59botanicus leaves the room.
16:51:51lchin leaves the room.
16:53:33rue enters the room.
16:54:09enebo enters the room.
16:55:04ruedbussink: Sorry, went offline. Yeah, I think ensuring it is only created once is the correct approach.. I am reading the LLVM docs now
16:55:09rue--to verify
16:55:28gnufied enters the room.
16:56:19twbray enters the room.
16:57:53naeu leaves the room.
17:01:19stouset enters the room.
17:03:36hemulen enters the room.
17:05:42twbray leaves the room.
17:06:44eventualbuddha enters the room.
17:07:12dbussinkrue: well, it was what the assertion basically said afaik
17:10:15stouset leaves the room.
17:10:45c0sin_ enters the room.
17:12:45krsh leaves the room.
17:13:25ruePretty much
17:14:28masswaves hello
17:19:58lopex enters the room.
17:20:34twbray enters the room.
17:21:22heycarsten leaves the room.
17:23:47neelance leaves the room.
17:31:31heycarsten enters the room.
17:32:44neelance enters the room.
17:43:09thehcdreamer leaves the room.
18:01:29nicksieger enters the room.
18:04:49edwardam enters the room.
18:07:52Yurik leaves the room.
18:09:02edwardam leaves the room.
18:09:31octopod leaves the room.
18:13:35jbarnettegco cg
18:13:54jbarnetteWow, focus doesn't follow my mouse on Mac OS X. A revelation!
18:15:31wycats leaves the room.
18:18:44edwardam enters the room.
18:24:42c0sin_ leaves the room.
18:28:06neelance_ enters the room.
18:28:42joachimm enters the room.
18:31:38headiusevan: what's in portland?
18:32:07neelance_ leaves the room.
18:33:13neelance_ enters the room.
18:35:09jackdempsey leaves the room.
18:35:19c0sin enters the room.
18:35:37neelancehi - can someone tell me what the sha1_hash_string check in cpu_unmarshal is used for?
18:37:02neelance leaves the room.
18:38:31wycats enters the room.
18:38:50Defilerneelance: The SHA1 hash for a compiled ruby file is stored in the .rbc file
18:39:06neelancefor what purpose?
18:39:08Defilerbut you can feel free to hack that out for the Wii if you want. It's just for paranoia, as far as I know
18:39:13neelanceintegrity check?
18:39:20DefilerYeah
18:39:21neelanceah okay
18:39:33neelancebecause i already commented it out because it fails ^^
18:40:16octopod enters the room.
18:40:39DefilerThe rest of the code is expecting there to be however many bytes that digest takes (20?) at the top of the file
18:40:55Defilerbut you can just change a little bit and ignore its value
18:41:42nexcastellanHow does it fail?
18:42:20neelancethe result value is simply wrong so rubinius does not load the file
18:44:00gnufied leaves the room.
18:47:37neelanceis there some quick way to print out a readable version of binary data like the digest result of the sha function?
18:47:58drbrainneelance: inspect
18:48:15drbrainor, .hexdigest, if you have the object
18:49:08neelancein C code??
18:49:35Defiler_inspect(sha1_blah_blah_thing_that_produces_a_string_object)
18:49:40Defileris one way
18:49:49neelanceah okay
18:50:43neelancebut there is no string object ^^ it ist stored in a simple char array
18:50:54neelanceunsigned char cur_digest[20];
18:51:03DefilerWell, then you can just printf it, right?
18:51:44neelanceno, because printf on binary data doesn't really produce readable results
18:52:16nakajima enters the room.
18:52:23thehcdreamer enters the room.
18:52:28binary42 leaves the room.
18:52:34DefilerOh, I see what you are saying. It is the binary digest in a char array
18:52:39DefilerNot the string digest
18:52:43neelanceright
18:52:49dfg59 enters the room.
18:53:28neelancei just wondered if there is some quick way for example to print a char array as numbers from 0 to 255 or something like that
18:53:44DefilerProbably some arcane printf format string
18:53:49neelance^^
18:54:02Defilerbut I would just copy and paste it into irb and convert it there :)
18:54:31neelancethere is no copy+paste on the wii xD
18:55:06bricolage enters the room.
18:55:14DefilerI wouldn't bother, to be honest. Just delete the code that checks the signature in cpu_marshal.c
18:55:51Defilerline 614 in that file in my checkout, potentially elsewhere in the main branch
18:56:30neelancei already did so and rubinius works
18:56:37neelancebut i want to know why it fails
18:56:55neelancebecause there may be other problems which have the same reason
18:57:27nexcastellanYou could trivially write some C code to dump the values. Only "gotcha" is to output each as %d instead of %c.
18:57:32DefilerOh, check out sha1.c in shotgun/lib
18:57:44DefilerThere's some commented-out code at the bottom that looks right at first glance
18:57:47DefilerFor printing what you wnat
18:58:03joachimm_ leaves the room.
18:58:38neelanceseems to be some kind of quick check if sha works, i will try to run this on the wii...
18:59:01DefilerYeah, but the printf there is producing a hex representation
18:59:14gnufied enters the room.
19:02:18rue leaves the room.
19:02:53neelancehmm, the test produces a different result on the wii than on my pc
19:03:04rue enters the room.
19:03:51mutle_ enters the room.
19:05:12rueMooblers
19:05:23DefilerWhat kind of CPU is in the Wii?
19:06:09bricolageIBM "Broadway"
19:06:14bricolageit's the Nintendo Cube CPU
19:06:30bricolagePowerPC
19:14:23mutle leaves the room.
19:17:08eventualbuddha leaves the room.
19:20:17wycats_ enters the room.
19:22:06masswii, ps3 and xbox 360 all have ppc-based ibm chips, all custom
19:22:29masstri-core 360 chip, or the G3+bag of cells of the ps3
19:24:26dctanner leaves the room.
19:36:57wycats leaves the room.
19:38:29boyscout1 commit by Christopher Thompson
19:38:30boyscout * Add rb_cvar_defined, including specs.; e806d67
19:42:13jammii thought ps3's cell was ppc970-basec
19:42:16jammibased
19:42:36jammi7 ppc970 "G5" cores
19:42:42DefilerYeah, it is.
19:42:52DefilerThough cut down pretty far from the 'retail' 970
19:43:17wyhaines leaves the room.
19:43:27jammiat least it scores pretty well in folding@home and likes
19:43:34wyhaines enters the room.
19:43:50rubuildius_ppcChristopher Thompson: e806d67ad; 2535 files, 8414 examples, 28047 expectations, 0 failures, 0 errors
19:43:52drbrain"pretty well" is an understatement
19:44:42DefilerYeah, it performs extremely well with code that is well-scheduled and predictable
19:44:45DefilerCool system
19:45:32jammiiirc, gc and wii on the other hand are "G3" -based
19:47:27rubuildius_ey64Christopher Thompson: e806d67ad; 2535 files, 8415 examples, 28025 expectations, 0 failures, 0 errors
19:48:25drbraina year ago the PS3 was doing 55% of all teraFLOPS on folding@home
19:50:27drbrain"[if folding] using the most efficient CPUs currently available, would use at least 2.8 megawatts of power per petaFLOPS"
19:50:37drbrain"slightly more than the world's first and only petaflop system"
19:53:18ezmobius enters the room.
19:55:04neelancehmm, the problem seems to have something to do with byte-order...
19:56:02DefilerThe rbc files (and hence, the output of cpu_marshal, etc) are meant to be in network byte order
19:56:11Defilerbut I can't recall how we detect/enforce/ensure that
19:56:21neelanceno not with the rbc files themselves
19:56:37DefilerYeah, I know you mentioned they were working
19:56:39neelancesome memory copy operation in the sha algorithm produces a different result
19:56:45Defileraah
20:02:23neelancethe actual data is copied into a structure with a char and an uint32_t array - and the uint32_t values are wrong
20:02:23rue leaves the room.
20:03:35rue enters the room.
20:05:57neelanceoh, it's not a struct, it's an union
20:06:49nexcastellanIt's probably not taking byte order into account. You could probably just add a swap step.
20:07:18nexcastellanThough there's probably an sha1 implementation around somewhere that takes that into account already.
20:08:07nexcastellanOr wait, sha1.c has #if !CONFIG_BIG_ENDIAN. Have you tried toggling that?
20:08:14wycats_ leaves the room.
20:09:22ijcd enters the room.
20:11:40twbray leaves the room.
20:12:28mutle enters the room.
20:13:09neelanceyeah i tried this, but it does not fully work
20:13:48neelancebut this is the reason
20:14:06dctanner enters the room.
20:16:11neelancebecause the values i print out are right when reversed
20:28:19wycats enters the room.
20:29:35dctanner leaves the room.
20:30:09dctanner enters the room.
20:30:10mutle_ leaves the room.
20:33:41nexcastellanAre "it" tests in the specs always run in sequential order?
20:34:37ezmobius leaves the room.
20:35:20gnufied leaves the room.
20:39:38nicksieger leaves the room.
20:43:28Defilernexcastellan: Generally, but it is up to the runner
20:43:45Defilernexcastellan: In the CI process, we randomize it to avoid hiding any order dependence
20:43:52nexcastellanOkay. I've written my tests so that order doesn't matter. Seems to be the best general policy. :)
20:45:15DefilerYeah, relying on order would be a bad idea
20:48:13boyscout1 commit by Christopher Thompson
20:48:14boyscout * Add rb_cv_get, rb_cvar_get, rb_cv_set, rb_cvar_set.; a848feb
20:48:24dctanner leaves the room.
20:49:29nexcastellanGah, rmagick just keeps on requiring unimplemented stuff. I wonder how much I have still to implement.
20:51:07Defilerrmagick is the rails of MRI C extensions
20:51:13DefilerThe final borderline
20:51:45jbarnetteI should really try out Johnson now; there's a fair amount of squicky C in there
20:52:00nexcastellan:) Well, that makes me feel a bit better. Is there any way to get it to spit out how many symbols it's not going to be able to lazy-symbol-bind? Right now, I'm just doing one or two at a time.
20:53:37rubuildius_ppcChristopher Thompson: a848feb0a; 2536 files, 8417 examples, 28058 expectations, 0 failures, 0 errors
20:53:43twbray enters the room.
20:57:31rubuildius_ey64Christopher Thompson: a848feb0a; 2536 files, 8418 examples, 28036 expectations, 0 failures, 0 errors
20:57:57DefilerThere's probably some fancy 'ld' magic to get it to give you that output
20:58:02Defilerbut I have no idea what it would look like :)
20:58:48ezmobius enters the room.
21:07:20neelancehey, i got it working
21:08:36neelanceseems like the current implementation of handling big/little endian in sha1.c is not working
21:10:07neelanceshould i create a patch?
21:15:04drbrainneelance: yes, if it is broken for you
21:15:09nexcastellanDefinitely!
21:16:19neelancethe only problem is that i don't know if the sha result is correct compared to the official specification / other sha implementations
21:19:05drbrainneelance: Digest::SHA1.hexdigest '' # => "da39a3ee5e6b4b0d3255bfef95601890afd80709"
21:19:10drbrainneelance: that is your test :)
21:20:13neelanceis this from a spec?
21:21:04neelancebecause my current fix would make sha1 behave the same on big endian system like on little endian systems
21:22:04drbrainneelance: yes
21:22:39drbrainneelance: just compare to ruby, and you'll know when it's working
21:23:27nexcastellantwo test vectors: http://www.febooti.com/products/filetweak/members/hash-and-crc/test-vectors/
21:24:15neelancethx
21:25:29neelanceok, it is correct
21:25:40wycats leaves the room.
21:25:54wycats enters the room.
21:26:38neelancebut why has no mac powerpc user complained yet?
21:27:08neelancetheoretically the check should fail there, too
21:27:57drbraincould it be a cross-compiling problem?
21:28:53rueInteresting docs
21:29:08neelanceyou mean that normally the compiler automatically introduces some byte swapping?
21:30:02cremesneelance: i fixed a bunch of sha1/md5 endian problems many months ago; i also run rubuildius_ppc so it's pretty easy for me to test
21:30:17drbrainneelance: there was a problem in 10.4's ruby where it pack and unpack used the wrong endianness
21:30:56drbrainsince 10.4 was cross-compiled for PPC from an intel machine, and there are bugs in pack/unpack
21:35:22rue leaves the room.
21:36:06rue enters the room.
21:37:09neelancemaybe i should create a patch and someone wit a ppc mac could try it?
21:37:22drbrainneelance: please
21:37:56drbrainso, on the CPP branch, builtin_array.cpp errors with:
21:38:06drbrainbuiltin_nativefunction.hpp:4:17: error: ffi.h: No such file or directory
21:38:28nexcastellanHow do I get rubinius to dump out the bytecodes, etc.?
21:38:50imajes enters the room.
21:39:14drbrainnexcastellan: bin/rbx describe ?
21:39:20imajes leaves the room.
21:39:22nexcastellandescribe, right. Thanks.
21:39:43imajes enters the room.
21:39:58gnufied enters the room.
21:41:17blakewatters leaves the room.
21:51:30blakewatters enters the room.
21:53:51radarek leaves the room.
22:08:31neelancehmm, seems like a made mistake somewhere, no need for a patch any more
22:11:13neelanceat least the problem is solved now
22:12:39nexcastellanWhat happened
22:12:41nexcastellan?
22:13:10neelancethe original version just seems to work now with the big endian flag set
22:13:25nexcastellanI've had days like that. :)
22:13:31neelancei thought i tried it before, but maybe i overlooked something...
22:15:57Yurik enters the room.
22:17:19rubuildius_amd64Christopher Thompson: a848feb0a; bin/ci failed! http://rafb.net/p/56C1JD49.html
22:17:20rubuildius_amd64Christopher Thompson: e806d67ad; bin/ci failed! http://rafb.net/p/uh76rG77.html
22:17:59nexcastellanBah, rubuildius_amd64, you big lier.
22:18:23bricolage leaves the room.
22:18:37nexcastellanNo cookies for you!
22:20:19ijcd leaves the room.
22:21:58jbarnette_ enters the room.
22:22:42enebo_ enters the room.
22:23:59enebo leaves the room.
22:26:34ijcd enters the room.
22:26:46blakewatters leaves the room.
22:30:39ijcd_ enters the room.
22:33:05wycats leaves the room.
22:33:40chris2 leaves the room.
22:33:52dfg59 leaves the room.
22:35:03rue leaves the room.
22:35:36rue enters the room.
22:37:14octopod leaves the room.
22:38:52jbarnette leaves the room.
22:43:00wycats enters the room.
22:43:01jbarnette enters the room.
22:50:41ijcd leaves the room.
22:53:21AndrewO leaves the room.
22:54:21imajes_ enters the room.
22:55:10moofbong leaves the room.
22:59:04jbarnette_ leaves the room.
23:01:00imajes leaves the room.
23:02:01imajes_ leaves the room.
23:02:32yugui enters the room.
23:06:55Arjen_ leaves the room.
23:07:49boyscout1 commit by Ryan Davis
23:07:50boyscout * Minor refactorings.; 5fa92dc
23:10:21zenspiderboyscout, you suck.
23:11:18rubuildius_ppcRyan Davis: 5fa92dcbc; 2536 files, 8417 examples, 28058 expectations, 0 failures, 0 errors
23:12:02zenspiderrubuildius_ppc, I have problems trusting you when you come back that fast
23:13:25chovy_ enters the room.
23:13:58chovyhello
23:14:05chovyis this for Ruby Rubinius?
23:14:16nexcastellanYes it is!
23:14:20chovyheh
23:14:22chovynice
23:14:59nexcastellanEvan's away at another conference today, so it's quieter than usual.
23:15:18chovycan I use rubinius to write a downloadable desktop app that is cross-platform? My understanding is rubinius is a runtime environment (like java)...
23:16:00drbrainit does not include its own widget set
23:16:04nexcastellanRubinius is an alternate implementation of Ruby. Ruby isn't normally used for desktop applications, though TrollTech's Qt/Ruby bindings certainly allow it.
23:16:18drbrainyou could do the same using a cross-platform gui toolkit on ruby
23:16:29drbrainor shoes
23:16:30chovydrbrain: like fx or wx?
23:16:36nexcastellanI'm not convinced it is the best platform for a cross-platform desktop app at this point, though. There are some deployment issues, for example.
23:16:39ryanloweJRuby+Eclipse RCP would be interesting for cross-platform maybe
23:16:55nexcastellanI've done plenty of cross-platform desktop apps in C++ using Qt.
23:17:14nexcastellanPackaging is a pain, but your code pretty much just compiles across all three major platforms.
23:17:20rubuildius_ey64Ryan Davis: 5fa92dcbc; 2536 files, 8418 examples, 28036 expectations, 0 failures, 0 errors
23:17:24nexcastellanWhat sort of app are you wanting to do, chovy?
23:18:10chovynexcastellan: well, ease of installation would be ideal for the end-user (non-techies). but basically a simple app that does a SOAP request to a remote server and parses the results in a viewable format to the user.
23:18:52Maledictus leaves the room.
23:19:01chovys/SOAP/RSS|WSDL|SOAP/ etc.
23:19:29nexcastellanWell, creating install packages would be up to you regardless of the language you decide on. And this can be a real pain in the behind. But Ruby (both the "standard" ruby and Rubinius) are slightly more work right now than, say, C++ to create install packages for your resulting application.
23:19:38chovyand perhaps send results of the request to a central db server that I run.
23:20:01tarcierinex: hopefully .rba will fix that
23:20:18nexcastellanYeah, Rubinius is certainly heading down a road that should make it much easier to deploy.
23:20:32nexcastellanAs tar says. But I don't think it's there yet.
23:20:50chovyk, so I need to decide on a toolkit (like fx or wx) that works on mac/win/linux, and then decide on an installation package for the EU?
23:21:00nexcastellanEU?
23:21:07chovythe the rest is relatively straight forward?
23:21:10chovyEnd User
23:21:39nexcastellanAhh. Well, you will need separate packages for each platform (OS X, Win, Linux, and probably multiple ones for Linux).
23:21:53chovymy only requirement really is that its dead stupid to install...like a browser or something.
23:21:55nexcastellanAnd of course, that means you'll need Windows, OS X, and Linux yourself.
23:22:01chovydownload and double-click
23:22:15chovyk, i've got the three OSs at my disposal.
23:22:34nexcastellanAnyway, like I say, I don't think Ruby or Rubinius is the right choice for you at the moment, though Rubinius will certainly be worth looking at in the future for this sort of thing.
23:22:38dysinger enters the room.
23:22:49tarcieriThe distant future... the year 2000
23:22:50zenspiderdead simple to install == no install or at least no installer
23:23:03chovyi don't mind being a guinea pig if its even close to being a realistic solution.
23:23:22nexcastellanFor now, though, I'd suggest picking a different language you are familiar with, and then looking around at cross-platform toolkits that handle widgets and ideally, network stuff.
23:24:00chovywell, my users aren't techie, so they should be able to just pick "mac.dmg" or "win.exe" or "linux.deb, etc" to download the file, and double-clicking would do the rest of the install.
23:24:04nexcastellanOthers here can probably give you a better idea of how close Rubinius is to a state where you could expect to easily create install packages for your own app, bundling Rubinius, for the three major platforms.
23:24:24zenspiderto be fair... ruby itself isn't a very good choice for cross-platform gui/desktop apps... but I don't think any app is a very good choice for that
23:24:28nexcastellanWell, that part would be entirely up to you and really has nothing to do with Rubinius or C++ or anything else.
23:24:55chovyk
23:25:06nexcastellanzenspider, I had good luck with C++ and Qt. :) You still end up writing three (or in our case, many more than three) install things, though. What fun.
23:25:19chovyheh
23:25:19nexcastellanChovy, worth looking at Java as well.
23:25:22zenspiderchovy_: dmg isn't an executable... it is a disk image format. BUT... the standard for osx is to have a drag/droppable app inside and nothing more
23:25:29zenspideruser copies app anywhere they want, plain and simple
23:25:47nexcastellanJava has the widget and network libraries built in. Only problem is actually bundling a Java runtime.
23:25:52zenspiderI dunno if apple is still supporting the "internet" dmgs or not
23:26:00zenspiderthose unpacked themselved and dumped into your desktop
23:26:12chovyk
23:26:22chovyperhaps it isn't doable for my skill-level.
23:26:37zenspiderthe problem I've seen is that NO system out there produces 100% native widgets and layouts on every platform
23:26:51chovywas looking for java/perl/php/ruby solution that would allow a downloadable app cross-platform.
23:27:05zenspiderand really... I don't think that is problem to be solved... each UI has it's own philosophy and guidelines and they aren't compatible
23:27:12zenspiderchovy_: how about a web app straight up?
23:27:19tarcierichovy: there's py2exe for Python
23:27:22chovyi've looked into GTK, WX, and FX really.
23:27:25pauldix leaves the room.
23:27:28tarcierinot exactly cross platform
23:27:30nexcastellanOooh, yeah, web app straight up. That's a good approach.
23:27:53headiusnexcastellan: gotta be fair to jruby here though...build once, package once, and it runs anywhere java does
23:27:56nexcastellanYou'd need to host it yourself, and you'll end up fighting with browser incompatibilities, but that's perhaps an easier solution.
23:28:10chovyi'm doing a web app too...this is more of a downloadable tool to supplement the web site that they run on their own desktop.
23:28:16zenspiderit is about the only way to really do it cross-platform and meet user's expectations (since they are lower/different for web apps)
23:28:49nexcastellanheadius is right, jruby is worth a look as well. You'd still need to deal with end-users not having Java runtime installed (just as you would with a Java solution), but at least lots of people have solved that problem. :)
23:28:52chovyjruby ?
23:29:03chovyk
23:29:06nexcastellanjruby, like Rubinius, is an alternate implementation of Ruby.
23:29:29chovyk
23:29:43chovyso i'd actually be writing ruby for a java interpreter?
23:29:48nexcastellanMRI Ruby is the "standard" version of Ruby. There are a number of alternate implementations. JRuby is Ruby done in Java. Rubinius is Ruby done in Ruby. That's not the whole story, of course, but still.
23:30:16nexcastellanYes, as I understand it. Headius is the jruby man. :)
23:30:25chovycool
23:30:27headiusI dabble
23:30:29chovythanks for the insight
23:30:48nexcastellanWorth considering as well is writing a java web applet. Though I haven't seen one of those in years.
23:31:32headiusyou can deploy jruby as an applet also
23:31:58chovyor flash too, depending on what the resource's crossdomain.xml policy is.
23:32:01NoKarmawasn't there a java irb applet somewhere?
23:32:09nexcastellanOoooh. That probably shouldn't surprise me given how easy it is to convert a Java app to an applet, but it's still cool, Headius.
23:32:17headiusNoKarma: yeah, works fine
23:32:35headiusand more stuff, like full screen opengl
23:33:00nexcastellanChovy, what programming languages do you know right now?
23:33:16chovyjust web scripting languages
23:33:24chovyphp, perl, ruby.
23:33:29chovylittle java, but not much
23:34:11NoKarmaooh, that HotRuby Ruby JS VM thing came just to my mind
23:34:20NoKarmait wasn't touched since January :(
23:34:42imajes enters the room.
23:34:51headiushotruby is a toy and probably will never be more than that
23:34:53chovydoes rubinius support FX (if that question even makes sense)?
23:35:02rue leaves the room.
23:35:42drbrainchovy_: AFAIK, nobody has tried
23:35:46NoKarmaheadius: true. But it's a damn cool tool :)
23:35:55nexcastellanWell, it may be worth your while taking a look at QtRuby. I just think you aren't quite aware yet how frustrating it can be to create installation packages, even bad ones. :)
23:35:57NoKarma*toy
23:35:59drbrainchovy_: at this point, you don't want to use rubinius for a production app
23:36:06rue enters the room.
23:36:13chovyprobably won't work, since I need it to get around any same-origin security restriction.
23:36:27chovydrbrain: even just for a proof-of-concept?
23:36:40zenspiderchovy_: let me say outright... rubinius is NOT production ready and won't be anytime soon.
23:36:42drbrainchovy_: not really, no
23:36:46chovyk
23:37:29chovysounded like a cool project from the Deploying with Capistrano book's "Future of Ruby" section at the end.
23:37:37heycarsten leaves the room.
23:37:55NoKarmazenspider: Are you planning to further worn on multiruby?
23:38:00NoKarma*work
23:38:00nexcastellanThat said, as Rubinius is "just" a reimplementation of Ruby, if you decide to write your application in Ruby, you will one day be able to run it in Rubinius. :)
23:38:12chovyk
23:38:49cremeszenspider: rubuildius_ppc comes back so fast because i have it polling every 2 minutes for updates; please trust it! :)
23:38:57chovyany other ideas on getting a middle-man scenario? <xml_feed> <= client's IP => <my site>
23:39:19chovyhitting <xml_feed> <=> <my site> would result in an IP ban if it got any traffic.
23:39:56drbrainchovy_: not really on-topic for #rubinius
23:40:11chovytrue
23:40:22chovythanks for the feedback :)
23:40:33nexcastellanGood luck, Chovy!
23:41:24chovythanks
23:42:44ruedrbrain: Update your cpp checkout
23:43:04cremes leaves the room.
23:44:47drbrainrue: no different
23:44:58drbrainbuiltin_nativefunction.hpp:4:17: error: ffi.h: No such file or directory
23:45:09drbrainI ran rake clean; rake build
23:45:16drbrainafter git pull
23:46:47antares_ leaves the room.
23:47:24wycats_ enters the room.
23:48:41wycats__ enters the room.
23:48:46ruedrbrain: e373793 ?
23:49:46drbraingit log | head -1 says: commit e3737937f698c4cd0342eeb6761ee710e8f2d0a4
23:49:51drbrainrue: so yes
23:49:59wycats___ enters the room.
23:50:07drbraindo I need to install ffi somewhere?
23:50:13wmoxam leaves the room.
23:50:29rueHm, that is the external libs libffi
23:51:15ruedrbrain: Should be external_libs/libffi/include/ffi.h, see if a manual configure works
23:52:24wycats____ enters the room.
23:53:28wycats leaves the room.
23:53:36drbrainrue: well, I might be confused
23:53:46drbrainin step 5 in README-C++ I did cd vm
23:53:50drbrainthen rake build
23:54:01drbrain... but if I do rake build from toplevel I get this:
23:54:12drbrainhttp://rafb.net/p/qKEAzY53.html
23:54:16wycats____ leaves the room.
23:54:25wycats_ leaves the room.
23:54:58wycats enters the room.
23:55:33drbrainswitching that Dir.mkdir to mkdir_p gets me along a bit, but I end up erroring in the same spot
23:55:57wycats___ leaves the room.
23:56:42imajes leaves the room.
23:57:13neelancezenspider: hi, still interested in rubinius on the wii?
23:57:49drbrainrue: eep! external_libs/libffi/include/ffi.h: No such file or directory
23:58:07drbrainso, some dependency is missing
23:59:42wycats leaves the room.