»ö« 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.
00:00 titsuki joined 00:05 Zero_Dogg left 00:06 Zero_Dogg joined, titsuki left 00:10 wamba left 00:48 keix joined 00:58 dha left 01:00 Herby__ joined
Herby__ o/ 01:00
raiph hi Herby__ 01:10
Herby__ raiph: \o 01:12
raiph Herby__: I'm exploring P6's type system. What type systems in other langs have you used? 01:16
Herby__ raiph: I'm a programming rookie that's dabbled in perl and python, and now perl 6 01:18
so i'm not sure how to answer your question :)
01:19 kurahaupo_ left 01:21 kalkin-_ joined, kalkin- left
raiph that answers my question. perl5 hides types. i think python comes close to equating types with classes, right? 01:21
01:23 molaf left 01:24 AlexDaniel left
Juerd raiph: Perhaps a Python channel can answer that question 01:25
raiph Juerd: :) What I'm interested in is chatting about Perl 6 types with someone who has barely if at all used types before. 01:27
Juerd I've used types in Perl 6, know some details of types in Perl 5 (they exist), and have fought with C++ about them, never winning. 01:28
gfldex raiph: are you writing a paper about confusion? :-P
raiph :) 01:29
Hmm. I
am also interested in chatting with folk who know lots about types :) 01:30
(and everyone in between, just to round things out)
Juerd So what would you like to discuss about types?
raiph Well, I have this little goal of writing the p6doc page for the type system ;) 01:32
gfldex raiph: i started to do that 3 times already. It's kinda hard. 01:33
the problem is that types don't exist 01:34
raiph gfldex: I'm pretty sure it's you who sent me on this quest
Juerd How do they not exist?
And what's the thing that does exist called then?
gfldex there are functions with an implicit parameter that we call methods
they make assumptions about memory layouts of the stuff that parameter points to 01:35
the consequence of that behaviour can be called "type" but the type itself doesn't exist as an entity
Juerd "memory layout" is an implementation thing; the language concept 'type' has little to do with that.
01:36 molaf joined
gfldex that depends on where you want to start your layers of abstraction 01:36
Juerd At the conceptual level
gfldex i prefere The Truth (TM) and try to stay away from abstractions when it comes to computers
Juerd The things that make up the language, without the things that implement that language, but with how you use them.
Programming languages like Perl *are* abstractions. 01:37
gfldex computers are terrible when it comes to abstructions and humans ain't that much better
Juerd: indeed, that may explain why programming is hard
Juerd I'm not sure that programming is hard.
gfldex 1/3 of all CS students fail to learn how to program a computer 01:38
err, 2/3 even
some of those may learn it later tho
geekosaur how many of those were never taught?
Juerd Seems to me the teaching is slightly off :) 01:39
geekosaur "CS" often means higher math, not programming
gfldex many i suppose
but we deviate from type systems
Juerd I've taught people to program. I'm sure that not many of those people became stellar programmers, but I'm quite sure that each and every one of them can write a counter :P
Fortunately, Perl 6 only has to document one type system, its own. 01:40
gfldex my point is that when using multiple layers of abstructions, every now and then reality will poke through all those layers and slap you in the face. See float point ouchies. 01:41
Juerd Confusing the issue are the several things that are all called 'types'
gfldex i think i just mixed abstraction and obstruction 01:42
raiph :)
Juerd Containers have types, values have types, but constraints on what type value a container will hold are also called types.
raiph I see two of those things as the same 01:43
(container types are type constraints)
Juerd So variable types (constraints), container types (implementation for storage), value types (implementation of values), if I understand the distinction correctly.
raiph: Scalar is a container type. 01:44
raiph You're right
gfldex raiph: one of my attempts to introduce the type system gist.github.com/gfldex/872d6bc23da...ef8dce32d1 01:45
01:45 guiwp joined 01:46 ilbot3 left
gfldex as you can see it already got circular dependencies 01:46
raiph: you may be able to steal from en.wikipedia.org/wiki/Type_system 01:47
guiwp hello guys, i'm facing one problem trying to use perl6 for the first time here (im going to learn it if its possible!), when i run the panda im getting: cannot find shell::command
Juerd You begin with introducing types as a safety mechanism. I'd consider starting off with explaining that "everything is an object", in Perl 6, boils down to types being a way to organize behaviour into categories of values. 01:48
raiph hi guiwp
guiwp raiph: hi
01:48 ilbot3 joined
gfldex guiwp: what does `perl6 --version` say? 01:48
Juerd guiwp: Is that the complete message?
guiwp 2016.05 implementing perl 6.c. 01:49
gfldex on what OS/platform?
guiwp debian (using sid) 01:50
gfldex how did you install rakudo?
guiwp simply apt-get install rakudo 01:51
gfldex please get in touch with the package maintainer (read: don't use debian packages for now)
raiph m: say "you can try learning perl 6 using on channel bots too" # guiwp 01:52
camelia rakudo-moar f80cc7: OUTPUT«you can try learning perl 6 using on channel bots too␤»
guiwp i would like to have a stable package in debian =( 01:53
raiph guiwp: is your thing gui coding (hence the nick)?
gfldex guiwp: github.com/rakudo/rakudo github.com/tadzik/panda
guiwp my name is guilherme
raiph gotchya 01:54
guiwp gui + wp (wikipedia) as im an editor
raiph guiwp: what sort of code are you used to writing? 01:55
gfldex rakudo sports precompiled modules what is causing difficulties for packaging. That problem is being worked on.
guiwp hey guys, the old package i installed from jessie is using parrot vm. what vm i should use? moarvm or parrot?
01:56 yqt left
gfldex parrot is not supported anymore 01:56
and i believe JVM is slighly bitrotten right now
guiwp i like to extract text from wikipedia, so perl is something im curious to known if this will play nice: perl + wikipedia parsing =)
gfldex you may find help at modules.perl6.org/ 01:57
for your quest that is
raiph guiwp: were you planning to check out perls in general, 5 and 6, or exclusively 6? 01:58
guiwp in the past i learning a little bit about what whas perl 5 (coded just some hello worlds), it was 10 years ago. now im curious about this "perl6" and i want to known if it fit my need for text processing/parsing 01:59
b2gills guiwp: My favorite example to show off Perl 6 parsing is the JSON::Tiny::Grammar github.com/moritz/json/blob/master...Grammar.pm
guiwp if im going to learn perl i preffer start learning version 6 as it seems to be the next version right? 02:00
or they will always keep 5 and 6?
b2gills both versions have regular updates
timotimo both will be developed far into the future
guiwp perl 6 is participating in gsoc regularly? 02:01
b2gills There is actually very little overlap between people who work on the Perl 5 core, and people who work on Rakudo ( The Perl 6 core )
mst gsoc has been a mess for several years 02:02
so "somewhat, barring the fact thast google keep moving the goalposts"
guiwp well, if i start to play with perl5 do you guys think that it will be good if later i switch to 6? how is the learning curve from 5 to 6? 02:04
mst they're two different languages in the same family
they'll both be around for a long time
guiwp interesting mst, i think im going to play with 5 so till 6 become more mature 02:05
thank you all for the assistance! im going now rly thank you 02:06
02:06 guiwp left
mst I ... my implied goal was "learn both" 02:06
oh well
grondilu he's gone, but I think if the goal is to just play, Perl 6 is definitely more fun. 02:07
mst yes, I know he's gone, hence my comment 02:08
02:09 zacts joined 02:19 kid51 left 02:20 Herby__ left 02:32 cdg joined 02:35 sufrostico left 02:36 noganex_ joined
Juerd gfldex, raiph: My attempt at explaining types: gist.github.com/Juerd/b6531810922d...50be4915ca 02:37
Not very theoretical. 02:39
02:40 noganex left 02:42 ssotka left 02:44 Timbus joined 02:51 sherwool left 02:54 huggable left, huggable joined 02:56 tomboy64 left 03:01 aries_liuxueyang left 03:02 aries_liuxueyang joined 03:06 jack_rabbit left 03:13 _28_ria left 03:16 parabolize joined 03:27 ssotka joined 03:29 _28_ria joined 03:32 Actualeyes left
ugexe do you want to make money? learn perl 5. hate yak shaving? learn perl 5. otherwise learn perl 6 03:34
03:39 araujo_ left 03:41 dj_goku joined 03:44 Actualeyes joined 03:59 cdg left 04:14 Zero_Dogg left 04:15 Zero_Dogg joined 04:17 grassass joined 04:20 Cabanossi left 04:23 Cabanossi joined 04:33 molaf left 04:41 skids left 04:45 khw left 05:04 sno joined 05:11 sno left 05:21 cpage_ left 05:59 darutoko joined 06:04 khisanth_ joined 06:08 kent\n left, cpage_ joined 06:11 araujo joined, araujo left 06:14 ssotka left 06:15 sno joined 06:18 rindolf joined 06:20 firstdayonthejob joined, b2gills joined 06:25 kent\n joined 06:33 _mg_ joined 06:34 firstdayonthejob left 06:36 domidumont joined 06:40 domidumont left 06:41 domidumont joined 06:43 guardianJ joined 06:50 guardianJ left 06:51 rurban joined, rurban_ joined 06:54 huggable left, huggable joined
masak morning, #perl6! 06:57
moritz \o masak, * 06:58
masak .oO( hi masak, whatever ) :P
07:01 azawawi joined
azawawi m: "6lrep# iH".flip.say; # :) 07:02
camelia rakudo-moar f80cc7: OUTPUT«Hi #perl6␤»
azawawi :)
Good morning
masak m: say "...seunitnoc ycnappilf ehT".flip 07:03
camelia rakudo-moar f80cc7: OUTPUT«The flippancy continues...␤»
masak in other news, I have developed a way to combine ROT13 and .flip to create even stronger industrial-grade involute encryption 07:04
azawawi :) 07:06
TEttinger arithmetic coding of the input string, then interpret the very very large number's nybbles as hex digits
azawawi .flip revolution
i like atom... it was in beta for like 4 releases then it is stable lol 07:08
07:08 zakharyas joined
azawawi starts working on GTK::Simple again :) 07:10
07:12 rurban1 joined, rurban left 07:19 bjz joined 07:23 azawawi left 07:27 bjz left
lizmat clickbaits p6weekly.wordpress.com/2016/06/06/...bisecting/ 07:31
masak \o/ 07:32
07:32 wamba joined
moritz lizmat++ 07:33
stmuk_ you wouldn't believe how easier bisecting is!
07:35 bjz joined 07:41 bjz left 07:42 dakkar joined 07:44 kurahaupo joined, bjz joined
lizmat toons.gotblah.com/archive/9chickwe...7-0801.gif # too much kebab-case 07:45
kurahaupo lizmat: sounds like a should-have-used-undescores-instead-of-hyphens problem... 07:49
07:52 RabidGravy joined 07:53 _28_ria left 07:57 _nadim joined 07:58 Humdai joined
RabidGravy boom! 07:59
07:59 domidumont left 08:04 domidumont joined 08:05 kurahaupo left, domidumont left 08:06 rindolf left, domidumont joined 08:09 kurahaupo joined 08:17 wamba left
masak m: say "!moob".flip 08:20
camelia rakudo-moar f80cc7: OUTPUT«boom!␤»
08:22 domidumont1 joined, domidumont left 08:39 raiph left 08:43 NEveDko_ joined
RabidGravy I'm not going to do any gardening today 08:45
DrForr Incidentally (re: liz's announcements) 2 of my P6 talks got accepted for Y::E. No arm twisting required :) 08:47
08:49 ocbtec joined 08:52 _nadim left
masak DrForr: cool! 08:56
08:56 bjz left
masak DrForr: which two talks, ooc? 08:56
DrForr The two I haven't written yet :) "Ten Things you Need to Know about Perl 6" and "Inception in Perl 6: Design your own language".
08:57 bjz joined
masak both sound promising :) 08:57
though the first one is clearly a listicle :P
masak .oO( "listentation"? )
DrForr Well, yeah, that was designed for OSCON London, where we're not necessarily guaranteed a P6 keynote. 08:59
09:04 domidumont1 left
moritz
.oO( "Ten Things Perl 6 Needs to Know about You!" )
09:04
09:05 _nadim joined, domidumont joined 09:07 araujo joined
RabidGravy "I learned Perl 6, what happened next will shock you" 09:09
DrForr And then morph into Aahnold live on stage. 09:11
RabidGravy I may get the thing that is sorta kinda like SQL::Abstract if you squint at it somewhat working today 09:12
09:17 TEttinger left, wamba joined 09:32 domidumont left 09:35 iH2O joined 09:37 domidumont joined 09:43 kurahaupo left
literal what's the current subroutine? I thought it was &?SUB... 09:47
oh, &?BLOCK 09:50
jnthn &?ROUTINE 09:53
09:54 dakkar left, iH2O left
RabidGravy yeah, I think I'm right in say &?BLOCK will always be set, &?ROUTINE only in an actual, er, routine 09:54
09:56 luiz_lha joined 09:57 luiz_lha is now known as Guest52483, Guest52483 is now known as luiz_lha 09:59 dakkar joined 10:00 rindolf joined 10:02 Emeric joined 10:03 Emeric left 10:06 Emeric joined 10:11 adhoc joined
Timbus uhhh okay this is a tough one. multi methods do not retain traits applied to them (using 'Routine does SomeRole' in a trait_mod) after the class is instantiated. I'm guessing the routine is copied or otherwise munged under the hood.. jnthn ? 10:15
10:16 yqt joined
moritz Timbus: how do you know? are you aware of the proto vs. candidate distinction? 10:16
jnthn Timbus: Code illustrating the issue? 10:17
Timbus time to golf..
jnthn m: multi trait_mod:<is>(Routine:D $r, :$foo!) { $r does role { method foo() { 42 } } }; class C { multi method bar() is foo { } }; C.^lookup('bar').candidates[0].foo.say 10:19
camelia rakudo-moar f80cc7: OUTPUT«42␤»
jnthn m: multi trait_mod:<is>(Routine:D $r, :$foo!) { $r does role { method foo() { 42 } } }; class C { multi method bar() is foo { } }; C.new.^lookup('bar').candidates[0].foo.say
camelia rakudo-moar f80cc7: OUTPUT«42␤»
Timbus m: gist.github.com/TiMBuS/3f3b23eabdb...01ba06282c 10:25
camelia rakudo-moar f80cc7: OUTPUT«Applied role: method topping (Pizza $: *%_) { #`(Method+{Cheese}|56442840) ... }␤No longer cheesy?: method topping (::T $: | is raw) { #`(Method|56445728) ... }␤»
10:26 Amnez777 joined
Timbus 'instantiated' was not correct.. did i mean finalized? 10:26
moritz, so the proto is getting in the way? 10:27
if so, how do i get around it
jnthn .candidates like I showed above 10:28
10:28 Zero_Dogg left
jnthn A proto groups the multi methods with the same name 10:29
So you need to dig into the candidate lists also
10:29 adhoc left, Zero_Dogg joined, Zero_Dogg left, Zero_Dogg joined
Timbus ah, i geddit 10:29
jnthn So, phew, no nasty MOP bug for me this time :)
Timbus i should also make an effort to remember ^lookup some time
jnthn Yeah, it's backed by a hash iirc so would also be faster :) 10:30
psch traiting the proto should also work, no?
or does that *only* hang on the proto then? 10:32
jnthn Only on the proto
Timbus while I've got you here, does lookup differ from find_method 10:33
jnthn yes 10:34
find_method = give me a thing I can invoke to call the method
lookup = give me the actual thing declared in the class
Timbus oh
jnthn (or role)
For plain old classes it makes no difference
For roles it does
Because .^lookup gives you the Method object, where .^find_method gives you a closure that puns the role and calls the method on the pun 10:35
Timbus neat.
jnthn Also, things like OO::Monitors will show a difference; .^lookup works as in a class, while .^find_method gives you a thing that acquires the lock, calls the method, and releases the lock
In $foo.bar(), it uses .^find_method 10:36
In cases where you're going to do something other than blindly invoke the thing you get back (or keep it around for later invocation), lookup is the right thing.
Timbus yep, that sounds logical 10:37
last one: can I test if a method responds to a set of arguments without using: $multi.cando(Capture.new(list => [$args, $go, $here]))
that's actually your code ^ 10:38
10:38 sherwool joined
gfldex $multi.^signature ~~ :(Your, Signature, Literal) 10:38
Timbus heck yes that is what I want 10:39
psch note that compares Signatures, not arguements against parameters 10:40
gfldex all that docing does make a few things stick
you can test a list (of arguments) against the signature object or a signature literal 10:41
psch m: sub f($a, :$b) { }; say \(1, :2a) ~~ &f.signature
camelia rakudo-moar f80cc7: OUTPUT«False␤»
psch ...huh
10:42 labster left
psch m: sub f($a, $b) { }; say \(1, 2) ~~ &f.signature 10:42
camelia rakudo-moar f80cc7: OUTPUT«True␤»
psch i think nameds are broken (still? again?) in Signature.ACCEPTS :/
i remember trying to fix that and making it differently broken... /o\
oh no
the Capture had :$a, not :$b >_> 10:43
jnthn It's not .^signature
psch m: sub f($a, :$b) { }; say \(1, :2b) ~~ &f.signature
camelia rakudo-moar f80cc7: OUTPUT«True␤»
jnthn Just .signature
10:43 rurban_ left
jnthn Note that $multi.cando(Capture.new(list => [$args, $go, $here])) 10:43
psch Timbus: ^^^ that tests "if i put these arguments into the invocation parens of f(), does it work?"
jnthn Is just a long spelling of
Note that $multi.cando(\($args, $go, $here)) 10:44
Timbus yeah, already changed it to that jnthn :)
jnthn :)
10:44 keix left
Timbus wonder how many years ago that wart was written 10:44
jnthn Dunno :-)
jnthn wanders off to make lunch :)
psch m: sub f($, $, :$a, *%) { }; say \(1, 2, :1a, :2b) ~~ &f.signature 10:45
camelia rakudo-moar f80cc7: OUTPUT«True␤»
psch m: sub f($, $, :$a, *%) { }; sub g($, $, *%) { }; say &f.signature ~~ &g.signature; say &g.signature ~~ &f.signature
camelia rakudo-moar f80cc7: OUTPUT«True␤False␤»
psch ...i think that's correct 10:46
probably lizmat++ :)
Timbus neat
10:47 keix joined
psch yeah, &g accepts more named combinations than &f, hence &f.signature cannot accept &g.signature 10:47
FSVO "more" - my math isn't good enough to talk about sizes of countable infinities :) 10:48
masak there's only one countable infinity, if that helps 10:49
well
under the continuum hypothesis, at least :) 10:50
psch ah, so the value of "more" i was looking for was "the same amount of"..?
masak no, I think you're confused
psch probably, yes :)
10:50 sherwool left
masak a set A can be "bigger" (as in "containing all the other's elements plus strictly its own elements") than a set B, while A and B both have countable-infinite cardinality 10:51
case in point: A integers, B even integers
or A rationals, B integers 10:52
or A Gaussian integers, B integers
or A integers, B integers except 0 :) 10:53
psch hm, what the formal word for "bigger" there, ooc?
masak "superset"
"(strict) superset", I guess
psch oh. yeah that makes sense
i think i had learned this somewhen... 10:54
10:54 huggable left, huggable joined
masak of course, from a CT perspective, the superset relation is simply an embedding, that is, an injective function. the "(strict)" simply means it's not surjective. 10:55
masak .oO( thanks, Bourbaki! )
psch i know these words from analysis. but i suspect CT (as "category theory", right?) is a generalization of that, isn't it? 10:56
masak but yeah, the unintuitive part here is of course that "bigger"/"strict superset" doesn't automatically translate into a larger cardinality
but that's infinities for ya
yes, category theory
yes, it's a generalization. but one we don't need here, since we're still in Set, so the words mean what they usually do, and can be defined in terms for elements.
of* 10:57
10:57 iH2O joined, yqt left
psch fwiw, i used to be somewhat annoyed that 'A is a superset of B' can include equivalence. i'd always thought "wouldn't it be more sensible to make the equivalence the exception that has to be specifically named?", but i think examining exactly that with a set theoretical perspective shows why it wouldn't work 11:01
because a "non-strict superset" wouldn't be part of the set "superset" if "superset" couldn't by default mean "non-strict superset"
masak yeah, it's a little bit of a historical accident, I guess 11:02
psch so it shouldn't be called "superset" at all, but that probably breaks something somewhere
masak I don't care about the exact terminology, but I'm very much in favor of using ⊃ and ⊇ instead of ⊋ and ⊃ 11:03
because the former is strangely consistent with > and ≥
psch yeah, i think i agree with that 11:07
the words used to descripe the symbols don't change what the symbols mean i suppose 11:08
11:09 dakkar left
psch which, of course, is an underqualified statement illustrating the exact same concept vOv 11:09
11:10 dakkar joined
masak in a way, "subset" and "superset" including the non-strict endpoints makes sense if you think about those relations as being defined on a poset of the power set of a set 11:10
m: sub powerset(Set $s) { $s.combinations.map(*.Set).Set }; say powerset(set <a b c d>) # rosettacode.org/wiki/Power_set#Perl_6 11:11
camelia rakudo-moar f80cc7: OUTPUT«set(set(), set(c), set(b, d), set(a, c, d), set(b), set(c, b), set(a, d), set(a, c, b), set(a, c), set(c, d), set(a, c, b, d), set(a, b), set(a), set(d), set(a, b, d), set(c, b, d))␤»
masak m: .say for <a b c d>.combinations
camelia rakudo-moar f80cc7: OUTPUT«()␤(a)␤(b)␤(c)␤(d)␤(a b)␤(a c)␤(a d)␤(b c)␤(b d)␤(c d)␤(a b c)␤(a b d)␤(a c d)␤(b c d)␤(a b c d)␤»
11:12 rurban_ joined
psch i don't know if grok posets 11:16
RabidGravy If I have something that is basically like "my $a = gather { loop { take $++ } }; my $b = gather { loop { take 1; } }; say $a Z+ $b" is there a way of making the result lazy too? 11:17
psch i mean, the wikipedia illustration makes it seem obvious enough, but not getting the formalisim has caused me trouble before... :)
-i
11:20 Peter_R left 11:22 Peter_R joined 11:26 Hor|zon_ joined
llfourn .seen nine 11:29
yoleaux I saw nine 5 Jun 2016 20:30Z in #perl6: <nine> jdv79: details?
11:30 Hor|zon left
llfourn .tell nine I've tested the bugfix branch, results: RT #128156. Sorry I didn't respond sooner. I only just saw your request for tests. RT doesn't seem to be forwarding me follow-ups for this thread for some reason =(. 11:33
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128156
yoleaux llfourn: I'll pass your message to nine.
11:33 yqt joined 11:34 noninc joined 11:36 Actualeyes left 11:38 kid51 joined 11:41 iH2O left
masak psch: a poset is a graph with a node at the top, a node at the bottom, and arrows flowing upwards in some way. maximum one arrow per pair of nodes. no cycles. 11:43
psch: think of it as a comparison relation (<) but in which not all elements are thus related. 11:44
arnsholt The requirement for top and bottom makes it a lattice, no? 11:48
Isn't a poset just a set and an ordering relation that only applies to some of the pairs?
masak sir, you are right 11:53
which means I meant that the subtype relation is a lattice, not just a poset
moritz
.oO( all this talking about lettuce makes me hungry )
11:56
masak .oO( the category of foods and their eating morphisms ) 11:57
12:02 Actualeyes joined 12:03 nadim joined 12:07 _nadim left 12:20 sufrostico joined 12:22 cdg joined 12:28 buharin joined
buharin hello :) 12:28
hello, mst
llfourn m: say ((loop { rand }) Z+ (loop { rand }))[^5]
camelia rakudo-moar f80cc7: OUTPUT«(1.29943248222776 1.14259849468707 1.46778136646121 1.71353050598134 0.754666288049909)␤»
llfourn RabidGravy: Z seems to hadnle lazyness fine 12:29
m: say ((loop { $++ }) Z+ (loop { $++ }))[^5]
camelia rakudo-moar f80cc7: OUTPUT«(0 0 0 0 0)␤»
llfourn though state variables aren't wroking for me 12:30
m: my $a = 1; say ((loop { $a++ }) Z+ (loop { $a++ }))[^5]
camelia rakudo-moar f80cc7: OUTPUT«(3 7 11 15 19)␤»
12:32 torbjorn joined
timotimo wow, that's ... interesting 12:33
oh, it's Z+
i thought it was Z,
perlpilot m: say ((loop { (state $a++) }) Z+ (loop { $a++ }))[^5]; # <--- *that* is interesting 12:34
camelia rakudo-moar f80cc7: OUTPUT«5===SORRY!5=== Error while compiling /tmp/QRxtE927Qp␤Variable '$a' is not declared␤at /tmp/QRxtE927Qp:1␤------> 3ay ((loop { (state $a++) }) Z+ (loop { 7⏏5$a++ }))[^5]; # <--- *that* is intere␤»
perlpilot Hrm. maybe not.
timotimo yeah, lexical variables :)
perlpilot oh, I see. Locally, I accidentally declared two $a state vars
timotimo not available outside its curlies
perlpilot yeah, I was wondering why it wasn't complaining locally
camelia++ 12:35
12:43 AlexDaniel joined 12:44 Sgeo_ left 12:47 molaf joined 12:56 cdg left
[Coke] good morning, you wonderful perl people. 12:56
(rt not emailing) you'll get emails if you're on the compiler list and someone specifically clicks the box or replies-all via email or you opened the ticket ) AND ( someone picked reply, not comment 12:58
13:02 noninc_ joined 13:04 noninc left 13:05 stevieb9 left
gregf_ m: say qw|foo bar| Z~ qw|h1 h2| 13:05
camelia rakudo-moar f80cc7: OUTPUT«(fooh1 barh2)␤»
masak m: say qw|foo bar| X~ qw|h1 h2| 13:07
camelia rakudo-moar f80cc7: OUTPUT«(fooh1 fooh2 barh1 barh2)␤»
masak .oO( don't use Y~ because it forks the universe and runs your program in both subuniverses, but you can't merge them afterwards ) 13:08
gregf_ so deadlocks? 13:09
anyways, i was wondering if there was any specific usecase for 'multi trait_mod:<is>' 13:10
s/for/for using/
masak gregf_: you mean besides the many examples in src/core ? ;)
gregf_: I think `is cached` is a fairly representative use case.
gregf_ masak: sure, those docs are excellent. that said, what do those try to achieve? 13:11
i could see quite a few of those in the docs
masak gregf_: I'm afraid I don't quite understand your question 13:12
gregf_ say i have a trait/role/whatever:multi trait_mod:<is>(Routine:D $r, :$foo!) { say $r.^name; } and a class Foo { multi method bar() is foo { }} <== would that method override the class method?
masak gregf_: you are asking when one would be tempted to go for a `trait_mod:<is>` rather than other abstractions?
"override the class method"? 13:13
`is` decorates a thing rather than overriding it
gregf_ masak: well where do those traits fit in the whole thing. i know what inheritance is, i know about delegation but where would a 'multi trait_mod' fit in?
llfourn [Coke]: re: rt not mailing, ah thanks for the info. 13:14
gregf_ ah - decorator :)...
masak gregf_: a routine has 0..* traits
timotimo yeah, the trait just gets called at compile time and gets the method passed to it
that's all
masak gregf_: as the trait gets *applied*, its code runs and it has the chance to run side effects, including mixing roles into the routine, etc
decommute & 13:15
13:17 rurban joined
gregf_ masak: timotimo thanks 13:18
13:19 Actualeyes left 13:20 rurban1 left 13:21 skids joined
RabidGravy gregf_, thousands of uses, see e.g. my AccessorFacade module 13:21
also, JSON::Marshal, JSON::Unmarshal, XML::Class (and I'm grepping the rest of my modules as I type) 13:23
gregf_ RabidGravy: sure, thanks 13:25
RabidGravy Oh Tinky, the forthcoming Sofa and a few other places
I tend to use it quite a lot for most of the reasons given above and others 13:26
13:27 grassass left
timotimo oh, what's tinky? 13:27
also, isn't that logging module yours? the one that can stream log data to a html "app"?
RabidGravy a sort of workflowy, state machiney thing
timotimo you may want to list it in the most wanted in a place
RabidGravy Lumberjack
it's quite a lot quicker now I ditched Staticish and implemented the highlander stuff internally so I didn't have to get fancy and it can be precompiled 13:29
timotimo oh?
RabidGravy there's a bug, if you .wrap at compile time in a module, the wrapped target doesn't survive precompilation 13:30
timotimo oh, damn 13:31
RabidGravy it also afflicts OO::Monitors
timotimo dang :( 13:32
13:32 Actualeyes joined
RabidGravy rt.perl.org/Ticket/Display.html?id=125634 is an example but there's a bunch of them 13:33
timotimo right :\ 13:34
13:34 tbrowder joined
RabidGravy or rt.perl.org/Ticket/Display.html?id=127860 13:36
but yeah, it appears there is a category of fail whereby a has &!foo does not survive precompilation 13:37
13:38 tbrowder left 13:41 grassass joined 13:43 yqt left 13:45 kid51 left 13:47 vytas joined
timotimo .join #perl6-noise-gang 13:54
yoleaux timotimo: Sorry, this command is admin-only.
timotimo hmm
13:55 girafe joined 13:56 araujo left 14:00 cdg joined
dalek sectbot: b25b19c | (Aleks-Daniel Jakimenko-Aleksejev)++ | README.md:
Changed README according to the latest commit

Demonstrates some warnings that you may see
14:00
14:01 _mg_ left 14:03 _mg_ joined, _mg_ left 14:14 rurban1 joined 14:15 baest joined, rurban left 14:18 rurban joined 14:19 rurban1 left 14:22 kid51 joined 14:23 tbrowder joined
tbrowder hi, p6 people 14:24
if this is a bug, I'm prepared to file it:
m: use Test; plan 1; skip "skip"; ok True;
camelia rakudo-moar f80cc7: OUTPUT«1..1␤ok 1 - \# SKIP skip␤ok 2 - ␤# Looks like you planned 1 test, but ran 2␤»
tbrowder Shouldn't the skip function not count as a test? 14:25
timotimo i think you run skip instead of ok or nok
moritz yes, that's right
timotimo for the perl6 spec test suite we have a "fudger" that turns test calls into skip calls or todo calls 14:26
tbrowder the docs are not clear about that
timotimo ok. they ought to be.
however
how are you going to skip something like "ok spurt 'foobar.txt', 'heya!'"
tbrowder to me, skip means you don't execute it
moritz if $implemented { ok 'foobar.txt', 'heya!'" } else { skip 'Not yet implemented' } 14:27
timotimo yeah, but how is the Test module supposed to make that happen?
moritz it can't do flow control 14:28
tbrowder then what is the intent of "todo"? 14:29
timotimo turns an nok into an ok, and an ok into a nok 14:30
but just by adding a # TODO at the end of the output
[Coke] todo still runs the test.
timotimo i.e. the tap parser expects a line with a # TODO at the end to start with "nok" in order to pass, otherwise that test fails
tbrowder anyhoo, I'll take a look at tweaking the docs on skip... 14:31
timotimo cool
tbrowder whoops, what about this example: 14:34
m: use Test; plan 1; my $test-it = False; if !$test-it { skip "skip"; } else { ok True; }
camelia rakudo-moar f80cc7: OUTPUT«1..1␤ok 1 - \# SKIP skip␤»
moritz I wonder if it's intentional that that # is escaped 14:35
14:35 khw joined
tbrowder my bad: wrong example... 14:35
moritz nothing wrong with your example 14:37
I think it might be a bug in Test.pm6
but I'm not sure
14:37 M-Illandan left
tbrowder moritz: I know, but I confused it with what I thought was a bad example--please ignore the whoops comment 14:38
14:44 vytas left
hoelzro .tell lizmat any thoughts on irclog.perlgeek.de/perl6-dev/2016-0...i_12621041 ? 14:47
yoleaux hoelzro: I'll pass your message to lizmat.
14:48 kid51 left 14:49 zacts left
tbrowder timotimo: can you please give a simple example of proper use of the Test "todo" function? 14:49
timotimo *shrugs*, i've never used it myself. i always relied on the fudger to put it into place for me 14:50
tbrowder well please show how to tell the fudger to do that 14:51
timotimo that's not for the docs, though
14:51 azawawi joined
perlpilot tbrowder: doc.perl6.org/language/testing#Skipping_tests 14:52
timotimo that's a tool proprietary to the spec test suite
azawawi m: "ih".flip.say # :)
camelia rakudo-moar f80cc7: OUTPUT«hi␤»
14:52 _mg_ joined 14:54 huggable left, huggable joined 14:55 _nadim joined
AlexDaniel m: say [R~] comb ‘ih’: # :D 14:55
camelia rakudo-moar f80cc7: OUTPUT«hi␤»
azawawi AlexDaniel: :) 14:56
AlexDaniel m: say [R~] comb %*ENV<ME>: # :D
camelia rakudo-moar f80cc7: OUTPUT«leinaDxelA␤»
14:56 nadim left
azawawi pasteboard.co/1vvJzXob.png # github.com/azawawi/gtk-simple/blob...derbar.pl6 14:58
RabidGravy azawawi++ # pwetty 15:00
15:00 zacts joined 15:01 M-tadzik joined
azawawi RabidGravy: tanks :) 15:02
azawawi next stop developer.gnome.org/gtk3/stable/Gt...utton.html :) 15:03
15:04 yqt joined 15:06 domidumont left
RabidGravy I thought we had radio buttons already 15:06
15:07 rurban_ left
tbrowder timotimo: looks like "fudger" always works: 15:09
m: use Test; my $my-pi = 3; todo 'not good'; is $my-pi, pi, 'my-pi';
camelia rakudo-moar f80cc7: OUTPUT«not ok 1 - my-pi# TODO not good␤␤# Failed test 'my-pi'␤# at /tmp/SFcZE0Hkqd line 1␤# expected: '3.14159265358979'␤# got: '3'␤»
timotimo no, the fudger is a separate program that acts as a pre-processor to perl6 code 15:10
github.com/perl6/roast/blob/master.../pod.t#L10 - random example
15:11 kurahaupo joined
tbrowder timotimo: okay, thanks 15:12
15:13 M-tadzik is now known as tadzik 15:16 alnewkirk joined 15:18 nadim joined
azawawi RabidGravy: we have developer.gnome.org/gtk3/stable/Gt...utton.html 15:21
RabidGravy ah
15:22 _nadim left, _nadim joined 15:23 nadim left 15:24 _nadim left 15:25 ssotka joined 15:27 _nadim joined 15:32 aries_liuxueyang left 15:34 aries_liuxueyang joined
azawawi feels dizzy because of all-day fasting... later & :) 15:37
15:39 araujo joined, azawawi left, nadim joined
[Coke] hopes azawawi is ok. Coke tries to time his fasting so it ends with breakfast when has to for medical stuff. Did it once to end in the afternoon, it was horrible. 15:40
15:41 _nadim left
timotimo potentially ramadan? 15:41
15:42 _nadim joined
RabidGravy yaw 15:42
masak I just assumed it was
TimToady we have have a senate candidate in california who actually believes there are orbital mind control lasers; I don't think I'll vote for her...
15:42 M-matthew joined, M-Illandan joined
RabidGravy every once in a while I have to have a blood test that requires a 24hour fast, it sucks 15:42
perlpilot I imagine summertime ramadan is the worst because of the long days
15:43 pmurias joined
RabidGravy well in theory it's the time in Mecca so it's nearer the equator 15:43
but in other news: 15:44
perl6 -Ilib -e 'use Squirrel; say Squirrel.new().update("foo", { bar => 1, baz => 2}, where => foo => "bar",).perl'
("UPDATE foo SET bar = 1, baz = 2 WHERE ( foo = ? )", ["bar"])
pmurias TimToady: if she is right, you will vote for her anyway ;)
15:45 nadim left
RabidGravy or "that's exactly what they want you to think" 15:45
15:47 Actualeyes left 15:49 khisanth__ joined
RabidGravy "Method 'mao' not found for invocant of class 'List'" - PAPER TIGER IMPERIALIST COMPUTER DOG! 15:51
15:53 khisanth_ left
grondilu I once tried a three-days fast. That was really not fun. 15:55
profan perlpilot: ramadan in sweden must be "fun" 15:58
sort of sundown at 10PM, sunrise at 03:35
if youre in the polar circle, ehh 15:59
16:00 Fleurety joined
grondilu depends if it's winter of summer though 16:00
geekosaur wonders if they make adaptations 16:03
16:03 mohae_ left
perlpilot the only muslims I know of in the USA use local sun up/down for ramadan. Not sure if that's widely common or just particular to the people I know 16:05
16:07 _mg_ left
timotimo none of the muslin i know cares about sunrise or sundown 16:09
or eating
perlpilot that's because it's just clothes 16:10
timotimo .o( so dehumanizing )
ilmari www.theatlantic.com/international/a...et/277834/ 16:11
16:12 itaipu joined, Hor|zon_ left
perlpilot Keeping track of sun rise/set in Mecca sounds like a good strategy 16:13
16:14 Hor|zon joined 16:20 nadim joined 16:21 _nadim left 16:26 keix left 16:28 kaare_ joined
arnsholt In Oslo the fast is apparently 20 hours per day this year, which is pretty brutal 16:28
16:31 sno left 16:39 dakkar left 16:43 _nadim joined 16:45 nadim left
gregf_ a Bible fast would be a 24 hour day afaik ;) 16:48
16:48 nadim joined 16:49 Humdai left
timotimo like one of those days god took to build universal things? 16:50
16:51 _nadim left
masak .oO( like Universal Studios ) 16:52
geekosaur yom kippur fast is 25 hours (one day plus time added on both ends, typically 18 minutes before and enough until after for "3 medium-sized stars" to be visible)
gregf_ i guess.. tho' on today, 24 hours are like 2 hours 16:53
'yom kippur' is passover i guess?
geekosaur and day defined as sunset to sunset
no
day of atonement, 9 days after the Jewish new year
16:54 lizmat joined
geekosaur Judaism has a bunch of part-day fasts (sunrise to sunset) but only two full day fasts: yom kippur and tisha be-av (the latter rabbinical so there is a little flexibility) 16:55
huf_ gregf_: passover is more ~~ easter 16:56
but after all these years, there's not too much correspondence :)
geekosaur there is a part-day fast before passover for some (fast of the firstborn), but the main feature of passover is no leavened bread
huf_ and an insanely complicated dinner :) 16:57
92 courses, each with its own symbolism
geekosaur only the first night (or first two outside Israel) --- but yes, there's a reason its name translates as "order" (in the sense of an ordered list)
("seder" that is, for the meal) 16:58
huf_ my most vivid memory about the whole thing is the pun we made on the honey/walnut thing
16:59 _nadim joined
huf_ en.wikipedia.org/wiki/Charoset kiiiinda sounds like "hajszesz" (hair tonic?) 16:59
that and i can still hear a child's voice singing "Ma nishtana ha lyla ha zeh mikkol hallaylot?" :) 17:01
17:01 cdg left
masak getting those "Missing or wrong version of dependency" errors on a many-a-daily basis now 17:01
is there any way I can turn off precomp? it's delivering more error messages than speedup at present for me 17:02
17:02 nadim left 17:10 luiz_lha left 17:19 nadim joined, _nadim left 17:21 zakharyas left 17:22 sno joined 17:23 _nadim joined, spintronic joined 17:25 nadim left 17:26 nadim joined 17:27 domidumont joined 17:28 _nadim left
grondilu masak: "no precompilation;"? 17:28
[Coke] masak: are you using rakudo HEAD? or a slightly older version? 17:30
masak [Coke]: very nearly rakudo HEAD
This is Rakudo version 2016.05-54-g48fe6ae built on MoarVM version 2016.05-17-g6075599 17:31
17:31 spintronic left
masak [Coke]: FROGGS reported the same issue to RT yesterday 17:31
17:33 _mg_ joined 17:34 spintronic joined 17:35 spintronic_ joined 17:38 spintronic_ left, spintronic left
RabidGravy m: my $a = ( -foo => 1, ); # could this be made to say "did you mean to quote '-foo'"? 17:39
camelia rakudo-moar f80cc7: OUTPUT«Cannot call Numeric(Pair: ); none of these signatures match:␤ (Mu:U \v: *%_)␤ in block <unit> at /tmp/mNx8CRXxMj line 1␤␤»
tbrowder timotimo: ref test funcs 'todo' and 'skip*", see pull request <github.com/perl6/doc/pull/564> 17:41
perlpilot RabidGravy: or ... could it be made to just work? :)
17:41 khisanth__ left 17:44 nadim left 17:45 yqt left
timotimo tbrowder: i don't like this part: "two separate parts of an if/else construct" 17:45
tbrowder what do you suggest? 17:46
timotimo for example, you could have a list of tests that you might have thrown some out in an earlier step, and then to make the number of tests correct, you mention them with "skip" again
"note that if you use skip to mark a test as skipped, you must also prevent that test from running"?
something like that, except more grammar
tbrowder okay, I'll fiddle with that; anything else? 17:47
RabidGravy perlpilot, I'm kind of relaxed about that, but the error had me confused and I'd copied a large data structure from P5 so it took me ages to find the actual problem 17:48
timotimo i wonder why there's a change in there that does nothing but add a trailing space to a line :)
likewise with exit; you could also have skip-rest in one branch of an if/else and the tests themselves in another. then you don't need exit() 17:49
tbrowder okay, you want more complicated examples then... 17:50
timotimo not sure 17:52
but it sounds like only exit can be used here
perlpilot RabidGravy: It's a one line addition either way ... sub prefix:<->(Pair $p) { "-$p.key()" } or sub prefix:<->(Pair $p) { fail "Did you mean to quote -$p.key()?" } 17:53
timotimo perlpilot: "-$p.key()" => $p.value, of course :)
perlpilot oops, yeah
RabidGravy ooh I hadn't thought of the former 17:54
perlpilot I was thinking too much about quoting and not enough about returning the right value :)
RabidGravy but yeah that would be cool, it's a surprising common thing
timotimo i think you'd really only want it to happen when the pair is syntactic
tbrowder timotimo: ref 'extra space at EOL', looks like a finger fumble 17:55
timotimo also, you now get -$p, but not --$p :)
RabidGravy but, that is how I'm going to save myself from having to edit this massive data structure :) 17:56
perlpilot RabidGravy: you've got perl ... no need to hand edit it :) 17:57
18:01 rurban left 18:07 setty1 joined
tbrowder timotimo: please take another look at pull #564 18:07
18:08 pmurias_ joined
timotimo that looks better 18:09
the travis check will take quite a bit of time to finish, though 18:10
history says about 15 minutes
but the chaneg looks so innocent, i don't think it'd break anything :)
18:11 pmurias left 18:13 llfourn joined 18:15 pmurias_ left 18:20 lizmat left 18:22 rindolf left 18:25 lizmat joined
lizmat . 18:28
yoleaux 14:47Z <hoelzro> lizmat: any thoughts on irclog.perlgeek.de/perl6-dev/2016-0...i_12621041 ?
lizmat m: say Inf.Rat
camelia rakudo-moar f80cc7: OUTPUT«Inf␤»
lizmat m: say Inf.Rat.Num
camelia rakudo-moar f80cc7: OUTPUT«Inf␤»
dalek c: 11a1b16 | (Tom Browder)++ | doc/Language/testing.pod:
add an example output for 'todo'; add notes about 'skip' and 'skip-test' usage
18:29
c: fcc8e00 | (Tom Browder)++ | doc/Language/testing.pod:
improve explanations for skip funcs per timotimo; remove spurious space at EOL
c: 5a51785 | RabidGravy++ | doc/Language/testing.pod:
Merge pull request #564 from tbrowder/test-skip

