»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend! Set by moritz on 22 December 2015. |
|||
Xliff | Is self defined by the time method new() is executed? | 00:02 | |
Durrr... prolly not. | 00:04 | ||
00:06
jjido joined
00:07
Zoffix left
|
|||
timotimo | nope, only if you call .new on an instance | 00:08 | |
like "Foobar".new | |||
then self will obviously be "Foobar" | 00:09 | ||
00:10
sortiz joined,
[Sno] left,
sno joined
00:19
huggable joined
00:20
cdg joined
00:22
sno left,
[Sno] joined
00:23
kanishka left
00:26
jjido left
|
|||
timotimo | oh no, what's happening to hack now | 00:31 | |
00:32
AlexDaniel left
|
|||
timotimo | oh, it collected itself again | 00:32 | |
00:37
wamba left
00:45
BenGoldberg joined
00:47
Ben_Goldberg joined
00:51
BenGoldberg left
00:56
cbk left
01:12
rgrinberg joined
01:15
cdg left
01:21
kalkin- left,
kalkin-_ joined
01:42
Zoffix joined,
addison left
01:45
ilbot3 left
01:47
ilbot3 joined
02:12
Herby_ joined
|
|||
Herby_ | Evening, everyone! | 02:12 | |
o/ | |||
sortiz | \o Herby_ | ||
02:16
noganex_ joined
02:19
noganex left
02:25
[Sno] left,
sno joined
02:29
cyphase left
02:34
cyphase joined
|
|||
dalek | osystem: 22d5ba4 | (Zoffix Znet)++ | META.list: Add ווו to the ecosystem 666th module in the Perl 6 Ecosystem is properly Evil! github.com/zoffixznet/perl6-666 |
02:34 | |
Zoffix chortles | 02:35 | ||
02:37
kanishka joined
|
|||
Zoffix | I also may have found issues with having unicode in module names. It was giving me "use of unitialized value" or something when I had `unit module ווו;` though I'm unsure if that was just clashing with the sub named ווו ¯\_(ツ)_/¯ | 02:38 | |
raydiak | .u ו | 02:40 | |
yoleaux | U+05D5 HEBREW LETTER VAV [Lo] (ו) | ||
02:40
skids joined
|
|||
raydiak | clever :) | 02:40 | |
02:42
cyphase left
02:46
cyphase joined
02:54
cyphase left
02:59
cyphase joined
03:01
cognominal joined
03:02
kurahaupo left
03:04
telex left
03:05
cooper_ is now known as cooper
03:06
telex joined
03:08
cyphase left
|
|||
Zoffix | :( "Cannot access '$_' through CALLER, because it is not declared as dynamic" | 03:08 | |
Is this feature new? This is on 2016.04 and I'm sure my Pretty::Topic worked before :/ | 03:09 | ||
03:09
ssotka left
03:12
Ben_Goldberg left
|
|||
Zoffix | m: package Foo { class Bar {} }; import Foo; Bar.new | 03:14 | |
camelia | rakudo-moar 9b579d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared name: Bar used at line 1. Did you mean 'Bag'?» | ||
Zoffix | m: module Foo { class Bar {} }; import Foo; Bar.new | ||
camelia | rakudo-moar 9b579d: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared name: Bar used at line 1. Did you mean 'Bag'?» | ||
Zoffix | *sigh* | ||
03:14
mohae left,
cyphase joined
03:16
kid51 left
|
|||
Zoffix | m: module Foo { sub term:<♥> { $CALLER::_ }; say ♥ for ^4; class Bar { method update { say ♥ for ^4}} }; import Foo; Foo::Bar.new.update | 03:16 | |
camelia | rakudo-moar 9b579d: OUTPUT«01230123» | ||
03:16
Timbus left,
mohae joined,
paraboli` joined,
Timbus joined
|
|||
Zoffix | Oh gee... another precompilation bug. | 03:16 | |
(╯°□°)╯︵ ┻━┻ | |||
03:17
kid51 joined
|
|||
Zoffix | And this is after downgrading to 2016.04 to avoid a different precomp bug ~_~ | 03:17 | |
Production ready my ass | 03:19 | ||
03:19
Zoffix left
03:20
khw left
03:22
Herby_ left
03:32
ssotka joined,
rgrinberg left
03:44
cyphase left
03:49
cyphase joined
04:10
paraboli` is now known as parabolize
04:18
huggable left
04:19
huggable joined
04:20
Xliff_ joined
|
|||
Util | Memory fails me... Do we have an `if defined` control structure? | 04:23 | |
I want to collapse this nested block: | |||
given $foo<bar><baz> -> $quux { if $quux.defined { ... } } | |||
into this single block: | |||
ifdefined $foo<bar><baz> -> $quux { ... } | |||
with some control statement or keyword meaning "ifdefined". | |||
konobi | Util: damian's talk had an example | 04:24 | |
done as an infix operator | |||
04:25
sftp joined
|
|||
Util | konobi: Thanks, but could you be more specific? Damian gave 6 talks. | 04:25 | |
( 3 paid classes , a keynote, and 2 secret talks where someone else gave the first half, I thing) | |||
s/thing/think/ | |||
konobi | on the backs of giants | ||
Util | Ah, the keynote! I was there, but distracted. I will review it in the morning. Thanks! | 04:26 | |
TimToady | Util: that's with/orwith/else | 04:27 | |
tests for defined and also topicalizes | 04:28 | ||
TimToady goes to be himownself... | |||
Util | TimToady: I see it now in [S04] `=head2 The C<with> and C<without> statements` and Roast/S04-statements/with.t . | 04:29 | |
So much to keep up with :) Thanks! | |||
04:32
kid51 left
04:43
kanishka left
04:57
Cabanossi left
|
|||
cognominal | m: my $a = 1; say $a.^roles | 04:57 | |
camelia | rakudo-moar 9b579d: OUTPUT«((Real) (Numeric))» | ||
cognominal | m: my $a = 1 but False; say $a.^roles | ||
camelia | rakudo-moar 9b579d: OUTPUT«((<anon|74632384>) (Real) (Numeric))» | ||
cognominal | m: my $a = 1.1; say $a.^roles | 04:58 | |
camelia | rakudo-moar 9b579d: OUTPUT«Cannot unbox a type object in block <unit> at <tmp> line 1» | ||
cognominal | m: my Int $a = 1 but False; say $a.^roles | 04:59 | |
camelia | rakudo-moar 9b579d: OUTPUT«((<anon|78530416>) (Real) (Numeric))» | ||
04:59
Cabanossi joined
|
|||
cognominal | m: my int $i = 1 but False; say ?$i | 05:02 | |
camelia | rakudo-moar 9b579d: OUTPUT«True» | ||
cognominal | should not be a warning that assigning to a native gives a value stripped from any rule ? | 05:04 | |
m: 1.1.^roles | 05:07 | ||
camelia | ( no output ) | ||
cognominal | m: say 1.1.^roles | ||
camelia | rakudo-moar 9b579d: OUTPUT«Cannot unbox a type object in block <unit> at <tmp> line 1» | ||
geekosaur | m: say Num.^roles | 05:09 | |
camelia | rakudo-moar 9b579d: OUTPUT«((Real) (Numeric))» | ||
geekosaur | m: say 1.1.WHAT | ||
camelia | rakudo-moar 9b579d: OUTPUT«(Rat)» | ||
geekosaur | m: say Rat.^roles | ||
camelia | rakudo-moar 9b579d: OUTPUT«Cannot unbox a type object in block <unit> at <tmp> line 1» | ||
sortiz | m: say $_.perl for 1.1.^roles; # Rational[Int,Int] fails .gist; | ||
camelia | rakudo-moar 9b579d: OUTPUT«Rational[Int,Int]RealNumeric» | ||
geekosaur | Rat has a rat in its roles... | ||
sortiz | geekosaur, nop, the problem is 'Rational[Int,Int].gist', see: | 05:12 | |
m: say Rational[Int,Int]; | |||
camelia | rakudo-moar 9b579d: OUTPUT«Cannot unbox a type object in block <unit> at <tmp> line 1» | ||
sortiz | .oO( Oh, a rat, ya. :-) ) |
05:15 | |
05:24
cyphase left
|
|||
Woodi | m: my @w = <a b c>; print "{@w.pick}\n" xx 3; | 05:26 | |
camelia | rakudo-moar 9b579d: OUTPUT«c a c» | ||
Woodi | how to get rid of spaces there ? | ||
05:29
cyphase joined
|
|||
sortiz | m: my @w = <a b c>; print join '', "{@w.pick}\n" xx 3; # xx produces a List. | 05:32 | |
camelia | rakudo-moar 9b579d: OUTPUT«aab» | ||
05:34
dupek joined
05:41
cpage_ left
|
|||
dupek | I would better learn Perl :D | 05:43 | |
than Perl6 | |||
Woodi | dupek: it's XXI century, learn many languages :) | 05:47 | |
sortiz learn Perl is always a good idea. | 05:48 | ||
05:48
skids left
|
|||
dupek | yeah, but writing my own framework in Perl6 is going so slow since I think I would change my job soon | 05:48 | |
brutal life :( | 05:49 | ||
cognominal | m: (1|2).WHAT | 05:50 | |
camelia | ( no output ) | ||
cognominal | m: say (1|2).WHAT | ||
camelia | rakudo-moar 9b579d: OUTPUT«(Junction)» | ||
Woodi | dupek: generally Perl6 isn't yet ready for "commercial" project... but for making a sketch of functionalities/design discovery it's very nice | 05:51 | |
dupek | Woodi, that's true | ||
Woodi | sortiz: thanx | ||
cognominal | in the REPL (1|2).WHAT crashes it | 05:52 | |
dupek | Woodi, I think people should focus on to create something similar to perl6 maven tutorial | ||
but it is okay | 05:53 | ||
=) | |||
Woodi | cognominal: cognominal don't crashes for me, 2016.05 | 05:56 | |
er, I mean *example* don't crash... :) | |||
Zoffix: so, basically, you hacked say twice ? :) so same story for: npm, Docker, buildroot, Vagrant, ... ;) | 06:01 | ||
sortiz | cognominal, seems new REPL needs a few explicit Mu in some signatures. | 06:06 | |
In particular input-incomplete and repl-print methods. | 06:07 | ||
cognominal | I guess I fit the TimToady's characterization of testers as nasty people. :( but he used some euphemism instead | ||
Woodi, I use the most recent git version. | 06:08 | ||
I think I am more like people who disassemble clocks with no clue how to put it them back together. | 06:09 | ||
But this gives some appreciation for the work of people who designed the clock in the firt place. | 06:10 | ||
Woodi | cognominal: I imagine testers just operate on hacking instinct drug :) just like eg. jurnalists | 06:11 | |
cognominal | > (1|2).WHAT | ||
===SORRY!=== | |||
Type check failed in binding $value; expected Any but got Junction (Junction) | |||
06:14
CIAvash joined
06:19
cpage_ joined
|
|||
sortiz | cognominal, I just made a PR: github.com/rakudo/rakudo/pull/802 | 06:21 | |
cognominal | sorry, I am too busy finishing slides | 06:25 | |
06:48
wamba joined
06:53
domidumont joined,
domidumont left
06:54
domidumont joined
06:58
domidumont left
06:59
domidumont joined
07:15
darutoko joined
07:16
dupek left
|
|||
cognominal | class A { has $.a }; A.^attributes | 07:26 | |
m: class A { has $.a }; A.^attributes | 07:27 | ||
camelia | ( no output ) | ||
cognominal | m: class A { has $.a }; say A.^attributes | ||
camelia | rakudo-moar a8aa18: OUTPUT«(Mu $!a)» | ||
cognominal | m: my $a; say $a.WHAT | ||
camelia | rakudo-moar a8aa18: OUTPUT«(Any)» | ||
cognominal | m: class A { has $.a }; say A.new.WHAT | 07:28 | |
camelia | rakudo-moar a8aa18: OUTPUT«(A)» | ||
psch | m: class A { has $.a }; my $a = A.new(a => 1&2); say $a.perl | ||
camelia | rakudo-moar a8aa18: OUTPUT«A.new(a => all(1, 2))» | ||
cognominal | m: class A { has $.a }; say A.new.a.WHAT | ||
camelia | rakudo-moar a8aa18: OUTPUT«(Any)» | ||
cognominal | Mu because it can contain Junction | 07:29 | |
psch | right. i don't think having my example generate a superposition of two As, one with :1a, one with :2a, would what most people expect | 07:30 | |
+be | |||
dalek | line-Perl5: 313aa77 | wamba++ | lib/Inline/Perl5.pm6: Bug #65 solution I think, the change solve bug #65. Test argv.t is success. Switches for Perl 5 one-liner must be written behind '--'. |
07:31 | |
line-Perl5: 9499d69 | niner++ | lib/Inline/Perl5.pm6: Merge pull request #66 from wambash/patch-1 Bug #65 solution Many thanks to wambash++! This would have been so hard to fix when you don't know that there is in fact an easy fix. |
|||
07:31
ufobat left
07:37
rindolf joined
07:52
lizmat left
07:53
fhorck left
07:54
lizmat joined,
hankache joined
|
|||
hankache | hola #perl6 | 07:54 | |
07:56
wtw joined
07:57
kerframil joined
08:02
AlexDaniel joined
|
|||
sortiz | hola hankache | 08:09 | |
hankache | hi sortiz | 08:10 | |
cognominal | salut hankache | 08:13 | |
hankache | bonjour cognominal | ||
08:16
domidumont left
08:18
huggable left
08:19
huggable joined
08:27
firstdayonthejob joined,
cyphase left
08:33
cyphase joined
|
|||
timotimo | hack.p6c.org/~timo/ - i meant to stop fuzzing when the light gray shaded area hits the dark gray shaded area's upper bound ... and then it goes and does *that* | 08:34 | |
psch | heh | 08:35 | |
08:35
wtw left
08:36
wtw joined
|
|||
dalek | Iish: 275f496 | (Salvador Ortiz)++ | / (2 files): Oracle: connect now accepts named argument 'user' To be consistent with other drivers and documentation. |
08:36 | |
Iish: 945f572 | (Salvador Ortiz)++ | / (2 files): For panda's/zef's users, now v0.5.9 |
|||
hankache | m: sub squared3 ($num) returns Int { return (say 'blablabla').WHAT.say; }; say "7 to squared is equal to " ~ squared3(7); | 08:45 | |
camelia | rakudo-moar 6afd0b: OUTPUT«blablabla(Bool)7 to squared is equal to True» | ||
08:45
ssotka left
|
|||
hankache | hmmmm. Shouldn't this fail ^^ | 08:45 | |
08:46
brrt joined,
cyphase left
|
|||
sortiz | m: say so Bool ~~ Int; | 08:46 | |
camelia | rakudo-moar 6afd0b: OUTPUT«True» | ||
timotimo | yeah, say returns True | 08:47 | |
psch | m: my Int $x = True | 08:48 | |
camelia | ( no output ) | ||
brrt | do we still have LoL in perl6 | ||
and the Cat type | |||
hankache | say returns true but i expected the return trait to complain about bool | ||
psch | brrt: Cat never was implemented, but LoL is just gone i think | ||
hankache: but Bool isa Int | |||
brrt | that is too bad | 08:49 | |
sortiz | And in general any simple enum isa Int | ||
hankache | ok | ||
brrt | no role LolCat for me | ||
08:50
cyphase joined
|
|||
hankache | m: sub squared ($num) returns Int:D { }; say squared(2); | 08:50 | |
camelia | rakudo-moar 6afd0b: OUTPUT«Nil» | ||
hankache | shouldn't the :D complain in this case ^^ ? | 08:51 | |
psch | m: my Int:D $x = Nil | ||
camelia | ( no output ) | ||
psch | m: my Int:D $x = Nil; say $x.WHAT | ||
camelia | rakudo-moar 6afd0b: OUTPUT«(Int:D)» | ||
psch | ...that's kind of amazing | 08:52 | |
sortiz | hankache, Nil and Failure are exempt for returns constraints. | ||
psch | m: my Int:D $x = Nil; say $x.defined | ||
camelia | rakudo-moar 6afd0b: OUTPUT«False» | ||
hankache | sortiz but then what's the purpose of :D? | 08:53 | |
psch | m: sub squared ($num) returns Int:D { Int }; say squared(2); | ||
camelia | rakudo-moar 6afd0b: OUTPUT«Type check failed for return value; expected Int but got Int in block <unit> at <tmp> line 1» | ||
08:54
Xliff_ left
|
|||
sortiz | m: sub squared ($num) returns Int:D { Int }; say squared(2); | 08:54 | |
camelia | rakudo-moar 6afd0b: OUTPUT«Type check failed for return value; expected Int but got Int in block <unit> at <tmp> line 1» | ||
timotimo | i think our variables with :D just straight up don't work properly with regards to default values | ||
as in, no default value specified | |||
hankache | and this is a LTA: "expected Int but got Int" | ||
08:55
cyphase left
|
|||
sortiz | Yep, indeed LTA, but Nil and Failure are special cased. | 08:55 | |
hankache | Well i was trying to see how to prevent a sub from returning nothing | 08:57 | |
:D doesn't help since it doesn't catch Nil | |||
any alternatives? | |||
08:59
FROGGS joined,
xtreak joined
09:04
hankache left
|
|||
timotimo | you don't "catch" nil when assigning to variables | 09:07 | |
assigning Nil will reset the default value | |||
if you don't have a sensible default value, you'll be in trouble | |||
09:08
lichtkind_ joined
|
|||
psch | fwiw, with implicit return i find you have to actually go out of your way to accidentally return Nil | 09:09 | |
timotimo | yeah | ||
you need to find something that returns Nil for you | |||
or --> Nil :) | |||
09:10
lichtkind left
|
|||
psch | right, but the latter is pretty explicit :) | 09:10 | |
timotimo | it's still "return at the end of the last block", though :) | ||
09:11
hankache joined
|
|||
hankache | thanks | 09:11 | |
09:13
[Sno] joined,
sno left
|
|||
hankache | m: sub squared ($num) returns Int:D { my Int $x = $num; $x = Nil; return $x}; say squared(2); | 09:15 | |
camelia | rakudo-moar 6afd0b: OUTPUT«Type check failed for return value; expected Int but got Int in sub squared at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
hankache | so this is an example | ||
09:15
CIAvash left
|
|||
psch | yeah, you're purposefully reseting $x to Int | 09:16 | |
09:16
spider-mario joined
|
|||
hankache | yes | 09:17 | |
psch | m: sub squared ($num) returns Int:D { my Int $x is default(-1) = $num; $x = Nil; return $x}; say squared(2); | ||
camelia | rakudo-moar 6afd0b: OUTPUT«-1» | ||
psch | is one solution | ||
i suppose | |||
timotimo | and the output doesn't mention it expected Int:D | ||
sortiz | m: sub squared ($num) { POST { die unless .DEFINITE; True }; 4 }; say squared(2); # Check for :D | ||
camelia | rakudo-moar 6afd0b: OUTPUT«4» | ||
sortiz | m: sub squared ($num) { POST { die unless .DEFINITE; True }; Int }; say squared(2); # Check for :D | ||
camelia | rakudo-moar 6afd0b: OUTPUT«Died in sub squared at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
psch .oO( CORE::.keys.grep(/^'&'/)>>.candidates>>.^add_phaser('POST', { die unless .DEFINITE; True }) ) | 09:19 | ||
09:19
CIAvash joined
|
|||
psch | i mean, i don't know that dealing with the absence of a value should always be completely automatic | 09:21 | |
hankache | thanks | ||
sortiz | yw | 09:22 | |
psch | so, assuming the "= Nil" is a placeholder for a routine that could return Nil, i'd probably do "//= that-sub()" vOv | ||
instead of phasers or defaults | |||
ah, no, that's wronng | |||
"= that-sub // $fallback" | 09:23 | ||
09:23
xtreak left
|
|||
psch | m: my $x = "foo"; $x //[R=] Nil; say $x # heh | 09:28 | |
camelia | rakudo-moar 6afd0b: OUTPUT«foo» | ||
psch | m: my $x = "foo"; $x //[R=] 5; say $x | ||
camelia | rakudo-moar 6afd0b: OUTPUT«foo» | ||
psch | aww | 09:29 | |
oh, bad bracket b^Hplacement | |||
m: my $x = "foo"; $x [//R]= 5; say $x | |||
camelia | rakudo-moar 6afd0b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unable to parse expression in bracketed infix; couldn't find final ']' at <tmp>:1------> 3my $x = "foo"; $x [//7⏏5R]= 5; say $x» | ||
psch | m: my $x = "foo"; $x [R//]= 5; say $x | ||
camelia | rakudo-moar 6afd0b: OUTPUT«5» | ||
psch | that i like | ||
m: my $x = "foo"; $x [R//]= Nil; say $x | |||
camelia | rakudo-moar 6afd0b: OUTPUT«foo» | 09:30 | |
hankache | so :D and :I are called smilies, but do they have a formal name? | 09:31 | |
psch | i think 'type smilies' is the formal name | 09:32 | |
hankache | lol ok | ||
psch | although could be made for 'definedness constraint colonpair' or so as more formal | ||
+a case | |||
09:33
TEttinger left
|
|||
hankache | type constraint | 09:33 | |
dalek | Iish: 3195890 | (Salvador Ortiz)++ | README.pod: Add Oracle to README.pod |
||
psch | right, yeah, they're a constraint on the type so that's probably it | 09:34 | |
sortiz | rest time, #perl6 o/ | ||
hankache | ciao sortiz | 09:35 | |
dalek | c: f3d933e | (Jan-Olof Hendig)++ | doc/Type/Map.pod: Added docs for Map.Bool |
||
09:36
RabidGravy joined
09:37
sortiz left
09:42
domidumont joined
|
|||
DrForr_ | Everybody made it back okay? | 09:47 | |
09:50
brrt left
09:54
spider-mario left,
spider-mario joined,
gnull` left,
gnull` joined
09:55
jjido joined
09:57
domidumont left
09:58
ranguard left
10:04
ranguard joined
|
|||
timotimo | en.wikipedia.org/wiki/Fortune%27s_algorithm - someone want to implement this in p6? :3 | 10:11 | |
10:11
firstdayonthejob left
|
|||
timotimo is reading through www-cs-students.stanford.edu/~amitp...eneration/ | 10:12 | ||
10:14
rgrinberg joined
|
|||
TimToady sitting at gate at MCO | 10:16 | ||
llfourn | m: my &code = *.split("\n"); code("foo\nbar").^name.say # :/ | 10:26 | |
camelia | rakudo-moar 6afd0b: OUTPUT«BOOTArray» | ||
10:26
pecastro joined
10:27
jjido left,
Ulti joined,
hankache left
|
|||
timotimo | m: (*.split("\n"))("foo\nbar").WHAT.say | 10:33 | |
camelia | rakudo-moar 6afd0b: OUTPUT«Cannot find method 'say': no method cache and no .^find_method in block <unit> at <tmp> line 1» | ||
timotimo | m: (*.split("\n"))("foo\nbar").WHAT.^name.say | ||
camelia | rakudo-moar 6afd0b: OUTPUT«BOOTArray» | ||
timotimo | that's strange, yeah | ||
psch | # since most of data structures are built already, there is little | ||
# point in making this a lazy iterator here | |||
src/core/Str.pm:2194 | 10:34 | ||
and $matches is the result of nqp::split | |||
10:34
jjido joined
|
|||
psch | curious that the whatever curry brings that out though | 10:34 | |
soo maybe it's not exactly the right spot to look :| | 10:35 | ||
timotimo | oh, it might be skipping a hllize | 10:36 | |
psch | yeah, but why would that only happen if it's bound to a whatever? | 10:37 | |
llfourn | m: { .split("\n") }.("a\nb").^name.say | ||
camelia | rakudo-moar 6afd0b: OUTPUT«List» | ||
llfourn | m: (*.split("\n") ).("a\nb").^name.say | ||
camelia | rakudo-moar 6afd0b: OUTPUT«BOOTArray» | ||
timotimo | well, generating whatevercode code is different from building just any regular old block | 10:38 | |
10:39
kalkin-_ is now known as kalkin-
|
|||
kalkin- | Hmm $=data<Foo> is not implemented, any work around for that? | 10:39 | |
besides just iteration through $=pod and picking the things one need | 10:40 | ||
Or can i declare somehow my own pod variables? For example $=foo? | 10:42 | ||
timotimo | it you don't declare them, they just pick up whatever =foo you have in your pod | ||
at least i think so | |||
kalkin- | If I use anthing besides $=pod after the $= sigil i get Pod variable $=foo not yet implemented. Sorry | 10:44 | |
llfourn | I think there is $=finish or something as well? | 10:45 | |
timotimo | oh | ||
10:46
rgrinberg left,
cognominal left
|
|||
kalkin- | i.c | 10:48 | |
But i can't declare arbitrary data in POD, and later access that in code? (Besides iterating through =pod and picking the things I need) | 10:49 | ||
llfourn | I'm not 100% but I think that's what ppl use $=finish for | 10:50 | |
there maybe a better NYI way | |||
timotimo | yeah, NYI is the problem here | ||
lots of things are speculated in the speculations | |||
10:50
dupek joined
|
|||
kalkin- | Hmm say $=finish just returns (Mu) for me | 10:51 | |
how can i use it? | |||
timotimo | i.imgur.com/flkNNWv.png | 10:52 | |
psch | m: $=finish.perl.say =finishbar baz=end finish | ||
camelia | rakudo-moar 6afd0b: OUTPUT«"bar baz\n=end finish\n"» | ||
timotimo | there is no =end finish | ||
llfourn | timotimo++ # image examples | ||
psch | yeah, i see that now :S | ||
timotimo | :D | ||
finish is already the end of everything! | |||
psch | it's the end of ambient blocks at least :P | ||
(that's an almost-quote, too) | 10:53 | ||
10:53
tbrowder left,
_mg_ joined
|
|||
psch | C<=finish> No ambient blocks after this point | 10:53 | |
kalkin- | I see. Thank you. | 10:54 | |
I will experiment if I can reuse it | 10:55 | ||
timotimo | for better re-use i should have put more interesting data in than "what even is this\n" | 10:58 | |
hahainternet | timotimo: your font is weird :) | 10:59 | |
kalkin- | it's to tiny :) | ||
timotimo | monaco regular 10 | ||
hahainternet | the kerning is so tight, and there's no antialiasing :o | ||
timotimo | it's big to me | ||
kalkin- | no tiny is wrong word, it's narrow :) | ||
hahainternet | it looks ok in the non bold, although the bar of the t is way low | 11:00 | |
kalkin- | ic | ||
hahainternet | and it looks slightly disjointed to me | ||
timotimo | *shrug* | ||
hahainternet | i.imgur.com/oxiTDm6.png | 11:01 | |
dejavu sans mono for me i think, in 8 or 9 | |||
timotimo | that's uncomfortable to look at on my monitor | ||
11:01
_mg_ left
|
|||
hahainternet | interesting | 11:02 | |
i find it quite nice | |||
timotimo | maybe it's the wrong subpixel alignment | ||
hahainternet | i think it might be hinted, and it'll be RGBA | ||
RGB* | |||
kalkin- recommends Fira Mono | |||
hahainternet | but maybe you use a pentile monitor or similar | ||
i'm on an IPS with standard order | |||
timotimo | i have an IPS in front of me, too | 11:04 | |
hahainternet | odd :o | 11:05 | |
the thing that matters to me most is the clear distinction between characters and the consistent letter height | |||
11:05
jjido left
|
|||
kalkin- | So i ended up just doing for $=pod -> $f { filter things i need }. This is fine with me. I just want p6pod doesn't show the word data from =begin data | 11:10 | |
I want to assign it an alternative title, is it possible? | |||
searching through S26 doesn't yield anything intersting | |||
11:11
dupek left
11:15
jjido joined
11:44
_mg_ joined
11:51
kid51 joined
11:52
tbrowder joined
11:56
kerframil left
|
|||
dalek | c: 50b13a5 | (Jan-Olof Hendig)++ | doc/Type/Map.pod: Added doc for methods Int and Numeric in Map |
11:58 | |
kalkin- | I can't markup in POD that something needs to be centered? | 12:02 | |
12:07
jjido left
|
|||
tbrowder | docs: please consider PR: github.com/perl6/doc/pull/635 | 12:08 | |
moritz | kalkin-: POD is semantic markup, not styling markup | 12:09 | |
12:12
jjido joined
12:15
kaare__ left
12:18
huggable left
|
|||
moritz | tbrowder: I've added two comments on the pull request | 12:19 | |
12:19
huggable joined
|
|||
tbrowder | moritz: I've replied... | 12:33 | |
12:34
domidumont joined
|
|||
grondilu | m: my @a = [1, 2]; my @b = 1, 2; dd @a; dd @b; | 12:35 | |
camelia | rakudo-moar 6afd0b: OUTPUT«Array @a = [1, 2]Array @b = [1, 2]» | ||
grondilu | ^there's no difference at all, is there? | ||
jnthn | grondilu: Nope, thsoe two are the same (due to the single argument rule) | 12:37 | |
moritz | tbrowder: I think the docs should say thing about whitespace not allowed before the parens | 12:42 | |
tbrowder: though not the way you approached it | 12:43 | ||
tbrowder | okay. I'll work on another version--thanks! | ||
12:44
Tushar joined
|
|||
moritz | and I feel really uncomfortable rejecting the first version | 12:44 | |
Tushar | Hello, how can I specify type of array which has been passed to sub as argument? I tried sub testFunc (Int @a) { ... }, but I am getting error while running the code. | 12:46 | |
The error I am getting is: Type check failed in binding @a1; expected Positional[Int] but got Array ($[1, 2, 3, 4, 5]) in sub multiply at arrayMultiplication.p6 line 7 in block <unit> at arrayMultiplication.p6 line 11 | 12:47 | ||
CIAvash | m: sub f (Int @a) { say @a }; f(Array[Int].new: 1,2,3) | 12:50 | |
camelia | rakudo-moar 6afd0b: OUTPUT«[1 2 3]» | ||
12:52
TakinOver left
|
|||
tbrowder | moritz: please don't be uncomfortable! I appreciate the critique. | 12:53 | |
moritz | Tushar: if you say (Int @a), it restricts to an Array[Int], which means you also have to pass in an Array[Int], not just an array that happens to contain integers | 12:59 | |
Tushar: there is no declarative sytanx for "array that happens to contain only integers" | |||
Tushar | mortiz: that make sense. Do I have to check each element of array separately in order to check whether all of them are integer or not? | 13:04 | |
13:06
kurahaupo joined
13:07
jjido left,
dupek joined,
dupek left
|
|||
moritz | m: sub f(@x where { all(@x) ~~ Int }) { say @x.perl }; my @a = 1..3; my @b = 'foo'; f @a; f @b; # for Tushar | 13:08 | |
camelia | rakudo-moar 6afd0b: OUTPUT«[1, 2, 3]Constraint type check failed for parameter '@x' in sub f at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
13:08
kurahaupo_ joined
|
|||
moritz | m: sub f(@x where { all(@x) ~~ Int or fail "Not all elements are integers." }) { say @x.perl }; my @a = 1..3; my @b = 'foo'; f @a; f @b; # for Tushar | 13:09 | |
camelia | rakudo-moar 6afd0b: OUTPUT«[1, 2, 3]Not all elements are integers. in any at /home/camelia/rakudo-m-inst-2/share/perl6/runtime/CORE.setting.moarvm line 1 in sub f at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
13:10
kurahaupo left
|
|||
CIAvash | m: sub f (@a where { .all ~~ Int }) { say @a }; f [1,2,3] | 13:10 | |
camelia | rakudo-moar 6afd0b: OUTPUT«[1 2 3]» | ||
13:11
iH2O joined,
jjido joined
|
|||
Tushar | mortiz: thanks for your help. What if two arrays or multiple arrays are passed? | 13:11 | |
moritz | Tushar: what about it? | 13:13 | |
13:13
kurahaupo joined
13:14
kurahaupo` joined
|
|||
gfldex | m: subset ArrayContainingInts of List where { .all ~~ Int }; sub f(ArrayContainingInts $a, ArrayContainingInts $b) { say 'fein' }; f([1,2,3],[4,5,6]); | 13:14 | |
camelia | rakudo-moar 6afd0b: OUTPUT«fein» | ||
Tushar | mortiz: if we pass two arrays or multiple arrays as arguments can we check the type check in once or do we have to check all them separately? | 13:15 | |
13:15
kurahaupo_ left
|
|||
psch | m: sub f(@ [@a where { .all ~~ Int }, @b where { .all ~~ Int }]) { }; f [[1,2,3],[4,5,6]] | 13:16 | |
camelia | ( no output ) | ||
gfldex | m: sub f(*@all [ @a, @b]) { say 'fein' }; f((1,2,3),(4,5,6)); | 13:17 | |
camelia | rakudo-moar 6afd0b: OUTPUT«cannot stringify this in sub f at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
psch | m: sub f(+@all [ @a, @b]) { say 'fein' }; f((1,2,3),(4,5,6)); | 13:18 | |
camelia | rakudo-moar 6afd0b: OUTPUT«fein» | ||
psch | m: sub f(**@all [ @a, @b]) { say 'fein' }; f((1,2,3),(4,5,6)); | ||
camelia | rakudo-moar 6afd0b: OUTPUT«fein» | ||
gfldex | m: sub f(+@all [ @a, @b] where { .all.all ~~ Int }) { say 'fein' }; f((1,2,3),(4,5,6)); | ||
camelia | rakudo-moar 6afd0b: OUTPUT«fein» | ||
13:18
kurahaupo left
|
|||
gfldex | m: sub f(+@all [ @a, @b] where { .all.all ~~ Int }) { say 'fein' }; f((1,2,'drei'),(4,5,6)); | 13:18 | |
camelia | rakudo-moar 6afd0b: OUTPUT«Constraint type check failed for parameter '@all' in sub f at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
DrForr_ | Hrm. todo() seems to be partially implemented - It prints the 'TODO $message' but doesn't skip the next test as advertised. | 13:19 | |
moritz | Tushar: if you want the result to be a single array, you can declare it to be slurpy, and do just one check | ||
DrForr_ | (sorry, Test::todo() - A bit ambiguous there.) | ||
psch | DrForr_: todo doesn't skip, skip skips | 13:20 | |
DrForr_: todo is really just for TAP parsers as i understand it | |||
13:20
zakharyas joined
|
|||
moritz | m: sub f(*@x where { all(@x) ~~ Int }) { say @x }; my @a = 1, 2; my @b = 3, 4; f @a, @b; | 13:20 | |
camelia | rakudo-moar 6afd0b: OUTPUT«[1 2 3 4]» | ||
moritz | psch: that's my understanding as well | ||
DrForr_ | Then the documentation needs fixing. /me looks for his repo. | ||
dogbert17 | o/ #perl6 | ||
moritz | todo() just says "look, I know the next test is gonna fail, don't worry about it" | 13:21 | |
\o dogbert17 | |||
dogbert17 | hello moritz | ||
grrr, there is still some kind of precompilation problem with the docs | |||
today I have made two commits to Map.pod, the first is on thw web but the second is not | 13:22 | ||
DrForr_ | Ah, I didn't look closely enough at the example. My fault. | 13:23 | |
Tushar | mortiz: yes I can use slurpy. but then how can i seperate the slurpy array into original arrays because I want to do element wise multiplication. I hope this make sense. | ||
iH2O | "grrr" isnt that nick already in use? | 13:24 | |
gfldex | Tushar: please note that type checks happen at runtime. All you do is moving error messages around. That can be very useful ofc. | 13:25 | |
moritz | Tushar: well, if you want them separate, don't use slurpies | ||
Tushar: also, please look again at how my name is spelled :-) | |||
iH2O | grrroritz | 13:26 | |
:) | |||
dogbert17 | iH20: I wouldn't be surprised | ||
13:26
kurahaupo` left
|
|||
gfldex | Tushar: also there is likely an operator for what you want to do | 13:27 | |
Tushar | Sorry moritz. Thanks for your help. | ||
nine | ugexe: ping | ||
dogbert17 | I have tried to debug the precomp problem a bit, can anyone take a look at gist.github.com/dogbert17/7b3fc5bf...abc3f8bbd9 | 13:30 | |
13:32
jjido left
|
|||
dogbert17 | if I read the printout correctly it seems to figure out that the precomped file is too old ... | 13:32 | |
DrForr_ | Might there be a use-case for sub skip-subtest {} # Skips whatever subtests are inside? Useful if you want to report that you're not going to run test code just *yet*. | ||
dogbert17 | but when prcompiling it comes to the conclusion that it is not necessary to precompile and loads the old file instead | ||
or I have misunderstood just about everything | 13:33 | ||
DrForr_ | Specifically sub skip-subtest( &sub, $message ) { skip $message } | ||
El_Che | DrForr_: How was yapc::na? I heard you gave a talk | 13:36 | |
13:36
Tushar left
|
|||
DrForr_ | Three actually. | 13:36 | |
El_Che | busy bee | ||
grammars? | |||
DrForr_ | One keynote (well, 10 minutes of one), one regex and one web framework. | 13:37 | |
El_Che | I have watched a few talks on youtube, but yours wasn't there yet | ||
DrForr_ | They both were there last time I looked, let me check. | ||
El_Che | I have the url, so I'll look, no worries | 13:38 | |
13:38
keix joined
|
|||
DrForr_ | They're not in the 'Uploads' portion of the site, that apparently still only has things pre-2016... odd, that. | 13:39 | |
13:39
novavis joined
|
|||
DrForr_ | www.youtube.com/watch?v=W1iTkACkbcM and www.youtube.com/watch?v=KxnRc0hbuBI | 13:41 | |
El_Che | Did liz give a talk? | ||
DrForr_ | Not this time that I recall, though I could have just missed her in the schedule. | 13:44 | |
13:44
stevieb9 joined,
dogbert2 joined
13:45
TreyHarris joined,
john51_ joined,
Gruber joined,
maddingu1 joined,
_mg_ left
13:46
dogbert2 left,
d4l3k_ joined,
peteretep_ joined
13:47
clkao_ joined,
tbrowder_ joined,
PotatoGim_ joined,
Spot___ joined,
chansen__ joined,
avalenn_ joined,
pnu__ joined,
ggherdov_ joined
13:48
spidermario joined,
a3r0_ joined,
diakopte1 joined,
Some-body_ joined,
BinGOs_ joined,
ilbelkyr_ joined,
torbjorn_ joined,
integral_ joined,
integral_ left,
integral_ joined,
tharkun_ joined
13:49
Hor|zon joined,
_notbenh joined,
erdic_ joined
13:50
diakopte1 is now known as diakopter,
zakharyas left
13:51
tbrowder left,
ggherdov left,
Spot__ left,
clkao left,
peteretep left,
a3r0 left,
PotatoGim left,
torbjorn left,
Some-body_ is now known as DarthGandalf,
avalenn left,
john51 left,
spider-mario left,
dogbert17 left,
b2gills left,
dalek left,
maddingue left,
erdic left,
_notbenh is now known as notbenh,
tbrowder_ is now known as tbrowder,
nebg joined,
erdic_ is now known as erdic,
pnu__ is now known as pnu_,
peteretep_ is now known as peteretep,
gensym joined,
Spot___ is now known as Spot__
|
|||
lizmat | No, I haven't given a talk, but I do have a sore throat from answering questions to people in the Hallway track :-) | 13:51 | |
13:51
chansen__ is now known as chansen_
13:52
d4l3k_ is now known as dalek,
ChanServ sets mode: +v dalek,
retupmoca joined,
novavis left,
spidermario is now known as spider-mario,
b2gills joined
13:53
nchambers joined,
iH2O left,
clkao_ is now known as clkao,
hoelzro joined
13:54
PotatoGim_ is now known as PotatoGim
13:55
novavis joined
|
|||
DrForr_ | lizmat: Same here :/ And the dry air on the planes didn't help... | 13:56 | |
13:57
dogbert17 joined
13:59
ggherdov_ is now known as ggherdov
|
|||
nebg | can nowadays perl6 be used to do anything ? or it's still in a phase which additional development is needed... i mean can i do system programming of GUI programs ? | 14:00 | |
or web app ? | 14:01 | ||
hello camelia !! | |||
you are the butterfly right ? | |||
gfldex | nebg: there are still bugs and it's a tad slow, but beside that, there is no reason not to use it | 14:02 | |
nebg | gfldex, which are the bugs ? | ||
gfldex, ok so it has bindings for various widget toolkits like tk or wxwidgets or qt or gtk ? right ? | |||
dogbert17 believes that he's managed to identify the doc precomp problem, working on PR | 14:03 | ||
moritz | nebg: rt.perl.org/ has all the bugs | ||
gfldex | nebg: there are bindings to gtk, qt will be a tricky tho | 14:04 | |
14:07
bjz joined
14:08
gnull` left,
kurahaupo joined
14:09
Actualeyes joined
14:10
bjz_ left
14:13
woolfy left
|
|||
nebg | gfldex, why ? | 14:16 | |
so what perl6 can be used for now ? | 14:17 | ||
i mean which is the main application ? | 14:18 | ||
gfldex | nebg: see en.wikipedia.org/wiki/Name_mangling | ||
14:18
kaare__ joined,
lizmat left
14:19
kaare__ left
|
|||
DrForr_ | nebg: It's a programming language. You can use it for whatever you like. | 14:19 | |
nebg | DrForr_, ok | ||
but some programming language are more suited for some fields | 14:20 | ||
dalek | c/fix-for-issue-545: 780b2b3 | (Jan-Olof Hendig)++ | htmlify.p6: Fix for issue github.com/perl6/doc/issues/545 In order to speed up the doc generation the program precompiles pod files into the directory precompiled. The code in the sub extract-pod loads the precompiled files but if it detects that a pod file has been changed it calls the method precompile in CompUnit::PrecompilationRepository. The problem is that the precompile method checks if the file, that it is being asked to recompile, exists in the repo, and if it does it won't recompile it unless the named parameter :force is set to True. My suggested change is that we set :force => True when calling the precompile method. |
14:21 | |
14:22
novavis left,
kaare_ joined
|
|||
dogbert17 my first code PR - github.com/perl6/doc/pull/636 | 14:23 | ||
DrForr_ | nebg: That may be the case, but perl6 has been out in the wild for just over 6 months and doesn't have Apple or Google splattering its name everywhere. We've got web platforms, asynch and multicore processing, easy native library bindings, GUIs like Gtk, surely there's something that interests you. | 14:24 | |
nebg | ok thanks DrForr_ | ||
gfldex | nebg: if you would tell us why you asked those questions, we may be able to use that context to guess what you mean. | ||
nebg | !camelia | ||
is it a bot ? | |||
gfldex | m: say "I'm a bot!"; | 14:25 | |
camelia | rakudo-moar 6afd0b: OUTPUT«I'm a bot!» | ||
nebg | wow great ! | ||
14:25
Tushar joined,
Tushar left
14:30
kurahaupo_ joined
14:32
kurahaupo left
14:34
travis-ci joined
|
|||
travis-ci | Doc build passed. Jan-Olof Hendig 'Fix for issue github.com/perl6/doc/issues/545 | 14:34 | |
travis-ci.org/perl6/doc/builds/140222273 github.com/perl6/doc/commit/780b2b3d51d9 | 14:35 | ||
14:35
travis-ci left
|
|||
Util | timotimo: (in re: Fortune's_algorithm) You could translate Math::Geometry::Voronoi, which is in Perl 5, XS, and raw C language. | 14:39 | |
m: say "!tob a llits m'I".flip; | 14:44 | ||
camelia | rakudo-moar 6afd0b: OUTPUT«I'm still a bot!» | ||
14:46
pmurias joined
|
|||
nine | ugexe: Getting really, really close now: github.com/rakudo/rakudo/commit/21...38c3e26520 | 14:53 | |
ugexe: bootstrapping panda works with that, but installation of Inline::Perl5 fails because it cannot find its resources | 14:55 | ||
dalek | c/fix-for-issue-545: 627fa39 | (Jan-Olof Hendig)++ | htmlify.p6: Make change more canonical. zoffix++ |
14:59 | |
15:00
rindolf left
|
|||
ugexe | nine: Indeed, I added pretty much that same deprecation bit to zef's Distribution object and it has been working perfectly (including Inline::Perl5). The only other things I changed was A) passing in a relative IO path object for sources (so it would stringify to the relative path when written to the meta but grab the correct file when accessed via IO methods) and B) prefixing `resources/` to the keys of what | 15:05 | |
was being passed in to the %resources hash (but again as an IO object) | |||
nine: can you gist the dist file that gets written for you for Inline::Perl5? | 15:06 | ||
nine | ugexe: gist.github.com/niner/1bf758f72522...36d3ab3e5e | 15:08 | |
ugexe | hmm i wonder if panda passes in the resources as an absolute path | 15:09 | |
nine | Don't see anything about that in the source | 15:12 | |
But....it's quite hot in here. Brane refuses to operate at capacity... | |||
ugexe | nope it passes a relative path object. so maybe the CWD of it changes... will need to look. I've been explicit with it instead of relying on chdir: IO::Path.new($_.value.IO.relative($!path), :CWD($!path)) | 15:13 | |
nine likes explicitness | 15:14 | ||
ugexe | annoyingly verbose but I think there was a good reason | ||
15:17
girafe joined
15:23
firstdayonthejob joined
15:24
lizmat joined
15:32
pmurias_ joined,
jjido joined
15:34
woolfy joined,
iH2O joined
15:35
pmurias left
15:37
jjido left,
tinita joined
15:40
skids joined
15:47
El_Che left
|
|||
dalek | c: 780b2b3 | (Jan-Olof Hendig)++ | htmlify.p6: Fix for issue github.com/perl6/doc/issues/545 In order to speed up the doc generation the program precompiles pod files into the directory precompiled. The code in the sub extract-pod loads the precompiled files but if it detects that a pod file has been changed it calls the method precompile in CompUnit::PrecompilationRepository. The problem is that the precompile method checks if the file, that it is being asked to recompile, exists in the repo, and if it does it won't recompile it unless the named parameter :force is set to True. My suggested change is that we set :force => True when calling the precompile method. |
15:47 | |
c: 627fa39 | (Jan-Olof Hendig)++ | htmlify.p6: Make change more canonical. zoffix++ |
|||
c: 9e8455b | (Zoffix Znet)++ | htmlify.p6: Merge pull request #636 from perl6/fix-for-issue-545 Fix for issue github.com/perl6/doc/issues/545 |
|||
15:49
telex left
|
|||
ugexe | nine: is there a way to make the back compat shim work for both of these cases? | 15:50 | |
m: role Foo { submethod new(*%_) {class :: { has $.bar; }.new(|%_)} }; say Foo.new(bar => 1).bar; class Foo2 is Foo {}; say Foo2.new(bar => 2).bar | 15:51 | ||
camelia | rakudo-moar 0e4a64: OUTPUT«1Method 'bar' not found for invocant of class 'Foo2' in block <unit> at <tmp> line 1» | ||
15:54
telex joined
15:58
domidumont left,
domidumont joined
16:00
skids left
16:04
iH2O left
16:05
El_Che joined
|
|||
Woodi | what is reverse of push ? | 16:09 | |
huf | pop? | ||
16:10
dupek joined,
_mg_ joined
|
|||
Woodi | huf: works, thanx :) | 16:10 | |
ugexe | I'm not sure its worth putting a backwards compat shim there if its not backwards compat in all common cases. Distribution.new is covered, but anything that originally inherited from Distribution will still be broke | ||
that COMPOSE { } phaser would come in handy about now | 16:11 | ||
16:11
daxim joined
16:12
_mg_ left
|
|||
lizmat | ugexe: don't we have the functional equivalent of that already ? | 16:13 | |
forget what it was exactly... | |||
16:13
_mg_ joined
|
|||
ugexe | from what I remember trying you can just put such code into the body of the role, but that doesn't help if its a role being punned into a class and you don't want that code to run *unless* its being composed as a role | 16:14 | |
16:14
_mg_ left
|
|||
Woodi | so, pop is faster then @a = @a[^11] and that is faster then splice(@a,*-1). but probably it should be that way | 16:15 | |
16:18
huggable left
16:19
huggable joined
16:20
_mg_ joined
16:21
_mg_ left
|
|||
timotimo | yeah, pop is very cheap. especially since our arrays don't shrink, only grow | 16:26 | |
16:28
Guest97449 joined
|
|||
ugexe | if being fully backwards compat is a concern it may be better to rename the distribution interface to Distribution::Installable, and leave the old Distribution as is but with a `also does Distribution::Installable; also does Distribution::Locally; method meta { self.hash; };` | 16:28 | |
pmurias_ | jnthn: do you think implementing 'use oo :final, :closed' for nqp-js is a sane approach? | 16:29 | |
16:29
pmurias_ is now known as pmurias
16:30
molaf joined
16:38
hankache joined,
khw joined
|
|||
jnthn | pmurias: I'm not sure. It depends if it is to be interpreted as having hint or enforcement semantics. I'm also somewhat doubtful about whether it's worth it on Moar, and similar may be true of the JVM too. | 16:38 | |
16:40
espadrine joined
16:41
firstdayonthejob left
|
|||
jnthn | pmurias: In terms of my architectural vision for things, it's likely that Rakudo will do *less* compile time inlining in the future; probably only inlining of native-y things will survive. | 16:41 | |
pmurias: It just works out better to leave it to the VM, which can do it in the hot places and stands a better chance of preserving stack traces etc. | |||
Do you have particular benefits in mind? | 16:42 | ||
16:42
dupek left
16:43
Guest97449 left
16:50
dupek joined
16:51
domidumont left
|
|||
kalkin- | m: subset Year of UInt | Dateish | Range; my Year $y = 2001..2015; | 16:53 | |
camelia | rakudo-moar da5278: OUTPUT«WARNINGS for <tmp>:Useless use of "|" in expression "subset Year of UInt | Dateish | Range" in sink context (line 1)Type check failed in assignment to $y; expected Year but got Range (2001..2015) in block <unit> at <tmp> line 1» | ||
kalkin- | I don't understand the error. | ||
Am I using | wrong? | |||
what is a sink context? | |||
16:55
aries_liuxueyang left
16:57
Zoffix joined
|
|||
Zoffix | kalkin-, it means the value wasn't used anywhere | 16:57 | |
m: 2 | |||
camelia | rakudo-moar da5278: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 2 in sink context (line 1)» | ||
16:57
aries_liuxueyang joined,
rindolf joined
|
|||
Zoffix | kalkin-, I'm not even sure what that subset is supposed to be. Any of those values? | 16:57 | |
kalkin- | Zoffix: yes | ||
Zoffix | m: subset Year of Any where UInt | Dateish | Range; my Year $y = 2001..2015; | ||
camelia | ( no output ) | ||
kalkin- | I "fixed it" by replacing '|' with '||' | ||
Zoffix | hm | 16:58 | |
m: subset Year UInt || Dateish || Range; my Year $y = 2001..2015; | |||
camelia | rakudo-moar da5278: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> 3subset Year7⏏5 UInt || Dateish || Range; my Year $y =  expecting any of: infix infix stopper postfix statement e…» | ||
Zoffix | m: subset Year of UInt || Dateish || Range; my Year $y = 2001..2015; | ||
camelia | rakudo-moar da5278: OUTPUT«Type check failed in assignment to $y; expected Year but got Range (2001..2015) in block <unit> at <tmp> line 1» | ||
Zoffix | Doesn't seem fixed :) | ||
jnthn | That parses as (subset Year of UInt) || Dateish || Range | 16:59 | |
Zoffix | Thought so :) | ||
jnthn | subset Year where UInt | Dateish | Range; is the right way | ||
Zoffix | You don't need even need an of? | ||
kalkin- | Hmm actually my code looks a lttile bit different Dateish and Range are custom subsets which are defined like YearRnage of Range where ... | ||
jnthn | No, defaults to `of Any` | ||
16:59
_mg_ joined
|
|||
Zoffix | Oh, TIL. jnthn++ | 17:00 | |
kalkin-, should still work | |||
17:00
firstdayonthejob joined
|
|||
Zoffix | ( FWIW perl6.party/post/Perl-6-Types--Made-for-Humans ) | 17:00 | |
17:01
Zoffix left
|
|||
kalkin- | jnthn, Zoffix thanks | 17:01 | |
17:03
jjido joined
17:06
_mg_ left
|
|||
pmurias | jnthn: I intend to use do it only for the JavaScript backend, MoarVM can optimize stuff at runtime, when you have the access to the types of things | 17:06 | |
jnthn: on js I don't really have controll how the V8 JIT optimizes things | |||
17:07
_mg_ joined
17:08
jjido left
|
|||
pmurias | jnthn: my plan is that if I can finalize and close nqp classes combined with the relatively simple (compared to Perl 6) semantics of NQP I could make rakudo.js and nqp.js compile code really fast | 17:08 | |
17:09
_mg_ left
17:11
jjido joined
17:12
colomon left
|
|||
jnthn | pmurias: Only thing is, it's an application level pragma, meaning that you'd need some way to have it take effect in modules loaded by that top-level application... | 17:14 | |
(So it's not a legal thing to write into a module, really) | |||
(Which can be dealt with of course, but it's a complication) | 17:16 | ||
pmurias | yes, I would have to have too passes over everything | 17:17 | |
s/too/2 | |||
hankache | m: say Bool ~~ Int | ||
camelia | rakudo-moar da5278: OUTPUT«True» | ||
hankache | what is the rationale behind this? | ||
why is Bool an Int? | 17:18 | ||
mst | because lots of stuff uses 0/1 for booleans | ||
hankache | ok | 17:19 | |
m: sub x returns Int {return True}; x; | 17:20 | ||
camelia | ( no output ) | ||
hankache | m: sub x returns Int {return True}; say x; | ||
camelia | rakudo-moar da5278: OUTPUT«True» | ||
jnthn | Also because Bool is an enum, and enums are (by default) Ints endowed with extra powers | 17:21 | |
hankache | can I somehow force the type constraint to be only Int? | ||
17:21
pmurias left
|
|||
hankache | so that the above code fails | 17:23 | |
17:23
pmurias joined,
jjido left
|
|||
jnthn | Could try something like: subset OnlyInt where .WHAT === Int | 17:24 | |
17:24
jjido joined
|
|||
hankache | thanks | 17:24 | |
gfldex | m: subset OnlyInt of Int where .WHAT === Int; sub x(\c) returns OnlyInt {return c}; say Int; say True; | 17:25 | |
camelia | rakudo-moar da5278: OUTPUT«(Int)True» | ||
gfldex | m: say True.WHAT === Int; | ||
camelia | rakudo-moar da5278: OUTPUT«False» | ||
hankache | m: subset OnlyInt of Int where .WHAT === Int; sub x returns OnlyInt {return True}; say x; | 17:26 | |
camelia | rakudo-moar da5278: OUTPUT«Type check failed for return value; expected OnlyInt but got Bool (Bool::True) in sub x at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
hankache | great! thanks everyone | ||
jnthn | gfldex: Did you mean those to be `say x(Int); say x(True);`? :) | 17:28 | |
Dinner time & | 17:29 | ||
17:30
hankache left
|
|||
gfldex | i did | 17:31 | |
17:41
jjido left
17:43
darutoko left
17:48
daxim left,
daxim joined
|
|||
CIAvash | `where` topicalizes without a block? | 17:53 | |
psch | m: my Int $x where .say = 5 | 17:55 | |
camelia | rakudo-moar da5278: OUTPUT«5» | ||
18:09
daxim left
18:12
daxim joined
|
|||
kalkin- | So as far as I understand subset Foo where A | B | C is same as subset F where * ~~ any(A|B|C) ? | 18:14 | |
gfldex | yes | 18:15 | |
well, the consequence is the same | |||
kalkin- | ok if so what is subset Bar _of_ B? | ||
Because previously i tried to do subset Foo of A | B | C, which was wrong | 18:16 | ||
gfldex | NYI | 18:17 | |
maybe after next christmas | |||
kalkin- | gfldex: ok NYI, but what does this mean in Perl6? | ||
i mean the _of_ not NYI | |||
gfldex | in fact sub(A|B $x){} would be nice to have | ||
jnthn | We can't really have it though, 'cus it's ambiguous with the capture syntax in signatures | 18:19 | |
gfldex | think of `of B` as a superclass of A without introducing a complete new class | ||
kalkin- | m: subset Foo of Int, Str; | ||
camelia | ( no output ) | ||
kalkin- | m: subset Foo of Int, Str; my Foo $f = 'asd'; | 18:20 | |
camelia | rakudo-moar da5278: OUTPUT«Type check failed in assignment to $f; expected Foo but got Str ("asd") in block <unit> at <tmp> line 1» | ||
jnthn | A subset type is a refinement type. `of` has to be followed by the name of the type you wish to refine (default is Any); where is followed by the condition. | ||
Note that after `of` we parse preceisely one type name, *not* an expression | |||
kalkin- | So i can't refine multiple types at once, which kind of makes sense. I see… | ||
jnthn | So subset Foo of A | B means (subset Foo of A) | B (e.g. the B has nothing to do with the subset type). | ||
Which I think warned... I'm a little said that the comma case didn't warn, we should be able to catch that also | 18:21 | ||
TimToady | comma should distribute the sink | ||
kalkin- | jnthn: in case of '|' the warning is more confusing, then helpful | ||
TimToady | m: 42, Str | 18:22 | |
camelia | rakudo-moar da5278: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 42 in sink context (lines 1, 1)» | ||
TimToady | m: Str, 42 | ||
jnthn | kalkin-: How so? It tells you something didn't get used. | ||
camelia | rakudo-moar da5278: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 42 in sink context (lines 1, 1)» | ||
TimToady | looks like it's skipping the Str | ||
kalkin- | m: subset Foo of Int | Str; | ||
camelia | rakudo-moar da5278: OUTPUT«WARNINGS for <tmp>:Useless use of "|" in expression "subset Foo of Int | Str" in sink context (line 1)» | ||
kalkin- | m: subset Foo of Int , Str; | ||
camelia | ( no output ) | ||
jnthn | If it didn't warn it'd silently do the wrong thing... | ||
As the , case does | |||
TimToady | m: subset Foo of Int, 42 | ||
camelia | rakudo-moar da5278: OUTPUT«WARNINGS for <tmp>:Useless use of constant integer 42 in sink context (lines 1, 1)» | ||
jnthn | TimToady: Hmm. I think you know that bit of the code better than I do these days ;) | ||
TimToady | I fear so :) | 18:23 | |
18:23
dupek left
|
|||
kalkin- | so theoretically something like might be possible some day: multi subset Foo of A; multi subset Foo of B; ? | 18:23 | |
TimToady | what the heck would it mean? | ||
18:23
dupek joined
18:24
jjido joined
|
|||
kalkin- | TimToady: the same i tried to achieve with subset Foo of A | B; It would mean that Foo has two superclasses. | 18:24 | |
gfldex | m: subset Foo of any(A,B); | ||
camelia | rakudo-moar da5278: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Invalid typename 'any'. Did you mean 'Any'?at <tmp>:1------> 3subset Foo of any7⏏5(A,B);» | ||
kalkin- | TimToady: or may be i', just talking bs | ||
TimToady | and my Foo $object .= new instantiates itself how? | ||
kalkin- | TimToady: hmm how does it work in case of subset Foo where (A|B) ? (might be I misunderstand some thing basic) | 18:25 | |
TimToady | generally you should be mixing roles together like this, not classes | ||
in that case, it uses the (single) of type | |||
gfldex | subset creates a new type object. That can be used as a type contraint, but there are other uses as well. | 18:26 | |
kalkin- | TimToady: but as far as I understand there is no my Foo $object .=new in case of subset Foo where (A|B), or is there? | ||
gfldex | having a junction would break the other uses | ||
TimToady | m: say (subset Foo where Int | Str).of | ||
camelia | rakudo-moar da5278: OUTPUT«Method 'of' not found for invocant of class 'Foo' in block <unit> at <tmp> line 1» | ||
TimToady | m: subset Foo where Int | Str; my Foo $x .= new; say $x.WHAT | 18:27 | |
camelia | rakudo-moar da5278: OUTPUT«You cannot create an instance of this type (Foo) in block <unit> at <tmp> line 1» | ||
jnthn | The key thing to note is that the `where` part is just used to smartmatch against; it's opaque to the type system | ||
TimToady | seems like it could instantiate the of type as a base type | ||
jnthn | Whereas the `of` part is used in things like candidate sorting | ||
TimToady | m: say (subset Foo of Cool where Int | Str).of | 18:28 | |
camelia | rakudo-moar da5278: OUTPUT«Method 'of' not found for invocant of class 'Foo' in block <unit> at <tmp> line 1» | ||
TimToady | m: say (subset Foo of Cool where Int | Str).^of | ||
camelia | rakudo-moar da5278: OUTPUT«Method 'of' not found for invocant of class 'Perl6::Metamodel::SubsetHOW' in block <unit> at <tmp> line 1» | ||
TimToady | m: say (subset Foo of Cool where Int | Str).^methods | ||
camelia | rakudo-moar da5278: OUTPUT«Method 'methods' not found for invocant of class 'Perl6::Metamodel::SubsetHOW' in block <unit> at <tmp> line 1» | ||
jnthn | Not meta enough ;) | ||
m: say (subset Foo of Cool where Int | Str).HOW.^methods | |||
camelia | rakudo-moar da5278: OUTPUT«Method 'gist' not found for invocant of class 'NQPRoutine' in block <unit> at <tmp> line 1» | ||
jnthn | Aww | ||
Not meta-circular enough :P | 18:29 | ||
m: say (subset Foo of Cool where Int | Str).HOW.^method_table.keys | |||
camelia | rakudo-moar da5278: OUTPUT«(add_stash name set_name accepts_type nominalize BUILD set_why WHY set_shortname refinee set_of shortname type_check find_method refinement new new_type archetypes)» | ||
TimToady | you'd think you could .of somethin' with an 'of' | ||
jnthn | TimToady: That'd mean putting the `of` up in Mu, no? | ||
psch | m: subset Foo of Int; Foo.^refinee.say | 18:30 | |
camelia | rakudo-moar da5278: OUTPUT«(Int)» | ||
jnthn | I think it's right at the meta-level, though .^of and .^where would be welcome aliases of .^refinee and .^refinement | ||
psch | +1 | ||
grondilu | in HN today there was a mention of "parsing with derivatives". I did not know about that so I looked it up. Found myself watching a Standford video about it and got surprised as the speaker mentioned Perl 6. His name is Matthew Might. Is he hanging around here? www.youtube.com/watch?v=ZzsK8Am6dKU | ||
jnthn | Anyway, example of what I meant on the multi thing | 18:31 | |
m: subset Foo where 42; multi x(Int) { 'a' }; multi x(Foo) { 'b' }; say x(42) | |||
camelia | rakudo-moar da5278: OUTPUT«a» | ||
jnthn | m: subset Foo of Int where 42; multi x(Int) { 'a' }; multi x(Foo) { 'b' }; say x(42) | ||
camelia | rakudo-moar da5278: OUTPUT«b» | ||
TimToady should probably not be let anywhere near a computer today, after getting only a couple hours of sleep | 18:32 | ||
grondilu | (Perl 6 is mentioned at around 20:45) | ||
TimToady | we got up at 4 to catch an airplane, which broke, and delayed us 3 hours | ||
jnthn | Hope it managed to break while you were still on the ground? | ||
TimToady | yes, but they eventually put us onto a different plane | 18:33 | |
jnthn | Phew :) | ||
TimToady | and gave that plane to the people flying to Philadelphia | ||
18:34
jjido left
|
|||
jnthn | I'm sure they were thrilled... | 18:34 | |
jnthn is mostly tired from the unreasonably hot weather | 18:35 | ||
It broke a couple of records yesterday | 18:36 | ||
(Of the "hottest 24th June in location X" style) | |||
dalek | c: c3de8f2 | (Jan-Olof Hendig)++ | doc/Type/Instant.pod: Added docs for Instant.Date |
18:37 | |
gfldex | jnthn: the rain has arived here in south eastern germany about 20min ago. Will be with you shortly. :) | 18:38 | |
jnthn | \o/ | ||
nine | jnthn: still so hot up there? There's been massive thunderstorms north of the Chech border already a couple hours ago | ||
18:38
Zoffix joined
|
|||
jnthn | We had about 10 minutes worth of hail earlier. Still waiting on the real rain that was forecast to show up. | 18:38 | |
18:40
jjido joined
|
|||
Zoffix | kalkin-, subset Foo where Bar | Moo | Meow; is the same as subset Foo of Any where Bar | Moo | Meow; is the same as subset Foo of Any where * ~~ Bar | Moo | Meow; is the same as subset Foo of Any where { $_ ~~ Bar | Moo | Meow }; is the same as subset Foo of Any where { $_ ~~ any(Bar, Moo, Meow) };. The reason your subset Foo of Bar|Moo|Meow wasn't working is because you were applying the `of` to the constraints rather than the type you wanted to | 18:40 | |
constrain. | |||
kalkin- | Zoffix: Huge thanks for the elaborate explanation. | 18:41 | |
18:45
Actualeyes left
|
|||
nine | jnthn: looks like the pre-frontal wave missed you barely. The cold front is now at the German/Chech border and will probably reach you in 2-3 hours. | 18:45 | |
jnthn | I'll look forward to the...uh...full-frontal???...wave then I, guess. :P | 18:49 | |
Grr, it's still too warm to get this blog post written. | 18:50 | ||
nine | jnthn: maybe watching Portugal - Croatia is just the better idea right now ;) | 18:51 | |
jnthn gives up for now in favor of icecream and seeing if Croatia can put Ronaldo in a bad mood again... | |||
Heh :) | |||
18:51
ssotka joined
18:57
raiph joined
18:58
kerframil joined
|
|||
raiph | bisect: use experimental :macros; macro polo ($ast) { quasi { say 42; say {{{ $ast }}} } }; polo 11 | 18:59 | |
bisectable | raiph: no build for such “bad” revision. Right now the build process is in action, please try again later or specify some older “bad” commit (e.g. bad=HEAD~40) | ||
19:01
CIAvash left
19:02
BinGOs_ is now known as BinGOs
19:03
pmurias_ joined,
BinGOs left,
BinGOs joined
|
|||
AlexDaniel | bisect: bad=HEAD~10 use experimental :macros; macro polo ($ast) { quasi { say 42; say {{{ $ast }}} } }; polo 11 | 19:04 | |
bisectable | AlexDaniel: on both starting points the exit code is 0 and the output is identical as well | ||
AlexDaniel | bisect: use experimental :macros; macro polo ($ast) { quasi { say 42; say {{{ $ast }}} } }; polo 11 | ||
bisectable | AlexDaniel: on both starting points the exit code is 0 and the output is identical as well | ||
AlexDaniel | raiph: I was wondering who would be the first one to stumble upon this error message :) | 19:05 | |
19:05
colomon joined
|
|||
AlexDaniel | Zoffix: “Perl 5 didn't have types” – I'm not sure if that is true… | 19:07 | |
19:07
pmurias left
|
|||
nine | Perl 5 does have a couple of types. They're just not as fine grained. | 19:09 | |
geekosaur | perl5's types are certainly much weaker | ||
AlexDaniel | sure-sure, but there's a huge leap from that to “perl 5 does not have types” | 19:10 | |
19:10
espadrine left
|
|||
raiph | AlexDaniel++ # bisectable | 19:11 | |
Zoffix | AlexDaniel, what is that from? | 19:14 | |
AlexDaniel | Zoffix: perl6.party/post/Perl-6-Types--Made-for-Humans | 19:15 | |
Zoffix | AlexDaniel, what types does Perl 5 have? | ||
AlexDaniel | Zoffix: well, perldata and perlintro claim that there are scalars, arrays and hashes | 19:16 | |
Zoffix | :/ | 19:17 | |
Zoffix ignores this conversation and returns to hacking | |||
AlexDaniel | huggable: dunno | ||
huggable | AlexDaniel, ¯\_(ツ)_/¯ | ||
19:20
jjido left
19:26
jjido joined
|
|||
raiph | bisect: use experimental :macros; macro a { quasi {{{ 42 }}} }; a | 19:31 | |
bisectable | raiph: on both starting points the exit code is 0 and the output is identical as well | ||
raiph | m: use experimental :macros; macro a { quasi {{{ 42 }}} }; a | ||
camelia | rakudo-moar d4a0e0: OUTPUT«Weird node visited: QAST::BVal» | ||
19:39
japhb joined
19:57
grondilu left
|
|||
AlexDaniel | raiph: this is only 2015.12..HEAD, perhaps you're looking for earlier changes? | 20:04 | |
raiph | AlexDaniel: I just wondered if it had ever worked. I searched RT for a matching bug and didn't find one. | 20:05 | |
Well, worked without the warning I mean | |||
20:06
_mg_ joined
20:07
lichtkind__ joined,
mr-foobar left
20:08
lichtkind_ left
20:10
Xliff joined
20:11
japhb left,
japhb joined
20:13
mr-foobar joined
20:15
jjido left
20:18
huggable left
20:19
jjido joined
20:21
dupek left
20:24
pmurias_ left
|
|||
kalkin- | Say i have a class Foo in lib/Foo.pm6 and class Bar is Foo in lib/Foo/Bar.pm6 now i want to get all the classes existing in namespace Foo::, how do I do that? | 20:25 | |
I already tried Foo::.keys() but this doesn't return me the class | |||
moritz | m: class Foo::Bar { }; say Foo.HOW.keys | 20:26 | |
camelia | rakudo-moar d4a0e0: OUTPUT«0..0» | ||
moritz | m: class Foo::Bar { }; say Foo.WHO.keys | ||
camelia | rakudo-moar d4a0e0: OUTPUT«(Bar)» | ||
moritz | m: class Foo::Bar { }; say Foo.WHO.values | 20:27 | |
camelia | rakudo-moar d4a0e0: OUTPUT«((Bar))» | ||
moritz | m: class Foo::Bar { }; say Foo::.values | ||
camelia | rakudo-moar d4a0e0: OUTPUT«((Bar))» | ||
moritz | kalkin-: .keys will return the names, not the type objects | ||
kalkin- | moritz: Hmm here locally it doesn't return the class | ||
moritz | kalkin-: what does it return? | 20:28 | |
kalkin- | Two other classes which don't inherite from Foo | ||
moritz | kalkin-: well, it gives you everything in the Foo:: namespace | ||
independently of where it comes from, and of inheritance | |||
kalkin- | I do: Foo; class Foo::Bar is Foo {} in lib/Foo/Bar.pm. so it should be in Foo namespace shouldn't it? | 20:29 | |
or is Foo not a namespace because it's also the class name? | 20:30 | ||
20:31
dupek joined
|
|||
moritz | it should be, yes | 20:35 | |
but using Foo; doesn't autoamtically import Foo::Bar | |||
20:36
rindolf left
|
|||
moritz | you have to explicitly "use Foo::Bar" when Foo::Bar is in Foo/Bar.pm | 20:36 | |
20:39
wamba left
|
|||
kalkin- | here example where it doesn't work github.com/kalkin/Foo.git | 20:45 | |
20:45
domidumont joined,
domidumont left
|
|||
kalkin- | The test.pm6 only returns Buz | 20:45 | |
but no Bar | |||
20:45
rindolf joined
20:46
domidumont joined
|
|||
Zoffix | looks like .htaccess fix for LE didn't take. | 20:46 | |
on docs.perl6.org | |||
moritz | seems I forget to create a cron job for let's encrypt :( | 20:49 | |
running it manually now | |||
slooooow | |||
(the official client at least) | 20:50 | ||
I should switch to simp_le, which works a bit smoother on another server I use | |||
Zoffix: certificate renewed | 20:51 | ||
Zoffix | moritz++ | 20:53 | |
kalkin- | Ok i think i found my problem. To extend Bar with Foo, i need to do use Foo; in lib/Foo/Bar.pm6, but then i can not have use Foo::Bar in lib/Foo.pm6--which would it make visible for Foo::.keys()-because it creates a circular dependency. | 20:56 | |
20:56
DG_ joined
20:57
DG_ left
21:01
_mg_ left,
_mg_ joined
21:04
TEttinger joined
21:05
_mg_ left,
aries_liuxueyang left
21:07
aries_liuxueyang joined
21:10
domidumont left
|
|||
dogbert17 | The owner of doc.perl6.org has configured their website improperly. To protect your information from being stolen, Firefox has not connected to this website. | 21:11 | |
moritz | dogbert17: I've just renewed the certificate | 21:12 | |
dogbert17 | moritz: will it take some time for Firefox to pick it up? | ||
moritz | dogbert17: a reload should be enough | ||
21:13
kerframil left
|
|||
dogbert17 | all my browsers complain, IE, FF and Chrome | 21:13 | |
Zoffix | dogbert17, try pressing CTRL+F5 | ||
moritz | dogbert17: check your system clock | 21:14 | |
Zoffix | oh :D | ||
moritz | Valid from Sat, 25 Jun 2016 19:50:00 UTC | ||
21:14
jjido left
|
|||
moritz | if your clock is half an our off, it might not be valid yet for you :-) | 21:14 | |
(or time zone wrongly configured, or something like that) | 21:15 | ||
dogbert17 | must be Win 7 playing ticks on me, time is 23:15 | ||
21:15
jjido joined
|
|||
dogbert17 | s/ticks/tricks/ | 21:15 | |
mst | FF on win10 is totally happy | ||
dogbert17 | it works i my Virtualbox | ||
moritz | www.ssllabs.com/ssltest/analyze.ht...Results=on is happy too | ||
dogbert17 | ok, so the fault is with me then :( | 21:16 | |
moritz | dogbert17: I guess it'll work again tomorrow | 21:20 | |
if not, worth inestigating further | |||
21:24
firstdayonthejob left
|
|||
dogbert17 | moritz: you're probably right. I can still view the site if I ignore the browser complaints | 21:25 | |
21:27
Exodist joined
21:29
Exodist left
|
|||
Xliff | m: class A { ... }; sub f(A $n) { $n.data = 1 }; class A { has $.data is rw; method new { f(self) } }; say A.new.data | 21:29 | |
camelia | rakudo-moar d4a0e0: OUTPUT«Cannot look up attributes in a type object in method new at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
Xliff | Is self not defined in new()? | ||
If so, how can I call an initializing routine on an object at creation time? | 21:30 | ||
Zoffix | m: class Foo { method new { say self } }; Foo.new | ||
camelia | rakudo-moar d4a0e0: OUTPUT«(Foo)» | ||
Zoffix | Xliff, it's a type, not the object yet. You need bless | ||
21:30
girafe left
21:31
raiph left
21:32
Exodist joined
|
|||
Xliff | m: class A { ... }; sub f(A $n) { $n.data = 1 }; class A { has $.data is rw; method new { f(self.bless) } }; say A.new.data | 21:32 | |
camelia | rakudo-moar d4a0e0: OUTPUT«Method 'data' not found for invocant of class 'Int' in block <unit> at <tmp> line 1» | ||
Zoffix | You need to return the object from .new. Right now you're returning 1 :) | 21:34 | |
(the object being what .bless gives you) | |||
m: class A { ... }; sub f(A $n) { $n.data = 1; }; class A { has $.data is rw; method new { given self.bless { f $_; $_ }} }; say A.new.data | 21:35 | ||
camelia | rakudo-moar d4a0e0: OUTPUT«1» | ||
21:36
dupek left
|
|||
Zoffix | m: class A { ... }; sub f(A $n) { $n.data = 42; }; class A { has $.data is rw; submethod BUILD { f self } }; say A.new.data | 21:36 | |
camelia | rakudo-moar d4a0e0: OUTPUT«42» | ||
21:39
FROGGS left
21:43
_dolmen_ joined
21:44
firstdayonthejob joined
21:48
kaare_ left
21:54
TEttinger left
22:12
jjido left
|
|||
Xliff | Hrm. I'm running into a chicken and egg problem. | 22:15 | |
22:16
cdg joined
22:24
TakinOver joined
22:30
cdg left
|
|||
Xliff | (╯°□°)╯︵ ┻━┻ | 22:35 | |
Zoffix | (╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻(╯°□°)╯︵ ┻━┻ | ||
Xliff, github.com/zoffixznet/perl6-Acme-GiveUp | 22:36 | ||
Xliff | HAHAHAHA! | 22:39 | |
Yeah. I'm close to that. | |||
This "self.bless(xmlNewText($text.Str))" is giving me this: "Too many positionals passed; expected 1 argument but got 2" | 22:40 | ||
WTF? | |||
22:40
aries_liuxueyang left
|
|||
Xliff | m: say 1234.Str | 22:40 | |
camelia | rakudo-moar d4a0e0: OUTPUT«1234» | ||
Xliff | m: say 1234.Str.WHAT | 22:41 | |
camelia | rakudo-moar d4a0e0: OUTPUT«(Str)» | ||
22:41
aries_liuxueyang joined
22:43
rindolf left
|
|||
Xliff | :S | 22:51 | |
I didn't need self.bless -- LOL! | |||
Zoffix | heh | 22:54 | |
m: class Foo { method new { 31337 } }; say Foo.new.is-prime # .new doesn't return a Foo then tho | |||
camelia | rakudo-moar d4a0e0: OUTPUT«True» | ||
Zoffix | m: class Foo { method new { 31337 } }; say Foo.new.^name | 22:55 | |
camelia | rakudo-moar d4a0e0: OUTPUT«Int» | ||
Xliff | How do you specify multiple conditions for a "when" statement? | ||
22:56
firstdayonthejob left
|
|||
Xliff | m: given 42 { when any(^31) { say "Heave" }; when 42 { say "Ho" } } | 22:56 | |
camelia | rakudo-moar d4a0e0: OUTPUT«Ho» | ||
Xliff | m: given 42 { when any(42, 31, 0) { say "Heave" }; when 1 { say "Ho" } } | 22:57 | |
camelia | rakudo-moar d4a0e0: OUTPUT«Heave» | ||
Xliff | m: given 42 { when [42, 31, 0] { say "Heave" }; when 1 { say "Ho" } } | ||
camelia | ( no output ) | ||
Xliff | m: given 42 { when 42|31|0 { say "Heave" }; when 1 { say "Ho" } } | ||
camelia | rakudo-moar d4a0e0: OUTPUT«Heave» | ||
Xliff | Hrm. | ||
Zoffix | m: given 42 { when 42 or 32 { say "Heave" }; when 1 { say "Ho" } } # also works | 22:58 | |
camelia | rakudo-moar d4a0e0: OUTPUT«Heave» | ||
tbrowder | docs: please check another attempt PR: github.com/perl6/doc/pull/637 | 23:00 | |
Zoffix | m: given 42 { when $_ == 42 or $_ == 3 { say "Heave" }; when 1 { say "Ho" } } # also works | 23:01 | |
camelia | rakudo-moar d4a0e0: OUTPUT«Heave» | ||
Zoffix | tbrowder, what are the actual changes of this happening? github.com/perl6/doc/pull/637/file...e4d3cbR295 | 23:03 | |
Seems this doesn't belong in the docs. | |||
s/changes/chances/; | 23:04 | ||
23:04
_dolmen_ left
|
|||
Zoffix | Such a change would literally break every piece of Perl 6 code I ever wrote. The benefits would have to be enormous for such a change to make it into the language. | 23:06 | |
23:11
zakharyas joined
|
|||
tbrowder | First, such a change would not be a catastrophe IMHO (and I don't write decls with a space). Next, I'm approximately paraphrasing TimToady when he acknowledged the problem with the space after the function name in the call (he may not have meant the decl would change). At this time I don't think it's too early to toss in a warning about the chance of such | 23:15 | |
a change. Finally, if it ever happens, I assume that there may be a way to not break existing code by some kind of environment variable, or pragma, or some such. | |||
Xliff | \o/ | ||
23:16
cdg joined
|
|||
Xliff | OK. Now I can take a bit of a break. BBL. | 23:16 | |
Zoffix | There's no change. I don't understand why we need warnings or even think about pragmas and environmental variables. | 23:20 | |
tbrowder, did the conversation with TimToady happen here or in person? | 23:21 | ||
This is just a good way to start a rumor that sub foo () {} is a bad idea and the next thing you know it's in a style guide because TimToady said there's a problem "with the space after a function call and he may not have meant the decl would change" | 23:22 | ||
tbrowder | Zoffix: in person (in a hall conversation), and he will probably smack me if he ever sees me again, but that's what I heard; however, if this causes such turmoil I will certainly remove it. (But you don't ever expect to see deprecations over the life of P6?) | 23:27 | |
Zoffix | tbrowder, I don't expect us to plan for removal of an essential syntax of the language for no apparent reason. There's no problem I'm aware of with a space before parameters. | 23:30 | |
23:31
AlexDaniel left
|
|||
Zoffix runs a grep to see how much code would break | 23:31 | ||
tbrowder | Okay. | ||
Zoffix, please check the PR now and see if that will fly. | 23:34 | ||
Zoffix | tbrowder, looks good, thanks. | ||
tbrowder | My pleasure! | 23:35 | |
23:35
ShimmerFairy left
|
|||
Zoffix | Based on the May 3rd snapshot of the ecosystem, such a change would break 280 distributions. | 23:39 | |
23:40
huggable joined
|
|||
Zoffix | huggable, grep ecosystem :is: How many dists use `foo`: Change the grep regex for what you're looking for: cd $(mktemp -d); git clone github.com/moritz/perl6-all-modules .; grep -REl '(method|sub|multi)\s+\S+\s+\(' . | perl -nE 'say join "/", (split "/")[1,2]' | sort | uniq | wc -l | 23:40 | |
huggable | Zoffix, Added grep ecosystem as How many dists use `foo`: Change the grep regex for what you're looking for: cd $(mktemp -d); git clone github.com/moritz/perl6-all-modules .; grep -REl '(method|sub|multi)\s+\S+\s+\(' . | perl -nE 'say join "/", (split "/")[1,2]' | sort | uniq | wc -l | ||
23:42
zakharyas left
23:52
Zoffix left
|
|||
tbrowder | Zoffix: how did you get Wendy's brochure? It's great to put in the docs repo--can we get the pdf version linked on the docs home page? | 23:54 | |
parabolize | tbrowder: github.com/wendyga/Perl6Brochure | ||
tbrowder | yes, I know the source, but IMHO it needs to be mention on the docs home page (shall I make a PR?) | 23:56 | |
23:58
mscha joined
|
|||
mscha | m: my @a = 4,5,6; my @b = (1,2,3, flat @a); say @b; | 23:59 | |
camelia | rakudo-moar d4a0e0: OUTPUT«[1 2 3 (4 5 6)]» | ||
parabolize | I think Zoffix got brochure from the source and made a pdf of it | ||
mscha | How do I fix this? (I want [1 2 3 4 5 6]) |