Index

Show enters and exits. Hide enters and exits.

00:08:11evanah shit.
00:08:20evanyou changed what --prefix does
00:08:22evandidn't you.
00:09:07evanok, need to build the installer again.
00:14:25brixenevan: what did that mess up?
00:14:40evanusing --prefix with /usr/local/rubinius/1.0.0-rc2
00:14:47brixenhm
00:14:48evanput everything in /usr/local/rubinius/1.0.0-rc2/rubinius/
00:15:09evanI manually edited config.rb and config.h to remove the extra rubinius/ in there
00:15:16evanfor the installer
00:15:24evanshould be fine, it's no biggy for right now
00:15:35evanbut we'll, yet again, have to address this.
00:15:48brixenhm
00:17:27brixenI'm not exactly following, I built the package, installed to /usr/local/rubinius/1.0.0-rc2, and it runs, but I thought it created a symlink before at /usr/local/bin/rbx
00:17:52evanmmm
00:18:01evanwhen you did --prefix
00:18:16evanit didn't set the bin to /usr/local/rubinius/1.0.0-rc2/rubinius/bin
00:18:17evanoooh
00:18:18evanhah
00:18:20evani know what happened
00:18:24evani already had a directory there.
00:18:30evanfrom my last test of the package.
00:18:32wayneeseguinWTF #89
00:18:34wayneeseguin:D
00:19:04brixenevan: yeah, my /usr/local/rubinius/1.0.0-rc2 is sane
00:19:09evank
00:19:10brixenie, what I'd expect to see
00:19:41evanyep.
00:19:44evanagain, my mistake.
00:19:56brixenn/p
00:19:59brixenI was just confused
00:20:10evanfirst-monday-of-the-decade itis
00:20:19brixenso, should I have a /usr/local/bin/rbx ?
00:20:25evanyeah, do you?
00:20:29brixennope
00:20:31evanok
00:20:37evanthen the symlink isn't in the package
00:20:45evani was playing with it at one point
00:20:49evanshould we put it in?
00:20:53brixenI think so
00:20:54evanor let the user do that
00:20:59brixenI'd add it
00:21:02evank
00:21:49evani'd rather not tag again, etc.
00:21:57evanso i'll send you the diff to package.rake to do this
00:22:02evanand then i'll commit it to rc3
00:22:06brixenok
00:32:09evanbrixen: https://gist.github.com/e4a05f904922a275f145
00:32:23evanbrixen: be sure to rm -rf your /usr/loca/rubinius/1.0.0-rc2 before you package it again
00:32:29evanotherwise you'll get the wierd pathing problem
00:33:40slavaevan: what are you working on
00:33:55evantagging and release 1.0 rc2 atm
00:33:59mistergibsonjust wrapped up some other stuff and did a pull, you guys need me to test anything in particular?
00:34:11evanmistergibson: nope, nothing particular.
00:34:13mistergibsonk
00:35:01slavaevan: awesome
00:35:28brixenevan: k
00:35:42mistergibsonok
00:39:49brixenevan: what format did you want for the installer? zip, tgz ?
00:39:57evanzip
00:40:03evanuse the Compress option from finder
00:40:06evanis the easiest.
00:40:10seydarbrixen: amp works with rubinius! thus far...
00:41:01brixenseydar: sweeet!
00:41:05brixenevan: k
00:41:16evanbrixen: then upload to elle and let me know
00:41:20evani've got the website updated
00:41:22evanjust need to push it.
00:41:48slavarubini.us => rubini => ola bini
00:41:52slavacoincidence or conspiracy?
00:42:21evanthere must be a 3rd option.
00:43:39brixenevan: uploaded to my home dir
00:44:01evank
00:44:53brixenevan: seeing an issue with InvalidRBC const missing
00:44:58brixenI'm looking into it
00:45:03evanerk.
00:45:06evandamnit.
00:45:08evani moved it
00:45:13evani must have missed a couple of places
00:45:22evanyou probably need to refer to it as Rubinius::
00:45:41evanis it critical enough to fix in rc2?
00:46:31evanBAH.
00:46:33evanfuck.
00:46:35evan:/
00:46:42evanyeah, we need to fix this in rc2
00:46:48evanfail on me.
00:46:54evani see the issue.
00:47:11brixenevan: I'm rebuilding the installer
00:47:19evanusing what?
00:47:24evani'm going to just retag rc2
00:47:27evanand repackage
00:47:36evanwhat change did you do?
00:47:45evanadd Rubinius:: infront of a couple places in requirer.rb?
00:48:14evanone place really.
00:50:06brixenkernel/delta/requirer.rb line 224
00:50:42evanyep.
00:51:36brixenyep, ran specs from rbx installed from the installer
00:51:41brixenso just that one change
00:52:57brixenevan: new installer uploaded
00:53:06evank
00:53:18evani'm going to commit, retag, retar, repackage
00:53:24brixenk
01:19:43boyscoutUpdate for 1.0.0-rc2 - 4e1d520 - Evan Phoenix (gh-pages)
02:16:36marcandreSorry guys. Looks like everytime I try to make rbx I get a problem of some kind.
02:16:38marcandrevm/vmmethod.cpp:93: error: class ‘rubinius::VMMethod’ does not have any field named ‘jitted_impl_’
02:16:53marcandreFor once, doesn't look like stale .rbc
02:55:10wayneeseguinevan / brixen in case anyone asks 'rvm update --head' has rc2 support
03:02:22brixenwayneeseguin: sweet, thanks
03:02:55brixenmarcandre: need more info, tarball, clone, gist??
03:03:18marcandregit pull && make install.
03:03:25marcandre(master)
03:03:39wayneeseguinlikely need a 'rake clean' ?
03:03:53brixenmarcandre: command you are running?
03:03:59brixenand yes, rake clean if you have not
03:04:13marcandreYeah, I did rake clean && rake cleandist
03:04:26marcandrerake install fails when compiling vmmethod.cpp
03:05:02brixengist me ./configure --show
03:05:52marcandrehttp://gist.github.com/269108
03:06:30brixenyou are not using llvm
03:06:34brixeninteresting
03:06:38brixenprobably busted
03:06:40brixenI'll check
03:07:15marcandreWell, I haven't reconfigured for ages. Should I?
03:07:16brixenmarcandre: curious, have you reconfigured?
03:07:22brixenyes definitely
03:07:34brixenit should still work without llvm
03:07:38brixenI'll check that
03:07:52brixenwe'll have to figure out how to force a reconfigure I guess
03:08:00brixensince we are changing stuff in the script
03:08:43brixenyep, this is going to be a problem
03:08:49marcandreAll right... It configured llvm and it's building now.
03:08:54brixenfor example, the rbx version is set by the configure script
03:09:16marcandreWell, I'm glad that this time I might not have been completely wasting your time with my build issues... ;-)
03:09:43brixenI'm going to have to figure out a good way to make the rake tasks detect a stale config maybe
03:10:02brixenmarcandre: that's why I added the --show option ;)
03:10:20brixenso I can hopefully see wtf is going on remotely :)
03:10:25marcandreBTW, I presume that once you have a v1 out, you will check for marshalling versions of .rbc, right?
03:10:38brixenit's checking now
03:10:42marcandre(not related here, I know)
03:10:55brixenevan just added that before releasing rc2
03:11:20marcandrecool.
03:11:24brixenok, build with llvm disabled fails
03:11:32brixenI'll look at it, but first food
03:11:34brixenbbl...
03:11:42marcandreNice. I built without a hitch. Thanks!
03:43:26boyscoutAdd a test that chdir should call to_str on an object if a block is given - 978e9ae - Yehuda Katz
03:43:26boyscoutcall StringValue on the call to chdir whether a block was given or not - 7c89196 - Yehuda Katz
03:46:48boyscoutCI: rubinius: 7c89196 successful: 3022 files, 11678 examples, 35869 expectations, 0 failures, 0 errors
05:18:49boyscoutArray#product: Fixing implementation. Should even be quicker... - c417fc0 - Marc-Andre Lafortune
05:18:49boyscoutFix recursion for Array#hash, Hash#hash, Struct#hash, #<=>, #eql? - 09d1824 - Marc-Andre Lafortune
05:18:51boyscoutFixing Array#product - f649b54 - Marc-Andre Lafortune (one_nine)
05:22:11boyscoutCI: rubinius: 09d1824 successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors
05:29:33tarcieriguess I should try building rubinius again there eh?
05:31:52tarcierichuggah chuggah
05:33:10tarcierihroom
05:33:11tarcierivm/vmmethod.cpp: In constructor ‘rubinius::VMMethod::VMMethod(rubinius::VM*, rubinius::CompiledMethod*)’:
05:33:14tarcierivm/vmmethod.cpp:93: error: class ‘rubinius::VMMethod’ does not have any field named ‘jitted_impl_’
05:33:17tarcierirake aborted!
05:33:49evantarcieri: run ./configure again
05:33:53tarcierio
05:33:55marcandretarcieri: I had the same problem.
05:33:57evanseems i broke compiling without LLVM.
05:34:03marcandreyup. :-)
05:34:33tarcieriaight, recompiling
05:34:35marcandreOups, meant yup to run ./configure... I should type faster
05:35:35tarcierivm/ontology.cpp omai
05:35:54tarcierirubinius defines its own ontos?
05:36:02tarcieriheh
05:36:26evanhuh
05:36:28evanontos?
05:36:57tarcieriheh, from the philosophical as opposed to computer science definition of the term, I suppose
05:38:37boyscoutFixed building with LLVM disabled. - b1ca50c - Brian Ford
05:38:56tarcierithat which is, as opposed to that which is experienced
05:39:25evanbrixen: thanks.
05:39:32tarcieriyay
05:39:36brixenevan: n/p
05:39:43brixenI was doodling instead of pushing that
05:39:53tarcieriheh
05:39:53brixenfixed it a couple hrs ago heh
05:39:54evani guess we'll see if we need to release rc3 sooner than usual
05:40:00brixensure
05:40:00evanor rerelease rc2
05:40:07tarcieribuilding rbx kills my poor laptop :(
05:40:10tarcieriI need a new laptop
05:40:12brixenwe can do a rc3 sooner
05:40:43brixenactually, I was making chocolate chip cookies and watching hip hop dance video
05:40:50brixenpriorities ya know :)
05:41:09evani was drinking sapporo and watching mythbusters
05:41:14brixenheh
05:41:20brixenI miss mythbusters
05:41:26brixenneed cable to get that channel here
05:41:33evansince LLVM is on by default
05:41:34tarcieriwas driniking a vodka tonic then arbitrarily decided to build rbx after seeing you guys were up to rc2
05:41:46evanmaybe people won't notice
05:42:02boyscoutCI: rubinius: b1ca50c successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors
05:42:19boyscoutRemoving obsolete libs (1.8.7, 1.9) - f0cffb9 - Marc-Andre Lafortune
05:42:20brixenI'm wondering how many ppl have been configured with llvm disabled all this time
05:42:27brixenhence, not using the jit at all
05:42:28evanlots
05:42:30evanmost probably
05:42:33brixenfunny
05:42:37tarcieribrixen: this checkout is... old
05:42:39tarcierireally really old
05:42:47brixenit's like the biggest rbx tech of the *decade*
05:42:50tarcierilike shotgun old
05:42:52brixenand it's disabled haha
05:42:58evantarcieri: get another clone.
05:43:05tarcieriheh I should reclone
05:43:07tarcierialthough it looks good
05:43:11brixentarcieri: haha, srsly?
05:43:15tarcieriit's trying to run the tests now, I think
05:43:17tarcieribrixen: yep
05:43:20brixenthat's funny
05:43:21tarcieriI haven't recloned... evar
05:43:25brixenwow
05:43:57brixentarcieri: does this mean you're gonna come do some more Actors work on rbx? :D
05:44:05tarcierihaha
05:44:21tarcieriI'm a bit obsessively preoccupied with Reia atm
05:44:29brixenthat's cool too
05:44:32tarcierithe new branch is almost running the old test suite!
05:44:37brixensweet!
05:44:43tarcierithat's a good feeling
05:44:43brixenprogress then
05:44:47brixenno doubt
05:45:02tarcieridurr
05:45:02tarcieriRunning 710 tests.........................................................................................rake aborted!
05:45:06tarcieriCommand failed with status (): [vm/test/runner...]
05:45:18tarcieriwell that should be good enough for fucking around with
05:45:30tarcierihmm
05:45:31tarcieri~/src/rbx$ vm/vm
05:45:31tarcieriSegmentation fault
05:45:40boyscoutCI: rubinius: f0cffb9 successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors
05:46:07evantarcieri: i guess you don't really care then. :/
05:46:22tarcieriyeah not sure what's up
05:46:23evani'd suggest a new clone.
05:46:27tarcieriaight, hehe
05:46:28brixentarcieri: rake distclean at least
05:46:32evanif it's really more than 2 years old.
05:46:36tarcieriI'll just reclone
05:46:41tarcieriyeah this is... really really old
05:48:37evanbrixen: Added a gotcha about building without LLVM not working on rc2
05:48:46brixenok cool
05:49:19brixenevan: I'm thinking we might need the rake tasks to detect an old config and bail
05:49:36brixenoh, we could add a setting to config
05:49:39brixenthat would work
05:51:09brixenjust a monotonic counter
05:51:30evansure
05:51:36brixenadding it now
05:51:47evank
05:51:56tarcieriall right, recloned, reconfigured, and rebuilding
05:52:01tarcierigoes to make another drink
05:52:49brixenheh
05:53:58evantarcieri: what OS are you on?
05:54:06evanyou don't have to compile LLVM
05:54:54tarcierisnow leppard
05:55:02tarcieriurmm didn't go out of my way to compile it or anything
05:55:32tarcierijust did ./configure; rake
05:55:49brixenit should have fetched a prebuilt then
05:56:03tarcieriyeah that's what it appeared to do
05:56:12evank
05:56:43tarcieri Unpacking prebuilt LLVM for x86_64-apple-darwin10.2.0: done!
05:56:50evanyep
05:56:53evanshouldn't take long at all.
05:57:08tarcierithis laptop has hardware problems and stuff... with its hard drive
05:57:26tarcieribeen waiting to snag a fancy new one from work but they're all tied up for demos :/
06:01:40tarcierirunning the tests kinda slows this thing to a crawl
06:01:44tarcieribut yeah, SUCCESS!
06:02:23tarcierirecloning is a magical cure-all
06:03:01tarcieriit's still chewing on bin/mspec ci -B full --background
06:04:17tarcieriFinished in 135.913323 seconds
06:04:17tarcieri3022 files, 11684 examples, 35881 expectations, 0 failures, 0 errors
06:04:19tarcieriyay!
06:04:31tarcieribin/rbx now?
06:05:31tarcieriurmm spammed this like 5 bazillion times:
06:05:32tarcieriObject#id IS deprecated; use Object#object_id OR ELSE.
06:05:49tarcieriI assume due to my .irbrc
06:05:56tarcieriand wirble
06:06:14tarcieribut other than that, looks good
06:07:57tarcieriis it as lulz to you as it is to me all the crazy shit happening in the background when someone types 2+2 into the REPL?
06:08:36tarcieriand on Erlang, I don't even know the half of it
06:09:15tarcierieval is a harsh mistress
06:11:00brixentarcieri: yeah, have a peek at the irb code sometime
06:11:08tarcierihehe
06:11:08brixenit's some of the oldest ruby code around
06:11:16brixeninteresting style heh
06:11:21tarcieriyeah I really wonder why someone hasn't written awesomsauce ruby shell yet :(
06:11:30tarcieriI have peeked and it reminds me of Perl
06:11:30brixenthere's been attempts
06:11:45brixenrue has a ruby shell floating around iirc
06:11:51tarcierinice
06:12:04brixenirb is actually pretty rad
06:12:11brixenand wycats was refactoring it
06:12:18tarcieriheh
06:12:19wycatsI was
06:12:20brixenwonder what happened to that effort
06:12:24brixenwycats: where is it?
06:12:31wycatsbrixen: I'll get back to it soon
06:12:33brixenok
06:12:34wycatsI made a lot of progress
06:12:35brixenn/p
06:12:37wycatsirb2 works now
06:12:37brixensweet
06:12:41brixennice
06:12:47wycatsbrixen: my test commit was ok right?
06:12:53brixenshould call it irc (irb.succ) :D
06:13:00brixenwycats: which?
06:13:06wycatsbrixen: lulz
06:13:09brixenheh
06:13:13wycatsa small commit that revealed a bug
06:13:19tarcieriI'm saying like... Reia... takes your code, runs the Reia parse transforms over it, produces Erlang code, runs it through the Erlang compiler, gets compiled to core Erlang, runs is through the HiPE compiler, builds a temporary module, loads that module into the code server, calls the "toplevel" function on it at which point it's actually executed as native code, then does its cleanup
06:13:43brixenwycats: oh earlier, yeah all good :)
06:13:45tarcieriall to answer "2+2"
06:14:01wycatstarcieri: sounds hot
06:14:06brixentarcieri: yeah, we do a little less
06:14:13brixenbut the first parts are similar
06:14:20tarcierihehe yes I imagine you have fewer layers of abstraction there
06:14:51tarcieriwycats: holy shit @ your heisenbug in 1.9.2 there btw
06:15:00wycatstarcieri: ha
06:15:06tarcieribroke my brain
06:15:15wycatstarcieri: the reaction from the ycombinator crowd was "you call that a bug!?"
06:15:31brixenwycats: link me up
06:15:43brixenI've heard about this but don't know the details
06:16:00wycatshttp://yehudakatz.com/2010/01/02/the-craziest-fing-bug-ive-ever-seen/
06:16:11brixenthx
06:17:25wycatsI'm sure you've seen crazier shit in rbx
06:18:05tarciericoncurrency bugs related to thread-specific data are pretty ballbusting
06:18:29tarcieriand Erlang perpetuates them with the silly process dictionary
06:18:41tarcieriFunctional, concurrent programming is hard, let's go shopping!
06:19:41brixenwow
06:20:00brixenwycats: neat
06:20:11wycatshaha
06:20:14tarcierihrmm
06:20:14wycatsbrixen: yeah
06:20:20tarcieriwhat happened to String#to_sexp?
06:20:20wycatsevan's head almost exploded
06:22:11brixentarcieri: no more sexps
06:22:24brixenwe're too sexy for our sexps
06:23:03tarcieriheh
06:23:06brixentarcieri: it would be *really* easy to add a #to_sexp if you really needed it
06:23:18brixenbut if you want to mess with transforms, there's a nice AST
06:23:28tarcieriI don't need it but it's an awesome convenience feature for parse transforms
06:23:47brixenactually, modifying sexps is a horrid PITA
06:23:53brixenthat's why we removed it ;)
06:23:58tarcierilol
06:24:09brixenwould be nice to add some generic tree transforms for mucking with the AST though
06:24:16tarcieripsst Reia is implemented as a successive series of parse transforms
06:24:20tarcierimaybe pattern matching helps
06:24:26brixensure
06:24:39brixenbut parse transform does not have to mean sexp transform
06:24:50brixenruby is a rich OO language
06:24:59tarcieriwell parsing whatever patterns the parse tree is expressed as
06:25:17tarcieriyeah but pattern matching + OO = fail
06:25:17brixendefining methods on the AST nodes is a nice way to extend/modify parsing
06:25:40brixenwhy?
06:25:47brixenactually, what do you mean by pattern matching?
06:25:50tarcierimaybe with a first class syntax for interrogating the hidden state of objects as patterns
06:25:56brixenfunctions that pattern match their args?
06:26:25tarcieriwell, Erlang uses pattern matching for *everything*
06:26:44tarcieriwith specific pattern matching constructs as they pertain to the various core types
06:27:03tarcieriof course at the same time Erlang has no user-defined types
06:27:22brixenyou could do this in ruby quite nicely I think
06:27:27tarcieriwhich sets it apart from any other language than say... Lisp/Scheme
06:27:27tarcieriheh
06:27:51tarcieriall of Reia's parse transforms are implemented as multi-clause pattern matching constructs on Erlang's core types
06:28:57tarcieriit's very much break-your-brain shit for anyone actually trying to understand how it's implemented :(
06:29:12brixenI'm not sure how pattern matching has anything to do with OO
06:29:15slavamost lisp and scheme dialects have user defined types
06:29:15brixenocaml has both
06:29:18slavacommon lisp and r6rs do
06:29:31tarcierislava: not in the same way most other languages do
06:29:35slavawhy not?
06:29:38tarcierislava: coupling of state with function
06:29:47tarcieriI guess
06:30:09tarcieriI know what I am and I know what I can do type of constructs
06:30:20tarcieriwhich Joe Armstrong HATES
06:30:40tarcieriand yet Erlang has paramaterized modules which kinda sorta try to do that shit
06:31:27tarcieriErlang has zero sense of user-defined types aside from records and paramaterized modules
06:31:33tarcieriit has no first-class ADTs
06:31:45tarcierirecords are a weak ass preprocessor construct
06:31:54tarcieriparamaterized modules are a wonky attempt at immutable objects
06:34:06tarcieribrixen: Erlang was my first language with a sense of pattern matching, and my gut feeling is "everything I wished massgn could do, but can't"
06:35:15tarcieriit's awesome you can do ((a,b),(c,(d,e))) = [[1,2],[3,[4,5]]] in Ruby and all
06:36:08brixenthere's a gem out there that generalizes that a bit
06:36:14brixenhaven't played with it though
06:36:35brixenOO is more about sending messages rather than matching values and types
06:36:53brixenwhere one is easily substitutable for the other is open to debate
06:37:00tarcieriyeah
06:37:03tarcieriReia lets you do
06:37:03tarcieri([a,b],(c,[d,e])) = ([1,2],(3,[4,5]))
06:37:09brixenbut sending messages is extremely powerful way to organize stuff
06:37:16tarcieriwell yes
06:37:54tarcierimy whole goal with Reia originally was to have objects that can only communicate with messages
06:38:04brixenin my experience, many ppl think "sending messages == calling a function on something"
06:38:16brixenand they need to go read some more alan kay
06:38:17tarcierithat's what it boils down to in most OO languages
06:38:21tarcierian object is a lump of state
06:38:23tarcieriindeed!
06:39:29tarcierioriginally I was opposed to "objects" like that in Reia but now I see the value in both
06:40:19tarcierihowever I'm trying to separate objects-as-values and objects-as-message-processors
06:40:44tarcieriwith the former being immutable (as everything is in Erlang/Reia) and the latter being mutable (independently garbage collected processes)
06:41:48brixeninteresting
06:43:06tarcieriI really do love the idea of "objects can only communicate with messages" being enforced at the VM level
06:43:30tarcierithat really necessiates shared-nothing objects (or immutable state)
06:46:32tarcieriI dunno, in Ruby it's just too easy for object A to get ahold of object B's internal state and like, rape it, and then object A is screwed even though it wasn't directly sent any messages from B
06:46:44tarcierierr, vice versa there
06:46:45tarcieribut whatever
06:48:51tarcierion an unrelated note, I just love perverting an immutable state language to the point you can do "dict[:foo] += 1" and have it work :)
07:01:43brixentarcieri: for me, the number of fucked up things a person can do in a program are infinite, I have trouble getting too excited over any one of them
07:01:53brixenincluding tweaking another objects internal state
07:02:16brixenI'd rather focus on making it easy to express ideas than erecting fences to keep the stoopids well-caged
07:04:30tarcieribrixen: that's all well and good until concurrency comes into play
07:04:42brixennot really
07:04:53tarcieri:(
07:05:13brixengrotesquely complex logic is as painful to debug as races
07:05:19tarcierithings that do shit at the same time should talk to each other, not fuck with each other without the others' knowledge
07:05:20brixensometimes
07:06:02brixensure, but expending great energy to enforce that should not come at the expense of easily expressing ideas
07:06:13tarcierisure
07:06:25brixenjust because you *can* jump off a building doesn't mean you *do*
07:06:26tarcieriand the way to express that is not much different than how people do it today in Ruby
07:07:04brixenI don't often see code that goes around wonkily mutation random objects
07:07:14brixencus that would just be dumb and you'd tell the person
07:07:21brixen"wtf are you doing?"
07:07:24tarcieriheh
07:07:33tarcieriscript/console seems to do that and I don't even have a clue how
07:08:36boyscoutMoved release date into configure defaults. - 4ba8f0b - Brian Ford
07:08:36boyscoutAdded config version to enable detecting stale configuration. - 84e1594 - Brian Ford
07:08:51tarcierialso whee just wrote the grammar for "block captures" or whatever that's called in Ruby
07:09:01wycatstarcieri: it's better than Python
07:09:09wycatsin Python you can do obj.__class__ = something_else
07:09:10tarcieriand some crazy Erlang record-thunking shit
07:09:22wycatsand obj.__class__.__bases__ = (tuple,of,other,shit,)
07:09:42tarcieriwycats: I'm allergic to Pythons although I do try to learn from them :/
07:09:50wycatsso I can hand a function an object and get back an object of another class which has an entirely different set of superclasses
07:09:51wycatsyay!
07:10:31brixenOT it is incredibly hard to find a good pair of boots
07:10:38brixenI have just looked at hundreds of them
07:10:46brixencasual/dress casual boots
07:11:11tarcierichrist I cannot even begin to explain using fucking Erlang preprocessor shit in "yecc" which is another preprocessor effectively and having that all output sane Erlang code somehow it hurts my brain
07:11:30tarcierioh yeah, and records+macros+yecc
07:11:31tarcieriOW
07:11:56tarcieriplease take this pushdown and apply this record to this macro and output real code OKAY
07:12:02boyscoutCI: rubinius: 84e1594 successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors
07:12:43tarcierithe real sad thing is how can anyone understand this bullshit but me or like... some other Erlang compiler guy :(
07:13:56tarcieriI really do want to move beyond the Erlang bullshit and construct the parse tree out of immutable objects, and keep the present implementation as a "bootstrap" one
07:14:31tarcierinot that that will help anyone understand the parser but maybe they can understand the subsequent passes
07:15:22brixensounds painful heh
07:15:53tarcieriyes it's all an act of considerable masochism, jeezus
07:16:31tarcierinot that writing all that C++ for rbx isn't :)
07:17:00tarcieriI'm sure you're dealing with similar syntactic headgibs
07:18:58brixenour C++ is pretty tame
07:19:06tarcieriheh
07:19:13brixenevan has written some stuff that is headgib for me
07:19:17brixenbut very little
07:19:29tarcierithis is the first time I have treated the value resulting from a nonterminal as a record
07:19:32tarcieriit's pretty absurd
07:22:58brixenI think this is the wildest C++ we have http://github.com/evanphx/rubinius/blob/84e1594d1526f1e7956f758f18efb1ffb95b8ab7/vm/on_stack.hpp
07:23:46slavafactor VM has lots and lots of templates :)
07:28:58tarcieriwaiting for github.com :/
07:29:27tarcierislava: while people give C++ a hard time as a preprocessor construct I think what I just did in Erlang is worse than anything I've ever seen in C++ templates and the fact it works boggles my mind
07:29:59tarcieriThere was a problem serving the requested page.
07:29:59tarcieriUsually this means that an unexpected error happened while
07:30:00tarcieriprocessing your request.
07:30:03tarcieri:( github
07:30:10tarcierithere it goes
07:30:33tarcierilol @ // Ok, let me explain.
07:30:34tarcierihehe
07:31:52tarcierislava: I am incrementally rebuilding the values resulting from nonterminals as they are parsed as Erlang records, or rather, preprocessor macros that act on Erlang records which are in turn a form of Erlang preprocessor macro
07:32:08evanbrixen: i think i'm going to make the no LLVM fix on rc2 and retar/retag it.
07:32:46tarcierislava: this is all embedded inside a yacc-style parser :(
07:33:12brixenevan: sure, sounds fine
07:33:37tarcierievan: IT WORKS!
07:33:45brixenevan: want me to build another installer or do you have other fixes to push?
07:33:46evantarcieri: eh?
07:33:51evanno need for the installer
07:33:55brixenk
07:33:56evanyou don't build the installer
07:33:57evan:)
07:34:01tarcierievan: rbx, after reclonned, reconfigured, and rebuilt
07:34:08evanthis is strictly for the source
07:34:09tarcierireclonded...
07:34:14tarcieridurr
07:34:18tarcierithird time's the charm?
07:34:22tarcieriRECLONED
07:34:54tarcieriapparently my ass old clone of rbx was causing problems somehow
07:35:18brixentarcieri: I'm sure it was mostly stale external libs
07:35:26tarcieriyeah
07:35:54tarcieriwho knows what old shit was lingering
07:38:15evanbrixen: the links for the tar ball don't match the bitly ones in the login
07:38:16evanyou gave me
07:38:52evannor do the OS X installers
07:39:28brixenwell, that's cus bit.ly created new ones for the rubinius account
07:39:34evanok...
07:39:36brixenbut you can still see the stats from the old ones
07:39:42brixenlook at the little #
07:39:45evanso i thought you were going to update the website to have the new ones
07:39:51brixenoh really?
07:39:53evanso we could see the stats on bitly
07:39:58brixenyou can
07:40:07evani'm confused now
07:40:07brixenI didn't realize you wanted me to update them
07:40:12evanwhat would I have seen on bitly?
07:40:20evanno one is pointed to those bitly urls for the new stuff
07:40:33brixendoesn't matter
07:40:38brixengo to the bit.ly page
07:40:43brixenlook at the list
07:40:54brixenclick the little # below the big 0
07:40:55evanok, i see.
07:41:20evanooh
07:41:23evanbitly is fucking wierd.
07:41:27brixenI can update the links on the website if you want
07:41:34evani couldn't figure out at all why there was multiple numbers
07:41:38brixenit tracks all the links to a particular url
07:41:43evani see now
07:41:47brixenyeah, it's pretty cool
07:41:47evanok, nm.
07:48:01boyscoutAdd a test that chdir should call to_str on an object if a block is given - 978e9ae - Yehuda Katz (release-1.0.0-rc2)
07:48:01boyscoutcall StringValue on the call to chdir whether a block was given or not - 7c89196 - Yehuda Katz (release-1.0.0-rc2)
07:48:01boyscoutArray#product: Fixing implementation. Should even be quicker... - c417fc0 - Marc-Andre Lafortune (release-1.0.0-rc2)
07:48:01boyscoutFix recursion for Array#hash, Hash#hash, Struct#hash, #<=>, #eql? - 09d1824 - Marc-Andre Lafortune (release-1.0.0-rc2)
07:48:03boyscoutFixed building with LLVM disabled. - b1ca50c - Brian Ford (release-1.0.0-rc2)
07:48:40brixenorly
07:50:50evan:/
07:50:54evanbugger.
07:51:25evanseems that cherry-pick did not do what I thought it would
07:51:29evanand didn't verify it.
07:51:41evanso a bunch of stuff leaked in
07:51:49evannot what I wanted
07:51:55evannow i have to do it again.
07:54:19evanno, i just messed it up.
07:54:21evanalmost redone.
07:57:34evanok, there we go.
08:38:24dbussinkmorning
08:40:22dbussinkor is everyone back to sleep again?
08:48:31slavayo dawg
08:54:25dbussinkslava: ah, still day time in nz i guess :)
08:55:12slavayeah, 10pm
08:57:45dbussinkslava: ah, exactly 12 hours diff with here, that's easy
13:53:20rueNo, 11
15:13:03rueWee, "Something, something, something, Dark Side"
17:27:53dbussinkrue: it was great :)
17:46:57brixenthinks he should write a book: The Joy of Specs
17:48:05dbussinkbrixen: it 'should not use should' ;)
17:49:38brixenyeah, thinking about micro-chapter format
17:49:47brixenwith about 1001 should_not's ;)
17:54:48boyscoutAllow any (? in a regexp. Fixes #146 - b2096da - Evan Phoenix
17:57:39brixenhttp://gist.github.com/269560
17:57:46brixenya know, effen shoot me
17:58:11boyscoutCI: rubinius: b2096da successful: 3022 files, 11688 examples, 35885 expectations, 0 failures, 0 errors
17:58:12evanyou know
17:58:13evanlots!
17:58:18evanlots is important.
17:58:40brixenusing lots of code styles to read lots of datas is especially important
17:59:18evanlots of important!
17:59:24brixenheh
17:59:30brixenLE sigh
17:59:37evanlots of sigh!
17:59:57brixenI'm going to do a series of commits with msgs like "Example: Use consistent style"
18:00:00brixenetc
18:00:58dbussinkbrixen: well, always remember, no specs is even worse
18:01:08brixendbussink: there is a fine line
18:01:15brixenand no, that is not absolutely true
18:01:16brixensorry
18:01:25dbussinkbrixen: well, for most of the specs in rubyspec it is
18:01:30dbussinkbrixen: not in general no
18:03:28evanwe have had specs in rubyspec that were worse than no spec.
18:04:59brixenI'm still puzzling over the expectation in this spec
18:05:54evanwhich?
18:05:56evanthe lots one?
18:05:58brixenyeah
18:06:02wycatsmorning all
18:06:09brixenlike, we'll trust the size of data
18:06:13brixenfirst expectation
18:06:16brixenbut not the contents
18:06:17evanit's checking that it actually read all the data it wrote back in
18:06:22brixenactual.should == data
18:06:35evanyeah
18:06:39evannot sure why that wasn't done
18:06:44evani think someone just being clever.
18:06:46brixenexactly
18:06:51brixenor not clever :P
18:07:04brixenheya wycats
18:07:17wycatsevan: did you see my gist on the __FILE__ issue?
18:07:23evanno
18:08:07dbussinkwycats: evan will slap you if you didn't make a ticket ;)
18:08:08wycatstoo much watching of tvz
18:08:24wycatsdbussink: actually, evan is a little bit schizophrenic about that
18:08:28wycatshe wants a detailed ticket
18:08:28evanwycats: you didn't IM or make a ticket
18:08:33wycatsevan: I did actually ;)
18:08:36evanor show me in irc
18:08:38evannope
18:08:40wycatshttp://gist.github.com/269143
18:08:43evani don't have it.
18:08:54wycatsright after you said you were going to watch mythbusters :P
18:09:02wycatswell there it is :)
18:10:31evanhow is gem_ext.rb loaded
18:10:44wycatsrequire
18:10:57evangist the lines it's required.
18:11:04wycatsrequire "bundler/gem_ext"
18:11:04evanor, better
18:11:08evana github url.
18:11:12wycatsok
18:11:13wycatsone sec
18:11:43wycatshttp://github.com/wycats/bundler/blob/master/lib/bundler.rb#L12
18:13:18evanwhat is 'p __FILE__' at the toplevel of gem_ext.rb
18:15:23wycatsevan: one sec
18:16:18wycats /Users/wycats/Code/active/rubinius/gems/1.8/gems/bundler-0.8.0/lib/bundler/gem_ext.rb
18:16:41evanhm, ok, thats good.
18:16:50evanwhat about p __FILE__ inside app_script
18:17:53wycatsprinting all 3 pieces
18:17:55wycatsone sec
18:18:28wycatsit seems to be called twice
18:19:28wycatshttp://gist.github.com/269574
18:19:47evanwhat is the bottom ones?
18:20:03wycatsI'm not sure
18:20:07wycatsputs caller?
18:20:11evansigh
18:20:12evanno
18:20:14evanyou put them in there
18:20:21evanWHERE did you generate that data at.
18:20:27evaninside app_script_text?
18:20:31wycatsyes
18:20:39evanyou said they were the same just 30 seconds ago
18:20:41evanthusly i was confused.
18:20:58wycatssomehow the method is called twice
18:21:04wycatsbut once it thinks it's in (erb)
18:21:21wycatsbacktrace is identical in both cases
18:21:32evani don't know what you mean
18:21:39evanwhat is called twice?
18:21:44wycatsapp_script
18:21:50wycatsapp_script_text
18:22:06evanok...
18:22:12evanand the 2nd time __FILE__ is all wierd?
18:22:51wycatshttp://gist.github.com/269574
18:22:54wycatscorrect
18:22:58evani have the gist. :/
18:23:16evanso, it seems like erb stops of the original __FILE__ value
18:23:19evanstomps
18:23:25evanwhich means it's eval stomping on it.
18:23:27wycatsupdate... there was extraneous stuff
18:23:55wycatseval of something else stomps the __FILE__ in a different method?
18:24:04wycatsare you storing method_missing_reason in a thread-local evan?
18:24:15evani'm stored your head in a jar.
18:24:21evanwhich is global.
18:24:40evanour __FILE__ is, unlike MRI, dynamic.
18:24:54evanthe value of __FILE__ inside eval is confusing
18:25:17evansome code for injecting __FILE__ into an eval is mistakenly masking the original value
18:28:37evanthe repro for this is trivial
18:28:47evanhttps://gist.github.com/bd43faed69ec34fcfa37
18:29:06evanin fact, the code being eval'd doesn't matter
18:29:12evaneval at all is stomping.
18:29:57evanbingo.
18:30:25evaneval used the binding's static_scope directly
18:30:31evanbut then changed the script attached to it
18:30:37evanadding a dup fixes it.
18:30:54evanwycats: do you have a ticket for this?
18:32:39wycatsevan: nope
18:32:42wycatsshould I open one?
18:32:50evanyep.
18:32:53wycatsok
18:33:03wycatsgotta head into work for a meeting
18:33:05wycatswill have it then
18:33:07wycatsas soon as I get in
18:33:14evanok
18:33:16evanwell the fix is done
18:33:20evanso i'm just waiting on the ticket.
18:36:12dbussinkevan: added a spec? with no should in it?
18:36:24evan?
18:37:13dbussinkevan: just being annoying :)
18:37:18evangee thanks.
18:37:35Zoxcso when are you planning to fix the rest of the unbalanced stack issues? :D
18:37:49evanif you report them
18:37:50evani'll fix them.
18:37:58dbussinknah, but it seems like stuff like this is worth a spec otherwise it could break again easily in the future
18:38:38evani'm writing one now.
18:40:08dbussinki'm running specs on windows for a project, always such fun
18:40:45dbussinkbut hey, data_objects and it's drivers officially support rubinius now too :P
18:40:56evanrad
18:41:56dbussinkeven use readonly in capi :)
18:42:52evanyou don't need to do that anymore
18:42:55evanbut it doesn't hurt
18:43:24dbussinkah ok, i added the compat.h stuff
18:43:34evanyeah, thats fine.
18:43:42dbussinkwhat is the advised approach? just use RSTRING_PTR then?
18:44:32evandepends what you need the data for.
18:44:50dbussinki'm not modifying anything in them
18:44:59dbussinkwhich is why adding compat.h was trivially easy
18:45:25evanusing readonly is fine.
18:45:30evanprobably best too.
18:45:37evanit's more explicit in your expectations.
18:50:25dbussinkevan: i was wondering, that issue when running datamapper specs i was seeing, is there any way i could investigate better what it is?
18:50:45evantry to get the repro set smaller
18:50:49evanthats the #1 thing.
18:50:58evantry with -Xint, see if you have the same behavior
18:51:28evandig in and see what is different at those strange failure points
18:51:47dbussinkrunning with interpreter is a good idea ueah
18:51:57dbussinksmaller is tricky, since it only occurs during full runs :P
18:52:41evanyeah, but we can't fix it until we can make it a smaller case
18:53:03evanso while tricky, it's imperative.
18:54:52Zoxcdoes this count as a report? http://github.com/evanphx/rubinius/issues/#issue/147 ^.^
18:55:37evanyep
18:57:08dbussinkZoxc: auch, that's nasty code
18:58:58Zoxcoh that's gentle, 1.8 seems to give wierd syntax errors on the nasty ones so I left them out :)
19:01:51brixenhah "weird syntax errors on the nasty ones"
19:01:59brixenthat is so many levels of hilarious
19:03:51evaneh gads.
19:03:54evanthat break
19:03:59brixenyeah
19:04:49evani almost want to not support this code.
19:04:57evanraise a syntax error
19:05:11evanbtw
19:05:27evanit's this kind of thing that I ask for where you found a bug in the wild.
19:05:35evanso I can prioritize it.
19:06:41evan"hello #{break 2}" while true
19:06:43evanis the simpler case
19:06:50evanactually.
19:06:54evan"hello #{break}" while true
19:08:32Zoxcthe code just evolved into using strings to make 1.8 happy :/
19:09:14evanbreak like that is truely evil.
19:10:11brixenI don't see the value of supporting it
19:10:23evani'm struggling to do the same
19:10:24brixenlet someone file a ticket when their real app breaks
19:10:28evanit's non-trivial to make work.
19:10:51evanMRI should actualy throw a syntax error on that
19:10:53evanlike it does for
19:10:55evan1 + break
19:11:08evanbecause it's using break as a value
19:11:13evanwhen it's a statement.
19:11:14brixenyeah
19:11:17brixenyep
19:11:40brixensometimes it only gives a warning like statement not reached
19:11:43brixenbut not a syntax error
19:11:49brixenit's just a mess :-/
19:13:48evani'm going to say this is an MRI bug
19:13:57Zoxcit's not
19:14:12evanMRI doesn't allow you to use break as a value in any other context
19:14:16evanwhy would it allow you here?
19:14:41Zoxcwell I don't care about 1.8 really
19:14:44evani do.
19:14:47Zoxcbut 1.9 will allow it
19:15:05evanfrom what i've seen
19:15:09Zoxcwith variable arguments on the stack
19:15:17evan1.9 has the same restrictions on break's context
19:15:17brixenZoxc: p 1 + break in 1.9
19:15:22brixenit's a syntax error
19:15:25evanor
19:15:27evanp 1, break
19:15:55Zoxcp 1, (break; 2)
19:16:11evan:/
19:16:49brixennot so simple http://gist.github.com/269616
19:17:02brixenthese are edge cases that should all consistently be syntax errors
19:17:04evanwell
19:17:12evanthats because you're trying to break from an eval.
19:17:17brixensure
19:17:43evanput that in a while
19:17:49evanand it will likely be accepted.
19:18:29brixenhttp://gist.github.com/269616
19:18:45brixenI'm just using Zoxc's example
19:18:55brixenpoint is, these are useless and stupid
19:19:11evanagreed
19:19:21evanbut put a 'while true; ...; end' around that
19:20:24brixenlike p 1, (break while true; 2) ?
19:20:26Zoxc1.9 <3: puts(*[1, 2], (puts(*[1, 2], (break 3; 4)) while true))
19:20:52evanthrows up on Zoxc's shoes.
19:21:14dbussinkZoxc: where does code like this come from?
19:21:16Zoxcputs(*[1, 2], puts(*[1, 2], (break 3; 4)) while true) gives syntax errors for some reason :/
19:21:18evanhe's making it up.
19:22:06Zoxcpopped up in my mind while figuring out how to do code generation =P
19:22:09evanbrixen: while true; p 1, break; end
19:22:16brixenevan: yeah
19:22:25brixenbut you get a warning about stmt not reached yes?
19:22:26evanthe *[1,2] is only there to confuse the user
19:22:31evanit's not actually testing anything
19:22:45evanyeah, but it runs.
19:22:55brixensure
19:23:05Zoxcit's just to make both stack offsets variable so you can't add code to adjust it
19:26:39evanwell
19:26:44evani'm going to put this on low priority
19:26:55evanthrowing an unbalanced stack error isn't ideal
19:27:03evanbut supporting this code is low on the list
20:54:53malumaluis there a specific version of llvm needed for rubinius? i'm getting "not defined here" errors when building
20:58:11brixenmalumalu: gist your ./configure --show
21:00:51brixengets lunch
21:01:35malumaluhttp://gist.github.com/269723
21:28:24dbussinkhmm, i'm suddenly seeing a lot of Object#id IS deprecated; use Object#object_id OR ELSE message when starting rubinius
21:33:46dbussinkevan: i have a nice begin / rescue case for you :)
21:40:31evandbussink: ok.
21:41:19dbussinkevan: http://github.com/evanphx/rubinius/issues/#issue/148
21:41:50dbussinkevan: wanted to see whether i could get mongrel running
21:42:09evanmongrel runs
21:42:20evanat least, i've run it.
21:43:02evanmaybe it got broken again
21:43:08evanthough I tried it just a few days ago
21:43:12evannone the less, lets see.
21:43:19brixenmalumalu: what version of llvm?
21:43:51evanthere must be a missing pop_unwind
21:43:56evanlets look at the code
21:44:31dbussinkevan: well, there's dozen of versions floating around i guess
21:44:39dbussinkevan: this is the one i choose to try i guess
21:44:46evani just tried the one in gems
21:44:52evananywho
21:44:57evanno matter.
21:45:17malumalubrixen: r92166, rather up-to-date, I think
21:45:28evanmalumalu: we don't run on LLVM trunk
21:45:34evanonly 2.6
21:45:54malumaluok, thanks
21:46:28evanhm, yes.
21:46:44evanthe retry isn't popping the unwind for the lower begin
21:46:46evantricky.
21:50:07dbussinkevan: i'm going to leave you with this puzzle, going to get some sleep
21:50:13evannp
21:50:16evanalmost got it solved.
22:17:53wycatsevan: sorry... submitting now
22:19:43wycatsevan: http://gist.github.com/evanphx/rubinius/issues/#issue/149
22:42:09brixenwow wtf vbox?
22:42:29brixentrying to create a windows vm and it's just sitting here pegging my cpu
22:42:53evanfail.
22:42:58evanyou got the iso's i'm assuming
22:43:05brixenyeah
22:43:10evanwhat internet are you using now?
22:43:15evannow that you canceled clear
22:43:19brixendidn't even give me a chance to tell it
22:43:23brixenI'm still on comcast
22:43:32evanah
22:43:45evanwell, at least it's pretty fast then :)
22:43:50brixenheh, it is
22:44:05evanbtw, mythbusters is available on them there comcast
22:44:08brixenI can't tell what vbox is doing, no status info whatsoever
22:44:19brixenah yeah, I just have internet
22:44:23brixenno cable
22:44:28boyscoutFixes #148. Investigate better escape detection - ebf083a - Evan Phoenix
22:44:28boyscoutAdd spec for eval/__FILE__ stomping behavior - ca0efc0 - Evan Phoenix
22:44:28boyscoutDon't change a StaticScope in eval. Fixes #149. - 93f86c4 - Evan Phoenix
22:44:55brixenevan: wtf @ http://github.com/rubyspec/rubyspec/commit/a399a01e0c010b2bcfbcef37e87bfb4f3c51ee73
22:45:08brixenI emailed hongli, can't find him on irc atm
22:47:02evanperhaps it's a pre 10.6 problem
22:47:25evanthat is the fact that mktime is kind of wierd on darwin
22:47:29evanthat we've noticed before
22:47:42brixenmm, you added that code when you installed SL iirc
22:47:55evanlet me try it here.
22:48:18evanseems work acutally
22:48:29brixenk
22:48:32boyscoutCI: rubinius: 93f86c4 successful: 3022 files, 11689 examples, 35887 expectations, 0 failures, 0 errors
22:48:38evanmaybe it was fixed in a 10.6 patchlevel.
22:48:45evanit was pretty much a darwin bug.
22:49:45brixengit show a1cc24cf
22:49:49brixenso I'm confused
22:49:56evan>> Time.utc(1900, 12, 31, 23, 59, 59, 0)
22:49:56evan=> Mon Dec 31 23:59:59 UTC 1900
22:50:02evanhell, even:
22:50:03evan>> Time.utc(1492, 12, 31, 23, 59, 59, 0)
22:50:04evan=> Sat Dec 31 23:59:59 UTC 1492
22:50:23evanlook at it now.
22:50:29evanyeah, it seems to have fixed itself somehow.
22:50:33brixenok
22:51:03evanwe should get it re-tested on 10.6.0 and 10.6.1
22:51:12evanperhaps it was fixed in .2
22:51:23evanthat seems within the realm of posibility
22:51:28brixenyeah
22:51:41evani'm double checking somethincg
22:58:31evanwell, don't see anything in google off hand
22:58:37brixenok
22:58:39brixenno worries
22:58:42evanbut it's something that could easily just slip into an update.
22:58:57brixenI just remember you adding that code and I don't have anything running SL yet
22:59:00evansince i'm sure they update libc on minor revs
22:59:04brixenso I couldn't test it
22:59:14brixenyeah, that's fine
22:59:28brixencommits like that should have more explicit details
22:59:39evanyeah
22:59:44evanlike why it doesn't work
22:59:49evanboth for us and for the internet
22:59:56evansince someone else will search for this at some time in the future.
23:00:01evanmight as well do them a favor.
23:00:07brixenyeah, I mean hongli's commit
23:00:18brixenlike what version of ruby, etc
23:00:37evanah
23:00:50evanwell, his commit seems fine to me
23:00:52brixenthere is one word that will forever define Windows in my vocabulary: superfluous
23:01:02evani didn't articulate what was wrong
23:01:09evanso he didn't know why he was removing the code.
23:01:19brixenyeah, but that's significant code to remove and I can't see why unless I go track him down
23:01:46brixenI know why you added it, cus it was causing a problem
23:01:48evanwhat would you have had him put? i'm curious
23:02:00brixenat the least, which version of MRI
23:02:08brixenhow do I know that's not just 1.9 that works
23:02:09brixenetc
23:04:07brixenman, I have a blank disk, windows 7 installer, you really want to ask me as the 1st option whether I want to upgrade?
23:04:38brixenand the 2nd option is "custom (advanced)"
23:05:28brixensweet, next screen is the disk: "Disk 0 Unallocated Space"
23:08:18brixen"Your computer will restart several times during installation"
23:08:25brixenheh oh the lulz
23:11:11rueIt is a pretty fast install, actually
23:13:05brixennot really
23:57:49evanok, new website is live.
23:58:37brixensweet