pugscode.org/ planetsix.perl.org/ | nopaste: sial.org/pbot/perl6 | evalbot: perl6: say 3; (or rakudo:, pugs:, elf:, etc) | irclog: irc.pugscode.org/ | ~330 days 'til Xmas Set by mncharity on 25 January 2009. |
|||
00:01
Exodist left
00:06
aindilis` left
00:07
aindilis joined
|
|||
mtnviewmark | @TimToady -- well, the part about &<op>, was expected, but not the part about [op] not being meta... | 00:18 | |
lambdabot | Unknown command, try @list | ||
mtnviewmark | it seems like one to many concepts to introduce just to have [] as a set of operator quotes.... | 00:19 | |
in otherwords.... | |||
we want &[op] so we can say sort &[op] .... | 00:20 | ||
and we want [op] to work in [op] 1,2,3 | |||
then it feels very meta, like Xop, in the second case.... to say that infix ops (so named with []) used prefix will do reduction...? | 00:21 | ||
why not instead rename [op] meta to something like |op | |||
pugs_svn | r25177 | lwall++ | [Cursor] delete old post-TRE but pre-trie LTM | ||
mtnviewmark | then you get |op and |\op | ||
as the reduce forms | |||
and leave [op] for the "I wanna talk about an operator with all that extra stuff" | 00:22 | ||
00:22
jfredett joined
|
|||
TimToady | it's still a meta in that position really | 00:23 | |
and everyone likes the [op] reduction visually | |||
and | already means something else in temr positoin | |||
*term | |||
*position, for that matter | 00:24 | ||
mtnviewmark | okay - I thought that you meant [op] wouldn't be considred meta any more | ||
which, made me sad.... | |||
TimToady | I don't mind having it both ways :) | 00:25 | |
I was more just claiming you could think of it that way, without loss of generality | |||
at a bare psychological level, [op] just means here's an infix op that would be misinterpreted otherwise | 00:26 | ||
but the non-meta theory doesn't actually explain [\op] :) | 00:27 | ||
justatheory is happy to be meta theory | 00:28 | ||
TimToady | which was my point earlier about trying to figure out what $a [\op] $b would mean :) | ||
Anything you can do, I can do meta! I can do anything meta than you! --Annie Oakley | |||
justatheory does his meta with class! | 00:30 | ||
TimToady | is that legal? | ||
00:31
hercynium joined
|
|||
justatheory | I hope not. | 00:31 | |
mtnviewmark | See - this is the odd thing: if $a + $b and $a [+] $b are the same, becuase [+] is just another name for infix:<+> | 00:37 | |
then it seems that if [+] 1,2,3 should work | |||
that + 1,2,3 should too | |||
only in this case they are different things | |||
the fact that you are no trying to figure out what $a [\+] $b could mean, only further reenforces the similarity, which isn't there | 00:38 | ||
s/no /now / | |||
TimToady | well, the difference is that the parser expects to find an infix where it expects to find an infix :) | 00:45 | |
so the infix disambiguator is usually unnecessary there | |||
mtnviewmark | I see how the parser does it -- I'm just thinking that us humans are gong to think that [+] (the operator name) and [+] (the metaop) are the same thing there --- so much so that you are now looking for meaning for [\+] (the operator name) as it should be the same as [\+] (the metaop) | 00:46 | |
TimToady | and there's little reason *not* to overload the disambiguator to also be a meta | 00:47 | |
well, that's the operator, not what the name of the operator is called :) | 00:48 | ||
mtnviewmark | contemplates &[[+]] .... | ||
er, should have said "the operator spelling" | |||
TimToady | well, there's an interesting question whether += and [+]= are the same operator... | 00:49 | |
probably wants some normalization | |||
*canonicalization | 00:50 | ||
starts to look like organic chemistry nomenclature... | |||
speaking of iso and ortho | 00:51 | ||
mtnviewmark | speaking of.... lemme guess, you'd like to invert the markers for :direct and :iso? | 00:52 | |
if we want most user defined operators to "just do the right thing" - you are probably right | 00:53 | ||
but that led me to a question: When a user defines an operator - do they have access to the proto token defs, and do we expect them to use them to add their operator to an existing spot? | 00:54 | ||
TimToady | well, just that normally you want the unmarked case to be default | ||
mtnviewmark | If they do --- then it sort of doesn't matter - 'cuase they'll just get what the proto token has defined on it (no matter if we do it positive or negaive).... | ||
on the other hand, if we expect them to modify $<O> themselves, then, yup, we want unmarked to be the common case | 00:55 | ||
TimToady | hmm, well, not sure | ||
mtnviewmark | (Side comment: there is a sort of lurking bug in the .coerce code, because while it "applies" the properties from the class, it has no way to unapply what's there... you get a sort fo amalgam) | 00:56 | |
TimToady | kinda depends on how objecty code objects are and how easy it is to clone/delegate | ||
seems like equiv should get you everything the same that can be the same | 00:57 | ||
but this is venturing into a rather prototype (vs classy) viewpoint | 00:58 | ||
my proto token foo is &THAT::bar {...} or some such | 01:00 | ||
ruoso thinks that he finally found a sane way of autothread code doing async IO | |||
TimToady | and then you wonder how immutable your parent is... | ||
which definition of autothread is that? | 01:01 | ||
ruoso | TimToady, I've just sent a reply to the IO thread .... | ||
autothread being doing cooperative asynchronous IO in a user-friendly way | 01:02 | ||
mtnviewmark | I've got to run, but I can take on inverting the sense of :direct and :iso if you want... | ||
though I hate :indirect and :noniso ---- so, another hunt for good names I suppose | |||
:iffy is good and should stay "positive", since it shouldn't be the default, methinks | 01:03 | ||
(supposes he can get the follow up, if any, via lambdabot...) | |||
01:03
mtnviewmark left
|
|||
p6paste | "ruoso" at 127.0.0.1 pasted "cooperative async io in an user-friendly way" (19 lines) at paste.nix.is/5 | 01:06 | |
TimToady | I think EV.loop is probably evil | 01:08 | |
01:09
hercynium left
|
|||
ruoso | we need some way to delegate the execution to the event loop | 01:09 | |
TimToady | I think ==> is all about event loops | 01:10 | |
ruoso | how would you write that code using ==> ? | ||
TimToady | how would you write a loop to process an incoming pipe in Unix? | 01:11 | |
ruoso | with a for? | ||
actually, it depends | |||
TimToady | foo | bar | baz implies that baz is doing something to its input | ||
but it's async | |||
01:12
DemoFreak left
|
|||
ruoso | er.... | 01:12 | |
not really | |||
it's blokcing | |||
*blocking | |||
TimToady | until there's an event | ||
that's what event processing is all about | |||
ruoso | ok... | ||
in that sense, I'd write the code as I pasted | |||
as if it were a blocking code | 01:13 | ||
but with something else taking care of that to make it multi-task | |||
TimToady | ==> is implicitly spawning threads | ||
ruoso | is it? | 01:14 | |
TimToady | yes | ||
ruoso | sorry... I need the code around the operator to understand what you mean ;0 | ||
;) | |||
01:14
c9s_ is now known as c9s
|
|||
TimToady | foo() ==> bar() ==> baz() | 01:15 | |
they're just like subprocesses spawned by a shell | |||
ruoso | right, but how that relates to accepts? | ||
accepting new connections, that is | |||
TimToady | when there's a connection to accept it sends that event down a ==> | 01:16 | |
ruoso | TimToady, the problem here is not about data flowing in one direction | ||
but about a full duplex conversation that goes during a HTTP connection, for instance | |||
TimToady | usually modelled as a bidirectional pipe, or a pair of pipes, at least in BSD | 01:17 | |
ruoso need to go home... | |||
TimToady | but yes, the protocol wants to be written transactionally | ||
ruoso | TimToady, would you care rewriting the code I pasted in the way you're thinking? | ||
TimToady | and that needs translation to event-ese | ||
I'll glare at it some, no promises :) | 01:18 | ||
ruoso really have to go... should be back in a hour | |||
01:18
ruoso left
|
|||
TimToady | ciao | 01:18 | |
s1n | jnthn: ping | 01:25 | |
01:32
aindilis` joined,
meppl joined
01:34
PZt joined
01:45
ruoso joined
01:46
aindilis left
|
|||
ruoso back | 01:46 | ||
TimToady, btw... doing the translation from transactional to event-ese is what makes async programming so hard... my idea was exactly to make it looks like transactional programming but still being asynchronous | 02:10 | ||
02:11
hercynium joined
02:12
eternaleye joined
02:15
Limbic_Region joined
02:30
Sepheebear joined
02:32
Whiteknight left
02:35
Limbic_Region left,
agentzh joined
02:40
araujo left
02:53
meppl left
03:18
TheOrz joined
03:32
gravity joined
03:58
jhorwitz left
04:15
_jedai_ joined
04:42
mtnviewmark joined
04:49
ab5tract joined
04:56
ab5tract left
|
|||
mtnviewmark | quiet night.... | 05:11 | |
05:21
_jedai_ left,
_jedai_ joined
05:27
bowma1 joined
05:38
spx2 joined
05:39
spx2_ left
05:43
alester left
|
|||
bowma1 | is there a page or faq somewhere that tells me how I can help develop perl6? | 05:46 | |
05:46
_jedai_ left
05:47
_jedai_ joined
|
|||
diakopter | bowma1: there is a gigantic abundance of such pages. if only that faq was asked more f | 05:47 | |
bowma1: what are you interested in doing? | |||
types of development activities, uses of Perl 6, anything project related; etc | |||
bowma1 | anything really, my background is in mathematics but I don't think that would help much | 05:48 | |
I know some haskell, but not enough currently to work on real projects | |||
diakopter | the currently most active Perl 6 implementation is called rakudo; it's written in NQP (not quite Perl) and PIR, two languages on the Parrot VM | 05:49 | |
you can read blog postings about it at rakudo.org | 05:50 | ||
bowma1 | on it now. :) | ||
diakopter | it recently moved to github, though I don't think that's yet reflected online anywhere | ||
bowma1 | so I need to learn NQP and PIR? | 05:51 | |
diakopter | bowma1: well, in which language(s) are you recently adept? | ||
mtnviewmark types make once again in src/perl6 and crosses his fingers.... | 05:52 | ||
bowma1 | i'm fluent in C, getting quite familiar now with perl | ||
I've dabbled in most languages though | |||
probably put me somewhere where I can't do much damage | 05:54 | ||
05:54
_jedai_ left
|
|||
diakopter | bowma1: NQP would be easy to pick up... it's the Parrot Compiler Toolkit (PGE mostly I think?) and the Parrot API that would take a bit to get comfortable with. I haven't done it myself though. parrot development "takes place" mostly on irc.perl.org#parrot | 05:54 | |
rakudo development "occurs" both here and irc.perl.org#parrot | 05:55 | ||
there are couple of other Perl 6 implementations that are active though | |||
bowma1 | thanks, I like the sound of rakudo | ||
diakopter | pmichaud (Patrick Michaud) is the project originator/driver; he wrote the PCT (PGE/NQP); other active rakudo developers include jonathan/jnthn, particle (jerry), and I'm sure I'm forgetting plenty of others. they hang out here and on #parrot | 05:58 | |
so, grab the latest trunk parrot from svn.parrot.org/parrot and the latest git push from rakudo/rakudo on github, and you're in business... | 05:59 | ||
mtnviewmark | boy... you leave out one 'self' and STD.pm goes to hell-in-a-handbasket! :-) | ||
mtnviewmark now comes the long wait for ./teststd.... | 06:00 | ||
bowma1 | excellent, thank you for the introduction diakopter, hopefully you will see me around | ||
diakopter | bowma1: would you like an svn commit bit for the Perl 6 (machine-readable) official specification (the test suite) and the human-readable official specification (the "Synopses")? | ||
(and the myriad other Perl6-related stuff in the svn.pugscode.org repo) | 06:01 | ||
bowma1 | hmm, maybe give me a week to learn a little | ||
diakopter | if so, msg me your email address and desired username.. heh, okay | ||
06:01
alester joined
|
|||
diakopter | bowma1: if you like, backlog the millions of words on irclog.perlgeek.de/perl6/today and linked/related. | 06:05 | |
mtnviewmark | rakudo: my $a; $a<foo> = 1; say !$a<foo>; | ||
p6eval | rakudo 36316: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'current instr.: 'postcircumfix:{ }' pc 3633 (src/classes/Associative.pir:77)» | ||
mtnviewmark | er? | ||
rakudo: my $a; $a<foo> = 1; say $a<foo>; | 06:06 | ||
TimToady | doesn't autoviv yet, I believe | ||
p6eval | rakudo 36316: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Failure'current instr.: 'postcircumfix:{ }' pc 3633 (src/classes/Associative.pir:77)» | ||
mtnviewmark | oh | ||
diakopter | ....should take you a month or two just even to read it. :) seriously though, the Synopses and the test suite are good places to learn the language. also, watch p6eval here; it teaches it, mostly. | ||
mtnviewmark | rakudo: my $a = ('bar' => 'zen'); $a<foo> = 1; say $a<foo>; | 06:07 | |
p6eval | rakudo 36316: OUTPUT«Method 'postcircumfix:{ }' not found for invocant of class 'Perl6Pair'current instr.: 'postcircumfix:{ }' pc 3633 (src/classes/Associative.pir:77)» | ||
mtnviewmark | well... what I'm trying to find out is, really, does !$foo<bar> test for non-existance, or if it exists will the value be considred? | 06:08 | |
rakudo: my $a = %('bar' => 'zen'); $a<foo> = 1; say $a<foo>; | 06:09 | ||
p6eval | rakudo 36316: OUTPUT«1» | ||
mtnviewmark | rakudo: my $a = %('bar' => 'zen'); $a<foo> = 1; say !$a<foo>; | ||
p6eval | rakudo 36316: OUTPUT«0» | ||
mtnviewmark | rakudo: my $a = %('bar' => 'zen'); $a<foo> = 0; say !$a<foo>; | ||
p6eval | rakudo 36316: OUTPUT«1» | ||
mtnviewmark | okay - that IS how I thought it should work.... | ||
TimToady | $a<foo>:exists should test for existence | 06:11 | |
mtnviewmark | no, I'm trying to turn off :nometa in <,> , | 06:12 | |
token infix:sym<,> ( --> Comma) | |||
{ <sym> { $<O><nometa> = 0; } } | |||
but that isn't working.... | |||
06:13
gravity left
|
|||
TimToady | I was thinking of maybe :evil and :morph | 06:14 | |
mtnviewmark | I've got :nometa and :noniso in my workding dir | ||
:nometa is pretty clear: "don't be makin' no metaops outta me, ya hear!" | 06:15 | ||
I like :morph for :noniso | |||
Is there a reason you did all the tests for properties AFTER you assigned the inner op's <O> to $<O>? | |||
seems like you're committing before you're sure! | |||
06:16
aindilis` left
|
|||
TimToady | well, if it turns out wrong it's just gonna backtrack and throw it away anyway, so I get the info handy | 06:16 | |
especially if there are variants with different names | |||
diakopter | that's the sunk costs effect... commitment breeds certainty of correctness of the commitment. | ||
mtnviewmark | I'm with d.... I flipped them all around -- but wonder if that isn't hiding my bug... | 06:18 | |
TimToady | I think the problem is that coerce is happening after your assignment | ||
not a problem the other way because coerce doesn't remove props that are already there | |||
the coercion is almost the last thing a rule does | 06:19 | ||
mtnviewmark | yes indeedy - that is just what I was thinking.... so when *does* that coerce happen? not on the parse? | ||
so | 06:20 | ||
<sym> {} <infixish> | |||
<.can_meta($<infixish>)> | |||
<?{ $<O> = $<infixish><O>; }> | |||
TimToady | it's the very last thing before MATCHIFY | ||
mtnviewmark | that isn't going to work because <infixish> didn't get coerced until late? | ||
(.can_meta just is a place for the common check and common error message) | |||
TimToady | the infix has already its own coercion, but the meta hasn't done its yet | 06:21 | |
mtnviewmark | okay - that is what I'd expect | ||
TimToady | but that should be sufficient | 06:22 | |
mtnviewmark | back to debugging... something about turning off <nometa> in comma and => that is failing... | ||
OH I GET IT | 06:23 | ||
TimToady | it's the --> Comma coercion | ||
mtnviewmark | right | ||
oyvey - so with negatives... how can we have per operator overrides | |||
TimToady | we can probably make coerce() not override something that is defined | ||
mtnviewmark | not sure that is right... what do you think? | ||
TimToady | in or keys(%$d) { $m<O>{$_} = $d.{$_} }; trying changing to //= | 06:24 | |
mtnviewmark | sure... | ||
mtnviewmark making... | 06:25 | ||
TimToady | and I'm sure you've discovered that it's very easy to confuse gimme5 | 06:26 | |
mtnviewmark | yes indeed... but that is par for the course when bootstrapping such things | ||
and boy... when it gets confused.... kaboom! | 06:27 | ||
TimToady | fortunately it's usually pretty easy to tell from the p5 error where it blew up | ||
but for instance, the . in that line above is probably necessary | 06:28 | ||
mtnviewmark | oh, but that change to .coerce will now break the few places where it is called to force things -- like for sym<=> and the, er, hack, to parse != | 06:29 | |
TimToady | yeah, probably | ||
mtnviewmark | yup - there it is: [!=] broke... it thinks we're trying !-meta a List assignment! | 06:30 | |
TimToady | I suppose we could pull the coercion inline like for list vs item assignment | ||
then override post coercion | 06:31 | ||
mtnviewmark | I did - that's where I got the code | ||
oh - wait | |||
I see - | 06:32 | ||
is it expected that that special parse login for != will go away at some point because LTM will catch it? | |||
TimToady | doubtless there's a clean way to do this, but I can't think of it offhand | ||
06:32
ashizawa joined
|
|||
mtnviewmark | because I'm structuring the code on that assumption.... | 06:32 | |
TimToady | I don't see how LTM will help with that | 06:33 | |
mtnviewmark | why isn't LTM catching != as a token before !? | 06:34 | |
er, before ! ? | |||
TimToady | there's a fossil check for \s in there | 06:35 | |
but that whole rule needs to go away and rely on the check in the meta | |||
mtnviewmark | indeed - I was just staring at that and going "huh?" | ||
TimToady | the initial trouble was that != also found !== and !=== and !=:= | 06:36 | |
so it really needs to be handled inside ! | |||
mtnviewmark | okay - so, I'll assume it is there to stay.... | ||
TimToady | the penalty of removing metas from LTM is that you can't intermix tokens with LTM tokens reasonably | 06:37 | |
you have to treat the ! consitently as meta | |||
and then look for exceptions | |||
alternately, we'd have to have some way of marking the <!=> rule as of lower priority than <!> | 06:39 | ||
matching '!' {} '=' makes it the same priority, so if it were later that might work, but it's just as kludgey as the current solution | 06:40 | ||
but if a subgrammar were adding the rule it might have to do it that way | 06:41 | ||
mtnviewmark | hmmm... reduce operator is ( --> Transparent ) -- so not sure what is going on... digging deeper (and improving the .panic messages to help) | 06:42 | |
er, rather negate oeprator is.... | 06:43 | ||
TimToady | !op is the same prec as op | ||
whereas all Xop are of listop prec | |||
mtnviewmark | ah --- got it! when building != , the resultant operator is :nometa, since = was :nometa --- will have to explicitly turn that one off | 06:44 | |
|| <?{ $<infixish>.text eq '=' }> | |||
<?{ $<O> = $<infixish><O>; }> | |||
{ $¢ = STD::Chaining.coerce($¢); } | |||
here's the bug --- that second line just shouldn't be there... we don't really want to, in this case, take anything for the = operator | 06:45 | ||
TimToady | we really want the == operator | ||
mtnviewmark | well, the explicit .coerce is effectively building what sym<==> does | 06:46 | |
TimToady | most of those <?{ ... }> could theoretically just be { ... }, but last time I tried, gimme5 got confused about $¢ somehow | 06:49 | |
mtnviewmark | okay - that fixed the failing tests ... back to runing teststd all over again... | ||
I was going to ask... | |||
meaning that $<O> was referring to the wrong thing? | 06:50 | ||
TimToady | and a lot of those used to be <!!{ ... }> to prevent them from stoppping LTM composition | ||
something like that, iirc | 06:51 | ||
mtnviewmark | so - :evil? really? ;-) | ||
TimToady | "Perl 6 has evil operators!!!" | 06:52 | |
but then, so does C | |||
perhaps more like :badly_behaved, but that's too long | 06:53 | ||
but from the FP perspective, they're evil :) | |||
mtnviewmark | :not_fit_for_meta_manipulation | ||
TimToady | :volatile | 06:54 | |
:will_explode_if_you_look_at_it_funny | |||
mtnviewmark | :touchy | ||
TimToady | that's not too bad | 06:55 | |
:sneaky | |||
mtnviewmark | my husband suggests :irascible | 06:56 | |
TimToady | :mean | 06:59 | |
:bad | |||
:cruel | |||
:devious | |||
mtnviewmark | :wrong_side_of_the_tracks ... which actually works for ==> and friends | ||
TimToady | :bad is pretty short :) | 07:00 | |
:naughty | |||
mtnviewmark | d'oh -- I just realized that op= should make the resulting operator :nometa (or what ever...) | 07:02 | |
[+=] is just as bad as [=] | |||
:crotchety or :grumpy | 07:03 | ||
TimToady | :wicked | ||
mtnviewmark | :thunky | ||
well - here's the deal --- we should think of what would a programmer think, when they write a new operator... and then think "oh, hey, that's right, this would ____, I should set the ____ property so that people won't accidentally try to use this in screwy meta ways that won't work." | 07:05 | ||
TimToady | but we're programmers, and we don't know what to think :) | ||
mtnviewmark | oh, no in this context we're language noodlers! | 07:06 | |
TimToady | :noodly | ||
:fiddly | |||
07:07
spx2_ joined
|
|||
mtnviewmark | :iffy and :fiddly --- nice pairing | 07:07 | |
07:07
masak joined
|
|||
TimToady | I kinda like fiddly, sounds like side effects | 07:07 | |
mtnviewmark | now if we had a replacement for :noniso that m/.*[fi].*y/ | 07:08 | |
:icky | |||
mtnviewmark can't wait to write the paragraph in S03 that describes this.... | 07:09 | ||
TimToady | :diffedly | ||
mtnviewmark | :diffy | ||
TimToady | it's a keeper! :) | ||
mtnviewmark | "Operators can be can be :fiddly, :iffy and/or :diffy..." | 07:10 | |
TimToady | pity i isn't in hexadecimal... | ||
mtnviewmark | no no, " ... can be :diffy, :iffy or :fiddly " | ||
sounds better | |||
TimToady | or :doc | ||
mtnviewmark | well... we could spell them :d1ffy :1ffy and :f1dd1y | 07:11 | |
TimToady | and if ingy adds any operators they can be :spiffy | ||
:1ffy won't parse | |||
std: :1ffy | 07:12 | ||
p6eval | std 25177: OUTPUT«00:02 32m» | ||
TimToady | yeep | ||
07:13
alester left
|
|||
TimToady | ah, it's okay | 07:13 | |
it means :ffy(1) | |||
masak | :) | ||
mtnviewmark | really? Is *that* how :2nd :3rd and friends all work? | 07:14 | |
TimToady | yep | ||
mtnviewmark | are :st, :nd :rd, :th all just the same routine? | ||
er, thing | |||
TimToady | yeah, though those may actually be parsed specially | 07:15 | |
hmm, actually, we seem to be missing th and nd | 07:16 | ||
no, they're just extra aliases | 07:17 | ||
could have done them all with :st(:nd(:rd(:$th))), but I don't think gimme5 handles it | 07:18 | ||
in only knows about 1 or 2 names at a time | |||
*it | |||
mtnviewmark | oh fun error messages: "Can't reduce ==> because it's fiddly" | 07:19 | |
TimToady | I am surely looking forward to the day when I can put gimme5 in a museum and forget about it | 07:20 | |
too fiddly maybe | |||
and "not iffy enough" :) | |||
07:20
icwiener left
07:23
spx2 left
|
|||
mtnviewmark wonders if Xop should be considdered :diffy | 07:26 | ||
boils down to does $a X+= $b likely to be what the programmer expected | 07:27 | ||
ditto question to $a [+]= $b | 07:29 | ||
wait | |||
TimToady | that's normal | ||
mtnviewmark | strike that... | ||
yes -- - because THAT [+] isn't reduction..... | |||
TimToady | but X is problematic with any mutator, though one can get around accumulating ones like += that don't step on each other | 07:30 | |
mtnviewmark | but crossing seems like a :diffy operation to me -- changes the dimensionality | ||
TimToady | *nod* | ||
mtnviewmark | hehehehehe I was considering $a [X+]= $b | ||
masak | TimToady: re :poll -- that's fine by me, as long as there's some way to get a character without blocking. | ||
TimToady | what's a character? | 07:31 | |
mtnviewmark | but $a X[+=] $b ? scary! | ||
TimToady | add every element of $b to every element of $a? | 07:32 | |
masak | TimToady: in this context, it's a keypress, I guess. | ||
TimToady | which, of course, is neither a byte nor a Unicode char | ||
masak | TimToady: I just want to write real-time games in Perl 6. is that too much to ask? :P | ||
TimToady | it's really some kind of event | 07:33 | |
well, speaking of events, my brain just turned to mush | 07:35 | ||
zzz & | |||
masak | I'm an old Turbo BASIC user. I liked INKEY$ for its simplicity. | ||
it wasn't even a function call, just a volatile variable that sat there. | 07:36 | ||
mtnviewmark | where's a memory mapped keypress map when you need it? | ||
masak | I'm not saying we should do it that way, but it shows that this need not be difficult. | ||
mtnviewmark | sort of like programming the 1401: the current card is just in locations 0 through 79, 'kay? | 07:37 | |
mtnviewmark admits he's that old | |||
masak | :) | ||
masak sees the irony in that his :async addition spawned a thread which escalated into "S16 needs rewriting from scratch" | 07:40 | ||
07:53
stephenlb left
07:55
iblechbot joined
07:58
mberends joined
|
|||
masak | mberends: greetings. | 07:58 | |
07:59
DemoFreak joined
08:05
justatheory left
|
|||
mberends | masak: mornin' ! I was a bit awed by the total spec of SVG-Tiny1.2, I can imagine your reaction to SVG1.1 | 08:07 | |
masak | actually, I haven't got to the stage where I need to be awed by such things yet. :) | 08:08 | |
mberends | hah | ||
masak | AFAIU, the Perl 5 SVG module doesn't much care about such things. | ||
you can basically mix and match elements as you like. | |||
not sure how I'll do it, but that sounds like a good start. :P | 08:09 | ||
mberends | oh, Perl 5 SVG. I forgot to read that as preparation. Silly me. | ||
pugs_svn | r25178 | mtnviewmark++ | [STD] cleaned up metaop logic | ||
r25178 | mtnviewmark++ | Introducing :iffy, :diffy, and :fiddly | |||
r25178 | mtnviewmark++ | PercOp's coerce method now only defaults properties into O | |||
mberends | I just stormed into a new Perl 6 implementation without looking left or right | 08:10 | |
masak | mberends: I found it slightly difficult to read. I should read more CPAN code. | ||
during a set of long walks this weekend, I re-thought the whole constructor scheme. haven't really digested that yet, but I'm hopeful. | 08:11 | ||
right now, I just want to get to the stage where it outputs useful SVG. | |||
it doesn't even have to be nicely indented! | |||
mtnviewmark | wonders how anything "Tiny" can have 20 appendices! | ||
mberends | yup | ||
moritz_ | you take a large spec, move 70% into the appendices, and then call it "tiny". | 08:12 | |
mtnviewmark | wow - the "micro DOM" has 56 topic headings in it's description! | 08:13 | |
mberends | my 'perldoc SVG' says 'No documentation found for "SVG".', that's how little I've seen the Perl 5 version. okay, 'sudo apt-get install libsvg-perl'. Version 2.49, should be OK. | 08:15 | |
masak | at least I got so far as understanding how all the important methods are autoloaded. | 08:16 | |
the trick is that they are declared in one class (SVG::Element) and then autoloaded in another (SVG). | |||
mberends | that sounds similar to Perl 5 CGI | ||
masak | maybe it uses that same model. | ||
mtnviewmark | night | ||
08:17
mtnviewmark left
|
|||
mberends is wary of porting 'models' from Perl 5 to Perl 6 | 08:17 | ||
masak | aye. | ||
me too. | |||
hence the long walks and the re-think. | |||
mberends | anyhow, I have circle() and rect() running and tested. | 08:18 | |
the 'model' is lots of boring inline code. that's when the mind begins to speculate about avoiding the drudgery for the rest. | 08:19 | ||
moritz_ | I hope you use named parameters a lot? | 08:20 | |
mberends | yes | ||
moritz_ | good :-) | ||
I always hate to remember the order of x, y, radius | |||
mberends | method circle( :$cx?, :$cy?, :$r?, :$fill? ) { ... } # is this OK? | 08:21 | |
moritz_ | sure. | 08:22 | |
you don't need the ? | |||
named params are optional by default | |||
mberends | ok, thanks | 08:23 | |
moritz_ | (I'd call it 'radius', not 'r', but that's only a matter of taste) | ||
mberends | the SVG spec defines the obvious names, I don't want to alter them | ||
moritz_ | ok | 08:26 | |
Matt-W | Morning | 08:28 | |
moritz_ motices an inflation of mames starting with 'm' :-) | 08:29 | ||
Matt-W | It's not my fault it's the best letter to start a name with... | ||
mberends | The Perl 5 SVG looks quite complicated. Currently the Perl 6 one is little more than a parameter shuffling wrapper. | ||
Mmmorning then | 08:31 | ||
moritz_ | :-) | ||
mberends | mortiz_++: method circle( :$cx, :$cy, :$r, :$fill ) { ... } # passed 2 tests | 08:33 | |
masak | you're passing tests!? I need to hurry up with my implementation... | 08:36 | |
mberends | you've got a bigger mountain to climb, to pack you rucksack first | ||
s/to pack/so pack/ | 08:37 | ||
s/you/your/ | |||
whatever | |||
moritz_ | sometimes we need to rewrite our sentences from scratch :-) | 08:38 | |
mberends | me all the time :) | 08:39 | |
s/me/I do/ # ;) | 08:41 | ||
Matt-W | That's a bit like what Perl 6 is, isn't it? | 08:43 | |
moritz_ | yes, bug Perl 6 also mangles your thoughts while rewriting your sentences from scratch | ||
s/bug/but/ # :) | 08:44 | ||
Matt-W | Not mangles | 08:49 | |
Enlightens | |||
08:49
bowma1 left
|
|||
Matt-W | And then you have to go back to doing C++ for a living, and you spend a lot of time frustrated with all the stuff it doesn't do | 08:49 | |
moritz_ | aye | 08:51 | |
as we speak I'm working on a C++ program :/ | |||
and I find it frustrating how much work it is to get integers or doubles out of command line arguments | 08:52 | ||
Matt-W | we've recently been granted permission by our paranoid legal team to use Boost | ||
so I've started using boost::lexical_cast for things like that | |||
moritz_ | in Perl 6 I'd just write sub MAIN(:$b = 6.0, ...) | ||
I also use boost (namely ublas), but I didn't want to learn about more classes | 08:53 | ||
Matt-W | lexical_cast is nice, it's header-only and it's pretty straightforward | ||
lexical_cast<unsigned int>(argv[1]) - throws bad_lexical_cast if it can't manage the type conversion in a sensible manner | 08:54 | ||
09:22
finanalyst joined
09:26
eternaleye left
|
|||
jnthn | s1n: pong, but I gotta go for a flight in half an hour... | 09:31 | |
09:48
jhuni joined
09:56
ejs joined
09:59
meppl joined
10:06
ejs1 joined
10:09
DemoFreak left
10:14
ruoso left
10:15
ejs left
10:18
jhuni left
10:19
smtms left,
c9s_ joined
10:32
xinming_ left
10:33
xinming joined
10:35
c9s left
10:38
ruoso joined
10:48
charsbar_ joined
10:49
c9s_ left,
ashizawa left,
gazz_ left,
samlh left,
literal left,
[cotto] left,
drbean left,
zostay left,
charsbar left,
literal joined,
c9s_ joined,
ashizawa joined,
gazz_ joined,
drbean joined,
samlh joined,
[cotto] joined,
zostay joined,
irc.freenode.net sets mode: +o literal
10:51
IRSeekBot left
11:02
c9s_ is now known as c9s
11:18
ludan joined
11:44
alexn_org joined
11:56
iblechbot left
12:09
meppl left
12:13
ashizawa left
12:23
loumz joined
12:26
TheOrz left
12:28
jrockway left
12:30
jrockway joined,
rindolf joined
12:49
zamolxes joined
12:50
mberends left
12:55
alanhaggai joined,
alanhaggai left
12:56
alanhaggai joined
13:04
alanhaggai left
13:10
ludan left
13:15
braceta joined
13:23
jeremiah_ joined,
spx2 joined
13:25
iblechbot joined
13:28
spx2__ joined
|
|||
jeremiah_ | Hello all. :) | 13:30 | |
masak | jeremiah_: greetings :) | 13:31 | |
jeremiah_ | Looking for a good resource for playing with perl6, kind of a "hello world" tutorial | ||
There seems to be a lot out there, but a lot of it is older. | |||
masak | jeremiah_: you're in the right place. | ||
jeremiah_ | Like Gabor's nice tutorial. | ||
masak | rakudo: say 'hello world' | 13:32 | |
jeremiah_ | heh :) | ||
p6eval | rakudo 36323: OUTPUT«hello world» | ||
jeremiah_ | cool! | ||
masak | indeed. | ||
jeremiah_ | rakudo: "OHAI".say; | ||
p6eval | rakudo 36323: OUTPUT«OHAI» | ||
masak | rakudo: { ^$message.say }.('I CAN HAZ RAKUDO') | 13:33 | |
p6eval | rakudo 36323: OUTPUT«Scope not found for PAST::Var '$message' in current instr.: 'parrot;PCT;HLLCompiler;panic' pc 146 (src/PCT/HLLCompiler.pir:102)» | ||
masak | oops. | ||
rakudo: { $^message.say }.('I CAN HAZ RAKUDO') | |||
p6eval | rakudo 36323: OUTPUT«./parrot: symbol lookup error: /home/evalenv/parrot/runtime/parrot/dynext/perl6_ops.so: undefined symbol: const_string» | ||
jeremiah_ | w00t compiler panic | ||
where is Jonathan? | |||
masak | that ought to work, bug we have a Rakudo build failure right now. | ||
jeremiah_ | :) | ||
masak | he's in transit. | ||
13:34
spx2___ joined
|
|||
masak | jeremiah_: have you seen moritz_++'s blog posts? | 13:34 | |
jeremiah_ | masak: I just was with him in Bulgaria and his inspired talks made me want to start hacking perl6 now. | ||
masak: No, but I have heard he is quite knowledgable. | |||
masak | people tend to like them. hold on, I'll dig them up. | ||
jeremiah_ | I heard that from Jonathan. | ||
Thanks masak. | 13:35 | ||
masak | jeremiah_: moritz_ is indeed quite knowledgeable. and he doesn't complain half as much as I do. | ||
perlgeek.de/blog-en/perl-5-to-6/ | |||
jeremiah_ | heh, thanks for the link | ||
jeremiah_ fires up firefox, that memory-eating hog. | 13:36 | ||
masak: Wow - that is good stuff. | 13:37 | ||
I am grateful he took the time to write this. | |||
I'll have to tell him when he is around here. | 13:38 | ||
moritz_: Great stuff on your perl blog! Thanks for writing it! | |||
masak | I'm sure he'll backlog and see that. | 13:40 | |
13:40
spx2_ left
|
|||
masak | most of us regulars backlog. | 13:40 | |
13:40
wolverian joined
|
|||
masak | but if you want to be sure he gets it, say '@tell moritz_ Great stuff on your perl blog! Thanks for writing it!' and lambdabot will relay it for you. | 13:41 | |
13:43
spx2 left,
dalek left,
dalek joined
|
|||
SamB | masak: if you trust lambdabot! | 13:43 | |
masak | better than nothing. | 13:44 | |
SamB | she's been getting rather unreliable :-( | ||
masak likes lambdabot | |||
13:45
spx2__ left
13:46
spx2___ left,
spx2 joined
|
|||
moritz_ | ah, I backlog when somebody hilights me | 13:46 | |
masak | ok, then. | 13:48 | |
moritz_: backlog! | |||
:) | |||
ruoso while in the async io theme, just had to do another async io code... perlmonks.org/?node_id=740988 | 13:50 | ||
14:01
loumz left
|
|||
szabgab_ | jeremiah_: are you talking about my ages old tutorial for Perl 6 ? | 14:04 | |
14:04
jfredett left
|
|||
jeremiah_ | szabgab_: Yeah! | 14:04 | |
szabgab_ | I just cleaned up most of the examples and will upload a new version soon | ||
jeremiah_ | It is really good, just a little old. :) | ||
szabgab_ | finally I wrote unit tests for almost all of them | ||
moritz_: I've just created a wiki page for the Perl6 hackathon after GPW. please add yourself if you can really come/stay | 14:06 | ||
conferences.yapceurope.org/gpw2009/...=Hackathon | |||
jeremiah_ | szabgab_: Cool - I'll keep my eyes peeled. | ||
masak | jeremiah_: if you have the time and want to see a real-world Perl 6 program, I'd really like it if you took Druid for a test drive. | 14:07 | |
github.com/masak/druid/ | |||
jeremiah_ | masak: Driud? What is that? | ||
Okay, I will check it out. | 14:08 | ||
masak | jeremiah_: it's a board game invented by Cameron Browne | ||
jeremiah_ | Ah, cool. | ||
masak | two druids compete for building a monument on the same spot of grass in Stonehenge :) | 14:09 | |
jeremiah_ | Sounds like a likely scenario. :) | 14:10 | |
14:11
ejs1 left
14:12
ejs1 joined
|
|||
masak | I've been fascinated by this game for three months now. maybe it'll wear off after I write the computer algorithms for playing it. then again, maybe not. | 14:12 | |
14:14
aindilis joined
14:16
mberends joined,
TheOrz joined
|
|||
jeremiah_ | Is readline still the way to get input into the script? | 14:19 | |
I am getting a stack trace . . . | |||
PerlJam | jeremiah_: my $stuff = =$filehandle; | ||
jeremiah_ | What about a command line argument? | 14:20 | |
masak | jeremiah_: you have to manually parse and open the argument right now, but if you're willing to do that, it works. | 14:21 | |
jeremiah_ | ah, okay. Is readline the way to go? | ||
masak | either $fh.readline or =$fh, yes | 14:22 | |
szabgab_ | jeremiah_: =$*IN | 14:26 | |
ah you did not ask for STDIN but command line | |||
masak | aye, that's sort of not-yet-impl. | 14:27 | |
szabgab_ | $*ARGV is not yet implemented ? | ||
or rather @*ARGV I guess... | |||
masak | szabgab_: IIRC. | 14:28 | |
szabgab_ | I can't try it in trunk as it is still dead for me :-( | 14:29 | |
jeremiah_ | How does one iterate over an array? | ||
PerlJam | you mean @ARGS | ||
szabgab_ | for @x -> $v {} | ||
jeremiah_ | szabgab_: Thanks. | ||
PerlJam | and it was implemented last time I looked | ||
szabgab_ | PerlJam: probably :-) | 14:30 | |
rakudo: my @x = <a b c>; for @x -> $v { say $v } | 14:31 | ||
p6eval | rakudo 36323: OUTPUT«./parrot: symbol lookup error: /home/evalenv/parrot/runtime/parrot/dynext/perl6_ops.so: undefined symbol: const_string» | ||
PerlJam | that's not good. | ||
szabgab_ | sure, p6eval also caught up with the deadness of trunk | ||
14:31
ejs1 left
|
|||
masak | indeed. | 14:32 | |
jeremiah_ | Seems like there is some gardening to do. :) | ||
masak | Rakudo has been increasingly feeling the absence of jnthn and pmichaud... | ||
diakopter | masak: heh; it's been only a few days, right? | 14:33 | |
14:33
spx2_ joined
|
|||
masak | diakopter: depends on how you count. | 14:33 | |
have you seen RT lately? | |||
jeremiah_ | masak: Where do the rakudo bugs go on RT? | ||
Is there a URL? | |||
diakopter | masak: :P well, I personally consider failing tests to be a better indicator of "bugs" | 14:34 | |
14:34
spx2 left
|
|||
masak | rt.perl.org/rt3/ | 14:34 | |
diakopter | I mean, having a bug ticket for it seems redundant to me | ||
jeremiah_ | Ta. (As a brit might say.) | ||
masak | diakopter: there are failing spectests, too. have been for the last few days. | ||
14:34
meppl joined
|
|||
masak | diakopter: most of my bug tickets don't have spectests when I submit them. some get them, though. | 14:35 | |
jeremiah_ | In RT 3, perl6 == rakudo? | ||
masak | aye. | ||
jeremiah_ | Okay. | 14:36 | |
diakopter | masak: to clarify my statements/thoughts, I think of RT as the place for bug submission by folks who *can't* write the spectest themselves, or don't know how, or don't even know about spec test's existence | ||
or for things that can't be tested by the testing framework currently | |||
but for folks who can commit new spec tests, why not just add them there directly? | |||
14:36
alexandro joined
|
|||
diakopter | (saves time for the implementors) | 14:37 | |
(less visual clutter) | |||
14:37
alexandro left
|
|||
masak | diakopter: I'm deep in Rakudo/Perl 6 development. I'm a Rakudo dev. I still use RT heavily. | 14:37 | |
I don't see the issue. | |||
to me, spectests are one thing, and tickets another. | |||
14:38
icwiener joined
|
|||
diakopter | masak: I realize those things; it just seems to me that every ticket needs a spectest, but not every failing spectest needs a ticket | 14:38 | |
masak | specifically, submitting a rakudobug can take as little as a minute. creating a spectest takes more on the order of five minutes. | ||
14:38
zamolxes left
|
|||
masak | it adds up. :) | 14:39 | |
diakopter | right, ok. ok, here's my revised suggestion, then. :D | ||
SamB | so you want other people to write the tests for you? | ||
diakopter | create tickets in RT but only to write the spectest | ||
masak | SamB: I want the quickest route to making the problem known. | ||
diakopter | that is, close the ticket once the spectest is written | ||
masak | diakopter: I think that's what we do currently. | 14:40 | |
diakopter | masak: ok.. I guess then I'll ditto SamB's question. | ||
masak | at least pmichaud reassigns to moritz_ when things are fixed in Rakudo, so that moritz_ can add a spectest. | ||
diakopter | heh, ok. :) | 14:41 | |
masak | diakopter: well, bugs are often orthogonal to missing features. they're often more like misfeatures. when I find them, my main goal is to bring them to attention. I leave it to other people to determine what needs to be tested. | 14:42 | |
one might phrase that as 'so you want others to write the tests for you', but the fact is that I consider it to be worthwhile to actually find and report the bugs themselves. | |||
those who don't consider that enough are welcome to make spectests out of my bug tickets. | 14:43 | ||
SamB | masak: sorry, I didn't mean to suggest that you were being *lazy* | ||
masak | SamB: good. then I won't have to ask you to get off my lawn. :P | 14:44 | |
PerlJam | masak++ (he's doing more than many people :) | ||
SamB | I was more thinking you were in a hurry to get to the next bug | ||
diakopter | masak: I wasn't saying it's not worthwhile to report them as bugs.. I guess I'm speaking to what you just said about leaving it to other people: "to determine what needs to be tested". In my mind, if p6eval returns something you didn't expect according to the Synopses, then that should go in directly as a failing test. | ||
masak | SamB: I am. | ||
14:44
elmex left
|
|||
masak | diakopter: that's why the spectests are in Pugs, so that people who think like you do can contribute. | 14:45 | |
diakopter | masak: so in other words, I think everything that p6eval does "wrongly" should ideally be a test | ||
masak | diakopter: as I said, go ahead. | ||
diakopter | masak: actually even a while back I (and maybe others) suggested a bot to do it automatically | ||
jeremiah_ | spectes | 14:46 | |
Oy, sorry. | |||
A bot seems like a bad idea. | |||
masak | diakopter: I'm currently filling my time writing Perl 6 _code_, and writing spectests would take too much time away from that. | ||
diakopter | I didn't expect to get so much pushback on my suggestion; I admit it, I don't fully grasp/believe the time difference of 1 minute to 5 minutes... | 14:47 | |
jeremiah_: why not a bot? | |||
jeremiah_ | Because bots are good for boilerplate, but bad for complex problems that need human intervention. | 14:48 | |
masak | the spectests do indeed need human intervention. | ||
moritz_++ is doing a ginorous job. | 14:49 | ||
s/ginorous/ginormous/ | |||
diakopter waking up slowly today I guess..... I think what I'm getting at is a way to make moritz_'s spectest task *less* ginormous, and while reducing redundancy and clutter, and even perhaps reducing masak's time to submit bugs. | 14:51 | ||
imagine, masak issues a command to p6eval | |||
rakudo: this.do | |||
p6eval | rakudo 36323: OUTPUT«Could not find non-existent sub thiscurrent instr.: '_block14' pc 53 (EVAL_16:38)» | ||
diakopter | you get my drift, hopefully | 14:52 | |
SamB | well, someone has to decide whether it got it wrong! | ||
for instance | |||
diakopter | right, masak | ||
so, at that point, masak doesn't know whether it's a spectest failure or just his expectation failure | |||
SamB | rakudo: print [1..] | ||
p6eval | rakudo 36323: OUTPUT«Statement not terminated properly at line 1, near "..]"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
SamB | not EVERYTHING is valid perl6 | ||
diakopter | (doesn't *necessarily* know) | ||
SamB | some things are Haskell | ||
diakopter blinks | 14:53 | ||
jeremiah_ | Yeah, written in haskell to make the syntax more readable. | 14:54 | |
</joke> | |||
diakopter backpedals | |||
14:54
spx2 joined
|
|||
SamB is actually a Haskeller who only ended up here because of pugs | 14:55 | ||
diakopter | masak: anyway, what I'm proposing is a way for you to tell irc/p6eval that your last command to p6eval, you think was performed wrongly, and that you think it's probably a spectest failure | ||
and it can go in svn somewhere, already prepared for moritz_ to classify it in the spectests somewhere | 14:56 | ||
or examples | |||
or wherever | |||
SamB | diakopter: but, uh, how do you put what the output should've been ? | ||
masak | diakopter: you've just proposed RT, according to me. | ||
diakopter | SamB: good point.. how about this syntax: p6testbot: "the output I expected with perhaps a \n" | 14:57 | |
(implied, the output from my last command to p6eval) | |||
masak | diakopter: but without all the features of RT. | ||
diakopter | alright, I won't persist in the bots'-advocate train of thought. | 14:59 | |
masak | I don't mean to sound harsh, but I don't think it'll help. at least not me. | ||
as it is, I use p6eval, I copy/paste into RT, and let things have their course. | |||
other people decide to spectest things. | 15:00 | ||
it doesn't get much more efficient than that. | |||
SamB agrees | 15:01 | ||
15:01
spx2__ joined
15:04
spx2_ left
15:06
spx2_ joined
15:07
spx2 left
15:08
ludan joined
15:13
ludan left
15:18
elmex joined
15:21
spx2__ left,
ludan joined
15:22
spx2 joined,
ludan left,
Exodist joined
15:25
finanalyst left
15:33
alester joined
15:37
stephenlb joined
15:38
jan_ left,
ZuLuuuuuu joined
15:39
ZuLuuuuuu left
15:48
allbery_b joined,
spx2_ left
15:54
aindilis` joined
16:00
justatheory joined
16:08
aindilis left
16:14
hercynium left
|
|||
masak | moritz_: ping | 16:20 | |
moritz_ | masak: you pang :-) | 16:21 | |
16:21
ZuLuuuuuu joined
|
|||
masak | I have a patch for you that fixes what r36319 broke. | 16:22 | |
moritz_ | masak: shoot | ||
masak | moritz_: email or gist? | ||
16:22
icwiener_ joined
|
|||
moritz_ | gist or nopaste | 16:23 | |
masak | gist.github.com/57593 | 16:24 | |
moritz_ | masak: that seems to cut off line endings... | 16:26 | |
masak | :/ | ||
hold on, I'll try it another way | |||
moritz_ | masak: but pmichaud just appeared, wait till he gives you commit acces | ||
that's easier for all of us | |||
mberends | moritz_: switch to raw display, masak++ sent me one yesterday OK | ||
masak | mberends: ah, goodie. thanks. | 16:27 | |
mberends | welcome | ||
16:29
araujo joined
|
|||
masak | saluton, araujo :) | 16:29 | |
araujo | hola masak | 16:31 | |
:) | |||
masak | moritz_: are you committing? or shall I? | ||
16:32
aindilis` left
|
|||
moritz_ | masak: you please | 16:32 | |
masak goes ahead | |||
moritz_ wonders if we'll see a broken umlaut in a commit message soon :-) | 16:34 | ||
masak | I think I confed git to call me 'masak' | ||
moritz_ | so I'll have to test that myself at some point | 16:35 | |
16:35
icwiener left
|
|||
masak | aye :) | 16:35 | |
dalek | kudo: 8e67a4f | (Carl Masak)++ | src/ (3 files): ran allison++'s script against the src/ files |
16:36 | |
masak | I bet that if you see a distortion, it won't be git's fault. | ||
p6eval | rakudo 36324: OUTPUT«Syntax error at line 1, near "8e67a4f | "current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | ||
rakudo 36324: OUTPUT«Statement not terminated properly at line 1, near "'s script "current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
rakudo 36324: OUTPUT«Statement not terminated properly at line 1, near "."current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
rakudo 36324: OUTPUT«Statement not terminated properly at line 1, near ": g"current instr.: 'parrot;PGE;Util;die' pc 129 (runtime/parrot/library/PGE/Util.pir:83)» | |||
masak | oh, is that still not fixed? | ||
moritz_ | I was quite sure I fixed it | 16:37 | |
masak | reboot dalek? | ||
moritz_ | no | ||
it's p6eval that should ignore dalek | |||
masak | oh, right. | ||
[particle]1 | p6eval should ignore all other bots | ||
masak 's brain is backwards | |||
[particle]1 | all bots should ignore all other bots | 16:38 | |
except *maybe* link shorteners | |||
16:38
[particle]1 is now known as [particle]
|
|||
moritz_ | [particle]: but I don't have a complete list of bots anywhere :/ | 16:38 | |
16:38
alexn_org left
|
|||
[particle] | yes, i see their mode isn't set here, like on #parrot | 16:39 | |
16:39
p6eval left,
p6eval joined
|
|||
moritz_ | I hope that I simply forgot to restart the bot after the last fix | 16:40 | |
16:43
alexn_org joined
16:44
idemal left
16:45
idemal joined
16:47
rindolf left
|
|||
dalek | kudo: 0c50158 | (Carl Masak)++ | .gitignore: ignore .dll files |
16:49 | |
moritz_ | p6eval didn't go mad | ||
that's good | |||
masak | moritz_++ | 16:50 | |
moritz_ | perlbot: karma moritz | ||
perlbot | Karma for moritz: 1848 | ||
moritz_ | perlbot: karma moritz_ | ||
perlbot | Karma for moritz_: 143 | ||
16:53
jferrero joined
16:54
ZuLuuuuuu left
16:56
hercynium joined
|
|||
moritz_ | perlbot: karma masak | 16:56 | |
perlbot | Karma for masak: 257 | ||
jeremiah_ | perlbot: karma jeremiah | 17:00 | |
perlbot | jeremiah doesn't have any karma | ||
jeremiah_ | WHAT!! | ||
:) | |||
masak | karma jeremiah_ | 17:01 | |
@karma jeremiah_ | |||
lambdabot | jeremiah_ has a karma of 0 | ||
masak | jeremiah_++ # welcome | ||
moritz_ | jeremiah_++ # caring about karma | ||
[particle] | karma-- # not caring about jeremiah_ | ||
masak | :) | 17:02 | |
moritz_ | lol | ||
brb | |||
masak | caring++ # jeremiah_ about karma | ||
jeremiah_ | Thanks! | ||
17:02
mtnviewmark joined
|
|||
masak | mtnviewmark: greetings. | 17:03 | |
jeremiah_ | Even n00bs need a little karma | ||
mtnviewmark | hello and good morning (for me!) | ||
masak | jeremiah_: aw, come on! you're no noob! you're already a Perl 6 user, how cool is that? | ||
jeremiah_ | Pretty cool if you ask me. =) | ||
masak | my point exactly! | ||
TimToady | and next thing you know, we'll have persuaded you to have a commit bit | 17:04 | |
mtnviewmark | std: $a !+< $b | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't negate a multiplicative operator because it's not iffy enough at /tmp/KxCrnci4zZ line 1:------> $a !+< $b00:02 33m» | ||
[particle] | ...eventually, you'll be designing the language... | ||
mtnviewmark | heh! | ||
TimToady | mtnviewmark++ | ||
masak | ...and then implementing it... | ||
[particle] | std: $a != $b | ||
p6eval | std 25178: OUTPUT«00:02 33m» | ||
[particle] | mtnviewmark++ indeed | 17:05 | |
mtnviewmark | std: $a X==> $b | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't cross a sequencer because it's too fiddly at /tmp/iiu4SN7w7I line 1:------> $a X==> $b00:02 33m» | ||
masak | mtnviewmark++ :) | ||
mtnviewmark blushes | |||
[particle] | std: $chicken X==> $road | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't cross a sequencer because it's too fiddly at /tmp/34lyhTFJZ1 line 1:------> $chicken X==> $road00:02 33m» | ||
TimToady | std: $chicken X $road | 17:06 | |
p6eval | std 25178: OUTPUT«00:02 33m» | ||
masak | best... error message... ever. | ||
TimToady bows for the fiddly bits | |||
mtnviewmark | Introducing our new mascots: :iffy, :diffy and :fiddly | 17:07 | |
masak | mtnviewmark: aye, when I came here this morning the two of you were conspiring over those bits. | ||
TimToady | they're :daffy duck's nephews | ||
[particle] | :sufferin'sucotash | 17:08 | |
mtnviewmark | yes -- it seems if you want a good name for things, it is best to engage TimToady just before his brain turns to mush -- it is MOST creative then | ||
masak | care to give an executive summary? (or a backlog URL) | ||
jeremiah_ | If I hang out enough with Jnthn I am sure some of it might rub off on me. | ||
TimToady | std: :sufferin'sucotash | ||
p6eval | std 25178: OUTPUT«00:02 32m» | ||
masak | Perl 6 is strange. | ||
TimToady bows again | 17:09 | ||
[particle] | i think it's charmed. | ||
mtnviewmark | summary: some operators are too :fiddly -- and can't be used with meta operators at all. Think ff or ==> -- they fiddle about beyond a normal operator | ||
TimToady | pity about the truth and beauty | ||
[particle] | it's definitely quarky. | ||
masak | TimToady: :D | ||
17:09
jan_ joined
|
|||
TimToady | Haskell has a bare bottom | 17:09 | |
mtnviewmark | summary: some operators are :diffy -- that is their result differs too much from their arguments to make much sense in reduction or assignment meta ops | ||
jeremiah_ | Hmm, I thought truth was beauty and beuaty truth, that is all ye know and all ye will ever know. | 17:10 | |
masak | mtnviewmark: I didn't think I would say this, but the names sort of make sense. | ||
mtnviewmark | summary: some operators are :iffy -- useful in an if expression, and so can be negated with the ! metaop | ||
masak | mtnviewmark: you sold me. | ||
TimToady | std: $a !% 3 | ||
p6eval | std 25178: OUTPUT«00:02 33m» | ||
TimToady | e.g. % is iffy without returning Bool | 17:11 | |
masak | right. | ||
mtnviewmark | I always say it is worth it to find good names for things --- TT and I had alot of fun with our Thesauri | ||
masak | I can tell. | ||
[particle] | perl 6 is starting to look like lolskell | 17:12 | |
TimToady | actually, only used the one in my head this time | ||
mtnviewmark | LOL! | ||
jeremiah_ | lolskell! | ||
literal | Perl always seems to brings a lot of generalizations like these to the surface which seem to have escaped the designers of other languages | ||
masak | I gotta write these things down somewhere... | 17:13 | |
mtnviewmark | that one deserves a wiki page | ||
jeremiah_ | OHAI CAN I HAZ FUNCTION? | ||
TimToady | YOU HAZ BEEN PWNED BY MY MONAD! | ||
masak | jeremiah_: speaking of which, www.youtube.com/watch?v=DzpSREpLJY8 | ||
jeremiah_ | masak: Yeah, I saw some of that LOLCODE this weekend, Jonathan was in Bulgaria with me and we looked at some LOLCODE. | 17:14 | |
masak | oh, right. of course. | ||
mtnviewmark | std: $k:th X+ $bai | ||
p6eval | std 25178: OUTPUT«00:02 33m» | ||
jeremiah_ | Very cool. We had a lot of fun. | 17:15 | |
Of course we had been drinking so. . . | |||
it was extra fun | |||
masak | :) | ||
TimToady | std: m'kay bai | ||
p6eval | std 25178: OUTPUT«Undeclared routines: bai used at 1  m'kay used at 0 00:02 32m» | ||
TimToady | ooh, a but! | 17:16 | |
*bug | |||
diakopter | bare bug | ||
TimToady | std: ` | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't understand next input--giving up at /tmp/D7DrHg7sS7 line 1:------> ` expecting any of: prefix or noun statement end statement list whitespace00:02 32m» | ||
diakopter | std: ; | 17:17 | |
p6eval | std 25178: OUTPUT«00:02 32m» | ||
diakopter | std: , | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't understand next input--giving up at /tmp/htozV159Cc line 1:------> , expecting any of: prefix or noun statement end statement list whitespace00:02 32m» | ||
diakopter | std: = | ||
p6eval | std 25178: OUTPUT«Undefined00:02 32m» | ||
diakopter | std: > | ||
TimToady | whoa | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't understand next input--giving up at /tmp/pdWTXluzfO line 1:------> > expecting any of: prefix or noun statement end statement list whitespace00:02 32m» | ||
diakopter | std: < | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't understand next input--giving up at /tmp/LIMgn9o1v2 line 1:------> < expecting escape00:02 33m» | ||
diakopter | std: | | 17:18 | |
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############(Possible runaway string from line 1 to line 1)Can't understand next input--giving up at /tmp/txIjwHs3Kx line 0:------>  expecting noun00:04 36m» | ||
diakopter | ooo it doesn't like it | ||
4 36 | |||
TimToady | std: =foo | ||
p6eval | std 25178: OUTPUT«Undefined00:02 32m» | 17:19 | |
TimToady | std: =begin | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############=begin without =end at /tmp/4Qpsan1C8v line 1:------> =begin00:02 32m» | ||
diakopter | hm; that won't work for repl | ||
std: ' | 17:20 | ||
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't understand next input--giving up at /tmp/9VWS3JdJTb line 1:------> ' expecting escape00:02 33m» | ||
diakopter | std: | ||
std: \ | |||
p6eval | std 25178: OUTPUT«Undefined00:02 32m» | 17:21 | |
diakopter | I guess the empty one was disregarded | ||
[particle] | spack: :th | 17:22 | |
harumph | |||
TimToady | a good repl will know when it's in the middle of parsing something | ||
diakopter | std[repl mode]: =begin | 17:23 | |
diakopter wishful typing | |||
TimToady | just so it's not wishful thunking | ||
diakopter | there are puns, and there are p6uns | 17:24 | |
mtnviewmark | that video was awesome | ||
TimToady | there are puns, and there are pun6 | 17:25 | |
diakopter | that one could go either way | 17:26 | |
TimToady | as long as it does go a way | ||
17:28
smtms joined
|
|||
diakopter | actually it could go both|ways... | 17:28 | |
17:28
smtms left
|
|||
diakopter | well | 17:29 | |
diakopter gives up | |||
[the stack] | |||
17:30
masak left
17:36
alexn_org left
17:38
jferrero left
17:40
eternaleye joined
17:50
M_o_C joined,
smtms joined
17:51
M_o_C left,
M_o_C joined
17:54
DemoFreak joined
17:56
schmalbe joined
17:59
gazz_ left
18:07
Psyche^ joined,
M_o_C left,
M_o_C joined
18:11
Tene_ joined
18:15
ft joined
18:18
Patterner left,
Psyche^ is now known as Patterner
18:24
masak joined,
Tene left
18:27
cognominal left
18:34
cognominal joined
18:39
smtms_ joined,
smtms left
18:40
charsbar_ left
18:43
charsbar joined
18:45
smtms_ is now known as smtms
18:50
viklund joined,
zamolxes joined
18:57
jferrero joined
19:05
Psyche^ joined
19:14
hanekomu joined
19:15
meppl left
19:16
Patterner left,
Psyche^ is now known as Patterner
19:18
eternaleye left
19:23
eternaleye joined
19:33
jferrero left
19:40
jferrero joined
19:41
turbov21 joined
|
|||
turbov21 | is there a way to install Parrot without libicuuc.so? I've tried --without-icu but gets the same error. | 19:42 | |
moritz_ | did you do a 'make realclean' before running configure again? | 19:43 | |
turbov21 | just "make clean" | ||
moritz_ | that's probably not enough :/ | 19:44 | |
turbov21 | try a make, post-realclean now | ||
err, trying | |||
moritz_ | and then re-run Configure.pl with --without-icu | 19:45 | |
if that doesn't help, try #parrot on irc.perl.org | |||
turbov21 | Thanks! | 19:46 | |
masak | I just got bitten by a logical bug of sorts: @array[0..0] results in an element, not in a list. | 19:59 | |
what would be the best way to make sure that it is a list I get? @array[0..0].list? | |||
19:59
schmalbe left
|
|||
moritz_ | aye | 19:59 | |
masak | seems to work. | 20:00 | |
I expect to be bitten by this one in the future, too. :/ | |||
especially since the endpoints of the range need not be literals. | |||
TimToady | I think use of a range operator should imply list | 20:06 | |
much like @array[0,] should | |||
masak | one should think so, yes... | ||
what do the synopses think? | |||
20:07
viklund left
20:08
|Jedai| left
|
|||
masak | moritz_: the @array[0..0].list trick doesn't work when the elements are arrays :/ | 20:08 | |
masak needs to special-case for now | |||
moritz_ | [@array[0..0]].list perhaps? | 20:09 | |
TimToady | does @array[0..0,] work? | ||
or @array[0..0,()] ? | |||
masak | moritz_: the problem, as I hinted, is that my zeroes aren't literals. | ||
TimToady: I'll try, hold on. | |||
TimToady: no and no, respectively :/ | 20:10 | ||
TimToady | whatever interpolates a range into a capture should make sure it's listy in list context | ||
but I'm not sure rakudo really believes in Captures yes | |||
masak | seems not. | 20:11 | |
masak hesitates on the rakudobug submit button | |||
moritz_ shouts "go, go, go!" | 20:12 | ||
mberends too | |||
ruoso later& | |||
20:12
ruoso left
|
|||
masak goes, goes, goes | 20:12 | ||
mberends applauds | |||
moritz_ looks at the perl6 bug queue and shudders | 20:13 | ||
masak | .oO( bread and spectacle ) |
||
moritz_: sorry about that. :/ | |||
20:21
M_o_C left
20:34
masak left
20:42
duke_leto joined
20:46
elmex left,
elmex joined
20:47
duke_leto left
21:03
rob joined,
rob is now known as Guest42427
|
|||
jnthn is back home | 21:21 | ||
21:32
meppl joined
|
|||
[particle] | std: i:th | 21:52 | |
p6eval | std 25178: OUTPUT«00:02 32m» | ||
22:00
Whiteknight joined
|
|||
mtnviewmark | that probably doesn't mean what you think it means | 22:02 | |
the i there is a function or method | 22:03 | ||
not the operator | |||
(I think! :-) ) | |||
moritz_ | but what does it mean? | ||
Whiteknight | there is an "i" operator? | ||
moritz_ | a postfix operator | 22:04 | |
to generate complex numbers | |||
rakudo: say 2 * (1 + 2i) | |||
Whiteknight | ah, okay | ||
p6eval | rakudo 36336: OUTPUT«Parrot VM: Can't stat languages/perl6/perl6.pbc, code 2.main: Packfile loading failed» | ||
moritz_ | thank you p6eval | ||
[particle] | i thought of the constant 'i' | ||
moritz_ | I think you have to write that as 1i | ||
[particle] | std: e:th | ||
p6eval | std 25178: OUTPUT«00:02 32m» | ||
[particle] | std: pi:th | 22:05 | |
see | |||
p6eval | std 25178: OUTPUT«00:02 32m» | ||
moritz_ | std: 3:th | ||
p6eval | std 25178: OUTPUT«00:02 32m» | ||
moritz_ | std: Foo:th | ||
jnthn | std: wtf:th | ||
p6eval | std 25178: OUTPUT«Undeclared type: Foo used at 1 00:02 32m» | ||
std 25178: OUTPUT«Undeclared routine: wtf used at 1 00:02 32m» | |||
moritz_ | uhm. | ||
does it use the same trick as rakudo did? | 22:06 | ||
[particle] | trick? | ||
moritz_ | using the case of the first letter to check for subs/types? | ||
jnthn | moritz_: Only as a heuristic when giving errors. | ||
[particle] | no | ||
moritz_ | ah, that makes sense | ||
moritz_ was worried for a moment | |||
jnthn | I haven't put that heuristic into Rakudo's grammar.pg yet though. | ||
So what does i:th do? | 22:08 | ||
(and e:th, etc) | |||
just call the operator with an adverb :th? | 22:09 | ||
22:09
aindilis joined
|
|||
moritz_ | probably | 22:12 | |
22:14
duke_leto joined
|
|||
[particle] | yes | 22:17 | |
mtnviewmark | I don't think there *is* a constant i | ||
[particle] | std: $k:th | ||
p6eval | std 25178: OUTPUT«00:02 33m» | ||
mtnviewmark | so [+]:th | ||
would be the operator + with the adverb :th | 22:18 | ||
[particle] | token term:i ( --> Term) { <sym> » } | ||
mtnviewmark | but, TT said there was an exception for i in that $foo.i was not calling postfix:<i>, but instead the method <i> | ||
moritz_ | std: i-i | ||
p6eval | std 25178: OUTPUT«Undeclared routine: i-i used at 1 00:02 32m» | ||
mtnviewmark | or rather - there wasn't an exception for postfix:<i> --- since dot-followed-by-alpha is a method call | 22:19 | |
so..... | |||
[particle] | std: @a[Inf:th] | ||
p6eval | std 25178: OUTPUT«00:02 33m» | ||
mtnviewmark | std: $a:th(1i) | ||
wolverian | std: i - i | ||
p6eval | std 25178: OUTPUT«00:02 33m» | ||
std 25178: OUTPUT«00:02 32m» | |||
mtnviewmark | that would be the imagnary-th elment of $a | ||
wolverian | std: $a:th(i) | ||
p6eval | std 25178: OUTPUT«00:02 33m» | ||
wolverian | seems to work | 22:20 | |
mtnviewmark | or rather s:th(1i)/creature/Jabberwocky/ | ||
replaces the imaginary-th creature with jabberwocky | |||
wolverian | wonderful :) | ||
mtnviewmark thinks more than 1/2 the fun of perl6 is coming up with the examples.... | |||
wolverian | still looks like i alone is fine, doesn't it, thoguh? | 22:21 | |
s/guh/ugh/ | |||
22:21
braceta left
|
|||
[particle] | yes, i is a term | 22:22 | |
Whiteknight | "yes, i am a term" | ||
[particle] | Whiteknight: SIGTERM | 22:23 | |
Whiteknight segfaults | |||
mtnviewmark | std: $ale:2pounds:25p | ||
p6eval | std 25178: OUTPUT«00:02 33m» | ||
mtnviewmark | std: $ale:2£:25p | 22:24 | |
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Syntax error at /tmp/2wz74h0zVf line 1:------> $ale:2£:25p expecting signature00:02 33m» | ||
mtnviewmark | hmmm... suppose £ doesn't have the right Unicode properties | ||
to be the start of an identifier | |||
"That term i am. That term i am. I do not like that term i am!" | 22:25 | ||
[particle] | std: :**th | 22:27 | |
p6eval | std 25178: OUTPUT«############# PARSE FAILED #############Can't understand next input--giving up at /tmp/UK8jC5rRhI line 1:------> :**th expecting any of: prefix or noun statement end statement list whitespace00:02 32m» | ||
[particle] | std: **:th | ||
p6eval | std 25178: OUTPUT«00:02 32m» | ||
mtnviewmark | std: s:th(**)/foo/bar/ | 22:28 | |
p6eval | std 25178: OUTPUT«00:04 34m» | ||
mtnviewmark | it isn't clear to me what somethings can be in the construction colon-something-adverb as short cut for colon-adverb-(-something-) | 22:29 | |
meppl | good night | ||
22:30
meppl left
|
|||
[particle] | no, me neither. :NaNth, for example | 22:32 | |
mtnviewmark | that sounds like a fantasy novel | 22:34 | |
"The Secret of :NaNth" | |||
[particle] | quotepair: | ||
| $<n>=(\d+) $<id>=(<[a..z]>+) { $key = $<id>.text; $value = $<n>.text; } {*} #= nth | |||
so it's gotta be a \d, not even unicode digits allowed | 22:35 | ||
mtnviewmark | there ya go --- just digits | ||
moritz_ | \d *is* Unicode-digits | ||
<[0..9]> would be ASCII-digits | 22:36 | ||
mtnviewmark | oh man.... :二nd | ||
[particle] | ah, good | ||
i've been waiting for that ;) | |||
mtnviewmark | but i'm pretty sure they wouldn't use the suffix nd! | ||
or :五th | 22:37 | ||
and :⑤th is just goofy! | |||
22:43
hercynium left
|
|||
turbov21 | is there a list of modules/libraries that work with perl6? (sorry to ask, but searching for Perl6+cpan only turns up the perl6 library for perl5) | 22:44 | |
mberends | moritz_: (and others) First upload of SVG::Tiny for your perusal at github.com/eric256/perl6-examples/t...er/lib/SVG | ||
turbov21: for you too maybe ;) | 22:45 | ||
turbov21 | Thanks! :) | 22:46 | |
22:46
mtnviewmark left
|
|||
mberends | there's more beginning at its parent dir github.com/eric256/perl6-examples/tree/master | 22:47 | |
turbov21 | am i correct in thinking that, right now, most of what can be done with Perl6 is working with it's text-munging roots? | 22:50 | |
moritz_ | turbov21: basically everything involving data structures can be accomplished with rakudo these days | 22:51 | |
turbov21: it's just IO that's weak | 22:52 | ||
mberends | yes, HTTP::Daemon networks by shelling netcat | ||
turbov21 | which is the core of DBI, LWP, etc. but that's cool. | ||
22:53
hercynium joined
|
|||
turbov21 | just wanted to be sure i hadn't missed a wiki entry or such | 22:53 | |
moritz_ | the core of DBI isn't IO, but calls to external functions | ||
mberends | today they ripped the old socket functions out of parrot | ||
turbov21 | moritz_, oh, i thought those calls counted as IO. | 22:54 | |
moritz_ | turbov21: we could argue about that... ;-) | 22:55 | |
from a VM point of view IO is a different subsystem than NCI | |||
turbov21 | No, no, no. I'll accept your opinion as law. (As a noob, i know my place.) | ||
:) | |||
moritz_ | turbov21: we're all noobs, at various degrees ;-) | 22:56 | |
22:57
hercynium left,
Whiteknight left
22:59
Whiteknight joined
|
|||
mberends | turbov21, if you get contributor permission on perl6-examples, there's a long list of Perl 5 core modules that could be contributed in pure Perl 6... | 22:59 | |
23:00
iblechbot left
23:06
mberends left
|
|||
turbov21 | mberends, i need to familiarize myself with Perl6 first, but point taken. I'll keep that in mind. | 23:07 | |
23:11
legis left
23:27
jferrero left
23:31
eternaleye left
23:34
lisppaste3 left
23:38
duke_leto left
23:39
lisppaste3 joined
23:44
mojoaxel joined
23:46
mojoaxel left
23:51
eternaleye joined
|