add an example output for 'todo'; add notes about 'skip' and 'skip-te…
RabidGravy there
lizmat m: say NaN.Rat == NaN
camelia rakudo-moar f80cc7: OUTPUT«False␤»
lizmat m: say NaN.Rat === NaN 18:30
camelia rakudo-moar f80cc7: OUTPUT«False␤»
lizmat hmmm
m: say NaN.Rat.nude
camelia rakudo-moar f80cc7: OUTPUT«(NaN 0)␤»
parabolize Is there a REPL for perl6 bloated with ridiculous features? Something like Reply, pry or SLIME? In particular something allowing quick transfer of functions from a text editor to a REPL. 18:31
lizmat m: say NaN == NaN 18:33
camelia rakudo-moar 1254bb: OUTPUT«False␤»
lizmat m: say Inf.Rat == Inf
camelia rakudo-moar 1254bb: OUTPUT«True␤»
llfourn parabolize: not that I know of 18:34
lizmat m: say (-Inf).Rat == -Inf
camelia rakudo-moar 1254bb: OUTPUT«True␤»
timotimo parabolize: there's beginnings of a Jupyter kernel
lizmat .tell hoelzro I think NaN.Rat == NaN gives False like it should, just like NaN == NaN, Inf.Rat / -Inf.Rat just DWIM now 18:35
yoleaux lizmat: I'll pass your message to hoelzro.
18:36 vendethiel left 18:43 rindolf joined 18:47 labster joined 18:48 patrickz joined, cdg joined 18:54 huggable left, huggable joined 18:55 aries_liuxueyang left 18:56 aries_liuxueyang joined 19:05 noninc_ left 19:10 Khisanth joined 19:20 araujo_ joined 19:24 araujo left
llfourn m: say "\n" ~~ /\n<?after [\n<.ws>]>/ # why doesn't this work? 19:26
camelia rakudo-moar 1254bb: OUTPUT«Nil␤»
llfourn m: say "\n" ~~ /\n<?after [\n]>/ # but this does...
camelia rakudo-moar 1254bb: OUTPUT«「␤」␤»
llfourn m: say "\n" ~~ /\n<?after [<.ws><.ws>]>/ # and so does this 19:27
camelia rakudo-moar 1254bb: OUTPUT«「␤」␤»
19:27 darutoko left
arnsholt parabolize: Not really, no. There's an initial IPython/Jupyter kernel, but it's still very much a work-in-progress 19:30
19:31 itaipu left 19:32 itaipu joined 19:35 ocbtec left 19:38 rvchangue joined 19:47 domidumont left 19:53 rvchangue left 19:55 rvchangue joined 19:57 itaipu left 19:58 itaipu joined 20:00 TEttinger joined 20:05 itaipu left
timotimo llfourn: ws might have an assertion or something 20:14
20:14 firstdayonthejob joined
llfourn timotimo: hmm where's the definition of <ws>? 20:14
nvm I think I found it in Grammar.nqp.. 20:15
is it the same? 20:16
ah no there's a method ws in Grammar.nqp 20:18
(Perl6::Grammar)
timotimo right 20:19
llfourn there's quite a lot going on there 20:20
there is a <!ww> assertion...
maybe I shouold just define my own <ws> to see if that /\n<?after [\n<.ws>]>/ DWIM 20:22
that makes*
20:24 _mg_ left 20:28 Emeric left 20:31 yqt joined
llfourn nope it looks like a bug in <?after ...> 20:32
m: my token foo { [\h|\v]* }; say "\n" ~~ /\n<?after [\n<foo>]>/ # this should work
camelia rakudo-moar 1254bb: OUTPUT«Nil␤»
20:33 lizmat left
llfourn m: my token foo { .? }; say "\n" ~~ /\n<?after [\n<foo>]> # even this doesn't work 20:33
camelia rakudo-moar 1254bb: OUTPUT«5===SORRY!5===␤Regex not terminated.␤at /tmp/EtQUMc6p65:1␤------> 3fter [\n<foo>]> # even this doesn't work7⏏5<EOL>␤Unable to parse regex; couldn't find final '/'␤at /tmp/EtQUMc6p65:1␤------> 3fter [\n<foo>]> # even this doesn't work…»
llfourn m: my token foo { .? }; say "\n" ~~ /\n<?after [\n<foo>]>/ # even this doesn't work 20:34
camelia rakudo-moar 1254bb: OUTPUT«Nil␤»
llfourn m: my token foo { <?> }; say "\n" ~~ /\n<?after [\n<foo>]>/ # this?
camelia rakudo-moar 1254bb: OUTPUT«「␤」␤»
20:34 mohae joined
llfourn I will RT unless anyone has an arugment this isn't a bug? 20:35
perlpilot Better to RT it anyway. 20:36
(looks like a bug to me though, +1 for RT)
llfourn goes to send an RT 20:37
hoelzro lizmat: okie dokes 20:38
yoleaux 18:35Z <lizmat> hoelzro: I think NaN.Rat == NaN gives False like it should, just like NaN == NaN, Inf.Rat / -Inf.Rat just DWIM now
dogbert17 o/ #perl6 20:43
20:44 rurban joined
dogbert17 m: my %e = Map.new("a", 1, "b", 2); say %e.WHAT # why do I get Hash instead of Map? 20:45
camelia rakudo-moar 1254bb: OUTPUT«(Hash)␤»
dogbert17 m: my %e := Map.new("a", 1, "b", 2); say %e.WHAT # this works though 20:46
camelia rakudo-moar 1254bb: OUTPUT«(Map)␤»
20:46 spider-mario joined
moritz because hash assignment is coercive 20:46
which allows you to write
my %e = a => 1, b => 2; say %e.^name 20:47
m: my %e = a => 1, b => 2; say %e.^name
camelia rakudo-moar 1254bb: OUTPUT«Hash␤»
moritz if it weren't coercive, you'd get a type check error :-)
m: my %e is Map = Map.new("a", 1, "b", 2); say %e.^name
camelia rakudo-moar 1254bb: OUTPUT«Map␤»
moritz m: my %e is Map = "a", 1, "b", 2; say %e.^name
camelia rakudo-moar 1254bb: OUTPUT«Map␤»
moritz dogbert17: ^^ 20:48
dogbert17 moritz: many thanks, must look at this for a while :)
20:50 Zero_Dogg left, Zero_Dogg joined, Zero_Dogg left, Zero_Dogg joined
dogbert17 moritz: is it possible to put constraints, e.g. that all values are Int ? 21:03
21:03 skids left
dogbert17 on a Map object 21:03
moritz m: say Map[Int] 21:05
camelia rakudo-moar 1254bb: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EOLD7cd4dT␤Map cannot be parameterized␤at /tmp/EOLD7cd4dT:1␤------> 3say Map[Int]7⏏5<EOL>␤»
moritz dogbert17: no, seems to be only work for hash
s/be /
s/be //
dogbert17 moritz: thx, the reason for asking is that Map seems to have an 'of' method
moritz m: say Associative.^methods(:local) 21:07
camelia rakudo-moar 1254bb: OUTPUT«(of)␤»
moritz yes, because it does role Associative :/
dogbert17 so it will only return (Mu) at all times then 21:08
moritz aye
sleep&
dogbert17 godd night moritz and thx for the help
21:10 Ven joined
perlpilot looks at the docs on Map 21:12
It's weird that the methods supplied by roles aren't listed with the other methods.
21:18 patrickz left 21:30 keix joined 21:31 captain-adequate left 21:32 TEttinger left, tharkun joined 21:34 kaare_ left 21:43 kid51 joined
dogbert17 Have another doc gist that needs looking over. Its for Baggy.kxxv. gist.github.com/dogbert17/1762f039...725acfc73d 21:44
21:45 rurban1 joined 21:46 rurban left, rurban1 left 21:55 lockdown joined
tony-o RabidGravy: any more input on modules.zef.pm ? 21:58
RabidGravy: i'm thinking of running 'prove' on all of the modules so i can provide some kind of 'passing' flag or a log of the failures if it fails 21:59
21:59 lockdown left
jdv79 tony-o: when would it run? 22:00
tony-o jdv79: upon a succesful repo pull and when i update the perl6 version on the machine
it's running on debian, currently 22:01
RabidGravy well, there's a good chance that half my modules would fail as they have external dependencies
tony-o i wonder if travis has an API - then i can handle things like external libs
gtk, etc. - hah, RabidGravy beat me to it
RabidGravy: if it's just p6 depends then i can handle that 22:02
jdv79 when would you pull?
i imagine you meant a pull with contents
tony-o jdv79: i pull from repos every 5 minutes
RabidGravy there are at least two that have non-library binary dependencies, and about fifteen that need libs
tony-o jdv79: yes, whenever there is changes actually pulled rather than just the ol 'up to date' message 22:03
jdv79 that's what travis does now and isn't as helpful as it could be
i'd say look to cpantesters. probably the best example of that sort of thing. 22:04
tony-o how would you improve that? - RabidGravy do you use t-ci right now?
jdv79 that i'm aware of
dalek c: 995ac3b | (Jan-Olof Hendig)++ | doc/Type/Baggy.pod:
Added docs for Baggy.kxxv
jdv79 tony-o: basically look to prior art:) 22:05
tony-o jdv79: i built out a cpantesters type thing for zef about two years ago so people could submit test results from different machines. i also had a rolling VM set up where it would smoke test on 5 different OS (BSD, debian, win7, osx, and another linux distro) - we ended up taking zef in another direction. i could, actually, write a zef plugin to do something like cpantesters and host that on modules.zef.pm 22:06
RabidGravy: do you use travis-ci currently? does it handle those external bins/libs ? 22:07
jdv79 yeah idk how that'd work just yet. not sure there is enough interia around here to get that up and running on its own
which is why i had planned to someday talk to the p5 testers and see if we can leverage their stuff 22:08
RabidGravy the test script manually installs the appropriate dependencies
tony-o i can roll VMs for smoke testing nightly if that's interesting at all
do, OSX, BSD, debian, and Win7 22:09
jdv79 eventually that'll fail because you can't smoke everything fast enough
RabidGravy the problem is that the META file doesn't declare the dependencies, and when I suggested an Alien type thing a while back there was wailing and gnashing of teeth and I forgot about it 22:10
jdv79 need multiple peeps doing it. this is all basically cpantesters:)
tony-o i can use modules.zef.pm as a microservice and test only things that have been updated over the last day for the time being
yea, this is just meant until the community is large enough to generate decent test reports from varying systems
jdv79 we have that with travis though. what would be nice is testing everything periodically.
but i'm not sure the need is strong to warrant the effort yet 22:11
22:12 rurban joined
hoelzro tony-o, jdv79: do you know about smoke.perl6.org/report and cpandatesters.perl6.org/ ? 22:12
also, if you're looking for nightly verfication that a module still works with current rakudo and deps, you can do what I did and just kick the travis build in a cron job 22:13
jdv79 hoelzro: yes. i think the authro said it wasn't working
at spw at least;)
22:13 rindolf left
hoelzro I don't think they are =( 22:13
since like 2015.12
but it's a start, right? 22:14
jdv79 can someone "kick the travis build" for Inline::Perl5?
i'd be interested in teh results
22:14 girafe left
hoelzro probably only the owner 22:14
I have this for Linenoise: github.com/hoelzro/perl6-linenoise-sanity-check 22:15
it's the only notion of tests that Linenoise currently has =/
22:17 rurban1 joined
hoelzro .tell BenGoldberg that's not a bad idea, but if .resume worked on that exception (which I don't know if it does), it would probably just resume parsing the current chunk of code 22:18
yoleaux hoelzro: I'll pass your message to BenGoldberg.
hoelzro .tell BenGoldberg sadly, the exception handling for that probably isn't smart enough (yet) to ask the caller to feed the parser more input
yoleaux hoelzro: I'll pass your message to BenGoldberg.
22:21 rurban left
[Coke] Definitely interested in improving our testing status. 22:24
tony-o hoelzro: yea i'm aware of it, i want to think about what the next iteration of that looks like and integrate it with the module search/browser that exists at modules.zef.pm 22:33
22:36 rurban1 left
hoelzro cool 22:37
tony-o do you have any thoughts on that? 22:38
22:38 RabidGravy left 22:45 gtodd joined 22:48 lizmat joined 22:52 wamba left 22:54 huggable left, huggable joined 22:56 araujo_ left 22:59 araujo_ joined 23:01 wamba joined, cpage joined 23:03 firstdayonthejob left 23:08 Sgeo_ joined 23:12 Xliff joined
ugexe m: ({20};;); 23:12
camelia rakudo-moar 1254bb: OUTPUT«Non ast passed to UNWANTED: BOOTInt␤Non-QAST node visited BOOTInt␤Weird node visited: BOOTInt␤Non-QAST node visited BOOTInt␤Weird node visited: BOOTInt␤===SORRY!===␤Unknown QAST node type BOOTInt␤»
Xliff \o #perl6
AlexDaniel m: (;) 23:14
camelia rakudo-moar 1254bb: OUTPUT«(signal XFSZ)Non-QAST node visited BOOTInt␤Weird node visited: BOOTInt␤Resultchild 0 can't returns! BOOTInt␤- QAST::Stmts :BY<comp_unit ua u> :context<sink> (;)␤ - QAST::Stmt :BY<comp_unit ua u u> :context<sink> :final (;)␤ - 0␤␤Non-QAST …» 23:15
grondilu /quit
oops sorry
23:15 grondilu left
AlexDaniel ugexe: RT #127473 I believe 23:16
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=127473
23:16 cpage_ left 23:26 wamba left 23:29 spider-mario left 23:32 AlexDaniel left 23:36 TEttinger joined
Xliff AlexDaniel: Bug in current rakudo? 23:39
23:41 setty1 left 23:42 setty1 joined 23:45 cpage_ joined 23:56 synopsebot6 joined