Show enters and exits. Hide enters and exits.
| 00:00:26 | wmoxam enters the room. | |
| 00:00:34 | anteaya enters the room. | |
| 00:00:47 | evan | and syntax in C++ makes those casts nicer |
| 00:00:51 | evan | becuase you can do |
| 00:01:04 | evan | chaining |
| 00:03:12 | rue | Excellent use of templates |
| 00:03:38 | evan | yeah, template functions are nice |
| 00:05:10 | rue | Might it be worthwhile to make that rb_cast() to hammer the point home? |
| 00:05:24 | evan | i was considering that. |
| 00:05:26 | evan | not sure yet |
| 00:06:02 | trythil_ leaves the room. | |
| 00:06:12 | rue | Little typing but I think it sets it apart from the std:: casts nicely. |
| 00:06:24 | djwhitt | I'm in favor of it. note my initial confusion above |
| 00:06:41 | rue | Overall the cpp looks really good. Definitely clearer |
| 00:06:42 | evan | how about something without an _ |
| 00:06:49 | evan | ocast perhaps |
| 00:06:50 | evan | o for object |
| 00:06:55 | evan | x cast, x for rubinius |
| 00:06:58 | evan | er. xcast |
| 00:07:03 | agardiner | rbxcast? |
| 00:07:22 | rue | Mind you, a part of it of course is just refining the design but the C++ is clearly helping |
| 00:07:41 | rue | rubycast() sounds like a radio program |
| 00:07:47 | evan | hehe |
| 00:07:50 | evan | could not be cast |
| 00:07:55 | evan | how about another verb |
| 00:07:57 | agardiner | streams music through your ruby code |
| 00:08:10 | rue | Haha, System Programming 2.0: castr() |
| 00:08:19 | agardiner | castrate? |
| 00:08:21 | agardiner | ouch! |
| 00:08:27 | rue | castR? |
| 00:08:36 | evan | kplow<> |
| 00:08:40 | rue | Hee |
| 00:08:48 | nicksieger leaves the room. | |
| 00:09:07 | evan | retype<> |
| 00:09:24 | agardiner | like that one^ |
| 00:09:33 | evan | C++ uses the verb cast a lot |
| 00:09:34 | rue | I always liked treat_as() but it fails the _ test |
| 00:09:41 | evan | so if it's not the verb cast, it should set it apart much more easily |
| 00:09:56 | agardiner | yeah |
| 00:09:56 | evan | we can have a _ |
| 00:10:14 | evan | but C++'s stuff like reintepreter_cast is WAAY too long |
| 00:10:36 | rue | as<String>(obj)->byte_address() // Too dense? |
| 00:10:48 | evan | nice and short, thats for sure. |
| 00:11:10 | agardiner | yeah, short is good |
| 00:11:34 | evan | hm, templates aren't namespaced, are they? |
| 00:11:35 | agardiner | and its still cast, just missing the c and the t! :-) |
| 00:11:42 | evan | agardiner: HA! |
| 00:12:00 | evan | we could go very ruby and make it duck<> |
| 00:12:03 | rue | They should be namespaced normally unless I misunderstand |
| 00:12:17 | agardiner | hehe! |
| 00:12:24 | evan | i'm liking as<> |
| 00:12:28 | agardiner | me too |
| 00:12:34 | nicksieger enters the room. | |
| 00:12:34 | evan | djwhitt: thoughts? |
| 00:12:37 | rue | Haha, actually that is pretty great :) Albeit I would expect to be able to use any, say, #to_ary object with duck() |
| 00:12:39 | agardiner | nice and clear, and short |
| 00:12:59 | evan | rue: right, it's not duck typeing! oh! |
| 00:13:00 | djwhitt | as<> seems good to me |
| 00:13:01 | evan | unduck<> |
| 00:13:17 | evan | ok, i'll change it to as |
| 00:13:17 | agardiner | goose? |
| 00:13:20 | evan | hah |
| 00:13:22 | rue | My signature from before: template<typename duck> void quack(duck& d) { d.quack(); } |
| 00:13:27 | evan | water_fowl<> |
| 00:13:42 | agardiner | ugly? |
| 00:15:09 | bburcham leaves the room. | |
| 00:17:23 | headius | and so begins evan's fall down the template rabbit hole |
| 00:17:39 | rue | headius: *troutsmack* This is a good use case |
| 00:17:44 | headius | "drink me" they call "eat me" they beckon |
| 00:18:01 | anteaya leaves the room. | |
| 00:18:05 | evan | i had it be a macro at first |
| 00:18:13 | evan | cast() |
| 00:18:40 | evan | but the syntax is clearer and it's easier to debug as a template |
| 00:18:43 | evan | so there |
| 00:18:52 | evan | sticks his tongue out at headius |
| 00:18:53 | EugZol leaves the room. | |
| 00:18:56 | anteaya enters the room. | |
| 00:21:05 | AndrewO enters the room. | |
| 00:21:11 | evan | headius: you've gone far down teh anonymous class hole yourself |
| 00:21:22 | headius | anonymous class hole |
| 00:21:23 | headius | ? |
| 00:21:31 | evan | i'm poking back. |
| 00:21:48 | ezmobius | heh classhole |
| 00:21:51 | rue | Hah, "anonymous class hole" is funny |
| 00:21:58 | rue | is juvenile |
| 00:22:01 | headius | interesting |
| 00:22:55 | evan | headius: is that your come back |
| 00:22:56 | evan | COME ON |
| 00:22:58 | evan | BRING IT |
| 00:23:00 | evan | :D |
| 00:23:04 | rue | So relatedly to the duck typing |
| 00:23:11 | evan | yesh? |
| 00:23:36 | headius | it wasn't worthy of a comeback |
| 00:23:44 | evan | weak. |
| 00:23:52 | evan | and i'm not refering to your references |
| 00:23:54 | headius | I know you are |
| 00:23:59 | evan | hah |
| 00:24:05 | evan | everything you say bounces of me and sticks to you |
| 00:24:07 | evan | oh wait |
| 00:24:09 | evan | that comes 2nd |
| 00:24:10 | evan | damnit. |
| 00:24:14 | rue | In a groggy tired stupor I was laughing myself silly yesterday. I was devising this small Forth-inspired language but based on Arrays of objects with super polymorphism |
| 00:24:20 | headius | my VM can beat up your VM |
| 00:24:36 | rue | It uses the duck idiom so s/Object/Duck/ |
| 00:24:42 | rue | Also, s/Array/Row/ |
| 00:25:00 | rue | And that was the source of much hilarity into the wee hours |
| 00:25:52 | evan | rue: sounds awesome |
| 00:25:54 | rue | I think will see about implementing it on top of the VM |
| 00:25:57 | wmoxam leaves the room. | |
| 00:25:58 | nkpart leaves the room. | |
| 00:26:07 | evan | you should write it up as a play in-the-round |
| 00:26:53 | rue | Heh |
| 00:27:47 | evan | they'll put anything off broadway these days |
| 00:27:53 | evan | plus you'd get a niche audience |
| 00:28:10 | nkpart enters the room. | |
| 00:30:04 | headius_ enters the room. | |
| 00:30:04 | headius leaves the room. | |
| 00:30:28 | ezmobius | rue: does that mean it has all its ducks in a row? :P |
| 00:30:28 | tarcieri | evan: so making changes to primitive.rb is probably totally worthless until the C++ switchover is complete, right? |
| 00:30:59 | lstoll enters the room. | |
| 00:31:04 | evan | no, go ahead |
| 00:31:17 | tarcieri | oh really... hmm |
| 00:31:23 | evan | i'm not at them yet |
| 00:31:38 | evan | so i'll just use the latest version they're at when I begin |
| 00:31:47 | rue | Wait what? |
| 00:31:57 | tarcieri | evan: I was thinking about trying to hack in specifying an arbitrary object to be sent to a channel when a given descriptor is readable/writable, with the fileno as the default |
| 00:31:58 | rue | There are PRO-China protesters in SF too? |
| 00:32:26 | rue | ezmobius: Yes, that is precisely what I was laughing at around 7am |
| 00:32:36 | ezmobius | heh |
| 00:32:44 | evan | ok, cast<> is now as<> |
| 00:32:48 | rue | Tweet |
| 00:36:07 | agardiner | so, looking at the compiler rework for left-to-right eval... seems to have simplified things a fair bit - a lot less swapping of args |
| 00:36:37 | obvio leaves the room. | |
| 00:36:59 | evan | yep |
| 00:37:03 | agardiner | and i see there is a new field on msg for stack size |
| 00:37:08 | evan | agardiner: plus, you'll be happy to know |
| 00:37:21 | evan | there should be no more instructions that have unbounded stack access |
| 00:37:34 | agardiner | yes, that is ftw! |
| 00:37:39 | evan | we're going to start calculating the max depth at compile time and saving it in the CM |
| 00:37:50 | jayWHY enters the room. | |
| 00:38:25 | agardiner | hmm... didn't realise you could know this at compile time |
| 00:38:30 | agardiner | how does that work? |
| 00:39:09 | evan | you did the work to know it |
| 00:39:10 | evan | :) |
| 00:39:18 | headius | most stack machine compilers do that so they can preallocate the stack accurately |
| 00:39:29 | evan | yep, and thats what we'll be doing |
| 00:39:44 | agardiner | your gonna move the stack into the context as well, right? |
| 00:39:48 | headius | have to do it on JVM too, but all the bytecode gen libraries calculate it for you |
| 00:41:26 | agardiner | "you did the work to know it" - so then, push_array must no longer be used? |
| 00:43:00 | evan | yep |
| 00:43:02 | evan | thats the biggy |
| 00:43:21 | evan | i don't recall there being any others that have unbounded push |
| 00:43:43 | evan | and yep, the stack is going to be moved variable, located within the context |
| 00:43:55 | dysinger leaves the room. | |
| 00:43:56 | evan | removing the single, Task oriented stack |
| 00:44:03 | evan | and making everything much more sane |
| 00:44:09 | agardiner | yeah, it was only push_array where at compile time you wouldn't know how many stack frames were created |
| 00:44:17 | agardiner | that's awesome |
| 00:44:21 | headius | so you will allocate bits of the stack as you go? |
| 00:44:36 | evan | headius: yeap |
| 00:44:53 | agardiner | stack will be additional fields on the context, presumably? |
| 00:44:55 | headius | mmm ok, that will introduce some overhead though, no? more memory allocation |
| 00:44:58 | evan | i'm also making the inner parts of the VM less stack oriented |
| 00:45:06 | evan | so only a few parts well even know about 'the stack' |
| 00:45:12 | evan | they'll use internal data structures to do things |
| 00:45:27 | agardiner | nice... |
| 00:45:43 | evan | that abstracts away a little, letting us do stuff like (eventually) having alternative method execution profiles |
| 00:46:20 | evan | headius: the memory allocation for the stack will use the same fast, stack based allocator MethodContext's use now |
| 00:46:27 | headius | ok |
| 00:46:33 | evan | basically, if a MethodContext has no references generated for it |
| 00:46:34 | headius | that's solid then |
| 00:46:37 | cored enters the room. | |
| 00:46:43 | evan | it's deallocated by doing pointer subtraction |
| 00:46:51 | headius | you considering "less stackless" as part of this rewrite? |
| 00:47:02 | evan | i decided i couldn't decide |
| 00:47:09 | evan | thus abstracting more of the VM away from caring |
| 00:47:25 | JeyR enters the room. | |
| 00:48:01 | nicksieger leaves the room. | |
| 00:48:28 | headius | abstract away caring |
| 00:48:32 | headius | I like it! |
| 00:50:38 | webmat enters the room. | |
| 00:51:52 | cored_ enters the room. | |
| 00:52:02 | enebo leaves the room. | |
| 00:52:37 | brainopia leaves the room. | |
| 00:56:06 | twbray enters the room. | |
| 01:04:38 | cored leaves the room. | |
| 01:07:48 | obvio enters the room. | |
| 01:13:57 | rue | Huh, Oracle is distributing BDB now |
| 01:19:17 | ineffablygregory leaves the room. | |
| 01:19:24 | imajes enters the room. | |
| 01:26:18 | rue | Stupid macports |
| 01:26:33 | webmat | agrees |
| 01:27:53 | rue | Oh, NOW it can find dbd |
| 01:28:07 | rue | That is it.. I am going to invent AI just so I can make it feel bad |
| 01:28:59 | srbaker enters the room. | |
| 01:29:40 | dysinger enters the room. | |
| 01:29:43 | loincloth leaves the room. | |
| 01:33:42 | rue | ozy`: Would make for an interesting Time Magazine interview |
| 01:35:20 | wdperson enters the room. | |
| 01:35:41 | stepheneb enters the room. | |
| 01:38:08 | tarcieri | *boggle* |
| 01:38:14 | tarcieri | does require effectively hash by path |
| 01:38:20 | tarcieri | rather than something guaranteed unique per file |
| 01:38:26 | evan | always has |
| 01:38:30 | tarcieri | :( |
| 01:39:35 | tarcieri | you'd think it'd at least resolve to an absolute path first or something... |
| 01:40:10 | anteaya leaves the room. | |
| 01:41:22 | d2dchat leaves the room. | |
| 01:42:18 | rue | 1.9 does |
| 01:43:41 | anteaya enters the room. | |
| 01:44:55 | stepheneb leaves the room. | |
| 01:45:50 | mernen enters the room. | |
| 01:46:47 | wmoxam enters the room. | |
| 01:47:43 | KirinDav enters the room. | |
| 01:48:09 | fbuilesv enters the room. | |
| 01:48:13 | djwhitt | hey, just saw some news about a GoRuCo hackfest? |
| 01:48:23 | djwhitt | anyone here going to be there? |
| 01:49:50 | rue | We have a couple New Yorkers but I do not recall anyone specifically heading over there |
| 01:49:59 | boyscout | 2 commits by Thomas Lachmann |
| 01:50:00 | boyscout | * Merge branch 'master' into bigdecimal_specs; e3ca2e3 |
| 01:50:01 | boyscout | * Next bunch of specs for Bigdecimal.; cf0c855 |
| 01:50:21 | rue | I would not have minded going but sadly no-one has sent a private jet to pick me up yet :) |
| 01:50:39 | evan | Lachi: please read the git howto section on using rebase |
| 01:50:40 | headius | I'd love to go to goruco |
| 01:50:46 | djwhitt | aw man... too bad |
| 01:50:49 | djwhitt | I'm going :) |
| 01:50:55 | headius | but being just a couple weeks before JavaOne pretty much sinks it for me every year |
| 01:51:00 | headius | JavaOne is like a damn marathon |
| 01:51:46 | Lachi | Oh, sorry, thougth the section about sharing branches would match here, as i submitted already from this branch. |
| 01:51:53 | tarcieri | rue: aah, more awesome breaking of backwards compatibility |
| 01:51:54 | tarcieri | heh |
| 01:52:21 | rue | tarcieri: Heh, at some point you can just say "screw it, they have to rewrite anyway" |
| 01:52:57 | evan | Lachi: you need to update your topic branch before merging it into master |
| 01:53:04 | tarcieri | rue: For sure |
| 01:53:05 | evan | Lachi: use the rake git tasks please if you're new |
| 01:53:11 | tarcieri | rue: That's why I calld it awesome |
| 01:53:11 | tarcieri | heh |
| 01:53:43 | tarcieri | not so happy about binding instance variables in proc scope... I'd rather Matz went the other way with methods, but maybe I'm just *crazy* |
| 01:53:47 | djwhitt | looks like ezmobius is going to be there since he's one of the speaker (goruco) |
| 01:53:51 | rue | djwhitt: Oh, looks like ezmobius will be there |
| 01:53:52 | tarcieri | Dave Thomas proposed that originally, and Matz shut him down |
| 01:53:55 | rue | Hehe |
| 01:53:55 | djwhitt | yeah, just saw that |
| 01:54:07 | tarcieri | def initialize(@foo, @bar, @baz); end |
| 01:54:13 | evan | EW. |
| 01:54:16 | rue | We can update his memory chips so he can talk about Rubinius too |
| 01:54:26 | KirinDav | You'd kinda want a real pattern matching primitive operation before you do something like that. |
| 01:54:33 | tarcieri | eh |
| 01:54:56 | Lachi | evan: Okay, sorry will follow this, just orientated on the using-git advisories. Will do better next time. Sorry. |
| 01:54:56 | tarcieri | That seems like an elegant syntax to avoid repeating the name of every variable you want to bind as an instance variable 3 times in every single goddamn constructor |
| 01:55:08 | evan | Lachi: no problem |
| 01:55:14 | evan | Lachi: everyone does this the first time (myself included) |
| 01:55:29 | djwhitt | rue: I'll just ask him a bunch of questions that lead to responses like "no, but in Rubinius we could..." |
| 01:55:36 | rue | Heh |
| 01:55:38 | tarcieri | And oddly enough, in Ruby 1.8 it worked for define_method |
| 01:55:45 | rue | "Once we activate the quantum pipe interface.." |
| 01:55:48 | tarcieri | define_method seems horribly broken in Ruby 1.9 |
| 01:56:39 | evan | how so? |
| 01:57:11 | tarcieri | heh, I can link you the crazy crap 1.8 let me do that 1.9 didn't |
| 01:58:06 | rue | def foo(a, b, c); @a, @b, @c = local_variables.sort.map {|v| eval v }; end # :D |
| 01:58:33 | evan | i should make everytime you call local_variables, it sends an email to your mom. |
| 01:59:38 | rue | Hah, it might have legitimate uses |
| 01:59:45 | KirinDav | evan: With that burt russel picture in it. |
| 02:00:02 | evan | burtroll your mom. |
| 02:00:03 | evan | yes |
| 02:00:05 | evan | it shall be done. |
| 02:00:39 | tarcieri | Oh craaazy |
| 02:00:41 | tarcieri | heh |
| 02:00:43 | rue | rbx -e 'local_variables' # bash: sendmail: command not found |
| 02:00:47 | tarcieri | Matz found my thread on ruby-core |
| 02:00:50 | tarcieri | and fixed the bug |
| 02:00:50 | tarcieri | yay |
| 02:01:08 | rubuildius_amd64 | Thomas Lachmann: e3ca2e3e0; 1902 files, 6477 examples, 22570 expectations, 0 failures, 0 errors; http://rafb.net/p/0jg62l20.html |
| 02:01:34 | tarcieri | evan: there's the thread if you care: http://www.nabble.com/What's-going-on-here--(weird-Ruby-1.9-incompatibility)-td16372836.html |
| 02:01:46 | rubuildius_ppc | Thomas Lachmann: e3ca2e3e0; 1902 files, 6480 examples, 22599 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/178279 |
| 02:01:48 | evan | -100 to nabble urls |
| 02:01:53 | tarcieri | heh |
| 02:01:54 | d2dchat enters the room. | |
| 02:01:56 | rue | Lachi: No big deal, really the only visible effect is the iffy commit message (internally it does not really matter for us) |
| 02:02:14 | tarcieri | http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/296244 |
| 02:02:15 | tarcieri | better? |
| 02:02:16 | tarcieri | heh |
| 02:02:35 | tarcieri | was doing something pretty insane though |
| 02:02:47 | tarcieri | define_method with a method from another object |
| 02:02:55 | rue | Lachi: If you are theoretically oriented, I heartily recommend a read through the git manual. Our guide is pretty much a git-from-svn type approach |
| 02:02:56 | evan | yeah |
| 02:02:59 | evan | you're rebinding methods |
| 02:03:03 | evan | thats... funtimes. |
| 02:03:08 | tarcieri | kind of |
| 02:03:17 | tarcieri | the method was never explicitly unbound |
| 02:03:27 | tarcieri | it gets evaluated in the instance of the other object |
| 02:03:47 | rue | Lachi: But the basic difference is that if you just merge, it generates a separate commit for that action (and the two branches remain separate in the history if you look using with gitk for example) |
| 02:04:02 | tarcieri | I was trying to speed up Rev |
| 02:04:11 | tarcieri | and eliminate unnecessary funcalls |
| 02:04:20 | tarcieri | that was the fastest solution I found, but it only works on Ruby 1.8 |
| 02:05:04 | tarcieri | It also lets you call a private method of one object from another without __send__ |
| 02:05:06 | rue | Lachi: On the other hand, git-rebase basically 'lifts' your new patches off the commit stack, inserts the new patches from the mainline and then replays your commits as if you had used the newest mainline to begin with. It essentially removes the branch from existing in the repository history |
| 02:05:31 | tarcieri | about twice as fast as __send__ on Ruby 1.8 anyway |
| 02:05:38 | KirinDav | evan: So are you guys transitioning to github? |
| 02:05:41 | Lachi | rue: Will, seems to be pretty obviuos from my actions on vcs, that the only vcs I used before is svn. Will read some more, about git, but you should have seen the mess i did with git on tuesday (luckily never escaped from my workplace). :S |
| 02:05:45 | evan | KirinDav: eventually, yes. |
| 02:05:55 | KirinDav | evan: Are you going to move to a more distributed model when you do? |
| 02:05:58 | loincloth enters the room. | |
| 02:06:07 | evan | KirinDav: i'm open to a more distributed model now |
| 02:06:14 | evan | nothing about the github move is related to that |
| 02:06:33 | KirinDav | Well github certainly makes it more manageable with tom's visualizations. |
| 02:06:41 | twbray leaves the room. | |
| 02:06:44 | KirinDav | I'm sure you've seen them. |
| 02:06:47 | evan | rubinius is mirrored actively on github now |
| 02:06:52 | evan | so we can use all of that |
| 02:07:10 | KirinDav | Well, the visualizations only really work if your public repo is github, as I understand it. |
| 02:07:12 | evan | i have a post-update hook that pushes changes to github |
| 02:07:15 | KirinDav | Ahh :) |
| 02:07:21 | KirinDav | Yeah I got that for katamari too. |
| 02:07:31 | tarcieri | wow, sometimes ruby-core does respond to the bugs I find *gasp* |
| 02:07:43 | rue | Do not get complacent, tarcieri |
| 02:08:04 | agardiner | grab the man a chair before he falls over! :-) |
| 02:08:45 | Lachi | rue: Now I know, that previous commits to master branch aren't the same, as sharing branches, i think I don't will do this fualt again. Will Read some more about git, none theless, before going to add the missing specs og BigDecimal. |
| 02:09:05 | evan | Lachi: will do |
| 02:09:07 | KirinDav | evan: So will I be shot if I said I'm slowly migrating all my work over to scheme in preference to ruby? Or slapped? |
| 02:09:12 | reima enters the room. | |
| 02:09:13 | evan | Lachi: use the rake tasks for now |
| 02:09:18 | reima | hi |
| 02:09:18 | evan | Lachi: on your branch, use |
| 02:09:20 | evan | rake git:push |
| 02:09:23 | tarcieri | KirinDav: what about Erlang??! |
| 02:09:26 | evan | that will rebase your branch before pushing |
| 02:09:31 | evan | so everything will show up clean |
| 02:09:31 | KirinDav | tarcieri: Oh I use it a ton. |
| 02:09:36 | tarcieri | yay |
| 02:09:41 | KirinDav | tarcieri: I'm basically a full time erlang developer lately. |
| 02:09:46 | jayWHY leaves the room. | |
| 02:09:51 | tarcieri | I'd say nice, but that sounds tedious |
| 02:09:51 | tarcieri | heh |
| 02:09:52 | imajes leaves the room. | |
| 02:09:55 | evan | KirinDav: it's your life. |
| 02:10:17 | KirinDav | evan: I'm just curious if other people are looking to it as an additional tool next to ruby. I know you guys have a better ruby than I do... |
| 02:10:18 | twbray enters the room. | |
| 02:10:21 | rue | Lachi: Hehe, the good thing about git is that you can almost always recover if something goes wrong :) |
| 02:10:27 | KirinDav | tarcieri: It's not so bad. |
| 02:10:33 | evan | KirinDav: looking to scheme? |
| 02:10:38 | KirinDav | evan: Yeah. |
| 02:10:49 | evan | why would I know? |
| 02:10:49 | KirinDav | evan: I have this crazy idea in my head that it's going to be hot within a year or so. |
| 02:11:03 | KirinDav | evan: Because bro, you're one of the thought leaders of the new programmillenum. |
| 02:11:03 | rue | Hotness not so important |
| 02:11:06 | evan | i know zero scheme programmers |
| 02:11:06 | tarcieri | KirinDav: yeah, I just miss blocks... passing lambdas as formal arguments or named functions are both solutions I don't particularly like :/ |
| 02:11:17 | rue | Scheme is a good Lisp, though, with very nice documentation |
| 02:11:19 | evan | and i've done about an hour of scheme myself |
| 02:11:24 | Lachi | evan: Okay, will strictly stay with the rake commands as long as my ethernt cable is plugged in. |
| 02:11:25 | tarcieri | KirinDav: and I can't say I'm a big fan of Erlang's line endings... |
| 02:11:32 | KirinDav | tarcieri: Haha. Yes. |
| 02:11:33 | djwhitt | scheme is too verbose imo |
| 02:11:39 | djwhitt | compared to Ruby I mean |
| 02:11:47 | evan | KirinDav: i'm open to any tool that makes the problem easier to model |
| 02:11:53 | evan | thus the new VM being in C++ |
| 02:11:55 | KirinDav | djwhitt: Well, that's mostly because ruby has a stdlib based on terseness. |
| 02:12:05 | rue | Overall, I would recommend plain Lisp over Scheme |
| 02:12:13 | KirinDav | rue: Lisp-2s annoy me tho |
| 02:12:21 | KirinDav | rue: Also, scheme's macro system? Way better |
| 02:12:29 | djwhitt | KirinDav: it's more than that. not having operators makes the language more verbose |
| 02:12:53 | KirinDav | djwhitt: I think the major lesson of ruby's popularity, irregardless of the direction of migration, is that a good stdlib with a pragmatic design philosophy can cover up nearly any flaws. :) |
| 02:13:04 | Lachi | rue: the bad thing about git is, it's to clever for me and my knowledge of it. |
| 02:13:08 | tarcieri | thinks Ruby the language is miles beyond Ruby the stdlib |
| 02:13:25 | KirinDav | djwhitt: You think so? I think arc can compete directly with ruby for terseness, and it's basically scheme with a single extra operator. |
| 02:13:30 | reima | Could someone take a look at http://pastie.caboo.se/177849 ? Should it fail like that (it doesn't with MatzRuby)? |
| 02:13:31 | tarcieri | Ruby the stdlib seems full of creaky, half-thought-through code written by Japanese programmers before the language's idioms were really solidified |
| 02:13:51 | djwhitt | KirinDav: yeah, arc might be close, but I'm not holding my breath |
| 02:13:51 | tarcieri | not that Japanese programmers are bad, except at leaving descriptive English comments |
| 02:13:51 | KirinDav | tarcieri: Well, the enumerables are mostly what I was thinking of. |
| 02:13:55 | KirinDav | djwhitt: I wouldn't. |
| 02:14:14 | KirinDav | tarcieri: Ruby's collections kick ass, imnsho. |
| 02:14:17 | rue | The stdlib is pretty horrible. It gets the job done, sure |
| 02:14:32 | tarcieri | IO is :( |
| 02:14:37 | KirinDav | Yeah. |
| 02:15:18 | djwhitt | http://tinyurl.com/3j3sjo |
| 02:15:25 | djwhitt | Scheme is not high on that list |
| 02:15:41 | KirinDav | So? |
| 02:16:01 | KirinDav | That list is crap. The GCLS is fucked from the top down, and everyone knows it. |
| 02:16:05 | tarcieri | Scheme is great for building a meta-language nobody else understands for modeling your problem |
| 02:16:06 | evan | KirinDav: what scheme environment are you using? |
| 02:16:11 | KirinDav | evan: mz. |
| 02:16:23 | drbrain | Diamondback Ruby is a neat idea |
| 02:16:31 | rue | I think we should have a competition |
| 02:16:32 | drbrain | has type inference |
| 02:16:44 | drbrain | http://www.cs.umd.edu/~jfoster/ruby.pdf |
| 02:16:51 | rue | Everyone has 2 weeks to learn X and write Y using it |
| 02:17:06 | KirinDav | tarcieri: Well, that's because base scheme is basically nothing |
| 02:17:15 | KirinDav | tarcieri: I've started working on a "pragmatic" library for mzscheme. |
| 02:17:31 | KirinDav | tarcieri: Basically, rolls in the shit you needs, add some standard convenience syntax. |
| 02:18:43 | tarcieri | Guess I'm one of those crazy people who thinks that all the syntactic conventions/sugar should be baked directly into the language's grammar |
| 02:19:43 | KirinDav | tarcieri: Just last night I was playing with something for shell scripts: (script (args (-x bool env) (-y int numtimes (requires -z)) (-z get:string mastername) ... ; (env numtimes and mastername validated and bound)) |
| 02:20:39 | tarcieri | ozy: whoa |
| 02:20:48 | rue | drbrain: I think we should try to do TI, definitely |
| 02:20:49 | KirinDav | tarcieri: The thing is, we loave building meta-languages in ruby too. the culture is there. |
| 02:21:05 | drbrain | rue: I think we should use theirs |
| 02:21:19 | KirinDav | tarcieri: It's just that in scheme finding good examples starting out is hard. So my pragmatic lib is trying to establish some good conventions for it, give everyone forms and libs for the shit you'd normally do in ruby. |
| 02:21:19 | drbrain | it knows how to do TI with String#slice |
| 02:21:23 | imajes enters the room. | |
| 02:21:27 | fiatdev enters the room. | |
| 02:21:35 | drbrain | (if we were going to use it) |
| 02:21:39 | drbrain | (do it) |
| 02:22:10 | rue | Wait, what, they wrote a parser? |
| 02:23:00 | KirinDav | yeah. Actually it's fairly common to see people take lisp impls and put a different reader on top o fit. |
| 02:23:02 | rue | Anyway, I recommend we all learn Ada and implement pdumpfs :) |
| 02:23:08 | KirinDav | There are full javascript engines that run over mzscheme. |
| 02:23:15 | rue | ozy`: I was marveling DRuby, sorry |
| 02:23:30 | KirinDav | They literally read in raw js and convert it to sexps with specific libraries. |
| 02:23:46 | trythil enters the room. | |
| 02:23:55 | VVSiz_ enters the room. | |
| 02:24:29 | tarcieri | KirinDav: some people like to build meta-languages in Ruby. Sometimes they're good, sometimes they're not |
| 02:24:56 | tarcieri | RSpec is cool... Rails may as well be a meta-language unto itself and uhh, TMFM |
| 02:25:02 | KirinDav | tarcieri: I'm not going to get into that. Everyone's milage may vary. It's notable that many of the most successful ruby projects are various kinds of meta languages. |
| 02:25:09 | KirinDav | Rake, Rails, Rspec come to mind offhand. |
| 02:25:18 | djwhitt | so you guys really think the code size comparison on shootout is that bad? |
| 02:25:33 | tarcieri | Adhearsion is cool, especially if you've ever worked with Asterisk dialpans before |
| 02:25:33 | KirinDav | djwhitt: Absolutely dude. It depends who wrote it and how they optimize it. |
| 02:25:38 | KirinDav | djwhitt: http://shootout.alioth.debian.org/gp4/benchmark.php?test=fannkuch&lang=mzscheme&id=0 |
| 02:25:45 | KirinDav | Look at them defining a fucking vector-copy. |
| 02:26:10 | KirinDav | There is a stdlib for that. They just did it because they were trying to super-game the optimizing compiler. |
| 02:26:12 | drbrain | rue: yes, they wrote a parser |
| 02:26:19 | drbrain | rue: they do the TI in OCaml |
| 02:26:34 | KirinDav | Which inlines nearly all unexported functions. |
| 02:26:54 | drbrain | so they needed a parser |
| 02:27:00 | rue | drbrain: This is damned impressive, actually. I thought it was an abandoned project long ago |
| 02:27:00 | evan | drbrain: one thing we definitely should try and use is there core library annotations |
| 02:27:02 | tarcieri | KirinDav: Ruby parse transforms are cool where I've seen them used (Merb, Ambition, Sequel) |
| 02:27:14 | imajes leaves the room. | |
| 02:27:15 | evan | drbrain: we should take the annotations and use them as specs |
| 02:27:19 | djwhitt | KirinDav: ah, I see. too bad. it is still fun to look at the code for those things though imo |
| 02:27:27 | drbrain | They said they'd have something for the world mid-late summer |
| 02:27:38 | codebrulee enters the room. | |
| 02:27:54 | KirinDav | djwhitt: Yeah. For example, the javascript is clearly optimized for space. :) |
| 02:27:58 | KirinDav | http://shootout.alioth.debian.org/gp4/benchmark.php?test=fannkuch&lang=javascript&id=0 |
| 02:28:09 | rue | drbrain: I wonder if they would be amiable to using rbx? |
| 02:28:15 | tarcieri | KirinDav: Have you looked at Lisp Flavored Erlang? |
| 02:28:18 | KirinDav | Because they know they can't win on speed or memory allocation |
| 02:28:21 | KirinDav | tarcieri: I've written code with it. |
| 02:28:24 | tarcieri | nice |
| 02:28:25 | tarcieri | heh |
| 02:28:32 | KirinDav | Works quite well. |
| 02:28:34 | tarcieri | yeah |
| 02:28:41 | drbrain | rue: we exchanged cards |
| 02:29:21 | rue | drbrain: Neat! Way to work that Charisma score |
| 02:29:23 | tarcieri | Kirindav: I've been trying to write my own imperative language for BEAM with mutable state using leex/yecc/erl_syntax |
| 02:29:51 | KirinDav | tarcieri: I'm obligated as a guilded erlang programmer to say, "Mutable state is baaad, mmkay?" |
| 02:30:05 | tarcieri | Mutable state is great if you're lazy |
| 02:30:10 | drbrain | rue: we said "hey, we've got a big pile of Ruby code you could play with" |
| 02:30:18 | KirinDav | I don't really see it as a problem, tbh. |
| 02:30:24 | tarcieri | is obligated to say: most programmers are lazy |
| 02:30:26 | KirinDav | Even starting out w/ erlang it didn't bother me too much. |
| 02:30:36 | KirinDav | You just code functionally. |
| 02:30:48 | tarcieri | the foo = transform(foo) if somecondition pattern |
| 02:30:49 | KirinDav | I wonder if that's the lost art. :) |
| 02:30:50 | tarcieri | in Erlang |
| 02:30:52 | tarcieri | uggghhhhhh |
| 02:30:59 | drbrain | gets ready for practice |
| 02:31:13 | rue | KirinDav: As a ronin Ruby programmer, I am obligated to remind: "Dogmatism is bad, kiiii-yah!" |
| 02:31:16 | rue | ;) |
| 02:31:22 | twbray leaves the room. | |
| 02:31:25 | KirinDav | rue: I agree! |
| 02:31:36 | tarcieri | reorganizing code in Erlang: also uggghhhhh |
| 02:31:39 | KirinDav | rue: I'm just saying, it's an underappreciated style in the popular culture of programming these days. |
| 02:31:55 | KirinDav | tarcieri: Yeah, that's brotal which is like brutal with amity. |
| 02:32:00 | evan | just pushed a bunch more code to the cpp branch |
| 02:32:05 | evan | ffi is converted over |
| 02:32:24 | evan | if someone wants to help, NativeFunction needs the rest of the test fleshed out |
| 02:32:26 | rue | KirinDav: Sure. I would like to see if we can optimise "const" operations |
| 02:32:44 | evan | ie, defining functions with all data types and return values |
| 02:32:50 | rue | evan: I will take a peek at that |
| 02:32:52 | evan | and testing that ffi converts between them properly |
| 02:34:35 | Lachi | bye. Will take some sleepp now. And sorry for the mess. |
| 02:34:40 | Lachi leaves the room. | |
| 02:34:58 | AndrewO leaves the room. | |
| 02:36:14 | tarcieri | the libev guy cracks me up |
| 02:36:32 | rue | Did you make a bad suggestion again? |
| 02:36:34 | tarcieri | I can't tell if he's just hostile by nature or hostile from dealing with platform incompatibilities |
| 02:36:54 | tarcieri | I am an impartial observer! |
| 02:37:08 | tarcieri | I just watch as everyone who e-mails the libev mailing list eventually descends into a flamewar with him |
| 02:38:39 | rue | Heh.. someone should fork it in jest |
| 02:39:00 | tarcieri | libloveandhappinessforeveryone |
| 02:39:47 | tarcieri | he was depending on realloc(ptr, 0) to be identical to free(ptr) and I pointed out two platforms that don't behave that way (OpenBSD and Darwin) |
| 02:40:08 | tarcieri | libscrewmark |
| 02:40:12 | tarcieri | err, marc |
| 02:40:26 | tarcieri | heh |
| 02:40:37 | ezmobius | libwakeupsheeple |
| 02:40:45 | rue | Tehee |
| 02:40:56 | rue | tarcieri: Why was he using realloc() anyway? |
| 02:41:16 | VVSiz leaves the room. | |
| 02:41:36 | tarcieri | rue: apparently he uses realloc() as the basis of all his memory management... for tasks like growing/shrinking arrays of descriptors |
| 02:42:20 | jtoy enters the room. | |
| 02:43:21 | rue | Well, hopefully he goes for a pool solution or summit. |
| 02:43:59 | tarcieri | some guy was running his code through valgrind and pointing out everything that looked like a leak |
| 02:44:19 | tarcieri | in one instance: it leaked "zero-sized" objects |
| 02:44:29 | tarcieri | he blamed valgrind |
| 02:46:17 | wmoxam leaves the room. | |
| 02:48:16 | tarcieri | \/cl |
| 02:48:20 | tarcieri | :( |
| 02:49:16 | rue | Hehee |
| 02:51:26 | jlindley enters the room. | |
| 02:54:35 | ineffablygregory enters the room. | |
| 02:55:08 | RyanTM leaves the room. | |
| 02:55:35 | RyanTM enters the room. | |
| 02:57:43 | benburkert leaves the room. | |
| 02:58:11 | KirinDav leaves the room. | |
| 03:04:39 | hornbeck enters the room. | |
| 03:09:15 | ezmobius leaves the room. | |
| 03:11:40 | wyhaines leaves the room. | |
| 03:13:48 | hornbeck leaves the room. | |
| 03:14:24 | nicksieger leaves the room. | |
| 03:18:07 | madsimian enters the room. | |
| 03:25:42 | twbray enters the room. | |
| 03:26:39 | nkpart leaves the room. | |
| 03:27:02 | cored leaves the room. | |
| 03:32:13 | ineffablygregory leaves the room. | |
| 03:32:59 | d2dchat leaves the room. | |
| 03:45:31 | wyhaines leaves the room. | |
| 03:55:33 | simian enters the room. | |
| 03:56:20 | webmat leaves the room. | |
| 03:57:08 | loincloth leaves the room. | |
| 04:07:19 | jtoy leaves the room. | |
| 04:10:28 | madsimian leaves the room. | |
| 04:11:20 | aotearoa enters the room. | |
| 04:14:26 | stepheneb enters the room. | |
| 04:15:24 | jtoy enters the room. | |
| 04:20:19 | mernen leaves the room. | |
| 04:22:23 | ezmobius enters the room. | |
| 04:24:00 | aotearoa_ enters the room. | |
| 04:24:07 | nicksieger enters the room. | |
| 04:28:10 | fiatdev leaves the room. | |
| 04:29:05 | wycats__ enters the room. | |
| 04:29:13 | headius leaves the room. | |
| 04:29:33 | yipstar leaves the room. | |
| 04:30:36 | smparkes leaves the room. | |
| 04:33:25 | d2dchat enters the room. | |
| 04:33:56 | codebrulee leaves the room. | |
| 04:34:04 | codebrulee enters the room. | |
| 04:34:10 | codebrulee leaves the room. | |
| 04:34:41 | nicksieger leaves the room. | |
| 04:35:54 | nicksieger enters the room. | |
| 04:36:56 | aotearoa__ enters the room. | |
| 04:37:17 | aotearoa leaves the room. | |
| 04:39:19 | anteaya leaves the room. | |
| 04:40:06 | anteaya enters the room. | |
| 04:41:48 | KirinDav enters the room. | |
| 04:43:57 | obvio171 enters the room. | |
| 04:46:04 | wycats leaves the room. | |
| 04:46:53 | obvio leaves the room. | |
| 04:47:25 | wyhaines leaves the room. | |
| 04:47:52 | aotearoa_ leaves the room. | |
| 04:48:45 | aotearoa enters the room. | |
| 04:50:49 | binary42 enters the room. | |
| 04:52:59 | anteaya leaves the room. | |
| 04:58:24 | AndrewO enters the room. | |
| 04:59:34 | KirinDav leaves the room. | |
| 05:00:21 | aotearoa__ leaves the room. | |
| 05:06:01 | twbray leaves the room. | |
| 05:16:30 | Jzalae enters the room. | |
| 05:28:35 | trythil_ enters the room. | |
| 05:31:05 | binary42 leaves the room. | |
| 05:34:11 | RyanTM leaves the room. | |
| 05:34:43 | KirinDav enters the room. | |
| 05:42:30 | srbaker leaves the room. | |
| 05:43:51 | dysinger leaves the room. | |
| 05:46:10 | trythil leaves the room. | |
| 05:46:31 | yipstar enters the room. | |
| 05:48:34 | dysinger enters the room. | |
| 05:59:39 | AndrewO leaves the room. | |
| 06:02:33 | KirinDav leaves the room. | |
| 06:09:13 | yipstar leaves the room. | |
| 06:14:57 | Yurik leaves the room. | |
| 06:15:38 | KirinDav enters the room. | |
| 06:19:02 | simian leaves the room. | |
| 06:24:40 | reima | Anybody there? |
| 06:24:57 | agardiner | no |
| 06:25:00 | agardiner | haha! |
| 06:25:07 | agardiner | sup? |
| 06:25:54 | reima | Hey :) |
| 06:25:57 | reima | Can you confirm this? http://pastie.caboo.se/178375 |
| 06:26:08 | evan | WOW. g++ on linux complains SO much more than OS X |
| 06:26:59 | agardiner | reima: yep, segfaults for me too |
| 06:27:02 | brixen | well, if we're going to have a party, I just ran the mspec specs on windows under the git bash shell in msysgit |
| 06:27:10 | brixen | and they all passed :) |
| 06:27:12 | scoopr | -Wall -Wextra >:) |
| 06:27:36 | agardiner | brixen: against MRI, I assume? |
| 06:27:45 | brixen | agardiner: yeah |
| 06:27:59 | brixen | however, the rubyspecs die a horrible death 1/2 way through |
| 06:28:07 | agardiner | hehe, it would have been one hell of a party if you said "no, rbx" :-D |
| 06:28:33 | brixen | heh |
| 06:29:35 | reima | More oddities to come: http://pastie.caboo.se/178379 |
| 06:29:54 | reima | I've got a habit of breaking things :( |
| 06:30:49 | agardiner | hmm... looks like inspect has a few issues |
| 06:31:47 | reima | I don't know if it's inspect, but I fear we have to dig deeper. |
| 06:32:29 | agardiner | yeah, i guess i really meant inspect is exposing a few issues |
| 06:33:08 | reima | Have a look at this: http://pastie.caboo.se/178380 |
| 06:33:55 | agardiner | hmm... interesting |
| 06:34:10 | reima | It's as if Rubinius wants to tell me something along "Fuck it! I'm sick of your inspects!" :) |
| 06:34:19 | agardiner | :-D |
| 06:34:38 | agardiner | "i'm gonna mess with you, and give you a different result every time!" |
| 06:35:10 | agardiner | just noticed the segfault at the end of the last pastie |
| 06:35:42 | agardiner | sounds like something might be getting messed up following a GC |
| 06:36:07 | reima | Yeah, that sounds reasonable |
| 06:37:23 | reima | What puzzles me is the fact that it only happens when you inherit from Numeric |
| 06:38:24 | reima | Something really weird is happending here *plays X-Files theme* |
| 06:38:45 | drbrain leaves the room. | |
| 06:42:32 | agardiner | try it with Integer - happens with that too |
| 06:42:40 | brixen | reima: looks like issues with .allocate |
| 06:43:03 | brixen | compare e.g. Hash.allocate with Fixnum, Bignum, Integer, Numeric.allocate |
| 06:43:21 | brixen | all of those 4 hang shotgun or raise exceptions for me |
| 06:43:54 | agardiner | not surprised you have problems with Numeric, Integer, or Fixnum |
| 06:44:10 | brixen | Float.allocate seems to work, but has a junk value |
| 06:44:14 | gnufied leaves the room. | |
| 06:44:33 | evan | ug. |
| 06:45:04 | evan | one thing we haven't taken care of is making allocate on the builtins be sane |
| 06:45:08 | reima | That not too good I suppose? |
| 06:45:28 | agardiner | i wonder if Integer and Numeric are being setup correctly in bootstrap.c |
| 06:45:35 | brixen | hmm, yeah, mri doesn't allow allocate on Fixnum, Float, Bignum |
| 06:45:37 | reima | I've got an even funnier IRB log: http://pastie.caboo.se/178388 |
| 06:45:40 | evan | agardiner: they're just superclasse |
| 06:45:42 | agardiner | there's no BC() for those types |
| 06:45:49 | evan | you shouldn't be able to instanciate them. |
| 06:46:00 | benburkert enters the room. | |
| 06:46:12 | agardiner | hmm |
| 06:46:40 | brixen | mri doesn't allow allocate on Integer either, but does on Numeric |
| 06:46:58 | agardiner | reima: definitely looks like some reference is not being updated during a GC |
| 06:47:43 | evan | brixen: thats dumb |
| 06:47:45 | evan | neither should |
| 06:48:18 | loincloth enters the room. | |
| 06:51:32 | evan | reima: what does that code do in 1.8? |
| 06:51:54 | TheVoice | evening everybody |
| 06:52:16 | drbrain enters the room. | |
| 06:53:19 | reima | evan: Which one? |
| 06:53:25 | evan | the last one |
| 06:54:35 | reima | It let's me inspect the object as often as I want without breaking |
| 06:54:36 | tarcieri | wtf @ Numeric.allocate |
| 06:54:54 | benburkert leaves the room. | |
| 06:55:17 | evan | reima: duh, whats the output though? |
| 06:55:32 | evan | did someone define a Numeric#allocate in rubinius |
| 06:55:35 | evan | if so, thats just wrong. |
| 06:56:05 | brixen | evan: no, it's picked up from Class |
| 06:57:05 | brixen | we need specs for .allocate on those numeric types |
| 06:57:06 | reima | evan: Don't know what you expected, but here you go: http://pastie.caboo.se/178394 |
| 06:58:00 | evan | the wierd inspect output is Object#inspect trying to show you ivars |
| 06:59:01 | reima | Yeah, I figured that out already. And that's what breaks inspect? |
| 06:59:22 | evan | yeah |
| 07:01:48 | reima | So... how can we fix it? |
| 07:02:06 | evan | if i tell you, then i'll be doing the work. |
| 07:02:23 | reima | Heh, okay |
| 07:07:19 | be9 enters the room. | |
| 07:08:20 | gnufied enters the room. | |
| 07:08:41 | benburkert enters the room. | |
| 07:14:10 | tarcieri leaves the room. | |
| 07:15:15 | tarcieri enters the room. | |
| 07:19:30 | benburkert leaves the room. | |
| 07:21:21 | benburkert enters the room. | |
| 07:26:07 | scoopr | so um.. is ffi used to call librubinius stuff too? |
| 07:33:31 | wycats_ leaves the room. | |
| 07:33:44 | wycats__ leaves the room. | |
| 07:35:56 | loincloth leaves the room. | |
| 07:39:32 | w1rele55 leaves the room. | |
| 07:43:00 | stepheneb leaves the room. | |
| 07:43:31 | KirinDav leaves the room. | |
| 07:45:28 | w1rele55 enters the room. | |
| 07:45:43 | Skip enters the room. | |
| 07:45:50 | rue | scoopr: It can be, and is in some cases. ffi_util.c mainly currently |
| 07:45:57 | dysinger leaves the room. | |
| 07:47:20 | cypher23 enters the room. | |
| 07:47:26 | loincloth enters the room. | |
| 07:50:05 | KirinDav enters the room. | |
| 07:51:45 | scoopr | rue, if I've understood the mechanism correctly, that'll make having statically linked rbx a bitch >:) |
| 07:52:54 | wycats enters the room. | |
| 07:54:35 | aotearoa leaves the room. | |
| 08:01:24 | d2dchat leaves the room. | |
| 08:02:01 | Arjen_ enters the room. | |
| 08:03:02 | rue | scoopr: It should not. The pointers are obtained at runtime. Unless the dynamic loader on the platform cannot open the process itself as a pseudo-DSO, there should be no issue |
| 08:10:25 | loincloth leaves the room. | |
| 08:14:25 | scoopr | right |
| 08:14:28 | scoopr | hmm |
| 08:14:40 | Arjen_ leaves the room. | |
| 08:14:56 | scoopr | ideally, I'd like it to have some sort of fallback for situations with no dynamic loader whatsoever |
| 08:15:15 | scoopr | I guess that would involve making a compiletime array of method pointer/method name pairs |
| 08:15:16 | dysinger enters the room. | |
| 08:19:39 | agardiner leaves the room. | |
| 08:22:34 | ezmobius leaves the room. | |
| 08:29:08 | benburkert leaves the room. | |
| 08:31:41 | thehcdreamer enters the room. | |
| 08:32:03 | rue | scoopr: You could build in a function that retrieves the fptrs if you are estimating a statically linked binary |
| 08:33:58 | rue | Type checking would be your main problem there |
| 08:34:50 | octopod enters the room. | |
| 08:35:49 | scoopr | aight |
| 08:36:03 | scoopr | I might look into that at some point |
| 08:37:12 | TheVoice leaves the room. | |
| 08:38:05 | zimbatm_ enters the room. | |
| 08:39:00 | scoopr | nice domino effect though .. I wanted to do a gprof run on rbx, see why it takes 10secs for hello world on 400mhz arm linux |
| 08:39:18 | scoopr | but turns out profiling works only for the executable, not for dynamic libs it links to |
| 08:39:46 | scoopr | but in turn, I believe having option of static linking is important in general |
| 08:43:35 | Rich_Morin___ enters the room. | |
| 08:48:04 | Rich_Morin | Hello, folks. I have a couple of oddball Ruby questions, as usual. |
| 08:49:49 | Rich_Morin | Both of them have to do with getting from names of things to things. The first is is how do I get from :foo to the value of the local variable foo. |
| 08:50:13 | Rich_Morin | I can do it with an exec, but that seems like overkill. |
| 08:50:24 | Rich_Morin | Sorry, an eval... |
| 08:52:42 | Rich_Morin | Also, starting with a method name (and possibly a qualifying class or module name), I'd like to get to the matching method(s), so that I can extend them. |
| 08:54:07 | wycats_ enters the room. | |
| 08:58:04 | Arjen_ enters the room. | |
| 08:59:01 | KirinDav leaves the room. | |
| 08:59:20 | boyscout | 11 commits by Brian Ford |
| 08:59:21 | boyscout | * Processed Rational, Complex, Matrix with mkspec.; c526f57 |
| 08:59:22 | boyscout | * Ensure method names are escaped when matching output in mkspec.; a8678aa |
| 08:59:22 | boyscout | * NameMap should not map #initialize to new_spec.rb.; c862a3d |
| 08:59:24 | boyscout | * Processed IO with mkspec. Added incomplete tags.; 3de6f53 |
| 08:59:24 | boyscout | * Clean up especially bad whitespace in File specs.; faaf8bd |
| 08:59:25 | boyscout | ... |
| 09:02:37 | mutle enters the room. | |
| 09:06:20 | rubuildius_amd64 | Brian Ford: c526f5744; 1989 files, 6477 examples, 22570 expectations, 0 failures, 0 errors; http://rafb.net/p/gUvNRW49.html |
| 09:07:32 | trythil_ leaves the room. | |
| 09:08:41 | wycats leaves the room. | |
| 09:10:34 | obvio leaves the room. | |
| 09:12:10 | rubuildius_ppc | Brian Ford: c526f5744; 1989 files, 6480 examples, 22599 expectations, 0 failures, 0 errors; http://pastie.caboo.se/paste/178438 |
| 09:12:14 | muri enters the room. | |
| 09:13:02 | muri | i always see "ivar_as_index xxxx " in the code, what does it stand for? |
| 09:13:28 | dysinger leaves the room. | |
| 09:13:31 | brixen | muri: it's a compiler directive that maps a field to something that looks like an instance variable |
| 09:15:03 | muri | thanks, brixen |
| 09:15:06 | brixen | so e.g. kernel/bootstrap/array.rb ivar_as_index :total => 0, maps field 0 to @total in ruby code |
| 09:15:17 | brixen | np |
| 09:16:17 | muri | where does these fields live? |
| 09:16:50 | brixen | in the object itself |
| 09:17:04 | brixen | see shotgun/lib/oop.h struct rubinius_object_t |
| 09:17:10 | kw leaves the room. | |
| 09:17:18 | muri | cheking |
| 09:18:11 | brixen | also, see this page: http://rubinius.lighthouseapp.com/projects/5089/shotgun-the-rubinius-virtual-machine |
| 09:18:22 | muri | i see, the field array |
| 09:18:26 | brixen | it has some discussion of the object memory layout |
| 09:19:14 | brixen | also, here's a beginning page of reference material: http://rubinius.lighthouseapp.com/projects/5089/stuff-to-read |
| 09:20:01 | muri | thanks brixen! lots useful resources |
| 09:21:14 | brixen | yw |
| 09:21:48 | brixen | as is often the case, we're rather short on docs, but there's more here: http://rubini.us/rbx_documentation |
| 09:22:40 | rue | Rich_Morin___: 1) In Ruby, with #eval only. Rubinius has other options |
| 09:23:46 | rue | Rich_Morin___: 2) Define "extend." `obj.method(:method_name).class == Method` but perhaps you are looking to /wrap/ the method or something? |
| 09:34:34 | reima | rue: Just out of curiosity: How would one accomplish 1) in Rubinius? |
| 09:34:51 | mentz enters the room. | |
| 09:35:55 | qwert666 enters the room. | |
| 09:40:51 | agile leaves the room. | |
| 09:40:55 | JimRoepcke enters the room. | |
| 09:41:04 | _mk_ enters the room. | |
| 09:41:53 | JimRoepcke | hi everyone. starting out with rubinius, porting some erlang code to try out the Actor implementation |
| 09:42:32 | JimRoepcke | it appears that Actor.spawn works if no arguments are given, but not even any are... has anyone seen this behaviour before? |
| 09:43:17 | JimRoepcke | ie: "act = Actor.spawn do ... end" works but "act = Actor.spawn(foo) do |x| ... end" doesn't. |
| 09:43:34 | drbrain | mentalguy or rue might know |
| 09:43:39 | drbrain | I'm off to bed |
| 09:50:16 | brixen | JimRoepcke: there are some beginning specs for Actor in spec/library/actor_spec.rb |
| 09:50:35 | brixen | I see some Actor.spawn(obj) examples and the specs pass for me on rbx |
| 09:50:53 | JimRoepcke | i'm wondering if the Thread.new call in Actor.spawn needs to pass through the args |
| 09:51:00 | JimRoepcke | ok |
| 09:51:19 | brixen | sorry, I'm not real familiar with it |
| 09:51:30 | brixen | and must sleep as well :) |
| 09:51:58 | brixen | if you can find tarcieri, he would be the guy to ask |
| 09:53:19 | Rich_Morin | rue: Yes I'd like to walk through a list of method names and wrap each one of them so that I can add assertions to the arguments and return value. |
| 09:53:42 | JimRoepcke | thanks brixen |
| 09:53:56 | brixen | yw |
| 09:55:37 | perdix enters the room. | |
| 09:59:39 | VVSiz | hi brixen |
| 10:01:07 | VVSiz | lots of new stuff in specs I see, mostly empty specs. :) |
| 10:06:40 | JimRoepcke | if I do a git pull on rubinius, do I just rake build to get a new build or do I have to clean/something else first? |
| 10:11:34 | JimRoepcke | apparently so <http://www.infoq.com/news/2007/09/rubinius-dev> here goes! |
| 10:13:12 | VVSiz | JimRoepcke: from time to time I had to do clean before build, otherwise there are weird errors/exceptions. Presumably, this only neeeds to be done when there are some low-level things changed |
| 10:29:51 | JimRoepcke | oh goodness the Actor implementation has completely changed in the last 33 hours. just what i needed :) I'm writing a paper comparing Actor implementations and now I have a whole lot more to do! hah |
| 10:44:11 | imajes_office leaves the room. | |
| 10:57:56 | rue | reima: Locals are available through the context |
| 11:13:08 | olabini enters the room. | |
| 11:15:05 | rue | Nite |
| 11:19:19 | jtoy leaves the room. | |
| 11:27:12 | qwert666 leaves the room. | |
| 11:29:21 | Fullmoon enters the room. | |
| 11:34:58 | Yurik enters the room. | |
| 12:15:00 | webmat enters the room. | |
| 12:16:24 | binary42 enters the room. | |
| 12:17:08 | ctennis leaves the room. | |
| 12:24:56 | imajes enters the room. | |
| 12:25:39 | mentz leaves the room. | |
| 12:31:33 | zimbatm_ leaves the room. | |
| 12:34:18 | ctennis enters the room. | |
| 12:41:43 | imajes leaves the room. | |
| 12:55:23 | wdperson enters the room. | |
| 12:57:43 | srbaker enters the room. | |
| 12:58:34 | mentz enters the room. | |
| 12:58:39 | srbaker leaves the room. | |
| 13:03:11 | RyanTM enters the room. | |
| 13:05:08 | headius enters the room. | |
| 13:13:04 | gnufied_ enters the room. | |
| 13:13:30 | gnufied leaves the room. | |
| 13:15:37 | hornbeck enters the room. | |
| 13:24:46 | thehcdreamer leaves the room. | |
| 13:28:56 | jero5 enters the room. | |
| 13:29:45 | jtoy enters the room. | |
| 13:41:13 | thehcdreamer enters the room. | |
| 13:46:16 | divoxx enters the room. | |
| 13:50:09 | sudoer enters the room. | |
| 13:54:37 | jlindley enters the room. | |
| 13:55:44 | smparkes enters the room. | |
| 13:57:24 | headius leaves the room. | |
| 14:07:03 | AndrewO enters the room. | |
| 14:08:46 | jtoy leaves the room. | |
| 14:18:31 | jlindley leaves the room. | |
| 14:23:35 | fbuilesv leaves the room. | |
| 14:25:27 | fbuilesv enters the room. | |
| 14:30:02 | binary42 leaves the room. | |
| 14:32:21 | qwert666 enters the room. | |
| 14:39:39 | be9 leaves the room. | |
| 14:40:59 | mentz leaves the room. | |
| 14:49:13 | muri leaves the room. | |
| 14:53:35 | qwert666 leaves the room. | |
| 14:54:25 | wmoxam enters the room. | |
| 14:55:48 | wmoxam leaves the room. | |
| 14:59:45 | stepheneb enters the room. | |
| 15:01:50 | mentz enters the room. | |
| 15:02:20 | jlindley enters the room. | |
| 15:03:44 | moofbong enters the room. | |
| 15:06:53 | chris2 enters the room. | |
| 15:08:28 | skaar enters the room. | |
| 15:10:02 | smparkes leaves the room. | |
| 15:16:54 | d2dchat enters the room. | |
| 15:17:08 | be9 enters the room. | |
| 15:18:57 | wmoxam enters the room. | |
| 15:23:16 | gnufied_ leaves the room. | |
| 15:23:37 | madsimian enters the room. | |
| 15:23:55 | gnufied_ enters the room. | |
| 15:31:26 | KirinDav enters the room. | |
| 15:33:20 | wmoxam leaves the room. | |
| 15:34:39 | enebo enters the room. | |
| 15:35:26 | lopex enters the room. | |
| 15:42:48 | agile enters the room. | |
| 15:44:02 | binary42 enters the room. | |
| 15:44:39 | wyhaines leaves the room. | |
| 15:45:57 | KirinDav leaves the room. | |
| 15:47:52 | moofbong_ enters the room. | |
| 15:47:58 | moofbong_ leaves the room. | |
| 15:48:40 | moofbong leaves the room. | |
| 15:49:26 | wmoxam enters the room. | |
| 15:53:34 | enebo | HAHA IBM w/ 5Ghz CPUs |
| 15:54:01 | enebo | Sun and IBM appear to be moving in completely different directions |
| 15:54:03 | fbuilesv | enebo: how many cores, 1? |
| 15:54:12 | enebo | http://www.theregister.co.uk/2008/04/08/ibm_595_water/ |
| 15:54:43 | enebo | dual core I think |
| 15:54:49 | jayWHY enters the room. | |
| 15:54:51 | fbuilesv | wait, 32 dual core 5ghz processors |
| 15:55:13 | fbuilesv | I'd love to see what you need to cool that off |
| 15:55:35 | smparkes enters the room. | |
| 15:55:42 | Defiler | water |
| 15:55:43 | Defiler | lots of water |
| 15:56:27 | jlindley | 320ghz |
| 15:56:52 | Defiler | Clearly we need one of these for evaluation purposes |
| 15:56:53 | enebo | Sun's direction: http://www.sun.com/processors/UltraSPARC-T2/ |
| 15:57:12 | fbuilesv | Defiler: imagine the time of CI running there :) |
| 15:57:45 | enebo | We probably need to parallelize our CI builds |
| 15:58:04 | enebo | or at least when running locally |
| 15:58:49 | fbuilesv | I wonder how feasible that is with so many dependencies |
| 15:59:36 | enebo | yeah, well for ant test we do test-interpreted and test-compiled It seems possible to at least cleave there |
| 16:00:32 | fbuilesv | actually since most of the dependencies are relevant just for independent libs it could probably run 'n' at the same time without major hassles |
| 16:01:02 | enebo | logging is the only thing that I think would be strange |
| 16:01:03 | therealadam enters the room. | |
| 16:01:52 | Yurik leaves the room. | |
| 16:05:12 | sudoer leaves the room. | |
| 16:05:34 | headius enters the room. | |
| 16:06:47 | headius leaves the room. | |
| 16:06:52 | headius enters the room. | |
| 16:09:00 | trythil enters the room. | |
| 16:09:54 | KirinDav enters the room. | |
| 16:12:43 | headius_ enters the room. | |
| 16:13:27 | moofbong enters the room. | |
| 16:14:03 | headius leaves the room. | |
| 16:14:57 | headius enters the room. | |
| 16:15:17 | headius_ leaves the room. | |
| 16:17:02 | headius leaves the room. | |
| 16:17:14 | headius enters the room. | |
| 16:19:24 | enebo leaves the room. | |
| 16:22:46 | benburkert enters the room. | |
| 16:22:58 | tarcieri leaves the room. | |
| 16:23:50 | headius_ enters the room. | |
| 16:23:55 | headius leaves the room. | |
| 16:24:37 | headius_ leaves the room. | |
| 16:24:49 | headius enters the room. | |
| 16:29:56 | headius_ enters the room. | |
| 16:30:12 | headius leaves the room. | |
| 16:30:28 | ineffablygregory enters the room. | |
| 16:31:37 | twbray enters the room. | |
| 16:31:59 | headius_ leaves the room. | |
| 16:32:11 | headius enters the room. | |
| 16:33:03 | headius leaves the room. | |
| 16:34:32 | wyhaines leaves the room. | |
| 16:35:28 | smparke1 enters the room. | |
| 16:45:18 | macournoyer enters the room. | |
| 16:45:33 | KirinDav leaves the room. | |
| 16:47:49 | evan | morning. |
| 16:47:59 | Defiler | morning |
| 16:51:02 | ineffablygregory leaves the room. | |
| 16:52:58 | thehcdreamer leaves the room. | |
| 16:54:34 | twbray leaves the room. | |
| 16:55:08 | twbray enters the room. | |
| 16:55:23 | d2dchat leaves the room. | |
| 16:55:30 | moofbong leaves the room. | |
| 16:55:46 | moofbong enters the room. | |
| 16:57:46 | obvio enters the room. | |
| 17:03:20 | headius enters the room. | |
| 17:04:16 | codebrulee enters the room. | |
| 17:05:25 | benburkert leaves the room. | |
| 17:05:39 | enebo enters the room. | |
| 17:09:04 | scoopr | hmm |
| 17:09:13 | scoopr | I'm more and more drawn towards llvm |
| 17:09:47 | scoopr | compelled to make a pure ruby llvm-ri builder, much like headius's java bytecode generator |
| 17:10:15 | benburkert enters the room. | |
| 17:10:36 | scoopr | but I'm afraid it'll be a terrible timesink project, where most of the time is spent trying to learn all this stuff I don't understand and never really get anywhere :/ |
| 17:11:05 | obvio171 enters the room. | |
| 17:11:09 | anteaya enters the room. | |
| 17:11:30 | obvio leaves the room. | |
| 17:11:35 | fbuilesv leaves the room. | |
| 17:12:56 | headius | timesinks are phun |
| 17:13:26 | scoopr | indeed |
| 17:13:37 | scoopr | but the thing is, I already have like five good timesinks already >:) |
| 17:13:52 | scoopr | not getting anywhere in those |
| 17:15:48 | thehcdreamer enters the room. | |
| 17:18:03 | benburkert leaves the room. | |
| 17:18:13 | binary42_ enters the room. | |
| 17:18:49 | Skip leaves the room. | |
| 17:19:19 | binary42 leaves the room. | |
| 17:20:51 | joseph enters the room. | |
| 17:21:48 | joseph | what are these __ivars__ used for? |
| 17:22:12 | evan | inspect uses it to show you the ivars for an object |
| 17:22:58 | joseph | thanks evan |
| 17:23:04 | twbray leaves the room. | |
| 17:24:08 | twbray enters the room. | |
| 17:25:39 | anteaya_ enters the room. | |
| 17:29:29 | ciscbrain enters the room. | |
| 17:35:09 | KirinDav enters the room. | |
| 17:35:24 | mutle leaves the room. | |
| 17:36:28 | nicksieger leaves the room. | |
| 17:37:06 | madsimian leaves the room. | |
| 17:37:10 | foysavas enters the room. | |
| 17:37:58 | MikeJS_ enters the room. | |
| 17:39:52 | loincloth enters the room. | |
| 17:40:30 | anteaya leaves the room. | |
| 17:40:31 | Skip enters the room. | |
| 17:40:35 | fleadope enters the room. | |
| 17:41:08 | benburkert enters the room. | |
| 17:42:11 | benburkert leaves the room. | |
| 17:42:25 | stepheneb leaves the room. | |
| 17:50:22 | nicksieger enters the room. | |
| 17:51:37 | ciscbrain leaves the room. | |
| 17:56:48 | qwert666 enters the room. | |
| 17:57:03 | benburkert enters the room. | |
| 17:57:17 |