»ö« 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 Azry left, michel_mno_afk left 00:02 michel_mno_afk joined, michel_mno_afk is now known as michel_mno, TEttinger joined
ZoffixWin How do I go about declaring my own traits? 00:04
m: multi sub trait_mod:<is> (:$meow!) { say "Meowing!" }; sub foo is meow {}; foo
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/F8JFJWUdOq␤Can't use unknown trait 'is meow' in a sub declaration.␤at /tmp/F8JFJWUdOq:1␤ expecting any of:␤ rw raw hidden-from-backtrace hidden-from-USAGE␤ pure default DEPRECATED inl…»
ZoffixWin m: say &trait_mod:<is>.candidates
camelia rakudo-moar 40a953: OUTPUT«(sub trait_mod:<is> (Mu:U $child, Mu:U $parent) { #`(Sub|70629728) ... } sub trait_mod:<is> (Mu:U $child, :$DEPRECATED!) { #`(Sub|70636872) ... } sub trait_mod:<is> (Mu:U $type, :$rw!) { #`(Sub|70637024) ... } sub trait_mod:<is> (Mu:U $type, :$nativesize!)…»
ZoffixWin I guess I can poke the insides of Attribute::Lazy 00:05
timotimo you have to take a positional argument 00:06
sortiz m: multi sub trait_mod:<is> (Routine $r, :$meow!) { say "Meowing!" }; sub foo is meow {}; 00:07
camelia rakudo-moar 40a953: OUTPUT«Meowing!␤»
ZoffixWin Ah, I see. sortiz++
sortiz And, as you see, the trait is applied at compile time of your sub. 00:08
00:08 sue left
ZoffixWin m: multi sub trait_mod:<is> (Variable:D $v, :$meow!) { say "$v is Meowing!" }; my Int $v is meow = 42; 00:13
camelia rakudo-moar 40a953: OUTPUT«Variable<140161728937224> is Meowing!␤»
ZoffixWin Perl6++
00:14 ptolemarch left 00:15 ocbtec left
ZoffixWin m: multi sub trait_mod:<is> (Variable:D $v, :$meow!) { INIT say "$v is Meowing!" }; my Int $v is meow = 42; 00:15
camelia rakudo-moar 40a953: OUTPUT«Cannot call method 'Stringy' on a null object␤ in code at /tmp/7lZOMQ0tGc line 1␤ in block <unit> at /tmp/7lZOMQ0tGc line 1␤␤»
ZoffixWin I guess I should read the speculations on the subject. 00:16
00:18 Actualeyes left, molaf joined
sortiz m: multi sub trait_mod:<is> (Variable $v, :$meow!) { say "{$v.VAR.name} is Meowing!" }; my Int $v is meow = 42; # Problem was INIT, at that time $v is null. 00:21
camelia rakudo-moar 40a953: OUTPUT«$v is Meowing!␤»
ZoffixWin But there's no way to obtain the assigned value "42" inside the trait? 00:24
timotimo no, it runs at a different time, sadly
sortiz Nop. 00:25
ZoffixWin Thanks.... Just gathering facts.
00:25 Actualeyes joined
sortiz Well, I suppose the trait can construct a Proxy over the var that get called at STORE time… 00:29
01:00 lizmat joined 01:01 stmuk_ joined 01:04 stmuk left, lizmat left 01:05 Sqirrel left 01:06 Sqirrel joined 01:08 stmuk_ left 01:14 TEttinger left 01:16 TEttinger joined 01:17 Actualeyes left
dalek Iish: 5ee8038 | (Salvador Ortiz)++ | t/03-lib-util.t:
NativeLibs: Missing libraries are OK
01:20
01:21 stmuk joined 01:27 stmuk_ joined, molaf left 01:29 stmuk left 01:31 BenGoldberg left, dvinciguerra_ left, stmuk_ left 01:32 BenGoldberg joined 01:34 Actualeyes joined, cdg left 01:36 AlexDaniel joined 01:37 stmuk joined, kid51 left
dalek Iish: 3de997e | (Salvador Ortiz)++ | / (2 files):
For panda's users, now v0.5.6
01:38
01:39 molaf joined
astj m: subset MaybeInt of Any where { !.defined || .WHAT ~~ Int }; my MaybeInt $a = 3; 01:40
camelia ( no output )
01:40 BenGoldberg left
astj m: subset MaybeInt of Any where { !.defined || .WHAT ~~ Int }; my MaybeInt $a = "a"; 01:40
camelia rakudo-moar 40a953: OUTPUT«Type check failed in assignment to $a; expected MaybeInt but got Str ("a")␤ in block <unit> at /tmp/j7E8uKQGvI line 1␤␤»
01:41 BenGoldberg joined
astj Is there any good way to define a typed but nullable property for some class? Currently I define `MaybeInt` as above.. 01:44
AlexDaniel m: spurt ‘test’, ‘hello world’; 01:45
camelia rakudo-moar 40a953: OUTPUT«spurt is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in sub spurt at src/RESTRICTED.setting line 17␤ in block <unit> at /tmp/0VT303p0JN line 1␤␤»
AlexDaniel we should probably run these snippets in a VM or something
ugexe m: "test".IO.spurt("hello world") 01:46
camelia ( no output )
AlexDaniel ? O_o
ZoffixWin astj, "a" is defined and not an Int
ugexe the secret to installing modules on camelia
AlexDaniel m: "test".IO.spurt("hello world"); say "test".IO.slurp
camelia rakudo-moar 40a953: OUTPUT«hello world␤»
ZoffixWin m: subset MaybeInt of Any where { !.defined || .WHAT ~~ Int }; my MaybeInt $a = Nil; say $a 01:47
camelia rakudo-moar 40a953: OUTPUT«(MaybeInt)␤»
ZoffixWin m: subset MaybeInt of Any where { !.defined || .WHAT ~~ Int }; my MaybeInt $a = 42; say $a
camelia rakudo-moar 40a953: OUTPUT«42␤»
AlexDaniel … why have the whole restricted setting then…
geekosaur wa gona say, isn't Int already the wanted MaybeInt? 01:48
ugexe just got overlooked i would imagine
geekosaur *was gonna
and the one that isn;t "nullable" is Int:D
ZoffixWin m: use NativeCall; sub system(Str) is native {}; say system 'cal'
camelia rakudo-moar 40a953: OUTPUT«(Mu)␤»
ZoffixWin m: use NativeCall; sub system(Str) is native {}; say system 'ls'
camelia rakudo-moar 40a953: OUTPUT«#␤BenGoldBerg␤Perlito␤abc.txt␤asdf␤asdfasdfasfd␤dalek-queue␤evalbot␤evalbot.log␤foo␤lib␤log␤mbox␤niecza␤nqp-js␤p1␤p2␤p6eval-token␤perl5␤rakudo-inst␤rakudo-inst-1␤rakudo-inst-2␤rakudo-j-1␤rakudo-j-2␤rakudo-j-i…»
AlexDaniel ugexe: I still don't understand what restricted setting is trying to achieve
ugexe well it makes you type more characters, so you have less room to send a malicious command! 01:49
awwaiid hah
ZoffixWin :)
AlexDaniel
.oO( does not find it funny that we have a feature that *pretends* to improve security )
01:50
oops, that was supposed to be /me ↑ 01:51
ugexe i dont think anyone is pretending its really doing that
astj ZoffixWin , geekosaur: Hmm.. thanks. I was misunderstanding my problem.
AlexDaniel ugexe: then why we have it?
ugexe its at least a place to start? now someone can easily fix these things instead of implementing everything 01:52
sortiz have ready a patch to make NC unloadable under RESTRICTED.settings ;-) 01:53
01:54 jamesnek1 joined 01:57 jamesneko left
BenGoldberg m: "BenGoldberg".slurp.say 01:59
camelia rakudo-moar 40a953: OUTPUT«Method 'slurp' not found for invocant of class 'Str'␤ in block <unit> at /tmp/y7IVpxObuV line 1␤␤»
BenGoldberg m: "BenGoldberg".IO.slurp.say
camelia rakudo-moar 40a953: OUTPUT«Failed to open file /home/camelia/BenGoldberg: no such file or directory␤ in any at /home/camelia/rakudo-m-inst-2/share/perl6/runtime/CORE.setting.moarvm line 1␤ in block <unit> at /tmp/S8k66JuRgY line 1␤␤Actually thrown at:␤ in any at gen/m…»
AlexDaniel somehow I feel like instead of fixing endless holes in restricted setting it would be much better to get rid of it completely, so that people will have no broken-by-design option among other much better options. That is, I think that restricted setting will never make something more secure, so there's no reason to even have it.
BenGoldberg m: use NativeCall; sub system(Str) is native {}; say system 'ls B*'
camelia rakudo-moar 40a953: OUTPUT«BenGoldBerg␤(Mu)␤»
ugexe can be said of most security 02:00
02:01 Ben_Goldberg joined 02:02 BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 02:08 MasterDuke joined 02:10 stmuk_ joined 02:12 stmuk left, go|dfish left 02:13 sunnavy left, khisanth_ left, sunnavy joined, go|dfish joined 02:14 cpage_ left, dg left, noganex_ joined
MasterDuke Is there something obvious I'm missing that would cause '@array[0, 3, 7]' to be much slower than '(@array[0], @array[3], @array[7])'? With Rakudo version 2016.03 built on MoarVM version 2016.03 02:15
02:16 cpage_ joined 02:17 stmuk joined, noganex left 02:18 stmuk_ left 02:21 kurahaupo joined 02:22 stmuk_ joined, stmuk left 02:25 khisanth_ joined 02:27 dg joined 02:28 tailgate joined
tailgate hey, is there a way to filter a hash in perl6 i.e. pass it a function and a hash, and keep only the key-values that the function returns true for. 02:29
02:29 khw left
ugexe grep 02:34
AlexDaniel ‪‫‬‭I wonder how many irc clients handle this correctly. ‪‫‬‭‮҉:) 02:39
02:43 molaf left 02:44 noganex joined, noganex_ left, cdg joined
sortiz stmuk_, I'm seeing your report about DBIish failing yesterday, what was the problem? 02:46
02:47 jack_rabbit left
sortiz stmuk_, travis-ci logs do not reveal anything. 02:48
lucs tailgate: An example -> 02:49
m: my %h = (a=>1, b=>2, c=>3, d=>4, e=>5); say %h.kv.grep(-> $k, $v { $v %% 2 });
camelia rakudo-moar 40a953: OUTPUT«((d 4) (b 2))␤»
MasterDuke tailgate: another example 02:50
m: my %h := {a => 1, b => 2, c => 3};my %g = %h.grep({.key ~~ "a"});say %g.perl
camelia rakudo-moar 40a953: OUTPUT«{:a(1)}␤»
AlexDaniel m: my %h = (‘a’..‘e’ Z=> ^∞); %h .= grep: *.key eq ‘a’|‘c’; say %h 02:56
camelia rakudo-moar 40a953: OUTPUT«{a => 0, c => 2}␤»
AlexDaniel tailgate: ↑ this is probably the closest one syntactically 02:58
hmmm there's one more way
m: my %h = (‘a’..‘e’ Z=> ^∞); %h{.key}:delete if .value !%% 2 for %h; say %h 03:00
camelia rakudo-moar 40a953: OUTPUT«{a => 0, c => 2, e => 4}␤»
lucs MasterDuke, AlexDaniel: Thanks for the more idiomatic versions, pretty neat. 03:01
dalek osystem: b458be7 | MasterDuke17++ | META.list:
Add List::Combinations
03:04
osystem: 6798f3e | (David Warring)++ | META.list:
Merge pull request #194 from MasterDuke17/patch-1

