Index

Show enters and exits. Hide enters and exits.

00:00:31levicook leaves the room.
00:03:28levicook enters the room.
00:06:08drbrainDefiler: oh!
00:06:13drbrainyou must use match and 2match
00:06:36drbrainhttp://rafb.net/p/JKa6ob26.html
00:07:57Defilerhrm.. I appear to be having trouble with gui=underline
00:08:06Defilerif I do gui=standout it works, but looks dumb
00:08:52drbrainthere's also an undercurl
00:11:43drbrainalso, isn't it supposed to look dumb?
00:12:42Defilerthere are limits, even to that
00:13:02Defiler(it turns out)
00:14:05Fullmoon leaves the room.
00:16:30rubuildius_ey64 enters the room.
00:17:26cremes_ enters the room.
00:18:03cremes__ enters the room.
00:19:12CIA-30* Update tuple names to match shotgun moves.; 758a352 - Eric Hodel
00:19:30rubuildius_amd64Eric Hodel: faf2d4e72; 2629 files, 8609 examples, 28695 expectations, 0 failures, 0 errors
00:22:27joachimm leaves the room.
00:27:47stepheneb enters the room.
00:34:22cremes_ leaves the room.
00:35:39cremes__ leaves the room.
00:36:17mutle leaves the room.
00:36:34octopod enters the room.
00:37:04mutle enters the room.
00:37:46michalw leaves the room.
00:42:59levicook leaves the room.
00:53:41yugui leaves the room.
00:55:09nari leaves the room.
01:00:56stepheneb leaves the room.
01:02:22lstoll leaves the room.
01:04:26VVSiz_ enters the room.
01:11:58lopex leaves the room.
01:14:04stepheneb enters the room.
01:21:39drgb enters the room.
01:22:16VVSiz leaves the room.
01:22:33nari enters the room.
01:36:53brapse leaves the room.
01:54:47brapse enters the room.
01:56:02jbarnette leaves the room.
02:04:03jbarnette enters the room.
02:04:09jbarnette leaves the room.
02:10:04josb_ leaves the room.
02:10:24binary42 enters the room.
02:12:50lstoll enters the room.
02:14:00jtoy enters the room.
02:19:17benburkert enters the room.
02:22:14ijcd_ leaves the room.
02:22:53ijcd enters the room.
02:22:55ijcd leaves the room.
02:24:06_VVSiz_ enters the room.
02:26:41yugui enters the room.
02:27:41crafterm enters the room.
02:31:39VVSiz_ leaves the room.
02:32:03brapse_ enters the room.
02:33:51octopod leaves the room.
02:36:18cremes leaves the room.
02:39:21ezmobius leaves the room.
02:43:17brapse leaves the room.
02:43:22headiusbrixen: hey, what's the status of FFI changes
02:43:39headiuswe want to start publishing some docs, blog posts, wiki pages about FFI
02:47:10lchin enters the room.
02:49:27RyanTM leaves the room.
02:59:38ryanlowe enters the room.
03:03:32aotearoa leaves the room.
03:09:31brapse_ leaves the room.
03:35:52imajes leaves the room.
03:39:21aotearoa enters the room.
03:51:30jero5evan: can i be a rbx committer over at github?
04:00:01benburkert leaves the room.
04:00:54nicksieger enters the room.
04:01:02mutle leaves the room.
04:01:37mutle enters the room.
04:02:54yugui_ enters the room.
04:04:04crafterm leaves the room.
04:05:52benburkert enters the room.
04:10:15RyanTM enters the room.
04:10:18benburkert leaves the room.
04:11:26benburkert enters the room.
04:13:31moofbong enters the room.
04:17:13qrush leaves the room.
04:21:34trythil enters the room.
04:22:56brapse enters the room.
04:23:16twbray enters the room.
04:23:44yugui leaves the room.
04:29:04dfg59 enters the room.
04:36:46wmoxam enters the room.
04:46:47dfg59 leaves the room.
04:47:07wmoxam leaves the room.
04:47:43brixenheadius: there's still a discussion on the list it seems
04:47:52brixenheadius: I'll make a ticket for it and check with evan
04:48:27enebo leaves the room.
04:50:01headiusok
04:54:37moofbong leaves the room.
04:59:23lstoll leaves the room.
04:59:34josb enters the room.
05:01:55wyhaines leaves the room.
05:04:26wyhaines enters the room.
05:07:11twbray leaves the room.
05:07:51jackdempsey enters the room.
05:19:21benburkert_ enters the room.
05:21:03benburkert leaves the room.
05:23:49crafterm enters the room.
05:24:19AndrewO leaves the room.
05:25:43twbray enters the room.
05:27:51yugui leaves the room.
05:32:32RyanTM leaves the room.
05:38:46gnufied leaves the room.
05:40:30dfg59 enters the room.
05:40:33nicksieger leaves the room.
05:40:57nicksieger enters the room.
05:42:02crafterm_ enters the room.
05:43:06josb leaves the room.
05:45:09aotearoa leaves the room.
05:53:45aotearoa enters the room.
05:53:47dfg59 leaves the room.
05:57:49wyhaines leaves the room.
05:58:55crafterm leaves the room.
05:59:46headius_ enters the room.
05:59:46headius leaves the room.
06:01:24aotearoa leaves the room.
06:07:01yugui enters the room.
06:09:40mernen leaves the room.
06:11:22headius_ leaves the room.
06:12:39BobFunk leaves the room.
06:18:27jackdempsey leaves the room.
06:36:35lstoll enters the room.
06:38:09ezmobius enters the room.
06:41:36aotearoa enters the room.
06:51:19ezmobius leaves the room.
06:57:15headius enters the room.
07:02:44smparkes1 enters the room.
07:03:33smparkes leaves the room.
07:05:41jtoy leaves the room.
07:05:44benburkert_ leaves the room.
07:10:26benburkert enters the room.
07:10:29headius leaves the room.
07:11:13BobFunk enters the room.
07:11:21TheProkrammer leaves the room.
07:12:52stepheneb leaves the room.
07:31:32brapse leaves the room.
07:34:11yugui leaves the room.
07:46:43edwardam leaves the room.
07:52:26mitchellvriley enters the room.
07:56:30jgre_ enters the room.
07:57:10twbray leaves the room.
08:14:58crafterm_ leaves the room.
08:26:05trythil_ enters the room.
08:26:18trythil_ leaves the room.
08:38:00twbray enters the room.
08:41:20joachimm enters the room.
08:42:57trythil leaves the room.
08:43:56twbray leaves the room.
08:44:36headius_ enters the room.
09:12:21benburkert leaves the room.
09:12:48Fullmoon enters the room.
09:19:26octopod enters the room.
09:25:53nari leaves the room.
09:29:52Fullmoon leaves the room.
09:37:53inspired enters the room.
09:40:33Maledictus enters the room.
09:49:41michalw enters the room.
10:07:09headius_ leaves the room.
10:11:55BobFunk leaves the room.
10:12:19Fullmoon enters the room.
10:14:52Maledictus leaves the room.
10:18:25mitchellvrileyhello all
10:18:44mitchellvrileyI had nothing better to do, so I tried running Rubinius on windows
10:19:00mitchellvrileyafter a couple of changes, it compiled fine
10:19:25mitchellvrileybut it looks like it's crashing whenever it calls a function from the shared library thing
10:19:46mitchellvrileywould trying to make it a static library help?
10:20:08mitchellvrileyI'm using Cygwin, by the way
10:23:07nari enters the room.
10:25:13aotearoa leaves the room.
10:28:50gnufied enters the room.
10:34:41aotearoa enters the room.
10:36:13chris2 enters the room.
10:45:37lchin leaves the room.
11:25:18mutle_ enters the room.
11:30:28BobFunkasdas enters the room.
11:42:13mutle leaves the room.
12:05:24imajes enters the room.
12:16:02mitchellvriley leaves the room.
12:18:16imajes leaves the room.
12:21:48nari leaves the room.
12:22:34nari enters the room.
12:39:29gnufied leaves the room.
13:21:14be9 enters the room.
13:22:26aotearoa leaves the room.
13:51:01AndrewO enters the room.
14:06:58michalw leaves the room.
14:07:09stepheneb enters the room.
14:32:13cremes enters the room.
14:36:40benburkert enters the room.
14:41:07RyanTM enters the room.
14:45:39binary42 leaves the room.
14:55:13benburkert leaves the room.
15:01:46inspired leaves the room.
15:15:23binary42 enters the room.
15:33:34Fullmoon leaves the room.
15:34:49pauldix enters the room.
15:38:30twbray enters the room.
15:42:46jbarnette enters the room.
15:51:45BobFunk enters the room.
15:53:56Fullmoon enters the room.
16:05:23BobFunk leaves the room.
16:06:11BobFunk enters the room.
16:11:58twbray leaves the room.
16:12:00chris2 leaves the room.
16:12:23michalw enters the room.
16:17:07robin_dewd_ leaves the room.
16:17:19robin_dewd_ enters the room.
16:17:49moofbong enters the room.
16:20:50twbray enters the room.
16:21:25benburkert enters the room.
16:26:01shame leaves the room.
16:35:09dfg59 enters the room.
16:36:58enebo enters the room.
16:39:49lopex enters the room.
16:42:14jgre_ leaves the room.
16:42:56DefilerHrm. CIA bot seems to be down?
16:54:19jbarnette leaves the room.
16:54:19rubuildius_ey64 leaves the room.
16:54:19explody leaves the room.
16:54:19evan leaves the room.
16:54:19flori leaves the room.
16:54:19BobFunk leaves the room.
16:54:19BobFunkasdas leaves the room.
16:54:20joachimm leaves the room.
16:54:20benny leaves the room.
16:54:20Norgg leaves the room.
16:54:20drbrain leaves the room.
16:54:20wycats_afk leaves the room.
16:54:20Ingmar leaves the room.
16:54:20scoopr leaves the room.
16:54:20VVSiz leaves the room.
16:54:20maharg leaves the room.
16:54:20jero5 leaves the room.
16:54:20rudebwoy leaves the room.
16:54:20rue leaves the room.
16:54:20zf leaves the room.
16:54:20ko1_away leaves the room.
16:54:20fearoffish leaves the room.
16:54:20nicksieger leaves the room.
16:54:20foysavas leaves the room.
16:54:20jazen leaves the room.
16:54:20vincentlu leaves the room.
16:54:20Vagabond leaves the room.
16:54:20drfreeze leaves the room.
16:54:20CIA-30 leaves the room.
16:54:20hoopy_ leaves the room.
16:54:20loop leaves the room.
16:54:20dmpk2k leaves the room.
16:54:20robin_dewd_ leaves the room.
16:54:20stepheneb leaves the room.
16:54:20smparkes1 leaves the room.
16:54:20Cosmos95 leaves the room.
16:54:20jptix leaves the room.
16:54:20brixen leaves the room.
16:54:20zenspider leaves the room.
16:54:20Illocution leaves the room.
16:54:20viimrles leaves the room.
16:54:20pauldix leaves the room.
16:54:20be9 leaves the room.
16:54:20shoe leaves the room.
16:54:20lopex leaves the room.
16:54:20benburkert leaves the room.
16:54:20moofbong leaves the room.
16:54:20Fullmoon leaves the room.
16:54:20cremes leaves the room.
16:54:20AndrewO leaves the room.
16:54:20octopod leaves the room.
16:54:20cout leaves the room.
16:54:20rubuildius_amd64 leaves the room.
16:54:20cyndis leaves the room.
16:54:20djwhitt leaves the room.
16:54:20matthewd leaves the room.
16:54:20michalw leaves the room.
16:54:20RyanTM leaves the room.
16:54:23corundum leaves the room.
16:54:23mass leaves the room.
16:54:23tarcieri leaves the room.
16:54:23Fobax leaves the room.
16:54:23nexcastellan leaves the room.
16:54:23nari leaves the room.
16:54:23rphillips leaves the room.
16:54:23jammi leaves the room.
16:54:23enebo leaves the room.
16:54:23lstoll leaves the room.
16:54:23ryanlowe leaves the room.
16:54:23imajes leaves the room.
16:54:23Defiler leaves the room.
16:54:23dgtized leaves the room.
16:54:23squeegy leaves the room.
16:56:05hemulen leaves the room.
17:00:24mutle leaves the room.
17:02:17matthewd enters the room.
17:02:17djwhitt enters the room.
17:02:17cyndis enters the room.
17:02:17rubuildius_amd64 enters the room.
17:02:17cout enters the room.
17:02:17octopod enters the room.
17:02:17AndrewO enters the room.
17:02:17cremes enters the room.
17:02:17Fullmoon enters the room.
17:02:17moofbong enters the room.
17:02:17benburkert enters the room.
17:02:17lopex enters the room.
17:02:17dgtized enters the room.
17:02:17shoe enters the room.
17:02:17be9 enters the room.
17:02:17pauldix enters the room.
17:02:17mutle enters the room.
17:02:17loop enters the room.
17:02:17dmpk2k enters the room.
17:02:17hoopy_ enters the room.
17:02:17enebo enters the room.
17:02:17lstoll enters the room.
17:02:17ryanlowe enters the room.
17:02:17imajes enters the room.
17:02:17Defiler enters the room.
17:02:17squeegy enters the room.
17:02:27ryanlowe leaves the room.
17:02:27dmpk2k leaves the room.
17:02:28dbussink leaves the room.
17:02:33lstoll leaves the room.
17:02:45dmpk2k enters the room.
17:02:45michalw enters the room.
17:02:45RyanTM enters the room.
17:02:45corundum enters the room.
17:02:45Fobax enters the room.
17:02:45nexcastellan enters the room.
17:02:45mass enters the room.
17:02:45tarcieri enters the room.
17:02:51ryanlowe enters the room.
17:02:51jammi enters the room.
17:02:51rphillips enters the room.
17:02:51nari enters the room.
17:02:51benburkert_ enters the room.
17:02:51stepheneb_ enters the room.
17:02:51robin_dewd_ enters the room.
17:02:51stepheneb enters the room.
17:02:51smparkes1 enters the room.
17:02:51foysavas enters the room.
17:02:51Cosmos95 enters the room.
17:02:51jazen enters the room.
17:02:51vincentlu enters the room.
17:02:51Vagabond enters the room.
17:02:51drfreeze enters the room.
17:02:51jptix enters the room.
17:02:51brixen enters the room.
17:02:51viimrles enters the room.
17:02:51zenspider enters the room.
17:02:51Illocution enters the room.
17:03:00dbussink enters the room.
17:03:08loop leaves the room.
17:03:08squeegy leaves the room.
17:03:14lstoll enters the room.
17:03:14loop enters the room.
17:03:14squeegy enters the room.
17:03:14hemulen enters the room.
17:03:14ko1_away enters the room.
17:03:14fearoffish enters the room.
17:03:14zf enters the room.
17:03:14rue enters the room.
17:03:14rudebwoy enters the room.
17:03:14jero5 enters the room.
17:03:14maharg enters the room.
17:03:14VVSiz enters the room.
17:03:14explody enters the room.
17:03:14evan enters the room.
17:03:14rubuildius_ey64 enters the room.
17:03:14jbarnette enters the room.
17:03:14BobFunk enters the room.
17:03:14BobFunkasdas enters the room.
17:03:14joachimm enters the room.
17:03:14benny enters the room.
17:03:14flori enters the room.
17:03:14Ingmar enters the room.
17:03:14scoopr enters the room.
17:03:14drbrain enters the room.
17:03:14wycats_afk enters the room.
17:03:14Norgg enters the room.
17:03:20enebo leaves the room.
17:03:20enebo enters the room.
17:03:35Defiler leaves the room.
17:03:51hoopy_ leaves the room.
17:04:39hoopy enters the room.
17:04:45Defiler enters the room.
17:04:47twbray leaves the room.
17:05:00dbussinkDefiler: you miss being credited for your work? ;)
17:07:30benburkert leaves the room.
17:07:46stepheneb leaves the room.
17:11:41imajes leaves the room.
17:11:43nicksieger enters the room.
17:14:10edwardam enters the room.
17:15:05Defilerdbussink: Hah. That must be it :)
17:18:46Yurik enters the room.
17:18:57i0ngunn3r enters the room.
17:19:01dbussinkDefiler: but irc seems to be flaky, maybe that's the problem
17:19:17DefilerYeah.. I didn't realize freenode was having trouble until after I said that
17:19:24Defilerbut then I got disconnected, which seemed like a strong hint
17:19:34twbray enters the room.
17:27:18benny leaves the room.
17:27:55wyhaines enters the room.
17:31:10edwardam leaves the room.
17:31:13Maledictus enters the room.
17:33:02imajes enters the room.
17:36:20benburkert_ enters the room.
17:38:49BobFunk leaves the room.
17:43:49atmos enters the room.
17:44:31jgre_ enters the room.
17:52:03benburkert leaves the room.
17:53:04edwardam enters the room.
17:56:17michalw leaves the room.
18:02:41VVSiz_ enters the room.
18:05:31mernen enters the room.
18:06:57shame enters the room.
18:07:10michalw enters the room.
18:13:05octopod leaves the room.
18:18:38imajes_ enters the room.
18:19:05josb enters the room.
18:20:31VVSiz leaves the room.
18:21:11headius_ enters the room.
18:21:42imajes leaves the room.
18:21:50headius_ leaves the room.
18:22:22headius_ enters the room.
18:29:59octopod enters the room.
18:32:04Arjen_ enters the room.
18:39:55josb leaves the room.
18:42:09shame leaves the room.
18:42:33botanicus enters the room.
18:44:29shame enters the room.
18:52:45michalw leaves the room.
19:05:53binary42 leaves the room.
19:06:26binary42 enters the room.
19:08:38michalw enters the room.
19:13:06djwonk enters the room.
19:13:12djwonk leaves the room.
19:13:52enebo leaves the room.
19:14:15Defilerevan: Do you have any comments to offer about objects with indexed fields in the new VM? Looking at the object_at (previously 'at') primitive
19:15:04evanobject_at probably needs to be named tuple_at
19:15:10evanditto with _put
19:15:30evanbecause direct access to the index fields in all other kinds of objects is a no-no.
19:15:44evanin shotgun, at and put are only hooked up on Tuple
19:16:12drbrainevan: it's not hooked up to just tuples
19:16:21evanit was...
19:16:44DefilerIt checks for 'INDEXED'
19:16:46Defilervia a macro
19:16:51Defilerand presumably only Tuples satisfy that
19:17:00evandrbrain: I only see it hooked up on Tuple in shotgun
19:17:04evanshould be the same for C++
19:17:06DefilerOK, so they really need to be renamed again to tuple_at and tuple_put?
19:17:12evansince it's the same kernel
19:17:22drbrainah, put is only in tuple
19:17:29drbrainat is in class and tuple
19:17:31evanwhere do you see at on something else?
19:17:34drbrainobject_at
19:17:38evanit's wrong that it's on class
19:17:46evani think you added that so that include could work
19:17:47evanyes?
19:17:55drbrainah, RuntimePrimitive
19:17:55DefilerCan classes be indexed objects in shotgun?
19:18:01drbrainhas object_at and object_put
19:18:05evanDefiler: even for that it's wrong
19:18:18drbrainin kernel/bootstrap/class.rb
19:18:21DefilerIt sounded so, I was just surprised something so fundamental would be wired up wrong
19:18:26evanbecause object_at and object_put on non-Tuple's exposes private info about the class
19:18:43evanwe should figure out how to remove it from RuntimePrimitive
19:18:50evanso it only exists on Tuple
19:19:02evanin which case, it's easier to have them in C++
19:19:09evansince you just make them instance methods of Tuple
19:19:18evanwith proper types in the signature, etc.
19:19:50DefilerTuple probably already has compatible functions
19:20:25evanit does.
19:20:51evanok, i'm going to go finish talking with joe
19:20:52evanbbiab.
19:21:05DefilerOK, I am going to see about lunch
19:41:54cremes leaves the room.
19:57:41benburkert_ enters the room.
20:01:15ezmobius enters the room.
20:08:09jbarnette leaves the room.
20:11:00be9 leaves the room.
20:13:44benburkert leaves the room.
20:14:53jayWHY enters the room.
20:18:25methods enters the room.
20:18:32methodsah so it finally ran rails ?
20:24:32rubuildius_amd64Eric Hodel: c0c714352; bin/ci failed! http://rafb.net/p/D9xwPT86.html
20:26:09Defilermethods: That became true before RailsConf, so May I guess
20:26:23CIA-20 enters the room.
20:26:48methodsso most of the language is actually implemented already ?
20:27:02DefilerDefinitely
20:28:29methodsso now what's left? just to start optimizing and finish up the specs ?
20:28:31masshmm
20:29:19massI believe this is an optimization + new VM summer
20:29:40DefilerWe are replacing our existing VM (written in C) with a new one (written in C++)
20:30:08DefilerThe first one evolved over time, and had to adapt to what Ruby turned out to need
20:30:12massDefiler: why didn't you choose to write it in D?
20:30:19masslaughs as he runs
20:30:30DefilerBecause we aren't criminally insane I believe was the objection raised at the time
20:30:37DefilerWe should re-evaluate that
20:30:38massoh :(
20:30:40massthats a shame
20:30:56massyeah really, I don't know if I want to contribute to a project run by sane people
20:31:07massthat'd be like working on subversion...
20:31:20methodsyea your creating an entire new vm right ? why was this done ?
20:31:32massmethods: exploratory development
20:31:37massyou don't know what you need until you have it
20:32:22massthen you restart trying to only have what you need in order to make the final product more maintainable
20:32:27methodsok is the vm like a platform for the ruby written compiler to run on ?
20:32:37Defilermethods: I just said why. The old one wasn't as suitable for the task as one written from scratch could be
20:32:38massI guess you could say that ruby is an exciting language to try to implement
20:33:09DefilerThe ruby compiler runs and compiles the ruby kernel code into bytecode, which is then stored (for now at least) in .rbc files
20:33:10methodsyea but rubinius is ruby written in ruby... so i'm wondering how the vm and the ruby written parts interact
20:33:22methodsthen the vm runs them ?
20:33:26DefilerThe VM reads in bytecode and performs the instructions encoded in it
20:33:27massmethods: its similar to perl or python or java, it compiles ruby 'script' to an intermediate form that gets evaluated
20:33:46DefilerThe existing one we have, called 'shotgun', executes the bytecode directly (more or less)
20:33:56methodsso there is of course an overhead of initial startup time right
20:33:59massits a bytecode interpreter pretty much :)
20:34:00DefilerThe replacement is going to use a library called LLVM to do it more efficiently
20:34:02foysavashey guys, i'm looking for some scratch to itch in rubinius - can anyone point me to something to work on, even some llvm stuff?
20:34:14Defilerright now it is about twice as fast as what we had, but it isn't done
20:34:52Defilerfoysavas: The 'cpp' branch is where the action is happening right now. We are working on getting all the C primitives in the master branch ported into C++ primitives in the cpp branch, along with C++ tests for them
20:34:57methodsso do you actually use the vm to run the ruby scripts that compile ruby into bytecode ?
20:35:11foysavasDefiler: sweet
20:35:15DefilerYou type "rbx blah" where blah is anything you would put after the 'ruby' command normally
20:35:30foysavasare there any lonely tickets for me?
20:35:30DefilerEverything else is handled by the rbx binary for you
20:35:42DefilerNot sure, probably by definition :)
20:35:49DefilerCheck out the list of unassigned tickets, perhaps
20:35:59Defileror look for ones that have been left over on milestones that have already passed?
20:36:02methodsyea i'm just wondering if your actually using rubinius to compile it self already
20:36:09DefilerIf you want something really archaeological
20:36:18DefilerYes, it compiles itself
20:36:58DefilerIt can also run under MRI 1.8, which helps when you want to do some brutal change to the kernel, like renaming primitives
20:36:59foysavaswill do - thought it best to stop in here for any insight before digging in
20:37:11Defilerbut it is self-hosting
20:37:34twbray leaves the room.
20:37:49methodsso when the c++ branch is implemented well be looking at speeds comparable to python and others ?
20:39:34DefilerWe want to be as fast as we can.
20:39:40DefilerWe shall see how far we can take it
20:39:56methodswell twice as fast sounds faster than 1.9 ?
20:40:13DefilerI meant twice as fast as the current performance of rbx
20:40:21rubuildius_ey64Eric Hodel: c0c714352; 2629 files, 8609 examples, 28695 expectations, 0 failures, 0 errors
20:40:26Defilerbut we aren't half bad already
20:40:33methodsyes i know... i'm just wondering if it's close to beating 1.9
20:40:47massa big goal of the project is to make it as maintainable as possible for people who love ruby
20:40:51DefilerFaster than 1.8 all the time would be great.. I want to be faster than everybody else in the end. Heh
20:41:03methodsi mean 1.9 uses a vm too right so does it do all the same steps ? as in compiling to bytecode and executing bytecode ?
20:41:14Defilerbut having the most maintenance-heavy parts written in Ruby is definitely a primary goal, ahead of performance
20:41:22Defiler1.9 is totally different
20:41:27Defilerthan what we do
20:41:32methodshm do they have a channel ?
20:41:33massfaster than 1.8 and without the API breaking changes in 1.8.7 would be great :P
20:41:38DefilerNot really, no
20:41:43methodsi just want to know how they have even used a vm to run ruby
20:42:00DefilerIt took a long time.. ko1 is amazing
20:42:19DefilerThey don't create or store bytecode though
20:42:25masskinda like going deep-sea diving
20:42:29methodswell all i can see here is that a vm is a binary which executes a target but that's all i know
20:42:29massand staying down for two years
20:42:33DefilerThough they do have instructions, etc.. some things are fundamental
20:42:36massand coming back up with the cure for cancer
20:42:45DefilerIn our case the VM is a library
20:43:02massis looking at 'grit'
20:43:23methodsyou guys ever think about extending ruby definition ?
20:43:58DefilerWe have done a little of it where we had to, in order to write things in Ruby
20:44:15methodsi mean like allot of people always rave about those expressions that other languages have... waht's it called? when you can write an expression on a single line and it does all these complicated things
20:44:16Defilerbut we are interested in making a better Ruby, not changing what Ruby means
20:44:32Defilermaybe someday when ruby-core has undergone some more changes
20:44:49DefilerThose expressions are called "irritating to read"
20:45:03methodsyou know what i'm talking about thought right
20:45:05mass*giggle*
20:45:14DefilerNope
20:45:17masshey Defiler, do you know if there are any plans to work on a new parser?
20:45:34massI call them "@%#!"
20:45:35DefilerYeah, definitely
20:45:48methods"list comprehensions"
20:45:50massI'd love to help out with that, are there any active efforts?
20:45:51methodsthat's what i was talking about
20:45:58Defilerright now the code that wires the grammar up to the runtime is really, really tightly coupled
20:46:04Defilerand it has to be ported to the C++ branch (oh god)
20:46:19Defilerwhich hopefully will force some more modularity into the setup
20:46:20massI tried to refactor it a few times
20:46:20massand failed
20:46:32Defilereventually paving the way for maybe ryan's pure-ruby grammar or something like it to be used
20:46:55Defilermass: If you want to take a look at the wiring needed to port it to the cpp branch, I can point you right at the file and line to start on
20:46:57methodsyea like in python you could do: S = [2*x for x in range(100) if x**2 > 3]
20:47:01michaellatta enters the room.
20:47:44masshmm, I wonder what that would be like in C++0x
20:47:46massbwahahaha
20:48:08DefilerIn the cpp branch, vm/builtin/string.cpp needs a function that does what 'string_to_sexp' does in the master branch on line 1556 of shotgun/lib/primitives.rb
20:48:11DefilerFor those interested :)
20:48:11massI assume people are fine with the text to sexp stuff being C++
20:48:16methodslol idk i just find allot of people who i show ruby to always use the fact that it doesn't have list comprehensions against it
20:48:21Defiler'syd_compile_string' needs some work to make it over
20:48:24brapse enters the room.
20:49:04DefilerI find list comprehensions readable in python but I'm not sure I would feel that way in ruby
20:49:25DefilerThere are so many similar-looking patterns in Ruby that you would have to rule out as you read the code
20:50:01methodsah so it was chosen not to implement those cause it would make things even more comlicated right
20:50:32massDefiler: I've been feeling like writing a packrat parser for a while. Damn i need free time.
20:51:41massoh, wow.
20:51:41DefilerI can't say why matz didn't choose to put list comprehensions in Ruby
20:51:46masssomeone more evil than me already did it
20:51:47masshttp://code.google.com/p/pegtl/
20:51:51DefilerWe chose not to put them in rubinius because matz didn't put them in Ruby
20:52:14Defilerand it is hard enough implementing Ruby without adding more work for yourself
20:53:38massmethods, also http://www.ruby-forum.com/topic/89416
20:53:52massDefiler: Parser Expression Grammar Template Library
20:54:02DefilerNice.
20:55:11Fullmoon leaves the room.
20:55:12massrequires the newest version of gcc 4.3 to work apparently
20:55:43DefilerThat's always a fun sign
20:55:46mass(C++0x features)
20:55:52massit uses rvalue references, wow
20:56:07masssomething tells me reading their code will _not_ help me understand rvalue references more :)
20:57:23massDefiler: http://pastie.org/247961
20:57:33massthey are way more evil than me :(
20:58:25Defilerwhoa
21:00:02masswow.
21:00:13massanyway
21:00:19massthis is what a DSL looks like in C++ :)
21:00:37Defilerthe {} at the end is just to satisfy the C++ grammar, right? Heh
21:01:00massthat last one hopefully prepared you for this: http://pastie.org/247966
21:02:15Defilerifapply< ifmust< calc_pad< '+' >, read_prod >, op_action< std::plus< value_type > > > {};
21:02:16massyeah, they mapped rule = class, and you build it through (multiple?) inheritance
21:02:28Defilerhas.. has someone made something less readable than yacc?
21:02:38DefilerTHE FINAL SEAL IS OPEN HIDE THE CHILDREN
21:02:44massI completely understand that
21:02:57massits lisp with angle brackets!
21:03:01Defileryep
21:03:21Defilerand extra squiggles to get you past the compiler's border guards
21:03:48DefilerThat's right yes we are coming to C++ to visit our sister!
21:04:05DefilerNot to invade oh no
21:04:43DefilerWhat? This infinite number of empty suitcases? Think nothing of it.
21:04:44massso, I want to do something similar, but not insane.
21:05:00Fullmoon enters the room.
21:05:23massman thats impressive though
21:05:37massas hard as reading that c++ code is
21:05:42masswriting it is a million times harder
21:05:50massof course, I haven't checked if it compiles
21:06:06DefilerOur goal, grammar-wise, is to be fast enough executing Ruby code to use a ruby grammar written in ruby
21:06:20Fullmoon leaves the room.
21:06:32Defilerbut we didn't want to just tilt at that windmill before we were ready to run regular Ruby code, etc
21:06:38massoh, so maybe switching to a PEGTL based grammar will be that much more motivation?
21:06:47mass:D
21:06:55mass struct character: sor< escaped, regular > {};
21:07:05Defiler#include <project_cancer.hh>
21:07:13twbray enters the room.
21:07:51massby the way, I didn't want to point this out because I didn't want you to cry, but
21:07:59massthere's nothing that prevents those structures from being templates as well
21:08:07massI mean, other than a nesting limit
21:09:27massthats why there are things like template< typename Operation > struct op_action
21:09:32DefilerSure why not
21:09:44DefilerNo law of man can hold us, brother
21:10:01masswhich also means, you can do partial template specialization
21:10:11jgre_ leaves the room.
21:10:15mass template<> struct op_action< std::divides< value_type > >
21:10:52massman I want to know their motivation for making this
21:11:00massits actually really sweet other than its transparency.
21:11:25massstringing together a grammar might drive you insane
21:11:29Defilertemplate<UnfetterInRage> struct flipflop: dread< war, wolves > {};
21:11:31Defilerfor example
21:12:44massabandon all hope
21:13:01masshow does one unfetter, in rage?
21:13:19jbarnette enters the room.
21:14:04headiusI'll be surprised if C++0x doesn't turn into C++1x before long
21:14:21massI think this library may have been written to show gcc how their optimizers fail under enough complexity
21:14:27massand cause the machine to catch fire
21:15:04massand possibly a portal to hell to open
21:15:15enebo enters the room.
21:15:38massyeah this is similar to what I wanted to create, I just wanted to have a grammar for defining the PEGs
21:15:42massrather than.. this
21:15:52massseq< opt< one< '+', '-' > >, plus< digit > > {};
21:15:54dgtizedwishes to inquire again if anyone has had a real chance to see why gcc 4.2.3 does not like compiling the cpp branch since the great dependency changeover this past weekend?
21:16:03Fullmoon enters the room.
21:16:12BobFunk enters the room.
21:16:16Defilermass: id software should make an FPS game set in this library
21:16:20dgtizedspecifically none of the unit tests for the vm will compile
21:16:30massDefiler: there is no way Walmart would carry it
21:17:05mernendgtized: what about the execution/linking problems?
21:17:25massDefiler: I actually really like the structure, but my idea was to have the PEG separate from the actual 'actions'
21:17:32masssimilar to ragel, if you have used it
21:18:05massthis actually has separate actions from grammar objects
21:18:10massjust unfortunately the grammar is inline in C++ code
21:19:26Fullmoon leaves the room.
21:19:39dgtizedmernen: the large quantity of incomplete types and forward declaration errors
21:19:51dgtizedmernen: the core vm compiles but none of the unit tests link or compile
21:20:20headius leaves the room.
21:20:31mernenhave you tried running the vm (apart from the tests)? It gives the same unresolved function errors
21:20:46mernenI was just wondering if you had solved them, since you "only" complained about the tests
21:21:02mernenI have no idea what's going on and I have no experience with llvm
21:21:16dgtizedwell vm/vm returns something useful, but I don't have an rbc to run it on
21:21:26dgtizedI don't think this is an llvm error
21:21:39dgtizedit appeared after the great dependency swap
21:21:46dgtizedso it's just a missing dependency
21:22:08mernenbut before the dependency swap the tests didn't run either, did they?
21:22:41mernenERROR: Program used external function '_ZN8rubinius6String10string_dupEPNS_2VME' which could not be resolved!
21:22:50DefilerCheck out README-C++ for how to create a .rbc file to run with the new VM
21:22:56mernenI did
21:23:26mernenafaik I'm on the same boat as dgtized (trying to run the cpp branch on ubuntu)
21:24:50mernenbut I'm hoping I can just lazily idle on an irc channel while you do the hard work
21:25:10mernenat least until I have some time to play with LLVM
21:29:06Fullmoon enters the room.
21:31:47Defilerevan: Can you explain to me why object_send is a primitive? To avoid __send__ needing two dispatches?
21:35:00Defiler(or anyone else who happens to know why it is set up the way it is)
21:38:40Fullmoon leaves the room.
21:40:43BobFunk leaves the room.
21:42:02neelance enters the room.
21:42:54michalw leaves the room.
21:42:56michalw enters the room.
21:50:03evanDefiler: thats right.
21:51:24drbrainevan: can you lend your eyeballs on this Class.new { } problem for a second?
21:51:32evanyes.
21:51:46evancould you give me the up-to-date details?
21:51:51drbrainok, in kernel/core/class.rb there's a super
21:52:05drbrainif you Class.new { puts "WEEE!" }
21:52:10drbrainWEEE! gets printed twice
21:52:17drbrainand below the super there's a class_eval
21:52:48drbrainif I go to kernel/bootstrap/class.rb, there's a bit of Rubinius.asm that looks like it also might run the block
21:52:56drbrainso I'm thinking the super() is a mistake
21:53:00evanwhere do you see a super?
21:53:05evanin core/class.rb
21:53:11evanwhat method?
21:53:12drbrainyeah
21:53:13evaninitialize?
21:53:20drbrainyes, line 70
21:53:33evank.
21:53:37evanI see it.
21:53:40stepheneb_ leaves the room.
21:53:46drbrainif I print out caller in both of these
21:53:55evanyes, the bit of Rubinius.asm is to handle creating ANY new object
21:53:58drbrainone invocation of the block points to bootstrap, the other core
21:54:01evannot just instances of Class
21:54:17evanString.new inherits to Class.new
21:54:24stepheneb enters the room.
21:54:27drbrainhrm, yeah, and it's new on the one side, and initialize on the other
21:54:36drbrainits the push_block that puzzles me
21:54:44evanwell, that initialize is JUST for creating instances of Class
21:54:50drbrainok
21:54:54drbrainright
21:55:06evanIf i call Class.new, the code in core/class.rb, def new is called first
21:55:12evanthen it calls initialize, passing all the args through
21:55:19evanwhich calls core/class.rb
21:55:20evanerr..
21:55:21evansorry.
21:55:25evanthe first is bootstrap/class.rb
21:55:28evanif I call String.new
21:55:31evanit does the same first step
21:55:41evanthen Class.new calls initailize, which calls String#initialize
21:55:54drbrainlet me pull out backtraces again
21:55:57evank
21:56:04evani'm surprised you can put any code into Class.new
21:56:07evanit's use VERY early.
21:56:16evanbecause it's the only way to create proper objects
21:56:16CIA-20* Rename fastctx_* to context_* to match master.; f79d36e - Eric Hodel
21:57:02evanso, in other words, to be clear, Class.new is used pretty much constantly
21:57:09evanClass#initialize is only called when creating a new class
21:58:22evan(as a side note, our current Class.new is a big bottleneck that will have to be dealt with eventually)
21:59:15Defilerevan: Would it be possible to rewrite Kernel#__send__ to use Rubinius.asm instead of calling a primitive?
21:59:31DefilerIt seems weird to have a primitive that just calls send when we have a bunch of instructions with 'send' in the name
21:59:32drbrainhttp://rafb.net/p/xsy3OE40.html
21:59:38evanDefiler: thats fine for now
21:59:42drbrainI trimmed down the common parts of the backtrace
21:59:43evanbut we'll have to make it primitive again eventually
21:59:49drbrainoh, duh!
21:59:52evanotherwise you pay 2x for calling __send__
22:00:01drbrainI didn't even read that close enough
22:00:14evanyeah
22:00:20evanit's calling Module#initialize too
22:00:23evanas well as Class#initialize
22:00:27evanand thus yielding the block twice.
22:00:30drbrainthat's where the super() goes
22:00:35evanyep.
22:00:49evanjust remove the yield in Class#initialize
22:00:55evanand move the super() to the end
22:00:57ko1_away leaves the room.
22:01:01evanor do
22:01:04evansuper(&nil)
22:01:07drbrainyeah
22:01:12evanto hide the block
22:01:16ko1_away enters the room.
22:01:21drbrainI cut out the class_eval stuff in Class
22:01:25evanyep
22:01:29drbrainsince it's Module's responsibility
22:01:31evanyeah
22:01:40evanbut make sure that metaclass stuff is done before the super then
22:01:56evanso the class is properly baked
22:02:10binary011010 enters the room.
22:02:15drbrainok
22:04:26AndrewO leaves the room.
22:04:56evanDefiler: it's fine to defer the object_send primitive for now
22:08:31Defilerk
22:09:03DefilerYeah.. I see why. Tricky problem
22:13:58gramos enters the room.
22:17:13BobFunkmm enters the room.
22:20:28eventualbuddha enters the room.
22:23:20AndrewO enters the room.
22:26:09BobFunkmm leaves the room.
22:28:37CIA-20* Let Module.new take care of running the block.; de08647 - Eric Hodel
22:30:32brixendrbrain: that fix the heisenbug?
22:30:42drbrainyes
22:31:01brixensweet
22:31:13drbrainI find it bizarre that it didn't expose itself sooner
22:31:38michaellatta leaves the room.
22:31:44brixenyeah, really weird
22:31:52drbrainI saw a change from instance_eval to class_eval in Class that should have done it, or a change to _eval_under in Module that might also have done it
22:32:00drbrainbut it didn't pop up until I rebuilt the stables
22:32:17michaellatta enters the room.
22:34:14pauldix leaves the room.
22:34:56brixenDefiler: so, you're working on string_ prims?
22:37:47drbrainis Blah::create usually suitable for a blah_new primitive?
22:38:25brixendrbrain: there's an example in String
22:38:30brixenone sec, I'll get ya the commit
22:38:34drbrainthanks
22:39:17drbrainhrm, I see string_allocate
22:39:33brixensee 6506bead
22:39:35brixenyeah
22:39:40rubuildius_ey64Eric Hodel: de08647cd; 2629 files, 8609 examples, 28695 expectations, 0 failures, 0 errors
22:39:45brixenthat's the example evan just added
22:39:48thehcdreamer enters the room.
22:39:56aotearoa enters the room.
22:41:09brixendrbrain: so, generally, if ::create does what you want, it should be suitable
22:44:27drbrainok
22:44:43drbrainI'm going to play with thread some more
22:45:21ijcd enters the room.
22:46:03imajes_ enters the room.
22:47:05rubuildius_amd64Eric Hodel: 23a2b5c25; 2629 files, 8609 examples, 28695 expectations, 0 failures, 0 errors
22:47:06rubuildius_amd64Eric Hodel: de08647cd; 2629 files, 8609 examples, 28695 expectations, 0 failures, 0 errors
22:47:18binary011010 leaves the room.
22:49:52VVSiz_ leaves the room.
22:53:32massbrixen, you missed it
22:53:43brixenmass: what is the it I missed?
22:53:50massI was showing wilson a PEG impl I found, in C++
22:53:57brixenoh, I saw
22:54:04massdid you see the examples?
22:54:05brixenI see everything you show wilson... nvm
22:54:08brixenyeah
22:54:24massmaybe its just the lisp developer in me, but I thought it was beautiful
22:54:35masslol
22:54:39brixenyou are a sick man
22:54:44brixen:P
22:55:01massyou know whats sick? I downloaded that from googlecode, because they didn't have svn set up
22:55:03brixenlisp *is* beautiful compared to that C++
22:55:04massit was release 0.28
22:55:20massthere have been about 25 public releases of that so far :)
22:55:30masssince march!
22:55:31michaellatta leaves the room.
22:55:38brixenmust be a hot item
22:55:50masswell some of them are like 'forgot to include headers'
22:56:07thehcdreamer leaves the room.
22:56:10massbut those were at the beginning, I'm betting he scripted distribution since then :)
22:56:42massseriously, I do like the architecture because it splits the grammar from the 'actions'
22:56:45brixenyou should compare the pegtl to this http://rubyforge.org/projects/ruby-tp-dw-gram/
22:56:49brixenand see which is better
22:56:50mass...sorta
22:57:45brixenI'm holding out for colm, I think adrian is smarter than your average man ;)
22:58:31masscola?
22:58:42brixenhttp://research.cs.queensu.ca/~thurston/colm/
22:59:16cyndis leaves the room.
22:59:18massI haven't tried to build the pegtl yet, mostly because it requires a newer compiler version than applegcc
22:59:24brixenmass: pretty sure I've sent you this before, I'm starting to worry about your long-term viability under the weight of java development
22:59:31massbut if it does, i'm pretty sure the person is like darkman, immune to pain
22:59:54brixenfolks like that usually create products that require a similar constitution
22:59:58cyndis enters the room.
23:00:00brixento use them
23:00:24benburkert leaves the room.
23:01:49brixensee, it's the "arbitrary global data structures that can be queried during parsing" part of colm that intrigues me
23:02:13brixenconsidering the franken-coupling between the lexer and parser of MRI
23:02:19massbrixen: his description is harder for me to read than that C++ earlier
23:02:25brixenheh
23:03:23brixenjust notice the celestial-tinted oakenfold playing in your ears as you read
23:03:26massman that third paragraph makes my vision blur about halfway through it
23:03:53brixenit indicates you are nearing the event horizon
23:03:58brixenyou won't be coming back ;)
23:04:39massI think I'm getting stuck on 'inherent concurrency in the parsing method'
23:05:41drbrainam I reading correctly that VM::queue_thread is "run this some time in the future"
23:05:49drbrainand VM::activate_thread is "run this thread now" ?
23:06:00massman though, how can you think of something like this and turn it off to live a normal life?
23:06:32evandrbrain: yes
23:06:41drbrainok
23:08:57evandrbrain: they're like Thread#run versus Thread#wakeup
23:09:19drbrainok
23:10:00drbrainthese primitive names are all weird
23:10:04drbrainfor thread
23:10:12robin_dewd_ leaves the room.
23:10:15drbrainThread.pass => thread_yield, Thread.wakeup => thread_schedule
23:12:07evanhm... what did I name them that way..
23:12:14evanfeel free to make them sane
23:12:41drbrainthey probably make sense looking from the shotgun side
23:13:00robin_dewd enters the room.
23:13:09evanyeah
23:16:45bricolage enters the room.
23:20:05michaellatta enters the room.
23:23:32michalw leaves the room.
23:26:14shame leaves the room.
23:29:10eventualbuddha leaves the room.
23:32:02benburkert enters the room.
23:35:33headius enters the room.
23:36:29imajes leaves the room.
23:36:44headiushowdy howdy
23:36:50masshiya headius
23:37:04headiushello there
23:37:06headiushow goes it
23:37:15massdid you make the comment about c++1x earlier? :)
23:37:18headiusyes
23:37:37massI think they need to finish up concepts fast, then they are in good shape
23:37:48massI don't know what else they have pending
23:38:36drbrainare the VM tests crashing in test_push_my_field for anyone else?
23:39:45massactually, nevermind that. Their intent is to have CD this year, FCD end of next, and publication late 2010
23:40:04headiushuzzah
23:40:05headius1x
23:40:11mass201a
23:40:14masserr, 200a
23:40:24headiushehe
23:40:27headiusC++oa
23:40:28headius0a
23:40:37brixendrbrain: checking..
23:41:38Maledictus leaves the room.
23:42:35drbrainif you run rake -t vm:test it prints out each test as it runs
23:43:19twbray leaves the room.
23:43:25massI miss the insane new proposals :(
23:43:43massalthough most of them were integrated, so I guess thats ok
23:45:02benburkert leaves the room.
23:45:15brixendrbrain: nope, no crash, 2 failures
23:45:20AndrewO leaves the room.
23:45:26drbrainok
23:45:29brixencurious that it's only runnng 409 tests, I clearly see 471 when grepping
23:45:39masshaha one I missed; someone proposed applying the virtual keyword to method parameters as part of adding multimethod dispatch to the language
23:45:47neelance leaves the room.
23:46:10massje jas sp,
23:46:27masshe has some disgusting syntax in his examples too, guess he imagined garbage collection?
23:46:30massshape& s = *new square;
23:46:46binary42 leaves the room.
23:47:02benburkert enters the room.
23:47:59drbrainok, I revert my change and it's back to Failed 2 of 409 tests
23:49:56massthe most evil proposal imho is in review for incorporation, user-defined literals
23:50:21mass125km could actually give you some kilometer object
23:51:31drbrainok, it's in one of those extra 60-odd tests that does it
23:52:28Arjen_ leaves the room.
23:52:36moofbong leaves the room.
23:57:57michaellatta leaves the room.
23:58:38edwardam leaves the room.