»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:05 mcmillhj joined 00:10 mcmillhj left 00:11 Cabanossi left 00:14 Cabanossi joined, Sound left 00:15 agentzh left 00:17 mcmillhj joined 00:21 mcmillhj left 00:22 araujo left, araujo joined, araujo left, araujo joined 00:24 jeffythedragonsl joined 00:26 BenGoldberg joined
jeffythedragonsl hey 00:30
naxieAlDle hello!
jeffythedragonsl windows 10 killed my linux bootloader but I'm back up to speed now, trying some more perl6 stuff
00:31 gdonald left 00:32 ZofBot left, gdonald joined, ZofBot joined, ChanServ sets mode: +v ZofBot
naxieAlDle \o/ 00:34
00:35 ggoebel left 00:36 mcmillhj joined
jeffythedragonsl I'm looking at github.com/MoarVM/MoarVM/issues/549, can't reproduce it 00:37
MasterDuke m: say expmod(1, -1, 1) 00:38
camelia 0
MasterDuke m: say expmod(3, -1, 3)
camelia (timeout) 00:39
MasterDuke m: say expmod(3, -1, 1)
camelia 0
jeffythedragonsl ok, but (1, -1, 1) doesn't timeout
MasterDuke i think it was fixed for the case of the third parameter == 1
dogbert17 has some comments about it over in #moarvm 00:40
00:40 mcmillhj left
jeffythedragonsl it's implemented in rakudo/src/core/Int.pm? 00:41
00:41 ZzZombo left
MasterDuke i believe the problem is actually in the 3rd party math lib we use 00:41
libtommath
00:41 risou_awy is now known as risou
MasterDuke MoarVM/3rdparty/libtommath 00:42
00:43 bjz left
MasterDuke jeffythedragonsl: you know about the web site with logs of the channels? 00:44
jeffythedragonsl yeah
MasterDuke irclog.perlgeek.de/moarvm/2017-03-11 has the comments i was thinking of 00:45
jeffythedragonsl hmm 00:46
00:46 mcmillhj joined 00:47 khw left
jeffythedragonsl why use gdb for python instead of pdb? 00:47
samcv j: 'st'.fc.say 00:48
camelia
00:48 ggoebel joined 00:49 khw joined 00:51 mcmillhj left
MasterDuke jeffythedragonsl: i think it's the other way around? using some python script in gdb 00:52
jeffythedragonsl I git cloned moarvm and there's no code in MoarVM/3rdparth/libtomath 00:54
MasterDuke it got turned into a submodule, so i think you have to `perl Configure.pl` and that will clone it 00:55
00:56 ecocode left
jeffythedragonsl ok 00:56
all I see that looks anything like that is in src/math/bigintops.c theres MVM_bigint_expmod
00:57 ecocode joined
MasterDuke yeah, looks like it pretty much just calls mp_exptmod 00:58
00:58 risou is now known as risou_awy
MasterDuke 3rdparty/libtommath/bn_mp_exptmod.c:24: 01:00
jeffythedragonsl so it's going into infinite recursion with no stack overflow?
01:01 ecocode left, ecocode joined
MasterDuke could be, i haven't looked at it at all, just noticed it was being talked about 01:03
01:08 mcmillhj joined 01:12 avuserow left, avuserow joined 01:13 mcmillhj left
jeffythedragonsl I'm thinking github.com/perl6/nqp/issues/332 might be easier since it's all in MoarVM 01:14
I can reproduce it now
01:17 aborazmeh joined, aborazmeh left, aborazmeh joined 01:20 user9 left 01:25 bjz joined, mcmillhj joined, Cabanossi left
jeffythedragonsl anyone have any idea where the code for || is? 01:27
01:29 Cabanossi joined
MasterDuke you could try doing `--target=ast` and see what it gives 01:29
01:30 mcmillhj left
MasterDuke e.g., perl6 --target=ast -e 'your code here' 01:30
jeffythedragonsl I guess it's called something like infix:<||> 01:33
MasterDuke probably 01:34
Geth whateverable: fcf6ae0542 | (Aleks-Daniel Jakimenko-Aleksejev)++ | t/committable.t
Test very old tags

Adds tests for issue #30.
2014.01 is the oldest release of Rakudo on MoarVM, currently we do not provide anything older than that.
01:35
IOninja points out the bug is in nqp, so doing `perl6 --...` is a bit far from home. 01:36
01:37 user9 joined
MasterDuke heh, whoops. `nqp --target=ast -e 'your code here'` 01:37
jeffythedragonsl ok, it's QAST::Op(unless &infix:<||>) || 01:38
if you put 4 || 200 in it evaluates to 4, only if you use a variable it's zero 01:39
MasterDuke might try saving off the asts for each version and diffing them, might give you a place to look 01:41
and making the variable an int also give 4
IOninja nqp: my $v := 42; my int $x := nqp::unless($v, 5); say($x) 01:42
camelia 0
IOninja nqp: my $v := ''; my int $x := nqp::if($v, 5); say($x) 01:43
camelia 0
IOninja nqp: my $v := ''; my $x := nqp::if($v, 5); say($x) 01:44
camelia
IOninja nqp: my $v := ''; my num $x := nqp::if($v, 5); say($x) 01:45
camelia 0
jeffythedragonsl $ nqp --target=ast -e "my $bar := 4; my int $foo2 := $bar || 200;"
Confused at line 2, near "my int :="
at gen/moar/stage2/NQPHLL.nqp:765 (/home/jpl/.rakudobrew/moar-nom/install/share/nqp/lib/NQPHLL.moarvm:panic)
MasterDuke might try disabling spesh or the jit
01:45 AngeloMichael joined, Actualeyes left
MasterDuke can't use " for the outermost quote, the shell uses them 01:46
jeffythedragonsl single quotes work 01:47
01:47 mcmillhj joined 01:49 agentzh joined, lukaramu left
jeffythedragonsl diff of the two versions 01:51
$ diff foo foo2
40c40
< - QAST::Stmts my $bar := 4; my int $foo := $bar || 200;
---
> - QAST::Stmts my $bar := 4; my int $foo := 4 || 200;
46c46
< - QAST::Op(bind) :var_initialized<?> int $foo := $bar || 200
---
> - QAST::Op(bind) :var_initialized<?> int $foo := 4 || 200
49c49
< - QAST::Var(lexical $bar)
---
> - QAST::IVal(4)
don't see how that really helps me though
:q
IOninja jeffythedragonsl: FWIW we have #perl6-dev
jeffythedragonsl ok :) 01:52
01:56 mcmillhj left 02:01 Ven left 02:03 wamba1 joined 02:04 labster joined 02:06 kalkin- joined 02:09 kalkin-_ left 02:11 gdonald left, gdonald joined, Cabanossi left
Geth whateverable: a96dec07a5 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Make sure huge STDIN is not replied back fully

Adds some tests for issue #34.
Interestingly, we only test stdin features for committable and
  evalable even though *all* bots support it equally. Perhaps it's time
to create a separate file for common tests.
02:12
02:12 diakopter___ joined 02:14 Cabanossi joined, ZzZombo joined, ZzZombo left, ZzZombo joined
ZzZombo Is there a way to do this in just one assigment? 02:23
m: 'a b c' ~~ /(\w)\s(\w)\s(\w)/;say my ($x,$y,$z)=$0,$1,$2
camelia (「a」 「b」 「c」)
MasterDuke m: my ($x,$y,$z) = |("a b c" ~~ /(\w)\s(\w)\s(\w)/); say $x; say $y; say $z 02:26
camelia 「a」
「b」
「c」
ZzZombo thanks, very good. 02:27
MasterDuke np
02:34 aborazmeh left 02:39 bjz left, labster left 02:40 mcmillhj joined 02:41 Cabanossi left 02:42 risou_awy is now known as risou 02:44 Cabanossi joined 02:45 ilbot3 left, mcmillhj left 02:47 user9 left, ilbot3 joined, ChanServ sets mode: +v ilbot3 02:48 jeffythedragonsl left 02:50 user9 joined 02:52 mcmillhj joined 02:54 jpl_ joined, ZzZombo left 02:56 skids joined, user10 joined, mcmillhj left 02:57 user9 left, user10 is now known as user9 02:59 diakopter___ left 03:03 mcmillhj joined 03:08 mcmillhj left 03:09 mcmillhj joined 03:12 bjz joined 03:14 mcmillhj left
naxieAlDle m: "a b c" ~~ /$<x>=\w\s$<y>=\w\s$<z>=\w/; say $<x>; say $<y>; say $<z> 03:15
camelia 「a」
「b」
「c」
naxieAlDle too late… :)
IOninja m: my ($x,$y,$z) = 'a b c'.words; dd [ $x, $y, $z ] 03:20
camelia ["a", "b", "c"]
03:21 mcmillhj joined 03:26 mcmillhj left 03:28 pierrot_ joined 03:29 Dunearhp_ joined, r3m left, ilbelkyr_ joined 03:30 r3m joined, ilbelkyr left, ilbelkyr_ is now known as ilbelkyr, labster joined 03:31 garu joined 03:33 mcmillhj joined, ccntrq- joined 03:34 hobbified joined, r3m left 03:35 r3m joined 03:36 girafe left, Xliff left, Dunearhp left, xxpor left, Undercover left, SourceBaby left, synopsebot6 left, dalek left, salparadise left, Matthew[m] left, unclechu left, TBSliver left, cpage left, garu_ left, ribasushi left, pierrot left, ccntrq left, jhill__ left, hobbs left, Grauwolf left 03:37 xxpor joined, ribasushi joined, mcmillhj left 03:39 mcmillhj joined
IOninja nqp doesn't have multies, does it? 03:41
03:42 noganex joined
Geth whateverable: d6c1f87205 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 5 files
Tests malformed links

Adds tests for issue #103.
Again, these should probably be separated into a file with common tests. The commands are slightly different for each bot, but that's not a big problem.
03:43
03:44 girafe joined, salparadise joined, unclechu joined 03:45 mcmillhj left, noganex_ left 03:48 jpl_ left 03:49 jhill__ joined, dalek joined, Xliff joined, Undercover joined, SourceBaby joined, synopsebot6 joined, Matthew[m] joined, TBSliver joined, cpage joined, Grauwolf joined, karatkievich.freenode.net sets mode: +vvv Undercover SourceBaby synopsebot6, jhill__ left, jhill__ joined, ChanServ sets mode: +v dalek, jhill__ left 03:50 AngeloMichael left, mcmillhj joined 03:52 jhill__ joined 03:55 bjz left 03:56 ZzZombo joined, ZzZombo left, ZzZombo joined, mcmillhj left 03:57 mcmillhj joined 03:58 bjz joined
Geth whateverable: 73e51c7e8d | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Make sure we have some sane characters in stdin

