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 this␤current 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 !+< $b␤00: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==> $b␤00: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==> $road␤00: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␤ whitespace␤00: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␤ whitespace␤00:02 32m␤»
diakopter std: =
p6eval std 25178: OUTPUT«Undefined␤00: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␤ whitespace␤00:02 32m␤»
diakopter std: <
p6eval std 25178: OUTPUT«############# PARSE FAILED #############␤Can't understand next input--giving up at /tmp/LIMgn9o1v2 line 1:␤------> <␤ expecting escape␤00: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 noun␤00:04 36m␤»
diakopter ooo it doesn't like it
4 36
TimToady std: =foo
p6eval std 25178: OUTPUT«Undefined␤00:02 32m␤» 17:19
TimToady std: =begin
p6eval std 25178: OUTPUT«############# PARSE FAILED #############␤=begin without =end at /tmp/4Qpsan1C8v line 1:␤------> =begin␤00: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 escape␤00:02 33m␤»
diakopter std:
std: \
p6eval std 25178: OUTPUT«Undefined␤00: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 signature␤00: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␤ whitespace␤00: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