»ö« 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:12
ryn1x left
00:24
Cabanossi left
00:26
Cabanossi joined
00:28
Util_ is now known as Util
00:32
thundergnat left
00:33
nadim left
00:34
thowe joined
00:36
margeas left
00:39
ryn1x joined
00:42
leedo left,
leedo joined
00:45
Herby__ joined
00:47
cdg left,
Kyo91_ joined
00:48
aindilis left
00:50
ryn1x left
00:54
darkmorph left
00:59
Kyo91_ left
01:01
astj joined
01:04
Kyo91_ joined
01:10
Kyo91_ left
01:15
bitrauser_ joined
01:16
cdg joined
01:17
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:18
bitrauser left,
itaipu joined
01:20
aindilis joined
01:21
cdg left
01:29
ryn1x joined
01:34
ryn1x left
01:35
llfourn left,
eliasr left
01:36
b2gills left,
TimToady left
01:38
llfourn joined,
TimToady joined
01:46
ilbot3 left
01:52
ryn1x joined,
raschipi joined
01:55
ilbot3 joined,
ChanServ sets mode: +v ilbot3
01:56
ryn1x left
01:57
COMBORICO left
02:01
wander left
02:06
cdg joined
02:10
cdg left
02:19
aindilis left
02:20
Kyo91_ joined
02:22
noganex joined
02:24
Cabanossi left,
ryn1x joined
02:25
rgrau left,
noganex_ left,
Cabanossi joined
02:30
aindilis joined,
Kyo91_ left
02:33
aindilis left,
Herby__ left
02:45
aborazmeh left
02:56
itaipu left
02:58
ryn1x left
03:12
aindilis joined
03:19
raschipi left
03:27
ryn1x joined
03:39
Cabanossi left,
Cabanoss- joined
03:40
Cabanoss- is now known as Cabanossi
03:47
cdg joined
03:52
cdg left
03:53
ryn1x left
04:08
khw left
04:16
thowe left
04:24
ryn1x joined
04:28
mr-fooba_ joined
04:29
mr-foobar left
04:32
Resol left
04:43
char_var[buffer] left
04:48
pilne left
04:49
xtreak joined
04:54
ryn1x left
04:58
troys_ is now known as troys
05:08
troys left
05:20
ryn1x joined
05:25
ryn1x left
05:45
evalable6 left,
evalable6 joined,
ChanServ sets mode: +v evalable6
05:54
wamba joined,
lowbro left
05:56
lowbro joined,
lowbro left,
lowbro joined
06:02
ryn1x joined
06:09
llfourn left
06:11
j_b_s joined
06:12
redhands joined,
parv joined
|
|||
j_b_s | testing hello | 06:20 | |
06:22
abraxxa joined
|
|||
j_b_s | what are main programming environments available for perl6 on windows 10? Looking to learn and familiarize with the language, but also start developing some tools to deploy on cloud (if possible) | 06:23 | |
teatime | I don't really know, but I can point you to installation package for windows rakudo.org/how-to-get-rakudo/#Insta...ar-Windows | 06:29 | |
and some links to editors perl6.org/whatever/ | |||
06:30
salva joined
|
|||
teatime | if you want an easy way to type fancy Unicode operators on windows, WinCompose worked well for me in the past | 06:30 | |
and perhaps mi.cro.services/ might interest you | |||
06:33
ryn1x left
06:38
Cabanossi left
06:40
Cabanossi joined
06:42
atroxaper joined
|
|||
j_b_s | great, thanks teat | 06:45 | |
ime | |||
06:47
Herby_ left
06:52
CacoS joined
06:54
j_b_s left
07:02
domidumont joined,
jonas1 joined
07:08
domidumont left,
domidumont joined
07:11
redhands left
07:12
ryn1x joined,
darutoko joined
07:16
ryn1x left
07:18
CacoS left
07:22
rba_ left
07:26
abraxxa left
07:27
abraxxa joined,
atroxaper left
07:30
thunktone joined
07:31
rba joined
07:35
margeas joined,
parv left
07:38
Cabanossi left
07:40
Cabanossi joined
07:42
abraxxa left,
mr-fooba_ left
07:46
committable6 left,
committable6 joined,
xtreak left
07:47
xtreak joined
07:48
cdg joined,
committable6 left,
committable6 joined,
ChanServ sets mode: +v committable6
07:49
zakharyas joined,
sproctor joined
07:50
xtreak_ joined,
xtreak left
07:52
cdg left
07:54
ryn1x joined
07:58
xtreak_ left
08:04
sena_kun joined
08:06
rba left,
rba joined
08:09
eliasr joined,
Cabanossi left
08:10
rindolf joined,
Cabanossi joined,
nadim joined,
rba left
08:13
domidumont left
08:14
dogbert17 left,
thunktone left,
domidumont joined
08:17
zakharyas left
08:18
zakharyas joined
08:26
ryn1x left
08:27
dakkar joined
08:30
xtreak joined
08:40
abraxxa joined,
abraxxa left
08:41
rba joined
09:09
ryn1x joined
09:10
domidumont left,
andrzejku joined
09:11
domidumont joined
09:14
ryn1x left
09:21
lowbro left
09:32
ryn1x joined
09:44
W4RL0RD joined
09:46
W4RL0RD left,
W4RL0RD__ joined
09:47
W4RL0RD__ left
09:49
W4RL0RD__ joined
09:51
ExtraCrispy joined,
W4RL0RD__ left,
lowbro joined,
lowbro left,
lowbro joined
09:58
wamba left
10:03
ryn1x left
10:05
ChoHag left
10:06
abraxxa joined
10:23
Cabanossi left
10:24
Cabanossi joined
10:25
greppable6 left,
greppable6 joined,
ChanServ sets mode: +v greppable6
10:28
pmurias joined
10:33
llfourn joined
10:39
S007 left
10:48
ryn1x joined
10:53
ryn1x left
10:54
cdg joined
10:55
astj left
10:56
astj joined,
astj left,
astj joined
10:59
xtreak left,
cdg left
11:02
xtreak joined
11:04
S007 joined
11:07
ChoHag joined
11:17
raschipi joined
11:18
zakharyas left
11:23
Cabanossi left
11:24
ryn1x joined,
wamba joined
11:25
Cabanossi joined
11:35
ChoHag left
11:47
wamba left
11:56
ryn1x left
12:01
xtreak left
|
|||
Geth | perl6-examples: 6ae35dec7e | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Refactor my code. |
12:10 | |
12:11
itaipu joined
|
|||
[Coke] | . | 12:16 | |
rindolf | Hi all! | 12:18 | |
p6eval: [*] [2,3,5] | |||
m: [*] [2,3,5] | |||
camelia | Potential difficulties: Useless use of [*] in sink context at <tmp>:1 ------> 3<BOL>7⏏5[*] [2,3,5] |
||
rindolf | m: [*] 2,3,5 | 12:19 | |
camelia | Potential difficulties: Useless use of [*] in sink context at <tmp>:1 ------> 3<BOL>7⏏5[*] 2,3,5 |
||
lizmat | m: say [*] 2,3,5 | ||
camelia | 30 | ||
geekosaur | it doesn't auto-say stuff | ||
rindolf | lizmat: thanks | ||
geekosaur | because then the bot can;t easily be used to test for sink context issues | ||
rindolf | m: say [*] [2,3,5] | ||
camelia | 30 | ||
rindolf | great | ||
geekosaur | or for auto-sinking issues, which do occaisonally come up | 12:20 | |
rindolf | is this the idiomatic way to do a product? | ||
12:21
darkmorph joined
|
|||
lizmat | m: my @a = 2,3,5; say [@] @a # also works ? | 12:23 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3my @a = 2,3,5; say [@]7⏏5 @a # also works ? expecting any of: infix infix stopper postfix statement end … |
||
lizmat | m: my @a = 2,3,5; say [*] @a # better | ||
camelia | 30 | ||
geekosaur is trying to tell if that was a shell-y typo... | 12:24 | ||
lizmat | so yes, I would say it's the idiomatic to do a product on more than 2 values | ||
12:27
ChoHag joined
12:28
khw joined
12:31
astj left
12:34
astj joined
|
|||
Geth | perl6-examples: 98a8fd04fd | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Rename var |
12:35 | |
perl6-examples: 1cedf866cf | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Refactoring |
|||
perl6-examples: 4e0ccae754 | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Extract a common function. |
|||
rindolf | lizmat: thanks | 12:36 | |
12:39
ExtraCrispy left
12:41
zakharyas joined
12:42
pilne joined,
zakharyas left
12:43
zakharyas joined
|
|||
Geth | perl6-examples: 89d76569ce | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Refactoring |
12:48 | |
perl6-examples: f4edd80c4e | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Refactoring - avoid a temp |
|||
perl6-examples: 34383395b1 | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Refactoring |
|||
12:56
japhdc joined,
ryn1x joined
12:57
unicodable6 left,
unicodable6 joined
|
|||
Geth | perl6-examples: 096a3981da | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Refactor: convert to nCr and bag(). |
13:02 | |
13:04
wamba joined
13:16
cdg joined
13:21
ExtraCrispy joined
|
|||
Geth | perl6-examples: fe089d298e | (Shlomi Fish)++ | categories/euler/prob612-shlomif.p6 Refactoring |
13:22 | |
13:23
PMortens_logOnly left
13:25
PMortens_logOnly joined
13:30
cdg_ joined,
ryn1x left
13:33
cdg left
13:38
ryn1x joined,
Cabanossi left
13:40
Cabanossi joined
13:41
mson joined
13:48
bwisti left
13:49
napo1eon joined
13:51
Kyo91_ joined
13:52
napo1eon left,
napo1eon joined
13:56
Kyo91_ left
14:00
Zoffix joined
14:01
Zoffix left,
darkmorph left
14:03
ggoebel left
14:04
japhdotcom joined
14:06
japhdc left
14:08
Cabanossi left
14:10
Cabanossi joined,
mempko joined
14:11
Cabanossi left
|
|||
Geth | perl6-examples: 259900d959 | (Shlomi Fish)++ | META6.json Fix t/test-meta.t with a .git suffix. |
14:11 | |
14:12
Cabanossi joined,
ryn1x left
14:14
Cabanossi left,
Cabanossi joined
14:15
ggoebel joined,
Cabanossi left
14:16
Cabanossi joined
14:21
xtreak joined
14:28
japhdotcom left
14:32
Herby_ joined
|
|||
Herby_ | o/ | 14:32 | |
14:33
rba_ joined
14:36
rba left
|
|||
[Coke] | \o | 14:36 | |
stmuk | new perl6 video www.youtube.com/watch?v=AJm7M36DgD0 | 14:37 | |
lizmat: for the weekly? ^^ | 14:38 | ||
lizmat | stmuk++ :-) | 14:39 | |
stmuk | hmmm non-visible slides issues .. I'll see if I can get them | 14:40 | |
14:44
lowbro left
14:48
callyalater joined
14:49
scovit joined
|
|||
scovit | hello | 14:49 | |
m: my @F = []; say @F; say @F.map({ $_ - 1 }) | |||
camelia | [] () |
||
Herby_ | Hello | ||
scovit | m: my @F = "".split(" "); say @F; say @F.map({ $_ - 1 }) | ||
camelia | [] (-1) |
||
scovit | I think I am missing something about the functioning of split.. | ||
how do you understand what is going on there ^ ? | |||
[Coke] | m: my @F = "".split(" ").perl.say | 14:50 | |
camelia | ("",).Seq | ||
[Coke] | m: say ""-1; | ||
camelia | -1 | ||
[Coke] | ^^ | ||
scovit | Thank you Coke, now how to solve the issue that "".split(" ") still give me "" ? | ||
geekosaur | you split a empty string, you got an empty list back | ||
lizmat | and that stringifies to "" | 14:51 | |
geekosaur | ^ | ||
scovit | I understand that there is a logic behind all this | ||
[Coke] | m: my @F = "".split(" ", :skip-empty).perl.say | ||
camelia | ().Seq | ||
[Coke] | ^^ | ||
lizmat | stmuk: if we could have slides to go with the video, that would be brill :-) | ||
scovit | Thank you Coke | 14:52 | |
[Coke] | found on docs.perl6.org/routine/split | ||
scovit | I didn't bother checking the docs, since | 14:53 | |
m: say ("",).Seq | |||
camelia | () | ||
scovit | it was not at all clear where to look | ||
geekosaur | split would have been my first guess | ||
[Coke] | when trying to track something like that, break it down into pieces first, and see where things start going contrary to expectations. | 14:54 | |
scovit | geekosaur of course, but there was no reason to assume that perl was behaving according to a logic | ||
geekosaur | ... | 14:55 | |
[Coke] | That's a weird phrasing that doesn't actually tell me what your expectation was. | 14:56 | |
jdv79 | AlexDaniel`: yeah, i mistakenly badded instead of skipping | 14:57 | |
thanks | |||
scovit | my expectation was that [] would be different from ("",).Seq | 14:58 | |
which was, but then say wouldn't show | |||
[Coke] | it is different. | ||
scovit | in the output of say | ||
[Coke] | say shows you the gist of something, not the true thing. | ||
AlexDaniel` | jdv79: it's actually non-obvious if you're doing an automated run for example. You have to check the exit code of make *and* configure, or alternatively check if perl6 executable exists | ||
[Coke] | use .perl to get closer to the metal. | ||
AlexDaniel` | jdv79: this is why I love bisectable, it does all that automatically :) | 14:59 | |
jdv79: … except that it is no good for that particular case :( | |||
jdv79 | haha | ||
15:01
b2gills joined
|
|||
geekosaur | scovit, if you want to see the truth, use the .perl method. (which gives you a Str and the gist of a Str is itself, so you can safely 'say' it) | 15:01 | |
scovit | geekosaur, of I can keep complaining, :skip-empty is not huffman coded | ||
I think that what I am doing is fairly common | 15:02 | ||
b2gills | :skip-empty **is** huffman coded, because you shouldn't use it very often | ||
scovit | perl -nae 'print scalar @F' | 15:03 | |
it is the default here ^ | |||
[Coke] | perl6 ain't perl5. | 15:04 | |
scovit | I am just arguing that people will use it often | ||
[Coke] | docs.perl6.org/language/5to6-perlfunc#split | ||
b2gills | I just came back online, but I assume you used .split(''), which is better written as .comb | ||
geekosaur | your argument would be worth a bit more if it werent based on 'I think that...' | 15:05 | |
scovit | b2gills nop | ||
[Coke] | Looks like that is missing the note about :skip-empty | ||
Juerd | Why is .split('') "better written as" .comb? timtowtdi! | ||
b2gills | I meant .split('',:skip-empty) is better written as .comb. It is about saying what you want rather than what you don't want. | 15:07 | |
15:08
kshannon left,
kshannon joined
|
|||
scovit | geekosaur I might better spend my time counting the time arguments about huffman coding are based on handwaving than counting the times split is intended as :skip-empty | 15:09 | |
like in all perl5 scripts | |||
geekosaur | enough. I am not the one who decides these things, and you are veering close ot saying that our time is best spent accepting your beliefs as truths | 15:10 | |
un critically | |||
b2gills | m: ''.comb(/<-[\ ]>+/).perl.say | 15:11 | |
camelia | () | ||
scovit | I am arguing that spending time in such a discussion would be less worth than trolling you, sorry for the honesty | ||
15:13
zakharyas left,
ryn1x joined
|
|||
b2gills | There are many places where the default in Perl 5 is to throw away information, and the default in Perl 6 is to keep the information | 15:14 | |
AlexDaniel` | .hug everyone | 15:18 | |
huggable hugs everyone | |||
15:18
pilne left
|
|||
scovit | b2gills, I interpret the perl 6 default as keeping an identity element | 15:18 | |
15:19
piojo_ joined
|
|||
scovit | I honestly like the new default | 15:19 | |
b2gills | m: say '123'.split('abc').perl.say | ||
camelia | ("123",).Seq True |
||
b2gills | m: my @a = 1,2,3; say [@a,4,5].perl; say [|@a,4,5]; # another place that Perl 5 would throw away data that Perl 6 doesn't | 15:20 | |
camelia | [[1, 2, 3], 4, 5] [1 2 3 4 5] |
||
raschipi | Yep, very good principle to have, requiring that discarding information be done explicitly. | 15:22 | |
AlexDaniel` | it depends on what you look at. Strings, for example, are normalized by default | 15:25 | |
15:26
troys joined
15:28
ggoebel left,
xtreak left
|
|||
b2gills | To be fair, Unicode says that all the ways of encoding a grapheme cluster should be seen as equivalent. It only really becomes a problem when dealing with interfaces that don't follow that part of the spec, like file-systems. | 15:29 | |
raschipi | Unicode is round-trip capable exactly because that isn't true. | 15:33 | |
15:34
eliasr left
|
|||
geekosaur | unixlike filesystems mostly don't claim to follow that spec (OS X being a specific exception, and that only for HFS+) so that's a slightly weird statement | 15:35 | |
in fact posix doesn't promise anything except byte strings | 15:36 | ||
15:39
jonas1 left
|
|||
raschipi | That is because it has to support any encoding, not only Unicode ones. Unicode still didn't support Japanese properly until recently, for example (and the new standard that does isn't implemented in any POSIX operating systems anyway). So that's why they didn't change file names to require valid Unicode. | 15:39 | |
b2gills | That was just an example, there are interfaces that take in utf8 data but treat it more like a list of numbers than text | 15:40 | |
raschipi | There were talks on Usenix about requiring valid utf-8 in file names and about normalizing them. Apple is already implementing it, soon it will be available in other systems. | ||
teatime | unicode is so complex. I love it, but I, like, fear it somehow. | 15:42 | |
15:42
domidumont left
|
|||
scovit | I dubt linux will follow | 15:42 | |
b2gills | There are certain times where it would be nice for a Str to keep around something like a shadow copy of it's original data for when round-tripping is useful. | 15:43 | |
scovit | I tought there was an encoding specifically for that utf-c8 | 15:45 | |
b2gills | Or at least if Uni were usable with more of the setting | ||
raschipi | Linux will follow, it will just take a long time and many out-of-tree attempts to get the interfaces right before they committ to it. | 15:46 | |
15:47
ryn1x left
|
|||
pmurias | b2gills: making Uni more usable seems a lot better than a solution that sometimes works but breaks when you mess more with the string | 15:48 | |
scovit | I think the developers of linux are committed to keep the kernel abi compatibility. While this seems more related to filesystems than the general kernel, it will break some applications | 15:51 | |
15:51
mson left
|
|||
teatime | were you having a problem with reading filepaths that get normalized and end up not the same bytes as the real filepath? | 15:52 | |
geekosaur | scovit, maybe. I've been imagining a separate set of APIs for utf8 | 15:53 | |
because there will be apps that need to use byte strings for compatibility or etc. | 15:54 | ||
teatime | geekosaur: implicit hardlinks? :) | ||
15:55
Kyo91_ joined
|
|||
geekosaur | and, knowing programmers, probably someone relying on U+00E1 and U+0061 U+0301 being different | 15:55 | |
raschipi | m: Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').codes #what a mess | 15:56 | |
camelia | ( no output ) | ||
teatime predicts unicoded and filepathctl | |||
raschipi | m:say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').codes | ||
evalable6 | 7 | ||
geekosaur predicts linux will find the most byzantine possible way to implement it >.> | 15:57 | ||
b2gills | m: Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').uninames.map: &say | 15:58 | |
camelia | <Plane 16 Private Use-10FFFD> LATIN SMALL LETTER X LATIN CAPITAL LETTER F DIGIT EIGHT LATIN SMALL LETTER G LATIN SMALL LETTER E LATIN SMALL LETTER K |
||
teatime | m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').encode('utf8-c8').codes | 15:59 | |
camelia | No such method 'codes' for invocant of type 'Blob[uint8]'. Did you mean 'does'? in block <unit> at <tmp> line 1 |
||
b2gills | m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').encode('utf8-c8').bytes | ||
camelia | 4 | ||
15:59
Kyo91_ left,
Cabanossi left
16:00
Cabanossi joined
|
|||
raschipi | m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').encode('utf8-c8').^name | 16:01 | |
camelia | Blob[uint8] | ||
raschipi | Yeah, but it breakes down in the midlle. Only works as long as one doesn't touch it. | ||
teatime | I'm not necessarily seeing the problem, or at least one that could be avoided w/ automation | 16:03 | |
16:04
domidumont joined
|
|||
raschipi | It's just that it's messy. The guts should be hidden. | 16:04 | |
m:say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').codes # This should be '4', because I created it with 4 codes. | 16:05 | ||
evalable6 | 7 | ||
raschipi | But it's seven, the encapsulation is broken | ||
teatime | raschipi: when you decode it you're asking for the (perl-normalized/NFG, I guess) utf8 representation | 16:06 | |
16:06
Kyo91_ joined,
xtreak joined
|
|||
raschipi | m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8') | 16:06 | |
camelia | xF8gek | ||
moritz | that is weird, if you ask me | 16:08 | |
raschipi | It should output '�gek' | ||
moritz | four bytes to 7 graphemes | ||
timotimo | just improving Uni isn't enough to make things round-trippable | ||
teatime | moritz: it's 7 codepoints, isn't it? | ||
timotimo | that only makes normalization optional. you still can't deal with input that isn't valid utf8 or whatever | ||
that's why utf8-c8 exists | |||
teatime | m: say Blob.new(0xf8, 0x67, 0x65, 0x6b).decode('utf8-c8').chars | ||
camelia | 4 | ||
moritz | teatime: "xF8gek" looks like 7 graphemes to me | 16:09 | |
teatime | yeah I don't understand how xF8 gets into the string output | 16:10 | |
timotimo | it's what you get when you encode something to utf8 that was created with utf8-c8 | ||
teatime | that seems like a bug | ||
timotimo | no | ||
it is the intention | |||
teatime | well it's invalid utf8. ok fair enough. | 16:11 | |
raschipi | Well, it is documented at least: docs.perl6.org/language/unicode#UTF8-C8 | ||
16:11
Kyo91_ left
|
|||
teatime | it's not like there's anything righter it could do | 16:11 | |
timotimo | it could just output the binary garbage again, so that the next thing in the chain has to deal with it :P | ||
16:12
ryn1x joined
|
|||
timotimo | users love it when their terminal suddenly shows only drawings and symbols instead of text | 16:12 | |
teatime | I guess that's what would happen exactly if output encoding is utf8-c8, but since it's utf8 it doesn't output invalid utf8 | ||
raschipi | If that's what they told the computer to do, that's what it should do. | ||
timotimo | yeah, then they just have to use utf8-c8 on the way out | ||
teatime | I'm still not seeing the problem, or at least the problem that could be hidden from the user (programmer). | ||
(by which I mean I guess I missed the point, not that I think you don't have one) | 16:13 | ||
timotimo | m: say (Blob.new(0xf8).decode('utf8-c8') x 3).encode('utf8-c8') | ||
camelia | Blob[uint8]:0x<f8 f8 f8> | ||
timotimo | you can work properly with the strings it creates | ||
complaining that it displays Xxf8 is a bit like complaining that .perl gives you \r where you would have expected the literal \r to be output to the console | 16:14 | ||
similarly if you use that as the basis, you can end up splitting bytes in half. that's why Xxf8 is one grapheme. you can't accidentally grab only the first two codepoints | 16:15 | ||
16:16
ryn1x left
|
|||
timotimo | does that sound sensible to you? | 16:16 | |
raschipi | How can I send it down the standard output? Because I want to mess my terminal on purpose | ||
The original bytes | |||
timotimo | many ways, for example $*OUT.write($the-weird-string.encode('utf8-c8')) | 16:17 | |
m: $*OUT.encoding = 'utf8-c8'; my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $*OUT.write($weirdstuff) | |||
camelia | Cannot modify an immutable Str (utf8) in block <unit> at <tmp> line 1 |
||
timotimo | ah, i feared setting encoding afterwards isn't possible | ||
m: my $raw-out = open('/dev/stdout', 'utf8-c8'); my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $raw-out.say($weirdstuff) | 16:18 | ||
camelia | open is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting line 1 in sub open at src/RESTRICTED.setting line 9 in block <unit> at <tmp> line 1 |
||
16:18
sproctor left
|
|||
timotimo | c: HEAD my $raw-out = open('/dev/stdout', 'utf8-c8'); my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $raw-out.say($weirdstuff) | 16:18 | |
committable6 | timotimo, ¦HEAD(50324bb): «Too many positionals passed; expected 1 argument but got 2 in block <unit> at /tmp/ZuQ_7h2ewx line 1 «exit code = 1»» | ||
timotimo | c: HEAD my $raw-out = open('/dev/stdout', :encoding('utf8-c8')); my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $raw-out.say($weirdstuff) | 16:19 | |
committable6 | timotimo, gist.github.com/eec058d4876f950729...6cebab5cb9 | ||
raschipi | Thanks timotimo. | ||
timotimo | you'll also need to pass :w to the open call | 16:20 | |
16:20
Khisanth left
16:21
darkmorph joined,
dogbert17 joined,
wander joined
|
|||
wander | Is there some way to use QAST in perl6? not for a concrete aim, just curious | 16:22 | |
timotimo | yup! | 16:23 | |
looking for an example | 16:24 | ||
16:24
buggable left
|
|||
timotimo | hm, i thought i could use zoffix' irc bot as an example | 16:24 | |
m: use QAST:from<NQP>; say QAST::SVal.new(:value<hi>).dump | 16:25 | ||
camelia | - QAST::SVal(hi) |
||
16:25
bdmatatu joined
|
|||
wander | thank you~ I tried 'use QAST;' but fail XD | 16:27 | |
Geth | doc: 920c6cb8ff | (Will "Coke" Coleda)++ | doc/Type/Any.pod6 Update signature to match that of the list variant. Closes #1604 |
||
synopsebot | Link: doc.perl6.org/type/Any | ||
16:28
Khisanth joined
|
|||
timotimo | qast: ▸Op: :op<say>, ▸SVal: :value("Have fun!") | 16:32 | |
SourceBaby | timotimo, OUTPUT: «Have fun!» | ||
timotimo | wander: zoffix built this bot with a little DSL for qast compilation and evaluation | ||
SourceBaby: source | |||
SourceBaby | timotimo, See: github.com/zoffixznet/perl6-sourceable | ||
wander | got it | 16:33 | |
timotimo | github.com/zoffixznet/perl6-source...ry.pm6#L49 - code starts here | ||
16:35
ryn1x joined
16:37
scovit left
16:38
Kyo91_ joined
16:41
troys is now known as troys_,
setty1 joined
16:44
ggoebel joined
16:46
pmurias left,
xtreak left,
ryn1x left
16:47
troys_ is now known as troys
16:48
dakkar left,
jmarkert left
16:49
nadim left,
rba_ left
16:50
rba joined,
zakharyas joined
16:54
rba left
17:05
itaipu left,
zakharyas left
17:06
itaipu joined,
Kyo91_ left
17:08
zakharyas joined
17:16
Kyo91_ joined
17:19
thunktone joined
17:21
ryn1x joined
17:23
Zoffix joined
|
|||
Zoffix | raschipi: the arg is :enc not :encoding tho | 17:23 | |
(consistently inconsistent) | |||
m: $*OUT.encoding('utf8-c8'); my $weirdstuff = Buf.new(0xf8).decode('utf8-c8'); $*OUT.write($weirdstuff) | 17:24 | ||
camelia | Type check failed in binding to parameter '$buf'; expected Blob but got Str ("\xF9") in block <unit> at <tmp> line 1 |
||
Zoffix | m: $*OUT.encoding('utf8-c8'); my $weirdstuff = Buf.new(0xf8); $*OUT.write($weirdstuff) | ||
camelia | ( no output ) | ||
Zoffix | Changing encoding after write is defined and works. It's just Yet Another Inconsistency that it takes it as an arg instead of being asigned to | 17:25 | |
17:26
ryn1x left
|
|||
Zoffix | open('/dev/stdout') can be written as open(IO::Special.new: "<STDOUT>").say: "meow" | 17:26 | |
17:26
bwisti joined
|
|||
Zoffix | or, in 6.c, as just open '-' | 17:27 | |
timotimo | OK | ||
17:27
thunktone left
|
|||
timotimo | i don't do very much I/O it seems :) | 17:28 | |
17:29
thunktone joined
17:30
piojo_ left
|
|||
Zoffix | :) | 17:32 | |
17:33
mr-foobar joined
17:34
zakharyas left
|
|||
timotimo | i mostly have ARGFILES do stuff for me | 17:34 | |
17:34
ChoHag left
|
|||
moritz | something funny for the German-speaking 6ers: pbs.twimg.com/media/DM1GQCmXcAEYnCi.jpg | 17:38 | |
timotimo | :D | 17:39 | |
Zoffix | What does that word really mean? | ||
ilmari | now that'll give you a glowing clean | ||
Zoffix | same translation into Russian | 17:40 | |
moritz | Zoffix: it's some kind of a hard soap | 17:41 | |
Zoffix | heh | ||
moritz | curd soap, some other dictionaries say | ||
no idea how accurate that is, but likely better than nuclear :-) | |||
Zoffix | :) | 17:42 | |
17:43
Zoffix left,
pecastro left
17:44
pecastro joined
17:46
Rawriful joined
17:47
lostinfog joined
17:49
ryn1x joined,
wamba left
18:00
TreyHarris left
18:03
troys is now known as troys_
18:04
lostinfog left
|
|||
stmuk | I saw Hauptversionsnummernerhöhungsangst: The German word for fear of increasing the major version number | 18:12 | |
recently | |||
18:13
TreyHarris joined
|
|||
perlpilot | Is there a corresponding geringerversionsnummernerhöhungsangst? | 18:15 | |
geekosaur | what's the one for being afraid that the version number was increased by someone else? >.> | 18:19 | |
lizmat | .oO( Datenfernubertragungsanlage ) |
18:21 | |
18:21
ChoHag joined,
ryn1x left
|
|||
moritz | geekosaur: that's called "Erfahrung" :-) | 18:21 | |
geekosaur | *snort* | ||
perlpilot | moritz: how do you get from there to Weisheit? | 18:23 | |
moritz | perlpilot: how am I supposed to know? :-) | 18:24 | |
perlpilot | :-) | ||
lizmat | more importantly: *why* do you want to know :-) | ||
perlpilot | that's okay ... I'll just google it ;) | 18:25 | |
18:25
ryn1x joined
18:30
ryn1x left
18:32
domidumont left
18:33
ExtraCrispy left,
cdg_ left
18:38
Kyo91_ left
18:40
mson joined
18:41
darutoko left
18:44
itaipu left
18:47
PMortens_logOnly left,
PMortens_logOnly joined
18:51
kyan joined
|
|||
Geth | doc: 4ec20e23db | (Elizabeth Mattijsen)++ | doc/Type/Iterable.pod6 hyper/race are no longer experimental - but keep the link for now, until the documentation has migrated here |
18:55 | |
synopsebot | Link: doc.perl6.org/type/Iterable | ||
18:56
itaipu joined
19:01
wamba joined
19:05
Kyo91_ joined,
setty1 left
19:08
setty1 joined
|
|||
raschipi | Here waiting for this last change in the docs from lizmat to build so I can send the link to people... | 19:09 | |
lizmat | raschipi: technically, we should probably wait until after the release | 19:11 | |
19:12
okl joined
|
|||
lizmat | not everybody is working with HEAD :-) | 19:12 | |
raschipi | well, just need to know the audience | ||
19:16
j_b_s joined,
thunktone left
19:18
thunktone joined
19:28
thunktone left,
setty1 left
19:29
setty1 joined
19:31
raiph joined,
thunktone joined
19:34
ryn1x joined
19:35
okl left
19:37
PMortens_logOnly left
19:41
abraxxa left
|
|||
raschipi | Done, built. | 19:42 | |
19:42
cpage_ left
19:58
nadim joined
20:01
bdmatatu left
20:02
cdg joined
20:04
Kyo91_ left
20:07
cpage_ joined
20:09
ryn1x left
20:11
cdg_ joined
20:13
ryn1x joined,
cdg left
20:14
ChoHag left
20:16
wamba1 joined,
wamba left
20:20
Kyo91_ joined
20:27
troys_ is now known as troys
20:28
j_b_s left
20:31
ChoHag joined
20:34
espadrine joined
|
|||
Geth | modules.perl6.org: PunKeel++ created pull request #90: Use Travis' repositories API instead of the Builds API |
20:41 | |
20:43
sena_kun left
20:45
Aceeri_ joined
20:47
ryn1x left
20:52
rindolf left
21:03
cpage_ left
21:05
bazzaar joined
|
|||
bazzaar | \o perl6 | 21:08 | |
hi, was just reading gfldex's new post 'gfldex.wordpress.com/2017/10/22/th...me-time/', and spotted some minor typos | 21:10 | ||
gfldex | bazzaar: that's why I put it there before I put it on Rosettacode | 21:11 | |
bazzaar | don't want to leave a comment just to point out their correction, so posting them here ( hope that's ok) | 21:12 | |
- pipe.Supply block ... line with contains('Rosetta .. has been clipped at 80 chars | |||
- Proc::Async.new arguments .... 'find*HOME... missing a closing quote | |||
- stdout.lines.tap block .... line with slurp.contains .... ends with }; ... should this be '); | 21:13 | ||
gfldex: thanks for this informative post (and others too), it's much appreciated. | 21:14 | ||
21:14
thunktone left
21:15
bdmatatu joined
|
|||
gfldex | bazzaar: I can't see those mistakes. | 21:16 | |
21:17
raschipi left
|
|||
bazzaar | gfldex: that's strange, I'm using Firefox on OpenSuse Leap 42.3, KDE destop | 21:18 | |
gfldex: I cut and pasted the individual code sections into a single file and ran it, got error messages at those 3 spots. | 21:20 | ||
gfldex | bazzaar: could you check gist.github.com/4e734902dcbabe3ff1...ef1676a579 please? | 21:21 | |
bazzaar: sadly wordpress and code don't mix that well | 21:22 | ||
21:29
ryn1x joined
21:30
setty1 left
|
|||
bazzaar | gfldex: that code runs without error (I didn't doubt that it would :), it just seems to be the blog where it gets mangled. I don't know enough to suggest how it can be fixed | 21:30 | |
geekosaur | as gfldex said, wordpress and code samples don't mix | 21:31 | |
21:34
ryn1x left
|
|||
zostay | Anyone have a suggestion how I could do some generic argument processing for .new? I've boiled the problem with what I'm trying to do down to the following snippet. | 21:34 | |
m: my %in = a => 1, b => <x y z>; class Z { has Int $.a; has Str @.b }; my %pin = do for Z.^attributes { my $v = %in{ .name.substr(2) }; .name.substr(2) => $v }; Z.new(|%pin); | |||
camelia | Type check failed in assignment to @!b; expected Str but got List ($("x", "y", "z")) in submethod BUILDALL at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
zostay | I just can't figure out how to get the %pin assignment to do what I want it to. | 21:35 | |
21:35
bdmatatu left
21:37
cpage_ joined
|
|||
lizmat | and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/10/23/...ds-racing/ | 21:37 | |
gfldex | that's the only advantage of wordpress | 21:38 | |
I get a 5 seconds warning on an incomming weekly. :) | |||
21:39
darkmorph left
|
|||
lizmat | hehe :-) | 21:39 | |
gfldex++ | |||
bazzaar | Perl6 Weekly ... a great start to the week! lizmat++ | 21:44 | |
21:45
wander left
|
|||
Herby_ | lizmatt++ | 21:53 | |
lizmat++ rather | 21:54 | ||
lizmat | Herbby++ | ||
:-) | |||
Herby_ | :3 | ||
21:54
evalable6 left,
evalable6 joined,
ChanServ sets mode: +v evalable6
|
|||
Herby_ | Question, which I'll preface by saying I know little about regex and less about grammars | 22:01 | |
are grammars useful if you don't know the order of the text you're parsing? | |||
for instance, if I have a string that could have: name date location language | 22:02 | ||
but those variables could be in any order, and can change string to string | |||
the order can change string to string | 22:03 | ||
ugexe | does [name | date | location | language] ** 5 suffice? | 22:05 | |
geekosaur | record = field+ #`{ plus code to make sure the required ones are present} ; field = namefield | datefield | ... | ||
very loosely | |||
Herby_ | hmm | 22:06 | |
ugexe | er ** 0..4 | 22:07 | |
22:10
ryn1x joined
22:11
callyalater left
22:13
bazzaar left
|
|||
Geth | modules.perl6.org: 93d02d138a | PunKeel++ | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/p20TravisCI.pm Use Travis' repositories API instead of the Builds API Loading should be faster (smaller page), and the build endpoints includes PRs from what I can tell. Related issue: #51 |
22:13 | |
modules.perl6.org: 00d721fc83 | (Zoffix Znet)++ (committed using GitHub Web editor) | lib/ModulesPerl6/DbBuilder/Dist/PostProcessor/p20TravisCI.pm Merge pull request #90 from PunKeel/pk-travis-api Use Travis' repositories API instead of the Builds API |
|||
modules.perl6.org: 330a881f0c | (Zoffix Znet)++ (committed using GitHub Web editor) | use-me-for-commit-triggers [REBUILD] it |
22:14 | ||
22:15
konsolebox left
22:16
wamba1 left
22:17
wamba joined
|
|||
El_Che | thx lizmat for th weekly! | 22:19 | |
22:25
troys is now known as troys_
|
|||
timotimo | "Easy things should be hard, hard things should be possible." i've got the feeling this might have been typo'd | 22:27 | |
geekosaur | or thinked | 22:28 | |
thinkoed | |||
22:43
ryn1x left
22:49
Herby__ joined
22:51
stanrifkin joined
|
|||
stanrifkin | Is there a online perl website to test code directly in the browser? | 22:52 | |
gfldex | glot.io | ||
stanrifkin | I didn't know that. Thank you. | 22:53 | |
22:53
bdmatatu joined
|
|||
Herby__ | didnt know that either | 22:54 | |
learn something new every day! | |||
22:54
Voldenet left
|
|||
Herby__ | m: say "foobar" ~~ /foo <?before bar>/; | 22:59 | |
camelia | 「foo」 | ||
22:59
Voldenet joined,
Voldenet left,
Voldenet joined
23:01
bitrauser joined
23:02
espadrine left,
bitrauser_ left
23:06
stanrifkin left
23:10
ryn1x joined,
mson left
23:12
bazzaar joined
23:13
cdg joined
|
|||
bazzaar | \o perl6 | 23:13 | |
Herby__ | o/ | 23:14 | |
23:16
cdg_ left
|
|||
bazzaar | Hi, I'm wondering if anyone sees the value of showing 'coding' tags on modules.perl6.org, in addition to (and seperate from) the 'utilisation/purpose' tags currently on the page | 23:17 | |
23:17
cdg left
23:18
Rawriful left
|
|||
bazzaar | coding tags could be automatically populated, and so wouldn't need input from the module authors | 23:21 | |
they could be based on the occurence of a limited number of keywords in the module code, which could be further reduced to a bag of code subjects (tags) | 23:24 | ||
so if I wanted to look for modules that employ grammars, or action objects, or asynchronous code, or given blocks, or *, then I could | 23:27 | ||
potentially the code subjects (tags) could be further expanded to detail the occurrence of their component list of keywords | 23:29 | ||
ugexe | the tags (code) doesn't mean anything until it has been parsed/ran | 23:32 | |
otherwise there is greppable6, our irc version of grep.metacpan.org, if you just want to grep source code | 23:33 | ||
23:36
bdmatatu left,
pilne joined,
raschipi joined
|
|||
bazzaar | I quess I'm just looking at this from a learning perl6 perspective, I might want to find different ways of writing action objects code, for example | 23:37 | |
It might be nice to be able to do that by using a tag interface to point me at the relevant modules | 23:39 | ||
raschipi | another online place to run perl6 is to message camelia here in this channel | 23:40 | |
geekosaur | or in /query or /msg | 23:41 | |
raschipi | yes, that's what I meant, /msg for message | 23:42 | |
bazzaar | the list of code subjects (primary tags), and component keywords (secondary tags upon which the tagging is based) needn't be large or too complicated | ||
23:43
margeas left
|
|||
geekosaur | I suspect it's more likely to happen if someone contributes code... | 23:44 | |
ugexe | since you can't parse perl6 code without running it i'm not sure a simple tag can convey much significance | 23:45 | |
23:47
R0b0t1_ left
|
|||
bazzaar | I realise that I'm just asking a question, and that doesn't necessarily move things along, sorry for that | 23:48 | |
23:49
R0b0t1_ joined
|
|||
bazzaar | maybe full parsing isn't necessary, just the occurrence? But yes a full parse solution would undoubtedly provide more utility if needed. | 23:52 | |
23:55
ryn1x left
|
|||
ugexe | well for instance you want to find other grammars. but i doubt you're interested in `my $grammar = ` and rather `grammar ...` | 23:55 | |
and consider how many ways you can write each of those | 23:56 | ||
i imagine something ok could be done but it'd probably be pretty gnarly | 23:57 |