»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
00:13 nick__ left 00:17 w17t joined, p6bannerbot sets mode: +v w17t, shlomif left 00:22 Manifest0 left, Manifest0 joined 00:23 p6bannerbot sets mode: +v Manifest0 00:37 pecastro left
vrurg Can't recall: does supply {} control start a new thread? 00:38
leont No 00:50
It's more like a coroutine 00:51
jnthn supply { } doesn't in the immediate do anything until it's tapped, and then its setup logic runs on the thread that calls .tap; all `whenever`s run on the thread that sends the message, subject to the one-message-entirely-processed-at-a-time rule (which is enforced per tapping; think of a supply a bit like a class and each tapping of it like an object) 00:54
vrurg Thanks! That's what I was missing in it. 01:01
01:06 aborazmeh left 01:08 kurahaupo left 01:09 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo
Kaiepi m: role A { has $.a; submethod TWEAK(:$!a) {} }; role B does A { method new(*%args) { self.bless: |%args } }; class C does B { has $.b; }; my C $c .= new: :1a, :2b; say $c.a, ' ', $c.b 01:27
camelia 1 2
Kaiepi PERFECT
that's exactly what i need to be able to do for what i'm writing
01:27 ferreira left 01:31 zachk left 01:49 Actualeyes joined 01:50 p6bannerbot sets mode: +v Actualeyes 01:54 lizmat left
b2gills Kaiepi: You didn't need to add `method new` 01:55
01:55 melezhik joined, p6bannerbot sets mode: +v melezhik
b2gills m: role A { has $.a; submethod TWEAK(:$!a) {} }; role B does A { }; class C does B { has $.b; }; my C $c .= new: :1a, :2b; say $c.a, ' ', $c.b 01:55
camelia 1 2
melezhik Hi! If there are range operators in Perl6, like in Perl5: /regexp/ .. /regexp/ ...
b2gills Actually you didn't need TWEAK either 01:56
m: role A { has $.a; }; role B does A { }; class C does B { has $.b; }; my C $c .= new: :1a, :2b; say $c.a, ' ', $c.b
camelia 1 2
b2gills melezhik: ff and fff
docs.perl6.org/language/5to6-perlop 01:57
Kaiepi it's a bad example b2gills
melezhik thanks b2gills
I've found this one - docs.perl6.org/routine/ff
anyway now I know the word ((-: 01:58
Kaiepi in the code i'm writing i'm using private attributes in A and B and adding extra attributes in C
er, just A
so i need TWEAK there
but you're right about not needing new
b2gills I sometimes declare a variable as public just so that BUILD is created for me 01:59
s/variable/attribute/
02:11 Actualeyes left 02:20 jeek joined 02:21 p6bannerbot sets mode: +v jeek 02:27 leont left 02:32 melezhik left 02:38 Kaiepi left 02:41 molaf left 02:54 molaf joined, ferreira joined 02:55 p6bannerbot sets mode: +v molaf, p6bannerbot sets mode: +v ferreira 03:01 kurahaupo left 03:02 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo 03:49 MasterDuke left 03:50 Khisanth left 04:09 Khisanth joined, p6bannerbot sets mode: +v Khisanth 04:34 kurahaupo left 04:41 Kaiepi joined, p6bannerbot sets mode: +v Kaiepi
Kaiepi so i wrote a Crypt::Mode library to allow people writing cryptography libraries to use CFB, ECB, OFB, CFB, CTR block cipher modes with them easily 04:42
to test it i used it on my own Crypt::CAST5 library
only to find it's broken and i have to rewrite it
:|
should've tested it better before i released v0.0.1 04:45
04:47 cpan-p6_ joined
cpan-p6_ 03cpan-p6_ reporting for duty! [Perl 6] 02git.tyil.nl/perl6/app-cpan-uploadnotifierbot 04:47
04:48 p6bannerbot sets mode: +v cpan-p6_ 04:57 smallick joined 04:58 p6bannerbot sets mode: +v smallick
smallick m: (1, 2, 3, *+*+* ... *)[^20].say 04:59
camelia (1 2 3 6 11 20 37 68 125 230 423 778 1431 2632 4841 8904 16377 30122 55403 101902)
smallick m: my $a = 1, 2, 3; my @a = 1, 2, 3; .WHAT.perl.say for ($a, @a) 05:01
camelia WARNINGS for <tmp>:
Int
Array
Useless use of constant integer 3 in sink context (lines 1, 1)
Useless use of constant integer 2 in sink context (lines 1, 1)
smallick m: my $a = (1, 2, 3); say $a 05:02
camelia (1 2 3)
smallick my $a = (1, 2, 3); $a.WHAT.perl.say 05:03
evalable6 List
05:03 cpan-p6 left
smallick say List ~~ Array 05:03
evalable6 False
smallick my $a; say $a ~~ Any:U 05:04
evalable6 True
05:05 smallick left 05:06 cpan-p6 joined 05:07 p6bannerbot sets mode: +v cpan-p6 05:10 cpan-p6 left 05:14 molaf left 05:34 smallick joined 05:35 p6bannerbot sets mode: +v smallick, smallick left 06:18 nelsonhb joined 06:19 p6bannerbot sets mode: +v nelsonhb 06:32 hythm_ joined, p6bannerbot sets mode: +v hythm_
hythm_ Hello, is it possible to access a class variable from the class instance? 06:33
p6: class C { my %h }; my $c = C.new; # can $c access %h? 06:35
camelia ( no output )
hythm_ p6: class C { my %h }; my $c = C.new; say $c.h 06:39
camelia No such method 'h' for invocant of type 'C'
in block <unit> at <tmp> line 1
06:55 random_yanek left 06:59 hythm_ left 07:06 jmerelo joined, p6bannerbot sets mode: +v jmerelo 07:07 random_yanek joined
jmerelo releasable6: status 07:07
07:07 p6bannerbot sets mode: +v random_yanek
releasable6 jmerelo, Next release will happen when it's ready. 5 blockers. 113 out of 239 commits logged (⚠ 41 warnings) 07:07
jmerelo, Details: gist.github.com/6220cd3d182fae1199...97f6a49353
07:11 nelsonhb left 07:48 orevdiabl left, revdiablo joined, p6bannerbot sets mode: +v revdiablo 07:51 molaf joined, p6bannerbot sets mode: +v molaf 08:29 molaf left
jmerelo m: say Pod::Config.^mro 08:44
camelia ((Config) (Any) (Mu))
08:55 AlexDaniel left
jmerelo m: say Metamodel::MethodDispatcher.^mro 08:59
camelia ((MethodDispatcher) (BaseDispatcher) (Any) (Mu))
jmerelo m: say Metamodel::EnumHOW.^mro, Metamodel::EnumHOW.^roles 09:00
camelia Required named parameter 'local' not passed
in block <unit> at <tmp> line 1
jmerelo m: say Metamodel::EnumHOW.^roles
camelia Required named parameter 'local' not passed
in block <unit> at <tmp> line 1
moritz m: say Metamodel::EnumHOW.^roles(:local)
camelia No such method 'gist' for invocant of type 'Perl6::Metamodel::Naming'
in block <unit> at <tmp> line 1
moritz m: say Metamodel::EnumHOW.^roles(:!local) 09:01
camelia No such method 'gist' for invocant of type 'Perl6::Metamodel::Naming'
in block <unit> at <tmp> line 1
jmerelo moritz: I'm looking at this: stackoverflow.com/a/50403124/891440
m: say Rat.^roles;
camelia ((Rational[Int,Int]) (Real) (Numeric))
jmerelo Well, that works... 09:02
moritz Metamodel::EnumHOW is composed of NQP roles
and stringiying them fails
m: say .name for Metamodel::EnumHOW.^roles(:!local)
camelia No such method 'name' for invocant of type 'Perl6::Metamodel::Naming'. Did you mean 'name'?
in block <unit> at <tmp> line 1
jmerelo moritz: I see now why github.com/perl6/doc/blob/master/type-graph.txt is needed. But just in that case. 09:03
m: say Junction.^mro
camelia ((Junction) (Mu))
jmerelo m: say Code.^mro, Code.^roles 09:04
camelia ((Code) (Any) (Mu))((Callable))
jmerelo m: say Cursor.^mro, Cursor.^roles
camelia No such method 'gist' for invocant of type 'NQPMatchRole'. Did you mean 'ast'?
in block <unit> at <tmp> line 1
jmerelo m: say Cursor.^mro, Cursor.HOW.archetypes 09:05
camelia No such method 'gist' for invocant of type 'Perl6::Metamodel::Archetypes'. Did you mean 'isa'?
in block <unit> at <tmp> line 1
jmerelo m: say Cursor.^mro, Cursor.HOW.archetypes.^methods
camelia ((Match) (Capture) (Cool) (Any) (Mu))(nominal nominalizable inheritable inheritalizable composable composalizable generic parametric coercive definite augmentable CREATE bless BUILDALL new defined ACCEPTS NOT-ACCEPTS isa)
09:13 marmor joined 09:14 p6bannerbot sets mode: +v marmor 09:19 cpan-p6 joined
cpan-p6 03cpan-p6 reporting for duty! [Perl 6] 02git.tyil.nl/perl6/app-cpan-uploadnotifierbot 09:19
09:20 p6bannerbot sets mode: +v cpan-p6 09:28 cpan-p6_ left
jmerelo m: my @cursor-roles = Cursor.^roles; print $_ for @cursor-roles 09:34
camelia No such method 'Str' for invocant of type 'NQPMatchRole'. Did you mean 'Str'?
in block <unit> at <tmp> line 1
jmerelo m: my @cursor-roles = Cursor.^roles; print $_.name for @cursor-roles 09:38
camelia No such method 'name' for invocant of type 'NQPMatchRole'. Did you mean any of these?
made
make
same

in block <unit> at <tmp> line 1
jmerelo m: my @cursor-roles = Cursor.^roles; print $_.Str for @cursor-roles
camelia No such method 'Str' for invocant of type 'NQPMatchRole'. Did you mean 'Str'?
in block <unit> at <tmp> line 1
jmerelo say Cursor.^roles 09:41
m: say Cursor.^roles
camelia No such method 'gist' for invocant of type 'NQPMatchRole'. Did you mean 'ast'?
in block <unit> at <tmp> line 1
09:42 lizmat joined, p6bannerbot sets mode: +v lizmat
jmerelo m: my @cursor-roles = Cursor.^roles; print $_.^name for @cursor-roles 09:42
camelia NQPMatchRole
09:42 rindolf joined 09:43 p6bannerbot sets mode: +v rindolf 09:51 molaf joined 09:52 p6bannerbot sets mode: +v molaf 10:17 andrzejku joined, p6bannerbot sets mode: +v andrzejku 10:19 |oLa| joined, |oLa| left 10:33 pecastro joined 10:34 p6bannerbot sets mode: +v pecastro 10:47 rindolf left 10:52 shlomif joined, p6bannerbot sets mode: +v shlomif 10:58 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh
andrzejku how is situation with Perl6 jobs? 11:09
moritz I don't know of any exclusively Perl 6 full time jobs 11:10
but I've made some side money with perl 6 before
and I know jnth++ is earning some of his money with perl 6 11:11
nine We're actually hiring and started using Perl 6 for all new functionality we implement 11:13
tadzik \o/ 11:14
nine The team has been quite enthusiastic so far :) 11:15
11:16 ufobat joined 11:17 p6bannerbot sets mode: +v ufobat
andrzejku nine, !!:D 11:18
11:19 shlomif is now known as rindolf
tadzik that's fantastic :) 11:32
11:33 pmurias joined, p6bannerbot sets mode: +v pmurias
pmurias nine: where do you work? ;) 11:34
nine www.atikon.com/at/karriere/jobs/so...eisterung/
11:35 sena_kun joined
nine There supposedly exists a verion in English, but I don't have that at hand and I'm actually on a train on my way to a week's vacation 11:35
11:36 p6bannerbot sets mode: +v sena_kun 11:38 rindolf left
jmerelo nine: great! 11:39
11:39 [Sno] left
jmerelo nine: also, have fun. 11:40
notable6: Atikon is looking for Perl 6 programmers (in German) www.atikon.com/at/karriere/jobs/so...eisterung/ 11:41
notable6 jmerelo, Noted!
nine thanks :)
11:42 sno joined, p6bannerbot sets mode: +v sno
El_Che nine: great news 11:43
11:43 rindolf joined 11:44 p6bannerbot sets mode: +v rindolf
andrzejku that's hard to believe 11:47
that we can have companies like that
nine Side not: our new sysadmin was sold on Perl 6 when he saw sub MAIN and how easy it was to add usage information to individual command line options :) 11:49
It's also one of my most favourite features
El_Che nine: I also added some perl code into our ci/cloud env :) 11:50
nine The team decision to switch to Perl 6 also prompted me to think some more about how to make extending a Perl 5 code base with Perl 6 even easier. I've got some good ideas for Inline::Perl6 to tackle after the vacation :) 11:52
El_Che In this kind of setup I think a relocatable rakudo + lib bundler would be a winner 11:53
nine: no mention of Perl 6 in the description?
11:55 pecastro left
nine El_Che: patrickb++ is working on a relocatable rakudo 11:56
El_Che that is tremendous good news
I would care more about that than about speed, to be honest
pmurias nine: are you only looking for people who speak German or is English enough?
nine El_Che: the job ad mentions Perl which can be read as Perl 5/6 ;) 11:57
El_Che you weasel :)
nine pmurias: German would be a plus. We already have an English native on the team, all our source code and comments are in English ans are the team meetings. Still German would help with talking to users and we don't know for how many English speakers we can cover there 11:59
And of course German helps with socializing... But in the end it's not a requirement 12:00
andrzejku Actually I am looking for something C/C++/Perl6 job :D 12:02
that's probably only as moarvm developer hehe 12:03
ufobat what happens if you have a END block in your codebase: does perl6 wait with the "global destruction" of all objects, on all threads, for all END blocks to return?
i am thinkin about this issue: github.com/zoffixznet/perl6-Temp-Path/issues/4 12:04
12:17 marmor left
moritz rakudo skips global destruction for efficiency reasons 12:29
12:37 MasterDuke joined, p6bannerbot sets mode: +v MasterDuke, MasterDuke left, MasterDuke joined, herbert.freenode.net sets mode: +v MasterDuke, p6bannerbot sets mode: +v MasterDuke 12:38 kurahaupo joined 12:39 p6bannerbot sets mode: +v kurahaupo
cpan-p6 New module released to CPAN! Audio-Libshout (0.0.11) by 03JSTOWE 12:40
andrzejku is it possible to embed Perl6 into C++? 12:44
moritz yes 12:45
andrzejku :O
I found only that link stackoverflow.com/questions/507690...-c-program 12:46
with some poor answers
moritz feel free to improve on the answers, once you've found out 12:48
andrzejku ok :D
12:49 gfldex left
cpan-p6 New module released to CPAN! Audio-Playlist-JSPF (0.0.3) by 03JSTOWE 12:56
12:56 aborazmeh left 13:08 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh 13:09 p6bannerbot sets mode: +v aborazmeh 13:11 El_Che left, cpup left, El_Che joined 13:12 p6bannerbot sets mode: +v El_Che 13:18 AlexDaniel joined, p6bannerbot sets mode: +v AlexDaniel
cpan-p6 New module released to CPAN! Chronic (0.0.7) by 03JSTOWE 13:28
13:39 [particle]1 joined 13:40 p6bannerbot sets mode: +v [particle]1 13:42 [particle] left 13:54 Ulti joined 13:55 p6bannerbot sets mode: +v Ulti 13:59 andrzejku left
timotimo i'd like a few more comments on my blog post draft: wakelift.de/p/542f3440-7e5e-4371-b2...782e02f09/ 14:17
yoleaux 11:48Z <nine> timotimo: is there a way to have profiling ops not count towards the inlining limit? Apparently they can change performance behavior a lot by enlarging the bytecode.
timotimo nine: it's already supposed to not count them in the size calculation, maybe there is a bug in that code 14:18
14:20 molaf left 14:24 pecastro joined 14:25 p6bannerbot sets mode: +v pecastro 14:30 leont joined 14:31 p6bannerbot sets mode: +v leont 14:34 aborazmeh left
sena_kun timotimo, nice post. by the way, partially out of curiosity, is it planned to have an option to show user-defined only code in call graph? While being tremendously handy for core devs, average user will be having hard time optimizing e.g. `sink-all`. 14:34
14:35 jmerelo left 14:36 Guest2_ joined 14:37 p6bannerbot sets mode: +v Guest2_ 14:40 zacts joined, p6bannerbot sets mode: +v zacts 14:42 sno left 14:45 Guest2_ left
timotimo sena_kun: i'm not entirely sure how i'd handle that, especially since a lot of code calls back into user's code, too 14:47
sena_kun timotimo, that's to be tricky, I think. Anyway, a great progress, timotimo++ 14:48
14:51 ravenousmoose joined
timotimo TYVM, but I just used an off-the-shelf library for flame graphs :D 14:51
its API is not quite what i need, though :| 14:52
14:52 p6bannerbot sets mode: +v ravenousmoose 15:03 domidumont joined 15:04 p6bannerbot sets mode: +v domidumont 15:05 yqt joined 15:06 p6bannerbot sets mode: +v yqt
Kaiepi how do i emulate overflows with uint32? 15:09
El_Che add a number bigger than 2^32?
Kaiepi i mean i'm getting this error: 15:10
Cannot unbox negative bigint into native unsigned integer
15:10 someuser left
El_Che it looks like a type mismatch 15:11
timotimo not quite
El_Che (mr obvious, here)
timotimo there's an operation that results in a bigint instead of a native int
and moar then complains that you can't put a negative value into an unsigned variable
Kaiepi the operations i'm using are +, -, and +^
El_Che what timotimo says
timotimo m: my uint32 $a = 0x7fffff; say $a 15:12
camelia 8388607
timotimo m: my uint32 $a = 0x7fffff; $a++; say $a
camelia 8388608
timotimo that's not quite right, is it ...
m: say 2 ** 32
camelia 4294967296
timotimo yeah, lol
m: my uint32 $a = 0x7fffffffff; $a++; say $a
camelia 0
timotimo m: my uint32 $a = 0x7fffffffff; say $a
camelia 4294967295
timotimo there it overfloweth
15:13 cpup joined 15:14 p6bannerbot sets mode: +v cpup, ravenousmoose left
Kaiepi m: my uint32 $foo = 110008024 - 2989985939 15:14
camelia Cannot unbox negative bigint into native unsigned integer
in block <unit> at <tmp> line 1
Kaiepi m: say 110008024.base(16) 15:15
camelia 68E96D8
Kaiepi m: say 2989985939.base(16)
camelia B2379093
timotimo m: m: my uint32 $foo = 110008024; my $uint32 $otherfoo = 2989985939; say $foo - $otherfoo
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3: my uint32 $foo = 110008024; my $uint327⏏5 $otherfoo = 2989985939; say $foo - $oth
expecting any of:
infix
infix stopper
timotimo m: my uint32 $foo = 110008024; my $uint32 $otherfoo = 2989985939; say $foo - $otherfoo
camelia 5===SORRY!5=== Error while compiling <tmp>
Two terms in a row
at <tmp>:1
------> 3my uint32 $foo = 110008024; my $uint327⏏5 $otherfoo = 2989985939; say $foo - $oth
expecting any of:
infix
infix stopper
timotimo oops 15:16
m: my uint32 $foo = 110008024; my uint32 $otherfoo = 2989985939; say $foo - $otherfoo
camelia -2879977915
timotimo m: my uint32 $foo = 110008024; my uint32 $otherfoo = 2989985939; my uint32 $result = $foo - $otherfoo; say $result
camelia 1414989381
Kaiepi there we go
timotimo in your code the calculation happens before the concept of uint32 ever enters the picture
so it does a regular bigint calculation and then stumbles when you try to put the result in the 32bit variable
putting the type on every step of the calculation is annoying, but at the moment apparently necessary 15:17
Kaiepi m: my uint8 $type = 2; my uint32 $Kmi = 110008024; my uint32 $D = 2989985939; my uint32 $res = do given $type { when 2 { $Kmi - $D } } 15:22
camelia Cannot unbox negative bigint into native unsigned integer
in block <unit> at <tmp> line 1
Kaiepi how would i write this to work? 15:24
timotimo put a "my uint32 $ = " inside the when, too 15:26
Kaiepi m: my uint8 $type = 2; my uint32 $Kmi = 110008024; my uint32 $D = 2989985939; my uint32 $res = do given $type { when 2 { my uint32 $ = $Kmi - $D } } 15:29
camelia ( no output )
Kaiepi m: sub foo(uint8 $type = 2, uint32 $Kmi = 110008024, uint32 $D = 2989985939 --> uint32) { given $type { when 2 { my uint32 $ = $Kmi - $D } } }; foo 15:31
camelia ( no output )
cpan-p6 New module released to CPAN! JSON-Infer (0.0.16) by 03JSTOWE 15:36
Kaiepi the last given block in this method still throws no matter what i try hastebin.com/ucepagepop.pl 15:39
15:43 ravenousmoose joined 15:44 p6bannerbot sets mode: +v ravenousmoose
Kaiepi never mind, worked out how to do it 15:45
hastebin.com/cisodubefe.pl 15:47
16:09 zakharyas joined 16:10 p6bannerbot sets mode: +v zakharyas 16:14 domidumont left, domidumont joined 16:15 p6bannerbot sets mode: +v domidumont 16:17 domidumont left, mowcat left 16:18 domidumont joined, p6bannerbot sets mode: +v domidumont
leont Am I correct to conclude there is not terminfo/termcap module? 16:21
sena_kun leont, github.com/jonathanstowe/p6-Term-Cap ? 16:24
leont Yeah, I found that right after I said that
It's not on the module list though
sena_kun indeed, I wonder why. I think a lot of modules are moved to span lately... 16:25
leont, can't you please file an issue? I am sure it will be resolved. :) 16:26
16:31 ExtraCrispy joined, p6bannerbot sets mode: +v ExtraCrispy 16:40 jmerelo joined, p6bannerbot sets mode: +v jmerelo 16:43 gfldex joined, gfldex left, gfldex joined 16:44 p6bannerbot sets mode: +v gfldex
jmerelo releasable6: status 16:44
releasable6 jmerelo, Next release will happen when it's ready. 5 blockers. 113 out of 241 commits logged (⚠ 41 warnings)
jmerelo, Details: gist.github.com/b5712ee2ecd31268d0...ff87f162b5
cpan-p6 New module released to CPAN! MQ-Posix (0.0.2) by 03JSTOWE 16:56
16:56 andrzejku joined 16:57 p6bannerbot sets mode: +v andrzejku
leont It doesn't appear Term::Cap is actually usable. I'm guessing the grammar is chocking on a megabyte of text :-/ 16:58
jmerelo leont: in general, or in some particular problem? 16:59
leont In general. It's chocking on parsing the database
jmerelo leont: pointer to code? Issue? A bit of more context? Can we help, or is it just informative? 17:02
Geth doc: 598465b336 | (JJ Merelo)++ | doc/Type/Proc/Async.pod6
Proc::Async works on the JVM