Adds tests for issue #83.
03:58
04:02 mcmillhj left
ZzZombo Is this expected to behave this way? 04:06
m: grammar A {token TOP { (<ws>+ || <alnum>+ || <cntrl>+ || .)* } };class B { method TOP($/) { say $/ }};say A.parse(' founded the Evidenzbureau in 1850 as the ',:actions(B));
camelia (timeout)
04:08 Cabanossi left
IOninja m: my num:D $ = 42e0; 04:08
camelia Type check failed in assignment; expected num:D but got Num (42e0)
in block <unit> at <tmp> line 1
IOninja m: my num $ = 42e0;
camelia ( no output )
IOninja m: my int:D $ = 42; 04:09
camelia Type check failed in assignment; expected int:D but got Int (42)
in block <unit> at <tmp> line 1
04:09 Cabanossi joined
IOninja m: multi foo (Int:D $x) {say "here"}; multi foo (int:D $x) { say "there" }; foo my int $x = 42 04:10
camelia there
IOninja m: my int:D $ = my int $x = 42
camelia Type check failed in assignment; expected int:D but got Int (42)
in block <unit> at <tmp> line 1
naxieAlDle m: grammar A {token TOP { <ws>+ } }; say A.parse(‘hello’);
04:10 Todd joined
IOninja This feels a bit bustified. Probably should just throw when attempting to use type smiley on natives? 04:11
camelia (timeout)
naxieAlDle m: ‘hello’ ~~ /<ws>+/
ZzZombo: ok, here's the reason ↑
camelia (timeout)
naxieAlDle m: ‘hello’ ~~ /<ws>/
camelia ( no output )
naxieAlDle m: say ‘hello’ ~~ /<ws>/
camelia 「」
ws => 「」
naxieAlDle or this, to be exact
ZzZombo: <ws> may be zero-width, so you end up matching it forever 04:12
I think it has always been like this
all: say ‘hello’ ~~ /<ws>/
IOninja <ws>+ don't make sense as <ws> covers it.
naxieAlDle but we can double-check, of course
committable6 naxieAlDle, gist.github.com/7487193b7df50e7e88...2f6fecf4be 04:13
naxieAlDle all: say 'hello' ~~ /<ws>/
ya
Todd Hi All, A quick question on subsitutions. This subsitution `$Clipboard ~~ s:global|\t| |;` replaces tabs with spaces. Question, if I had wanted to use `chr(9)` instead of `\t`, how would I do such (what is the syntax)?
committable6 naxieAlDle, gist.github.com/4ef103af1276adad35...9a9b6524b4
naxieAlDle Todd: <{chr(9)}> perhaps 04:14
IOninja Todd: {chr 9)} instead of \t
s/)//
Todd testing
ZzZombo m: grammar A {token TOP { (<alnum>+ || <cntrl>+ || .)* } };class B { method TOP($/) { say $/ }};say A.parse(' founded the Evidenzbureau in 1850 as the ',:actions(B));
camelia 「 founded the Evidenzbureau in 1850 as the 」
0 => 「 」
0 => 「founded」
alnum => 「f」
alnum => 「o」
alnum => 「u」
alnum => 「n」
alnum => 「d」
alnum => 「e」
alnum => 「d」
0 => 「 」
0…
IOninja Ah, right, naxieAlDle's version
ZzZombo hm... but I do need whitespaces covered 04:15
naxieAlDle ZzZombo: what about \s+ ? 04:16
ZzZombo m: grammar A {token TOP { (\s+ || <alnum>+ || <cntrl>+ || .)* } };class B { method TOP($/) { say $/ }};say A.parse(' founded the Evidenzbureau in 1850 as the ',:actions(B));
camelia 「 founded the Evidenzbureau in 1850 as the 」
0 => 「 」
0 => 「founded」
alnum => 「f」
alnum => 「o」
alnum => 「u」
alnum => 「n」
alnum => 「d」
alnum => 「e」
alnum => 「d」
0 => 「 」
0…
ZzZombo is't it supposed to be the same?
naxieAlDle not at all 04:17
but if you mean “one or more spaces”, then you need \s+
or, optionally, you can redefine <ws> to mean \s+
04:21 BenGoldberg left
Todd Thank you.. My test has a sybntax error. once I figure it out, I will be back 04:23
Geth whateverable: 08d08fb9e7 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 5 files
Make sure it is possible to add a comment after URLs

Adds tests for issue #75.
04:26
04:31 ZzZombo_ joined, ZzZombo_ left, ZzZombo_ joined, ZzZombo is now known as Guest78042 04:32 ZzZombo_ is now known as ZzZombo, khw left, Guest78042 left 04:34 silug left, perlawhirl left 04:39 naxieAlDle left 04:42 DnAeillaxe joined 04:44 ZzZombo_ joined, ZzZombo is now known as Guest89347, ZzZombo_ left, ZzZombo_ joined, ZzZombo_ is now known as ZzZombo 04:47 Guest89347 left, silug joined 04:56 Exodist left, Exodist joined 05:00 pierrot_ is now known as pierrot, pierrot left, pierrot joined 05:01 mcmillhj joined 05:08 Cabanossi left 05:10 Cabanossi joined
Geth whateverable: 5c8e78f444 | (Aleks-Daniel Jakimenko-Aleksejev)++ | t/committable.t
Test the fallback response

Adds a test for issue #67.
Generally, this fallback was added to handle buggy behavior. Any bot should figure out what to respond for *any* given command. Committable is the only bot that does not do so, which is why we are able to test the fallback response. Arguably, this should be changed, but the default response is actually spot on in this particular case.
05:10
05:47 CIAvash joined
samcv looks like latest kde adds support for EditorConfig 05:51
that's neat
editorconfig for everything!
Geth doc: fd7a41bca3 | (Zoffix Znet)++ | doc/Type/IO/Path.pod6
[io grant] Improve code example

  - remove Perl 5-ist parentheses
  - avoid repetition of a variable
  - fix incorrect Range (prose says "first three files")
  - gather IO::Paths, not strings
  - Don't use regex when we don't need it
  - No need to test .f
05:57
05:58 wamba1 left
Geth doc: 110efb41af | (Zoffix Znet)++ | doc/Type/IO/Path.pod6
[io grant] No need for `.ends-with`
06:01
samcv good post by someone who worked at microsoft about programming and complexity hackernoon.com/complexity-and-stra....ob7riudaf 06:02
Geth whateverable: daf479ad16 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 5 files
Make sure bots understand their misspelled nicknames

