Show enters and exits. Hide enters and exits.
| 00:00:00 | nexcastellan | Thanks. Hhhhmmm. |
| 00:00:03 | evan | zenspider: yeah, i just don't see a way around it |
| 00:00:13 | zenspider | I wanted all the impl specific crap to be on the server side, so we could isolate it |
| 00:00:18 | brixen | zenspider: likely other impl besides rbx will have their own specs as well |
| 00:00:18 | zenspider | stupid rubinius. :/ |
| 00:00:29 | brixen | I don't see a way around something knowing the impl |
| 00:00:56 | zenspider | brixen: yeah, well, this isn't a run whatever you want CI, this is a run rubyspec CI |
| 00:01:10 | brixen | zenspider: arbitrary distinction |
| 00:01:13 | brixen | not useful IMO |
| 00:01:19 | brixen | we have to run all our specs |
| 00:01:26 | evan | well, no, he has a point |
| 00:01:44 | zenspider | all we want to do is have a level playing field so we can see the status of all the same impls against rubyspec |
| 00:01:47 | evan | zenspider: could we, in addition to raw rubyspecs, run something else specific to each impl? |
| 00:01:50 | evan | zenspider: for instance |
| 00:01:50 | zenspider | raise visibility on all the impls too |
| 00:01:56 | evan | it might be useful to run all the specs on rubinius |
| 00:01:59 | evan | to get a complete view |
| 00:02:09 | evan | (if they don't crash the vm, which is a problem, that is) |
| 00:02:19 | evan | then run, also run our spec/frozen |
| 00:02:35 | evan | so we'd be testing how far forward we have to move |
| 00:02:36 | drbrain | evan: no |
| 00:02:41 | evan | and also that we don't move backward |
| 00:02:52 | drbrain | it will be red all the time |
| 00:03:03 | evan | yeah |
| 00:03:20 | evan | we'd end up ignoring it largely |
| 00:03:20 | zenspider | we need graphs to not move backward... and drbrain is right... we can't start red |
| 00:03:20 | evan | and we'd have to have a run that runs spec/frozen |
| 00:03:22 | evan | and stays green |
| 00:03:26 | drbrain | oh, and right now the IO#readpartial spec just hangs |
| 00:03:28 | zenspider | (unless it is a few that we intend to conquer immediately) |
| 00:03:34 | zenspider | yeah |
| 00:03:49 | drbrain | I'm sure we'll have a lot where we just sit waiting for something to happen |
| 00:03:50 | brixen | drbrain: there's a bunch of specs that hang |
| 00:04:03 | brixen | particular StringIO#read anything to do with a paragraph |
| 00:04:13 | evan | so, sadly, raw rubyspecs isn't a useful vector for us right now |
| 00:04:14 | brixen | or is that IO |
| 00:04:15 | brixen | I forget |
| 00:04:31 | zenspider | evan: no, prolly not |
| 00:04:31 | evan | I can't wait until it is, but it's not going to help us move forward it seems |
| 00:04:42 | zenspider | is it possible to run against the 1.8 specs but with our tags? |
| 00:05:00 | evan | zenspider: i think so, you just tell mspec where the tags directory is |
| 00:05:03 | evan | brixen: ? |
| 00:05:04 | wyhaines leaves the room. | |
| 00:05:08 | zenspider | I'm wondering just how much I need to conditionalize... if it is just a flag... that'd be cleaner |
| 00:05:08 | brixen | bin/mspec ci spec/ruby will do the same as bin/mspec ci spec/frozen |
| 00:05:14 | brixen | it maps to the same set of tags |
| 00:05:20 | evan | brixen: what about outside the checkout |
| 00:05:30 | brixen | but the tags are not sync'd to rubyspec head |
| 00:05:42 | rue leaves the room. | |
| 00:05:42 | evan | cd rubyspecs; rbx ~/bin/mspec --tag-dir=~/git/rbx/spec/tags 1.8 |
| 00:05:44 | evan | or something? |
| 00:05:45 | brixen | evan: you'd have to update the config file |
| 00:05:52 | brixen | there's no more --tag-dir |
| 00:06:04 | brixen | there's the :tags_patterns in the config file |
| 00:06:11 | brixen | see spec/default.mspec |
| 00:06:12 | evan | this is an mspec config file? |
| 00:06:26 | rue enters the room. | |
| 00:06:38 | evan | what does it mean to not be sync'd up to rubyspec head? |
| 00:06:43 | brixen | I still don't see who a CI bot that does not run all our specs makes sense |
| 00:06:46 | evan | being sync'd is when you update spec/frozen, yes? |
| 00:06:51 | brixen | yep |
| 00:06:55 | Arjen__ leaves the room. | |
| 00:07:10 | evan | hm |
| 00:07:15 | rue | CI is a known good subset |
| 00:07:21 | evan | so, seems like the green vector is going to have to be running spec/frozen then |
| 00:07:35 | evan | because thats the tag set + spec set we know is green |
| 00:07:40 | brixen | right |
| 00:07:40 | rue | If we want to run everything too, that is fine, but it should be separate |
| 00:07:51 | zenspider | yeah... that sucks... but whatever... I'll make it work |
| 00:07:54 | evan | ok. |
| 00:08:10 | evan | zenspider: let me know how long it takes to do a run |
| 00:08:11 | evan | i'm curious |
| 00:08:14 | evan | because doing 2 runs |
| 00:08:19 | evan | one against spec/frozen |
| 00:08:23 | evan | and one against raw rubyspecs |
| 00:08:33 | evan | that difference might prove to be a useful vector |
| 00:08:46 | evan | showing us recent specs we don't pass |
| 00:08:53 | brixen | zenspider: you wanted mspec to have a timeout, how would you suggest implementing that? |
| 00:09:06 | brixen | since MRI 1.8.7 was hanging on specs for some folks today |
| 00:09:10 | brixen | it's going to be an issue |
| 00:09:34 | evan | brixen: well, easiest is to a timeout on the whole thing |
| 00:09:43 | evan | like a 10 minute ceiling |
| 00:09:47 | brixen | evan: yeah, but within mspec? |
| 00:09:53 | evan | that doesn't have to be |
| 00:10:01 | evan | you could do that in shell just as easily |
| 00:10:07 | brixen | yeah |
| 00:10:23 | evan | but that has crappy granuality |
| 00:10:31 | brixen | I've already got a sh thing for that in benchmark/rubinius/timeout |
| 00:10:32 | evan | the place where it's really useful is per-spec time outs |
| 00:10:43 | evan | so that each spec gives, say 30 seconds max to run |
| 00:10:53 | evan | and if it goes over that, it's killed and we try and go on |
| 00:10:54 | brixen | well, how would you do that? |
| 00:10:57 | evan | so we could report which specs are timing out |
| 00:11:06 | evan | similar to how timeout.rb works |
| 00:11:06 | brixen | without killing the interp/vm? |
| 00:11:10 | zenspider | brixen: wrap the whole generated runner script with timeout(3600) { ... } ? |
| 00:11:15 | zenspider | why not do it in ruby? |
| 00:11:41 | brixen | well, first of all, the dependency on timeout.rb |
| 00:11:47 | brixen | I'm sure we didn't run that for a long time |
| 00:11:53 | evan | true |
| 00:11:54 | zenspider | evan: granularity and reporting is fine... but it isn't hard to detect hung specs |
| 00:12:13 | zenspider | brixen: oh... you're doing an exec into the script, aren't you? |
| 00:12:18 | brixen | and hung from deadlock is different from hung from thrashing in memory or something else |
| 00:12:26 | brixen | zenspider: exec in to what script? |
| 00:12:40 | evan | brixen: right, but i doubt we'll ever be able to tell |
| 00:12:53 | zenspider | instead of a full exec, we could system instead and wrap that with the timeout |
| 00:12:53 | evan | why it's hanging, progromatically |
| 00:12:55 | evan | it's more about just bounding the time a spec run takes |
| 00:13:01 | brixen | evan: how would you recover from a deadlock inside the vm without killing it? |
| 00:13:08 | evan | you wouldn't |
| 00:13:12 | evan | you'd have to have both timeouts |
| 00:13:19 | brixen | then we'd have to run each spec in a separate process? |
| 00:13:21 | evan | an external one (10 minutes) and internal (30 seconds per spec) |
| 00:13:26 | evan | nah |
| 00:13:35 | evan | if it hangs so bad the internal timeout doesn't work |
| 00:13:39 | evan | the external will get it eventually |
| 00:13:57 | zenspider | for example, CI shows tests as "DOA" if they don't have the test summary at the bottom... this would be one of those cases. |
| 00:13:59 | evan | it doesn't have to be perfect |
| 00:14:16 | zenspider | it just has to keep going |
| 00:14:24 | zenspider | however messy |
| 00:14:32 | brixen | then it should be done external |
| 00:14:44 | evan | sure |
| 00:14:46 | brixen | we don't need to pile up more requirements that beginning impl have to support |
| 00:14:46 | stepheneb enters the room. | |
| 00:14:50 | evan | the runner can do that |
| 00:15:00 | brixen | evan: external to the runner |
| 00:15:08 | brixen | whatever invokes mspec should take care of it |
| 00:15:19 | evan | why not have it in the mspec runner? |
| 00:15:28 | evan | it's already got high deps (optparse, etc) |
| 00:15:34 | brixen | that's coming out |
| 00:15:46 | brixen | and there are two "runners" mspec and mspec-run |
| 00:15:54 | brixen | which would do it and how? |
| 00:15:57 | zenspider | I agree with brixen here... the top level (mri driven) runner should do this to reduce the dependencies internal to the system |
| 00:16:05 | evan | ok |
| 00:16:27 | evan | we could have a simple bin/mspec-timeout |
| 00:16:33 | evan | you just do |
| 00:16:46 | zenspider | it may not be the case now, but back in the day, mspec generated a ruby script into tmp that it exec'd... |
| 00:16:52 | zenspider | brixen: is that still the case? or close enough? |
| 00:16:55 | evan | mspec-timeout 3600 bin/mspec -everything -to -bin-mspec |
| 00:16:59 | brixen | zenspider: nope, not the case |
| 00:17:09 | brixen | mspec exec's mspec-run |
| 00:17:24 | brixen | and mspec has a -j option to fork/exec multiple mspec-run's |
| 00:17:28 | zenspider | brixen: THAT is close enough |
| 00:17:35 | brixen | so, I'd like to keep that as sane as possible |
| 00:17:40 | zenspider | instead of exec, system wrapped in timeout |
| 00:18:12 | zenspider | is that possible? |
| 00:18:18 | evan | should be |
| 00:18:29 | brixen | there's a reason I'm using exec |
| 00:18:30 | evan | it thought brixen was saying it shouldn't even go in the mri-driven runner |
| 00:18:35 | brixen | if only I could remember :/ |
| 00:18:44 | zenspider | haha |
| 00:19:22 | zenspider | def timeout(n) yield; end unless option[:timeout] |
| 00:19:25 | evan | unix philosophy would have us write a tiny program that runs another program and exits if the sub-program doesn't return within a timeframe |
| 00:19:30 | evan | i'm surprised unix doesn't have that actually |
| 00:19:59 | zenspider | unix philosophy is RIDDEN with inconsistencies |
| 00:20:04 | brixen | according to ri, system processes the args the same as exec |
| 00:20:07 | zenspider | there is a reason why ed and sed aren't our editors of choice |
| 00:20:10 | brixen | so can probably substitute |
| 00:20:39 | tarcieri | Doing things the idiomatic Unix way is messy |
| 00:20:53 | brixen | mspec is run by MRI |
| 00:21:07 | brixen | it exec's mspec-run with the appropriate target |
| 00:21:21 | brixen | which of couse you can do directly with e.g. bin/rbx mspec-run ... |
| 00:21:26 | evan | so it could basically supervise if we ask it to |
| 00:21:30 | brixen | yeah |
| 00:21:45 | evan | seems easy to add to mspec then. |
| 00:21:46 | evan | if option[:supervise] |
| 00:22:02 | evan | timeout(option[:timeout]) { system(...) } |
| 00:22:02 | evan | else |
| 00:22:05 | evan | exec(...) |
| 00:22:05 | evan | end |
| 00:22:18 | zenspider | no need with my snippet above |
| 00:22:33 | brixen | oh, hmm, I'm probably just using exec to ditch MRI, duh |
| 00:22:36 | zenspider | and really no benefit doing both exec and system, is there? |
| 00:22:52 | brixen | we'd have to use system in mspec to use timeout {} |
| 00:22:58 | brixen | that makes sense |
| 00:22:59 | evan | right |
| 00:23:05 | zenspider | yeah, but there is little reason for that that I can think of |
| 00:23:09 | evan | it's just cleaner, sysadmin wise |
| 00:23:10 | evan | less memory |
| 00:23:14 | brixen | right |
| 00:23:15 | zenspider | yes, we have to use system... |
| 00:23:15 | evan | less eventualy cleanup |
| 00:23:19 | evan | but not necessary |
| 00:23:45 | zenspider | my point was use system for both cases, and in the NON supervised case, just stub out a simple timeout method |
| 00:23:53 | zenspider | less code |
| 00:23:53 | evan | sure |
| 00:24:21 | brixen | well, it may become an issue with the -j option |
| 00:24:25 | evan | their purchasing power is the same |
| 00:24:29 | brixen | right now it run 6 isolated processes |
| 00:24:38 | brixen | and I'd prefer not to sequentialize those either |
| 00:24:55 | evan | brixen: make them mutually exclusive options for now |
| 00:25:02 | pauldix leaves the room. | |
| 00:25:04 | brixen | I can give you -j or --timeout but not both ;) |
| 00:25:09 | zenspider | http://rafb.net/p/8En09578.html |
| 00:25:09 | evan | let the person that wants timeouts AND -j fix it. |
| 00:25:09 | evan | :) |
| 00:25:09 | brixen | not both together |
| 00:25:10 | zenspider | how does your -j work? |
| 00:25:16 | brixen | fork/exec |
| 00:25:21 | evan | brixen: sure |
| 00:25:21 | zenspider | haha. yes |
| 00:25:46 | zenspider | you're not running a collector process? |
| 00:25:51 | brixen | sure |
| 00:25:55 | zenspider | like make? |
| 00:26:35 | brixen | less mspec/lib/mspec/commands/mspec.rb |
| 00:26:39 | brixen | #multi_exec |
| 00:28:08 | brixen | since MRI exec's mspec, this works well with other impl that don't need to know anything about Kernel.fork, etc |
| 00:28:29 | brixen | but if you run mspec with e.g. jruby, it won't use Kernel.fork |
| 00:28:36 | zenspider | so you mean fork/system? or am I looking at the wrong code? |
| 00:28:45 | brixen | yeah |
| 00:29:08 | brixen | heh, I changed it from fork/exec |
| 00:29:46 | brixen | anyway, as long as we keep this out of the requirements for the impl, we can tweak it as we like |
| 00:29:57 | brixen | since expectation is MRI runs this file |
| 00:33:08 | binary42 enters the room. | |
| 00:33:12 | zenspider | the timeout would work fine in this case... but yeah. it isn't a requirement that we need to support at this time |
| 00:33:39 | brixen | yeah, I'll add it |
| 00:40:42 | anteaya enters the room. | |
| 00:48:24 | heycarsten enters the room. | |
| 00:51:40 | wycats leaves the room. | |
| 00:52:04 | wycats enters the room. | |
| 00:53:53 | wycats_ enters the room. | |
| 00:54:13 | wycats leaves the room. | |
| 00:59:41 | dfg59 leaves the room. | |
| 00:59:47 | dfg59 enters the room. | |
| 01:02:07 | stepheneb leaves the room. | |
| 01:05:11 | boyscout | 20 commits by Ryan Davis |
| 01:05:12 | boyscout | * Ugh. Added impl-specific conditionals to ci.rb; 355b8af |
| 01:05:13 | boyscout | * Use MRI's gem to install gems so a borked kernel won't fail; 74477a9 |
| 01:05:14 | boyscout | * Added -S processing to loader; 55597f8 |
| 01:05:15 | boyscout | * Switched to git fetch, per review from evan; 68c33d2 |
| 01:05:16 | boyscout | * No, we nuke the html/ci dir; ce0c071 |
| 01:05:17 | boyscout | ... |
| 01:05:33 | rue leaves the room. | |
| 01:07:37 | cremes leaves the room. | |
| 01:07:48 | zenspider | I'm a doof. I sat on that too long |
| 01:07:51 | zenspider | :/ |
| 01:08:05 | jbarnette | commitbomb! |
| 01:09:30 | rubuildius_ppc | Ryan Davis: 355b8af4c; 2535 files, 8411 examples, 28042 expectations, 0 failures, 0 errors |
| 01:11:05 | zenspider | that was fast |
| 01:11:32 | brixen | yeah the ppc bot is quick |
| 01:11:41 | brixen | I think it checks in less than 5 min intervals |
| 01:11:58 | rue enters the room. | |
| 01:12:05 | zenspider | seems faster than my laptop at running the tests. :) |
| 01:12:22 | brixen | heh, it's a g5 I think |
| 01:12:23 | twbray leaves the room. | |
| 01:12:33 | brixen | might be a dual |
| 01:12:39 | brixen | and might be running with -j |
| 01:16:32 | rubuildius_amd64 | Ryan Davis: 355b8af4c; 2535 files, 8412 examples, 28022 expectations, 0 failures, 0 errors |
| 01:17:43 | rubuildius_ey64 | Ryan Davis: 355b8af4c; 2535 files, 8412 examples, 28020 expectations, 0 failures, 0 errors |
| 01:21:15 | brainopia enters the room. | |
| 01:22:57 | zenspider | ok. my blood sugar is dropping... must go grab something before I die, or others do |
| 01:32:33 | Lars_G | zenspider: Hypoglicemic? |
| 01:34:40 | trythil_ leaves the room. | |
| 01:37:12 | neelance_ leaves the room. | |
| 01:37:31 | headius | Defiler: did you add any specs while working on caller? |
| 01:37:51 | headius | by fixing the eval cutoff it looks like JRuby mostly matches MRI for simple cases |
| 01:39:04 | mitchellvriley__ enters the room. | |
| 01:39:46 | stepheneb enters the room. | |
| 01:39:49 | wmoxam enters the room. | |
| 01:44:56 | benburkert leaves the room. | |
| 01:44:58 | evan | FUCk. |
| 01:45:23 | evan | i just blew away a very important file |
| 01:45:29 | evan | and i haven't commited a version of it. |
| 01:45:44 | brixen | yikes :( |
| 01:46:03 | brixen | I've done that, but now use git --amend religously :/ |
| 01:46:15 | evan | i'm going to see if time machine has it |
| 01:46:30 | benburkert enters the room. | |
| 01:49:58 | evan | sweet. |
| 01:50:00 | evan | TM had it. |
| 01:50:13 | evan | TM rocks. |
| 01:51:33 | evan | i guess TM runs even when my backup drive isn't plugged in |
| 01:51:45 | evan | because it had a version of the file from yesterday |
| 01:52:54 | drbrain | that's spooky |
| 01:53:34 | evan | seems like it runs, creating backups on the regular disk |
| 01:53:41 | evan | then copying them to the backup disk when it can |
| 01:54:19 | djwhitt enters the room. | |
| 01:56:03 | jbarnette leaves the room. | |
| 02:03:43 | stouset enters the room. | |
| 02:05:26 | rue leaves the room. | |
| 02:06:27 | dfg59 leaves the room. | |
| 02:07:00 | dgtized_ enters the room. | |
| 02:11:18 | crafterm enters the room. | |
| 02:11:29 | rue enters the room. | |
| 02:19:32 | dgtized leaves the room. | |
| 02:22:58 | c0sin leaves the room. | |
| 02:25:11 | VVSiz_ enters the room. | |
| 02:26:34 | wmoxam_ enters the room. | |
| 02:37:05 | wmoxam leaves the room. | |
| 02:37:16 | wmoxam_ enters the room. | |
| 02:42:49 | VVSiz leaves the room. | |
| 02:43:21 | ijcd_ leaves the room. | |
| 02:45:43 | wycats_ leaves the room. | |
| 02:46:21 | ezmobius leaves the room. | |
| 02:47:15 | Fullmoon leaves the room. | |
| 02:57:38 | headius leaves the room. | |
| 02:57:38 | headius_ enters the room. | |
| 03:00:44 | wmoxam_ leaves the room. | |
| 03:03:28 | wycats enters the room. | |
| 03:05:04 | wycats_ enters the room. | |
| 03:05:21 | rue leaves the room. | |
| 03:06:00 | rue enters the room. | |
| 03:20:45 | wycats leaves the room. | |
| 03:23:44 | moofbong enters the room. | |
| 03:24:08 | wmoxam leaves the room. | |
| 03:26:09 | crafterm leaves the room. | |
| 03:31:26 | ijcd enters the room. | |
| 03:31:35 | ijcd leaves the room. | |
| 03:36:37 | wyhaines leaves the room. | |
| 03:36:44 | mitchellvriley__ leaves the room. | |
| 03:38:06 | lchin enters the room. | |
| 03:38:59 | edwardam leaves the room. | |
| 03:52:19 | heycarsten leaves the room. | |
| 03:59:59 | moofbong leaves the room. | |
| 04:00:33 | moofbong enters the room. | |
| 04:04:40 | stouset leaves the room. | |
| 04:05:26 | rue leaves the room. | |
| 04:06:30 | rue enters the room. | |
| 04:13:09 | mitchellvriley__ enters the room. | |
| 04:13:55 | twbray enters the room. | |
| 04:16:19 | seydar enters the room. | |
| 04:18:34 | rubuildius_amd64 leaves the room. | |
| 04:20:06 | seydar | howdy, y'all |
| 04:21:32 | evan | hey there |
| 04:21:56 | seydar | quiet night here on the prairie |
| 04:22:16 | evan | watches some tumbleweed blow by |
| 04:22:42 | seydar | i wish i had some free time, a c++ book, and a bag of m&ms |
| 04:22:53 | seydar | but since the cows are still strolling by |
| 04:23:02 | seydar | what kind of GC does rubinius currenty use? |
| 04:23:40 | evan | generational |
| 04:23:59 | evan | with a semi-space copy collector for young |
| 04:24:04 | evan | and a mark/sweep for old |
| 04:24:14 | evan | i need to make the old one mark/compact |
| 04:24:19 | seydar | so a generational is a composite GC? |
| 04:24:54 | rubuildius_amd64 enters the room. | |
| 04:25:43 | seydar | is a generational GC made up of multiple mini-GC parts? |
| 04:25:51 | evan | composite being 2 GCs acting as one, yes. |
| 04:25:57 | evan | sort of |
| 04:26:12 | evan | the different GCs handle different sets of objects |
| 04:26:25 | evan | the way it works is that objects are first allocated into the young half |
| 04:26:29 | evan | and after they live long enough |
| 04:26:34 | evan | they're moved to the old generation |
| 04:26:42 | seydar | gotcha |
| 04:26:55 | evan | this expliots the property that objects typically become garbage after being used once |
| 04:27:08 | seydar | and this, from what I've heard from a grad student, eliminates the need for reference counting? |
| 04:27:09 | evan | and the semi-space collector uses a very fast algorithm |
| 04:27:14 | evan | yes |
| 04:27:16 | evan | very much so |
| 04:27:23 | evan | it uses tracing to discover valid objects |
| 04:27:26 | seydar | awesomesauce! |
| 04:27:35 | evan | ie, follows pointers to find all alive objects |
| 04:27:41 | seydar | what makes referecne counting bad? |
| 04:28:09 | mjwhitt enters the room. | |
| 04:28:20 | benburkert leaves the room. | |
| 04:28:53 | evan | it costs a lot |
| 04:29:06 | evan | because you're constantly writing values into objects |
| 04:29:26 | evan | and it can't detect circular garbage on it's own |
| 04:29:44 | evan | if a points to b, and b points to a, and no one else points to either |
| 04:29:48 | evan | they're both kept alive |
| 04:30:41 | seydar | hm. how.... interesting |
| 04:30:46 | seydar | ohhhhhhh! i get it |
| 04:31:10 | evan | tracing finds all the valid objects the way a human would |
| 04:31:12 | evan | start at the top |
| 04:31:17 | evan | and 'look' at all objects you can find |
| 04:31:38 | lchin leaves the room. | |
| 04:31:38 | seydar | what is the fancy copyrighted name for tracing? |
| 04:31:47 | evan | there isn't one |
| 04:31:49 | evan | it's tracing |
| 04:32:04 | benburkert enters the room. | |
| 04:33:07 | seydar | does one of rubinius' two GCs use tracing? |
| 04:33:10 | seydar | before you answer |
| 04:33:13 | seydar | my guess is no |
| 04:33:21 | seydar | ok go |
| 04:33:26 | rubuildius_amd64 leaves the room. | |
| 04:33:27 | evan | they both trace. |
| 04:33:34 | evan | seperately |
| 04:33:39 | evan | thats another thing about generational |
| 04:33:46 | evan | you don't have to run them both at the same time |
| 04:33:51 | jackdempsey enters the room. | |
| 04:33:52 | evan | the young generation is much smaller |
| 04:33:56 | anonuser | TADA Generational! |
| 04:34:02 | evan | and thus can be run much more often and much faster |
| 04:34:16 | seydar | do either of the GCs stop-the-world? |
| 04:34:19 | stepheneb leaves the room. | |
| 04:34:28 | rubuildius_amd64 enters the room. | |
| 04:34:29 | evan | seydar: they both do. |
| 04:34:34 | anonuser | seydar, I think you're thinking of techniques of garbage collection. |
| 04:34:49 | anonuser | Generational just splits the garbage into buckets. |
| 04:35:15 | anonuser | Or some nonsense like that. |
| 04:35:35 | evan | it's like the kitchen garbage versus the garage garbage |
| 04:35:52 | anonuser | Yeah that's good. |
| 04:35:57 | seydar | yea im lost |
| 04:36:07 | evan | heh |
| 04:36:08 | seydar | isn't stopping the world an aspect of a GC? |
| 04:36:12 | anonuser | There are different ways to do things, like there is incremental garbage collection. |
| 04:36:17 | anonuser | Which doesn't stop the world! |
| 04:36:20 | evan | seydar: for simple GCs yes |
| 04:36:28 | evan | rubinius uses simple algorithms |
| 04:36:31 | anonuser | But it's much much harder to get right. |
| 04:36:44 | evan | there are GC algorithms that run in a dedicated thread |
| 04:36:58 | evan | in parallel with the program (called the mutator in GC speak) |
| 04:37:00 | anonuser | I might get an interview with Amazon! The interview will probably murder me :( |
| 04:37:07 | evan | anonuser: what group? |
| 04:37:15 | anonuser | evan, An internal group. |
| 04:37:16 | headius_ leaves the room. | |
| 04:37:35 | evan | having lived in Seattle, i know a lot of amazon people |
| 04:37:38 | evan | zenspider used to work there. |
| 04:37:42 | anonuser | My friend / roommate just passed round two of interviewing and is flying out soon, he wants to recommend me for the team |
| 04:38:08 | seydar | gratz! |
| 04:38:18 | evan | anonuser: awesome! |
| 04:38:27 | evan | anonuser: my old manager is on the EC2 team |
| 04:38:29 | anonuser | Not there yet! |
| 04:38:38 | anonuser | EC2 and S3 are amazing. |
| 04:38:48 | anonuser | Distributed systems are my thing. |
| 04:39:13 | twbray leaves the room. | |
| 04:39:15 | anonuser | And there seems to be some ruby fans at amazon. |
| 04:39:22 | seydar | anonuser: is there a lot of crazy math involved in distributed systems? |
| 04:39:30 | qrush leaves the room. | |
| 04:39:36 | anonuser | seydar, you're thinking too lowlevel |
| 04:39:40 | anonuser | Bring it up to a generalization |
| 04:40:01 | anonuser | A system can do a lot of things without crazy maths :) |
| 04:40:20 | seydar | anonuser: sorry, i've heard terrible stories about distributed systems |
| 04:40:38 | seydar | i think they're awesomely amazing, but the math... |
| 04:40:44 | anonuser | seydar, they're tricky to get right, but amazon is the king of distributed systems and SOA. |
| 04:41:32 | anonuser | seydar, you don't need to reach theoretical math to do well in field, it's better to be awesome at puzzle solving, but don't downplay math. |
| 04:41:34 | wycats enters the room. | |
| 04:42:27 | seydar | then there is hope |
| 04:42:33 | anonuser | I forgot how amazing the C++ FAQ was. |
| 04:43:02 | seydar | linkzor? |
| 04:43:18 | seydar | unless its the lite version |
| 04:43:28 | seydar | in which case im scared to see the unabridged copy |
| 04:43:32 | anonuser | the lite version. |
| 04:43:39 | anonuser | the lite version is a good thing. |
| 04:43:48 | anonuser | Reading teaches you pretty much everything about C++ you'll ever need to know. |
| 04:43:56 | anonuser | The book is...well the book of that. |
| 04:45:15 | seydar | hehe then all I need now is a bag of m&ms and some free time |
| 04:45:41 | lchin enters the room. | |
| 04:46:02 | anonuser | I need to find some crazy vegan alternative version of m&ms |
| 04:47:31 | seydar | whats unvegan about m&ms? |
| 04:47:35 | evan | lchin: hey leonard! |
| 04:47:51 | anonuser | seydar, milk. |
| 04:48:07 | lchin | よ |
| 04:48:10 | crafterm enters the room. | |
| 04:48:12 | seydar | oh right |
| 04:48:29 | seydar | crafterm: are you the crafterm of sprinkle fame? |
| 04:48:47 | crafterm | seydar: hi there, yes mate, thats me |
| 04:49:15 | seydar | crafterm: i'd like to first say thank you, i'm using it in an _actual_ work environment |
| 04:49:36 | crafterm | seydar: brilliant, glad to hear that its of use! :) |
| 04:49:44 | seydar | and there isn't really a second thing to say |
| 04:49:54 | evan | :D |
| 04:49:58 | crafterm | seydar: be sure to let me know if it can be improved in any way at all :) |
| 04:50:32 | seydar | crafterm: when i first used it, i thought i found some issues with the generated bash, but when i recently installed it again, i found that those issues didnt exist anymore |
| 04:50:48 | crafterm | seydar: excellent mate ;) |
| 04:51:00 | seydar | is it all right if i keep going or is it too off topic for rubinius? |
| 04:52:17 | evan | go for it. |
| 04:52:54 | seydar | ok. so when installing gems, it runs the gem command |
| 04:53:19 | seydar | however, what i first used sprinkle for was provisioning my nix box upstairs with a fresh ruby/gems install |
| 04:53:42 | twbray enters the room. | |
| 04:53:53 | jtoy enters the room. | |
| 04:54:03 | seydar | the gem command assumes gems are installed, yea. but there should be a way to tell it to use the gem _I_ installed |
| 04:54:19 | seydar | no clue how one would do it, but thats why i dont have a blog and why i didnt write this |
| 04:56:19 | crafterm | do you mean the rubygems installation you installed? |
| 04:56:23 | seydar | yea |
| 04:56:27 | crafterm | ah, ok, fair point |
| 04:56:50 | jackdempsey | yeah, multiple installations of rubygems and ruby itself can lead to a load of 'fun' |
| 04:56:50 | crafterm | so you'd like to be able to specify the path to your gems installation? |
| 04:56:59 | seydar | yea! |
| 04:57:22 | crafterm | the local gem repository or the actual rubygems code? |
| 04:57:34 | crafterm | just so in understand :) |
| 04:57:37 | seydar | um, local |
| 04:57:39 | crafterm | jackdempsey: fair point to mate :) |
| 04:57:47 | crafterm | seydar: ok, no worries |
| 04:57:57 | jackdempsey | :-) |
| 04:58:10 | crafterm | should be an option we could add |
| 04:59:06 | seydar | huzzah! |
| 04:59:26 | seydar | man huzzah is *almost* a palindrome |
| 04:59:33 | crafterm | glad you found it useful mate, always good to hear :) |
| 04:59:33 | seydar | what the hell, its close enough. |
| 05:00:02 | seydar | np! awesome tools are always awesome. another ruby tool is always nice to add to my toolbox |
| 05:00:12 | lchin leaves the room. | |
| 05:00:36 | lchin enters the room. | |
| 05:00:54 | evan | seydar: we could just start saying hazzah! |
| 05:01:07 | seydar | but then we'd all be from new york |
| 05:01:20 | evan | heh |
| 05:02:24 | seydar | evan: so i understand (menially) the GC and the way objects are stored in memory. what other main parts are there to rubinius? |
| 05:02:49 | evan | there is the object layout |
| 05:02:56 | evan | ie, what an object actually looks like in memory |
| 05:03:45 | seydar | i think you explained that to me already, IIRC |
| 05:04:23 | seydar | objects have.... well... i kind remember. maybe a little refresher please? |
| 05:04:33 | moofbong leaves the room. | |
| 05:04:39 | evan | they're basically a struct |
| 05:04:48 | evan | well, the header is a struct |
| 05:04:57 | evan | then there is a variable number of fields after the header |
| 05:05:04 | seydar | oh right! |
| 05:05:05 | rue leaves the room. | |
| 05:05:30 | seydar | and they have the "real or fake data" field! |
| 05:05:58 | evan | yeah, they have a flag that says what the variable fields contain |
| 05:06:31 | seydar | s/field/flag |
| 05:06:55 | anonuser | What is the state of rubinius these days? I've been hunting down delinquent clients :( |
| 05:07:10 | evan | getting close to being compliant |
| 05:07:13 | evan | starting to make it fast |
| 05:07:15 | anonuser | Nice! |
| 05:07:23 | anonuser | How's the llvm port coming? |
| 05:07:35 | anonuser | Or is that super awesomely experimental. |
| 05:08:18 | seydar | started talking about drawing it on a whiteboard yet? |
| 05:08:49 | evan | it's coming along nicely |
| 05:09:00 | evan | enough that it's going to be in the new VM |
| 05:09:02 | wycats_ leaves the room. | |
| 05:09:08 | anonuser | Awesome! |
| 05:09:08 | seydar | hazzah! |
| 05:09:15 | evan | :D |
| 05:09:46 | anonuser | It'll be neat to see llvm doing the heavy lifting as far as optimizations are, though I'm not sure what the full impact is. |
| 05:09:54 | evan | yeah |
| 05:09:57 | evan | it's going to be awesome. |
| 05:10:15 | anonuser | Then you can make awesome MagLev like speed claims. |
| 05:10:15 | manveru | so... llvm only now? |
| 05:10:16 | seydar | do we actually know how much its going to improve the speed though? |
| 05:10:18 | wycats leaves the room. | |
| 05:10:37 | anonuser | seydar, well they have teams of engineers that optimize for specific cases. |
| 05:10:52 | anonuser | I'm just making assumptions, though. |
| 05:11:02 | rue enters the room. | |
| 05:11:10 | evan | manveru: not sure yet. |
| 05:11:30 | evan | seydar: well, without really trying, llvm execution rather than bytecode improves things 2x |
| 05:11:35 | evan | thats without any really tuning |
| 05:12:00 | manveru | but that sounds limited still... |
| 05:12:04 | seydar | woooow |
| 05:12:16 | evan | manveru: limited how? |
| 05:12:20 | seydar | wait, how do you eliminate the bytecode? |
| 05:12:29 | manveru | exactly |
| 05:12:39 | anonuser | seydar, llvm IR optimizations ? |
| 05:12:58 | VVSiz_ leaves the room. | |
| 05:13:01 | manveru | i should read up on llvm... i only know about nekovm ^^; |
| 05:13:06 | evan | the bytecode is translated into LLVM functions. |
| 05:13:12 | VVSiz_ enters the room. | |
| 05:13:29 | evan | so there is no bytecode dispatch overhead anymore |
| 05:13:39 | seydar | evan: but you /still/ will need the bytecode to be made |
| 05:14:00 | evan | course, but thats a one time, up front process. |
| 05:14:17 | manveru | do you lose the bytecode through optimization? |
| 05:14:33 | anonuser | Stupid question but does llvm do tail-end recursion optimizations? |
| 05:15:02 | evan | manveru: the bytecode is read once to create an LLVM function |
| 05:15:04 | evan | after than, there is no more bytecode |
| 05:15:10 | evan | it's kept around |
| 05:15:13 | evan | but it's not executed |
| 05:15:16 | manveru | ok |
| 05:15:17 | evan | it's just a blueprint of execution |
| 05:15:33 | evan | anonuser: yeah, it can. |
| 05:15:36 | manveru | it's just important for me that you can still modify it after inlining :) |
| 05:15:53 | manveru | this sounds really like the execution model of Self now |
| 05:16:01 | seydar | alright, alright... |
| 05:16:04 | seydar | what other tunes can you make? |
| 05:16:04 | seydar | (whatever the right word is)_ |
| 05:16:12 | lchin leaves the room. | |
| 05:16:12 | cremes_ leaves the room. | |
| 05:16:12 | rubuildius_ey64 leaves the room. | |
| 05:16:12 | squeegy leaves the room. | |
| 05:16:12 | fbuilesv leaves the room. | |
| 05:16:12 | cyndis leaves the room. | |
| 05:16:12 | hoopy leaves the room. | |
| 05:16:12 | wycats_afk leaves the room. | |
| 05:16:12 | Illocution leaves the room. | |
| 05:16:12 | jammi leaves the room. | |
| 05:16:12 | flori leaves the room. | |
| 05:16:12 | Ingmar leaves the room. | |
| 05:16:20 | evan | manveru: ah, sure. |
| 05:16:20 | evan | course |
| 05:16:20 | anonuser | evan, neat, I was just seeing which VMs do and don't. CLR does but the JVM doesn't. |
| 05:16:28 | evan | manveru: otherwise we loose functionality |
| 05:16:38 | manveru | yeah |
| 05:16:49 | manveru | but it would still be within MRI specs, which worries me :) |
| 05:16:51 | evan | anonuser: at least for a while, we're not going to be pushing down tail call optz into the ruby |
| 05:16:58 | evan | but we'll see :) |
| 05:17:01 | anonuser | evan, :D |
| 05:17:28 | lchin enters the room. | |
| 05:17:28 | cremes_ enters the room. | |
| 05:17:28 | rubuildius_ey64 enters the room. | |
| 05:17:28 | squeegy enters the room. | |
| 05:17:28 | fbuilesv enters the room. | |
| 05:17:28 | flori enters the room. | |
| 05:17:28 | hoopy enters the room. | |
| 05:17:28 | Illocution enters the room. | |
| 05:17:28 | Ingmar enters the room. | |
| 05:17:28 | cyndis enters the room. | |
| 05:17:28 | wycats_afk enters the room. | |
| 05:17:28 | jammi enters the room. | |
| 05:17:43 | Ingmar leaves the room. | |
| 05:17:57 | Ingmar enters the room. | |
| 05:18:02 | flori leaves the room. | |
| 05:18:08 | flori enters the room. | |
| 05:18:14 | mitchellvriley | evan: I started having a look at the cpp branch, and I had to change a couple of minor things to get it to compile on my machine |
| 05:18:15 | Illocution leaves the room. | |
| 05:18:20 | Illocution enters the room. | |
| 05:18:26 | evan | mitchellvriley__: ok |
| 05:18:27 | mitchellvriley | different version of gcc I think |
| 05:18:28 | skweegee enters the room. | |
| 05:18:29 | evan | got patches? |
| 05:18:48 | mitchellvriley | uh, when I figure out how to make one |
| 05:19:02 | evan | no prob. |
| 05:21:46 | Ingmar leaves the room. | |
| 05:21:46 | rubuildius_ey64 leaves the room. | |
| 05:21:46 | fbuilesv leaves the room. | |
| 05:21:46 | squeegy leaves the room. | |
| 05:21:46 | jammi leaves the room. | |
| 05:21:46 | wycats_afk leaves the room. | |
| 05:21:46 | hoopy leaves the room. | |
| 05:21:46 | lchin leaves the room. | |
| 05:21:46 | cyndis leaves the room. | |
| 05:21:46 | cremes_ leaves the room. | |
| 05:23:32 | seydar | evan: thanks for spilling your brain for me tonight |
| 05:23:32 | seydar | gonna make pancakes tomorrow morning! |
| 05:23:32 | seydar | have a good night everyone |
| 05:23:32 | seydar leaves the room. | |
| 05:24:01 | jackdempsey leaves the room. | |
| 05:24:16 | hoopy enters the room. | |
| 05:25:06 | wyhaines enters the room. | |
| 05:26:51 | Ingmar enters the room. | |
| 05:28:34 | jammi enters the room. | |
| 05:28:56 | cremes_ enters the room. | |
| 05:28:56 | rubuildius_ey64 enters the room. | |
| 05:28:56 | fbuilesv enters the room. | |
| 05:28:56 | cyndis enters the room. | |
| 05:28:56 | wycats_afk enters the room. | |
| 05:29:02 | cyndis_ enters the room. | |
| 05:30:05 | wycats_afk leaves the room. | |
| 05:30:18 | wycats_afk enters the room. | |
| 05:30:39 | wmoxam enters the room. | |
| 05:34:32 | cyndis leaves the room. | |
| 05:50:35 | wycats enters the room. | |
| 05:51:13 | twbray leaves the room. | |
| 05:53:11 | wmoxam leaves the room. | |
| 06:02:58 | lchin enters the room. | |
| 06:03:53 | ezmobius enters the room. | |
| 06:04:58 | rue leaves the room. | |
| 06:05:32 | rue enters the room. | |
| 06:10:17 | jbarnette enters the room. | |
| 06:11:25 | jbarnette | What's the overall feeling on adding support for various MRI command-line args to rbx? |
| 06:11:40 | drbrain | like -S? |
| 06:11:43 | jbarnette | heh |
| 06:11:45 | jbarnette | maaaaaaybe |
| 06:11:45 | drbrain | do it (-S is in) |
| 06:11:47 | jbarnette | :) |
| 06:12:38 | jbarnette | drbrain: "in" like you implemented it already, or "in" like it'd be good to implement? |
| 06:12:47 | drbrain | implemented |
| 06:12:52 | drbrain | ryan did it today |
| 06:13:04 | jbarnette | wow, timing |
| 06:13:44 | jbarnette | woot autotest |
| 06:14:16 | jbarnette | now to figure out why ^C^C doesn't work under rbx |
| 06:15:03 | evan | it should |
| 06:15:12 | evan | is it not working in autotest? |
| 06:15:20 | jbarnette | evan: yeah, it hangs |
| 06:15:28 | evan | hrm. |
| 06:15:44 | jbarnette | i can try and track it down, but it may take me a while :) |
| 06:16:05 | evan | no better way to learn. |
| 06:16:19 | drbrain | evan: why does IO#sysread do String.new(size) |
| 06:16:23 | drbrain | that's not ruby |
| 06:16:39 | evan | old hack |
| 06:16:41 | evan | feel free to change it |
| 06:16:53 | drbrain | you are a bad person |
| 06:16:59 | evan | so are you. |
| 06:17:01 | evan | so there |
| 06:17:03 | evan | pfffft |
| 06:17:05 | drbrain | yes |
| 06:18:03 | evan | I think someone added a class method to String to get a sized string back |
| 06:18:11 | evan | though, it was done as a primitive :/ |
| 06:21:33 | drbrain | The museum director from Buenos Aires had something special in her luggage: a copy of a long version of Fritz Lang's Metropolis, including scenes believed lost for almost 80 years. |
| 06:21:37 | drbrain | !!! |
| 06:21:40 | drbrain | wow |
| 06:21:47 | jbarnette | ja |
| 06:23:56 | dfg59 enters the room. | |
| 06:30:41 | mitchellvriley | evan: here's what git diff gave me: http://pastie.org/226896 |
| 06:32:07 | mitchellvriley | the reason for getting rid of those statics is in http://gcc.gnu.org/gcc-4.3/porting_to.html |
| 06:32:14 | mitchellvriley | under 'Explicit template specialization cannot have a storage class' |
| 06:32:41 | mitchellvriley | for you it might not work without them |
| 06:32:48 | mitchellvriley | I dunno |
| 06:38:41 | thehcdreamer enters the room. | |
| 06:38:55 | dbussink | mitchellvriley: did you run the tests? |
| 06:39:16 | jbarnette | I am THIS close to going back to vim |
| 06:40:49 | anonuser | Go emacs. |
| 06:41:33 | mitchellvriley | dbussink: it doesn't compile for me without the changes |
| 06:41:59 | mitchellvriley | dbussink: with the changes, it fails 3 |
| 06:42:13 | mitchellvriley | emacs ftw |
| 06:43:46 | anonuser | remove the inlining. |
| 06:45:15 | anonuser | That will probably do nothing... |
| 06:45:15 | mitchellvriley | huh? |
| 06:46:28 | anonuser | I thought it was crashing, but my bad. |
| 06:48:13 | anonuser | Bah too tired to see if inlining makes sense in that case. |
| 06:49:22 | mitchellvriley | that inlining was already there, I just had to get rid of the 'static's |
| 06:51:28 | jbarnette | drbrain, evan: ah, autotest expects exceptions raised in a signal handler to actually *do* something :) |
| 06:54:59 | boyscout | 1 commit by John Barnette |
| 06:55:00 | boyscout | * Fixing an elderly typo: pus != puts.; fb7a30c |
| 06:55:11 | thehcdreamer leaves the room. | |
| 06:59:18 | rubuildius_ppc | John Barnette: fb7a30c04; 2535 files, 8411 examples, 28042 expectations, 0 failures, 0 errors |
| 07:02:09 | rubuildius_ey64 | John Barnette: fb7a30c04; 2535 files, 8412 examples, 28020 expectations, 0 failures, 0 errors |
| 07:02:14 | krsh enters the room. | |
| 07:04:46 | rue leaves the room. | |
| 07:06:03 | rue enters the room. | |
| 07:06:41 | ezmobius leaves the room. | |
| 07:07:10 | rubuildius_amd64 | John Barnette: fb7a30c04; 2535 files, 8412 examples, 28022 expectations, 0 failures, 0 errors |
| 07:07:48 | benburkert leaves the room. | |
| 07:14:32 | jbarnette | http://pastie.org/226913 |
| 07:14:42 | jbarnette | gah, not sure about the best way to start speccing signals |
| 07:16:54 | dfg59 leaves the room. | |
| 07:23:06 | evan | jbarnette: the default INT handler works |
| 07:23:51 | evan | should raise in a signal cause the exception to be delivered to whatever was currently running? |
| 07:27:52 | jbarnette | evan: it does in MRI, dunno about "should" :) |
| 07:28:28 | jbarnette | well, it *appears* to in MRI: I've only tried it with INT |
| 07:29:13 | evan | check out kernel/loader.rb |
| 07:29:30 | evan | we can make automatically re-send exceptions to the thread that was running |
| 07:30:05 | mutle_ leaves the room. | |
| 07:30:11 | jbarnette | kapow |
| 07:30:26 | jbarnette | I'll put something similar in signal.rb if you're cool with that |
| 07:30:46 | evan | should be |
| 07:31:05 | mutle enters the room. | |
| 07:33:23 | jbarnette | rubyspec's current trap_spec is extra awesome :) |
| 07:39:00 | boyscout | 1 commit by John Barnette |
| 07:39:01 | boyscout | * Reraise exceptions from signal handlers in the main thread.; ad4ecd8 |
| 07:40:21 | antares enters the room. | |
| 07:40:38 | evan | jbarnette: thats probably not the right behavior. |
| 07:41:02 | jbarnette | evan: what's the right way? |
| 07:41:19 | evan | you're passing the exception to only the main thread |
| 07:41:24 | evan | can you find out if thats the actual behavior? |
| 07:41:36 | evan | or if the exception is executed by the thread that was running |
| 07:41:43 | jbarnette | evan: ah, yup, checking |
| 07:43:15 | rubuildius_ppc | John Barnette: ad4ecd87c; 2535 files, 8411 examples, 28042 expectations, 0 failures, 0 errors |
| 07:43:19 | rue | Morning |
| 07:43:35 | jbarnette | evan: http://pastie.org/226924 |
| 07:43:44 | jbarnette | really does appear to go to the main thread |
| 07:43:57 | evan | that doesn't tell me anything |
| 07:44:05 | evan | because join re-raises the exception |
| 07:44:58 | evan | ah ah |
| 07:44:59 | evan | i see. |
| 07:44:59 | evan | yeah |
| 07:45:02 | jbarnette | :) |
| 07:45:03 | evan | it's raised on main |
| 07:45:11 | evan | which is easier to implement. |
| 07:45:20 | jbarnette | sorry, that was a crap testcase |
| 07:45:38 | gnufied enters the room. | |
| 07:46:00 | jbarnette | evan: knowing that, are you more comfortable with what I did? or am I still off-base? |
| 07:46:04 | jtoy leaves the room. | |
| 07:46:13 | rue | evan: Static init in the .hpp will fail on some compilers |
| 07:46:16 | evan | i'm comfortable with you. |
| 07:46:37 | jbarnette | evan: let's not get personal here |
| 07:46:53 | evan | rue: where is that? |
| 07:47:02 | jbarnette | cool, only one more little autotest quirk to go then! |
| 07:47:16 | rubuildius_ey64 | John Barnette: ad4ecd87c; 2535 files, 8412 examples, 28020 expectations, 0 failures, 0 errors |
| 07:47:40 | rue | evan: vm.hpp, I think |
| 07:47:41 | anteaya leaves the room. | |
| 07:47:58 | rue | Technically I think an integer literal _should_ work but it does not everywhere |
| 07:48:38 | evan | the default_bytes one? |
| 07:49:03 | evan | i had to keep adding qualifiers on there to get g++ to take it |
| 07:49:07 | evan | so i wouldn't be surprised |
| 07:49:10 | rue | Mm, probably, some static member var I recall there |
| 07:49:11 | evan | could just be a #define |
| 07:49:24 | rue | You can just init it in the .cpp |
| 07:49:40 | evan | it's used as the default value for bytes to VM |
| 07:49:42 | evan | thats why it's there. |
| 07:49:47 | evan | you can't put in in the .cpp file |
| 07:51:31 | rue | Ah, maybe a define or even an enum then |
| 07:51:51 | anteaya enters the room. | |
| 07:51:51 | rue | I will be at the computer in a bit. Just testing out this cellphone connection :) |
| 07:52:25 | jtoy enters the room. | |
| 07:52:36 | rubuildius_amd64 | John Barnette: ad4ecd87c; 2535 files, 8412 examples, 28022 expectations, 0 failures, 0 errors |
| 07:53:03 | evan | rue: i'm headed to bed. |
| 07:54:28 | rue | Yeps, I will see if I have any minor touchups. Maybe try compiling with Icc :P |
| 07:54:38 | dbussink | evan: night |
| 07:54:49 | evan | rue: ok. |
| 07:54:50 | evan | nite. |
| 08:00:08 | qwert666 enters the room. | |
| 08:03:12 | anteaya leaves the room. | |
| 08:05:48 | gnufied leaves the room. | |
| 08:05:51 | blakewatters leaves the room. | |
| 08:06:51 | anteaya enters the room. | |
| 08:07:29 | anteaya leaves the room. | |
| 08:12:36 | jtoy leaves the room. | |
| 08:13:23 | thehcdreamer enters the room. | |
| 08:23:11 | Fullmoon enters the room. | |
| 08:24:37 | Fullmoon leaves the room. | |
| 08:26:19 | ryanlowe leaves the room. | |
| 08:29:53 | blakewatters enters the room. | |
| 08:33:47 | qwert666 leaves the room. | |
| 08:35:35 | octopod enters the room. | |
| 08:38:44 | imajes leaves the room. | |
| 08:42:46 | Arjen_ enters the room. | |
| 08:53:23 | crafterm leaves the room. | |
| 08:53:36 | jbarnette leaves the room. | |
| 09:04:34 | rue leaves the room. | |
| 09:04:44 | NoKarma enters the room. | |
| 09:05:33 | rue enters the room. | |
| 09:05:57 | maharg | static const int x = 1; in a header is valid C++ |
| 09:06:38 | maharg | static + const essentially means inline for a variable declaration |
| 09:11:04 | blakewatters leaves the room. | |
| 09:44:25 | gnufied enters the room. | |
| 09:58:02 | octop0d enters the room. | |
| 10:02:04 | octopod leaves the room. | |
| 10:04:25 | rue leaves the room. | |
| 10:05:03 | rue enters the room. | |
| 10:11:46 | radarek enters the room. | |
| 10:25:36 | chris2 enters the room. | |
| 10:40:34 | hosiawak enters the room. | |
| 10:44:15 | Yurik leaves the room. | |
| 11:04:23 | rue leaves the room. | |
| 11:05:34 | rue enters the room. | |
| 11:14:00 | Spakman_ enters the room. | |
| 11:38:42 | krsh leaves the room. | |
| 11:39:31 | michalw enters the room. | |
| 11:41:53 | dctanner enters the room. | |
| 11:46:18 | Fullmoon enters the room. | |
| 12:04:18 | rue leaves the room. | |
| 12:05:05 | rue enters the room. | |
| 12:12:01 | cremes_ leaves the room. | |
| 12:27:08 | mutle_ enters the room. | |
| 12:29:18 | mutle__ enters the room. | |
| 12:43:45 | mutle_ leaves the room. | |
| 12:45:24 | mutle leaves the room. | |
| 12:49:40 | Maledictus enters the room. | |
| 13:04:00 | rue leaves the room. | |
| 13:04:35 | rue enters the room. | |
| 13:14:50 | benny enters the room. | |
| 13:16:09 | yasuhito enters the room. | |
| 13:23:26 | octopod leaves the room. | |
| 13:23:57 | octopod enters the room. | |
| 13:40:50 | qrush enters the room. | |
| 13:43:24 | imajes leaves the room. | |
| 13:49:20 | AndrewO enters the room. | |
| 13:50:25 | cremes enters the room. | |
| 13:56:04 | mjwhitt leaves the room. | |
| 13:56:39 | Fullmoon leaves the room. | |
| 14:00:36 | Yurik enters the room. | |
| 14:02:09 | Yurik leaves the room. | |
| 14:03:50 | rue leaves the room. | |
| 14:06:12 | chad enters the room. | |
| 14:10:06 | rue enters the room. | |
| 14:11:22 | mutle_ enters the room. | |
| 14:12:06 | mutle__ enters the room. | |
| 14:12:16 | mutle_ leaves the room. | |
| 14:13:54 | headius enters the room. | |
| 14:15:18 | headius leaves the room. | |
| 14:19:45 | headius enters the room. | |
| 14:30:55 | anteaya enters the room. | |
| 14:31:36 | mutle leaves the room. | |
| 14:36:30 | imajes enters the room. | |
| 14:38:15 | Fullmoon enters the room. | |
| 14:39:06 | mutle enters the room. | |
| 14:46:32 | neelance_ enters the room. | |
| 14:46:56 | moofbong enters the room. | |
| 14:47:46 | pauldix enters the room. | |
| 14:48:37 | mutle_ enters the room. | |
| 14:56:09 | krsh enters the room. | |
| 14:57:10 | mutle leaves the room. | |
| 14:57:39 | wmoxam enters the room. | |
| 14:57:54 | mutle__ leaves the room. | |
| 15:02:50 | Lars_G | I am so sexy it hurts |
| 15:03:54 | rue leaves the room. | |
| 15:04:37 | rue enters the room. | |
| 15:04:38 | heycarsten enters the room. | |
| 15:16:50 | NoKarma enters the room. | |
| 15:17:39 | pauldix leaves the room. | |
| 15:18:18 | pauldix enters the room. | |
| 15:18:31 | lchin leaves the room. | |
| 15:20:27 | dbussink | too |
| 15:26:01 | hemulen enters the room. | |
| 15:30:56 | benny enters the room. | |
| 15:31:26 | pauldix leaves the room. | |
| 15:32:36 | pauldix enters the room. | |
| 15:37:39 | Maledictus leaves the room. | |
| 15:41:44 | benny leaves the room. | |
| 15:43:53 | Yurik enters the room. | |
| 15:48:15 | pauldix_ enters the room. | |
| 15:55:06 | mutle enters the room. | |
| 15:57:36 | mutle__ enters the room. | |
| 15:59:10 | twbray enters the room. | |
| 16:00:12 | anteaya leaves the room. | |
| 16:03:40 | rue leaves the room. | |
| 16:10:09 | rue enters the room. | |
| 16:10:19 | twbray leaves the room. | |
| 16:10:35 | rphillips leaves the room. | |
| 16:11:04 | pauldix leaves the room. | |
| 16:11:45 | mutle leaves the room. | |
| 16:12:52 | rphillips enters the room. | |
| 16:14:12 | mutle_ leaves the room. | |
| 16:16:54 | dctanner enters the room. | |
| 16:18:34 | mutle__ leaves the room. | |
| 16:19:26 | mutle enters the room. | |
| 16:25:10 | twbray enters the room. | |
| 16:26:10 | dc_ leaves the room. | |
| 16:32:38 | twbray leaves the room. | |
| 16:38:41 | blakewatters enters the room. | |
| 16:41:46 | dfg59 enters the room. | |
| 16:45:24 | gramos enters the room. | |
| 16:48:11 | gramos | evan ping |
| 16:51:17 | rue | Looks like it may still need an empty decl to reserve the space. These should be rare systems though |
| 17:02:36 | pauldix_ leaves the room. | |
| 17:03:50 | rue leaves the room. | |
| 17:04:40 | rue enters the room. | |
| 17:09:44 | NoKarma enters the room. | |
| 17:10:06 | benburkert enters the room. | |
| 17:15:07 | blakewatters leaves the room. | |
| 17:16:50 | benny enters the room. | |
| 17:16:59 | NoKarma | zenspider: ping |
| 17:17:18 | blakewatters enters the room. | |
| 17:17:48 | hemulen enters the room. | |
| 17:18:50 | krsh_ enters the room. | |
| 17:21:03 | zachad enters the room. | |
| 17:22:41 | yasuhito leaves the room. | |
| 17:24:03 | jbarnette enters the room. | |
| 17:25:39 | benburkert leaves the room. | |
| 17:26:20 | hosiawak leaves the room. | |
| 17:26:58 | benburkert enters the room. | |
| 17:31:14 | naeu enters the room. | |
| 17:33:21 | blakewatters leaves the room. | |
| 17:33:33 | krsh leaves the room. | |
| 17:41:51 | hemulen_ enters the room. | |
| 17:41:54 | hemulen leaves the room. | |
| 17:42:09 | thehcdreamer leaves the room. | |
| 17:42:27 | hemulen_ leaves the room. | |
| 17:47:40 | Fullmoon leaves the room. | |
| 17:51:59 | evan | morning |
| 17:52:09 | rue | Hoobla |
| 17:53:09 | evan | fog says: meeeooooow |
| 17:53:14 | atmos leaves the room. | |
| 17:53:33 | atmos enters the room. | |
| 17:57:55 | edwardam enters the room. | |
| 18:01:17 | twbray enters the room. | |
| 18:01:21 | rue | Prrrp |
| 18:03:22 | rue leaves the room. | |
| 18:04:45 | octopod leaves the room. | |
| 18:06:06 | benny leaves the room. | |
| 18:07:01 | gramos | Hi evan |
| 18:07:13 | nicksieger leaves the room. | |
| 18:08:13 | gramos | I sent this patch http://rubinius.lighthouseapp.com/projects/5089/tickets/621-patch-for-contributors-file-generation |
| 18:09:11 | rue enters the room. | |
| 18:10:05 | gramos | And I am thinking add another improve for this task, can you give me the commit bit? |
| 18:10:48 | evan | sure |
| 18:10:52 | evan | I just need your ssh key |
| 18:10:57 | evan | please pastie it |
| 18:11:32 | nicksieger enters the room. | |
| 18:13:15 | rue | evan: All builtins can go in a builtin[_classe]s/ ? |
| 18:13:58 | krsh_ leaves the room. | |
| 18:13:58 | evan | directory wise? |
| 18:14:02 | evan | sure, we could move them. |
| 18:15:03 | radarek leaves the room. | |
| 18:19:37 | blakewatters enters the room. | |
| 18:20:52 | lchin enters the room. | |
| 18:22:00 | cremes leaves the room. | |
| 18:24:03 | rphillips leaves the room. | |
| 18:24:15 | gramos | evan: ok |
| 18:24:21 | neelance__ enters the room. | |
| 18:26:39 | gramos | my ssh key: http://pastie.org/227236 |
| 18:27:39 | neelance_ leaves the room. | |
| 18:27:58 | evan | ok, added! |
| 18:28:38 | neelance__ leaves the room. | |
| 18:32:01 | nakajima enters the room. | |
| 18:34:56 | gramos | thanks!! |
| 18:35:11 | hemulen enters the room. | |
| 18:46:38 | zachad leaves the room. | |
| 18:47:29 | zachad enters the room. | |
| 18:47:42 | rudebwoy_ leaves the room. | |
| 18:47:50 | rudebwoy enters the room. | |
| 18:53:14 | lchin leaves the room. | |
| 18:56:57 | nexcastellan | I have a specific question about the subtend layer, method dispatch, and private methods. Anyone around who could maybe help me out? |
| 18:57:17 | nakajima leaves the room. | |
| 18:58:09 | evan | nexcastellan: sure, wassup |
| 18:58:49 | nexcastellan | Okay, the deal is wrt rb_call_super. Works fine if the method is public. But if I'm trying to do this in the initialize method, it doesn't work. I've confirmed that this is because initialize is private. (more) |
| 18:59:07 | evan | ah, ok. |
| 18:59:11 | nexcastellan | So the call to rb_funcall (actually, rb_funcall2) to call initialize on the superclass fails because it can't find it. Because it is private. |
| 18:59:16 | evan | yeah |
| 18:59:17 | evan | well |
| 18:59:19 | nexcastellan | I'm wondering how I should fix this. |
| 18:59:24 | evan | should rb_funcall be able to call private methods? |
| 18:59:27 | evan | if so |
| 18:59:30 | evan | we can just have it always do that |
| 18:59:33 | evan | which is pretty easy |
| 18:59:52 | evan | if not, then we'll have to add another arg to push_and_call or something |
| 18:59:57 | evan | and not go via rb_funcall |
| 19:00:02 | naeu leaves the room. | |
| 19:00:12 | nexcastellan | I _seem_ to remember that there's an argument you can pass to do private method lookups, but I could be thinking something entirely different. Most likely I am. |
| 19:00:38 | evan | heh |
| 19:00:44 | tarcieri | I thought they talked for a bit about adding another function like rb_funcall() which could call private methods then ended up not |
| 19:01:05 | nexcastellan | Yeah, I see no way in rb_funcall (in MRI) to do private lookups. |
| 19:01:16 | dgtized | seem to be having trouble when it gets to building fastthread |
| 19:01:18 | nexcastellan | I'll run a test in MRI to see if it does them anyway, which I seriously doubt. |
| 19:01:36 | dgtized | anyone else having problems at that step? |
| 19:01:37 | evan | nexcastellan: ok |
| 19:01:42 | evan | nexcastellan: well, if there isn't |
| 19:01:46 | nexcastellan | How would I modify push_and_call to do private method lookups, if that's the way I have to go? |
| 19:01:50 | evan | lets go ahead and add rb_funcall_private |
| 19:01:57 | evan | which rb_call_super can use |
| 19:02:03 | thehcdreamer enters the room. | |
| 19:02:07 | evan | though, how does rb_call_super use rb_funcall? |
| 19:02:17 | evan | seems like that wouldn't work |
| 19:02:25 | evan | because you can't tell rb_funcall where to start looking up |
| 19:02:48 | nexcastellan | Oh, rb_call_super actually just calls push_and_call directly, I now see, after mucking about with the klass. |
| 19:03:03 | nexcastellan | I thought I was doing an rb_funcall there, turns out I'm not. |
| 19:03:10 | ijcd enters the room. | |
| 19:03:15 | rue leaves the room. | |
| 19:03:15 | evan | ah, ok. |
| 19:03:20 | nexcastellan | Okay, so it looks to be just a modification to push_and_call. |
| 19:03:42 | antares leaves the room. | |
| 19:03:57 | nexcastellan | So, how do I tell the vm to include private methods on the lookup? |
| 19:03:59 | nakajima enters the room. | |
| 19:04:16 | boyscout | 1 commit by John Barnette |
| 19:04:17 | boyscout | * Make sure signal handlers don't block themselves.; 9e63b4d |
| 19:04:42 | rue enters the room. | |
| 19:05:57 | nexcastellan | And, evan, is the Smalltalk blue book still going to be relevant after you push the C++ stuff? |
| 19:07:01 |