Add List::Combinations
AlexDaniel sure enough you can write a function if you're doing that frequently
m: sub filter-hash(%h, &fun) { %h{.key}:delete if &fun($_) for %h }; my %hash = (‘a’..‘e’ Z=> ^∞); filter-hash(%hash, {.value %% 2}); say %hash
camelia rakudo-moar 40a953: OUTPUT«{b => 1, d => 3}␤»
AlexDaniel hm, it is probably possible to add this function to Hash itself, isn't it? 03:05
m: use MONKEY-TYPING; augment class Hash { method filter(&fun) { self{.key}:delete if &fun($_) for self } }; my %hash = (‘a’..‘e’ Z=> ^∞); %hash.filter{.value %% 2}; say %hash 03:07
camelia rakudo-moar 40a953: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in method filter at /tmp/hya3FfnW0a line 1␤ in block <unit> at /tmp/hya3FfnW0a line 1␤␤»
AlexDaniel hmm
MasterDuke m: use MONKEY-TYPING; augment class Hash { method filter(&fun) { self{.key}:delete if &fun($_) for self } }; my %hash = (‘a’..‘e’ Z=> ^∞); %hash.filter({.value %% 2}); say %hash 03:09
camelia rakudo-moar 40a953: OUTPUT«{b => 1, d => 3}␤»
AlexDaniel m: use MONKEY-TYPING; augment class Hash { method filter(&fun) { self{.key}:delete if &fun($_) for self } }; my %hash = (‘a’..‘e’ Z=> ^∞); %hash.filter: *.value %% 2; say %hash
camelia rakudo-moar 40a953: OUTPUT«{b => 1, d => 3}␤»
AlexDaniel yeah
lucs: ↑ that's even more neat in my opinion 03:10
lucs: but a little bit scary, yeah :)
.u ➕
yoleaux U+2795 HEAVY PLUS SIGN [So] (➕)
lucs AlexDaniel: Yep, I'm noting all this down :) 03:11
03:15 jack_rabbit joined
tailgate MasterDuke: thanks 03:17
03:41 cdg left 03:42 MasterDuke left
BenGoldberg wonders how much a heavy plus sign weighs. 03:46
m: my %h; say $h.grep:*; 03:47
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4PQROuv1FA␤Variable '$h' is not declared. Did you mean '%h'?␤at /tmp/4PQROuv1FA:1␤------> 3my %h; say 7⏏5$h.grep:*;␤»
BenGoldberg m: my %h; say %h.grep:*;
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/HAhLk6PL8B␤Confused␤at /tmp/HAhLk6PL8B:1␤------> 3my %h; say %h.grep:7⏏5*;␤ expecting any of:␤ colon pair␤»
BenGoldberg m: my %h; say %h.grep: { True }; 03:48
camelia rakudo-moar 40a953: OUTPUT«()␤»
AlexDaniel m: my %h; say %h.grep: *
camelia rakudo-moar 40a953: OUTPUT«()␤»
AlexDaniel yea, it's a bit sad that you always have to write space after : in this case. 03:49
but I'm pretty sure that there is a reason
BenGoldberg m: my %h; say %h.grep( :foo(bar) ); 03:51
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/4tGppwq9mR␤Undeclared routine:␤ bar used at line 1. Did you mean 'VAR', 'bag'?␤␤»
BenGoldberg m: my %h; say %h.grep( :foo('bar') );
camelia rakudo-moar 40a953: OUTPUT«Cannot call grep(Hash: Str); none of these signatures match:␤ ($: Bool:D $t, *%_)␤ ($: Mu $t, *%_)␤ in block <unit> at /tmp/RDJ4zRn6_u line 1␤»
03:52 BenGoldberg left
AlexDaniel m: my %h = <foo bar>; say %h.grep( (:foo(‘bar’)) ) 03:53
camelia rakudo-moar 40a953: OUTPUT«(foo => bar)␤»
AlexDaniel .tell BenGoldberg it is parsed as a positional argument 03:54
yoleaux AlexDaniel: I'll pass your message to BenGoldberg.
04:18 Cabanossi left 04:21 Cabanossi joined 04:23 djbkd joined 04:31 jamesnek1 is now known as jamesneko 04:32 nige1 joined 04:36 avalenn left 04:37 avalenn joined 04:53 skids joined 05:28 skids left
teatime heh, I thought .nude on Rat was named so because it shows you the naked values inside 05:30
now I learn about .nu (numerator) and .de (denominator)
but yet, I suspect my previous belief represents an intentional mnemonic :)
05:32 vendethiel left, hjst left 05:34 vendethiel joined, CIAvash joined 05:36 hjst joined
Xliff teatime++ # nu de 05:42
05:43 firstdayonthejob joined
teatime I still don't fully comprehend why Duration 'does Real' instead of 'does Rational[___, ___]'. 05:44
but I'm much less certain it's 'wrong'
05:44 djbkd left
teatime I also just spent quite a few minutes trying to figure out how Rat's 'does Rational[Int, Int]' could be correct given the design docs, only to finally notice the comment one line above, "# XXX: should be Rational[Int, UInt64]" 05:45
05:48 djbkd joined
teatime it seems like Duration could even 'is Rat', but that could suck for future additions/changes, and/or make me people feel icky? not sure. 05:51
05:53 tharkun left 05:54 tharkun joined 05:55 firstdayonthejob left 05:57 firstdayonthejob joined 06:00 mcsnolte left
moritz teatime: iirc it was a conscious decision to make Duration has-a Rat rather than is-a rat 06:08
teatime moritz: kk. for my education, what would be likely rationale(s) for that decision? 06:09
also, even though rakudo src/core/Rat.pm defines Rat as Rational[Int, Int], Rat in perl6 is *not* arbitrary precision like FatRat... I wonder what/where I'm missing
06:09 sjoshi joined 06:12 djbkd left 06:21 wamba joined 06:23 darutoko joined 06:30 _mg_ joined 06:35 _nadim joined 06:37 perturbation joined 06:40 nakiro joined 06:41 nige1 left 06:47 firstdayonthejob left, rindolf joined 06:50 jjido joined 06:51 TEttinger left, domidumont joined, fireartist joined
moritz teatime: a duration isn't simply a number, it's a time span 06:52
it can be represented as a number only if you assume a certain unit
so you have to be careful not to lose that (implied) unit by implicitly converting to any number type 06:53
teatime moritz: well, except, rakudo and design docs both implement/define it as a Rat, with units seconds
I think the typical (non-perl) technical definition of 'duration' actually includes the specific start Instant and end Instant, and the word for 'an amount of time in e.g. seconds' is something different 06:54
but too late to consider that, heh
06:55 jjido left, domidumont left, jjido joined
teatime moritz: Duration is supposed to 'happily become a Rat in numeric context' also; does 'is Cool does Real' achieve that without unexpectedly having it become a Num (and thus losing precision?) 06:55
06:55 domidumont joined
teatime I feel like I just need to figure out how to define what to return in 'numeric context' 06:56
06:56 geekosaur left
moritz teatime: for specific types (like Rat) it's simply a method of the same name 06:57
teatime: and for "just give me any number type", it's method Bridge
teatime moritz: right, and Duration.Rat does the right thing already
aha
06:57 geekosaur joined 07:00 jjido left 07:01 ggoebel19 joined 07:02 ggoebel18 left
teatime moritz: have you got a moment 07:03
I could explain my issue concisely, and you could probably help me understand. 07:04
(I'm working on a trivial patch that fixes a reported/accepted bug, but I want to also line out what seem to be a couple of related issues at the same time / make sure this does everythign it's suppsoed to)
and perhaps the answer is as simple as: Duration is currently doing "method Rat(Duration:D:) { $!tai } method Bridge(Duration:D:) { $!tai.Num }" and perhaps should be changed to "… method Bridge(Duration:D:) { $!tai }" 07:06
this is the behavior I object to: 07:08
m: my ($a, $b) = 1, 1e10; say (Duration.new($a) / Duration.new($b)).Rat.nude, (Rat($a) / Rat($b)).Rat.nude
camelia rakudo-moar 40a953: OUTPUT«(0 1)(1 10000000000)␤»
teatime this *particular* case is not really an issue, because I will be defining * and / explicitly for the Duration type 07:09
but I want to fix the *general* case of Duration losing precision in numeric operations where it shouldn't
</explanation>
07:14 wamba left
teatime (I told myself I wasn't going to bring this up again, until I had some code and a good thorough write-up w/ citations; maybe I should just go make that, and then submit it as a PR or RT issue) 07:15
masak morning, #perl6 07:18
if implementations always have flaws and always are (as it were) imperfect renditions of some perfect platonic form... on what grounds does it even make sense to talk about technical debt? 07:20
07:20 zakharyas joined
teatime heh is that related to my inquire, or just a general musing? 07:20
masak general musing
though not a rhetorical question :)
07:21 azawawi joined, wamba joined
azawawi good morning 07:21
teatime I will go make my code / write-up. 07:22
azawawi m: use File::Which;
camelia rakudo-moar 40a953: OUTPUT«===SORRY!===␤Could not find File::Which in:␤ /home/camelia/.perl6␤ /home/camelia/rakudo-m-inst-2/share/perl6/site␤ /home/camelia/rakudo-m-inst-2/share/perl6/vendor␤ /home/camelia/rakudo-m-inst-2/share/perl6␤ CompUnit::Repository:…»
07:22 wamba left 07:23 wamba joined
azawawi any reason why we cant have line number error information for the 'use NotFoundModule;' ? 07:23
masak azawawi: no reason. feel free to submit a rakudobug on that.
07:23 wamba left, wamba joined
masak (we might well have one already, but in that case we'll just merge 'em) 07:23
stmuk_ /last star 07:24
oops :)
masak notices that the p6u from Ivaylo Ilianov about Proc::Async has gone unanswered for 8 days... 07:26
p6u email* 07:27
07:29 rindolf left 07:30 cognominal left 07:32 abraxxa joined
azawawi masak: rt.perl.org/Public/Bug/Display.html?id=127883 # Thanks :) 07:34
masak no, thank *you* :) 07:35
07:37 rindolf joined 07:41 azawawi left
masak tadzik: it always comes as a surprise to me that the $path in `get $path => &cb` in Bailador is a string but is interpreted as a regex. I wonder if that could be designed in some less jarring/safer way... 07:44
07:51 cognominal joined 07:52 sortiz left 07:58 dakkar joined 08:00 astj_ joined, astj left 08:01 Actualeyes left 08:08 u left 08:22 Actualeyes joined 08:25 RabidGravy joined 08:31 g4 joined
RabidGravy boom 08:35
AlexDaniel masak: ufobat took over Bailador. So you'd better tell that to him :) 08:39
moritz
.oO( the ufo took over ... )
08:40
masak AlexDaniel: ah! thanks for letting me know 08:43
ufobat: ohai, kthx
ufobat: I might even be willing to sit down and draw up some alternatives. maybe look at how other Danceroids do this. 08:44
RabidGravy kidnapped by aliens 08:45
masak RabidGravy: I suppose you've read the ufo README at some point? 08:46
RabidGravy yeah, ages ago I guess
:)
masak wonders if he should deprecate ufo somehow, now that we live in the age of .precomp folders 08:47
08:47 cognominal left 08:48 michel_mno left 08:49 michel_mno joined
moritz masak: fwiw Mojolicious uses named placeholders for routes, so things like /concert/:id 08:50
masak: the background is that they want to be able to reverse it, that is, generate the URL from placeholder values and the route spec 08:51
RabidGravy Hmm maybe before I finally finish Sofa I should fix the HTTP::UserAgent failing very rudely if the remote end closes the connection without return a status line
psch m: enum Foo <A B C>; constant D = Foo::C; say D.perl 08:52
camelia ( no output ) 08:53
masak moritz: I thought Bailador did the same? not sure.
psch: I think camelia has a slight flu.
psch yeah, still :/
well, not like i even tried to look what's up there
moritz masak: but then it's not a regex, is it? 08:55
masak moritz: it's a preprocessed string that's EVAL'd as a regex 08:58
moritz: my surprise consists in that I expect a bunch of characters (such as '.' and '-') to have their literal meaning in the URL, and they don't
RabidGravy there is something in the ecosystem that uses a more rfc6570 form for picking the bits out of a URI for servery things 08:59
psch well, having C♯/D♭ be synonymous would be nice, but not with an enum...
.u ♭
yoleaux U+266D MUSIC FLAT SIGN [So] (♭)
psch does that even work in the first place..?
i might want to learn unicode categories eventually... :) 09:00
masak psch: what are you talking about? C♯ and D♭ are not synonymous :P
psch masak: not completely, no, i know
masak: but they are numerically identical in midi 09:01
moritz they just translate to the same frequency
psch well, and that
masak one tastes like strawberries, the other smells like fresh linen
arnsholt They're only synonymous in well-tempered tunings though =)
masak they're only iden... what arnsholt++ said
DrForr There's C## as well, no?
masak aye
09:02 [particle] left
arnsholt Double sharp is just up a full step instead of a half step, though 09:02
psch that's C𝄪
moritz C#, now extra sharp!
psch anyway, the more interesting thing i was wondering about is whether a mode should now the next chords with a given interval from root to root or if a chord itself should also know that, with an optional mode 09:03
09:03 ggoebel19 left
masak .oO( Gilette C♯, now with five blades! ) 09:03
psch like, the former can't do tritone substitutions, but what does that latter actually mean for e.g. a major chord?
09:03 ggoebel19 joined
nine Ok, so what _is_ the difference between C♯ and D♭? 09:04
psch nine: one appears in sharp scales, the other in flat scales
09:04 tadzik left, ocbtec joined
masak nine: depending on how you tune your instrument, they might be different frequencies. 09:04
nine: pianos (nowadays) are often well-tempered, which means they're the same.
nine: but on a violin or a trombone, they're probably not.
nine Ok, since I only play an electronic piano, it doesn't affect me :)
psch except e-pianos, which are usually stretch tuned 09:05
09:05 ryand left, [particle] joined
masak "stretch tuned"? 09:05
psch en.wikipedia.org/wiki/Stretched_tuning
well, old ones apparently only
09:06 ryand joined
psch basically a solution to a material science problem, afaiu 09:06
arnsholt Yeah, basically sounded like a solution to a physical effects problem 09:07
09:09 M-tadzik joined
psch relevant for this kind of e-piano: www.shadetreekeys.com/775368/Stretc...CN0547.JPG 09:11
i only know about it because i tried to tune one similar to that one
it didn't really work out
masak nine: I've been talking to more than one violin player, and they tend to go "pfff... of course those tones sound different!" 09:14
nine: on many instruments, instead of well-tempering, the goal is to make a perfect fifth have a 3/2 frequency ratio 09:15
psch well, violin player *could* make them sound the same 09:16
but yeah, the pure fifth discourages that
masak m: say my $perfect = 3/2; say my $well-tempered = 2 ** (7/12) 09:17
camelia rakudo-moar 40a953: OUTPUT«1.5␤1.49830707687668␤»
masak m: my $perfect = 3/2; my $well-tempered = 2 ** (7/12); say $perfect - $well-tempered
camelia rakudo-moar 40a953: OUTPUT«0.00169292312331848␤»
09:19 M-Illandan left, M-matthew left, M-tadzik left
psch hm, or maybe tritone-substitution is best just a method on any (maj7) chord 09:21
but then i'd need to distinguish those from other chords as well... :/
09:22 azawawi joined 09:27 ggoebel110 joined 09:28 ggoebel19 left
teatime If S02 and S32 disagree, which one is authoritative? (or, I guess, roast is authoritative over both of these?) 09:29
moritz the latter 09:30
teatime S32?
psch no, roast 09:31
azawawi what's the best way (OOP-wise) to make separate OS-dependant implementations of Foo::Bar::XYZ to be used as Foo::Bar (transparently)? 09:32
09:32 vendethiel- joined
azawawi so you have Foo::Bar::Win32, Foo::Bar::Linux, ..etc and you need to access them as Foo::Bar 09:33
nine Have a Foo::Bar that contains a Foo::Bar::Whatever 09:34
psch azawawi: make Foo::Bar::Linux and Foo::Bar::Win32 roles and mix them into Foo::Bar during Foo::Bar BUILD?
09:34 vendethiel left
nine And delegate from Foo::Bar to Foo::Bar::Whatever 09:34
azawawi thanks :) 09:35
teatime .perl is supposed to print something you could give back to perl6 and get an object == to the original, right? 09:36
masak teatime: depends how literally you mean `==` 09:37
teatime: `==` is numeric comparison
teatime so, is this a bug: 09:38
masak teatime: and regardless, you'll always get a *new* object
(and there are various other caveats)
teatime m: my $r = Rat.new(1,1000000000000000000000); say $r.nude; say $r.perl; say $r == $r.perl.EVAL
camelia rakudo-moar 40a953: OUTPUT«(1 1000000000000000000000)␤0.0000000000000000000010000000000000006661338147750939242541790008544921875␤False␤»
teatime or not, since that Rat doesn't fit in Int/UInt64... (above works w/ FatRat)
psch ...i dislike that Exception thrown inside a react { } point at the react :/ 09:39
masak even the $r.perl output there looks suspect
09:42 Actualeyes left
teatime m: my $r = Rat.new(1,1000000000000000000000); say $r.WHAT; say $r.perl.EVAL.WHAT; say $r ~~ $r.perl.EVAL 09:44
camelia rakudo-moar 40a953: OUTPUT«(Rat)␤(Rat)␤False␤»
teatime I would have expected that second one to be Real, but apparently it does become a rat?
teatime is so confused, le soupir 09:45
one last question: If S02 and S32 contradict, and roast is silent on the point, which of S02 or S32 is more likely to be 'correct'?
09:46 M-tadzik joined
masak Real is not a concrete type, it's a role. maybe you're thinking of Num 09:46
teatime: S02
teatime yes, Num, sorry.
09:51 AlexDaniel left
teatime lol, I just can't win today; why does this happen: 09:53
m: my @ab = <a b>; @ab».say; @ab».WHAT.say
camelia ( no output )
teatime m: my @ab = <a b>; @ab».say; @ab».WHAT.say
camelia ( no output )
teatime er
09:53 kurahaupo left
teatime pretend camelia replied "a␤b␤(Array)" 09:53
nm; I guess you need ».WHAT».say ? this runs forever on my rakudo, though. 09:54
psch .WHAT is kinda of special 09:56
s:1st/a//
09:56 M-matthew joined, M-Illandan joined
psch which among other things means it doesn't hyper well (or at all, actually, i think) 09:57
09:58 kid51 joined
teatime ok. 09:58
10:02 djbkd joined 10:03 azawawi left 10:07 espadrine joined 10:09 cibs left 10:10 ggoebel111 joined 10:11 ggoebel110 left
moritz m: my @ab = <a b>; @ab».say; @ab».^name.say 10:13
camelia rakudo-moar 40a953: OUTPUT«a␤b␤Array␤»
moritz hm.
psch m: my @ab = <a b>; say @a.perl 10:14
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/fCv1cU06N2␤Variable '@a' is not declared␤at /tmp/fCv1cU06N2:1␤------> 3my @ab = <a b>; say 7⏏5@a.perl␤»
psch m: my @ab = <a b>; say @ab.perl
camelia rakudo-moar 40a953: OUTPUT«["a", "b"]␤»
10:14 ggoebel112 joined 10:15 ggoebel111 left
ZoffixWin .WHAT hypers, it just doesn't .say 10:15
m: 5.WHAT.say
camelia rakudo-moar 40a953: OUTPUT«(Int)␤»
psch m: my @ab = <a b>; @ab».say; @ab».^name.elems.say
camelia rakudo-moar 40a953: OUTPUT«a␤b␤1␤»
ZoffixWin Oh. Never mind me.
moritz m: my @ab = <a b>; @ab».say; say @ab.map: *.^name
camelia rakudo-moar 40a953: OUTPUT«a␤b␤(Str Str)␤»
psch well, something doesn't hyper there
m: my @ab = <a b>; @ab».say; say @ab».^name 10:16
camelia rakudo-moar 40a953: OUTPUT«a␤b␤Array␤»
psch ...and that is kind of weird
moritz m: my @ab = <a b>; say @b>>.git 10:17
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/VdJN4hf9aB␤Variable '@b' is not declared␤at /tmp/VdJN4hf9aB:1␤------> 3my @ab = <a b>; say 7⏏5@b>>.git␤»
moritz m: my @ab = <a b>; say @ab>>.gist
camelia rakudo-moar 40a953: OUTPUT«[a b]␤»
moritz that's the nodal/not-nodal distinction
10:32 kaare_ joined
M-tadzik masak: in what situation has it bit you? 10:33
10:35 M-tadzik is now known as tadzik
masak tadzik: `get '/jquery-3.0.0-beta1.js' => sub { return slurp("jquery-3.0.0-beta1.js"); }` 10:38
(I later changed that to just `get '/jquery.js'`, which felt less abstraction-leaky) 10:39
tadzik masak: ah, I see how that could be problematic 10:40
masak tadzik: and every time I use '.' in one of those URLs, I'm aware that it matches something slightly wider than I intend, for example '/jqueryZjs'
tadzik right 10:41
masak somehow I feel that the exact mix of regex and plain text string is pushed a little bit too far towards "regex" right now
tadzik I think it would be all fine as long as it's interpolated in the regex as a verbatim string, not a ... regex 10:42
masak right
that sounds like what I expect
this would be a "breaking API change", but I expect the fallout'd be small or zero 10:43
tadzik I don't imagine myself making any other behaviour intended, so this is apparently a 4-5 year old bug :)
masak I see the current implementation as a quick-and-dirty way to get mostly the right behavior :) 10:44
tadzik yeah :) 10:45
I guess I figured "if I do that I get the other feature for free"
nine Experience from Catalyst suggests that users rarely need real regex matching 10:48
10:51 cyberviking joined 10:52 cyberviking left 10:53 cyberviking joined, dvinciguerra_ joined 10:54 vendethiel joined
ZoffixWin TBH, I'd expect to write exactly zero code for the jquery file above. 10:54
10:54 vendethiel- left
ZoffixWin It should be served from something like ./public/ automatically. Every app has some CSS/JS/Image files. Requiring the user to write their own routes for it is a bit of an overkill. 10:55
10:56 cognominal joined, pmurias joined
pmurias +1 for what ZoffixWin said 10:56
having to manually serve static files is both lame and annoying 10:57
masak I would approve of such a default.
10:57 cyberviking left
masak every time something new is proposed for Bailador though, I wonder "is there prior art?" 10:58
prior art is a great way not to repeat some other Danceroid's mistakes, and to possibly even get a better solution than one bargained for
ZoffixWin Mojolicious does it the way I described. 10:59
tadzik masak: Dancer has exactly that as prior art
//public is served automatically
masak cool
ok, so we're basically at "PRs welcome", then ;)
ZoffixWin :) 11:00
11:04 kid511 joined 11:07 kid51 left
teatime where can I find .Bridge described 11:08
I've looked in a bunch of places, no luck so far
lol nm, just found it.
RabidGravy TAKE ME TO THE BRIDGE! 11:09
now to remember where I had left Sofa at 11:10
11:11 _mg_ left 11:14 pmurias_ joined 11:17 pmurias left 11:20 rindolf left, _mg_ joined
psch hrm, i ran into a bad design decision i made previous /o\ 11:22
without paying attention to the root there's no difference between the 1st inversion of a sus2 chord and the 2nd inversion of a sus4 chord 11:23
grondilu m: say @*INC 11:24
camelia rakudo-moar 40a953: OUTPUT«Dynamic variable @*INC not found␤ in block <unit> at /tmp/44VmqNSvYp line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/44VmqNSvYp line 1␤␤»
DrForr Hrm., I brought my music theory books back with me from Amsterdam...
grondilu ^was @*INC renamed?
psch m: say %*INC
camelia rakudo-moar 40a953: OUTPUT«Dynamic variable %*INC not found␤ in block <unit> at /tmp/klrFzqNysn line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/klrFzqNysn line 1␤␤»
nine grondilu: niner.name/talks/A%20look%20behind%...rl%206.pdf page 19 and following
teatime does 'does Real does Rational[…]' make any sense
I'm leaning toward no
nine grondilu: also docs/module_management.md in the rakudo repo 11:25
psch DrForr: does that mean you want a commit bit for github.com/peschwa/p6-Music-Helpers ? ;)
11:26 CIAvash left
teatime and assuming no, it's OK for a 'does Real' to have .Bridge return a Rat ? 11:26
DrForr psch: Oh, sure, why not. 11:27
grondilu ok, that makes a few entries in S28 obsolete though. 11:29
psch DrForr: fair warning, it's not documented, and the tests are, well, an empty directory :l
grondilu still uses the synopses as his first documentation resource. Maybe he's wrong. 11:30
11:30 bakedb joined
grondilu m: say $*REPO, *.next-repo ... ~* 11:31
camelia rakudo-moar 40a953: OUTPUT«(inst#/home/camelia/.perl6)␤»
psch also i probably have at least one questionable decision in there and a few oversights
like the thing with sus2/sus4 just then
grondilu would have just called 'next-repo' 'succ'. 11:32
psch and the plus side, it does kind of work and the example does actually produce interesting improvisations, albeit often not that smooth
s/and/on/
DrForr: 'tis done, feel free to hemm the feature creep in or whatever vOv 11:33
nine m: say $*REPO.repo-chain 11:38
camelia rakudo-moar 40a953: OUTPUT«(inst#/home/camelia/.perl6 inst#/home/camelia/rakudo-m-inst-2/share/perl6/site inst#/home/camelia/rakudo-m-inst-2/share/perl6/vendor inst#/home/camelia/rakudo-m-inst-2/share/perl6 CompUnit::Repository::AbsolutePath.new(next-repo => CompUnit::Repository::NQ…»
grondilu ^ oh ok I'll use that. 11:43
11:44 kid511 left 11:49 gregf_ joined
nine What for if I may ask? 12:09
grondilu I want to write C version of functions I use in one of my modules. Trying to write a sub to give to the native trait. 12:13
ended up writing something like : sub path { first { .IO ~~ :f }, $*REPO.repo-chain >>~>> 'libmyfunc.so' } 12:15
and then sub myfunc is native(&path) {...}
next-repo and repo-chain are poor name choices IMHO. I would have used succ and ZEN-POS 12:17
12:18 ptolemarch joined 12:19 sjoshi left 12:20 sjoshi joined 12:21 brrt joined
nine What does ZEN-POS mean? 12:22
jnthn I think $comp-unit-repo++ is a bit *too* cute :P
nine grondilu: you can completely forget that approach and instead learn about %?RESOURCES. It is a much better solution for finding your lib :) 12:23
grondilu anything that implements the notion of a "successor" should implement succ imho
nine: ok I'll do
nine grondilu: see for example github.com/niner/Inline-Perl5/blob...l5.pm6#L18
grondilu: is @array[1] the successor of @array[0]? 12:24
jnthn It feels rather unnatural to me to think of it as a successor, is all
12:25 eone joined
psch m: class A { method ZEN-POS { "foo" } }; say "{ A.new[] }" 12:25
camelia rakudo-moar 40a953: OUTPUT«foo␤»
grondilu it's dubious for @array[1] but if $*REPO implement a 'next-repo' method it's clear to me it should implement succ.
Linked lists have a natural 'succ' method. 12:26
masak jnthn: it's unnatural because it's not the only possible sequence. it's not "canonical".
moritz but it's more a fallback than a successor, no?
masak grondilu: it's far from clear to me.
nine I've always called them .prev and .next for linked lists
psch nine: ZEN-POS is for empty slices, to clear the example up
empty *positional* slices 12:27
...i don't know if ZEN-ASSOC exists, though
masak grondilu: the next/prev and sequence view here are not at all inherent to the repos themselves. they're imposed from the outside.
nine psch: thanks!
grondilu ok, fine.
12:28 tokomer joined, pmurias_ is now known as pmurias
grondilu nine: there is no occurence of RESOURCES in any synopses :/ 12:29
m: say %?RESOURCES
camelia rakudo-moar 40a953: OUTPUT«Nil␤»
grondilu oh hang on, singular
m: say %?RESOURCE
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/XahKlKzPcO␤Variable '%?RESOURCE' is not declared␤at /tmp/XahKlKzPcO:1␤------> 3say 7⏏5%?RESOURCE␤»
grondilu wth 12:30
masak grondilu: I've come across such situations before, where a particular next/prev makes sense only while in a certain "view" 12:31
grondilu: someone the other day had such a case for Rat
12:35 azawawi joined
azawawi hi 12:35
masak hi azawawi 12:36
azawawi how do i access the C level FILE* descriptor from Perl 6 API? e.g. to pass it to a native call function
teatime azawawi: I don't know that you can, you can only get a fd / file descriptor (int) afaik
timotimo doc.perl6.org/routine/native-descriptor 12:37
teatime although perhaps you can turn that into a FILE* with fdopen native lib func, not sure
speculated this one day, MadcapJake or Xliff (can't remember) may have tested it.
jnthn Yeah, getting native-descriptor and obtaining a FILE * from that is the right way 12:38
Pretty sure it's been done before :)
Note that internally we don't actually have a C-level FILE* to give you :)
azawawi cool thanks :)
jnthn That's C's higher level API, rather than the OS-level handle. 12:39
azawawi github.com/azawawi/perl6-net-curl/...ODO/rtsp.c # converting to perl6 to do RTSP video playback via Net::Curl :)
grondilu is it OK to have circular use of 'use'? I mean for instance in A.pm6 'unit module A; use B;' and in B.pm6: 'unit module B; use A;' ?
teatime grondilu: yes.
jnthn grondilu: No
teatime lol, dang I tried.
jnthn Because 1-pass parsing. 12:40
psch .oO( maybe. i don't know. can you repeat the question? )
grondilu what the correct method then?
12:40 spanner_ joined
timotimo put both into the same module 12:40
well, into the same compunit 12:41
grondilu I really don't want to put them in the same file though
masak then you need to symmetry-break the order somehow
dalek c: 3e69963 | (Zoffix Znet)++ | doc/Language/exceptions.pod:
Fix typo
jast isolate things needed by both into a third unit 12:42
12:43 Sgeo left 12:45 sufrostico joined
masak aye 12:47
or as the DDD book has it, "Shared Kernel" :)
timotimo what does the D&D book call it? 12:48
moritz Fireball!
12:48 djbkd left
DrForr . o ( I cast "Magic Missile." ) 12:49
moritz www.fanfiction.net/s/8096183/1/Har...Natural-20 12:50
timotimo i put on my robe and system designer's hat
moritz the story of a D&D character transported into Harry Potter universe 12:51
12:51 sufrostico left
masak I tried reading that one twice now, and got distracted someways through. 12:53
it's actually quite decent, but I guess HPMoR has skewed my standards and made me picky.
12:53 molaf joined
moritz its amusing to me old RPG player 12:54
masak yes, to me too. 12:55
azawawi gist.github.com/azawawi/d3a333076f...0b0a8505b8 # so a p6 method is a sub in disguise?
moritz azawawi: no, a method can also act as a class method (unless you put a :D on the invocant type) 12:57
pmurias is something like /dev/fd/1000 possible on windows?
psch m: say Method.isa(Routine)
camelia rakudo-moar 40a953: OUTPUT«True␤»
psch scnr
m: say Method.isa(Sub)
camelia rakudo-moar 40a953: OUTPUT«False␤»
12:58 cdg joined
moritz the main difference between sub invocantions and method invocations is how they are looked up 12:58
12:58 mr-foobar left
moritz method call: method tables. Sub calls: lexical scopes 12:58
psch another, less important one, is the minimum amount of arguments
12:58 mr-foobar joined
psch even a class method needs 1 argument 12:58
+at least 12:59
moritz m: my $m = method() { say 42 }; $m()
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5===␤Word 'method' interpreted as 'method()' function call; please use whitespace around the parens␤at /tmp/uZT5n_i6HY:1␤------> 3my $m = method7⏏5() { say 42 }; $m()␤Unexpected block in infix position (two terms in a row)␤at …»
masak azawawi: right, what moritz++ said. it's a method even when you're doing `Foo.method`
moritz m: my $m = my method() { say 42 }; $m()
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5===␤Type 'method' is not declared. Did you mean 'Method'?␤at /tmp/fuTiJvEJ0i:1␤------> 3my $m = my method7⏏5() { say 42 }; $m()␤Malformed my␤at /tmp/fuTiJvEJ0i:1␤------> 3my $m = my7⏏5 method() { say 42 }; $m()␤␤»
moritz m: my $m = my method () { say 42 }; $m()
camelia rakudo-moar 40a953: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in method <anon> at /tmp/rt0xWHxRns line 1␤ in block <unit> at /tmp/rt0xWHxRns line 1␤␤»
moritz ... which nicely illustrates psch++'s point
masak azawawi: a method could be seen as "a sub, but with an additional (implicit) first $self parameter"
azawawi: in Perl 6, you can make that parameter explicit by writing `method foo($self: $p1, $p2) {` 13:00
azawawi: in the case of calling it on the class, `$self` simply contains the type object instead
azawawi so Foo.zzz is a method on an uninitialized object, right?
masak on the type object Foo, yes
m: class C { method x { say self.defined ?? "instance" !! "type object" } }; C.new.x; C.x 13:01
camelia rakudo-moar 40a953: OUTPUT«instance␤type object␤»
masak m: class C { method x($self:D: ) { say self.defined ?? "instance" !! "type object" } }; C.new.x; C.x 13:02
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/gjZ6198jCR␤Invalid typename 'D' in parameter declaration.␤at /tmp/gjZ6198jCR:1␤------> 3class C { method x($self:D7⏏5: ) { say self.defined ?? "instance" !! ␤»
13:02 sufrostico joined
moritz doesn't really like the term "undefined" for type objects. They are rather well-defined. 13:02
masak m: class C { method x(C:D $self: ) { say self.defined ?? "instance" !! "type object" } }; C.new.x; C.x
camelia rakudo-moar 40a953: OUTPUT«instance␤Invocant requires an instance of type C, but a type object was passed. Did you forget a .new?␤ in method x at /tmp/RkzS683Rep line 1␤ in block <unit> at /tmp/RkzS683Rep line 1␤␤»
masak moritz: it doesn't bother me at all, though I see what you mean 13:03
"undefined" is just one of these programming terms whose meaning has taken a life of its own
azawawi so basically it is a cool way of not using 'is export' and module(s) if you need a fully qualified name :)
13:03 [particle] left
psch azawawi: that's an interesting summary of OOP :) 13:03
azawawi moritz++, masak++
masak azawawi: no, basically it's just a method that you can call on the class itself ;)
azawawi Java's static :) 13:04
arnsholt I guess undefined is kind of like length. A bit overloaded
masak azawawi: by default Perl 6 doesn't have much of a distinction between "instance methods" and "static (class) methods"
but if you want, you can impose that distinction
13:04 ggoebel112 left
masak or (even better), have the lack of distinction work to your advantage in your code 13:05
azawawi cool
13:05 ggoebel112 joined
masak if you think about it, this lack-of-distinction is the thing that makes .new methods tick 13:06
they're not special-cased in any way in Perl 6, like constructors are in many other OO settings
they just happen to work (and be called most often) on the type object 13:07
arnsholt Speaking of defined/undefined, I quite like the term jnthn++ uses in 6model: concrete
azawawi i think we need a PopularLanguageA-to-Perl6 cheatsheets
13:08 [particle] joined
timotimo someone started a ruby to perl6 guide on doc.perl6.org, but it was deemed "not the right thing to have on doc.perl6.org" 13:08
awwaiid timotimo: not quite 13:09
timotimo that's not it?
awwaiid timotimo: the current status is that I need to re-organize the table of contents to put it in a good spot
timotimo ah! that was you! :)
awwaiid I have just never circled back around
yes -- PR is still there, really we just want a good home for it and right now the docs are too flat
otherwise it is a great doc :) 13:10
perlpilot awwaiid: What's wrong with "ruby-to-perl6"? Put it in a section called "Coming at Perl 6 from other languages" and you're good.
awwaiid perlpilot: nothing at all! that's exactly what I'm going to do 13:11
raw.githubusercontent.com/perl6/do...tshell.pod is the raw doc if anyone actually is asking for the content
perlpilot azawawi: I'd like to see what Haskell-to-Perl6 looks like. They both have concepts that map well to each other, but not quite the same.
awwaiid definitely 13:12
moritz "forget everything you know. Now start reading the beginner's tutorial."
awwaiid the other day at a meetup we did a sample problem in Elixir and then translated it to Perl6 and it mapped very nicely (just a boring problem, no concurrency, but did have multi dispatch with guards)
perlpilot awwaiid: Is the code anywhere public? (like Rosettacode?) 13:13
13:14 sue joined
azawawi awwaiid++ 13:14
awwaiid gist.github.com/awwaiid/ca6a33b419...ddb46783c4 and gist.github.com/awwaiid/655f4dd4f7...788a9cde9, though I need to get the elixir code
azawawi++ # tab-complete-buddies
azawawi hehe 13:15
Maybe start a module like metacpan.org/pod/perlfaq?
perlpilot mentally changes azawawi to awazawi to make that more true.
13:16 zakharyas left
awwaiid I have DC-Baltimore Perl Workshop this weekend, but afterward I'll come back around to this and get these docs a nice spot and close out that PR 13:16
azawawi perlpilot: that's what happens when you have a popular and generic name in Arabic... you go by the family name :) 13:17
13:17 zakharyas joined
perlpilot azawawi: btw, doc.perl6.org/language/faq 13:19
pmurias masak: it's interesting that the "Harry Potter fanfic" part of HPMoR has detered all my outside-of #perl6 friends from even looking at it when I tell my friends about it
moritz pmurias: TBH I shied away from it for exactly that reason 13:20
azawawi perlpilot: thanks. I meant for the language-to-perl6 faq/cheatsheet guides
moritz pmurias: and only started reading it after getting several recommendations from different folks
azawawi going home.... thanks 13:21
13:21 azawawi left
pmurias a lot of my enjoyment of it is from the weirdness of the Harry Potter universe mixing in with the weird AI/rationality religion of the author 13:23
teatime pmurias: /me /join's #bayesianconspiracy
(not really, but..)
13:25 rindolf joined
masak pmurias: yes, same here 13:28
HPMoR is *inseparably* Eliezer
jast I read parts of it but the "in-your-face rationality" got old after a while 13:31
psch from an 11 year old, too 13:32
masak it's not possible to dispute those points without spoiling the end.
psch huh. if there was anything that makes that make sense i forgot it
well, or i didn't actually read it until the end 13:33
now i'm really not sure anymore :/
pmurias the end is a bit disapointing with the AI cult propagand taking over a lot
jast I can kind of imagine that it goes to some kind of "whoops, your rationality sucked, you lose" climax, but I'm not going to spend the time to get there
geekosaur tried to read HPMoR and bounced off it *hard*
jast I did last until chapter 90-something
masak pmurias: I found the end dissapointing mostly by virtue of being an end. not quite sure what you mean by "AI cult propagand[a]" in this case.
maybe you're thinking of the two documented cases where Eliezer got out of the box? :P 13:34
pmurias I view the HPMoR as a balance between the story and singularity bullshit 13:36
masak I dunno, author's clearly colored by his views -- but I felt the story presses less strongly on those points than (say) you're doing right now 13:37
pmurias in right proportions it's interesting to see what Elizer is trying to promote
psch oh, i remember why HPMoR!Harry is 11 years old and in-your-face rational 13:39
timotimo because of his parents?
jast because scientist
masak because spoilers
psch yeah
jast now I want to continue reading it even less
masak the story was a lot more about rationality than it was about the singularity and transhumanism, IMHO 13:40
psch i'd even argue morality comes before the singularity and transhumanism as well
but that's probably also because spoilers
masak also, it was in no small part about female witches and equal rights
tony-o are you talking about harry potter fanfic or something else.. 13:41
13:41 scovit joined
[Coke] gave it a shot when people were raving over it years ago, but didn't find it compelling. 13:42
stmuk_ "lesswrong"
13:42 eone left
masak tony-o: a particular (and unusual) one, called "Harry Potter and the Methods of Rationality" 13:43
jast I'd hesitate to call any one fanfic 'unusual', given the extreme variance
scovit Hello, I have question which I cannot find an answer in the docs: if I want to smartmatch against a hash key=>value, you can do like this: %hash ~~ :ciao("mamma") # and it works 13:44
m: my %g; %g<ciao> = "mamma"; say %g ~~ :ciao("mamma");
camelia rakudo-moar 40a953: OUTPUT«True␤»
scovit How do you do this in a grep call ?
in practice: you have a supply which supply u hashes
stmuk_ I prefered Yudkowsky's blog posts to HPMoR 13:45
scovit how do you grep for the one which have :ciao("mamma") ?
tony-o m: my %g = ciao => "mama"; %g.grep({ $_ eqv :ciao("mama") }).so.say;
camelia rakudo-moar 40a953: OUTPUT«True␤»
timotimo you can grep( "ciao" => "mama"
tony-o if you want the key pair then drop the .so
timotimo )
tony-o m: my %g = ciao => "mama"; %g.grep({ $_ eqv :ciao("mama") }).perl.say;
camelia rakudo-moar 40a953: OUTPUT«(:ciao("mama"),).Seq␤»
timotimo it's important to quote the key, so that it doesn't just become a named argument to the grep method
teatime is "use warnings;" not a thing anymore? 13:46
perlpilot scovit: why are you using grep on a hash?
13:46 ZoffixW joined
ZoffixW What is X? 13:46
scovit perlpilot: an experiment
timotimo thanks I try 13:47
ZoffixW m: class X {}; say X.new.perl; X::AdHoc.new.throw
camelia rakudo-moar 40a953: OUTPUT«X.new␤Could not find symbol '&AdHoc'␤ in block <unit> at /tmp/Cn7LTVFRna line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/Cn7LTVFRna line 1␤␤»
ZoffixW m: X::AdHoc.new.throw
camelia rakudo-moar 40a953: OUTPUT«Unexplained error␤ in block <unit> at /tmp/5qZ_QC5CpS line 1␤␤»
ZoffixW I see defining X class breaks exceptions. What's the significance of X? I tried to find it in rakudo source, but failed.
scovit mmh, not working
perlpilot scovit: grep is for listy things, not hashy things, so you may have an impedence mismatch (or just do extra work that could be done more simply if you keep things in hash-land)
teatime ZoffixW: X is either the base class or actually I think just the name space where all exceptions live 13:48
scovit perlpilot it's a Supply
stmuk_ "Rationality: From AI to Zombies" looks interesting
teatime ZoffixW: or you probably knew that, and just looking for where it gets setup?
tony-o ZoffixW: github.com/rakudo/rakudo/blob/nom/...on.pm#L117
geekosaur ZoffixW, I think that's a known bug
perlpilot scovit: your supply is generating Pairs or Hashes ?
ZoffixW tony-o, thanks.
geekosaur although currently treated as a DIHWIDT
psch ...i think it's expected behavior
ZoffixW teatime, I figured it was a classlike thing, I wanted to know more.
scovit the supply is generating hashes
so you want to grep for a specific field 13:49
psch m: class Int { method Str { die "huhue" } }; say 5
camelia rakudo-moar 40a953: OUTPUT«===SORRY!===␤P6opaque: must compose before allocating␤»
timotimo m: say X.HOW.WHAT
camelia rakudo-moar 40a953: OUTPUT«(PackageHOW)␤»
timotimo X is just a package containing all our exceptions
ZoffixW tony-o, I don't see X there. Only X::AdHoc.
psch i mean, if you overwrite a CORE package or class you don't get the CORE one anymore
geekosaur (I think it's just namespace but currently if a namespace is instantiated already in one compunit then using it elsewhere explodes)
psch the case with X is a bit unfortunate, because people might want to use it for an example 13:50
but i think that's still fair vOv 13:51
geekosaur teatime, re "use warnings", that perl5 had warnings off by default was considered a bug, and perl 6 has warnings on by default 13:52
tony-o ZoffixW: a quick grep on the rakudo source doesn't yield any definition of X itself
geekosaur I think there is currently no way to turn warnings *off* in fact
timotimo well, when the compiler throws its own errors, it looks in the core setting for X
ZoffixW m: class X::NPQ {}; X::NQP::NotFound.new( op => "blah" ).throw
camelia rakudo-moar 40a953: OUTPUT«Could not find nqp::blah, did you forget 'use nqp;' ?␤ in block <unit> at /tmp/TowW9GzhDf line 1␤␤»
ZoffixW there's quietly block
psch m: my @a = { a => 1 }, { b => 2 }, { c => 3 }; my $sup = @a.Supply; $sup.tap({ if $_<b>:exists { say "found $_!" } });
camelia rakudo-moar 40a953: OUTPUT«found b 2!␤»
timotimo so declaring an X class or something doesn't break things any more
psch scovit: ^^^ is that what you're looking for?
ZoffixW m: say quietly 42 + Any
camelia rakudo-moar 40a953: OUTPUT«42␤»
teatime geekosaur: so "use warnings" in repl is supposed to fail? kk, thx. 13:53
geekosaur yes, because no such module
tony-o i'll write that module
geekosaur because currently it can't do anything
(useful)
tony-o it'll just print out 'you\'ve been warned'
ZoffixW :)
scovit thanks psch 13:54
teatime tony-o: "we WARNED you to read 5to6.pod!" ? :)
geekosaur "this means WARning!"
tony-o version .2 of the module will choose a random line from perl6 backlog with the word 'warn' in it and print that out 13:55
13:56 dakkar left 13:57 sjoshi left 13:58 g4 left
tony-o ZoffixW: it looks like X is implicitly declared through all of the other X:: stuff in source, i'm not finding anything in the source explicitly defining X either 13:58
m: class T::R { }; say T; #and this seems to work
camelia rakudo-moar 40a953: OUTPUT«(T)␤»
timotimo yeah
declaring something to be inside some package will declare the package for you if it doesn't exist yet 13:59
ZoffixW That's really weird to a Perl 5 mind...
psch .oO( what do you mean '0' is true?! ) 14:00
timotimo you can't declare something like Foo::Bar unless that happens
ZoffixW tony-o, thanks. I think I understand what's going on with X now.
tony-o it makes sense with teh way that stuff is stored in GLOBAL:: , too 14:01
geekosaur yes, as things currently work if you define an X::something then it has to create a namespace X for it to live in
and that renders it unusable in a different scope
timotimo if you're in an inner lexical scope, you can frely redeclare stuff 14:02
ZoffixW Does this imply if I have class MyCompany::Something::OrOther {} in one package and then define class MyCompany::Something {} on the other package, the ::OrOther class will become broken?
teatime woe... POSIX does not seem to list \e escape for printf utility... it's so much prettier than printf "\033" >:(
14:02 sue left
ZoffixW I see why X is there, but now why declaring it in your code breaks all the X::whatever classes 14:02
tony-o ZoffixW: no
ZoffixW s/now/not/;
tony-o ZoffixW: well, kind of..if you define conflicting methods or roles/classes in 'MyCompany::' then, yes, right now it would break 14:03
you can look at HTTP::Server and .. i'm drawing a blank on the other module, have that conflict in the existing ecosystem 14:04
ZoffixW No, not conflicting. say, Y::AdHoc and Y
psch m: package X { }; X::AdHoc.throw
camelia rakudo-moar 40a953: OUTPUT«Could not find symbol '&AdHoc'␤ in block <unit> at /tmp/_FVhdfnwwZ line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/_FVhdfnwwZ line 1␤␤»
tony-o ZoffixW: then no, you'd be fine
jnthn Note that X, coming from the setting, is a lexically scoped package, meaning that your own X hides it. That's a bit different from where you have other symbols in GLOBAL, which undergo merging
ZoffixW But then why does it break in X?
Ah
geekosaur because ti funbd X::AdHoc it needs to look inside X, but the X it gets is the wrong one
psch m: package GLOBAL::X { }; X::AdHoc.throw
camelia rakudo-moar 40a953: OUTPUT«Could not find symbol '&AdHoc'␤ in block <unit> at /tmp/0WIolem4Z_ line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/0WIolem4Z_ line 1␤␤»
jnthn m: class X { }; CORE::X::AdHoc.throw 14:05
camelia rakudo-moar 40a953: OUTPUT«Invocant requires an instance of type X::AdHoc, but a type object was passed. Did you forget a .new?␤ in block <unit> at /tmp/3vsACX7Re2 line 1␤␤»
jnthn m: class X { }; CORE::X::AdHoc..newthrow
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/KahIwsJ2d6␤Undeclared routine:␤ newthrow used at line 1␤␤»
jnthn m: class X { }; CORE::X::AdHoc.new.throw
camelia rakudo-moar 40a953: OUTPUT«Unexplained error␤ in block <unit> at /tmp/7sy_5taue5 line 1␤␤»
psch ehh, the missing .new might play a role there...
ZoffixW psch, same error with .new
14:05 khw joined
ZoffixW m: class Proc {}; Proc::Async.new 14:06
camelia rakudo-moar 40a953: OUTPUT«Could not find symbol '&Async'␤ in block <unit> at /tmp/zNserfes4Y line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/zNserfes4Y line 1␤␤»
psch i still think that's fine, because shadowing is a thing... vOv
14:06 skids joined
geekosaur shadowing is a thing but most people don't expect it to apply at that level 14:07
timotimo it's only bad inside the lexical scope(s) that have the redeclared X
ZoffixW releases Break::AllThePerl
geekosaur ideally if it doesn't find a symbol in the nearest namespace in scope then it should look in that namespace in other scopes
tony-o a package that redefines all CORE::<xyz> 14:08
psch m: package CORE { }; say 1
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/iAnULuje2U␤Cannot use pseudo package CORE in package name␤at /tmp/iAnULuje2U:1␤------> 3package CORE7⏏5 { }; say 1␤ expecting any of:␤ generic role␤»
timotimo if i recall correctly, CORE is a pseudopackage
psch aww, that woulda been shorter
timotimo and immutable
tony-o MVMContext 14:09
14:09 ely-se joined
ZoffixW m: role IO {}; IO::Path.new 14:09
camelia rakudo-moar 40a953: OUTPUT«Could not find symbol '&Path'␤ in block <unit> at /tmp/EeERcfCRL6 line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/EeERcfCRL6 line 1␤␤»
ZoffixW I kinda would've expected a warning at least for this one, due to there being an IO role in core
jnthn We don't treat "it's in core" specially. 14:10
(For language extensibility and backward compatibility reasons)
ZoffixW m: role IO {}; role IO {};
camelia ( no output )
psch m: class Perl6::ClassHOW { }; 1
camelia rakudo-moar 40a953: OUTPUT«WARNINGS for /tmp/jODdCZiZeO:␤Useless use of constant integer 1 in sink context (line 1)␤»
psch m: class Perl6::ClassHOW { }; say 1
camelia rakudo-moar 40a953: OUTPUT«1␤»
psch oh, everything already compose, of course 14:11
geekosaur now here's a potential use for `use warnings`: shadowing warnings
14:11 sjoshi joined
ZoffixW You can have to same-named roles in a row, but now classes? :S 14:11
m: role IO {}; role IO {}; class Meow {}; class Meow {} 14:12
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/M6ji2iFQQY␤Redeclaration of symbol Meow␤at /tmp/M6ji2iFQQY:1␤------> 3}; role IO {}; class Meow {}; class Meow7⏏5 {}␤ expecting any of:␤ generic role␤»
psch m: role R { }; role R { }; 1 does R
camelia rakudo-moar 40a953: OUTPUT«No appropriate parametric role variant available for 'R'␤ in any specialize at gen/moar/m-Metamodel.nqp line 2609␤ in any compose at gen/moar/m-Metamodel.nqp line 2988␤ in any generate_mixin at gen/moar/m-Metamodel.nqp line 1324␤ in any at gen…»
psch m: role R { }; role R { }; 1 but R
camelia rakudo-moar 40a953: OUTPUT«No appropriate parametric role variant available for 'R'␤ in any specialize at gen/moar/m-Metamodel.nqp line 2609␤ in any compose at gen/moar/m-Metamodel.nqp line 2988␤ in any generate_mixin at gen/moar/m-Metamodel.nqp line 1324␤ in any at gen…»
jnthn Roles are implicitly multi
That error should probably complain about ambiguous roles
ZoffixW m: multi class Meow {}; multi class Meow {}
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/Rd00GcBNsU␤Missing block␤at /tmp/Rd00GcBNsU:1␤------> 3multi class7⏏5 Meow {}; multi class Meow {}␤ expecting any of:␤ new name to be defined␤»
jnthn hah, I didn't mean literally :)
ZoffixW I was just checking :)
jnthn just that role A { } and role A[::T] { } are disambiguated using multi dispatch :) 14:13
As with all multi thing though, it'd be nice to catch the obvious ambiguities at compile time.
14:14 dakkar joined 14:15 tharkun left 14:17 tharkun joined 14:18 mcsnolte joined 14:19 ZoffixW left
scovit what do you think about this workaround: pastebin.com/gu7ezN6s do you have anything more simple to suggest? 14:39
14:39 sjoshi left 14:42 zostay left 14:43 khisanth_ is now known as Khisanth
tony-o lol, these people mime encoded their email address for you to send a resume to - www.ziprecruiter.com/jobs/evoknow-...-jobs-site 14:43
14:43 zostay joined, zostay left, zostay joined 14:44 jack_rabbit left
psch ...what 14:44
why do they need a developer with leadership experience 14:45
and what does "Linux - you must know Linux command-line very very well" even mean 14:46
timotimo "very very well"
- must know how to use "uniq"
perigrin you know how to deal with arrays in bash.
timotimo oh, wow 14:47
tony-o must know Linux command-line personally and have attended 3 formal dinners with her
timotimo that's a harsh requirement
ptolemarch (Interview question #6: "On the Linux command line, does the stuff you type come before the $ or after?")
tony-o lol
psch obviously both, duh :)
tony-o depends on PS1 settings and how much of a one liner nerd you are 14:48
psch i never understood the desire for multi-line prompts
...as a side note
perigrin ptolemarch: trick question, everyone here has login as root.
tony-o a lot of these jobs are like this, 'must have led men in combat, needs to have code in core PHP, and 30 years JEE experience + MySQL, POSTGRES, HADOOP, HBASE, and HIVE implementations - salary starts at $40k' 14:49
ufobat :D
tony-o perigrin: the retail company i worked for before, everyone had sudo so everyone would just 'sudo su -' as soon as they logged into any server 14:50
perigrin tony-o: I've had that experience.
brrt tony-o, tbh, i'm not really seeing how that encoding works
psch mostly was lucky with that kind of thing 14:51
jnthn brrt: hah, no employment for you!
tony-o they asked me to figure out who performed some command that took down 30 some odd servers and there were 8 people logged into that server with sudo at that time
psch the worst i saw was a 4k or so .jspf that started a catch in line 50 and ended it in line 3950 or somesuch
4k loc*
brrt can't be a php progammer then....
tony-o lol
you can be a brogrammer 14:52
jnthn brrt: I think you came out on top of that one... :)
brrt :-P
timotimo oh hey brrt 14:53
brrt ohhai timotimo
yeah, long time no visit, i know
(fwiw, on the topic of jobs, i have a great argument ready) 14:54
consider the following question:
jnthn Guess since you're not up to being a PHP programmer you'll have to go with some lowly job, like JIT compiler writer... :)
brrt "please convince my boss that test-driven development is worth the investment"
right :-) 14:55
brrt is seriously not so sure that is a very profitable carreer choice, though, compared to writing php
although considering the added mental sanity, it might add up
14:56 Actualeyes joined, sufrostico left
jnthn haha... danger money 14:56
brrt anyway, my argument is that the question is one of the best interview questions to ask 14:57
much better than 'implement a method to do $x in O($y), never mind that the original researchers took +5 years to figure it out'
14:58 ZoffixW joined, zostay left, zostay joined
psch can see that 14:58
that is, questions that ask for reasons for development methodology vs. implementation details 14:59
14:59 zakharyas left
psch like, "why is a VCS useful" vs "how do you do $x in git" 14:59
ZoffixW m: my $x = '8 [email@hidden.address] $x.subst: /(\d+)(.)/{$2 x $1}/; say $x
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/SqnlptuOPg␤Missing required term after infix␤at /tmp/SqnlptuOPg:1␤------> 031c1o1m8'; $x.subst: /(\d+)(.)/{$2 x $1}/7⏏5; say $x␤ expecting any of:␤ prefix␤ term␤»
ZoffixW Well, damn. Apparently I can get a PHP job, but not a Perl 6 job :P 15:00
timotimo yeah, that's not how you subst with the method form
hoelzro o/ #perl6
brrt afk 15:01
15:01 brrt left
psch o/ hoelzro 15:01
15:01 bakedb left
ZoffixW m: my $x = '8 [email@hidden.address] say $x ~~ s/(\d+)(.)/{$2 x $1}/; say $x 15:02
camelia rakudo-moar 40a953: OUTPUT«Use of Nil in string context in block at /tmp/viG60QR9v1 line 1␤「8 」␤ 0 => 「8」␤ 1 => 「 」␤1k1a1b1i1r1+1c1l4-1p1h1p4-1d1e1v1@1e1v1o1k1n1o1w1.1c1o1m8␤»
ZoffixW I don't get how P6's s/// works :/
psch m: $_ = "ab"; m/(.)(.)/; say $0, $1, $2
camelia rakudo-moar 40a953: OUTPUT«「a」「b」Nil␤»
timotimo yeah, we start at 0 here 15:03
psch wanted to leave in it the spirit of a puzzle :P 15:04
ZoffixW m: my $x = [email@hidden.address] $x ~~ s:g/(\d+)(.)/{$1 x $0}/; say $x
camelia rakudo-moar 40a953: OUTPUT«kabir+cl----php----dev@evoknow.com␤»
ZoffixW Hooray!
timotimo oh, sorry psch
psch hah, it's fine :)
ZoffixW It was RLE encoded in base64. Some puzzle
hoelzro o/ psch 15:05
tony-o upload your resume & fill out your job experience manually!
ZoffixW My only experience with PHP is running away while screaming "Oh, God!"
15:06 Actualeyes left, domidumont left
tony-o i can type <?php 15:07
timotimo i've created a typical forum thing with php and mysql in the past
psch i have actually worked on a project on the low end of medium size in php
ZoffixW So .subst/,subst-mutate can't use captures?
tony-o actually i've had to go and create modules for wordpress and various other php things for my dad
ZoffixW m: my $x = [email@hidden.address] $x.subst-mutate: /(\d+)(.)/, "{$1 x $0}", :g; say $x 15:08
camelia rakudo-moar 40a953: OUTPUT«Use of Nil in string context in block at /tmp/kY5_7KixDb line 1␤Use of Nil in numeric context in block at /tmp/kY5_7KixDb line 1␤␤»
tony-o and drupal projects
psch ZoffixW: add $/ as explicit parameter to block
ZoffixW: that's the current workaround, because it misses the rightly scoped $/
*the block
m: my $x = [email@hidden.address] $x.subst-mutate: /(\d+)(.)/, -> $/ {$1 x $0}, :g; say $x
camelia rakudo-moar 40a953: OUTPUT«kabir+cl----php----dev@evoknow.com␤»
ZoffixW Ah. I see. psch++ 15:09
tony-o php has a cool orm, readbean: www.redbeanphp.com/index.php 15:11
timotimo you can tell it's php by the ".php" at the end and the "php." in the front 15:12
tony-o is what i modeled DB::ORM::Quicky after, loosely. except DOQ is easier/better because it isn't php
it's almost a palindrome 15:13
timotimo oh, that's harsh
just because it's not php doesn't automatically mean it's better
psch "RedBeanPHP will [...] giv[e] you the NoSQL experience"
timotimo it just means it's kind of likely
psch i don't know what to think of that
tony-o timotimo: was a joke 15:14
timotimo it creates your schemas on the fly, i'm not entirely sure what that means for performance
since usually .php files are run once for every request
does every request start by asking the database what its tables look like?
tony-o it's slower, it's useful for prototyping things
psch timotimo: "When deploying [...] you can freeze the schema [...]"
15:15 fireartist left
timotimo yeah, but how is it frozen? they claim there's no configuration anywhere 15:15
do they just put a table into the database with the pre-compiled php code?
psch probably add "R::freeze()" at the top of every file during deploy... :)
seriously though, i probably don't really know enough about DBMS in theory or practise to actually criticise any such project 15:16
if it works and does what they say it does it's probably at least decent..? vOv
timotimo probably 15:17
tony-o i wouldn't use it in a productive environment, but if you're building something for a client where they're not quite sure what data they want to capture it's easier than modifying the table manually/updating the schema manually while prototyping
scovit I made this small module as an experiment and as a way to learn asynchronous stuff; I am amazed of how simple it was to do this in Perl6 : github.com/scovit/perl6-IRC-Async 15:18
15:20 Actualeyes joined
ZoffixW That code looks shockingly like my own lol :) 15:21
scovit :) you guess where I got the inspiration? 15:22
ZoffixW :)
tony-o you *are* credited in the readme
ZoffixW heh 15:23
scovit it's basically your module with a different programming paradigm 15:25
ZoffixW scovit, cool. Add it to the ecosystem. 15:26
RabidGravy :)
psch what was the actual plan behind Koalatee, anyway?
scovit :)
psch (and why does it link to not_implemented_yet and not not_yet_implemented?!)
15:26 nakiro left
ZoffixW psch, the plan behind was making something similar to Perl 5's Kwalitee where dists have a bunch of metrics that sorta represent their quality: cpants.cpanauthors.org/ranking/five_or_more 15:27
psch RabidGravy: btw, if you have ideas or suggestions re github.com/peschwa/p6-Music-Helpers (minus "test and docs" :P ) i'd like to hear them
ZoffixW And because I can never remember which order it's goes in :)
psch ZoffixW: ah. figuring out the metrics is gonna be fun i guess 15:28
15:29 ely-se left
RabidGravy psch, looks good to me, ship it! 15:29
psch RabidGravy: right, so "test and docs" i guess :P 15:30
+s
fwiw, i'm still missing features vOv 15:31
the chord type roles are lacking, for example 15:32
also there's an argument to be made for having the first inversion of Cmaj be equivalent to E46, which could be a chord in its own right... 15:33
also modes aware of sharp vs flat could be neat i guess
tony-o ZoffixW: if you want some help with koalatee, i'm a willing contributor (and i do that type of data analysis as a day job) 15:36
RabidGravy sure, but as it stands it's useful :) make a first release and then add the other stuff later 15:37
psch it is useful, yeah. also bin/example.pl6 is actually fun to listen to
even though it chokes occassionally 15:38
i'm not completely sure why that happens, but i guess it's because sometimes the random intervals it picks don't exists from the current root
ZoffixW tony-o, no, I don't do any more work on modules.perl6.org, because we're supposed to be going with Meta6CPAN thing 15:39
tony-o is there a channel for that?
psch like, current chord is Cmaj, with C as root, and it gets m2, TT, m7 or something
psch might work a bit more on docs and README later
tony-o or someone currently working on a meta6cpan thing? 15:40
ZoffixW tony-o, no idea. I know jdv79 was at some point.
And ranguard, if IRC
tony-o i was working on one for zef too, a while ago
if no one is working on it, i'd be willing to head that up 15:41
15:42 spanner left, spanner joined, spanner left, spanner__ joined
pmurias having a meta6cpan working would be awesome 15:43
having a standarised per module page is much better than just using github 15:44
gregf_ gist.github.com/anonymous/1af73f22...e7e3dc9c5e <= why does this hang? 15:45
tony-o the zef thing i was writing was similar to NPM's set up for modules, had the README and github stats on it (bugs/etc)
gregf_ oops :/ sorry
tony-o it was also storing the modules with versions and caching them as available for download by packagers 15:46
i'd restart that project if that is still interesting 15:47
15:47 lostinfog joined
tony-o gregf_: does line 12 ever finish? 15:48
15:48 zakharyas joined
gregf_ tony-o: :|, sorry lol.. but it surely should. it does for 300, but not for 1800 :| 15:49
tony-o for 300 files? 15:50
15:51 ZoffixW left
dalek osystem: af5674d | (Vittore F. Scolari)++ | META.list:
Add IRC::Async to the ecosystem
15:55
osystem: 6df5608 | (Zoffix Znet)++ | META.list:
Merge pull request #195 from scovit/master

