Index

Show enters and exits. Hide enters and exits.

00:01:14nexcastellanevan: http://rafb.net/p/sWd6ir80.html http://rafb.net/p/XR7e2w35.html implement the changes I was talking to you about (rb_cFixnum, etc.)
00:01:46evannexcastellan: looks good.
00:02:02enebo leaves the room.
00:02:24nexcastellanEvan: Can you commit it, I don't have a commit bit. Also, I have to go home in a few minutes. :)
00:02:36nexcastellanEvan: Did you get mkmf.rb working to your satisfaction?
00:02:47evannexcastellan: sure, can you do it up with 'git format-patch' ?
00:02:49evannexcastellan: yep
00:02:53evanalmost got mkmf.rb working
00:03:03nexcastellanHahaha, grrr. Yes, I think so, hold on.
00:03:49rubuildius_ppcWilliam Morgan: 57a9df86b; 2188 files, 7304 examples, 26090 expectations, 0 failures, 0 errors
00:05:45rubuildius_amd64William Morgan: 57a9df86b; 2188 files, 7245 examples, 25942 expectations, 0 failures, 0 errors
00:05:46ezmobius leaves the room.
00:08:20nexcastellanevan, I'll email you that fixnum patch, what's your email?
00:08:42evannexcastellan: ephoenix at engineyard dot com
00:09:29nexcastellanThere.
00:10:31nexcastellanOkay, gotta run to catch my bus. Have a good evening, all, and thanks everyone for helping me out today.
00:11:57nexcastellan enters the room.
00:17:35shame leaves the room.
00:18:34cschneid enters the room.
00:21:15naeu leaves the room.
00:25:18Arjen__ leaves the room.
00:26:08mernen leaves the room.
00:26:57Maledictus leaves the room.
00:28:28obvio171 enters the room.
00:33:13dlee enters the room.
00:33:21pauldix leaves the room.
00:37:00ch0wda leaves the room.
00:37:55evanyay! mongrel compiled and installed via gem!
00:38:07kevinclarkwoooo
00:38:44evannow, how to test...
00:38:52mernen enters the room.
00:39:04evanboo
00:39:06evanit wants fastthread
00:39:08evanwhich we'll never run.
00:40:14headiuscan you fake it with the old thread.rb for now?
00:40:31evanit lists it as a gem dep
00:40:39evanyou guys don't have fastthread, do ya?
00:40:45headiusahh, now you feel our pain
00:40:57headiusfastthread is built in, so the java mongrel gem just doesn't have it as a dependency
00:41:05evanyeah, so do we.
00:41:16evanand 1.8.7 has fastthread builtin too.
00:41:31evantime to make a stub gem.
00:41:36rue enters the room.
00:41:44headiusjust force it
00:41:46evani wonder if i can cheat.
00:41:47headiusnodeps
00:41:49evani did
00:41:52evanthis is on load.
00:41:56headiusedit it
00:42:02evanthats last resort.
00:42:02headiusyou're just testing after all
00:42:15evanbut i like taking the common path first while testing
00:42:20evangets me into less trouble.
00:42:29rueBig storm
00:42:42evanrue: you need 2 things
00:42:43rueI swear I saw Thor banging houses with a hammer down the block
00:42:47evan1) kiddy pool.
00:42:50evan2) golf club.
00:43:29rueI think I only have woods
00:44:22evanyou're short game must really suffer.
00:44:25evanyour
00:44:29michaellatta enters the room.
00:44:56rueI could not say. They do not let me on the courses usually
00:45:00massI hate to say it, but I've been doing test-last (or possibly test-never)
00:45:07massany good references on rspec besides the railscast?
00:45:21massrspec is still trendy right? ;-)
00:45:36ruemass: MSpec is where "it" is "at"
00:45:39headiusrspec is so five minutes ago
00:45:50masswhats the M for?
00:45:59rueMegaraptor
00:46:17rueIt was originally written for DNA coding
00:46:26evanMegalamidon!
00:46:27masswhat happened? did it escape?
00:46:48drbrainwe need to put that in the FAQ
00:46:55zenspiderrue: the irony is... not too far off. :P
00:47:14headiusnah, it's like 1000 lines of code
00:47:20headiusGAH, me and misfires
00:47:22massmass spectrometers :P
00:47:24DefilerM is for Mighty
00:47:35massis the S for sarcasm?
00:47:45Defilerheh
00:48:19massis it even distributed separate from rubyspec?
00:48:53Defilernow it is, apparently
00:49:05Defilerbut it is still not easy to use outside of its directory
00:49:16evandrbrain: is there a quick way to 'activate' a gem
00:49:21evandrbrain: thats not really installed
00:49:26evani want to fake it out
00:49:31evanso that activate says "ok, thats good to go"
00:49:38zenspiderno, it isn't... I tried to use it to compare complexity against rspec and it fell flat
00:49:40drbrainyes, add something to um...
00:49:43ruemass: http://github.com/rubyspec/mspec, tarball too
00:49:48evanGem.fakon << "fastthread"
00:49:49evanor something
00:49:59drbrainGem.loaded_specs << 'fastthread'
00:50:03massI guess nobody has any resources for me, luckily I have a mr. ryan bates
00:50:13drbrainerr, Gem.loaded_specs['fastthread'] = true
00:50:17masstime to learn with my eyes
00:50:26evandrbrain: want to triple check?
00:50:40headiuseyes are overrated
00:50:48drbrainalthough, you may need to fake out a gemspec for it
00:50:53massso why is github so popular now?
00:51:04ruemass: The speccing syntax/usage is what you are looking for?
00:51:10DefilerI just wrote this to try to organize my thoughts on the topic
00:51:11Defilerhttp://metaclass.org/2008/6/4/github-is-pretty-awesome
00:51:14evanmass: cause it's simple.
00:51:18headiusmass: chocolate went out of style
00:51:19massmore the imparting of experience into my brain
00:51:34drbrainevan: if it doesn't work with = true, make a fake gemspec
00:51:42evanhm
00:51:43ruemass: Critical you of developers switching to quasi-distributed repositories :)
00:51:46massif this was the matrix I would just ask operator to give me rspec-fu
00:51:48drbrainfastthread = Gem::Specification.new do |s| ... end
00:51:48evani can't do that in gem_prelude.rb though
00:51:49evancan I
00:51:54drbrainfill out name and version
00:52:05DefilerPresumably we would want to do that in files in lib/ with the matching name
00:52:15drbrainyou'll need to do it before you require the first file that would pick up fastthread
00:52:37evandrbrain: yeah
00:52:39evanDefiler: can't
00:52:46evanit's doing "gem 'fastthread'"
00:52:54evanit's actually a dep
00:52:59evanthat mongrel has.
00:53:14MenTaLguYI thought that dep had been removed by now?
00:53:25ruemass: I can do a quick rundown on the basics
00:53:35MenTaLguYI mean, fastthread is done at this point
00:53:42MenTaLguYstable 1.8.6 has a decent C implementation now
00:53:51evanhm.
00:54:01MenTaLguY>= p110 anyway
00:54:06evanmaybe it has
00:54:09zenspiderweren't we talking about doing the same thing that 1.9 was talking about, shipping with a bunch of gems? we could provide the fastthread stub in our gem vendor dir
00:54:13evani might have install an old mongrel
00:54:19evanzenspider: yep
00:54:19zenspideroh. hah. maybe you're stale
00:54:21MenTaLguYa fastthread gem stub won't hurt anyone
00:54:24evanthats exactly the path i'm headed down
00:55:05zenspiderI think that is a good safe way to deal with these types of problems in the future.
00:55:10evanyeah
00:55:12zenspider"no no... we'll provide that gem for you"
00:55:16evanso
00:55:18evanwhats the way to do that?
00:55:21rueCan we not just stub it in the libraries?
00:55:25evanmake up a fake spec and install it?
00:55:33drbrainyeah
00:55:39rueGems checks whether it can find a lib locally before gem dependencies right?
00:55:46drbrainseparate gem repos
00:55:50MenTaLguYwhether it can find a gem locally
00:55:51drbrainrue: correct
00:55:53michaellattaI am trying to setup rubyspec to run on my dev machine against OS/X installed MRI and getting 9 failures. When I tried to report them, ran into issues with the rubyspec.org site.
00:55:53MenTaLguYnot a lib necessarily
00:55:53evandrbrain: did you add the per engine file stuff to rubygems?
00:56:01drbrainevan: yes
00:56:02evandrbrain: if so, i can put the "preload" specs in that file for rubinius
00:56:09evanis it sync to rubinius yet?
00:56:11drbrainyes
00:56:11zenspiderrue: it needs to load the gem spec or it'll freak
00:56:24rueEbil
00:56:34rueMaybe that is the source of some of my problems :D
00:56:48drbrainevan: or, do something similar
00:56:59drbrainmanually activating them is not the right way to go
00:57:00evandrbrain: where is the rubinius specific file?
00:57:09drbrainsec
00:57:14drbrainI didn't commit it
00:57:14twbray leaves the room.
00:57:20evanoh, ok.
00:57:29evani'll stub a fastthread gem manually
00:58:13ruemass: The biggest potential source of confusion is that there are kind of two styles of writing the specs, logic-wise. Neither is necessarily better
00:58:33boyscout1 commit by Eric Hodel
00:58:34boyscout * RubyGems defaults for Rubinius; 1d5e2bc
00:58:49drbrainit's now in lib/rubygems/defaults/rbx.rb
00:58:54evandanke!
00:59:00drbrainit uses RBX_ENGINE for the name of the file
00:59:20evanRUBY_ENGINE
00:59:21evanyou mean
00:59:33drbrainyes
00:59:35evank.
01:00:00rueWossname
01:00:13massDefiler: thanks for your blog link. Now I can watch you on InfoQ
01:00:14massbwahaha
01:00:21evandrbrain: if I make a stub spec, I install it in loaded_spec, right?
01:00:42drbrainif you add it to loaded_specs, it will be activated
01:00:50evank.
01:00:53drbrainwhich for your purposes is fine
01:00:54massDefiler: is that what you look like?
01:01:14drbrainit will need to be revisited later
01:01:19evanhm.
01:01:40evanit's not loading the default file.
01:02:35drbrainhrm, it is not
01:02:37evandrbrain: i don't see any code to load that file
01:02:48evani see one place that it uses RUBY_ENGINE in defaults.rb
01:02:51drbrainoh, duh, I haven't merged it
01:02:53evanbut thats for the gem dir.
01:03:03drbrainfrom rubygems trunk
01:03:08drbraintoo many repos!
01:03:16evanok
01:03:20evani figured that was the case.
01:03:24drbrainI will just move over rubygems.rb for now
01:03:31evan10-4
01:05:46boyscout1 commit by Eric Hodel
01:05:47boyscout * Copy in rubygems.rb from RubyGems r1739 so Evan can get fastthread stubbed.; 33ea788
01:06:22evanheh
01:06:30evandrbrain: i just copied it over from my rubygems svn checkout
01:06:33drbrainalso, now `rbx gem env` lists x86-rubinius-0.8
01:06:39evancool.
01:06:49evanok, so it's looking for fastthread of a certain version
01:06:52evanso i have to stub out the spec.
01:08:50evanok, i'm going to go run a few errands so I can be back at 7
01:09:06tarcieriyou're trying to install mongrel?
01:09:07tarcierimy gem works
01:09:20evantrying it out with subtend
01:09:23tarcierio
01:09:25evansince cezarsa kicked SO MUCH ASS
01:09:28evanthat it compiles cleanly now.
01:09:34tarcierinice
01:09:47tarcieriwonders how it would work with MVM
01:09:53evanok, bbiab.
01:10:14drbrainwhat's an x86-darwin-9 gem?
01:10:22drbrainanybody know one offhand?
01:10:39tarcieriLeopard/x86?
01:10:46drbrainyes
01:12:08Defilermass: I think you know what I look like, damnit :)
01:12:44drbrainI doubt he was expecting such a handsome gentleman
01:12:49massI dunno, you just look so much more respectable than you do in person :)
01:13:35massluckily nobody knows where to find my fateful time on a panel
01:14:01kevinclarkevan: I'm working on the subtend bit right now. It compiles cleanly, but I'm still debugging this string_dup issue
01:14:15evanok
01:14:20massI'd never been in front of that sort of crowd at all, and I was sorta thrusted on with really 90 minutes of prep time
01:14:23evannow really gone.
01:14:31massand I really have a problem when I hear my voice on an echo
01:14:39drbrain(but, also, yay for rbconfig.rb now being mostly complete)
01:14:42massit turns into a synchronous ack.
01:15:38DefilerMan I didn't know shit about shit back when that interview was recorded
01:15:39Defilerheh
01:15:40nullstyle_ leaves the room.
01:17:12massI'll be nice and not make a comment on that :D
01:20:48rubuildius_amd64Eric Hodel: 33ea78802; 2188 files, 7245 examples, 25942 expectations, 0 failures, 0 errors
01:20:49rubuildius_amd64Eric Hodel: 1d5e2bcd4; 2188 files, 7245 examples, 25942 expectations, 0 failures, 0 errors
01:20:56rubuildius_ppcEric Hodel: 33ea78802; 2188 files, 7304 examples, 26090 expectations, 0 failures, 0 errors
01:20:57rubuildius_ppcEric Hodel: 1d5e2bcd4; 2188 files, 7304 examples, 26090 expectations, 0 failures, 0 errors
01:21:50drbrainoh god, they're insane!
01:23:58michaellattaI get this on leopard OS/X. Is this my setup or a real issue? 2183 files, 7535 examples, 26902 expectations, 9 failures, 0 errors
01:25:05ruemichaellatta: Can you post the command and the (error) output?
01:26:57drbrainusing rafb.net/paste
01:27:00michaellattaI cloned the rubyspec repo and used "mspec *". The failures include: Dir.pwd returns the current working directory FAILED
01:27:00michaellattaExpected "/Users/lattam/Projects/rubyspec/1.8"
01:27:00michaellattato equal "/Users/lattam/projects/rubyspec/1.8"
01:27:01drbrainor similar
01:29:30obvio171 leaves the room.
01:29:45obvio171 enters the room.
01:30:27boyscout2 commits by William Morgan
01:30:28boyscout * Tag currently-failing inliner specs.; ce3039a
01:30:29boyscout * Rename self_methods.rb to self_methods_spec.rb. Now specs are run!; 53421c3
01:30:36twbray enters the room.
01:32:28massDefiler: did you ever get through that FOOL book?
01:32:33mernen leaves the room.
01:39:11blakewatters enters the room.
01:40:05cored enters the room.
01:44:08rubuildius_ppcWilliam Morgan: ce3039a55; 2189 files, 7320 examples, 26112 expectations, 0 failures, 0 errors
01:48:12yugui leaves the room.
01:48:36yugui enters the room.
01:49:28twbray leaves the room.
01:49:29michaellattarue: Also I tried to create an account on rubyspec.org and it is failing badly. I created the account, can not log in, requested a new passowrd, and it claimed to send an email that never got there. This looks pretty new. Is this a startup issue?
01:49:51benburkert leaves the room.
01:55:16hemulen leaves the room.
01:58:59cored_ enters the room.
02:02:57moofbong enters the room.
02:04:47fbuilesv leaves the room.
02:05:00ch0wda enters the room.
02:12:42cored leaves the room.
02:13:20michaellattarue: I have manually verified the failure of the first test. Dir returns the path from the file system, and sh -c "pwd -P" which is used for testing returns the path entered by the user. On a case insensitive file system like OS/X these do not need to match exactly to be correct. I have the case where the file system uses a capital and I entered all lower case on the command line. The condition on this test is not correctly spe
02:14:26dschn enters the room.
02:14:36ch0wda leaves the room.
02:15:45jtoy enters the room.
02:18:21dysinger enters the room.
02:18:32pauldix enters the room.
02:23:42pauldix leaves the room.
02:24:33anonuseris back from a google sponsored dinner!
02:25:03VVSiz_ enters the room.
02:25:05Defilerhttp://avdi.org/devblog/2008/06/04/everything-old/
02:25:10Defilercool post
02:27:32Defilermass: You should get with topfunky and make a peepcast about XMPP
02:27:44Defilermass: It is exploding in the Ruby community and you could make $$
02:28:48drbrainmaybe $$$, even
02:29:28Defilerindeed
02:29:44DefilerYou could make enough $ to start looking like perl
02:31:06xhanjian enters the room.
02:33:08pauldix enters the room.
02:33:45kevwil enters the room.
02:36:45seydar enters the room.
02:36:52cored_ leaves the room.
02:42:49VVSiz leaves the room.
02:43:42rubuildius_amd64William Morgan: ce3039a55; 2189 files, 7261 examples, 25964 expectations, 0 failures, 0 errors
02:45:24jbarnette leaves the room.
02:46:31roo enters the room.
02:46:37ezmobius enters the room.
02:47:09rue leaves the room.
02:47:44nicksieger leaves the room.
02:48:21mernen enters the room.
02:48:36nicksieger enters the room.
02:50:09masswhat would the personification of perl look like, Defiler?
02:51:30massI imagine a wannabe gangsta with a $ bling around his neck, and like.. five arms
02:51:34massone with two hands
02:51:40tarcieriSomeone trying to rock cammo, tye dye, a denim jacket with $1000 italian leather shoes
02:52:05masstie dye camo would rock.
02:52:24evanyou might need to go undercover with the hippies
02:52:57tarcierihas rocked the cammo, denim jacket, and tye dye before
02:52:58tarcieriheh
02:53:05massspreading the message of peace and love, guerilla style
02:53:35massI dunno if I could give an entire one hour talk on XMPP without bashing it pretty hard
02:54:02massif I could do it all over again, it'd be very different.
02:54:05massall JSON :P
02:54:08mass;-)
02:54:09kevwil leaves the room.
02:54:47MenTaLguYwhat are the main deficiencies of XMPP, do you think?
02:54:55tarcieriXML
02:54:59tarcieriheh
02:55:03evanmultiple p's
02:55:04MenTaLguYmy main issue is that message boundaries are resource-intensive to find, which JSON wouldn't address
02:55:08evanthats death for a project.
02:55:12fbuilesv enters the room.
02:55:18masswell more than just XML. the main deficiency can be summarized as, a session is tied to an XML document
02:55:59tarcieria streaming FSM parser is fine for that
02:55:59tarcieriespecially with JSON
02:56:08MenTaLguYthe acutal extensible part (custom payload and annotations/attributes on regular messages) is nice
02:56:21MenTaLguYit comes in hand for a lot of things, and JSON wouldn't easily provide that
02:56:24ezmobiusi think xmpp is pretty sweet
02:56:29tarcieriXMPP's main strength seems to be the tools available for it
02:56:31evanif it weren't xml, would would it be?
02:56:37ezmobiusits one time ive used xml that it didnt bother me
02:56:43massXML parsers for the most part are designed to handle documents, not element fragments. So the clients and servers are all riddled with hack code to deal with it. Things like angle-bracket counters to break a <message> element down and pretend its actually its own document
02:56:43tarcierilike, good luck using AMQ with Ruby
02:56:47ezmobiusejabberd is a killer app server
02:56:51tarcieriindeed
02:56:57MenTaLguYI just wish a larger percentage of Jabber servers were ejabberd
02:57:03MenTaLguYthe rest are horribly unstable and mess up the network
02:57:25ezmobiusthe rabbitmq guys have an experimental xmpp over rabbitmq thingy they just showed me
02:57:32massI just wish google's was written in such a way that they could and did share it :)
02:57:34tarcieriAwesome
02:57:34ezmobiuswith reliable message delivery and some other cool stuff
02:57:36tarcieriThat'd be cool
02:57:42massejabberd has always scared me for the same reason most of erlang has
02:57:49masswhy should I use ejabberd? because its in erlang!
02:57:53tarcieriI saw RabbitMQ was trying to do some JSON RPC kinda stuff too
02:57:55MenTaLguYmass: hmm, that's more of an issue with the available XML parser libraries than anything else. JSON definitely wouldn't fix that issue
02:58:11MenTaLguYthere's only one reason to use ejabberd, IMO
02:58:16MenTaLguYit's ***reliable***
02:58:21massMenTaLguY: nah, my statement above was a summary of like a dozen really critical issues :)
02:58:37massthe xml document is composite so you can't really stream data in-band
02:59:00massyou can't do validation because nothing is sanitizing input. if someone sends you a bad message what will you do, hang up your connection to the server?
02:59:11ezmobiusejabberd also federates/replicates/scales very well
02:59:16massthe inability to multiplex data makes denial of service attacks easy
02:59:17pauldix leaves the room.
02:59:25MenTaLguYyes, you should hang up your connection to the server
02:59:38MenTaLguYit was the server's responsibility to ensure that the message is syntactically valid
03:00:13MenTaLguYin fact I think the spec even requires that behavior on a parse error
03:00:37elight enters the room.
03:00:56massthe xml document is normally tied to your presence and to a socket (at least for standards), which makes some things harder than they should be. There are a handful of HTTP protocols that make it so that you can connect via flash and javascript, for example
03:01:12massthe server requires it to be well-formed, not valid
03:01:31tarcieriezmobius: all that's applicable to RabbitMQ as well, just that it's harder to find support for AMQ :/
03:01:37MenTaLguYsyntactically valid = well-formed
03:01:48ezmobiustarcieri: yup
03:01:57MenTaLguYI don't see the issue with not requiring validation though, at least nothing that would be fixed by JSON
03:02:11masswell I was joking about the JSON thing, sorry if that wasn't clear :)
03:02:17tarcieriAll JSON really does is lower CPU overhead
03:02:19MenTaLguYah, k
03:02:20ezmobiushere's an eventmachine xmpp4r port http://github.com/tmm1/xmpp4em/tree/master
03:02:26tarcieriwhich may be irrelevant depending on what you're using your queue for
03:02:31MenTaLguYI do agree that it would be nice if XMPP had a connectionless option
03:02:31ezmobiuswith libxml parser rather then rexml stream parser
03:02:33drbrainVVSiz_: ping
03:02:35tarcieriWe're pussing massive data through our queue
03:02:54tarcieriRather than just notifications
03:02:54tarcierierr
03:02:54tarcieripushing, not pussing...
03:02:54tarcieriheh
03:03:16shame enters the room.
03:05:30massI think SAX-like parsers tend to work well, but you have to be careful.
03:06:22masssince parsers are almost always full-document oriented, you have to make sure it does no caching, either of the input stream or internalizing data strings
03:07:03massone example problem I've seen a bit is that people use a full document and create the elements from the stream from SAX , but never add them to the root stream:stream
03:07:32massunfortunately things like lookup queries on DOM are 'live', so everytime they perform certain methods that return a list they are creating a live filter
03:07:53MenTaLguYDOM has no place in a streaming setting
03:08:37tarcieriindeed
03:08:41tarcieri<3 Ragel
03:08:41massa lot of server implementations use SAX to build both an internal OM (highly custom), and data structures around common message formats they need to understand
03:08:42tarcieriheh
03:09:25tarcierino need to use a pushdown automata to represent what's fundamentally a finite state machine
03:09:31michaellatta leaves the room.
03:10:03dalee enters the room.
03:10:04nemerle leaves the room.
03:10:04VVSiz_ leaves the room.
03:10:13nemerle enters the room.
03:10:39VVSiz_ enters the room.
03:10:42fbuilesv leaves the room.
03:10:42nicksieger leaves the room.
03:10:42atduskgreg leaves the room.
03:10:42ko1_ leaves the room.
03:10:42djwhitt leaves the room.
03:10:42rudebwoy leaves the room.
03:11:03fbuilesv enters the room.
03:11:03nicksieger enters the room.
03:11:03atduskgreg enters the room.
03:11:03ko1_ enters the room.
03:11:03djwhitt enters the room.
03:11:03rudebwoy enters the room.
03:11:50massI've been trying to decide between ejabberd and openfire to upgrade my xmpp server to, right now its jabberd2
03:12:25MenTaLguYugh
03:12:28massI'm leaning toward openfire since they advertise a lot of features, and ejabberd advertises that its in a language I'm not currently motivated to care about :)
03:12:29MenTaLguYjabberd2 is a POS
03:12:38MenTaLguYI have problems talking to everyone that runs one
03:12:43MenTaLguYer, an instance of it
03:12:53massreally? whats your JID? :D
03:13:12ezmobiusdo not use openfire
03:13:14massI guarantee your problems with our discussions will not be technical
03:13:14ezmobiusever
03:13:28MenTaLguYhuh?
03:13:28massall I want, actually my only reason to even care about upgrading
03:13:34massI want iChat to be able to send and receive files
03:13:40massapparently this is really, really hard for XMPP
03:13:42massstill
03:14:10MenTaLguYthe main issue is bandwidth requirements for the servers more than anything else
03:14:12ezmobiuswe hosted the openfire jabber server for kingregate.com for a year and it was nothing but trouble compared to ejabberd
03:14:17MenTaLguYit's not a *huge* technical hurdle otherwise
03:14:32massThere are like seven new XEPs for how to do it since I quit the JSF four years ago, but apparently its still technically impossible :)
03:14:55massI was going to debug it, but neither iChat nor jabberd2 seem to offer a full message debug
03:15:03massand yeah, jabberd2 is a piece of crap
03:15:19massits been handed off to three primary developers, and I'm pretty sure two of them worked on it solo
03:15:31massboth as a free time project
03:15:49masstemas I really respect, rob norris too, but the thing has really limped along
03:16:13masskongregate ran openfire? fun.
03:16:24ezmobiusyeah
03:16:36ezmobiusfell over a lot and needed 8gig java HEAP to keep up
03:16:51ezmobiusejabberd does the same amout of traffic and uses like 50Mb ram
03:16:52masssounds like they used an off the shelf dom
03:17:03ezmobiusthey had a lot of jabber traffic
03:17:29MenTaLguYagain, DOM has no place in streaming
03:17:34massoh I'm not surprised based on their traffic :)
03:17:37MenTaLguYif you're using DOM at all, you're losing
03:17:39mass<- former XMPP server writer
03:17:40anonuserMenTaLguY, that is correct :)
03:18:15MenTaLguY(to be fair, DOM is not a great API, but it is tolerable in *non-streaming* contexts)
03:18:19massDOM is horrid in all contexts, just say it MadLib style,
03:18:25massDOM has no place in __(noun)__
03:19:23ezmobius leaves the room.
03:19:37mass50 MB of ram is actually a lot less than I expect kong to use
03:19:40massthats awesome
03:20:35masssigh, I just have this strong dislike of ejabberd, I know its only partially rational.
03:20:44massmaybe I can find some really geeky councelor to help me out
03:21:12drbrainit was started by Brad Fitzpatrick, can't be too terrible
03:21:15masserlang is just such a .. research language. it has all the signs, at least
03:21:27mass"ejabberd is great because it is written in Erlang"
03:21:37mass"we have this thing thats even better than relational databases"
03:21:45tarcieriNot really
03:21:47drbrainor, am I thinking of a different one that has only one extra letter slapped on
03:22:01tarcieriMnesia certainly feels quite a bit like a relational database
03:22:07tarcieriqlc is nice
03:22:23massI had a friends mnesia crash and he could never get it to start again
03:22:24tarcieriHowever Erlang embeds database queries into an obsolete database API into its core grammar *boggle*
03:22:26tarcieriBut no one uses that
03:22:34massI couldn't help him without learning erlang
03:22:35tarcieriEven though it has a much nicer syntax than the way everyone does it now
03:22:57tarcieriErlang is not a language designed with programmer-friendliess in mind
03:23:11tarcieriis trying to fix that :)
03:23:35massI once downloaded a P2P client for the mac, a typical drag and drop application
03:23:46massit was great, but there were a few things I'd like and I saw it was open source
03:23:56massand after looking into it I found out the whole thing was written in ocaml
03:24:14massand I realized if they had put this "we are all in ocaml, doesn't that rock?" on their page, I would have never downloaded it
03:24:18MenTaLguYI have an irrational aversion to OCaml's syntax
03:24:25MenTaLguYit's the ;;s
03:24:30MenTaLguYthey're staring at me
03:24:33evanme too.
03:24:34tarcieriIt's not irrational
03:24:36evani can't get into it
03:24:37tarcieriOCaml's syntax sucks
03:24:48massmy point mental is, that they sold the product and the solution rather than the technology. Its the level of maturity I really respect in a geek :)
03:24:53tarcieriloves the (perhaps unintentional) double entendre of JoCaml though
03:24:59evanhah
03:25:28massand ejabberd is the only jabber server I know of that makes any deal at all of how it was written. Thats my aversion to it.
03:25:28tarcierinotes Reia is shaping up a lot like OCaml semantically
03:25:29dlee leaves the room.
03:25:43tarcieria mixed paradigm functional/imperative language
03:26:01anonuserthat just sounds bad.
03:26:04massThe odd thing is that when I did threaded development I just naturally went to thread locals and thread worker queues.
03:26:25massand immutable data
03:26:33massso I totally understand where the language is coming from :)
03:27:00tarcieriReia has immutable state, which makes some of the semantics weird/unexpected :/
03:27:14massI wish ruby strings were immutable :-/
03:27:20tarcieriWhy?
03:27:25tarcieriMutable strings rock
03:27:49tarcieriString handling is abominable in Erlang
03:27:49anonuserevan, dup_into and object_dup, the provide the initial #dup ?
03:27:57massmutable strings lead to cow strings which sorta suck
03:27:59massCoW strings
03:28:10tarcieriPerhaps due to the fact that strings are linked lists of integers
03:28:13perplexes leaves the room.
03:28:17evananonuser: object_dup does, yes.
03:28:24evandup_into is for Tuple mainly
03:28:30tarcierimass: Strings are something that should accumulate mutations and flatten them on demand
03:28:38masslike a stringbuilder? :)
03:28:56anonuserI was just wondering about the the Class#dup not copying class methods
03:29:03tarcieriis trying to do the same thing with lists
03:29:13MenTaLguYfrustratingly, even when the semantics are a linked list of integers, strings don't actually *have* to be implemented that way
03:29:18MenTaLguYI mean, even Haskell gets that one right
03:29:26MenTaLguYdisassemble a ghs-compiled binary sometime
03:29:32MenTaLguYthe strings are there as strings often
03:29:32tarcieriStrings have been my greatest frustration with Reia
03:29:43evananonuser: Defiler fixed that
03:29:46tarcieriI'm trying to make them distinct from lists
03:29:48anonuseroh o.O
03:29:54evananonuser: you need to update
03:29:54anonusermaybe I'm not upto date
03:29:56tarcieriBut that means that calling out to Erlang functions you have to translate them
03:30:08tarcieriAnd when you get a result back from an Erlang function, they have to be translated again
03:30:09tarcieriUrg
03:31:01anonuserevan, I guess no one closed the ticket.
03:31:05evani guess not
03:31:06tarcieriI'm trapped at work :(
03:31:11evananonuser: double check with Defiler
03:31:12tarcierihttp://fails.org/crazyrain.mp4
03:31:14tarcieri^^^ outside
03:31:17tarcieriI'm on a bike
03:31:17anonuserkk
03:31:17tarcieriWTF
03:31:18evantarcieri: run!
03:31:39tarcieriRunning... will only make me wetter
03:31:40anonuserIt is fixed.
03:31:54anonuserwait I'm a moron
03:32:25anonuserOkay it really is fixed
03:32:48massok, I guess I should read up on ejabberd
03:32:52mass*sigh*
03:33:39massfeels like he is being dragged into a bright new world, kicking and screaming
03:34:53evanHAHAHA
03:34:53evanhttp://github.com/evanphx/rubinius/tree/master/kernel/core/inliner.rb#L174
03:36:03ezmobius enters the room.
03:36:27anonuserhaha
03:37:13tarcieriipfreely?
03:37:13tarcieriyay
03:37:14drbrainI hope that stays forever and ever
03:47:50blakewatters leaves the room.
03:51:01headiusdoes that inlining stuff insert guards to fall back? I don't seem them in that code
03:54:21anonuserheadius, it's not installed.
03:54:45anonuserWilliam Morgan just committed the code, it's not hooked up. I assume he'll finish his work then hook it up
03:55:40twbray enters the room.
03:55:44anonuserIs there a particular ticket that needs closing?
03:56:09twbray leaves the room.
03:58:56headiusanonuser I was just interested in the details of it
03:59:54anonuserheadius, you can bug him about it, he posts to the rubinius-dev group
03:59:59anonuserAnd by the looks of it only him ;D
04:17:05twbray enters the room.
04:21:39cschneidI'd like to see if the Sinatra framework works in Rubinius. But I don't know anything about Rubinius... does it work/compile on windows, or should I just stick to my mac? Then, how do I get gems installed on top of it?
04:21:50RyanTM leaves the room.
04:22:02evancschneid: we don't support windows yet
04:22:10evancschneid: but should work fine on mac
04:22:30cschneidevan, ok, on a unix box then. Just compile, or are there recent packages available?
04:23:08evancschneid: if you build and install
04:23:09evanyou can do
04:23:16evanrbx gem install sinatra
04:23:20evanmongrel doesn't work yet
04:23:25evanbut if it runs on webrick, you'll be fine
04:23:46headiusthe common project probably won't want our java invocation benchmarks
04:23:49headiuser, woops
04:24:11cschneidevan, runs on rack :) just going through the alternate implementations of ruby to get an idea, broke headius's jruby the other day :)
04:24:24evanok
04:24:30evanlet us know if you run into problems
04:24:33headiussneaky eval 'yield', binding bug
04:24:57cschneidheadius, I was impressed at the fix speed, that was impressive
04:26:16evanew.
04:26:24evanheadius: is that the one that matz said was a bug in 1.8?
04:26:43headiusno, eval('yield') {} was the bug
04:26:55headiusI didn't change that, we throw nonlocaljump correctly
04:27:03evandidn't he said that was a 1.8 bug that it works
04:27:13evanon ruby-core
04:27:19jbarnette enters the room.
04:27:31headiusko1_ I bet that all of them won't, but I'd like to have a prefix
04:27:38headiusko1_ will it be [ruby-core]?
04:27:43headiusdammnit
04:28:15headiushe said that the eval with a block (working) was a bug
04:28:31headiusbut eval of yield against a binding is still ok
04:28:45headiusbinding carries frame + block with it
04:28:53evangotcha
04:28:56evanwe might have the same bug
04:28:57evandunno
04:29:11massI sense a rubyspec addition...
04:30:44headiusVVSiz_ already did it I believe
04:30:49headiusminus the bug
04:31:05anonusermass, having prescient visions?
04:31:39massunfortunately my preminitions only seem to hold true for really obvious things
04:33:47anonuserGet a shit load of spice melange.
04:39:52elight leaves the room.
04:40:41cschneid__ enters the room.
04:43:44fbuilesv leaves the room.
04:43:49moofbong leaves the room.
04:44:21moofbong enters the room.
04:50:24anonuserJust a curiosity but are the MatzRuby people going to endorse the rubyspecs?
04:52:08brixenanonuser: they have a makefile rule for fetching and running them
04:52:17anteaya leaves the room.
04:52:18headiushey
04:52:21brixenanonuser: and at least one ruby-core developer has been contributing
04:52:30headiusI haven't updated rbx since before the rubyspec split and it's giving me some hassle
04:52:49massoh curses, I have a jabberd2 -> ejabberd migration prob. There is a perl script to migrate via spool dirs, but it bases off of a table I don't have. sigh.
04:52:57anonuserThat's cool, I guess it's an unofficial endorsement then.
04:53:10anonuserA sign of things to come
04:53:33massthis is difficult enough I feel like letting others onto my domain :P
04:54:38brixenheadius: what's it giving you?
04:54:54brixenheadius: git branch -v shows what?
04:55:23headiusI got it, I had to rm -rf the whole spec dir to get it to rake git:pull
04:55:38brixenyeah
04:56:04brixenheadius: I just posted to ruby-core about RUBY_PLATFORM
04:56:15brixenheadius: did I just dream it, or did we not all agree on RUBY_ENGINE?
04:57:10headiusruby_engine is different
04:57:35drbrainError(432): ☃ Erroneous Nickname
04:57:38drbrain:(
04:58:36drbrainwhy is there no unicode glyph for a brain?
04:58:43headiusbrixen: so your bottom line is that you disagree that java is a platform
04:58:57brixenheadius: yes, only because there is an OS below it
04:59:09brixenheadius: if ruby code running on jruby never cared, I could be swayed
04:59:13brixenbut that's not the case
04:59:22brixenjruby will never be anywhere but java
04:59:28drbrainbrixen: I can see it going both ways
04:59:30brixenunless you've got plans I don't know of ;)
04:59:37brixendrbrain: I can't
04:59:39headiusit cares far less than it would under rubinius or mri or yarv
04:59:43headiusfar, far less
04:59:48brixenheadius: yes, I know
04:59:53brixenbut not far less enough
05:00:03drbrainas far as rubygems is concerned both RUBY_PLATFORM and the implementation are platforms
05:00:07headiusand there's the entirety of Java libraries that are all available on that platform
05:00:08drbrain(at least, as of monday)
05:00:27drbrainat least, platforms for ruby libraries to sit on top of
05:00:33headiuspeople have been using platform =~ java to determine whether they can use java libraries
05:00:34brixendrbrain: conflating the gems case with RUBY_PLATFORM for OS stuff is bad IMO
05:00:52headiusextensions get compiled for java, not for any os
05:00:53brixendrbrain: and will make the specs for real platform behavior a bitch
05:00:58headiusjruby is compiled once, for java, not for any os
05:01:03drbrainbrixen: it makes sense if the question your asking is "what can I link against?"
05:01:07drbrainyou're
05:01:18headiusyes, that's my primary definition of a platform
05:01:18brixendrbrain: yes, or what can I do to a file
05:01:31brixenthose things need to be resolved to the OS + arch
05:01:37brixennot implementation
05:01:42headiusbrixen doesn't that depend on filesystem and such?
05:01:46brixenjava is an impl detail for Ruby
05:01:58headiusis windows an impl detail too?
05:02:01brixenheadius: what's "that"?
05:02:08brixenheadius: windows is an OS
05:02:09headiusthat = what you can do to a file
05:02:20headiusso use host_os
05:02:21brixenthat's OS level more than anything else
05:02:25drbrainthanks to C-centric autoconf, it is a giant hairy mess
05:02:25headiuswin32 is a platform
05:02:27headiusjava is a platform
05:02:34headiusclr is a platform
05:03:25fbuilesv enters the room.
05:03:35brixenthen we need another constant for that idea of platform
05:03:40brixenor for the OS + arch level
05:03:52brixenresorting to Config::CONFIG whatever is silly
05:04:06drbrainbrixen: I think so
05:04:28headiusyes, we do
05:04:35headiusI've been advocating that for a long time
05:04:36brixenheadius: as you know, we already have a ton of problems with Windows in the rubyspecs
05:04:59brixenheadius: we cannot expect to have a good standard without a clear OS + arch idea to test against
05:05:19headiusI don't claim it's not problematic
05:05:25headius"java" really qualifies as a third layer
05:05:27brixenso, we have 3 levels: OS+arch, sub-impl and impl
05:05:37headiusbut it's also the primary layer people using JRuby are looking for
05:05:38headiusnot windows
05:05:47brixencrust, pie, whipped topping :)
05:06:04headiusand we don't care about arch for anything I know of
05:06:15headiusso it's reported as whatever java version you're running on
05:06:42brixenI think we cannot escape 3 standard constants
05:06:59headiuswhat is "java" if not a platform
05:07:00brixenwe have RUBY_PLATFORM and RUBY_ENGINE and we need to be standard on those
05:07:09brixenlet's pick another for the 'java' 'clr' layer
05:07:19headiusRUBY_RUNTIME
05:07:27brixenmakes sense to me
05:07:38headiusbut then several impl will have it blank
05:07:47headiusor what will they have?
05:07:48brixenno, they can have a standard value
05:07:51brixen'shotgun'
05:07:53brixene.g.
05:08:05brixenbut it should be standardized
05:08:11drbrainwhat about 'C'?
05:08:22drbrainor 'libc'
05:08:26headiusblasphemy! rubinius is written for the RUBY platform!
05:08:26brixenthat's a language
05:08:33brixenyeah, libc would make a little more sense
05:08:52brixenheadius: shotgun is the equivalent to 'java' for you
05:09:06headiusto some extent, yes
05:09:10brixencloser to jvm, but..
05:09:12headiusI see java a bit more like libc though
05:09:22brixenit's all so murky :P
05:09:29brixenwe need snorkels
05:09:39headiusor jvm/java = libc for us...but then they link against libc...omg I'm freaking out!
05:09:44brixenRUBY_SUBSTRATE
05:09:53brixenI dare you to object :P
05:10:30anonuserhahha
05:10:34drbrainI say libc because that's what our FFI code links against
05:10:36ezmobiusMY_RUBY_CAN_BEAT_UP_UR_RUBY
05:11:15drbrainfor MRI and rbx, would it be something other than libc on MSVC?
05:11:22anonuserwhy not native?
05:11:28drbrainfor mingw/msys, I think it would still be libc
05:11:32headiusdrbrain: but we'll have FFI too...murky again
05:11:49headiusand at some point it's conceivable native extensions will be able to build on JRuby...what the hell do we do with that?
05:11:52anonuserseriously just call it "native" if there's no layer
05:12:01drbrainbecause that doesn't help distinguish which specs should be run
05:12:23drbrainheadius: will your IO/Socket/etc. ever hook up to libc?
05:12:26anonuserAt that point aren't those library and application specific problems?
05:12:48drbrainmaybe it would be better to approach it from the spec side, and figure out what things we need to discriminate between
05:12:49headiusdrbrain: we already have UNIXSocket implemented through native calls...there will probably be more later
05:12:58headiusIO, probably not, since it would be too much back-and-forth
05:13:05drbrainanonuser: ... but the library is the ruby language
05:13:22anonusererr I'm not talking about that.
05:13:31drbrainheadius: hrm, then it's too confusing to approach from the OS side
05:13:32headiuswell we can enumerate the cases right now
05:13:37drbrainor platform or whatever
05:13:51headiusbrixen wants platform to be used for determining OS-specific behavior
05:14:06headiusso knowing which OS behavior you can expect is one use case
05:14:12brixencorrection, brixen wants *something* to determine OS behavior
05:14:23headiusknowing which platform/build/link toolchain you'll be using is another
05:15:01headiusbrixen: I'll put the java platform thing another way: we are all platforms
05:15:05drbrainyou know, I've never found one good thing to use to switch behaviors in multiplatform ruby code I've had to write
05:15:10headiusdepending on what you're running on at a given time we change behavior to match
05:15:11drbrainmaybe there isn't one good way?
05:15:40sambo82 enters the room.
05:15:58headiusmaybe not
05:16:06brixendrbrain: yeah, I don't think there is one catch-all way
05:16:38brixenbut we can use one for OS level concerns, one for __XXXX__ concerns (headius' "platform") and one for impl
05:16:43headiustrust me, I sympathize on the behavioral thing...windows is a constant hassle for us because MRI's code is physically different running on windows for some key behaviors
05:16:55headiusimagine our situation where we provide a single binary...we have to switch such behaviors at runtime
05:16:57brixenthe OS level one is a big one for all the ruby methods that wrap OS-level stuff
05:17:11headiuswe most definitely inspect current OS to do that
05:18:01brixenhmm, RUBY_OS ?
05:18:49brixenheadius: what I don't get is, if java is all the same, when do you have to check if you're 'java'? just gems?
05:19:06brixenand if so, why can't that be RUBY_ENGINE?
05:19:48ezmobius leaves the room.
05:20:37brixenmust get food, bbiab..
05:21:14headiusbecause engine should be something people use to specify libraries they want to load
05:21:32headiuspeople also use "java" platform to know whether they can pull in Swing or an XML library or whatever
05:21:46headiusor whether they need to use a win32 lib, or linux lib
05:22:06headiusthey'd have to check both PLATFORM and ENGINE To choose between the three
05:22:15headiusrather than just checking PLATFORM
05:22:49brixenand they have to check PLATFORM + "something" to know if chmod works
05:23:00brixenwhen PLATFORM is 'java'
05:23:09brixenthere's no way around checking more than one
05:23:25brixenunless we compose them into a single one, but still, we need a standard
05:23:28brixenbb..
05:25:26chenkai enters the room.
05:26:04headiusplatform is never going to be sufficient to know if individual functions work
05:26:33headiusI think the presence of thousands of libraries is more important when considering platform than whether chmod works
05:27:09lstoll enters the room.
05:29:20mernen leaves the room.
05:30:34nicksieger leaves the room.
05:31:21nicksieger enters the room.
05:33:47headiuslooks good, thank you
05:33:52headiusGRR.
05:34:00headiusmaybe I should just switch back to colloquy
05:34:14lstoll_ leaves the room.
05:34:34drbrainI love me some limechat
05:34:41headiusoh yeah/
05:35:12headiusbitchx
05:36:09drbrainbitchx made me feel like I was getting slapped around by some 13 year old's wang because expecting proper documentation was "lame"
05:36:26headiusthat's about right
05:36:39jbarnette leaves the room.
05:37:24sambo82_ enters the room.
05:38:13sambo82 leaves the room.
05:39:53fbuilesv leaves the room.
05:44:54random8r enters the room.
05:47:32fbuilesv enters the room.
05:49:15wycats leaves the room.
05:51:49massI'm doubting that 50 MB ejabberd on kongregate, since mine is 58 ;-)
05:53:44massproper documentation is lame. who wants their documentation to be all primp and proper.
05:54:43bitsweat leaves the room.
05:55:05bitsweat enters the room.
05:55:42sanxiyn enters the room.
06:07:02twbray_ enters the room.
06:10:32w1rele55 enters the room.
06:10:54atduskgreg leaves the room.
06:20:21sanxiyn leaves the room.
06:22:07mediogre enters the room.
06:23:01twbray leaves the room.
06:33:29JonathanT enters the room.
06:35:15nemerle_afk enters the room.
06:39:06random8r leaves the room.
06:41:40nemerle leaves the room.
06:42:05massI'm watching the XML fly by, and from a chat perspective I don't think they could have messed xmpp up more, wow
06:47:38twbray_ leaves the room.
06:47:44benny leaves the room.
06:48:25twbray enters the room.
06:48:37JonathanT leaves the room.
06:48:50moofbong leaves the room.
06:49:29moofbong enters the room.
06:49:42naeu enters the room.
06:53:03anonusermass, ?
06:58:10thehcdreamer leaves the room.
06:58:19jtoy leaves the room.
07:01:04maharg" drbrain> for MRI and rbx, would it be something other than libc on MSVC?" it's not like vc doesn't have a libc. libc generally means the c stdlib, which is probably way too generic for what you mean. If stuff like fork is what you're trying to differentiate, posix (which is where fork comes from) would make more sense
07:01:51joachimm enters the room.
07:01:51benny enters the room.
07:03:10twbray_ enters the room.
07:10:30twbray_ leaves the room.
07:11:19ruedrbrain: The Chinese set should have nao
07:14:06evanhrm.
07:14:11evani don't get mongrel
07:14:24evanit's looking for a method called resolve on a URIClassifier object
07:14:29evanand, well, there isn't one.
07:14:41evanand i don't see anywhere it would be dynamically generated.
07:14:42DefilerIn the old days, that came from the C extension
07:14:48evanOH.
07:15:01evani'm in them there old days
07:15:07evani'm running mongrel totally unmodified
07:15:08evanvia gem.
07:15:19DefilerWelly welly well my little droogs
07:16:19evanoh.
07:16:23evanwe had a http11.rb
07:16:24evanin lib/
07:16:28evanok, trying again.
07:17:02MenTaLguY leaves the room.
07:17:14anonuserYou can try talking to Zed?
07:17:29anonuserOh, wait he quit ruby.
07:17:35rphillips leaves the room.
07:17:40evanhrm
07:17:42evanload error
07:17:46evanlooking for rb_global_variable
07:18:01headiusuh
07:18:03headiushmm
07:18:31headiusthis don't seem right
07:18:59headiuspastie
07:19:10pastiehttp://pastie.org/209218 by headius.
07:19:23headiusas much as I'd like to believe that's true, I think something's wrong
07:19:52headiuspastie: for great_justice
07:20:00twbray leaves the room.
07:20:01pastiegreat_justice: http://pastie.org/209219 by headius.
07:20:18anonuserheadius, the order of a magnitude difference?
07:20:23headiusanonuser yes
07:20:27DefilerWe do buffered IO
07:20:37DefilerSo I doubt we are really rewinding that file every time, unless I misunderstand
07:20:43anonuserheadius, that is certainly suspect.
07:20:51headiusif you're not actually re-reading it's wrong
07:21:04headiusseek should flush buffer contents
07:21:52Defileroh, huh.. and it does
07:21:52headiusjruby and ruby do buffered IO too, but that doesn't mean you always read from memory...once you've read from the buffer those bytes are consumed, and any seeks should flush read/write buffers
07:21:59headiusok
07:22:00Defilerdef seek resets the buffer
07:22:19DefilerWe must just be BAD ASS
07:22:36anonuserWho's the baddest mofo in this joint?
07:22:38headiusnot sure what's up then... there's almost no ruby code involved in this since it's just a straight-up file.read
07:22:57headiusso either rubinius has gotten faster than C....or something's not right
07:23:06headiusI'm not saying which!
07:23:12anonuserThe answer was: Sho'Nuff
07:24:39headiuswell
07:24:45headiusI'll leave you to it, gents
07:24:57anonuserheadius, sorry. I'm sure something will come of that
07:25:09headiusyeah, I'm just tossing it over the wall before I hang it up for the night
07:25:24headiuswas doing some benching of IO issues in JRuby vs Ruby and thought I'd try rbx
07:25:39DefilerCool
07:25:56evanour buffering algorithm is pretty simple
07:26:04evanmaybe it's so simple it out performs the C one
07:26:09anonuserjust out of curiosity what does the ruby benchmarks look like?
07:26:19headiusthey're on there, about 0.9s
07:26:47headiusevan: I admire your optimism
07:26:52evan:)
07:27:02anonuserWhere are jruby's numbers?
07:27:03evanmaybe your seek() zeros out the buffer?
07:27:06evanwe don't.
07:27:11anonuserAm I just missing the numbers?
07:27:21evanwe just reset the contents 'pointer'
07:27:33sambo82_ leaves the room.
07:29:07evanheadius: make sure we actually did all the loops
07:29:47evanheadius: that would be a cute optimization. Detect when benchmark was loaded and have Integer#times add 10 instead of 1 each loop :)
07:30:49headiusheheh
07:31:58headiusseems to be running the loops
07:32:13evanmaybe verify what #read returns?
07:32:15evanjust to be sure.
07:32:18headiusjust did
07:32:22evanhuh.
07:32:24headiusseems to be wrong
07:32:25headius""
07:32:32sambo82 enters the room.
07:32:34evanah
07:32:43evanwe're returning the wrong thing from #read?
07:33:17headiusno, looks like it may be a seek bug
07:33:23headiusahh
07:33:31headiusseek when at eof I bet
07:34:17headiusok
07:34:19headiusyes, that's it
07:34:28headiusif it reads to eof seek doesn't appear to be doing anything
07:34:42headius../rubinius/shotgun/rubinius -e "f1 = File.open('testxxxx', 'r+'); f2 = File.open('testxxxx', 'r+'); f1.write('hello'); p f2.read(); f2.seek(0); f1.seek(0); f1.write('zzzzz'); p f2.read()"
07:34:42headius"hello"
07:34:42headius""
07:34:49evanah
07:34:50wycats enters the room.
07:34:53headiusthat should be "hello" followed by "zzzzz"
07:34:55evanprobably an easy fix
07:35:02evanneed to clear eof, etc though
07:36:48Defilerseek currenly resets the buffer and eof, it seems
07:36:59evanhm.
07:37:03evanoh
07:37:13evanbut does it actually do an fcntl to set eof on the descriptor
07:37:15evanthats necessary
07:37:23evanotherwise the OS will continue to report eof
07:38:16evanah
07:38:23evanprim_seek needs to be changed to reset eof
07:44:35scudco leaves the room.
07:53:45zf leaves the room.
08:05:13xmlhacker leaves the room.
08:13:46thehcdreamer enters the room.
08:19:57qwert666 enters the room.
08:20:09chenkai leaves the room.
08:29:54naeu leaves the room.
08:38:40Skip enters the room.
08:39:57JonathanT enters the room.
08:43:10naeu enters the room.
08:55:56mutle enters the room.
08:57:37krisps enters the room.
08:58:01evanBOO
08:58:09evanmongrel contains VALUE escape vectors.
08:58:11evanthat blow up subtend.
08:59:09evanOH DIRTY.
08:59:12evanmongrel plays dirty.
08:59:19evani can't work around this
08:59:24evanmongrel will have to be changed.
08:59:32tarcierialready did that
08:59:33tarcieripsst
08:59:44evanURIClassifier_register
08:59:50tarcieridurr
08:59:51tarcieriwhat?
09:00:00evanthat function only works on MRI's non-moving GC.
09:00:09evani'm trying to run http11.c
09:00:13evangetting pretty close
09:00:21tarcierifun fun, or actually
09:00:25tarcierihorrible horrible burning pain
09:00:28tarcierithe C, it burns
09:00:36evanit burns when I C.
09:00:41tarcieriheh
09:00:53evanthat function lets a VALUE escape as a void*
09:00:55evaninto a C library
09:01:05evanthen stash the VALUE into a hash
09:01:09tarcieriyou know
09:01:09evanso the GC wont delete it
09:01:13tarcierias much as I understand the
09:01:17tarcieri"everything is a value"
09:01:18tarcieriin C
09:01:26evanand thus, not working at all on any GC except MRIs.
09:01:26tarcieriI get where it's coming from so much, but
09:01:27tarcieriWTF
09:01:30tarcierino
09:02:35evanzed zed zed zed zed...