Adds tests for issue #39.
06:04
06:07 faraco joined
faraco IONinja: I'm sure people will adopt it more in the future. 06:08
06:11 cibs left
Todd Hi, I am back. I am still tryuing to figure out `s:global|{chr(9)}|Z|`. I create a test program to demonstrate the issue I am having. vpaste.net/OIoMP Would you guys mind taking a look at it? 06:11
IOninja Todd: it's <{chr 9}> not {chr 9} 06:12
06:12 cibs joined
IOninja You can also use \x[9] 06:13
What are you trying to do anyway?
Todd perl6 -e 'my $x="a\tb\tc"; say $x; $x ~~ s:global|<{chr(9)}>|z|; say $x'
Null regex not allowed
DnAeillaxe m: my $x="a\tb\tc"; say $x; $x ~~ s:global|<{chr(9)}>|z|; say $x
camelia a b c
5===SORRY!5=== Error while compiling /home/camelia/EVAL_0
Null regex not allowed
at /home/camelia/EVAL_0:1
------> 3anon regex { 7⏏5}
IOninja m: my $x="a\tb\tc"; say $x; $x ~~ s:global|a<{chr(9)}>|z|; say $x 06:14
camelia a b c
5===SORRY!5=== Error while compiling /home/camelia/EVAL_0
Null regex not allowed
at /home/camelia/EVAL_0:1
------> 3anon regex { 7⏏5}
IOninja heh
DnAeillaxe wtf?
Todd perl6 -e 'my $x="a\tb\tc"; say $x; $x ~~ s:global|<{chr 9}>|z|; say $x' same error
IOninja Todd: what are you trying to do?
DnAeillaxe maybe you'd love .trans more? 06:15
IOninja Ah
m: my $x="a\tb\tc"; say $x; $x ~~ s:ss:global|<{chr(9)}>|z|; say $x
camelia a b c
5===SORRY!5=== Error while compiling /home/camelia/EVAL_0
Null regex not allowed
at /home/camelia/EVAL_0:1
------> 3anon regex { 7⏏5}
Todd I am trying to put together an example subsitute file that shows how to subsitute a non-printable character that doesn't have a fancy `\t` for it
DnAeillaxe “{chr(9)}” ?
IOninja Well, whatever the switch to use significant spacing is 06:16
DnAeillaxe m: my $x="a\tb\tc"; say $x; $x ~~ s:ss:global|"{chr(9)">|z|; say $x
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3\tc"; say $x; $x ~~ s:ss:global|"{chr(9)7⏏5">|z|; say $x
expecting any of:
infix
infix stopper
statement end
s…
DnAeillaxe m: my $x="a\tb\tc"; say $x; $x ~~ s:ss:global|"{chr(9)}">|z|; say $x
camelia 5===SORRY!5=== Error while compiling <tmp>
Couldn't find terminator |
at <tmp>:1
------> 3c"; say $x; $x ~~ s:ss:global|"{chr(9)}"7⏏5>|z|; say $x
expecting any of:
horizontal whitespace
infix stopper
st…
DnAeillaxe m: my $x="a\tb\tc"; say $x; $x ~~ s:ss:global|"{chr(9)}"|z|; say $x
camelia a b c
azbzc
DnAeillaxe \o/
samcv why not just \x[9]
Todd perl6 -e 'my $x="a\tb\tc"; say $x; $x ~~ s:global|"{chr 9}"|z|; say $x' Perfect!!!! Thank you!
DnAeillaxe m: my $x="a\tb\tc"; say $x; $x ~~ s:ss:global|\x<9>|z|; say $x 06:17
camelia 5===SORRY!5=== Error while compiling <tmp>
Unrecognized backslash sequence: '\x'
at <tmp>:1
------> 3x="a\tb\tc"; say $x; $x ~~ s:ss:global|\7⏏5x<9>|z|; say $x
samcv yeah gotta have the interpolation to have it actually act as a string not as code
m: my $x="a\tb\tc"; say $x; $x ~~ s:ss:global|\x[9]|z|; say $x
camelia a b c
azbzc
DnAeillaxe Todd: oh… so 06:19
06:19 mcmillhj left
DnAeillaxe m: my $x="a\tb\tc"; say $x; say $x.trans((chr 9,) => (‘Z’)) 06:19
camelia a b c
aZbZc
DnAeillaxe Todd: why not something like this? 06:20
samcv i'm still not sure what he.'s trying to do 06:21
Todd no reason. I just want to get `s` down. I am trying to learn its quirks
samcv replace tabs with z's?
use \t or \x[7]
or you can be weird and do "{ }" if you want, or even put code there
or something
well i mean code that creates the string literal
06:22 rindolf joined
samcv m: say 'abcdefg' ~~ s/"{'d' ~ 'e'}"/z 06:22
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed replacement part; couldn't find final /
at <tmp>:1
------> 3say 'abcdefg' ~~ s/"{'d' ~ 'e'}"/z7⏏5<EOL>
expecting any of:
horizontal whitespace
infix stopper
samcv m: say 'abcdefg' ~~ s/"{'d' ~ 'e'}"/z/
camelia Cannot modify an immutable Str
in block <unit> at <tmp> line 1
samcv m: my $a = 'abcdefg'; $a ~~ s/"{'d' ~ 'e'}"/z/
camelia ( no output )
samcv m: my $a = 'abcdefg'; say $a ~~ s/"{'d' ~ 'e'}"/z/
camelia 「de」
samcv m: my $a = 'abcdefg'; $a ~~ s/"{'d' ~ 'e'}"/z/; say $a; 06:23
camelia abczfg
Todd `\x9` is hex?
samcv my bad. it returns the match, but changes the variable
yes Todd
Todd waht is octal and what is base 10? 06:24
\x9 worked too
samcv never done octal unicode before. sounds silly 06:25
DnAeillaxe \c[9] is dec
06:25 mcmillhj joined
samcv what 06:25
you serious?
DnAeillaxe am I wrong? 06:26
samcv idk
m: say "\c[BOY]"
camelia 👦
samcv that sure ain't a number
DnAeillaxe m: my $x="a\tb\tc"; say $x; $x ~~ s|“\c[97]”|z|; say $x
camelia a b c
z b c
DnAeillaxe but that is
samcv m: say "\c[20]"
camelia
samcv huh. that's super weird... ok
DnAeillaxe :)
samcv until unicode names something that's all numbers i guess we'll be fine 06:27
which is not allowed in their current rules. it has to start with an ascii letter
cant't have two spaces in a row or two dashes in a row either
DnAeillaxe u: fullwidth five 06:28
unicodable6 DnAeillaxe, U+FF15 FULLWIDTH DIGIT FIVE [Nd] (5)
DnAeillaxe m: say “\c[55]”
camelia 7
DnAeillaxe m: say “\c[555]”
camelia ȫ
samcv DnAeillaxe, so does it check the 1st character and see if it's a number? 06:29
should look at the source. wherever it is in there
DnAeillaxe haven't seen the source code for this
samcv i did. a while ago
06:30 mcmillhj left
samcv well. actually recently. but not the part we're talking about. but it's probably the same file or maybe related. let me see 06:30
cause i removed jvm's #?if since i added getstrfromname to jvm 06:31
DnAeillaxe m: say “\o[10”
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in octal character; couldn't find final ']'
at <tmp>:1
------> 3say “\o[107⏏5”
DnAeillaxe m: say “\o[10]”
camelia
DnAeillaxe okay, that's octal
samcv ew
oh i must have only removed it from rakudo. nqp still has the ?if's in there 06:32
i might have to regenerate the stages if i do that
or maybe not. not sure about the jvm 06:33
06:33 travis-ci joined
travis-ci Doc build passed. Zoffix Znet '[io grant] No need for `.ends-with`' 06:33
travis-ci.org/perl6/doc/builds/210199966 github.com/perl6/doc/compare/fd7a4...0efb41af0b
06:33 travis-ci left
DnAeillaxe github.com/perl6/nqp/blob/f414161e...r.nqp#L162 06:33
m: say “\c[5_5_5]” 06:34
camelia ȫ
Todd I am not getting binay or octal to work `s:global|\o12|Q|` `s:global|\b1001|R|`
06:34 travis-ci joined
travis-ci Doc build passed. Zoffix Znet '[io grant] Improve code example 06:34
travis-ci.org/perl6/doc/builds/210199463 github.com/perl6/doc/compare/9c2b7...7a41bca34d 06:35
06:35 travis-ci left
samcv that makes the code there make so much more sense now 06:36
DnAeillaxe Todd: it should be \o11
samcv i mean i had worked with it, but didn't know \c[99] would work, though it makes sense
06:36 mcmillhj joined 06:37 Cabanossi left
samcv yeah i need to regenerate the jvm stages 06:37
DnAeillaxe Todd: and binary is not going to work this way, I believe 06:38
Todd `s:global|\b1001|R` it is not. The octal worked as soon as I put the right number in 06:39
DnAeillaxe samcv: what's the meaning of this? | <control=[ ?..Z ]>
06:39 Cabanossi joined
samcv idk where are you seeing that 06:40
06:41 mcmillhj left
DnAeillaxe github.com/perl6/nqp/blob/f414161e...r.nqp#L166 06:41
looks like some dead code
and this is what happens with it later: github.com/perl6/nqp/blob/b069919f...#L231-L232
samcv why do you say dead code? 06:42
DnAeillaxe how can you trigger it?
m: say "\c[A]" # nope
camelia 5===SORRY!5=== Error while compiling <tmp>
Unrecognized character name [A]
at <tmp>:1
------> 3say "\c[A7⏏5]" # nope
06:42 jpl_ joined
samcv github.com/perl6/nqp/blob/f414161e...r.nqp#L143 06:42
06:43 jpl_ left
IOninja DnAeillaxe: the meaning is set $<control> to the Match that matches <[?..Z]> 06:43
*matched
DnAeillaxe sure, that I understand
06:43 agentzh left
DnAeillaxe but I wonder why \c[A] doesn't work 06:44
IOninja Because there's no char named "A"?
Or is that the code that matches stuff?
06:44 ZzZombo_ joined
IOninja Ah 06:44
DnAeillaxe m: say "\cA" 06:45
camelia
DnAeillaxe ah
m: say "\cZ"
camelia
06:45 ZzZombo left
DnAeillaxe because I'm blind, yet again 06:45
ok now it makes sense
Todd Got another question: I asked the badly on the mailing list. So, I will trying asking it a little more clearly. We have all kinds of escaped characters for various things, for instance `\t`, `\n`, \d`, `\D` etc.. Is there a list of all these somewhere? 06:46
DnAeillaxe and also:
m: say "\c[55]"
camelia 7
DnAeillaxe m: say "\c55"
camelia 7
samcv Todd, start heredocs.perl6.org/language/regexes#Ba...er_classes 06:47
DnAeillaxe hm… ok nevermind
Todd Hi Sam! Perfect!! Thank you!
samcv np 06:48
Todd And, how about a list of all the special characters `:xxxx`, for instance, `:space` `:global` ? 06:49
DnAeillaxe Todd: docs.perl6.org/language/regexes#Adverbs what about this? 06:51
m: say "\c[BOY, 0x7_0, 0b110_011, 55]"
camelia 👦p37
DnAeillaxe ok
m: say "\cZ" 06:52
camelia
06:52 mcmillhj joined
DnAeillaxe wonders why characters 0x1B…0x1F have no shortcut 06:53
06:54 parv joined
DnAeillaxe ah, because of the way it is implemented, maybe. Whatever. My horse is getting tired. 06:55
Todd DnAeillaxe: I wanted that one too! Thank you. But I still need the long ones, like :space and :global
You read my mind! 06:56
DnAeillaxe Todd: it's all there
06:56 mcmillhj left 06:57 rindolf left
Todd I just did not scroll far enough. Thank you! 06:58
faraco .tell timotimo Sorry for a very late reply, here is the benchmark with whitenoise.pl - 06:59
yoleaux faraco: I'll pass your message to timotimo.
faraco real0m3.725s - user0m3.280s - sys0m0.120s
07:03 mcmillhj joined 07:07 Cabanossi left 07:08 mcmillhj left
Todd I am trying to count the number of letters in a string. Not having much luck. DuckDuckGo is giving me tons of Perl 5 examples. Thisis what I have that does not work: 07:09
perl6 -e 'my $x='12abc34'; my $i; for $x ~~ :global/\D/ {$i++;}; say $i;'
07:09 Cabanossi joined
Todd Doesn't like my ~~ 07:10
ZzZombo_ Cannot resolve caller end(Text::Generator::BasicText::Actions: Match); none of these signatures match: 07:13
(Any:U $: *%_)
(Any:D $: *%_)
grammar Test
{
token TOP { ([<whitespace> || <word> || <symbol>]* <end>) }
...token end { $ }
}
what's wrong?
Geth whateverable: ef025b9cb2 | (Aleks-Daniel Jakimenko-Aleksejev)++ | t/benchable.t
Benchable does this fallback thingy too
07:14
DnAeillaxe Todd: why not just $x.chars ? 07:15
ah, number of letters… 07:16
fine
m: my $x='12abc34'; say +$x.comb(/\D/)
ZzZombo_ huh, renaming end to endd solved this.
camelia 3
07:17 perlpilot left, perlpilot joined
Todd I will have a time string `01:24` in hours and minutes format. I need to test the string to make sure it is really a valid time string (I will be reading it from the clipboard). So I wanted to know how many letter and how many numbers are in the string. I also wanted to know how many colons were present. So I wanteer to know the count of letters, numbers, and colons 07:18
DnAeillaxe m: my $x=‘12abc34’; my $t; $t++ if /\D/ for $x.comb; say $t
camelia 3
Todd I will run your example 07:19
CIAvash Todd: m:global/\D/
Todd how do I use that 07:20
?
Dn's example worked. 07:21
07:22 ZzZombo joined 07:23 ZzZombo is now known as Guest48672
CIAvash "m" is missing in the code you pasted, before :global 07:23
Todd my $i; for $x ~~ m:global/\D/ {$i++;}; say $i;' 07:24
syntax error near unexpected token `~~'
07:24 ZzZombo_ left
IOninja m: subset ValidTime where {try DateTime.new: "2016-12-31T$_:00"}; say $_ ~~ ValidTime for '12:00', '28:00', '00:56' 07:25
camelia True
False
True
CIAvash m: my $x='12abc34'; my $i; for $x ~~ m:global/\D/ {$i++;}; say $i; 07:26
camelia 3
CIAvash Todd: ↑
Todd testing
IOninja m: my $x='12abc34'; my $i = elems $x ~~ m:global/\D/; say $i 07:27
camelia 3
Todd That worked worked Thank you! I take it "m" meant "match"? 07:29
07:31 robertle left
Todd Thank you guy! I have to call it quits for the night 07:34
07:34 skids left 07:36 Todd left
parv muses that Trigun ref showed up here. Hi there CIAvash. 07:37
07:38 jraglin joined
parv just heard "Dad's blast was awesome". :-O 07:39
07:40 jraglin left
CIAvash hmm, it's not a Trigun ref 07:42
parv The "blast" was from Dragon Ball something. 07:43
07:43 mcmillhj joined 07:44 DnAeillaxe left 07:47 mcmillhj left 07:52 domidumont joined 07:53 robertle joined 07:55 wamba1 joined 07:56 domidumont left 07:57 domidumont joined 08:05 cibs left 08:07 cibs joined 08:10 bjz_ joined 08:11 bjz left 08:12 eroux joined
samcv m: say "\c[penguin #blah blah]" 08:13
camelia 5===SORRY!5=== Error while compiling <tmp>
Unrecognized \c character
at <tmp>:1
------> 3say "\c[7⏏5penguin #blah blah]"
expecting any of:
argument list
double quotes
term
samcv m: say "\c[penguin#blah blah]"
camelia 5===SORRY!5=== Error while compiling <tmp>
Unrecognized \c character
at <tmp>:1
------> 3say "\c[7⏏5penguin#blah blah]"
expecting any of:
argument list
double quotes
term
samcv hmm
yeah that doesn't even work. i think somebody intented you to be able to put comments inside "\c[ ] things 08:15
github.com/perl6/nqp/blob/f414161e...r.nqp#L159 08:16
08:17 Peter_R left
samcv yeah it doesn't even work across lines 08:17
08:19 Peter_R joined 08:20 Guest48672 left, Guest48672 joined 08:21 Guest48672 is now known as ZzZombo, mcmillhj joined 08:26 mcmillhj left 08:29 cibs left 08:31 cibs joined, jraglin joined
moritz lol I blogged: perlgeek.de/blog-en/perl-6/2017-01...iable.html 08:33
08:39 mcmillhj joined 08:41 faraco left 08:44 mcmillhj left 08:46 bjz_ left 08:50 fir3starter joined
fir3starter how do you check if two hashes are identical? 08:50
m: {a => 5} == {a => 7}
camelia WARNINGS for <tmp>:
Useless use of "==" in expression "{a => 5} == {a => 7}" in sink context (line 1)
parv smart op?
08:51 gdonald left
parv sorry, smart match. 08:51
fir3starter m: {a => 5} ~~ {a => 7}
camelia ( no output )
08:51 gdonald joined
fir3starter m: say {a => 5} ~~ {a => 7}; 08:51
camelia False
fir3starter m: say {a => 5} ~~ {a => 5};
camelia False
08:52 bjz joined
fir3starter smart match doesn't work 08:53
TEttinger m: say ({a => 5} ~~ {a => 5}); 08:54
camelia False
TEttinger hm
CIAvash m: say {a => 5} eqv {a => 5};
camelia True
TEttinger thanks 08:55
is eqv operator-like?
it looks infix there
CIAvash docs.perl6.org/routine/eqv 08:56
fir3starter according to this www.dlugosz.com/Perl6/web/eqv.html it is an operator
08:56 jraglin left
TEttinger yep, and CIAvash's link too 08:57
thanks
08:58 mcmillhj joined
samcv fir3starter, use eqv 08:59
fir3starter unfortunately it still doesn't work with this:
m: {a => (5, 5)} eqv {a => [5, 5]}
camelia WARNINGS for <tmp>:
Useless use of "eqv" in expression "{a => (5, 5)} eqv {a => [5, 5]}" in sink context (line 1)
fir3starter m: say {a => (5, 5)} eqv {a => [5, 5]}; 09:00
camelia False
samcv fir3starter, how old is that site?
documentation on eqv is here docs.perl6.org/routine/eqv
TEttinger those aren't equivalent, right?
samcv no they are different things 09:01
parv is eqv preferred over smart match? does docs.perl6.org/routine/$TILDE$TILDE list all the possible expected operands?
samcv say {a => (5, 5)} ~~ {a => [5, 5]};
m: say {a => (5, 5)} ~~ {a => [5, 5]};
camelia False
samcv parv, uh smart match does different things in differetn contexts
fir3starter is there an operator that would treat these as equal?
TEttinger doesn't smart match check for contains?
samcv if you want to compare hashes, i don't think ~~ will help you
fir3starter ~~ checks if the number of keys is the same 09:02
samcv m: say {a => (5, 5)} eq {a => [5, 5]};
camelia True
samcv they both stringify the same, but that's not that great a way to do it. but works i suppose 09:03
also i'm not sure fir3starter
what is the application
09:03 mcmillhj left
parv is there any other current doc/article that discusses smartmatch in more details than docs.perl6.org/routine/$TILDE$TILDE? 09:03
samcv not sure parv but ~~ can do uh ranges 09:04
and regex and uh
well there's a list there
if you don't understand one of those let me know. but that list is good. 09:05
fir3starter as i see in eq, element order matters
samcv plus it can match ranges too
fir3starter m: say {b => 1, a => 2} eq {a => 1, b => 2};
camelia False
fir3starter oops, my bad :D
samcv say {b => 1, a => 2}.Str
m: say {b => 1, a => 2}.Str 09:06
camelia a 2
b 1
fir3starter my mistake
parv ok, thanks samcv. would you say the list is complete?
samcv well aside from range
parv aye.
samcv i think so
m: say 1..10 ~~ 1..5
camelia False
samcv m: say 1..5 ~~ 1..10 09:07
camelia True
samcv yeah it checks against the right hand side
also parv generally if there's a number on the right side it'll do number semantics
or if it's a string it'll stringify a number to compare
m: say '9' ~~ 9
camelia True
samcv so that compares them numerically 09:08
m: say 'a9' ~~ 9
camelia False
09:08 mcmillhj joined
parv hmm. hmm. 09:08
samcv m: say 'blah' ~~ Str
camelia True
samcv can do types
m: {a => (5, 5)}».flat eqv {a => [5, 5]}».flat 09:09
camelia WARNINGS for <tmp>:
Useless use of "eqv" in expression "».flat eqv {a => [5, 5]}».flat" in sink context (line 1)
samcv m: say {a => (5, 5)}».flat eqv {a => [5, 5]}».flat
camelia False
parv i see; helps to think of ~~ as test of subset (in case of range), or (sub)type.
samcv yeah thought that wouldn't do what i want
yeah
compared based on what is in the right hand side
if it's a regex it uses regex, string it uses string semantics etc 09:10
ZzZombo I've been stuck for a while; how do I refer to each named capture in a rule like 09:11
token TOP { ([<whitespace> || <word> || <symbol>]* <eof>) }
in my action class?
09:13 mcmillhj left
fir3starter $<whitespace>, $<word>, ...? 09:13
parv is there an online perl6 REPL of some sort? 09:15
(short of here, to save my face) 09:16
09:18 mcmillhj joined 09:20 MeirG left 09:21 espadrine joined
samcv idk parv 09:23
parv samcv, no problemo
09:23 mcmillhj left
samcv ZzZombo, have you seen the grammar tutorial? 09:24
docs.perl6.org/language/grammar_tu...th_Actions 09:25
be back in a minute
CIAvash parv: depending on what you want to do, you can 「/msg camelia」 here or use glot.io/new/perl6 09:28
parv CIAvash: thanks. I just want to try some short snippets. 09:29
09:36 mcmillhj joined 09:37 Cabanossi left 09:40 Cabanossi joined 09:41 araujo left, mcmillhj left 09:43 RabidGravy joined 09:45 MeirG joined
MeirG \help 09:45
\quit 09:46
\QUIT
ecocode it's /, not \ 09:47
09:48 Todd joined
Todd quick question that I an not find on google for perl 6: how do I find out how many elements are in an array? 09:49
This is perl 5: perl -e 'my @x=qw[ aa bb cc ]; my $y=@x; print "$y\n";' answer is 3 09:50
This is my attempt at Perl 6: perl6 -e 'my @x=qw[ aa bb cc ]; my $y=@x; print "$y\n";' answer is aa bb cc 09:51
scalar is not in perl6 either
ZzZombo I don't see anything relevant. 09:53
samcv
Todd 09:54
m: say (my @a=1,2,3).elems
camelia 3
09:54 Sound joined
ZzZombo m: say (my @a=1,2,3)+0 09:54
camelia 3
Todd Found it! perl6 -e 'my @x=qw[ aa bb cc ]; say @x.elems;' it is just .elems
09:54 mcmillhj joined 09:55 TEttinger left
Todd Thank you ZZ! 09:55
bye bye
09:57 rindolf joined 09:59 mcmillhj left
Todd back again. what is the operator for modulus? I want the remainder 5 mod 3 = 2 10:01
ZzZombo m: say 10 % 2 10:02
camelia 0
Todd Thank you! docs.perl6.org/language/operators#...o_operator was no help
parv is variable binding another name for aliasing? 10:03
10:13 eater left 10:14 mcmillhj joined 10:16 eater joined 10:17 dct left 10:18 mcmillhj left
RabidGravy parv, whilst the effect may be like aliasing, it's somewhat different 10:20
10:21 jpl_ joined
RabidGravy docs.perl6.org/language/containers#Binding 10:21
parv RabidGravy, thanks; I just read that in moritz's post too perlgeek.de/blog-en/perl-6/2017-01...iable.html . 10:22
10:26 bjz left, dct joined 10:33 mcmillhj joined 10:34 dct left 10:36 ZzZombo_ joined 10:37 ZzZombo left 10:38 mcmillhj left 10:44 dct joined 10:46 ilbelkyr left 10:48 ilbelkyr joined, labster left 10:49 mcmillhj joined 10:53 domidumont left, domidumont joined 10:54 dct left, mcmillhj left
Todd is this the proper way to do an logical OR inside an "if"? 10:56
10:57 bjz joined
Todd if ( $NumCount < 2 ) || ( $LtrCount > 1 ) {do something} 10:57
RabidGravy I don''t think you need the extra parentheses but yeah 11:02
Todd Then I will check for a short between the headsets. :'( 11:03
11:04 eroux left
Todd what is the question to ask if a variable is initialized? 11:05
ZzZombo_ m: say Any.defined
camelia False
gfldex Todd: there is more then one question for that 11:06
ZzZombo_ m: say defined 'asd'
camelia True
Todd Perfect! Thank you!
gfldex Todd: see docs.perl6.org/language/typesystem...efinedness
11:07 eroux joined, robertle left
Todd Thank you! Bye Bye 11:08
11:08 Todd left
ZzZombo_ b-but you don't even have to disconnect every time. 11:09
RabidGravy .seen jnthn
yoleaux I saw jnthn 11 Mar 2017 18:16Z in #perl6: * jnthn bbiab :)
RabidGravy not so much ab then :)
11:09 mcmillhj joined
jnthn
.oO( Oh no, I'm being ab tested! )
11:11
RabidGravy: After something? :)
ZzZombo_ why does this suddenly not match <word>, but rather matches <symbol>: 11:13
token TOP { (<whitespace> || <word> || <symbol>)* }
token word { <.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation> <.alnum>+ }
token symbol { . } #everything else.
when parsing "Modern development"?
11:14 mcmillhj left
ZzZombo_ m: my token word { <.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation> <.alnum>+ };say "Modern development" ~~ /<&word>/ 11:14
camelia Nil
ZzZombo_ hm
m: my token word { <.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation> <.alnum>+ };say "Modern development" ~~ /<.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation> <.alnum>+/
camelia Nil
ZzZombo_ what
11:14 robertle joined
ZzZombo_ it used to work 11:14
RabidGravy jnthn, well I just got round to looking at the Stomp::Server - do you anticipate that the tap on process-messages should be a given/when ever the command or should it actually be split up with a bunch of greps into indivdual supplies for each command?
11:15 lukaramu joined
jnthn ZzZombo_: It expects alnum after the char class too? 11:15
ZzZombo_ m: my token word { <.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation> <.alnum>+ };say "Modern development" ~~ /(<.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation>)* <.alnum>+/
camelia 「Modern」
ZzZombo_ yes
basically words like "AT&T", "half-way"
m: my token word { (<.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation>)* <.alnum>+ };say "Modern development" ~~ /<&word>/ 11:16
camelia 「Modern」
ZzZombo_ huh
when did I mess it up?
jnthn ZzZombo_: You didn't have the (...)* around the first part in the earlier examples, I think?
ZzZombo_ yes
11:17 mscha joined 11:18 bjz left
jnthn RabidGravy: I think (it was ages ago though) I'd originally planned it so the listen connection would give you back an object per connection 11:18
RabidGravy: iirc, one supply is probably the most useful thing, because ordering matters 11:19
mscha m: class A { has Str $.s; method gist { $!s; } }; multi infix:<cmp>(A $a, A $b) { $a.s.chars <=> $b.s.chars }; (A.new(:s<aa>), A.new(:s<b>), A.new(:s<ccc>)).sort.say
camelia (aa b ccc)
mscha m: class A { has Str $.s; method gist { $!s; } }; multi infix:<cmp>(A $a, A $b) { $a.s.chars <=> $b.s.chars }; (A.new(:s<aa>), A.new(:s<b>), A.new(:s<ccc>)).sort(&infix:<cmp>).say
camelia (b aa ccc)
mscha Shouldn't the first one output the same as the second?
jnthn RabidGravy: Like, if you get a begin transaction, then some messages, then a commit (I forget the exact commands)
mscha And if not, how can I change the default sort on custom opbjects?
objects? 11:20
11:20 bjz joined
jnthn RabidGravy: So I guess in that sense it works a bit like sockets themselves: you get a supply of incoming connections, giving an object which has a supply of incoming things per connection. 11:21
11:21 rindolf left
jnthn mscha: That's expected I think, since operators are lexically scoped 11:24
So unless you pass in your current idea of what cmp is, then the sort method will see the one that exists where it's declared 11:25
11:26 rindolf joined
jnthn It's more typical in Perl 6 to express the sort condition when sorting, functional style (so .sort(*.s.chars)). 11:26
RabidGravy yeah, the subscribe/unsubscribe case too 11:27
11:27 jpl_ left
jnthn Indeed 11:28
11:29 mcmillhj joined
mscha jnthn: that's annoying, since in my actual case, I'd have to say .sort({ $^a.y <=> $^b.y || $^a.x <=> $^b.x }) 11:29
jnthn mscha: Then implement cmp as you have, and just pass it in 11:30
In some languages, sort order is considered something owned by an object. Perl 6 just isn't one of them.
mscha Shame. 11:31
jnthn As opposed to, say, smartmatching, which is done via. implementing an ACCEPTS method
mscha Something for 6.d?
jnthn No.
At least, I'm pretty sure it's by design this way, not an oversight.
mscha OK, too bad. Thanks. 11:32
gfldex mscha: you can .wrap operators in Perl 6 11:33
11:33 mcmillhj left
RabidGravy jnthn, so really a Stomp::Server::Connection should be thing that does the MessageStream I guess 11:34
parv later people.
jnthn RabidGravy: Yeah, that sounds reasonable
11:34 parv left
MasterDuke mscha: i noticed that project euler solution you posted yesterday was spending a lot of time in infix:<max> with Ints, so i added a candidate specific to that, it shaves a couple seconds off the time 11:34
also, make the loop variables native ints shaved another couple seconds 11:35
jnthn: left a question for you in #perl6-dev 11:36
11:36 Sound left
mscha MasterDuke: “so i added a candidate specific to that”, what do you mean? 11:37
Native ints: good idea.
MasterDuke github.com/rakudo/rakudo/commit/a9c51964a0 shows the change 11:38
i added a version of max and min specifically for Ints, ints, Nums, and nums 11:39
mscha Ah, you mean in Rakudo, not my script. 11:40
MasterDuke right. you could of course do the same thing manually if you don't want to update your rakudo 11:41
i don't know how you get it, but the next official rakudo release is a week from now
11:46 mcmillhj joined 11:47 Sound joined
mscha Thanks, MasterDuke, I'll get it eventually. (Next Rakudo Star, probably.) 11:48
m: class A { has Str $.s; method gist { $!s; } }; &infix:<cmp>.wrap(-> $a, $b { if $a ~~ A && $b ~~ A { $a.s.chars <=> $b.s.chars } else { callsame } }); (A.new(:s<aa>), A.new(:s<b>), A.new(:s<ccc>)).sort.say
camelia (b aa ccc)
mscha gfldex: that works! Elegant? Hmm, not really... 11:49
MasterDuke mscha: also, ++$x is faster than $x++, and $x = $x + 1 is faster still 11:50
jnthn Not to mention slow and not certain to work if we inline before you wrap ;P
mscha Seriously, MasterDuke? I'll remember that. 11:51
11:51 mcmillhj left
mscha Any performance difference between $x = $x + 1 and $x += 1 ? 11:51
MasterDuke yeah, $x = $x + 1 is faster 11:53
11:56 mcmillhj joined
ZzZombo_ m: my token word { (<.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation>)* <.alnum>+ };say "Modern development India," ~~ /<&word>/ 11:58
camelia 「Modern」
Geth Inline-Perl5/master: 5 commits pushed by (Luc St-Louis)++, (Stefan Seifert)++
ZzZombo_ m: my token word { (<.alnum>+ <[' & . , -]+:Dash_Punctuation+:Connector_Punctuation>)* <.alnum>+ };say "India," ~~ /<&word>/
camelia Nil
12:00 araraloren left, araraloren joined 12:01 mcmillhj left 12:05 mcmillhj joined 12:08 Cabanossi left, araraloren left, araraloren joined 12:09 andrzejku joined 12:10 Cabanossi joined, mcmillhj left
tbrowder hi #perl6 12:18
12:19 ZzZombo_ left
tbrowder i'm seeking some advice on a function name in a module i'm releasing soon 12:19
12:21 eroux left
tbrowder the module is Number::More and has subs named dec2bin, etc., for conversion of unsigned integers between binary, octal, dcimal, and hexadecimal 12:21
grondilu I'd use adverbs 12:22
tbrowder i've just added a general transformation sub and have initially named it baseM2baseN (yuk), ideas? 12:23
adverbs?
grondilu m: multi say(Int $n, :bin!) { say $n.fmt("0b%b"); }; say 5, :bin 12:24
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed parameter
at <tmp>:1
------> 3multi say(Int $n, :7⏏5bin!) { say $n.fmt("0b%b"); }; say 5, :b
grondilu m: multi say(Int $n, :$bin!) { say $n.fmt("0b%b"); }; say 5, :bin
camelia 0b101
12:25 mcmillhj joined
grondilu ^adverbs are basically named parameters 12:25
12:25 Actualeyes joined
tbrowder i'm using adverbs (named params). my subs allow other feature. all i'm loooking for is a name for the general sub 12:26
grondilu foo2bar seems like a common enough idiom
it's not pretty but * 12:27
tbrowder yes, hence bin2dec, etc
grondilu yeah, go for it
though frankly perl6 already has lots of ways to display an integer in various bases 12:28
mscha m: sub baseM2baseN($x, $m, $n) { $x.parse-base($m).base($n) }; say baseM2baseN('1234', 8, 16);
camelia 29C
tbrowder but a single sub for transforming base X to base Y is what i want to get a good name for. baseX2baseY seems clunky. i've thought about shortening it to 'a2b' 12:29
12:29 mcmillhj left
mscha m: sub bin2dec($x) { $x.parse-base(2) }; say bin2dec('1011001010110111'); 12:30
camelia 45751
tbrowder i get it, all that is wrapped up and working nicely
12:33 mcmillhj joined 12:38 mcmillhj left 12:41 agentzh joined 12:46 agentzh left 12:48 fir3starter left 12:49 ZzZombo joined, ZzZombo left, ZzZombo joined 12:51 mcmillhj joined 12:56 mcmillhj left 13:07 Cabanossi left 13:10 Cabanossi joined 13:11 mcmillhj joined, gdonald left, gdonald joined
moritz gimp tells me: "Metadata parasite seems to be corrupt" 13:13
of the category "wut?" 13:14
DrForr Radiation damage on the way back from Ceti Alpha V? 13:15
13:15 mcmillhj left
ZzZombo undefine(($prefix,$word,$postfix)); # after this line... 13:22
$prev-word=$word; # dead code...
DrForr . o ( I see dead code );
ZzZombo m: my ($x,$y,$z)=1,23,5;undefine(($x,$y));$z=False;say $x,$y,$z 13:23
camelia (Any)(Any)False
ZzZombo what gives?
swapping the lines fixed the bug where $prev-word wasn't changed.
13:27 mscha left 13:29 mcmillhj joined 13:34 lukaramu_ joined, mcmillhj left
tbrowder in general, should i use tokens or named regexes for one-off matching? i think tokens don't backtrack so may be faster 13:35
how can i put a regex/token in an array so i can use it a 13:36
tadzik plus.google.com/114866592715069940...z6UixNCYCH not sure if slowpoke, but maybe a worthy insight into making JSON::Fast faster or so :)
tbrowder use it something like "$a~~ @b[6]"
13:38 lukaramu left 13:39 Cabanossi left 13:40 Cabanossi joined
gfldex m: my \r = /abc/; say 'abc' ~~ r 13:42
camelia 「abc」
13:42 pecastro left
gfldex m: my @r = /abc/; say 'abc' ~~ @r.all 13:43
camelia True
gfldex tbrowder: ^^^
13:44 cibs left
tbrowder hi, gfldex, can you show me how to put a regex or token in an array and use it, please? 13:45
13:45 fir3starter joined 13:46 cibs joined
tbrowder sorry, i'm still asleep, thanks! 13:46
13:48 mcmillhj joined
tbrowder ok, say i have 2 named regexes. can i put their names in an array and call them by index? 13:48
13:50 cog joined 13:52 mcmillhj left
moritz m: my token word { <:alpha>+ }; my token number { \d+ }; my @re = &word, &number; say '123' ~~ @re[1]; 13:58
camelia 「123」
moritz tbrowder: ^^
tbrowder thanks, moritz! 13:59
gfldex m: say so /abc/ ~~ Callable; 14:00
camelia True
gfldex tbrowder: this ^^^ is why it works
timotimo .botsnack 14:05
synopsebot6 om nom nom
yoleaux :D
14:05 nowan_ left
yoleaux 06:59Z <faraco> timotimo: Sorry for a very late reply, here is the benchmark with whitenoise.pl - 14:05
14:05 DnAeillaxe joined 14:06 MeirG left, mxco86 left 14:07 mcmillhj joined
tbrowder moritz: then i would need boolean coercion to successful match or not, correct? 14:07
14:08 nowan joined
moritz tbrowder: or just use it in a boolean context (like an 'if' statement) 14:08
14:10 MeirG joined
timotimo whitenoise.pl doesn't have a benchmark mode; it'd just run forever? 14:10
masak "What we need are *notions*, not notations" -- Gauss 14:11
I like that. feels relevant to some comments about syntax.
(hi, #perl6)
timotimo what we need are not ions!
masak timotimo: the funny thing is how syntactical your joke reply is :P
14:12 mcmillhj left
masak I fully buy that syntax *underpin* and *strengthen* notions rather than being the notions 14:12
ZzZombo So nobody has an idea why undefine caused unreachable code?
MeirG Hi folks. I was trying to intall Rakudo. It failed with 2503 error then with 2502 error. What's wrong?
masak MeirG: "2503 error"? 14:13
MeirG masak: yes, on Win10 64bits
timotimo ZzZombo: i have no idea what you mean by "dead code" there 14:14
or "unreachable"
masak MeirG: do you see an error message? 14:15
MeirG masak: Yes, just a second and I'll quote it... 14:18
timotimo oh, that's probably a visual c error then? 14:19
DrForr It looks like a .msi permission problem according to answers.microsoft.com/en-us/window...1da100c151 14:20
timotimo hah, this website recommends to kill explorer.exe and start a new one with admin privileges
nothing bad could ever happen there! 14:21
14:21 bjz_ joined
timotimo i fondly remember KDE3 used to - in some distros at least - give you a desktop background with lots of bombs on it and a big pop-up when you logged in as root 14:21
14:22 bjz left
geekosaur suse did that, yeh 14:22
timotimo it was a work of art 14:23
MeirG "The installer has encounteredan unexpected error installing that package. This might indicate a problem with this package. The error code in 2503"
geekosaur as for the windows thing, you should be able to Run As Administrator the .msi
masak MeirG: huh.
MeirG: that's... disconcerting.
timotimo very strange 14:24
masak MeirG: is there anything higher up in the console output that seems to indicate there was a problem?
timotimo i don't think they're doing it from a console
masak MeirG: or are you interacting with a graphical interface that gives no such output?
timotimo that looks like typical output you'd get in a messagebox
masak aye
guess we'll have to try this ourselves on a Win64 box 14:25
and by "we", I mean "not me", because I don't own one... :)
MeirG I am an administrator. I will also look up DrForr's ling and report.masak: No, it is an msi file with doesn't invoke a consol window. It invoked an installation "wizard"
timotimo you can install msi from the console if you want, you need "msiexec /i foobar.msi" for that 14:26
but i'm not sure if it'll actually give any output on tho console
14:26 mcmillhj joined
timotimo actually, i'm almost sure it'll just give you the gui, too 14:27
it's how i install .msi things when i have wine
geekosaur you need an installer script to avoid the gui, I think 14:28
been a while since I did that kind of stuff
RabidGravy I think I need a thing like Supply.merge but dynamic 14:30
DnAeillaxe to people who are subscribed to whateverable repo: I am about to reopen 11 issues that have no tests, please don't freak out :)
timotimo RabidGravy: what does "dynamic" mean? 14:31
like you can give it more supplies at any time?
masak MeirG: I wish I could give some firm guarantees we'll look into this -- but we're sort of volunteer-driven, so someone'll need to step up
14:31 mcmillhj left
RabidGravy timotimo, zackly 14:31
masak MeirG: in any case -- thanks for bringing this to our attention. I hope a solution will materialize soon.
14:31 bjz_ left
timotimo you can look at the implementation of "migrate" 14:31
migrate takes a supply that spits out supplies and gives you a supply that'll always give values from the latest supply that was spat out by the supply-supply 14:33
so what you want is you start with a supply of supplies (where you feed in more and more supplies that are to be merged) 14:34
and whenever a supply is spat out by that supply-supply, it'll be taken into account for further emits
gfldex i just checked 2017.01-64bit on a clean win10 VM and it installs fine
RabidGravy I think my head hurts 14:35
gfldex didn't do updates lately, doing that now
14:35 mcmillhj joined
timotimo haha, RabidGravy :) 14:36
14:37 espadrine left 14:38 Cabanossi left
timotimo i think it'll be really rather simple to write 14:39
kind of like supply { whenever $supply-of-supplies -> $new-supply { whenever $new-supply -> $value { emit $value } } }
maybe that's enough
gfldex timotimo: can i have a supply that will write my code? :-> 14:40
14:40 Cabanossi joined
timotimo gfldex: if you don't mind the code being evil, you can implement an ssh server that accepts any password and gives out a root shell 14:40
14:40 mcmillhj left
timotimo that should give you code within minutes of launching 14:40
gfldex sounds like a workable solution 14:41
timotimo it even ticks a whole bunch of buzzword checkboxes
gfldex windows update is shit
timotimo it's dependency injection, it's highly networked, it's multiple-failover, it's distributed (duh), it's platform-as-a-service, it's highly available
haha, yeah, tell me about it 14:42
gfldex it stalled at 10% for 20minutes and then it raced to 90% in 30 sec
timotimo i boot windows every couple of months to play new subnautica updates ...
gfldex now it stalls again
timotimo oh, you're getting off lucky
i usually wait a couple of hours while it's saying "looking for available updates"
i'm told it's because microsoft decided to put an np-complete problem into their update mechanism 14:43
i.e. "there's a bunch of things-to-be-fixed, and any patch can have any amount of things-to-be-fixed in them. find the optimal solution to cover all things-to-be-fixed with patches"
geekosaur sadly that was because they had something even worse before
(namely not do that and break people's systems)
14:47 n1ce left 14:48 n1ce joined
timotimo anyway, there's something called "wsus offline updater" 14:50
it's a neat little gui that allows you to download a whole bunch of patch files up front, and also a little tool to apply all these updates 14:51
doing that five times in a row and rebooting in between multiple times ought to get your system up to date enough for the regular windows update to finish calculating its plan of action in under two hours
14:55 mcmillhj joined
tbrowder still seeking suggestions for a sub name for a general function that transforms a number in one base to that number in another base ( i don't need details of how to do that or suggested signatures). see my github/tbrowder/Number-More-Perl6 repo for the WIP. 14:56
timotimo so, like, rebase" :P
tbrowder not bad! 14:57
rebaseA2B
timotimo basetrans?
tbrowder those are good, timotimo. i've bern hung up with "x2y' as part of the name but i think yr ideas are better! 14:59
geekosaur in-base but I question the purpose
timotimo a fresh perspective can always do wonders
reinterpret-base
base2base
tbrowder amen, brudda!
geekosaur because internally it's going to be base 2 unless you are on a very experiemntal architecture or you re working with it in string format 15:00
timotimo of course this is about strings :)
Geth whateverable: 0874e785c2 | (Aleks-Daniel Jakimenko-Aleksejev)++ | t/bisectable.t
Test the hint about a useless result (⚠ + a note for contributors)

Adds a test for issue #95.
This is the last closed issue that needed a test. From now on, we will have a similar policy that is used for rakudo development:
... (5 more lines)
15:00 mcmillhj left
geekosaur maybe as-base if in-base is considered ambiguous 15:00
also if doing this a lot you might want a tagged representation (string + its base) to avoid the question of "so what base is '6' absent other information?" (could be any from 7 up to your limit) 15:04
15:04 mcmillhj joined 15:09 mcmillhj left
ZzZombo [21:21:59] <ZzZombo> undefine(($prefix,$word,$postfix)); # after this line... 15:09
[21:21:59] <ZzZombo> $prev-word=$word; # dead code...
[21:23:41] <ZzZombo> swapping the lines fixed the bug where $prev-word wasn't changed.
timotimo ^
timotimo yeah, i read all of that 15:10
i still don't understand what you mean?
$prev-word "wasn't" changed?
what do you get, what did you expect? because when i run code like that i get $prev-word set to Any, which is exactly what i expect 15:11
ZzZombo you know, forget it, doesn't matter now.
geekosaur minimal reproducing case, include rakudo version, consider also running with spesh disabled 15:12
timotimo perl6 -e 'my ($prefix, $word, $postfix) = <foo bar baz>; my $prev-word = "wtf"; dd $prefix, $word, $postfix; $prev-word = $word; undefine(($prefix, $word, $postfix)); dd $prefix, $word, $postfix; dd $prev-word'
this gives me foo bar baz first, then any any any, and $prev-word at the end is "bar"
and when i put the $prev-word = $word after the undefine, it gives me foo bar baz first, then any any any, and at the end $prev-word is any 15:13
which is also exactly what i expect ?!
ZzZombo yea, it is
timotimo i'm AFK for a bit now
but i'd love for you to explain what's up. maybe put it up on a pasting site or something, along with output and expected behavior 15:14
gfldex clean install on a recent win10 too 15:15
timotimo for some reason it really irks me that you seem to have found a problem with rakudo and you're not telling us 15:16
gfldex MeirG: can't reproduce, happy digging :)
timotimo well, either a problem with rakudo, or with the docs 15:17
RabidGravy we may never know
15:18 Peter_R left 15:20 Peter_R joined 15:25 mcmillhj joined 15:29 mcmillhj left
tbrowder timotimo: i like 'rebase' best, what's yr fav of yr suggestions? 15:31
15:33 ZzZombo left 15:39 vendethiel joined 15:43 mcmillhj joined 15:44 fir3starter left
timotimo i don't have a fav, they are all acceptable 15:46
15:47 gdonald left, gdonald joined, mcmillhj left 15:53 firestarter left 15:54 firestarter joined, Cabanossi left 15:55 Cabanossi joined
Geth doc: 9d408f0051 | titsuki++ | doc/Language/nativecall.pod6
Use num64 instead of num
15:57
tbrowder timotimo: thanks...you're very easy to please! 16:01
16:03 mcmillhj joined, khw joined 16:08 mcmillhj left
tbrowder i would like to test modules on my Windows box and wonder if routines run and shell work there for calling cmd and Power Shell? 16:12
16:13 cibs left
timotimo shell most probably invokes cmd 16:15
16:15 cibs joined
timotimo github.com/jnthn/p6-ssh-libssh/blo...ild.pm#L18 16:15
this is an example of how to invoke powershell
DnAeillaxe buggable: DOC 16:16
buggable: tag DOC 16:17
buggable DnAeillaxe, There is 1 ticket tagged with DOC; See perl6.fail/t/DOC for details
DnAeillaxe definitely my bad
Geth Inline-Perl5: beaa8ce8eb | (Stefan Seifert)++ | p5helper.c
Fix segfault in Inline::Perl5.new when loaded from Inline::Perl6 without multiplicity

When perl is compiled without multiplicity, we want to throw a useful exception when the user tries to create multiple interpreters. When loaded via Inline::Perl6 we did not take the already running interpreter into account. Now instead of segfaulting, we point the user at the actual source of the problem.
Fixes GH #73
16:22
ecosystem: Demayl++ created pull request #309:
rename META of Email::Valid and add tags
16:23
tbrowder timotimo: nice link...thanks! 16:25
Geth ecosystem: 250d5c90c7 | Demayl++ | META.list
rename META of Email::Valid and add tags
ecosystem: a7ddf8d71a | (Itsuki Toyota)++ | META.list
Merge pull request #309 from Demayl/master

rename META of Email::Valid and add tags
16:30 araraloren left 16:32 mcmillhj joined 16:37 mcmillhj left 16:43 agentzh joined 16:45 fir3starter joined 16:47 eroux joined, agentzh left 16:48 firestarter left 16:49 Khisanth left 16:51 mcmillhj joined 16:54 f1r3starter joined 16:57 mcmillhj left 16:59 agentzh joined 17:01 fir3starter left 17:02 firestarter joined 17:03 Khisanth joined
nine Darn...I have a very neat fix for Inline::Perl6, but it depends on an implementation detail of the recent require-fixes. 17:11
Right now in Perl 5 'v6::run("use Foo;"); v6::call("Foo::bar");' won't work due to the lexicalness of "use Foo" 17:12
17:12 mcmillhj joined, espadrine joined
mst nine: I always thought it was odd that you were doing that rather than having a context object to run against 17:15
nine Now with the recent fixes, a require statement installs a lexical %REQUIRE_SYMBOLS which we use with indirect lookup ::($foo). Since v6::call and v6::invoke use indirect lookup, I can easily save and restore %REQUIRE_SYMBOLS. 17:16
17:17 mcmillhj left
mst right, if you basically turn them into implicit calls on a global context 17:19
that should be basically sane
nine Yep. Except that it turns %REQUIRE_SYMBOLS in a public API which is not really what I had in mind when introducing it. 17:20
mst and, er, you could always add an api to rakudo that's equivalent to Eval::WithLexicals or Devel::LexAlias or something
a persistent lexical scope module would make it much easier to build repls 17:21
and, y'know, look what we inflicted on CPAN as a result of perl5 not having an API for it ;)
nine Thing is that EVAL already takes an optional context object. But that's a PseudoStash which is...not exactly a straight forward data structure.
17:22 mcmillhj joined 17:23 BenGoldberg joined 17:24 mxco86 joined 17:27 mcmillhj left 17:41 rindolf left, mcmillhj joined 17:45 mcmillhj left 17:53 mcmillhj joined
ugexe samcv: did you ever try leaving the TCI language as perl but change github.com/rakudo/rakudo/blob/nom/...is.yml#L22 to `openjdk-7-jdk` instead of -jre? 17:53
samcv ugexe, yeah it has a too old perl version
oh. uhm
uh i tried it once. you can go ahead and try now if you want. it's working fine right? 17:54
ugexe yeah, but the change to the nqp travis-ci reminded me to follow up
easier to do things like get a perl with the correct version/compile args (for say Inline::Perl5) under the perl env 18:02
18:03 xinming_ left 18:05 mcmillhj left
ugexe e.g. `language: perl, perl: 5.14-shrplib` 18:05
18:09 Cabanossi left 18:10 Cabanossi joined 18:11 mcmillhj joined
ugexe has been meaning to add $version-[moar-jvm] enum options to perl6 TCI ala `perl6: - 2017.01-moar, - 2017.01-jvm` 18:12
18:15 espadrine left 18:16 mcmillhj left 18:18 xinming joined 18:19 rindolf joined 18:22 f1r3starter left, mcmillhj joined 18:27 mcmillhj left 18:35 f1r3starter joined 18:41 mcmillhj joined, grumble left 18:43 grumble joined 18:46 mcmillhj left 18:51 leedo joined 18:52 leedo left, leedo joined 18:58 leedo left 19:01 mcmillhj joined 19:05 spebern joined 19:06 mcmillhj left 19:07 wamba1 left 19:14 sena_kun joined 19:17 domidumont left 19:20 MeirG left 19:22 mcmillhj joined
chansen_ Does Perl6 expose a API for Unicode sets? 19:27
19:27 mcmillhj left
chansen_ .. Unicode sets 19:27
DnAeillaxe chansen_: hmmm… what unicode sets?
19:28 agentzh left
DnAeillaxe chansen_: is there something specific you need? 19:28
chansen_ DnAeillaxe: combination of Unicode properties!
DnAeillaxe oh, sure. Do you need it in a regex; 19:29
?
m: say ‘hello②world’ ~~ /<:No>/
camelia 「②」
chansen_ DnAeillaxe: No, i'm looking for a clean API that I can steal and implement in P5 ;o)
19:30 agentzh joined
DrForr Perl6 has \P{}. 19:31
Er, perl5
19:33 mcmillhj joined
geekosaur I don't think it has a good set story for them though (e.g. a generalization of [] like p6's that lets you subtract sets and such) 19:33
chansen_ DrForr: I'm aware what P5 provides! The reason I asked for a clean API to access Unicode Blocks, Scripts and Properties was for inspiration, but it seems that Perl6 doesn't provide that. 19:35
19:36 mxco86 left
chansen_ samcv: ^^? 19:37
19:37 mcmillhj left
geekosaur I thought there was something for that these days... maybe not the API you were hoping for though (in which case yes, you want to talk to samcv) 19:38
DnAeillaxe chansen_: so you want to look up characters based on properties and stuff?
DrForr .uniprop and .uniname handles at least properties, but scripts and blocks seem missing. Maybe .uniscript and .uniblock would be possible? 19:40
unicodable6 DrForr, U+006E LATIN SMALL LETTER N [Ll] (n)
DrForr, U+0069 LATIN SMALL LETTER I [Ll] (i)
DrForr, 135 characters in total: gist.github.com/344ebf70e34723b156...c67109b879
19:40 agentzh left
DnAeillaxe but that's one of the properties 19:40
chansen_ DnAeillaxe: Let's say I wanted to union two scripts and differentiate a block and union two block properties? 19:41
DnAeillaxe DrForr: sorry for that, that was a bug :D
uniprop: ½
unidump: ½
unicodable6 DnAeillaxe, gist.github.com/e9ccb3b9f86c41e49b...dfcb668c1d
19:41 cdg joined
DnAeillaxe chansen_: okay, then you use Block and Script properties 19:42
let's see
19:43 agentzh joined
DnAeillaxe m: say ‘½’ ~~ /<:Block(‘Latin-1 Supplement’) + :Script(‘Common’)>/ 19:43
camelia 「½」
DnAeillaxe like this?
u: { .chr ~~ /<:Block(‘Latin-1 Supplement’) + :Script(‘Common’)>/ } 19:45
unicodable6 DnAeillaxe, U+0000 <control-0000> [Cc] (control character)
DnAeillaxe, U+0001 <control-0001> [Cc] (control character)
DnAeillaxe oops… 19:46
19:47 adu joined 19:48 Xliff_ joined 19:49 agentzh left 19:50 Xliff left
chansen_ DnAeillaxe: with all respect, you are clearly not familiar with Unicode enough to answer this question ;) 19:50
DnAeillaxe chansen_: perhaps. But it would definitely help if you said what exactly you're trying to do 19:51
chansen_: if you want to actually match stuff, then what I've shown above should work
but if not, then I guess you're trying to do something else 19:52
19:52 mcmillhj joined 19:53 Ven joined, agentzh joined
chansen_ DnAeillaxe: I have answered you already! 19:53
20:41:02 <chansen_> DnAeillaxe: Let's say I wanted to union two scripts and differentiate a block and union two block properties?
19:55 cdg left, cdg joined 19:57 mcmillhj left
RabidGravy jnthn, I've just pushed a very crude start to an implementation of SUBSCRIBE/UNSUBSCRIBE to Stomp::Server 19:57
DnAeillaxe chansen_: OK, I might sound stupid to you and you'll lose all hope, but how come <:Script(‘Cyrillic’) + :Script(‘Common’)> is not a “union of two scripts”? 19:59
the rest you get in a similar fashion 20:00
20:01 espadrine joined
DnAeillaxe ? 20:05
chansen_ DnAeillaxe: thats the union, how do you differentiate a block and union two block properties and provide the difference? 20:06
DrForr Subtract? 20:07
chansen_ DrForr: true
DnAeillaxe chansen_: if you want to have an intersection, you'll have to use & outside of <> 20:10
chansen_ The question was if there was a simple way of achieve this in Perl6, and if there was I would like to steal it to p5, but it seems that tis wheel hasten't been invented in p6
DnAeillaxe so… that's not simple enough? 20:11
moritz didn'T we have intersection in char classes too? 20:12
DrForr What are we missing? What's a simpler solution?
DnAeillaxe moritz: trying to find a ticket, but no
moritz: NYI
20:13 mcmillhj joined
DnAeillaxe moritz: RT #130419 20:13
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130419
jferrero_ Hi! I need an example for enum's constants exported into a module. 20:16
20:16 CIAvash left 20:17 mcmillhj left 20:18 bjz joined
chansen_ DnAeillaxe: How do I union two script properties subtract a block and union two other block properties and print out the resulting set? 20:18
DnAeillaxe chansen_: Oh, so you want to look up these characters, not to match stuff! Finally we know :) 20:19
chansen_: there is indeed no API to do this stuff. Unicodable bot, for example, goes through the whole 0..0x10FFFF range and tries to match every character 20:22
chansen_: this takes a second or two… which I guess is less than awesome. Again, it depends on what you actually need this for 20:23
20:24 wamba1 joined, jferrero_ is now known as jferrero
DnAeillaxe chansen_: what you are asking for is basically a little database you can make queries for :) Not sure if the language itself should provide this, but I'd definitely love to see a module for this! 20:24
b2gills m: say (0..0x10FFFF).map(*.chr).grep: /<:L - :Ll>/
camelia (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ª º À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö Ø Ù Ú Û Ü Ý Þ Ā Ă Ą Ć Ĉ Ċ Č Ď Đ Ē Ĕ Ė Ę Ě Ĝ Ğ Ġ Ģ Ĥ Ħ Ĩ Ī Ĭ Į İ IJ Ĵ Ķ Ĺ Ļ Ľ Ŀ Ł Ń Ņ …
DrForr regexes could possibly be introspected to a junction.
20:24 agentzh left 20:26 cschwenz joined
DrForr Though something like .chr.uniprop would be better... Maybe a core module that introspects the Unicode tables at compile time. 20:26
20:26 agentzh joined
cschwenz so, when using qqx{…} and the executed command spews diagnostic messages to STDERR — on the Perl 6 side, how do i capture them? 20:29
DnAeillaxe /o\ qqx 20:30
DrForr Incidentally, when using sub MAIN(..), I don't see where the options are spec'ed.
moritz cschwenz: buy using run(@command, :out, :err) instead, or Proc::Async
cschwenz: or with 2>&1 inside qqx 20:31
cschwenz moritz++
DnAeillaxe cschwenz: see some examples here: docs.perl6.org/type/Proc
moritz cschwenz: or see perlgeek.de/blog-en/perl-6/2017-00...-cron.html for an example that uses Proc::Async 20:32
cschwenz awesome, thanks all! :-D
20:34 mcmillhj joined
DrForr Ah, Bool :$flag is the key. 20:35
20:38 mcmillhj left
jferrero Is possible to export class' enum constant? 20:41
20:41 skids joined
moritz enum Foo is export <...>; # I believe 20:42
20:42 rindolf left 20:44 wamba1 left 20:48 mcmillhj joined 20:55 silug left 20:56 mcmillhj left 21:00 cibs left 21:02 cibs joined 21:07 f1r3starter left 21:11 adu left
DrForr Perl6::Tidy out on github, not putting it up on the ecosystem until it does something non-trivial. 21:12
21:13 mcmillhj joined, silug joined
sjn nice! 21:15
IOninja DrForr: out on Github where? 21:16
DrForr github.com/drforr/perl6-Perl6-Tidy
sjn DrForr: are you up for feature requests? :) 21:17
21:17 mcmillhj left
DrForr Issues are probably the best way to handle this, but yes. 21:18
21:18 cdg_ joined
sjn "Produce output according to vim modeline in input text" :) 21:19
DrForr github.com/drforr/perl6-Perl6-Tidy...6/Tidy.pm6 walks the token stream and filters out comments optionally. 6 lines is all it needs.
MasterDuke DrForr++ 21:20
sjn yeah, DrForr++ deserves some extra karma today \o/
21:20 TEttinger joined, vike left
sjn and praise and gratitude and stuff :) 21:21
sena_kun DrForr++, a really good work on that
21:22 cdg left
IOninja What's .Bridge method for? 21:22
21:22 mcmillhj joined
RabidGravy it's for making James Brown tracks with :) 21:23
21:25 cschwenz left
DrForr Wow. Thanks. 21:26
moritz IOninja: basically for converting to common numeric ground 21:27
21:27 mcmillhj left
IOninja moritz: I don't get it... Why have an extra method call when all of them are converting to Num? Why not just call Num? 21:28
21:28 vike joined
DrForr If I were slightly smarter what I"d do is add a Perl6::Catchall "token" that gets added when the code can't figure out what to do with a given tag instead of die as it currently does, so I can refine stepwise a little easier 21:28
Tomorrow, maybe. 21:29
moritz m: say [^5].head(3)
camelia (0 1 2)
moritz m: say [^5].head(10)
camelia (0 1 2 3 4)
moritz m: say [^5][^10]
camelia (0 1 2 3 4 (Any) (Any) (Any) (Any) (Any))
IOninja m: say [^5][lazy ^10]
camelia (0 1 2 3 4)
21:30 sena_kun left
moritz fascinating 21:31
nick ListNinja
DnAeillaxe m: say (^∞).head(∞).is-lazy 21:33
camelia True
DnAeillaxe m: say (^999999999999).head(∞).is-lazy
camelia False
21:33 mcmillhj joined
DnAeillaxe so is-lazy propagates through? 21:33
IOninja Yes. 21:34
DrForr Incidentally, you can walk back and forth, up to parents and down to children from a give node. I'm thinking abot removing that ability though because it ort of lets you break encapsulation, if you can use something other than built-in terator methods to walk the list. 21:36
21:38 mcmillhj left 21:45 andrzejku left 21:51 labster joined 21:52 wamba1 joined 21:53 mcmillhj joined, ggoebel left 21:54 cdg joined 21:57 cdg_ left, bjz left, mcmillhj left 21:59 eroux left, cdg left 22:00 Cabanossi left
spebern DrForr: did you have time to look at my attempt of fixing the antlr translater? 22:00
22:02 mcmillhj joined 22:05 ggoebel joined 22:07 mcmillhj left 22:09 RabidGravy left 22:10 Ven left
jnthn RabidGravy: Nice; don't see anything wrong after having a look over it 22:13
22:13 eroux joined 22:20 espadrine left 22:22 mcmillhj joined
Geth whateverable: 7fbfd2c26c | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Space should be required after .u

