»ö« 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:01
cdg__ left,
agentzh joined
00:03
cdg_ joined,
pyrimidine left
00:06
cdg left
00:09
Actualeyes left
00:11
Actualeyes joined
00:16
jdmmmmm left,
pyrimidine joined
|
|||
tony-o | hope that helps perlpilot ^^ | 00:18 | |
00:21
pyrimidine left
00:26
pmurias left,
cdg joined
00:27
benjibenji joined
00:29
cdg_ left
00:30
cdg left
|
|||
SmokeMachine | m: class C { has Int $.a = 42; has Str $.b where $!a }; say C.new: :b<42> # should it die with this error? | 00:32 | |
camelia | rakudo-moar f85978: OUTPUT«Cannot look up attributes in a VMNull type object in block <unit> at <tmp> line 1» | ||
SmokeMachine | m: class C { has Int $.a = 42; has Str $.b where $!a }; say C.new: :42b | ||
camelia | rakudo-moar f85978: OUTPUT«Type check failed in assignment to $!b; expected <anon> but got Int (42) in block <unit> at <tmp> line 1» | ||
SmokeMachine | m: class C { has Int $.a = 42; has Str $.b where $!a }; say C.new.a | 00:33 | |
camelia | rakudo-moar f85978: OUTPUT«42» | ||
00:33
Ven left
00:34
pyrimidine joined
00:35
pierrot joined
00:37
Ven joined
00:39
pyrimidine left
|
|||
SmokeMachine | m: class C { has Int $.a = 42; has Str $.b where $!a }; say C.new: :42a :42b | 00:47 | |
camelia | rakudo-moar f85978: OUTPUT«Type check failed in assignment to $!b; expected <anon> but got Int (42) in block <unit> at <tmp> line 1» | ||
SmokeMachine | m: class C { has Int $.a = 42; has Int $.b where $!a }; say C.new: :42a :42b | ||
camelia | rakudo-moar f85978: OUTPUT«Cannot look up attributes in a VMNull type object in block <unit> at <tmp> line 1» | ||
00:49
Ven left
00:51
Actualeyes left,
pyrimidine joined
|
|||
IOninja | m: class C { has Int $.a = 42; has Int $.b where { $_ == $!a } }; say C.new: :42a :42b | 00:52 | |
camelia | rakudo-moar f85978: OUTPUT«Cannot look up attributes in a VMNull type object in block <unit> at <tmp> line 1» | ||
IOninja | m: class C { has Int $.a = 42; has Int $.b where { $_ == $.a } }; say C.new: :42a :42b | ||
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Virtual method call $.a may not be used on partially constructed object (maybe you mean $!a for direct attribute access here?)at <tmp>:1------> 3 $.a = 42; has Int $.b where { $_ == $.a7⏏5 } }; sa…» | ||
IOninja | weird | ||
report it :) | 00:53 | ||
00:57
pyrimidine left,
Actualeyes joined
|
|||
SmokeMachine | :) | 00:57 | |
00:58
hartenfels left
01:00
pyrimidine joined
|
|||
japhb | . | 01:05 | |
yoleaux | 8 Feb 2017 13:37Z <[Coke]_> japhb: please update perl6-bench to use geth. | ||
japhb | [Coke], timotimo: done, and aimed it at perl6-dev instead | ||
tony-o | m: geth | 01:06 | |
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared routine: geth used at line 1. Did you mean 'get', 'getc'?» | ||
01:08
pierrot left
01:09
zakharyas joined
01:10
pierrot joined,
pyrimidi_ joined
01:11
jdmmmmm joined
01:15
pyrimidi_ left
01:26
lukiramu left
01:27
cyphase left
01:28
pyrimidi_ joined
|
|||
IOninja | heh | 01:29 | |
SmokeMachine: you got some sort of auto-replace on your email? All "camelia" references have been replaced with "Fernando Corrêa de Oliveira" | |||
01:29
khisanth_ joined
|
|||
IOninja | Oh wait no | 01:29 | |
it just shows that after your name I guess. | |||
01:32
cyphase joined
01:34
pyrimidi_ left
01:35
pyrimidi_ joined
01:40
pyrimidi_ left
|
|||
SmokeMachine | Yes, that's my name... I just coped and pasted from my irc client... was that broken? | 01:46 | |
01:46
pyrimidi_ joined
|
|||
IOninja | Nah, I just don't see that part on my end :) | 01:48 | |
SmokeMachine | IOninja: here it's something like this: | 01:51 | |
usercontent.irccloud-cdn.com/file/...G_1331.PNG | |||
01:51
pyrimidi_ left
|
|||
SmokeMachine | (But I coped from my browser, and this print is from my phone... but both from irccloud...) | 01:53 | |
(They are not paying me... :P) | |||
02:04
jeffythedragonsl joined,
pyrimidi_ joined
02:05
jeffythedragonsl left
02:06
drbojingle joined
02:11
jeffythedragonsl joined
02:12
pyrimidi_ left
02:13
DrForr joined
02:17
_28_ria left
02:20
_28_ria joined
02:22
pyrimidine left
02:23
pyrimidine joined
02:28
pyrimidine left
02:34
pierrot left
02:37
cdg joined,
jdmmmmm left
02:40
jdmmmmm joined,
pyrimidine joined
02:42
labster left
02:45
pyrimidine left
02:47
BenGoldberg joined,
ilbot3 joined,
ChanServ sets mode: +v ilbot3
02:48
drbojingle left
02:49
jeff_linahan joined
02:55
kalkin- joined
02:56
jeff__ joined,
jeff__ left,
jeff_linahan left,
jeffythedragonsl left,
pyrimidine joined
02:57
lep-delete left
02:58
dogbert11 joined,
user__ left,
pyrimidi_ joined
02:59
moritz left,
[particle]1 joined,
[particle] left
03:00
rblackwe joined
03:01
freeze joined,
moritz joined,
lep-delete joined,
jdmmmmm left
03:02
altLeCamarade left,
LeCamarade left
03:03
jdmmmmm joined
03:04
pyrimidi_ left,
altLeCamarade joined,
Hotkeys joined
03:05
LeCamarade joined
03:06
simcop2387 joined
03:12
jeek joined
03:17
pyrimidi_ joined
03:22
pyrimidi_ left
03:32
jdmmmmm left
03:35
pyrimidi_ joined,
pierrot joined
03:38
Herby_ joined
|
|||
Herby_ | o/ | 03:38 | |
03:40
cdg left,
pyrimidi_ left
|
|||
tony-o | yo | 03:40 | |
03:42
noganex_ joined
03:45
aborazmeh joined,
aborazmeh left,
aborazmeh joined
03:46
noganex left
|
|||
Herby_ | looking at this recent perl6 article: perltricks.com/article/6-more-things-about-6/ | 03:46 | |
in the "Easier Interpolation" section | |||
m: my @names = ['james', 'john', 'sal']; say "These are the @names[]"; | 03:47 | ||
camelia | rakudo-moar f85978: OUTPUT«These are the james john sal» | ||
Herby_ | m: my @names = ['james', 'john', 'sal']; say "These are the @names[1]"; | ||
camelia | rakudo-moar f85978: OUTPUT«These are the john» | ||
Herby_ | hmmm | ||
disregard | 03:48 | ||
must've mistyped something when i was poking through it | |||
03:49
map joined,
map left
03:53
pyrimidi_ joined
03:58
pyrimidi_ left
04:05
jdmmmmm joined
04:07
xtreak joined
04:09
llfourn left
04:10
pyrimidi_ joined
04:16
pyrimidi_ left
04:29
pyrimidi_ joined
04:33
pyrimidine left
04:34
pyrimidi_ left
04:38
_28_ria left,
Cabanoss- joined
04:39
_28_ria joined
04:42
Cabanossi left,
Cabanoss- is now known as Cabanossi
04:47
pyrimidine joined
04:51
LeCamara- joined,
pyrimidine left,
pyrimidine joined
04:57
pyrimidine left
05:00
xtreak left
05:01
xtreak joined
05:02
telex joined
05:06
pyrimidine joined
05:07
LeCamarade left
05:11
pyrimidine left
05:14
bwisti left
05:17
benjibenji left
05:21
wamba joined
05:23
pyrimidine joined
05:25
LeCamara- left,
LeCamarade joined
05:28
pyrimidine left
05:30
BenGoldberg left
05:32
aborazmeh left
05:35
xtreak left
05:38
xtreak joined
05:39
LeCamarade left,
LeCamarade joined
05:40
pyrimidine joined
05:41
bolangi joined,
jdmmmmm left
05:44
curan joined,
LeCamarade left
05:45
LeCamarade joined
05:46
pyrimidine left
05:49
LeCamarade left
05:50
LeCamarade joined
05:52
LeCamarade left
05:53
jeffythedragonsl joined
05:56
Herby_ left
05:58
jeffythedragonsl left,
pyrimidine joined
06:00
rurban joined,
rurban left,
erdic joined
06:01
khw left
06:03
LeCamarade joined
06:04
pyrimidine left
06:05
LeCamarade left,
LeCamarade joined
06:06
LeCamarade left
06:08
LeCamarade joined
06:10
dj_goku joined,
dj_goku left,
dj_goku joined
06:12
imcsk8_ joined,
imcsk8 left
06:16
pyrimidine joined
06:18
faraco joined
|
|||
faraco | m: say '@ARGS' | 06:19 | |
camelia | rakudo-moar f85978: OUTPUT«@ARGS» | ||
faraco | m: my $sum = -> $a, $b { a+b}; | 06:20 | |
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared routines: a used at line 1 b used at line 1» | ||
faraco | m: my $sum = -> $a, $b { $a+$b}; | ||
camelia | ( no output ) | ||
faraco | m: my $sum = -> $a, $b { $a+$b}; say $sum(2,2); | ||
camelia | rakudo-moar f85978: OUTPUT«4» | ||
06:21
pyrimidine left
06:22
xtreak left
|
|||
masak | m: sub sum($a, $b) { $a + $b }; say sum 2, 2 | 06:23 | |
camelia | rakudo-moar f85978: OUTPUT«4» | ||
06:23
wamba left
06:24
pyrimidine joined
|
|||
faraco | does the idiom one include parenthesis? | 06:24 | |
06:24
xtreak joined
|
|||
faraco | m: @object_op_my = Q{7.2 8.2 1.2}; | 06:25 | |
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '@object_op_my' is not declaredat <tmp>:1------> 3<BOL>7⏏5@object_op_my = Q{7.2 8.2 1.2};» | ||
faraco | m: my @object_op_my = Q{7.2 8.2 1.2}; | ||
camelia | ( no output ) | ||
faraco | m: my @object_op_my = Q{7.2 8.2 1.2}.map($_ + 0.7); | ||
camelia | rakudo-moar f85978: OUTPUT«Use of uninitialized value of type Any in numeric context in block <unit> at <tmp> line 1Cannot resolve caller map(Str: Rat); none of these signatures match: ($: Hash \h, *%_) (\SELF: █; :$label, :$item, *%_) (HyperIterable:D…» | ||
06:27
altLeCamarade left
06:29
zostay_ joined,
pyrimidine left
06:30
xtreak_ joined
06:32
lep_ joined,
rmusial_ joined
06:33
zostay left,
raiph left,
simcop2387 left,
lep-delete left,
gdonald left,
rmusial left,
xtreak left,
moritz left,
drrho left,
moritz joined
|
|||
faraco | m: say $^O | 06:33 | |
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unsupported use of $^O variable; in Perl 6 please use $?DISTRO.name or $*DISTRO.nameat <tmp>:1------> 3say $^O7⏏5<EOL>» | ||
06:33
zostay_ is now known as zostay
|
|||
faraco | m: say $?DISTRO.name | 06:33 | |
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '$?DISTRO' is not declared. Did you mean 'Distro'?at <tmp>:1------> 3say 7⏏5$?DISTRO.name» | ||
faraco | m: say $?DISTRO | ||
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Variable '$?DISTRO' is not declared. Did you mean 'Distro'?at <tmp>:1------> 3say 7⏏5$?DISTRO» | ||
06:33
simcop2387 joined
|
|||
masak | m: say Distro | 06:33 | |
camelia | rakudo-moar f85978: OUTPUT«(Distro)» | ||
faraco | m:say Distro.eager | ||
06:34
gdonald joined
|
|||
faraco | m: say Distro.eager | 06:34 | |
camelia | rakudo-moar f85978: OUTPUT«((Distro))» | ||
06:34
drrho joined
|
|||
masak | m: say $*DISTRO | 06:34 | |
camelia | rakudo-moar f85978: OUTPUT«opensuse (13.2.Harlequin)» | ||
06:34
kyan left,
john51 left
|
|||
masak | faraco: how did you think to try `Distro.eager`? :P | 06:34 | |
06:34
john51 joined
|
|||
masak | faraco: I *think* $?DISTRO should exist, too, but doesn't seem to yet. | 06:35 | |
faraco | m: ha, I forgot that environment variable is through $*ENV | ||
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared name: I used at line 1Undeclared routines: environment used at line 1 forgot used at line 1 ha used at line 1 is used at line 1 that used at line 1. Did you …» | ||
masak | I'm over here \o | 06:36 | |
faraco | masak: I just looked at the eager routine. | 06:37 | |
I thought it something that can print the value of that, well I realized it just return the object in list | |||
m: say (1..10).seq | 06:39 | ||
camelia | rakudo-moar f85978: OUTPUT«No such method 'seq' for invocant of type 'Range' in block <unit> at <tmp> line 1» | ||
faraco | m: say seq(1,10) | ||
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared routine: seq used at line 1. Did you mean 'set', 'sec'?» | ||
Geth | doc: antquinonez++ created pull request #1187: Did some extensive editing of the grammar tutorial. |
06:40 | |
faraco | m: say 1..Inf.is-lazy | ||
camelia | rakudo-moar f85978: OUTPUT«1..Bool::False» | ||
faraco | Did I do wrong with is-lazy? | 06:41 | |
Returns True if the sequence is lazy and potentially infinite, and False otherwise | |||
samcv | can i make .base work for base 1 numbers? | 06:44 | |
m: say 10.base(1) | |||
camelia | rakudo-moar f85978: OUTPUT«base argument to base out of range. Is: 1, should be in 2..36 in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
samcv | should say like 1111111111 | ||
06:51
RabidGravy joined
|
|||
moritz | faraco: precedence | 06:51 | |
m: say (1..Inf).is-lazy | |||
camelia | rakudo-moar f85978: OUTPUT«True» | ||
faraco | ah, dang. Thanks | 06:53 | |
06:54
CIAvash joined
|
|||
faraco | Is Task::Star deprecated, OO:Monitors not found on fresh install. | 06:58 | |
nevermind | 07:01 | ||
Seems, some of the bundled modules is not needed for me. | |||
m: say "Doctor".trim | 07:02 | ||
camelia | rakudo-moar f85978: OUTPUT«Doctor» | ||
faraco | m: say "Doctor" | ||
camelia | rakudo-moar f85978: OUTPUT«Doctor» | ||
masak | m: say " Doctor\t\t\t\t\t ".trim | 07:04 | |
camelia | rakudo-moar f85978: OUTPUT«Doctor» | ||
07:04
imcsk8_ left,
imcsk8 joined
07:05
xtreak_ left
|
|||
samcv | how do i search a string and find the first character which is NOT a specified character? | 07:06 | |
the fastest way | |||
07:07
travis-ci joined
|
|||
travis-ci | Doc build passed. Antonio Quinonez 'Merge branch 'master' of github.com/perl6/doc into grammars-pod' | 07:07 | |
travis-ci.org/antquinonez/doc/builds/199880754 github.com/antquinonez/doc/compare/grammar | |||
07:07
travis-ci left
|
|||
faraco | masak: you got me again. thank you | 07:07 | |
m: say "Doctor".first | |||
camelia | rakudo-moar f85978: OUTPUT«Doctor» | ||
faraco | so it's for list | 07:08 | |
moritz | correct | ||
faraco | my @List = Q{data omix m}.first.say | 07:09 | |
m: my @List = Q{data omix m}.first.say | |||
camelia | rakudo-moar f85978: OUTPUT«data omix m» | ||
07:09
xtreak joined
|
|||
faraco | wait what | 07:09 | |
m: my @List = Q{data omix m}; say @List.first | |||
camelia | rakudo-moar f85978: OUTPUT«data omix m» | ||
faraco | m: my @List = Q{data omix m}; say @List.split.first | 07:10 | |
camelia | rakudo-moar f85978: OUTPUT«Cannot resolve caller split(Str: ); none of these signatures match: (Str:D $: Regex:D $pat, $limit is copy = Inf;; :$v is copy, :$k, :$kv, :$p, :$skip-empty, *%_) (Str:D $: Cool $match;; :$v is copy, :$k, :$kv, :$p, :$skip-empty, *%_) (St…» | ||
07:14
darutoko joined,
andrzejku left
|
|||
faraco | m: say 'doctor'.titlecase | 07:15 | |
camelia | rakudo-moar f85978: OUTPUT«No such method 'titlecase' for invocant of type 'Str' in block <unit> at <tmp> line 1» | ||
faraco | m: say 'doctor'.tc | 07:16 | |
camelia | rakudo-moar f85978: OUTPUT«Doctor» | ||
faraco | m: say 'doctor'.tc - 1 | ||
camelia | rakudo-moar f85978: OUTPUT«Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5Doctor' (indicated by ⏏) in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
faraco | m: say 'doctor'.chars | 07:17 | |
camelia | rakudo-moar f85978: OUTPUT«6» | ||
faraco | say 'Doctor'.index | 07:18 | |
m: say 'Doctor'.index | |||
camelia | rakudo-moar f85978: OUTPUT«Cannot resolve caller index(Str: ); none of these signatures match: (Cool:D $: Cool $needle, *%_) (Cool:D $: Cool $needle, Cool $pos, *%_) (Str:D $: Str:D $needle, *%_) (Str:D $: Str:D $needle, Int:D $pos, *%_) in block <unit> a…» | ||
faraco | m: index("Doctor",'t').say | 07:19 | |
camelia | rakudo-moar f85978: OUTPUT«3» | ||
faraco | m: rindex("Doctor",'t').say | ||
camelia | rakudo-moar f85978: OUTPUT«3» | ||
samcv | ok well i'm going to add .base(1) and .parse-base(1), because why not | ||
it's trivial to support | |||
faraco | m: say 10.base(2) | 07:21 | |
camelia | rakudo-moar f85978: OUTPUT«1010» | ||
faraco | m: say 10.base(8) | ||
camelia | rakudo-moar f85978: OUTPUT«12» | ||
faraco | m: say 10.base(16) | 07:22 | |
camelia | rakudo-moar f85978: OUTPUT«A» | ||
faraco | m: say 90000.base(16) | ||
camelia | rakudo-moar f85978: OUTPUT«15F90» | ||
faraco | how does base 1 work? | ||
07:22
wamba joined
|
|||
samcv | 10.base(1) # 1111111111 | 07:23 | |
moritz | m: say 5.base(1) | ||
camelia | rakudo-moar f85978: OUTPUT«base argument to base out of range. Is: 1, should be in 2..36 in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
samcv | 1.base(1) # 1 | ||
faraco | oh...so 10000000 = x1 | ||
samcv | heh | ||
faraco | I mean, everything turned into 1 | ||
samcv | yeah basically | ||
and .parse-base i got it so that it returns the correct value, and also returns a parse error and tells you where the incorrect character is | 07:24 | ||
faraco | nice. Is this the thing we called lazy evaluation? Not really familiar with that term. | ||
samcv | like if you do "1110111".parse-base(1) it'll show you the error button at the 0 | ||
not really lazy | |||
m: my @array = lazy gather { take 1 for 0..* }; say @array[0] | 07:25 | ||
camelia | rakudo-moar f85978: OUTPUT«1» | ||
samcv | that is lazily taking the values. you can do whatever you want in a lazy gather block and it'll only compute up to how much it needs to | ||
faraco | sounds like map? | ||
samcv | i used it recently for parsing some of the unicode test files | ||
07:25
pyrimidine joined
|
|||
samcv | i guess in some ways idk | 07:26 | |
you can do a lot more code inside gather blocks | |||
it's way more flexible | |||
faraco | I really need to learn functional stuff in Perl 6, haha :D | ||
moritz really needs to write a chapter on functional stuff in Perl 6 | |||
samcv | so i have it slurp the lines of my file (not sure if slurp is lazy it may be) | ||
and then it lazily gathers lines | |||
moritz | lines is lazy, slurp is not | 07:27 | |
samcv | having to process like hex numbers into cp's and extract the comments and other info | ||
and put it into a lazy array full of pairs | |||
moritz | slurp returns a string, strings aren't lazy | ||
samcv | slurp.lines? | ||
lines is lazy | |||
moritz | $filehandle.lines | ||
faraco | docs.perl6.org/language/functions , this is the one that I think has the most functional stuff (I saw that Lambda). | 07:29 | |
07:30
pyrimidine left
|
|||
moritz | this teaches you how to write functions, not functional programming | 07:30 | |
samcv | but lazy gather helped so much cause the unicode file is like 100,000+ lines | 07:31 | |
maybe 300,000? | |||
more? | |||
idk it's 17MB tho | |||
moritz | so don't read it with slurp, read it with lines | ||
samcv | the slurping isn't the slow part | ||
it's processing it | 07:32 | ||
also how do i read it by line, curious | |||
timotimo | samcv: tbh, if you want to find the first non-1, i'd regexmatch against ^'1'+ and look at .end | ||
samcv | reading the file is plenty fast, but might as well make it lazy | ||
well i came up with something already | |||
timotimo | OK | ||
samcv | my int $i = 0; | ||
while $i++ < $chars { | |||
last unless nqp::eqat(self, '1', $i); | |||
} | |||
timotimo | that's fair | ||
samcv | then I use the $i for the error message | 07:33 | |
moritz | my $fh = open $thefile; for $fh.lines -> $line { ... } | ||
samcv | so it knows where the bad char is. this is the slow path btw | ||
faraco | so, in Perl 6, when you should use lines and slurp? | ||
samcv | i do `if self eq nqp::x('1', $chars)` | ||
and if that is true then it just returns the number of characters in the string | |||
masak | faraco: when something can be processed line-by-line, use .lines | ||
faraco: when you have to have the whole content at once,use .slurp | |||
samcv | IO::Path.lines then? | 07:34 | |
faraco | so, this means lines is much more flexible then, because it can operate on the line compared to slurp, that operate on the whole content? | ||
samcv | yeah | 07:35 | |
slurp.lines the lines part is lazy but not the slurp | |||
so the script starts a fraction of a second faster now | |||
faraco | ah :) | ||
samcv | i have an SSD so reading 17MB is pretty fast | ||
if i put the lazy gather in a start block... can i thread this? | |||
masak | faraco: also, it's possible you won't need to read all the lines. in that case .lines would also be faster | 07:36 | |
or at least potentially claim less memory | |||
samcv | cool nice, added a start block, and now it's threaded | 07:37 | |
timotimo | slurp grabs every last byte into memory, lines is allowed to drop earlier parts of the file again | ||
samcv | seems to be going much faster now | ||
idk maybe it's not faster i only see one MVM process in `htop` | 07:38 | ||
timotimo | actually it should keep its extra thread as soon as it encounters a single start block | ||
faraco | so like, for $fh.IO.lines -> ln { ..operate on data.. unless eol } | ||
timotimo | forget about "eol" | 07:39 | |
it just stops running the for loop when the file ends | |||
samcv | timotimo, huh? | ||
why am i not seeing two processes? | |||
faraco | or let's change eol to any line, let's say, the file has 100 lines, I want to read to 20. | ||
timotimo | maybe you can configure htop to not show threads | ||
then you'd use "last" | 07:40 | ||
samcv | top only shows one too | ||
faraco | oh, break | ||
timotimo | well, htop does have "hide userland process threads", but when top doesn't show a second one, that's probably authoratitive | ||
faraco | ..if (ln 20) { last; } | ||
or last if ln 20 | 07:41 | ||
samcv | yeah it doesn't seem to run any faster with a start block either | ||
oh well | |||
timotimo | you also have to use either $ln or \ln | ||
faraco | forgot the sigils :3 | ||
timotimo | .o( "forget about the sigil" - the goblin king ) | 07:42 | |
faraco | till today, I do not understand what does .o(BLAH) means? | ||
timotimo | thought bubbles | ||
like in a comic | 07:43 | ||
samcv | .oO(thinking intently) |
||
faraco | It's been a long time I didn't touch a comic | ||
samcv | u: speech bubble | ||
unicodable6 | samcv, U+1F5E8 LEFT SPEECH BUBBLE [So] (🗨) | ||
samcv, U+1F5E9 RIGHT SPEECH BUBBLE [So] (🗩) | |||
samcv, gist.github.com/f3e8b8f31a3e9b90b6...3903e09603 | |||
samcv | u: thought bubble | ||
unicodable6 | samcv, U+1F5EC LEFT THOUGHT BUBBLE [So] (🗬) | ||
samcv, U+1F5ED RIGHT THOUGHT BUBBLE [So] (🗭) | |||
timotimo | google image search should help | ||
samcv | 🗬 thinking intently 🗭 | ||
timotimo | doesn't display in my terminal ;( | 07:44 | |
samcv | get more fonts | ||
faraco | he | ||
samcv | just install noto-emoji and symbola | ||
and you should be mostly — set | |||
faraco | are you on fedora or something other than Debian | 07:45 | |
timotimo | i already had symbola installed, but not the noto emoji font | 07:46 | |
maybe this helps | |||
samcv | do you think a multi for .base(1) is gonna be faster than putting an if inside of the other multi? | ||
it already has some other multi's based on no of arguments | |||
timotimo | not entirely sure, measuring is always best anyway | 07:48 | |
faraco | m: $*DISTRO.say | ||
camelia | rakudo-moar f85978: OUTPUT«opensuse (13.2.Harlequin)» | ||
faraco | m: q:x{uname -r} | ||
camelia | rakudo-moar f85978: OUTPUT«qx, qqx is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting line 1 in sub QX at src/RESTRICTED.setting line 11 in block <unit> at <tmp> line 1» | ||
faraco | alrighty | 07:49 | |
timotimo | were you still confused about Q{a b c} not giving you a list? | ||
samcv | i think it would be hard to see a difference | ||
faraco | m: shell 'uname -r' | ||
camelia | rakudo-moar f85978: OUTPUT«shell is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting line 1 in sub shell at src/RESTRICTED.setting line 15 in block <unit> at <tmp> line 1» | ||
07:50
CIAvash left,
_28_ria left
|
|||
samcv | yeah no it doesn't seem to measurably slow it down | 07:50 | |
faraco | m: 0..20.eager.say | 07:52 | |
camelia | rakudo-moar f85978: OUTPUT«WARNINGS for <tmp>:Useless use of ".." in expression "0..20.eager.say" in sink context (line 1)(20)» | ||
faraco | m: (0..20).eager.say | ||
camelia | rakudo-moar f85978: OUTPUT«(0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20)» | ||
faraco | Yeah, finally! I'm beating you precedence. Face this wrath! | ||
moritz | faraco++ | 07:53 | |
07:53
zakharyas left
|
|||
timotimo | m: 0..20 .eager.say | 07:54 | |
camelia | rakudo-moar f85978: OUTPUT«WARNINGS for <tmp>:Useless use of ".." in expression "0..20 .eager." in sink context (line 1)(20)» | ||
timotimo | oh, interesting | ||
i thought that was a trick to get lower precedence on the method call? | |||
moritz | masak: I just learned there's a book called "How to Break Software". Had to think of you immediately :-) | ||
timotimo: it's lower precedence, but I don't know how much lower | 07:55 | ||
faraco | Anyone try to port the DCONWAY's Bleach Perl 5 module into Perl 6? | 07:56 | |
trying* | 07:57 | ||
samcv | hah | ||
because reasons? | |||
timotimo | yeah, we have that | ||
buggable: eco scrub | |||
buggable | timotimo, Acme::Scrub 'For REALLY clean code.': github.com/thundergnat/Acme-Scrub | ||
faraco | oh, different name? | 07:58 | |
hah, I'm gonna have fun | |||
timotimo | yeah, our first Dancer clone was also called Bailador | ||
rathen than just Dancer | |||
samcv | “ It is possible to recover the original code... but why would you want to?” | ||
fact | 07:59 | ||
timotimo | truth | ||
faraco | "because I want to learn how that works". | ||
samcv | how does that work | 08:00 | |
faraco | I don't know. | ||
moritz would love an Acme::Scrub that whitespace-encodes moarvm bytecode and executes that | |||
samcv | github.com/thundergnat/Acme-Scrub/.../Scrub.pm6 | ||
it's really short | |||
faraco | For real? | ||
oh man | |||
samcv | how does it work tho | ||
moritz | m: my @socks = ''.comb; say @socks.perl | 08:01 | |
camelia | rakudo-moar f85978: OUTPUT«["", ""]» | ||
samcv | what. | ||
moritz | m: my @socks = ''.comb; say @socks>>.uniname | ||
camelia | rakudo-moar f85978: OUTPUT«[ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE]» | ||
samcv | so | 08:02 | |
faraco | Running a hidden code. | ||
samcv | that would just make no spaces in your code | ||
timotimo | there's also Anguish, which is a brainfuck-oriented language with only non-printing unicode characters | ||
moritz | so it makes ZERO WIDTH NO-BREAK SPACE to 0 and ZERO WIDTH SPACE to 1 | ||
s/makes/maps/ | |||
samcv | lol | 08:03 | |
can't you just have a file of 1 and 0 and compile it to anguish | |||
moritz | and uses that to binary-encode a blob | ||
samcv | well it cleaned up my code | 08:04 | |
and i don't see the original characters inside the hexdump | |||
timotimo | anguish encodes instructions, not whole values | ||
samcv | so | ||
08:04
cibs left
|
|||
timotimo | though you can create a program that outputs any given sequence | 08:04 | |
just like brainfuck hello world works | 08:05 | ||
faraco | For sure, if Acme::Scrub function as Bleach, than I praise the Perl 6 to bring a lot of sugars to make the code super compact and readable. | ||
samcv | lol. | ||
how does it work if the original characters are not in the output? | |||
if i hexdump it | |||
do i need to utf-8 dump it | |||
timotimo | maybe scrub is currently broken? | 08:06 | |
08:06
cibs joined
|
|||
faraco | oh noo, I'm trying to install it | 08:06 | |
samcv | no it works fine | ||
it filled my code with no width spaces | |||
SEMICOLON SPACE NUMBER SIGN ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO | 08:07 | ||
WIDTH SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH SPACE ZERO WIDTH SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WIDTH NO-BREAK SPACE ZERO WI | |||
oh no i see some letters here | |||
at the very end | |||
nope it just says for really clean code | |||
so howwwwwwwwww | |||
what method does perl 6 allow for this | |||
faraco | ew..it actually obsfucate the code | 08:08 | |
samcv | more secure | ||
faraco | It's just for fun though, so I don't think most Acme::Modules can be taken seriously. | ||
but some of them really useful to me. | |||
samcv | oh faraco acme scrub just evals it :) | 08:12 | |
faraco | :'((((((( | ||
samcv | they take the no break spaces and then decode it and then eval | ||
shame on them for using a base 2 system | |||
there's more zero width chars i think? | |||
u: zero width | |||
unicodable6 | samcv, U+200B ZERO WIDTH SPACE [Cf] () | ||
samcv, U+200C ZERO WIDTH NON-JOINER [Cf] () | |||
samcv | see | ||
unicodable6 | samcv, gist.github.com/1aabbd1256a001725f...9f8e3d5747 | ||
samcv | should have used a base4 system | ||
and would be able to be way smaller | |||
moritz | submit a pull request! | 08:13 | |
samcv | :\ | ||
moritz | or write your own Acme module | ||
samcv | making the world a better place | ||
moritz | I hear it's a rite of passage among Perl developers :-) | ||
faraco | There is more than one module to use. | ||
moritz | though I've only written a p5 Acme module so far | 08:14 | |
08:14
_28_ria joined
|
|||
faraco | that takes me a day to choose either Dancer2 or Mojo to test micro framework | 08:14 | |
moritz | search.cpan.org/~moritz/Acme-Curse-...e/Curse.pm | ||
samcv | i want one that bleaches all your files | ||
on your whole computer | |||
faraco | What Acme::Burn will be? hmm? | ||
samcv | delete | 08:15 | |
EVERYTHING | |||
well replace everything with fire emoji | |||
fire emoji and zero width characters | |||
moritz | +1 | ||
samcv | heh | ||
making the world a better place dammit! | 08:16 | ||
08:16
xtreak left
|
|||
timotimo | imagine a crypto trojan that gives files that treatment | 08:16 | |
people would be so confused | |||
08:19
xtreak joined
|
|||
samcv | heh | 08:19 | |
moritz | ransomware | 08:20 | |
you have to pet camelia to get it decrypted! | |||
faraco | Camelia has the sixth sense. | 08:21 | |
m: say "200B".base(100 | 08:25 | ||
camelia | rakudo-moar f85978: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Unable to parse expression in argument list; couldn't find final ')' at <tmp>:1------> 3say "200B".base(1007⏏5<EOL>» | ||
faraco | m: say "200B".base(10) | ||
camelia | rakudo-moar f85978: OUTPUT«No such method 'base' for invocant of type 'Str' in block <unit> at <tmp> line 1» | ||
faraco | m: say "200B".ord | 08:26 | |
camelia | rakudo-moar f85978: OUTPUT«50» | ||
faraco | m: say "200B".char | ||
camelia | rakudo-moar f85978: OUTPUT«No such method 'char' for invocant of type 'Str' in block <unit> at <tmp> line 1» | ||
faraco | m: say "200B".chr | ||
camelia | rakudo-moar f85978: OUTPUT«Cannot convert string to number: trailing characters after number in '03200⏏5B' (indicated by ⏏) in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
08:27
pyrimidine joined
08:28
abraxxa joined
|
|||
faraco | m: say "9,2,8,10".comb(/\d+/).join(':'); | 08:29 | |
camelia | rakudo-moar f85978: OUTPUT«9:2:8:10» | ||
timotimo | m: say "0x200B".chr | ||
camelia | rakudo-moar f85978: OUTPUT«» | ||
faraco | m: say "9,2,8,10".comb(/\./).join(':'); | 08:30 | |
camelia | rakudo-moar f85978: OUTPUT«» | ||
faraco | m: say "9,2,8,10".comb(/\.*/).join(':'); | ||
camelia | rakudo-moar f85978: OUTPUT«::::::::» | ||
faraco | m: say "9,2,8,10".comb(/.*/).join(':'); | ||
camelia | rakudo-moar f85978: OUTPUT«9,2,8,10:» | ||
08:31
xtreak left
08:32
pyrimidine left
|
|||
faraco | m: say so if "Datac".contains 'c'; | 08:33 | |
camelia | rakudo-moar 295b0b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Two terms in a rowat <tmp>:1------> 3say so if "Datac".contains7⏏5 'c'; expecting any of: infix infix stopper postfix statement end stateme…» | ||
08:33
robertle joined
|
|||
faraco | m: say so if "Datac".contains('c'); | 08:33 | |
camelia | rakudo-moar 295b0b: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Undeclared routine: if used at line 1» | ||
faraco | m: say so "Datac".contains('c'); | ||
camelia | rakudo-moar 295b0b: OUTPUT«True» | ||
08:33
xtreak joined
|
|||
faraco | m: $*PID | 08:34 | |
camelia | ( no output ) | ||
faraco | m: $*PID.say | ||
camelia | rakudo-moar 295b0b: OUTPUT«15753» | ||
faraco | m: say $*KERNEL; | 08:36 | |
camelia | rakudo-moar 295b0b: OUTPUT«linux (3.16.7.42.default)» | ||
faraco | m: say $*PERL; | ||
camelia | rakudo-moar 295b0b: OUTPUT«Perl 6 (6.c)» | ||
timotimo | do you know you can private-message camelia, too? | ||
faraco | oh | ||
ty | 08:37 | ||
timotimo | NP :) | 08:38 | |
08:40
ufobat joined
|
|||
faraco | A question, why Perl 6 not enabling the my by default? | 08:42 | |
08:43
wamba left
|
|||
DrForr | Because that leads immediately to people typoing variable names and spending hours trying to find a spelling mistake, much like what happens to lots of people in Perl 5. | 08:44 | |
timotimo | one of the most requested things for perl6 was to make "use strict" the default, which also means "you always have to put 'my'" | 08:46 | |
08:46
labster joined,
dakkar joined
|
|||
faraco | hmm I see, thank you. | 08:47 | |
timotimo | you can "no strict", though | ||
then it'll give undeclared variables "our" by default | |||
but i have to warn you, it'll be extremely slow | 08:49 | ||
08:49
pyrimidine joined
|
|||
DrForr | Speaking of which I didn't get a single question about performance during the talk, at least that I can remember :) | 08:50 | |
timotimo | clearly people haven't tried perl6 out hard enough | 08:51 | |
08:51
xtreak left
|
|||
DrForr | Gotta start somewhere :) | 08:51 | |
faraco | so, is Perl 6 fast? :P | 08:52 | |
08:52
pyrimidi_ joined,
pyrimidine left
|
|||
DrForr | Yes, for several values of 'fast' :) | 08:52 | |
timotimo | the bad thing is that the difference between similar pieces of code can be quite extreme | ||
so it's hard to figure out performance | |||
OTOH, it means that little changes can get you 100x improvements in performance sometimes | 08:53 | ||
08:53
thdr|2 left
08:54
rindolf joined
08:57
pyrimidi_ left
09:01
faraco left
09:08
jonas1 joined
|
|||
timotimo | if someone who's good at both perl5 and perl6 could come up with a nice suite of regexes for multiple tasks, that'd be nice | 09:10 | |
like, a benchmark suite of sorts | |||
also, multiple implementations from p5 and p6 for each task | |||
TEttinger | I'd be curious to see the results. P6's grammars seem much more powerful | 09:12 | |
not sure if you'd test the composable grammars or just the part that's directly comparable | |||
timotimo | this would purely be for regex performance | 09:13 | |
so you don't do any grammars at all, unless a perl5 regex is better implemented as a grammar in p6 | 09:14 | ||
but even then there ought to also be a somewhat-1:1 translatino | |||
basically i'm imagining having a list of bar charts for each of the tasks that shows how each variant performs, and then having them sorted by speed | |||
it'd obviously have to go over a rather big piece of data, and perl6 and perl5 startup time has to be subtracted | 09:15 | ||
09:15
itcharlie1 joined
|
|||
timotimo | because startup time is so punishing for perl6, and it'd probably be more suited for long-running programs anyway | 09:17 | |
TEttinger | "count how many dicks are in moby dick" | 09:18 | |
timotimo | also, there ought to be a script to set up all the data sources | ||
09:36
TEttinger left
09:39
robertle left
|
|||
samcv | think it's so odd that this works: | 09:46 | |
m: my $r = ((1,)..'a'); say $r[2] | |||
camelia | rakudo-moar a21d2f: OUTPUT«3» | ||
samcv | m: my $r = ((1,)..'a'); say $r[*] | ||
lol ok that's gonna time out | |||
m: my $r = ((1,)..'a'); say $r.tail | |||
camelia | rakudo-moar a21d2f: OUTPUT«(timeout)» | 09:47 | |
samcv | m: my $var = 'a'..1; say $var.head | ||
camelia | rakudo-moar a21d2f: OUTPUT«Nil» | ||
09:48
z448 joined,
sena_kun joined,
z448 left
09:50
ocbtec joined
09:51
xtreak joined
09:53
bjz joined
09:55
pyrimidine joined
|
|||
timotimo | .tell jnthn you're generating benchmark plots from perl6-bench version ea2a4d0, but there's been 7 commits since then; you committed to perl6-bench for that exact commit; maybe your "origin" is your own fork or something? | 09:58 | |
yoleaux | timotimo: I'll pass your message to jnthn. | ||
09:59
pyrimidine left
|
|||
jnthn | timotimo: Manually done a pull now so it's up to date again, at least | 10:04 | |
yoleaux | 09:58Z <timotimo> jnthn: you're generating benchmark plots from perl6-bench version ea2a4d0, but there's been 7 commits since then; you committed to perl6-bench for that exact commit; maybe your "origin" is your own fork or something? | ||
10:08
pochi joined,
bjz left
10:24
literal_ is now known as literal
10:29
bjz joined
10:31
cgfbee left
10:51
abraxxa left,
pyrimidine joined
10:52
pyrimidi_ joined,
pyrimidine left
10:56
user9 joined
10:57
pyrimidi_ left
11:06
espadrine joined,
abraxxa joined
11:24
labster left
|
|||
jnthn | .tell tony-o Double-close crash and various other operation-on-closed-socket issues are now sorted out (hopefully!) and test covered :) | 11:36 | |
yoleaux | jnthn: I'll pass your message to tony-o. | ||
samcv | huggable, hug me | 11:46 | |
huggable hugs samcv | |||
samcv | huggable, hug huggable | ||
huggable hugs huggable | |||
samcv | huggable, help | 11:47 | |
huggable | samcv, nothing found | ||
samcv | lol. | ||
11:48
xtreak left
|
|||
IOninja | uhoh... Canada under attack from USA... | 11:48 | |
They plan to send us Sara Palin! | |||
huggable: source | 11:49 | ||
huggable | IOninja, See github.com/zoffixznet/huggable | ||
11:51
xtreak joined,
ufobat left,
pyrimidine joined
|
|||
DrForr | Most of us don't want her :) | 11:54 | |
IOninja | We'll retaliate by sending you another Justin Beiber ;) | 11:56 | |
11:56
pyrimidine left
|
|||
DrForr | o/' Celine Dion, you soft rock my world o/' | 11:56 | |
samcv | IOninja, some people would not be unhappy with that | 12:01 | |
12:05
bjz_ joined
12:06
wamba joined
12:07
bjz left
|
|||
IOninja | You're right. Need to up the ante. A Justin Beiber singing "My Heart Will Go On" but to the music of "Complicated", and when he gets older he'll run for president claiming he didn't know he had Canadian citizenship ;) | 12:09 | |
12:10
Sound joined
|
|||
samcv | IOninja, might as well just say you will retaliate by taking back Justin Bieber lol | 12:11 | |
12:12
sufrostico joined,
xtreak left
12:14
xtreak joined,
thdr|2 joined
12:15
cognominal joined
12:16
xtreak left
12:17
xtreak joined,
yqt joined
12:23
Technaton joined
12:24
eroux joined
12:27
xtreak left,
xtreak joined
|
|||
moritz | IOninja tries to hit *everyone* | 12:28 | |
masak .oO( ...and that's how you create a pop hit ) | 12:29 | ||
12:33
xtreak left
12:34
xtreak joined
12:44
Actualeyes left
12:45
abraxxa left
12:47
pyrimidine joined
12:49
geekosaur left
12:50
geekosaur joined
12:52
pyrimidine left
12:53
pyrimidine joined
12:58
pyrimidine left
13:00
lukaramu joined,
xtreak left,
xtreak joined
13:04
Sound left
13:10
zakharyas joined
13:15
xtreak left
13:16
xtreak joined
13:17
hchienjo joined
13:21
hchienjo left,
xtreak left
13:23
abraxxa joined
13:27
wamba left,
itaipu joined
13:28
xtreak joined,
xtreak left
13:29
Sound joined
13:30
lukiramu joined
13:31
wamba joined
13:33
lukaramu left
13:38
bjz joined
13:40
bjz_ left
13:54
llfourn joined,
pyrimidine joined
13:56
llfourn left
13:57
llfourn joined
13:59
pyrimidine left
14:01
llfourn left,
llfourn joined
14:04
llfourn left
14:06
llfourn joined
14:07
bjz left
14:29
bwisti joined
14:37
zakharyas left
|
|||
tony-o | timotimo: jnthn: can either of you verify i can commit to perl6 org's git? | 14:39 | |
yoleaux | 11:36Z <jnthn> tony-o: Double-close crash and various other operation-on-closed-socket issues are now sorted out (hopefully!) and test covered :) | ||
tony-o | .tell jnthn you rock! thank you | 14:40 | |
yoleaux | tony-o: I'll pass your message to jnthn. | ||
IOninja | I can. What's your username? | ||
tony-o | tony-o | ||
IOninja | Yup. says already a member of `perl6` team and that one has commit perms to most of repos | 14:41 | |
tony-o | cool, thank you IOninja | 14:42 | |
.tell jnthn that seems to have done the trick, thank you! | 14:46 | ||
yoleaux | tony-o: I'll pass your message to jnthn. | ||
14:47
itaipu left
|
|||
moritz | tony-o: what's your github username? | 14:49 | |
ah, seems IOninja was faster | |||
IOninja | They don't call me a ninja for nothing! | 14:50 | |
tony-o | why do they call you IO ? | ||
IOninja | Because I'm doing the IO grant for TPF :P | 14:51 | |
tony-o | nice | 14:52 | |
14:52
Actualeyes joined
|
|||
moritz thought IOninja was a ninja from the moon IO | 14:52 | ||
tony-o | so i'm going to move HTTP::Server::Async into the perl6 namespace so it has more oversight than just me, is there any opposition to that ? | 14:53 | |
jeek | I keep thinking IOError, who is a completely different person. (Presumably) | ||
14:53
sufrostico left
|
|||
moritz | tony-o: not from me, run with it! | 14:53 | |
14:53
itaipu joined
|
|||
tony-o | cool | 14:54 | |
is there other modules that i should consider tossing into that namespace? | |||
modules.zef.pm/profile/github:tony-o - here is a list of what i have out there | 14:55 | ||
14:55
sufrostico joined
14:56
pyrimidine joined
14:58
gdonald left,
gdonald joined
|
|||
tony-o | does it make sense to move HTTP::Server in there? it's a Role | 14:58 | |
and H:S:A does it. | |||
15:00
sufrostico left
15:01
pyrimidine left
15:11
itaipu left
15:15
kaare_ joined,
kaare__ left
15:18
curan left
15:22
xtreak joined,
smls joined
|
|||
smls | Is it safe to use bisectable with an expression that hangs indefinitely on some Rakudo versions? | 15:24 | |
15:24
kalkin- left
|
|||
IOninja | smls: yes | 15:25 | |
smls | ok | ||
bisectable6: say <a b c d e f>.rotor: 1...*; | |||
bisectable6 | smls, Bisecting by exit signal (old=2015.12 new=1615c83). Old exit signal: 1 (SIGHUP) | ||
IOninja | hm, I guess "yes" is not entirely accurate :) It *does* have a timeout, but the way it's currently made is bisecting prevents it from responding to server pings, so it can get nixed | 15:26 | |
bisectable6 | smls, bisect log: gist.github.com/6777a66da829788b9e...e4e7782bf7 | 15:27 | |
smls, (2017-01-17) github.com/rakudo/rakudo/commit/d7...6f67efd5fe | |||
IOninja | woo | ||
m: say <a b c d e f>.rotor: 1...*; | |||
camelia | rakudo-moar 1615c8: OUTPUT«((a) (b c) (d e f))» | ||
IOninja | looks right | ||
mc: say <a b c d e f>.rotor: 1...*; | |||
smls | nice, a performance improvement by lizmat++ that accidentally fixed a bug too | 15:28 | |
committable6 | IOninja, ¦«2015.12»: «timed out after 10 seconds, output»: «exit signal = SIGHUP (1)» | ||
IOninja | \o/ | ||
jnthn | Quick, add a test. ;) | ||
yoleaux | 14:40Z <tony-o> jnthn: you rock! thank you | ||
14:46Z <tony-o> jnthn: that seems to have done the trick, thank you! | |||
jnthn | \o/ | ||
smls | IOninja: It's #129175 | ||
synopsebot6 | Link: rt.perl.org/rt3//Public/Bug/Displa...?id=129175 | ||
jnthn | tony-o: yay :) | ||
smls | I'm cechking up some on some of my older RT tickets | ||
IOninja | m: -> *@a { @a.is-lazy.say }(1…∞) | ||
camelia | rakudo-moar 1615c8: OUTPUT«True» | ||
IOninja | bisect: -> *@a { @a.is-lazy.say }(1…∞) | ||
bisectable6 | IOninja, Bisecting by exit signal (old=2015.12 new=1615c83). Old exit signal: 1 (SIGHUP) | 15:29 | |
IOninja | -> **@a { @a.is-lazy.say }(1…∞) | ||
m: -> **@a { @a.is-lazy.say }(1…∞) | |||
camelia | rakudo-moar 1615c8: OUTPUT«False» | ||
IOninja | m: -> +@a { @a.is-lazy.say }(1…∞) | ||
camelia | rakudo-moar 1615c8: OUTPUT«True» | ||
IOninja | jnthn: ^ should that say True for **@ slurpy too? | ||
Oh | 15:30 | ||
bisectable6 | IOninja, bisect log: gist.github.com/2b7b879406e3e849e2...96ada96552 | ||
IOninja, (2017-02-07) github.com/rakudo/rakudo/commit/51...31029fa1f0 | |||
IOninja | m: -> +@a { @a.elems.say }(1…∞) | ||
camelia | rakudo-moar 1615c8: OUTPUT«Cannot .elems a lazy list in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
IOninja | m: -> **@a { @a.elems.say }(1…∞) | ||
camelia | rakudo-moar 1615c8: OUTPUT«1» | ||
IOninja | it ends up with the list as first arg | ||
well, Seq | 15:31 | ||
jnthn | Yeah, which is what **@foo is meant to do | ||
15:31
itaipu joined
|
|||
jnthn | So I don't think it really would make sense | 15:31 | |
IOninja | I misunderstood what it does | ||
jnthn | *nod* | ||
It's a reasonable question to ask about *@foo though | |||
IOninja | But that kinda introduces inconsystency | ||
jnthn | How so? | 15:32 | |
IOninja | m: (1…∞).flat.say; say flat 1…∞ | ||
camelia | rakudo-moar 1615c8: OUTPUT«(...)(1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 8…» | ||
IOninja | I mean in here ^ | ||
m: (1…∞).flat.is-lazy.say; say (flat 1…∞).is-lazy | |||
camelia | rakudo-moar 1615c8: OUTPUT«TrueFalse» | ||
IOninja | because sub flat uses **@ | ||
I guess not "that instroduces" but there is this inconsistency in flat() | 15:33 | ||
jnthn | Yeah, I think **@ is doing the right thing, and we might want to question flat | ||
15:37
bwisti left
15:38
cdg joined
15:40
xtreak left
|
|||
tony-o | and just like that, a star is born - github.com/perl6/perl6-http-server-async | 15:44 | |
15:44
Tonik joined
15:46
khw joined
15:49
pyrimidine joined
|
|||
tony-o | jnthn: did you see or know of a way to check if the socket is closed or closing? | 15:55 | |
15:55
abraxxa left
|
|||
IOninja | m: say -5 % -2 | 15:55 | |
camelia | rakudo-moar 1615c8: OUTPUT«-1» | ||
IOninja | What does it mean that remainder is negative? | ||
m: say -5 div -2 | 15:56 | ||
camelia | rakudo-moar 1615c8: OUTPUT«2» | ||
IOninja | m: say -5 - (-2*2) | ||
camelia | rakudo-moar 1615c8: OUTPUT«-1» | ||
IOninja | Ah, ok | ||
15:59
jdmmmmm joined
|
|||
jnthn | tony-o: Well, I saw how to ask libuv, 'cus that's what the fix I did today uses. There's not a way to do it from Perl 6 space; only tracking if the Supply of incoming data fired its done event can reliably do that at the moment. | 15:59 | |
15:59
wamba left
|
|||
jnthn | tony-o: Thing is, to ask we need to marshall the operation over to the eventloop thread from whatever we're on when asking | 16:00 | |
So it ends up being an async operation to ask | |||
16:00
eroux left
|
|||
jnthn | Trying to write zero bytes and seeing if that fails is another way | 16:00 | |
(And will end up being as cheap as actually asking. In fact, if you wanted a method for "is it closed" today, I'd probably just implement the method in terms of a zero-byte write. :) | 16:02 | ||
tony-o | interesting - that'll save me from what i'm doing right now :-) | 16:05 | |
16:09
cdg_ joined
|
|||
ilmari | the behaviour of writing zero bytes to a non-regular file is explicitly unspecified by POSIX | 16:09 | |
and even for regular files it is permitted to just return zero with no error detection | 16:10 | ||
16:12
cdg left,
telex left
16:13
telex joined
16:24
ilogger2 joined,
ChanServ sets mode: +v ilogger2
16:26
chuli joined
|
|||
tony-o | jnthn: that did the trick eh, no more force closings on calling .close | 16:28 | |
16:28
chuli left
16:36
smls joined
|
|||
Geth | ecosystem: 497bdcadb6 | (Tony O'Dell)++ | META.list Update H:S:A and H:S entries to reflect becoming a part of git:perl6 |
16:36 | |
16:44
cdg joined
16:46
smls left,
smls joined
16:47
smls left
16:48
nicq20 joined
|
|||
nicq20 | tony-o: Hello! Just got your message over Github. I grabbed the repo with Git and it seems to work (zef still only finds 0.1.3). I'll try messing with it more. | 16:50 | |
16:52
kaare__ joined
17:09
cpage joined
17:10
wamba joined
17:11
cpage_ joined,
nicq20 left
17:23
mrdside joined
|
|||
mrdside | hi! | 17:23 | |
17:23
itaipu joined
|
|||
mrdside | Dynamic variable $*ARGS not found | 17:24 | |
moritz | quick, go looking for it! | 17:25 | |
Geth | specs: 2c8786a52e | (Zoffix Znet)++ | v6d.pod Add 6.d for IEEE num division Use IEEE 754-2008 semantics for num/Num infix:</>, infix:<%>, and infix:<%%> |
||
perlpilot | mrdside: good point. It's LTA that it doesn't say "...did you mean @*ARGS?" | ||
ugexe | they took our $*ARGS | ||
yoleaux | 7 Feb 2017 21:13Z <IOninja> ugexe: what's the url of zef's package list (or does it use same as panda)? how often does it get updated? | ||
IOninja | mrdside: it's @*ARGS | ||
moritz | perlpilot: I don't even know if we can get a list of all dynamic variables in scope | 17:26 | |
m: say DYNAMIC::.keys | |||
camelia | rakudo-moar 1615c8: OUTPUT«($=pod !UNIT_MARKER EXPORT $_ $! ::?PACKAGE GLOBALish $¢ $=finish $/ $?PACKAGE)» | ||
moritz | m: say GLOBAL::.keys | ||
camelia | rakudo-moar 1615c8: OUTPUT«()» | ||
moritz | neither of those lists @*ARGS, so I wouldn't even know where to find the list of possible dynamic variables | ||
perlpilot | surely there's a way | ||
maybe I just expect too much from Perl these days (I've been spoiled by awesomeness :-) | 17:27 | ||
moritz | I'm not saying it can't be done, just that I don't know if it can be done | 17:29 | |
perlpilot | Yeah, I just kind of assumed it could. | ||
timotimo | worst case we write a moarvm op that gives you a list of all dynamic variable names | 17:30 | |
otherwise you can probably go via callframe already? | 17:31 | ||
m: my $*foobar; say callframe(0).^methods | 17:32 | ||
camelia | rakudo-moar 1615c8: OUTPUT«(new line file code callframe gist level annotations my)» | ||
timotimo | m: my $*foobar; say callframe(0).callframe.^methods | ||
camelia | rakudo-moar 1615c8: OUTPUT«Callframe.callframe not yet implemented. Sorry.  in block <unit> at <tmp> line 1» | ||
timotimo | huh | ||
m: my $*foobar; say callframe(0).^methods(:all) | |||
camelia | rakudo-moar 1615c8: OUTPUT«(new line file code callframe gist level annotations my iterator Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new Method+{<anon|67959904>}.new ACCEPTS Method+{<…» | ||
ugexe | the comedy option could be something like my @dynamic = grep { try $*$_ } permutations(permutations(A..Z) xx 10) | ||
timotimo | :D | ||
why only up to 10? | |||
also, there can also be other letters in there | |||
a big portion of unicode :) | |||
mrdside | I have array of hashes. When iterate my array i compare $people<id> == @data[3]. Both values of Str, but get error "Cannot convert string to number: trailing characters after number in '3231271⏏В012РВ5' (indicated by ⏏)" | 17:33 | |
timotimo | mrdside: if you want to numify a string, it has to end where the number ends | ||
i suggest using .words on that string | |||
or perhaps $people<id> is already a list anyway? | |||
IOninja | list? | ||
mrdside | i need @data[3] as word | 17:34 | |
as string | |||
IOninja | mrdside: strings are compared with `eq` operator | ||
mrdside | thx | ||
timotimo | ooooh | ||
ugexe | it looks like he has a key/value mashed together | ||
timotimo | i thought you wanted the number because that id starts with a number :) | ||
tony-o | .tell nicq20 you may have to do zef update - | ||
yoleaux | tony-o: I'll pass your message to nicq20. | ||
mrdside | red, but perl6 have so mane operarors )) | ||
IOninja | mrdside: I think you can use ~~ smartmatch operators in many cases where you're unsure :) | ||
m: say 'x' ~~ 42 | 17:35 | ||
camelia | rakudo-moar 1615c8: OUTPUT«False» | ||
timotimo | tony-o: btw, what's the todo list for H::S::A look like? there's been yet more stability improvements in rakudo in the recent months and i hvaen't tested the module in a long time | ||
(doesn't help that i don't have an actual project) | |||
17:36
eroux joined
|
|||
mrdside | "if $cr-month<month> == %month<month> { $cr-month<no1> += %month<no1>; ... }" got an error "Type Array does not support associative indexing." | 17:36 | |
perlpilot | mrdside: $cr-month is not a hash, but an array then | 17:37 | |
mrdside | if $cr-month<month> == %month<month> | ||
it's a hash (an array element) | |||
IOninja | mrdside: what's $cr-month? | 17:38 | |
perlpilot | mrdside: sure ... prove it :-) | ||
mrdside | for %person<credited> -> $cr-month { | ||
perlpilot | mrdside: could you put the whole code on a gist? | ||
mrdside | credited => [] | ||
ok. how? | |||
IOninja | mrdside: copy paste it here: gist.github.com/ | 17:39 | |
perlpilot | go to gist.github.com and paste the code in | ||
IOninja | Click button. Give us URL | ||
17:39
aindilis joined
|
|||
timotimo | lick button. receive bacon. | 17:39 | |
perlpilot | mrdside: were you in DrForr's class at FOSDEM? | 17:40 | |
mrdside | gist.github.com/mrDSide/8fefd834ef...4f1a22d7d7 | ||
IOninja | must.... resist... urge.... | 17:41 | |
m: my %h; %h<foo bar ber bor> = "FOO=BAR=BER=BOR".split: "="; dd %h | 17:42 | ||
camelia | rakudo-moar 1615c8: OUTPUT«Hash %h = {:bar("BAR"), :ber("BER"), :bor("BOR"), :foo("FOO")}» | ||
IOninja | mrdside: ^ you can split directly into a hash slice instead of doing that stuff with @data and indexes that make the code pretty unreadable and error prone | 17:43 | |
17:43
sufrostico joined,
juan__ joined
|
|||
IOninja | mrdside: what's in result.txt? | 17:44 | |
mrdside | IOninja: i need sum data | ||
IOninja | mrdside: or rather what's the input data? | 17:45 | |
mrdside | IOninja: it will be resulting file | ||
IOninja | Like to run it | ||
timotimo | the question is what is the file you put on the commandline | ||
look closely, zoffix, it uses $fh from args, and $fh-result is result.txt | 17:46 | ||
mrdside | <ПУ-3=И=111111111=1111111B006PB6=SAD=dsf=df=01= = =4228,75=0=42,29=1184,05=253,72=42,29=1437,77=12=2=07/02/2017= =2016=adsfasdf, asdfasdf= | ||
НЧСЛ=1=0=0=0=0=0=0=0=1=28=6= = | |||
... | |||
СТАЖ=01/07/2016=11/10/2016= =ВЗНОСЫВРЕМ= = = | |||
next of "<ПУ-3=И=111111111=1111111B006PB6=SAD=dsf=df=01= = =4228,75=0=42,29=1184,05=253,72=42,29=1437,77=12=2=07/02/2017= =2016=adsfasdf, asdfasdf=" | |||
IOninja | mrdside: this confusing. Can you paste it into the pastebin like with the code? | 17:47 | |
timotimo | you can click "edit" at the top right and then "add another file" at the bottom left | ||
17:48
robertle joined
|
|||
mrdside | yes | 17:48 | |
gist& | |||
gist? | |||
timotimo | yes | 17:49 | |
perlpilot | mrdside: btw, $cr-month is an array in your code. You need to say for %person<credited>.list -> $cr-month { } or for @(%person<credited>) -> $cr-month { } | 17:50 | |
TimToady | %person<credited>[] should work too | 17:51 | |
perlpilot | yeah, that too | ||
timotimo | [] is just like postfix-dereferencing! | ||
only not as ugly | |||
mrdside | gist.github.com/mrDSide/53ecaeed84...655026a3bf | ||
perlpilot | timotimo :-) | ||
TimToady | .oO(The Zen of Postfix Maintenance) |
17:52 | |
mrdside | perlpilot: thx, it works | 17:53 | |
IOninja | \o/ | ||
perlpilot | TimToady: Any idea of a good place to point someone to explain why the extra syntax is needed there? I thought about design.perl6.org/S07.html#The_sing...ument_rule but I didn't find it clear for this case | ||
mrdside | now i need "1200" += "12,56" | ||
sena_kun | mrdside, in case you speak Russian(as I can guess from your test file) I can try to help you with it. It seems you need a grammar to parse your file and somehow process the result. | 17:54 | |
mrdside | yes and yes | ||
sena_kun | Or, rather, in case if Russian is your native. | ||
mrdside | yes | ||
IOninja | >:} | 17:55 | |
sena_kun | mrdside, perhaps private channel will be better choice then, I'll pm you now. | ||
TimToady | perlpilot: not really, but arrays and hashes should document that they're composed of Scalar containers, and those should somehow be known not to expand in a list | ||
I'd tend to explain it in terms of singular vs plural nouns | |||
IOninja | m: say +"12,56" | ||
camelia | rakudo-moar 1615c8: OUTPUT«Cannot convert string to number: trailing characters after number in '0312⏏5,56' (indicated by ⏏) in block <unit> at <tmp> line 1Actually thrown at: in block <unit> at <tmp> line 1» | ||
IOninja | mrdside: you'd need to replace the commas with '.' and '.' with commas, I guess. We don't do Russian style numbers in core :| | 17:56 | |
kinda just hit me that our system makes no sense in some languages. | 17:57 | ||
TimToady | .oO(some languages make no sense in our system...) |
||
IOninja | :D | ||
timotimo | they are also german-style | 17:58 | |
TimToady | I think of them as generally european | 17:59 | |
though sometimes spaces are used too | |||
IOninja | m: multi val(Str $x) is default { $x.subst(",", "."); callwith $x }; dd val "42,56" | ||
camelia | rakudo-moar 1615c8: OUTPUT«"42,56"» | ||
TimToady | there's just no way to parse them unambigously, though, at least without knowing somehow that one is coming | 18:00 | |
IOninja | m: multi val(Str $x) is default { callwith $x.subst(",", ".") }; dd val "42,56" | ||
camelia | rakudo-moar 1615c8: OUTPUT«"42,56"» | ||
IOninja | :( | ||
It's probably not too-paintful to augment Str.Numeric and <...> to recognize numerals from different locales | 18:01 | ||
IOninja wishes we had "lexical" augmentations... | |||
timotimo | well, multi candidates are still lexical | 18:02 | |
IOninja | yeah, but Str.Numeric won't see them (the multi candidates of, say, val()) | ||
timotimo | right | ||
TimToady | m: multi sub val(Str $x where /\,/) { nextwith $x.subst(",", ".") }; dd val "42,56" | 18:03 | |
camelia | rakudo-moar 1615c8: OUTPUT«RatStr.new(42.56, "42.56")» | ||
TimToady | though now the Str is a lie :) | 18:04 | |
IOninja | hehe | ||
m: multi val(Str:D $x) is default { callwith $x.subst(",", ".") }; dd val "42,56" | |||
camelia | rakudo-moar 1615c8: OUTPUT«"42,56"» | ||
timotimo | interesting that "is default" didn't help here | ||
TimToady is a bit surprised the earlier didn't die of an ambiguous dispatch | |||
IOninja | why does this one not work? | ||
TimToady | oh, you have 'is default' | ||
IOninja | m: multi val(Str:D $x, :$val-or-fail) is default { callwith $x.subst(",", ".") }; dd val "42,56" | 18:05 | |
camelia | rakudo-moar 1615c8: OUTPUT«"42,56"» | ||
IOninja | wweird | ||
m: multi val(Str:D $x, :$val-or-fail) { callwith $x.subst(",", ".") }; dd val "42,56" | |||
camelia | rakudo-moar 1615c8: OUTPUT«"42,56"» | ||
IOninja | :| | ||
m: .say for &val.candidates».signature[*-1] | 18:06 | ||
camelia | rakudo-moar 1615c8: OUTPUT«(Str:D $MAYBEVAL, :$val-or-fail)» | ||
IOninja | I'm guessing it doesn't go through Str:D candidate but through something else | 18:07 | |
TimToady | so why isn't that an amiguous dispatch? | 18:08 | |
IOninja | 'cause that gets thrown only when dispatching | ||
TimToady | m: multi sub val(Str:D $x, :$val-or-fail) { nextwith $x.subst(",", ".") }; dd val "42,56" | ||
camelia | rakudo-moar 1615c8: OUTPUT«"42,56"» | ||
IOninja | m: multi foo () {}; multi foo () {}; multi foo (Int) {}; foo 42 | 18:09 | |
camelia | ( no output ) | ||
IOninja | ^ no throwage | ||
m: multi foo () {}; multi foo () {}; multi foo (Int) {}; foo() | |||
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match::():() in block <unit> at <tmp> line 1» | ||
IOninja | ^ throwage | ||
So I'm thinking it doesn't get to Str:D and some other candidate grabs it | |||
TimToady | what could be more specific than Str:D ? | ||
I made it mine more specific with a 'where' | 18:10 | ||
s/it// | |||
IOninja | dunno... Just tried making multies with the same signatures as all other candidates and it still didn't throw :S | ||
TimToady | well, ss/it // | ||
IOninja | s: &val | 18:11 | |
SourceBaby | IOninja, Sauce is at github.com/rakudo/rakudo/blob/1615...hs.pm#L104 | ||
IOninja | s: &val, \('42,55') | ||
SourceBaby | IOninja, Sauce is at github.com/rakudo/rakudo/blob/1615...hs.pm#L131 | ||
IOninja | weird | ||
TimToady | something's rotten in the state of dispatch | 18:12 | |
IOninja | yeah | ||
m: multi sub chars(Str:D $x) { die 'meow' }; say chars 'meows' | |||
camelia | rakudo-moar 1615c8: OUTPUT«5» | ||
IOninja | m: multi sub chars(Str:D $x) { die 'meow' }; &chars.candidates».signature.say | 18:13 | |
camelia | rakudo-moar 1615c8: OUTPUT«((Cool $x) (Str:D $x) (str $x --> int) (Str:D $x))» | ||
TimToady | jnthn: ^^^ ??? !!! ... | ||
timotimo | we haven't actually got ^^^ | ||
IOninja | and according to bisectable it's been this way since at least The Christmas :S | 18:14 | |
m: multi sub chars(str $x --> int) { die 'meow' }; say chars my str $ = 'meows' | 18:15 | ||
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'chars'; these signatures all match::(str $x --> int):(str $x --> int) in block <unit> at <tmp> line 1» | ||
IOninja | m: multi sub chars(Cool $x) { die 'meow' }; say chars 'meows'.IO | ||
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'chars'; these signatures all match::(Cool $x):(Cool $x) in block <unit> at <tmp> line 1» | ||
IOninja | so just Str:D affected? | ||
TimToady | m: multi sub val(str $x, :$val-or-fail) { nextwith $x.subst(",", ".") }; dd val "42,56" | ||
camelia | rakudo-moar 1615c8: OUTPUT«"42,56"» | ||
18:16
AlexDaniel joined
|
|||
IOninja | m: multi sub val(str $x, :$val-or-fail) { nextwith $x.subst(",", ".") }; dd val my str $ = '42,56' | 18:16 | |
camelia | rakudo-moar 1615c8: OUTPUT«RatStr.new(42.56, "42.56")» | ||
timotimo | oh, native string | ||
well, that's a thing that's tighter than Str:D | |||
IOninja | well, chars has three sigs and only two of them cry about ambiguous dispatch :/ | 18:17 | |
s/sigs/candidates/ | |||
m: multi sub chars(Str:D $x) { die 'meow' }; &chars.cando(\("42"))».signature.say | 18:18 | ||
camelia | rakudo-moar 1615c8: OUTPUT«((Str:D $x) (Str:D $x) (Cool $x))» | ||
TimToady | that definitely seems wrongoidal | 18:19 | |
oh wait... | |||
I think I know | |||
:D is considered a constraint, so they're done in declaration order | 18:20 | ||
though...that doesn't explain why my 'where' worked | |||
m: multi sub chars(Str:D $x where *.chars) { die 'meow' }; &chars.cando(\("42"))».signature.say | 18:21 | ||
camelia | rakudo-moar 1615c8: OUTPUT«((Str:D $x where { ... }) (Str:D $x) (Cool $x))» | ||
IOninja | m: multi foo (Str:D $x) {die 'one'}; multi foo (Str:D $x) {die 'two'}; foo '42' | ||
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(Str:D $x):(Str:D $x) in block <unit> at <tmp> line 1» | ||
TimToady | well, it's considering where to be more constrained than :D, at least, if :D is considered a constraint at all | 18:22 | |
IOninja | m: multi sub comb(Str $x, $, $?) { die 'meow' }; say comb 'meows' | ||
camelia | rakudo-moar 1615c8: OUTPUT«5===SORRY!5=== Error while compiling <tmp>Calling comb(Str) will never work with proto signature ($, $, $?)at <tmp>:1------> 3comb(Str $x, $, $?) { die 'meow' }; say 7⏏5comb 'meows'» | ||
TimToady | which it doesn't seem to be | ||
IOninja | m: multi sub comb(Str $x, Str $, $?) { die 'meow' }; say comb 'meows', 'foo' | 18:23 | |
camelia | rakudo-moar 1615c8: OUTPUT«meow in sub comb at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
IOninja | m: multi sub comb(Str $x, Cool $, $?) { die 'meow' }; say comb 'meows', 'foo' | ||
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'comb'; these signatures all match::(Str $matcher, Cool $input, $limit = *):(Str $x, Cool $, $?) in block <unit> at <tmp> line 1» | ||
TimToady | so my theory is wrong | ||
IOninja | The :D seems to be definitely the part of it tho | ||
TimToady | so does lexical level, apparently | ||
IOninja | m: multi sub uniname(Int:D $code) { die 'meows' }; uniname 42 | ||
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'uniname'; these signatures all match::(Int:D $code):(Int:D $code) in block <unit> at <tmp> line 1» | ||
IOninja | m: multi sub uniname(Str:D $code) { die 'meows' }; uniname '42' | 18:24 | |
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'uniname'; these signatures all match::(Str:D $str):(Str:D $code) in block <unit> at <tmp> line 1» | ||
IOninja | huh | ||
works fine here, weird. | |||
TimToady scratches head, wishes for more coffee, realizes he can grant his wish... | |||
IOninja | m: multi foo (Str:D $x, :$whatevs) {die 'one'}; multi foo (Str:D $x) {die 'two'}; foo '42' | 18:25 | |
camelia | rakudo-moar 1615c8: OUTPUT«one in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
IOninja | m: multi foo (Str:D $x, :$whatevs) {die 'one'}; multi foo (Str:D $x, :$whatevs) {die 'two'}; foo '42' | ||
camelia | rakudo-moar 1615c8: OUTPUT«one in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
IOninja | So adding named args makes it unambiguious | ||
IOninja shrugs and grabs a coffee too | 18:26 | ||
TimToady | apparently "could have a named argument that we don't even pass" is considered a constraint to flip to the ordered regime | 18:28 | |
[Coke] drinks his ramen out of a 1 litre glass container. | |||
IOninja | m: &chars.candidates».signature.say | 18:29 | |
camelia | rakudo-moar 1615c8: OUTPUT«((Cool $x) (Str:D $x) (str $x --> int))» | ||
Geth | perl6.org: ca4e1a13dd | Cale++ | source/resources/index.html Add kyclark's Metagenomics book It's actually a fantastic resource for learning P6, even if you have no interest in the field. |
18:30 | |
IOninja | Doesn't answer why the multi sub chars(Str:D $x) aboive didn't get ambiguous | ||
18:30
pyrimidine joined
|
|||
IOninja | m: multi foo (Str:D $x --> Nil) {die 'one'}; multi foo (Str:D $x --> Nil) {die 'two'}; foo '42' | 18:30 | |
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(Str:D $x --> Nil):(Str:D $x --> Nil) in block <unit> at <tmp> line 1» | ||
TimToady | m: multi foo (Str:D $x --> Nil) {die 'one'}; do { multi foo (Str:D $x --> Nil) {die 'two'}; foo '42' } | 18:32 | |
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(Str:D $x --> Nil):(Str:D $x --> Nil) in block <unit> at <tmp> line 1» | ||
TimToady | so not just any lexical scope | ||
IOninja | m: multi foo (Str:D $x) {die 'one'}; multi foo (str $x --> int) { 42 }; multi foo (Str:D $x) {die 'two'}; foo '42' | 18:33 | |
camelia | ( no output ) | ||
IOninja | m: multi foo (Str:D $x) {die 'one'}; multi foo (str $x --> int) { die 42 }; multi foo (Str:D $x) {die 'two'}; foo '42' | ||
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(Str:D $x):(Str:D $x) in block <unit> at <tmp> line 1» | ||
IOninja | My spidey senses sense optimizer shinanigans | ||
TimToady wonders if there's a SETTING:: bypass in place here to make sure implicit val() works "right" | |||
there is a SETTING_CACHE mentioned in the optimizer | 18:35 | ||
IOninja | well, my last evals with str $x --> int do indeed produce different results with optimizer off, but the original thing is still present | 18:36 | |
18:37
juan__ left
|
|||
TimToady | iirc, there are some places in Actions or so that bypass the current lexical scope, and val might be one of them | 18:37 | |
though you'd think it would only be for implicit forms like <1/3> | |||
maybe it's accidentally applied to explicit calls as well | |||
IOninja | Oh wait, the named arg disambiguating is still there, but the multi chars (Str:D $x) {} does start to complain about ambiguity with optimzier off | 18:38 | |
TimToady | ooh | ||
a veritable klew | |||
so we need to invalidate that cache entry for added candidates | 18:39 | ||
tony-o | timotimo: to-do list for H:S:A right now involves speeding up the socket closing - i think i had it working and reconfigured it to avoid segfault/crashes and now it doesn't close the sockets right away | 18:40 | |
after that i think it's just performance, someone found a bug where it wouldn't handle multiline headers properly but that should be resolved - | |||
[Coke] wonders if you can get pod2html "lite" that doesn't add in a bunch of css | 18:49 | ||
IOninja | the Perl 6 pod2html? I vaguelly recall it lets you specify your own CSS | 18:50 | |
18:54
sufrostico left
18:58
espadrine joined
19:00
nerow joined
|
|||
[Coke] | looks like it has some hardcode.d | 19:00 | |
[Coke] doublechecks | |||
Geth | perl6.org: c4e4f73dba | (Zoffix Znet)++ | 4 files s/panda/zef/; Fixes #74 - On some pages that listed both zef and panda, I removed panda to avoid confusion on why have two module managers (I think that's OK?) - <tt> is deprecated; swapped to <code> |
19:05 | |
[Coke] | IOninja: github.com/perl6/Pod-To-HTML/blob/...ML.pm#L156 - looks like the prelude goes in regardless. | 19:06 | |
IOninja | oh, and added ref to <a href="metacpan.org/">Perl 5 Modules</a>; I figured at least right now it'd be pretty common to rely on Perl 5 for stuff not in our eco | ||
IOninja giggles at that style sheet | 19:07 | ||
oh, they brought back the <u> in HTML5 heh, OK then | 19:08 | ||
"stop using presentational mark up! STOP DAMMIT! Ok fine, you all win! use it!" | |||
19:08
cdg left
|
|||
IOninja | Well, if I were writing it, I'd not include any CSS; and wouldn't include a mile of comments explaining all the details. | 19:10 | |
[Coke] | Yah. I think all that can go. | 19:11 | |
or maybe make it a :boilerplate-css option. | |||
IOninja | And we use that on our docs site too... | ||
m: gist.github.com/zoffixznet/0ad09a2...cf15e43d7a | 19:12 | ||
camelia | rakudo-moar 1615c8: OUTPUT«Potential difficulties: Asked to remove 2 spaces, but the shortest indent is 0 spaces at <tmp>:20 ------> 3 ♥7⏏5<EOL>587» | ||
IOninja | and every page has half a kilobyte of stuff it needn't have | ||
19:12
eroux left
19:24
thdr|2 joined
|
|||
[Coke] | IOninja: I'm digging here as part of the "move to bootstrap" ticket. | 19:24 | |
IOninja | cool | ||
[Coke] | "oh I'll just ... oh. what is that doing there." | 19:26 | |
19:27
labster joined
|
|||
geekosaur | "sounds like css" :p | 19:28 | |
19:29
ocbtec joined
|
|||
jnthn | TimToady: I suspect some of the shenanigans above are because a literal can be either native or boxed, and while for Int literals we're very careful about magnitude, for Num/num and Str/str we prefer the native candidate | 19:39 | |
19:39
girafe joined
|
|||
jnthn | (And the decision making on that lives in the optimizer pass) | 19:40 | |
IOninja | m: multi foo (Str:D, :$foo) { say "one" }; multi foo (Str:D) { say "two" }; foo "foo" | ||
camelia | rakudo-moar 1615c8: OUTPUT«one» | ||
IOninja | m: multi foo (Str:D) { say "one" }; multi foo (Str:D, :$foo) { say "two" }; foo "foo" | ||
camelia | rakudo-moar 1615c8: OUTPUT«two» | ||
IOninja | Is that normal? | ||
the optional named arg we don't pass breaks the tie | 19:41 | ||
Oh, I even ticketed that before: rt.perl.org/Ticket/Display.html?id...et-history | |||
jnthn | Yes, the presence of named params makes it narrower | 19:46 | |
They act as constraints | |||
And when they're optional they always match | |||
IOninja | OK. I'll close the ticket | 19:47 | |
gfldex takes notes | 19:48 | ||
19:52
TEttinger joined
19:54
kyan joined
19:55
pyrimidine left,
pyrimidine joined
20:00
pyrimidine left
20:04
Coleoid_n joined,
TEttinger left
20:05
andrzejku joined
20:11
TEttinger joined
20:13
notostraca joined
20:15
TEttinger left
20:16
labster left
|
|||
Coleoid_n | Hi, #perl6! | 20:23 | |
I understand I can put parameters on my rules. Is there a means to pass these on to my action methods? | |||
20:23
baest joined
|
|||
IOninja | I think common way is to use dynamic varaibles? | 20:24 | |
parameters... | |||
IOninja shrugs | |||
jnthn | token foo($*bar) { } then you can access $*bar in the action method | 20:25 | |
IOninja | ah | ||
m: grammar { token TOP { <foo: 42> }; token foo ($*x) { .+ } }.parse: "foo", :actions(class { method foo ($/) { dd $*x } }) | 20:26 | ||
camelia | rakudo-moar 1615c8: OUTPUT«Int $*x = 42» | ||
gfldex | m: sub f($*foo){ dd $*foo }; f 42 | 20:27 | |
camelia | rakudo-moar 1615c8: OUTPUT«Int $*foo = 42» | ||
jnthn | Yeah, it's something all sigs can do, not just regexen :) | ||
IOninja | m: sub ($?x) { say $?x }(42) | ||
camelia | rakudo-moar 1615c8: OUTPUT«5===SORRY!5===In signature parameter $?x, it is illegal to use the ? twigilat <tmp>:1------> 3sub ($?x7⏏5) { say $?x }(42)Variable '$?x' is not declaredat <tmp>:1------> 3sub ($?x) { say 7⏏5$?x }(42)» | ||
IOninja | uh-oh, illegal? | ||
IOninja runs away | |||
Coleoid_n | :D | 20:28 | |
gfldex | m: my $a = 42; sub f($*foo is rw){ dd ++$*foo }; f $a; dd $a; | 20:30 | |
camelia | rakudo-moar 1615c8: OUTPUT«43Int $a = 43» | ||
gfldex | m: my $a = 42; sub f($*foo is copy){ dd ++$*foo }; f $a; dd $a; | ||
camelia | rakudo-moar 1615c8: OUTPUT«43Int $a = 42» | ||
gfldex | so a dynamic var in a sig is kind of a NOP | ||
IOninja | nop? | 20:32 | |
gfldex | m: my $a = 42; sub f($*foo){ g $*foo }; sub g($*foo is rw){ $*foo++ }; f $a; dd $a; | ||
camelia | rakudo-moar 1615c8: OUTPUT«Parameter '$*foo' expected a writable container, but got Int value in sub g at <tmp> line 1 in sub f at <tmp> line 1 in block <unit> at <tmp> line 1» | ||
Coleoid_n | I can do that, thanks! But to guard against the XY problem, my actual problem is: | 20:33 | |
gfldex | IOninja: no-operation | ||
Coleoid_n | I'm working on a grammar which needs to represent the "same thing" differently, depending on the outer rule it's in the process of matching. | ||
Or rather, the actions class should emit somewhat different code. | |||
IOninja | gfldex: but what do you mean? Looks like it assigns the given value to the dynamic var. Where's the NOP come in? | ||
Coleoid_n | Is there another approach that makes more sense? | 20:34 | |
gfldex | IOninja: with 'kind of NOP' i meant that having it as a dynamic var doesn't really change anything | ||
IOninja | m: grammar { token TOP { :my $*FORMAT; <foo> || <bar> }; token foo { {$*FORMAT = "foo"} \d+ }; token bar { {$*FORMAT = "bar"} .+ } }.parse: "aa", :actions(class { method TOP ($/) { dd $*FORMAT } }) | 20:36 | |
camelia | rakudo-moar 1615c8: OUTPUT«Str $*FORMAT = "bar"» | ||
IOninja | m: grammar { token TOP { :my $*FORMAT; <foo> || <bar> }; token foo { {$*FORMAT = "foo"} \d+ }; token bar { {$*FORMAT = "bar"} .+ } }.parse: "42", :actions(class { method TOP ($/) { dd $*FORMAT } }) | ||
camelia | rakudo-moar 1615c8: OUTPUT«Str $*FORMAT = "foo"» | ||
IOninja | Coleoid_n: that ^ maybe? If I understood you right. | ||
You declare the dynamic var in your outer rules and in your subrules you can assign stuff to it | 20:37 | ||
or put another way: your outer rule can set that var and your subrules will know the value | 20:39 | ||
Coleoid_n | IOninja: I'm wanting the value to reach my actions methods, which you did above a bit. | 20:40 | |
IOninja | m: grammar { token TOP { :my $*FORMAT = rand > .5; <foo> }; token foo { .+ } }.parse("aa", :actions(class { method foo ($/) { make $*FORMAT ?? "one thing" !! "the other" } })).<foo>.made.say | ||
camelia | rakudo-moar 1615c8: OUTPUT«one thing» | ||
IOninja | m: grammar { token TOP { :my $*FORMAT = rand > .5; <foo> }; token foo { .+ } }.parse("aa", :actions(class { method foo ($/) { make $*FORMAT ?? "one thing" !! "the other" } })).<foo>.made.say | 20:41 | |
camelia | rakudo-moar 1615c8: OUTPUT«the other» | ||
20:42
lostinfog joined
|
|||
Coleoid_n | That's was very cooperative of camelia... :D | 20:42 | |
*That | |||
IOninja | :) | 20:43 | |
20:43
El_Che joined
20:52
robertle left
20:54
_28_ria joined
21:01
lostinfog left
21:03
bjz joined
21:11
andrzejku left
|
|||
TimToady | and yes, it's also perfectly legal to declare a dynvar as part of a signature | 21:14 | |
21:15
wamba left
|
|||
Coleoid_n | IOninja++, the dynvar worked beautifully. Thanks also, jnthn and gfldex! | 21:15 | |
gfldex | TimToady: is there any special behaviour expected from signature dynvars? | ||
21:17
bjz left
21:19
ocbtec left,
cdg joined
|
|||
Geth | doc: 26e0ec8558 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6 tell that optional parameters take part in MMD |
21:25 | |
doc: 0280529568 | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6 link to arity |
|||
21:25
baest left
21:26
pyrimidine joined
|
|||
IOninja | gfldex: seems preference isn't gived for non-named args | 21:27 | |
m: multi foo (Str:D $x, :$) {say 'one'}; multi foo (Str:D $x) {say 'two'}; foo '42' | |||
camelia | rakudo-moar 1615c8: OUTPUT«one» | ||
IOninja | m: multi foo (Str:D $x, $) {say 'one'}; multi foo (Str:D $x) {say 'two'}; foo '42' | ||
camelia | rakudo-moar 1615c8: OUTPUT«two» | ||
IOninja | m: multi foo (Str:D $x, $?) {say 'one'}; multi foo (Str:D $x) {say 'two'}; foo '42' | ||
camelia | rakudo-moar 1615c8: OUTPUT«two» | ||
IOninja | m: multi foo (Str:D $x, $?) {say 'one'}; multi foo (Str:D $x, $?) {say 'two'}; foo '42' | ||
camelia | rakudo-moar 1615c8: OUTPUT«Ambiguous call to 'foo'; these signatures all match::(Str:D $x, $?):(Str:D $x, $?) in block <unit> at <tmp> line 1» | ||
IOninja | m: multi foo (Str:D $x, $?, :$) {say 'one'}; multi foo (Str:D $x, $?) {say 'two'}; foo '42' | ||
camelia | rakudo-moar 1615c8: OUTPUT«one» | ||
IOninja | m: multi foo (Str:D $x) {say 'one'}; multi foo (Str:D $x, $?) {say 'two'}; foo '42' | ||
camelia | rakudo-moar 1615c8: OUTPUT«one» | ||
gfldex | m: multi foo (Str:D $x) {say 'one'}; multi foo (Str:D $x, $? = 1) {say 'two'}; foo '42' | 21:28 | |
camelia | rakudo-moar 1615c8: OUTPUT«one» | ||
gfldex | i would call this one a bug | ||
IOninja | Why not the other one? | ||
gfldex | maybe | ||
IOninja | I'd actually expect ^ that behaviour for optional named args | ||
if I ain't giving you the optional named param and there's candidate that doesn't take it, use it | 21:29 | ||
jnthn tries to figure out what is being considered the bug :) | |||
IOninja | :D | ||
jnthn | An exact arity match candidate being preferred is, I believe, intended. | ||
I think it wasn't that way and *that* was considered a bug ;) | |||
gfldex | it's ambiguous in my eyes | ||
jnthn | Every arity-based rule that's in the multi-dispatcher is the result of a persuasive example, or the unintended consequences of satisfying people's persuasive examples :-) | 21:30 | |
IOninja | That makes sense to me. But what's the reasoning for giving preferences to one with named args? | ||
jnthn | Because named arguments count as a constraint | 21:31 | |
The multi-dispatcher doesn't consider names | |||
*nameds | |||
If there are any, it does its work based on positionals, and then just checks if the signatures will bind | |||
Geth | doc: ea919161ee | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6 only for named params |
||
jnthn | And picks the first one where that's the case | 21:32 | |
gfldex | jnthn: that sounds like an implementers standpoint | 21:33 | |
IOninja | OK | 21:34 | |
21:35
geekosaur joined
|
|||
jnthn | gfldex: That would have been "here's the code" ;-) | 21:35 | |
That nameds aren't individually considered in the candidate sort has been in the design docs for years, though | 21:37 | ||
The arity rules were actually harder than the type rules | |||
Because people had all kinds of ideas of what they wanted. | |||
21:38
nerow left
|
|||
gfldex | so it's the least wrong design :-> | 21:38 | |
21:39
_28_ria left
|
|||
IOninja | or most correct :) | 21:39 | |
21:40
AlexDaniel left
21:41
baest joined
|
|||
jnthn | If we were discussing this in a years's time I could claim to have spent a decade listening people asking for opposing things on the multi-dispatch arity rules. :P | 21:41 | |
*listening to | |||
21:41
pyrimidine left
21:42
pyrimidine joined
21:43
_28_ria joined
|
|||
TimToady has spent more than a decade :) | 21:43 | ||
jnthn | Congrats. ;-) | ||
21:43
_28_ria left
|
|||
IOninja | hahaha | 21:43 | |
TimToady | it's really just a special case of electoral systems, which are provably imperfect in some way or other | 21:44 | |
as we have reason to know... :/ | |||
jnthn | There's been at least a couple of occasions where I looked at an example in a ticket, was sympathetic to it, tried the change, broke a spectest, and discovered another ticket that had wanted the opposite. :) | 21:45 | |
gfldex | TimToady: that's just a sympthom | ||
TimToady: in 1968 your country split in two without changing it's borders. It's actually astounding it didn't blew up earlier. | 21:48 | ||
IOninja | What happened in 1968? | 21:49 | |
gfldex | the hippies realised that they can't change society so they started to build their own | ||
TimToady | gfldex: no, I'm specifically thinking of something more basic: en.wikipedia.org/wiki/Arrow's_impo...ty_theorem | 21:50 | |
gfldex | IOninja: that happend in 1967, so it's not like they didn't try hard en.wikipedia.org/wiki/Flower_Power_(photograph) | ||
TimToady | gfldex: and your social analysis is, at best, a vast oversimplification :) | 21:51 | |
21:52
pyrimidi_ joined,
pyrimidine left
|
|||
gfldex | my country is separate by a whole ocean so I take a fairly relaxed stance | 21:52 | |
TimToady | but yes, polarization has been generally increasing since WW2 | ||
we have to work up to WW3 somehow or other... | 21:53 | ||
gfldex | peace is the time between two wars after all | ||
perlpilot hopes we can elide WW3 forever | 21:54 | ||
IOninja foresees it'll happen in the next 8 years | 21:55 | ||
gfldex | i hope we will be to busy solving all those nasty problems ahead to go to war | ||
my guess is 2050ish because that's when the world will run low on phosphate fertilisers and yes, that's a focil resource too | 21:57 | ||
IOninja | Well, it's already happening, I guess. Bunch of sanctions, drones, and mass media manipulation. That's the warfare of 21st century. Why bomb anyone when you can ruin their economy by other means. | ||
TimToady | .oO(or ruin your own economy...) |
21:58 | |
RabidGravy | oh the uk is already on it | 21:59 | |
gfldex | you can only ruin the economy of a country that can't supply it's ppl with food. That's why sanctions on russia are silly. | ||
the UK can't feed it's ppl | |||
TimToady is going to miss avocadoes | 22:00 | ||
gfldex | but maybe we need that shake up to come to senses | ||
RabidGravy | we're already missing courgettes :) | 22:01 | |
IOninja | The alternative to sanctions on Russia is letting them do what they want or bombing them. Both are undesirable. | ||
TimToady | though Trump may have a point about vegemite... :) | ||
gfldex | because they actually can bomb back | ||
TimToady | just kidding, I like vegemite/marmite | ||
jnthn | Ewww, marmite | ||
RabidGravy | :) | 22:02 | |
TimToady | well, not to eat it directly, of course | ||
it's one of my secret ingredients in soup though | |||
adds umami without tasting like soy | 22:03 | ||
and surely jnthn is generally in favor of the activities of yeast :) | |||
jnthn | This is true. :-) | 22:04 | |
gfldex | it's not just him. I like to bake my own bread. | ||
jnthn | I never thought of putting marmite in soup :P | ||
I do stick soy in one soup I make though, so I guess it's not so strange :) | 22:05 | ||
22:08
cdg_ joined
22:09
AlexDaniel joined
|
|||
RabidGravy | right, I have a fun visit to a warehouse tomorrow, see how the software breaks the real world :) | 22:10 | |
22:10
cdg left
|
|||
TimToady | .oO(Sticks and stones may break my bones, but software is, er, soft...) |
22:11 | |
gfldex | TimToady: may I remind you of electrek.co/2016/09/14/another-fat...n-dashcam/ | 22:13 | |
jnthn wanders off to get some rest... 'night | 22:14 | ||
AlexDaniel | u: ©ⓒ | 22:16 | |
unicodable6 | AlexDaniel, U+00A9 COPYRIGHT SIGN [So] (©) | ||
AlexDaniel, U+24D2 CIRCLED LATIN SMALL LETTER C [So] (ⓒ) | |||
22:17
mrdside left
22:18
baest left
22:22
lostinfog joined
22:24
baest joined
|
|||
[Coke] | ⓅⒺⓇⓁ⑥ | 22:26 | |
tony-o | gfldex: that tesla thing is kind of a mixed bag. | 22:28 | |
it only *needs* to be better than humans driving, which isn't fairly difficult | |||
well - i mean the tech might be difficult but most people turn into monsters when they sit down in a car | 22:29 | ||
IOninja | I'm not surprised at that crash, looking at the dashcam footage. Plenty of humans would've crashed into that sweeper and I'm pretty sure it'd be illegal for it to drive like that here in Canukistan | 22:35 | |
Wonder what it's like to be the programmers for that thing. | 22:40 | ||
"Bug report: Car didn't apply break. Driver dead." "Oh shit, off-by-one error right there!" | 22:41 | ||
AlexDaniel | oh wow, that crash | 22:44 | |
notostraca | I think they showed that Tesla vehicles driving themselves still get into less crashes than when a human is | ||
22:48
thdr|2 left
22:50
BenGoldberg joined
|
|||
gfldex | tony-o: that though is a slippery slope because if you take it to the extreme it ends up with humans confined to quarters | 23:00 | |
but then most humans do that already. They call it "watching TV" | |||
23:02
pyrimidi_ left
23:05
sufrostico joined
23:09
abruanese joined,
espadrine left
23:13
agentzh joined
23:14
avalenn joined
23:17
gdonald joined
23:30
cpage_ left
23:32
DarthGandalf joined
23:33
zoosha left,
zoosha joined
23:34
lep-delete joined
|
|||
tony-o | gfldex++ | 23:42 | |
23:43
lostinfog left,
yqt joined
|
|||
Geth | doc: cf758229a7 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Signature.pod6 tell that Signature is cool with dynamic variables |
23:44 | |
23:45
jeffythedragonsl joined
|
|||
gfldex | i wonder what it tells about me that I maintain two distinct karma pools | 23:45 | |
23:46
girafe left
23:51
jeffythedragonsl left
23:56
labster joined
23:59
pyrimidine joined
|