But only since June 2017: github.com/rakudo/rakudo/blob/mast...2017.06.md
17:10
synopsebot Link: doc.perl6.org/type/Proc::Async
doc: acd61991f9 | (JJ Merelo)++ | doc/Type/Proc/Async.pod6
Adds named parameter to def, expands explanation, closes #2582
ufobat moritz, what could be a reason why the Channel in this modujle is closed, sometimes? 17:13
leont jmerelo: Try running perl6 -e 'use Term::Cap; my $c = Term::Cap.new; dd $c.description'
17:13 zacts left
jmerelo leont: "No candidates found matching identity: Term::Cap 17:16
sena_kun leont, it is worth a ticket, I think. 17:18
leont Apparently it's a known issue, and the speed issue is the reason for it not being listed 17:19
17:20 lucasb joined, p6bannerbot sets mode: +v lucasb
jmerelo OK, this Term::Cap github.com/jonathanstowe/p6-Term-Cap 17:21
But it's not in the ecosystem for some reason...
MasterDuke couldn't it be parsed into a data structure at module build time? sure, module install would take a long time, but if it's small enough to be pre-compiled then any actual use should be fine
17:42 dogbert11 left 17:58 zacts joined, p6bannerbot sets mode: +v zacts
cpan-p6 New module released to CPAN! FastCGI-NativeCall-Async (0.0.2) by 03JSTOWE 18:00
Geth modules.perl6.org: badeaa41cc | (Lucas Buchala)++ (committed using GitHub Web editor) | lib/ModulesPerl6/Controller/Dist.pm
Associate ".t6" extension with file type perl6

