»ö« 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.
brokenchicken Mithaldu: hehehe, so you mean I should be expecting a PR from you soon? :) 00:00
Mithaldu for REPL?
brokenchicken Yes, we still have postfix if and unless
Mithaldu doing it as we speak 00:01
excellent
brokenchicken Mithaldu: yes :)
Wooo \o/
Mithaldu what does but do, for dummies?
brokenchicken Mithaldu: clones the object and mixes in a role into the clone
Mithaldu oh ok, so it's like a + only on the OO layer
brokenchicken And if not a role is given, then it makes one with the .^name method returning the thing given
Mithaldu i.e. return $self but FallbackBehavior; will ALWAYS return 00:02
brokenchicken m: say True but role { method gist { 'tis False' } }
camelia rakudo-moar f2894d: OUTPUT«tis False␤»
Mithaldu neat
brokenchicken m: say True but False; # role got a Bool method which is used for producing .gist
camelia rakudo-moar f2894d: OUTPUT«False␤»
brokenchicken Yeah, that'll always return
Mithaldu excellent 00:03
i'm only tidying it, but i hope it'll be of some use
ok, reading docs, but wile i do, is there a quick way to negate this check? if %editor-to-mixin{$line-editor} -> $mixin { 00:04
oh i see, negating it would be nonsensical 00:05
brokenchicken You can run `TEST_JOBS=8 make spectest` to run the spectest and ensure your changes don't break anything (if you're unable to do so, mention it on the PR so the person merging it does it) 00:07
brokenchicken leaves to play video games
Mithaldu can't run tests, will mention
00:14 BenGoldberg left 00:16 BenGoldberg joined 00:19 dugword left
Mithaldu brokenchicken: when you feel like having a look: github.com/rakudo/rakudo/pull/1011...diff=split 00:21
00:22 cdg left, cdg joined 00:28 pyrimidine joined 00:32 DarthGandalf left 00:33 pyrimidine left, DarthGandalf joined
BenGoldberg . o O (Rakudo Star == 🐫道⋆ ?) 00:35
00:38 kent\n left 00:39 BenGoldberg left 00:41 BenGoldberg joined
BenGoldberg m: my @foo; @foo.shift; 'ok'.say; 00:43
camelia rakudo-moar 6e9d08: OUTPUT«Cannot shift from an empty Array␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
BenGoldberg m: my @foo; @foo.splice(0,1); 'ok'.say;
camelia rakudo-moar 6e9d08: OUTPUT«ok␤»
BenGoldberg m: my @foo; @foo.splice(0,10); 'ok'.say;
camelia rakudo-moar 6e9d08: OUTPUT«ok␤»
BenGoldberg m: my @foo; dd @foo.splice(0,10); 'ok'.say; 00:44
camelia rakudo-moar 6e9d08: OUTPUT«Array @foo = []␤ok␤»
BenGoldberg wonders why it doesn't complain.
00:48 Vynce left 00:53 girafe left
brokenchicken wonders why .shift complains :P 01:05
Mithaldu++ thanks. Merged. Left some comments on the PR if you ever feel up for that second pass :) 01:11
BenGoldberg It doesn't precisely complain, it returns a failure, which complains. 01:12
brokenchicken heh, looks like GitHub reviews got a bug in 'em. If you edit a comment you made before submitting your review, when you submit it your edit won't make it
01:13 labster left 01:15 cale2 left 01:20 gdonald left, bwisti left
BenGoldberg m: use NativeCall; use MONKEY-TYPING; augment class Signal { method raise() is native { * } }; SIGUSR1.raise; 01:23
camelia rakudo-moar 6e9d08: OUTPUT«Unknown type Signal used in native call.␤If you want to pass a struct, be sure to use the CStruct or␤CPPStruct representation.␤If you want to pass an array, be sure to use the CArray type.␤ in sub type_code_for at /home/camelia/rakudo-m-inst-2/sha…»
01:24 cibs left 01:26 cibs joined
BenGoldberg m: use NativeCall; use MONKEY-TYPING; sub raise(Signal) is native { * } }; raise(SIGUSR1); 01:27
camelia rakudo-moar 6e9d08: OUTPUT«5===SORRY!5===␤Unexpected closing bracket␤at <tmp>:1␤------> 3PING; sub raise(Signal) is native { * } 7⏏5}; raise(SIGUSR1);␤Other potential difficulties:␤ In 'raise' routine declaration - Not an accepted NativeCall type for parameter…»
BenGoldberg m: use NativeCall; use MONKEY-TYPING; sub raise(Signal) is native { * }; raise(SIGUSR1);
camelia rakudo-moar 6e9d08: OUTPUT«Potential difficulties:␤ In 'raise' routine declaration - Not an accepted NativeCall type for parameter [1] : Signal␤ --> For Numerical type, use the appropriate int32/int64/num64...␤ at <tmp>:1␤ ------> 3YPING; sub raise(Signal) is …»
BenGoldberg m: use NativeCall; use MONKEY-TYPING; sub raise((Int)) is native { * }; raise(SIGUSR1);
camelia rakudo-moar 6e9d08: OUTPUT«Potential difficulties:␤ In 'raise' routine declaration - Not an accepted NativeCall type for parameter [1] : Any␤ --> For Numerical type, use the appropriate int32/int64/num64...␤ at <tmp>:1␤ ------> 3TYPING; sub raise((Int)) is nat…»
BenGoldberg m: use NativeCall; use MONKEY-TYPING; sub raise(Int) is native { * }; raise(SIGUSR1);
camelia rakudo-moar 6e9d08: OUTPUT«(signal PWR)Potential difficulties:␤ In 'raise' routine declaration - Not an accepted NativeCall type for parameter [1] : Int␤ --> For Numerical type, use the appropriate int32/int64/num64...␤ at <tmp>:1␤ ------> 3Y-TYPING; sub raise…»
BenGoldberg m: use NativeCall; use MONKEY-TYPING; sub raise(int32) is native { * }; raise(SIGUSR1);
camelia rakudo-moar 6e9d08: OUTPUT«(signal PWR)»
01:28 gdonald joined
BenGoldberg m: use NativeCall; Signal.^add_method('raise', sub raise(int32) is native { * }); Signal.^compose; SIGUSR1.raise; 01:29
camelia rakudo-moar 6e9d08: OUTPUT«(signal PWR)»
BenGoldberg \o/ 01:30
m: use NativeCall; Signal.^add_method('raise', sub raise(int32) is native { * }); Signal.^compose; SIGUSR2.raise;
camelia rakudo-moar 6e9d08: OUTPUT«(signal SYS)»
BenGoldberg native ... methods.
01:31 travis-ci joined
travis-ci Doc build passed. Altai-man 'First stage of examples reworking in Language/ directory' 01:31
travis-ci.org/perl6/doc/builds/197815557 github.com/perl6/doc/compare/b729c...c71c30c2b9
01:31 travis-ci left 01:33 bwisti joined 01:34 rurban left
BenGoldberg m: use NativeCall; Signal.^add_method('raise', sub raise(int32) is native { * }); Signal.^compose; dd Signal.^method_table; 01:36
camelia rakudo-moar f24968: OUTPUT«{:ACCEPTS(method ACCEPTS (Mu $: | is raw) { #`(Method|69832168) ... }), :CALL-ME(method CALL-ME (Signal $: | is raw) { #`(Method|69833536) ... }), :Int(method Int (Cool $: | is raw) { #`(Method|69832472) ... }), :Numeric(method Numeric (Mu $: | is raw) { #…»
BenGoldberg m: use NativeCall; Signal.^add_method('raise', sub raise(int32) is native { * }); Signal.^compose; dd Signal.^method_table<raise>;
camelia rakudo-moar f24968: OUTPUT«Sub+{NativeCall::Native[Sub,Str]} raise = sub raise (int32 $) { #`(Sub+{NativeCall::Native[Sub,Str]}|82940032) ... }␤»
BenGoldberg m: use NativeCall; dd sub raise(int32) is native { * };
camelia rakudo-moar f24968: OUTPUT«Sub+{NativeCall::Native[Sub,Str]} raise = sub raise (int32 $) { #`(Sub+{NativeCall::Native[Sub,Str]}|75562304) ... }␤»
BenGoldberg is now wondering why it's spelt method_table instead of method-table. 01:38
moritz all the backend stuff uses _ rather than - 01:39
probably because some of that is implemented in C, which doesn't like - in identifiers
TimToady we also tend to use it culturally to mean "not really user-facing" 01:40
.oO(not_really_user_facing)
BenGoldberg Ok, got it :) 01:41
TimToady m: sub Here_be_dragons:__-ˉˉˉ-__ {}; say Here_be_dragons:__-ˉˉˉ-__ 01:49
camelia rakudo-moar f24968: OUTPUT«Nil␤»
01:51 kurahaupo joined
brokenchicken 0.o 01:57
m: sub fˉf {}; say fˉf
camelia rakudo-moar f24968: OUTPUT«Nil␤»
brokenchicken TIL that's a valid identifier char :S 01:58
01:58 f3ew joined
TimToady m: constant piˊ = 3; say piˊ 01:59
camelia rakudo-moar f24968: OUTPUT«3␤»
01:59 skids joined
TimToady m: constant piʹ = 3; say piʹ 02:00
camelia rakudo-moar f24968: OUTPUT«3␤»
02:00 astj left
brokenchicken u: ˊ 02:00
unicodable6 brokenchicken, U+02CA MODIFIER LETTER ACUTE ACCENT [Lm] (ˊ)
02:00 astj joined
TimToady u: ʹ 02:01
unicodable6 TimToady, U+02B9 MODIFIER LETTER PRIME [Lm] (ʹ)
TimToady probably more appropriate
brokenchicken u: modifier
unicodable6 brokenchicken, U+02B0 MODIFIER LETTER SMALL H [Lm] (ʰ)
brokenchicken, U+02B1 MODIFIER LETTER SMALL H WITH HOOK [Lm] (ʱ)
brokenchicken, gist.github.com/eea49be7ab92dcfd5e...ddc8d60188
TimToady alas, all the mathematical primes are not considered letters 02:02
brokenchicken m: my $xꜜ = 42; say $xꜜ 02:03
camelia rakudo-moar f24968: OUTPUT«42␤»
brokenchicken muahaha
m: class { has $!ꜝ = 42 ; method ꜝ { $!ꜝ.say } }.new.ꜝ 02:04
camelia rakudo-moar f24968: OUTPUT«42␤»
TimToady pity they never read the Cat in the Hat, or there'd be moar of 'em 02:06
02:06 Vynce joined
brokenchicken m: constant ˮ = 'in the Hat'; say “cat” ~ ˮ 02:06
camelia rakudo-moar f24968: OUTPUT«catin the Hat␤»
brokenchicken muahaha :D
02:10 pyrimidine joined
TimToady
.oO("Great fleas have little fleas upon their backs to bite 'em, And little fleas have lesser fleas, and so ad infinitum. And the great fleas themselves, in turn, have greater fleas to go on, While these again have greater still, and greater still, and so on.")
02:10
brokenchicken m: constant ˮ = “ˮ”; say ˮ ~ ˮ 02:11
camelia rakudo-moar f24968: OUTPUT«ˮˮ␤»
brokenchicken ^_^
TimToady we realy need recursive characters...
02:12 KDr2 joined, cpage_ joined
TimToady y'know, we'll probably never have an obfuscated Perl 6 contest, 'cuz with Unicode it's too dang easy :) 02:13
brokenchicken :}
02:13 cpage_ left, cpage_ joined 02:15 pyrimidine left
TimToady m: !!! !‚’i 02:17
camelia rakudo-moar f24968: OUTPUT«True␤ in block <unit> at <tmp> line 1␤␤»
02:17 labster joined
brokenchicken :) 02:18
SmokeMachine m: role R[Any ::T] {has T $.t}; say R[Int].new.clone # shouldn't T be Int? Int has .clone() 02:19
camelia rakudo-moar f24968: OUTPUT«No such method 'perl' for invocant of type 'T'␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine m: say 42.perl # I mean: Int has .perl()
camelia rakudo-moar f24968: OUTPUT«42␤»
02:21 nemsys left
SmokeMachine m: role R[::T] {has T $.t}; say R[Int].new.clone 02:23
camelia rakudo-moar f24968: OUTPUT«No such method 'perl' for invocant of type 'T'␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine m: role R[::T] {has T $.t}; say R[Int].new.clone: :42t
camelia rakudo-moar f24968: OUTPUT«R[Int].new(t => 42)␤»
SmokeMachine m: role R[::T] {has T $.t}; say R[Int].new.t.perl 02:24
TimToady m: role R[::T] {has T $.t}; say R[Int].new
camelia rakudo-moar f24968: OUTPUT«No such method 'perl' for invocant of type 'T'␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine twice?
m: role R[::T] {has T $.t}; say R[Int].new.t.perl
camelia rakudo-moar f24968: OUTPUT«No such method 'perl' for invocant of type 'T'␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine m: role R[::T] {has T $.t}; say R[Int].new.t
camelia rakudo-moar f24968: OUTPUT«No such method 'gist' for invocant of type 'T'␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine shouldn't it be Int? 02:25
m: role R[::T] {has T $.t}; say R[42].new.t
camelia rakudo-moar f24968: OUTPUT«No such method 'gist' for invocant of type 'T'␤ in block <unit> at <tmp> line 1␤␤»
TimToady yes, it's not rewriting all the generic bits like it should
I suspect there's already a bug report for this
SmokeMachine TimToady: yes... it looks like this one: rt.perl.org/Public/Bug/Display.html?id=125200 02:27
TimToady: Sorry I should had search there before ask that here...
TimToady obviously we just don't have enough instantiations of the generic jnthn :)
SmokeMachine TimToady: thanks! 02:29
02:29 pyrimidine joined 02:34 pyrimidine left, pyrimidine joined 02:38 adu joined, espadrine left 02:39 pyrimidine left 02:42 adu left 02:45 kurahaupo left, ilbot3 left 02:47 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:48 raiph joined
Geth doc/master: 4 commits pushed by Altai-man++, (Wenzel P. P. Peppmeyer)++ 03:08
MasterDuke brokenchicken: maybe it's just me, but i find the `…` at the end of the commit messages make me think they're being truncated 03:17
03:18 adu joined 03:25 eater left 03:27 eater joined 03:28 kent\n joined 03:35 pyrimidine joined 03:36 noganex_ joined 03:38 cibs left 03:39 noganex left 03:40 cibs joined 03:44 xtreak joined 03:56 aindilis joined 03:57 lostinfog left 04:00 cibs left 04:01 adu left 04:02 cibs joined 04:07 cdg_ joined 04:10 cdg left, astj left 04:16 skids left 04:17 cdg joined, cdg left 04:19 cdg_ left 04:22 labster left 04:29 dugword joined 04:31 labster joined
mspo man golang has this editor stuff down 04:40
guru and the other thing
04:41 pyrimidi_ joined 04:42 pyrimidi_ is now known as pyrimidine_ 04:47 adu joined 04:51 dugword left 04:56 Vynce left 04:57 Cabanoss- joined 05:02 Cabanossi left, dugword joined, astj joined, Cabanoss- is now known as Cabanossi 05:03 xtreak left 05:13 xtreak joined 05:14 adu left 05:17 pyrimidine_ left 05:20 dugword left 05:27 xtreak left 05:28 bwisti left 05:29 xtreak joined 05:35 pyrimidi_ joined, pyrimidine left
dj_goku Does anyone have any experience with nativecall and .a files? 05:42
05:43 Tonik joined
masak dj_goku: I sense a question behind that question that you're waiting to ask if someone says "yes" :) 05:47
suggest asking that question to speed things up 05:48
meanwhile...
what's a nice, idiomatic way to say "only run this code once" in Perl 6
m: for 1..3 { .say; once { say "OH HAI" } }
camelia rakudo-moar f24968: OUTPUT«1␤OH HAI␤2␤3␤»
masak wow :) 05:49
m: for 1..3 { .say; once say "OH HAI" }
camelia rakudo-moar f24968: OUTPUT«1␤OH HAI␤2␤3␤»
masak m: sub foo { for 1..3 { .say; once say "OH HAI" } }; foo(); foo()
camelia rakudo-moar f24968: OUTPUT«1␤OH HAI␤2␤3␤1␤OH HAI␤2␤3␤»
dj_goku masak: haha you are correct.
masak hm, so it's not once per program, it's once per surrounding invocation of the code? 05:50
how do I say once per program? :)
m: sub foo { for 1..3 { .say; say "OH HAI" unless $++ } }; foo(); foo() 05:51
camelia rakudo-moar f24968: OUTPUT«1␤OH HAI␤2␤3␤1␤OH HAI␤2␤3␤»
masak g'ah :)
05:58 aindilis left 06:00 cpage_ left, rurban joined, rurban left, aindilis joined, cpage_ joined
dj_goku masak: I have done some googling/irc log searching, but it doesn't seem to be possible. 06:01
BenGoldberg m: sub foo { for 1..3 { .say; say "OH HAI" unless (state $)++ } }; foo(); foo()
camelia rakudo-moar f24968: OUTPUT«1␤OH HAI␤2␤3␤1␤OH HAI␤2␤3␤»
BenGoldberg m: sub foo { for 1..3 { .say; say "OH HAI" unless (state $x)++ } }; foo(); foo()
camelia rakudo-moar f24968: OUTPUT«1␤OH HAI␤2␤3␤1␤OH HAI␤2␤3␤»
BenGoldberg m: { my $x; sub foo { for 1..3 { .say; say "OH HAI" unless $x++ } } }; foo(); foo()
camelia rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ foo used at line 1␤␤»
BenGoldberg m: { my $x; our sub foo { for 1..3 { .say; say "OH HAI" unless $x++ } } }; foo(); foo()
camelia rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ foo used at line 1␤␤»
BenGoldberg m: my &foo = { my $x; sub { for 1..3 { .say; say "OH HAI" unless $x++ } } }; foo(); foo() 06:02
camelia ( no output )
BenGoldberg headscratches.
06:03 BenGoldberg left
samcv this is the proper way to do this right? 06:04
m: sub thing ($first, $second, $third) { say $first }; my @list = 'one', 'two', 'three'; thing(|@list)
camelia rakudo-moar f24968: OUTPUT«one␤»
samcv using the `|` operator to to supply an array to a sub
06:09 wamba joined 06:35 domidumont joined
samcv hmm i'm getting Cannot .elems a lazy list 06:36
when trying to do: my $range = Range.new(10, 100).lazy; for $range { }
weird :\
06:41 domidumont left 06:42 domidumont joined 06:44 Tonik left 06:45 domidumont left
samcv also have a weird thing where `%points{$cp_s}{$pname} = $value;` is setting two different $cp_s's 06:47
it's setting two keys instead of just one i have no clue why 06:48
and this only happens if the hash is already populated with about 1 million keys, if the hash has a low number of keys i don't get this issue
06:48 RabidGravy joined
samcv :( 06:48
07:01 agentzh left 07:03 bjz joined
samcv oh crap i think what's causing it is i'm assigning the same hash to multiple keys and then changing one of them changes all of them. aha moment 07:04
masak jnthn++ # for allegedly fixing github.com/jnthn/grammar-debugger/issues/13 (!)
07:15 domidumont joined 07:16 domidumont left 07:20 domidumont joined 07:22 wamba left, domidumont left, labster left 07:24 domidumont joined 07:25 labster joined 07:28 domidumont left 07:32 abraxxa joined 07:35 pyrimidine joined, pyrimidi_ left 07:36 darutoko joined 07:40 abraxxa left, abraxxa joined 07:42 abraxxa left 07:43 abraxxa joined 07:51 domidumont joined 07:52 abraxxa left, abraxxa joined 07:54 xtreak left 07:58 wamba joined 08:00 bjz left 08:02 KDr2 left 08:14 xinming joined 08:17 xinming_ left 08:21 rindolf joined 08:27 parv joined 08:48 parv left, parv joined 09:01 khisanth_ joined 09:02 xtreak joined 09:03 ocbtec joined 09:05 Khisanth left 09:07 parv left 09:08 parv joined 09:10 xtreak left 09:11 xtreak joined 09:16 xtreak left 09:21 xtreak joined 09:22 rurban joined 09:24 eroux joined 09:26 koki1 joined 09:31 cibs left 09:33 cibs joined 09:34 pyrimidine left 09:54 gregf_ joined 10:17 xtreak left, xtreak joined 10:31 bjz joined 10:36 tonginbox joined 10:44 TEttinger left 10:51 xtreak left, xtreak joined 10:52 tonginbox left
nine jnthn: I wonder if you have an opinion on rt.perl.org//Public/Bug/Display.html?id=130709 10:55
10:58 agentzh joined 11:03 agentzh left 11:04 Geth left, Geth joined, ChanServ sets mode: +v Geth
brokenchicken MasterDuke: removed the … 11:04
11:11 pyrimidine joined 11:13 inra joined 11:16 xtreak left
MasterDuke masak: i think INIT is sometimes used in the core settings to get the effect of `once`, not per surrounding code 11:16
11:16 pyrimidine left
MasterDuke brokenchicken++ 11:17
11:20 labster left
lizmat yeah, we still have a race condition with once, afaik 11:20
11:21 inra left
Geth ecosystem: nobodyinperson++ created pull request #295:
Add Fortran::Grammar to META.list
11:22
ecosystem: eee75a4bb1 | (Yann Büchau)++ | META.list
Add Fortran::Grammar to META.list (#295)
11:29
11:34 parv left, inra joined
Mithaldu where are perl6 builtins documented? 11:43
moritz Mithaldu: docs.perl6.org/
Mithaldu this? docs.perl6.org/routine.html 11:44
hm, so there is no reset builtin, correct?
moritz nope
Mithaldu cool, thanks 11:45
moritz finds perl 5's reset EXPR quite amusing
brokenchicken Mithaldu: that one's declared in that file: github.com/rakudo/rakudo/blob/nom/...#L320-L323
moritz and there are no ?? searches
nine This must be the strangest error screen I've ever seen: niner.name/pentabarf_error_message.png
Mithaldu brokenchicken: yeah, i was just checking if there were any clashes 11:46
Ulti its impressive how I just read what reset is in perl5 and still dont get what it is
I have a feeling my regex fu is not as strong as the average perl person
moritz nine: pure gold
nine Ulti: same here :) 11:47
arnsholt WAAAAAT. That's a *horrifying* function...
samcv @nine, "prosecutors will be transgressicuted" hah
arnsholt had never heard of reset before
brokenchicken In perl 6, it would shadow the core one if one existed, so no clashes.
arnsholt Smells like pre-Perl 5, though, given the suggestion to use lexicals instead 11:48
Mithaldu brokenchicken: i'd still want to have avoided it
brokenchicken m: sub say { @_».uc.say }; say "foo"
camelia rakudo-moar f24968: OUTPUT«[FOO]␤»
Mithaldu as is, i'll just comment it as being badly named :P
arnsholt nine: Fun. Also, looks like it's implemented in Smalltalk (Seaside perhaps?) 11:49
Ah, sadly not. It's RoR 11:52
Mithaldu pentabarf is not fun to work with
last time i installed it i learned what dependency hell truly is
i found myself literally guessing and trying to bisect which versions of its dependencies it would work with
11:53 Vynce joined
Mithaldu m: say( 'a', 'b' ) 11:54
camelia rakudo-moar f24968: OUTPUT«ab␤»
11:56 cpage_ left
Mithaldu would be nice if docs.perl6.org/language/control#for contained postfix examples 11:58
brokenchicken Opened an issue: github.com/perl6/doc/issues/1178 11:59
Mithaldu <3
brokenchicken: integrated your feedback (particularly the not one was good as i didn't consider how it would read without code highlighting) and did a little more opinionated run: github.com/wchristian/rakudo/commi...diff=split 12:05
i'd like to have your opinions on that before making it a PR though
(and, if merged, would prefer it squashed with the previous one) 12:06
12:06 bjz_ joined 12:08 bjz left 12:11 rurban left 12:12 andrzejku left
Mithaldu also rebased D: 12:14
12:14 ambs joined 12:18 wamba left 12:23 ocbtec left
brokenchicken Mithaldu: don't think I'll have the time to review it for the next 27 hours. 12:24
Mithaldu that's fine, i'm in no kind of hurry :)
12:26 cdg joined, KDr2 joined 12:39 Vynce left 12:47 grondilu joined
grondilu isn't there a builtin regex for floating point literals? 12:47
yoleaux 26 Jan 2017 17:01Z <TimToady> grondilu: the subsig ($a,$b) is always treating pairs as named args, not positionals; perhaps we could distinguish a [$a,$b] subsig to force positional and let the () form turn pairs to nameds
grondilu m: -> $a, $b { say "$a:$b" }(1, 2) 12:50
camelia rakudo-moar f24968: OUTPUT«1:2␤»
grondilu m: -> $a, $b { say "$a:$b" }(foo => bar, 2)
camelia rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ bar used at line 1. Did you mean 'VAR', 'bag'?␤␤»
grondilu m: -> $a, $b { say "$a:$b" }(foo => 1, 2)
camelia rakudo-moar f24968: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in block <unit> at <tmp> line 1␤␤»
12:53 pyrimidine joined 12:55 pyrimidi_ joined
grondilu nevermind that, back to my initial question : isn't there a builtin or a module for parsing numeric literals? 12:55
I mean I often have to write a regex for that and I feel I'm reinventing the wheel here. 12:56
gfldex "Iteration variables are always lexical, so you don't need to use my to give them the appropriate scope." 12:58
^^^ that's kinda wrong
12:58 pyrimidine left
gfldex there are no iteration variables in a for loop 12:58
gfldex starts to rethink control#for 12:59
12:59 lizmat left, cpage_ joined
gfldex m: my &c = { .say }; c($_) for 1..3; 13:02
camelia rakudo-moar f24968: OUTPUT«1␤2␤3␤»
gfldex m: my &c = { .say }; for 1..3 &c;
camelia rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3my &c = { .say }; for 1..3 &c7⏏5;␤ expecting any of:␤ block or pointy block␤»
13:07 stmuk joined, rurban joined, pyrimidine joined 13:09 pyrimidine left, stmuk_ left, pyrimidine joined 13:14 pyrimidine left 13:15 bjz_ left 13:16 wamba joined, bjz joined, espadrine joined 13:17 cibs left 13:19 cibs joined 13:24 inra left
gfldex brokenchicken: I wonder if it would be sensible to suggest transfer of ownership to a github group when taking over a module. That may prevent the same problem to pop up again just because one more person was hit by a bus. 13:24
nine Mithaldu: why not use "unless" instead of "if not"? 13:27
Mithaldu nine: unless doesn't exist in that form in all languages and thus doesn't work as smoothly for some non-native english people 13:28
13:28 DethronedAngel joined
DethronedAngel I'm really liking Radoku. 13:28
Mithaldu for example the translation to german is "when nicht", which is "if not" 13:29
s/when/wenn/
timotimo ( "was wenn nicht, hä?" ) 13:31
Mithaldu haha
nine Mithaldu: "zurückkehren außer im Fehlerfall" is how I'd read it in German which sounds perfectly well. 13:32
Mithaldu except ausser is except
plus, you still need that "im" there to get something sensible :P 13:33
jast why do you need to read it in German in the first place? it's English... :P
nine which is a synonym for "unless". And "außer" is the first German word I thought of when looking for a translation. Given that I'm a native German speaker, I guess I'm not too far off.
Mithaldu jast: just how the mind works
nine Mithaldu: return if not error is not exactly sensible English either ;) 13:34
Mithaldu nine: what you have there translates back to
jast that's awfully generalized. I have no trouble reading English without translating everything to German first.
Mithaldu "return except if error"
timotimo there's a "why is this here?", i can tell what it's for, but who knows why it's right there ...
oh, the comment below already explains it
jast and anyway, using "unless" in Perl doesn't always make for a grammatically sound phrase, but that's not the goal anyway 13:35
Mithaldu in any case, that's why i don't use unless
i can't read it fast
jast according to English grammar, that is
Mithaldu and i'm not the only one with that issue
jast it's a matter of practice, really
Mithaldu if not is always unambiguously skimmable to anyone i've met
jast for a while I had trouble reading "unless" constructs, but it's not a big deal anymore
Mithaldu still a deal tho :v
jast you could argue the same thing for any unusual piece of syntax in Perl 13:36
gfldex m: sub infix:<es-sei-denn>(&c, $b){ c unless $b }; { say ‚issn?‘ } es-sei-denn (DateTime.now.hour > 18);
camelia rakudo-moar f24968: OUTPUT«issn?␤»
Mithaldu gfldex++
jast in fact many people don't use Perl (5, mainly) because of all the sigils, same reasoning: they find it hard to read
Mithaldu jast: no you can't argue that i can't read it fast for any unusual piece of syntax since you aren't in my brain 13:37
jast where did I argue that?
Mithaldu well if you didn't, then your argument was ambiguous :P
jast quite likely, that's what happens when people use language ;)
Mithaldu also, to make what i'm saying less ambiguous 13:38
jast natural language, that is. tricky beast.
Mithaldu i've been at this shit for over 12 years and i've read and written plenty of perl
unless still has me stumbling when reading
so that is my answer
and i'm not particularly interested in philosophizing over it ;) 13:39
jast well you did bring it up and that was my take on it ;)
gfldex unless works well for me as a postfix
Mithaldu i didn't :|
13:40 masak left
jast I guess that's true 13:40
Mithaldu :P
jast gfldex: good point, now that you mention it I find it easier to read as a postfix, too
gfldex m: constant term:<hömma> := &prompt;
camelia ( no output )
Mithaldu gfldex: "works for me" is not often a useful argument ;)
haha, hömma, what? 13:41
jast I really only use unless for blocks for straightforward things like: unless (defined $foo) {}
13:41 masak joined
brokenchicken That's better written as `without $foo {}` in Perl 6 :) 13:42
gfldex the unless/if not debate is pretty pointless because in Perl 6 you should use with/without most of the time anyways :->
Mithaldu link?
jast right... I've not used it at all in Perl 6 so far :)
brokenchicken :)
Mithaldu i saw REPL.pm check definedness a few tmes
brokenchicken Mithaldu: docs.perl6.org/syntax/with%20orwith%20without
Mithaldu cheers
masak gfldex: I've never used `with`/`without` in my code. I missed the memo says I should use it most of the time ;)
brokenchicken Mithaldu: with => if defined; without => if not defined; orwith => elsif defined 13:43
gfldex masak: if you do your multies right, you should never get to the point where you would need `without`. :->
masak I guess what I'm saying is I've so far not gotten to the point where I needed `with` 13:44
Mithaldu so basically this: return if not $line.defined; is better as: return without $line;
yay :)
jast hmm, that will take a little getting used to... 13:45
Mithaldu does this also still work?
return without my $line = $read.readline(prompt);
masak `return if not $line.defined;` reads a whole lot clearer to me than `return without $line;` :/
Mithaldu masak: you did mention you've not seen without a lot, yeah? 13:46
masak but oh well -- I'll stick to writing code instead of complainin' :)
Mithaldu might be a side effect of not being familiar with it yet
gfldex m: use variables :D; # solved!
camelia ( no output )
timotimo "without" can read a bit weird sometimes
masak Mithaldu: I was talking about reading the code aloud and gathering from that what it does
13:46 cibs left
masak Mithaldu: that's pretty independent of my familiarity with the keyword and its semantics 13:47
jast nominates 'unwith' as an alias ;)
Mithaldu m: sub meep { } sub marp { return 1 without my $line = meep; 2 } marp
camelia rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Strange text after block (missing semicolon or comma?)␤at <tmp>:1␤------> 3sub meep { }7⏏5 sub marp { return 1 without my $line = ␤ expecting any of:␤ infix␤ infix stopper␤…»
Mithaldu :<
timotimo needs semicolons
gfldex what is the scope of `use variables :D;` ?
13:47 pyrimidi_ left
Mithaldu m: sub meep { }; sub marp { return 1 without my $line = meep; 2 }; marp 13:47
camelia ( no output )
Mithaldu m: sub meep { }; sub marp { return 1 without my $line = meep; 2 }; say marp
camelia rakudo-moar f24968: OUTPUT«1␤»
Mithaldu word
masak 'night, #perl6
timotimo gnite masak
Mithaldu m: sub meep { 2; }; sub marp { return 1 without my $line = meep; 2 }; say marp
camelia rakudo-moar f24968: OUTPUT«2␤»
Mithaldu night masak :) 13:48
13:48 wamba left, cibs joined, g4 joined, g4 left, g4 joined
Mithaldu masak: see, funnily enough to my mind "raus ohne variable" makes perfect sense :) 13:48
gfldex m: sub foo(\a){ use variables :D; my $b = a; }; my $c = Any; foo $c; 13:49
camelia rakudo-moar f24968: OUTPUT«Type check failed in assignment to $b; expected Any:D but got Any (Any)␤ in sub foo at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
Mithaldu brokenchicken: another commit :) github.com/wchristian/rakudo/commi...diff=split 13:53
quite liking this without with thing, it cool 13:54
perlpilot Mithaldu++ I was having trouble liking `without`, but that code makes me like it as much as `with` now :) 13:58
Mithaldu :D
i've been doing similar constructs in perl 5 for a while now :)
brokenchicken I'd write that method repl-read {} as just self-update-completions; linenoiseHistoryAdd $_ with linenoise prompt; 14:03
m: say $_ with 'meows'
camelia rakudo-moar f24968: OUTPUT«meows␤»
brokenchicken m: say $_ with Any
camelia ( no output )
brokenchicken linenoise prompt andthen .&linenoiseHistoryAdd
Oh that won't work without some parens :( 14:04
14:04 DethronedAngel left
brokenchicken linenoise prompt() andthen .&linenoiseHistoryAdd 14:04
m: sub foo { 42 }; sub bar { $^z }; sub meows { @_.say }; bar foo andthen .&meows 14:05
camelia rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ andthen used at line 1␤␤»
brokenchicken It gobbles and think andthen is a term
m: sub foo { 42 }; sub bar { $^z }; sub meows { @_.say }; bar foo() andthen .&meows
camelia rakudo-moar f24968: OUTPUT«[42]␤»
brokenchicken \o/
Mithaldu brokenchicken: i'm happy to see you inspired to make it more idiomatic :) 14:07
gfldex m: sub f(\a){ my $b = a // Failure.new('no definy, no runny!'); say $b }; f Any; 14:10
camelia rakudo-moar f24968: OUTPUT«no definy, no runny!␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
KDr2 Why Int.WHAT is Int? I can understand that `1.WHAT is Int`, but should Int.WHAT be something meta?
[Coke] Int is slightly META. 14:11
brokenchicken KDr2: .WHAT returns the type object, which for the type object is itself
moritz KDr2: no, Int is a perfectly fine Int
[Coke] m: say Int.How
camelia rakudo-moar f24968: OUTPUT«No such method 'How' for invocant of type 'Int'␤ in block <unit> at <tmp> line 1␤␤»
moritz KDr2: to get to the meta object, use HOW
[Coke] m: say Int.HOW
camelia rakudo-moar f24968: OUTPUT«Perl6::Metamodel::ClassHOW.new␤»
[Coke] that might be the really meta thing you wanted.
gfldex KDr2: see docs.perl6.org/language/typesystem...efinedness 14:12
brokenchicken m: say Int.HOW.WHAT.WHERE.WHY
camelia rakudo-moar f24968: OUTPUT«(Any)␤»
brokenchicken :P
m: sub f(\a where .defined or fail 'no definy, no runny!') {a.say}; f 42 14:13
camelia rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed parameter␤at <tmp>:1␤------> 3sub f(\a where .defined7⏏5 or fail 'no definy, no runny!') {a.say}␤ expecting any of:␤ constraint␤ infix␤ infix stopper␤»
brokenchicken m: sub f(\a where .defined || fail 'no definy, no runny!') {a.say}; f 42
camelia rakudo-moar f24968: OUTPUT«42␤»
brokenchicken m: sub f(\a where .defined || fail 'no definy, no runny!') {a.say}; f Int
camelia rakudo-moar f24968: OUTPUT«no definy, no runny!␤ in sub f at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken BTW, :D is not equivalent to .defined 14:15
m: dd [.defined, $_ ~~ Any:D ] given Failure.new
camelia rakudo-moar f24968: OUTPUT«[Bool::False, Bool::True]␤»
brokenchicken m: dd [.defined, $_ ~~ Any:D ] given Nil.new
camelia rakudo-moar f24968: OUTPUT«[Bool::False, Bool::False]␤»
brokenchicken m: dd [.defined, .DEFINITE ] given Nil.new 14:16
camelia rakudo-moar f24968: OUTPUT«[Bool::False, Bool::False]␤»
brokenchicken Of well :) tis true for Failure
KDr2 thanks guys, I am going to read the type system doc to find out why (a type object).WHAT is itself
perlpilot KDr2: why wouldn't it be? 14:17
brokenchicken KDr2: otherwise, my Int $x; ..... $x.WHAT would give you different results depending on whether or not it was instantiated to anything.
perlpilot what brokenchicken said.
KDr2 I though instance.WHAT is the class of the instance, which in java, class Integer is a instance of class Class 14:19
moritz KDr2: Perl 6 != Java
Perl 6's MOP is much more inspired by Common Lisp
[Coke] .ask samcv regarding RT#130710 - same text twice, fails second time? I can't get it to fail here at all.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130710
yoleaux [Coke]: I'll pass your message to samcv.
KDr2 yeah, I realize it, I am reading the doc now, thanks
moritz and "The Art of the Meta Object Protocol"
brokenchicken KDr2: ah, not in Perl 6. It inherits from Cool, Any, and Mu, but ain't an instance of any of them.
moritz m: say Int ~~ Int; say 2 ~~ Int; say Int ~~ Int:D; say 2 ~~ Int:D 14:20
camelia rakudo-moar f24968: OUTPUT«True␤True␤False␤True␤»
samcv m: $_ = (' a ', ' b '); $_.».trim.perl.say
yoleaux 14:19Z <[Coke]> samcv: regarding RT#130710 - same text twice, fails second time? I can't get it to fail here at all.
camelia rakudo-moar f24968: OUTPUT«$("a", "b")␤»
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130710
samcv err typo
m: $_ = (' a ', ' b '); .».trim.perl.say
camelia rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed postfix call (only alphabetic methods may be detached)␤at <tmp>:1␤------> 3$_ = (' a ', ' b '); .7⏏5».trim.perl.say␤»
KDr2 so any type object is not a instance of any type object, right? 14:21
brokenchicken KDr2: right
KDr2: well, maybe an instance of some metaobject. I' 14:22
KDr2: well, maybe an instance of some metaobject. I've no idea about those parts
14:23 rindolf left
brokenchicken Whatever nqp::newtype() does :) 14:24
Oh, metaobject does nqp::newtype(self.new, 'some repr') so I guess there are instances of metaobjects involved \o/ 14:25
14:25 koki1 left 14:26 koki1 joined
brokenchicken And the metaobject's instance's attibutes have what methods a particular type has or parents, etc 14:26
m: Int.HOW.DEFINITE.say
camelia rakudo-moar f24968: OUTPUT«True␤»
KDr2 is that the implementation relative, or is in the spec? 14:28
moritz KDr2: it's spec, in the sense that it's tested in our test suite, I believe 14:29
though the actual documents are pretty light on how to do MOP
14:29 sammers left 14:30 cale2 joined, koki1 left
cale2 Hey, so I was reading that Fortran grammar. So after you parse Fortran with Perl6 grammars, you get all of the words back in a categorized fashion. 14:31
KDr2 thank you all, I learned a lot
brokenchicken \o/
cale2 Is the idea that you then create Perl6 functions for every Fortran function using the Perl6 MOP?
moritz the MOP can't create functions
cale2 Then execute the Perl6 and you have a Fortran "pseudo compiler"
moritz just classes and objects 14:32
14:32 bwisti joined
cale2 In that case, I'm not sure what good a programming language grammar is 14:32
if you can't execute what you've grammarized
moritz there are lots of things you can do with a parse tree 14:33
you could compile it to a different format (like assembler)
or you can do static analysis on it
type checking
linting
you could interpret the code 14:34
mspo editor stuff!
cale2 I assume that you can keep things grouped together then. For example, if you are parsing functions, you would get back an array of things that look like: 14:35
{name => "hello", signature => "Str $s", returns => "Str $s"}
moritz or create proper objects from those 14:37
14:37 g4 left
moritz class Signature { has @.params: has $.return-type }; class Function { has $.name; has Signature $.signature; has $.body } .... 14:38
14:40 inra joined 14:42 sammers joined, inra left 14:47 skids joined 14:49 bjz left 14:52 cdg_ joined 14:53 inra joined 14:55 cdg left 14:56 domidumont left 14:57 gfldex joined 15:00 pyrimidine joined, agentzh joined 15:01 bjz joined 15:03 rurban left, AlexDaniel joined 15:04 agentzh left, trnh joined, trnh left, trnh joined 15:08 cdg_ left 15:09 sena_kun joined 15:11 bjz left 15:13 pmurias joined 15:16 cdg joined 15:18 gfldex left 15:19 rindolf joined
brokenchicken tbrowder: "tbrowder i'm trying atom again and wonder if there is a package that will show a list of subs, classes, and vars on the menu bar like emacs p6 mode?" Ask samcv. I recall her showing the screenshot with a plugin that does something like that recently. 15:20
15:21 cdg left
tbrowder brokenchicken: thanks! 15:21
.tell samcv Can you tell us, please, what package for atom will show lists of p6 subs, vars, and classes on the menu bar? 15:23
yoleaux tbrowder: I'll pass your message to samcv.
15:23 gdonald left 15:25 gdonald joined
[Coke] tbrowder: that was answered in backlog for me. 15:26
tbrowder [Coke]: thanks... 15:27
[Coke] tbrowder: you need this file: github.com/samcv/dot-files/blob/ma...rker-rules
and that page links to "nav-panel-plus", the plugin you need.
hope that helps. 15:28
15:29 domidumont joined
tbrowder [Coke]: thanks, that helps a lot! 15:31
15:33 rurban joined
SmokeMachine m: sub bla(Int $) {say "defined"}; bla Int 15:34
camelia rakudo-moar c98b3a: OUTPUT«defined␤»
SmokeMachine m: use variables :D; sub bla(Int $) {say "defined"}; bla Int
camelia rakudo-moar c98b3a: OUTPUT«defined␤»
SmokeMachine :(
m: sub bla(Int:D $) {say "defined"}; bla Int 15:35
camelia rakudo-moar c98b3a: OUTPUT«Parameter '<anon>' requires an instance of type Int, but a type object was passed. Did you forget a .new?␤ in sub bla at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: use variables :D; sub bla(Int $x) {say "defined"}; bla Int
camelia rakudo-moar c98b3a: OUTPUT«defined␤»
SmokeMachine I think I didn't that the use variables :D...
brokenchicken m: use variables :D; my Int $x;
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable definition of type Int:D (implicit :D by pragma) requires an initializer␤at <tmp>:1␤------> 3use variables :D; my Int $x7⏏5;␤ expecting any of:␤ constraint␤»
brokenchicken m: use variables :U; sub bla(Int $x) {say "defined"}; bla 42 15:36
camelia rakudo-moar c98b3a: OUTPUT«defined␤»
brokenchicken Don't know much about `use variables` but that feels like a bug
SmokeMachine m: use variables :U; my Int $x = 42 15:37
camelia rakudo-moar c98b3a: OUTPUT«Type check failed in assignment to $x; expected Int:U but got Int (42)␤ in block <unit> at <tmp> line 1␤␤»
15:37 cdg joined
SmokeMachine m: use variables :_; my Int $x; $x = 42 15:38
camelia ( no output )
brokenchicken And ^ that's missing (implict :D...) part that the :D version has
huggable: 6.d
huggable brokenchicken, Proposals for 6.d language: github.com/perl6/specs/blob/master/v6d.pod
brokenchicken There's also a 6d proposal to make :D the default
Wonder how that will work with named args... 15:39
m: sub (Int:D :$foo) {}()
camelia rakudo-moar c98b3a: OUTPUT«Parameter '$foo' requires an instance of type Int, but a type object was passed. Did you forget a .new?␤ in sub at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken m: use variables :D; sub (Int :$foo) {}()
camelia ( no output )
perlpilot we'd have to change the message
(make it mention the other signature options) 15:40
s/have to/should/
15:42 gregf_ left
moritz m: use params :D; sub f(Int $) { }; f Int 15:43
camelia rakudo-moar c98b3a: OUTPUT«===SORRY!===␤Could not find params at line 1 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::Reposi…»
moritz m: use parameters :D; sub f(Int $) { }; f Int 15:44
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤use parameters not yet implemented. Sorry. ␤at <tmp>:1␤------> 3use parameters :D7⏏5; sub f(Int $) { }; f Int␤»
15:45 pyrimidi_ joined, trnh left
brokenchicken Ah 15:47
15:50 pyrimidi_ left, bwisti left 15:52 gfldex joined 15:53 rindolf left 15:54 geekosaur left 15:55 luiz_lha joined, geekosaur joined, trnh joined, trnh left, trnh joined, luiz_lha is now known as Guest11200 15:56 wamba joined 15:58 abraxxa left 16:01 rindolf joined 16:02 SourceBaby left, SourceBaby joined, ChanServ sets mode: +v SourceBaby 16:03 Undercover joined, ChanServ sets mode: +v Undercover, bwisti joined 16:04 KDr2 left 16:07 Guest11200 is now known as luiz_lha, dugword joined 16:08 rurban left 16:11 gfldex left 16:13 gfldex joined 16:17 hartenfels joined 16:18 xzhao joined
AlexDaniel I've just realized how hard it is without google 16:22
16:22 inra left
AlexDaniel it has been down for me 50% of the time I tried to access it today and yesterday 16:22
no gmail, no search :| 16:23
sena_kun AlexDaniel, ddg?
brokenchicken :)
AlexDaniel sena_kun: I've been trying to switch to ddg several times, but no… search results are not good enough, for some reason 16:24
brokenchicken AlexDaniel: I've got a present for you.
AlexDaniel oh! Great
brokenchicken m: constant ˮ = “ˮ”; say ˮ ~ ˮ 16:25
camelia rakudo-moar c98b3a: OUTPUT«ˮˮ␤»
AlexDaniel so?
sena_kun AlexDaniel, they are actually pretty bad(comparing to google), but if you use shebangs to access some sites directly(like wikipedia, github, etc) it can be still useable.
brokenchicken aww :)
AlexDaniel: It looks totally trippy on my terminal: i.imgur.com/vElsEoG.png . I was hoping to trick you :) 16:26
AlexDaniel yea, these quick access thingies look very nice, but in the end I just want something that will give me a proper top 5 list of results
16:27 robertle joined
sena_kun can't help here then. :/ 16:27
AlexDaniel brokenchicken: files.progarm.org/2017-02-03-18274..._scrot.png
brokenchicken Ah. heh 16:28
16:30 domidumont left
AlexDaniel I hate google so much though. Let's say I managed to search for something, great! But now I can't simply click on some link because it goes through google's redirect. Which is of course down again 16:31
16:32 daxim joined 16:39 xebra joined 16:40 xebra left 16:45 dugword left 16:47 domidumont joined 16:49 robertle left
nine AlexDaniel: so why don't you use DuckDuckGo instead? 16:50
AlexDaniel already stated above. But yes, perhaps I want too much 16:51
nine AlexDaniel: oh, sorry, just arrived at the hotel and didn't properly backlog 16:52
brokenchicken DDG rarely finds what I want. I'm too spoiled by Google's algorithms that know my every move.
AlexDaniel yep 16:53
nine Odd... the rate times ddg cannot help me I find that Google doesn't have anything for me either 16:54
16:54 rurban joined
AlexDaniel maybe I should give it try again 16:55
a 16:56
16:56 rurban1 joined 16:58 dugword joined, rurban left
perigrin doesn't find DDGs search results *that* bad compared to google, but does admit to using !g quite a bit 16:58
DDG is part of my finger flow though becaue it makes !cpan [Something] work like I expect ... bringing up the metacpan docs for [something] 16:59
well and anymore !wiki for wikipedia 17:00
huf i use !wikt a lot
i hate when i typo is to !wikit
perigrin I use wikipedia for that more often than not, or !define 17:03
huf eh. doesnt have etymology or IPA 17:05
hmm, it has some kind of pronunciation guide and audio, so i guess that's nice
oh etymology too! well now i'm a silly fool
17:07 cdg_ joined 17:08 luiz_lha left
perigrin heh 17:09
17:09 cdg left
huf okay, i got one more 17:09
i cant click over to the hungarian wiktionary from that thing to see if *they* have more info :) 17:10
perigrin being a sad american monoglot, that wouldn't help me
(and is a large part of why I don't use !define that much)
huf since the hu.wikt is small and sparse, it usually doesnt help me either :)
perigrin you'd think it'd be ... hungry for information .... YEAAAAA!! 17:11
huf perigrin: hmm? i didnt start using english dictionaries until i was already fluent
17:12 rurban joined
perigrin I use them a lot less since I got degree in English ... but I use !ety a lot more since I got the degree 17:13
huf :)
ooooh they have !ety for etymonline? sweet
perigrin yep :)
17:15 rurban1 left
Geth Inline-Perl5: e307c3599c | (Stefan Seifert)++ | 3 files
Implement accessing global Perl 5 variables by name

