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