Add IRC::Async to the ecosystem: github.com/scovit/perl6-IRC-Async/
grondilu m: say do for ^5 { .sqrt }.Set; 15:57
camelia rakudo-moar 40a953: OUTPUT«set(2, 0, 1, 1.4142135623731, 1.73205080756888)␤»
grondilu ^not sure if that syntax is acceptable
tony-o acceptable how? 15:58
grondilu don't know, "bad taste" or something.
just to be clear I'm talking about using a method call to a do block, with no parenthesis at all. 15:59
I like it but it bugs me in the same time.
jnthn m: say do for ^5 { .sqrt } .Set; # can use whitespace to maybe clarify a tad 16:00
camelia rakudo-moar 40a953: OUTPUT«set(2, 0, 1, 1.4142135623731, 1.73205080756888)␤»
jnthn m: say set do for ^5 { .sqrt }; # but maybe this is clearer?
camelia rakudo-moar 40a953: OUTPUT«set(2, 0, 1, 1.4142135623731, 1.73205080756888)␤»
16:02 sue_ joined 16:03 tokomer left 16:05 TEttinger joined
grondilu sure but I wanted a MixHash actually, just used a set for a not too peculiar example. 16:05
[Coke] m: say 0.0 cmp 0
camelia rakudo-moar 40a953: OUTPUT«Same␤»
[Coke] m: say '0.0' ~~ 0 ^..^ 1; say 0.0 ~~ 0 ^..^ 1; say '1.0' ~~ 0 .. 1 ; say 1.0 ~~ 0 .. 1
camelia rakudo-moar 40a953: OUTPUT«True␤False␤False␤True␤»
[Coke] m: say '0.0' cmp 0 16:06
camelia rakudo-moar 40a953: OUTPUT«More␤»
[Coke] I imagine those should work. (RT #124400)
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=124400
16:07 Azry_ left 16:17 michel_mno left 16:18 _mg_ left 16:20 dwarring left
pmurias tony-o: is there a big difference between RedBean and just doing something like automatically generating the schema in DBIx::Class 16:21
tony-o pmurias: i'm aware, i just thought redbean was neat for quickly prototyping something out. I do have an appreciation for DBIx::Class. Admittedly, it took me a while to fully appreciate DBIx stuff 16:23
16:27 pmurias left 16:32 abraxxa left 16:35 pmurias joined 16:39 sue_ left
pmurias rakudo-js, compiles and prints out the "To exit type 'exit'...". (and then fails when trying to load the BOOTSTRAP, which needs to be done next) 16:46
jnthn pmurias: Nice progress :) 16:47
[Coke] pmurias++
pmurias a buffer size of 10 in nqp::readallfh was killing the nqp-js-on-js performance ;) 16:49
ptolemarch peregrin++ # just saw reply to me from 2 hours ago...
teatime Are patch files emailed to rakudobug truly preferred as rakudo/README.md says, or are github PR's equally acceptable ? 16:51
psch teatime: i'd say the README is outdated - generally, github PRs are prefered 16:53
ISTR there was a time stuff was on SVN somewhere..?
pmurias++ 16:54
teatime thx
16:54 CIAvash joined 16:56 dakkar left
teatime my next question was, where can I find the CLA document to fill out 16:56
16:57 mprelude joined
psch teatime: www.perlfoundation.org/contributor_..._agreement 16:57
teatime: note that's only really necessary if you expect yourself to regularly contribute to rakudo 16:58
16:58 perl6newbee joined
perl6newbee hi all 16:58
psch (fsvo "regularly", considering e.g. my commit history...)
16:59 nige1 joined
teatime it's not required to get any code whatsoever accepted into Rakudo? seems like it would be, if it's required at all. 16:59
[Coke] if you have a PR or submit a ticket, someone is reviewing your code. 17:00
if you have commit bits, you need a CLA.
teatime interesting. I don't see how someone reviewing the code I submit ensures Perl's ultimate right to use that code in the same way CLA does. Perhaps I mis-assume its primary goal. 17:02
reading it, I suppose it's not quite the same sort of thing as the copyright assignment I was expecting 17:04
like GNU's.
perl6newbee I know how to stringify a object. my $str = MyClass.new.perl; But what is the official way to create a object with the string? I mean, is there a way without MONKEY-No-SEE-EVAL? 17:05
teatime MyClass.new.perl.EVAL ?
psch perl6newbee: .perl doesn't stringify. .perl contractly is expected to provide a Str representation that EVALs to an equivalent object
*contractually
teatime ~MyClass.new.perl coerces to a string, like python __str__... .perl is like Python __repr__ 17:06
tony-o pmurias++
psch perl6newbee: but the "offical" way to create an object from something produced by that objects .perl is in fact EVAL
teatime there's also gist, which I think is the same as ~
psch teatime: no, prefix:<~> calls .Str, &say uses .gist internally 17:07
teatime and I think there's another method name for stringing, .Str or .String or .str or something?
psch m: my @a = ^5; say ~@a; say @a
camelia rakudo-moar 40a953: OUTPUT«0 1 2 3 4␤[0 1 2 3 4]␤»
teatime psch: are they actually different though?
psch m: my @a = ^5; say ~@a; say @a; print @a.gist
teatime I've read conflicting docs
camelia rakudo-moar 40a953: OUTPUT«0 1 2 3 4␤[0 1 2 3 4]␤[0 1 2 3 4]»
psch teatime: ticket the docs please :)
teatime is gist the same a perl then? 17:08
perl6newbee thx all. psch: Do I need the MONKEY-NOT-SEE-EVAL also with $str.eval?
timotimo no, it is not
psch m: my @a = 0..*; say @a.gist; say @a.perl
camelia rakudo-moar 40a953: OUTPUT«[...]␤Cannot .elems a lazy list␤ in block <unit> at /tmp/tQ2aiagzmT line 1␤␤Actually thrown at:␤ in block <unit> at /tmp/tQ2aiagzmT line 1␤␤»
timotimo m: say DateTime.now().Str; say DateTime.now().gist
camelia rakudo-moar 40a953: OUTPUT«2016-04-12T19:08:34.645492+02:00␤2016-04-12T19:08:34.655969+02:00␤»
timotimo hm, in this case it is
psch m: Str.^can('eval')
camelia ( no output )
psch m: Str.^can('eval').say
camelia rakudo-moar 40a953: OUTPUT«()␤»
timotimo uppercase eval
psch perl6newbee: there is no .eval
*snrk*
perl6newbee m: Str.^can(EVAL) 17:09
camelia rakudo-moar 40a953: OUTPUT«Too few positionals passed; expected 1 argument but got 0␤ in block <unit> at /tmp/jq6vRyRGGn line 1␤␤»
psch m: Str.^can('EVAL').say
camelia rakudo-moar 40a953: OUTPUT«(EVAL)␤»
psch m: Str.EVAL
camelia rakudo-moar 40a953: OUTPUT«Use of uninitialized value $code of type Str in string context␤Any of .^name, .perl, .gist, or .say can stringify undefined things, if needed. in block <unit> at /tmp/nl8A1h2B2w line 1␤»
teatime so .Str, .gist, and .perl are all unique. but ~ calls .Str (and say calls .gist). yes?
psch m: "[0 1]".EVAL.perl.say
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /home/camelia/EVAL_0␤Two terms in a row␤at /home/camelia/EVAL_0:1␤------> 3[07⏏5 1]␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modifier␤…»
tony-o m: 'say "hi"'.EVAL;
camelia rakudo-moar 40a953: OUTPUT«hi␤»
psch oh, that's gist
i think that *should* fall behind the pragma 17:10
it apparently doesn't, though
perl6newbee Thanks for the help
17:10 nige1 left
tony-o behind the restricted setting psch ? 17:11
psch tony-o: no, behind use MONKEY-SEE-NO-EVAL
tony-o m: my $r = 'Proc::Async.new'.EVAL; $r.WHAT.say;
camelia rakudo-moar 40a953: OUTPUT«Proc::Async is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method new at src/RESTRICTED.setting line 32␤ in block <unit> at EVAL_0 line 1␤ in block <unit> at /tmp/3xobMR1yn9 line 1␤␤»
tony-o psch: ah
psch m: EVAL "say 'hi'"
camelia rakudo-moar 40a953: OUTPUT«hi␤»
psch ...unless it's not needed in RESTRICTED..? :/
or maybe camelia injects it, idk vOv 17:12
it doesn't care locally either? did anything happen to that and i missed it..?
TimToady it only cares if you interpolate 17:13
tony-o m: my $what = 'Proc::Async'; "$what.new".EVAL;
camelia rakudo-moar 40a953: OUTPUT«Proc::Async is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method new at src/RESTRICTED.setting line 32␤ in block <unit> at EVAL_0 line 1␤ in block <unit> at /tmp/lcxnDZf9cO line 1␤␤»
tony-o m: my $what = 'Proc::Async'; "say $what".EVAL;
camelia rakudo-moar 40a953: OUTPUT«Proc::Async is disallowed in restricted setting␤ in sub restricted at src/RESTRICTED.setting line 1␤ in method gist at src/RESTRICTED.setting line 33␤ in block <unit> at EVAL_0 line 1␤ in block <unit> at /tmp/JIf_AVFoQw line 1␤␤»
TimToady but yes, the method form might be too permissive 17:14
m: my $injection = "die 'foo';"; say EVAL "$injection + 1" 17:16
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/LSyTbcgPLY␤EVAL is a very dangerous function!!! (use MONKEY-SEE-NO-EVAL to override,␤but only if you're VERY sure your data contains no injection attacks)␤at /tmp/LSyTbcgPLY:1␤------> 3 "die 'foo';"; s…»
TimToady m: my $injection = "die 'foo';"; say "$injection + 1".EVAL
camelia rakudo-moar 40a953: OUTPUT«foo␤ in block <unit> at EVAL_0 line 1␤ in block <unit> at /tmp/ioeB_xa1gI line 1␤␤»
17:22 Begi joined 17:24 spider-mario joined 17:26 domidumont joined 17:27 espadrine left
timotimo unicode.party/ - neat 17:27
17:28 _mg_ joined
tony-o 😘 17:29
interesting
psch .u 😘
yoleaux U+1F618 FACE THROWING A KISS [So] (😘)
timotimo .u 🦄 17:30
yoleaux No characters found
timotimo ... :\
TimToady Someday people will give their babies names with emoticons in them. 17:31
masak .oO( her real name is U+1F618, but most of the time we just call her "U" ) 17:34
psch is reminded of a video game - "Citizen Ka👢o"
m: say "\u1F618" 17:35
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/w65hGZL5_K␤Unrecognized backslash sequence: '\u'␤at /tmp/w65hGZL5_K:1␤------> 3say "\7⏏5u1F618"␤ expecting any of:␤ argument list␤ double quotes␤ term␤»
psch m: say "\x1F618"
camelia rakudo-moar 40a953: OUTPUT«😘␤»
psch grr
17:35 grondilu left
psch but hey, at least i don't have to ask yoleaux again, cause *now* i realize it's the same codepoint... 17:36
17:37 grondilu joined
teatime m: say "\x{1F618}", "\N{U+1F618}" 17:39
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/AnrFXv1uad␤Unsupported use of curlies around escape argument; in Perl 6 please use square brackets␤at /tmp/AnrFXv1uad:1␤------> 3say "\x{7⏏051F618}", "\N{U+1F618}"␤»
teatime m: say "\x[1F618]", "\N[U+1F618]" 17:40
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/b8ZfabGlVa␤Unrecognized backslash sequence: '\N'␤at /tmp/b8ZfabGlVa:1␤------> 3say "\x[1F618]", "\7⏏5N[U+1F618]"␤ expecting any of:␤ double quotes␤ term␤»
17:40 zakharyas left
timotimo m: say "\c[PILE OF POO]" 17:41
camelia rakudo-moar 40a953: OUTPUT«💩␤»
timotimo m: say "\c[U+1F618]"
camelia rakudo-moar 40a953: OUTPUT«5===SORRY!5=== Error while compiling /tmp/G4FyCM8iW7␤Unrecognized character name U+1F618␤at /tmp/G4FyCM8iW7:1␤------> 3say "\c[U+1F6187⏏5]"␤»
timotimo we could totally have support for that format
psch not in \c though i think 17:42
teatime m: say "\x[1F618]"
camelia rakudo-moar 40a953: OUTPUT«😘␤»
timotimo i mean for accepting the U+ in front 17:44
pmurias reading the backlog remembers that he should submit the CLA 17:46
teatime: I think it's just a rule to make sure all the more serious contributors submit a CLA 17:47
perlpilot timotimo: I always think I should type \u[1F618], can we make that one work too? :) 17:53
teatime in my XCompose DSL, I'll probably use something like \xhh \uhhhh and \Uhhhhhh, since the largest codepoint is 0x10FFFF now. 18:00
18:04 Sqirrel_ joined, smls joined
smls m: my %hash; my (:$a) := %hash; $a //= 42; 18:05
camelia rakudo-moar 40a953: OUTPUT«Type check failed in binding lhs; expected Any but got Mu (Mu)␤ in block <unit> at /tmp/KE1bKO_JhE line 1␤␤»
smls ^^ is there a way to destructure a Hash without getting Mu (rather than Any) for nonexistent fields? 18:06
Seeing how Mu isn't accepted by most functions/operators, and is thus pretty annoying to handle 18:07
18:07 Sqirrel left 18:08 nige1 joined 18:10 cdg left, cdg joined 18:11 Sqirrel_ left 18:12 Sqirrel joined, xchg joined
skids Hrm... 18:12
m: my %hash; my $a; :(:$a = 32) := %hash; $a //= 42; $a.say; 18:13
camelia rakudo-moar 40a953: OUTPUT«32␤»
skids m: my %hash; my $a; :(:$a = Any) := %hash; $a //= 42; $a.say;
camelia rakudo-moar 40a953: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <unit> at /tmp/y334aw4ITN line 1␤␤»
skids m: my %hash; my $a; :(:$a = Nil) := %hash; $a //= 42; $a.say;
camelia rakudo-moar 40a953: OUTPUT«Cannot assign to a readonly variable or a value␤ in block <unit> at /tmp/aGVPeJg87h line 1␤␤»
18:13 kent\n left
skids Well, 18:14
18:14 kent\n joined, kent\n left, kent\n joined
skids m: my %hash; my $a; :(:$a = 42) := %hash; $a.say; 18:14
camelia rakudo-moar 40a953: OUTPUT«42␤»
skids Gets the initial job done, but I don;t know why it complains about "= Any"
smls yes, that looks strange
On a related matter, why do pointy block arguments default to Mu but sub/method arguments default to Any? 18:15
18:15 cdg left
timotimo yes 18:15
skids I though methods also defaulted to Mu but sub to Any?
18:15 nige1 left
jnthn No, all routine args default to Any, including Method 18:16
It's because auto-threading junctions on routine boundary is sensible, but inside routine boundaries tended to be weird
As I remember it, anyway :)
There may well have been other reasons. I think it's been that way for at least half a decade. 18:17
18:18 kent\n left, kent\n joined 18:22 kentnl joined 18:23 kent\n left, silug left
moritz people where surprised when the block of their if-block or for-loop autothreaded :-) 18:26
18:26 perl6newbee left 18:27 kentnl left 18:28 kent\n joined, kent\n left, kent\n joined 18:29 CIAvash left 18:30 ufobat left
jnthn moritz: Indeed :) 18:31
18:32 kent\n left, kentnl joined 18:33 sjn_phone joined 18:34 sjn_phone_ joined 18:37 kentnl left 18:38 silug joined, sjn_phone left 18:40 Actualeyes left 18:42 Sqirrel_ joined, Sqirrel left
smls Causes a number or WATs or annoying edge-cases when you're *not* working with junctions, though. 18:46
I suppose everything has its trade-offs... :)
moritz smls: example? 18:52
smls moritz: Say you have a pointy block with an optional parameter, and inside the block you call a function and want to pass that variable along 18:53
It works fine as long as the optional parameter is passed, but when it isn't, it blows up with "expected Any got Mu" 18:54
moritz m: (-> $x? { say $x.^name })()
camelia rakudo-moar 40a953: OUTPUT«Mu␤»
moritz smls: could be fixed easy enough by making the default value Any
I mean in the language
that's how untyped 'my' scalars work: type constraint to Mu, default to Any 18:55
smls hm, true 18:56
18:56 pomJ joined
moritz TimToady: ^^ do you think that would be a sensible change for Perl 6.d? 18:56
18:56 xchg left
teatime If you add type-specific operators to a class in rakudo/src/core/____.pm, do you need to also list these somewhere else? 19:00
thought I read something about needing to include them somewhere, for correct precedence
moritz teatime: new operators must go into the grammar; the setting is special that way
timotimo it will loudly complain if you don't do ti, IIRC 19:01
grondilu m: dd MixHash.new: gather take 'foo' => 1
camelia rakudo-moar 40a953: OUTPUT«(:foo(1)=>1).MixHash␤»
timotimo look for O( or O< in the grammar, if i'm not mistaken
grondilu m: dd MixHash.new: 'foo' => 1
camelia rakudo-moar 40a953: OUTPUT«(:foo(1)=>1).MixHash␤»
grondilu m: dd ('foo' => 1).MixHash 19:02
camelia rakudo-moar 40a953: OUTPUT«("foo"=>1).MixHash␤»
grondilu so confusing
dogbert2 hello perl6 19:04
teatime moritz: oh, I'm only adding type-specific multis for things like infix *, /, +, -, % ... is that strill true, or only for *new* operators?
dogbert2 sigh, just made my first pull request ever on github for the docs
moritz teatime: no, you don't need it there
teatime sweetness
dogbert2 I tried to fix two typos and spelt the fix wrong :( what to do now? 19:05
dalek c: e64b9ee | (Jan-Olof Hendig)++ | doc/Type/Cool.pod:
Fixed two typos
c: 86d716f | moritz++ | doc/Type/Cool.pod:
Merge pull request #449 from dogbert17/fix-typo

Fixed two typos
19:05 ZoffixW joined
moritz dogbert2: you celebrate your first contribution to Perl 6. Thank you! 19:05
dogbert2 well, if I hade used a spell checker :( 19:06
*had
wanted to change 'firm' -> 'from' but wrote 'form', sigh
dalek c: d6176ab | (David H. Adler)++ | doc/Type/Cool.pod:
Adjust doc for ord to indicate it returns *first* code point. (#448)

Adjusted doc for ord so that it indicates that it returns the *first* code point.
19:07
perlpilot dogbert2: eh? "form" is correct
moritz subroutine form vs. method form
yes, form is good
dogbert2 yay, I'm a moron, probably nervousness :-)
ZoffixW m: my $i = 3; my @a = (loop { $i.say; last unless --$i }); say "take off"; # Eager 19:08
camelia rakudo-moar 40a953: OUTPUT«3␤2␤1␤take off␤»
ZoffixW m: my @foo = 1, 2 ... *; say @foo[2]; # Lazy
camelia rakudo-moar 40a953: OUTPUT«3␤»
ZoffixW #m: my $x = 1, 2 ... *; # freezes up
m: my $i = 3; my $x = (loop { $i.say; last unless --$i }); say $x[0] # Doesn't freeze up, but looking up a single value, iterates over all of them
camelia rakudo-moar 40a953: OUTPUT«3␤2␤1␤Nil␤»
perlpilot dogbert2: no worries. You'll just have to make more contributions so that you can get rid of that nervousness
:-)
dogbert2 was thinking off adding docs for some missing methods/subs
ZoffixW I'm struggling to understand why this inconsistency is there?
moritz ZoffixW: probably performance; lazy lists are quite expensive 19:09
ZoffixW: and if you want a lazy list, you can use gather/take and the likes
ZoffixW Does (loop { $i.say; last unless --$i }); produce a lazy list? 19:10
moritz I don't think so
ZoffixW m: my $i = 3; my $x = (loop { $i.say; last unless --$i }); my $y = 1, 2 ... * < 10; say $x.WHAT; say $y.WHAT
camelia rakudo-moar 40a953: OUTPUT«(Seq)␤(Int)␤»
ZoffixW :S 19:11
moritz wow, I'm trying to golf a Rakudo segfault, and the source file makes vim segfault :(
19:11 Sqirrel_ left, Sqirrel joined
ZoffixW Yo bro, we heart you like... 19:12
moritz ZoffixW: scalar assignment has a too tight precedence here
ZoffixW: my $y = (...)
ZoffixW That makes $y[0] return a (Seq). 19:13
I need to read up on containers more. 19:14
Oh, nevermind. Works fine
19:15 go|dfish left 19:16 _mg_ left 19:17 _mg_ joined, go|dfish joined
dogbert2 so, after moritz merged my fix am I supposed to ditch the branch I made and create a new one for the next (which haven't been written yet) or is that a bogus workflow? 19:18
moritz dogbert2: no, that sounds correct
dogbert2: but we can simplify that by giving you direct push access to perl6/doc 19:19
dogbert2: that way you can just work on the master branch, no pull requests necessary
19:19 AlexDaniel joined
moritz dogbert2: invitation sent :-) 19:20
dogbert2 :-)
19:20 yqt joined 19:21 _mg_ left
dogbert2 received invitation and joined perl6 19:23
moritz++
19:24 sjn__ joined 19:25 sjn__ left
dogbert2 so, just to avoid confusion, when I make changes I do them i a branch I have created perl6/doc, not directly in master or? 19:25
19:25 travis-ci joined
travis-ci Doc build errored. David H. Adler 'Adjust doc for ord to indicate it returns *first* code point. (#448) 19:25
travis-ci.org/perl6/doc/builds/122600215 github.com/perl6/doc/compare/86d71...176ab6f9ce
19:25 travis-ci left 19:26 sjn joined
dogbert2 hmm, I should rephrase my question 19:27
so, just to avoid confusion, when I make changes I do them in a branch I have created in the perl6/doc project, not directly in master or?
RabidGravy I tend to do the work in a branch, merge to master when I'm done and push 19:28
dogbert2 at $work devs are not allowed to push to master, hence my question
RabidGravy: thx, sounds like the way to go 19:29
RabidGravy that way if you need to do something else in the meanwhile you can start a different branch based on the unchanged master
moritz dogbert2: you can push directly to master, and I regularly do that for small and uncontroversial changes 19:30
like, typos, grammar and markup fixes, or documentation for a builtin that wasn't documented before
when I have larger stuff that has the potential to break stuff, or when I want to get feedback from others, I do a branch
dogbert2 moritz: ok, sounds good 19:31
i was thinking of doing the 'builtin that wasn't documented before' part, i.e. undocumented methods 19:32
19:32 pomJ left
teatime Do you need to define % for a numeric type, if you already define / ? 19:32
dogbert2 there are a few missing in Cool.pod, e.g. sech 19:33
teatime i.e., can perl infer
moritz teatime: it doesn't
teatime k
19:35 go|dfish left 19:37 nige1 joined
MadcapJake 'ello Sixians! 19:37
dogbert2 here's a repeat question, why is Camelia running a version from friday, i.e. 40a953? 19:38
moritz dogbert2: looks like the rebuild is broken :( 19:40
dogbert2 uh oh :(
moritz huh, one of the git checkouts on the camelia server had local modifications 19:43
19:43 Begi1 joined
geekosaur added files? someone found that restricted setting isn't very, yesterday 19:44
19:45 Begi left, Begi1 is now known as Begi
moritz no, modifications in Grammar.pm or Actions.pm 19:45
19:47 dvinciguerra_ left 19:49 sufrostico joined
ZoffixW That travis doc failure seems to be due to JSON::Fast failing a test 19:49
19:49 sjn_phone joined
ZoffixW passes locally and no recent commits in the repo. weird 19:50
19:50 ZoffixW left, sjn_phone_ left
moritz oh, seems camelia is out of disk space 19:50
dogbert2 a classic
moritz niecza: say 42 19:51
camelia niecza v24-109-g48a8de3: OUTPUT«sh: mono: command not found␤»
19:52 domidumont left 19:53 sjn_phone_ joined
masak moritz++ # disk space discovery 19:53
19:53 sjn_phone left
moritz huh 19:53
/dev/vda2 6,7G 5,9G 373M 95% /tmp 19:54
/dev/vda2 6,7G 5,9G 373M 95% /home
masak uhm
moritz wait what? /dev/vda2 is mounted both to /tmp and /home ?
oh, that seems to be some kind of btrfs shenenigan 19:55
19:55 ptolemarch left 19:56 Begi1 joined 19:57 Begi left, Begi1 is now known as Begi
timotimo subvolumes probably 19:58
you can check with "mount", it'll show subvol=...
19:59 CurtisOvidPoe joined
moritz ===SORRY!=== 19:59
Failed to open file /home/camelia/rakudo-m-inst-1/share/perl6/dist/3FD70CCCD6914FAEC84AFAE6F97AF461A3EE15883FD70CCCD6914FAEC84AFAE6F97AF461A3EE1588: no such file or directory
20:01 go|dfish joined
CurtisOvidPoe Years ago (during the days of Pugs?) I wrote a prime-factor() sub, but it was primitive. Is this better? gist.github.com/Ovid/ed70be4dd5261...a79a07863e If so, what’s the best way of submitting a pull request to clean up some old 99-problems examples? 20:02
This was the original: examples.perl6.org/categories/99-pr...-ovid.html
I was just noticing that the 99-problems that are linked off the web site are terribly out of date and misrepresent Perl 6. 20:03
masak looks
moritz CurtisOvidPoe: stuff on example.perl6.org comes from the github.com/perl6/examples.perl6.org repo 20:04
CurtisOvidPoe: ... and you should be able to push directly to that repo; if not, please tell and I'll make it so.
masak CurtisOvidPoe: I'm not sure it's 100% realistic with today's Bag type, but it seems to me a Bag would be a much better fit for the result type here than a Hash
in a sense, a Bag already is a mapping from some type T to Int 20:05
CurtisOvidPoe: your new code looks good to me 20:06
of course, it's "terribly imperative" :P
moritz CurtisOvidPoe: also, can I ask you to please retweet twitter.com/nogoodnickleft/status/...1603683328 ?
m: say 42
camelia rakudo-moar d1eeb3: OUTPUT«42␤»
CurtisOvidPoe Retweeted! 20:07
masak retwut it too
moritz CurtisOvidPoe: thanks
nine For those who don't know: findmnt is much better for displaying mounted file systems
timotimo lsblk is also nice 20:08
findmnt has much more details. nice. 20:09
awwaiid nine: nice tip!
moritz: that's a fancy web repl thingie you got there! RT'd
moritz nine: the problem with findmnt is that I can never remember its name :-)
awwaiid: not mine, but worth sharing IMHO :-)
CurtisOvidPoe masak: looking for a clear example of how I would declare and use the Bag type today. Link? 20:10
masak m: say bag 1, 2, 3
camelia rakudo-moar d1eeb3: OUTPUT«bag(3, 1, 2)␤»
moritz m: say bag(<a a a b b c>)
camelia rakudo-moar d1eeb3: OUTPUT«bag(a(3), c, b(2))␤»
masak m: say Bag.new(1, 2, 3)
camelia rakudo-moar d1eeb3: OUTPUT«bag(3, 1, 2)␤»
moritz it's basically a set that counts how often an element is in it
awwaiid CurtisOvidPoe: doc.perl6.org/type/Bag has some things 20:11
tony-o m: .perl.say do for bag(<a a a b b c>)
camelia rakudo-moar d1eeb3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/EMgpnqBzo8␤Two terms in a row␤at /tmp/EMgpnqBzo8:1␤------> 3.perl.say7⏏5 do for bag(<a a a b b c>)␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ s…»
moritz ... but I don't see how it help with primes, at least not off-hand
nine *lol* 719 directories in ~camelia/.perl6
moritz nine: these can all go, no?
nine just removed them 20:12
moritz nine: thanks
nine Frees a couple 100 megs. I can also easily enlarge the virtual disk (as soon as I find out how). There's plenty of space available.
moritz I also removed some old rakudo and R* builds (some of them from 2014!)
CurtisOvidPoe masak: Sorry, why is bag better there? If I could say “only primes are allowed as keys and positive integers as values”, I could see it being better. What did I miss? :)
nine But now to bed :)
moritz nine: don't need to; we now have 2.4G available
and we should clean up now and again anway 20:13
good night nine
masak CurtisOvidPoe: I think it's a math thing, to be honest. 20:14
mst < moritz> m: say bag(<a a a b b c>) 20:15
is probably the better example
masak CurtisOvidPoe: the factors of a positive numbers are described as being a "list of primes, *with multiplicity and unique up to reordering*" -- but that's just describing a Bag (or a multiset) without having that concept in one's vocabulary
CurtisOvidPoe: Dijkstra wrote about this once. I can dig you up the link. 20:16
perlpilot idly wonders if there's a "bag" unicode character
moritz masak: ah, you're talking abouth the return type; I thought you meant a Bag would help calculate the prime factors
.u bag
yoleaux U+22FF Z NOTATION BAG MEMBERSHIP [Sm] (⋿)
mst I personally tend to avoid math-based examples because they lose quite a few people
yoleaux U+27C5 LEFT S-SHAPED BAG DELIMITER [Ps] (⟅)
U+27C6 RIGHT S-SHAPED BAG DELIMITER [Pe] (⟆)
CurtisOvidPoe Yeah, they lose me. Oops!
mst CurtisOvidPoe: aha, I know the example I'd use 20:17
masak moritz: yes, talking about the return type
mst CurtisOvidPoe: file of lines (names? whatever), count them
CurtisOvidPoe: more elegant than a hash
masak: that seem reasonable?
CurtisOvidPoe file of lines? Er, that seems to imply IO, which I’m not doing. What did I miss? :) 20:18
masak mst: dunno what you're asking -- factoring a number already seems reasonable to me :P 20:19
20:20 cdg joined
mst CurtisOvidPoe: yeah, just an example 20:20
CurtisOvidPoe: making a bag from an array/list basically does a 'uniq -c' on it
CurtisOvidPoe: 'file of lines' is just where I usually get an array from when doing examples like that
CurtisOvidPoe moritz: tried to push and got: “remote: Permission to perl6/perl6-examples.git denied to Ovid.” 20:21
perlpilot Only barely paying attention here, it seems a Bag is better to me too. Prime factorization gets you a list of numbers like (2,2,2,3,3,5) which feels more Bag-like than Hash-like.
CurtisOvidPoe mst: ah, I see where you were going then. Pretty sure that woudl have been less clear :)
masak perlpilot: yes, that's what I'm getting at
perlpilot: though I can't guarantee that the Bag API will be perfectly helpful for this use case... 20:22
mst masak: I get it. I just don't think it's suitable to people who can't immediately recall prime factorisation
masak (it should, but it may not be there yet)
mst: I'd reply to that, but I'd come off as terribly elitist... ;)
20:22 sjn_phone_ left
mst CurtisOvidPoe: I mean, conceptually, one can emulate a set with a hash of (thing => 1), and one can emulate a bag with a hash of (thing => count) 20:22
masak mst: mostly because I don't tend to forget math once I learn it. 20:23
mst CurtisOvidPoe: starting from there might give you some inspiration
masak: *I* have no problem with that example. but somebody coming in from the language/linguistics side quite possibly would
moritz CurtisOvidPoe: github invitation sent
masak mst: yes, you're right
mst: but isn't it always thus? different examples will speak to people of different backgrounds
others will hate file I/O, for example 20:24
perlpilot most of the methods of Baggy/Bag seem to be about taking things out of the bag rather than putting them in.
CurtisOvidPoe Yes, but isn’t a bag for weights? These aren’t weighted. And immutability means I need to construct the hash and then construct a bag and return it. In that sense, it seems like more work that just confuses things.
mst CurtisOvidPoe: weighted? what?
perlpilot CurtisOvidPoe: I'd argue that prime factorization is *exactly* weights ;)
mst CurtisOvidPoe: a bag is just a non-unique set, like a table in a databases without a PK 20:25
dalek pan style="color: #395be5">perl6-examples: 59aea7d | Ovid++ | categories/99-problems/P36-ovid.pl:
A modern version of a prime factor sub
CurtisOvidPoe Thanks, moritz :)
perlpilot CurtisOvidPoe: but, yeah, the Bag API isn't very good for bag construction if you want to do it piece-meal, so it's just extra work for you.
mst masak: historically, I've seen fewer people put off by file I/O, since that's usually something everybody has to learn anyway
20:26 rindolf left
CurtisOvidPoe @mstL the bag is documented as having an integer weight. Thus, it would be repurposing the hash for something where the prime factors are equal in value, even though some occur more often than others. That’s not really weighted, is it? 20:26
mst you could see 'weight' as equally meaning 'count' 20:27
20:27 go|dfish left
CurtisOvidPoe mst: point. 20:27
mst I worry that you're hung up on the word 'weight' here and thereby missing the simpler possibilities
teatime seems to recall a mutable bag type and/or a type w/ Real/Num/something weights 20:28
CurtisOvidPoe At the end of the day, I’d just like to fix up some earlier examples so that they’re not misleading. I know some of the early stuff I hacked out/up is pretty bad.
skids m: my %f := BagHash.new(); %f{13}++; %f.perl.say 20:29
camelia rakudo-moar d1eeb3: OUTPUT«(13=>1).BagHash␤»
20:29 sjn left
skids Mutable version 20:29
20:29 darutoko left
skids I would not get hung up on "weight" since "bag" comes from discrete math word problems involving colored balls in bags. 20:30
20:30 smls left
masak skids++ # yes, BagHash here is exactly what's called for 20:30
I should've remembered that.
with BagHash, you probably get the best of both worlds. 20:31
you can treat it as a Bag, or as a Hash
teatime BagHash sounds like something teenage hobbits would smoke.
20:32 go|dfish joined
teatime (sorry) 20:32
mst teatime: trout.me.uk/quotes.txt
teatime lol 20:33
dalek pan style="color: #395be5">perl6-examples: 47a4676 | Ovid++ | categories/99-problems/P36-ovid.pl:
Add a constraint so we don't try to factor numbers with no prime factors
skids At least we managed not to call it a "Sack". 20:37
20:38 sjn joined
skids m: class Holding { }; my Bag of Holding $f; $f.WHAT.say; # darn. 20:41
camelia rakudo-moar d1eeb3: OUTPUT«5===SORRY!5=== Error while compiling /tmp/TcOh6smwll␤Bag cannot be parameterized␤at /tmp/TcOh6smwll:1␤------> 3class Holding { }; my Bag of Holding7⏏5 $f; $f.WHAT.say; # darn.␤»
20:42 telex left
masak skids: "lament for the third sack"? :P 20:42
masak wonders whether someone else read Anathem
mst: "it's an attempt to express relational algebra in cobol" -- lol! 20:43
suddenly SQL makes perfect sense!
20:44 telex joined
dalek pan style="color: #395be5">perl6-examples: 9b7405a | Ovid++ | categories/99-problems/P40-rhebus.pl:
Modernize the code a bit.
20:45
mst skids++ 20:46
masak: since it's not really an important machine, my quotefile is effectively the monitoring system for the server it's on :D 20:47
masak ;)
20:48 espadrine joined 20:53 go|dfish left 20:54 nige1 left
dalek pan style="color: #395be5">perl6-examples: 033e62d | Ovid++ | categories/99-problems/P39-rhebus.pl:
Make this more perl6ish.

