Show enters and exits. Hide enters and exits.
| 00:00:39 | evan | Defiler: sup? |
| 00:01:11 | Defiler | evan: OK. Let's say I have a line of code on line 1 of a file.. "spec do 5 end" |
| 00:01:22 | Defiler | and spec is just something that captures the block, as per the earlier example |
| 00:01:49 | Defiler | Before that block pass, when we've just got this BlockEnvironment we created.. |
| 00:02:04 | anonuser | bah. |
| 00:02:26 | Defiler | What is the relationship between that BlockEnv instance and the context object that would show 'line 1' if asked to print in a backtrace right that second |
| 00:02:34 | mass | anonuser: are you anonymous user or a non-user? |
| 00:02:55 | evan | between which context object |
| 00:03:04 | evan | it has 3 relationships to context objects |
| 00:03:18 | evan | 1) home: the MethodContext it was created in (where self is) |
| 00:03:19 | Defiler | Right. It has a 'home' and 'home' block, which could be different |
| 00:03:24 | nexcastellan | anonuser: Actually, I'd like to hold off my commit but if you give me your email address, I'll email you a diff. |
| 00:03:25 | Defiler | and then it has a BlockContext later when it is run |
| 00:03:31 | Defiler | any others? |
| 00:03:35 | evan | 2) home_block: the contents of MethodContext.current when it was ceated |
| 00:03:37 | anonuser | mass, neither. |
| 00:04:00 | evan | 3) created context: when #call is sent to the BlockEnv, a new context is created to run the code it contains |
| 00:04:04 | atduskgreg leaves the room. | |
| 00:04:13 | Defiler | OK, I need the other one that isn't on that list.. the one that MRI prints. Heh |
| 00:04:22 | evan | there is no other one. |
| 00:04:35 | Defiler | Something has to be pointing at 'this_file.rb:1' |
| 00:04:43 | Defiler | Because that is where we are executing right now |
| 00:04:51 | evan | in rubinius or MRI? |
| 00:04:54 | Defiler | Both |
| 00:05:07 | evan | well, in rubinius, it's one of those 3 |
| 00:05:18 | evan | in MRI, as headius said, it's duping frames internally |
| 00:05:26 | Defiler | See, that turns out not to be it |
| 00:05:34 | anonuser | okay I'm seg faulting on swapping contexts; |
| 00:05:35 | evan | so there is no mapping between the 3 I gave you |
| 00:05:37 | Defiler | because we don't implement the thing MRI is duping, as far as I can see |
| 00:05:53 | evan | Defiler: that doesn't change that there are 3 contexts in question |
| 00:05:56 | Cosmos95 enters the room. | |
| 00:06:09 | Defiler | MRI dupes something that says "you are defining a block at line 1 in file1.rb and the method call this is a block for is 'spec'" |
| 00:06:18 | dbussink | brixen: gah, i can't even get a complete full spec run on my 64 bit box |
| 00:06:19 | anonuser | hpricot is trying to define an attribute "buffer_size" and the subtend layer just does not like that. |
| 00:06:19 | Defiler | but it seems to me we don't have anything that retains that state |
| 00:06:32 | Defiler | even immediately, as the BlockEnvironment is instantiated |
| 00:06:39 | dbussink | brixen: it's hanging an insane amount of time |
| 00:06:54 | brixen | dbussink: yeah, noticed that too with trying to sync the specs |
| 00:06:56 | nexcastellan | anonuser, give me your email, I'll send you my patch. Seems to make RMagick compile but then it craps out on "TypeError", almost certainly because of my RData bit. |
| 00:07:03 | brixen | dbussink: are you on the old specs or did you try to sync them? |
| 00:07:17 | dbussink | brixen: just running rake spec:full on the latest head |
| 00:07:25 | brixen | hmm |
| 00:07:32 | Defiler | We hang on spec:full, right? |
| 00:07:36 | anonuser | nexcastellan, sean@cyberwang.net or sean@hackinggibsons.com |
| 00:07:53 | anonuser | pick one :) |
| 00:07:55 | brixen | dbussink: yep, same here |
| 00:07:58 | dbussink | Defiler: well, probably it will get there eventually |
| 00:08:12 | dbussink | just like rubuildius_amd64, that one usually takes a huge amount of time too |
| 00:08:14 | Defiler | I thought that readlines("") thing just spun forever? |
| 00:08:22 | anonuser | nexcastellan, run it in gdb and follow the backtrace |
| 00:08:28 | Defiler | Maybe I am mixing up all the rake tasks we have now |
| 00:08:32 | Defiler | Since we have 100 |
| 00:08:32 | brixen | Defiler: we haven't been hanging on spec:full |
| 00:08:37 | brixen | that's what the bots run |
| 00:08:38 | nexcastellan | anonuser, yes but my bus comes in ten minutes. :) |
| 00:08:43 | anonuser | alright |
| 00:08:46 | anonuser | I'll see about it. |
| 00:09:13 | nexcastellan | anonuser, emailed. |
| 00:09:15 | Defiler | I guess where I am going with this, evan, is this.. |
| 00:09:20 | nexcastellan | G'night, all. |
| 00:09:23 | ezmobius_ enters the room. | |
| 00:09:26 | Defiler | foo { insert_code_here } |
| 00:09:33 | anonuser | but first to see why rb_define_attribute's failing :( |
| 00:09:38 | anonuser | nexcastellan, thanks |
| 00:09:58 | dbussink | brixen: but i really need to get some sleep |
| 00:10:01 | Defiler | Sorry, wrong. Mixing up passes. Ignore what I just said |
| 00:10:03 | dbussink | 1 am over here |
| 00:10:12 | brixen | dbussink: n/p |
| 00:10:53 | evan | Defiler: perhaps you should draw a picture in omni graffle |
| 00:10:58 | evan | of the object relationships |
| 00:11:00 | Defiler | Yeah, I drew one on paper |
| 00:11:04 | evan | and another of the control flow |
| 00:11:06 | Defiler | but if you want to see it too I can graffle it |
| 00:11:15 | evan | might be nice |
| 00:11:19 | evan | since i'm sure we'll forget this |
| 00:11:24 | drbrain | we should do a crayon one |
| 00:11:32 | Defiler | While I'm doing that, did I at least get across my question? Heh. |
| 00:11:38 | evan | no |
| 00:11:44 | evan | still don't see where you're going |
| 00:11:51 | evan | i know that we're missing information |
| 00:11:58 | evan | we figured that out yesterday |
| 00:12:00 | evan | or the day before. |
| 00:12:08 | Defiler | OK, I'll give it to you in terms of kernel code |
| 00:12:17 | evan | because home_block continues to run, destroying the ip that the block was created at |
| 00:12:24 | Defiler | take a look at kernel/core/proc.rb and look at def self.__from_block__ or from_environment |
| 00:12:46 | evan | k, i see it. |
| 00:12:56 | Defiler | if line 1 of file1.rb is: foo { baz }.. when that code runs, which context frame contains 'file 1, line 1' as its position information |
| 00:13:07 | Defiler | sorry.. by "that code" I mean __from_block__ |
| 00:13:09 | evan | which context frame. |
| 00:13:15 | Defiler | Any context frame |
| 00:13:15 | evan | give them names |
| 00:13:18 | evan | ok |
| 00:13:32 | Defiler | That has line 1 of file 1 as its instruction pointer |
| 00:13:35 | evan | are you asking me? |
| 00:13:38 | Defiler | Yes |
| 00:13:39 | evan | oh. |
| 00:13:41 | Defiler | That is the question |
| 00:13:51 | evan | when the block is executed |
| 00:13:54 | evan | right? |
| 00:13:59 | Defiler | No, when it is block_passed |
| 00:14:04 | evan | ie, yield or Proc#call is done. |
| 00:14:22 | Defiler | __from_block__ is called potentially far in advance of the actual Proc#call, if any |
| 00:14:24 | evan | ok, so when 'def foo(&block)' is executed |
| 00:14:25 | evan | yes? |
| 00:14:27 | Defiler | yes |
| 00:14:31 | Defiler | well, no |
| 00:14:39 | evan | there is no context yet for executing 'baz' |
| 00:14:40 | Defiler | __from_block__ runs when the block is actually passed, right? |
| 00:14:44 | evan | it doesn't exist yet. |
| 00:14:54 | evan | it runs both places |
| 00:15:12 | evan | on the caller side for "foo(&blah)" |
| 00:15:21 | evan | and on the reciever side for |
| 00:15:27 | evan | "def foo(&block)" |
| 00:15:35 | Defiler | __from_block__ runs when the block is actually passed, right? |
| 00:15:39 | Defiler | argh |
| 00:15:40 | Defiler | freaking irc |
| 00:15:41 | evan | both. |
| 00:15:43 | evan | call me. |
| 00:15:45 | Defiler | There's a compile pass, and then there's a "foo is running now, and has a block associated with it to call __from_block__ on", right? |
| 00:16:11 | evan | just call me |
| 00:21:09 | anonuser | heh. when the internet communication lines break down. |
| 00:23:05 | qwert666_ leaves the room. | |
| 00:25:29 | loincloth enters the room. | |
| 00:33:47 | atduskgreg enters the room. | |
| 00:41:05 | headius | evan: where are you guys storing backref right now |
| 00:41:27 | headius | backref is the goddamn bane of my existence |
| 00:42:38 | vertiginous leaves the room. | |
| 00:43:04 | imajes leaves the room. | |
| 00:43:31 | headius_ enters the room. | |
| 00:44:42 | headius | grr |
| 00:45:19 | headius leaves the room. | |
| 00:48:00 | ShayArnett enters the room. | |
| 00:51:21 | mernen enters the room. | |
| 00:59:18 | robertpostill enters the room. | |
| 00:59:20 | robertpostill leaves the room. | |
| 01:05:12 | lopex leaves the room. | |
| 01:07:31 | atduskgreg leaves the room. | |
| 01:07:53 | wmorgan | preliminary inliner benchmarks: http://all-thing.net/2008/06/preliminary-rubinius-inliner-benchmarks.html |
| 01:08:41 | drbrain | wmorgan: sweet |
| 01:13:19 | tarcieri | nice |
| 01:13:28 | tarcieri | can't wait for some JIT :) |
| 01:14:45 | ezmobius | wmorgan: killer |
| 01:15:24 | evan | wmorgan: cool! |
| 01:18:42 | evan | wmorgan: one nice thing about the way I'm structuring the LLVM integration is that we can just use your inliner straight up and feed the output to LLVM to create new machine code |
| 01:18:55 | tarcieri | w00t |
| 01:19:28 | ezmobius | hows the c++ vm coming? |
| 01:20:05 | evan | good |
| 01:20:15 | wmorgan | evan: inliner+llvm is a match made in heaven. especially if you can do something with those meta_send_plus opcodes... |
| 01:20:16 | evan | did ya see the sample output for the while loop |
| 01:20:24 | ezmobius | yeah |
| 01:20:34 | ezmobius | exciting |
| 01:21:00 | wmorgan | evan: also the inlined methods are full of redundant stack motion that llvm will optimize out |
| 01:21:26 | evan | yeah, i'm doing experiments right now to |
| 01:21:40 | evan | to figure out how to express the stack to LLVM to make it optimize the most |
| 01:21:58 | evan | i think that letting LLVM see it as a OBJECT** is the trick |
| 01:22:04 | evan | but still verifing that |
| 01:25:22 | ruivaldo enters the room. | |
| 01:25:33 | rue | wmorgan: Nice work |
| 01:26:47 | tomy_ enters the room. | |
| 01:27:26 | wmorgan | thanks all! |
| 01:27:26 | rue | Also with Sup :) |
| 01:27:37 | bitsweat leaves the room. | |
| 01:27:55 | wmorgan | rue: sup on rubinius is an experiment i'm too scared to try |
| 01:28:09 | wmorgan | but one day... |
| 01:28:20 | rue | wmorgan: Hehe, maybe it would finally rid all the Redwood stuff ;) |
| 01:28:31 | wmorgan | then i won't have to benchmark it. it will just be super fast! |
| 01:28:46 | wmorgan | rue: that is the least of my worries |
| 01:30:02 | anonuser | is back |
| 01:30:10 | yugui enters the room. | |
| 01:42:28 | AndrewO enters the room. | |
| 01:43:00 | anteaya leaves the room. | |
| 01:43:26 | krisps leaves the room. | |
| 01:47:17 | anteaya enters the room. | |
| 01:48:10 | benny enters the room. | |
| 01:48:21 | Arjen__ leaves the room. | |
| 01:54:23 | naeu enters the room. | |
| 01:56:08 | rue | set_ffi_lib is such a hack, man |
| 01:56:22 | tomy_ leaves the room. | |
| 01:57:18 | evan | shall we do |
| 01:57:42 | evan | class IConvLib < FFI.library "libiconv" |
| 01:57:46 | evan | :) |
| 01:57:55 | rue | Go to your room, young man |
| 01:58:09 | evan | ok! |
| 01:58:16 | evan | can I take a book and my ipod? |
| 01:58:44 | rue | No, you will listen to this Zune |
| 01:58:57 | evan | NOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO OOOOOOOO |
| 01:59:06 | evan | runs! |
| 01:59:11 | evan | YOU CAN'T MAKE ME |
| 01:59:19 | rue | Heh |
| 01:59:57 | rue | Well, I do not think I agree on not using keyword arguments (I am still not sure what the problem is), we could just make it a defaulting last parameter |
| 02:00:45 | rue | I think the #attach_foreign format was generally received OK since it is easy to see what is what |
| 02:02:13 | evan | no one used it |
| 02:02:19 | evan | so i'm not sure how it was received OK. |
| 02:03:58 | rue | It was decreed that the original was to be used |
| 02:04:12 | evan | we can revise it |
| 02:04:14 | evan | i'm fine with that. |
| 02:04:29 | rue | We could have a poll, I suppose, but either way we can add the library to the call itself |
| 02:04:31 | evan | well |
| 02:04:39 | evan | i'm headed out for dinner, then a show. |
| 02:04:48 | rue | Okaydoke |
| 02:05:02 | evan | attach_foriegn, if I recall, would have required that every line have the name of the library |
| 02:05:09 | evan | very unDRY |
| 02:05:37 | evan | we can talk |
| 02:05:42 | evan | i think i was being fussy that day |
| 02:05:49 | evan | i'm open to revisement. |
| 02:06:12 | rue | No, I used keyword arguments :) |
| 02:06:27 | evan | still means you'd have to pass it on every line |
| 02:06:37 | evan | attach_foreign 'blah', :library => "libiconv" |
| 02:06:40 | evan | attach_foreign 'blah2', :library => "libiconv" |
| 02:07:33 | rue | Ah, if everything comes from a separate lib? Yeah.. there is a use-case for an set_ffi_lib-like method certainly |
| 02:07:51 | evan | ok. |
| 02:07:55 | evan | well, ponder that. |
| 02:07:59 | evan | i'm off. |
| 02:07:59 | rue | Needs to be thread-safe though |
| 02:08:02 | rue | *wave |
| 02:08:08 | wmoxam enters the room. | |
| 02:14:56 | naeu leaves the room. | |
| 02:15:33 | ruivaldo leaves the room. | |
| 02:23:27 | ruivaldo enters the room. | |
| 02:24:22 | jicksta leaves the room. | |
| 02:24:36 | jicksta enters the room. | |
| 02:26:44 | mernen leaves the room. | |
| 02:31:05 | wmoxam leaves the room. | |
| 02:37:34 | VVSiz_ enters the room. | |
| 02:38:54 | yipstar leaves the room. | |
| 02:39:07 | blakewatters enters the room. | |
| 02:51:25 | pastie enters the room. | |
| 02:55:33 | bitsweat enters the room. | |
| 02:55:51 | VVSiz leaves the room. | |
| 03:02:37 | ezmobius_ leaves the room. | |
| 03:07:14 | ShayArnett leaves the room. | |
| 03:08:39 | ruivaldo leaves the room. | |
| 03:12:39 | twbray enters the room. | |
| 03:22:42 | boyscout | 3 commits by Eero Saynatkari |
| 03:22:43 | boyscout | * Iconv uses FFI::USE_THIS_PROCESS_AS_LIBRARY instead of nil.; 325b236 |
| 03:22:44 | boyscout | * Module#set_ffi_lib allows multiple library names, documented same.; 812cba1 |
| 03:22:45 | boyscout | * FFI::USE_THIS_PROCESS_AS_LIBRARY is the nil FFI library argument.; 8b1a22c |
| 03:31:58 | jimbarnett enters the room. | |
| 03:34:38 | stcredzero enters the room. | |
| 03:36:43 | rubuildius_ppc | Eero Saynatkari: 325b23628; 2189 files, 7320 examples, 26112 expectations, 0 failures, 0 errors |
| 03:51:44 | twbray leaves the room. | |
| 03:52:35 | Maledictus leaves the room. | |
| 03:54:00 | twbray enters the room. | |
| 03:55:30 | fork_ enters the room. | |
| 03:58:26 | webmat enters the room. | |
| 03:59:43 | twbray leaves the room. | |
| 04:01:02 | rubuildius_ppc leaves the room. | |
| 04:01:42 | rubuildius_ppc enters the room. | |
| 04:01:43 | Cosmos95 leaves the room. | |
| 04:01:46 | stcredzero | compress.c:2:18: error: zlib.h: No such file or directory |
| 04:02:07 | rubuildius_ppc leaves the room. | |
| 04:02:19 | AndrewO leaves the room. | |
| 04:02:29 | rubuildius_ppc enters the room. | |
| 04:04:31 | wycats leaves the room. | |
| 04:05:40 | dschn leaves the room. | |
| 04:07:03 | dysinger leaves the room. | |
| 04:07:30 | stcredzero leaves the room. | |
| 04:17:48 | stcredzero enters the room. | |
| 04:18:32 | michaellatta_ enters the room. | |
| 04:19:22 | stcredzero | I'm getting a bunch of undeclareds in readline.c. Is there a gem I need to install? |
| 04:21:17 | shame enters the room. | |
| 04:24:39 | wycats enters the room. | |
| 04:25:48 | mernen enters the room. | |
| 04:29:04 | stcredzero | readline.c:8:31: error: readline/readline.h: No such file or directory |
| 04:29:24 | stcredzero | I've installed libreadline-ruby. What else? |
| 04:30:21 | bitsweat | how about libreadline? |
| 04:30:51 | stcredzero | no such package |
| 04:31:05 | stcredzero | doesn't seem to be a readline gem either |
| 04:32:01 | drbrain | readline is built-in to ruby |
| 04:32:28 | benburkert_ enters the room. | |
| 04:32:36 | stcredzero | I installed ruby from Debian. Was that a bad idea? |
| 04:33:35 | drbrain | if you installed debian ruby and debian ruby readline, I would think it wold work |
| 04:33:36 | jimbarnett | The docs for ubuntu say you need libreadline5-dev |
| 04:33:39 | drbrain | +u |
| 04:33:55 | stcredzero | I just found that too! |
| 04:34:05 | sambo82 enters the room. | |
| 04:34:33 | michaellatta leaves the room. | |
| 04:35:58 | stcredzero | That's it. Apparently, we just finished a build |
| 04:36:09 | stcredzero | Thanks |
| 04:36:39 | jimbarnett | cool. Congrats |
| 04:36:58 | stcredzero | Any parser gurus here? |
| 04:37:59 | stcredzero | I want to know if it's futile for me to write a program get a complete AST from Ruby Source. |
| 04:38:19 | drbrain | it is |
| 04:38:22 | drbrain | it's been done |
| 04:38:26 | drbrain | ParseTree |
| 04:39:26 | stcredzero | Then not futile. So that's not limited to methods anymore? I need a full parse tree for entire source files, including random toplevel stuff. |
| 04:39:55 | drbrain | you can get the AST for a method or a string |
| 04:39:59 | drbrain | method/block |
| 04:40:14 | drbrain | parse_tree_for_string File.read(your_file) |
| 04:40:17 | drbrain | I think |
| 04:40:43 | stcredzero | Thanks again |
| 04:44:58 | stcredzero | Still, I'd rather get the AST from the parser in Rubinius. I want to see the AST it makes of itself |
| 04:44:59 | nicksieger leaves the room. | |
| 04:46:18 | rubuildius_amd64 | Eero Saynatkari: 325b23628; 2189 files, 7319 examples, 26077 expectations, 1 failure, 2 errors; http://rafb.net/p/aV571B43.html |
| 04:46:19 | drbrain | we're working on that |
| 04:46:29 | drbrain | you can get the bytecode, though |
| 04:47:56 | stcredzero | Hmm, so there's still some oddities from the 1.8 MRI you're working through as far as having full access to the AST? |
| 04:48:17 | benburkert leaves the room. | |
| 04:48:33 | drbrain | actually, it's probably exposed in there somewhere |
| 04:49:44 | stcredzero | I can't just write my own visitor on the Rubinius nodes? |
| 04:50:05 | drbrain | not sure |
| 04:51:26 | stcredzero | Then we'll be trying it and finding out. |
| 04:54:14 | drbrain | lib/compiler is where you want to start |
| 04:56:46 | stcredzero | I been perusing that. Ciao |
| 04:56:53 | stcredzero leaves the room. | |
| 05:16:20 | dlee leaves the room. | |
| 05:19:08 | yipstar enters the room. | |
| 05:23:44 | benny leaves the room. | |
| 05:50:26 | webmat leaves the room. | |
| 05:52:26 | RyanTM leaves the room. | |
| 05:54:02 | anonuser | anyone here? |
| 05:54:19 | willl enters the room. | |
| 05:56:00 | anonuser | well when someone gets back, is rb_funcall broken in subtend? |
| 05:56:46 | edwardam leaves the room. | |
| 06:04:37 | Yurik enters the room. | |
| 06:04:58 | twbray enters the room. | |
| 06:05:56 | yipstar leaves the room. | |
| 06:33:14 | rue | anonuser: Could well be, what are you running into? |
| 06:36:02 | headius_ enters the room. | |
| 06:39:47 | twbray leaves the room. | |
| 06:51:58 | headius leaves the room. | |
| 07:01:42 | anteaya_ enters the room. | |
| 07:11:22 | yugui leaves the room. | |
| 07:11:56 | gnufied enters the room. | |
| 07:13:07 | anonuser | rue, I'm back |
| 07:13:38 | rue | ? |
| 07:13:44 | anonuser | well i'm tracking down a problem after I'm implemented the needed crap to get hpricot to compile it segfaults the VM |
| 07:13:58 | anonuser | I'm running through what I added to see if things are wrong |
| 07:14:08 | anonuser | rb_singleton_class might be the culprit |
| 07:14:40 | anonuser | http://pastie.org/210477 |
| 07:14:49 | anonuser | ignore everything but rb_singleton_class |
| 07:15:01 | rubuildius_ppc leaves the room. | |
| 07:15:03 | anonuser | I have a breakpoint on the val = .... |
| 07:15:42 | rubuildius_ppc enters the room. | |
| 07:16:07 | anonuser | and just to see if the singleton class was getting defined i decided to try this |
| 07:17:31 | anonuser | rbx_string_as_cstr(module_get_name(val)) |
| 07:17:48 | anteaya leaves the room. | |
| 07:17:58 | anonuser | that created another segfault :( |
| 07:18:24 | anonuser | but that makes sense because it hasn't been created :( |
| 07:22:27 | anonuser | tried again and to no avail |
| 07:22:40 | anonuser | basically when I do module_get_name(val) |
| 07:23:08 | anonuser | I get back an obj but it seems to be trash |
| 07:24:54 | anonuser | http://code.whytheluckystiff.net/hpricot/browser/trunk/ext/hpricot_scan/hpricot_scan.rl#L264 |
| 07:25:02 | anonuser | basically that's where hpricot freaks out. |
| 07:25:33 | anonuser | I thought it might be rb_define_attr but that has specs, so what I'm passing to it is obviously wrong |
| 07:26:52 | anonuser | any ideas? Or did you just explode and disperse into the internet? |
| 07:27:38 | rue | Packing |
| 07:28:17 | anonuser | oh sorry to bother you then |
| 07:28:36 | rue | Nah, 's fine. Just in and out |
| 07:28:56 | anonuser | ah |
| 07:29:10 | jimbarnett leaves the room. | |
| 07:30:37 | krisps enters the room. | |
| 07:31:59 | anonuser | if ya want to comment let me know, I'll be in and out as well |
| 07:32:01 | rue | Have you stepped into object_metaclass? |
| 07:35:00 | anonuser | sadly I've ignored it for the most part. I'd like to think it's doing to right then and I'm just doing something wrong. That and I have no idea how it works. |
| 07:35:40 | anonuser | basically I'm throwing grenades into the dark and hoping they go off. |
| 07:39:43 | evan | rue: that new ffi constant is crazy long. |
| 07:40:11 | evan | it's for use with set_ffi_lib, yes? |
| 07:47:54 | anonuser | evan, I've got a question about ID's in the subtend layer, http://github.com/evanphx/rubinius/tree/master/shotgun/lib/subtend/ruby.h#L36 is that correct just casting to a VALUE? |
| 08:00:58 | michaellatta_ leaves the room. | |
| 08:01:31 | michaellatta enters the room. | |
| 08:23:08 | anteaya_ leaves the room. | |
| 08:24:26 | krisps leaves the room. | |
| 08:25:34 | JonathanT enters the room. | |
| 08:27:13 | blakewatters leaves the room. | |
| 08:28:36 | blakewatters enters the room. | |
| 08:43:20 | random8r enters the room. | |
| 08:49:46 | TheVoice leaves the room. | |
| 08:51:43 | antares_ enters the room. | |
| 08:58:42 | random8r leaves the room. | |
| 09:03:15 | xmlhacker enters the room. | |
| 09:03:25 | NoKarma enters the room. | |
| 09:05:20 | rue | evan: I figure it saves a separate comment ;) |
| 09:06:10 | rue | We do need to resolve the whole thing once and for all though |
| 09:19:04 | rue | anonuser: Looking into it now. Seeing if it can be reproduced in a smaller case |
| 09:23:52 | Maledictus enters the room. | |
| 09:40:45 | VVSiz | drbrain: thanks for the logs for "design meeting"! :) |
| 09:42:27 | anonuser | rue, if it helps module_get_name returns a NilClass |
| 09:45:17 | rue | VVSiz: There was a design meeting? |
| 09:45:28 | VVSiz | yeah, two days ago |
| 09:46:10 | rue | VVSiz: Meh, missed it! Do you have the link? |
| 09:46:41 | VVSiz | sure, one sec |
| 09:47:16 | VVSiz | rue: http://ruby-design.pbwiki.com/Design20080604 |
| 09:49:19 | rue | THankees |
| 09:51:53 | bitsweat leaves the room. | |
| 10:09:35 | lopex enters the room. | |
| 10:15:23 | thehcdreamer enters the room. | |
| 10:40:34 | antares_ leaves the room. | |
| 10:59:36 | qwert666 enters the room. | |
| 11:04:32 | rue | anonuser: The metaclass extraction is working fine so far as I can figure out |
| 11:06:21 | dbussink | rue: ah, i see you cleaned up my ugly hack a bit? |
| 11:26:21 | loincloth leaves the room. | |
| 11:30:18 | rue | dbussink: Just gave it a name. Need to do something proper |
| 11:30:44 | dbussink | rue: yeah, that's true |
| 11:32:11 | rue | I thought evan pushed his code already but looks like not |
| 11:33:48 | imajes enters the room. | |
| 11:49:32 | rue | I wonder if there would be a better way to do platform resolution for an extension |
| 11:57:05 | lopex leaves the room. | |
| 12:19:11 | Fullmoon enters the room. | |
| 12:24:46 | yugui enters the room. | |
| 12:54:35 | loop enters the room. | |
| 12:56:09 | Cosmos95 enters the room. | |
| 13:04:53 | jimbarnett enters the room. | |
| 13:06:41 | jero5 enters the room. | |
| 13:06:46 | kAworu leaves the room. | |
| 13:08:39 | kAworu enters the room. | |
| 13:11:19 | anteaya enters the room. | |
| 13:20:42 | sr leaves the room. | |
| 13:37:16 | VVSiz leaves the room. | |
| 13:37:28 | yugui leaves the room. | |
| 13:38:25 | VVSiz enters the room. | |
| 13:42:42 | yugui enters the room. | |
| 13:49:01 | sr enters the room. | |
| 13:50:33 | michaellatta_ enters the room. | |
| 13:50:39 | anteaya leaves the room. | |
| 13:58:10 | michaellatta leaves the room. | |
| 14:01:42 | michalw enters the room. | |
| 14:19:14 | RyanTM enters the room. | |
| 14:26:59 | blakewatters leaves the room. | |
| 14:35:08 | headius enters the room. | |
| 14:36:57 | jero5 leaves the room. | |
| 14:42:11 | headius_ leaves the room. | |
| 14:59:50 | Arjen_ enters the room. | |
| 15:01:42 | JonathanT leaves the room. | |
| 15:17:05 | moofbong enters the room. | |
| 15:24:58 | imajes leaves the room. | |
| 15:32:50 | twbray enters the room. | |
| 15:34:14 | headius_ enters the room. | |
| 15:35:05 | fbuilesv enters the room. | |
| 15:36:22 | enebo enters the room. | |
| 15:37:48 | moofbong leaves the room. | |
| 15:40:55 | headius leaves the room. | |
| 15:47:37 | imajes enters the room. | |
| 15:52:10 | twbray leaves the room. | |
| 15:58:43 | mjwhitt leaves the room. | |
| 16:06:04 | mass | good morning |
| 16:10:04 | shoe | mass: g'morning |
| 16:11:39 | rue | Ahoy, strangers |
| 16:12:04 | mass | I'm not strange, am I? |
| 16:12:10 | rue | You are |
| 16:12:31 | mass | nooooo |
| 16:12:47 | rue | For all I know it could have been an evil twin last time |
| 16:13:21 | mass | my evil twin is moss |
| 16:16:09 | Defiler | Oh hellll yeah |
| 16:16:16 | Defiler | looks like I just got caller working |
| 16:16:28 | dbussink | goooo Defiler! |
| 16:17:32 | Defiler | You thought 'caller' was supposed to list what called you. hahaha |
| 16:17:33 | Defiler | no |
| 16:18:00 | Defiler | You can ask for the caller of things that have never been called. Rad. |
| 16:18:00 | cored enters the room. | |
| 16:19:16 | atmos leaves the room. | |
| 16:21:59 | dbussink | Defiler: otherwise it would have been too easy of course ;) |
| 16:22:17 | atmos enters the room. | |
| 16:22:59 | moofbong enters the room. | |
| 16:23:09 | boyscout | 1 commit by Wilson Bilkovich |
| 16:23:10 | boyscout | * Support correct 'caller' output for: eval("caller", some_proc.binding); 2467d2b |
| 16:23:35 | Defiler | Kinda hacktastic at the moment, but I need to write more specs before I can merge the 'caller' and 'backtrace' code paths |
| 16:24:28 | Defiler | headius_: Got it without duping any stack frames muhaha |
| 16:30:24 | moofbong leaves the room. | |
| 16:35:04 | kAworu leaves the room. | |
| 16:35:15 | kAworu enters the room. | |
| 16:36:18 | anteaya enters the room. | |
| 16:37:38 | rubuildius_ppc | Wilson Bilkovich: 2467d2b10; 2189 files, 7320 examples, 26112 expectations, 0 failures, 0 errors |
| 16:38:49 | chris2 enters the room. | |
| 16:40:19 | rubuildius_amd64 | Wilson Bilkovich: 2467d2b10; 2189 files, 7319 examples, 26077 expectations, 2 failures, 2 errors; http://rafb.net/p/16ybOw87.html |
| 16:41:26 | Defiler | ugh, we really need to sync up the CI specs |
| 16:42:36 | mernen leaves the room. | |
| 16:42:44 | mernen enters the room. | |
| 16:46:13 | anonuser | rue, thanks. |
| 16:59:02 | Defiler | He and the engineers at Gemstone have gotten the full Ruby language running on the Gemstone VM in just three months. |
| 16:59:10 | Defiler | Ugh.. having difficulty agreeing with that choice of words, chad =( |
| 17:03:59 | Defiler | Maglev is good for the Ruby ecosystem just as MRI/YARV, Macruby, JRuby, and IronRuby are good for the Ruby ecosystem. |
| 17:04:09 | Defiler | Notice anybody missing from that list? Ooh I should stop reading this article |
| 17:09:56 | dbussink | Defiler: which article? |
| 17:10:59 | anonuser | Defiler, I just wish we knew what the target audience of Gemstone was |
| 17:12:17 | rue | The paying audience :) |
| 17:13:14 | Defiler | dbussink: http://www.chadfowler.com/2008/6/5/maglev |
| 17:14:18 | dbussink | Defiler: he did include rubinius is the paragraph before it though |
| 17:14:52 | ch0wda enters the room. | |
| 17:17:12 | yugui leaves the room. | |
| 17:18:47 | twbray enters the room. | |
| 17:21:20 | twbray leaves the room. | |
| 17:29:52 | jimbarnett leaves the room. | |
| 17:30:22 | JonathanT enters the room. | |
| 17:32:33 | twbray enters the room. | |
| 17:40:51 | jimbarnett enters the room. | |
| 17:44:19 | twbray leaves the room. | |
| 17:48:37 | enebo leaves the room. | |
| 17:52:00 | lstoll leaves the room. | |
| 18:01:35 | ShayArnett enters the room. | |
| 18:10:01 | ch0wda leaves the room. | |
| 18:17:06 | cezarsa enters the room. | |
| 18:21:37 | thehcdreamer leaves the room. | |
| 18:25:25 | trythil enters the room. | |
| 18:30:08 | atmos leaves the room. | |
| 18:30:34 | atmos enters the room. | |
| 18:34:01 | lopex enters the room. | |
| 18:34:46 | fbuilesv | is there any reason for Symbol not implement to_i yet? |
| 18:35:34 | thehcdreamer enters the room. | |
| 18:39:10 | jp_tix | :1 ? |
| 18:39:38 | jp_tix | what's the use case? |
| 18:40:37 | jp_tix | uh, :'1'? |
| 18:40:55 | fbuilesv | jp_tix: leaving aside compatibility, do stuff like trap(:INT) |
| 18:41:44 | dbussink | wycats: can i bother you with a short dm question? |
| 18:41:49 | jp_tix | hmm, i don't even understand :'1'.to_i on MRI |
| 18:42:07 | jp_tix | seems to return the first five digits from the object id |
| 18:42:12 | jp_tix | or something |
| 18:42:19 | dbussink | fbuilesv: there is, because it's pretty arbitraty |
| 18:42:30 | dbussink | fbuilesv: we've had some discussion about it here |
| 18:42:40 | mjwhitt enters the room. | |
| 18:42:59 | fbuilesv | dbussink: let me check the logs, could help to fix this: http://rubinius.lighthouseapp.com/projects/5089/tickets/601 |
| 18:44:09 | fbuilesv | the socket error won't happen on os x but it'll still complain about not finding Symbol#to_i |
| 18:44:34 | brixen | we don't support using fixnums as symbols |
| 18:44:38 | brixen | no will we ever |
| 18:46:36 | fbuilesv | brixen: the issue's not using the number as the symbol but the conversion to integer, for support at least. |
| 18:47:03 | brixen | but what does it do with the int after it converts it |
| 18:47:16 | brixen | I'm guessing it doesn't just do it for fun ;) |
| 18:48:14 | stepheneb enters the room. | |
| 18:48:36 | Defiler | It didn't make any sense to implement one side of a two-way API |
| 18:48:42 | cezarsa | from mri rdoc: "sym.to_i => fixnum: Returns an integer that is unique for each symbol within a particular execution of a program." |
| 18:48:43 | chopmo enters the room. | |
| 18:48:44 | Defiler | Like having send but not receive |
| 18:48:57 | cezarsa | returning __id__ wouldn't be enough? |
| 18:49:18 | Defiler | I guess it would, yeah |
| 18:49:24 | Defiler | Might as well define it that way |
| 18:49:34 | shoe | I once had a use for Symbol#to_i... It gave me consistent sort-order for symbols, and even though it wasn't platform-independent, it suited my purpose. |
| 18:50:28 | shoe | in MRI, a symbol will always #to_i the same Fixnum. |
| 18:50:30 | chopmo | Hi all. I'm having trouble running a clean build of rubinius on a MacBook Pro: http://pastie.org/210801 |
| 18:50:41 | chopmo | Does that ring a bell with anyone? TIA. |
| 18:53:27 | trythil leaves the room. | |
| 18:53:47 | octopod enters the room. | |
| 18:56:05 | brixen | chopmo: unfortunately, pastie is having a moment |
| 18:56:19 | brixen | chopmo: as soon as it loads, I might have some feedback :) |
| 18:56:36 | chopmo | Works for me right now :-) |
| 18:56:45 | chopmo | This may be easier to read: http://pastie.org/210801.txt |
| 18:57:08 | chris2 leaves the room. | |
| 18:57:08 | brixen | chopmo: you could paste here: http://rafb.net/paste/ |
| 18:57:36 | brixen | chopmo: you must be in the special sector of the universe that pastie likes at the moment |
| 18:57:58 | chopmo | Yeah - place called Denmark :) |
| 18:58:02 | chopmo | http://rafb.net/p/IYmWnS43.html |
| 18:58:37 | brixen | hmm, and how did you get to this unfortunate exception? what command? |
| 18:59:14 | chopmo | Wait, I'm sorry, it's working now. I thought I'd done a *clean* rebuild, but apparently not. |
| 18:59:23 | brixen | ahh cool |
| 18:59:38 | chopmo | I think I missed "clean:rbc" |
| 18:59:49 | brixen | rake clean build works well for me |
| 18:59:57 | chopmo | cool, thanks |
| 19:00:14 | qwert666_ enters the room. | |
| 19:00:16 | brixen | you typically won't need that, just rake (rake build) is fine |
| 19:00:37 | brixen | if you get really messed up, rake distclean build :) |
| 19:01:36 | fbuilesv | actually I think the issue's inside trap, not with the to_i |
| 19:02:06 | fbuilesv | MRI's trap can receive a symbol and return the string from it and trap that, so :INT => "INT" and that'd work |
| 19:02:20 | chopmo | OK, I see. By the way, the "common build problems" page mentions a "pristine" rake task, but that seems to be outdated. |
| 19:02:34 | brixen | chopmo: ok, I'll update that |
| 19:08:25 | enebo enters the room. | |
| 19:12:50 | wycats | dbussink: yessir |
| 19:13:38 | rue | brixen: There? |
| 19:14:19 | stepheneb_ enters the room. | |
| 19:15:14 | benny enters the room. | |
| 19:16:19 | brixen | rue: yah |
| 19:16:56 | m7d enters the room. | |
| 19:17:13 | fbuilesv | would you mind if I push http://rafb.net/p/1zqO2O32.html to forget about that to_i stuff then? The issue wasn't there |
| 19:17:16 | rue | brixen: http://pastie.org/210814 |
| 19:17:57 | brixen | fbuilesv: seems sane to me |
| 19:17:58 | m7d leaves the room. | |
| 19:18:15 | brixen | rue: pastie no workie for me |
| 19:19:47 | rue | Timing out here too |
| 19:20:26 | qwert666 leaves the room. | |
| 19:21:28 | rue | Better |
| 19:21:52 | rue | brixen: Reattempt |
| 19:22:02 | brixen | EREATTEMPTFAILED :) |
| 19:22:48 | anonuser | pastie, seems to be working now |
| 19:23:02 | brixen | y'all just like rubbing it in huh? |
| 19:23:04 | brixen | :P |
| 19:23:19 | brixen | there's a pastie blackout in the pacific NW |
| 19:23:49 | rue | Could be |
| 19:23:49 | brixen | pastie should host with engine yard |
| 19:23:55 | anonuser | Ah, I'm south east so it's all good here. |
| 19:24:34 | evan | morning |
| 19:24:50 | brixen | morning evan |
| 19:24:57 | evan | if anyone is curious |
| 19:24:58 | evan | http://www.ccs.neu.edu/scheme/pubs/stackhack4.html |
| 19:25:15 | evan | that paper details a very similar technique i'm using to convert our bytecode into LLVM |
| 19:25:24 | evan | they break the chunks into seperate funcitons |
| 19:25:36 | boyscout | 1 commit by Federico Builes |
| 19:25:37 | boyscout | * Converts symbols to strings inside Kernel#trap to process them as normal; 2f32660 |
| 19:25:44 | evan | where as I have them all in one function, and use a dispatch table at the top to move between chunks |
| 19:26:00 | fbuilesv | boyscout: normal strings :P |
| 19:26:15 | evan | 2nd paragraph of step 4 indicates they could have done the same |
| 19:26:21 | brixen | sweet |
| 19:26:36 | brixen | fbuilesv: commit summary line < 67 chars :P |
| 19:26:58 | brixen | or 72 |
| 19:27:04 | fbuilesv | brixen: I know, usually failt at it :P |
| 19:27:10 | brixen | heh |
| 19:27:18 | evan | also |
| 19:27:22 | evan | id2name is deprecated |
| 19:27:24 | evan | use #to_s |
| 19:27:27 | fbuilesv | ouch |
| 19:27:30 | fbuilesv | let me fix that |
| 19:28:39 | krisps enters the room. | |
| 19:29:12 | boyscout | 1 commit by Federico Builes |
| 19:29:13 | boyscout | * Replace id2name (deprecated) with to_s in signal.rb; 0ac8d99 |
| 19:30:17 | rue | < 67 now? Even tilman would not demand it to be less than 73 characters :) |
| 19:30:24 | evan | :) |
| 19:30:27 | Defiler | "Added spec for 0**-1 to return Infinity." |
| 19:30:31 | Defiler | Ruby is wild times |
| 19:31:29 | brixen | rue: using git says 72, I thought it was less |
| 19:32:13 | fbuilesv | Defiler: shouldn't 0**-1 => 1/ 0 **1 => ZeroDivisionError? |
| 19:32:55 | brixen | Defiler: ruby is crazy, but apparently parsing webrick is equivalent to parsing all ruby syntax ;) |
| 19:33:11 | brixen | Defiler: oh the ignorance under which we labor |
| 19:33:30 | octopod leaves the room. | |
| 19:33:30 | mjwhitt leaves the room. | |
| 19:33:30 | anteaya leaves the room. | |
| 19:33:30 | michaellatta_ leaves the room. | |
| 19:33:30 | sr leaves the room. | |
| 19:33:30 | Cosmos95 leaves the room. | |
| 19:33:30 | Yurik leaves the room. | |
| 19:33:30 | fork_ leaves the room. | |
| 19:33:30 | lypanov leaves the room. | |
| 19:33:30 | zenspider leaves the room. | |
| 19:33:35 | brixen | I should have just copy-pasted webrick into spec/ruby/1.8/language |
| 19:36:00 | sr enters the room. | |
| 19:36:06 | lypanov enters the room. | |
| 19:36:15 | evan | brixen: now now, no need to get fussy :) |
| 19:36:21 | brixen | hehe |
| 19:37:09 | rue | Whoa |
| 19:37:14 | brixen | nerf-bats duels with rubyspec emblazon on them |
| 19:37:33 | rue | They just applied a patch to Ruby from Moonwolf :D |
| 19:37:48 | stepheneb leaves the room. | |
| 19:38:02 | brixen | good lord, checkout #ruby-core |
| 19:38:43 | brixen | they just rolled out about a dozen new patchlevels across versions |
| 19:38:57 | rue | brixen: Try again, I re-routed some of the traffic to the Information County Highways |
| 19:39:26 | rue | brixen: Oh, the same ones on #jruby? |
| 19:39:56 | brixen | rue: finally loaded |
| 19:40:02 | brixen | rue: one sec.. |
| 19:40:42 | michaellatta enters the room. | |
| 19:41:49 | zenspider enters the room. | |
| 19:42:00 | brixen | rue: http://rafb.net/p/cLJDuE17.html |
| 19:43:25 | zenspider leaves the room. | |
| 19:43:27 | octopod enters the room. | |
| 19:43:27 | mjwhitt enters the room. | |
| 19:43:27 | anteaya enters the room. | |
| 19:43:27 | michaellatta_ enters the room. | |
| 19:43:27 | Cosmos95 enters the room. | |
| 19:43:27 | fork_ enters the room. | |
| 19:43:27 | zenspider enters the room. | |
| 19:43:39 | zenspider leaves the room. | |
| 19:43:58 | zenspider enters the room. | |
| 19:44:50 | rubuildius_amd64 | Federico Builes: 0ac8d999a; 2189 files, 7319 examples, 26077 expectations, 2 failures, 2 errors; http://rafb.net/p/dDptGK97.html |
| 19:45:19 | brixen | rue: so, what you wrote makes sense |
| 19:45:36 | brixen | rue: unfortunately, 1.8.7 ensures that changes will occur in patchlevels |
| 19:45:56 | brixen | I like the idea of making RUBY_VERSION contain the patchlevel explicitly, but I'd leave out the 'p' |
| 19:46:01 | evan | like the 110 patch level craziness |
| 19:46:04 | brixen | 1.8.6.114 is sane enough |
| 19:46:08 | evan | or whatever one completely busted rexml |
| 19:46:12 | brixen | evan: yeah |
| 19:46:16 | dschn enters the room. | |
| 19:46:21 | brixen | the ruby version is just a mess now |
| 19:46:34 | evan | right |
| 19:46:42 | evan | no one can depend on what will be in ANY version change now. |
| 19:46:46 | brixen | rue: and if you want an array, I think split('.') is enough |
| 19:46:58 | rubuildius_ppc | Federico Builes: 0ac8d999a; 2189 files, 7320 examples, 26112 expectations, 0 failures, 0 errors |
| 19:46:59 | rubuildius_ppc | Federico Builes: 2f3266024; 2189 files, 7320 examples, 26112 expectations, 0 failures, 0 errors |
| 19:47:23 | brixen | rue: what I really dislike is having to pull in rbconfig to accurately get the OS |
| 19:47:35 | brixen | that should go into RUBY_PLATFORM somehow |
| 19:48:54 | evan | i'm going to go get some food |
| 19:48:56 | evan | bbiab. |
| 19:49:14 | rue | brixen: `RUBY_VERSION.split('.').map {|s| s.to_i }`, using the Array gives `RUBY_VERSION.join '.'` |
| 19:49:37 | brixen | yeah |
| 19:49:51 | brixen | well, if you put it like that, I suppose another const would be in order :P |
| 19:49:54 | fork_ leaves the room. | |
| 19:49:54 | Cosmos95 leaves the room. | |
| 19:49:54 | michaellatta_ leaves the room. | |
| 19:49:54 | mjwhitt leaves the room. | |
| 19:49:54 | anteaya leaves the room. | |
| 19:49:54 | octopod leaves the room. | |
| 19:50:24 | fbuilesv | mmm, why's rubuildus amd64 runnign that old hash spec? |
| 19:50:44 | brixen | fbuilesv: haven't synced the CI specs yet |
| 19:50:54 | brixen | there's a couple big problems I have to address first |
| 19:51:03 | Yurik enters the room. | |
| 19:51:06 | fbuilesv | brixen: cool, but then why's ppc running fine? |
| 19:51:14 | fbuilesv | hand sync? |
| 19:51:23 | brixen | no, just doesn't fail on that platform |
| 19:51:56 | jp_tix leaves the room. | |
| 19:51:59 | fbuilesv | I see, didn't think that sort would be dependo n the platform |
| 19:52:00 | wmorgan leaves the room. | |
| 19:52:15 | rue | brixen: Plus you can use <=> on the Arrays |
| 19:52:31 | wmorgan enters the room. | |
| 19:52:32 | brixen | rue: true, what would that const name be? |
| 19:53:58 | rue | I would actually just replace it and make a RUBY_VERSION_STRING but could give it some name too I suppose |
| 19:54:44 | mjwhitt enters the room. | |
| 19:54:44 | anteaya enters the room. | |
| 19:54:44 | Cosmos95 enters the room. | |
| 19:54:44 | fork_ enters the room. | |
| 19:54:51 | rue | RUBY_VERSION_{NUMBER,DATA,INFO}, something like that |
| 19:54:55 | brixen | well, I wouldn't replace it, since way too much code will expect RUBY_VERSION to be a string |
| 19:54:55 | anteaya leaves the room. | |
| 19:55:44 | anteaya enters the room. | |
| 19:55:45 | brixen | could make it a special const, so RUBY_VERSION => '1.8.6.111'; RUBY_VERSION.to_a => [1,8,6,111] |
| 19:55:51 | brixen | but that probably won't fly |
| 19:56:08 | rue | Nah, might as well do a separate one |
| 19:56:34 | brixen | class RubyVersion; def to_s ..; def to_a .. |
| 19:57:21 | brixen | RUBY_VERSION.{major|minor|teeny|tiny|patch} |
| 19:57:23 | rue | I suppose it would be easier to keep updated |
| 19:57:44 | brixen | just needs to behave like a String in most circumstances |
| 19:58:09 | benburkert_ leaves the room. | |
| 19:58:09 | jp_tix enters the room. | |
| 19:58:13 | rue | Well, I shall give both options. I have no idea which they would be more receptive to |
| 19:58:17 | brixen | I'm strongly opposed to the idea of making RUBY_VERSION a hash though |
| 19:58:28 | rue | Yeah, that is pointless |
| 19:58:34 | rue | It has an ordering |
| 19:58:47 | brixen | yeah |
| 19:59:05 | rue | brixen: Re: RUBY_PLATFORM, I think we should specifically _not_ constrain it too much |
| 19:59:20 | brixen | yeah, I see that perspective |
| 19:59:38 | brixen | at the same time, if we could convince on the RUBY_VERSION is an object idea |
| 19:59:45 | brixen | we could do the same for RUBY_PLATORM |
| 19:59:49 | brixen | er PLATFORM |
| 19:59:57 | brixen | and it could be much more useful |
| 20:00:01 | rue | My approach would be to do the minimum possible needed to avoid ambiguity |
| 20:00:37 | brixen | R_P.{os|vendor|os_version|library|...} |
| 20:00:45 | brixen | and you could provide what you wish |
| 20:00:54 | brixen | but, we should definitely have some basic fields |
| 20:01:09 | brixen | everything runs on an OS |
| 20:01:18 | rue | Regexps give that power anyway |
| 20:01:36 | brixen | you could regexp on the string rep, sure |
| 20:01:55 | brixen | but then you'd have these standard regexp out there, why not put those into the object as fields? |
| 20:02:18 | brixen | again, the rubyspec guards illustrate the issues involved here |
| 20:03:34 | rue | I dunno, I just think we should require as little as possible. The user can then do `do_some_complex_jvm_version_detection if R_P =~ /java/` |
| 20:03:56 | Fullmoon leaves the room. | |
| 20:03:56 | brixen | the RUBY_PLATFORM object would just return '' if you ask for something it doesn't provide |
| 20:04:07 | elight enters the room. | |
| 20:04:23 | brixen | but I think that there is a good case for some standard detection |
| 20:04:33 | brixen | if there weren't, the rubyspec guards would be pointless |
| 20:04:40 | RyanTM leaves the room. | |
| 20:04:49 | brixen | they exist precisely because those distinctions need to be name for ruby behavior |
| 20:04:56 | rue | My only reason to avoid that is the following question: |
| 20:05:08 | brixen | s/name/made/ |
| 20:05:14 | rue | What is the method name that returns "java" from the platform |
| 20:05:31 | brixen | TBD, but the idea is concrete |
| 20:05:37 | RyanTM enters the room. | |
| 20:05:38 | brixen | jvm, clr, gemstone/s, etc |
| 20:05:53 | brixen | the object is there, what to refer to it as is the question |
| 20:06:03 | brixen | 'os' is clear |
| 20:06:08 | brixen | 'vendor' is pretty clear |
| 20:07:02 | rue | Essentially, I think the Java folks generally view the platform as "java" with a little asterisk for the platform used whereas we would tend to view the platform as arch + OS with a little asterisk for the language used |
| 20:07:05 | brixen | let's say the identifier is 'subsystem', then R_P.subsystem => 'java' |
| 20:07:32 | brixen | yeah, I'd agree with that |
| 20:07:49 | brixen | but we don't have to assign relative importance, just name the thing so you can get to it |
| 20:08:49 | jazen enters the room. | |
| 20:10:22 | rue | Yeah. It seems like a banal issue but unless you have a good idea, I think we would be better off sidestepping it for now |
| 20:10:46 | brixen | well, I really like turning these into objects |
| 20:10:58 | brixen | and for R_P, it should return '' for anything it doesn't know |
| 20:11:11 | brixen | R_P.who_shot_jfk => 'cia' |
| 20:11:14 | brixen | oops |
| 20:11:26 | brixen | R_P.who_is_the_best_vm => 'rubinius' |
| 20:11:38 | brixen | ack, this object isn't working like I envisioned :P |
| 20:12:02 | brixen | R_P.is_microsoft_dead => '' |
| 20:12:05 | brixen | ahh, there we go |
| 20:12:18 | rue | See? You get problems with objects ;) |
| 20:12:23 | brixen | heh |
| 20:12:27 | boyscout | 2 commits by Cezar Sa Espinola |
| 20:12:28 | boyscout | * Adding LONG2NUM and NUM2LONG to subtend.; 50bb348 |
| 20:12:29 | boyscout | * Adding RDATA and DATA_PTR to subtend, with specs.; 04b9851 |
| 20:12:51 | rue | I suppose it could be made transparent enough at least. The C side might be an issue with MRI |
| 20:13:01 | brixen | yeah, true |
| 20:13:04 | brixen | but not much |
| 20:13:14 | brixen | you could code this in C right quick actually |
| 20:13:29 | brixen | #to_str, #method_missing |
| 20:13:33 | fork_ leaves the room. | |
| 20:14:00 | brixen | #to_a might not work well, but you don't need it for R_P |
| 20:14:26 | brixen | grumbles about Ruby written in C :P |
| 20:16:32 | benburkert enters the room. | |
| 20:16:44 | dbussink | hmm, who's cezar here? |
| 20:16:57 | rue | --> cezarsa |
| 20:17:05 | dbussink | dog! |
| 20:17:06 | cezarsa | yep |
| 20:17:07 | dbussink | doh! |
| 20:17:13 | rue | Bastard! |
| 20:17:16 | brixen | hah |
| 20:17:30 | brixen | dbussink: did you mean dawg! |
| 20:18:08 | anteaya leaves the room. | |
| 20:18:08 | Cosmos95 leaves the room. | |
| 20:18:08 | mjwhitt leaves the room. | |
| 20:18:53 | dbussink | cezarsa: do you mind if i complain about some specs for subtend you appear to have written? |
| 20:19:11 | dbussink | some warnings i get on 64 bit |
| 20:19:42 | cezarsa | yeah i saw then, i think the problem is the typedef of VALUE |
| 20:19:51 | cezarsa | on mri it's a unsigned long |
| 20:20:04 | cezarsa | on rubinius it's a void* |
| 20:22:05 | cezarsa | and I was too lazy to change it and correct all the other warnings that would appear on ruby.c :) |
| 20:22:18 | dctanner enters the room. | |
| 20:22:28 | rue | I am futzing around with VALUE currently too |
| 20:22:34 | rue | dbussink: What were you seeing? |
| 20:23:47 | dbussink | http://pastie.org/210836 |
| 20:24:28 | anteaya enters the room. | |
| 20:24:28 | mjwhitt enters the room. | |
| 20:24:28 | Cosmos95 enters the room. | |
| 20:25:44 | rubuildius_ppc | Cezar Sa Espinola: 50bb34830; 2189 files, 7322 examples, 26114 expectations, 0 failures, 0 errors |
| 20:28:49 | cezarsa | MRI is confuse, rb_const_defined and rb_respond_to return a Qtrue/Qfalse inside a int, rubinius was formerly returning a VALUE then I changed both functions to return a int, just like MRI |
| 20:29:56 | dc_ leaves the room. | |
| 20:29:56 | RyanTM leaves the room. | |
| 20:29:56 | krisps leaves the room. | |
| 20:29:56 | mernen leaves the room. | |
| 20:29:56 | imajes leaves the room. | |
| 20:29:56 | jacen_ leaves the room. | |
| 20:29:56 | dbussink leaves the room. | |
| 20:29:56 | Illocution leaves the room. | |
| 20:30:09 | dc_ enters the room. | |
| 20:30:09 | RyanTM enters the room. | |
| 20:30:09 | krisps enters the room. | |
| 20:30:09 | mernen enters the room. | |
| 20:30:09 | imajes enters the room. | |
| 20:30:09 | jacen_ enters the room. | |
| 20:30:09 | Illocution enters the room. | |
| 20:30:09 | dbussink enters the room. | |
| 20:30:14 | rubuildius_amd64 | Cezar Sa Espinola: 50bb34830; 2189 files, 7321 examples, 26079 expectations, 2 failures, 2 errors; http://rafb.net/p/xXjADI66.html |
| 20:30:44 | cezarsa | should I change then to return a VALUE again? that would get rid of the warnings but the functions signature would be different to MRI's |
| 20:30:59 | cezarsa | s/then/them |
| 20:31:49 | rue | We can just fix the spec extension. It should be wrapping the int into objects |
| 20:34:30 | cezarsa | actually the ints should not be wrapped, they are already VALUEs (Qtrue/Qfalse) |
| 20:35:46 | twbray enters the room. | |
| 20:36:33 | seydar enters the room. | |
| 20:37:20 | jacen_ leaves the room. | |
| 20:39:03 | jimbarnett leaves the room. | |
| 20:42:07 | benny leaves the room. | |
| 20:42:07 | sholden leaves the room. | |
| 20:42:07 | cschneid leaves the room. | |
| 20:42:07 | joachimm leaves the room. | |
| 20:42:07 | rue leaves the room. | |
| 20:42:07 | shoe leaves the room. | |
| 20:42:07 | Vagabond leaves the room. | |
| 20:42:07 | Jzalae leaves the room. | |
| 20:42:07 | ixx leaves the room. | |
| 20:42:07 | Chrononaut leaves the room. | |
| 20:42:07 | dmpk2k leaves the room. | |
| 20:42:07 | TheProkrammer leaves the room. | |
| 20:42:36 | benny enters the room. | |
| 20:42:36 | sholden enters the room. | |
| 20:42:36 | cschneid enters the room. | |
| 20:42:36 | joachimm enters the room. | |
| 20:42:36 | rue enters the room. | |
| 20:42:36 | shoe enters the room. | |
| 20:42:36 | Vagabond enters the room. | |
| 20:42:36 | Jzalae enters the room. | |
| 20:42:36 | dmpk2k enters the room. | |
| 20:42:36 | ixx enters the room. | |
| 20:42:36 | TheProkrammer enters the room. | |
| 20:42:36 | Chrononaut enters the room. | |
| 20:45:30 | joachimm leaves the room. | |
| 20:45:30 | benny leaves the room. | |
| 20:45:30 | dmpk2k leaves the room. | |
| 20:45:30 | Vagabond leaves the room. | |
| 20:45:30 | Chrononaut leaves the room. | |
| 20:45:30 | Jzalae leaves the room. | |
| 20:45:30 | ixx leaves the room. | |
| 20:45:30 | cschneid leaves the room. | |
| 20:45:30 | TheProkrammer leaves the room. | |
| 20:45:30 | sholden leaves the room. | |
| 20:45:30 | shoe leaves the room. | |
| 20:45:30 | rue leaves the room. | |
| 20:48:17 | benny enters the room. | |
| 20:48:17 | sholden enters the room. | |
| 20:48:17 | cschneid enters the room. | |
| 20:48:17 | joachimm enters the room. | |
| 20:48:17 | rue enters the room. | |
| 20:48:17 | shoe enters the room. | |
| 20:48:17 | Vagabond enters the room. | |
| 20:48:17 | Jzalae enters the room. | |
| 20:48:17 | dmpk2k enters the room. | |
| 20:48:17 | ixx enters the room. | |
| 20:48:17 | TheProkrammer enters the room. | |
| 20:48:17 | Chrononaut enters the room. | |
| 20:51:20 | rue | Well hooray for the internet |
| 20:53:17 | joachimm leaves the room. | |
| 20:53:17 | benny leaves the room. | |
| 20:53:17 | dmpk2k leaves the room. | |
| 20:53:17 | Vagabond leaves the room. | |
| 20:53:17 | Chrononaut leaves the room. | |
| 20:53:17 | Jzalae leaves the room. | |
| 20:53:17 | ixx leaves the room. | |
| 20:53:17 | cschneid leaves the room. | |
| 20:53:17 | TheProkrammer leaves the room. | |
| 20:53:17 | sholden leaves the room. | |
| 20:53:17 | shoe leaves the room. | |
| 20:53:17 | rue leaves the room. | |
| 20:53:52 | benny enters the room. | |
| 20:53:52 | sholden enters the room. | |
| 20:53:52 | cschneid enters the room. | |
| 20:53:52 | joachimm enters the room. | |
| 20:53:52 | rue enters the room. | |
| 20:53:52 | shoe enters the room. | |
| 20:53:52 | Vagabond enters the room. | |
| 20:53:52 | Jzalae enters the room. | |
| 20:53:52 | dmpk2k enters the room. | |
| 20:53:52 | ixx enters the room. | |
| 20:53:52 | TheProkrammer enters the room. | |
| 20:53:52 | Chrononaut enters the room. | |
| 20:59:36 | joachimm leaves the room. | |
| 20:59:36 | benny leaves the room. | |
| 20:59:36 | dmpk2k leaves the room. | |
| 20:59:36 | Vagabond leaves the room. | |
| 20:59:36 | Chrononaut leaves the room. | |
| 20:59:36 | Jzalae leaves the room. | |
| 20:59:36 | ixx leaves the room. | |
| 20:59:36 | cschneid leaves the room. | |
| 20:59:36 | TheProkrammer leaves the room. | |
| 20:59:36 | sholden leaves the room. | |
| 20:59:36 | shoe leaves the room. | |
| 20:59:36 | rue leaves the room. | |
| 21:00:01 | benny enters the room. | |
| 21:00:01 | sholden enters the room. | |
| 21:00:01 | cschneid enters the room. | |
| 21:00:01 | joachimm enters the room. | |
| 21:00:01 | rue enters the room. | |
| 21:00:01 | shoe enters the room. | |
| 21:00:01 | Vagabond enters the room. | |
| 21:00:01 | Jzalae enters the room. | |
| 21:00:01 | dmpk2k enters the room. | |
| 21:00:01 | ixx enters the room. | |
| 21:00:01 | TheProkrammer enters the room. | |
| 21:00:01 | Chrononaut enters the room. | |
| 21:00:48 | webmat enters the room. | |
| 21:04:05 | antares_ enters the room. | |
| 21:07:07 | webmat leaves the room. | |
| 21:07:07 | joachimm leaves the room. | |
| 21:07:07 | benny leaves the room. | |
| 21:07:07 | dmpk2k leaves the room. | |
| 21:07:07 | Vagabond leaves the room. | |
| 21:07:07 | Chrononaut leaves the room. | |
| 21:07:07 | Jzalae leaves the room. | |
| 21:07:07 | ixx leaves the room. | |
| 21:07:07 | cschneid leaves the room. | |
| 21:07:07 | TheProkrammer leaves the room. | |
| 21:07:07 | sholden leaves the room. | |
| 21:07:07 | shoe leaves the room. | |
| 21:07:07 | rue leaves the room. | |
| 21:07:36 | webmat enters the room. | |
| 21:07:36 | benny enters the room. | |
| 21:07:36 | sholden enters the room. | |
| 21:07:36 | cschneid enters the room. | |
| 21:07:36 | joachimm enters the room. | |
| 21:07:36 | rue enters the room. | |
| 21:07:36 | shoe enters the room. | |
| 21:07:36 | Vagabond enters the room. | |
| 21:07:36 | Jzalae enters the room. | |
| 21:07:36 | dmpk2k enters the room. | |
| 21:07:36 | ixx enters the room. | |
| 21:07:36 | TheProkrammer enters the room. | |
| 21:07:36 | Chrononaut enters the room. | |
| 21:08:06 | cezarsa | dbussink: do you have an avaliable 64 environment where you could test this patch: http://rafb.net/p/x2dh4F62.html ? |
| 21:08:23 | cezarsa | it does a "typedef unsigned long VALUE", and should get rid of the warnings |
| 21:10:40 | benburkert leaves the room. | |
| 21:10:48 | dbussink | cezarsa: yes, that seems to fix it |
| 21:10:57 | benburkert enters the room. | |
| 21:11:04 | dbussink | rb_require doesn't work yet, does it? |
| 21:11:11 | cezarsa | great, i'll push it then |
| 21:11:16 | cezarsa | not yet AFAIK |
| 21:11:41 | cezarsa | i think i'll take a look at it, see if I can figure out what's happening |
| 21:11:53 | twbray leaves the room. | |
| 21:12:07 | benburkert leaves the room. | |
| 21:12:41 | benburkert enters the room. | |
| 21:14:51 | benburkert leaves the room. | |
| 21:14:56 | benburkert enters the room. | |
| 21:16:51 | boyscout | 1 commit by Cezar Sa Espinola |
| 21:16:52 | boyscout | * Change VALUE's typedef to unsigned long, plus some subtend fixes.; 92129e6 |
| 21:16:58 | rue | cezarsa, dbussink: Keep it a pointer type, please |
| 21:17:07 | cezarsa | oops |
| 21:17:22 | cezarsa | I can revert it, but why rue? |
| 21:17:30 | dbussink | well, do we want to mimic mri behavior here or not? |
| 21:18:28 | joachimm leaves the room. | |
| 21:18:28 | benny leaves the room. | |
| 21:18:28 | dmpk2k leaves the room. | |
| 21:18:28 | Vagabond leaves the room. | |
| 21:18:28 | Chrononaut leaves the room. | |
| 21:18:28 | Jzalae leaves the room. | |
| 21:18:28 | ixx leaves the room. | |
| 21:18:28 | webmat leaves the room. | |
| 21:18:28 | cschneid leaves the room. | |
| 21:18:28 | TheProkrammer leaves the room. | |
| 21:18:28 | sholden leaves the room. | |
| 21:18:28 | shoe leaves the room. | |
| 21:18:28 | rue leaves the room. | |
| 21:19:00 | webmat enters the room. | |
| 21:19:00 | benny enters the room. | |
| 21:19:00 | sholden enters the room. | |
| 21:19:00 | cschn |