Show enters and exits. Hide enters and exits.
| 00:00:11 | drbrain | I can do lists in RDoc |
| 00:00:17 | rue | Should we look into annotations/docbooks format or something? |
| 00:00:18 | agardiner | actually, check out e.g. make_array |
| 00:00:36 | agardiner | this shows a nested array case |
| 00:00:49 | drbrain | rue: RDoc could output docbook format if you wrote the outputter |
| 00:01:19 | drbrain | ok, it makes a pretty picture |
| 00:01:43 | drbrain | I could do this with RDoc |
| 00:01:54 | drbrain | it supports nested lists |
| 00:02:29 | rue | Yes, but RDoc kinda sucks |
| 00:02:39 | rue | The lib, not the idea |
| 00:03:04 | drbrain | I made it at least 5 times better by fixing the namespacing |
| 00:03:16 | rue | Yeah |
| 00:04:08 | drbrain | (the fixed namespacing version is in our lib/) |
| 00:04:37 | nicksieger leaves the room. | |
| 00:05:15 | rue | ruby_parse does not preserve comments either, does it? |
| 00:05:58 | drbrain | ruby_parser? not yet |
| 00:06:09 | drbrain | it's planned |
| 00:06:16 | evan | there is a mode of grammar.y that does |
| 00:06:22 | rue | Ah, well there we go |
| 00:06:24 | evan | we just don't use it currently |
| 00:06:27 | drbrain | zenspider is making the lexer suck less |
| 00:06:34 | rue | That pretty much removes 50% of RDoc and IRB |
| 00:06:44 | evan | it puts all the comments in an array with their start line and column |
| 00:20:58 | drbrain | how is the opcode number maintained? |
| 00:21:09 | wmoxam leaves the room. | |
| 00:21:40 | agardiner | drbrain: that comes from the InstructionSet stuff in kernel/core/iseq.rb |
| 00:22:06 | drbrain | thanks |
| 00:23:05 | drbrain | I was thinking I could embed most of this .yaml information into a regular RDoc comment, and spruce it up afterward with a custom generated |
| 00:23:09 | drbrain | generator |
| 00:23:19 | agardiner | yeah, that could work |
| 00:23:42 | agardiner | just need something that could parse the stack rep and turn it into tables |
| 00:23:45 | drbrain | because putting the opcode in the RDoc is lame |
| 00:24:19 | drbrain | yeah, and I'm familiar enough with the RDoc formatting parts that I think I can do that |
| 00:24:50 | drbrain | why is there both operation and description? |
| 00:24:58 | drbrain | for make_array, description is just more verbose |
| 00:24:59 | agardiner | if you can do lists of lists, you can handle the structured representation |
| 00:25:07 | agardiner | the operation is a one-liner |
| 00:25:21 | agardiner | it appears as a tooltip if you hover over an op in the index |
| 00:25:39 | drbrain | ok |
| 00:25:49 | agardiner | the basic structure of the doc was ripped off of the JVM opcode doc |
| 00:26:31 | twbray leaves the room. | |
| 00:28:13 | Arjen_ leaves the room. | |
| 00:28:28 | drbrain | ok, I'll play with make_array a bit and see what happens |
| 00:29:00 | agardiner | yeah, if you can do make_array and make_hash, you should be golden |
| 00:29:10 | drbrain | cool |
| 00:29:47 | drbrain | then the documentation will all be in one place, which will be excellent |
| 00:30:07 | agardiner | yeah, that would be nice |
| 00:31:02 | drbrain | depending on how this turns out, we may get "normal" rdoc for a regular run |
| 00:31:22 | drbrain | and the good stuff with lots of pretty for a custom run |
| 00:32:04 | agardiner | that would be super-cool! |
| 00:32:38 | drbrain | I'm not sure if I can make it do the pretty run in a "normal" rdoc run just yet |
| 00:38:42 | agardiner | well, i'm off now... |
| 00:38:49 | agardiner | going go-karting and then getting pissed! (bucks do) |
| 00:39:01 | agardiner | later! |
| 00:39:22 | evan | enjoy! |
| 00:39:27 | agardiner leaves the room. | |
| 00:39:33 | headius leaves the room. | |
| 00:45:19 | wifelette leaves the room. | |
| 01:01:12 | kofno leaves the room. | |
| 01:10:02 | Defiler | evan: Lua source code is pretty interesting. I think I am going to read all of it. |
| 01:10:25 | Defiler | evan: What surprises me so far is how similar most of it is to what we do.. despite the fact that Lua is so much faster than us |
| 01:10:25 | twbray enters the room. | |
| 01:10:56 | evan | Defiler: is the VM really faster? or is it that most of Lua's kernel is C functions |
| 01:11:03 | evan | ie, the kernel of Lua isn't written in Lua. |
| 01:11:13 | Defiler | That is a super question, and I intend to try to figure out the answer |
| 01:11:21 | Defiler | ..but yeah, I was asking myself that earlier |
| 01:11:39 | evan | you're reading the lua 5 source, yes? |
| 01:11:42 | cored leaves the room. | |
| 01:11:42 | Defiler | They appear to allocate the Lua stack almost exactly the way we do |
| 01:11:43 | Defiler | Yeah |
| 01:11:47 | evan | i've looked at the lua 4 source a few times |
| 01:11:54 | evan | ok, i'm going to read the 5 source |
| 01:11:57 | Defiler | I am reading the lua 5 and luajit source |
| 01:12:19 | Defiler | luajit is quite nice.. has some well-written comments, and stuff like this: http://luajit.org/coco_portability.html |
| 01:13:42 | evan | interestin.g |
| 01:14:06 | Defiler | Doesn't support MacOS64, sadly. :) |
| 01:14:19 | Defiler | ..but I am going to email the guy, because he knows his stuff |
| 01:15:06 | evan | oh.. ha! |
| 01:15:14 | evan | i had a src/lua-5.1 directory already |
| 01:15:15 | evan | :) |
| 01:15:24 | evan | seems i downloaded it at some opint. |
| 01:15:53 | Defiler | The DynASM library at this same site is interesting too |
| 01:16:26 | evan | i've looked briefly at luajit before |
| 01:17:00 | evan | oh yeah. |
| 01:17:11 | evan | lua is where I got the idea for STATE as the first argument to everything |
| 01:17:13 | evan | lua uses L |
| 01:17:14 | nicksieger enters the room. | |
| 01:17:14 | Defiler | evan: In particular, I am glad that this guy reminded me of Fibers on windows |
| 01:17:17 | lopex leaves the room. | |
| 01:17:27 | Defiler | because that will be the way to go with subtend on Win64, I suspect |
| 01:17:28 | evan | not that passing state as the 1st arg is very new |
| 01:18:13 | d2dchat leaves the room. | |
| 01:20:56 | zenspider | YAY!!! ruby_parser now stores comments on defs, defn, module, and class! |
| 01:21:50 | technomancy | sweet! |
| 01:22:04 | technomancy leaves the room. | |
| 01:22:25 | Defiler | zenspider: nice |
| 01:30:29 | evan | zenspider: once you commit those changes to p4 |
| 01:30:35 | evan | i might try and run ruby_parser under rbx |
| 01:31:42 | zenspider | evan: the fuck you will! that's all mine!! MINE! |
| 01:31:54 | evan | wrestles it out of zenspider's hands |
| 01:33:45 | zenspider | looks like I'm not checking in then. :P |
| 01:33:54 | zenspider | p4 protect remove evan |
| 01:33:59 | evan | poo on you. |
| 01:34:05 | zenspider | haha |
| 01:34:13 | zenspider | muahaha |
| 01:34:28 | zenspider | you can't take my fun away from me |
| 01:34:43 | zenspider | until... it doen't work and I can't debug it at least. :P |
| 01:34:47 | twbray leaves the room. | |
| 01:34:55 | evan | hehe |
| 01:39:35 | brixen | evan: return FALSE is still how we indicate failure in a primitive? or did that change? |
| 01:39:48 | evan | heh |
| 01:39:58 | evan | i've got a change i'm working on that reworks that completely. |
| 01:40:03 | brixen | ah, ok |
| 01:46:42 | evan | brixen: but if you want to fix something, go for it |
| 01:46:44 | evan | i'll just merge it in |
| 01:46:47 | evan | just do |
| 01:46:50 | evan | _ret = FALSE; |
| 01:46:51 | evan | break; |
| 01:47:03 | brixen | ok, might not need to |
| 01:47:10 | evan | either way, no prob. |
| 01:47:18 | evan | the new API has macros like |
| 01:47:18 | brixen | just wasn't seeing it and readme-dv still says do taht |
| 01:47:26 | evan | RET(), DONE(), FAIL() |
| 01:47:29 | brixen | nice |
| 01:47:46 | brixen | we're pulling the (_ = fixnum) stuff back into POP() ? |
| 01:47:50 | evan | yep |
| 01:47:52 | brixen | ok |
| 01:47:55 | evan | i've gotten rid of all that. |
| 01:47:57 | vintrepid enters the room. | |
| 01:47:59 | brixen | sweet |
| 01:48:03 | evan | self is also not on the stack |
| 01:48:05 | brixen | it was looking rather ragged in here |
| 01:48:07 | evan | it's at msg->recv |
| 01:48:11 | brixen | ahh |
| 01:48:19 | evan | which cleans up things a bit. |
| 01:48:26 | brixen | definitely |
| 01:48:51 | twshelton enters the room. | |
| 01:50:23 | brixen | gah, apple and their special shit |
| 01:50:32 | brixen | they add 20 bytes on the end of struct stat |
| 01:50:43 | brixen | and have different names for st_[amc]time |
| 01:50:50 | evan | really? ack. |
| 01:50:51 | brixen | but, gcc still resolves those names |
| 01:50:57 | brixen | yeah |
| 01:51:04 | evan | they're probably #define aliases |
| 01:51:05 | evan | ie |
| 01:51:16 | brixen | yep, I think so |
| 01:51:16 | evan | #define st_ctime apple_rocks_ctime |
| 01:51:37 | brixen | the suck is that the header file doesn't reflect the man page |
| 01:52:01 | brixen | I'm going to add the ability to give the struct an overall size |
| 01:52:10 | brixen | in StructGenerator |
| 01:52:46 | drbrain | brixen: st_[amc]time seems to not be POSIX |
| 01:52:50 | brixen | so the MemoryPointer is always the right size |
| 01:52:52 | drbrain | http://rafb.net/p/uTBVAZ12.html |
| 01:53:05 | drbrain | from FreeBSD 6's stat(2) |
| 01:53:21 | brixen | that says if _POSIX_SOURCE is not defined |
| 01:53:39 | drbrain | well, whichever way that goes |
| 01:53:43 | brixen | yeah, not sure |
| 01:53:50 | brixen | I remember st_mtime from way back |
| 01:53:56 | brixen | this st_mtimespec is new to me |
| 01:54:10 | brixen | either way, we just want the damn value :P |
| 01:54:50 | drbrain | I bet that POSIX allows for > 1 second of resolution for those fields |
| 01:55:10 | brixen | yeah |
| 01:55:22 | drbrain | so it's a struct timespec instead |
| 01:55:29 | brixen | yep |
| 01:55:31 | evan | ha |
| 01:55:33 | evan | er. |
| 01:55:34 | evan | ah |
| 01:55:37 | evan | thats the extra 2 bytes |
| 01:55:42 | evan | it's probably a timeval |
| 01:55:47 | brixen | well, it's a 8 byte value |
| 01:56:22 | evan | er. |
| 01:56:24 | evan | extra 20 bytes. |
| 01:57:34 | brixen | no, that's special stuff apple adds |
| 01:57:59 | evan | ok |
| 01:58:02 | brixen | at the end of the struct |
| 01:58:21 | brixen | the crappy thing is that I'm looking at the ubuntu man page for struct stat |
| 01:58:32 | brixen | it uses time_t st_atime, etc |
| 01:58:48 | brixen | anyway, I'm going to add the overall struct size thing |
| 01:58:54 | evan | ok |
| 01:58:58 | brixen | then the offsets seem to be generated ok |
| 01:59:20 | brixen | so, we can use just the common subset in the Stat < FFI::Struct |
| 01:59:43 | evan | zenspider: muhhah! I HAVE YOUR CHANGES |
| 02:07:44 | kofno enters the room. | |
| 02:13:28 | rue | Moo |
| 02:15:11 | evan | moo to you. |
| 02:18:47 | maxpenguin leaves the room. | |
| 02:22:42 | nicksieger leaves the room. | |
| 02:23:44 | rubyconsumer enters the room. | |
| 02:29:29 | vintrepid leaves the room. | |
| 02:29:42 | VVSiz_ enters the room. | |
| 02:30:43 | obvio171 enters the room. | |
| 02:33:31 | agile enters the room. | |
| 02:36:14 | VVSiz leaves the room. | |
| 02:36:44 | tongueroo_ enters the room. | |
| 02:37:40 | robinhoode | I guess I have to bug someone to get my patch reviewed: http://rubinius.lighthouseapp.com/projects/5089/tickets/306-bug-class-variables-not-available-thro ugh-modules |
| 02:37:47 | djwhitt enters the room. | |
| 02:38:10 | robinhoode | Can't say it's the best patch, actually.. I'm inclined to clean it up |
| 02:39:19 | brixen | chinese new year eve dinner, bbl... |
| 02:41:13 | eventualbuddha leaves the room. | |
| 02:44:34 | ezmobius leaves the room. | |
| 02:48:42 | obvio leaves the room. | |
| 02:49:52 | tlockney_ enters the room. | |
| 02:54:48 | squeegy enters the room. | |
| 02:55:41 | hornbeck leaves the room. | |
| 02:55:51 | hornbeck enters the room. | |
| 02:57:14 | _mutle enters the room. | |
| 03:00:24 | tlockney leaves the room. | |
| 03:01:25 | mutle leaves the room. | |
| 03:03:27 | MenTaLguY enters the room. | |
| 03:04:42 | antares | robinhoode, looks good enough to me. I have no commit bit though but had a look. |
| 03:05:00 | robinhoode | antares, Thanks |
| 03:06:29 | tongueroo leaves the room. | |
| 03:08:04 | KirinDave leaves the room. | |
| 03:22:23 | _ADS enters the room. | |
| 03:23:01 | tongueroo enters the room. | |
| 03:23:54 | antares leaves the room. | |
| 03:24:06 | _ADS | where is ucontext.h? |
| 03:24:34 | tongueroo leaves the room. | |
| 03:26:04 | _ADS | I found PortableUContext.h, but state.h includes "context.h". |
| 03:29:06 | Defiler | ucontext.h is provided by POSIX operating systems |
| 03:29:14 | macournoyer enters the room. | |
| 03:29:19 | _ADS | but not cygwin apparently |
| 03:29:19 | Defiler | context.h is unrelated, and is part of Rubinius |
| 03:29:53 | Defiler | Cygwin is going to be a problem |
| 03:29:59 | Defiler | Because it doesn't provide ucontext |
| 03:30:43 | Defiler | We probably need to develop a replacement technique using longjmp for systems like that, but that will take a while |
| 03:31:02 | headius enters the room. | |
| 03:32:01 | _ADS | does Rubinus acually use the POSIX context funcs? |
| 03:32:16 | Defiler | Yes |
| 03:32:26 | Defiler | It is how our C API is implemented |
| 03:32:31 | Defiler | So it is important |
| 03:32:45 | Defiler | You might be able to get it running under UWIN, though, since I know it has full-on POSIX support |
| 03:32:49 | Defiler | http://www.research.att.com/sw/tools/uwin/ |
| 03:33:08 | Defiler | Though almost certainly we have Makefile bugs on systems like that |
| 03:33:46 | tongueroo enters the room. | |
| 03:34:28 | _ADS | hmm |
| 03:34:36 | Defiler | Once things are more stable, I am going to spend some time on Windows support. It is going to be hard, though |
| 03:34:48 | Defiler | Since a number of things are just totally different |
| 03:35:12 | Defiler | I suspect we are going to need to abstract out the ucontext stuff anyway.. right now it is expecting POSIX, though |
| 03:35:26 | _ADS | I know ... I've done some crossplatform work |
| 03:37:34 | Defiler | I guess what I am trying to say is.. getting Rubinius up on Cygwin or Win32 is going to be a challenge. It is cool that you are giving it a shot, but making it work is going to be new development, not just fixes or header changes |
| 03:37:52 | Defiler | Feel free to implement those things, though. :) |
| 03:39:15 | tongueroo_ leaves the room. | |
| 03:42:09 | nicksieger enters the room. | |
| 03:51:25 | tongueroo leaves the room. | |
| 03:53:09 | Judofyr leaves the room. | |
| 03:59:42 | enebo leaves the room. | |
| 03:59:55 | macournoyer leaves the room. | |
| 04:05:12 | wmoxam enters the room. | |
| 04:09:44 | GMFlash leaves the room. | |
| 04:09:49 | GMFlash enters the room. | |
| 04:32:52 | benburkert enters the room. | |
| 04:57:51 | twbray enters the room. | |
| 05:10:07 | ttmrichter enters the room. | |
| 05:11:53 | defunkt enters the room. | |
| 05:22:36 | MenTaLguY leaves the room. | |
| 05:28:00 | RyanTM leaves the room. | |
| 05:29:56 | RyanTM enters the room. | |
| 05:31:13 | wmoxam leaves the room. | |
| 05:32:14 | mediogre enters the room. | |
| 05:40:02 | _ADS leaves the room. | |
| 05:43:22 | rue | This is just ridiculous. |
| 05:52:14 | lstoll leaves the room. | |
| 05:53:29 | dewd leaves the room. | |
| 06:10:01 | Judofyr enters the room. | |
| 06:15:23 | evan | ack. |
| 06:15:32 | evan | our ffi stub generator is broken. |
| 06:16:02 | evan | it's poping the wrong value into ebx |
| 06:16:08 | nicksieger leaves the room. | |
| 06:16:38 | rue | Hm, that would probably be bad |
| 06:16:50 | evan | yes, it's proving to be bad. |
| 06:16:56 | evan | i'm debugging it now. |
| 06:16:56 | GMFlash leaves the room. | |
| 06:22:54 | evan | hr.m |
| 06:22:56 | evan | hrm. |
| 06:23:02 | evan | when is ffi_x86.c used? |
| 06:23:14 | GMFlash enters the room. | |
| 06:23:31 | evan | drat. |
| 06:23:38 | evan | only linux and x86 |
| 06:23:44 | evan | that means this problem is in lightning. |
| 06:23:49 | evan | crap stick. |
| 06:28:29 | Judofyr | good morning :P |
| 06:29:58 | rubyconsumer leaves the room. | |
| 06:35:18 | be9 enters the room. | |
| 06:36:32 | aotearoa leaves the room. | |
| 06:40:29 | GMFlash leaves the room. | |
| 06:45:28 | GMFlash enters the room. | |
| 06:49:55 | brixen | rue: you around? |
| 06:50:51 | benburkert leaves the room. | |
| 06:51:54 | lstoll enters the room. | |
| 06:56:47 | mfp leaves the room. | |
| 07:06:57 | nicksieger enters the room. | |
| 07:07:31 | defunkt leaves the room. | |
| 07:12:07 | ragge leaves the room. | |
| 07:12:15 | rue | Now |
| 07:14:07 | mfp enters the room. | |
| 07:17:51 | rue | goes to hide behind a tree |
| 07:20:20 | brixen | heh |
| 07:20:45 | brixen | rue: so, all the File consts that you moved to IO, I think I'm going to put them on File::Stat |
| 07:20:51 | brixen | cus that's the only place that will use them |
| 07:21:00 | brixen | and const lookup is currently expensive |
| 07:21:19 | brixen | looking at mri, I only see SEEK_xxx on IO |
| 07:21:44 | brixen | I almost have an FFI stat |
| 07:24:17 | aotearoa enters the room. | |
| 07:25:34 | rue | Sure, does not matter much where they go |
| 07:27:30 | brixen | ok |
| 07:31:18 | ezmobius enters the room. | |
| 07:37:09 | ezmobius_ enters the room. | |
| 07:38:50 | jtoy enters the room. | |
| 07:39:53 | cout leaves the room. | |
| 07:40:18 | brixen | hell of a wind, rain, lightning storm here |
| 07:40:55 | brixen | wowsers, I think ffi File::Stat might be working |
| 07:41:36 | rue | Cool |
| 07:41:47 | brixen | ok, it was for a while :P |
| 07:42:01 | brixen | nothing like bin/ci to shoot down ones hopes |
| 07:42:28 | evan | heh |
| 07:42:31 | evan | i'm having that problem now. |
| 07:42:48 | evan | with ffi stubs not behaving when compiling the VM normally |
| 07:42:59 | evan | I have a feeling we've always had this problem |
| 07:43:05 | evan | but the way we called the primitives, it was mitigated. |
| 07:43:11 | evan | since i'm reworking that stuff, it's exposed it. |
| 07:43:11 | brixen | love it when those dots start screaming across the screen only to come to a glorious stop |
| 07:43:35 | brixen | hmm, interesting |
| 07:43:45 | brixen | doesn't affect os x, right? |
| 07:44:16 | evan | very much it does. |
| 07:47:06 | brixen | ah ok |
| 07:47:10 | lstoll leaves the room. | |
| 07:47:28 | brixen | I misunderstood the above about linux and x86 |
| 07:48:06 | evan | the bug seems to be in lightning |
| 07:48:24 | evan | which we're using on os x still (x86 or not) |
| 07:48:37 | brixen | ok |
| 07:48:45 | ezmobius__ enters the room. | |
| 07:48:49 | evan | i'm going to try 2 different things |
| 07:48:56 | evan | 1) get a new version of lightning |
| 07:49:08 | evan | 2) make our ffi_x86.c work on darwin |
| 07:49:14 | evan | or maybe 3) fix lightning. |
| 07:49:20 | evan | we'll see tomorrow. |
| 07:49:24 | brixen | heh ok |
| 07:49:55 | cjheath leaves the room. | |
| 07:51:18 | evan | sweet, lightning switched to git. |
| 07:51:23 | evan | makes it that much easier. |
| 07:51:32 | brixen | nice |
| 07:51:48 | scoopr | urge them to do a arm port >:) |
| 07:52:12 | evan | ack. |
| 07:52:17 | evan | they switched to gplv3 |
| 07:52:20 | evan | crap. |
| 07:52:22 | evan | well |
| 07:52:26 | evan | time to gut lightning |
| 07:55:31 | evan | yay! our pal ian! http://vvm.lip6.fr/projects_realizations/ccg/ |
| 07:56:22 | ezmobius leaves the room. | |
| 07:56:28 | brixen | sweet! |
| 07:56:38 | brixen | and only there since 2004 it looks like |
| 07:56:39 | evan | it's ooooold code |
| 07:56:40 | brixen | :) |
| 07:56:53 | evan | but i'm guessing i can get it to at least do what we want. |
| 07:57:35 | brixen | if only we could get ian to realize Ruby is the future! :D |
| 07:57:38 | cout enters the room. | |
| 07:58:03 | brixen | fohc - future of happy computing |
| 07:58:47 | evan | heh |
| 07:58:49 | evan | wel |
| 07:58:50 | evan | l |
| 07:58:52 | evan | bed for me. |
| 07:59:00 | evan | then off to orlando in the morning |
| 07:59:08 | brixen | "We have found that porting the back-end to a new platform is considerably easier with a tool such as ccg, and requires only a day or two of work." |
| 07:59:09 | evan | talk to everyone later. |
| 07:59:15 | brixen | nite! |
| 07:59:18 | brixen | safe trip |
| 08:00:29 | rue | Laters |
| 08:07:28 | dbussink enters the room. | |
| 08:15:13 | lstoll enters the room. | |
| 08:16:51 | twbray leaves the room. | |
| 08:18:15 | maduyb leaves the room. | |
| 08:25:35 | thehcdreamer enters the room. | |
| 08:34:56 | VVSiz | hi everybody |
| 08:35:25 | rue | Hullo |
| 08:37:19 | headius leaves the room. | |
| 08:37:28 | dbussink | morning |
| 08:50:32 | rue | Early night for me, *cough& |
| 08:50:35 | rue | Nites |
| 08:55:15 | zimbatm enters the room. | |
| 09:05:17 | aotearoa leaves the room. | |
| 09:06:13 | Arjen_ enters the room. | |
| 09:06:37 | wifelette enters the room. | |
| 09:07:48 | octopod enters the room. | |
| 09:08:34 | wifelette leaves the room. | |
| 09:11:32 | geekounet leaves the room. | |
| 09:14:10 | ragge enters the room. | |
| 09:35:16 | aotearoa enters the room. | |
| 09:36:57 | dbussink leaves the room. | |
| 09:37:14 | dbussink enters the room. | |
| 09:43:10 | geekounet enters the room. | |
| 09:44:34 | cjheath enters the room. | |
| 09:47:23 | imajes leaves the room. | |
| 09:53:30 | TheVoice leaves the room. | |
| 10:06:10 | ragge leaves the room. | |
| 10:16:23 | ezmobius__ leaves the room. | |
| 10:16:24 | ezmobius_ leaves the room. | |
| 10:28:47 | imajes enters the room. | |
| 10:29:58 | rightondev leaves the room. | |
| 10:30:49 | rightondev enters the room. | |
| 10:37:28 | jero5 leaves the room. | |
| 10:51:06 | nitay_ enters the room. | |
| 10:59:24 | ragge enters the room. | |
| 11:04:34 | dodecaphonic_ enters the room. | |
| 11:04:47 | dodecaphonic leaves the room. | |
| 11:05:10 | dodecaphonic enters the room. | |
| 11:05:21 | dodecaphonic leaves the room. | |
| 11:05:24 | nitay leaves the room. | |
| 11:05:38 | dodecaphonic__ enters the room. | |
| 11:19:09 | chris2 enters the room. | |
| 11:27:50 | sudoer enters the room. | |
| 11:27:50 | imajes leaves the room. | |
| 11:29:38 | Phoop leaves the room. | |
| 11:30:10 | Phoop enters the room. | |
| 11:36:02 | jtoy leaves the room. | |
| 11:37:51 | jtoy enters the room. | |
| 11:39:49 | lstoll leaves the room. | |
| 11:43:46 | cjheath leaves the room. | |
| 11:47:06 | octopod leaves the room. | |
| 11:52:37 | ctennis leaves the room. | |
| 11:53:23 | sudoer_ enters the room. | |
| 11:54:41 | sudoer leaves the room. | |
| 11:56:17 | dbussink leaves the room. | |
| 12:12:15 | nitay enters the room. | |
| 12:13:51 | jtoy leaves the room. | |
| 12:17:17 | dbussink enters the room. | |
| 12:17:40 | sudoer_ leaves the room. | |
| 12:30:52 | nitay_ leaves the room. | |
| 12:31:17 | imajes enters the room. | |
| 12:33:14 | ctennis enters the room. | |
| 12:35:11 | be9 leaves the room. | |
| 12:51:27 | ragge leaves the room. | |
| 13:02:23 | pluskid enters the room. | |
| 13:05:14 | radarek enters the room. | |
| 13:19:59 | dewd enters the room. | |
| 13:20:34 | _maarten | Hi all |
| 13:21:10 | _maarten | What is the status on reducing the startup time of rubinius? Does anyone focus on that particular problem already? |
| 13:22:25 | _maarten | I'd like to put some time into this, but I'm not really inclined to do what already is being worked on by others. ;) |
| 13:25:45 | Fullmoon_ enters the room. | |
| 13:37:55 | dbussink leaves the room. | |
| 13:43:34 | pluskid leaves the room. | |
| 13:48:25 | RyanTM leaves the room. | |
| 13:50:43 | RyanTM enters the room. | |
| 13:51:17 | jtoy enters the room. | |
| 13:55:25 | squeegy leaves the room. | |
| 14:04:17 | macournoyer enters the room. | |
| 14:05:24 | ragge enters the room. | |
| 14:06:08 | mae enters the room. | |
| 14:06:19 | mae | whats up biatches |
| 14:06:21 | mae | how goes rails supprot |
| 14:06:24 | mae | support * |
| 14:16:05 | moofbong enters the room. | |
| 14:17:49 | probablycorey enters the room. | |
| 14:20:16 | RyanTM leaves the room. | |
| 14:20:33 | RyanTM enters the room. | |
| 14:34:16 | probablycorey leaves the room. | |
| 14:36:32 | probablycorey enters the room. | |
| 14:44:58 | skaar enters the room. | |
| 14:45:43 | probablycorey_ enters the room. | |
| 14:48:57 | octopod enters the room. | |
| 14:51:10 | mediogre leaves the room. | |
| 14:51:24 | probablycorey_ leaves the room. | |
| 14:51:28 | nitay_ enters the room. | |
| 14:52:32 | probablycorey leaves the room. | |
| 14:54:00 | twshelton leaves the room. | |
| 14:54:39 | enebo enters the room. | |
| 14:59:26 | nitay__ enters the room. | |
| 14:59:26 | nitay_ leaves the room. | |
| 15:05:06 | rightondev leaves the room. | |
| 15:07:59 | mad_phoenix enters the room. | |
| 15:09:35 | nitay leaves the room. | |
| 15:09:54 | squeegy enters the room. | |
| 15:12:40 | rightondev enters the room. | |
| 15:18:28 | twshelton enters the room. | |
| 15:22:03 | dbussink enters the room. | |
| 15:25:06 | dbussink | _maarten_: dutch? |
| 15:25:29 | dbussink | mae: rails support isn't on the radar yet afaik |
| 15:25:30 | wmoxam enters the room. | |
| 15:25:52 | mae | aww shucks |
| 15:26:28 | dbussink | well, there are a lot of things that need to be done first |
| 15:26:55 | dbussink | ezmobius is working in merb though, trying to get that running |
| 15:27:22 | mae | yeah i know ;) |
| 15:27:37 | mae | i was back here 8 months ago working on rubinius |
| 15:27:43 | mae | but then i flaked out and abandoned them |
| 15:27:50 | mae | like an orphan |
| 15:27:57 | hornbeck leaves the room. | |
| 15:28:03 | ragge leaves the room. | |
| 15:28:14 | dbussink | mae: what a shame ;) |
| 15:28:26 | dbussink | mae: you would like to return? :P |
| 15:28:39 | mae | well |
| 15:28:44 | mae | rubinius is in the back of my mind |
| 15:28:51 | mae | because holy hell radiant cms is slowww |
| 15:28:57 | mae | and a perf boost would be nice |
| 15:29:13 | mae | and omg, the stack trace in rubinius is so much cooler |
| 15:29:24 | dbussink | well, i've seen the first performance changes seep in |
| 15:29:27 | mae | and like omg closures and stack frames are first class objects |
| 15:29:34 | mae | yeah method caching and all that |
| 15:30:05 | hornbeck enters the room. | |
| 15:32:13 | macournoyer leaves the room. | |
| 15:32:45 | macournoyer enters the room. | |
| 15:52:07 | vascoas enters the room. | |
| 15:57:26 | brixen | mae: dude, our bin/ci runs are like 23 sec, it took 20+ min when you were here :P |
| 15:57:41 | brixen | mae: *and*, we have tons more specs now |
| 15:58:34 | brixen | breakfast, bbiab.. |
| 15:59:21 | twbray enters the room. | |
| 16:00:16 | mae | yeah yeah |
| 16:00:32 | mae | my fav thing |
| 16:00:35 | mae | is still the stack trace |
| 16:00:36 | mae | output |
| 16:00:39 | mae | how its aligned |
| 16:00:41 | mae | beautiful |
| 16:00:44 | mae | readable |
| 16:00:48 | evan | :) |
| 16:00:50 | evan | me too. |
| 16:00:56 | mae | heh |
| 16:01:00 | mae | so evan |
| 16:01:08 | mae | what really is stopping rubinius from having rails support |
| 16:01:10 | mae | whats in the way |
| 16:01:19 | mae | is it stuff like mysql drivers and stuff |
| 16:01:26 | mae | or some ruby parts are still missing.. |
| 16:01:33 | evan | i suspect a little bit of both. |
| 16:01:36 | mae | heh |
| 16:01:42 | evan | you should go and try to run rails |
| 16:01:46 | evan | and fix things along the way |
| 16:01:51 | mae | i thought about it |
| 16:01:57 | mae | but i don' t have any time these days |
| 16:01:58 | mae | sigh |
| 16:01:58 | evan | thats how drbrain got rubygems working |
| 16:02:14 | mae | what about mongrel? |
| 16:02:29 | evan | it's running, i suspect it needs a little love though. |
| 16:02:32 | mae | i suppose webrick would run natively much faster than on mri |
| 16:02:49 | mae | ok ok |
| 16:02:51 | mae | so i've done it |
| 16:02:56 | dbussink | evan: did you look into the ffi problems? |
| 16:03:01 | mae | i've decided to take the plunge and waste 1 hour compiling the lates stuff |
| 16:03:08 | squeegy leaves the room. | |
| 16:03:09 | mae | heh |
| 16:03:15 | mae | compiles rubiius |
| 16:03:34 | dbussink | evan: because i can't understand why Math#asinh is failing, maybe it's the same issue |
| 16:03:36 | mae | if i could make radiant faster with rubinius |
| 16:03:41 | mae | i would have an orgasm in pants |
| 16:03:46 | mae | its sooo slow |
| 16:03:47 | evan | dbussink: i see it fail or and off. |
| 16:03:54 | evan | dbussink: i haven't figured it out either yet. |
| 16:04:16 | mae | luckily in the "real business world of programming" no one cares about asinh being accurate |
| 16:04:24 | mae | so i'll happily ignore that |
| 16:04:55 | mae | so err whats the svn url |
| 16:04:56 | mae | these days |
| 16:05:12 | dbussink | we use git :) |
| 16:05:12 | mae | or wait |
| 16:05:14 | mae | git now |
| 16:05:15 | mae | jeez |
| 16:05:20 | mae | why didn't you use mercurial |
| 16:05:32 | mae | ok ok so your telling me |
| 16:05:34 | mae | now i have to get cogito |
| 16:05:36 | mae | your killing me |
| 16:05:41 | mae | sheesh |
| 16:06:03 | dbussink | cogito? |
| 16:06:22 | mae | yeah, i'm not about to remember all the housekeeping i have to do with standalone git |
| 16:06:28 | mae | that was 2 years ago i tried that |
| 16:06:33 | mae | switched to mercurial, never looked back |
| 16:06:43 | dbussink | mae: there's a lot of stuff on the lighthouse pages |
| 16:06:58 | dbussink | mae: there are some rake tasks to make git life easier |
| 16:07:24 | mae | why use git when i can use cogito ; ) |
| 16:07:37 | knowtheory leaves the room. | |
| 16:07:44 | twbray leaves the room. | |
| 16:07:57 | mae | http://www.kernel.org/pub/software/scm/cogito/README |
| 16:08:36 | dbussink | evan: and now for something completely different, i was looking into the last failing Time specs, it's basically failing because there is no coerce on every object |
| 16:08:59 | dbussink | evan: what's the approach for that? either fix it locally only for time, or devise some more general solution? |
| 16:09:14 | mae | ahh legacy code, its like women, can't live with it, can't live without it. |
| 16:09:47 | mae | this is open source, fix it right! |
| 16:10:23 | evan | well, i'm off to the airport |
| 16:10:27 | evan | laters |
| 16:10:30 | mae | don't let the october 2007 discourage you. |
| 16:10:36 | mae | where are you ging |
| 16:10:45 | binary42 leaves the room. | |
| 16:10:50 | evan | orlando |
| 16:10:52 | mae | nice. |
| 16:10:53 | mae | have fun |
| 16:11:05 | dbussink | have a nice trip |
| 16:11:05 | mae | damn legacy code... *grumble* |
| 16:11:37 | mae | i wonder how hard it would be to port rubinius to erlang |
| 16:11:41 | knowtheory enters the room. | |
| 16:11:47 | mae | hehehehehehe |
| 16:13:06 | mae | jruby, rubinius, erluby |
| 16:14:40 | wyhaines leaves the room. | |
| 16:15:13 | vascoas leaves the room. | |
| 16:17:00 | boyscout | 1 commit by Dirkjan Bussink |
| 16:17:01 | boyscout | * Fix Time#<=> for objects other than Time; f550552 |
| 16:17:55 | d2dchat enters the room. | |
| 16:20:56 | pauldix enters the room. | |
| 16:21:25 | mae | er damn |
| 16:21:28 | mae | i need a commit bit |
| 16:22:12 | mae | evan just left |
| 16:22:18 | mae | oh gobblety goop |
| 16:22:19 | dodecaphonic leaves the room. | |
| 16:22:27 | mae | brixen do u have access |
| 16:22:49 | brixen | mae: nope, evan's still the one |
| 16:23:09 | mae | ok u gotta tell me something |
| 16:23:19 | mae | what is with the 124123 changes to the issue tracking system |
| 16:23:27 | mae | even an olympic athlete would run out of endurance keeping up |
| 16:23:37 | mae | you were modifying beast, but then u gave up o rwhat |
| 16:23:43 | aotearoa_ enters the room. | |
| 16:23:50 | brixen | mae: yeah, better time spent on rubinius |
| 16:23:59 | mae | heh |
| 16:24:02 | mae | you finally realized! |
| 16:24:08 | brixen | btw, you should learn git, it kicks ass |
| 16:24:12 | mae | i know git already |
| 16:24:13 | mae | like i said |
| 16:24:18 | mae | i was using it before i started using mercurial |
| 16:24:21 | brixen | cogito is deprecated since git porcelain got better |
| 16:24:26 | mae | ah |
| 16:25:01 | brixen | git is like taking a doom bfg to a sticks and knives local gang fight in the 50's |
| 16:25:22 | brixen | git : other scms :: doom bfg : silly boy gang fights |
| 16:25:59 | mae | nah dude |
| 16:26:05 | mae | mercurial has almost identical features |
| 16:26:11 | brixen | yeah, I know |
| 16:26:14 | mae | except its not overly complicated for the basic programmer |
| 16:26:18 | brixen | 'cept for the ones it doesn't :P |
| 16:26:27 | mae | if i was using git i think i would have alot more trouble with my team.. |
| 16:26:42 | mae | ok name one thing about git that is better than mercurial |
| 16:26:47 | brixen | it's an often cited reason, but we've faired pretty well |
| 16:26:55 | mae | yes but brixen |
| 16:26:56 | mae | dude omg |
| 16:27:07 | brixen | dunno mercurial yet |
| 16:27:07 | mae | you don't have dumb programmer working on this project |
| 16:27:09 | mae | only smart ones |
| 16:27:12 | brixen | hehe |
| 16:27:12 | mae | of course its not a problem |
| 16:27:31 | mae | i've been dragged down to reality |
| 16:27:45 | mae | your still living in your ivory towers of TDD and whatnot. |
| 16:28:00 | dbussink | we don't recognize reality ;) |
| 16:28:02 | mae | quite literally, i just migrated a team from not using ANY SCM to mercurial |
| 16:28:03 | brixen | nah, I've switched to the dark side, I write code first |
| 16:28:03 | mae | imagine |
| 16:28:09 | brixen | then decide if I want to test it :P |
| 16:28:09 | mae | 3 programmers working on a code base |
| 16:28:15 | mae | with no scm |
| 16:28:22 | brixen | yeah, scary |
| 16:28:23 | mae | yeah me too |
| 16:28:31 | mae | if you only knew the power of the dark side.. |
| 16:28:44 | mae | TDD is pragmatic, because you don't let your imagination run wild.. |
| 16:28:53 | mae | but letting your imagination run wild is too fun.. |
| 16:28:53 | mae | hehe |
| 16:29:03 | brixen | try not, write or do not write specs |
| 16:29:18 | twbray enters the room. | |
| 16:29:21 | dbussink | specs first write you must |
| 16:29:26 | mae | omg |
| 16:29:26 | brixen | hah |
| 16:29:32 | mae | brixen wrote the book on anal speccing |
| 16:29:46 | mae | he almost wanted to kick my ass about a year ago |
| 16:29:46 | brixen | not me brotha |
| 16:29:55 | mae | because i was creating too many spec files |
| 16:30:05 | brixen | really? |
| 16:30:14 | mae | err sorry |
| 16:30:21 | mae | don't wanna bring up mud |
| 16:30:26 | mae | skeletal closets |
| 16:30:30 | brixen | heh |
| 16:30:40 | wyhaines leaves the room. | |
| 16:30:52 | mae | wow did u guys like annihilate the dependencies for rubinius |
| 16:30:57 | mae | because it seems i'm making it on my first try |
| 16:30:57 | brixen | don't remember the files, I remember the primitives tests :P |
| 16:30:59 | mae | with no failures |
| 16:31:05 | rubuildius | Dirkjan Bussink: f5505522f; 4687 examples, 17173 expectations, 0 failures, 0 errors |
| 16:31:10 | brixen | yeah, we whacked most of them |
| 16:31:18 | mae | yeah primitive tests.. |
| 16:31:25 | mae | was a good idea i think |
| 16:31:33 | mae | but everything back then was so low level |
| 16:31:40 | brixen | yep |
| 16:32:07 | brixen | evan is doing a big cleanup of primitives sounds like, new macros and other fun stuff |
| 16:32:26 | mae | cool |
| 16:32:29 | mae | finished the job i never finished.. |
| 16:32:42 | mae | i donno man |
| 16:32:50 | mae | ive been reborn as a programmer |
| 16:33:11 | mae | i've sacrificed my perfectionist ideals at the altar of self absorption |
| 16:33:14 | mae | err |
| 16:33:19 | mae | at the altar of pragmatism |
| 16:33:20 | mae | rather |
| 16:33:23 | mae | first way didn't make sense.. |
| 16:33:37 | mae | but the only problem is |
| 16:33:41 | mae | pragmatism is BOORRRING |
| 16:33:56 | mae | but it is happy when u see smiling faces of happy customers |
| 16:34:05 | mae | and happy paycheck |
| 16:34:06 | mae | and all that |
| 16:34:12 | dodecaphonic enters the room. | |
| 16:34:37 | brixen | yeah, pragmatism is essential |
| 16:34:56 | mae | i still like ruby |
| 16:35:00 | brixen | I still talk to people though who tell me "yeah, we should really do specs/tests, but it's never in the client's budget" |
| 16:35:03 | mae | but only single threaded ruby |
| 16:35:05 | brixen | that's just pure bs |
| 16:35:17 | mae | makes your life more difficult |
| 16:35:27 | mae | no specs that is |
| 16:35:28 | brixen | mae: oh, did you see we have multiple vm stuff? |
| 16:35:36 | brixen | you can spawn a subvm |
| 16:35:38 | mae | don't know much of anything that is new |
| 16:35:40 | brixen | with isolated heap |
| 16:35:48 | mae | that is pretty wicked i must say |
| 16:35:51 | brixen | and basic inter vm messaging |
| 16:36:00 | Fullmoon_ leaves the room. | |
| 16:36:01 | mae | i like that on a semantic level |
| 16:36:15 | mae | because it means that the vm has been localized as far as variables go |
| 16:36:17 | mae | no nasty global hacks |
| 16:36:35 | mae | but again, i really hate almost all the current semaphores |
| 16:36:42 | dbussink | brixen: did you get to reading my thesis? today my professors approved my latest draft version :) |
| 16:36:44 | mae | i think erlang has the best concurrency model |
| 16:37:20 | brixen | and if you haven't checked this out, do: http://revactor.org/ |
| 16:37:31 | brixen | dbussink: :( not much |
| 16:37:37 | mae | brixen: how do you do ipc between vms. |
| 16:37:40 | brixen | dbussink: congrats on the approval! |
| 16:38:06 | brixen | mae: you know there are no globals in rubinius! |
| 16:38:23 | brixen | evan had an example script, dunno where it is |
| 16:38:54 | brixen | mae: http://pastie.org/pastes/143904 |
| 16:38:57 | brixen | something like that |
| 16:39:20 | brixen | there's a very basic msg queue between vms |
| 16:39:25 | brixen | you'll have to look at the code :P |
| 16:39:55 | mae | hmm |
| 16:40:20 | mae | sigh |
| 16:40:21 | brixen | we need macros in ruby |
| 16:40:23 | mae | queues suck |
| 16:40:33 | mae | bravo for multiple vms |
| 16:40:39 | mae | but traditional semaphores all suck |
| 16:40:43 | nicksieger leaves the room. | |
| 16:40:43 | mae | thats just my opinion |
| 16:40:45 | mae | and i'm sticking to it |
| 16:40:48 | mae | ; ) |
| 16:40:51 | brixen | ok |
| 16:41:07 | brixen | queue hides all that from you, but ok |
| 16:41:19 | mae | queue |
| 16:41:26 | mae | i mean |
| 16:41:28 | mae | ok it has a queu |
| 16:41:31 | mae | great. |
| 16:41:45 | mae | what happens if one vm explodes |
| 16:41:48 | mae | does it have fallout |
| 16:41:52 | brixen | could |
| 16:41:56 | brixen | it's still single process |
| 16:42:03 | mae | ok |
| 16:42:04 | mae | assuming |
| 16:42:10 | brixen | but we handle a lot of catastrophies from C better than before |
| 16:42:17 | mae | that no idiot exhausted the heap and/or no shady C extensions |
| 16:42:19 | mae | can there be fallout |
| 16:42:32 | brixen | like what? |
| 16:42:34 | mae | like |
| 16:42:38 | mae | you know |
| 16:42:42 | mae | buffers |
| 16:42:46 | mae | overflows |
| 16:42:52 | mae | um |
| 16:42:55 | mae | deadlock |
| 16:42:59 | mae | is there a timeout |
| 16:43:11 | brixen | well, buf overflows usually affect the process, so yeah |
| 16:43:17 | mae | ; ) |
| 16:43:18 | brixen | the vms run each in a native thread |
| 16:43:23 | mae | ahh |
| 16:43:29 | mae | hm |
| 16:43:34 | mae | not sure if i like that either |
| 16:43:43 | brixen | heh |
| 16:43:45 | mae | native threads are exhaustable |
| 16:43:56 | mae | its an unpredictable upper limit |
| 16:44:25 | brixen | well, you're likely to run out of heap for the vm's before the threads |
| 16:44:26 | mae | i thought evans motto was |
| 16:44:38 | mae | "the only thing that should stop rubinius is running out of heap" |
| 16:44:56 | mae | that really depends on the application |
| 16:45:05 | mae | what if you have 1000 http keep alives |
| 16:45:15 | brixen | well, use the right tool |
| 16:45:17 | mae | some os level threads are horrible |
| 16:45:25 | brixen | people who want mvm to emulate an OS are dumb |
| 16:45:26 | mae | ok, so green threads? |
| 16:45:39 | mae | mvm? |
| 16:45:43 | brixen | don't share vm's across what would normally be different processes in an OS |
| 16:46:00 | brixen | multi vm |
| 16:46:13 | mae | hmm ok |
| 16:46:13 | brixen | I wouldn't write a http server that spawned a vm for every request |
| 16:46:17 | brixen | there's better ways to do that |
| 16:46:26 | mae | i mean i see the value, especially because of the namespacing issues you run into sometimes in ruby |
| 16:46:33 | mae | for instance |
| 16:46:38 | mae | rails could be rewritten |
| 16:46:41 | mae | to have the rails stuff in one vm |
| 16:46:45 | brixen | yeah, we'll see what folks do with it |
| 16:46:47 | mae | and your custom code isolate |
| 16:46:48 | mae | d |
| 16:46:50 | brixen | but check out the revactor stuff |
| 16:46:52 | mae | so its not always like |
| 16:46:56 | mae | "Blah is a reserved name" |
| 16:47:02 | mae | for your models |
| 16:48:06 | mae | ah |
| 16:48:12 | mae | revactor is similar to what erlang has natively |
| 16:48:25 | brixen | right |
| 16:48:26 | aotearoa leaves the room. | |
| 16:49:04 | headius enters the room. | |
| 16:49:37 | mae | so um, one thing i think would be really cool in rugby |
| 16:49:39 | mae | ruby |
| 16:49:51 | mae | is if it were easier to make picky methods |
| 16:49:59 | mae | instead of |
| 16:50:08 | mae | raise 'BLALKDFJALSKDJlsadkflsdakf' if blah? |
| 16:50:12 | mae | and you have like 3 of these |
| 16:50:13 | mae | its ugly |
| 16:50:21 | mae | what WOULD be wicked |
| 16:50:24 | mae | is if you could do it like |
| 16:50:36 | Defiler | I think Ruby could use some performance before it gets any new language features :) |
| 16:50:40 | mae | def blah(foo) |
| 16:51:03 | mae | hmm |
| 16:51:04 | mae | good point |
| 16:51:10 | mae | but i thought rubinius addressed that |
| 16:51:14 | mae | ; ) |
| 16:51:24 | mae | ok ok |
| 16:51:25 | Defiler | Hopefully someday |
| 16:51:28 | mae | honestly |
| 16:51:35 | mae | i just want rubys pattern matching to be upgraded |
| 16:51:41 | mae | like |
| 16:52:04 | Defiler | method calls are already about as expensive as it is possible to make them in Ruby =( |
| 16:52:16 | mae | it would be cool |
| 16:52:21 | mae | if i could do |
| 16:52:23 | Defiler | given that anything can change at any time |
| 16:52:36 | mae | def foo(String === bar) |
| 16:52:40 | mae | //blah |
| 16:52:41 | mae | end |
| 16:52:44 | mae | and then |
| 16:52:56 | mae | def foo(Integer === bar) |
| 16:52:57 | mae | end |
| 16:53:11 | mae | the c++ folks call it "parametric polymorphism" |
| 16:53:14 | mae | but i don't want static typing |
| 16:53:19 | mae | i just want some way to pattern match |
| 16:53:22 | mae | so its more flexible |
| 16:53:42 | Defiler | I don't see how something that restricts polymorphism should be called 'polymorphism' :) |
| 16:53:51 | brixen | hah |
| 16:53:53 | Defiler | but C++ has a bunch of weird names I guess |
| 16:53:53 | mae | ok don't get all semantic on me |
| 16:53:54 | mae | jeez |
| 16:54:03 | mae | thats why i said c++ folks call it that |
| 16:54:04 | mae | not me |
| 16:54:19 | mae | i'm just saying |
| 16:54:28 | mae | wouldnt it be wtfcool if ruby had upgraded pattern matching |
| 16:54:34 | brixen | I think duck-typing goes a long way toward making pattern matching unnecessary |
| 16:54:38 | mae | more than foo, bar = car |
| 16:54:44 | brixen | a language that needs pattern matching can't ducktype well |
| 16:55:13 | mae | true, but i just want more declarative language and less if then else etc.. |
| 16:55:13 | brixen | you need pattern matching when you have to do special shit with an object |
| 16:55:28 | brixen | you need objects that just do the write thing |
| 16:55:36 | brixen | do first instead of ask first |
| 16:55:55 | mae | yeah but there is information loss sometimes |
| 16:55:56 | brixen | obj.blowme instead of if obj.girl? then obj.blow me |
| 16:55:57 | mae | ok for instance |
| 16:55:59 | mae | in rails |
| 16:56:09 | mae | on one screen i want to display the date format HH:MM:SS |
| 16:56:10 | brixen | for example ;) |
| 16:56:12 | mae | on another |
| 16:56:13 | mae | i want |
| 16:56:15 | mae | HH:MM |
| 16:56:20 | mae | to_s is a retarded child |
| 16:56:25 | mae | it doesn't know how to differentiate |
| 16:56:44 | brixen | hmm, not sure how pattern matching helps there |
| 16:56:56 | brixen | to_s(:short) / to_s(:long) or something |
| 16:57:01 | brixen | seems like the info is at the call site |
| 16:57:05 | brixen | not in the obj or to_s |
| 16:57:24 | mae | the problem with the do first instead of ask first |
| 16:57:36 | mae | is the object has to know context about its surroundings |
| 16:57:51 | mae | its nice but it decreases abstraction and increases cohesion |
| 16:58:00 | mae | like |
| 16:58:12 | mae | obj.blowme .. |
| 16:58:31 | mae | so obj has to know whether to blow me or not... |
| 16:58:36 | mae | why should it know |
| 16:58:40 | brixen | nono, not true |
| 16:58:42 | mae | its just a hoover sucking blow machine |
| 16:58:50 | mae | heh |
| 16:58:55 | mae | look |
| 16:58:57 | mae | its a tradeoff |
| 16:59:00 | mae | if i ask it |
| 16:59:05 | mae | i'm assuming the object is dumb |
| 16:59:10 | mae | if i tell it, i'm assuming the object knows |
| 16:59:25 | mae | either way your pushing the responsibility or taking the responsibility |
| 16:59:33 | brixen | not dumb, just does what it's asked with the semantic of #method tailored to it's reality |
| 16:59:41 | smartocci leaves the room. | |
| 16:59:44 | mae | its' * |
| 17:00:04 | mae | jok |
| 17:00:05 | mae | then |
| 17:00:09 | mae | your example was terrible |
| 17:00:10 | mae | it should be |
| 17:00:20 | smartocci enters the room. | |
| 17:00:20 | brixen | bah, this ffi stat is killing me |
| 17:00:25 | brixen | had it almost working |
| 17:00:31 | mae | obj.blowme |
| 17:00:42 | mae | so obj would have a method for ... |
| 17:00:48 | mae | obj.blowme(me) |
| 17:00:50 | mae | obj says |
| 17:01:04 | mae | me.can_be_blown? |
| 17:01:16 | mae | and me.is_a_dude? |
| 17:01:19 | mae | ok see |
| 17:01:25 | mae | you can't get away from the cohesion |
| 17:01:27 | mae | your screwed |
| 17:01:35 | headius | afternoon |
| 17:01:40 | mae | hey |
| 17:01:54 | mae | i guess you could have |
| 17:02:08 | mae | me.can_be_blown_by(self) |
| 17:02:21 | mae | in which case self would ask |
| 17:02:55 | mae | can the passed argument for _can_be_blown_by? be a possible candidate for b lowing |
| 17:02:55 | brixen | yay, irb loads |
| 17:02:57 | mae | and it goes on forever |
| 17:03:08 | mae | until someone actually knows how to decide who should be blwon |
| 17:03:10 | mae | blown |
| 17:03:13 | brixen | hah |
| 17:03:14 | mae | so there is cohesion |
| 17:03:19 | mae | no way around it |
| 17:03:20 | mae | nope |
| 17:03:36 | brixen | should not try to come up with risque examples when mae's in the room |
| 17:03:40 | mae | in haskell you would have a monad 'blowme' |
| 17:03:49 | brixen | mae: write some pattern matching dude :P |
| 17:03:53 | mae | and it could be applied to any number of blowees and blower |
| 17:03:56 | mae | blowers * |
| 17:04:01 | mae | without strong cohesion |
| 17:04:21 | mae | and the blower and blowee can be blissfully happy about ignoring the other |
| 17:04:25 | brixen | just for clarification, I was talking about molten glass blobs ;) |
| 17:04:31 | mae | uhuh. |
| 17:04:38 | dbussink | brixen: you're able to find the problem with ffi? |
| 17:04:54 | brixen | dbussink: not ffi in general |
| 17:04:55 | dbussink | brixen: i was wondering whether Math.asinh suffers from the same issues |
| 17:04:57 | brixen | evan's working on that |
| 17:04:59 | dbussink | brixen: ah ok |
| 17:05:06 | brixen | yeah, there's definitely a problem |
| 17:05:16 | brixen | I'm trying to get File::Stat using FFI |
| 17:05:34 | brixen | our stating is really expensive now, because we calc a lot up front |
| 17:05:41 | brixen | ruby just stores the stat struct |
| 17:05:46 | dbussink | on a different thing, there are still two Time specs failing, basically because not every object has a coerce function |
| 17:05:48 | brixen | and that's what this new thing does too |
| 17:05:52 | mae | brixen, cohesion sucks, we need a third party... a independent organization |
| 17:05:54 | mae | LIKE NATO |
| 17:06:10 | mae | and NATO can decide whether the political climate is good for obj to blow me |
| 17:06:13 | brixen | not another traffic officer? |
| 17:06:25 | brixen | dbussink: hmm |
| 17:06:28 | headius leaves the room. | |
| 17:06:31 | brixen | dbussink: can you show me the failure? |
| 17:06:34 | brixen | so I can understand |
| 17:07:03 | brixen | oh lordy, bin/ci is running! |
| 17:07:09 | brixen | damn! |
| 17:07:11 | brixen | exception |
| 17:07:14 | mae | brixen: don't you think me and obj would be infinitely more usable if we expressed our interactions as functions, free agents. |
| 17:07:23 | dbussink | brixen: Time#- accepts arguments that can be coerced into Float |
| 17:07:32 | mae | or is it that the human brain doesn't want to think about the details and thats why we make complex objects which have to know lots of context |
| 17:08:10 | dbussink | brixen: in time/plus_spec |
| 17:08:14 | brixen | dbussink: one sec |
| 17:08:22 | dbussink | no hurry :) |
| 17:09:31 | brixen | dbussink: so, using Float(obj) doesn't work? |
| 17:09:57 | mae | OMG |
| 17:10:00 | dbussink | well, i have problems with where to put it |
| 17:10:02 | mae | not the Float coercion madness again |
| 17:10:13 | mae | this is still a thing |
| 17:10:20 | mae | ??!? |
| 17:10:21 | brixen | mae: we fixed it once you quick mucking with it :P |
| 17:10:35 | mae | oh yeah, then why doesn't it work? |
| 17:10:41 | brixen | dbussink: what does mri do? |
| 17:10:46 | brixen | mae: Float() works |
| 17:10:50 | brixen | this is Time |
| 17:11:01 | mae | brixen what is bin/ci |
| 17:11:12 | brixen | our continuous integration spec runner |
| 17:11:17 | mae | ok |
| 17:11:18 | dbussink | brixen: you mean whether it works on mri? or how they coerce the value? |
| 17:11:22 | mae | last time i ran specs |
| 17:11:28 | mae | we still had like 100 failing specs |
| 17:11:32 | brixen | dbussink: seems like if Time.at(obj) and obj is not Integer, then Float(obj).to_i |
| 17:11:34 | mae | this is impressive |
| 17:11:44 | mae | good job brixen |
| 17:11:49 | brixen | dbussink: yeah, how mri coerces |
| 17:11:54 | brixen | I know it can be convoluted |
| 17:12:01 | brixen | mae: it's everyone! |
| 17:12:03 | mae | as i recall, mri is really screwed up with coercion |
| 17:12:11 | mae | it acts differently depending on how you do it |
| 17:12:29 | mae | wow |
| 17:12:30 | brixen | mae: at one point, we had over 1,100 failing specs :P |
| 17:12:36 | mae | 17164 expecations passed |
| 17:12:41 | brixen | ehe |
| 17:12:42 | nicksieger enters the room. | |
| 17:12:50 | mae | 0 failures |
| 17:12:56 | mae | you nuked primitives right |
| 17:13:01 | brixen | yeah |
| 17:13:07 | mae | bastard. |
| 17:14:07 | dbussink | brixen: i don't really see how changing Time.at helps |
| 17:14:25 | mae | you have yarv benchmarks in here? |
| 17:15:01 | brixen | mae: yeah, test/benchmark |
| 17:15:11 | mae | where did sirb go |
| 17:15:18 | brixen | dbussink: oh, not necessarily checking what to change, just need to look at it |
| 17:15:24 | brixen | I want to finish this stat thing |
| 17:15:37 | brixen | cus the spec rewrite checkin is hanging behind it ;) |
| 17:15:42 | brixen | mspec* |
| 17:16:05 | brixen | bah, not necessarily suggesting* |
| 17:16:17 | mae | brix |
| 17:16:21 | mae | where did sirb go |
| 17:16:43 | brixen | dbussink: just to clarify, in mri not every obj has #coerce either |
| 17:16:47 | brixen | or am I missing something |
| 17:16:50 | brixen | mae: we run irb |
| 17:16:55 | brixen | shotgun/rubinius |
| 17:16:58 | brixen | will drop you into it |
| 17:18:11 | mae | oh |
| 17:18:15 | mae | original irb? |
| 17:18:17 | mae | wtf? |
| 17:18:24 | mae | but it doesn't have all the nifty features that sirb did |
| 17:19:31 | mae | lets see |
| 17:19:38 | mae | is stack explosion error still there |
| 17:19:43 | mae | or do you allow heap exhaustion |
| 17:19:47 | mae | so far no explosions.. |
| 17:21:36 | technomancy enters the room. | |
| 17:21:47 | brixen | mae: yeah, we need to write an irb ext that has sexp, asm, bytecode output |
| 17:21:56 | brixen | require 'irb/rubinius' :) |
| 17:25:28 | mae | ok |
| 17:26:15 | mae | brixen |
| 17:26:19 | mae | point me in the right direciton plz |
| 17:26:20 | mae | http://pastie.caboo.se/148756 |
| 17:26:28 | mae | to fix this.. |
| 17:26:32 | mae | how to test what the prob is |
| 17:28:05 | Arjen_ leaves the room. | |
| 17:28:23 | brixen | mae: that looks suspiciously like the bt's I got initially working with mathn |
| 17:28:29 | zimbatm leaves the room. | |
| 17:28:43 | brixen | so, my first suspicion is that rails is undef'ing a core method |
| 17:29:21 | brixen | oh that's builder, too |
| 17:29:44 | brixen | probably some nasty hack to get around mri |
| 17:30:27 | brixen | rue: class BlankSlate < NilClass |
| 17:30:36 | brixen | er, mae |
| 17:30:47 | brixen | see if that works |
| 17:37:22 | lopex enters the room. | |
| 17:39:56 | ruivaldo enters the room. | |
| 17:42:29 | ezmobius__ enters the room. | |
| 17:44:09 | mae | srry |
| 17:44:11 | mae | boss called |
| 17:44:13 | mae | ok try this? |
| 17:44:31 | thehcdreamer leaves the room. | |
| 17:44:33 | mae | can i pass that in with -e |
| 17:45:18 | mae | primitive failure again |
| 17:45:42 | brixen | mae: well, I mean replace BlankSlate with one appropriate for rubinius |
| 17:45:56 | brixen | instead of letting it muck with a bunch of the core methods |
| 17:46:02 | brixen | I'm just guessing based on the bt |
| 17:47:38 | brixen | sweet marry, bin/ci finished, only 36f/6e |
| 17:49:06 | jtoy leaves the room. | |
| 17:49:42 | nitay enters the room. | |
| 17:49:49 | mae | heh |
| 17:49:56 | mae | ok that didn't fix it |
| 17:49:59 | mae | ; ) |
| 17:50:03 | mae | oh well |
| 17:50:06 | mae | don't have time right now |
| 17:50:07 | mae | wish i did |
| 17:50:26 | mae |