use Data::Dumper:from<Perl5>; say $Data::Dumper::Maxdepth;
  $Data::Dumper::Maxdepth = 2;
say Dumper([[[[[1], 2], 3], 4], 5]);
17:15
17:15 rurban1 joined 17:19 girafe joined, rurban left 17:42 dugword left 17:43 perlpilot left
Geth doc: a3952cb24d | (Zoffix Znet)++ | doc/Language/operators.pod6
Fix incorrect info on capture references in s[] = ...
17:46
17:46 robertle joined 17:49 dugword joined 17:51 espadrine left 17:56 andrewalker left, domidumont left, protium left, rblackwe_ left, Grrrr left, skaji_ left, TheDir joined, vcv joined, andrewalker joined, Grrrr joined, BooK joined, rblackwe joined, zb joined, mitchum joined, konobi joined, Ulti left, perigrin joined, DrForr joined, Ulti joined, hahainternet left, dg left, emdashcomma left, ingy joined, tailgate joined, lucs joined, [Coke] joined, konobi is now known as Guest85619, hahainternet joined, risou___ joined, Exodist joined, garu joined, mattp joined 17:57 emdashcomma joined, protium joined, clkao joined, skaji joined, ssm joined
sena_kun m: circumfix:«( )»('a', 'b', 'c'); # same as ('a', 'b', 'c') 17:58
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ circumfix:<( )> used at line 1. Did you mean 'circumfix:<{ }>', 'circumfix:<:{ }>', 'circumfix:<[ ]>'?␤␤»
17:58 dg joined
sena_kun It's bad. :/ 17:59
17:59 Ven joined
brokenchicken hm? 17:59
sena_kun The example is broken and I don't know how to fix it.
What kind of circumfix operator can be used to produce such result? 18:00
brokenchicken m: circumfix:«[ ]»('a', 'b', 'c').say
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Calling circumfix:<[ ]>(Str, Str, Str) will never work with any of these multi signatures:␤ () ␤ (Iterable:D \iterable) ␤ (Mu \x)␤at <tmp>:1␤------> 3<BOL>7⏏5circumfix:«[ ]»('a', 'b…»
brokenchicken m: circumfix:«[ ]»(['a', 'b', 'c']).say
camelia rakudo-moar c98b3a: OUTPUT«[a b c]␤»
brokenchicken m: circumfix:«[ ]»(['a', 'b', 'c']) === ['a', 'b', 'c']
camelia rakudo-moar c98b3a: OUTPUT«WARNINGS for <tmp>:␤Useless use of "===" in expression "circumfix:«[ ]»(['a', 'b', 'c']) === ['a', 'b', 'c']" in sink context (line 1)␤»
brokenchicken m: say circumfix:«[ ]»(['a', 'b', 'c']) === ['a', 'b', 'c']
camelia rakudo-moar c98b3a: OUTPUT«False␤»
brokenchicken :(
m: say circumfix:«[ ]»(['a', 'b', 'c']) eqv ['a', 'b', 'c']
camelia rakudo-moar c98b3a: OUTPUT«True␤»
sena_kun Hmm... 18:01
brokenchicken m: say circumfix:«[ ]»($_) === $_ with ['a', 'b', 'c']
camelia rakudo-moar c98b3a: OUTPUT«False␤»
18:01 arnsholt joined
sena_kun I guess [] can be used instead. brokenchicken++ 18:01
18:02 ggherdov joined
brokenchicken wonder if it's existence is just an implementation detail... 18:02
its
18:02 cdg_ left
sena_kun "its existence" - '( )' thing? 18:03
18:03 cdg joined
brokenchicken m: circumfix:«( )»('a', 'b', 'c') 18:03
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared routine:␤ circumfix:<( )> used at line 1. Did you mean 'circumfix:<{ }>', 'circumfix:<:{ }>', 'circumfix:<[ ]>'?␤␤»
brokenchicken The circumfix:«[ ]»
sena_kun: what example is it anyway?
sena_kun brokenchicken, operators.pod. 18:04
docs.perl6.org/language/operators.html
The table says we have '.()' operator. :/ 18:05
18:05 ggherdov left 18:06 ggherdov joined
brokenchicken "Each operator is also available as a subroutine". I wonder if that's actually true. 18:06
18:07 dugword left
brokenchicken Like 2² comes to mind 18:08
Or ».
m: say &postfix:<».>
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Malformed postfix␤at <tmp>:1␤------> 3».7⏏5<EOL>␤ expecting any of:␤ dotty method or postfix␤»
brokenchicken m: say &postfix:('».') 18:09
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤You can't adverb ␤at <tmp>:1␤------> 3say &postfix:('».')7⏏5<EOL>␤»
18:09 cdg_ joined 18:10 lukaramu joined
sena_kun brokenchicken, can you file a proper issue against this section? 18:10
brokenchicken is too lazy
sena_kun 'kay, I'll do it... 18:11
18:11 inra joined
brokenchicken sena_kun++ 18:11
cale2 Should DateTime be referred to as a "library" a "module" or a "built in type" 18:12
18:12 wamba left, cdg left 18:13 cdg_ left, espadrine joined
[Coke] m: say DateTime.WHAT 18:15
camelia rakudo-moar c98b3a: OUTPUT«(DateTime)␤»
[Coke] well, it is a built in type.
hartenfels It's a class that does Dateish. 18:16
18:18 pyrimidine left
sena_kun s: help 18:20
moritz m: say Class ~ Module
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Undeclared names:␤ Class used at line 1␤ Module used at line 1␤␤»
SourceBaby sena_kun, Something's wrong: ␤ERR: ===SORRY!=== Error while compiling -e␤Undeclared routine:␤ help used at line 6␤␤
sena_kun s: 5 % 3
SourceBaby sena_kun, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Int); none of these signatures match:␤ ($thing, Str:D $method, Capture $c)␤ ($thing, Str:D $method)␤ (&code)␤ (&code, Capture $c)␤ in block <unit> at -e line 6␤␤
cale2 m: say Class ~~ Module
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Expected a term, but found either infix ~~ or redundant prefix ~␤ (to suppress this message, please use a space like ~ ~)␤at <tmp>:1␤------> 3say Class ~~7⏏5 Module␤»
cale2 m: say Class ~~ Module ~~ Library ~~ Package 18:21
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Expected a term, but found either infix ~~ or redundant prefix ~␤ (to suppress this message, please use a space like ~ ~)␤at <tmp>:1␤------> 3say Class ~~7⏏5 Module ~~ Library ~~ Package␤»
brokenchicken s: &infix:<%>, \(5, 3)
SourceBaby brokenchicken, Sauce is at github.com/rakudo/rakudo/blob/c98b...nt.pm#L271
brokenchicken SourceBaby: help
SourceBaby brokenchicken, Use s: trigger with args to give to sourcery sub. e.g. s: Int, 'base'. See modules.perl6.org/dist/CoreHackers::Sourcery
sena_kun thanks.
Oh. 18:22
m: multi sub infix:<%>($x, $y) return Numeric:D {} 18:23
camelia rakudo-moar c98b3a: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value' on object of type NQPMu␤»
sena_kun This error message is LTA or it's just me?
18:23 pyrimidine joined
sena_kun m: multi sub infix:<%>($x, $y) returns Numeric:D {} 18:24
camelia ( no output )
brokenchicken sena_kun: yes, for one it's missing the location of the error 18:26
sena_kun I'll search is it ticketed... 18:27
cale2 Is there a separate Github Repo for examples.perl6.org ? 18:28
I'd like to request adding an example here, or updating the current one: examples.perl6.org/categories/modul...ement.html 18:29
brokenchicken cale2: it
cale2: it's listed in the footer of that website
moritz cale2: yes, github.com/perl6/perl6-examples 18:30
sena_kun brokenchicken, rt.perl.org/Public/Bug/Display.html?id=130382 - is this can be extended or do we need a new ticket?
cale2 brokenchicken: thanks. I see that there is some overlap between Examples and the Docs though. For example, there is these two: docs.perl6.org/language/modules.ht...ng_Modules and examples.perl6.org/categories/modul...tcher.html
Geth Pod-To-HTML/coke/html-test: 36a499bbe9 | (Will "Coke" Coleda)++ | lib/Pod/To/HTML.pm
Don't manipulate html/xhtml pod sections

Pass it through unchanged.
18:31
18:32 Xhuin joined, Xhuin left
brokenchicken sena_kun: new ticket. If you run with --ll-exception it gives completely different locations for the two bugs 18:32
sena_kun brokenchicken, noted.
18:32 imcsk8 left 18:40 agentzh joined 18:42 dugword joined 18:48 nowan_ joined 18:50 nowan left
brokenchicken $/.gist is somewhat tough to understand when it contains a list of Match objects :/ 18:52
timotimo because it just puts spaces between each of the match objects?
and they end up kind of mushed together at the beginning and end? 18:53
brokenchicken Yeah. Here's the original and my workaround for the LTAness: gist.github.com/zoffixznet/98f82d2...f677141b33 18:54
brokenchicken vaguely recalls a discussion with AlexDaniel about avoiding literal new lines in Match.gist 18:55
18:57 zakharyas joined
SmokeMachine m: use params :D; sub f(Int $) { }; f Int 18:59
camelia rakudo-moar c98b3a: OUTPUT«===SORRY!===␤Could not find params at line 1 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::Reposi…»
19:01 darutoko left
timotimo yeah, that's kinda bad 19:01
19:05 ttttt joined, ttttt is now known as teatime 19:07 notbenh left 19:08 Ven left 19:10 notbenh joined 19:11 inra left
SmokeMachine m: use params :D; class C {Int $.a}; C.new 19:15
camelia rakudo-moar c98b3a: OUTPUT«===SORRY!===␤Could not find params at line 1 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::Reposi…»
SmokeMachine m: use variables :D; class C {Int $.a}; C.new 19:16
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3use variables :D; class C {Int7⏏5 $.a}; C.new␤ expecting any of:␤ infix␤ infix stopper␤ statement end␤ statement modi…»
[Coke] "has"
SmokeMachine m: use variables :D; class C {has Int $.a}; C.new
camelia ( no output )
SmokeMachine m: use attributes :D; class C {has Int $.a}; C.new 19:17
camelia rakudo-moar c98b3a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable definition of type Int:D (implicit :D by pragma) requires an initializer␤at <tmp>:1␤------> 3use attributes :D; class C {has Int $.a7⏏5}; C.new␤ expecting any of:␤ constraint␤»
SmokeMachine :)
19:19 trnh left 19:22 notbenh left, setty1 left 19:25 rurban1 left 19:26 zakharyas1 joined, setty1 joined 19:27 notbenh joined 19:33 SCHAAP137 left 19:35 zakharyas1 left 19:36 plicease joined
Geth doc/operators-reformat: 4d74a9ba14 | Altai-man++ | doc/Language/operators.pod6
We don't need to skip these examples and signatures;

  'returns' changed to '-->' due to github.com/perl6/doc/issues/1024;
