»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'perl6: say 3;' or rakudo:, niecza:, std:, or /msg p6eval perl6: ... | irclog: irc.perl6.org/ | UTF-8 is our friend!
Set by sorear on 4 February 2011.
lichtkind soroar allright :) 00:22
daniel-s perl6: my $a = "hello"; $a.length.say; 00:25
p6eval pugs: OUTPUT«*** No such method in class Str: "&length"␤ at /tmp/ZOMkiW9LNz line 1, column 18-31␤»
..niecza v6-157-ga94e021: OUTPUT«Unhandled exception: Unable to resolve method length in class Str␤ at /tmp/TIQrTIxksV line 1 (MAIN mainline @ 1) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1769 (CORE C837_ANON @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1770 (CORE module-CORE @ 57) ␤
.. at /home/p6eva…
sorear lichtkind: #2?
p6eval ..rakudo 248244: OUTPUT«Method 'length' not found for invocant of class 'Str'␤ in main program body at line 22:/tmp/xNznjFx8ng␤»
daniel-s perl6: my $a = "hello"; $a.bytes.say;
p6eval pugs, rakudo 248244: OUTPUT«5␤»
..niecza v6-157-ga94e021: OUTPUT«10␤»
daniel-s perl6: my $a = "Селекторот"; $a.bytes.say; 00:26
p6eval rakudo 248244, niecza v6-157-ga94e021: OUTPUT«20␤»
..pugs: OUTPUT«decodeUTF8': bad data: '\1057'␤decodeUTF8': bad data: '\1077'␤decodeUTF8': bad data: '\1083'␤decodeUTF8': bad data: '\1077'␤decodeUTF8': bad data: '\1082'␤decodeUTF8': bad data: '\1090'␤decodeUTF8': bad data: '\1086'␤decodeUTF8': bad data: '\1088'␤decodeUTF8': bad data: '\1086'␤dec…
daniel-s what's the proper way to get the length of a string
sorear .chars
daniel-s because .bytes is not it
perl6: my $a = "Селекторот"; $a.chars.say;
p6eval rakudo 248244, niecza v6-157-ga94e021: OUTPUT«10␤»
..pugs: OUTPUT«decodeUTF8': bad data: '\1057'␤decodeUTF8': bad data: '\1077'␤decodeUTF8': bad data: '\1083'␤decodeUTF8': bad data: '\1077'␤decodeUTF8': bad data: '\1082'␤decodeUTF8': bad data: '\1090'␤decodeUTF8': bad data: '\1086'␤decodeUTF8': bad data: '\1088'␤decodeUTF8': bad data: '\1086'␤dec…
daniel-s pugs doesn't like UTF 00:27
sorear probably something is getting double decoded 00:32
sorear wonders what selektorot is 00:35
sorear lichtkind: you said you had more questions 00:39
lichtkind sorear: yes but time is approaching and had to fix here a small script, i would like to ask tommorow if you dont bother 00:48
sorear lichtkind: no, it's fine by me. 00:53
lichtkind :), good night
to all here
sorear good night.
dalek ecza: 042c7c2 | sorear++ | src/ (3 files):
Improve detection of when names are actually used
01:46
sorear \o/ make test passes without warnings now
colomon \o/ 01:48
sorear std: "{ my $x }" 02:36
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
dalek ecza: c0de568 | sorear++ | / (3 files):
Refactor to enable more detection of unused variables
02:37
dalek ecza: f958d2d | sorear++ | src/niecza:
Allow catching unused variables in the mainline block
02:49
dalek ecza: e8230ae | sorear++ | src/ (3 files):
Fix declared but not used checking for subs
03:18
kai__ whois clkao 03:28
sorear Su-Shee_: ping 03:29
KKK Is there any detailed documentation for perl6 module? 03:34
zhang How could I get the length of a array? 03:49
sorear use the array as a number
@array > 3
if you don't need to use the value right away, use unary + 03:50
my $len = +@array
zhang sorear Thank you.
tylercur1is Or @array.elems 03:52
zhang This one looks more natural. 03:53
sorear o/ araujo 04:20
araujo hi sorear
sorear oh wow, I didn't break any spectests
tadzik good morning #perl6 04:21
sorear hello tadzik
tadzik sorear: what's so bad about IRC?
sorear where do I begin? 04:22
tadzik I wonder
sorear enforced tree topology makes redundant connections impossible
no way for clients to transparently resume after a connection drop
510-character limit by truncation brain damage
lack of character encoding awareness 04:23
inadequate handling of presense data
no remote echo
"standard" that NO server follows anymore 04:24
ad-hoc extensions with no discovery protocol
basically, the protocol is set up at every level to make it impossible to write a better client than irssi 04:25
tadzik I see your point
sorear I learned most of this when I got fed up with irssi and tried to do exactly that
Eevee time for a new protocol
tadzik or for wider adoption 04:26
dalek ecza: fa38b18 | sorear++ | / (4 files):
Fix explain_mystery/inlining misinteraction
04:58
ecza: 174da63 | sorear++ | src/Metamodel.pm6:
Re-add use before declaration suppressing nonusage warning
TimToady phenny: tell masak oh, and in the same paragraph, "short-curcuiting" 05:33
ENOPHENNY 05:34
tadzik /o\
that explains the lack of breakfast
sorear o/ TimToady 05:35
TimToady yo
looks like yer making good progress on the symtab stuff 05:36
dalek ecza: 3332d84 | sorear++ | src/niecza:
&foo adds to %*MYSTERY
sorear yeah, it's basically done except for the "defined but not used" warnings, which keep bouncing between oversensitive and undersensitive 05:37
TimToady I gave niecza more visibility on the rosettacode.org/wiki/Category:Perl_6 page today
tadzik examtime & 05:39
TimToady have the appropriate amount of fun 05:40
sorear it' 05:42
it's not regressed on spectests at this point (though I haven't reviewed warnings yet), also can compile itself again
sorear I'm thinking of changing source position in backtraces to a range of positions 05:48
if we have A(B), then there are 3 possible points for an exception - in eval(A), in eval(B), or in apply() 05:50
sorear the other trick is that sometimes niecza doesn't exactly know when an exception came in, due to a bit of CLR brain damage 05:50
so sometimes niecza might know "either in eval(A) or eval(B), but definitely not in apply" 05:51
I wonder how best to present that to the user
TimToady better to be too general than to be wrong 05:52
moritz good mroning 06:04
sorear hi moritz 06:05
moritz too early to write properly, it seems
TimToady you should blame the german keyboard :)
moritz only a poor blameman works his tools 06:05
erm...
TimToady that almost blames...er...works 06:06
sorear hmm... no spectests for tighter/looser it seems 06:08
sorear writes up a battery of tests
TimToady be sure to keep + and - terminals straight...oh wait, you said a battery of tests, not a test of batteries... 06:09
permutational humor is humorously permutational, except when permutationally humurous or prohibited by law...
sorear for many years while growing up I thought "voidware" was a noun-type legal concept 06:11
Su-Shee_ sorear: yes pong?
sorear then I decided to ask what it was one day...
sorear Su-Shee: you said you wanted an article. What information? 06:11
TimToady I kinda like "the", it's very definitive. 06:12
Su-Shee sorear: what I asked yesterday. why did you choose c#, how does .net come into play (does it even?) what were your experiences etc
sorear ah... 06:21
niecza: sub infix:<@a> { "a({@_})" }; say 1 @a 2 06:23
p6eval niecza v6-163-g174da63: OUTPUT«===SORRY!===␤␤Placeholder variable @_ may not be used here because the surrounding block takes no signature at /tmp/NnXRyPsTvd line 1:␤------> sub infix:<@a> { "a({⏏@_})" }; say 1 @a 2␤␤Unhandled exception: Check failed␤␤ at
../home/p6eval/niecza…
sorear ...eheheh
niecza: sub infix:<@a> { "a(@_.item())" }; say 1 @a 2 06:24
p6eval niecza v6-163-g174da63: OUTPUT«a(1 2)␤»
moritz niecza: sub infix:<@a> { "a(@_.item())" }; my @a = 3; say @a @a @a 06:25
p6eval niecza v6-163-g174da63: OUTPUT«a(3 3)␤»
sorear clearly, starry 2.0 is warranted 06:26
moritz niecza: sub infix:<@a> { "a(@_.item())" }; my @a = 3; say (* @a *).(@a, @a) 06:27
p6eval niecza v6-163-g174da63: OUTPUT«a(3 3)␤»
sorear TimToady: given infix:<@a> is tighter<|>; infix:<@b> is looser<&> what is the precedence relationship between @a and @b? 06:29
sorear TimToady: I'm planning to make tigher subst('=','>=') and looser subst('=','<=') so the original op will always trump refinement. But you might've had a different plan 06:30
sorear std: sub foo is export('PIE') { } 06:34
p6eval std 37a0cdd: OUTPUT«ok 00:01 119m␤»
sorear std: sub foo is export ('PIE') { }
p6eval std 37a0cdd: OUTPUT«ok 00:01 121m␤»
sorear std: sub foo is export ($fie) { } 06:35
p6eval std 37a0cdd: OUTPUT«Potential difficulties:␤ $fie is declared but not used at /tmp/Pu9tXl0oUP line 1:␤------> sub foo is export (⏏$fie) { }␤ok 00:01 120m␤»
sorear std: sub foo is export($fie) { }
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Variable $fie is not predeclared at /tmp/U7ZjedO07M line 1:␤------> sub foo is export($fie⏏) { }␤Check failed␤FAILED 00:01 119m␤»
sorear ok then
TimToady a tighter based on a looser op is always looser than the looser based on the tigher op; such precedence levels never overlap, so tighter/looser are only tiebreakers if the original precedence would be ambig 06:43
TimToady if if there is a between of the original precedence levels, it's between all the looser-tighters and all the tighter-loosers, as it were 06:44
sorear between exists?
or do you just mean like + relative to tighter(=) and looser(*) ? 06:45
TimToady it was speculated at least
tighters and loosers are only infinitesimally far away from their base prec
though you can always fit more in 06:46
if we have between, it has to interpolate though
interpolating between loosers and tighters looks to be fraught with peril, though :) 06:47
sorear pugs: sub infix:<@>($x,$y) { $x * $y }; say 2 + 4 @ 4; # 24
p6eval pugs: OUTPUT«24␤»
TimToady so feel free to ignore between for now
sorear pugs: sub infix:<@>($x,$y) is tighter<+> { $x * $y }; say 2 + 4 @ 4; # does pugs support this? (18) 06:48
p6eval pugs: OUTPUT«*** ␤ Unexpected "<+>"␤ expecting trait or block␤ at /tmp/StONe8U86z line 1, column 32␤»
sorear pugs: sub infix:<@>($x,$y) is tighter(&infix:<+>) { $x * $y }; say 2 + 4 @ 4; # does pugs support this? (18)
p6eval pugs: OUTPUT«24␤»
sorear pugs: sub infix:<@>($x,$y) is equiv(&infix:<*>) { $x * $y }; say 2 + 4 @ 4; # does pugs support this? (18)
p6eval pugs: OUTPUT«24␤»
TimToady I don't think pugs does anything with tighter/looser
sorear doesn't look like it
so probably niecza will be the first implementation to do infinite precedence \o/
TimToady well, till you run out of memory :) 06:49
TimToady similarly a tighter(looser(+)) is still looser than + 06:50
sorear I could make between work, using infinitesimal calculus, but it would be a pain to test and it would probably slow down EXPR 06:51
since it wouldn't be able to use lt/gt anymore
plus I'm not really sure "0.5 of the way between the arguments precedence" is really _useful_ 06:52
TimToady you'd just have to figure out some way to generate an intermediate string
TimToady me either 06:52
TimToady so consider it conjectural 06:52
sorear if we wanted to go that far I'd rather see topological sorting stuff
where you give X > Y constraints, and then the system decides if operators are <, >, =, incomparable by the transitive closure 06:53
TimToady oh, I think we decided to replace 'is between' with 'is tighter is looser'
and let the two traits fight it out :)
sorear I think I proposed that system for Haskell' back when I was 10 or so...
hmm 06:54
TimToady in any case, don't need new syntax for it
sorear ah, Haskell' was 2010, not 2000
that's more consistent with my timeline... I didn't think I was playing with Haskell until after I was on Linux, which required post-13 06:55
TimToady useful topological prec likely requires you to name both upper and lower bounds, which is problematic from an extensibility point of view 06:58
TimToady the between stuff more more useful for bootstrapping your initial levels, I suspect 06:59
sorear I was supposing just is Niecza::absprec<k= right> for that
TimToady so you can get the moral equivalen of the a..z levels without going all Church numerally 07:00
sorear between needs at least 2 prec levels to bootstrap
TimToady yes, but you can see how you could bootstrap between a..z with a split-the-difference thing
sorear and I'd rather have a system that allows users to see at a glance that is absprec<i= right> is related to constant $item_assignment_prec = 'i='; 07:01
TimToady yes, I prefer to hardwire the initial levels 07:02
it's an example of "Give them all the rope they want to be flexible, but then give them enough options that the don't want to extend it." :)
*they
that's easier with precedence levels than with operators, of course 07:03
but we'll probabl never add factorial as a built-in op simply because it's such an amusing operator to add :)
sorear "show me the use case" 07:04
factorial... well it's a great builtin operator in Maxima
but Perl 6 has no delusions of being a CAS
TimToady we've got plenty of delusions already, thank you... 07:05
dalek ecza: dff3b35 | sorear++ | / (2 files):
36 new tests for tighter/looser/equiv. tighter+looser is not tested, as semantics uncertain
07:17
sorear (warning: not my most readable code) 07:18
TimToady wanders off to see how interesting the inside of his eyelids will be tonight... 07:28
frettled I'm sure they will be most fascinating. 07:29
TiMBuS twitter.com/#!/MICROSOFTWORD97 07:52
ahahah
frettled heh 07:57
dalek ecza: f6d94cc | sorear++ | / (2 files):
Fix stubbing qualified packages
08:07
mathw snorts milk out of his nose 08:08
sorear -> sleep 08:22
dalek ecza: 6cff873 | sorear++ | src/niecza:
'subset' and 'enum' default to our scope
tadzik o/ 09:22
jnthn o/ 09:32
moritz o| 09:34
daniel-s !wave 10:22
DBot1 o/
o|
o/
moritz daniel-s: could you please compress that to one line? verbose bots are a bit annoying 10:25
daniel-s !wave at moritz 11:26
DansBot Hai moritz o/ o| o/
moritz \o |o /o
daniel-s++
colomon niecza: say [*] 1..20; 12:07
p6eval niecza v6-167-g6cff873: OUTPUT«2432902008176640000␤»
takadonet morning all 12:10
colomon niecza: say [*] 2, 3, 5, 7, 11, 13, 17, 19
p6eval niecza v6-167-g6cff873: OUTPUT«9699690␤»
moritz sorear: 'make test' fails in current niecza: Undeclared routine: 'testx:sym<<foo bar>>' used at line 815 12:16
daniel-s perl6: say [*] 1..20; 12:21
p6eval rakudo 248244: OUTPUT«2.43290200817664e+18␤»
..pugs, niecza v6-167-g6cff873: OUTPUT«2432902008176640000␤»
daniel-s perl6: say [*] 1..5; say 1*2*3*4*5; 12:22
p6eval pugs, rakudo 248244, niecza v6-167-g6cff873: OUTPUT«120␤120␤»
daniel-s rakudo: [-] 6 5; 12:33
p6eval rakudo 248244: OUTPUT«===SORRY!===␤Confused at line 22, near "[-] 6 5;"␤»
daniel-s rakudo: [-] 6, 5;
p6eval rakudo 248244: ( no output )
daniel-s rakudo: [+] 6, 5;
p6eval rakudo 248244: ( no output )
daniel-s rakudo: [*] 6, 5;
p6eval rakudo 248244: ( no output )
daniel-s rakudo: say [*] 6, 5;
p6eval rakudo 248244: OUTPUT«30␤»
daniel-s rakudo: say [-] 6, 5;
p6eval rakudo 248244: OUTPUT«1␤» 12:33
daniel-s rakudo: say [%] 6, 5; 12:34
p6eval rakudo 248244: OUTPUT«1␤»
moritz rakudo: say [**] 1..10 12:37
p6eval rakudo 248244: OUTPUT«1␤»
daniel-s that seems not right 12:39
say [%] 6,4; 12:40
rakudo: say [%] 6,4;
p6eval rakudo 248244: OUTPUT«2␤»
daniel-s rakudo: say [**] 1..3;
p6eval rakudo 248244: OUTPUT«1␤»
daniel-s rakudo: say [**] 2..3;
p6eval rakudo 248244: OUTPUT«8␤»
daniel-s oh yea, it starts at 1 12:41
colomon niecza: say 10 !%% 3 13:18
p6eval niecza v6-167-g6cff873: OUTPUT«Bool::True␤»
colomon niecza: say 10 !%% 2
p6eval niecza v6-167-g6cff873: OUTPUT«Bool::False␤»
daniel-s rakudo: say 10%3; 13:24
p6eval rakudo 248244: OUTPUT«1␤»
daniel-s rakudo: say 10%%3;
p6eval rakudo 248244: OUTPUT«Bool::False␤»
daniel-s what is %%?
daniel-s and why does the first one get ignored in IRC 13:25
moritz the "divisible by" operator
which one is ignored?
daniel-s oh, so if 10%2 is zero, 10%2 == true
oh, so if 10%2 is zero, 10%%2 == true
moritz right
daniel-s % 13:26
%%
if I type %% only one % comes up
moritz daniel-s: that's a feature of your IRC client. Works fine in mine
daniel-s rakudo: say !10%%3.5; 13:30
p6eval rakudo 248244: OUTPUT«Bool::True␤»
daniel-s rakudo: say 10%%3.5;
p6eval rakudo 248244: OUTPUT«Bool::False␤»
daniel-s rakudo: say !10; 13:30
p6eval rakudo 248244: OUTPUT«Bool::False␤»
daniel-s rakudo: say !"hello";
p6eval rakudo 248244: OUTPUT«Bool::False␤»
daniel-s rakudo: say !"0"; 13:31
p6eval rakudo 248244: OUTPUT«Bool::True␤»
colomon hmmm.... we have grep and first. do we have an exists? (ie, like first but returns True if the condition matches something in the list, False otherwise.) 13:38
I guess ?@a.grep should do that, in theory....
moritz and with lazy lists it does that well
tadzik blogs.perl.org/users/andrew_shitov/...urope.html 13:40
colomon Obviously !@a.grep could be that efficient as well. Wonder if it is.
rakudo: my @a := 1, -> $n { say ++$n } ... 20; @a.grep(* %% 13) 13:41
p6eval rakudo 248244: ( no output )
colomon rakudo: my @a := 1, -> $n { say ++$n } ... 20; say ?@a.grep(* %% 13)
p6eval rakudo 248244: OUTPUT«Cannot modify readonly value␤ in '&infix:<=>' at line 1␤ in <anon> at line 22:/tmp/alerlUeyQd␤ in <anon> at line 872:CORE.setting␤ in 'List::Bool' at line 1␤ in <anon> at line 888:CORE.setting␤ in <anon> at line 1␤ in 'List::Bool' at line 1␤ in 'prefix:<?>' at line
..497:CORE…
colomon rakudo: my @a := 1, -> $n is copy { say ++$n } ... 20; say ?@a.grep(* %% 13)
p6eval rakudo 248244:
..OUTPUT«(timeout)rue␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool::True␤Bool:…
colomon doh! 13:42
rakudo: my @a := 1, -> $n is copy { say ++$n; $n; } ... 20; say ?@a.grep(* %% 13)
p6eval rakudo 248244: OUTPUT«2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤Bool::True␤»
colomon rakudo: my @a := 1, -> $n is copy { say ++$n; $n; } ... 20; say !@a.grep(* %% 13)
p6eval rakudo 248244: OUTPUT«2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤Bool::False␤»
colomon so, not smart now, but an easy fix 13:43
moritz you have to check how often the grep block is executed
not how often the generating code block is executed
you see that it only goes up to 13 in the generating block
so you know that it stopped after it found the first match
colomon right, that's because !@a.grep translators to !?@a.grep 13:44
errr, hmmm.
that's right, actually, isn't it?
moritz well, both end up calling List.Bool 13:45
moritz doesn't see anything wrong
PerlJam greetings fellow perl6ers
colomon rakudo: my @a := 1, -> $n is copy { say ++$n; $n; } ... 20; say !@a.grep(* !%% 13) 13:46
p6eval rakudo 248244: OUTPUT«Bool::False␤»
colomon needs to stop fiddling around with p6 and get back to work 13:47
niecza: my @a := 1, -> $n is copy { say ++$n; $n; } ... 20; say ?@a.grep(* %% 13)
p6eval niecza v6-167-g6cff873: OUTPUT«Unhandled exception: Nominal type check failed in binding $v is rw in CORE prefix:<++>; got Mu, needed Any␤ at /home/p6eval/niecza/lib/CORE.setting line 0 (CORE prefix:<++> @ 0) ␤ at /tmp/LsEbplSSHe line 1 (MAIN C1_ANON @ 1) ␤ at
../home/p6eval/niecza/lib/CORE.setting line 1537 (C…
colomon niecza: my @a := 1, -> $n { say $n + 1; $n + 1; } ... 20; say ?@a.grep(* %% 13) 13:48
p6eval niecza v6-167-g6cff873: OUTPUT«2␤3␤4␤5␤6␤7␤8␤9␤10␤11␤12␤13␤Bool::True␤»
PerlJam I just compiled nom again and I'm really having a hard time getting used to it being so fast :-) 14:01
PerlJam It surprises me every time. 14:01
tadzik :) 14:02
moritz PerlJam: I can volunteer to implement a --with-breaks option that eases the transition for you :-) 14:03
PerlJam heh
jnthn lol :) 14:08
Happy it's a better experience. :)
PerlJam I'm looking forward to the day when I'm *not* surprised by how fast rakudo compiles :) 14:21
moritz oh well, it will slow down again when we add more stuff to the setting :-) 14:22
arnsholt I tried compiling Perl 5 the other day. Definitely took longer =) 14:25
tadzik ha! :P
moritz arnsholt: I'm a bit surprised... if you include the time for parrot and nqp in the rakudo build 14:26
(and don't count the tests in both cases)
moritz might also depends on the number of parallel compilation processes 14:26
PerlJam I don't know ... perl 5 does a lot of things to make sure execution is faster
lichtkind TimToady: you got mail :)
arnsholt moritz: Yeah, I didn't include parrot, that's true 14:27
moritz though parallelized parrot rebuild with ccache isn't slow either 14:28
but then you have to consider ccache for perl 5 too
jnthn wonders how well the Rakudo build parallelizes.
moritz not well at all 14:29
the dynpmcs do
but the rest mostly not
maybe building the blib/Perl6/*.pbc things
setting compilation: not at all
jnthn Setting compilation kinda can't. 14:33
PerlJam I just helped our very staid accountant do something on a system I don't use in a language I don't know and it worked :-) and the accountant actually shouted "yay!". It's the largest expression of emotion I've ever seen from her.
moritz configuring and building perl 5 (blead) from scratch: 6 minutes 14:34
now trying rakudo + nqp + parrot 14:35
moritz parrot build finished, now on to nqp... 14:38
PerlJam idly wonders where "blead" actually originated.
moritz "bleading edge" - like leading edge, but sometimes a bit painful
PerlJam Aye, I know what it means, but where was it first used? 14:39
who first came up with it?
moritz probably any < damian TimToady tchrist > on p5p :-) (just guessing)
PerlJam as much as its usage pervades hackerdom, it could be one of those things perl culture borrowed for all I know 14:40
PerlJam moritz: doesn't building perl also compile a bunch of modules? For it to be a fair timing comparision, you'd have to discount those too 14:48
moritz nom + nqp + parrot: 7m41 14:48
moritz PerlJam: well, I don't want to spend much more time on that 14:48
Kaedenn So, um, I see the following line in Perl6: my $*endsym = "null"; 15:03
What does the * do in that context, if anything?
PerlJam deja vu
(I just saw that on #perl :)
moritz Kaedenn: dynamic variable
Kaedenn Um.
PerlJam Kaedenn: See S02
Kaedenn smiles and nods
Okay.
Which section? 15:04
PerlJam Kaedenn: um ... search for "twigil" 15:04
Kaedenn Aha! 15:05
Okay, that's what I was looking for. Thanks.
Kaedenn God this is making my head hurt. 15:07
moritz just one new dimension 15:07
JimmyZ good evening, #perl6 15:09
slavik JimmyZ: wrong timezone :P 15:10
JimmyZ slavik: then s/evening/*/ ;) 15:11
slavik ^^
damn straight
slavik JimmyZ: you be from nearby mother country :D 15:12
benabik I say "Good morning" to people in my own timezone well into the PM, so I don't really care what greeting people use on IRC. :-D
JimmyZ well, maybe I'm from the future 15:13
huf the perl6 greeting is * *, * anyway 15:14
i learned that from TimToady
moritz though 'good *, *' is also acceptable
slavik well, he is a linguist, which would make him more qualified than any/most of us in that regard 15:15
huf slavik: * * * * * * :)
slavik exactly!
bash.org/?244321
reminds me of that
PerlJam All of the *s remind me of crontabs 15:17
benabik A crontab entry of * * * * * means someone needs to have login privs revoked. 15:18
moritz benabik: depends on what the job does 15:19
huf removes login privileges :D
JimmyZ I didn't recall crontabs, most Perl 6
moritz benabik: once per minute isn't too bad if what it does is reliably < 1s
benabik moritz: Still, uhg. I'd rather something like that just be a daemon than forcing crond to wake every minute and spawn a process. 15:20
moritz: But I guess I see your point.
TimToady it's hard to know how best to do it in Japanese--since the word boundaries are not very distinct from morpheme boundaries, you could justify anything from ** to ***** 15:36
TimToady o hayou go zai masu 15:36
oh, and that's without the minna san on the end :) 15:37
so make it *******
but * *, * works too :) 15:38
I guess that'd really have to be **,* 15:39
TimToady .u * 15:39
phenny U+FF0A FULLWIDTH ASTERISK (*)
TimToady or more likely **、*
.u , 15:41
phenny U+FF0C FULLWIDTH COMMA (,)
TimToady .u 、
phenny U+3001 IDEOGRAPHIC COMMA (、)
TimToady so how come there's an IDEOGRAPHIC SPACE but no FULLWIDTH SPACE? :) 15:44
pmichaud maybe it's ideotic. 15:51
Eevee 「なにか」 16:03
TimToady or 何か, since Japanese is rather TMTOWTDI :) 16:06
Eevee yes, I've seen many a comparison drawn to Perl 16:09
I wouldn't be surprised to find $_ aliased to $は someday :P
icwiener Hi, small question: What kind of regexpes does the smart match operator expect? 16:22
PerlJam what kind? 16:24
icwiener: what do you mean? 16:25
icwiener PerlJam: Well, I use a regular expression that works fine with plain grep but Perl6 gives me a syntax error there. if $line ~~ /^\#.*20[01][0-9]\.$/ { 16:26
So I thought Perl6 might use a different style of regular expressions.
PerlJam oh!
perl 6 expects Perl 6 regex :)
PerlJam icwiener: Perl 6 has refactored regex syntax somewhat so, for instance, character classes are now <[0..9]> instead of [0-9] 16:27
icwiener Hmm,, the ones I saw pretty much looked the same as the usual extended regexp I used to use in Perl 5.
Oh! 16:28
PerlJam but maybe you want to use \d instead ?
icwiener That explains a bit. :)
Is there something to read about the new syntax? 16:29
PerlJam icwiener: well, there's github.com/perlpilot/perl6-docs/bl...-intro.pod
PerlJam icwiener: and there's github.com/perl6/specs/blob/master...-regex.pod 16:30
icwiener: and there's szabgab.com/blog/2009/07/perl-6-regexes.html
icwiener Thanks a lot. I just read strangelyconsistent.org/blog/june-13-regexes and felt confident enought to try it. :D 16:33
PerlJam masak++
icwiener Yep, great series of articles. 16:34
TimToady niecza: /^\#.*20[01][0-9]\.$/ 16:43
p6eval niecza v6-167-g6cff873: OUTPUT«===SORRY!===␤␤Any()No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes ('#') or use a backslashed form like \xXX at /tmp/t1jJyKgLUM line 1:␤------> /^\⏏#.*20[01][0-9]\.$/␤␤Parse 16:44
..failed␤␤»
TimToady std: /^\#.*20[01][0-9]\.$/
p6eval std 37a0cdd: OUTPUT«Invalid conversion in sprintf: "%M" at /usr/local/share/perl/5.10.1/STD.pm line 57286.␤===SORRY!===␤No unspace allowed in regex; if you meant to match the literal character, please enclose in single quotes ('#') or use a backslashed form like \x%M->{02}x at
../tmp/7…
TimToady interesting
PerlJam and LTA :)
TimToady std: /^'#'.*20[01][0-9]\.$/
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Invalid regex metacharacter (must be quoted to match literally) at /tmp/unXX94pgrf line 1:␤------> /^'#'.*20[01][0-⏏9]\.$/␤Potential difficulties:␤ [01] appears to be an old-school character class; please use <[01]> if you␤
..mean…
TimToady std: /^'#'.*20<[01]>[0-9]\.$/ 16:45
p6eval std 37a0cdd: OUTPUT«===SORRY!===␤Invalid regex metacharacter (must be quoted to match literally) at /tmp/h3xU4Nl4Fz line 1:␤------> /^'#'.*20<[01]>[0-⏏9]\.$/␤Potential difficulties:␤ [0-9] appears to be an old-school character class; digits should be matched
..with …
TimToady std: /^'#'.*20<[01]>\d\.$/
p6eval std 37a0cdd: OUTPUT«ok 00:01 121m␤»
TimToady std: / ^ '#' .* 20 <[01]> \d \. $ /
p6eval std 37a0cdd: OUTPUT«ok 00:01 121m␤»
TimToady happyspace! 16:46
thou thanks, i'm getting back online now 17:10
for some reason my wireless stopped transmitting
erm, sorry, wrong channel
TimToady it's pretty hard to be offtopic here :) 17:11
benabik thou: welcome back anyway. :-D
thou lol 17:12
thanks
TimToady since Perl 6 will solve all the problems of the world including wireless dropouts
so I guess only death and taxes are offtopic here... 17:13
thou maybe perl6 could help with the *fear* of death 17:14
which is, i imagine, worse than the real thing
slavik perl6 will also solve the world hunger problem?
TimToady of course
slavik and global warming and energy crisis? 17:15
TimToady it will make everyone into sedentary programmers
so they'll need less energy
slavik nice
I am already fat :(
TimToady yes, but then everyone else will be fat too, and we will redefine the norm 17:16
flussence somewhat on-topic: I've read a story about one compiler from the 80s/90s, where a single bugfix saved all the devs a few thousand kWh in electricity bills in the long run... 17:17
flussence (it was pretty similar to the ld -> gold thing going on today, actually) 17:17
masak bom tarde, #perl6 17:31
phenny masak: 15 Jun 23:04Z <TimToady> tell masak methinks you said "right side" when you meant "left side"
masak probably. I do that a lot...
jnthn boms the tarde 17:32
TimToady colomon: you should add your solution to rosettacode.org/wiki/Pi someday
TimToady and there's a misspelling in the same paragraph, but phenny was down when I noticed it 17:32
masak TimToady: thanks, twice. fixing.
colomon TimToady: Probably. :) 17:33
masak it's slightly doubtful I'll have time to blog today. but I'll try my best.
tadzik hello masak 17:34
masak czesc tadzik 17:35
tadzik hej
masak ;)
masak the difference between left and right bothers me. there's nothing *a priori* to tell them apart. 17:42
pmichaud jnthn: ping
jnthn pmichaud: pong 17:44
masak just as we might have picked -i as the imaginary base, and no-one would be able to tell the difference. (may that's what happened!) :P
pmichaud jnthn: never mind, I figured out what was going on. I couldn't see why I was getting an error on binding to an attribute (it was an operator precedence problem) 17:46
jnthn pmichaud: ah, k :)
pmichaud oh, imcc, how do I hate thee? Let me count the ways...... 17:47
moritz guesses that pmichaud is aware of the utter lack of methods in Parcel, and works on related stuff anyway 17:48
pmichaud yes, I'm aware.
I'm redoing Parcel/List/Array at the moment anyway.
vi l5
ww
TimToady masak: your premise is arguably incorrect, since there's en.wikipedia.org/wiki/CP_violation you'd have to argue that you can't tell forward from backward in time 17:51
colomon pmichaud: redoing them in nom? Is that in the sense of fixing up nom's versions, or actual improvements over master? 17:52
pmichaud actual improvements over master 17:53
I'm even working on equivalent new versions in master
don't know if they'll result in any significant performance improvements (they should), but they'll certainly be cleaner than what master has now
colomon \o/ 17:55
masak TimToady: while I appreciate the logic of that, my heart tells me otherwise... :)
colomon is switching from one frustrating task for $work (still completely non-functioning) to a different frustrating task for $work
moritz guesses that pmichaud will stumble over some list/iterator issus in the meta ops while doing things more correctly
colomon is listening to a Fleet Foxes concert, on the bright side 17:56
TimToady masak: your heart is also not completely left-right symmetrical 17:58
masak :P 18:00
augh, there's no axiomatic basis anywhere! 18:01
PerlJam masak: There's a mathematician who has some interesting things to say about axiomatic systems; you should read him some time ;-) 18:02
TimToady "no axiomantic basis" is a rather axiomatic assertion... 18:03
masak TimToady: well, it depends... I've been going back and forth on that one.
TimToady perhaps we can build up Church axioms from that :P
though we'd have to prove that the next axiom is both derived from and could not possibly be derived from the previous axiom... 18:04
that's where I go back and forth :) 18:05
pmichaud moritz: stumble in master, you mean?
moritz pmichaud: yes 18:06
pmichaud perhaps. it was actually in the role stuff that I got blocked yesterday.
but that's actually fortunate, as it forced me to go back and rethink things yet again :)
masak "there are no universal truths" is a pretty self-defeating statement. the problem with slaying logic in the first blow is a bit similar to destroying the boat after just setting out from the shore.
masak it doesn't get you very far. :) 18:07
TimToady well, but if it's all relative than you can't quantify "very far" very well :)
*then
masak :P 18:08
pmichaud never argue with a linguist. :)
masak so the consolation is that I won't know how much I've failed? :P
I think I'll head back to utter certainty now... :)
on the other hand, a postmodernist theorem prover should be a breeze to implement. 18:15
PerlJam Does "utter certainty" even exist? 18:16
masak oh, I'm sure it does.
PerlJam yeah, but I think many cultures call that "God" or something 18:17
PerlJam chromatic is funny 18:20
masak he is. 18:24
anything in particular? www.modernperlbooks.com/mt/2011/06/...ranny.html , perhaps? 18:26
PerlJam yes, the parenthetical bit near the beginning gives some insight into his how his brain works ;) 18:29
moritz somehow I don't understand the point 18:30
having the option to write custom arrays that use the built-in syntax seem to solve the big problem he mentions
so to me it looks like a problem specific to perl 5, not dynamic languages and their types in general 18:31
there could be a deeper point I'm missing, though
masak I always get the feeling chromatic has something important and noteworthy to express. I'm not always convinced biting sarcasm helps get the point across in the best way possible. but it's usually enjoyable to read.
masak first link in paragraph "Then I read..." looks broken. 18:35
I meant to tell chromatic, but I can't find him on IRC.
maybe Twitter will serve.
sorear good * #perl6 18:42
masak sorear! \o/ 18:43
sorear masak: down to 18 lines of changes in yapsi/niecza, some of which I think are worth merging to master 18:48
like yapsi/master uses $obj1 eq $obj2 in a few places
I think this is a bug waiting to happen... what if $obj1 === $obj2, but the first call triggers a garbage collection which changes the object's address? 18:49
masak sorear: agreed. 19:03
sorear: I've been meaning to look at the diff and perhaps blog about it.
it will be a few days before I have that kind of time; probably sometime early next week. 19:04
colomon is having one of those "nothing is working" days 19:17
colomon ack. 19:19
PerlJam colomon: that's okay, I'm having one of those "can't get motivated to do anything productive" days
colomon PerlJam: not really sure which is worse 19:19
colomon so, MAIN(Int $n) doesn't work? 19:20
PerlJam I think it's mainly because I have these ideas of things I want to work on for $work, but I have to put together a narrative for a proposal by tomorrow and that's more important but less fun.
masak moritz: today, researching Perl 5's pseudo-package SUPER, I realized that it actually does handle MRO and MI. I'm not advocating putting it back into Perl 6 (because nextsame et al are just fine), but I no longer see a conceptual problem with having it there. 19:21
moritz masak: but it is otherwise completely insane 19:24
masak right, exactly.
PerlJam heh
moritz ie it's not tied to an invocant, but to the current package
masak it just struck me that the "won't work with MI" objection wasn't very strong, since it does work with MI in Perl 5. 19:25
moritz but does it work *well* with MI in Perl 5?
masak I didn't say that. :)
colomon what I'm seeing (this is in master): MAIN(Int $n) doesn't work. MAIN($n) works, but then hides MAIN("test") (ie if the command-line argument is "test", MAIN($n) is called. Help? 19:25
masak I don't plan to use MI much in Perl 5. Perl 5 has Moose, and Moose has roles. 19:26
colomon: the former is well-known. the latter sounds weird and new.
colomon: are those really multis?
rakudo: sub MAIN("test") {}; sub MAIN($n) {} 19:27
p6eval rakudo 248244: OUTPUT«===SORRY!===␤Cannot re-declare sub &MAIN without declaring it multi at line 22, near ""␤»
masak guess so :)
colomon masak: gist.github.com/1030030 19:28
moritz colomon: re-order the mutlis
masak huh, what?
moritz colomon: thing is, the main helper doesn't do a proper multi dispatch (yet)
masak ah.
masak didn't know that 19:29
is that filed?
colomon moritz++
moritz but it just iterates over the candidates, and invokes the first one it finds
erm, the first one it can bind to
masak submits rakudobug
Moukeddar_ Hi guys , hope you're all fine 19:31
masak Moukeddar_: hi Moukeddar_ of the abundant whitespace ;) 19:32
tadzik hello Moukeddar_
Moukeddar_ you noticed that ?
what's cooking in the labs? 19:33
masak well, jnthn++ is working on nom, sorear++ is hacking away on Niecza, and the rest of as are (to a first approximation) awestruck by their productivity. :) 19:34
moritz masak: btw I'm working on github.com/moritz/WebService-Libris right now
masak us*
moritz: ooh
moritz it has neither tests nor documentation right now :/ 19:36
Moukeddar_ so you think you can code ? 19:39
that's a show :)
masak Moukeddar_: sorry, what do you mean? 19:40
Moukeddar_ you know the TV shows , Dance with the stars , America got talent , so you think you can dance etc...
masak ah. 19:41
Moukeddar_ please please , overlook the spaces:)
masak in this case, quotes would've helped more :P
Moukeddar_ yes, certainly 19:41
masak it's the ol' use-mention distinction. some of us are very into that one.
Moukeddar_ i can tell 19:42
masak Moukeddar is 185 cm tall, but "Moukeddar" is 8 characters wide :) 19:43
Moukeddar_ lol
middle value is always the best
masak well, those two units aren't fungible.
flussence rakudo: say "Moukeddar".split.uniq.join.chars 19:44
p6eval rakudo 248244: OUTPUT«No applicable candidates found to dispatch to for 'split'. Available candidates are:␤:(Mu : Regex $matcher, Any $limit = { ... }, Any :all($all);; *%_)␤:(Mu : Any $delimiter, Any $limit = { ... }, Any :all($all);; *%_)␤␤ in main program body at line 22:/tmp/w3g5q22gG0␤»
moritz flussence: try .comb
flussence I seem to have misplaced my clue today :)
masak btw, uniq isn't spec'd. maybe someone should spec it.
flussence rakudo: say "Moukeddar".comb.uniq.join.chars
p6eval rakudo 248244: OUTPUT«8␤»
masak I'm curious how the spec for uniq would read.
Moukeddar_ the one and the five?N
do you guys use mocking? 19:45
tadzik yes
masak oops, sorry. 9 characters wide. :)
Moukeddar_: I used it today at work.
Moukeddar_ pretty useful, but all the web is teaching you how to use existing libs , what if you wanted to make your own ? 19:46
masak Moukeddar_: I didn't use a lib. I just wrote the code I needed.
moritz Moukeddar_: www.youtube.com/watch?v=aAb7hSCtvGw
Moukeddar_ i as a try, i created a FakeRepository which implemented the IRepository , i guess that's the principle , right? 19:47
masak aye, sounds like a good start. 19:48
Moukeddar_ moritz, kisses and hugs to you
lue hello zebras o/
Moukeddar_ and the FakeRepository would return specific items/values i hard-coded
moritz Moukeddar_: that's a bit... over-enthusiastic
Moukeddar_ it's completely normal 19:49
moritz depends on the culture
Moukeddar_ i guess
masak lue: hello little panda 19:50
tadzik lue: o/ 19:51
masak yes, we don't have a kissbot ;)
Moukeddar_ you should have one
masak I'm not so sure...
we're pretty radical with the hugs already, compared to other channels. 19:52
tadzik i prefer hugs, especially when it comes to the male population
moritz same here
Moukeddar_ homophobic?
moritz a bit, yes
masak well, it's mostly a cultural thing.
Moukeddar_ lol 19:53
tadzik no, but heterosexual. I don't mind anyone doing anything, I'm speaking for myself
Moukeddar_ there's nothing wrong with hugs and kisses
tadzik I didn't say there is
moritz I don't mind either as long as no man tries to kiss me
masak "to kiss someone" is quite a wide phenomenon in English. could be anything from a peck to making out. 19:54
Moukeddar_ i kiss you = i love/like/respect you
masak or I'm the godfather.
lue masak: for some reason I thought your June 15 post would be about &chomp :) 19:55
Moukeddar_ hehe , you might
if you were they'd kiss your forehead
masak lue: oh! I didn't make the connection, even :P
wolverian I've been totally out of the loop when it comes to (#)perl6 for six months or so. anyone want to summarize what's happened? :>
tadzik ho ho ho : 19:56
:)
the new object model is almost there
the new module manager came around
masak wolverian! \o/
wolverian nom nom 19:58
sorear as opposed to the Spanish-speaking world, where "to kiss" doesn't necessarily have any romantic overtones 20:00
wolverian: the toy Perl 6 compiler I've been working on is starting to make waves 20:01
moritz niecza: say '~' x 10
p6eval niecza v6-167-g6cff873: OUTPUT«~~~~~~~~~~␤»
moritz ~\o/~
masak niecza++ 20:02
wolverian I haven't thought of niecza as a toy :) 20:02
colomon rakudo: say prime ... 10
p6eval rakudo 248244: ( no output )
colomon yeah, that. where's the error? 20:03
niecza: say prime ... 10
p6eval niecza v6-167-g6cff873: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'prime' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/niecza line 185 (MAIN P6.comp_unit @ 30) ␤ at
../home/p6eval/niecza/sr…
sorear ( no output ) usually means segfault
colomon sorear: it's not segfaulting locally, rakudo just silently dies 20:04
colomon and of course, that's totally not something that should make it segfault 20:04
sorear Why does p6eval use a temporary file for output, moritz? 20:07
moritz sorear: because that seemed like the easiest way back then when I implemented it 20:09
sorear: no SIGPIPE, no deadlocks
moritz is pretty clueless about IPC
wolverian huh. nom passes tests. 20:20
moritz yes, a few of them 20:21
wolverian right, I was running just "make test" 20:27
lichtkind wolverian: cool to see you again
wolverian thanks!
masak wolverian: yeah, nice to have you back. hope things are good with you, too. 20:28
tadzik what, make test passes something on nom? 20:29
wolverian my local nom branch was accidentally tracking master. :) 20:30
masak that's cheating :) 20:31
tadzik :) 20:31
wolverian masak: nice to be back. I have a full-time perl job now.
masak wolverian: congratulations! hope it's satisfying, too. 20:32
wolverian it has been. 20:33
real nom passes some tests, yes. not all. :) 20:40
sorear wanders back 22:36
wolverian: not a toy eh? :D
masak blog post! strangelyconsistent.org/blog/june-1...ubroutines 23:00
masak sleeps
'night, #perl6
Krunch perl6: say (2, 3, 1)>>.&sleep 23:16
p6eval pugs: OUTPUT«<Error><Error><Error>␤»
..niecza v6-167-g6cff873: OUTPUT«===SORRY!===␤␤Undeclared routine:␤ 'sleep' used at line 1␤␤Unhandled exception: Check failed␤␤ at /home/p6eval/niecza/boot/lib/CORE.setting line 469 (CORE die @ 2) ␤ at /home/p6eval/niecza/src/niecza line 185 (MAIN P6.comp_unit @ 30) ␤ at
../home/p6eval/niecza/sr…
..rakudo 248244: OUTPUT«231␤»
TimToady given that no guarantees are made about threading hyperops, the best you can say is that it'll sleep from 3 to 6 seconds 23:24
and given that hyper specifically declares you don't care about side effect interactions, you won't get a better promise than that from Perl 6 23:26
hyper *does* guarantee to return the results in the original order though 23:27
Krunch i wasn't really hoping for more :)
TimToady so rakudo is correct there
the other failures were amusing :)
Krunch in p5 i ended up with perl -ne'fork&&sleep$_,print,last' 23:28
this is from dis.4chan.org/read/prog/1295544154 for people who didn't follow
sorear the niecza error is because somebody put token prefix:sleep { <sym> <O(%named_unary) } in the parser :) 23:29
sorear so... you want .&prefix:<sleep> 23:29
Krunch ah, thanks 23:30
TimToady perl6: say sleep«(2,3,1)
p6eval rakudo 248244: OUTPUT«===SORRY!===␤Confused at line 22, near "say sleep\x{ab}"␤»
..niecza v6-167-g6cff873: OUTPUT«Unhandled exception: Asynchronous programming NYI␤ at /home/p6eval/niecza/lib/CORE.setting line 570 (CORE die @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1631 (CORE prefix:<sleep> @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1407 (CORE hyperunary @
..56) ␤ at /home…
..pugs: OUTPUT«decodeUTF8': bad data: '\171'␤*** No such subroutine: "&sleep\194\171"␤ at /tmp/rDvwrLkrAz line 1, column 5 - line 2, column 1␤»
TimToady also amusing :) 23:31
perl6: say sleep<<(2,3,1)
p6eval rakudo 248244: OUTPUT«===SORRY!===␤Confused at line 22, near "say sleep<"␤»
..niecza v6-167-g6cff873: OUTPUT«Unhandled exception: Asynchronous programming NYI␤ at /home/p6eval/niecza/lib/CORE.setting line 570 (CORE die @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1631 (CORE prefix:<sleep> @ 2) ␤ at /home/p6eval/niecza/lib/CORE.setting line 1407 (CORE hyperunary @
..56) ␤ at /home…
..pugs: OUTPUT«*** No such subroutine: "&sleep<<"␤ at /tmp/Yor66GwhT2 line 1, column 5 - line 2, column 1␤»
sorear oops 23:32
TimToady pretty nice traceback though 23:33
would be interesting to see a Haskell backend for niecza someday... 23:35
sorear why? 23:35
TimToady we could have an up-to-date(r) pugs 23:36
and Haskell will be glad to tell us exactly why it's impossible :) 23:37
lichtkind TimToady: thanks for reacting and dont worry johan cleans up the latex mess after you :) 23:42
sorear is rewriting add_categorical to allow for is tigther 23:43
lichtkind cheers sorear 23:44
daniel-s about modules and packages 23:53
what I get now is that there is a definite hierarchy
it goes packages -> modules -> class
where the lower down you go, the more functionality you have, but it covers a narrower part of the code 23:54
...well, nobody has corrected me, so I must be correct, :) 23:55