»ö« 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.
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
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
b2gills Kaiepi: You didn't need to add `method new` 01:55
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/
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
cpan-p6_ 03cpan-p6_ reporting for duty! [Perl 6] 02git.tyil.nl/perl6/app-cpan-uploadnotifierbot 04:47
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
smallick say List ~~ Array 05:03
evalable6 False
smallick my $a; say $a ~~ Any:U 05:04
evalable6 True
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
jmerelo releasable6: status 07:07
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
jmerelo m: say Pod::Config.^mro 08:44
camelia ((Config) (Any) (Mu))
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)
cpan-p6 03cpan-p6 reporting for duty! [Perl 6] 02git.tyil.nl/perl6/app-cpan-uploadnotifierbot 09:19
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
jmerelo m: my @cursor-roles = Cursor.^roles; print $_.^name for @cursor-roles 09:42
camelia NQPMatchRole
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
andrzejku nine, !!:D 11:18
tadzik that's fantastic :) 11:32
pmurias nine: where do you work? ;) 11:34
nine www.atikon.com/at/karriere/jobs/so...eisterung/
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
jmerelo nine: great! 11:39
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 :)
El_Che nine: great news 11:43
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?
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
moritz rakudo skips global destruction for efficiency reasons 12:29
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
cpan-p6 New module released to CPAN! Audio-Playlist-JSPF (0.0.3) by 03JSTOWE 12:56
cpan-p6 New module released to CPAN! Chronic (0.0.7) by 03JSTOWE 13:28
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
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
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
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
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
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
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
Kaiepi never mind, worked out how to do it 15:45
hastebin.com/cisodubefe.pl 15:47
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
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
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'
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
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
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
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!
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!
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
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 ...
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
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.
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
ufobat but i dont understand the line 40, when is self === $orig, and when is it not? 19:25
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
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...
jmerelo ufobat: it's using sigilless variables, so there's no way to change that... 19:47
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
jmerelo ufobat: none of the tests is failing for me locally 19:56
ufobat finish_code_object?
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/
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.
ufobat i can reproduce github.com/zoffixznet/perl6-Temp-Path/issues/4 19:58
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++
jmerelo ufobat: thanks to you. I've learned a lot :-) 20:07
Geth doc: 8d9f331402 | cfa++ | doc/404.pod6
Remove trailing whitespace.
20:09
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
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
ufobat fixed one bug :-) 21:45
still dont understand 2nd bug :-(
ah! 21:48
Xliff \o 22:23
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
sena_kun likely this one. 23:19
atweiden-air nice
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
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