19:38
doc/operators-reformat: 11973c50a9 | Altai-man++ | xt/return-type.t
Check Language/ for return types too
19:38 zakharyas left 19:39 SCHAAP137 joined
Geth doc: Altai-man++ created pull request #1180:
Operators reformat
19:40
19:42 perlpilot joined 19:47 dugword left 19:49 gdonald left, cdg joined, gdonald joined 19:50 cdg left 19:52 dugword joined 19:53 hartenfels left 19:54 rindolf left 19:55 cdg joined 20:00 cdg left 20:03 rindolf joined 20:08 inra joined
agentzh in our perl 6 dialect, fanlang, i've made the decision to introduce a builtin class, Actions, which can be the parent of user-defined actions class. 20:10
yoleaux 1 Feb 2017 21:34Z <brokenchicken> agentzh: yeah fanlang licenses for rakudo devs would be sweet. To see if we can steal any ideas.
perlpilot agentzh: what does the built-in Actions class do? 20:11
agentzh The Actions base class provides the get-line() and get-line-column() methods which can be optimized inside the grammar engine.
also, fanlang's grammar engine has automatic error message reporting upon parse failures. something like "expecting a(n) expression but got ...". 20:12
similar to Damion's Parse::RecDescent parsing module. 20:13
perlpilot I've occasionally wished (before Grammar::Debugger existed) for an auto-generated Actions class that just printed some info about what's matching and where.
agentzh perlpilot: Grammar::Debugger is for compiler developers, not users :)
perlpilot There's users and there's *USERS* Much of #perl6 fall in the latter category :) 20:14
teatime Are you saying I have a problem? I can quit any time.
agentzh perlpilot: fanlang also comes with a builtin grammar tracer, whose output is similar to Pegex. It's much readable for large grammars than p6's Grammar::Trace IMHO :)
timotimo don't quit during teatime
perlpilot heh
agentzh i often got lost while debugging parse failures in my perl 6 parser using the latter. 20:15
since my grammar is huge.
perlpilot: yeah, i mean most #perl6 members' own users. 20:16
when we write products in perl 6, the products' users do not necessarily know perl 6, or even perl.
asking them to use a tracer is too much. 20:17
20:17 labster joined
agentzh and manually add "traps" to the parser itself to take care of every possible error cases like rakudo does itself is also too much a burden on the parser develoeprs' side. 20:17
but i agree it still makes sense to generate more user friendly message for common cases using the manual way. 20:18
20:18 labster left, labster joined
agentzh oh well, it never hurts to generate a human readable error message on the parse failure position automatically anyway :) 20:19
20:19 FROGGS joined
agentzh now i'm hacking on fanlang's support for the Perl 6 packages and modules (compilation units). i'll ensure that it works nicely with make -jN. 20:20
i spent 2 days getting rakudo to work with make -jN, but it never comes close to the speed of compiling an all-in-one .p6 script merging all the .pm6 files.
20:20 cdg joined 20:26 cdg left, cdg joined
agentzh brokenchicken: cool! glad you like it :) 20:27
20:27 cdg_ joined 20:28 bjz joined, imcsk8 joined, cdg left
agentzh implementing Perl 6 is also so much fun, especially when we have rakudo as a mature reference impl in terms of language features. 20:29
20:29 cdg joined
agentzh otherwise it would be much harder. 20:29
it's always great to have something proven to play with. 20:30
20:32 iH2O joined, cdg_ left 20:34 bstamour joined
brokenchicken agentzh: FWIW, we also have #perl6-devb 20:36
If you want to follow any of design convos :) 20:37
I meant #perl6-dev
20:37 bstamour left, cdg_ joined, Tonik joined
agentzh brokenchicken: oh, good to know there's another channel. 20:38
joining
brokenchicken: sorry for OT here.
20:38 iH2O left
brokenchicken It's fine :) The primary reason for separate channel I think is that this channel has too much traffic for all the devs to backlog :) 20:39
+ bot spam
20:40 cdg left
cale2 agentzh: Are you making a new compiler for NQP? 20:41
20:41 Ven joined
agentzh cale2: not NQP, but our own perl 6 dialect. our goal is to make it as close to the final perl 6 as possible. 20:43
and also much faster than perl *5*.
cale2 agentzh: Are you running it through the official test suite? 20:44
agentzh though we reserve the right to do things differently in the grammar engine since we are not very happy with perl 6's grammar engine design.
cale2: not yet. we are preparing our own test suite. since the official one seems to depend on Test.pm6, which is undesired. 20:45
cale2 interesante
agentzh our test scaffold uses rakudo as the reference impl though.
cale2 agentzh: Is there a blog post or anything describing the motivation behind the project and where/how it will deviate from Rakudo Perl6? 20:46
agentzh it can automatically generate the output of rakudo feeding the same p6 program.
that's mostly how we do comparison in our test suite.
cale2: i've been talking alot about fanlang on #perl6 recently. below is the IRC log search: irclog.perlgeek.de/perl6/search/?n...;q=fanlang 20:47
but sure we'll write formally about it when it is mature enough.
it's just passed its 2 month birthday :) 20:48
you can see a fanlang example here: github.com/agentzh/perl-parsing-li...-benchmark
with benchmark results compared to perl 5 and rakudo.
though that example only exercises a very small part of fanlang's implemented language features. 20:49
we're porting a real-world DSL compiler from p5 to fanlang this month, about 9K LOC in perl 5. 20:50
a large beast.
20:50 bjz left
agentzh cale2: it shares nothing with rakudo in terms of implementation. 20:50
cale2: it's a from-scratch project targeting openresty and luajit. 20:51
currently fanlang's compiler is written in perl 5/pegex.
it'll soon get rewritten in fanlang itself and complete the bootstrapping process.
fanlang generates Lua code for LuaJIT and OpenResty.
we may add a JS backend targeting web browsers in the near future :) 20:52
moritz stop taunting us, provide a preview instead! 20:53
El_Che claudio.ulyssis.be/var/tmp/images/donaldpl6.gif
20:53 inra left
El_Che (zoom in) 20:53
mspo man I really want to use p6 for a website but don't want to write everything from scratch :(
El_Che someone sent that to me :)
mspo might end up with.. php 20:54
agentzh moritz: no, no, no, i was not taunting.
just sharing and answering questions :)
moritz: our company will give free licenses of fanlang to all rakudo developers for noncommercial use soon :)
after it gets bootstrapped. 20:55
mspo: fanlang will be able to write web apps atop the openresty platform.
in (kinda) perl 6 :) 20:56
mspo grav looks kind of nice
agentzh we even have perl's TT2 templating for openresty! :)
github.com/openresty/lemplate
mspo it's tough to be in a hurry; I'd even rather try elixir
agentzh since fanlang targets openresty, all the openresty ecosystem will be available to fanlang as well :)
El_Che agentzh: what's the ethymology of fanlang? 20:57
sena_kun mspo, try yesod(not ad). :) 20:58
mspo sena_kun: every time I try to do something new I end up getting bogged down in learning new foo and giving up :) 20:59
also how I ended up knowing a little bit of erlang and alittle bit of go 21:00
and even less perl6 ;)
El_Che mspo: a little bit of go is probably 90% of the language. Pretty small
daxim stack泛滥
mspo El_Che: yeah I'm surprised how much of it I do know 21:01
El_Che: like enough to troubleshoot and understand basic stuff
I've written practically nothing 21:02
El_Che mspo: I wrote a small toy app to learn it and it ended in production. That small :)
cale2 mspo: yeah, i'm pretty much a perpetual learner too. I learned elixir but OTP feels weird to write. Like each module is it's own process/gen_server. And you're writing functions that respond to messages sent by itself
I can't help think, "There's gotta be a better way"
sena_kun mspo, hmmm... For me it's the opposite. It is hard to learn something to just learn(if it is not CS theory, but some framework or something alike), but if I need to produce some piece of software, it is a good task to learn in progress. The negative point of such approach is that such software is a good target for rewriting from scratch after you actually "learned" how to do this "right". (:
mspo cale2: erlang is a little nuts 21:03
agentzh have you guys looked at openresty yet?
mspo but the whole "distributed computer" paradigm is really appealing
agentzh it's an open source web platform for almost a decade :) 21:04
openresty.org
cale2 mspo: I agree. But I think if we just sit back and wait, there will be an API that makes it all extremely trivial
mspo agentzh: a division of my company is using it as a front-door
agentzh mspo: cool :) 21:05
we're getting perl 6 run on it, which is fanlang.
mspo agentzh: I proposed a similar design before finding out about it too
agentzh at least a perl 6 dialect.
we'll open source the unoptimized version of fanlang to the community.
mspo but I've known about openresty (mostly because it's fast fast fast) for a few years
21:05 yqt joined
agentzh yeah, we are serious about performance and C10K. 21:06
mspo El_Che: golang has their shit together with toolings and editor hints and stuff
agentzh: I feel like it was at the top of that web framework benchmarks thing fo ra while
cale2 For example, unisonweb.org/ aims to make distributed computing quite trivial. The abstraction makes more sense to me than erlang/elixir 21:07
El_Che mspo: yeah. Intellij support is pretty nice (and there is a go standalone ide coming from them). THey versioning is really bad though (as in none). They are working on it (at least they acknowledged)
agentzh mspo: that's why many busy sites choose us :)
21:08 pyrimidine left
cale2 mspo: The tooling actually feels quite restricted in practice. I'd rather have `go build` just put the output inside the project directory than into the bin on the gopath 21:08
the gopath is really annoying
21:08 pyrimidine joined
El_Che bbl 21:08
mspo cale2: I got over that pretty quickly. I was already beaten into submission by maven's layout requirements :) 21:09
cale2: I'm talking about stuff like guru
go vet, gofmt 21:10
cale2 mspo: yeah. I actually kind of like the corporate aspect too. It's less pressure on the community. For example, if interest wanes, it doesn't matter because Google is paying people to continue improving it 21:11
21:11 lizmat joined 21:13 pyrimidine left 21:14 bjz joined 21:20 FROGGS left 21:27 Ven left
samcv I have made a page on how to setup Atom as a Perl 6 IDE cale2 github.com/samcv/Atom-as-a-Perl6-IDE 21:37
yoleaux 15:23Z <tbrowder> samcv: Can you tell us, please, what package for atom will show lists of p6 subs, vars, and classes on the menu bar?
samcv .till tbrowder please see github.com/samcv/Atom-as-a-Perl6-IDE I have made a writeup on it :) 21:38
geekosaur "tell"? 21:39
samcv .tell tbrowder please see github.com/samcv/Atom-as-a-Perl6-IDE I have made a writeup on it :) 21:40
yoleaux samcv: I'll pass your message to tbrowder.
El_Che samcv: doest it break perl5 support? 21:41
samcv no
why would it break perl 5 support
El_Che it did in the past 21:42
samcv it will use perl 5 highlighting package for .pm and .pl files and use atom-language-perl6 for .pl6, .p6, .pm6, .nqp
idk i probably fixed that
i remember something about that, but i forget what I did
El_Che great to hear!
samcv :)
perlpilot samcv++ 21:43
samcv i am so in love with nav-panel-plus
github.com/samcv/Atom-as-a-Perl6-I...r-plus.png
so glad I found it
El_Che I ended adding systax error support to vim, but it's outdated. Need to find time to look at that again
samcv look at what? 21:44
21:44 Tonik left
sena_kun m: [while $++ < 2 { 42.say; 43 }].map: *.say; # says 42 twice then 43 twice 21:44
camelia rakudo-moar c98b3a: OUTPUT«42␤42␤43␤43␤»
Geth doc: 9936aa8080 | (Wenzel P. P. Peppmeyer)++ | doc/Language/control.pod6
doc postfix form of `for`
El_Che vim perl6 support now rakudo throws out json errorq 21:45
s
samcv wait vim has json errors?
cale2 samcv is that a draft you're gonna join with the official repo?
samcv probably 21:46
not sure where to put it
but for now it's there
and i have my config for nav-marker-plus
in that repo
perlpilot sena_kun: as it should. 21:47
samcv maybe could get them to add my config to the nav-marker-plus repo
once I get it so it's doing it on based on filetype. it wasn't working when I tried
El_Che rakodo can be set to output json errors
samcv but nav-marker-plus has support for it
oh
El_Che vim can then mark where the error is and show the message
sena_kun perlpilot, yep. My 2017.01-144-gf2894d3 does this example wrong.
El_Che my hack did it as well, but it predates the json thing 21:48
so regex based and fragile for future releases
rakuso json errors fixes that
but vimscript was not fun
samcv vimscript sounds terrifying 21:50
teatime it... could be worse? :)
perlpilot samcv: I've only used vimscript sparingly but it's no more terrifying than shell script or tcl or awk or etc. 21:51
cale2 what about neovim.io/ 21:52
doesn't that use python or lua?
perlpilot samcv: it's less trouble than lisp even :)
teatime I should give emacs a serious try; evil mode is well-regarded, too. 21:54
cale2 teatime: spacemacs.org/
21:58 kyan joined 21:59 nowan_ left 22:01 bjz_ joined, pmurias left, nowan joined 22:02 bjz left 22:11 atweiden-air joined, alimon left 22:12 travis-ci joined
travis-ci Doc build passed. Altai-man 'Check Language/ for return types too' 22:12
travis-ci.org/perl6/doc/builds/198124782 github.com/perl6/doc/compare/4d74a...973c50a986
22:12 travis-ci left 22:15 skids left 22:16 TEttinger joined
atweiden-air I'm seeing "Package 'Finn::Parser::Actions' already has an attribute named '$!horizontal-rule'", but Finn::Parser::Actions has no attribute named that 22:17
Actions is using a class ParseTree that has exported roles which do have a $!horizontal-rule attr
when i rename those attributes, it's still throwing the same error message
22:18 mr-foobar left
perlpilot atweiden-air: show the code? 22:19
22:19 mr-foobar joined 22:20 dugword left 22:22 sufrostico left
atweiden-air the only attributes in Actions are $.file and $.section (github.com/atweiden/finn/blob/a79b...ns.pm#L49) 22:22
changing this $!horizontal-rule and the other in the same file does nothing (github.com/atweiden/finn/blob/a79b...e.pm#L152) 22:24
22:25 geekosaur left 22:26 geekosaur joined
brokenchicken try nuking .precomp dir? 22:26
perlpilot and turning off precomp while developing 22:27
brokenchicken: my gut says that's it. :)
brokenchicken my gut says atweiden-air is probably editing the wrong file :) 22:28
perlpilot who knows?
lucs perlpilot: How do you turn off precomp?
brokenchicken Man, why does atom suck so much with sshfs -_- 22:29
atweiden-air brokenchicken: did that, does nothing
brokenchicken atweiden-air: how can we reproduce the issue? 22:30
atweiden-air git clone github.com/atweiden/finn ; cd finn ; PERL6LIB=lib perl6 -MFinn::Parser::Actions -e '"hello".say'
brokenchicken That's an LTA error :/ doesn't tell where the problem is :\ 22:31
perlpilot lucs: I was looking for some handy docs to point you at, but I can't find any :-( Add "no precompilation;" to the script. 22:32
brokenchicken $ grep -nFR '$.horizontal-rule'
lib/Finn/Parser/ParseTree.pm:152: has HorizontalRule:D $.horizontal-rule is required;
lib/Finn/Parser/ParseTree.pm:544: has HorizontalRule:D $.horizontal-rule is required;
Is that the same class?
atweiden-air i changed both those attributes, but to no effect 22:33
lucs perlpilot: Okay, noted, thanks.
atweiden-air you can load ParseTree just fine with perl6 -MFinn::Parser::ParseTree
it's only Actions that fails to compile
22:34 avalenn left, bjz joined
brokenchicken hehe, well, I reproed that. Looking deeper 22:35
22:35 avalenn joined, bjz_ left
brokenchicken atweiden-air: that `has` feels misplaced. It is meant to be there? lib/Finn/Parser/Actions.pm:474: has HorizontalRule:D $horizontal-rule 22:37
There's a bunch more in that file
22:38 pyrimidine joined, perlpilot left
brokenchicken and that makes a class attribute 22:38
atweiden-air brokenchicken: that would be a likely culprit; yes unintended
brokenchicken m: class { method meow { has $meows = 'meow' } }.meow.say
camelia rakudo-moar c98b3a: OUTPUT«Nil␤»
brokenchicken m: class { method meow { has $meows = 'meow' } }.meows.say 22:39
camelia rakudo-moar c98b3a: OUTPUT«No such method 'meows' for invocant of type '<anon|59760752>'␤ in block <unit> at <tmp> line 1␤␤»
brokenchicken hm
m: class { method meow { has $meows = 'meow' }; method meow2 { has $meows = 'meow' } }.meows.say
atweiden-air yes, that was it
camelia rakudo-moar c98b3a: OUTPUT«===SORRY!===␤Package '<anon|65733072>' already has an attribute named '$!meows'␤»
brokenchicken aha 22:40
So seems like it should be complaining about it, but it silently does half a job.
brokenchicken will create a ticket
oh wait, class attribute are my $.foo; the `has $meows` ain't a thing AFAIK 22:41
So it should be throwing
22:42 avalenn left 22:43 avalenn joined
brokenchicken m: class { has $foo = 42; method bar { $!foo } }.new.bar.say 22:44
camelia rakudo-moar c98b3a: OUTPUT«42␤»
brokenchicken m: class { has $foo = 42; method bar { $!foo } }.^attributes.say 22:45
camelia rakudo-moar c98b3a: OUTPUT«(Mu $!foo)␤»
brokenchicken Seems a way to make a private attribute :S
22:45 bjz left
brokenchicken .ask jnthn is `has $foo` (note, no twigil) supposed to be a working syntax for creating private attributes, as it does now, or should that throw? 22:46
yoleaux brokenchicken: I'll pass your message to jnthn.
22:46 cdg joined
brokenchicken Ticket for LTA error: rt.perl.org/Ticket/Display.html?id=130714 22:47
22:47 RabidGravy left 22:48 cdg_ left 22:51 dugword joined
Geth doc/language-section-examples2: 08b2fcbb91 | Altai-man++ | 26 files
Language/ examples output unification (last part)
22:52
22:54 yqt left
Geth doc: Altai-man++ created pull request #1181:
Unify Language/ examples output style
22:56
22:56 cdg_ joined 22:58 pyrimidine left 22:59 cdg left, pyrimidine joined 23:04 pyrimidine left, sena_kun left 23:05 avalenn left 23:07 avalenn joined, Technaton joined, rindolf left 23:08 cale2 left 23:11 wamba joined
Geth ecosystem: bf218244e5 | (Wenzel P. P. Peppmeyer)++ | META.list
META.info - META6.json
23:12
23:18 rindolf joined 23:22 cdg joined 23:25 lep_ joined, cdg_ left 23:26 cdg_ joined 23:28 lep-delete left 23:30 cdg left 23:37 daxim left 23:40 skids joined 23:45 dugword left 23:46 adu joined 23:48 cibs left 23:50 cibs joined 23:54 dugword joined 23:55 adu left