Show enters and exits. Hide enters and exits.
| 00:04:59 | enebo leaves the room. | |
| 00:06:36 | zenspider | arg... |
| 00:06:41 | zenspider | git rebase origin |
| 00:06:49 | zenspider | cannot rebase: your index is not up-to-date |
| 00:06:52 | zenspider | ? |
| 00:06:56 | zenspider | wtf? |
| 00:08:52 | evan | what did you do that caused that? |
| 00:09:52 | zenspider | rake git:pull |
| 00:09:58 | zenspider | (update) |
| 00:10:03 | brixen | changes in master? |
| 00:10:24 | zenspider | yo no hablo |
| 00:10:38 | evan | have you made commits when not on a branch? |
| 00:10:39 | brixen | git status |
| 00:10:47 | brixen | to see what branch you're on |
| 00:10:49 | evan | or do you have a bunch of changes you haven't commited? |
| 00:11:24 | brixen | I assume that's rake git:update? |
| 00:12:10 | zenspider | yes, I'm on branch master for some reason |
| 00:12:19 | zenspider | and yes, I have 1 uncommitted change |
| 00:12:36 | zenspider | and 1 I just committed to master apparently |
| 00:12:37 | brixen | git checkout <branch> will take that with you to a branch |
| 00:12:45 | brixen | git reset HEAD^ |
| 00:12:48 | evan | no no |
| 00:12:49 | evan | wait. |
| 00:12:51 | evan | don't do that. |
| 00:12:56 | evan | you'll blow away his change. |
| 00:12:59 | zenspider | yeah. that seems wrong |
| 00:13:06 | brixen | no, that will leave the files there |
| 00:13:12 | evan | 'git status' reports what? |
| 00:13:30 | zenspider | http://rafb.net/p/74DUKU94.html |
| 00:13:32 | evan | 1 Changed but not updated? |
| 00:13:55 | evan | ok, you must have run 'git add' at some point. |
| 00:13:57 | evan | or stash did it. |
| 00:14:04 | evan | and added your change to the index |
| 00:14:08 | evan | which is what git was telling you |
| 00:14:09 | evan | just run |
| 00:14:10 | zenspider | I added it |
| 00:14:15 | evan | then you need to commit it |
| 00:14:19 | evan | before you can pull in new code. |
| 00:14:54 | evan | or do 'git reset' to remove it from your index |
| 00:15:00 | zenspider | are you kidding? |
| 00:15:05 | evan | no |
| 00:15:07 | evan | why? |
| 00:15:12 | zenspider | I need to be fully committed before I can update? |
| 00:15:16 | evan | no |
| 00:15:22 | evan | just can't have anything in the index |
| 00:15:31 | evan | you put stuff in the index right before you're going to commit |
| 00:16:07 | zenspider | % git reset spec/compiler2/masgn_spec.rb |
| 00:16:08 | evan | remember that the index is really a commit object, that you're building up |
| 00:16:11 | evan | no |
| 00:16:14 | evan | just 'git reset' |
| 00:16:14 | zenspider | git reset spec/compiler2/masgn_spec.rb |
| 00:16:20 | zenspider | fatal: Needed a single revision |
| 00:16:28 | zenspider | this tool is _great_ |
| 00:16:31 | evan | to reset the index back to 0. |
| 00:16:33 | zenspider | that didn't do jack |
| 00:16:37 | zenspider | % git reset |
| 00:16:41 | evan | 'git reset' did nothing? |
| 00:16:41 | zenspider | git reset |
| 00:16:48 | zenspider | spec/compiler2/masgn_spec.rb: needs update |
| 00:16:52 | evan | there ya go |
| 00:16:54 | evan | thats fine |
| 00:17:00 | evan | now do a git:pull |
| 00:17:02 | headius_ leaves the room. | |
| 00:18:09 | zenspider | this is quite possibly the worst written/documented/supported tool ever |
| 00:18:44 | zenspider | so, now I should do brixen's commands to go over to my branch? |
| 00:18:55 | evan | did you create a branch to go to? |
| 00:18:58 | evan | you said you were on master |
| 00:19:01 | evan | which is the default branch. |
| 00:19:21 | zenspider | I had a branch |
| 00:19:29 | zenspider | mentabatory_branch |
| 00:19:37 | evan | git checkout mentabatory_branch |
| 00:19:38 | zenspider | why I'm on master I have no fucking idea |
| 00:19:52 | evan | thats git:update doing that |
| 00:19:56 | zenspider | what about reset HEAD^ ? |
| 00:19:56 | evan | it got an error |
| 00:20:00 | evan | forget that. |
| 00:20:31 | headius | I'm getting confused just watching |
| 00:20:43 | solarce | haha |
| 00:20:50 | zenspider | evan: what's the error? |
| 00:20:57 | solarce | I'm busy crafting zed dolls to sell in the street |
| 00:20:59 | evan | which error? |
| 00:21:23 | zenspider | you tell me. I have no freakin' clue |
| 00:21:29 | evan | i need more context. |
| 00:21:31 | zenspider | why did I wind up on master? |
| 00:21:39 | evan | oh, that. |
| 00:21:45 | evan | the error was that the index wasn't empty |
| 00:22:30 | zenspider | so it freaked out and put me in master? |
| 00:22:36 | evan | git:update did. |
| 00:22:37 | evan | yes. |
| 00:22:50 | evan | we can code it to return you to the original branch |
| 00:22:53 | evan | i didn't originally |
| 00:23:05 | zenspider | sigh |
| 00:23:23 | evan | is glad zenspider has big lungs, he sigh's a lot. |
| 00:23:35 | zenspider | ok. whatever. you guys have no right to yell at me or anyone for committing from master |
| 00:23:55 | zenspider | which, btw, heads up, my next commit will be from master. :/ |
| 00:24:02 | zenspider | or a mix... I dunno if you can tell on that one |
| 00:24:03 | evan | thats fine. |
| 00:24:05 | solarce | zenspider: how about we just yell for no reason? |
| 00:24:40 | brixen | well, git status tells you what branch you're on, so I git status before git commit |
| 00:24:41 | zenspider | wait... now the changes I had in master aren't in my branch... |
| 00:24:48 | zenspider | that means I need to rebase, right? |
| 00:24:53 | evan | yep |
| 00:25:02 | zenspider | brixen: not my job |
| 00:25:21 | zenspider | master, right? |
| 00:25:37 | pauldix leaves the room. | |
| 00:26:36 | evan | why is boyscout so slow.... |
| 00:26:46 | evan | zenspider: i just commited a bunch of fixes for compiler2 |
| 00:26:47 | crazeinc enters the room. | |
| 00:26:53 | zenspider | ARGH |
| 00:26:59 | zenspider | http://rafb.net/p/NbrYaY29.html |
| 00:27:03 | wmoxam leaves the room. | |
| 00:27:13 | zenspider | is boyscout a daemon or a cronjob ? |
| 00:27:31 | evan | daemon |
| 00:27:41 | evan | zenspider: use 'git checkout <file>' |
| 00:27:50 | boyscout | 1 commit by Evan Phoenix |
| 00:27:51 | boyscout | * Clean up compiler2 specs |
| 00:28:00 | evan | so odd he's slow, need to look at that. |
| 00:28:19 | evan | 'git revert' takes a commit to revert |
| 00:28:33 | evan | thats one thing vocab thing i wish they hadn't changed. |
| 00:29:53 | agardiner enters the room. | |
| 00:29:57 | evan | zenspider: if you used 'rake git:pull', that would work worked |
| 00:30:11 | agardiner | howdy |
| 00:30:13 | evan | it rebases with master as part of it's operations |
| 00:30:16 | evan | agardiner: hey there! |
| 00:30:18 | brixen | git:pull? |
| 00:30:36 | evan | git:update |
| 00:30:38 | evan | same thing |
| 00:30:46 | evan | zenspider made git:pull an alias for git:update |
| 00:30:52 | zenspider | git:pull wasn't working |
| 00:30:56 | agardiner | evan: how was the snow? |
| 00:30:59 | zenspider | http://rafb.net/p/J5QriO69.html |
| 00:31:06 | zenspider | ok. I can't run the compiler now |
| 00:31:32 | fowlduck enters the room. | |
| 00:31:50 | agardiner | we're baking here - heading for high 90s today |
| 00:31:53 | evan | zenspider: run 'rake' |
| 00:32:06 | evan | zenspider: i think i fucked something up in that last commit, one sec. |
| 00:32:13 | zenspider | yeah. drbrain just got me on that |
| 00:32:24 | zenspider | I think you did too... or I didn't pick it up at all |
| 00:32:46 | zenspider | Is there a way to make git:update actually show the updated file list? |
| 00:32:58 | evan | i thought it did... |
| 00:33:01 | evan | but yeah, thereis. |
| 00:33:05 | zenspider | that's probably the most frustrating thing is I have no idea what comes down the pipe |
| 00:33:12 | evan | sure |
| 00:33:56 | agardiner leaves the room. | |
| 00:33:56 | zenspider | I get one fragment of ONE of the commit messages (latest?) so I can never tell |
| 00:34:10 | evan | i'll add it to git:update now |
| 00:34:36 | boyscout | 1 commit by Evan Phoenix |
| 00:34:37 | boyscout | * Mark the Expression node properly |
| 00:34:54 | evan | zenspider: but, for ref: git diff-tree --stat HEAD..HEAD^^ |
| 00:35:01 | evan | that shows you the info for the last 3 commits |
| 00:35:30 | evan | er, thats 2, but you get the idea. |
| 00:37:11 | cored enters the room. | |
| 00:38:37 | evan | ah, i see the rlimit problem |
| 00:38:45 | evan | well, i'm glad I added the type checks to FFI |
| 00:39:00 | drbrain | hrm, I have found it |
| 00:39:09 | drbrain | NODE_SCOPE's nd_tbl has 2 elements |
| 00:39:16 | drbrain | (or should), but sz is 3 |
| 00:40:54 | drbrain | the definition is: |
| 00:40:54 | evan | hm. |
| 00:41:00 | _mutle leaves the room. | |
| 00:41:02 | drbrain | def initialize(stream, opts={}) |
| 00:41:30 | evan | eh? |
| 00:41:59 | drbrain | stream and opts are entries 1 and 2 in the nd_tbl |
| 00:42:11 | evan | i have no clue what your initialize is. |
| 00:42:17 | drbrain | I don't know how it counts the third one, which ends up being my bad quark |
| 00:42:29 | drbrain | reset |
| 00:42:35 | evan | in what? |
| 00:42:41 | drbrain | stop |
| 00:42:42 | evan | more context please. |
| 00:42:45 | drbrain | erase your brain |
| 00:42:57 | evan | i don't think abby would like that. |
| 00:43:09 | drbrain | except that part |
| 00:43:12 | drbrain | ok |
| 00:43:34 | drbrain | I'm getting an error from Class#to_sexp |
| 00:43:39 | drbrain | KERN_PROTECTION_FAILURE |
| 00:43:58 | drbrain | what it's doing is walking a NODE_SCOPE's local table |
| 00:44:26 | drbrain | case NODE_SCOPE in grammar_runtime.c |
| 00:44:35 | evan | could you paste the ruby code in question? |
| 00:44:41 | drbrain | so, it pulls out node->nd_tbl, and finds it's size is 3 |
| 00:44:41 | evan | the input to to_sexp |
| 00:44:47 | drbrain | it's from rbyaml.rb |
| 00:45:15 | headius_ enters the room. | |
| 00:45:29 | drbrain | http://rafb.net/p/SqIzOX24.html |
| 00:46:09 | drbrain | so next, it walks over the entries in the nd_tbl |
| 00:46:42 | evan | k |
| 00:46:45 | evan | got it. |
| 00:46:47 | drbrain | 0 is 'stream', 1 is 'opts', 2 is *BOOM* |
| 00:47:00 | evan | ok, thats the names of the locals. |
| 00:47:18 | drbrain | yes |
| 00:47:25 | drbrain | there are 2 of them |
| 00:47:29 | drbrain | or, seem to be |
| 00:47:34 | drbrain | then, the third goes *boom* |
| 00:47:53 | evan | hm, ok. |
| 00:48:01 | evan | well, looking at this code. |
| 00:48:09 | drbrain | and, I don't see a third local |
| 00:48:11 | evan | seems like sz should be 2 |
| 00:48:13 | evan | yep |
| 00:48:19 | drbrain | yes |
| 00:48:54 | drbrain | and that's what I'm trying to track down |
| 00:49:09 | evan | k |
| 00:50:18 | drbrain | so, any hints would be appreciated |
| 00:50:24 | evan | hm. |
| 00:50:25 | evan | k |
| 00:50:44 | evan | well, have you found where nd_tbl is created? |
| 00:51:09 | d2dchat leaves the room. | |
| 00:51:25 | drbrain | it comes from syd_local_table |
| 00:51:34 | drbrain | ... why is grammar.c checked in? |
| 00:51:36 | mutle enters the room. | |
| 00:51:39 | d2dchat enters the room. | |
| 00:51:47 | zenspider | evan: I've still got 100% failures on masgn |
| 00:51:48 | evan | drbrain: same reason it's checked in in 1.8 |
| 00:51:58 | evan | hrm. |
| 00:52:12 | drbrain | evan: it isn't |
| 00:52:18 | drbrain | $ svn info parse.c |
| 00:52:25 | drbrain | parse.c: (Not a versioned resource) |
| 00:52:33 | evan | zenspider: you're running "bin/mspec spec/compiler2/masgn_spec.rb" |
| 00:52:34 | evan | ? |
| 00:52:41 | drbrain | it is shipped with tarballs |
| 00:52:44 | zenspider | aye |
| 00:52:47 | drbrain | but it is not checked in |
| 00:52:49 | evan | drbrain: thats what i was thinking.. |
| 00:52:50 | zenspider | rake && .... |
| 00:52:55 | evan | drbrain: well, delete it |
| 00:53:02 | drbrain | ok |
| 00:53:03 | evan | i don't really care. |
| 00:53:18 | evan | zenspider: could you paste your output? |
| 00:53:38 | zenspider | hrm. I'm wondering if I picked up your change |
| 00:53:47 | zenspider | it is def the sret on the end of everything |
| 00:54:02 | evan | hm, then yeah, feels like you didn't pick up my changes. |
| 00:54:10 | zenspider | http://rafb.net/p/j2kQke92.html |
| 00:54:14 | zenspider | crap |
| 00:54:18 | headius leaves the room. | |
| 00:54:19 | zenspider | god damnit |
| 00:54:25 | zenspider | I'm gonna fucking kill git |
| 00:54:38 | evan | stop adding masgn_spec.rb |
| 00:54:39 | evan | you're fighting it. |
| 00:54:46 | evan | unless you're about to commit. |
| 00:55:11 | evan | do this |
| 00:55:18 | evan | 'git reset; rake git:update' |
| 00:55:56 | zenspider | I'm fighting it? aren't tools supposed to serve men, not the other way around? |
| 00:56:02 | zenspider | http://rafb.net/p/wBPju838.html |
| 00:56:02 | headius leaves the room. | |
| 00:56:18 | zenspider | you've got a clean spec run, right? |
| 00:56:33 | headius enters the room. | |
| 00:56:42 | evan | i'll reverify |
| 00:57:16 | zenspider | or maybe it didn't go all the way up to the repo? |
| 00:57:35 | evan | run 'git reset; rake git:update' and pastie me the whole output |
| 00:57:37 | evan | not just part. |
| 00:57:44 | zenspider | well... boyscout saw it |
| 00:57:47 | headius | time for a new wireless AP methinks |
| 00:58:18 | zenspider | I am pasting everything |
| 00:58:24 | zenspider | http://rafb.net/p/R95iwP86.html |
| 00:58:27 | evan | then rafb cut it off. |
| 00:58:51 | zenspider | evan: no. I see the bottom w/ the spec summary |
| 00:59:00 | zenspider | (on the previous paste, obviosuly) |
| 00:59:05 | zenspider | stupid fingers |
| 00:59:05 | evan | yeah. |
| 00:59:06 | evan | hm. |
| 00:59:41 | evan | ok, run 'git log' |
| 00:59:44 | evan | do you see my commits? |
| 01:00:15 | drbrain | evan: a local_append() is doing it |
| 01:00:27 | drbrain | in CASE_DOT3 in cond0 |
| 01:00:32 | drbrain | (grammar.y) |
| 01:00:40 | zenspider | Author: Evan Phoenix <evan@fallingsnow.net> |
| 01:00:47 | zenspider | Date: Thu Jan 3 16:32:29 2008 -0800 |
| 01:00:51 | drbrain | err, NODE_DOT3/NODE_DOT2 |
| 01:00:52 | evan | ok, thats it. |
| 01:00:54 | zenspider | Mark the Expression node properly |
| 01:00:56 | evan | yep. |
| 01:01:00 | zenspider | as well as cleaning up the specs |
| 01:01:17 | evan | why are you still seeing the errors.... |
| 01:01:21 | zenspider | then why is my side failing 100% with the same crap? |
| 01:01:29 | brixen | evan: I'm seeing them too |
| 01:01:32 | brixen | on spec/compiler2 |
| 01:01:37 | drbrain | @best_indent = opts[:Indent] if 2...10 === opts[:Indent] |
| 01:01:38 | evan | oh well thats good. |
| 01:01:41 | drbrain | that line is adding a local |
| 01:01:44 | evan | 2 is better than 1 |
| 01:01:50 | evan | when it comes to strange failures. |
| 01:01:51 | zenspider | can I do something like 'p4 describe revision' ? |
| 01:01:59 | evan | whats that do in p4? |
| 01:02:01 | brixen | git show <hash> |
| 01:02:08 | tmm1 enters the room. | |
| 01:02:20 | zenspider | ok. cool. thanks |
| 01:02:21 | evan | HEAD, HEAD^, etc work as <hash> too |
| 01:02:31 | zenspider | just making sure my commit on the spec didn't roll out your changes |
| 01:02:37 | brixen | zenspider: you should install: http://git.rubini.us/?p=apps/tig;a=summary |
| 01:02:41 | brixen | it's quite useful |
| 01:02:41 | zenspider | yeah. that's so intuitive I'll never remember it |
| 01:02:44 | drbrain | yay! |
| 01:02:56 | zenspider | I'm wondering if I need a rebuild on the compiler? |
| 01:03:01 | zenspider | or recompile the specs? |
| 01:03:05 | evan | rake just returns? |
| 01:03:12 | zenspider | yup |
| 01:03:14 | evan | because it should be using lib/compiler2 |
| 01:03:18 | drbrain | http://rafb.net/p/0zonBk26.html |
| 01:03:20 | evan | not the stable compiler2 |
| 01:03:22 | drbrain | reproduces |
| 01:03:39 | evan | drbrain: ok, let me get zenspider on the road again |
| 01:03:51 | drbrain | np, I'm still poking |
| 01:03:52 | zenspider | all I know is I supossedly have your changes and my specs are 100% blown |
| 01:03:58 | evan | yep |
| 01:04:15 | zenspider | I gotta run in the next 5 minutes |
| 01:04:21 | evan | brixen: to confirm, running 'bin/mspec spec/compiler2/masgn_spec.rb' gives a lot of failures too |
| 01:04:24 | evan | zenspider: k |
| 01:04:24 | zenspider | I'm thinking a pristine |
| 01:04:32 | brixen | evan: yeah, 100% |
| 01:04:39 | brixen | bin/mspec -C forces recompile, no difference |
| 01:04:39 | evan | wait wait. |
| 01:04:44 | evan | now mine are blowing up. |
| 01:04:56 | evan | hm, what didn't i do... |
| 01:05:02 | zenspider | haha |
| 01:05:13 | zenspider | I just did a rake clean, so too late. :P |
| 01:05:21 | evan | no prob |
| 01:05:41 | evan | ack! |
| 01:05:52 | loincloth leaves the room. | |
| 01:06:11 | zenspider | where is the m in mspec if -C recompiles? |
| 01:06:15 | evan | ok, i see the problem. |
| 01:06:17 | evan | one sec. |
| 01:06:26 | brixen | zenspider: eh? |
| 01:07:14 | brixen | -C cleans, thereby forcing a recompile |
| 01:07:46 | evan | ok |
| 01:07:50 | zenspider | right... not very 'm' |
| 01:07:50 | evan | do an update/pull |
| 01:08:45 | zenspider | cool. down to my one |
| 01:08:45 | boyscout | 1 commit by Evan Phoenix |
| 01:08:46 | boyscout | * Have Expression output different bytecode than Snippit |
| 01:08:48 | zenspider | thanks |
| 01:08:52 | evan | no prob. |
| 01:08:56 | zenspider | I'll try to get that working tonight |
| 01:08:58 | evan | there should be 2 that still fail |
| 01:09:01 | evan | some for specs |
| 01:09:06 | evan | the need more thought |
| 01:09:08 | zenspider | um. nope |
| 01:09:09 | evan | s/the/they/ |
| 01:09:13 | zenspider | just my one |
| 01:09:21 | evan | they're not in masgn |
| 01:09:26 | zenspider | unless you're talking about all of compiler2 |
| 01:09:31 | evan | yep |
| 01:09:38 | zenspider | yeah. you are |
| 01:09:43 | zenspider | ok... I'm out |
| 01:09:43 | drbrain | it looks like id_internal() is not compatible with quark |
| 01:10:06 | evan | drbrain: any idea what |
| 01:10:11 | evan | node->nd_cnt = local_append(internal_id()); |
| 01:10:13 | evan | is for? |
| 01:10:36 | drbrain | cond0 is turning NODE_DOT3 into NODE_FLIP3 |
| 01:10:57 | drbrain | so, "if 2...10 === opts[:Indent]" |
| 01:10:57 | headius | hooray for flipflop |
| 01:11:12 | drbrain | turns into (2...10).include? opts[:Indent] |
| 01:11:17 | evan | takes a crap on flipflop |
| 01:11:36 | evan | but why does it need to add a local to do that? |
| 01:11:39 | evan | thats what i don't get. |
| 01:11:52 | drbrain | I'm not sure |
| 01:12:01 | evan | sure, change the expression, but this thing... |
| 01:12:31 | evan | you can actually just comment out that line. |
| 01:12:34 | evan | and it will work. |
| 01:12:42 | evan | because nd_cnt is ignored by runtime.c |
| 01:12:48 | evan | in DOT3 and FLIP3 |
| 01:12:56 | evan | oooh |
| 01:12:58 | evan | i know why! |
| 01:13:03 | evan | it's creating a temp local variable |
| 01:13:07 | evan | to hold the result of the flipflip |
| 01:13:35 | drbrain | commenting out the line gives: |
| 01:13:37 | headius | yeah |
| 01:13:44 | drbrain | Compilation error detected: Unable to resolve flip3 |
| 01:13:49 | evan | thats fine! |
| 01:13:51 | evan | thats what we want. |
| 01:13:51 | headius | each flip-flop gets an anonymous local var to store the condition |
| 01:13:58 | evan | because compiler2 doesn't understand flipflop yet |
| 01:14:11 | evan | i never coded up handling for flip3 |
| 01:14:37 | drbrain | I can change rbyaml to not use FLIP3 |
| 01:14:49 | evan | go ahead |
| 01:14:56 | evan | i'll code up support for flip3 |
| 01:15:00 | evan | it's pretty easy. |
| 01:15:04 | drbrain | ok, I'll rip out interal_id() too |
| 01:15:08 | evan | k |
| 01:15:10 | headius | rbyaml? |
| 01:15:12 | drbrain | I don't think you'll need it |
| 01:15:15 | evan | nope |
| 01:15:19 | drbrain | and this is the only place it's used |
| 01:15:20 | evan | it was only used that one place. |
| 01:15:22 | headius | wazzat? and why does it use flipflop? |
| 01:15:22 | evan | jinx! |
| 01:15:50 | drbrain | headius: http://rbyaml.rubyforge.org/ |
| 01:16:08 | headius | oh, ola's project |
| 01:16:11 | headius | what you using that for? |
| 01:16:19 | drbrain | yaml |
| 01:16:44 | headius | I thought syck was working |
| 01:16:54 | drbrain | syck is compiling |
| 01:17:46 | headius | evan, didn't you wire up syck in denver? |
| 01:18:22 | headius | rbyaml should be enough to get rubygems working, but I know Ola hasn't maintained it in almost a year |
| 01:18:25 | drbrain | it's not fully wired |
| 01:18:26 | headius | so there's sure to be bugs |
| 01:18:39 | headius | we ran rubygems with rbyaml for a while |
| 01:19:28 | headius | glad to see you're giving it a try, I always thought that would be the better way to go short term |
| 01:19:44 | shoe | zenspider: this may be the minority report, but my advice is to a) ignore the git rake tasks and b) read git's user_manual through once. |
| 01:20:02 | headius | here here |
| 01:20:04 | drbrain | shoe: that's too much typing |
| 01:20:11 | evan | shoe: i vastly prefer people use the git rake tasks for a while. |
| 01:20:20 | headius | I use a total of about four git commands |
| 01:21:18 | wayneeseguin enters the room. | |
| 01:21:37 | tmm1 leaves the room. | |
| 01:22:21 | evan | the rlimit errors are because it's returning bignums |
| 01:22:36 | evan | getrlimit is returning bignums |
| 01:22:52 | evan | and setrlimit is rejecting them because it's looking specifily for fixnums |
| 01:24:50 | shoe | hmm |
| 01:24:57 | shoe | my fault |
| 01:25:01 | evan | i'm fixing it now |
| 01:25:10 | evan | ffi should accept bignums there. |
| 01:25:23 | shoe | yes |
| 01:26:48 | shoe | I'm getting kind of tired of Process - I want to be done already. |
| 01:27:06 | evan | hehe |
| 01:27:25 | headius | do you need all that stuff? |
| 01:27:27 | shoe | I only started this whole process because I wanted waitpid to work. |
| 01:27:47 | shoe | but to properly spec it, I needed fork to work. |
| 01:28:04 | evan | thats always how it starts |
| 01:28:04 | shoe | it was like falling into a rabbit hole. |
| 01:28:07 | evan | you did some great work |
| 01:28:13 | shoe | thanks. |
| 01:28:15 | evan | so don't think it was for not |
| 01:28:16 | evan | :D |
| 01:28:21 | shoe | hopefully Process is done. |
| 01:28:28 | drbrain | it's a shame get/setrlimit don't work on OS X |
| 01:28:36 | shoe | headius: Ironically, I don't particularly need it. |
| 01:28:44 | headius | you can fix our Process now, since you're an expert |
| 01:29:02 | shoe | I just figured... "hmm... multi-process stuff probably needs all this stuff." |
| 01:29:03 | headius | you can bounce from impl to impl implementing Process |
| 01:29:16 | headius | it will be your own personal hell |
| 01:29:19 | shoe | headius: um... maybe not. :) |
| 01:29:53 | headius | I'm not sure why we have remaining failures in process...just not familiar enough with these apis |
| 01:30:08 | headius | pids seem to be "off" |
| 01:30:17 | shoe | There are probably worse areas than Process. maybe Dir, or IO. |
| 01:30:25 | shoe | or String, or Regexp. |
| 01:30:36 | headius | I'd rather work on String or Regexp than Dir |
| 01:30:52 | shoe | headius: which spec? |
| 01:31:12 | headius | a bunch of them...the pids are off by 1 or coming up as 0 |
| 01:31:27 | headius | you added some new ones that fail now too |
| 01:31:41 | shoe | headius: I used a before :all to avoid one spec failure cascading into other, but it would have been more conservative to make it before :each. |
| 01:31:45 | headius | fork appears to be working ok in jruby, but not all the other methods |
| 01:31:45 | evan | arg. |
| 01:31:46 | drbrain | haha! grammar.c was missing its dependency |
| 01:32:08 | shoe | headius: change the before :all to before :each and see what fails then. |
| 01:32:18 | evan | i wonder how i can get people to always use {} on if statements in C |
| 01:32:21 | headius | bunch of missing constants also, but that's easy |
| 01:32:25 | shoe | headius: or, just blame the first failure. |
| 01:32:35 | evan | unless it's all on one line. |
| 01:32:39 | shoe | evan: CodingStyle |
| 01:32:50 | evan | people don't seem to obey it. |
| 01:32:53 | brixen | shoe: did you have plans for write/read_array_of_long? |
| 01:33:00 | headius | there's a bunch of these: |
| 01:33:00 | headius | Process.kill sends the given signal to the specified process FAILED |
| 01:33:01 | headius | Expected 5 to equal 99: |
| 01:33:10 | headius | exit code not coming out right |
| 01:33:16 | shoe | evan: although, I'd prefer a space after "if": if (foo) |
| 01:33:19 | headius | oh well |
| 01:33:24 | evan | shoe: i don't. :D |
| 01:33:38 | evan | shoe: a big part of it is just staying consistent. |
| 01:33:46 | shoe | I can't imagine why. There's just no accounting for taste! :) |
| 01:34:12 | shoe | evan: consistent with what? "if" is no function. |
| 01:34:24 | evan | i think that because with a space, it makes me feel like the ()'s are just a random grouping |
| 01:35:08 | shoe | brixen: actually, I had used them for setrlimit, but changed it to use FFI:Struct, and decided it wouldn't hurt to leave them. |
| 01:35:33 | Radarek leaves the room. | |
| 01:35:45 | brixen | shoe: ok, it was using :int as the type. I changed it but then I couldn't find anything using it |
| 01:35:57 | enebo enters the room. | |
| 01:36:48 | brixen | this is so odd, somehow I use rake git:update and rake git:push all day with no problem |
| 01:37:00 | shoe | brixen: oh dear. |
| 01:37:24 | evan | ok |
| 01:37:25 | evan | well |
| 01:37:31 | evan | i fixed the ffi bug with setrlimit |
| 01:37:56 | boyscout | 2 commits by Brian Ford |
| 01:37:57 | boyscout | * Use the correct type in read/write_array_of_long. |
| 01:37:58 | boyscout | * Use #equal? (object identity) when comparing against Undefined. |
| 01:38:08 | evan | now, on darwin, i'm getting 'Invalid argument' from errno |
| 01:38:32 | evan | brixen: i use it without problem too |
| 01:38:40 | shoe | evan: all the big C code communities I know of use space after keywords. linux, GNU, mozilla, etc. |
| 01:39:15 | evan | i've never been a follower. |
| 01:39:17 | evan | :D |
| 01:39:27 | evan | it's more a habit |
| 01:39:30 | evan | not sure where it occured. |
| 01:39:39 | brixen | too bad C didn't allow the () to be optional on if |
| 01:39:57 | boyscout | 2 commits by Eric Hodel |
| 01:39:58 | boyscout | * Add grammar.c |
| 01:39:59 | brixen | if we're talking code standards, what about 'then' on conditionals in ruby? |
| 01:39:59 | boyscout | * Remove unused local variable added when turning NODE_DOT into NODE_FLIP. |
| 01:40:30 | wyhaines | Bleah. |
| 01:40:33 | drbrain | then is important |
| 01:40:46 | drbrain | you read and go "aha! end of conditional" |
| 01:40:53 | wyhaines | Important for parsing? Hmmm. |
| 01:40:56 | drbrain | plus, it reads just like English |
| 01:41:03 | drbrain | eye-parsing |
| 01:41:03 | brixen | it's total noise, IMO |
| 01:41:10 | evan | again |
| 01:41:14 | brixen | and I rarely see it |
| 01:41:14 | evan | it's most about conistency |
| 01:41:15 | wyhaines | I see the argument, but I am with brixen. |
| 01:41:21 | evan | which drbrain is breaking. |
| 01:41:21 | shoe | brixen: I agree |
| 01:41:22 | evan | :D |
| 01:41:25 | headius | looks like VB |
| 01:41:50 | drbrain | ruby2ruby says you need thens |
| 01:42:00 | cored_ enters the room. | |
| 01:42:05 | evan | and who wrote that? |
| 01:42:08 | brixen | what is this ruby2ruby? :P |
| 01:42:14 | shoe | hehe |
| 01:42:26 | evan | i wish that we didn't have the choice, honestly. |
| 01:42:30 | drbrain | somebody would have written it, I just got there first |
| 01:42:31 | brixen | talk about violating DRY, one ruby is enough |
| 01:42:57 | drbrain | also, ruby2ruby says you have to many () |
| 01:43:01 | drbrain | too |
| 01:43:10 | brixen | why are () not necessary but 'then's are?> |
| 01:43:25 | drbrain | English |
| 01:43:33 | brixen | especially with statement modifiers? |
| 01:43:51 | brixen | foo a, b, c unless boo d |
| 01:44:11 | brixen | s/statement// |
| 01:44:16 | evan | drbrain: but you don't put do after your whiles |
| 01:44:29 | drbrain | anybody who uses a, b, c, d as variable names should be beaten |
| 01:44:37 | drbrain | evan: if I don't, I've been a bad boy |
| 01:44:39 | shoe | I've never understood why people want to model programming languages after a natural language as ambiguous as English. |
| 01:44:43 | wyhaines | Heh. I prefer (), too. Easier for my eye to parse it that way. |
| 01:45:01 | headius | take a nice terse language and use the most verbose standard possible |
| 01:45:09 | drbrain | I've found needing () to parse means it's too complex |
| 01:45:16 | drbrain | (eye-parse) |
| 01:45:29 | drbrain | \n > () |
| 01:45:49 | brixen | I use () if the arguments span a good distance |
| 01:45:57 | brixen | but I try to not need them |
| 01:45:58 | evan | now that i agree with |
| 01:46:06 | evan | there was some code in String that i made simpler |
| 01:46:07 | evan | had |
| 01:46:14 | brixen | except for stuff like lambda { something }.should raise_error(Exception) |
| 01:46:18 | evan | while (idx, match = some_helper(a,b)) && match |
| 01:46:19 | evan | wtf. |
| 01:46:21 | wyhaines | Even on very simple statements: def foo param1, param2, param3 |
| 01:46:26 | shoe | evan: is boyscout on coffee break? |
| 01:46:27 | evan | i don't ever think through the flow of that code. |
| 01:46:32 | wyhaines | I'd prefer def foo(param1,param2,param3) |
| 01:46:32 | evan | shoe: something is wrong with him. |
| 01:46:44 | brixen | he's just slow |
| 01:47:42 | brixen | wyhaines: heh, I do too, but now, why no spaces after , ? :) |
| 01:48:04 | wyhaines | brixen, I usually put them in when I am coding. :) |
| 01:48:11 | brixen | oh, relief :) |
| 01:48:15 | headius | I'm glad I don't have to worry about this...Java code mostly looks like ass no matter what standard you use |
| 01:48:22 | brixen | hear hear |
| 01:48:32 | headius | but then so does C |
| 01:48:37 | jeremydurham enters the room. | |
| 01:48:41 | Fullmoon leaves the room. | |
| 01:49:35 | brixen | indeed, hence, the overwhelming urge to write this in ruby :) |
| 01:49:57 | headius | quite true |
| 01:50:12 | headius | and on that note, I'm trying to figure out a good way to do that wiring together of rbx libs and jruby we talked about |
| 01:50:18 | headius | optionally swapping in rbx stuff |
| 01:50:26 | brixen | ah, yes |
| 01:50:36 | brixen | well, the core_bridge stuff work at all? |
| 01:50:43 | shoe | so, I keep hearing people gripe about YAML not working. Is there something fundamentally hard about that? |
| 01:51:03 | headius | there's been no progress getting Rubinius.asm out of the core source unfortunately |
| 01:51:14 | brixen | headius: really? |
| 01:51:18 | shoe | oh wait, nm. (forgot about libev) |
| 01:51:20 | drbrain | shoe: if by "people" you mean "drbrain", then, kinda |
| 01:51:21 | brixen | le'me look, I thought it was in bootstrap |
| 01:51:49 | headius | looks like there's five instances left |
| 01:51:57 | headius | I don't know what the old count would have been |
| 01:52:29 | brixen | well, CompiledMethod doesn't count, does it? |
| 01:52:36 | headius | some of the core classes are a bit tricky since we construct instance of them directly as part of JRuby |
| 01:52:46 | boyscout | 2 commits by Evan Phoenix |
| 01:52:47 | boyscout | * Fix up setrlimit/getrlimit on darwin |
| 01:52:48 | boyscout | * Refactor $~ out as a global, into Regexp.last_match directly |
| 01:53:01 | evan | ok, $~ is gone from being a global. |
| 01:53:03 | headius | I suppose that doesn't impact the ruby impl too much if the same native type implements what it needs to |
| 01:53:08 | brixen | String#dup need some work, then it'd go |
| 01:53:20 | evan | String#dup should be a primitive now. |
| 01:53:22 | evan | i made it one. |
| 01:53:38 | brixen | ok, there's still #dup in core that uses Rubinius.asm |
| 01:53:55 | headius | it would probably be easier to work from the top down on some of these, try to wire in a few composite types first |
| 01:54:06 | headius | but I believe those aren't as complete as string/array etc, yeah? |
| 01:54:13 | brixen | headius: Array should work? |
| 01:54:21 | headius | checking array now |
| 01:55:20 | headius | ivar_as_index stuff is just an optimization, no? |
| 01:55:26 | evan | yep. |
| 01:55:31 | headius | couldn't they be moved to bootstrap |
| 01:55:43 | pauldix enters the room. | |
| 01:56:05 | evan | no |
| 01:56:55 | evan | hm |
| 01:57:03 | evan | the String#dup in core needs to be deleted. |
| 01:57:49 | brixen | done, running bin/ci |
| 01:58:45 | evan | hm |
| 01:58:47 | evan | nope |
| 01:58:55 | evan | because it isn't propogating taint bits. |
| 01:58:59 | drbrain | fuck! |
| 01:59:02 | evan | let me see if i can fix that. |
| 01:59:08 | drbrain | this operation does not make sense in RbYAML (right now) |
| 01:59:15 | evan | hah |
| 01:59:23 | cored leaves the room. | |
| 01:59:23 | headius | ok, explain the tuple stuff to me |
| 01:59:23 | brixen | evan: weren't we going to try to handle taint and frozen later? |
| 01:59:30 | headius | er |
| 01:59:31 | drbrain | only the operation I need |
| 01:59:31 | headius | not tuple |
| 01:59:34 | headius | core_bridge |
| 01:59:36 | evan | yeah, but we still have specs for it. |
| 01:59:39 | shoe | evan: please consider the reasoning behind the space-after-keywords style - it's not arbitrary. |
| 01:59:54 | evan | what is the reasoning for me to reconsider? |
| 02:00:02 | brixen | headius: what's the question? |
| 02:00:13 | headius | well, what does it do? how can I use it? |
| 02:00:13 | shoe | readability. spaces help. |
| 02:00:31 | headius | looks like a pure ruby impl of tuple perhaps |
| 02:00:34 | brixen | headius: well, it implements a Tuple using regular ruby |
| 02:00:37 | brixen | yeah |
| 02:00:46 | tarcieri | Rubinius has tuples? |
| 02:00:50 | brixen | I haven't touched it in a while though |
| 02:00:50 | evan | shoe: i don't agree. |
| 02:00:59 | evan | that isn't much to reconsider. |
| 02:01:10 | brixen | tarcieri: Tuple is a fixed array-like data struct, yes |
| 02:01:13 | tarcieri | nice |
| 02:01:18 | tarcieri | could really use tuples |
| 02:01:19 | brixen | tarcieri: we use it to implement other stuff |
| 02:01:23 | tarcieri | awesome |
| 02:01:43 | headius | hashi is what? a few utility methods to stub out things the core classes need? |
| 02:01:55 | brixen | headius: yeah, that was the idea |
| 02:02:00 | tarcieri | brixen: i'm basically reimplementing a lot of the core features of Erlang in Ruby |
| 02:02:03 | brixen | headius: it's in lib/core_bridge now |
| 02:02:11 | tarcieri | brixen: tuples would be quite handy |
| 02:02:12 | brixen | tarcieri: awesome! |
| 02:02:43 | tarcieri | brixen: I have an Actor implementation based on Fibers which is mostly API compatible with the one in Rubinius |
| 02:03:02 | tarcieri | i added some stuff MenTaLguY didn't do though |
| 02:03:04 | brixen | tarcieri: although, Tuple instances aren't immutable per se, they're just fixed size |
| 02:03:04 | tarcieri | like timeouts |
| 02:03:15 | tarcieri | they're less costly than arrays though, no? |
| 02:03:17 | tarcieri | at least in terms of memory |
| 02:03:20 | boyscout | 1 commit by Evan Phoenix |
| 02:03:20 | vasco leaves the room. | |
| 02:03:21 | boyscout | * Propagate taint bit on primitive string dup |
| 02:03:22 | brixen | tarcieri: thought about collab'ing with mental? |
| 02:03:28 | drbrain | well, at least now I've got something sane to work with |
| 02:03:30 | evan | brixen: i removed the String#dup in core |
| 02:03:30 | tarcieri | brixen: yeah, I've been meaning to e-mail him |
| 02:03:38 | brixen | evan: ok |
| 02:03:57 | brixen | tarcieri: we definitely want the best concurrency options possible |
| 02:03:59 | brixen | baked in |
| 02:04:02 | evan | tarcieri: Tuple is cheaper all around than Array |
| 02:04:03 | brixen | ready to rock :) |
| 02:04:06 | evan | tarcieri: both in memory and in speed |
| 02:04:06 | tarcieri | evan: awesome |
| 02:04:11 | evan | because tuple has a super thin API |
| 02:04:18 | evan | unlike Array, which has a giant, complicated API. |
| 02:04:24 | mcnamarabrian enters the room. | |
| 02:04:31 | tarcieri | evan: i'm doing things like the gen_server API... and even just FSMs... everything returns an array |
| 02:04:31 | headius | hmmm |
| 02:04:40 | headius | seems to be loading array but not calling the correct each |
| 02:05:08 | shoe | evan: wikipedia uses the lack of space after keywords as an example of poor-readability: http://en.wikipedia.org/wiki/Programming_style |
| 02:05:12 | mcnamarabrian leaves the room. | |
| 02:05:24 | tarcieri | evan: should I look at lib/core_bridge/tuple.rb for the API? |
| 02:05:53 | headius | hmm, dependency on Type |
| 02:06:12 | evan | whats core_bridge? |
| 02:06:13 | headius | coerce |
| 02:06:38 | tarcieri | evan: dunno, just found it in my checkout doing a quick grep on all the files |
| 02:06:38 | shoe | shoe: are there any codified standards that recommend against space after keywords? |
| 02:06:53 | headius | where is Type defined? |
| 02:07:56 | shoe | hehe, my subconscious knows that I'm talking to myself. |
| 02:08:02 | headius | mmm, kernel |
| 02:08:15 | tarcieri | evan: okay, after reading the README in core_bridge I suppose kernel/core/tuple.rb is the one I should be looking at |
| 02:08:22 | evan | i doubt it. |
| 02:08:26 | evan | oh |
| 02:08:26 | headius | rabbit hold just keeps getting deeper |
| 02:08:27 | evan | yeah |
| 02:08:28 | headius | hmm |
| 02:08:29 | evan | thats the one. |
| 02:08:46 | tarcieri | hmm, I might do a C extension to implement that in my library |
| 02:08:54 | headius | Kernel calls Object.include |
| 02:09:11 | headius | include is private |
| 02:09:21 | evan | not there it isn't. |
| 02:09:51 | jasondew enters the room. | |
| 02:09:52 | headius | well, not in rbx you mean :) |
| 02:10:09 | headius | it's public all the time in rbx apparently |
| 02:10:46 | jasondew | evening all |
| 02:11:13 | headius | ok, closer...making include public and iteration using rbx array impl *sorta* worked |
| 02:11:24 | jasondew | this may be a dumb question, but has there been a disassembler written for compiler2? i saw in the source that there is one for compiler1.. |
| 02:12:36 | evan | headius: no, not in rbx. |
| 02:12:48 | headius | explain |
| 02:12:49 | evan | headius: just not marked private in core as a mistake. |
| 02:12:50 | evan | should be. |
| 02:13:01 | headius | ok, if it's private Object.include isn't going to work though |
| 02:13:12 | headius | only fcall or vcall works to private methods |
| 02:13:25 | evan | no no |
| 02:13:34 | evan | it starts out life as public. |
| 02:13:42 | evan | and it morked as private AFTER core is loaded. |
| 02:13:45 | evan | marked. |
| 02:13:49 | headius | so this is an after load thing |
| 02:13:53 | headius | fair enough |
| 02:15:39 | brixen | jasondew: not yet, but will be |
| 02:16:00 | headius | "Array[1,2,3].each {|x| p x}" produces "nil\nnil\n3" |
| 02:16:00 | headius | nil |
| 02:16:01 | headius | nil |
| 02:16:01 | headius | 3 |
| 02:16:06 | headius | er, oops |
| 02:16:16 | headius | maybe a problem with the pure ruby tuple |
| 02:16:27 | brixen | headius: could be |
| 02:16:32 | jasondew | brixen: someone already working on it? i'm very new to rubinius... seeing if i could do something to help out |
| 02:16:54 | brixen | jasondew: double check with evan, but pretty much jump in wherever |
| 02:17:13 | brixen | we try to continually push stuff, so *usually* there's not stuff cached in people's repos |
| 02:17:20 | cored | brixen: i thought that the focus was in written specs |
| 02:17:32 | brixen | cored_: not really, focus on anything |
| 02:17:38 | cored | i see |
| 02:17:52 | brixen | cored_: there's plenty of specs to make pass, and specs to write |
| 02:18:03 | brixen | either is fine, depending on your burning interest :) |
| 02:18:25 | cored | i'm new to Ruby anyway, i'm just checking out the code in case i can add something to efforts :-) |
| 02:18:40 | brixen | headius: I'm trying to remember if I was running the ruby Tuple against the tuple specs |
| 02:18:55 | brixen | cored_: awesome, it's a fun project |
| 02:19:03 | brixen | cored_: feel free to ask questions |
| 02:19:05 | headius | it gets to the point of shoving stuff into the tuple without any obvious trouble |
| 02:19:19 | headius | looking at Array#<< now |
| 02:19:40 | headius | tuple starts out with 2 elements, should be reallocated when adding the third |
| 02:20:12 | headius | ah yes |
| 02:20:15 | headius | reallocate must be broken |
| 02:20:22 | headius | Array[1,2] works ok eaching |
| 02:20:26 | brixen | bin/mspec -t r -rlib/core_bridge/tuple.rb spec/core/tuple/ |
| 02:20:34 | brixen | I get 10 errors |
| 02:20:37 | brixen | looking at those |
| 02:20:39 | headius | ok |
| 02:20:45 | headius | this is pretty close to working though |
| 02:20:49 | brixen | sweet |
| 02:21:00 | brixen | pretty cool to run this against the rbx tuple specs |
| 02:21:05 | headius | yeah |
| 02:21:51 | cored | brixen: ok, thanks :-) |
| 02:22:13 | headius | I'll run with jruby, make sure that's ok |
| 02:22:38 | headius | it wouldn't be tough to provide a basic tuple in JRuby once this works |
| 02:23:47 | brixen | ok, all but one are missing InvalidIndex |
| 02:24:04 | daesan enters the room. | |
| 02:24:07 | brixen | that's easy, just another -r |
| 02:24:48 | brixen | odd, undefined methods first, last |
| 02:25:40 | _VVSiz_ enters the room. | |
| 02:25:46 | brixen | oh, duh, I wrote these specs against Tuple in rbx |
| 02:27:53 | mass | brixen: boo |
| 02:28:01 | mass | I got a patch in ragel, yay |
| 02:28:09 | brixen | mass: congrats |
| 02:28:09 | boyscout | 1 commit by Brian Ford |
| 02:28:10 | boyscout | * Added #first, #last to core_bridge Tuple. |
| 02:28:14 | brixen | mass: why ya boo'ing me? |
| 02:28:32 | brixen | headius: bin/mspec -t r -rlib/core_bridge/tuple.rb -rlib/core_bridge/exception.rb spec/core/tuple/ |
| 02:28:46 | brixen | headius: 0 failures, 0 errors |
| 02:28:50 | headius | ok |
| 02:28:54 | mass | more of a Boo! than a boooooo |
| 02:29:04 | headius | I'll try in jruby...I had to add one thing in hashi to make Module#include public |
| 02:29:08 | brixen | mass: oh, you startled me! |
| 02:29:09 | brixen | heh |
| 02:29:19 | headius | otherwise Kernel wouldn't load which was needed for Type which was needed for coercions |
| 02:29:22 | mass | delayed reaction? |
| 02:29:30 | brixen | headius: ok |
| 02:29:30 | headius | maybe Type should be moved somewhere else |
| 02:29:53 | headius | now I know where Type is anyway so I can try to fix that jruby build problem |
| 02:30:05 | headius | something must depend on kernel now |
| 02:30:11 | mass | votes for lib/type/type.rb |
| 02:30:19 | evan | veto |
| 02:30:30 | brixen | Type has a simple enough api |
| 02:30:31 | obvio171 enters the room. | |
| 02:30:31 | mass | wow that was quick |
| 02:30:44 | brixen | these are just things that need a compatibility lib per implementation |
| 02:30:53 | headius | ok 100% in jruby to |
| 02:30:53 | mass | I think when evan saw me speak earlier he created a veto keyboard macro |
| 02:30:54 | headius | too |
| 02:30:58 | cored | good night guys |
| 02:31:02 | evan | mass: i did. |
| 02:31:04 | brixen | later cored_ |
| 02:31:12 | evan | mass: it's the big bar under my thumbs |
| 02:31:41 | headius | it's still not iterating right |
| 02:31:43 | cored_ leaves the room. | |
| 02:32:00 | binary42 enters the room. | |
| 02:32:02 | headius | ruby -r lib/core_bridge/tuple.rb -r lib/core_bridge/hashi.rb -r kernel/core/array.rb -r kernel/core/kernel.rb -e "a = Array[1,2,3]; a.each { |x| puts x }" |
| 02:32:23 | headius | copy_from seems to...not |
| 02:36:21 | kamal_fariz enters the room. | |
| 02:36:37 | kamal_fariz | morning |
| 02:37:01 | headius | man, I'm gonna be surprised if all these blocks ever perform well |
| 02:37:31 | sholden enters the room. | |
| 02:37:44 | headius | to grow an array I've gone through at least two block iterations already |
| 02:37:49 | headius | seems like these could be simple loops |
| 02:39:32 | brixen | bin/mspec -t r -rlib/core_bridge/tuple.rb -rlib/core_bridge/exception.rb -rlib/core_bridge/hashi.rb -rkernel/core/array.rb -rkernel/core/kernel.rb spec/ruby/1.8/core/array/ |
| 02:39:38 | brixen | what did you do for #include? |
| 02:39:54 | headius | public :include inside module in hashi.rb |
| 02:39:58 | brixen | k, thanks |
| 02:40:13 | headius | what's with this ivar-based index stuff in tuple? |
| 02:40:33 | brixen | heh, which tuple? |
| 02:40:42 | headius | the ruby tuple |
| 02:41:50 | brixen | headius: how did you get around Rubinius::AtExit? |
| 02:41:55 | brixen | headius: what line #? |
| 02:42:00 | headius | I haven't seen that |
| 02:42:19 | headius | def each in the ruby tuple |
| 02:42:32 | headius | and the whole "forward" method |
| 02:42:40 | VVSiz_ leaves the room. | |
| 02:43:04 | brixen | oh, it uses a linked list as the datastructure |
| 02:43:07 | brixen | how would you do it? |
| 02:43:11 | brixen | use an array? :P |
| 02:43:33 | brixen | so, with that mspec line above: 531 examples, 1484 expectations, 20 failures, 94 errors |
| 02:43:36 | headius | use a count and iterate |
| 02:43:44 | brixen | iterate over what? |
| 02:43:47 | headius | linked list is O(1) for sequential iteration |
| 02:44:32 | nicksieger leaves the room. | |
| 02:44:45 | brixen | headius: I'm probably not understanding you |
| 02:44:52 | brixen | ll has no inherent index |
| 02:44:58 | brixen | def locate(index) |
| 02:45:04 | brixen | how would you implement that? |
| 02:45:04 | nicksieger enters the room. | |
| 02:45:37 | headius | tmp_idx = 0; while tmp_idx < index; @node = @node.next .. |
| 02:45:56 | wifelette leaves the room. | |
| 02:46:13 | headius | wait, what's locate supposed to do? |
| 02:46:24 | headius | so a tuple maintains a current "position" all the time, or wat/ |
| 02:46:37 | wifelette enters the room. | |
| 02:46:43 | brixen | it allows index based access |
| 02:46:55 | brixen | I mean the real Tuple |
| 02:47:21 | brixen | you could do that, but maintaining the index just means you don't iterate from head every time |
| 02:47:30 | brixen | dunno why that's a problem |
| 02:47:50 | headius | how about threading for one |
| 02:48:00 | headius | longer-term concern perhaps, but it's there |
| 02:48:08 | headius | practically impossible to make this thread-safe |
| 02:48:13 | brixen | heh, yeah, um outside the requirement for this |
| 02:48:28 | brixen | it's a toy thing to run Array on other impl |
| 02:48:38 | brixen | if you want to do it, write a proper Tuple for your implementation |
| 02:48:39 | headius | yeah |
| 02:48:45 | headius | does the built-in tuple do this too? |
| 02:48:52 | brixen | it wouldn't need to |
| 02:49:05 | brixen | you've got a C data struct there |
| 02:49:11 | nicksieger_ enters the room. | |
| 02:49:16 | nicksieger leaves the room. | |
| 02:49:19 | brixen | doing something in Ruby without using the native data structures is hard |
| 02:49:42 | wifelette leaves the room. | |
| 02:49:56 | wifelette enters the room. | |
| 02:50:28 | brixen | so, of these failures, a lot of them are disable_long_return! |
| 02:50:36 | headius | what did you do for the at_exit |
| 02:50:46 | headius | I wasn't running mspec, just trying to run a simple piece of code |
| 02:50:56 | headius | that Array[1,2,3].each {|x| p x} |
| 02:51:01 | brixen | oh, le'me check that in |
| 02:52:22 | VVSiz_ enters the room. | |
| 02:52:27 | wifelette leaves the room. | |
| 02:52:31 | obvio leaves the room. | |
| 02:52:53 | boyscout | 1 commit by Brian Ford |
| 02:52:54 | boyscout | * A few more hashi fixes to run Tuple + Array under MRI. |
| 02:53:02 | brixen | hey boyscout is fast again |
| 02:53:30 | headius | weird |
| 02:53:41 | headius | for some reason [1,2,3].each isn't calling the rbx each |
| 02:53:51 | headius | Array[1,2,3].each is |
| 02:54:17 | headius | some short-circuiting in MRI for literal arrays? |
| 02:54:24 | wifelette enters the room. | |
| 02:54:28 | headius | same effect in JRuby though |
| 02:54:51 | brixen | oh, yeah |
| 02:55:00 | brixen | [] in ruby will not call Array.new |
| 02:55:04 | wifelette leaves the room. | |
| 02:55:10 | headius | yeah, but it should still be an array |
| 02:55:19 | brixen | it won't be based on Tuple |
| 02:55:21 | wifelette enters the room. | |
| 02:55:28 | brixen | it will be a C array essentially |
| 02:55:30 | headius | but it should still call the new each wen I call it |
| 02:55:36 | headius | and maybe blow up |
| 02:55:38 | headius | but it doesn't |
| 02:55:39 | tarcieri | so in Rubinius... if you have foo, bar, baz = Tuple[1, 2, 3], does that do an implicit #to_a first or can it match directly against the Tuple? |
| 02:55:48 | wifelette leaves the room. | |
| 02:56:07 | brixen | tarcieri: you mean == and match or = and masgn? |
| 02:56:14 | tarcieri | mass assignment |
| 02:56:46 | brixen | tarcieri: one sec, I'll give you a command line |
| 02:56:51 | brixen | tarcieri: you have rbx running right? |
| 02:56:56 | tarcieri | nope, heh |
| 02:57:06 | tarcieri | Unable to find a bootstrap to load! |
| 02:57:10 | tarcieri | never really got past that |
| 02:57:10 | tarcieri | heh |
| 02:57:22 | brixen | oh damn |
| 02:57:26 | brixen | what platform again? |
| 02:57:30 | tarcieri | OS X |
| 02:57:33 | brixen | ppc? |
| 02:57:35 | tarcieri | couldn't get it to compile on FreeBSD |
| 02:57:39 | tarcieri | no, x86 |
| 02:57:50 | brixen | oh, damn, well we should be able to get you going |
| 02:57:56 | brixen | do you have rbx installed? |
| 02:58:00 | brixen | or did you try rake install? |
| 02:58:03 | tarcieri | yeah |
| 02:58:10 | brixen | ok, make sure you rm that |
| 02:58:15 | brixen | check the Rakefile for the location |
| 02:58:18 | headius | brixen: I'm guessing those specs aren't actually using tuple arrays because it's definitely broken |
| 02:58:20 | tarcieri | let me try again... |
| 02:58:35 | tarcieri | i think something gibbed the first time |
| 02:58:39 | brixen | headius: what's "it's"? |
| 02:58:49 | headius | ruby tuple I would guess |
| 02:59:00 | headius | not sure...you can try that code yourself and see it's busted |
| 02:59:12 | brixen | headius: ok, well, it passes the specs, so perhaps you can approach that angle |
| 02:59:21 | fmeyer leaves the room. | |
| 02:59:46 | tarcieri | well, if any of you have rbx going... (x, y, z = Tuple[1, 2, 3]).class |
| 02:59:49 | tarcieri | should tell you |
| 02:59:59 | brixen | going from ruby Tuple to ruby Array running in tuple with the [] problem seems like a big jump |
| 03:00:01 | headius | not necessarily |
| 03:00:07 | headius | I'm not sure masgn returns the correct result yet |
| 03:00:12 | tarcieri | aah |
| 03:00:13 | tarcieri | awesome |
| 03:00:13 | tarcieri | heh |
| 03:00:16 | brixen | headius: and there's a bunch more stuff that's need in hashi first before I can run array specs |
| 03:01:17 | headius | brixen: ok, I'll try to look into it |
| 03:01:25 | headius | going to see if I can get jruby building rbx for the moment |
| 03:01:29 | headius | now that I know where type is |
| 03:01:56 | brixen | tarcieri: I was wanting to teach a man to fish :) http://pastie.caboo.se/134734 |
| 03:02:20 | tarcieri | brixen: I just updated and I'm rebuilding |
| 03:02:28 | tarcieri | I just did rake install and one of the compiles gibbed |
| 03:03:09 | brixen | rake install was disabled today I believe |
| 03:03:20 | tarcieri | brixen: oh |
| 03:03:39 | tarcieri | shotgun/rubinius.bin |
| 03:03:39 | tarcieri | VM Assertion: idx >= 0 (cpu_marshal.c:363) |
| 03:03:44 | headius | is there a way to get more information than this: |
| 03:03:44 | headius | Fatal error in bootstrap/core: |
| 03:03:44 | headius | uninitialized constant Type (NameError) |
| 03:04:01 | tarcieri | brixen: so I take it from that output that it's tuple-to-tuple |
| 03:04:04 | brixen | tarcieri: so, http://rubini.us/doc/vm/ |
| 03:04:17 | brixen | tarcieri: cast_array opcode converts a tuple to an array |
| 03:04:36 | tarcieri | oh... |
| 03:04:37 | tarcieri | I see |
| 03:04:44 | headius | so it is turning it into an array |
| 03:04:55 | brixen | tarcieri: so, the -p outputs the sexp and -s the assembly |
| 03:05:00 | agardiner enters the room. | |
| 03:05:03 | brixen | tarcieri: pretty nice exploratory tool |
| 03:05:03 | tarcieri | okay, guess I won't worry about Tuples for now... |
| 03:05:24 | tarcieri | since that's the main case I'm trying to optimize... spose I could just get the values by index or something |
| 03:05:32 | brixen | headius: not really, just need to identify where Type is used at class level or in class methods |
| 03:06:07 | shoe | evan: turns out the libevent release from 2007-12-21 introduced new API to deal with fork; but libev would probably work, too, and I've got it built. |
| 03:06:18 | tarcieri | shoe: sweet |
| 03:06:20 | tarcieri | libev rocks |
| 03:06:29 | shoe | evan: do you care which way things go? |
| 03:06:36 | tarcieri | libev! |
| 03:06:37 | tarcieri | heh |
| 03:06:58 | tarcieri | shoe: I did a Ruby wrapper for libev |
| 03:07:10 | tarcieri | be nice to add Rubinius compatibility |
| 03:07:17 | tarcieri | especially since I'm trying to stitch it together with actors |
| 03:07:32 | brixen | tarcieri: I dunno why your build fails |
| 03:07:58 | tarcieri | brixen: hmm, running shotgun/rubinius works |
| 03:08:02 | headius | hmm, I took a guess and added a kernel.rb dependency to array.rb and it seems to be functional again |
| 03:08:14 | headius | but that may have just moved it up above where it's actually needed |
| 03:08:33 | headius | just reading through the script and class bodies isn't enough since a number of class bodies actually instantiate types |
| 03:08:51 | tarcieri | wait, uhh, everything returns nil? |
| 03:10:00 | headius | did someone say String specs are supposed to be 100%? |
| 03:10:07 | _VVSiz_ leaves the room. | |
| 03:10:09 | headius | I'm getting 4F/1E |
| 03:10:37 | brixen | headius: yeah, array is a tough on because those methods should become available as soon as it's loaded |
| 03:10:53 | brixen | perhaps we need a way to push files down as well as up (with the depends on:) |
| 03:11:02 | headius | well I guess that's my question...is it ok to just add this for now? |
| 03:11:09 | brixen | core/array should probably be loaded last |
| 03:11:18 | brixen | yeah, can't hurt |
| 03:11:24 | brixen | try building without jruby of course |
| 03:11:28 | headius | array may or may not be directly dependent on kernel, but this moved kernel up enough to function |
| 03:12:04 | headius | I just always have jruby in my path before ruby, so I run rake with jruby all the time |
| 03:14:08 | agardiner leaves the room. | |
| 03:16:35 | brixen | headius: I have 4f/5e on string |
| 03:16:48 | headius | hmm ok, I thought evan said it was "back to 100%" |
| 03:17:52 | brixen | wow, 5646 expectations in string alone, there's only ~14k altogether right now |
| 03:18:18 | headius | what are you getting for bin/ci |
| 03:18:58 | brixen | 0, but I just did -c :) |
| 03:19:01 | headius | I have 2F/1E here |
| 03:19:07 | headius | heh |
| 03:19:22 | brixen | just wipe away those failures with a little switch heh |
| 03:19:34 | headius | yeah, exactly...heheh |
| 03:19:40 | brixen | looks like some related to $~ |
| 03:19:49 | headius | mmm evan said he was working on that I believe |
| 03:20:14 | brixen | well, -c removed a bunch of the excludes |
| 03:20:20 | brixen | that's good |
| 03:20:36 | MenTaLguY enters the room. | |
| 03:20:53 | tongueroo leaves the room. | |
| 03:20:55 | pauldix leaves the room. | |
| 03:21:14 | brixen | yeah, these must be related, two new in Regexp |
| 03:24:27 | evan | brixen: i was running just ci on string. |
| 03:24:34 | brixen | evan: ok |
| 03:24:36 | evan | what should i do to see all of them? just run mspec? |
| 03:24:40 | brixen | yep |
| 03:24:52 | brixen | they fail for me with ci |
| 03:25:01 | brixen | I'll check in these excludes and we can update again |
| 03:25:25 | brixen | weird, I got a random encountered invalid class (not big enough). running bin/ci just now |
| 03:26:06 | evan | i don't get any $~ related ones running mspec on string and regex |
| 03:26:35 | boyscout | 2 commits by Brian Ford |
| 03:26:36 | boyscout | * Updated CI excludes for String, Regexp. |
| 03:26:36 | brixen | evan: really? |
| 03:26:37 | boyscout | * Added another rbx method to hashi. |
| 03:26:57 | brixen | I'm surely up to date |
| 03:27:06 | evan | oh |
| 03:27:09 | evan | do a 'rake pristine' |
| 03:27:19 | brixen | ok, just doing that |
| 03:27:23 | evan | my $~ changes included some compiler changes |
| 03:27:26 | brixen | ahh, ok |
| 03:27:28 | brixen | cool |
| 03:27:51 | brixen | k, bbiab, dinner or jenny will zed me |
| 03:27:51 | evan | $~ gets rewritten as Regexp.last_match |
| 03:27:58 | brixen | ahh, that makes sense |
| 03:28:07 | evan | $~ = m becomes Regexp.last_match = m |
| 03:28:10 | evan | ok, later! |
| 03:28:16 | brixen | later |
| 03:28:35 | headius | I was doing pristine and getting ci failures |
| 03:29:57 | evan | i still am |
| 03:30:00 | evan | but they're not $~ related. |
| 03:30:18 | evan | they look inspect related actually |
| 03:30:39 | evan | at least on regex |
| 03:30:44 | kamal_fariz | is rbx the compiler and rubinius the interpreter/vm? |
| 03:30:55 | evan | no |
| 03:31:00 | evan | rbx is just short for rubinius |
| 03:32:39 | drbrain | you can give the full path to shotgun/rubinius, and it'll work like rbx |