Camelia, the Perl 6 bug

IRC log for #parrot, 2008-06-12

Parrot | source cross referenced

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:00 bacek_ 10:00... $dayjob starting..
00:00 Auzon karma $dayjob
00:00 purl $dayjob has karma of -1
00:00 NotFound A simple fact: we already have a lot of functions with non-null parameters directly called from opcodes without chekcing for nullness the registers used.
00:00 Auzon karma $work
00:00 purl $work has neutral karma
00:00 bacek_ Adn I did
00:00 bacek_ And I didn't have my coffee yet...
00:01 bacek_ ($dayjob)++ # It gives me enough money to do something for rakudo :)
00:01 NotFound What is the 'correct' fix? Change the signature, check all usages, or add other function for the same job?
00:01 Tene So, is anyone going ot give me something HLLish to do tonight?
00:02 particle NotFound: i think opcodes shouldn't check for nullness
00:02 particle they should be fast and efficient, and assume correct input
00:02 NotFound particle: i think there are already several that does.
00:02 particle yes, this is true
00:03 particle and, i don't have final say
00:03 particle but it's how i'd design it
00:03 NotFound particle: yes, but i think they must also avoid segfaulting the interpreter.
00:03 particle so, null checking belongs outside the opcodes themselves
00:03 NotFound An actually, a lot does.
00:03 particle notfound: indeed
00:04 NotFound Well, then we have only the other two solutions.
00:05 NotFound And have two versions of a lot of functions looks no very desirable to me.
00:05 particle tene: i'd like very much to start using languages/pir/ to do a pirtidy utility
00:05 particle or, pir::critic util
00:06 Whiteknight write the utility in pure PIR?
00:07 particle no, use languages/pir for the parser
00:07 particle write the actions in nqp
00:07 particle the pir rules are simple
00:07 Whiteknight well that makes a bit more sense
00:07 particle .sub|.end are first column
00:07 particle labels are two column indent
00:07 particle all other pir is four columns
00:07 particle all spaces, none trailing
00:07 NotFound An utility that generates a lot of random opcodes, executes it, and save for revision those that segfault may be helpful.
00:07 Whiteknight yeah, I suppose that is pretty easy
00:07 particle of course, having options for those things is secondary
00:08 particle notfound: indeed
00:08 particle or something to twiddle bits in bytecode known not to segfault
00:08 particle would be nice to have a disassembler worknig well enough for that
00:09 NotFound At least it can help to show how esay is to segfault parrot in the current state.
00:09 particle yep
00:10 AndyA joined #parrot
00:10 NotFound Look at #55640 for a recent example.
00:18 DietCoke so, PCT doesn't support HLL, right?
00:24 Zaba_ joined #parrot
00:25 particle DietCoke: no, not yet
00:50 DietCoke ok. I'm going to hold off on converting tcl until then, then.
00:51 DietCoke I do wonder if it makes sense to ditch my templating language and use NQP, though.
00:51 DietCoke meh. I'll leave it alone. :|
00:54 Whiteknight particle, you're talking about a PASM disassembler?
00:54 Whiteknight oh, particle left
00:56 dalek r28247 | Whiteknight++ | gsoc_pdd09:
00:56 dalek : [gsoc_pdd09] basics of an "add_free_item" function, allows an item to be added directly to the free list.
00:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28247
01:23 dalek r28248 | Whiteknight++ | gsoc_pdd09:
01:23 dalek : [gsoc_pdd09] implemented the "more_objects" object recycler, at least a basic version of it.
01:23 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28248
01:32 particle joined #parrot
02:06 AndyA joined #parrot
02:10 cotto_home seen fperrad
02:10 purl I haven't seen 'fperrad', cotto_home
02:10 cotto_home you lie!
02:10 * purl would NEVER do such a thing to you, cotto_home!
02:10 cotto_home There!  You did it again!
02:11 Zaba joined #parrot
02:16 cotto_home joined #parrot
02:30 Whiteknight any C people in here?
02:33 cotto_home define "C"
02:33 spinclad #define C asm++
02:33 spinclad otoh
02:34 spinclad parrot.isa(asm++) too
02:34 spinclad Whiteknight: i could look
02:35 Whiteknight I'm trying to figure out about a particular coding standard
02:36 spinclad Whiteknight: which where?
02:36 purl which is probably more recommended IO::File or FileHandle? or nice or why entourage is a complete sack of shit
02:37 spinclad purl, forget which
02:37 purl spinclad: I forgot which
02:37 Whiteknight i'm trying to figure out about the oft-unused "register" keyword, and whether I can use it or not
02:37 cotto_home iirc, it's a compiler hint that may or may not be ignored
02:37 spinclad there's no guarantee it will make any difference
02:37 Whiteknight yeah, i know what it is, i want to use it and wonder if i should or not
02:38 Whiteknight because i doubt it's used anywhere else in the codebase
02:39 DietCoke PDD07
02:39 spinclad Pattern not found
02:40 Whiteknight yeah, i was about to say that
02:41 Whiteknight it's standard C89, so i'm going to use it. Any hints I can give to the optimizer are good
02:42 cotto_home pdd07 is http://www.parrotcode.org/do​cs/pdd/pdd07_codingstd.html
02:42 cotto_home pdd07?
02:42 purl pdd07 is probably there for you ;-)
02:42 spinclad i've heard of compilers allowing global register decls, but they're rare
02:42 cotto_home no, pdd07 is http://www.parrotcode.org/do​cs/pdd/pdd07_codingstd.html
02:42 purl okay, cotto_home.
02:42 japhb joined #parrot
02:45 spinclad anyway, i see no prohibition.
03:07 cotto_home joined #parrot
03:17 workbench joined #parrot
03:30 tetragon joined #parrot
03:34 TiMBuS joined #parrot
04:12 grim_fandango joined #parrot
04:15 Zaba_ joined #parrot
04:17 tetragon joined #parrot
04:24 DietCoke cotto_work: You're the closest arrival to me. Any interest in sharing a cab =-)
04:46 dalek joined #parrot
04:46 cotto_home DietCoke, sure
04:49 cotto_home (I'm cotto_work's alter ego.)
04:51 iblechbot joined #parrot
04:57 cotto_home DietCoke, confirm?
05:00 Eevee joined #parrot
05:01 cotto_home I guess you're asleep.  I'll just sync Thurs.
05:07 Zaba joined #parrot
05:30 Zaba_ joined #parrot
05:43 barney joined #parrot
06:01 dalek r28249 | chromatic++ | trunk:
06:01 dalek : [lib] Made PMC emitter stick mro initialization in its own block, to avoid C89
06:01 dalek : violation that MSVC hates.  (NotFound, RT #55590, providing overnight fixes
06:01 dalek : since 2008).
06:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28249
06:01 dalek r28250 | chromatic++ | trunk:
06:01 dalek : [src] Changed yet another const_string to CONST_STRING.
06:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28250
06:05 Zaba joined #parrot
06:14 dalek r28251 | chromatic++ | trunk:
06:14 dalek : [io] Cleaned up the flipflopping C and C++ warnings related to Unix sockets
06:14 dalek : (NotFound, RT #55590).
06:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28251
06:14 Psyche^ joined #parrot
06:16 uniejo joined #parrot
06:32 grim_fandango joined #parrot
06:35 dalek r28252 | chromatic++ | trunk:
06:35 dalek : [src] Fixed some const casting warnings (NotFound, RT #55590).
06:35 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28252
06:43 dalek r28253 | chromatic++ | trunk:
06:43 dalek : [IMCC] Removed constant string to char * casting warnings in IMCC from C++.
06:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28253
06:52 Eevee joined #parrot
06:54 dalek r28254 | chromatic++ | trunk:
06:54 dalek : [t] Fixed a test broken by r28252 that I didn't catch the first time.
06:54 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28254
07:10 UltraDM joined #parrot
07:20 iblechbot joined #parrot
07:21 dalek joined #parrot
07:56 dalek r28255 | fperrad++ | trunk:
07:56 dalek : [Lua]
07:56 dalek :  -improve string.byte() (Lua 5.2 preview)
07:56 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28255
08:03 allison joined #parrot
08:43 allison joined #parrot
08:51 dalek r28256 | pmichaud++ | trunk:
08:51 dalek : [pge]:
08:51 dalek : * ratcheting PGE::Exp::WS (<.ws>) rule doesn't need to backtrack
08:51 dalek : * <.foo> rules are supposed to be non-capturing (RT#54380, tewk++)
08:51 dalek : * 0..1 ratcheting quantified item doesn't need to backtrack
08:51 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28256
08:55 Tene Cardinal's make test used to take 37 seconds to run, and now takes 7 seconds to run.
08:56 Tene How can I meaningfully express that in "% faster"?
08:57 TiMBuS i prefer '% of the old time'
08:58 Tene Me too.  chromatic always says "% faster", though, and I'm not sure exactly what that means.
08:58 TiMBuS thats exactly what i was thinking too
08:58 TiMBuS heh
08:59 pmichaud 30 / 37
08:59 purl 0.810810810810811
08:59 pmichaud Cardinal's make test is 81% faster.
08:59 TiMBuS so its like the compliment of '% of the old time'
09:00 pmichaud yes.  If something is 25% faster, then it takes only 3/4 as much time as before.
09:01 TiMBuS guess that makes sense
09:01 Tene pmichaud: perldoc PAST/Node.pir claims that ::Op accepts :pasttype('assign'), but afaict, that's not true.
09:02 pmichaud correct, that ended up being unimplemented.
09:02 Tene Okay, thanks.
09:02 pmichaud but :pirop('assign') should work, depending on what is being assigned.
09:02 pmichaud :pasttype('assign') was from before when we had a reasonable 'copy' opcode
09:02 jonathan morning
09:02 pmichaud i.e., to do the morph+assign trick
09:02 pmichaud morning, jonathan
09:03 pmichaud today is rakudo day for you?
09:03 jonathan Yes
09:03 jonathan Erm, are you up exceptionally early or exceptionally late? ;-)
09:03 Tene morning, j.
09:04 pmichaud exceptionally late -- was getting ready to get a couple of hours sleep
09:04 jonathan Tene: morning :-)
09:04 jonathan OK
09:04 jonathan Did the pmc2c bug get fixed?
09:04 * jonathan svn up's hopefully
09:04 pmichaud unfortunately I might not be around as much as I had planned today -- I'm likely to have to accompany Paula to the doctor's office today
09:04 pmichaud ...pmc2c bug?
09:05 Tene If I lie and say that I fixed it, will I have a net karma increase or decrease?
09:05 jonathan pmichaud: Some change to that was breaking the Rakudo build for at least myself and particle
09:05 jonathan (e.g. may be Win32 specific)
09:05 pmichaud ah, okay.
09:06 jonathan Build failed in perl6str PMC
09:06 jonathan I see an update to that file though...
09:06 pmichaud anyway, I'm heading to sleep.  I'll either be back in approx 6 hours or otherwise much later than that.
09:08 Tene seeya
09:08 Tene good luck
09:08 purl well, good luck is all I can say.
09:08 cotto_home joined #parrot
09:08 TiMBuS theres no reverse op in parrot?
09:08 TiMBuS 3:
09:08 Tene reverse?
09:08 purl reverse is verboten. or true?  :) or needing lots of lube
09:08 jonathan pmichaud: OK, sleep well.
09:09 TiMBuS for strings
09:09 Tene TiMBuS: that would be a method in the string pmc, not an opcode.
09:11 TiMBuS oh, im not really up to scratch on parrots' internals, i just assumed from string.ops they were standalone operations
09:13 Zaba_ joined #parrot
09:13 jonathan Yup, builds works again. Now I can hack on Rakudo. Phew!
09:19 allison joined #parrot
09:59 spinclad re % faster, aiui 25% faster would mean 125% as fast (5/4), or taking 4/5 as much time.  its opposite would be 20% slower.  so cardinal is (30/7 =) 428% faster.
10:19 bacek evening everyone
10:19 jonathan evening, bacek
10:19 jonathan (well, afternoon here...)
10:20 * bacek almost see future
10:23 dalek r28257 | jonathan++ | trunk:
10:23 dalek : [rakudo] Fill out the implementation of ^.., ..^ and ^..^ operators.
10:23 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28257
10:27 bacek jonathan, can you review #55438 please? (It probably will require another patch for eval from #55304...)
10:28 * jonathan digs into roles, having done the ranges patch to get properly woken up
10:29 jonathan bacek: Any idea what this is about:
10:29 jonathan - proclaim($cond, $desc);
10:29 jonathan + &proclaim($cond, $desc);
10:29 jonathan Why do we need the sigil on there, if just calling it?
10:31 bacek We don't? I'll try without it.
10:31 bacek Just a sec
10:33 jonathan In general though, I don't think I'm a good person to apply patches to Test.pm. I just don't know it well enough to be able to make a good enough judgement call on whether patches to that are good or not.
10:33 jonathan If it gets an OK for particle or pmichaud, I'm happy to actually apply it.
10:35 cosimo joined #parrot
10:35 bacek (we don't need &) It's always good to learn something new :)
10:36 jonathan I'm thinking that http://rt.perl.org/rt3//Publ​ic/Bug/Display.html?id=44297 can be closed now?
10:38 bacek jonathan, indeed
10:40 jonathan Hmm. You have several unapplied patches.
10:42 jonathan "Implementation of List.min and List.max" looks quite sane to me
10:44 bacek jonathan, pmichaud is quite busy to check them :)
10:45 jonathan yeah
10:49 jonathan bacek: Are we passing much/any of http://svn.pugscode.org/pug​s/t/spec/S29-list/minmax.t with this patch?
10:52 bacek all tests passed
10:52 jonathan Nice!
10:53 bacek (But it's better to check again on 'clean' checkout :)
10:54 jonathan Sure, doing so here.
10:54 jonathan Will commit that and adding it to spectet_regression if it all passes.
10:54 bacek jonathan, there is more passing tests, btw.
10:56 bacek (ok 24 for minman)
11:01 bacek #55368 should be closed. pmichaud applied it.
11:03 jonathan bacek: Not seeing that here
11:03 jonathan t\spec\S29-list\minmax.....................ok 1/24too many arguments passed (4)
11:03 jonathan - at most 2 params expected
11:03 jonathan current instr.: 'parrot;List;min' pc 2959 (src/gen_builtins.pir:2012)
11:03 jonathan t\spec\S29-list\minmax.t    1   256    24   44  3-24
11:04 tetragon joined #parrot
11:04 bacek jonathan, oops... I did't commit minmax.t cause I'm not sure about correctness of fix.
11:04 bacek just a sec
11:05 bacek -is max({ abs $^a <=> abs $^b }, @array), -9,
11:05 bacek +is max({ abs 0+$^a <=> abs 0+$^b }, @array), -9,
11:05 bacek This sample of changes..
11:06 bacek -isnt @array.max: { $^a <=> $^b }, -9,
11:06 bacek +isnt (@array.max: { $^a <=> $^b }), -9,
11:06 bacek this is another...
11:06 jonathan Oh, I see
11:06 bacek What is precedence of comma after '}' in second case?
11:06 jonathan erm
11:06 * jonathan tries to think
11:07 * bacek thinking... 13% done...
11:08 jonathan S12
11:08 jonathan In case of ambiguity between indirect object notation and dot form, the nearest thing wins:
11:08 jonathan dothis $obj.dothat: 1,2,3
11:08 jonathan means
11:08 jonathan dothis ($obj.dothat(1,2,3))
11:09 bacek looks like it not supported in rakudo (yet)
11:09 bacek or just a sec...
11:09 jonathan oh, what
11:09 jonathan I'm not sure if that's the thing we're talking about.
11:09 jonathan s/what/wait/
11:10 bacek our List multi min( Ordering @by,  *@values )
11:11 jonathan OK, I suggest I put min/max patch for list in now, and then we ask pmichaud about the syntax in the test file later.
11:11 jonathan @by?
11:11 bacek If you right (and I'm sure in it), than original test case is incorrect.
11:11 bacek min({ abs $^a <=> abs $^b })
11:12 bacek our List multi min( Ordering $by = &infix:<cmp>, *@values )
11:12 bacek (it is second form of sort() for List)
11:12 bacek s/sort/min/
11:13 dalek r28258 | jonathan++ | trunk:
11:13 dalek : [rakudo] Fix trailing whitespace.
11:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28258
11:13 dalek r28259 | jonathan++ | trunk:
11:13 dalek : [rakudo] Add min and max to list. Patch courtesy of Vasily Chekalkin (bacek++).
11:13 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28259
11:14 nopaste "bacek" at 202.7.166.181 pasted "Full patch of minmax.t" (50 lines) at http://nopaste.snit.ch/13235
11:15 jonathan bacek: OK, let's run that by pm later.
11:15 bacek jonathan, ok
11:16 jonathan But the min/max patch looked good, so that's in. Thanks! And one less for pm. :-)
11:17 bacek :)
11:17 jonathan bacek: For your uniq patch
11:17 jonathan comparer = get_hll_global 'infix:eq'
11:18 jonathan I'm not sure forcing everything to be stringified is the Right Thing.
11:19 bacek jonathan, probably. But 'uniq' is totally unspecced...
11:19 bacek I got idea from tests...
11:20 bacek I think that 'infix:<=>' is better as default comparer.
11:23 bacek (But S29-list/uniq.t fails with <=>...)
11:25 dalek r28260 | kjs++ | trunk:
11:25 dalek : [ecmascript] implement return statement
11:25 dalek : + add a test
11:25 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28260
11:26 bacek yeah! infix:~~.
11:26 * bacek forgot about it once again...
11:31 tetragon joined #parrot
12:00 tetragon joined #parrot
12:22 Whiteknight joined #parrot
12:31 dalek r28261 | Whiteknight++ | gsoc_pdd09:
12:31 dalek : [gsoc_pdd09] updating to trunk r28260
12:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28261
12:46 dalek r28262 | jonathan++ | trunk:
12:46 dalek : [core] addattribute op should work for roles as well as classes.
12:46 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28262
13:00 gryphon joined #parrot
13:07 dalek r28263 | jonathan++ | trunk:
13:07 dalek : [rakudo] A few changes to get us a little further along with role attributes.
13:07 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28263
13:09 smash joined #parrot
13:09 smash hello everyone
13:17 iblechbot joined #parrot
13:22 dalek r28264 | jonathan++ | trunk:
13:22 dalek : [rakudo] Initial work to support basic attribute composition. Far from complete, but gets private attributes from a directly composed role working.
13:22 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28264
13:30 dalek r28265 | jonathan++ | trunk:
13:30 dalek : [rakudo] Get accessor and handles methods of roles in the correct namespace, making composition of public attributes work.
13:30 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28265
13:33 Zaba joined #parrot
13:33 dalek r28266 | jonathan++ | trunk:
13:33 dalek : [rakudo] Add passing regression test for some basic role attribute composition to spectest_regression.
13:33 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28266
13:56 contingencyplan joined #parrot
14:10 cognominal joined #parrot
14:13 Andy joined #parrot
14:32 jhorwitz joined #parrot
14:37 grim_fandango joined #parrot
14:39 ruoso joined #parrot
14:42 IllvilJa joined #parrot
14:53 dalek r28267 | jonathan++ | trunk:
14:53 dalek : [rakudo] Support 'is rw' on attribute declarations. Trying to use the accessor in l-value context when it's not marked 'is rw' now results in an exception, as per S12.
14:53 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28267
14:56 jhorwitz crap.  something broke mod_perl6
14:57 * jhorwitz finds his debugging hat...
14:59 * jonathan hopes he's not to blame
14:59 jonathan jhorwitz: When you work out what, let's make sure we add a regression text.
14:59 jonathan s/text/test/
15:00 jhorwitz jonathan: definitely.  none of my HLL modules have tests yet.
15:01 dalek r28268 | Whiteknight++ | gsoc_pdd09:
15:01 dalek : [gsoc_pdd09] updating branch to trunk r28260
15:01 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28268
15:09 pmichaud pong
15:09 dalek r28269 | jonathan++ | trunk:
15:09 dalek : [rakudo] Fix 'handles'. The fact we have to do this may point to a PCT bug - it hadn't used to require a PAST::Val node here.
15:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28269
15:10 * jhorwitz realizes he was wearing his moron hat
15:11 jhorwitz it is wise to actually to load mod_perl6 in httpd.conf when running perl6 handlers.  DOH!
15:12 jonathan :-)
15:12 obra joined #parrot
15:12 * jhorwitz obviously needs more coffee
15:16 pmichaud (min/max)   I'm preferring to export the actual Parrot methods as opposed to creating separate wrapper functions.
15:17 particle joined #parrot
15:18 pmichaud oh, wait, these have slurpy arguments.
15:18 pmichaud never mind.
15:18 purl Okie dokie
15:18 jonathan pmichaud: See http://www.parrotvm.org/svn​/parrot/revision?rev=28269 - maybe something to fix in PCT, but your call.
15:18 jonathan Also, I'm looking at the spectest for handles.
15:18 jonathan It does stuff like
15:19 jonathan ok Backend1.new, "class definition worked";
15:19 jonathan Which at the moment gives us "get_bool not implemented on class Backend1"
15:19 pmichaud right, I need to set up defined and true
15:19 pmichaud in class Object
15:19 jonathan Should Object by default have a get_bool that returns true, and proto-object overrides it with false?
15:20 pmichaud I think that get_bool should call .true
15:20 jonathan OK, can do that.
15:20 pmichaud but wait
15:20 pmichaud (checking spec)
15:20 jonathan ok
15:22 pmichaud S02: # The definition of .true for the most ancestral type (that is, the Object type) is equivalent to .defined. Since protoobjects are considered undefined, all protoobjects (including Object itself) are false unless the type overrides the definition of .true to include undefined values. Instantiated objects default to true unless the class overrides the definition. Note that if you could instantiate an Object it would be considered defined, and thus t
15:23 jonathan OK
15:23 pmichaud I was actually going to do that part :-)
15:23 jonathan So we call .true from get_bool, which calls .defined
15:23 pmichaud the generic mechanism for changing a class' boolean value will be to override .true.
15:24 jonathan OK, soon? I'm keen to get at least some test in for handles, since it broke and I like to get tests in for things so we're less likey to accidentally break them again. :-)
15:24 pmichaud I can do it this morning.
15:24 jonathan Yes, makes sense.
15:24 pmichaud like, in the next hour or so.
15:24 jonathan OK, I can leave it to you if you want it. :-)
15:24 pmichaud re:  r28269....    why do you need a node called '1' ?
15:24 particle1 joined #parrot
15:25 pmichaud sorry, parameter called '1'?  Actually, what is that?  I need to look at actions.pm.
15:25 jonathan Oh, context
15:25 jonathan it's in handles
15:25 jonathan It's to generate the PIR :flat :named
15:25 jonathan Before :flat(1), :named(1) did it fine
15:26 jonathan Now you have to stick a PAST::Val in :named - it still emits the correct code.
15:26 jonathan It's just gathering and forwarding the arguments.
15:26 pmichaud that's definitely a pct bug
15:26 jonathan OK, suspected so.
15:27 pmichaud however, do we have to do it that in PAST at all?
15:27 pmichaud why not just call a function that does the forwarding for us?
15:27 jonathan No, we're actually generating a forwarder method.
15:27 pmichaud oh.
15:27 jonathan If we called a forwarder function, we'd still have to generate the method...
15:28 jonathan And we'd still have to pass it the args. :-)
15:29 pmichaud okay, works for me for now.
15:29 pmichaud (something seems odd about it to me at the moment, but I can't figure out what it is.)
15:29 pmichaud checking pct bug.
15:31 pmichaud weird.  I don't know what I was thinking when I wrote that.
15:31 cotto_work DietCoke, ping
15:33 pmichaud jonathan: r28270 should fix the :named(1).  (untested -- can you test?)
15:33 dalek r28270 | pmichaud++ | trunk:
15:33 dalek : [pct]:
15:33 dalek : * Fix bug with :flat :named argument nodes (jonathan++)
15:33 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28270
15:35 jonathan pmichaud: Will do soon, just got something in the works here.
15:51 dalek r28271 | tene++ | trunk:
15:51 dalek : [cardinal]
15:51 dalek : * Faster
15:51 dalek : * Cleaner
15:51 dalek : * Parse many things we couldn't parse before
15:51 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28271
15:52 Tene Horrible commit message, I know, but I need to go teach class now.
16:02 pmichaud jonathan: I'll have to work on C<true> after lunch -- it's a bit more involved than originally expected (because there are a lot of classes and objects that are overriding vtable_get_bool
16:02 pmichaud so we're ending up in loops.
16:02 pmichaud but I'll do it immediately after lunch.
16:03 jonathan pmichaud: OK, no worries.
16:03 jonathan I'm busying myself with a few type-related things.
16:04 jonathan Check this bit of evil in S12 out:
16:04 jonathan "Two has attributes of the same name, whether public or private, are simply merged into one slot, provided the types are the same; otherwise, the composition fails."
16:04 jonathan So, attribute types are going in...
16:04 particle1 is that for roles?
16:04 jonathan particle1: Yup.
16:05 particle1 sweet evil.
16:05 jonathan Yeah, it made me implement attribute types.
16:05 jonathan Then I forgot that this was what I was meant to be doing and when and got is rw working on attributes first...
16:05 jonathan s/when/went/
16:05 particle1 that won't *hurt* anything, though :)
16:06 jonathan ;-)
16:06 jonathan Yeah, good to have it.
16:06 jonathan Now when I give slides on attributes, I cna leave out the "and one day you will be able to write is rw..."
16:07 jonathan Roles are quite a lot of work.
16:07 particle1 what, you mean it won't be done today? or you'll need another tea first?
16:07 jonathan Erm. I don't think I'll get generic ones done today. :-P
16:08 particle i'm *so* far behind
16:08 particle but finding work and rebuilding my machine have to take priority
16:08 jonathan Method composition works, and basic attrib comp does as of today now too.
16:08 dalek r28272 | Whiteknight++ | gsoc_pdd09:
16:08 dalek : [gsoc_pdd09] wrote black and grey marking functions, updated Small_Object_Pool and Gc_it_pool_data structures to be more compact
16:08 particle do you have 'resolves' done?
16:08 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28272
16:09 particle is that what it's called, to name a method something else when composed in the class?
16:10 jonathan Parrot supports that, and there's tests for it. I'm not sure Perl 6 actually does that, though. Or at least, I'm not seeing it in the spec...
16:10 particle i'm pretty sure i does
16:11 jonathan There are several ways to solve method conflicts. The first is simply to write a class method that overrides the conflicting role methods, perhaps figuring out which role method to call.
16:11 jonathan Alternately, if the role's methods are declared multi, they can be disambiguated based on their long name. If the roles forget to declare them as multi, you can force a multi on the roles' methods by installing a proto stub in the class being constructed
16:11 jonathan (that was from S12)
16:11 jonathan Thsoe are the only two ways it mentions. I'd not tended to count two as several, but... :-)
16:12 particle yeah, that's what i'm reading now
16:13 jonathan The original traits paper mentioned such a mechanism.
16:13 particle yep
16:13 particle and like you said, parrot has it
16:14 particle but i suppose using a class method works instead of using a trait
16:14 jonathan Yup.
16:15 particle btw any reason it's trait_auxiliary: instead of trait: ?
16:15 jonathan There are trait_verb as well
16:15 jonathan rule trait { | <trait_auxiliary> | <trait_verb>
16:15 jonathan }
16:15 particle ah, right
16:16 jonathan I'm not 100% sure exactly why or what the distinction is.
16:16 particle auxiliary is an ugly word, though
16:16 jonathan But different trait-ish things are consistently distinguished. So I'm guessing there is a reason.
16:16 particle the verbs don't have a sig
16:16 particle they're not multis
16:17 jonathan Oh
16:17 jonathan You're right.
16:17 jonathan OK, that's why. :-)
16:17 particle but 'trait_multi' and 'trait_verb' sound better to me
16:18 particle however multi and verb don't quite fit the same class of words
16:18 particle anyway, it's just paint.
16:18 AndyA joined #parrot
16:18 jonathan Sure
16:18 sjansen joined #parrot
16:18 particle did you do trait_verb yet?
16:19 particle i assume it'd be easy, considering there's no sig
16:20 jonathan The handles trait verb is already implemented, on attributes.
16:22 jonathan returns - not yet, but now the return statement is in, I may look at return type stuff.
16:43 dalek r28273 | jonathan++ | trunk:
16:43 dalek : [rakudo] Allow types to be declared on attributes and enforce them. We also move a little closer to STD.pm in this patch and gain support for type conjunctions (the code was there, just not being called into), so you can do my Type1 Type2 $foo.
16:43 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28273
17:03 DietCoke Whiteknight: If you are concerned about checking something that should obviously be true, use an assertion.
17:03 DietCoke those will get eliminated in optimized builds, IIRC.
17:05 Whiteknight okay
17:05 Whiteknight thanks
17:05 cotto_work DietCoke, ping
17:07 DietCoke pong
17:07 DietCoke Whiteknight: ack for PARROT_ASSERT
17:07 Andy Hey, who is Whiteknight anyway
17:07 purl i heard Whiteknight was updating the book. It talks about .pragma fastcall, pushing and popping arguments onto the user stack, etc
17:07 Whiteknight I know PARROT_ASSERT, i just need to use it more
17:07 Andy I keep seing postings.
17:08 Whiteknight I'm working on the PDD09 GC
17:08 cotto_work sharing a cab from ORD tomorrow sounds fine
17:08 Andy But do you have a name, pardner?
17:08 Whiteknight Andrew
17:08 cotto_work Since I'm arriving first, I'll hang out near where your flight will arrive and we can go from there.
17:09 jonathan pmichaud: The PCT fix didn't work; not it generates: $P68 = $P65."go"($P66 :flat :named :flat, $P66 :flat :named :flat)
17:10 Zaba is it normal that quite a lot of tests fail when I run make spectest_regression in perl6?
17:10 cotto_work http://port25.technet.com/archive/​2008/03/20/inside-the-oss-lab.aspx
17:10 shorten cotto_work's url is at http://xrl.us/bphf2
17:10 jonathan Zaba: No, they shouldn't be failing. :-S
17:10 cotto_work I'm in the bottom picture, leftmost
17:11 Zaba jonathan, I got quite a lot of dubious results and some failures..
17:11 jonathan OK, that's odd
17:11 DietCoke cotto_work: I'm not getting in until later. Is it worth waiting for you?
17:11 DietCoke (catching up) Awesome.
17:12 jonathan Zaba: I have some local changes, but not much, and it's looking pretty clean here...just running it now.
17:13 jonathan Zaba: Yup, I get a clean sheet. Do you have latest?
17:13 Zaba jonathan, I svn up'd about 10 minutes ago
17:13 Zaba (it took time to build parrot, make test parrot..)
17:14 jonathan OK, that's odd.
17:14 jonathan What platform are you on?
17:14 Zaba linux amd64
17:15 jonathan Did the Parrot tests pass pretty cleanly?
17:15 DietCoke cotto++
17:15 jonathan And any chance you can nopaste the output from make spectest_regression, so I can see if I can spot some pattern?
17:16 Zaba jonathan, yup
17:16 Zaba and yes
17:16 Zaba I will pastebin the failure summary
17:16 dalek r28274 | Whiteknight++ | gsoc_pdd09:
17:16 dalek : [gsoc_pdd09] wrote some basic functions to deal with root items and the queue.
17:16 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28274
17:16 Zaba http://rafb.net/p/LMCgOV69.html
17:17 Zaba parrot r28266
17:17 Zaba hmm. I indeed missed a bit
17:17 Zaba should I try to svn up?
17:18 jonathan My word that's a lot of failures...
17:19 jonathan Yes, and perhaps try a make realclean if you didn't do one before this build. But I'm surprised the Parrot tests all passed if there is an issue.
17:19 Zaba okay
17:19 pmichaud :flat :named :flat ?!
17:19 pmichaud I don't quite see how it could do that... but
17:19 Zaba I will try make realclean
17:19 pmichaud hrm.
17:20 pmichaud jonathan: can you send me a sample code snippet so I can generate it on my box?
17:20 jonathan class Foo { has $.x handles 'go' }
17:20 jonathan You'll need to undo the actions.pm change I put in earlier today for it too
17:21 pmichaud good enough, thanks.
17:23 jonathan np
17:31 pmichaud jonathan: r28275
17:31 dalek r28275 | pmichaud++ | trunk:
17:31 dalek : [pct]:
17:31 dalek : * Really fix :named :flat this time.  (jonathan++)
17:31 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28275
17:32 jonathan Thanks, will check in a moment...just fighting with attribute composition.
17:34 Zaba jonathan, I still have dubious results here
17:34 Zaba after make realclean
17:34 Zaba and passing all parrot tests
17:43 jonathan Zaba: OK, then I'm confused.
17:44 Zaba jonathan, about the same amount of failures..
17:44 jonathan Zaba: OK, let me make a clean build here.
17:44 jonathan With svn head
17:44 jonathan And see if I can reproduce anything like you're seeing.
17:44 dalek r28276 | jonathan++ | trunk:
17:44 dalek : [rakudo] Get us closer to S12 role composition semantics for attributes. This patch implements, 'Two has attributes of the same name, whether public or private, are simply merged into one slot, provided the types are the same; otherwise, the composition fails.' Also, move some code around to make sure we do the role composition once everything inside the class has been declared, not before, as per the spec.
17:44 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28276
17:45 jonathan If I can't, I'm suspecting it maybe is platform specific.
17:45 Zaba hmmm
17:45 jonathan But that answer feels odd to me.
17:48 pmichaud zaba: (I'm coming into the middle of this)   what platform?
17:48 Zaba pmichaud, linux amd64
17:48 pmichaud which linux?
17:49 Zaba pmichaud, gentoo
17:50 pmichaud hrm.
17:50 pmichaud any options to Configure.pl ?
17:50 Zaba nope
17:50 * Infinoid tries to reproduce it on his gentoo amd64 box
17:51 particle jonathan: are the attributes merged into a public, or private slot?
17:51 cotto_work Zaba, does svn st list any changes?
17:52 Zaba cotto_work, no
17:52 jonathan particle: Not entirely sure what you're asking. These are role attributes declared with has, and the declarations with has are done as if they had been declared in the class itself.
17:53 jonathan particle: You can declare an attribute that is not visible to the class at all, with my $!foo, but I didn't implement this yet, and those are truely private.
17:53 particle multiple attributes of same name are wedged into the same slot
17:53 jonathan particle: Only if the type matches.
17:53 particle yes
17:53 particle but one may be private, another public
17:53 jonathan If the type doesn't match, you can a composition error.
17:53 jonathan Sure, then they are both public.
17:54 jonathan Declaring $.foo is just generating a foo accessor method.
17:54 particle that's what i'm asking. if one is public, then effectively they both are
17:54 gryphon joined #parrot
17:54 jonathan Yes, but if the composition suceeded because they had the same type, then there isn't a both.
17:54 jonathan They're sharing a slot.
17:55 particle right, but if a role expects the attribute to be private, whoops!
17:55 particle ...some method in the role, that is
17:55 jonathan How so?
17:55 jonathan Then it just means the class has decided to expose it.
17:55 particle it's difficult for me to think of a real-world use case
17:55 jonathan If a role wants true privacy, it can use my $!x, and the class can't even see that.
17:56 jonathan That's about next on my implementation list, but I should probably eat first.
17:56 particle yes, but does $!x exist past class composition time?
17:56 jonathan Yes.
17:56 particle ah, okay then.
17:56 jonathan It's a private attribute.
17:56 particle role-private
17:56 jonathan Right.
17:56 jonathan Was as has $!x in a role is class-private.
17:57 particle meaning if a class overrides a role's method, that method can't see it
17:57 jonathan Right.
17:57 iblechbot joined #parrot
17:57 jonathan my $!x # can only be seen in the role
17:57 particle can it be seen in roles that are composed into the role?
17:57 jonathan No.
17:57 particle ...a role made from many roles
17:57 particle ok
17:58 jonathan The "my" gives it lexical semantics.
17:58 jonathan Outside of that block, it's not visible.
17:58 Infinoid rakudo test passes here, several spectest failures.  (most of those are along the lines of "Statement not terminated properly" or "Syntax error")
17:58 jonathan Infinoid: Is that spectest or spectest_regression?
17:58 particle spectest should fail a lot. spectest_regression should pass everything
17:58 Infinoid jonathan: spectest
17:59 Infinoid ok, so it sounds normal
17:59 jonathan Ok, fine. What particle said.
17:59 jonathan If spectest_regression passes them all, then we're good.
17:59 jonathan OK, I'm going to go grab some fast food rather than cooking, so I can keep on hacking.
17:59 jonathan Back in a little while.
17:59 * Infinoid lets that run for a while
18:01 DietCoke jonathan, no fast food!
18:03 Infinoid To make a decent plate of nachos, start with the big bang.
18:05 Infinoid ccache helps.
18:07 nopaste "Infinoid" at 96.238.213.50 pasted "My rakudo spectest_regression results: FAIL" (129 lines) at http://nopaste.snit.ch/13237
18:09 dalek r28277 | Whiteknight++ | gsoc_pdd09:
18:09 dalek : [gsoc_pdd09] more notes, comments. Info about root items. some conditionals.
18:09 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28277
18:10 Tene So, there are some linux amd64 errors of some sort?
18:13 Tene Huh, I'm getting a bunch of failures too.
18:15 * pmichaud wonders if it's time for him to switch back to 64-bit linux.
18:16 Tene Just go halfway.  48-bit ftw.
18:23 davidfetter joined #parrot
18:24 DietCoke tene;did you try the obligatory realclean?
18:24 Tene I did!  I tried it first this time!
18:32 dalek r28278 | Whiteknight++ | gsoc_pdd09:
18:32 dalek : [gsoc_pdd09] add functions to obtain an objects flag from the card, and start rewrite of pobject_lives
18:32 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28278
18:33 Tene Segfaults!
18:33 purl No whammies!
18:35 Infinoid yep, here too, here comes a backtrace
18:36 nopaste "Infinoid" at 96.238.213.50 pasted "t/spec/S02-builtin_data_types/type.rakudo segfault" (45 lines) at http://nopaste.snit.ch/13238
18:43 cjfields joined #parrot
18:46 barney joined #parrot
18:48 Infinoid r27000 passes.  bisecting...
18:54 Ivatar joined #parrot
19:13 dalek r28279 | chromatic++ | trunk:
19:13 dalek : [Pheme] Fixed several Pheme parsing failures, after PGE backtracking changed in
19:13 dalek : r28256.  (In particular, '() gets parsed as two atoms, a quote and an empty
19:14 dalek : cons, rather than a single atom -- the empty cons.)
19:14 dalek : One parse failure remains, though all tests pass.
19:14 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28279
19:28 Infinoid there's one spectest_regression failure in r28256 which seems to be unrelated to the segfault I'm tracking down
19:28 Infinoid all the segfaults began with r28257.
19:28 Infinoid (maybe it's exercising the internals harder?  or using a new unstable feature of parrot?)
19:30 pmichaud interesting.
19:30 pmichaud I actually happen to be re-writing the Range code at the moment, so  perhaps what I write will fix things.
19:31 Infinoid I am happy to test patches as needed
19:34 Infinoid here are more nopastes, for the logs:
19:34 jonathan pmichaud: Re-writing it? Was it really that bad?
19:34 nopaste "Infinoid" at 96.238.213.50 pasted "One spectest_regression failure in r28256 (unrelated to the segfault I'm tracking)" (99 lines) at http://nopaste.snit.ch/13240
19:34 nopaste "Infinoid" at 96.238.213.50 pasted "Many spectest_regression failures in r28257" (153 lines) at http://nopaste.snit.ch/13241
19:34 pmichaud I started a refactor and then decided rewriting was quicker.
19:35 dalek r28280 | Whiteknight++ | trunk:
19:35 dalek : [pdd09] updating function and macro names to satisfy pdd09 deprecation notes. rt#55364
19:35 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28280
19:35 jonathan Infinoid: Does -G make any difference? Is this GC related?
19:35 pmichaud but I can't get 'clone' to work properly.
19:35 Infinoid jonathan: let me check
19:35 jonathan pmichaud: OK, would be interested to know, what was wrong with the original...
19:35 pmichaud checking the end of the range shouldn't be done by decrementing the end, for one.
19:35 Infinoid zsh: segmentation fault  ../../parrot perl6.pbc t/spec/S02-builtin_data_types/type.rakudo
19:35 Infinoid zsh: segmentation fault  ../../parrot -G perl6.pbc t/spec/S02-builtin_data_types/type.rakudo
19:36 pmichaud the code I have feels more in tune with what the spec says about how iteration should be done.
19:36 jonathan OK, fine.
19:36 pmichaud also, I factored out the boundary tests into their own private methods so we aren't repeating ourselves
19:37 pmichaud I also didn't like the separate tests for both exclusivity (e.g., in accepts) -- we can test each end individually.
19:40 jonathan Ok. You can re-do the role attributes afterwards. ;-)
19:40 pmichaud :-)
19:40 pmichaud I'm really confused why the clone vtable isn't working, though.
19:40 AndyA joined #parrot
19:40 jonathan That's odd...
19:40 purl Well, what the fuck did you EXPECT?
19:40 jonathan ...
19:41 Whiteknight HA!
19:41 pmichaud right now I have
19:41 pmichaud .sub 'clone' :method :vtable .local pmc from, to from = getattribute self, '$!from' to = getattribute self, '$!to' .return 'infix:..'(from, to)
19:41 pmichaud .end
19:41 pmichaud grrr.
19:41 jonathan The original, cloned from and to as well, I think.
19:41 nopaste "pmichaud" at 76.183.97.54 pasted "Range clone" (6 lines) at http://nopaste.snit.ch/13243
19:41 pmichaud but afaict, it never gets invoked.
19:42 jonathan You've just a "say" in there to check?
19:42 pmichaud been following trace output, actually
19:42 jonathan s/just/put/
19:42 jonathan OK, that should be indicative too.
19:43 pmichaud oh, 'say' gives me something different.
19:43 jonathan It's just clone that seems to not be being called? Other v-table methods work?
19:43 pmichaud > say 1..5
19:43 pmichaud cloning Range
19:43 pmichaud src/inter_call.c:301: failed assertion 'PObj_is_PMC_TEST(sig_pmc)'
19:43 pmichaud Backtrace - Obtained 19 stack frames (max trace depth is 32).
19:43 jonathan Ouch.
19:43 pmichaud same results for  "my @a = 1..5;"
19:44 pmichaud I'll turn on tracing at that point.
19:44 pmichaud ohhhhh
19:44 pmichaud I bet it's a tailcall problem.
19:44 jonathan Oh!
19:44 jonathan Yes, it is.
19:45 pmichaud can't do tailcalls in 'clone', I guess?
19:45 jonathan Now I remember - I tried to write it just like that this morning.
19:45 jonathan And it didn't work, so removed the tailcall again.
19:45 jonathan It seems so. I think it's a more general thing with tailcalls close to the C boundary.
19:45 pmichaud I guess that deserves a ticket somewhere.
19:45 jonathan If it doesn't already have one, then yes, for sure.
19:46 jonathan OK, time to write some tests for the various things I did in the last couple of patches...
19:47 pmichaud it appears to have trouble with any form of method call from within clone, also.
19:47 jonathan :-S
19:47 jonathan OK, that I haven't seen.
19:48 tene_evalbot joined #parrot
19:49 Tene cardinal: puts "foo"
19:49 tene_evalbot No output (you need to produce output to STDOUT)
19:49 Tene Yay, death!
19:50 moritz why does that evalbot look familiar to me? ;-)
19:50 Tene ;)
19:50 pmichaud you scared him off.
19:50 tene_evalbot joined #parrot
19:50 Tene I have plans to have it pastebin --target={parse,past,pir}
19:50 Tene cardinal: puts "foo"
19:50 tene_evalbot OUTPUT[Syntax error at line 1, near "puts \"foo\""␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;cardinal::Grammar;TOP' pc 4382 (src/gen_grammar.pir:154)␤called from Sub 'parrot;PCT::HLLCompiler;parse' pc 562
19:50 tene_evalbot ..(src/PCT/HLLCompiler.pir:348)␤called from Sub 'parrot;PCT::HLLCompiler;co...
19:51 Tene Huh.
19:51 Tene cardinal: puts "foo";
19:51 tene_evalbot OUTPUT[foo␤]
19:51 Tene Oh, cardinal requires newline at the end.
19:53 Tene That sound useful to anyone?
19:53 cotto_work cardinal: make Tene's computer explode;
19:53 tene_evalbot OUTPUT[Syntax error at line 1, near "make Tene'"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;cardinal::Grammar;TOP' pc 4382 (src/gen_grammar.pir:154)␤called from Sub 'parrot;PCT::HLLCompiler;parse' pc 562
19:53 tene_evalbot ..(src/PCT/HLLCompiler.pir:348)␤called from Sub 'parrot;PCT::HLLCompiler;comp...
19:54 Tene hehe
19:54 cotto_work is that for any language in svn?
19:54 Tene It will be by the end of the day, if you'd like it to be.
19:55 DietCoke yes, lease.
19:55 jonathan lolcode_evalbot...
19:55 * DietCoke was hoping to get his tcl bot back. =-)
19:55 moritz Tene: try to cut off all these stack traces
19:56 moritz Tene: they produce a lot of output, but usually only the first line is really of interest
19:58 Tene moritz: my plan is to pastebin it if it's more than a line or two.
19:59 moritz Tene: seems sensible
20:00 cotto_work cardinal: puts 'Tene++';
20:00 tene_evalbot OUTPUT[Tene++␤]
20:01 moritz cardinal: "test"
20:01 tene_evalbot OUTPUT[Syntax error at line 1, near "\"test\""␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;cardinal::Grammar;TOP' pc 4382 (src/gen_grammar.pir:154)␤called from Sub 'parrot;PCT::HLLCompiler;parse' pc 562
20:01 tene_evalbot ..(src/PCT/HLLCompiler.pir:348)␤called from Sub 'parrot;PCT::HLLCompiler;compil...
20:02 dalek r28281 | Whiteknight++ | gsoc_pdd09:
20:02 dalek : [gsoc_pdd09] updating to trunk r28280
20:02 pmichaud apparently method tailcalls in vtable methods are bad.
20:02 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28281
20:03 jonathan dies_ok { class C2 does R2 { has $!a } },      'Roles with conflicing attributes';
20:03 jonathan That seems not to be catching the exception.
20:03 DietCoke isn't there a tailcall ticket or two open?
20:03 pmichaud all of the *dies* functions probably need some work.
20:04 moritz jonathan: dies_ok doesn't catch compile time errors
20:04 pmichaud i.e., exception handling still isn't quite right there yet.
20:04 pmichaud (although it's on its way)
20:04 moritz which is why we need eval_dies_ok for those cases
20:04 particle DietCoke, cotto_work: care to wait until my 6:20 arrival to leave for iit?
20:04 jonathan OK, does eval_dies_ok work?
20:05 moritz mostly at least ;)
20:05 particle oh, actually, i arrive before coke
20:05 DietCoke particle: that's before I get in.
20:05 cotto_work particle, you're arriving before DietCoke, so I don't see a problem
20:05 DietCoke so yes, I'll wait, and he's already waiting for me. =-)
20:06 particle :)
20:06 DietCoke this cab ride is getting much cheaper for me!
20:06 jonathan heh
20:06 jonathan Lots of continuation runloop jumping fun now.
20:06 pmichaud do you guys want to wait for me?  ;-)
20:06 particle cotto: i bet you get in right near my gate, since we're both on alaska
20:06 cotto_work particle, can you put your flight on the wiki so I know where to look for you?
20:06 particle get your own cab, pmichaud :P
20:06 particle cotto_work, done
20:07 DietCoke I will be doing carryon, so once I get there we can book.
20:07 particle i screwed the syntax up , though, fixing
20:07 DietCoke and put them in time order! aigh!
20:07 cotto_work fix it
20:07 cotto_work fix it
20:07 cotto_work fix it
20:08 particle they were in time order
20:08 particle insertion time
20:08 cotto_work see you there!
20:09 jonathan Gaaah.
20:09 jonathan Test returned status 5 (wstat 1280, 0x500)
20:09 jonathan after all the subtests completed successfully
20:09 DietCoke inferior runloop!
20:09 jonathan Indeed.
20:09 DietCoke tcl's lsort test does that.
20:09 * jonathan hopes Allison's branch fixes a bunch of these.
20:09 DietCoke I'm eager to test it this weekend.
20:10 jonathan DietCoke: Is there a workaround?
20:10 jonathan I'm fearing not.
20:11 particle jonathan: no
20:11 pmichaud is this valid Perl 6?      if $code.isa("Code")  { say "ok 3" } else { say "not ok 3" }
20:11 DietCoke nope. 'make test' still works.
20:11 DietCoke so it wasn't a high priority for me.
20:11 particle pmichaud: looks valid to me
20:11 diakopter pmichaud: why wouldn't it be
20:11 pmichaud we allow strings to .isa() ?
20:11 particle i thought string and type
20:12 pmichaud hrm.
20:12 particle gotta check the spec
20:12 particle S06?
20:12 purl S06 is probably dev.perl.org/perl6/doc/design/syn/S06.html
20:12 particle ack.
20:12 particle no, S06 is http://dev.perl.org/perl6/doc/design/syn/S06.html
20:12 purl okay, particle.
20:12 pmichaud only three occurrences of '.isa' in the synopses
20:12 pmichaud none of them use quoted strings.
20:13 particle ah
20:13 particle S12?
20:13 purl S12 is, like, out of sync with reality
20:13 pmichaud S05 and S12
20:13 particle no, S12 is http://dev.perl.org/perl6/doc/design/syn/S12.html
20:13 purl okay, particle.
20:13 pmichaud 3801:     <.isa(Dog)>
20:13 pmichaud 1969:    $obj.HOW.isa(Mammal)
20:13 pmichaud 1981:    $obj.isa(Mammal)
20:13 jonathan I find it hard to believe you'd not be able to do it with a string.
20:13 jonathan It just would feel so un-Perl-ish to not let you do so. ;-)
20:14 particle yep
20:14 pmichaud I'm wondering how to go from a String to a namespace.
20:14 pmichaud or, more precisely, to a protoobject.
20:14 particle ::()
20:14 DietCoke ... is that ascii art for the alien from MIB?
20:15 pmichaud yes, but ::() from within .isa() would mean that we'd need to get the caller's namespace.
20:15 pmichaud so that we can figure out what the String is relative to.
20:15 jonathan Ah. Hmm.
20:15 * particle moves his seat up 13 rows and prints his boarding pass
20:15 pmichaud anyway, I'll put in a workaround.
20:15 jonathan Maybe to do it by string you need to do the lookup of the string and pass the result to isa.
20:16 jonathan .isa(::{'Foo'}) # I'm sure that's the wrong syntax
20:21 Zaba_ joined #parrot
20:22 particle jhorwitz: ping
20:23 particle omg! there's shadows outside! for the first time in a week, the sky is blue!
20:23 Infinoid particle: hey, we want our blue back
20:23 particle you're gonna have to pry it from my cold, dead hands.
20:24 pmichaud that won't take long... you live in Washington.
20:24 jhorwitz particle: poing
20:24 particle jhorwitz: i'm going to submit my lightning talk now
20:24 pmichaud snow!  in june!
20:24 particle did you do yours yet?
20:24 pmichaud oooh lightning talk!  what's it going to be?  ;-)
20:24 jhorwitz particle: what are you calling it?
20:25 particle lightning: creating a language in 5 minutes with Parrot Compiler Toolkit
20:25 pmichaud I've been seriously thinking about a lightning talk, but I fear there will be more speakers than slots
20:25 jhorwitz particle: so you went all boring on us
20:25 jhorwitz :)
20:26 particle what should i call it? the language is called 'lightning' so yours can be 'mod_lightning' man!
20:26 jhorwitz aaaaah
20:26 jhorwitz i was gonna call it "stealing particle's work for fun and profit in 5 minutes"
20:26 particle hopefully i'll commit it and you can svn co :)
20:27 * jhorwitz goes to submit his lightning talk...
20:27 particle ok, i can make a wittier tagline, but it's definitely gonna live under languages/lightning/
20:27 pmichaud how about  languages/kaboom ?
20:27 particle oops, i forgot turing-complete
20:27 jhorwitz what's the URL for submitting the talks?
20:27 DietCoke I do wish the guy last year had actually written his language describing urinal rules.
20:27 jhorwitz i always have trouble finding it
20:27 particle http://conferences.mongueurs.net/yn2008/newtalk
20:28 DietCoke kaboom?
20:28 DietCoke kaboom is <reply>What about my q-37 space modulator?
20:28 jhorwitz DietCoke: ever play the flash game where you have to pick the right urinal?
20:28 DietCoke no, but that's exactly the sort of thing I'm talking about, yes.
20:29 jhorwitz http://www.albinoblacksheep.com/flash/urinal
20:31 particle ah, perfect score.
20:33 jhorwitz men always have a perfect score
20:33 jhorwitz it's amazing
20:33 purl It's the mirrors
20:34 * jonathan doesn't tell anyone his score
20:34 luca_ joined #parrot
20:34 Whiteknight yeah, i did bad
20:34 * Whiteknight failed bathroom 101
20:35 jhorwitz did you try to socialize with the guy next to you?  ;-)
20:35 Whiteknight not overtly
20:35 jonathan Some of the cases are like, obvious.
20:35 jonathan Others are...well...less so.
20:36 pmichaud I'm getting a failure in S12-role/attributes.t in trunk.  expected?
20:37 Zaba joined #parrot
20:39 jonathan pmichaud: No.
20:39 jonathan What output?
20:39 purl output is probably different
20:39 tene_evalbot joined #parrot
20:40 Tene cardinal: puts "I should probably test this in a different channel";
20:40 tene_evalbot No output (you need to produce output to STDOUT)
20:40 nopaste "pmichaud" at 76.183.97.54 pasted "spectest regression failure -- S12-role/attributes.t" (30 lines) at http://nopaste.snit.ch/13244
20:40 jonathan OH!
20:40 pmichaud I'm also getting a failure in S29-list/grep.rakudo
20:41 jonathan r28282.
20:41 tene_evalbot joined #parrot
20:41 Tene cardinal: puts "foo";
20:41 tene_evalbot OUTPUT[foo␤]
20:41 * Tene prods DietCoke to try tcl:
20:42 jonathan I'd fudged the one that is failing because of the continuation thing, then forget to remov the #pure.
20:42 pmichaud tcl: puts "foo";
20:42 tene_evalbot OUTPUT[Parrot VM: Can't stat languages/tcl/tcl.pbc, code 2.␤main: Packfile loading failed␤]
20:42 jonathan Well, I'd removed it. I'd forgotten to bheck it in.
20:42 Tene Oh, I didn't compile tcl.
20:42 dalek r28282 | jonathan++ | trunk:
20:42 dalek : [rakudo] S12-role/attributes.t is now fudged.
20:42 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28282
20:42 Tene tcl: puts "foo";
20:42 tene_evalbot OUTPUT[foo␤]
20:42 * Tene runs 'make' in languages/
20:43 pmichaud APL: 1
20:43 pmichaud :-P
20:43 jhorwitz particle: you're creating lightning live, right?
20:45 IllvilJa joined #parrot
20:45 pmichaud going to yapc::na 2008?
20:45 pmichaud going to yapc?
20:45 purl See : going to yapc::na or yapc::whatever or cwest, uri, DrForr
20:45 pmichaud going to yapc::na ?
20:45 purl going to yapc::na is hachi, particle, Coke, cotto, DrForr, rjbs, confound, hobbs, Alias, jjore, pmichaud, allison, uri, chargrill, Abigail, stevan, waltman, PerlJam, lucs or theory
20:45 pmichaud ...PerlJam is going to yapc::na?
20:45 pmichaud cooooool
20:46 jhorwitz purl, going to yapc::na is also jhorwitz
20:46 purl okay, jhorwitz.
20:46 pmichaud jhorwitz is going to yapc::na?
20:46 pmichaud cooooool
20:46 pmichaud :-)
20:46 jhorwitz i hear attendance is mandatory for speaking
20:46 jonathan going to yapc::eu?
20:46 purl going to yapc::eu is (: going to YAPC::EU 2008)
20:46 jonathan going to YAPC::EU 2008?
20:46 purl going to YAPC::EU 2008 is ambs, smash, allison, cognominal, cog, root, pmichaud, hex (hopefully), Abigail or tsee and Tux and Nicholas or Hinrik or Alias
20:47 jhorwitz particle: talk submitted
20:47 jonathan going to YAPC::EU 2008 is also jonathan
20:47 purl okay, jonathan.
20:49 cognominal hum, there is a parrot hackathon too?
20:49 jonathan cognominal: que YAPC? NA ou EU?
20:49 pmichaud rumor was that there would be hackathon days immediately before and after yapc::eu
20:50 cognominal EU
20:50 Patterner going to YAPC::EU 2008 is also Patterner
20:50 purl okay, Patterner.
20:51 cognominal not rich enough to go to the states and not willin to go with the current government
20:51 tene_evalbot joined #parrot
20:51 Tene APL: 1
20:51 tene_evalbot OUTPUT[1␤]
20:51 pmichaud aiiigh!
20:51 pmichaud APL: 1 3 +
20:51 tene_evalbot OUTPUT[Syntax error at line 1, near " +"␤current instr.: 'parrot;PGE::Util;die' pc 120 (runtime/parrot/library/PGE/Util.pir:82)␤called from Sub 'parrot;APL::Grammar;statement' pc 3490 (src/gen_grammar.pir:364)␤called from Sub 'parrot;APL::Grammar;statement_list' pc 2914
20:51 tene_evalbot ..(src/gen_grammar.pir:146)␤called from Sub 'parrot;APL::Grammar;TOP' pc 2705 ...
20:52 pmichaud APL: 1+3
20:52 tene_evalbot OUTPUT[4␤]
20:52 purl 4
20:52 Tene Should I just grab everything in languages/ ?
20:52 pmichaud now *that's* a lightning talk -- what funny languages can we stick on IRC?  ;-)
20:52 DietCoke tcl: puts [expr sin(3)-2**4]
20:52 tene_evalbot OUTPUT[-15.85887999194013␤]
20:53 jonathan lolcode: VIZIBLE 'OH HAI'
20:53 DietCoke tcl: puts \u1234
20:53 tene_evalbot OUTPUT[ሴ␤]
20:53 jhorwitz I CAN HAZ LOLCODE_EVALCAT?
20:53 Infinoid I've been trying to figure out how to do an befunge evalbot
20:53 jonathan Please do bf.
20:53 jonathan ;-)
20:53 diakopter that's quite the evalglot
20:54 tene_evalbot joined #parrot
20:54 Tene The problem with lolcode is its mandatory block circumfix header footer things.
20:54 Tene it doesn't like single statements.
20:54 Tene I should fix that.  TO HELL WITH SPEC.  WE NEED EVALBOTS.
20:54 pmichaud I CAN CHANGEZ SPEC?
20:55 DietCoke you could always have the eval bot do a wrap for lolcode.
20:55 Tene I certainly could.
20:55 DietCoke mmm, lolwrap.
20:56 Tene Right now it's qw(abc APL bf cardinal lolcode lua pheme plumhead punie pynia squaak tcl)
20:56 diakopter lolcode: WAIT FOR IT \
20:56 tene_evalbot OUTPUT[Failed to parse source␤current instr.: 'parrot;PCT::HLLCompiler;panic' pc 156 (src/PCT/HLLCompiler.pir:103)␤called from Sub 'parrot;PCT::HLLCompiler;parse' pc 589 (src/PCT/HLLCompiler.pir:356)␤called from Sub 'parrot;PCT::HLLCompiler;compile' pc 438 (src/PCT/HLLCompiler.pir:291)␤called from
20:56 tene_evalbot ..Sub 'parrot;PCT::HLLCompiler;eval' pc 753 (src/P...
20:56 Tene Hm...  needs a newline-translator for bf.
20:58 pmichaud finally!  spectest_regression passing!
20:58 DietCoke !
20:59 jonathan pmichaud: With new Range code?
20:59 pmichaud yes.
21:00 pmichaud Infinoid: see if r28284 fixes things.  Note that one also has to do 'make' from parrot dir in order to rebuild P6object.pbc .
21:00 dalek r28283 | pmichaud++ | trunk:
21:00 dalek : [p6object]:
21:00 dalek : * Turns out we can't quite trust Parrot's MMD for get_parrotclass
21:00 dalek :   to always dtrt, so refactor to explicitly code the preferences
21:00 dalek :   we want.
21:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28283
21:00 dalek r28284 | pmichaud++ | trunk:
21:00 dalek : [rakudo]:
21:00 dalek : * Refactor Range a bit.
21:00 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28284
21:02 tene_evalbot joined #parrot
21:02 Tene cardinal: puts "zomg";
21:02 tene_evalbot OUTPUT[zomg␤]
21:04 japhb Tene++ # The polyglot evalbot we always wanted
21:04 Tene justasec, it's about to get awesome.
21:04 Tene Wait for it.
21:04 japhb :-)
21:04 * jhorwitz is dying from the anticipation
21:04 japhb Tene: does forth work?
21:05 Tene no idea.
21:05 * japhb is dying to do forth jokes via evalbot ... ;-)
21:05 japhb .oO( I need to port gjbforth to Parrot one of these days ... )
21:06 DietCoke tcl: set i 1; while {$i < 20} { incr i}; puts $i
21:06 tene_evalbot OUTPUT[20␤]
21:06 DietCoke tcl: error "this should be fun."
21:06 tene_evalbot OUTPUT[this should be fun.␤]
21:07 DietCoke what? you lie. =-)
21:07 DietCoke tcl: return "die"
21:07 tene_evalbot OUTPUT[die␤]
21:07 DietCoke freaky.
21:07 cotto_work Tene, no perl6?
21:07 cotto_work or is that the awesome?
21:07 tene_evalbot joined #parrot
21:08 Tene no perl6?  Oops.
21:08 DietCoke perl6: say "what what?"
21:08 * Tene adds perl6.
21:08 tene_evalbot joined #parrot
21:08 Tene perl6: say "foo"
21:08 Tene Huh.
21:08 Tene cardinal: say "foo";
21:09 Tene Huh.
21:09 pmichaud Tene:  say "Huh.";
21:10 DietCoke Huh.
21:12 dalek Jeff Horwitz | mod_parrot:
21:12 dalek link: http://www.perlfoundation.org​/parrot/index.cgi?mod_parrot
21:13 jhorwitz uh, hm.  i didn't make any changes there, just closed the window
21:13 DietCoke pmichaud: "can't trust parrot's MMD" - ticket coming on broken behavior?
21:13 dalek Jeff Horwitz | mod_parrot:
21:13 dalek link: http://www.perlfoundation.org​/parrot/index.cgi?mod_parrot
21:14 pmichaud DietCoke: it's a little difficult to describe at the moment.
21:14 pmichaud I'll see if I can narrow it down to a cleaner test case.
21:14 pmichaud and if so, then submit a ticket.
21:14 DietCoke danke
21:15 pmichaud jhorwitz: the page history shows a change made.
21:15 tene_evalbot joined #parrot
21:15 jhorwitz yeah, i think i typed something and it autosaved when i closed the window.
21:15 Tene perl6: say "foo"
21:15 tene_evalbot kp6: No output (you need to produce output to STDOUT)
21:15 tene_evalbot ..pugs: No output (you need to produce output to STDOUT)
21:15 tene_evalbot ..rakudo: No output (you need to produce output to STDOUT)
21:15 jhorwitz the last one was my correction to that.  :)
21:18 tene_evalbot joined #parrot
21:18 Tene perl6: say "foo"
21:18 tene_evalbot kp6: No output (you need to produce output to STDOUT)
21:18 tene_evalbot ..pugs: No output (you need to produce output to STDOUT)
21:18 tene_evalbot ..rakudo: No output (you need to produce output to STDOUT)
21:18 Tene Wait, wtf is it getting kp6 and pugs and rakudo from?
21:19 Tene oh
21:19 tene_evalbot joined #parrot
21:20 Tene perl6: say "foo"
21:20 tene_evalbot OUTPUT[foo␤]
21:20 japhb bc: 22 / 7
21:20 purl 3.14285714285714
21:20 Tene abc: 22 / 7
21:20 purl 3.14285714285714
21:20 tene_evalbot OUTPUT[3.14286␤]
21:20 japhb abc: 22 / 7
21:20 purl 3.14285714285714
21:20 tene_evalbot OUTPUT[3.14286␤]
21:20 japhb schweet
21:20 japhb There's a ticket to rename abc to bc, btw.
21:20 tene_evalbot joined #parrot
21:20 Tene perl6: say "foo"
21:20 tene_evalbot OUTPUT[foo␤]
21:21 Tene perl6pir: say "foo"
21:21 tene_evalbot OUTPUT[␤.namespace ␤.sub "_block11" ␤    .lex "$_", $P12␤    .lex "$/", $P13␤    $P14 = getinterp␤    push_eh no_match_to_copy␤    $P14 = $P14['lexpad';1]␤    pop_eh␤    if null $P14 goto no_match_to_copy␤    $P14 = $P14['$/']␤    store_lex '$/', $P14␤  no_match_to_copy:␤    .lex "$!", $P15␤    new
21:21 tene_evalbot ..$P16, "Perl6Str"␤    assign $P16, "foo"␤    $P1...
21:21 Tene Ack, that's not right.
21:21 Tene That was supposed to nopaste.  Why didn't it nopaste?
21:21 DietCoke tcl: puts [expr entier(3.141592654)]
21:21 tene_evalbot OUTPUT[3␤]
21:23 pmichaud I don't think I want to rename abc to bc.
21:24 japhb pmichaud: bc -> bcd?
21:24 japhb er, abc -> bcd?
21:24 japhb or bcbc, or some other variant.
21:24 japhb ISTR the ticket's point is that there already is a real language named abc, no relation to bc.
21:25 pmichaud I knew about 'abc' (the python precursor) when we started abc, and decided to use abc anyway.
21:25 pmichaud (with approvals from people on #parrot).
21:25 japhb Ah, OK.
21:25 Whiteknight "pbc" would be better, since it's Parrot's bc
21:25 japhb That I like.
21:25 pmichaud also, it's explicitly not intended to be a 'bc' workalike.
21:26 pmichaud 'pbc' already has another meaning in Parrot-speak.
21:26 japhb true
21:26 japhb Maybe that's why it seemed so catchy.  ;-)
21:26 diakopter pabc
21:26 pmichaud I like 'abc' because it's intended to be a tutorial for compiler writing.
21:26 pmichaud so 'abc' is a good name for that.
21:26 pmichaud (learn your a b c's!)
21:27 DietCoke we can hash this out again if someone else actually does decide to target parrot with that, but I think now let's reject the proposal and move on. =-)
21:27 Whiteknight so if we do decide to implement the python precursor, we can call that pabc
21:27 DietCoke pebkac
21:27 pmichaud if someone is seriously interested in targeting the pre-python abc, then I'd rather steer them to working on pynie.
21:27 pmichaud and python's abc can be pyabc  :-)
21:27 tene_evalbot joined #parrot
21:27 japhb :-)
21:27 pmichaud or parabc
21:28 japhb Which one is pynie now?
21:28 Tene perl6pir: say "foo"
21:28 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (20 lines) at http://nopaste.snit.ch/13245
21:28 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (42 lines) at http://nopaste.snit.ch/13246
21:28 tene_evalbot No output (you need to produce output to STDOUT)
21:28 pmichaud pynie:  python on parrot.
21:28 jonathan rakudo: say "foo"
21:28 Tene two pastes?
21:28 jonathan perl6: say "foo"
21:28 tene_evalbot OUTPUT[foo␤]
21:28 japhb I thought that was something else ... oh, right, multiple attempts, right?
21:28 jonathan perl6: role Perl { method x { say self.WHAT } }; class Hacker does Perl { }; print 'Just Another ' ~ Perl ~ ' '; Hacker.new.x
21:28 tene_evalbot OUTPUT[Just Another Perl Hacker␤]
21:29 pmichaud scary.
21:29 Whiteknight awesome
21:29 japhb indeed.
21:29 pmichaud afk for a while -- gotta make some yapc::na travel preparations.
21:29 Tene perl6past: role Perl { method x { say self.WHAT } }; class Hacker does Perl { }; print 'Just Another ' ~ Perl ~ ' '; Hacker.new.x
21:29 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (303 lines) at http://nopaste.snit.ch/13247
21:29 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (360 lines) at http://nopaste.snit.ch/13248
21:29 tene_evalbot No output (you need to produce output to STDOUT)
21:30 pmichaud how about "perl6,past"  or "perl6-past" or something like that?
21:30 pmichaud anyway, afk.
21:30 Tene pmichaud: choose between them and I'll change it
21:31 japhb Tene: - looks marginally more natural to me
21:32 japhb The double pastes -- before and after some transform?  They are subtly different.
21:32 Tene Yeah, something weird... checking...
21:33 Tene Oh, it checks if there's no output and wraps the program in '( ( do { ... } ).perl ).print'
21:33 Tene Hm.
21:34 tene_evalbot joined #parrot
21:34 Tene perl6-pir: say "foo"
21:34 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (20 lines) at http://nopaste.snit.ch/13249
21:34 tene_evalbot OUTPUT[NOPASTE␤]
21:35 Tene There we go.
21:35 Tene So, any offers to host it?
21:35 japhb Wish I could -- but I have no externally accessible servers
21:36 Tene I'll put it on the server in my apartment for now.  I'm moving this coming week, though.
21:36 diakopter Tene: why not ask moritz
21:37 Tene moritz: diakopter says that you like hosting bots.
21:37 diakopter :)
21:37 Tene moritz: diakopter said that you'll bake me a cake.
21:37 slightlyoff joined #parrot
21:41 Tene I'll ask about running it on my company's development server next week.
21:43 Tene This is a very slow box, so rebuilds won't be too frequent.
21:58 * particle likes perl6.past because . looks like a target
21:59 japhb I can jump on that bandwagon.
22:00 japhb It looks like a method call on the compiler to me, and that makes sense given what it does.
22:00 Tene Still waiting for languages to compile on the server it's going to run on for now.
22:00 Tene just getting to tcl.
22:00 particle tene: i'm pretty sure it could be hosted on feather
22:00 particle do you have an account there?
22:00 particle that's where thet #perl6 evalbot is
22:00 Tene Yeah, but then I'd have to figure out if there's a regularly-updated parrot tree there.
22:00 particle feather1 iirc
22:01 particle tene: there is, for sure
22:02 diakopter particle: no, the #perl6 evalbot is not on feather
22:02 diakopter it's on moritz' server
22:02 diakopter hence me suggesting asking moritz :D
22:02 particle ah, ok then
22:03 particle i thought there was a feather vm for evalbots
22:03 diakopter there is, but no one has used it
22:03 particle aha
22:03 Tene HAY JUERD
22:03 particle well why the heck not? it's there, begging to be used!
22:03 Tene HAY JUERD I HAVE AN EVALBOT FOR FEATHER
22:04 diakopter I guess b/c it would take some effort to figure out how Juerd set up the VM/jail(s)
22:08 Tene Huh.  When I try to run it on this box, it just says 'illegal instruction'
22:08 Tene Weird.
22:09 polyglotbot joined #parrot
22:09 Tene perl6: say 'foo'
22:09 polyglotbot OUTPUT[foo␤]
22:10 Tene perl6.paste: say 'foo'
22:10 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (1 line) at http://nopaste.snit.ch/13250
22:10 polyglotbot OUTPUT[NOPASTE␤]
22:10 Tene perl6.parse: say 'foo'
22:10 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (53 lines) at http://nopaste.snit.ch/13251
22:10 polyglotbot OUTPUT[NOPASTE␤]
22:10 Tene perl6.past: say 'foo'
22:10 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (49 lines) at http://nopaste.snit.ch/13252
22:10 polyglotbot OUTPUT[NOPASTE␤]
22:10 Tene perl6.pir: say 'foo'
22:10 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 paste" (20 lines) at http://nopaste.snit.ch/13253
22:10 polyglotbot OUTPUT[NOPASTE␤]
22:11 polyglotbot joined #parrot
22:11 Tene There we go.
22:11 Tene I'm satisfied with it for now.
22:11 Zaba joined #parrot
22:12 particle jhorwitz: Bring in the bottled lightning
22:12 particle the parrot compiler toolkit is parrot's bottled lightning. in five minutes, i'll create a parser, compiler, and tests for a turing-complete language.
22:12 particle *called 'lightning'.
22:18 Limbic_Region joined #parrot
22:19 Tene perl6.parse: say 'foo'
22:19 nopaste "polyglotbot" at 216.98.223.199 pasted "perl6 parse paste" (53 lines) at http://nopaste.snit.ch/13254
22:19 polyglotbot OUTPUT[NOPASTE␤]
22:20 cotto_work how do lightning talks usually go?
22:20 cotto_work back to back, or with breaks at intervals
22:22 * Tene svn co on feather1
22:22 particle yeehah, i have control of parrot.org now
22:22 Tene /usr/bin/parrot on feather1 is linked to audreyt's homedir, which was last updated in 2006, it looks like.
22:22 cotto_work particle++
22:23 particle now, to get hosting...
22:35 japhb Tene: Does polyglotbot need to bother to say OUTPUT[NOPASTE]?  Pastebots announce themselves by default anyway.
22:35 japhb s/themselves/the pastes/
22:35 Tene Hm.  Sure, I can make that go in the other direction.
22:35 japhb clutter--
22:38 Tene There it should work now, if I was able to run it on feather.
22:39 Whiteknight back, for now
22:39 Whiteknight ...wrong window...
22:46 smash joined #parrot
22:46 smash hello everyone
22:50 Whiteknight hello
23:05 tetragon joined #parrot
23:06 dalek r28285 | Whiteknight++ | gsoc_pdd09:
23:06 dalek : [gsoc_pdd09] basics of the function to mark children of the current node.
23:06 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28285
23:09 polyglotbot joined #parrot
23:10 Tene perl6: say "HAY GUYZ IM AN EVALBOT"
23:10 polyglotbot OUTPUT[Null PMC access in get_string()␤current instr.: 'parrot;P6metaclass;add_parent' pc 119 (runtime/parrot/library/P6object.pir:137)␤called from Sub 'parrot;P6metaclass;add_parent' pc 241 (runtime/parrot/library/P6object.pir:215)␤called from Sub 'parrot;P6metaclass;register' pc 411
23:10 polyglotbot ..(runtime/parrot/library/P6object.pir:295)␤called from Sub 'pa...
23:10 Tene Huh.
23:10 Whiteknight i'd say that isn't correct
23:11 * Tene rebuilds parrot on feather3
23:17 * jonathan breathes a sigh of relief, thinking that he might just have got role-private attributes cracked.
23:17 jonathan Or close enough for now, anyways
23:19 Whiteknight jonathan++
23:20 dalek r28286 | jonathan++ | trunk:
23:20 dalek : [rakudo] Implement role-private attributes. These, declared as 'my $!spleen', are not visible outside of the role (unless you use 'trusts' (which isn't implemented yet)).
23:20 dalek diff: http://www.parrotvm.org/svn​/parrot/revision?rev=28286
23:22 jonathan Which if I'm right means I've now dealt with the directly attribute-related things about roles from S12. Which is what I'd hoped to do today.
23:24 Tene perl6: say "HAY GUYZ IM AN EVALBOT"
23:24 polyglotbot OUTPUT[HAY GUYZ IM AN EVALBOT␤]
23:24 Tene perl6.paste: say "foo"
23:24 * jonathan grabs a beer and writes up his report
23:26 Tene perl6.paste: say "foo"
23:26 nopaste "polyglotbot" at 193.200.132.146 pasted "perl6 paste" (1 line) at http://nopaste.snit.ch/13256
23:26 Tene yay!
23:26 Tene cardinal.pir: puts "foo";
23:26 nopaste "polyglotbot" at 193.200.132.146 pasted "cardinal pir paste" (13 lines) at http://nopaste.snit.ch/13257
23:26 Tene I'm pleased. :)
23:26 japhb awesome
23:26 japhb Tene++ again
23:27 japhb "Awesome speech!"
23:27 jonathan Tene++ # this will be useful
23:28 Tene Okay, it should be updating parrot every 15 minutes.
23:29 japhb Tene: does it check whether it needs to?
23:29 Tene Nope.
23:29 japhb (rebuild, that is)
23:29 Tene I don't know the svn way of doing that.
23:29 Tene I'm just relying on make.
23:29 japhb Ah.
23:29 Tene does 'svn up' return failure if there are no updates
23:30 Tene ?
23:30 japhb Might be nice to have a way to tell the bot that 'svn up; make' is not sufficient, and that it needs 'make realclean; svn up; perl Configure.pl; make'
23:30 japhb Tene: Hmmm, ISTR so.
23:31 Tene Oh, then it won't rebuild if no updates.
23:31 kid51 joined #parrot
23:32 Tene Also a way to get the current rev might be nice.
23:33 Tene That's all I'm doing today, though.
23:33 japhb 'svn info' gets you rev
23:33 Tene japhb: I meant a command for the bot to get it to report.
23:33 japhb Oh, right
23:34 Tene karma tene
23:34 purl tene has karma of 87
23:34 japhb Tene: sigh, exit code from 'svn up' doesn't seem to change
23:34 Tene :/
23:34 japhb I guess check revision before and after update
23:34 ank joined #parrot
23:35 Tene write a shell script to do it for me.
23:35 Tene I'm busy operating a stapler.
23:36 jonathan Hack: see how many lines out output svn up gives. If only one, then it didn't update anything. ;-)
23:39 japhb Tene: perl -e 'sub get_rev { my $rev_line = `svn info |grep "^Revision: "`; my ($rev) = $rev_line =~ /(\d+)/; return $rev}; my $old_rev = get_rev; `svn up`; my $new_rev = get_rev; exit($old_rev != $new_rev);'
23:39 japhb That could be golfed a LOT, but there's the start
23:41 japhb Most of the time, my 'shell scripts' are perl one-liners.  :-)
23:44 teknomunk joined #parrot

| Channels | #parrot index | Today | | Search | Google Search | Plain-Text | summary

Parrot | source cross referenced