Otherwise unicodable may answer on any message starting with .u (as it just happened).
22:24
22:25 unicodable6 left, unicodable6 joined
DnAeillaxe .uniprops blabla 22:25
there, fixed :)
22:25 ChanServ sets mode: +v unicodable6 22:27 mcmillhj left
DnAeillaxe hugme 22:30
huggable: bots
huggable DnAeillaxe, The #perl6 irc channel normally hosts several helpful bots. I am a bot, and camelia, benchable, bisectable, buggable, committable, dalek, ilbot, NeuralAnomaly, SourceBaby, synopsebot6, Undercover, yoleaux are other bots who are usually here.
DnAeillaxe huggable: bots :is: The #perl6 irc channel normally hosts several helpful bots. I am a bot, and everyone else voiced on this channel is a bot. See the full list here: github.com/perl6/doc/issues/711#is...-235414744 22:33
huggable DnAeillaxe, Added bots as The #perl6 irc channel normally hosts several helpful bots. I am a bot, and everyone else voiced on this channel is a bot. See the full list here: github.com/perl6/doc/issues/711#is...-235414744
22:33 mcmillhj joined 22:35 vendethiel left 22:36 vendethiel joined 22:38 mcmillhj left 22:39 dct joined 22:40 Voldenet left 22:45 Voldenet joined, Voldenet left, Voldenet joined 22:54 cdg joined 22:57 robertle left
BenGoldberg s: ("EVAL" && EVAL("42")), "Str" 22:57
SourceBaby BenGoldberg, Sauce is at github.com/rakudo/rakudo/blob/f190...Mu.pm#L454
BenGoldberg s: ("shell" && shell("ls") && 42), "Str" 22:59
SourceBaby BenGoldberg, Sauce is at appveyor.yml
22:59 SourceBaby left, SourceBaby joined, ChanServ sets mode: +v SourceBaby
BenGoldberg IOninja, I think you need to improve sub is-safish ;) 22:59
geekosaur o.O
23:00 eroux left
IOninja BenGoldberg: easier to just make the bot ignore you. 23:00
BenGoldberg apologizes 23:01
23:02 mcmillhj joined, n1ce left 23:03 n1ce joined
BenGoldberg I'm not being mean, just pointing out that a malicious user might exploit your bot -- I only ran 'ls', but someone else might do something worse. 23:03
23:03 Cabanossi joined 23:05 dct left 23:07 mcmillhj left
BenGoldberg s: ((return "really simple")) 23:09
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Attempt to return outside of any Routine␤ in block <unit> at -e line 6␤␤
BenGoldberg s: ((put("really simple\n") && 42), 'Int') 23:10
SourceBaby BenGoldberg, Something's wrong: really simple␤␤␤ERR: Cannot resolve caller sourcery(List); 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␤␤
DnAeillaxe BenGoldberg: it's not just that 23:16
BenGoldberg: most bots here are kind of vulnerable to this
BenGoldberg: RESTRICTED setting practically does nothing 23:17
BenGoldberg: interestingly, right now I'm working on making whateverable more secure…
but yeah, if somebody can contribute that, please do :P
BenGoldberg s: "foo", Str ) && ("test 23:18
SourceBaby BenGoldberg, Something's wrong: ␤ERR: ===SORRY!=== Error while compiling -e␤Unable to parse expression in double quotes; couldn't find final '"' ␤at -e:7␤------> <BOL><HERE><EOL>␤ expecting any of:␤ double quotes␤ term␤
BenGoldberg s: "foo", Str ) && ("test"
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Str, Str); 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␤␤
BenGoldberg s: &say, \() ) && ("test" 23:19
SourceBaby BenGoldberg, Something's wrong: ␤ERR: Index out of range. Is: 1, should be in 0..0␤ in block <unit> at -e line 6␤␤Actually thrown at:␤ in block <unit> at -e line 6␤␤
BenGoldberg s: &say, \() ) && ("test", "foo"
SourceBaby BenGoldberg, Something's wrong: foo␤␤ERR:
23:20 agentzh left
BenGoldberg s: &say, \() ) && ("test", "github sucks #perl6 rocks!" 23:20
SourceBaby BenGoldberg, Sauce is at github sucks #perl6 rocks!
DnAeillaxe :|
BenGoldberg Whee ;) 23:21
23:21 agentzh joined 23:23 mcmillhj joined 23:24 SourceBaby left 23:25 SourceBaby joined, ChanServ sets mode: +v SourceBaby 23:26 SourceBaby left 23:27 SourceBaby joined, ChanServ sets mode: +v SourceBaby, mcmillhj left 23:28 SourceBaby left 23:29 bjz joined, SourceBaby joined, ChanServ sets mode: +v SourceBaby 23:30 SourceBaby left 23:31 SourceBaby joined, ChanServ sets mode: +v SourceBaby 23:32 SourceBaby left, bjz left 23:33 SourceBaby joined, ChanServ sets mode: +v SourceBaby 23:36 gdonald left, gdonald joined
Geth ecosystem: 74c3f6d7c1 | (Tom Browder)++ | META.list
add module Number::More
23:39
23:43 mcmillhj joined
DnAeillaxe m: ‘
’.uniname.say 23:44
camelia PARAGRAPH SEPARATOR
DnAeillaxe e: ‘
’.uniname.say
:| 23:45
s: hello
world
SourceBaby DnAeillaxe, Something's wrong: ␤ERR: ===SORRY!=== Error while compiling -e␤Undeclared routine:␤ hello used at line 6. Did you mean 'shell'?␤␤
DnAeillaxe s: ‘
’
s: ‘ ’
SourceBaby DnAeillaxe, Something's wrong: ␤ERR: Cannot resolve caller sourcery(Str); 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␤␤
DnAeillaxe s: ‘
’
he-heey!
IOninja: now that's something interesting! 23:46
haven't figured it out yet
but that's why unicodable failed a little bit earlier today 23:47
and if I got it right, JSON::Tiny is unable to work with this character also 23:48
but I'm still investigating…
23:48 mcmillhj left 23:50 wamba1 left
DnAeillaxe m: say so 0x2029.chr ~~ /\n/ 23:52
camelia True
IOninja In the log I see it's messing with parsing of IRC protocol. The ❚⚠❚ : WORLD bit is never supposed to be triggered, I think... gist.github.com/zoffixznet/da77f4e...9905fae266 23:53
23:53 mcmillhj joined
DnAeillaxe IOninja: well I don't know, but all “\n”s here are suspicious: github.com/zoffixznet/perl6-IRC-Cl...rammar.pm6 23:55
because, surprise-surprise, U+2029 does match \n 23:56
(or other way round… whatever!)
IOninja u: U+2029
unicodable6 IOninja, U+2029 PARAGRAPH SEPARATOR [Zp] (
)
DnAeillaxe u: Zp 23:57
unicodable6 DnAeillaxe, U+2029 PARAGRAPH SEPARATOR [Zp] (
)
IOninja m: say "\c[2029]" ~~ "\n"
camelia False
DnAeillaxe IOninja: it's hex
m: say "\x[2029]" ~~ "\n"
camelia False
IOninja ?
DnAeillaxe m: say "\x[2029]" ~~ /\n/
camelia 「
」
IOninja Oh right
m: dd "\c[2029]" 23:58
camelia "\x[7ed]"
IOninja What's that? decimal?
DnAeillaxe yes
IOninja Ah
DnAeillaxe u: { .chr ~~ /\n/ }
IOninja Well, I've no idea wtf that matches \n
23:58 mcmillhj left
IOninja u: newline 23:58
unicodable6 DnAeillaxe, U+000A <control-000A> [Cc] (control character)
DnAeillaxe, U+000B <control-000B> [Cc] (control character)
IOninja, U+2424 SYMBOL FOR NEWLINE [So] (␤)
IOninja, U+2B92 NEWLINE LEFT [So] (⮒)
IOninja, U+2B93 NEWLINE RIGHT [So] (⮓)
IOninja m: say "\x[2029]" ~~ "\x[A]" 23:59
camelia False
IOninja So I guess all those \n should be replaced with \x[A]
DnAeillaxe u: { so .chr ~~ /\n/ }
unicodable6 DnAeillaxe, U+000A <control-000A> [Cc] (control character)
DnAeillaxe, U+000B <control-000B> [Cc] (control character)
DnAeillaxe ah right, yes… yes, unicodable, you're actually right