Also removed the last example because it was basically a broken duplicate of the first example
20:55
[Coke] doc.perl6.org/language/io should probably reference std in/out/err 20:56
20:59 skids left 21:02 hankache joined 21:04 go|dfish joined, donaldh joined
ZoffixWin CurtisOvidPoe, Set, Mix, and Bag types have mutable versions: SetHash, MixHash, and BagHash 21:06
21:09 espadrine left, firstdayonthejob joined, espadrine joined 21:10 espadrine left, jjido joined
Begi masak: are you still working on your Text::Mardown module ? 21:15
because there are yours, and this one : github.com/retupmoca/p6-markdown 21:16
21:16 nige1 joined 21:17 hankache left
masak Begi: depends on your definition of "working" -- I still mean to finish it, but I haven't been active for a while :/ 21:23
21:29 cpage_ left 21:31 wamba left
[Coke] FINISH HIM! 21:33
</kombat>
masak the payoff -- for me -- would be that I could move my blog engine over to a p6 Markdown module. 21:35
21:41 Begi left
teatime how do Type($x) and Type.new($x) differ semantically? When do we use/implement one vs. the other. 21:42
tony-o do you mean Type[$x] ?
teatime no, btu I also don't mean "Type" literally 21:43
MyType($x) vs. MyType.new($x)
or actually, what does Xyz($x) actually do / how is actually implemented 21:44
for things like Int(3.5)
geekosaur those are different things. the former is a coercion, the latter crerates a new object with a specified value
masak teatime: this is just my personal interpretation, but I think a cast is different from a construction in various ways
teatime ok, that's what I was mising
masak oh, what geekosaur++ said
geekosaur the former *may*, but is not guaranteed to, be equivalent to the latter in some cases
teatime *missing. I didn't realize it was just coercion.
masak yes, B(A) in Perl 6 means coerce A to B 21:45
m: sub foo(Int(Str) $x) { say $x; say $x.^name }; foo("42")
camelia rakudo-moar d1eeb3: OUTPUT«42␤Int␤»
perigrin m: sub foo(Int(Str) $x) { say $x; say $x.^name }; foo(Str.new(42)) 21:46
camelia rakudo-moar d1eeb3: OUTPUT«Default constructor for 'Str' only takes named arguments␤ in block <unit> at /tmp/tDUdSUvxos line 1␤␤»
perigrin teatime: the latter also may cause an exception for people who don't know what the heck they're doing :) 21:47
teatime heh, perigrin that would be me; when would it? 21:48
oh nm, mis-read
perigrin teatime: might be _both_ of us. 21:49
21:53 nige1 left 21:54 patrickz joined
patrickz tony-o: afaik The current path to 6PAN goes like this: 21:55
masak .oO( none of us have any idea what the heck we're doing )
geekosaur maybe a concrete example: it makes no sense to initialize a Str from an IO::Handle, but Str($some-handle) could produce a description including the source (if known) and current offset (if meaningful) 21:58
patrickz 1. fix EVAL precomp bug (nine) 2. get Repository API straight 3. get zef up to speed, 4. continue with the metacpan fork for perl6 (jdv). Since there t's more or less in that order, the toolchain work has pretty much come to a halt currently.
tony-o patrickz++ 21:59
patrickz The most hopes are up for the metacpan clone as a successor to modules.perl6.org, but it all depends on whether someone actually does the work. 22:00
ZoffixWin patrickz, where is all the code for people to contribute? I see people ask about it frequently, but I have no codebase to point potential volunteers to.
patrickz github.com/jdv/metacpan-web < that's the metacpan clone 22:01
ZoffixWin "Latest commit 99d446a on Dec 20, 2015" 22:02
:(
patrickz github.com/ugexe/zef < zef has some prototypical support for metacpan
true
teatime I can't figure out the dyntax to make a local alias e.g. D() for Duration.new() ? 22:03
some combination of \ and & and ...
patrickz but until recently there was a working prototype up (which isn't hard since metacpan is a working system)
tony-o patrickz: yea we'd planned to do that a while ago, we also started down the road of making something like metacpan (but not cpan _at all_)
patrickz: i dug it up, it was last updated in 2014 and i'm playing around with the front end right now, can be seen here: git.darcsys.com:9000/modules 22:04
ZoffixWin m: my &D = Duration.^can('new')[0]; say D(42)
camelia rakudo-moar d1eeb3: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at /tmp/2PXQpqD3FV line 1␤␤»
ZoffixWin *shrug*
RabidGravy teatime: something like "constant D = Duration but role { method CALL-ME(|c) { self.new(|c) } }"
patrickz tony-o: That's the system you wrote from scatch! 22:05
tony-o patrickz: yea, i kind of. i modeled it after npm but with support for the perl6ish way of handling modules:auth:vers:etc
and yes, rewrote from scratch
patrickz s/clone/fork/ wrt jdvs work 22:06
tony-o search is broken because i'm modifying it to just be a module browser rather than an actual repo
geekosaur m: my &D = Duration.^can('new')[0].assuming(Duration); say D(42)
camelia rakudo-moar d1eeb3: OUTPUT«42␤»
RabidGravy tony-o, looks good
patrickz I think jdv had an instance up on hack
22:08 cpage_ joined
teatime oh, durp... sub D($a) { Duration.new($a) } ? 22:09
patrickz I wish there'd be some more discussion about coordinating work. It happened more than once, that someone put huge amounts of effort into something, which later died away because of missing coordination of the efforts.
masak 'night, #perl6 22:10
RabidGravy if only there was an irc channel where most of the stakeholders can be found 22:11
dalek c: 4ba4f1a | (Zoffix Znet)++ | doc/Language/modules.pod:
The Future of Ecosystem

Organize the plan for current work needed on 6PAN
patrickz #perl6-toolchain :-P 22:12
22:14 pmurias left
dalek c: ade320d | (Zoffix Znet)++ | doc/Language/modules.pod:
List #perl6-toolchain and toolchain repo
22:17
patrickz Just for the sake of ZoffixWin commit above: I'm a total bystander who hasn't done a single commit in any part of perl6. That "plan" is just what I caught up here and there.
RabidGravy righr, cause I'm not sure why 1 & 3 are pertinent to the larger project 22:20
but hey I'm just a module author why would my input cout? 22:22
donaldh ugh, sort thorws java.lang.NullPointerException on JVM 22:23
yoleaux 4 Apr 2016 20:13Z <hoelzro> donaldh: I tried your JVM REPL fix patch, and sadly it only kinda works =/
donaldh Breaks precomp. All sort tests fail. 22:24
RabidGravy my wife provoked a nullPointerException in some app on her phone yesterday, I laughed 22:25
donaldh :)
The JVM backend is needing a lot of love. Unfortunately I'm struggling to find any time ... 22:26
teatime is there a Test.pm operator for == ? If not, I assume it's not what I should be using in tests to compare to (small, exact) numbers?
22:26 travis-ci joined
travis-ci Doc build passed. Zoffix Znet 'The Future of Ecosystem 22:26
travis-ci.org/perl6/doc/builds/122644650 github.com/perl6/doc/compare/d6176...a4f1a2af4c
22:26 travis-ci left
ZoffixWin I'm a hero! 22:28
donaldh hoelzro: JVM is more broken now and won't install. I'll dig into it and the REPL if I find tuits. 22:29
ZoffixWin m: use Test; cmp-ok 1, 2, '==', 'all good'; cmp-ok 1, '2', '==', 'nah';
camelia rakudo-moar d1eeb3: OUTPUT«not ok 1 - all good␤␤# Failed test 'all good'␤# at /tmp/2ze0xMcbpN line 1␤# Could not use '2' as a comparator␤not ok 2 - nah␤␤# Failed test 'nah'␤# at /tmp/2ze0xMcbpN line 1␤# Could not use '2' as a comparator␤» 22:30
ZoffixWin ah
22:30 jjido left
ZoffixWin teatime, ^ like that, but put the comparator as second positional 22:30
teatime hehe, that's what I have been doing
but I figured since it wasn't built-in, there must be some drawback to using == widely in tests 22:31
donaldh hoelzro: when you say the REPL fix patch only kinda works, what kinda does and what kinda doesn't ?
teatime there's an apx eql built-in, and string comparison..
but I'll stick w/ that for now 'cause afaict it's what Iw ant
ZoffixWin m: use Test; cmp-ok 1, '==', 2, 'all good'; cmp-ok 1, '==', '2', 'nah'; 22:32
camelia rakudo-moar d1eeb3: OUTPUT«not ok 1 - all good␤␤# Failed test 'all good'␤# at /tmp/a4BsoG7D0f line 1␤# expected: '2'␤Sub+{<anon|81793072>}+{Precedence} object coerced to string (please use .gist or .perl to do that) in block at /home/camelia/rakudo-m-inst-2/share/perl6/s…»
ZoffixWin Why does it fail? :S
donaldh .tell hoelzro irclog.perlgeek.de/perl6/2016-04-12#i_12326940
yoleaux donaldh: I'll pass your message to hoelzro.
ZoffixWin m: use Test; cmp-ok 1, &('=='), 2, 'all good'; cmp-ok 1, &('=='), '2', 'nah';
camelia rakudo-moar d1eeb3: OUTPUT«not ok 1 - all good␤␤# Failed test 'all good'␤# at /tmp/xQCbU82uw5 line 1␤# expected: '2'␤Sub+{<anon|81793072>}+{Precedence} object coerced to string (please use .gist or .perl to do that) in block at /home/camelia/rakudo-m-inst-2/share/perl6/s…»
teatime because 1 !== '2' ?
ZoffixWin Oh, damn
teatime but that's not exactly why
RabidGravy I think the upload perl6 modules to pause failed at the first hurdle "Could not enter the URL into the database. Reason: 22:33
Binary logging not possible. Message: Transaction level 'READ-COMMITTED' in InnoDB is not safe for binlog mode 'STATEMENT'"
22:33 donaldh left
teatime hrm, it doesn't even work w/ 2 ints 22:33
nm, it works with 1 == 1 and 1 == '1' :)
22:34 travis-ci joined
travis-ci Doc build passed. Zoffix Znet 'List #perl6-toolchain and toolchain repo' 22:34
travis-ci.org/perl6/doc/builds/122645990 github.com/perl6/doc/compare/4ba4f...e320d09525
22:34 travis-ci left
ZoffixWin teatime, but to answer your question, I think it might be because plain' old `is` is perfectly sufficient. 22:34
I don't recall the last time I needed '==' comparator. 22:35
RabidGravy, used to work 4 months ago :/
22:35 Sgeo joined
teatime is does string comparison.. which, I mean, is potentially better for test cases 'cause it could catch a class of errors numeric comparison could miss? 22:35
RabidGravy ZoffixWin, it appears it can't fetch from a URL 22:36
ZoffixWin Did you give it a URL to tarball or to a GitHub repo?
RabidGravy the url of the gh .tar.gz 22:37
ZoffixWin *shrug*
When I tried, I just uploaded a file.
RabidGravy oh well, no-one uses the modules anyway
there actually isn't any point in uploading to pause at the moment is there? 22:39
ZoffixWin Don't think so.
RabidGravy I'm sure at some point some shadowy cabal will mandate that they must be but expect the authors to know this by detecting a disturbance in the force 22:41
22:43 lostinfog left
RabidGravy ah no pause is actually broken right now 22:52
22:53 firstdayonthejob left 22:55 patrickz left 22:59 vendethiel- joined 23:00 vendethiel left 23:02 cpage_ left
RabidGravy anyway bed time toodles 23:04
timotimo bedtime noodles? 23:05
23:05 spider-mario left 23:07 cpage_ joined 23:09 RabidGravy left 23:17 jack_rabbit joined 23:22 ocbtec left, really joined
teatime TINP5C 23:24
23:25 sortiz joined
ZoffixWin :/ 23:28
Wow. Hawkin and some Russian dude put forth a plan for a flyby at Alpha Centauri: www.facebook.com/stephenhawking/ph...mp;theater 23:30
Too bad I'll be dead by then :(
23:32 adrian_ion joined
sortiz Me too, but the navigation system will be written in perl6! :-) 23:32
23:33 adrian_ion left
ZoffixWin sortiz++ 23:34
really p6: say 3; 23:41
camelia rakudo-moar d1eeb3: OUTPUT«3␤»
23:48 perlawhirl joined, cdg left 23:49 cdg joined 23:50 really left 23:52 ZoffixLappy joined 23:53 _nadim left 23:54 cdg left 23:59 MasterDuke joined, cpage_ left