Index

Show enters and exits. Hide enters and exits.

00:27:18boyscoutUpdates specs for method#arity and proc#arity - 0b35b16 - Ivan Samsonov
00:27:18boyscoutFix some cases for method#arity and proc#arity - b1f731d - Ivan Samsonov
00:33:54boyscoutCI: rubinius: b1f731d successful: 3041 files, 11851 examples, 36146 expectations, 0 failures, 0 errors
00:50:08boyscoutSpec for checking that defined_method is private - eb47a10 - Ivan Samsonov
00:50:09boyscoutdefined_method should be private - 38145d6 - Ivan Samsonov
00:55:27boyscoutCI: rubinius: 38145d6 successful: 3041 files, 11852 examples, 36147 expectations, 0 failures, 0 errors
02:11:47tarcieriboyscout is an awesome name for a CI bot
02:12:01tarcieriirccat
02:12:29brixenyeah
02:12:49tarcierisup brixen
02:13:05brixenwerkin on specs
02:13:08brixensup with you?
02:13:52tarcieritrying to compute unsafe variables in case expressions, yay
02:14:36tarcierior rather, recycle overcomplicated code that already did that
02:15:09brixensounds fun
02:15:17tarcieriyes "fun"
02:15:20brixenheh
02:15:37tarcieriI linked this to a friend fo mine who just started learning Sceme as his first functional language and is taking a class on compilers
02:15:47tarcierilike "look at how much fun pure functional is" stab me in the eye with a fork
02:15:56tarcierierr, Scheme...
02:15:57tarcieriwtf?
02:17:06brixenheh
02:17:12brixentoo many forks in the eye
02:17:26tarcieriapparently hascaml++ is the new hotness
02:17:30tarcieriI am told by #erlang
02:17:37brixenoh?
02:18:23brixengoogle only has one reference on that heh
02:18:29brixenhttp://tunes.org/~nef//logs/haskell/10.01.16
02:18:43tarcieri<orbitz> I'm working on Hascaml++, should be out in early 2034
02:18:45tarcieriyes
02:19:11brixenhah, bing only has one too
02:19:17brixenbut it's different
02:19:42brixenhttp://ortdotlove.net/oort-factoids.html
02:20:21tarcieriheh, uhh
02:20:33tarcierihascaml++ is the new hot pure total functional object orientated language
02:20:36tarcierisounds like the same thing!
02:20:40brixenheh
02:21:12brixenmy own language getafuckinglifefpers should be out as soon as it can do IO
02:21:28brixenuntil then, it's just computing
02:21:29tarcieriIO is important and stuff
02:21:31brixenpurely
02:21:32brixen:)
02:21:39tarcieriseems like a lot of languages forget that
02:21:41tarcieriRUBY!!!!!!!!!
02:21:46brixenheh
02:22:44tarcierion the bus ride home today I was thinking about trying to do a pure JRuby Rev implementation on top of NIO2
02:23:00tarcieriand ugh Rev has all these API warts I want to fix but I'm afraid of touching the C code
02:26:31brixentarcieri: seems like that would be pretty doable, no?
02:26:52brixendoes jruby get in your way accessing the NIO2 api at all?
02:27:01tarcieriI've never tried
02:27:05tarcieriand yeah it should be totally doable
02:28:07evani've almost finished tearing up Time
02:28:12brixensweet
02:28:16evanseems like someone started implementing some stuff
02:28:18evanand never finished.
02:28:22evanbut left a bunch of half written code.
02:28:46wayneeseguinHalf written is not written, greenfield!
02:28:48wayneeseguin:)
02:28:57evanalso found http://2038bug.com/pivotal_gmtime_r.c.html
02:29:05wayneeseguinwell 'Half written by someone else is not written'
02:29:09evanwhich i'm going to incorporate after I finish here
02:29:41tarcieriTime is all riddled with C or what?
02:30:36evanit was just totally weird
02:30:45evanthey took something that is largely immutable
02:30:53evanand implemented it in a totally weird way
02:31:00evanto create a new Time object, it would do
02:31:03tarcierioh awesome Time is somehow mutable?
02:31:07evanTime.allocate.make_time()
02:31:18evanwhere make_time just mutates the receiver
02:31:24tarcierilol
02:31:26evanrather, than, say Time.make_time().
02:31:46brixenTime.make_time(:in_your_day_for_fun)
02:31:48tarcieriMatz seems to almost have it right with immutability
02:31:49evanyes, mostly immutable
02:31:53evanfor some fucking reason
02:31:58evanthere is Time#localtime
02:32:00tarcieritotally by accident, as far as I can tell
02:32:04tarcieriPython certainly fails balls
02:32:05evanwhich flips the "is this Time object for gmt or not" flag
02:32:25tarcieriI can't figure out what Matz's deal is
02:32:47tarcieriI guess it's that he continues to think about all these problems but can't exactly do anything about them in Ruby
02:33:14brixenin Ruby or in MRI?
02:33:19tarcierihis keynotes are all "here's a bunch of random shit you should probably pay attention to and oh by the way ruby"
02:33:22tarcieriin Ruby
02:33:36tarcieriRuby and its mutable state up the wazoo
02:34:23tarcieriMatz talks about all this stuff like the multicore future and concurrency, then it's "oh by the way Ruby..."
02:37:32tarcierilike I assume you saw this: http://www.infoq.com/interviews/yukihiro-matz-language-design
02:38:31evanyesum.
02:39:22tarcieriit's really interesting to hear him talk about what kind of language he would design today
02:41:00tarcieriyeah, talking about laziness, "the yield keyword in other languages" heh
02:41:03tarcierigenerators
02:43:22tarcieriI guess I should go say hi to Matz at some future Ruby conference
02:43:33tarcieri"I like mixing Actors and Ruby-like ideas!"
02:44:29tarcieribut yeah, he thinks you can solve concurrency issues at the library level, not the language...
17:50:12evanmornings gents!
17:50:41kronos_vanohi
17:51:21evankronos_vano: how are you this morning?
17:51:27evani guess it's evening for you
17:51:30evandid you have a good friday?
17:55:28kronos_vanoMy timezone is utc +3, so yep, here is evening. Friday is good because i'm already at home and ready for rubinius!
17:55:47evanwoo!
17:55:51brixenheh
17:56:09evanmy new Time nearly almost passes all the specs
17:57:20brixenwoohoo '1489 files, 9829 examples, 101842 expectations, 4 failures, 0 errors'
17:57:26brixenthat's 1.9 head on rubyspec
17:57:39brixenfor language/ and core/
17:57:41evanyou're awesome.
17:57:48brixennot me
17:58:06brixenI'm just facilitating
17:58:08evan:D
18:01:14dbussinkevan: i still have some time specs failing here atm, due to tz differences
18:01:26dbussinkevan: you should running the specs with another tz too :)
18:01:54evanok, no prob.
18:02:15dbussinkevan: let me gist you an example of the difference between rbx and ruby
18:02:23evan10-4
18:02:26brixendbussink: that would be nice
18:02:38mahargtimezones *shudder*
18:02:44dbussinkhttps://gist.github.com/5603b057b1140626d890
18:02:55dbussinkbasically this is because the netherlands didn't have the same tz in the past
18:03:01evanoh man.
18:03:02evanok
18:03:04evanyeah
18:03:12evantz's in the past o/~ suuuuuuuck o/~
18:03:24dbussinkwe have been +0:19, +0:20 and +1:00
18:03:36evanwtf is that
18:03:38dbussinkwe have the germans to thank for the last move :P
18:03:42evanseriously ntherlands?
18:03:50evan19 minutes off gmt?
18:03:51maharg+:19 wat
18:03:53dbussinkyeah
18:03:54evanwhat are you
18:03:57evanmt everest?
18:04:06evan(which is 45 minutes off the next zone)
18:04:14dbussinkwell, that was the time the sun was at the highest point in amsterdam
18:04:45dbussinkwhich was later standardized to +0:20 to unify it across the netherlands (when trains were introduced, there were different times in each town before that)
18:04:48evanwhen did it change to 20?
18:04:56evani'm assuming the change to 1hr was in the 30s
18:04:59dbussinkand when ww2 broke out the germans changed everything to berlin time
18:05:15evanfun
18:05:36dbussinkwhich is +1:00 and it has been like that ever since
18:05:45dbussinkso far for a short history lesson :P
18:05:52mahargnewfoundland is -3:30
18:06:33evanand thats dumb too!
18:06:41dbussinkevan: the easy part of being a new country ;)
18:06:46evanmt everest is 45 minutes off only because it's an extreme climate
18:07:03evanand they wanted noon to sync to the sun directly overhead
18:08:04mahargthe real problem with timezones isn't weird increments. It's the fact that they change over the course of the year. Goddamn daylight savings time
18:09:12evantrue
18:09:30evanrue|W: well in the US it has the effect of changing
18:09:42evanbecause Arizona, who doesn't observe DST, has the effect of moving TZs
18:09:55evanin fact, thats how it's referenced
18:10:05evan"is Arizona in Mountain or Pacific time right now?"
18:10:15dbussinkrue|W: that's actually true for whole europe :)
18:11:01dbussinkevan: i've had that yeah, we travelled from pacific to arizona and were like "wtf, time doesn't change", then the dst switch happened when in arizona and we got back in pacific and then it did change
18:11:05dbussinkpretty confusng
18:11:17evanyep!
18:11:24evanDST is a pain
18:11:25mahargalso that the rules change over time and you have to keep your rule table up to date
18:11:32evanbut I guess it saves a shitton of energy per year
18:11:39evanso *shrug*
18:11:47dbussinkit actually doesn't do really much
18:11:55dbussinkbut i like the extra hour of light in the evening in the summer
18:12:12dbussinkwhen drinking a beer and enjoying the evening
18:12:16mahargI live far enough north that it only really helps in that sense for like 3 weeks a year
18:12:40dbussinkmaharg: where is that?
18:13:03dbussinkevan: but i assume that mri refers to posix stuff to do this computation
18:13:08mahargshortest day is from about 10am to 4:30pm
18:13:31dbussinkrue|W: nah, that would make it dark even earlier in winter, i don't like that either :P
18:13:57dbussinkmaharg: where do you live?
18:14:28maharghttp://maps.google.ca/maps?q=edmonton&ie=UTF8&hq=&hnear=Edmonton,+Division+No.+11,+Alb erta&gl=ca&ei=wkh0S_z7GI2inQfLnPi-CQ&ved=0CA4Q8gEwAA&ll=53.540307,-113.203125&sp n=118.117204,313.59375&t=h&z=2
18:14:57dbussinkmaharg: that's pretty far north for canadian standards i assume
18:15:20evandbussink: i'll check shortly
18:15:59evani always forget how far north edmonton is
18:15:59mahargit's the furthest north you can get and still be in a 'large' metropolitan city in NA.
18:16:12evanno wonder the mall is huge.
18:16:17mahargheh
18:16:19dbussinkmaharg: yeah, it looked like that on the map
18:16:38mahargnorth of this there's just anchorage, which is like 300k people
18:18:16mahargon the other hand, we get 18 hour days in summer
18:18:19mahargwhich are glorious
18:18:49mahargwhenever I travel south in summer it's shocking how early the sun sets
18:18:54dbussinkmaharg: it's actually not much further north than the northern part of the netherlands
18:19:47dbussinkrue|W: yeah, i know that the us / canada is much further south than i imagine, but it still surprises me
18:19:49evanman, i can't imagine how cold europe would be without the north atlantic current
18:19:56dbussinkevan: pretty chilly :)
18:20:26evanamericans are so used to thinking about europe as straight east
18:20:45dbussinkevan: same here actually
18:20:56dbussinkevan: it's works reasonably well weather wise though :)
18:21:00evantrue
18:22:04dbussinkevan: there are other things americans think that make me cringe ;)
18:22:58evanoh me too my friend
18:22:59evanme too.
18:23:09mahargno benefit of ocean air here. Rockies are in the way :/
18:23:22dbussinkalthough i feel ashamed about geert wilders these days
18:23:36dbussinkif that name doesn't ring a bell, i'm happy :P
18:24:23evanit does not.
18:24:26evanand i shall not google it.
18:24:55mahargthat's an impressive display of restraint
18:25:21evani've got a constitution of steel.
18:25:28evanif only I had the stomach to match.
18:26:37jvoorhisi love llvm!
18:26:43evanme too!
18:26:49evanlets make a club!
18:26:52dbussinklet us all sing praise!
18:26:59jvoorhislast night, i implemented common subexpression elimination for my compiler
18:27:05evannice!
18:27:08dbussinkhallelujah!
18:27:12jvoorhisand then i found the equivalent passes, and deleted my code
18:27:14jvoorhis:)
18:27:30evanhah
18:27:57evani was going to ask "was the implementation pass_manager << createSEL()"
18:27:58evan:D
18:28:12jvoorhisyeah, something like that
18:28:21jvoorhishm, that's not a bad syntax
18:28:34jvoorhisi support pass_manager.add(:sel, ...)
18:29:01evanmaking the weird LLVM names for the passes to something easier to remember would be good
18:29:07evanmapping, rather.
18:29:08jvoorhisyeah
18:29:20jvoorhisi was thinking about that
18:29:28evani'd probably even make methods on pass_manager for the most common ones
18:29:34evanpass_manager.sel!
18:29:36jvoorhisi have them
18:29:53jvoorhispass_manager.add_aggressive_dce_pass is equivalent to pass_manager.add(:aggressive_dce)
18:29:59evanthere is a black art to picking the passes and their order in LLVM though
18:30:13jvoorhisthey have to be methods because llvm-c has no data representation for passes
18:30:20evanesp. when you getting into trying to add custome AliasAnalysis passes
18:30:26jvoorhisso pass_manager << someObject won't really work, unless it was a symbol
18:30:33evanjvoorhis: so make it a symbol
18:30:41jvoorhisyeah, that would be fine
18:31:53jvoorhisi was thinking of mapping the names onto their option names at http://llvm.org/docs/Passes.html
18:32:26jvoorhisso :aggressive_dce would become :adce, and i could refer to that page in ruby-llvm's docs
18:33:05jvoorhisevan: you're right about black magic – it took me a bit of trial and error to find a pretty good set
18:34:31evanyeah
18:34:41evanthe AA passes are even harder
18:34:52evanbecause you have to insert them right before you want use them
18:34:55evanor they disappear
18:35:20jvoorhisnot all of the passes are in llvm-c
18:35:54jvoorhisnone of the analysis stuff is, for example
18:36:05jvoorhisjust scalar opts and ipo
18:36:10evanyeah
18:36:13evanif you want stuff added
18:36:15evanlet me know
18:36:19evani've got LLVM commit rights
18:36:25jvoorhiscool, i may send a patch since the wrappers are really straightforward
18:36:31evank
18:36:52jvoorhisis the pass manager code in rbx pretty centralized?
18:37:02jvoorhisi'd like to see some examples of how more experienced people are using it
18:37:13evansure, let me show ya
18:38:03evanhttp://github.com/evanphx/rubinius/blob/master/vm/llvm/jit.cpp#L466
18:38:06jvoorhiscool, the docs allude to certain analysis passes creating transformation opportunities, but everything is still really vague
18:38:10evanthat list was original extracted from opt
18:38:22evanand then i've slowly added/removed/reordered
18:38:26jvoorhiscool
18:38:45evanyou should use createInstructionCombiningPass often
18:39:04jvoorhiswow
18:39:08jvoorhisyeah, i used it once, early
18:39:13evanoooh
18:39:17evanit's a cleanup pass
18:39:19jvoorhisyeah
18:39:31evanuse it after you have passes that do a lot stuff
18:39:40jvoorhishm, no cond or const propagation?
18:39:55evanGVNPass does that
18:39:57jvoorhisi also found gvn and licm to be pretty useful
18:39:58jvoorhisoh
18:40:01jvoorhisso that's redundant?
18:40:12evanyeah
18:40:25evana lot of them do similar things, using different algorithms
18:40:35jvoorhisdoes gvn do licm?
18:40:44jvoorhisllvm really needs a pass tutorial
18:40:49evanyeah it does
18:41:01evani believe that gvn and licm do similar things, yes.
18:41:07jvoorhiswhat's overflow folding?
18:41:22evana pass I wrote
18:41:37jvoorhiswhat does it do?
18:41:39evanthat does constant folding of the llvm overflow math intrinsics
18:41:44jvoorhisneat
18:42:13evanthose are in passes.cpp
18:43:27jvoorhishm, and CFG is used three times
18:43:40evanyeah
18:43:51evanit cleans up the control flow
18:43:56jvoorhisright
18:44:04evanmaking other passes more likely to do better work
18:44:08jvoorhisi've seen it delete blocks in my code and such
18:44:18evansince not all passes are super smart about control flo
18:44:19evanflow
18:44:27jvoorhisyeah
18:45:20jvoorhisthanks, some good ideas here that i can play wtih
18:46:06evanno prob.
18:46:09jvoorhismy process has mainly been dumping my code, making a change, dumping again, and diffing the IR
18:46:13jvoorhisit gets tedious
18:46:21evanyeah
18:46:28evani did it trial and error too
18:46:46evanbasically looking at the IR and saying "it should be able to remove this"
18:46:56evanand figuring out what passes I needed for that to happen
18:47:03jvoorhisand your code is much more complex than mine
18:47:10evan:)
18:48:00jvoorhisespecially since i'm shooting for optimized numeric code :)
18:49:13evan:)
18:49:16jvoorhisrewriting the api many times helps a lot
18:49:35jvoorhishere's an example of what i've come up with so far
18:49:38jvoorhisDSP.new { |dsp| dsp.out[0] = dsp.in[0] * oscil(hz: 1.0, amp: 1.0) }
18:49:51jvoorhisthat would be a tremolo effect that acts on realtime input
18:51:07jvoorhis(indexes select channels, so that's a mono signal, and there's some 1.9 hash syntax there)
18:54:00evannice
18:55:23jvoorhisyeah, i feel like i'm learning to negotiate between my FP tricks and idiomatic ruby
18:56:06jvoorhisthere's still a little first-order, referentially transparent language in there represented by an algebraic data type
18:56:23jvoorhisbut i compile it with visitors, and assign it to things, and allow a little bit of state in the right parts
18:57:06jvoorhisso it looks like ruby again :)
18:57:17evancool
18:57:30evanso, are you using LLVM's JIT then?
18:57:33jvoorhisyes
18:57:56evanwhat are you doing with the void* you get back?
18:59:03jvoorhisPortAudio::Stream.new(..., :callback => execution_engine.pointer_to_global(cback))
18:59:24jvoorhisFFI glues everything together :)
19:00:01evanso you invoke the JIT'd method as an FFI callback?
19:00:06jvoorhisno
19:00:21jvoorhiswell, callback yes, but not an FFI callback
19:00:41evanyou have a little bit of C code that you use to invoke it then?
19:00:48jvoorhisportaudio spawns a thread whose mainloop is driven by the audio hardware, and it invokes the callback
19:01:21evanah
19:01:33evanit's the portaudio stuff then that invokes it
19:01:34evangotcha.
19:01:37jvoorhisexactly
19:01:38evani forgot about that part
19:01:58jvoorhisthe callback is invoked with some timing information, input and output buffers, and a pointer to whatever state i need
19:03:03jvoorhisso my dsl's dsp expressions are embedded inside of a loop that sets a few state variables like the current time, and uses the generated code to fill the buffer
19:03:38jvoorhisi also implemented the blocking api for portaudio, so it's possible to generate sound without using callbacks JIT'd or otherwise
19:03:51jvoorhisbut that's a lot slower / intensive
19:04:12jvoorhishttp://github.com/jvoorhis/ruby-portaudio/blob/master/lib/portaudio.rb#L511 <-- fun toy
19:06:18jvoorhisbut if you push it too hard, the audio gets crackly and drops out
19:06:31evanright
19:08:08jvoorhismy JIT'd callbacks use doubles for representing samples, run at 96000 hz (or whatever my hardware supports), and use about 12% cpu
19:10:33jvoorhisso with the right features and a bit more experience, this could become something not unlike a modern Csound
19:16:05evannice
19:18:05jvoorhisyeah, compiled dsls are really cool
19:18:28jvoorhisthe hornet's eye rubyconf talk was really impressive
19:19:01jvoorhiswas really validating to find out someone else was doing the same thing in ruby, and pushing it pretty hard
19:19:04jvoorhishe uses libjit though
19:19:57jvoorhisand my original inspiration is at http://conal.net/papers/jfp-saig/
19:20:54jvoorhisbut that language compiles to C and has lots of painstakingly crafted optimization code
19:20:59jvoorhisLLVM makes me feel like i'm cheating :D
19:21:15brixenyou are
19:21:17brixen:)
19:22:13jvoorhisi'm ok with that :)
19:22:26brixenindeed
19:22:40brixencheat and steal whenever you can
19:23:36jvoorhison the other hand, i have a couple thousand lines of FFI code
19:23:42brixenis there an os x cmd line utility that will tell you the encoding of a filename?
19:23:47dbussinklazyness is a programmers virtue
19:25:03jvoorhisbrixen: not that i've heard of
19:25:15brixenhrm
19:25:24brixenI wonder if this is even possible to spec...
19:28:09dbussinkbrixen: hfs+ filenames are utf-16 encoded
19:28:54brixendbussink: well I'm getting utf-8 back from File#to_path string
19:28:56brixenso dunno
19:29:09brixenI encode the string as euc-jp before creating the file
19:29:22dbussinkbrixen: how does it determine in mri what kind of encoding you get back?
19:29:29jvoorhisbrixen: maybe you could knock it together with this thing: http://github.com/blackwinter/cmess/blob/master/lib/cmess/guess_encoding.rb
19:29:36brixensince this spec is passing for one of the ruby-core devs, I'm not sure what's up
19:30:08brixendbussink: see my comments in #rubyspec and that commit
19:30:30brixenjvoorhis: interesting, thanks
19:31:03jvoorhisi know cocoa has some code for deriving encoding from strings too
19:31:11jvoorhisa command line tool is probably fairly straightforward
19:31:19evanwoo
19:31:22evanTime passes the time specs again.
19:31:41brixennice!
19:33:01evanhuh
19:33:03evanMRI is weird.
19:33:17brixenheh
19:33:22evant = Time.at(100)
19:33:47evanp (t + 1.3).usec # => 300000
19:33:59evanp (t + -1.3).usec # => 0
19:34:43evanp (t - 1.3).usec # => 700000
19:34:43dbussinkevan: did you try my suggestions? :)
19:35:12dbussinkevan: probably warrants a spec / bug report then
19:35:27evanp (t - -1.3) # => 300000
19:37:57evanit must be a bug
19:38:01evanthey changed it in 1.9
19:38:06evancourse, in 1.9, i get
19:38:13evan699999 instead of 700000
19:38:17evan*eyeroll*
19:43:07evanwoit.
19:43:08evanwait
19:43:09evanwtf
19:43:17evani must have screwed it up
19:43:22evannevermind.
19:49:14evandbussink: ok
19:49:18evanwhat TZ should I set it to?
19:49:28dbussinkevan: i have Europe/Amsterdam here
19:49:32evank
19:50:28evanhm.
19:50:35evanTZ=Europe/Amsterdam bin/mspec spec/ruby/core/time
19:50:37evanis clean
19:50:42evanwhat spec fails for you
19:50:43evanspecificly
19:53:08dbussinkevan: https://gist.github.com/fab876ef70bb265f7d60
19:53:17dbussinkmaybe your changes already fixed it
19:53:28dbussinkevan: did you try the things in my previous gist?
19:53:38dbussinkevan: https://gist.github.com/5603b057b1140626d890
19:54:07evanok, one sec.
19:59:34evanok, i've added your case
19:59:36evannow i'll fix it.
20:14:17dbussinkevan: tricky case?
20:14:33evanmore interesting
20:14:43evantrying to figure out which system is getting the TZ wrong
20:14:49evanit appears that mktime() is doing fine
20:15:02evani'm getting the right seconds (-1893457172 to be exact)
20:15:48evanoh ho.
20:15:51evanlook at this.
20:16:09evanMRI's Time#inspect does not trust strftime
20:16:25evanit creates it's own offset
20:16:32evanwhich is the thing we're looking at.
20:18:04dbussinkah, Time.local(1930, 1, 1).strftime("%z") also prints +01:00
20:18:09evanyeah
20:18:11evanAWESOME.
20:18:12dbussinkin irb
20:18:14evani was about to test that.
20:18:19evanso one place it's right
20:18:21evananother it's wrong.
20:21:13dbussink1.9 has it fixed
20:21:27dbussinkTime.local(1930, 1, 1).strftime("%z") => "+0020"
20:21:56evanok, checking it now.
20:22:17evanMEGAWIN
20:22:23evani'm doing this
20:22:32evan1.9 includes it's own public domain strftime
20:25:47evani love code that includes in a comment an email from 1991
20:26:03evanesp. when it includes stuff like:
20:26:14evanin a process of fixing of strftime() in libraries on Atari ST I grabbed
20:26:14evansome pieces of code from your own strftime.
20:26:21evanAtari ST!
20:26:28brixenheh
20:37:56dbussinkevan: you're going to include it?
20:38:51evanpondering
20:39:01evanI think I might just handle %z specially
20:47:16dbussinkevan: this one is also fun: Time.utc(1930, 1, 1).localtime => Wed Jan 01 00:19:32 +0019 1930
20:50:18evanyeah
20:50:21evanthats fun
20:50:23evanthough it's the same
20:50:33evan#localtime just twiddles the internal "is this for gmt or not" flag
21:09:09dbussinkbrixen: where does that huge amount of expectations come from? auto generated specs for encodings?
21:10:08brixenyes
21:16:21dbussinkbrixen: is there an easy way to run rubyspec with rvm 1.9 installs/
21:16:22dbussink?
21:17:24dbussinkbrixen: since -tr19 looks for a ruby1.9 executable
21:18:05brixen-t 'path/to/exe' or 'exe' if it's in the path
21:19:04brixenor rvm <whatever> mspec-run
21:19:31brixenis getting lunch
21:45:45brixendbussink: did you get it working?
21:46:07dbussinkbrixen: yeah, did get a spurious segfault though with latest trunk
21:46:27brixenspurious == not repeatable?
21:46:28dbussinkbrixen: and can't seem to run latest rubyspec, since it needs mspec 1.5.16 which isn't released yet
21:46:39brixenoh oops
21:46:40dbussinkbrixen: yeah
21:46:42brixendid I not push that
21:47:21brixendbussink: you should have it now (mspec 1.5.16)
21:48:12dbussinkbrixen: ah, it crashed again
21:48:41brixendbussink: consider filing a ticket
21:48:53brixenif it's repeatable and you have 1.9 head and rubyspec head
21:49:15brixencan you repro it with -fs?
21:49:19brixenso we can see which spec it is
23:06:09evanhey!
23:06:15evanthat public domain strftime worked!
23:06:24evanit was easier that doing %z myself
23:06:32evani just modernized it a bit and threw it in.
23:07:54benschwarzbrixen: ...
23:08:10benschwarzWhats with all the 1.9 testing?
23:09:17rueNeat
23:11:12evanrad
23:11:15evankendall :: git/rbx » bin/rbx
23:11:15evan>> ENV['TZ'] = "Europe/Amsterdam"
23:11:16evan=> "Europe/Amsterdam"
23:11:18evan>> t = Time.local(1910, 1, 1)
23:11:20evan=> Sat Jan 01 00:00:00 +0019 1910
23:11:22evan>> t.strftime("%z")
23:11:24evan=> "+0019"