»ö« 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:00
wamba left
00:08
sena_kun left
00:11
llfourn left
00:15
llfourn joined
00:20
llfourn left
00:21
mson left
00:25
khw left,
llfourn joined
00:27
MasterDuke left
00:29
MasterDuke joined
00:30
margeas left,
margeas joined,
llfourn left,
llfourn joined
00:35
ryn1x joined
|
|||
tbrowder | thnx | 00:36 | |
00:37
margeas left
|
|||
tbrowder | when’s the next release gonna happen? | 00:37 | |
00:38
statisfiable6 left,
benchable6 left,
nativecallable6 left,
squashable6 left,
evalable6 left,
committable6 left,
releasable6 left,
quotable6 left,
coverable6 left,
tangible6 left,
greppable6 left,
bloatable6 left,
bisectable6 left,
unicodable6 left
00:39
quotable6 joined,
tangible6 joined,
releasable6 joined,
ChanServ sets mode: +v releasable6,
coverable6 joined,
ChanServ sets mode: +v coverable6,
nativecallable6 joined,
bloatable6 joined,
ChanServ sets mode: +v nativecallable6,
committable6 joined,
ChanServ sets mode: +v committable6,
bisectable6 joined,
ChanServ sets mode: +v bisectable6,
unicodable6 joined,
ChanServ sets mode: +v unicodable6,
greppable6 joined,
statisfiable6 joined,
ChanServ sets mode: +v statisfiable6,
benchable6 joined,
evalable6 joined,
ChanServ sets mode: +v evalable6,
squashable6 joined,
ChanServ sets mode: +v squashable6
|
|||
ilmari | releasable6: status | 00:43 | |
releasable6 | ilmari, Next release will happen when it's ready. No blockers. 213 out of 215 commits logged | ||
ilmari, Details: gist.github.com/d19d6b333e02aa4099...7bfd7f6908 | |||
00:48
cdg left
00:51
matiaslina joined
01:00
lizmat joined
|
|||
AlexDaniel | tbrowder, ilmari: everything looks good right now, so relatively soon! | 01:04 | |
01:04
lizmat left
|
|||
AlexDaniel | like in 24 hours maybe | 01:06 | |
01:34
evalable6 left
01:35
evalable6 joined
01:47
aborazmeh joined,
aborazmeh left,
aborazmeh joined
01:50
kaare_ left
01:52
kaare_ joined
02:05
MasterDuke_ joined
02:06
comborico1611 left
02:07
MasterDuke left
02:08
ivans joined
02:12
ivans_ left,
kyan joined
02:20
matiaslina left
02:40
lizmat joined
02:42
matiaslina joined
02:44
ilbot3 left
02:45
jstuder left,
matiaslina left
02:49
cdg joined
02:53
cdg left
02:54
kitsunenokenja left
02:55
ilbot3 joined,
ChanServ sets mode: +v ilbot3
02:57
Exodist joined
|
|||
tejr | can i have a perl6 cloak? i wrote some perl6 once | 02:57 | |
it was all | |||
"hello world" | 02:58 | ||
but with ..uh ... meta-operators. yeah | |||
03:07
john51 joined
03:08
poohman joined,
noganex_ joined
03:10
kaare_ left,
kaare_ joined
03:11
noganex left
|
|||
ZzZombo | timotimo: does it mean if I use `open` directly, it should work with my encoding? | 03:38 | |
03:41
evalable6 left,
evalable6 joined
03:49
ufobat_ joined
03:53
ufobat left
04:00
poohman left
04:08
eliasr left
04:24
Cabanoss- joined
04:27
Cabanossi left,
Cabanoss- is now known as Cabanossi
|
|||
ZzZombo | In other news, Github search is bloody useless, just like Spies. | 04:31 | |
04:33
MasterDuke_ is now known as MasterDuke
04:52
itaipu joined
05:16
Khisanth left
05:18
mson joined
05:22
astronavt left
|
|||
ZzZombo | timotimo: gist.github.com/ZzZombo/e78cad5672...0b33ad6bb5 was updated, I attempted to figure out the decoder functions to implement, can you spot any mistakes. Test run showed empty (or invisible) output, no errors or warnings. | 05:22 | |
05:24
aborazmeh left
05:29
ivans_ joined
05:32
ivans left
05:37
Khisanth joined
05:39
itaipu left
05:49
cdg joined
05:51
khw joined
05:53
cdg left,
mr-foobar left
05:57
mr-foobar joined
06:02
darutoko joined,
Sgeo_ joined,
Sgeo__ joined
06:04
ivans_ left
06:05
Sgeo_ left,
Sgeo__ left
06:07
ivans joined
|
|||
ZzZombo | Nevermind, I figured this out I think. Works as far as I can see. | 06:14 | |
Although I am not certain in my implementation, you should take a look anyway. I might overlook and/or misunderstand some things. | 06:21 | ||
06:23
mr-foobar left
06:27
llfourn left
06:28
mr-foobar joined
06:46
rindolf joined
06:50
khw left
06:53
parv joined
07:01
kyan left
07:04
Exodist left
07:05
Exodist joined
|
|||
ufobat_ | m: require IO::Foo::Bar | 07:08 | |
camelia | IO::Foo::Bar is a builtin type, not an external module in block <unit> at <tmp> line 1 |
||
ufobat_ | i am wondering about the error message. It's not a builtin type. | 07:09 | |
07:12
Exodist left
07:20
Exodist joined
|
|||
geekosaur | seems like unfortunate conflation of namespacing | 07:21 | |
I can see the point, kind of, but also think it's a bit of bad idea to extend it beyond actual built-in types, because it means you can't expand their repertoire via the ecosystem | |||
07:23
mr-foobar left
07:26
mr-foobar joined
07:36
wamba joined
07:42
llfourn joined
07:44
P6_ joined
|
|||
ufobat_ | geekosaur: what about using IO::Socket::Async::SSL while having it not installed :-( | 07:44 | |
geekosaur | I ntoe that use doesn't have the same behavior. | 07:46 | |
07:46
llfourn left
|
|||
geekosaur | require is a bit of a special case | 07:46 | |
and, well, the namespacing might actually be an issue because require is runtime, whereas use is compile time | |||
ufobat_ | m: use IO::Foo::Bar | 07:47 | |
camelia | ===SORRY!=== Could not find IO::Foo::Bar at line 1 in: /home/camelia/.perl6 /home/camelia/rakudo-m-inst-1/share/perl6/site /home/camelia/rakudo-m-inst-1/share/perl6/vendor /home/camelia/rakudo-m-inst-1/share/perl6 CompU… |
||
ufobat_ | I am using require because it depends on the user of the module wether he wants/has ssl installed or not | 07:48 | |
geekosaur | (more precisely, because require is runtime, there is the potential for its parameter to be computed) | ||
ufobat_ | github.com/ufobat/HTTP-Server-Ogre/issues/2 - i was just confused by the error | 07:49 | |
i am going to create a perl6 ticket for this :-) | 07:54 | ||
ZzZombo | there should already be | ||
I recall reporting this behavior a year or so ago, it was noted. | 07:55 | ||
bartolin | c | 07:56 | |
08:03
lizmat left
08:09
wamba left
08:11
mson left
08:17
sena_kun joined
08:31
mson joined,
ccakes left
08:32
ccakes joined,
ivans left
|
|||
ZzZombo | How can I overwrite contents of a `rw` `IO::Handle`? | 08:37 | |
08:39
P6_ left,
ivans joined
|
|||
ZzZombo | `$*KERNEL` returns 'unknown' for anything but `name` on my Windows machine, is it normal? | 08:41 | |
08:42
philomath joined,
ivans left
|
|||
ZzZombo | And it died for CPU info accessors. | 08:43 | |
08:44
ivans joined
08:49
setty1 joined
08:53
mr-foobar left
08:56
mr-foobar joined
08:57
wamba joined
09:06
rindolf left
09:07
rindolf joined
09:12
ivans left
09:17
ivans joined
09:22
mr-fooba_ joined
09:24
cdg joined
09:25
mr-foobar left,
cdg_ joined
09:28
cdg left
09:29
lizmat joined
09:30
cdg_ left
09:31
konsolebox left
09:32
konsolebox joined
09:35
ufobat_ is now known as ufobat
09:44
cdg joined
09:48
cdg left
09:51
kalkin- joined,
domidumont joined
09:55
domidumont left
09:56
domidumont joined
10:01
kalkin- left
10:17
philomath left
|
|||
moritz | ZzZombo: you can .print or .say or .write tot he IO handle | 10:22 | |
ZzZombo | ah, so I shouldn't use `spurt` for this. | 10:23 | |
10:24
isBEKaml joined
|
|||
tyil | spurt is to write to an actual path on your filesystem | 10:25 | |
it basically opens the io handle and writes to it and closes it again for you | |||
ZzZombo | eh? | ||
tyil | if you have an open handle already, you can use the methods moritz gave you | ||
ZzZombo | m: say IO::Handle.^methods.grep: *.name eq 'spurt'; | 10:26 | |
camelia | () | ||
ZzZombo | m: say IO::Handle.^methods | ||
camelia | (gist new FALLBACK) | ||
ZzZombo | m: say IO::Handle.methods.grep: *.name eq 'spurt'; | ||
camelia | IO::Handle is disallowed in restricted setting in sub restricted at src/RESTRICTED.setting line 1 in method FALLBACK at src/RESTRICTED.setting line 31 in block <unit> at <tmp> line 1 |
||
ZzZombo | well, the point is, IO::Handle also can spurt things | 10:27 | |
tyil | heh, you're right, didn't know that | 10:28 | |
multi method spurt(IO::Handle:D: Cool $data, :$close = False) | |||
10:38
wamba left
10:41
mson left
10:43
philomath joined
10:52
ivans left,
ivans joined
10:56
ufobat left
10:58
ufobat joined
10:59
philomath left
11:21
eliasr joined
11:34
itaipu joined
11:38
mr-foobar joined
11:40
mr-fooba_ left
11:45
s0me0ne-unkn0wn joined
11:47
s0me0ne-unkn0wn left
11:51
s0me0ne-unkn0wn joined
11:58
Aaronepower left
11:59
itaipu left
12:00
itaipu joined
|
|||
Geth | doc: bfa2947a73 | (Jan-Olof Hendig)++ | 2 files Remove a couple of non working C<> tags from a =SUBTITLE |
12:01 | |
12:03
ufobat left
12:16
robertle joined
|
|||
Geth | doc: 16dfa87caa | (Jan-Olof Hendig)++ | 2 files Sundry formatting fixes |
12:16 | |
12:17
parv left
12:27
llfourn joined
12:40
itaipu left
12:41
phogg joined,
phogg left,
phogg joined
12:42
wamba joined
12:49
cdg joined
12:50
Aaronepower joined
12:54
cdg left
|
|||
timotimo | benchable6: releases my $n = 3_000; my $sum = 0; loop (my $i = 1; $i <= $n; $i++) { loop (my $j = 1; $j <= $i; $j++) { $sum += $i+$j; } } | 12:54 | |
benchable6 | timotimo, starting to benchmark the 24 given commits | ||
12:58
benchable6 left
12:59
benchable6 joined
|
|||
timotimo | mhh | 12:59 | |
benchable6: 2017.01,2017.03,2017.05,2017.07,2017.09,2017.11 my $n = 3_000; my $sum = 0; loop (my $i = 1; $i <= $n; $i++) { loop (my $j = 1; $j <= $i; $j++) { $sum += $i+$j; } } | 13:00 | ||
benchable6 | timotimo, starting to benchmark the 6 given commits | ||
timotimo, benchmarked the given commits, now zooming in on performance differences | 13:02 | ||
timotimo, gist.github.com/6a62b68db0dbfa26c0...f135fdface | 13:03 | ||
timotimo | benchable6: 2017.09,2017.10 my $n = 3_000; my $sum = 0; loop (my $i = 1; $i <= $n; $i++) { loop (my $j = 1; $j <= $i; $j++) { $sum += $i+$j; } } | 13:04 | |
benchable6 | timotimo, starting to benchmark the 2 given commits | ||
timotimo, benchmarked the given commits, now zooming in on performance differences | |||
timotimo, ¦2017.09: «3.6152» ¦2017.10: «3.5363» | |||
Geth | doc: 0c2a5aea09 | (Jan-Olof Hendig)++ | doc/Type/Proc/Async.pod6 Fixed formatting of code example and a few broken method links |
13:10 | |
synopsebot | Link: doc.perl6.org/type/Proc/Async | ||
ZzZombo | how can I display an Instant with a precision down to milliseconds? | 13:28 | |
13:29
evalable6 left,
evalable6 joined,
ChanServ sets mode: +v evalable6
13:36
isBEKaml left
|
|||
moritz | m: say now | 13:37 | |
camelia | Instant:1511098685.135303 | ||
moritz | looks like milliseconds to me already | ||
even microseconds | |||
m: say now.^name | |||
camelia | Instant | ||
ZzZombo | eh, down to, but not more. | 13:38 | |
too verbose for my purposes | |||
moritz | m: say now.tai.fmt("%.3f") | 13:39 | |
camelia | 1511098816.429 | ||
ZzZombo | `.tai`? | ||
moritz | en.wikipedia.org/wiki/International_Atomic_Time | 13:40 | |
ZzZombo | m: say ($_,.tai) with now | 13:41 | |
camelia | (Instant:1511098902.795335 1511098902.795335) | ||
ZzZombo | m: say now.tai.WHAT | ||
camelia | (Rat) | ||
ZzZombo | `.push(my $=Grammar::VDF::Section.new(:name<x>))` # Pod variable $=Section not yet implemented. Sorry. | 13:48 | |
What?? | |||
moritz | $=Grammar is a POD variable | 13:49 | |
syntax-wise | |||
what did you mean to write? | |||
my $ = Grammar::VDF::Section.new(:name<x>) | |||
? | |||
ZzZombo | copy a new object to a anon var | ||
moritz | then you need whitespace around it | ||
MasterDuke | timotimo: those commits that benchable is pointing out don't seem right, either for your runs here or mine in #whateverable | 13:51 | |
14:00
kitsunenokenja joined
|
|||
ZzZombo | timotimo: please take a look at my gist when you have time. Thanks. | 14:04 | |
Also about this line `.push(my $ = Grammar::VDF::Section.new(:name<x>))`, why can it be so if I omit the assignment here, the object silently doesn't get pushed, and can't be later accessed, but first assigning it to a variable before pushing fixes it. | 14:10 | ||
my `push` method is a simple `multi method push(::?CLASS:D: *@children --> ::?CLASS:D)` that greps valid elements and appends them to internal array. | 14:11 | ||
14:14
Aaronepower left
14:18
Aaronepower joined
|
|||
Geth | doc: 446a58a949 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Type/Telemetry.pod6 Deconfuse “KBytes” See these: * github.com/torvalds/linux/blob/c9b...ys.c#L1731 * github.com/perl6/whateverable/issu...-345504033 “KBytes” is amiguous and arguably wrong. “KiB” is spot on. |
14:22 | |
synopsebot | Link: doc.perl6.org/type/Telemetry | ||
buggable | New CPAN upload: App-Cpan6-0.8.3.tar.gz by TYIL cpan.metacpan.org/authors/id/T/TY/...8.3.tar.gz | 14:23 | |
Geth | whateverable: 54cc4bb763 | (Aleks-Daniel Jakimenko-Aleksejev)++ | lib/Whateverable.pm6 Correct max-rss value See github.com/perl6/doc/commit/446a58...fdd8cce872 |
14:24 | |
doc: 1d00cdd8ba | (Jan-Olof Hendig)++ | doc/Type/Supplier.pod6 Fix broken link |
14:25 | ||
synopsebot | Link: doc.perl6.org/type/Supplier | ||
doc: a8ab80ba48 | (Jan-Olof Hendig)++ | doc/Type/Scalar.pod6 Fix formatting |
14:27 | ||
synopsebot | Link: doc.perl6.org/type/Scalar | ||
14:48
evalable6 left,
evalable6 joined
14:53
eroux left
14:54
mr-foobar left
14:59
mr-foobar joined
|
|||
ZzZombo | what does this do? | 15:02 | |
m: my @a=1,2,3;@a ,= 4; @a.say; | |||
camelia | (\Array_58169936 = [Array_58169936 4]) | ||
15:03
nhywyll joined
|
|||
timotimo | it creates an array that has itself as its first entry and a 4 after itself | 15:03 | |
the 1, 2, 3 gets replaced by the second assignment | |||
m: my @a = 1, 2, 3; @a [R,]= 4; @a.say | |||
camelia | Potential difficulties: Useless use of [R,]= in sink context at <tmp>:1 ------> 3my @a = 1, 2, 3; @a 7⏏5[R,]= 4; @a.say (\Array_71049168 = [4 Array_71049168]) |
||
buggable | New CPAN upload: App-Cpan6-0.11.0.tar.gz by TYIL cpan.metacpan.org/authors/id/T/TY/...1.0.tar.gz | ||
timotimo | ah, that bug again | 15:04 | |
15:08
Aaronepower left
15:13
wamba left
|
|||
moritz | github.com/moritz/json/issues/33 zef seems to be try to parse a .gitignore file as JSON | 15:23 | |
is that a known bug in zef? | |||
ZzZombo | can I `.append` a hash with overwriting existing values, instead of promoting them into arrays in appending them? | 15:24 | |
moritz | if you want that, you can just assign them | 15:26 | |
m: my %h = a => 1, b => 2; my %x = b => 3, c => 4; %h ,= %x; say %h.perl | |||
camelia | {:a(1), :b(3), :c(4)} | ||
15:36
araraloren left
15:45
zakharyas joined
15:48
ufobat joined
15:49
lizmat left,
zakharyas left
15:50
zakharyas joined
15:52
isBEKaml joined
|
|||
Geth | doc: 9906829d4f | (Will "Coke" Coleda)++ | xt/words.pws learn new word |
16:08 | |
doc: 6ac188200d | (Will "Coke" Coleda)++ | xt/words.pws learn new word |
|||
s0me0ne-unkn0wn | p6: my $s = supply { emit "hi!" }; $s.tap( -> $v {}); say $s.wait; | 16:20 | |
camelia | hi! | ||
s0me0ne-unkn0wn | Some inconsistency here | ||
According to docs, "method wait(Supply:D:) Waits until the supply is done (in which case it returns True) or quit (in which case it will throw the exception that was passed to quit)." | 16:21 | ||
Looks like it returns the whole payload tapped from supply instead of just True | |||
16:22
evalable6 left,
evalable6 joined
|
|||
s0me0ne-unkn0wn | Indeed event the tapping itself is not required | 16:24 | |
p6: my $s = supply { emit "hi!" }; say $s.wait; | |||
camelia | hi! | ||
s0me0ne-unkn0wn | The only question if I can rely on this behavior | 16:25 | |
16:26
comborico1611 joined
|
|||
comborico1611 | Good morning, Vietnam! | 16:26 | |
16:27
wamba joined
16:28
domidumont left
|
|||
timotimo | s0me0ne-unkn0wn: easiest way to find out is to see how it's tested in roast | 16:29 | |
16:31
astronavt joined
16:33
astronavt left,
astronavt joined
16:35
domidumont joined
|
|||
timotimo | in none of the tests in S17-supply/wait.t the wait method is called in a context that'd give a value at all | 16:38 | |
my $s = supply { emit "hi!"; emit "goobdye!" }; say $s.wait; | |||
m: my $s = supply { emit "hi!"; emit "goobdye!" }; say $s.wait; | |||
camelia | goobdye! | ||
timotimo | at least it only gives the very last value rather than saving up values | 16:39 | |
ah, yes, method wait is just "await self.Promise" | |||
s0me0ne-unkn0wn | Yes, looking at source too | ||
timotimo | and the .Promise behaviour is tested to give the last emitted value | 16:40 | |
maybe all that wants changing is to have method wait(--> True) { await self.Promise } | |||
s0me0ne-unkn0wn | I see, thank you. Going to use `wait` in boolean context then :) | 16:44 | |
timotimo | i'd wait in sink context | 16:45 | |
16:46
Aaronepower joined
16:48
astronavt left
16:50
astronav_ joined
16:56
astronav_ left
17:08
astronavt joined
17:10
astronavt left
17:12
zakharyas left
17:22
___luke___ joined,
isBEKaml left
|
|||
___luke___ | Hello, while golfing a perl 6 program, I ended up with $_??A!!B (where A and B are statements). $_ can be 0..5. Is there a shorter way to achieve the same functionality? | 17:24 | |
17:24
mr-foobar left
|
|||
___luke___ | As $_ is the default argument to a lot of funtions, I think there's something shorter, but I'm not sure as to what exactly. | 17:25 | |
moritz | well, you can call methods on $_ with a shortcut | ||
m: $_ = 42; .say | |||
camelia | 42 | ||
moritz | but I know nothing shorter than ?? !! for an if/else or ternary operator | ||
___luke___ | Yeah, but A and B are strings. My code basically looks like say $_??"stringA"x$_!!"StringB"for ^6 | 17:26 | |
17:28
mr-foobar joined
|
|||
___luke___ | Also, how come I can't do "="x10, but instead have to insert a space between the x and the 1? | 17:28 | |
17:28
eroux joined
|
|||
AlexDaniel | ___luke___: use ⑩ instead of 10 | 17:29 | |
___luke___: as for ?? !!, I don't know any shorter way to do it, unfortunately | |||
___luke___ | Is ⑩ 1 byte or 2? | 17:30 | |
AlexDaniel | well… it's one character :) | ||
the number of bytes will depend on the encoding… | 17:31 | ||
___luke___ | Sadly, codegolf.stackexchange uses bytes ;-) | ||
17:31
mson joined
|
|||
AlexDaniel | in what encoding? | 17:31 | |
well, let's assume utf8 | |||
___luke___ | You can pick that yourself | ||
AlexDaniel | m: say ‘⑩’.encode | ||
camelia | utf8:0x<e2 91 a9> | ||
AlexDaniel | that's three | ||
___luke___ | So it doesn't save anything... | ||
AlexDaniel | ___luke___: fwiw, for unicode-aware golfing there's code-golf.io/ | 17:33 | |
___luke___ | Yeah, but the high scores of others slightly demotivate me ;) | ||
I'll first practise some more | |||
Thanks for the tip though | |||
AlexDaniel: I wonder, does your solution still count if it's exactly the same as the solution of someone else? | 17:36 | ||
AlexDaniel | ___luke___: yes | 17:37 | |
17:37
eliasr left
|
|||
AlexDaniel | but solutions are not shown, so copy-pasting is unlikely | 17:37 | |
___luke___ | Hmm, that explains all the 19-byte quines | ||
AlexDaniel | well, yeah, unless we're talking about the quine task… it's rather obvious (or takes 1 minute of googling) | 17:38 | |
fwiw here's my perl 6 solution, but it's not competitive | |||
huggable: quine | |||
huggable | AlexDaniel, BEGIN {use nqp;put nqp::getlexdyn(‘$/’)} | ||
AlexDaniel | m: BEGIN {use nqp;put nqp::getlexdyn(‘$/’)} | ||
camelia | BEGIN {use nqp;put nqp::getlexdyn(‘$/’)} | ||
___luke___ | O.o | ||
How does that even work? | 17:39 | ||
AlexDaniel | in fact, even rosettacode quine is shorter: rosettacode.org/wiki/Quine#Perl_6 | ||
17:39
kitsunenokenja left
|
|||
AlexDaniel | ___luke___: perl 6 is parsed with perl 6, sort of. So you can actually manage to get the source code that is being parsed | 17:40 | |
___luke___ | That feels like cheating ;) | ||
ugexe | m: say (“foo” x 0).Bool | ||
camelia | False | ||
AlexDaniel | just printing $/ will not give the whole source file I think | 17:41 | |
m: say 42; BEGIN {use nqp;put nqp::getlexdyn(‘$/’)} | |||
camelia | BEGIN {use nqp;put nqp::getlexdyn(‘$/’)} 42 |
||
17:41
comborico1611 left
|
|||
ugexe | No ??!! needed, just || | 17:41 | |
AlexDaniel | m: say 42; BEGIN {use nqp;put nqp::getlexdyn(‘$/’).orig} | ||
camelia | say 42; BEGIN {use nqp;put nqp::getlexdyn(‘$/’).orig} 42 |
||
17:41
darkmorph joined
|
|||
AlexDaniel | but .orig will :) | 17:41 | |
17:41
darkmorph left
|
|||
AlexDaniel | ___luke___: isn't cheating the whole point of code golf? :) | 17:42 | |
___luke___ | ugexe: fair enough. However, A is not the empty string when $_ is 0. I slightly simplified my code. | ||
17:43
kitsunenokenja joined
|
|||
___luke___ | Since I've started golfing, I golf by SE's rules. One of their quine rules is that you can't read your own source file | 17:43 | |
So I guess that has also become my "moral standpoint" | 17:44 | ||
However, I think your solution looks really nice. | |||
The long function name is a pity though | |||
AlexDaniel | yeah, and you also need BEGIN so that it is compile-time, otherwise it doesn't work | 17:45 | |
17:47
Aaronepower left
|
|||
___luke___ | If you're interested, here's my current solution: codegolf.stackexchange.com/a/148419/63774. Maybe you see some golfing opportunities... | 17:47 | |
17:47
Aaronepower joined
|
|||
AlexDaniel | lol what a wonderful task | 17:48 | |
___luke___: doesn't look like you're saving anything by using ?? !! | 17:52 | ||
___luke___: you can just use two “say“ statements with the same result | |||
___luke___ | But then I need to add 2 bytes to my range to specify that I want to start at 1 | 17:53 | |
AlexDaniel | ooh didn't see that | 17:54 | |
17:55
mr-foobar left
|
|||
AlexDaniel | ___luke___: well, I'd write it like this: gist.github.com/AlexDaniel/aa9e295...cfedbb3ae1 | 17:57 | |
___luke___ | That's... different | 17:58 | |
17:58
mr-foobar joined
|
|||
___luke___ | That saves 1 byte | 17:59 | |
Nice use of the unnamed variable thing | |||
Still trying to get used to that, since it's not in any previous language I've learned | 18:00 | ||
AlexDaniel | ___luke___: the really nice thing about it is xx | ||
because in some cases you can use that instead of a for loop | |||
and it makes a difference sometimes | 18:01 | ||
___luke___ | Yeah, though I don't really understand how that causes "say" to be executed 5 times... | ||
AlexDaniel | exactly! | ||
18:03
astronavt joined
18:04
kitsunenokenja left
18:05
kitsunenokenja joined
18:09
astronavt left
|
|||
___luke___ | I'll just accept that as a quirk of perl 6 | 18:09 | |
AlexDaniel | ___luke___: there's a way to save one more byte | 18:10 | |
___luke___ | Is there a way to tell without testing when it will work and when it won't work? | ||
AlexDaniel | ___luke___: gist.github.com/AlexDaniel/aa9e295...cfedbb3ae1 | 18:11 | |
18:11
Aaronepower left
|
|||
AlexDaniel | ___luke___: but if I'm not mistaken, the saving comes from x$--+5 | 18:11 | |
so you can do that in the previous solution as well | |||
___luke___: as for your question, I don't really understand it | |||
___luke___ | Thanks a lot for that as well! | 18:12 | |
AlexDaniel | though the last solution probably has some trailing whitespace, maybe | ||
___luke___ | Trailing whitespace doesn't matter | 18:13 | |
timotimo | u: exclamation | ||
unicodable6 | timotimo, U+0021 EXCLAMATION MARK [Po] (!) | ||
timotimo, U+00A1 INVERTED EXCLAMATION MARK [Po] (¡) | |||
timotimo, 24 characters in total: gist.github.com/f691763288348d90bb...88ee836583 | |||
___luke___ | But I just merged both your solutions | ||
timotimo | u: question | 18:14 | |
unicodable6 | timotimo, U+003F QUESTION MARK [Po] (?) | ||
timotimo, U+00BF INVERTED QUESTION MARK [Po] (¿) | |||
timotimo, 28 characters in total: gist.github.com/c119dcc9fe2bc724f5...e06d44ec6d | |||
timotimo | m: say Bool.pick ⁇ 1 ‼ 2 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Confused at <tmp>:1 ------> 3say Bool.pick7⏏5 ⁇ 1 ‼ 2 expecting any of: infix infix stopper postfix statement end statement modifier… |
||
timotimo | bleh :) | ||
___luke___ | AlexDaniel: Is it okay if I post it on codegolf.stackexchange (giving proper credit of course)? | 18:15 | |
AlexDaniel | no problem, that's exactly why I share this kind of stuff | ||
18:16
Aaronepower joined
|
|||
AlexDaniel | (with credit or not, I don't care) | 18:16 | |
c: ed971df say Bool.pick ⁇ 1 ‼ 2 | 18:17 | ||
committable6 | AlexDaniel, ¦ed971df: «2» | ||
AlexDaniel | timotimo: ↑ | ||
18:18
Aaronepower left
|
|||
timotimo | there was a version that allowed that? | 18:18 | |
AlexDaniel | yeah | 18:19 | |
timotimo | it regressed? | ||
AlexDaniel | no, removed deliberately rt.perl.org/Ticket/Display.html?id...xn-1453776 | 18:20 | |
___luke___ | Another golfing idea: maybe I can change the "(==========)" and "(----------)" by using the .gist of some lists... | ||
timotimo | m: say <=====> | ||
camelia | ===== | ||
timotimo | m: say <=====>.gist | ||
camelia | ===== | ||
timotimo | m: say <=====>.perl | ||
camelia | "=====" | ||
timotimo | not a list, i see | 18:21 | |
18:21
astronavt joined
|
|||
Geth | doc: jstuder-gh++ created pull request #1681: Rewrite, remove inaccurate Range truncation info |
18:21 | |
timotimo | m: say <===== =>[0] | ||
camelia | ===== | ||
timotimo | m: say <===== =>[0].gist | ||
camelia | ===== | ||
timotimo | er, yeah | ||
m: say <=====>.List.gist | |||
camelia | (=====) | ||
timotimo | loooooooooong | ||
___luke___ | m: say ("="x 10,) | 18:22 | |
camelia | (==========) | ||
___luke___ | That seems more golfy | ||
timotimo | m: say "="x10xx1 | 18:25 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Two terms in a row at <tmp>:1 ------> 3say "="7⏏5x10xx1 expecting any of: infix infix stopper postfix statement end statement modifier… |
||
timotimo | m: say "="x\10xx\1 | ||
camelia | 5===SORRY!5=== Confused at <tmp>:1 ------> 3say "="x\107⏏5xx\1 Other potential difficulties: To refer to a positional match capture, just use $0 (numbering starts at 0). Parenthesize as \(...) if you intended a capture of… |
||
timotimo | m: say "="x 10 xx 1 | ||
camelia | (==========) | ||
timotimo | m: say 1Rxx "="x 10 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Confused at <tmp>:1 ------> 3say 17⏏5Rxx "="x 10 |
||
timotimo | m: say 1 Rxx "="x 10 | ||
camelia | ========== | ||
___luke___ | m: say((<- = _>[$++]x(6,10,10)[$++],))xx 3 | ||
camelia | (------) (==========) (__________) |
||
timotimo | wrong order, huh | ||
that looks like you want the Z metaop | 18:26 | ||
m: say((<- = _>Zx(6,10,10),))xx 3 | |||
camelia | (---) (---) (---) |
||
timotimo | oops | ||
m: say(<- = _> Zx (6,10,10))xx 3 | 18:27 | ||
camelia | (------ ========== __________) (------ ========== __________) (------ ========== __________) |
||
timotimo | even worse! | ||
oh, no, even better! | |||
m: say(<- = _> Zx (6,10,10)) | |||
camelia | (------ ========== __________) | ||
timotimo | m: .say for <- = _> Zx (6,10,10) | ||
camelia | ------ ========== __________ |
||
timotimo | m: gist.say for <- = _> Zx (6,10,10) | ||
camelia | () () () |
||
timotimo | m: .gist.say for <- = _> Zx (6,10,10) | ||
camelia | ------ ========== __________ |
||
timotimo | ah, not lists any more | ||
m: .say for <- = _> Zx (6,10,10) Zxx 1 | 18:28 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Only identical operators may be list associative; since 'Zx' and 'Zxx' differ, they are non-associative and you need to clarify with parentheses at <tmp>:1 ------> 3.say for <- = _> Zx (6,10,10) Z… |
||
timotimo | m: .say for (<- = _> Zx (6,10,10)) Zxx 1 | ||
camelia | (------) | ||
timotimo | m: .say for (<- = _> Zx (6,10,10)) Xxx 1 | ||
camelia | (------) (==========) (__________) |
||
timotimo | it's *barely* shorter | ||
m: .say for (<- = _>Zx(6,10,10))Xxx1 | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing expression for 'for' statement modifier at <tmp>:1 ------> 3.say for 7⏏5(<- = _>Zx(6,10,10))Xxx1 |
||
___luke___ | Yeah, but then I need to fit it into the rest of the thing | ||
timotimo | m: .say for (<- = _>Zx(6,10,10)) Xxx 1 | ||
camelia | (------) (==========) (__________) |
||
timotimo | yeah | ||
___luke___ | m: .say for (<- = _>Zx(6,10,10).List) | 18:29 | |
camelia | ------ ========== __________ |
||
___luke___ | m: .say for ((<- = _>Zx(6,10,10)).List) | ||
camelia | ------ ========== __________ |
||
timotimo | it has to .List each in turn | 18:30 | |
so .List.say for example would do ti | |||
___luke___ | Yeah | ||
timotimo | btw, do you know the reverse join trick? | ||
___luke___ | Don't think so | ||
timotimo | m: say <( )>.join("hello, how are you") | ||
camelia | (hello, how are you) | ||
timotimo | it joins the "(" and ")" by putting the string in between | ||
___luke___ | I briefly tried that in one of my previous attempts, but it didn't work | 18:31 | |
timotimo | don't think it helps here, but it's probably a neat trick in general | ||
AlexDaniel | it is, and that's the first time I hear about it XD | ||
maybe because in most cases you'd probably do this anyway: | 18:33 | ||
m: put ‘(’,"hello, how are you",‘)’ | |||
camelia | (hello, how are you) | ||
18:33
isBEKaml joined
|
|||
___luke___ | m: say <( )>.join("="x 10) | 18:33 | |
camelia | (==========) | ||
18:33
isBEKaml left
|
|||
___luke___ | m: say "(","="x 10,")" | 18:34 | |
camelia | (==========) | ||
timotimo | it's true | ||
but i love how it puts the parens right next to each other | |||
then again, there's | |||
m: say (1234).fmt: "(%s)" | |||
camelia | (1234) | ||
timotimo | m: say (1234).fmt: "<%s>" | 18:35 | |
camelia | <1234> | ||
18:37
kitsunenokenja left,
kitsunenokenja joined
|
|||
___luke___ | m: say .fmt:"(%s)"for ("-"x 8,"="x 10, "_"x 10) | 18:40 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Confused at <tmp>:1 ------> 3say .fmt:7⏏5"(%s)"for ("-"x 8,"="x 10, "_"x 10) expecting any of: colon pair |
||
___luke___ | m: say .fmt: "(%s)"for ("-"x 8,"="x 10, "_"x 10) | ||
camelia | (--------) (==========) (__________) |
||
timotimo | i'm surprised you can put a postfix for after a method with colon form | ||
___luke___ | Yeah | ||
Won't complain though ;P | 18:41 | ||
timotimo | positively surprised | 18:42 | |
18:42
Aaronepower joined
18:49
darutoko left
19:14
nhywyll left
19:19
kaare_ left
19:20
kaare_ joined,
eliasr joined
|
|||
___luke___ | say .fmt: "(%s)"for <- = _>Zx(6,10,10) | 19:23 | |
evalable6 | (------) (==========) (__________) |
||
Geth | ecosystem: drforr++ created pull request #380: Adding META entry for Format::Lisp |
19:24 | |
19:27
nhywyll joined
|
|||
DrForr | Travis run on the repo remotely as well, neato. | 19:27 | |
19:31
SylvieLorxu left
19:32
___luke___ left
|
|||
Geth | ecosystem: 83f3a359dd | (Jeff Goff)++ | META.list Adding META entry for Format::Lisp |
19:36 | |
ecosystem: 4e63a2b5dc | (Jeff Goff)++ (committed using GitHub Web editor) | META.list Merge pull request #380 from drforr/drforr-Format-Lisp Adding META entry for Format::Lisp |
|||
19:39
kaare_ left
19:43
kaare_ joined
|
|||
Geth | book: 9481b4d518 | (Moritz Lenz)++ | 2 files Convert README to markdown |
19:50 | |
19:51
domidumont left
|
|||
Geth | book: 7e76ade5b2 | (Moritz Lenz)++ | README.md README: add link to perl6book.com |
19:53 | |
moritz | I'm not reviving this zombie, just updating the README with pointers to modern resources | 19:54 | |
20:09
R0b0t1_ left
20:11
R0b0t1_ joined
20:26
mr-foobar left
|
|||
s0me0ne-unkn0wn | Okay, I'm probably too narrow-minded to realize that supply/wait concept. | 20:27 | |
p6: my $s = supply { emit "1"; emit "2"; say "tapped"; }; $s.tap( -> $v { say $v }); $s.wait; | |||
camelia | 1 2 tapped tapped |
||
s0me0ne-unkn0wn | That is, when we're wait()ing for our supply, we're tapping the supply once again, re-running all the code inside supply{} and re-emitting everyting. | 20:28 | |
20:28
mr-foobar joined
|
|||
s0me0ne-unkn0wn | But in the real world supply{} code is not just "emit 1", it can include sql queries to remote servers and even side-effects like emitting an output of /dev/random | 20:28 | |
Do we really want to redo all the job just to make sure supply is done emitting?! | |||
moritz | m: my $s = supply { emit "1"; emit "2"; say "tapped"; }; $s.tap( -> $v { say $v }); | 20:30 | |
camelia | 1 2 tapped |
||
moritz | m: my $s = supply { emit "1"; emit "2"; say "tapped"; done; }; $s.tap( -> $v { say $v }); $s.wait | ||
camelia | 1 2 tapped tapped |
||
moritz kinda surprised | 20:31 | ||
s0me0ne-unkn0wn too | 20:32 | ||
method wait(Supply:D:) { await self.Promise } | 20:33 | ||
method Promise(Supply:D:) { | |||
my $p = Promise.new; | |||
my $v = $p.vow; | |||
my $final := Nil; | |||
my $t = self.tap: | |||
-> \val { $final := val }, | |||
done => { $v.keep($final) }, | |||
quit => -> \ex { $v.break(ex) }; | |||
$p | |||
} | |||
The exact wait() code from 2017.10 | |||
20:37
ryn1x_ joined
20:40
Ven joined,
Ven is now known as Guest57431
|
|||
s0me0ne-unkn0wn | ufobat: pls pay attention to that wait() behavior | 20:43 | |
ufobat | ? | ||
s0me0ne-unkn0wn | ufobat: HTTP::Server::Ogre::HTTP1Protocol is affected | 20:44 | |
^^^ | |||
ufobat: supply{} returned to app() is tapped twice | 20:45 | ||
ufobat | the $body-supply.wait() thingy? | 20:48 | |
s0me0ne-unkn0wn | Exactly | ||
Not sure how to work around it | 20:49 | ||
Probably Supply.grab() | |||
ufobat | why not done => { $conn.close() } in the call to .tap? | ||
s0me0ne-unkn0wn | Agree, much better | 20:53 | |
ufobat | and quit => ... with the same code, just in case we're exiting somehow | 20:54 | |
does this double tap has any negative impact | |||
i think the wait blocks somehow, right? | |||
s0me0ne-unkn0wn | Yes, look at a chatlog 20 messages up | 20:55 | |
moritz | wait returns a promise | ||
and a promise in sink context blocks | |||
s0me0ne-unkn0wn | A promise result indeed, which is the last value emitted by supply() | 20:56 | |
A promise result indeed, which is the last value emitted by supply{} | |||
ufobat | that's not so cool :-( | ||
i am going to fix it now :) | |||
s0me0ne-unkn0wn | Thanks! Would be great. Very strange wait() behavior indeed. | 20:58 | |
20:59
MasterDuke left
21:00
MasterDuke joined
|
|||
ufobat | I am wondering where I did copy this code before.. | 21:02 | |
s0me0ne-unkn0wn, pushed, but didn't increase the version, fyi | |||
s0me0ne-unkn0wn | Thank you! | 21:06 | |
ufobat | welcome | 21:08 | |
tyil | when trying to install App::Cpan6 with zef, it says its missing Template::Mustache, but that's in the "depends" block in the META6.json, is there any reason zef is not installing Template::Mustache? | 21:09 | |
21:10
Guest57431 left
|
|||
s0me0ne-unkn0wn | tyil: Mine installed Template::Mustache but tells me Terminal::Readsecret is missing | 21:13 | |
21:13
Ven joined
|
|||
tyil | hmm | 21:13 | |
21:13
Ven is now known as Guest38788
|
|||
tyil | that one seems to be truly missing from the depends list, that's my mistake | 21:14 | |
21:15
ryn1x_ left
|
|||
tyil | lets fix that first :> | 21:16 | |
21:17
___luke___ joined
|
|||
___luke___ | m: print " .-@@-.\n (======)\n ";say ($_,)for <- = _>Zx(8,10,10);say(' 'x++$,'\/'x$--+5)xx 5 | 21:18 | |
camelia | .-@@-. (======) (--------) (==========) (__________) \/\/\/\/\/ \/\/\/\/ \/\/\/ \/\/ \/ |
||
___luke___ | Oh well, that looks like a nice ice cream with actual newlines | 21:19 | |
Anyways, that's 90 bytes, which ties it with the other approach | |||
If anyone sees an opportunity for golfing, please let me know | 21:21 | ||
tyil | you can use say instead of print | 21:22 | |
oh nvm, you want some spaces after the last newline | |||
buggable | New CPAN upload: App-Cpan6-0.11.1.tar.gz by TYIL cpan.metacpan.org/authors/id/T/TY/...1.1.tar.gz | 21:23 | |
___luke___ | Yep | 21:24 | |
Is there a function that mirrors a string? | |||
moritz | m: say 'abc'.flip | 21:25 | |
camelia | cba | ||
tyil | mirror as in make the same, or reverse it? | ||
___luke___ | Reverse it | ||
.flip is what I need | |||
moritz | flip | ||
flip the dice! | |||
or... something like that :-) | |||
21:26
ryn1x_ joined,
mr-foobar left
21:28
mr-foobar joined
|
|||
___luke___ | m: say for map:{$_~.flip}(" .-@"," (==="," (----","(=====","(_____");say(' 'x++$,'\/'x$--+5)xx 5 | 21:29 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Unsupported use of bare "say"; in Perl 6 please use .say if you meant to call it as a method on $_, or use an explicit invocant or argument, or use &say to refer to the function as a noun at <tmp>:1… |
||
___luke___ | m: .say for map:{$_~.flip}(" .-@"," (==="," (----","(=====","(_____");say(' 'x++$,'\/'x$--+5)xx 5 | ||
camelia | ===SORRY!=== Cannot find method 'has_compile_time_value' on object of type NQPMu |
||
___luke___ | ? | ||
m: .say for map:{$_~.flip},(" .-@"," (==="," (----","(=====","(_____");say(' 'x++$,'\/'x$--+5)xx 5 | 21:31 | ||
camelia | ===SORRY!=== Cannot find method 'has_compile_time_value' on object of type NQPMu |
||
___luke___ | m: .say for (map:{$_~.flip},(" .-@"," (==="," (----","(=====","(_____"));say(' 'x++$,'\/'x$--+5)xx 5 | ||
camelia | ===SORRY!=== Cannot find method 'has_compile_time_value' on object of type NQPMu |
||
___luke___ | I have no idea what this error means... | ||
21:32
mattp__ left
21:34
mattp__ joined
21:35
Brumbazz joined
|
|||
___luke___ | Either way, it's not going to work because this is already a few bytes too long, and .flip also doesn't reverse parentheses | 21:35 | |
s0me0ne-unkn0wn | m: .say for (map {$_~.flip},(" .-@"," (==="," (----","(=====","(_____"));say(" "x++$,"\/"x$--+5)xx 5 | 21:36 | |
camelia | .-@@-. (======( (--------( (==========( (__________( ///// //// /// // / |
||
Brumbazz | Hi guys. I'm using AnyEvent-XMPP(perl5) in my perl6 project. So far I don't get any errors during compilation when I run my script, however after it print's some text is crashed with a "[2] 708 segmentation fault perl6 xmpp_who_am_i.pl" | ||
21:36
ryn1x_ left
|
|||
Brumbazz | So my question is, how the hell do I debug that ? :/ Thanks in advance :> | 21:36 | |
It seems like the crash happens when I try to register a callback using AnyEvent's reg_cb() but I don't know how to do deeper debugging :/ | 21:37 | ||
21:38
___luke___ left
21:39
mattp__ left
|
|||
tyil | ===> Testing: LibraryMake:ver<1.0.0>:auth<github:retupmoca> | 21:39 | |
./test: error while loading shared libraries: libtommath.so.1: cannot open shared object file: No such file or directory | |||
# Failed test 'Binary runs!' | 21:40 | ||
this is bad, right? | |||
21:43
cdg joined
21:46
MasterDuke left
|
|||
tyil | heh, I seem to have libtommath .42 | 21:48 | |
rakudobrew build moar 2017.10 didn't complain about it, tho | |||
21:57
emers2n joined
22:04
mattp_ joined
22:05
Aaronepower left
|
|||
Brumbazz | gdb says: #0 0x00007ffff4916793 in p5_is_wrapped_p6_object (my_perl=0x34dc9d0, obj=0x38c8488) at p5helper.c:849 | 22:06 | |
22:07
cdg left
22:08
cdg joined
|
|||
geekosaur | ugh. I think you need to talk with nine | 22:09 | |
22:09
Guest38788 left
|
|||
geekosaur | (author of inline-p5 stuff) | 22:10 | |
Brumbazz | geekosaur: ahh nice, thanks :> | ||
geekosaur | it does still occasionally throw these kinds of problems down in the guts of converting objects between p5 and p6, it's kinda nasty in there | 22:11 | |
Brumbazz | I see :/ | ||
Does he usually come by IRC ?:> | |||
22:11
MasterDuke joined
|
|||
timotimo | tyil: it should probably use the libtommath that moarvm was compiled with. that may be your system libtommath if you configured moarvm with --has-libtommath | 22:12 | |
geekosaur | they are idling in here now, but apparently not around right now | ||
Brumbazz | geekosaur: Alright, thanks :> | 22:13 | |
geekosaur | there's lways leaving messages with the bot, if you're on opposite sides of the world timezone-wise or etc. | ||
tyil | timotimo: I updated libtommath to use 1.0 and rebuild moar, seems to work again :> | ||
geekosaur | .tell nine [19 21:36:17] <Brumbazz> Hi guys. I'm using AnyEvent-XMPP(perl5) in my perl6 project. So far I don't get any errors during compilation when I run my script, however after it print's some text is crashed with a "[2] 708 segmentation fault perl6 xmpp_who_am_i.pl" | ||
yoleaux | geekosaur: I'll pass your message to nine. | ||
Brumbazz | geekosaur: ahh smort, thanks :> | ||
thanks yoleaux :> | 22:14 | ||
timotimo | tyil: cool, but wouldn't moar install its libtommath to the system? | ||
tyil | I dont know, it seems something went wrong with it | ||
I'm not too sure on the details going on with rakudobrew build, sorry | 22:15 | ||
timotimo | might need a specific library path | ||
22:16
BenGoldberg joined
22:19
mingdao left
22:20
ryn1x_ joined,
mingdao joined
22:26
robertle left
22:29
unicodable6 left
22:30
unicodable6 joined
22:32
astronavt left,
astronavt joined,
astronavt left
|
|||
ugexe | m: say $*VM.config<tomlib> | 22:34 | |
camelia | 3rdparty/libtommath/libtommath.a | ||
s0me0ne-unkn0wn | m: my $s = supply { emit False }; say $s.wait; | 22:36 | |
camelia | False | ||
s0me0ne-unkn0wn | That Supply.wait() thing is COMPLETELY BROKEN | ||
22:36
astronavt joined,
astronavt left
22:38
emers2n left
22:40
nhywyll left
22:41
Cabanossi left
|
|||
timotimo | jnthn: what is sigilles? :) :) | 22:42 | |
22:42
setty1 left,
wamba left
22:43
Cabanossi joined
|
|||
jnthn | A typo? :) | 22:44 | |
MasterDuke | jnthn: this was caught from a segv in bisectables tests. see anything helpful? gist.github.com/MasterDuke17/65904...20385edb6f | 22:45 | |
jnthn | s0me0ne-unkn0wn: The example you just rn did exactly what is expected. | 22:46 | |
*an | |||
*ran, even | |||
MasterDuke: Not really, without any futher debug symbols | 22:47 | ||
22:47
itaipu joined
|
|||
MasterDuke | will try to get them | 22:48 | |
22:48
benchable6 left,
unicodable6 left,
releasable6 left,
quotable6 left,
greppable6 left,
evalable6 left,
nativecallable6 left,
bloatable6 left,
statisfiable6 left,
bisectable6 left,
tangible6 left,
committable6 left,
coverable6 left,
squashable6 left
22:50
mson left,
sena_kun left
22:52
markmont left
22:55
ryn1x_ left
|
|||
Geth | doc: 4757c99431 | (Jonathan Worthington)++ (committed using GitHub Web editor) | doc/Type/Supply.pod6 Make Supply.wait and related docs more precise Make it very clear that these methods all perform a `.tap` and start a flow of values. For those who understand the `Supply` model well already, it will be clear that this is the only way it could work, but there is a tendency to assume that the C<wait>, in particular, somehow could relate to an earlier tapping. Also correct the `wait` return value documentation, and describe the error semantics of other methods. |
23:02 | |
synopsebot | Link: doc.perl6.org/type/Supply | ||
jnthn | Hopefully that helps | ||
Bah, thanks for not wrapping that to 72 columns, github. :/ | 23:03 | ||
Geth | doc: f323788c26 | (Tom Browder)++ (committed using GitHub Web editor) | doc/Language/glossary.pod6 add two more irc abbreviations |
||
synopsebot | Link: doc.perl6.org/language/glossary | ||
23:04
vike left,
ryn1x_ joined
23:05
Aceeri_ left
23:10
mr-foobar left,
vike joined
|
|||
timotimo | ouch | 23:15 | |
s0me0ne-unkn0wn | jnthn: Thanks a lot, it would make it much more clear. The behavior shown may be expected by core developer but not by someone who's just reading docs and sees different result :) | 23:17 | |
jnthn | s0me0ne-unkn0wn: Yeah, once I looked at the docs I much better understood the confusion. | ||
They were just plain wrong for .wait, unfortunately | |||
s0me0ne-unkn0wn | The question remains, why the heck Supply.wait() is needed at all if we cannot event collect values emitted by tapped supply{}. Is't list() and grab() enough? | 23:18 | |
23:19
cdg_ joined
|
|||
jnthn | Primarily, when all that's wanted is the side-effects, or when it's known that it's a one-value Supply | 23:19 | |
s0me0ne-unkn0wn | Got it, thank you! | 23:20 | |
23:22
cdg_ left,
cdg left
|
|||
jnthn | s0me0ne-unkn0wn: Thanks for the IO::Socket::Async::SSL patch, btw ;) | 23:23 | |
*:) even | |||
s0me0ne-unkn0wn | Welcome! Much more have to be done there and I don't really know if the original behavior of importing PKCS12 whould be re-implemented. Never seen it ever been used by anyone :) | 23:25 | |
timotimo | :my $*GOAL := $<sym> eq '??' ?? '!!' !! '‼'; | 23:27 | |
this amuses me | |||
jnthn | Help is very much welcome on that module; I'm far from the ideal person to be maintaining it in that I'm not particularly well versed in the area. | 23:30 | |
I just happened to have the nativecall and async background to make the thing work. :) | 23:31 | ||
MasterDuke | jnthn: is this any better: gist.github.com/MasterDuke17/0312d...facc45343c ? | ||
jnthn | Oh, that's...interesting | 23:32 | |
Though unfortunately it could still be a fairly generic case of memory corruption | 23:33 | ||
Do you have chance to run it in a MoarVM with #define MVM_GC_DEBUG 1 | |||
(Just tweaking the flag in src/gc/debug.h and make install should do it) | 23:34 | ||
MasterDuke | i'll try, but my previous attempt at rebuilding MoarVM inside rakudobrew didn't work very well | ||
jnthn | Make sure not to re-run the configure script :) | ||
timotimo | jnthn: is there any benefit to keeping a third worklist that just gives us the root object for every address we put into the regular worklist? | ||
jnthn | timotimo: For what purpose? | 23:35 | |
s0me0ne-unkn0wn | I'm very new to Perl 6 so I need to master nativecalls better before proceeding with it... For example, I have no idea how to declare nativecall which returns openssl's STACK_OF(X509) by reference. Going to dig some docs :) | ||
timotimo | so, like, we could look up what was responsible for putting the link in? | ||
in case of a crash; this would be compile-time-optional, of course | |||
jnthn | Oh | ||
Well, in theory perhaps yes, but we already have a debug version of add_to_worklist | |||
Which MVM_GC_DEBUG turns on | |||
timotimo | ok, but what i'm worrying about is the distance between adding something to the worklist and when it asplodes | 23:36 | |
jnthn | And we can detect plenty of issues at that point | ||
timotimo | that's fair | ||
tyil | "..." yields no results on docs.perl6.org, what would be the recommended page to use instead for its use in methods ( `{ ... }` ) | ||
jnthn | Like in this case, we could look at the sc index of the object being added in the debug version of add to worklist, for example | ||
MasterDuke | jnthn: i don't remember, does that create any extra output? | 23:37 | |
jnthn | Though if it's a totally busted object header, then there's a good chance the existing checks (like for bogus thread ID) will catch it | ||
MasterDuke: It panics | |||
So in gdb you'd b MVM_panic | |||
MasterDuke | k | ||
jnthn | And then run it | ||
Or in perl6-gdb-m, Ctrl+C, b MVM_panic, and continue :) | |||
MasterDuke | heh. i'm a couple layers deep in processes, but i'll see what i can do | 23:38 | |
timotimo | i wonder about putting in redzones between header and body of objects and maybe in front of the header, too | ||
either to mark them in valgrind or to check their contents every now and then for out-of-bounds writes | |||
AlexDaniel | jnthn: should I create a ticket for that? There's no useful way to reproduce it… | ||
I mean, we're seeing it fail every time here in whateverable tests, but that includes so much stuff… | 23:39 | ||
jnthn | AlexDaniel: On the one hand, a ticket to track a bug is good. On the other hand, a ticket that can't provide a way to reproduce the issue isn't liable to go far. :S | 23:42 | |
AlexDaniel: How hard is it to run the test suite? | |||
Does it actually need to connect to IRC? | |||
AlexDaniel | jnthn: yes, it needs a local irc server + a few hundred rakudo builds… | 23:43 | |
jnthn | Goodness | ||
I think, given how stuck I am generally for time, there's very little chance of me reproducing that setup | |||
AlexDaniel | jnthn: oh, and then tens of modules… | ||
MasterDuke | hm. is there a way to set a breakpoint via a config file? | ||
23:44
Rawriful joined
|
|||
AlexDaniel | it is kind of tracked here: github.com/perl6/whateverable/issu...-345493646 | 23:44 | |
jnthn | Given an SSH account on a machine where that's set up, I might well be able to make progress | ||
Well, of course provided there's debug tools on that machine | |||
timotimo | MasterDuke: the exprjit has something, but it's not necessarily what you're looking for | ||
AlexDaniel | that's easy to do | ||
jnthn | OK, then file the ticket and say who to contact for it :) | ||
AlexDaniel | jnthn: which key? github.com/jnthn.keys | ||
jnthn | ah, or that | 23:45 | |
lemme look | |||
MasterDuke | it happens in a spawned process and for some reason won't restart after it first segvs and then i `b MVM_panic` | ||
jnthn | lol, it doesn't tell me the names of those keys | ||
Ulti | mst: is this video under your control? | ||
www.youtube.com/watch?v=ENvmfoIclU8 | |||
jnthn | AlexDaniel: So, "whichever one has fingerprint b2:63:d0:dd:99:b2:28:34:3d:0a:ae:69:14:c7:3d:3f" :P | 23:46 | |
Otherwise, I can tell you tomorrow when I'm at the machine I spent most of my time working at :) | 23:47 | ||
MasterDuke | jnthn: fyi, /home/bisectable/git/whateverable/t/lib/Testable.pm6 line 45 was edited to execute perl6-gdb-m | 23:48 | |
AlexDaniel | jnthn: I'll just add all of them. Big deal. | ||
jnthn | AlexDaniel: I was wondering whether to cull any, and then realized that they're all places I hack :) | 23:49 | |
And so I'm using the bunch :) | |||
AlexDaniel | jnthn: what about ssh [email@hidden.address] | 23:50 | |
success or not? Or you can't try now? | |||
jnthn | MasterDuke: If you can specify gdb args then you can pass -x foo where foo contains commands, iirc | ||
AlexDaniel: Yes, that works | 23:51 | ||
AlexDaniel | jnthn: so you can run the tests with: perl6 t/bisectable.t | 23:52 | |
and it takes time… but once it reaches “Did you mean …” tests it will crash | 23:53 | ||
the actual process that crashes is started from the file mentioned by MasterDuke | |||
jnthn is impressed that these bots have an apparently good size test suite, even if it needs quite a lot to run | 23:54 | ||
p sc_idx | 23:55 | ||
$1 = <optimized out> | |||
well darn :) | |||
23:56
kitsunenokenja left
|
|||
jnthn | sc = {sc_idx = 1484589880 | 23:56 | |
...well, yeah, that's on the large size... | 23:57 | ||
m: say 148.base(2) | 23:59 | ||
camelia | 10010100 |