»ö« 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 1Actually 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 orCPPStruct 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 bracketat <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«1OH HAI23» | ||
masak | wow :) | 05:49 | |
m: for 1..3 { .say; once say "OH HAI" } | |||
camelia | rakudo-moar f24968: OUTPUT«1OH HAI23» | ||
masak | m: sub foo { for 1..3 { .say; once say "OH HAI" } }; foo(); foo() | ||
camelia | rakudo-moar f24968: OUTPUT«1OH HAI231OH HAI23» | ||
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«1OH HAI231OH HAI23» | ||
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«1OH HAI231OH HAI23» | ||
BenGoldberg | m: sub foo { for 1..3 { .say; say "OH HAI" unless (state $x)++ } }; foo(); foo() | ||
camelia | rakudo-moar f24968: OUTPUT«1OH HAI231OH HAI23» | ||
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«123» | ||
gfldex | m: my &c = { .say }; for 1..3 &c; | ||
camelia | rakudo-moar f24968: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Missing blockat <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 1Actually 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 parameterat <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«TrueTrueFalseTrue» | ||
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 initializerat <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 postfixat <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 -eUndeclared 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 rowat <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 initializerat <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«42424343» | ||
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
|