Index

Show enters and exits. Hide enters and exits.

00:05:20tmm1http://pastie.org/1009411
00:05:27tmm1missing assert.h?
00:11:05brixentmm1: something you are building is defining NDEBUG
00:19:29tmm1ooh this is a tricky one
00:19:35tmm1 st_foreach(RHASH_TBL(nslist), iterate_ns_hash, self);
00:19:38tmm1that's the offending line
00:19:47brixenoh yeah, that's right
00:19:49brixenargh
00:19:54tmm1without assert.h, it compiles fine
00:20:10tmm1with it, i get
00:20:13tmm1ruby_xml_xpath_context.c:224: error: invalid use of void expression
00:20:26brixenyeah
00:20:28brixenlet's see
00:21:03brixenhm, perhaps a function here then
00:21:19brixenthat prints that to stderr rather than using assert
00:21:21brixenand returns obj
00:21:49brixenthat == "RHASH_TBL/RHASH is not supported"
00:23:09tmm1hmm yea, ideally it'd be compile time i think
00:23:18brixen:)
00:23:27brixenwell, yes, how would you define those macros then?
00:23:44tmm1i'm thinking. i tried #error but that didn't work =P
00:24:06brixenheh, yes I tried that too
00:24:22brixenthe runtime warning sucks
00:24:28brixenwe could just leave them undefined
00:24:39tmm1#define ASSERT_ON_COMPILE(pred) switch(0){case 0:case pred:;}
00:24:43brixenbut most users of C ext won't know why the build fails
00:24:43tmm1heh
00:25:17tmm1yea printing something out at runtime is probably easiest
00:25:26brixenhmm interesting
00:25:32tmm1in this case it would have crashed right after but atleast you'd know what happened
00:26:25tmm1brixen: that's something joe is using in memprof, but the compiler error is not very useful
00:27:35brixentmm1: well, can't we make the compiler error output better?
00:28:12evantmm1: i think i had it be
00:28:36evan#define RHASH_TBL ("sorry charlie, this won't fly" && won't compile)
00:29:14brixenheh
00:29:33brixenwhere "sorry charlie.." is "RHASH_TBL is not supported on Rubinius"
00:29:36brixen:)
00:30:45evanyeah yeah.
00:30:46evan:D
00:31:33tmm1well, you could just add an include <assert.h> to ruby.h
00:31:41evanyeah
00:31:44evanthats a bug
00:31:45evanit should be.
00:32:02evanthe real issue is using RHASH_TBL
00:32:06evanyou know how to change that?
00:32:32evanuse rb_hash_foreach instead
00:32:39tmm1- st_foreach(RHASH_TBL(nslist), iterate_ns_hash, self);
00:32:42tmm1+ rb_hash_foreach(nslist, iterate_ns_hash, self);
00:33:02evanyep.
00:55:29tmm1wow
00:55:33tmm1it works
00:56:10evanhot damn!
01:01:11tmm1Assertion failed: (current_->exception_handler()), function build, file vm/llvm/cfg.hpp, line 216.
01:01:15tmm1on the spec suite
01:02:22evanthats.. weird.
01:02:22tmm1on my spec suite that is
01:02:35evanwait
01:02:37evani'm confused.
01:02:43evanhow did you get that
01:04:36tmm1i'm trying to narrow it down
01:04:42evank
02:09:25fowlduckalright, now, lets see about that .rbc stuff
02:13:25brixenfowlduck: Compiler.compiled_name can be overridden at runtime
02:13:50brixenyou could define that in your own rc file
02:14:01brixenand use whatever scheme you want
02:14:05fowlduckyou know...if the files just started with . that would solve the only remaining issue
02:14:13brixenno, it really wouldn't
02:14:17fowlduckreally?
02:14:20brixenit might for you ;)
02:14:21fowlduckhas no idea
02:15:25brixenyou have to take apart every filename to insert the .
02:15:43brixenwhy pay the penalty for that when you can just ignore the files in your editor or in git?
02:16:16brixenbut anyway, this is very easy for you to customize without rbx having to support it
02:17:11fowlduckhow again?
02:17:59brixensee kernel/loader.rb:91
02:18:06brixenrbx will load a .rbxrc
02:18:21brixenRubinius::Compiler.compiled_name is just a plain old ruby method
02:18:27brixenmake it do whatever you want :)
02:18:34fowlduckah, i see
02:19:42brixensee lib/compiler/compiler.rb for the default def of Compiler.compiled_name
02:20:22brixenpostmodern: looks like I've almost got rbx building with 1.9.1+
02:20:29brixenpostmodern: doing a few more checks
02:20:37brixenI should say, it is building
02:20:42postmodernbrixen, badass!
02:20:47brixenbut I'm cleaning up some warnings and stuff
02:29:06fowlduckchanging that method results in exceptions. boo
02:29:34brixenwhat exceptions?
02:30:56brixendinner, bbl...
02:31:06fowlduckhttp://pastie.org/1009527
02:31:09fowlduckk, later
02:31:44brixenhaha
02:31:56brixenwell, you can't just put a . on the front of the path :)
02:32:17brixentry pulling the path apart and inserting a . on the filename, then putting it back together
02:32:48fowlduckah, that's the issue *facepalm*
02:32:57fowlducki figured it was just the filename
02:33:04brixenFile.dirname, File.basename
02:33:10brixenheh
02:33:13brixenok, have fun!
02:33:16brixenbbiab...
02:35:12fowlduckgot it
02:35:40fowlduckhttp://pastie.org/private/infoiyd3y8j5yapcmbnb2w
02:37:10fowlducki wonder if that's reliable
02:42:27fowlduckyou know, looking at that backtrace i didn't notice this line: Caused by: No such file or directory - ./Users/nate/.rvm/rubies/rbx-1.0.1-20100603/lib/bin/irb.rbc (Errno::ENOENT)
02:42:36fowlduck*facepalms again*
02:46:07postmodernfowlduck, that would be some bad code trying to load files using *
02:46:14postmodernfowlduck, and not *.rb
02:46:59fowlduckwhat?
02:47:20fowlduckupdated a wee bit
02:47:55fowlduckpostmodern: i don't follow
02:52:54tarcierihrmm, how hard would it be to embed rbx into a C-only environment :)
02:53:51tarcieriI've been meaning to play around with llvm-g++ and the "C" machine architecture
02:53:54tarcieriis that insane?
02:53:56tarcieriheh
02:58:25fowlduckhrm, segfaulting rubinius
02:59:20fowlduckbah
04:40:31tarcierimaybe a better approach would be to write an LLVM backend for this crazy intermediate language
04:43:11evantarcieri: that sounds cool.
04:45:43tarcieriI'd really like to experiment with getting some kind of scripting language interpreter onto this platform
04:46:11tarcierithey pretty much wrote their own IL for C ala TenDRA, then patched early versions of GCC to output it (note: not g++)
04:46:29tarcieriand got sued by the free software foundation for violating the GPL, heh
05:11:03evantarcieri: oops.
05:11:19tarcieriheh, yeah
05:11:33evanwhat is the thing you're looking at?
05:11:40tarcieriOpenTV O-Code
05:12:10evanand what does it do?
05:12:23tarcieridigital TV set top box middleware
05:12:42tarcieriI mean, it sounds fairly cool...
05:12:46tarcieri"The OpenTV programming model is an asynchronous message-based environment. OpenTV applications make o-code function calls to the OpenTV library. The library routines initiate operations or requests. They do not block until the operation has completed; they return immediately. When an operation or request completes, a message is sent to the application indicating completion. Applications consist primarily of a message loop, which retrieves messages f
05:12:54tarcierifully async!
05:12:55tarcieriw00t!
05:20:21BrianRicehuh
05:21:32BrianRicethat's pretty cool, from an erlang perspective, and also from a tv media analytics perspective
05:22:28brixenheh, which BrianRice would know nothing about whatsoever :)
05:22:50evanbecause BrianRice works in radio?
05:22:59brixenum, yeah :)
05:23:01tarcierilol
05:23:10brixentarcieri: that daily show is hilarious! thanks for the link
05:23:20tarcieriBrianRice: dude my first thought when people started describing these STBs was "USE ERLANG!#$!#$!#"
05:23:21brixenof course, the daily show always nails it
05:23:23tarcierithat would so fail
05:23:25tarcieribrixen: indeed!
05:23:57BrianRicetarcieri: yeah some people just emulate it in c++. I've been paid to do that for restricted embedded environments
05:24:06tarcierithese boxes don't do C++
05:24:07tarcierilol
05:24:23tarcierithat's why I'm... looking at LLVM to cross-compile C++ to C, then to O-Code
05:24:23tarcierilol
05:24:36BrianRiceinteresting. well, whatever works.
05:24:45tarcierialthough if they have technical people who are good C(++) programmers with an intimate knowledge of their bytecode format
05:24:49tarcierithey should just bust an LLVM backend
05:28:02BrianRicethe c++ environment was 4mb ram + 6mb flash storage, on hm I forget which ARM chipset
05:28:15BrianRiceanyway, usually this is not a problem.
05:28:49BrianRiceoh well. time to read. gnite
05:30:50tarcieriheh
05:31:00tarcieriyeah our hardware is, uhh, slightly more powerful
05:38:43evanbrixen: i'm fine tuning the perf for ivar access of packed objects
05:38:49evangetting closer to even with normal ivar.
05:42:52evantomorrow... heap dump!
05:46:38brixensweet1
05:46:42brixen!
05:47:10brixenjust got a random sigbus :/
05:47:17evan:(
05:47:25brixenExecutable::Info::mark_inliners
05:47:46brixenabout to push the rbx/1.9 build stuff
05:47:55brixenfixing a couple 1.9 warnings
05:48:07evandamnit! that again.
05:48:10evanPOOP
05:48:14evani can't figure that one out.
05:48:18brixen:(
05:52:50brixenman I dislike 1.9's warning about shadowing an outer local
05:52:59evanditto.
05:53:04brixenit's named node because it's a node!
05:53:13brixenand yes, my function got passed a node too!
05:58:35brixenevan: should we clear all the openssl ext warnings someday?
05:58:44evanyes.
05:58:56evanI thought I had them cleared actually
05:59:42brixenreally?
05:59:46brixenI get a ton building
05:59:48brixenalways have
05:59:50evanok
05:59:52evanmaybe not then!
05:59:55brixenheh
06:00:11brixenit was probably the other openssl ext :)
06:05:17brixenjc00ke: hey man
06:08:40jc00kebrixen: sup dude, how was RailsConf? Bang up job on Evan's game! ;-)
06:08:48evanha! thanks!
06:08:54evanglad everyone seemed to enjoy it
06:09:03jc00keConan ain't got shit on you
06:09:08evanyou're too kind.
06:09:23brixenjc00ke: hah, that was funny
06:09:27brixenand fun :)
06:09:27jc00keI was rooting for Brian, but he looked nervous
06:09:35brixennah, it was all an act
06:09:37brixen:)
06:09:59jc00keso remember how I was having problems getting rbx installed w/rvm?
06:10:08brixenyeah, vaguely
06:10:23jc00ketried getting help from Wayne but that shit don't work, so I'm just installing it directly
06:10:30brixendo you have an error I can look at?
06:10:40jc00keyeah, lemme find the gist
06:10:47brixenalso, about to push support for building with 1.8 or 1.9
06:11:15jc00kenice!
06:11:16jc00kehttp://gist.github.com/402495
06:11:29brixenC++ template warnings/errors are so crazy
06:11:32brixenevan: halp http://gist.github.com/443313
06:11:40jc00keso, I have 187 p249 as my default rvm ruby
06:12:15jc00kervm tries configuring but then balks (last line of http://gist.github.com/402495#file_rvm_install_rbx.log.sh)
06:12:37brixenhm that is so weird
06:12:58brixendid you try cloning rbx and running configure/rake directly?
06:13:13evanbrixen: yes, wonderful, wonderful g++ error output
06:13:31evanlike ramming a fork with 25 fingers through your eye
06:13:57jc00keyeah, it's running now, working through the specs I believe
06:13:57brixenevan: that and I have no clue what it's trying to say
06:14:12brixenjc00ke: ok, did you update rvm to latest before trying btw?
06:14:55jc00kebrixen: yes, I even removed the rvm src dir under .rvm & ran his update script, still didn't work
06:15:29jc00keBUT, I did create a new user on my system, installed rvm and then installed rbx in rvm just fine
06:15:34brixenevan: I changed int to size_t in the typedef of quark_map, but that did not fix the warning
06:15:46brixenI have no idea what freakin value it is referring to
06:15:48jc00keso there's gotta be something hanging around
06:16:05brixenjc00ke: hm, that is really odd
06:16:25brixenjc00ke: did you try rvm reset to get back to your system ruby?
06:16:31evanbrixen: why are you getting this suddenly?
06:16:33brixenalso, what is your system?
06:16:42brixenevan: compiling against 1.9, no clue
06:16:42jc00kebrixen: let me try that. Ubuntu 10.04
06:16:58brixenjc00ke: ah, I have an ubuntu 10.04 vbox, I'll try it
06:18:25jc00kebrixen: I ran rvm reset; rvm use 187-p249; rvm install rbx and it still failed
06:18:33evanbrixen: ug.
06:19:01evanjc00ke: you should ask wayneeseguin
06:19:04evani'm sure he'll know
06:19:23evanhe is expert.
06:19:37jc00keevan: yeah, I've asked him a few times but he hasn't been able to help
06:19:57jc00keI guess I could just blow away all my rvm shit & install fresh
06:20:12brixenjc00ke: well, rvm is great but rbx is so easy to build + install
06:20:24brixen1. clone, 2. configure, 3. rake
06:20:29jc00kebrixen: true, so I'm just going to do that
06:20:39jc00keyou symlink rbx as ruby in your path?
06:20:44jc00keor just use rbx?
06:20:49brixenI just use rbx
06:21:09brixenbut you can just symlink from your build dir too
06:21:27brixenbe aware, you should use rbx/ruby -S rake etc
06:21:39jc00kewerd, I have ~/bin set up so I'll just symlink through that
06:21:47brixenwhere MRI installs gems and litters gem exe's in your path, rbx puts them in one dir
06:21:50evanjc00ke: I leave ruby as MRI
06:21:55evanand rubinius as rbx.
06:22:18evanthey can happily cohabitate
06:22:21jc00keevan: so you have MRI installed as system?
06:22:24brixenyeah, I prefer to know which I'm running
06:22:30evani have about 18 versions of MRI installed
06:22:32evanyeah.
06:22:39jc00keall as system or with rvm?
06:22:44evansystem
06:22:54jc00kefuck dude, you're hardcore ;-)
06:22:55evan18, 19, macruby, jruby, rbx
06:23:23scooprdoes ironruby work with mono? ;)
06:23:30postmodernwhy does 1.9.2-preview3 put everything in ruby/1.9.1
06:23:33evanscoopr: so i've heard.
06:23:51evanhah
06:23:55postmoderni think someone pointed it out immediately on the mailing list when they announced it
06:24:02jc00kebrixen: so you're suggesting to always use ruby -S ... as well as rbx -S ...?
06:24:10evanbrixen: so, I added ">> 2" to key_hash() in lookuptable.cpp
06:24:34evanshaved autopack below non-autopack
06:24:43evanbecause the @ivar => index are stored in a lookup table
06:24:57brixenevan: sweet!
06:25:03evanand the straight object isn't as good of a hash
06:25:12evanbecause of the shared bottom 2 bits
06:25:15brixenjc00ke: I mean with rbx, but if you symlink rbx to ruby, then yes, with ruby :)
06:25:30evanhah
06:25:36evanof course, now I run without autopack
06:25:41jc00kebrixen: k, that's what I thought you meant
06:25:43evanand it's also better.
06:25:43evan:D
06:25:58evanbut both are faster than the old non-autopack
06:25:59brixenheh
06:26:04brixennice
06:26:09evana bit more tuning tomorrow.
06:26:25evani really think I want a better datastructure for the @name => offset map/hash
06:26:32evanneed to think about it
06:26:45evanor figure out a way to not do the lookup at all.
06:27:36brixenhm
06:27:50jc00kebrixen: you get any spec errors on 10.04 with latest master?
06:28:01jc00keI got 2 failures, 3 errors :-(
06:28:20jc00keall have to do with TCP
06:28:29evani've seen that
06:28:30evangist?
06:29:21jc00keevan, http://gist.github.com/443331
06:29:43evanweird.
06:29:55evanyou can safely ignore them
06:30:05brixenjc00ke: hm, haven't see those
06:30:26jc00keThat's twice tonight I got "weird" from you guys... that's always fun ;-)
06:30:33brixennetworking shit is so wonky
06:30:49brixenjc00ke: yes, for certain values of fun :)
06:30:55evanjc00ke: we're weird guys
06:30:59evanok, i'm going to get to bed.
06:31:01evannite!
06:31:03jc00keevan: ok, so just to double check, I do not need to create tickets
06:31:04brixennite!
06:31:18evanjc00ke: go ahead.
06:31:21evancreate them
06:31:26evanso we remember to check it out further.
06:31:42jc00kewill do. g'night!
06:31:58brixenjc00ke: put in there if you have any custom networking settings
06:32:06brixenother than vanilla install
06:32:25jc00kelike?
06:32:46jc00keAll I've done is edit my hosts file but that should have no effect
06:32:52brixen:)
06:32:58brixenwell, put that in there
06:33:03jc00keokey dokey
06:33:04brixenlike, what you added
06:33:28brixenediting hosts often has more effects than one expects
06:35:20jcookeI'll revert the changes to my hosts file and re-run the specs
06:45:56jc00keok
06:47:12jc00kebrixen: it takes upwards of 10 minutes to run ./bin/mspec spec/ruby/library/socket/tcpsocket/new_spec.rb
06:47:37jc00keI'll start fresh tomorrow & get this stuff into GitHub
06:47:53jc00keg'night
06:47:57brixenjc00ke: ok thanks!
06:48:00brixennight!
10:40:15lypanovaw crap, you guys talked too much and i missed most of the log
11:07:30dbussinklypanov: there's a site with the logs
11:09:20dbussinklypanov: http://donttreadonme.co.uk/rubinius-irc/index.html
11:32:03parndtsecret logs :/
11:48:22lypanovcool. thx dbussink !
12:02:57dbussinkparndt: they aren't secret
12:03:29parndtnot advertised in the topic
12:03:55dbussinktrue, probably disappeared when that was changed at some point
12:04:03dbussinkit has been in there as far as i can recall
12:04:08dbussinkand has been on the website too
12:04:54dbussinkah, it's still on the website at http://rubini.us/about/community
12:05:10parndtalright then..
12:06:04dbussinkit has never been intended to be secret in any way :)
12:06:30parndtJust making sure it was said somewhere.. :p
12:17:07dbussinkparndt: one of those things that's easily forgotten :P
12:17:18dbussinki always assume every channel to be publicly logged somewhere
12:19:11scooprI bet nsa has logs of every channel!
12:27:04dbussinkthey have everything!
12:27:25dbussinki've been in the pentagon once, so the us has everything on me :p
12:27:41dbussinknever had any problems entering the us though, i still suspect a connection there :p
12:28:52scooprwhen I form a superpowernation, I will call the military hq 'hexagon'.. perhaps even 'octagon'
12:29:01scooprjust to show my superiority
12:29:11parndtI'll use dodecahedron
12:29:46prophileI'll build mine out of a 6-dimensional hypertorus
12:29:55prophiletake that, physics as we know it
12:30:19dbussinkonly 6
12:30:21dbussink?
12:30:29parndtI'll construct my base out of Higgs Boson
12:30:39dbussinki'm going for the 11 dimensional googlegon build out of strings
12:31:42scooprI now see why they settled on pentagon
12:31:43dbussinkbut i'll bow for someone who builds their base from tachyons :P
12:33:11parndtMine will be powered by dilthium crystals
12:33:19parndtand it'll run on rubinius, green.
12:34:25parndtawkward and nerdy enough yet?
12:51:18dbussinkparndt: well, tachyons are actually a hypothetical particle, dilithium crystals are just nonsense :P
12:51:28parndtbazinga
14:29:12goyox86Hi people, i've switched my rails development stack to rbx, and i've a question
14:30:09goyox86When i tell rubinius don't generate rbc files, the performance gets affected, i mean the execution time?
14:30:28goyox86Im using of course the --no-rbc flag
15:50:53brixengoyox86_: --no-rbc does nothing, I'll commit a fix to remove that
15:51:11brixengoyox86_: you can use -Xcompiler.no_rbc to tell rbx to not create .rbc files
15:51:29brixengoyox86_: that means that rbx will have to recompile the rb source file every time
15:51:53brixenour bytecode compiler is quite fast, but there's really not a good reason to use this option
15:52:07brixenfinally, the runtime performance is not affected
15:52:37brixenbut depending on when you load a file, it may take longer to run some things (because rbx is having to recompile it instead of just loading the .rbc)
15:58:19goyox86mmm, thx @brixen
15:58:47brixengoyox86_: the best approach is just to ignore .rbc in your .gitignore and your editor
15:59:02brixennothing else cares about them but rbx :)
15:59:23goyox86yep , i've done this, yesterday i've ignored that in textmate too
16:00:11goyox86i've tried it coz i'm experimenting some hangs, in development mode using webrick
16:01:15brixenhmm
16:01:58brixenif you get a hang, get the pid from ps and do gdb -p to attach
16:02:07brixenthen do a bt and show us
16:02:20brixengdb -p <pid> rather
16:06:27goyox86i will, some times webrick becomes unresponsible, even while i try to send a Ctrl+C keystroke (sometimes)
16:07:00goyox86it takes a long time to exit te process, I'm running Leopard by the way
16:08:02goyox86I will attach gdb to see what's happening, se yaa in a (i hope ) few moments :-)
16:15:17evanhi hi
16:16:48brixenmorning
16:17:13brixenevan: I experimented with various ways to get compile errors out of RHASH
16:17:26brixenI'm making them functions that error and abort
16:17:34evancoolness.
16:18:49brixenevan: so, 1.9.2 defines -Wshorten-64-to-32 in CFLAGS
16:18:57brixenwhich of course we pick up for building exts
16:19:04brixenand a bunch of other warnings btw
16:19:06evanah, so we've had it the whole time.
16:19:09brixenyes
16:19:18brixenbut I still have no fucking clue
16:19:28brixenI asked dwaite to look at it and he couldn't figure it out either
16:19:33evancan you strip out that flag for now?
16:19:43brixenhmm, I could I suppos
16:19:48daschlhey guys, i try to build rubinius from source.. why do i need the "llvm" stuff and what happens if i install it without?!
16:19:50brixenit's the only warning from it though
16:19:50evanlets do that
16:20:01brixendaschl: what platform?
16:20:02evandaschl: you need it because thats what the JIT uses
16:20:16brixendaschl: we have a bunch of prebuilts and it will build from source if it needs to
16:20:24brixendaschl: just run ./configure and let it do its thing
16:20:53daschlah i see.. maybe (on my ubuntu) box a aptitude install llvm will have done the trick too?
16:21:02evandaschl: it might
16:21:13brixendaschl: you probably cannot use what it installs
16:21:26brixendaschl: what ubuntu?
16:21:30evandaschl: but if you want, give it a shot.
16:21:35daschl10.4
16:21:35evanit might not work
16:21:53daschlits ok for me if configure does the trick :>
16:22:04daschljust want to explore rubinius
16:22:07evandaschl: could you run "apt-cache show <llvm>"
16:22:11evanand gist that output?
16:22:19daschlsure!
16:22:19evanif some linux distros have LLVM
16:22:29evanwe should do some testing to see which distros can use their LLVM packages
16:22:34brixendaschl: we have a prebuilt that works fine for 10.04
16:22:49daschli want to build it from source to learn it :>
16:22:50brixendaschl: it takes just a minute to download and unpack it
16:23:02daschllearned linux through gentoo too ;)
16:23:05evandaschl: using the prebuilt is best.
16:23:06brixendaschl: the prebuilt is for llvm, you're still building from the source
16:23:18brixendaschl: read doc/getting_started.txt
16:23:42daschlevan, here you are http://gist.github.com/443852
16:23:51brixendaschl: if you want to compile llvm from source, ./configure --skip-prebuilt
16:24:10evandaschl: we can't use that anyway
16:24:12evanthats 2.7
16:24:13daschlbrixen, jeah i've tried that but got an error so i ran ./configure
16:24:17evani'm working on the upgrade to 2.7
16:25:38daschlok it seems with ./configure && rake it works "out of the box" :)
16:25:41brixendaschl: tried what exactly nd got what error?
16:26:34daschlbrixen, tried again, now there is no error (maybe because ./configure installed the llvm stuff for me?)
16:26:46brixenman, I have no idea
16:26:49brixenwhat did you try
16:26:52brixenexactly?
16:27:37daschlgit clone, cd rubinius, ./configure --skip-prebuilt
16:27:42daschlbut im sure i have it in my logs sec.
16:27:54daschloh not anymore
16:35:15daschlhey tests passing *hooray* thanks guys for helping out
16:35:22brixenyay!
16:43:35daschlbrixen, when i change a line of code in an .rb file of rubinius, do i have to recompile it?
16:45:58brixenif you change a .rb in kernel, you need to run rake build
16:46:12brixenif it's in lib or one of your own files, rbx recompiles automatically
16:47:41brixenarg, why am I getting a symbol not found now when I built this thing 50 times yesterday
16:48:14daschlis there some documentation online about the architecture of the code? where is a good "starting point"? :) i tried to find rbx.rb ;)
16:48:41brixendid you read the stuff in doc/*.txt ?
16:49:09daschlmaybe i should read all that first before asking again :D thanks
16:49:09brixentell me more about yourself and I'll tell you a good starting point
16:49:38brixenyeah, you might start with doc/table_of_contents.txt :)
16:50:00daschlok thanks for now ill dig into that and come back then :>
16:50:05brixenok
17:03:04brixen2 successful builds down, 3 to go
17:03:20brixenmy poor computer
17:11:10evanhehe
17:13:04toulmeanhey guys, I'm trying to play with usb, and ruby-usb is a pain to install. I finally got it to compile and behave, but it fails loading at runtime.
17:13:16toulmeandid someone try to do anything with ruby-usb with rubinius ?
17:14:12evannot that i'm aware of
17:14:14evanwhats ruby-usb?
17:14:57daschlmay i run rake without the testing after compiling?
17:15:20evanrake build
17:15:23evanwill just build and not test.
17:15:36daschlthanks :)
17:17:57evanbrixen: thoughts on LookupTable not converting a String to a Symbol?
17:18:01evanwe've never really used that
17:18:53brixenhmm
17:19:20evanI want to really treat LookupTable as an IdentityHash
17:19:49brixendon't we use strings in the platform conf
17:20:00brixenwhat do you mean by not converting a String to a Symbol?
17:20:08evanlook in lookuptable.cpp
17:20:12evanthe key_to_sym macro
17:20:13brixenredefine key_to_sym() ?
17:20:15brixenyeah
17:20:18evanjust don't call it.
17:20:22evanremove that macro entirely
17:20:38brixenso strings are raw references in a LT?
17:20:48toulmeanevan: ruby-usb is just a binding to discuss with the ruby interface of your machine
17:20:59toulmeansorry with the usb interface
17:21:17toulmeanso you can send low level signals to your usb ports.
17:21:20evanbrixen: yeah
17:21:27evanwe never put Strings in a LookupTable anyways
17:21:29evanthat I can tell.
17:21:34brixentoulmean: what do you mean by "fails loading at runtime" ?
17:21:47toulmeanbrixen: it uses dylib
17:21:59toulmeandyld
17:22:01toulmeandyld: Symbol not found: _usb_init
17:22:01toulmean Referenced from: /Library/Ruby/Site/1.8/universal-darwin10.0/usb.bundle
17:22:01toulmean Expected in: flat namespace
17:22:18toulmeanyou know. Some kind of after the fact error.
17:22:36brixentoulmean: where's the source, I'll look at it
17:23:01toulmeanbrixen: I forked it yesterday: http://github.com/atoulme/ruby-usb
17:23:10toulmeanlet me commit a few changes I found in a blog post.
17:24:22toulmeanbrixen: ok committed.
17:24:47toulmeanbrixen: I took the original source code and modified it as pointed at here: http://www.jedi.be/blog/2009/11/11/ruby-usb-libusb/
17:25:18toulmeanso the current source code assumes libusb-compat is installed with macports. The current source code only works with mac.
17:25:25brixenevan: well, if we don't use it, I can't see it mattering if we change it
17:25:32evanok
17:25:34evani might leave it
17:25:39evanjust musing and tuning.
17:25:42brixenI'm sure we did put strings in LT's at one point
17:25:49brixensince I wrote that on purpose
17:26:05evani figured there was a reason at some point
17:27:01brixenit seems like we could just use a Hash if we needed
17:27:42brixenalthough Hash isn't functional by the time eg kernel/platform is loading
17:31:20toulmeanbrixen: to give you some context, I got this for my bday: http://www.pixmania.ie/ie/uk/4654883/art/no-name/i-buddy-devil-usb-desktop.html
17:31:40toulmeanbrixen: it can be controlled via usb with python or ruby, some people hacked into it.
17:32:00brixenah cool
17:32:20evanheheh
17:32:22brixenwell, it would seem that it's not linking correctly
17:32:23toulmeanbrixen: if you want one, I can get one for you when I'm back in Europe this summer.
17:32:38toulmeanas a reward for all the help you guys pulled.
17:32:47brixentoulmean: aww that's so sweet of you and all... but I'll pass :D
17:33:01toulmeannow I need to be sure it was a nice gift.
17:33:03toulmeanyeah :)
17:33:04toulmeanok
17:33:36brixentoulmean: you said you installed libusb from macports?
17:33:43toulmeanyes.
17:33:47toulmeanand libusb-compat
17:33:47brixenk
17:34:57toulmeanbrixen: of course libusb-compat real interest is usb.h, installed under /opt/local/include/usb.h
17:35:03toulmeanI guess that file changed.
17:35:04toulmeanmaybe.
17:35:24brixenI don't get a libusb-compat in macports
17:35:30brixenlibusb installed though
17:35:53toulmeanyou don't ? can you see usb.h in the contents of libusb ?
17:36:02toulmeanport contents libusb
17:37:30brixenI just did sudo port install libusb
17:37:47brixenthen cloned, cd'd, rbx extconf.rb; make; make install
17:38:11brixenI get a different error though on require 'usb': Symbol not found: _st_add_direct
17:38:21toulmeansweet...
17:38:28toulmeanoh well.
17:39:00toulmeanI have seen a reference to a st.h
17:39:04brixenhm, why doesn't install install usb.rb ?
17:39:14brixenyeah, it's doing some st maddness
17:39:17brixenbut I could patch that
17:39:30toulmeanhave_header("ruby/st.h")
17:39:33toulmeanok.
17:39:47brixenand usb.rb requires 'usb.so' <rolleyes>
17:40:28brixentoulmean: I'll play with this a bit after I push the build stuff I'm doing
17:42:26brixen3 builds down, 2 to go
17:48:35evanwoop!
17:48:42boyscoutImprove LookupTable, PackedObject, and Object.get_ivar perf - 0f068f5 - Evan Phoenix
17:48:43boyscoutEnable gc.autopack by default - e92fc82 - Evan Phoenix
17:48:58evanon spec/ruby/core, it's the same speed.
17:49:10evanseems to be a little slower on the library specs, but they have a lot of wobble in them
17:49:12evanso it's hard to tell
17:49:17brixenyeah
17:49:19evanthusly, i'm turning autopack on by default.
17:49:24brixenok
17:49:57brixenyou should compare compiling lib or something
17:50:14brixensince the compiler uses a lot of ivars and is pure ruby
17:53:04evanok
17:54:39evanbrixen: on a trivial eval benchmark
17:54:46evaneval("a = 1")
17:54:57evanautopacked is 1.9s, nonpacking is 2.3s
17:55:07evanthe saved time is purely in allocation/gc
17:55:33brixencool
17:57:34toulmeanbrixen: don't break your back over it. It's really just twiddling.
17:57:57bcgevan: looks like in bignum.cpp I could expose big->mp_val()->sign to help MsgPack build but Im wondering if this should be handled another way? Here's what MsgPack wants to do: http://pastie.org/1010228
17:58:27evanbcg: oh weird.
17:58:28brixenack! I thought rvm fixed the gem env stuff
17:58:37evanbcg: sure, you can expose the sign
17:58:42evanbcg: put it behind a function
17:58:48evanand call the function from the macro
17:58:57brixenevan: http://gist.github.com/443976
17:59:10evanUG
17:59:11evanwtf.
17:59:14evanask wayneeseguin
17:59:19brixenk
17:59:49evanoh
17:59:56evanno, rvm didn't change this
18:00:02evanit's still exporting GEM_HOME
18:00:05bcgevan: k, thanks ...
18:00:13evanyou have to run some rvm command to have it unset those env vars.
18:00:37brixenwell, were do we fix it
18:00:41brixenit should not be this way
18:00:57evanthats the thing
18:00:59evanthere is no fix.
18:01:04evanrvm sets GEM_HOME
18:01:09evanand we respect that
18:01:21evanI guess we could detect the GEM_HOME for another interpreter
18:01:23evanand blow up
18:01:27brixenthat's going to be a huge problem
18:01:35brixenthere has to be a sensible fix
18:01:37evanit's been this way for a long time.
18:01:48evanso it's been a problem.
18:04:11wayneeseguinevan: issue?
18:04:55brixenwayneeseguin: same one we're discussing
18:04:55evanwayneeseguin: the whole GEM_HOME issue.
18:05:04evanif you use rbx with rvm still active
18:05:07evanit fucks things up
18:05:15evanwhere rbx was not built inside rvm
18:05:39evanbecause GEM_HOME points to whatever the current rvm interp is
18:05:54evanis there a way to not use GEM_HOME?
18:06:19wayneeseguinevan: During the install or .. ?
18:06:25evanat runtime.
18:06:28wayneeseguinNormal usage requires GEM_HOME to be set
18:06:30brixenwayneeseguin: this is not during any install
18:06:38evanbrixen: run 'env | grep GEM_HOME' and show the output
18:06:47evanwayneeseguin: why?
18:07:05evanit causes such havoc if you try and use an ruby runtime outside rvm then
18:07:10wayneeseguinFor gems & bundler to be respecting the correct gem homes
18:07:25wayneeseguinevan: ok I'm quite confused at what your saying currently.
18:07:36wayneeseguinevan: if you want something outside rvm, you do 'rvm use system ; rbx gem env '
18:07:42brixenwayneeseguin: so, here's the steps
18:07:46wayneeseguineg 'rvm use system' => deactivate rvm
18:07:50evanright
18:07:56evanpeople forget the rvm use system
18:07:57evana lot.
18:07:59evanit seems.
18:08:03brixenrvm use x; cd rubinius; rake; bin/rbx gem install foo
18:08:06brixen=> BOOM
18:08:10evanbrixen: right
18:08:13evanyou have to deactivate rvm
18:08:20evanis what wayneeseguin is saying
18:08:30brixenwayneeseguin: it's fairly hidden that you have to rvm use system
18:08:35wayneeseguinbasically when it comes to system rubies RVM is 'hands off' so it unsets all of its stuff
18:09:05wayneeseguinbrixen: I'm open to suggestions... that's not exactly a trivial issue since it's kind of 'user training'
18:09:14brixenwayneeseguin: yep, I'm seeing that
18:09:16wayneeseguinI can hijack the rbx command :)
18:09:20brixenI just wish there was a way it was not hidden
18:10:20evanbrixen: well
18:10:24evanwe could add the detection
18:10:37evanto try and see that rbx is pointed to a bad GEM_HOME
18:10:46brixenyeah
18:11:04evanwayneeseguin: you do that because you use a different gem dir that rubygems would normally use, yes?
18:11:08wayneeseguininteresting... how would you 'detect' that ?
18:11:11evans/that/than/
18:11:28wayneeseguinevan: correct, RVM sets a gem dir per interpreter AND gem dir's per project
18:11:29evanwhy is that? what dir does rubygems want to use?
18:11:34wayneeseguindepending on what the user wants to do
18:11:49wayneeseguinusually ~/.gem/ and/or some F'd up thing in /
18:12:01evaner
18:12:04evanyou don't know?
18:12:16evanit should be using data from rbconfig to figure it out
18:12:20evanif you're installing under .rvm
18:12:20wayneeseguinOSX: - /Library/Ruby/Gems/1.8
18:12:31wayneeseguinAnd there is another one in OSX
18:12:38wayneeseguinon Linux it's usually something in /usr/local/...
18:12:41evanthen rbconfig should list a dir under .rvm
18:12:44brixenwayneeseguin: we compile in various paths, we could compile in our gem path and warn the user if we are respecting a different GEM_PATH
18:12:51evanthats only if you install it into /usr/local
18:12:57evanyou're installing them into ~/.rvm/
18:12:57wayneeseguin.rvm for user install and rvm for root install
18:13:03wayneeseguin~/.rvm/ or /usr/local/rvm/
18:13:13evanright, so it should be using paths under there.
18:13:25wayneeseguincorrect
18:13:25wayneeseguinyes
18:13:36evanso why not let it use what it wants and not set GEM_HOME
18:13:39wayneeseguin(unless the user configures it differently but that's a whole otheer level of... fun)
18:13:55wayneeseguinYou've lost me again.
18:14:06evanok
18:14:11wayneeseguinOne of the biggest use cases for RVM is 'gemsets': http://rvm.beginrescueend.com/gemsets/
18:14:23wayneeseguinIf I leave it up to the 'system' or 'ruby' then that is lost
18:14:50evanok
18:14:54evani'll trust ou.
18:14:55evanyou.
18:14:58wayneeseguinPeople usually use gemsets + project rvmrc files to bootstrap their envs ( http://rvm.beginrescueend.com/workflow/rvmrc/#project )
18:15:14wayneeseguineg. 'cd $project_root' => oh look, my environment is all setup for me!
18:15:28evanhere is an option.
18:15:37evanexport GEM_HOME as RVM_GEM_HOME
18:15:45evanand then, at some phase, mutate it back to GEM_HOME
18:15:51evanthat phase could be a couple of places
18:16:12evan1) compile a tiny C program that changes the env var and executes the real interpreter
18:16:27evan2) have rvm add a few lines to the top of rubygems.rb
18:17:29wayneeseguinWe are actually effectively doing both 1 & 2 already for other interpreters
18:17:39brixenwayneeseguin: do you know about this one: rvm reset; irb has the old prompt still
18:17:44wayneeseguin1) is more a bash that does 'exec'
18:17:57wayneeseguinbrixen: no didn't likely missed the IRBRC
18:18:22evanwayneeseguin: well, no
18:18:33wayneeseguinbrixen: I've added a story for that thanks
18:18:37evan1) doesn't work because you can't have a shebang point to a shell script in some cases.
18:18:39brixenwayneeseguin: ok, thanks
18:18:40evanas I recall.
18:18:58wayneeseguinthat's correct
18:19:07wayneeseguinso it usually looks like this:
18:19:09wayneeseguin#!/usr/bin/env bash
18:19:11wayneeseguin<<setup env>>
18:19:17evanah
18:19:19evanso in that thing
18:19:20wayneeseguinexec rbx "@args"
18:19:20evando
18:19:29evanexport GEM_HOME = RVM_GEM_HOME
18:19:33evanthen we'll all be very happy
18:19:41evanbecause unless you run via that trampoline script
18:19:49evananother interp won't see that setting
18:20:31wayneeseguinSomething is nagging in my thoughts about this however... I need to give it some more thought
18:20:43wayneeseguinThere are several reasons that GEM_HOME is being exported
18:21:14evansure
18:21:45evanthe issue is clearly that rvm sets GEM_HOME expecting no one outside of rvm's control will read it
18:21:51wayneeseguinOther programs and scripts rely on it for integration for one that I can think.
18:21:55evanrather than just hope thats the case
18:21:57wayneeseguincorrect
18:22:06evanlets figure out how to make it the case.
18:22:19evanwhich other scripts?
18:22:38evanonly stuff that runs via a ruby, and thusly would be launched via your trampoline script, can care.
18:22:39wayneeseguinJetBrains
18:22:47wayneeseguinSome TextMate Plugins
18:22:53wayneeseguinSome Emacs Plugins
18:23:07wayneeseguinthere are several 3rd party integration things built up around it
18:23:14evanwell fuck.
18:23:25wayneeseguinMy thoughts exactly :-p
18:23:45wayneeseguinSome of the recent refactorings make altering it for RVM side very easy
18:26:20brixenman I hate RHASH :(
18:26:42brixenevan: to do the function that warns approach, we'd need a fake struct for RHASH
18:26:50brixensince usage is RHASH(o)->tbl
18:26:54evanyeah
18:26:57evanthats why i never bothered
18:27:06brixenwell, I can bother if you don't mind
18:27:11evani just put some junk shot in the header file
18:27:12evanand let it blow up
18:27:26brixenexcept the blow up is inscrutable
18:27:36brixenthanks of course to gcc's brilliant error messages
18:28:00evanright
18:28:01brixenwell, effin eff
18:28:06evanif you want
18:28:08brixenI'll just redefine them back to 1
18:28:15evanthe simplest way is to make a static struct
18:28:18evanwith those fields
18:28:25evanand have RHASH() return that static struct
18:28:29evanthat will make it pass.
18:28:29brixenright
18:28:44brixenyeah, was just checking if you're ok with that
18:29:18evanit's all just trying to tell the user "hey dude, we don't do this"
18:29:24evanso whatever you wanna do.
18:29:27brixenok
18:39:56brixenevan: where's boyscout CI ?
18:55:26bcgevan: is there a preferred method for defining rubinius in an extension? Is there some sort of -DRBX set I should check for in my ifdef's?
19:02:05brixenbcg: ifdef RUBINIUS
19:04:51bcgbrixen: thanks!
19:05:07bcgOk I got msgpack building now ... thanks guys!
19:07:10brixensweet!
19:10:38anieroSIGSEGV in an extension!
19:12:13brixenZOMG ticket!
19:23:28evanbrixen: CI looks hung.
19:23:29evan:(
19:23:31evani'll kick it.
19:39:28boyscoutCI: Commit 6f97da0 failed. http://github.com/evanphx/rubinius/commit/6f97da0d24e2a3304534e6ea7c3f538522f04d5b
19:52:39boyscoutCI: rubinius: e92fc82 successful: 3456 files, 13603 examples, 41167 expectations, 0 failures, 0 errors
19:58:13boyscoutGeneralize building with MRI 1.8/1.9 or rbx. - 9465976 - Brian Ford
19:58:13boyscoutSilence warnings under 1.9. - d22e12d - Brian Ford
19:58:13boyscoutFix warnings compiling Melbourne ext in 1.9. - 820a881 - Brian Ford
19:58:13boyscoutThere is no --no-rbc option. Use -Xcompiler.no_rbc. - 3f7e481 - Brian Ford
19:58:13boyscoutForce usage of RHASH and RHASH_TBL to cause compile-time syntax errors. - a9d6440 - Brian Ford
20:07:22anierobrixen: i have a stack trace, not sure what else to include
20:08:22brixenaniero: stack trace is great
20:08:27brixenall the steps to get to that too
20:08:45anieroi don't know much about this extension, though :P just that someone i work with wrote it...
20:09:06anieroi'll dig a little bit
20:09:12brixenok, well I'll need the source probably
20:10:06boyscoutCI: rubinius: 051e742 successful: 3456 files, 13603 examples, 41167 expectations, 0 failures, 0 errors
20:10:20brixenyay!
20:10:55brixenso, I've built with 1.8.6, 1.8.7, 1.9.1p378 and 1.9.2preview3
20:10:59brixenas well as rbx 1.0.1
20:11:33brixenand boyscout passed
20:11:39brixenso now I'm going to eat lunch
20:12:01brixenwayneeseguin: ^^^
20:12:36brixenwayneeseguin: rbx master should build with any stable MRI 1.8.6+ and rbx 1.0.1+
20:13:55wayneeseguinbrixen: Very good news.
20:14:09wayneeseguinbrixen: I'll file a story so it doesn't get forgotten
20:14:53brixenwayneeseguin: awesome, thanks man!
20:14:59wayneeseguinAbsolutely.
20:33:35anierobrixen: aha! bundles were built against MRI, after recompiling them i'm getting a pretty rubinius stack trace
20:33:48anierobrixen: Symbol not found: _rb_require_safe
20:34:33evananiero: le sigh.
20:34:36evanwhy use require_safe?
20:34:42evanwe just need to alias it to rb_require
20:34:42anierono idea!
20:36:36anieroi don't know what rb_require_safe is... hmm.
20:36:41anieronot in the pickaxe
20:36:45evanit's just rb_require
20:36:52brixenit probably checks $SAFE
20:36:52evanwhatever extension is using it shouldn't
20:37:01brixenoh yeah
20:37:06evanbut MRI's ruby.h mixes external API with internal API.
20:37:07brixenit's actually internal
20:37:10brixenyep
20:37:21evanjust stub it out.
20:37:24evanto call rb_require
20:37:24brixenaniero: if that's your co-workers ext, tell 'em to fix it!
20:37:32anierobrixen: i have commit privs, i can do it :P
20:37:38brixendo it! :D
20:37:43aniero1m!
20:37:45brixenheh
20:38:40brixenevan: I gave up on RHASH at runtime
20:38:47evan:D
20:38:51evanthats fine.
20:38:52brixenI made sure it cannot compile without a syntax error
20:38:58evanexactly
20:39:05evanand there is almost now pay off for getting it to work
20:39:28brixenC is just a terrible language, frankly
20:39:47anierohmm, is _rb_set_kcode internal too?
20:39:49brixenif only someone would work on an alternative... :P
20:40:09brixenaniero: we should add that
20:40:28anieroin the meantime, know how to set it? :)
20:40:29evananiero: thats 1.9 only.
20:40:37anieroevan: is not! works on 1.8.7!
20:40:43evanha
20:40:44evanok
20:40:52evanperhaps it crept in
20:40:53aniero(i'm arguing as if i know what i'm talking about... but it compiles and runs!)
20:40:54evanhow are you using it?
20:40:57brixenyeah
20:41:04anierorb_set_kcode("U");
20:41:20fowlduckevan: http://gist.github.com/443158 btw
20:41:23brixenit's prototyped in internal.h in 1.8.7
20:41:30fowlduckpretty sure brixen thinks i'm mad
20:41:37anierothese gems build against 1.8.6 too though... hmm
20:41:39brixenbut don't let that internal.h dissuade anyone :)
20:41:57anierothis ext does, i mean
20:41:57brixenfowlduck: is it working well for you?
20:42:15fowlduckbrixen: seemed to be last night. i don't have rbx on my work box
20:42:24brixenfowlduck: excellent
20:42:39brixenmy favorite way to fix stuff like this, let the user do it :)
20:42:47brixenin their own little world
20:43:29evanfowlduck: that .sub makes my stomach turn.
20:43:32brixenhaha
20:43:41brixenI was debating whether to say anything
20:44:04evandirname was too much trouble?
20:44:05brixenfowlduck: File.dirname(x) + "/." + File.basename(x)
20:44:41brixenanyway, let me reassert loud and clear, I don't want this in rbx :)
20:44:55fowlduckuh, yeah
20:45:12evanyeah dirname was too easy?
20:45:21brixenaniero: is this code public? I can get it running
20:46:56anierobrixen: no, alas
20:47:14anierobrixen: i'm going to try this though, which is what rb_set_kcode (with "U" as a parameter) does, internallY: reg_kcode = KCODE_UTF8
20:47:26brixenaniero: well, send me an nda and give me access :)
20:47:50brixenaniero: when you build, do you get any warnings about undefined functions?
20:48:00fowlduckyeah, dirname was too easy ;)
20:48:05fowlducknot sure what i was thinking, really
20:49:26brixenaniero: if you edit lib/rbconfig.rb to add -Wall and build the ext, you can give me a list of the C-API functions we haven't impl yet
20:49:42brixenaniero: er add -Wall to CFLAGS
20:53:01anierobrixen: setting reg_kcode doesn't work, btw. lemme do -Wall
20:53:13anieroer, where do i add that to CFLAGS?
20:53:26brixenrbx lib/rbconfig.rb line 112
20:53:38brixenthen rebuild your ext
20:53:41anierook, 1sec
20:53:48brixenbut do a make clean in your ext first
20:55:08anierobrixen: cleaner.rl:185: warning: implicit declaration of function ‘rb_set_kcode’
20:55:22brixenaniero: ok, so that's the only one?
20:55:25anierobrixen: that's all i see as far as errors/warnings go
20:55:30anieroand that's with -Wall
20:55:30brixensweet
20:55:33brixenok
20:57:08anierooh, of course i can't set reg_kcode, it's static int
20:57:37brixenyeah
21:05:13tarcierianiero: ohai!
21:06:12tarcieriheh, wtf...
21:06:13tarcierithis is so weird
21:06:42tarcieri(in /Users/tony/src/gems/models)
21:06:42tarcierirake aborted!
21:06:42tarcierino such file to load -- /Users/tony/src/gems/models/lib/medioh/models.rbc
21:06:50tarcieri^^^ that's MRI... getting confused about a .rbc file
21:07:15anierotarcieri: haha sup
21:07:19brixentarcieri: you are likely requiring something like *
21:07:21anierobrixen: trying something else as a workaround
21:07:34brixenaniero: I'm working on implementing it
21:07:52brixenaniero: why isn't it set in the .rb file that loads the ext?
21:08:02brixenaniero: IOW, is there a reason it needs to be set from C?
21:08:06anieroprobably not!
21:08:11anierothis is the first i've looked at this code
21:08:15brixenok
21:08:35brixenwell, generally things defined in MRI internal.h should probably be considered internal
21:08:37anieroerk! more errors with another extension
21:08:40anieronp
21:08:45brixenif only that were ever respected, ever :)
21:08:48anieroeven rb_str_new2?
21:09:02brixenthat's the thing
21:09:03evaneh?
21:09:18brixenMRI has done a terrible job of segregating its API
21:09:22tarcieriheh
21:09:25evantarcieri: something is glob requiring everything in a directory
21:09:27brixenso we implement whatever we can and need to
21:09:28evanrather than just *.rb in a directory
21:09:32tarcierievan: yeah found it, heh... wtf
21:09:46tarcierilooks like a stupid glob
21:09:48tarcieriat fault, too!
21:09:51brixenhah
21:10:57tarcierineeds to rewrite require_all completely differently
21:11:31brixenevan: ok to define rb_set_kcode like this or do you want to rb_funcall to the Rubinius method? http://gist.github.com/444237
21:11:33tarciericalculate the dependency order ahead of time, dump that out to a file which does the requires in the proper order
21:13:03evanbrixen: thats fine.
21:13:08brixenk
21:13:15anierobrixen: ok, i fixed that one
21:13:21anierorb_gv_set("KCODE", rb_str_new2("U"));
21:13:28brixenaniero: that works too
21:13:31anierobrixen: but i'm getting other errors now too. looking into those now...
21:13:40anierothere's three extensions in this gem, i'm doing one at a time :)
21:13:50tarcieri:( @ native extensions
21:13:51brixenevan: want to leave rb_set_kcode out or add it?
21:14:06evanadd it.
21:14:09evanit's fine.
21:14:09brixenaniero: just use the -Wall trick and let me know what rb_x are missing
21:14:13brixenevan: ok
21:15:12anierobrixen: will do!
21:17:11anierobrixen: ok, couple more functions to look into: ismbchar and mbclen
21:17:25anierobrixen: i'm not sure if those are ruby or ours
21:18:36anierobrixen: ok, ismbchar comes from regex.h, as does mbclen
21:18:43brixenugh man
21:18:50brixenwhat does this ext do?
21:18:52aniero1.8.7p174 lines 103 and 104, they're macros
21:19:10anierocleans bad unicode text, far as i can tell from the specs. ragel stuff.
21:19:27brixenand it can't do that in ruby?
21:20:11tarcieridid that in Ruby...
21:20:18anieroah, cleans html tags too
21:20:19brixenour regexp looks nothing like MRI's in 1.8.x
21:20:21tarcieriwith iconv
21:20:48anieroand does utf8-aware string truncation
21:20:54anierothat bit's done in ruby i think
21:22:04brixenaniero: well, to support that, it's going to need to use a function API
21:22:09anierobrixen: i'm sure some of this can be redone in ruby, it's just One Of Those Things that exists at the base level of our gem infrastructure and gets used all over the place... :)
21:22:13anierobrixen: what do you mean?
21:22:14brixenour data in general looks nothing like MRI's
21:22:35brixenyou can't just go twiddling the inside of some C array in an ext
21:22:47anieromm.
21:22:59brixenrbx regexp engine is oniguruma
21:23:38brixensorry, we support as much craziness as we can in C ext, but there are some limits :)
21:24:04brixenwhoever authored that software hates america and kitties
21:24:06brixenbasically
21:24:09brixenis the take away :)
21:24:17anieroor didn't know better at the time? it's tim pease who wrote it :P
21:24:25anieroand, once he's back online, i'm going to give him hell for it
21:25:07anierobut anyway, i can extract these bits into another gem (and it installs anyway) so i can test the rest of the libraries against rbx
21:25:08brixenwell, anyone who opens a .c file in their editor and thinks mucking with the internal of another system is sane is a little like the guy who gets behind a wheel drunk
21:25:16brixennot knowing is not an excuse
21:25:36brixenbut, we can help you sanitize it! :)
21:26:18brixentoo bad there's not a general lib for sanitizing text and html tags
21:26:24brixeneveryone seems to roll their own
21:26:28anierosounds like it time to write one
21:26:34brixenhaha
21:26:38anieroor extract this one, fix it up nice, and release it
21:26:44brixengood idea!
21:26:59brixencan you see if the source can be OSS'd?
21:27:13evanmbclen and ismbchar we have
21:27:18evanwe can make those available
21:27:29evanbecause I duplicated the kcode setup from 1.8
21:27:43brixenyeah
21:27:43anierothere's no official policy, i can extract it and release it as long as there's no secret sauce
21:27:50brixenbut do we want to make them available?
21:27:59brixenaniero: ok, that's cool
21:28:51anierothanks for the help! first real foray into anything ruby+c
21:28:52brixenwe have kcode::mbchar_p and kcode::mbclen that we could wrap up
21:29:41brixenaniero: n/p thanks for taking a go at it
21:30:00evanbrixen: since we've got them
21:30:11evanand it's not too hard to make them available
21:30:16evanmight as well.
21:30:18brixenok
21:31:21anierohow does 1.9's C api compare to 1.8?
21:31:39evanabout the same
21:31:42evana few new things
21:31:44evanthats it.
21:31:50anieroah cool, ok
21:31:59anieroso if i get this building against rbx, then i oughta be (mostly) alright for 1.9
21:34:05anierowhoa, just got another SEGV. possibly caused by the bunk extensions i just installed, but should i see those .dylibs in the stack trace?
21:34:20evananiero: maybe, maybe not
21:34:26evanlets see the stack trace
21:34:50anierohttps://gist.github.com/63269737e7ce4444f224
21:35:18evanyou crashed the VM
21:35:20evannot the extension
21:35:27evanthats why it's not listed.
21:35:30anieroneat!
21:41:28anierooh cool, i put a puts in the code to see if i could find out what was breaking, and i got an entirely different and spectacular explosion
21:41:37brixenhaha
21:41:41brixenspectacular
21:42:17jaribbrixen: ./configure assumes lsb_release exists (on linux)
21:42:30brixenjarib: ahh indeed it does
21:42:37brixenjarib: I can protect that
21:42:50jaribcool
21:42:56brixenjarib: what linux are you using that's not lsb compliant?
21:42:59jaribarch
21:43:01evanwhere is lsb_release?
21:43:06brixenjarib: ahhh
21:43:06evanoh arch.
21:43:17brixenhas no nice feelings for archlinux
21:43:20evani still get get why it's popular.
21:43:24brixennone whatsoever
21:43:24evandon't get, rather.
21:43:31jaribi heard 1.9 building support was in
21:43:39brixenjarib: yes, should be
21:44:07brixenjarib: curious, why do you use archlinux?
21:44:29anierobrixen: https://gist.github.com/f2868f6be117b4aa00ad nokogiri's involved somehow, i presume, due to libxml involvement
21:44:58jaribbrixen: basically just wanted to try something new and lightweight on my netbook
21:45:13brixenjarib: ok
21:45:15evananiero: perhaps...
21:45:20evani've not seen that before.
21:45:55jaribso far i quite enjoy the rolling release / bleeding edge thing as well
21:45:57boyscoutC-API specs for rb_set_kcode. - c301c97 - Brian Ford
21:45:57boyscoutAdded rb_set_kcode. - 1501b63 - Brian Ford
21:47:42jaribi don't seem to have lsb_release on my ubuntu server machine either though
21:48:03evannor do I
21:48:07evanwhere is lsb_release?
21:49:28tarcieri/etc
21:49:34evani thought so
21:49:44evanit's not there on elle, which is an debian unstable machine
21:49:45tarcieriwell, there's /etc/lsb-release
21:50:01tarcieriand the "lsb_release" command
21:50:18evanyeah, nope, not there.
21:50:22tarcieriwhich should be in /usr/bin
21:50:42tarcierilsb_release is in the "lsb-release" package
21:50:55tarcierihow confusing
21:51:01tarcieriunderscores or dashes, pick one motherfucker!
21:51:16evanhah
21:52:02evanelle :: ~> lsb_release
21:52:02evanNo LSB modules are available.
21:52:03evan:/
21:52:09tarcieriheh
21:52:10jaribtarcieri: at least that's better than rubygems-update and update_rubygems
21:52:11evannot sure thats what i expected to see.
21:52:21tarcierijust cat /etc/lsb-release
21:52:22tarcieri*shrug*
21:52:26evannot there.
21:52:30tarcieriunf
21:53:16evanwtf.
21:53:25evanlsb depends on a whole bunch of desktops tuff
21:53:33evanDepends: lsb-core, lsb-graphics, lsb-cxx, lsb-desktop
21:53:34brixenugh
21:53:43brixenthat's ridiculous
21:53:45evanso it's probably not on most server machines.
21:54:11tarcieriheh
21:54:22brixenwell, I can check various things then
21:54:25brixen/etc/issue
21:54:32brixenwhat else
21:54:37brixenlinux is such a cluster fuck
21:54:48tarcieriyep
21:55:14boyscoutCI: rubinius: 1501b63 successful: 3456 files, 13603 examples, 41167 expectations, 0 failures, 0 errors
21:55:23evanelle :: ~> cat /etc/debian_version
21:55:23evanlenny/sid
21:55:47brixenoh nice, debian_version
21:55:52brixen*roll eyes*
21:56:25brixenit's got /etc/issue though
21:59:58brixenactually, just looking at /etc/issue might be reasonable
22:00:02brixeneven fedora 8 has that
22:00:35brixenevery ridiculous one has some funky format though
22:00:40evan /etc/issue is old old
22:00:42evanso yeah
22:00:43evanbut yeah
22:00:45evanit's unformatted
22:00:50brixenwhich is why lsb_release -irs was so nice
22:00:54brixenweeps
22:01:01brixenthis is why we can't have nice things
22:01:02evanso do this
22:01:14evanuse lsb_release, otherwise use the first word of /etc/issue
22:01:20evanand be done with it.
22:01:31brixenfirst word of that on f8 is Fedora
22:01:37brixenso, yeah, that won't work well
22:01:57evanredhat has /etc/redhat-version
22:01:58evanas I recall.
22:02:02brixenI can envision a really fancy regex though
22:02:07evanno no
22:02:09evandon't parse issue.
22:02:15evanbecause the user can replace it with anything
22:02:16evanand they do.
22:02:26brixenindeed it does
22:02:44brixenthe contents of /etc/redhat-release is the first line of /etc/issue :)
22:02:55evancoincidence
22:03:00brixensure
22:03:14brixenI'm just saying, redhat-release is the same shit formatted string
22:03:23evanah.
22:03:26brixenwhich varies ridiculously on every distro and version
22:03:49scooprmy debian_version has "4.0" as it's contents
22:03:58brixenscoopr: woot :)
22:04:07jarib/etc/<distro>-release seems fairly common
22:04:31brixenjarib: right and the <distro> part of that makes sniffing a bitch
22:04:38brixenfuck, linux
22:05:09tarcieritweets "
22:05:11tarcieriIt's pretty pathetic LSB couldn't decide between underscores and dashes when naming lsb-release, err... lsb_release"
22:05:14tarcieriheh
22:05:20tarcieriway to go, STANDARDS BASE
22:06:06jaribyou'd have to maintain a list of distros or look for /etc/(.*)[-_]release
22:06:12tarcieriheh
22:06:29jaribdistro = $1 :)
22:07:29evanbrixen: search and see if there is a config.guess for linux
22:07:36evansomeone must have done this already
22:23:08anierowell, for what it's worth, these extensions don't build on 1.9 either
22:23:24evanoh? what doesn't work?
22:25:08brixenevan: well, the lsb_release is only used for a specific prebuilt
22:25:24brixenthe generic prebuilt will just be used if lsb_release isn't available
22:25:31brixenI'm not inclined to fix it now
22:25:39brixenI'll address it with the new build system
22:25:41evanthats fine
22:25:44evanno no
22:25:45evanleave it.
22:25:48evanwe've got bigger fish.
22:25:53bcgwhat do you guys generally do when you run into rb_gc_enable hacks in extensions ... just ifdef them out?
22:26:11brixenbcg: we no-op them
22:26:52anieroevan: error: re.h: No such file or directory
22:27:01evananiero: yep.
22:28:24brixeninteresting, the watches on the rbx repo went from ~580 last week to ~690 now
22:28:51evannice.
22:28:55evanwe're hot!
22:29:11brixenhot tamale
22:29:31brixenmust be all the rumors about the -Xzibit flag
22:29:36evanhah
22:29:40evani'm working on heap dump
22:29:43brixennice
22:29:48brixenI'm woring on rake doc
22:29:52brixenwhoring
22:29:53brixenworking
22:29:54brixensomething
22:30:00evanwhy not pack?
22:30:03evanthats more important
22:30:22brixenhmm
22:30:45evanthats basically a blocker atm.
22:30:51brixenblocking what?
22:31:09evana bunch of performance related thing.s
22:31:11brixenwasting my time answering questions that are in doc/* files is also a blocker
22:31:30brixenwhat is actually blocked?
22:31:43evanwell, we're hitting some bad rails perf because of it
22:31:47brixenthere shouldn't be anything that is blocked by pack
22:31:53evanblocker isn't the right thing, it's going past it
22:31:55brixenok I'll work in it
22:31:57evanbut it's of high importance.
22:32:02brixenI know
22:32:08brixenso are the 50 other things
22:44:59jaribbrixen: do you want an issue for lsb_release?
23:12:07tarcieriyay awesome backtraces :)
23:12:37wayneeseguinDefiler: around?
23:13:18wayneeseguinAnyone have an idea what this specification error might mean?
23:13:20wayneeseguinhttp://gist.github.com/444342
23:13:27brixenjarib: it still configures, right?
23:14:47brixenjarib: lsb is used to see if there's a specific prebuilt for your OS+platform
23:15:07brixenjarib: the generic prebuilt will install if not, or llvm will build from source
23:16:38slavahi brixen
23:18:24brixenhi slava
23:18:48wayneeseguin*nm got it