Per github.com/perl6/user-experience/issues/36
18:03
18:05 domidumont left 18:07 eseyman left
Util timotimo: (re: blog post preview) 18:18
The aside in the 2nd paragraph: "which I'm planning to make easier in the future as well"
might fit more naturally into the last two paragraphs, where you are discussing future plans.
Also s/github/GitHub/;
Your work looks very promising!
18:21 domidumont joined 18:22 p6bannerbot sets mode: +v domidumont
leont Is there a way to unregister a module from CPAN? Or otherwise get the github version to take precedence over it? 18:23
lizmat leont: I think removing it from CPAN is enough 18:24
but why do you want to do that ?
(of course, given enough time for rebuilding db)
leont It appears mi6 isn't quite ready for one of my dists. 18:25
It has a hard assumption of one file is one class
lizmat ah?
hmmm... perhaps fix mi6 instead ?
leont That messes up the provides meta entry 18:26
Yeah, that is the better long term solution
It's probably also not trivial, it kind of involves parsing the module
The quick workaround in mi6 is probably an option to make it not touch provides 18:28
lizmat a dist.ini setting ? 18:35
leont Great, mi6 master fails tests here 18:40
lizmat :-( 18:41
weekly: wakelift.de/2019/01/20/these-graph...e-on-fire/ 18:44
notable6 lizmat, Noted!
18:45 phogg joined, p6bannerbot sets mode: +v phogg
lizmat moritz: ^^ 18:47
jmerelo lizmat: can you think of a better way to compress a data structure than .perl-ify, put that on a Buf and call Compress::Bzip2 on it? 18:56
lizmat: maybe pack/unpack? 18:57
lizmat we don't really have a Perl 6 equivalent of Storable yet
nowadays, I would almost always suggest using JSON
jmerelo lizmat: serialize to JSON and then compress the JSON string? 18:58
lizmat right, it should compress pretty well
yoleaux AlexDaniel: get huggable back on its feet 18:59
jmerelo releasable6: status
releasable6 jmerelo, Next release will happen when it's ready. 5 blockers. 115 out of 244 commits logged (⚠ 41 warnings)
jmerelo, Details: gist.github.com/41c03e20fc581eb3c0...596d400493
ufobat flamegraphs! i love them! 19:00
moritz lizmat: tweeted 19:01
19:02 zacts left 19:03 eseyman joined, p6bannerbot sets mode: +v eseyman
lucasb timo should have used a screenshot from 'cacafire' as the image :D 19:05
ufobat jmerelo, lizmat, i think json is not so good if you expect a lot of binary data 19:07
timotimo i would recommend messagepack over json because it supports more features
ufobat: you asked for them a long long time ago :D
jmerelo timotimo: messagepack is in some module?
timotimo yeah, i think the one i used is Data::MessagePack
jmerelo timotimo: thanks! 19:08
ufobat timotimo, yeah i had troubles with binary and JSON::XS in perl5
then i swtiched to Sereal
timotimo moarvm's debugserver uses it to transport messages between moar and the client library
ufobat timotimo, ah you are talking about the flame graphs, jup, i did :)
timotimo i am :) 19:09
lizmat TIL JSON is not a good recommendation :-)
timotimo well ...
19:10 zacts joined, p6bannerbot sets mode: +v zacts
timotimo JSON is almost trivial to get in every language 19:10
but json only allows strings for hash keys for example
whereas MP allows other objects (hashes and lists), integers, ...
and there's stuff for blobs as well
jmerelo timotimo: that's just the ticket.
Thanks!
ufobat does anyone have an idea why github.com/zoffixznet/perl6-Temp-P...ath.pm6#L7 the END block sends 'nuke', instead of nuking all himself? 19:11
jmerelo clicks on the link as if he had any hope of finding an answer to the question 19:12
19:13 zacts left, zacts joined, p6bannerbot sets mode: +v zacts
jmerelo ufobat: you mean why it has a "when nuke ... .&nuke-path for %goods{ * }:delete:k; $GOODS.close " instead of just doing it on site, right? 19:14
I mean, right in the END block 19:15
ufobat right, the end block sends this 'nuke' message, and as you can see it in ticket, the channel is closed sometimes
jmerelo ufobat: I would say that that way it's allowing time for the channel to process any remaining messages. If the "nuke" message is added to the queue, and processed in due time, not inmediately.
ufobat no clue why the channel is closed, but not using it in the END block would 'fix' it
ah, good point 19:16
jmerelo ufobat: then the "await" waits until that particular message is processed and the channel closed.
19:18 La_Magra joined, p6bannerbot sets mode: +v La_Magra
La_Magra God job guys 19:18
ufobat could the end or the 'nuke' happen multiple times? 19:19
jmerelo ufobat: you could send several messages, but the channel will be closed as soon as the first message is processed. 19:20
La_Magra: hi! And thanks!
ufobat ahhh 19:21
i missread the error that is happening :-)
it is line 40 that "causes" the error 19:22
19:24 cpup left 19:25 La_Magra left
ufobat but i dont understand the line 40, when is self === $orig, and when is it not? 19:25
19:29 |oLa| joined 19:30 p6bannerbot sets mode: +v |oLa|
jmerelo clicks again trying to know if he understand something 19:30
ufobat you gain a lot of good karma tonight, jmerelo :) 19:31
jmerelo ufobat: it's a module, not a class. So, self is dodgy...
ufobat: let me walk through this to see if I understand what it's doing. 19:32
ufobat: it's a role that's mixed in $p, which is returned by make-rand-path.
<forget delete>[self === $orig] sends forget if $p is $orig, delete if it's not 19:33
ufobat how could it not be the case,
in line 44, where you do to mixin, dont you "say self is $orig"? 19:34
jmerelo ufobat: hum.
ufobat the parameter of the role AutoDel is the object itself? so self === $origin (which is the paremter of the role) 19:35
no?
s/origin/orig/
jmerelo yep, it's AutoDel[$p]
ufobat then, it is always 'forget' and never 'delete'? 19:36
jmerelo self is always equal to $orig. So it's always 1 or delete
That's why it's called AutoDel and not AutoDelOrMaybeWhoKnowsDelete 19:37
I mean, there's a non-zero likelihood that this is just showing off
ufobat ah sorry, yeah it is 1, but why is there a forget?
jmerelo ufobat: assuming it's now just showing off... $p could be changed in the course of things. The role will keep its original value. 19:39
$p is an IO::Path, and some things like CWD could change... 19:40
I mean, IO::Path is not immutable. That's a safety check against any change, I guess. Or if it's already closed or something. 19:41
Any change in $p, it's checked against orig, then just forget. 19:42
ufobat but the === is object identity? so when the object itself changes it is still itself, no? 19:43
you dont check for changed attributes inside of the object or something
and most of the methods (if not all) of IO::Path return a new object 19:44
jmerelo ufobat: um
19:44 sno joined 19:45 p6bannerbot sets mode: +v sno
jmerelo m: class A { has $.þ =33}; my $a = A.new; my $orig = $a; $a.þ = 44; say $orig === $a 19:46
camelia Cannot modify an immutable Int (33)
in block <unit> at <tmp> line 1
jmerelo m: class A { has $.þ is rw =33}; my $a = A.new; my $orig = $a; $a.þ = 44; say $orig === $a
camelia True
jmerelo ufobat: right...
19:47 cpup joined
jmerelo ufobat: it's using sigilless variables, so there's no way to change that... 19:47
19:48 p6bannerbot sets mode: +v cpup
jmerelo ufobat: the problem is the Travis fail error, right? It's failing somewhere and no idea why... 19:49
ufobat not only :-( 19:50
i think the travis failing is because the sub DESTROY gets called afer the 'nuke' happend, so it tries to send something though the channel, maybe DESTROY was called beause of the nuke
that's at least what i am assuming
i realized that i have some tempfiles that dont get cleaned up, i dont know why/when this is happening but since i dont understand the forget it might a but somewhere in the code that i dont understand 19:51
bug
jmerelo ufobat: Where is finish_code_object? 19:52
cpan-p6 New module released to CPAN! Sys-Lastlog (0.0.10) by 03JSTOWE
19:54 kurahaupo_ joined 19:55 p6bannerbot sets mode: +v kurahaupo_
jmerelo ufobat: none of the tests is failing for me locally 19:56
ufobat finish_code_object?
19:57 kurahaupo left
jmerelo It's the travis error: travis-ci.org/zoffixznet/perl6-Temp-Path 19:57
ufobat jmerelo, did you run the tests on xt?
jmerelo ufobat: yep. There's nothing in t/
19:57 xinming joined
ufobat ah i havent seen this error :D 19:58
jmerelo ufobat: I wouldn't worry about that unless you can reproduce it locally.
ufobat: looks like a zef error.
19:58 p6bannerbot sets mode: +v xinming
ufobat i can reproduce github.com/zoffixznet/perl6-Temp-Path/issues/4 19:58
20:00 xinming_ left
jmerelo ufobat: that's line 39 or destroy, that's correct. 20:01
so there might be some variables still living when that DESTROY is called 20:02
ufobat: really no idea. I would try and print all messages that are sent, and also when DESTROY is called. 20:06
ufobat i'll try to golf it, because it's not happening when i just create a tempfile 20:07
jup, thank you jmerelo++
20:07 cpup left
jmerelo ufobat: thanks to you. I've learned a lot :-) 20:07
Geth doc: 8d9f331402 | cfa++ | doc/404.pod6
Remove trailing whitespace.
20:09
20:11 jmerelo left 20:15 domidumont left 20:17 yqt left 20:25 andrzejku left, zacts left, cpup joined 20:26 p6bannerbot sets mode: +v cpup 20:29 kurahaupo_ left 20:30 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo 20:34 zacts joined, p6bannerbot sets mode: +v zacts 20:38 kensanata joined, p6bannerbot sets mode: +v kensanata 20:54 kurahaupo left, kurahaupo joined 20:55 p6bannerbot sets mode: +v kurahaupo, kurahaupo left 20:56 atweiden-air joined 20:57 p6bannerbot sets mode: +v atweiden-air 20:58 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo 20:59 molaf joined 21:00 p6bannerbot sets mode: +v molaf 21:01 mowcat joined 21:02 p6bannerbot sets mode: +v mowcat 21:03 zacts left, zacts joined, p6bannerbot sets mode: +v zacts, kurahaupo_ joined, kurahaupo left 21:04 kurahaupo_ left, kurahaupo joined 21:05 p6bannerbot sets mode: +v kurahaupo
ufobat how do i disaple spech and jit and all the magic? 21:05
I've got something thats just happening when I change the sourcecode and start the program for the very first time, 21:06
MasterDuke ufobat: MVM_JIT_DISABLE=1 and MVM_SPESH_DISABLE=1 env variables 21:08
ufobat ty!
MasterDuke np
sena_kun ufobat, also you can try to add `no precompilation;` pragma added in the file in question to see if it helps to make the thing persistent.
ufobat ah :)
sena_kun s/added//
I don't know if JIT/spesh may be guilty, but "something that happens only once after sources change" sounds to me like some BEGIN block, sub EXPORT and such folks. :) 21:09
ufobat do I need to write "no precompilation; in the module or is it sufficient to write it in the oneliner right after the -e ' 21:10
21:10 ravenousmoose left
sena_kun hmmm, does it happen when you run a oneliner with -e and there are no modules `use`d? 21:11
ufobat in the modujle.
sena_kun then it is not precomp, I think.
then in the module file.
ufobat I am using a module
awesome, now i can reproduce it :)
sena_kun \o/
ufobat++
cpan-p6 New module released to CPAN! Sys-Utmp (0.0.12) by 03JSTOWE 21:12
21:22 dogbert17 joined 21:23 p6bannerbot sets mode: +v dogbert17 21:36 |oLa| left
ufobat fixed one bug :-) 21:45
still dont understand 2nd bug :-(
ah! 21:48
21:50 zakharyas left, kensanata left 21:53 jme` left 22:07 jme` joined 22:08 p6bannerbot sets mode: +v jme` 22:14 wi15ht joined, p6bannerbot sets mode: +v wi15ht 22:17 w17t left
Xliff \o 22:23
22:37 Guest18 joined, p6bannerbot sets mode: +v Guest18 22:44 kurahaupo left 22:47 kurahaupo joined, p6bannerbot sets mode: +v kurahaupo 22:49 zacts left 22:57 kurahaupo left, kurahaupo joined 22:58 p6bannerbot sets mode: +v kurahaupo 23:08 lucasb left 23:09 kurahaupo left 23:10 kurahaupo joined 23:11 p6bannerbot sets mode: +v kurahaupo 23:16 Cabanoss- left 23:17 Cabanossi joined, Possum left 23:18 p6bannerbot sets mode: +v Cabanossi
atweiden-air what's the best way to randomly sort an array of strings? 23:18
sena_kun m: my @a = 'qwer', 'rewq', 'weqr'; say @a.pick(*); say @a.pick(*); 23:19
camelia (rewq qwer weqr)
(qwer weqr rewq)
atweiden-air *randomize the order of elems
23:19 Possum joined
sena_kun likely this one. 23:19
atweiden-air nice
23:20 aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh, p6bannerbot sets mode: +v Possum
sena_kun .pick method takes out a random element, with an int argument you can choose how many items you want, and *(whatever) gives you all items in this case. 23:20
yoleaux with an int argument you can choose how many items you want
23:21 p6bannerbot sets mode: +v aborazmeh
sena_kun .pick Exercises In Futility 23:21
yoleaux sena_kun: You must provide at least two options.
sena_kun .pick Exercises In Futility, With Hearts Toward None
yoleaux With Hearts Toward None
sena_kun hehe 23:22
23:37 aborazmeh left, pecastro left, aborazmeh joined, aborazmeh left, aborazmeh joined, p6bannerbot sets mode: +v aborazmeh 23:38 p6bannerbot sets mode: +v aborazmeh 23:50 w_richard_w joined 23:51 p6bannerbot sets mode: +v w_richard_w, kotrcka joined 23:52 p6bannerbot sets mode: +v kotrcka, kotrcka left