Index

Show enters and exits. Hide enters and exits.

00:00:57evanfunny you should say that
00:00:59evani'm going to try that now.
00:11:40evanwell, atm, i'm just saying "Next send: <name>"
00:12:01evani'm not sure how to calculate the column on the line by the ip yet
00:12:27evani guess I could count how many of of <name> come before the one that is about to go
00:12:29evanand gsub it
00:22:02evan|Blaze||: it looks ok
00:22:12evanit's not perfect, but it's better than nothing.
00:26:20evanshouldn't.
00:27:10evanstr = str.gsub name.to_s, "\033[0;4m#{name}\033[0m"
00:27:14evanthats all I did.
00:27:24evana few ANSI escape codes.
01:13:38brixenglad we have total crap specs for String#unpack
01:13:46evanhah
01:13:47brixenbecause we fail a bunch
01:13:52brixenlike if we were to have any
01:14:15brixenliking the new bt format :)
01:14:24evan:)
01:16:41jakedouglasO_o
01:21:44evanbtw: http://skitch.com/evanphx/dqecn/evan-kendall-bin-rbx-scratch-step.rb-vm-1
01:21:50evanyou can see that loaded_hook is underlined
01:21:56evanbecause it's the next send that would be done
01:22:04evanthusly, "step" is likely to take you to it.
01:22:19evani'll have the highlighting be a variable
01:25:45brixensweet!
01:25:49brixenthat is awesome
02:46:59slavabrixen: so I have a really neat solution for the big endian / little endian issue that pretty much solves the whole problem
03:31:30brixenslava: yes?
03:35:41slavabrixen: just drop PowerPC support
03:35:43slavaHAHA sorry
03:36:02slavabut yeah, I'm not maintaining factor's ppc backend anymore because its just a total waste of time
03:36:28slavais arm big or little?
03:37:23slavaIIRC arm is little endian, which might leave sparc as the only semi-relevant big-endian platform
03:38:00evanyep.
03:38:04evanPPC and sparc
03:38:08evanare it at this point
03:38:44evanMIPS is too, I guess.
03:38:47evanit's switchable
03:38:50evannot sure what the default is.
03:39:40evan"Linux on MIPS, SPARC, PA-RISC, POWER, PowerPC, and 680x0"
03:39:43evanis big endian
03:40:11slavado you have a significant PPC user base? I guess you still support 10.4 too right?
03:42:48evanat least little endian is gone
03:42:52evanslava: yep.
03:43:06evanbrixen is working on code that requires endian-ness no matter what
03:43:11evanso it's not a case of dropping platforms
03:43:14brixenyeah
03:43:20evanbecause it's code to convert values between endian-ness.
03:43:42brixenand because someone could choose to encode BE on a LE platform
03:43:56brixenit's just that that whole thing is lame
03:44:07evaner.
03:44:09brixen50's ok, sure, 2010, effen please
03:44:14evani meant before, at least middle endian is gone
03:44:20brixenheh, yeah
03:44:22brixenwhat fun
03:44:25slavaoh, I thought you were dealing with JIT issues or something
03:44:27evanwhich was 2nd 1st 3rd 4th
03:44:30evaner.
03:44:33evanwhich was 2nd 1st 4th 3rd
03:44:38slavais this for pack?
03:44:48brixenslava: yeah
03:44:50evani think because it was for PDP-11, which favored 16 bit values
04:20:04boyscoutAdd step to the debugger; begin unification of interrupt checking - 33892db - Evan Phoenix
04:20:16evanstep and nexti have landed.
04:24:10brixenawesome!
04:31:45evanbrixen: i've started redoing the flag checking in the prologue using a JVM trick
04:32:04evanbasically, since you always have to check the stack for an overflow
04:32:10evanyou fake an overflow
04:32:17evanand in the overflow handler code, check flags
04:32:27evanand the overflow handler code can detect a fake overflow
04:34:57brixenahh interesting
04:42:09brixenwell, 'lo and behold, it's working
04:43:13evanyou working on N and n?
04:43:15brixenah, probably lo' and behold, since it was likely 'look and behold'
04:43:23brixenunpack with ints, yeah
04:43:28brixenn, v, S, s
04:44:16brixenme and my macro soup, but I don't really see a plain, simple way to handle this otherwise
04:44:26evan:)
04:44:49brixenI suppose I could break with the all caps convention
04:44:55brixensince that just makes stuff hard to read
04:44:59evanyeah
04:45:06evanmaybe use some inline functions instead?
04:45:11brixenthe macros themselves are just refactorings
04:45:21brixenprobably could
04:45:55evanfeels like those macros should be methods on some object
04:46:06brixenhmm
04:46:33evansince they have implied state
04:46:37evanwhich happens to be locals
04:46:46evanmake those locals members of a class
04:46:52evanand stack allocate an instance of the class
04:47:06evanand call methods on that object instead
04:48:02brixenthat seems kinda weird
04:48:15brixensince these actions get splatted all over this state machine
04:48:31brixenbut once I get the logic working, we can experiment with stuff like that
04:48:38evanyour macros on macros on macros are hard to follow
04:48:47evani'm trying to figure out a way to help with that is all.
04:48:52brixenyeah
04:49:11brixenat the action level, they are pretty simple
04:49:15evanthat must be a fucking bear to debug
04:49:23brixennah, not really
04:49:33brixenat the byte, bit level, they are simple
04:49:35evanwould be easier as functions/methods though
04:49:41evanat least you can step into and through them.
04:49:44brixenthe complexity is in the middle
04:49:47brixenyeah
04:50:23brixenthe loop is general, but it needs specific formatters to handle the data
04:50:36brixeneg, pushing 1, 2, 3, etc bytes onto the string
04:50:45brixenwhile looping over array elts
04:50:46evanmmhmm
04:50:55evannone of that means it couldn't be a class
04:51:04brixenyeah
04:51:06evanimho
04:51:29brixenthis is actually rather easier atm
04:52:01evani worry it won't be once you're not in it everyday
04:52:02evanis all.
04:52:09evanbut it's a minor issue
04:52:09brixenand I have specs and benches, so we can play with it
04:52:15evanbecause, as you say, the actions are short anyway
04:52:36brixenwell, I'm not married to this, it's just pretty easy while working out the machine logic actually
04:54:15brixenthe meaning of '*' is so arbitrary
04:54:38brixensometimes it means "the rest", sometimes 1, sometimes 0
04:56:13evanyaeh
04:56:24evanit's definitely crazy.
04:59:58jakedouglasis it worse than sax parsing in erlang?
05:00:17evanthat doesn't sound fun at all
05:00:28evanparsing text in erlang at all doesn't sound fun
05:00:47jakedouglasyea, it's not, so far.
05:01:11jakedouglasluckily im not doing the parsing. just using the parser.
05:01:21evanoh good.
05:01:22brixenI'm pretty sure tarcieri thinks it's fun... oh wait, nvm
05:03:15jakedouglas:p
05:03:35evantarcieri has a strange definition of fun, we all know that.
05:03:51brixenyeah, and even with all that fun he's complained a fair bit
05:03:59evanbrixen: so, do you think peguras fleshed out enough for me to write a marlowe grammar in?
05:04:09evanpegarus, rather.
05:04:11brixennot yet, but very soon
05:04:15evank
05:04:29brixenI was hoping you'd be interested in that :)
05:04:43brixenI'll write pegarus so you can write marlowe so I can write poison
05:04:45brixen:)
05:04:59evantreetop is just too darn verbose
05:05:03brixenyep
05:05:19evanand there needs to be a better way to parse a damn list
05:05:21brixenand the semantic action facility is terribly broken atm
05:05:26evanin treetop it requires like 3 or 4 rules
05:05:39brixenhmm
05:07:02brixenevan: so one af the things I was pondering is the form of an emitted parser
05:07:25evana very good thing to ponder.
05:07:27brixensince this emits compiled methods directly, I could write that to a special .rbc and load it
05:07:38evansure
05:07:48brixenor emit some ruby code that uses Rubinius.asm to tie into the normal compiler
05:08:02brixenso it gets marshalled along with the normal .rbc from a .rb file
05:08:10evanshould there be a mode to emit ruby code directly?
05:08:15evanrather than rbx bytecode?
05:08:23brixencould possibly
05:08:30brixenbut that rather defeats the purpose
05:08:46evannot to me
05:08:46brixensince this will liberally use gotos in an execution context (method)
05:08:51evani want a nice parser framework
05:08:52evan:)
05:08:59brixenright, I want a fast one
05:09:00evanah ok.
05:09:15brixenthe parser is now one method
05:09:16evansure then
05:09:29evansave the CM to a file and reload it.
05:09:44brixenyeah, seems reasonable enough
05:09:47evanload it, put it into the method table
05:09:48evandone and done.
05:09:50brixenyep
05:09:57evanglad I made all that logic generic
05:10:01brixenindeed
05:10:05brixendid you see what I do now?
05:10:08evanthat it's just "serialize an CM!"
05:10:11evanany CM
05:10:11evanrather.
05:10:19evannot yet
05:10:20evanjust the slides.
05:10:21brixendef match(s); compile s; end
05:10:41brixenwhere compile writes the bytecode, installs it as #match, and tail calls to it
05:10:51brixenlater calls to #match just hit the compiled code
05:10:56evanmmm
05:10:57evannice.
05:11:02brixenhandy :)
05:11:11evanwhich, then when it heats up, is JIT'd
05:11:12evan:D
05:11:12brixenno, compile() unless compiled?
05:11:18brixenheh, yeah
05:11:53evanwe should consider a ruby output mode too
05:12:00evanso it can be used on MRI
05:12:04brixensure
05:12:09brixenI was thinking about that
05:12:14evanI want the marlowe parser to be a library
05:12:53brixenwell, having the pegarus AST basically emit the parsing machine insns means we can implement the insns for whatever platform
05:13:05evanexactly
05:13:09brixenyou just get a stream of [any(), char(), etc]
05:13:11evani figured it wouldn't be too hard
05:13:14brixenyeah
05:14:46brixencould emit Factor, ya know, to share the syntax wealth :)
05:14:56evan:D
05:51:26boyscoutMissed a Node in AST grapher. - d695cfc - Brian Ford
05:51:26boyscoutString#unpack benchmarks for integer directives. - 6113d5f - Brian Ford
05:51:26boyscoutAdded String#unpack specs for Ss. - 27241ba - Brian Ford
05:51:26boyscoutSpecs for String#unpack vn. - b038265 - Brian Ford
05:51:26boyscoutArray#pack Xx@, String#unpack Ssnv. - e682a3b - Brian Ford
06:59:38dbussinkbrixen: you got some cool benchmarks? :)
07:00:34boyscoutBuild fixes for #pack. - 74fac8e - Brian Ford
07:00:49brixendbussink: not quite yet, likely tomorrow :)
07:00:52brixengo back to sleep :D
07:01:36dbussinkbrixen: hehe, i just got into the office :P
07:01:46brixentake a nap then!
07:04:28brixendbussink: I still have the string directives to do, but I need more specs first
07:04:40brixenanyway, sleep for me, night!
07:04:41dbussinkbrixen: ah ok, no rush, just curious :)
07:04:45dbussinkbrixen: night!
15:12:59tarcierifor the record doing anything with "strings" in Erlang is a total nightmare :)
15:13:44sbryantdoes OTP help at all?
15:13:48tarcieriuhh, no
15:16:14tarcieri[108,111,108]
15:16:48tarcieriyes it's encrypted in Erlang
15:18:57tarcieriErlang's if expression is almost completely useless :(
15:36:11dwaitestop encrypting stuff in erlang!
15:37:56jakedouglas?????
15:44:10dwaitehehe |Blaze|| and tarcieri
15:44:27dwaitewere chatting with arrays of numbers
15:46:53jakedouglasah. yea.
15:50:49tarcieri(lists!)
15:50:58jakedouglasheh
15:51:00jakedouglasDO NOT CONFUSE.
15:51:08tarcierihehe
15:55:33jakedouglasstarting the day with: "Engineering Fine-Grained Parallelism Support for Java 7" by Doug Lea
15:55:38jakedouglasim skared.
15:56:29brixenreading paul tyma's nio vs io slides
15:56:46brixenI think everything tarcieri has been telling us is WRONG!
15:56:50brixen:)
15:57:18jakedouglashah.
15:57:46brixenalso, macpro to have 12 cores? wow
15:58:04jakedouglasyea dude. better get some moar threads in rbx.
15:58:15tarcierilol
15:58:20brixenheh
15:59:31evanMORE POWER!
15:59:54tarcierimoar cores!
16:00:30jakedouglasdoes rubinius just have a main thread and a jit thread right now?
16:00:52evanno
16:00:57evanThread.new creates new native threads
16:01:03evanthey're just subject to the GIL
16:01:23Eebs'scuse me, but I was wondering how this site is run: http://donttreadonme.co.uk/rubinius-irc/index.html
16:01:25jakedouglasi meant, assuming you're just running a single ruby thread.
16:01:28evanthe JIT thread runs in true parallel
16:01:43brixenEebs: danlucraft runs that site
16:01:46evanjakedouglas: there is another, the signal handler thread
16:01:54brixenEebs: he often hangs out in #jruby
16:01:55jakedouglasi see.
16:01:56evanwhich assists in making sure signals can be delivered properly.
16:02:08evanwhen more than 1 ruby thread shows up to the party
16:02:14evanthe timer thread is also started
16:02:22Eebsbrixen, thanks for the info. I like that system of keeping IRC logs. Do you know if it's available? Or is it something he made.
16:02:37brixenEebs: I don't really know, sorry
16:02:51Eebsbrixen, thanks anyway, I shall go see if I can find Dan.
16:02:54Eebscheers
16:03:04jakedouglasis there any opportunity for parallelism in the gc?
16:03:27evannot without adding read barriers
16:03:28evanso no.
16:03:44jakedouglasi see.
16:03:56evanthough, hotspot doesn't have read barriers and it can do some concurrent GC
16:04:00evanso perhaps
16:05:29jakedouglaswhat does the hotspot gc do concurrently?
16:05:41slavaevan: you can use memory protection to simulate read barriers, with some overhead
16:05:42evani'd have to look
16:05:44evani don't know off hand.
16:05:54evanslava: yeah, i really don't want to use that.
16:05:58slavaif the situations where they're needed are rare (eg, only during compaction) then its fine
16:06:07slavawhy? interested in non-MMU platforms down the road?
16:06:19slavathey're pretty rare anymore
16:06:36evanthe ammount of platform dependent code to handle the fault is pretty crazy.
16:07:04evanadditionally, the read barriers i'm thinking of are NOT rare.
16:07:07evanso that wouldn't help
16:07:24evani was thinking of the white/black/grey marks that the read barriers maintain
16:07:44evanto track chunks of the object graph
16:07:49slavaremember you were going to abstract out the factor VM's ucontext stuff at some point?
16:07:56slavathat's all you need really
16:08:48evanyeah, i know.
16:09:12evanthey're still not rare enough to deal with the fault as often as it would happen
16:09:25slavaI don't know anything about concurrent GC, except that its really hard
16:09:35evanyep.
16:09:50evandoing it with white/black/grey would kill performance
16:09:52evanabsolutely kill it.
16:10:28brixenbut but, it would be so concurrent
16:10:39brixenand concurrent == faaaasta, everyone knows that
16:10:52brixenjust like async == faaaaasta :)
16:11:41evanthere would be concurrent awesome
16:11:45evanwhich means it's compounded
16:11:49evanyou have to be careful though
16:11:55evantoo much awesome and it could explode.
16:12:29brixenheh
16:12:55brixenevan: reading through these slides atm http://twitter.com/mentalguy/status/19646595461
16:13:28evanok
16:14:20brixenvery interesting slide 27
16:23:02evanbrixen: this is quite interesting.
16:24:24brixenyep
16:25:11brixenI wonder if I got java running on rbx, would cliff click hang out with us... :)
16:25:40evanhehe
16:25:51evanwe'll need to remove the GIL first I think :)
16:26:41slavacliff click went to my talk at last year's jvm summit, and then a few weeks ago at pldi littledan was talking to him and cliff click asked him what he worked on and he said 'factor' and he didn't remember what it was nor did he have any recollection of my talk
16:27:17slavathat's how cool he is
16:27:27brixenheh
16:27:49slavaevan: does your JIT do breakpoints?
16:28:13evanslava: for debugging?
16:28:40boyscoutCheck the GIL lock also - 071edaa - Evan Phoenix
16:28:40boyscoutUse VM::check_interrupts, make sure thread_step_ is initialized - 7fc5dcb - Evan Phoenix
16:28:56slavaevan: yes
16:29:01evanno.
16:29:14brixenevan: boyscout was hung last night
16:29:25evanseems to be back now
16:29:28evanit was probably github's queue
16:29:29brixenevan: what about running CI with agent enabled?
16:29:33brixenhmm
16:29:45brixenthe process seemed to be running the specs on elle
16:29:58evanoh, do you mean CI?
16:30:02evanCI != boyscout
16:30:03brixenanyway, with the agent we could connect and get a bt
16:30:07evanboyscout is just the reporter.
16:30:08brixenyeah, sorry CI
16:30:21brixenboyscout was silent, so I checked CI
16:30:34brixenit was still working on an earlier commit
16:30:42evanyeah, i see it hung
16:30:43evanjust killed it
16:30:47brixenk
16:30:48evanyeah, we should run with the agent on.
16:35:56evanhm, there is an agent bug, seems like all of ci's work confuses something
16:48:34boyscoutCI: rubinius: 7cf1601 successful: 3498 files, 14416 examples, 42216 expectations, 0 failures, 0 errors
17:31:18boyscoutDisable the agent in forks and cleanup before exec - e27f185 - Evan Phoenix
17:31:18boyscoutAdd and use --agent to mspec - 3015b80 - Evan Phoenix
17:45:43boyscoutCI: rubinius: 3015b80 successful: 3501 files, 14497 examples, 42297 expectations, 0 failures, 0 errors
18:08:01brixen....F.....EEEEEEEEEE..FF.FF.......F.....EEEEEEEEEE..FF.FF...
18:08:07brixencurrent unpack with new iI specs
18:08:09brixenweee
18:08:37evanO_O O_O o_O
18:09:07sbryantYour face it has contorted to unusual proportions!
18:09:15brixenhah
19:09:33tarcierishould change E to U for Unhandled Exception :)
19:09:42tarcieri......................FFFFFFFFFUUUUUUUUUUUUUUUUUUU........
19:14:00brixenheh
19:14:50evanheheh
19:16:28boyscoutRefactor the debugger - d2805f1 - Evan Phoenix
19:25:30boyscoutCI: rubinius: d2805f1 successful: 3501 files, 14497 examples, 42297 expectations, 0 failures, 0 errors
19:32:47Defilerso, I think I'm finally coming around to Fibers
19:32:55Defilerpartly via this http://blog.envylabs.com/2010/07/no-callbacks-no-threads-ruby-1-9/
19:33:32evanit's an important part of your diet.
19:33:36evanspeaking of diet
19:33:38evan=> lunch
19:33:51Defiler@_o lunch
19:45:18tarcieriDefiler: ugh, I really need to write a response to that
19:45:44DefilerWhat don't you like about it?
19:46:15tarcieriretrofitting a purely async I/O model where anything that does any I/O ever must follow the async/fiber-driven I/O contract means you're severely limited in terms of what libraries you can use
19:46:28tarcierialso: exceptions, how do you handle them?
19:46:33tarcierithey're a nightmare in EventMachine to begin with
19:47:04tarcierilet alone when you try to wrap up
19:47:16tarcieribleh... wrap up EventMachine in a synchronous API with corountines
19:47:35tarcieriand I haven't seen any hard numbers comparing 1.9 to 1.9+EM+Fibers+Synchrony
19:47:51tarcieriin the presentation Ilya gave at Railsconf he compared Ruby 1.8 to the latter
19:48:01tarcieriand 1.8 can't make multiple simultaneous system calls
19:48:17tarcieriso it's apples to oranges
19:48:46tarcieriI can keep going, heh
19:49:05DefilerYeah those are good points
19:49:40tarcieriunless they've added it recently, EventMachine has no callback for when it's completed emptying its write buffer, which means if you try to write something that proxies to another service and you read faster than you write, it will just continue buffering the request you proxy into RAM transparently
19:50:18dwaitepfft, producer/consumer model is so overrated
19:50:29tarcierialso, if you just switch to JRuby most of those problems go away, and you scale across multiple cores for "free"
19:50:31dwaiteyou should always produce, even if it cannot be consumed
19:50:56DefilerYeah, eventmachine is totally useless for daemons and such
19:50:57tarcierior rbx if you guys added concurrent multithreading :)
19:51:00Defilerbecause you can't tell when you are done
19:51:02jakedouglastarcieri: the proxy functionality in EM allows you to specify a buffer size for the proxy connection. if it becomes full, it'll stop reading from the upstream connection until it drains a bit
19:51:16tarcierijakedouglas: that's cool, glad they did something about that
19:51:35tarcieriit's still ugly compared to what Rev/Revactor did
19:51:41tarcieriwhich was to expose a write completion callback
19:51:50dwaiteI think Proactor pattern is better, and ACTs are even better than that
19:51:58dwaiteso there, phhbbt
19:52:03tarcieriwhich Revactor wrapped up as a duck type to TCPSocket
19:52:33jakedouglasi did it for github when they tried to use EM as a proxy for git clones of 500GB repositories and their processes were running out of RAM :p
19:52:34tarcieridwaite: the Erlang "active once" model is by far the best solution I've ever seen to that problem
19:52:54dwaiteshame its in erlang then :D
19:53:08tarcieriheh
19:53:11tarcieriyes, shame :(
19:53:18jakedouglass/GB/MB
19:53:23dwaitehas decided its only fair for other people if he makes his prejudices against erlang as obvious as possible
19:53:37jakedouglastarcieri: hows reia coming
19:53:39dwaitedon't threads in the JVM use a meg of memory each
19:53:45dwaitefor the local copy collector?
19:53:49jakedouglasok
19:53:53jakedouglaslets not have this discussion lol
19:53:54tarcierijakedouglas: was going great... been a bit preoccupied lately
19:54:01tarcieriselling my house, Defcon, Hacker Karaoke, heh
19:54:09jakedouglasheh
19:54:29tarcierialso I've been trying to put together a Reia CouchDB view server
19:55:03jakedouglasi see
19:55:36jakedouglasi thought it was pretty asinine that their original strategy was to pipe data out to other processes and back
19:55:43jakedouglas(no wonder views are slow?...)
19:55:48tarcieriheh
19:56:19tarcieriyeah I haven't delved very deep into it, haven't had time
19:56:35tarcieriseems like a view server running inside the same Erlang VM as CouchDB itself would be the way to go
19:56:41tarcieriI need to better research how Erlang views work
19:56:49jakedouglasright
19:57:10jakedouglaswell, i met @drkrab here at jvm summit, im going to corner him and make him explain the erjang details to me so i can start playing with it more.
19:57:11tarcieriI think Damien Katz had some concerns about sandboxing or somthing
19:57:16tarcieriheh
19:57:28tarcieriyeah I've pinged him a bit on the features Erjang is missing which would allow it to run Reia
19:57:36jakedouglaswhich are what
19:57:47dwaiteerjang?
19:57:49tarcieriit's some issues with the code server
19:58:01dwaiteooh
19:58:02tarcieriif you dynamically generate modules it doesn't produce .jar files for them
19:58:06dwaitesomething I can dislike more than straight erlang :D
19:58:10jakedouglasah.
19:58:28jakedouglasdwaite: http://www.supercity.at/blog/upload/blog/2010/04/haters1.jpg
19:58:35tarcieriI gave him a minimal example to go off of, he said he could fix it
19:58:48jakedouglastarcieri: cool.
19:58:52tarcierijakedouglas: http://github.com/tarcieri/reja
19:59:01jakedouglasnice
19:59:22jakedouglaswell, i don't know that much about erlang. learning though
19:59:41tarcieriheh
19:59:43jakedouglasseems like the most simple language i've ever learned
20:00:13tarcieriI take it you never learned Scheme
20:00:17jakedouglasnope.
20:00:25tarcieriScheme sucks :)
20:00:42bougymani've always thought lisp syntax was the easiest to parse.
20:00:47bougymancause, you know, lisp code is data.
20:00:56slavaforth is easier :)
20:01:01tarcieriheh
20:01:18bougymanyou just have to read scheme/lisp inside out.
20:01:22bougymaninstead of outside in.
20:01:43tarcieriI prefer languages that don't make me write everything in raw syntax trees
20:02:10dwaiteI think someone should make a full turing-complete language modelled after regexp syntax
20:02:18tarcieribrainfuck?
20:02:18tarcieriheh
20:02:57dwaitenah I think brainf**k went the wrong way there
20:03:10dwaiteit must be possible for people to read the syntax, otherwise they will lose interest
20:03:19dwaitemodel it after regex, and they will eventually lose hope
20:03:36tarcierinot sure how you "model it after regex" other than "make it look like line noise"
20:03:39tarcieriheh
20:03:47dwaitea good start!
20:03:49tarcierimake every operator in the language a single character?
20:04:54dwaitewell I'm thinking that in addition to named captures you need emitters
20:05:05dwaitewhich alter the data being matched
20:06:28dwaitethrough the ability to match and alter data, I'd hope to minimize the number of extensions needed to make it turing complete
20:11:07dwaiteactually I'll have to think about erjang; if the community accepts it, it would significantly lessen my repulsion from the erlang ecosystem
20:11:18slavawhat is erjang?
20:11:28jakedouglasguess
20:11:30dwaiteerlang on the jvm!
20:11:31jakedouglasi bet you'll get it right
20:11:54dwaiteoh wait, I mean
20:12:02dwaitedeletes that message
20:51:13dwaitegah google talk has been so broken the last week
20:54:48Defilerdwaite: are you using it from a gmail address, or a hosted domain?
20:55:00Defilerbecause there's an important be-less-busted step for the hosted ones
20:58:40evanshould we add something like this to rubinius: http://support.microsoft.com/kb/261186
20:58:40evan?
20:59:07brixenum...
20:59:09DefilerThe best part is that it even happens in Safe Mode
20:59:18evanyep
21:00:10brixenhah, bottom is the best... "How much effort did you personally put forth to use this article?"
21:01:30evanbrixen: i'm reorganizing the instruction encoder
21:01:35evanit's a mess.
21:01:38brixenok
21:01:57brixenyou should make it play Fur Elise first
21:02:03brixencus nothing says mess like Fur Elise
21:02:07evanmidi or mp3?
21:02:13evani could embed the midi into a .rbc file
21:02:17brixenor "your fan has failed"
21:02:43brixenyes, we need a marshal type for "music"
21:02:45brixen:)
21:03:03evanheh
21:05:07boyscoutRemove tags for now stable specs - 5a8a745 - Dirkjan Bussink
21:14:03boyscoutCI: rubinius: 5a8a745 successful: 3501 files, 14499 examples, 42300 expectations, 0 failures, 0 errors
21:40:34evanbrixen: should I just delete InstructionSequence::Encoder
21:40:37evanwe're not using it anymore
21:40:41evani'm inclined to
21:41:17brixensure
21:41:27brixenI think I never made it that far on cleanups
21:41:53brixenI know that I wanted to revisit a bunch of CompiledMethod methods
21:42:06brixenafter working on the bytecode compiler
21:43:07evank
21:45:21evanbrixen: i'm also removing the argument to 'def encode' in generator.rb
21:45:27evanwhich was talking ISeq::Encoder
21:45:30evanbut ignoring it.
21:45:34brixenk
21:46:09evanwe've got generator.rb so pimped out now
21:46:17evanthere is no reason to be generating bytecode directly.
21:46:44brixenwhen I need some bytecode, I just write Ruby :)
21:46:53evanyep
21:48:37evanhm, what should I do with Rubinius::Breakpoint
21:49:25brixen?
21:49:34evankernel/delta/breakpoint.rb
21:49:40evanthe new debugger doesn't use it at all.
21:49:45evani'm going to go through it now
21:49:49evanand make a decision
21:50:23brixenI'm all for cleaning everything up as much as possible
21:50:32evanyep
21:50:37brixengit has history should we need to resurrect anything
21:51:25evanhm, i think i'm going to just nuke this.
22:43:30boyscoutMinor BreakPoint cleanup - 5146e2a - Evan Phoenix
22:43:30boyscoutCleanup a bunch of ISeq/debugger cruft - 083f794 - Evan Phoenix
22:43:34boyscoutCI: Commit 083f794 failed. http://github.com/evanphx/rubinius/commit/083f794e18ccb8f244ccae92f777d9e65bc199ed
22:43:58evanoops.
22:44:25boyscoutAdd missing file - feb133d - Evan Phoenix
22:54:28boyscoutCI: rubinius: feb133d successful: 3495 files, 14496 examples, 42294 expectations, 0 failures, 0 errors
23:24:35brixenugh!
23:24:54brixenunpack with Q doesn't add nil elements but q does
23:25:25brixeneg "".unpack('Q3') => [] vs [nil, nil, nil]
23:25:35brixenlike all of IiNnVv
23:28:13goyox86brixen loves ragel :]
23:28:44brixengoyox86: it's not ragel, it's MRI
23:30:06goyox86brixen: you mean the current behaviour of unpack in MRI?
23:30:42goyox86brixen: is that? *eyeroll*
23:30:54brixengoyox86: and it's because they have no tests
23:31:02brixenhere are the MRI 1.8.7 unpack tests: http://gist.github.com/493054
23:31:11brixenand some of those are not even #unpack directly
23:34:25brixenand... it's fixed in 1.9.2 but who knows when that was
23:35:15goyox86brixen: :s
23:37:02goyox86fades