»ö« 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.
dalek c: a60d289 | (Wenzel P. P. Peppmeyer)++ | doc/Language/control.pod6:
- make examples compile

  - improve loop
00:11
AlexDaniel gfldex++ # I love your work on compilable examples 01:05
dalek ateverable: 0499e2c | (Daniel Green)++ | Committable.p6:
Add the total run time limit to the Perl 6 version of committable
01:17
tailgate How can i convert a string of single char to it's ascii value as a number? 01:26
benjikins are there any modules for using AES in perl6 01:28
MasterDuke m: say "3".Int 01:31
camelia rakudo-moar c8c27e: OUTPUT«3␤»
MasterDuke tailgate: ^^^ is that what you meant?
m: say ord("3")
camelia rakudo-moar c8c27e: OUTPUT«51␤»
MasterDuke ^^^ or that?
tailgate MasterDuke: the latter thanks 01:32
benjikins Is rakudo ever going to be able to build a standalone executable? 01:43
is there a way to do that lol 01:45
benjikins "Rakudo, a Perl 6 compiler based on Parrot, allows compilation to bytecode, and a small wrapper exists that can pack up a bytecode file and parrot into a single executable. 01:47
"Rakudo, a Perl 6 compiler based on Parrot, allows compilation to bytecode, and a small wrapper exists that can pack up a bytecode file and parrot into a single executable."
how exactly do I do that
geekosaur if it's talking about parrot, it's quite a bit out of date... 01:47
currently you can't do it and there isn't a lot of effort being put into doing that with moarvm. and the jvm backend isn't quite up to snuff yet 01:48
benjikins alright, thanks for answering 01:49
BenGoldberg m: gist.github.com/BenGoldberg1/7a452...d6f4a59677 02:05
camelia rakudo-moar c8c27e: OUTPUT«[14 2 7 28 5 15 16 13 3 12 19 21 11 26 25 29 17 1 4 23 24 0 9 8 20 18 22 6 10 27]␤»
BenGoldberg ^ My favorite shuffling algorithm, which terminates almost surely. 02:06
dalek ateverable: 7c4fd06 | (Daniel Green)++ | / (2 files):
Don't need the timeout method anymore
02:07
dalek ateverable: 5c8b82f | (Daniel Green)++ | / (2 files):
Fix %.additional_files and also rename to kebab case
02:27
AlexDaniel OK, here is the question: I started something using using Proc::Async, how can I kill it with the whole process group? 03:08
$proc.kill(‘KILL’) does not kill the group, but it is kinda expected
and it does not support “negative” signal numbers, as some might expect
so I thought, well, I can probably just take the pid and pass it to 「kill」 routine, right?
but there's no kill routine? 03:09
OK, well, I can run(‘kill’, …), maybe
but how can I get the pid?
Xliff .seen FROGGS 03:13
yoleaux I saw FROGGS 31 Jul 2016 18:32Z in #perl6: <FROGGS> if you click on the Perl 6 caption you can look at other examples
Xliff AlexDaniel, I'm not well read on Promise, but the docs say that start() returns a Promise that is kept by a Proc object. 03:18
Proc has a pid() method;
The trick will be getting the Proc from the Promise.
AlexDaniel how can I get something from a Promise when it is not kept yet? 03:19
lucs Question: paste.scsys.co.uk/530090 03:22
gfldex m: say now.DateTime.week
camelia rakudo-moar c8c27e: OUTPUT«(2016 32)␤»
MasterDuke lucs: why are you using $!tu ? if you make it $.tu you get an automatic getter/setter 03:25
lucs MasterDuke: It's just an example abstracted from more involved stuff.
MasterDuke m: class Foo { has $.tu; method glorp($a) { $.tu = $a.uc } }; my $f = Foo.new; $f.tu = 'hi'; say $f.tu; $f.glorp('world'); say $f.tu 03:27
camelia rakudo-moar c8c27e: OUTPUT«Cannot modify an immutable Any␤ in block <unit> at <tmp> line 1␤␤»
MasterDuke m: class Foo { has $.tu is rw; method glorp($a) { $.tu = $a.uc } }; my $f = Foo.new; $f.tu = 'hi'; say $f.tu; $f.glorp('world'); say $f.tu
camelia rakudo-moar c8c27e: OUTPUT«hi␤WORLD␤»
lucs I don't want the user to be able to call $foo.tu.
AlexDaniel MasterDuke: interestingly, paste.scsys does support raw links if you add ?tx=on but it does not mark it as utf8 so it's broken
lucs MasterDuke: Instead of get-tu(), imagine I want transmogrigy-tu(), and $foo can't touch or see $!tu. 03:29
s/$foo can't/$foo shouldn't be allowed to/ 03:30
Put another way: how do I set a private (has $!foo) attribute using self.bless(...)? 03:35
(um, has $!tu in my initial example) 03:36
gfldex lucs: set it in the submethod BUILD, see: stackoverflow.com/questions/3881649...-of-a-role 03:39
BenGoldberg AlexDaniel, Have you considered starting the process by using class Proc directly, instead of Proc::Async?
lucs gfldex: I'll read that, thanks.
MasterDuke m: class Foo { has $!tu; submethod BUILD(:$tu) { $!tu = $tu }; method glorp($a) { return Foo.new(tu => $a.uc) }; method get-tu { return $!tu }; }; my $f = Foo.glorp("world"); dd $f; say $f.get-tu 03:40
camelia rakudo-moar c8c27e: OUTPUT«Foo $f = Foo.new␤WORLD␤»
AlexDaniel BenGoldberg: perhaps that's a good idea
lucs MasterDuke: Thanks :)
AlexDaniel BenGoldberg: but then why do we have Proc::Async, right?
TimToady lucs: we frown on attributes that are both part of and not part of the public interface, which is why we make that a little harder
lucs TimToady: I think my abstract example is a bit shoddy. I'll try to make a better one. 03:42
BenGoldberg Proc::Async is useful if you need to deal with the input and output of a process in an asynchronous manner. 03:44
Whereas Proc gives you IO::Handles. 03:45
So if you've got a large amount of data to feed to an external process, and that process is reading things very slowly, Proc::Async might be better, since .write and .print return promises which will be kept when the data is done being written. 03:48
OTOH, in that same situation, if you used Proc directly, $proc.in.print($lots-of-data) is going to block your main process. 03:49
Oddly, I notice that, according to the docs, Proc has a .pid method, but no .wait or .waitpid method. 03:51
labster m: 3++ 03:52
camelia rakudo-moar c8c27e: OUTPUT«Cannot resolve caller postfix:<++>(Int); none of these signatures match:␤ (Mu:D $a is rw)␤ (Mu:U $a is rw)␤ (Int:D $a is rw)␤ (int $a is rw)␤ (Bool:U $a is rw)␤ (Bool:D $a is rw)␤ (Num:D $a is rw)␤ (Num:U $a is rw)…»
labster I'd argue that the Perl 5 message is clearer, "Can't modify constant item in postincrement (++)" 03:53
dalek c: c4bbda1 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
doc private attributes
03:55
lucs Clearer (maybe) example: paste.scsys.co.uk/530091 03:56
Or maybe I need a different approach... 03:57
Oh, I didn't read gfldex's link yet, doing that now... 03:59
lucs does not see/understand how BUILD helps his example :( 04:06
gfldex m: class C { has $.attr; submethod BUILD (:$attr = 42) { $!attr = $attr } }; C.new.say; C.new(:attr('answer')).say; 04:07
camelia rakudo-moar c8c27e: OUTPUT«C.new(attr => 42)␤C.new(attr => "answer")␤»
gfldex m: class C { has $.attr; submethod BUILD (:$attr = 42) { $!attr = $attr }; method new($positional) { self.bless(:attr($positional))} }; C.new.say; C.new('answer').say; 04:08
camelia rakudo-moar c8c27e: OUTPUT«Too few positionals passed; expected 2 arguments but got 1␤ in method new at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
gfldex m: class C { has $.attr; submethod BUILD (:$attr = 42) { $!attr = $attr }; multi method new($positional) { self.bless(:attr($positional))} }; C.new.say; C.new('answer').say; 04:11
camelia rakudo-moar c8c27e: OUTPUT«C.new(attr => 42)␤C.new(attr => "answer")␤»
lucs gfldex: The problem is that a new instance has access (read only, but still) to $.attr, which I'd like to avoid. 04:13
gfldex m: class C { has $!attr; submethod BUILD (:$attr = 42) { $!attr = $attr }; multi method new($positional) { self.bless(:attr($positional))} }; C.new.say; C.new('answer').say;
camelia rakudo-moar c8c27e: OUTPUT«C.new␤C.new␤»
gfldex m: class C { has $!attr; submethod BUILD (:$attr = 42) { $!attr = $attr }; multi method new($positional) { self.bless(:attr($positional), |%_)} }; C.new.say; C.new('answer').say; 04:14
camelia rakudo-moar c8c27e: OUTPUT«C.new␤C.new␤»
gfldex m: class C { method new { self.CREATE } }; dd C.new; 04:15
camelia rakudo-moar c8c27e: OUTPUT«C.new␤»
BenGoldberg m: class C { has $!d; method foo(:U, $e) { self } }; 04:19
camelia rakudo-moar c8c27e: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing block␤at <tmp>:1␤------> 3class C { has $!d; method foo(:7⏏5U, $e) { self } };␤»
BenGoldberg m: class C { has $!d; method foo($e) { self } };
camelia ( no output )
BenGoldberg m: class C { has $!d; method foo($d) { self.new($:d) } }; dd C.foo("x"); 04:20
camelia rakudo-moar c8c27e: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Redeclaration of symbol $:d as a placeholder parameter␤at <tmp>:1␤------> 3{ has $!d; method foo($d) { self.new($:d7⏏5) } }; dd C.foo("x");␤»
BenGoldberg m: class C { has $!d; method foo($d) { self.new(:$d) } }; dd C.foo("x");
camelia rakudo-moar c8c27e: OUTPUT«C.new␤»
BenGoldberg m: class C { has $!d; method foo($d) { self.new(:$d) } }; dd C.foo("x").d;
camelia rakudo-moar c8c27e: OUTPUT«Method 'd' not found for invocant of class 'C'␤ in block <unit> at <tmp> line 1␤␤»
BenGoldberg m: class C { has $.d; method foo($d) { self.new(:$d) } }; dd C.foo("x").d;
camelia rakudo-moar c8c27e: OUTPUT«"x"␤»
BenGoldberg m: class C { has $.d; method foo($e) { my $d = $e ~ "y"; self.new(:$d) } }; dd C.foo("x").d; 04:22
camelia rakudo-moar c8c27e: OUTPUT«"xy"␤»
BenGoldberg You don't need to mess with BUILD or .bless; you can just use .new 04:23
lucs Oh well, I'll just use $.attr ($.tu). 04:28
lucs puts away the shotgun.
dalek c: c273e33 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
name twigils for private attributes
c: b6e83d5 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
doc submethod BUILD
dalek c: a4b4101 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
BUILDALL is not a submethod
04:38
c: c8691de | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
fix typo in example
04:39
AlexDaniel m: my @a; await start loop { @a.push: rand }, start loop { @a.push: rand } 06:20
camelia rakudo-moar c8c27e: OUTPUT«(timeout)*** Error in `/home/camelia/rakudo-m-inst-1/bin/moar': double free or corruption (!prev): 0x00007fafc0040b00 ***␤»
AlexDaniel while I do understand that it is a bad idea, should it actually segfault? 06:21
dalek line-Perl5: fdeea91 | niner++ | p5helper.c:
Hopefully fix compilation on Windows by changing order of includes in p5herlper.c
06:43
gfldex AlexDaniel: it should never segfault because that means exceptions handlers are not executed, what may result in left behind temp files or worse. 07:08
dalek c: af96a4a | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
more links to Mu
07:13
dalek c: 0809d2f | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
doc definition of a type
07:38
c: 31f5beb | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
define type declarators
dalek c: 31cd5ad | (Wenzel P. P. Peppmeyer)++ | doc/ (2 files):
tell about Rat literals
08:05
AlexDaniel gfldex++ 08:14
dalek c: ac60df0 | (Wenzel P. P. Peppmeyer)++ | doc/Language/unicode_entry.pod6:
fix for #755
08:27
dalek c: 8c1b577 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Callable.pod6:
fix arity requirements for function combinator
08:46
dalek c: ed896ce | (Wenzel P. P. Peppmeyer)++ | doc/Language/functions.pod6:
doc all precedence traits
09:03
c: 3d3455d | (Wenzel P. P. Peppmeyer)++ | doc/Language/concurrency.pod6:
index supply {}
09:09
nine gfldex, AlexDaniel: actually, I think segfaults are completely ok in that case. Array access is just not thread safe and if it were, it'd be too slow to be useful. We have Supplies and Channels which are explicitly there to be accessed concurrently from multiple threads. 09:22
timotimo right. but we still don't want to allow people to segfault the VM
nine timotimo: but how could you avoid that without adding overhead? 09:23
timotimo i haven't a clue.
nine I dare say it's just not possible. 09:24
timotimo actually, i'm surprised realloc would let us concurrently use it and F up the allocator
i thought malloc and friends all had a lock
AlexDaniel nine: yeah, I agree. But I submitted a ticket anyway. Feel free to leave a comment there (#128870) 09:26
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128870
nine timotimo: no, that would slow down each and every program :) 09:27
timotimo hmm
i think jnthn once said he's got a plan to make the reallocing safe
nine timotimo: but I may also be wrong
So don't listen to me, but to malloc's man page: "To avoid corruption in multithreaded applications, mutexes are used internally to protect the memory-management data structures employed by these functions." 09:29
timotimo right. but then how do we asploded? 09:30
oh maybe another thread was accessing the data and wrote over the edge or something 09:31
Woodi problem is: my @a not being lexical for start blocks; this is use-locks situation. if we want magical DWIM then a) @a need to be converted into something safe; b) detect and disallow...
dalek c: ee4169c | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/5to6-nutshell.pod6:
Do not add a sigil.

Because the example below has no sigil.
w4and0er96 Hi, I'm new for perl6. 09:35
nine w4and0er96: welcome!
Woodi hi w4and0er96 :)
timotimo greetings
AlexDaniel … “I'm looking for a perl friend” ;)
DrForr Afternoon. 09:36
Hotkeys Morning
dalek c: 908f18c | (Wenzel P. P. Peppmeyer)++ | doc/Language/exceptions.pod6:
explain control exceptions
09:58
c: a38088a | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
index method declarator
10:01
c: 856ad77 | (Claudio Ramirez)++ | doc/Language/modules.pod6:
Remove $ from constant
10:05
c: 9fb0ac3 | nxadm++ | doc/Language/modules.pod6:
Merge pull request #823 from nxadm/master

Remove $ from constant
c: 5e11ee9 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
link to Attribute
10:06
nebg hello everyone... why i read in a lot of code people doing this... "use MyModule::RandomThings qw(my_function);" why couldn't they simply do "use MyModule::RandomThings 'my_function'; ? 10:32
AlexDaniel you are welcome 10:53
harrison_ :nebg for my case, when I use "use Example::Module qw(func)" it is very easy to add more imports in future i.e "use Example::Module qw(func another_func)" 11:30
AlexDaniel yeah, in a hope that you will import more stuff! 11:31
dalek c: c683675 | (Wenzel P. P. Peppmeyer)++ | / (2 files):
add some spacing to ToC entries to improve deep heading structures
11:36
AlexDaniel harrison_: but that's not the case in perl 6, isn't it? 11:37
can you even use 「use … qw()」 in Perl 6? 11:38
gfldex you can but it wont do what you think it does :)
sub IMPORT will take positionals, so you provide a list of Str as it's first positional 11:39
s/IMPORT/EXPORT/ 11:40
harrison_ For module developers I think there is a way of specifying functions that are exported by default? I am a beginner in Perl 6 :) 11:41
jkramer Is there a good (working) standalone HTTP server module? I can't find find anything that's actually standalone *and* working.
DrForr Crust has a server. 11:42
gfldex HTTP::Server::Async should work 11:43
jkramer gfldex: I've been using that before but then I updated it and it doesn't build anymore.
lizmat harrison_: add "is export" as a trait to the function you want to export by default
m: sub a() is export { } 11:44
jkramer "HTTP::Response is not composable, so HTTP::Server::Async::Response cannot compose it"
camelia ( no output )
harrison_ :lizmat thanks! 11:45
gfldex jkramer: try panda --force install HTTP::Server 11:50
jkramer Found the problem: github.com/tony-o/perl6-http-serve...d476df8e0c 11:51
The fix isn't merged yet though
gfldex jkramer: version in META.info wasn't bumped 11:52
nine A dist called HTTP::Server::Async should simply not contain a module called HTTP::Request. And support for :auth should be no substitute for collaboration. 11:53
AlexDaniel m: sub foo { say ‘start’; { LEAVE { say ‘block left’ }; return 42; }; say ‘end’ }; say foo 11:54
camelia rakudo-moar c8c27e: OUTPUT«start␤block left␤42␤»
AlexDaniel m: sub foo { { LEAVE { say ‘block left’ }; return 42; }; say ‘end’ }; say foo
camelia rakudo-moar c8c27e: OUTPUT«block left␤0␤»
AlexDaniel why 0?
lizmat AlexDaniel: feels like a bug to me 11:56
jkramer Can I uninstall modules with panda somehow?
sena_kun AlexDaniel, your code gives me 42, not 0. 11:58
gfldex jkramer: no, zef can
AlexDaniel nice
lizmat m: sub foo() { { LEAVE { say ‘block left’ }; return 42; }; say ‘end’ }; say foo.^name # it actually leaks out internals
camelia rakudo-moar c8c27e: OUTPUT«block left␤BOOTInt␤»
AlexDaniel committable: releases sub foo { { LEAVE { say ‘block left’ }; return 42; }; say ‘end’ }; say foo
committable AlexDaniel: ¦«2015.10,2015.11,2015.12,2016.02,2016.03,2016.04,2016.05,2016.07,HEAD»: block left␤42␤|«2016.06»: block left␤0
AlexDaniel that is wrong probably ↑
bisect: sub foo { { LEAVE { say ‘block left’ }; return 42; }; say ‘end’ }; say foo
bisectable AlexDaniel: Exit code is 0 on both starting points (good=2015.12 bad=c8c27e9), bisecting by using the output 11:59
AlexDaniel: bisect log: gist.github.com/bff288f53af83bbb02...e581a6ce68
AlexDaniel: 'bisect run' failure
lizmat tssskk
AlexDaniel well, it did give a list of commits 12:01
there are just some commits that you cannot build, for whatever reason
anyway, submitting a ticket now 12:02
[Coke] . 12:06
AlexDaniel ok: #128872 12:16
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128872
dalek c: 6e541f7 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
doc only method
12:18
izz_ . 12:20
DrForr izz_: Hi, welcome to the more active channel :) 12:22
dalek c: 93e61dd | (Zoffix Znet)++ | doc/Language/typesystem.pod6:
Fix typo/omission
12:30
dalek c: 6ae400b | coke++ | doc/Language/typesystem.pod6:
whitespace
12:32
sena_kun What is the most normal(i.e. not override) behavior of .ACCEPTS? 12:36
masak sena_kun: probably === 12:38
sena_kun masak, hm, okay. Thanks. 12:39
jnthn On a type object, type test. github.com/rakudo/rakudo/blob/nom/.../Mu.pm#L12 Otherwise === github.com/rakudo/rakudo/blob/nom/...Any.pm#L20 12:40
sena_kun jnthn, hence, as an good example of behavior we can use just simple ints? 12:41
jnthn Well, Int overrides it 12:42
To do == 12:43
sena_kun Eh. 12:43
masak m: my $x = Int.new(5); my $y = Int.new(5); say $x ~~ $y; say $x.WHERE; say $y.WHERE 12:45
camelia rakudo-moar c8c27e: OUTPUT«True␤140567058855160␤140567058855160␤»
masak hm, .WHERE is like a memory location, no?
do those Ints get interned somehow? 12:46
gfldex m: my $x = Int.new(5000); my $y = Int.new(5000); say $x ~~ $y; say $x.WHERE; say $y.WHERE 12:48
camelia rakudo-moar c8c27e: OUTPUT«True␤139942761218216␤139942761218400␤»
gfldex smallish Ints are cached
or better preallocated 12:49
unmatched} m: my @a = ^5000; for ^5000 { next if $_.WHERE == @a[$_].WHERE; say "Starts to differ on $_"; last} 12:55
camelia rakudo-moar c8c27e: OUTPUT«Starts to differ on 15␤»
lizmat . 13:11
unmatched} "Cannot locate symbol 'sqlite3_libversion_number' in native library '' in method setup" :/ 13:17
unmatched} huggable: dunno 13:21
"Cannot locate symbol 'sqlite3_libversion_number' in native library '' in method setup at /home/zoffix/.rakudobrew/moar-nom/install/share/perl6/sources/24DD121B5B4774C04A7084827BFAD92199756E03 (NativeCall) line 306"
I wonder what that's all about.
I'm using DBIish
mst perhaps it's not managed to find libsqlite3.so 13:23
if you strace it, you should be able to see it searching for the bugger
unmatched} Looks like it has code for those cases: github.com/perl6/DBIish/blob/maste...sh.pm6#L33
unmatched} doesn't know how to strace stuff ... 13:24
unmatched} No errors if I use DBIish from command line :/ I wonder if it's due to all that threads stuff in new IRC::Client 13:28
w4and0er96 is there sth. in perl6 that support list-comprehension like [ x | x <- 1..10 if x % 2 eq 0] ? 13:32
jnthn [$_ if %_ %% 2 for 1..10] or so 13:34
jnthn Though I'd probably just write that as 1..10 .grep(* %% 2) :) 13:35
lizmat m: say 2,4...10 # or use magic :-) 13:36
camelia rakudo-moar c8c27e: OUTPUT«(2 4 6 8 10)␤»
w4and0er96 THX. I know a little about Perl(both 5 and 6) 13:37
tadzik I'm sure we can fix that :) 13:38
pmurias jnthn: ping 13:38
jnthn pmurias: pong 13:42
lizmat jnthn: do you have any opinions on adding around 30 Array.splice candidates ? 13:44
unmatched} :o
AlexDaniel jnthn: not sure if you have seen it or not (you probably did, but I'll mention it just in case), you may be interested in #128872. A quick look at bisect log points to return-without-lexotic changes (which kinda makes sense), so you probably know better. 13:46
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128872
pmurias jnthn: rakudo doesn't use cursor_type at all?
jnthn lizmat: Ummm...that sounds excessive? :P 13:47
lizmat: Why? :)
AlexDaniel performance!!
jnthn Yeah, but we already have an optimizer that specializes, and I find it highly unlikely that there's 30 different use cases that all are widely used enough to justify a special-case implementation... 13:48
jnthn pmurias: Hmmm...seems not, though looks kinda like it could... 13:50
pmurias I don't know how big of a performance difference it would make on moar 13:52
cursor_type also seems like it doesn't get marked everywhere it could in NQP 13:53
<before ...> does use it
jnthn Yeah, it may well be an under-used optimization... 13:54
It may well be worthwhile on Moar 13:55
And will probably become more worthwhile as Moar becomes multi-stage.
pmurias multi-stage?
jnthn Having a baseline JIT prior to specialization 13:56
lizmat jnthn: this would create different candidates for splice(Int,Int), splice(Int,Callable), splice(Int,Whetever), etc
pmurias jnthn: is something like that planned soon?
pmurias (...) seems to turn of cursor_type too 13:57
jnthn pmurias: Relatively... I'm planning to overhaul spesh in a number of ways.
lizmat jnthn: the use case being that things like @a.splice(1,*-5) could get optimized at compile time ?
jnthn pmurias: Including getting to do its work on a background thread
lizmat: Could it? Method calls are always late bound.
pmurias jnthn: I'll work on getting cursor_type used more in NQP
jnthn pmurias: Will be interested to know if you find it makes an interesting perf difference :) 13:58
unmatched} :/ I'm stumped. If I do perl6 -MIRC::Client::Plugin::Factoid -e 'my $p = IRC::Client::Plugin::Factoid.new; $p.started; say $p.handle: "source"' it works fine, but if I run it inside IRC::Client, I get Cannot locate symbol 'sqlite3_libversion_number' in native library '' in method setup (NativeCall line 306) error. If I change this line to use 'sqlite3' instead of Str
(github.com/perl6/DBIish/blob/maste....pm6#L48), then the previous error goes away, but I then I get "Cannot look up attributes in a type object in method prepare"
pmurias jnthn: it makes a few percent difference in nqp-js
lizmat jnthn: true, but doesn't spesh then optimize that ? 13:59
jnthn lizmat: Yes, but spesh also can optimize out if nqp::istype($foo, WhateverCode) like branches too :)
pmurias jnthn: because it turn obj.$$getattr(classHandle, "$!foo") into obj.attr123, the latter is something that v8 likes optimizing 14:00
jnthn pmurias: Nice :)
lizmat: If a few of the variants can become really tiny multi-methods as a result of splitting them out, then they'd fall below the inlining limit, and get optimized sooner also, which could be worthwhile. 14:01
lizmat well, yes that's also the idea :-) 14:01
that was responsible for the 40x speed improv on @a.splice($offset) I think :-) 14:02
sena_kun m: my &f:(Int) = sub bar(Int) {}; 14:03
camelia rakudo-moar c8c27e: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤You can't adverb &f␤at <tmp>:1␤------> 3my &f:(Int)7⏏5 = sub bar(Int) {};␤»
sena_kun This feature was removed?
jnthn Well, more like never yet implemented 14:04
lizmat: Yeah...which is probably a common case. But I don't think there are 30 common cases :)
sena_kun jnthn, ah, okay. 14:05
lizmat jnthn: we have this meme in the core that if you pass a :SINK to a method, it should not bother to create a return value and instead return Nil 14:11
e.g. on Array.splice
but also on postcircumfix{} 14:12
jnthn: but apparently this is never actually activated during parsing 14:13
lizmat so I'm wondering, maybe we should forget about it at this point 14:13
and perhaps, in the case of method calls, just postfix "-nil" to the name of the method to be executed ? 14:14
anyways, in the case of Array,splice, the handling of :SINK would be half of the candidates :-) 14:15
jnthn Well, we've also talked about "this is in sink context" being something we can propagate... 14:16
huggable jnthn, nothing found
unmatched} sorry 14:16
jnthn huggable: Was I talkin' to you, bro? :P
And then introspect in a caller 14:17
unmatched} But good news, I fixed my problem. Seems irc-started was triggered after the first connection was made and the plugin was triggered before DB connection was established and that apparently was messing everything up
lizmat jnthn: not sure I follow you: how would that look in code ? 14:18
unmatched} test 14:20
huggable: source
huggable unmatched}, See github.com/zoffixznet/huggable
unmatched} huggable: hug me
huggable unmatched}, ACTION hugs unmatched}
unmatched} :( 14:21
jnthn lizmat: Dunno; Pm and I discussed it as an nqp:: op link nqp::sunk() that is 1 if called in sink context and 0 otherwise.
s/link/like/
lizmat jnthn: perhaps we could do something with the new node flags bitmap and TimToady's work on sink warnings ? 14:22
jnthn lizmat: Maybe, though that's a static analysis, while I was looking at it as a dynamic property 14:24
timotimo will the "called in sink context" thing be part of the arguments buffer or something? 14:25
unmatched} huggable: hug me 14:26
huggable unmatched}, nothing found
jnthn timotimo: Potentially, or it just looks at the return_type to see if it's void... :) 14:26
unmatched} huggable: hug me
huggable hugs unmatched}
unmatched} \o/ 14:27
unmatched} That's it. huggable has been migrated to IRC::Client v3, so hopefully she won't be going AWOL all the time. 14:27
timotimo jnthn: ah, ok ... we already do DCE for return_type being void, right? 14:28
but of course the DCE can't do everything we could do if we generate code for sink vs non-sink 14:29
jnthn timotimo: Yeah, it's a bit hard for spesh to see "deeply enough" in all cases 14:30
I'm not sure we nail the DCE as well as we should at the moment, either. 14:31
timotimo could very well be
niko :10
timotimo jnthn: was there some plan you had in mind for making concurrent pushes to VMArray safe? 14:34
jnthn timotimo: Yeah, though in the "won't crash the VM" sense only 14:35
(You can still lose data)
timotimo right
what was it based on?
jnthn But basically, you just move the ssize, count, elems etc. into the dynamically allocated portion
And manage the memory of that using the fixed size allocator 14:36
Which has a free-at-safepoint operation
ssize then becomes immutable for the lifetime of that chunk
timotimo ah
but that also forces it behind a lock that a thread has to acquire before doing stuff to it
jnthn And then you do the classic persistent data structure trick: only ever read the head once 14:37
There's no locking needed inside of VMArray for this
And the FSA will, eventually, be smart enough to not need to look in all cases
timotimo ah, that's the missing piece, then :)
jnthn So. Much. To. Do. :) 14:43
Woodi that sink business - is it standard in-compiler or something is invented ? becouse looks like very hand-optimized in not-automatic sense... Pascal had functions and procedures and procedures wasn't returning a result; combined with C void it could be known/propagated automatically, maybe ?
and every method/functions checking for sink is scary... 14:45
reading about Lisp makes one wants to return/generate functions on demand :) 14:46
jnthn Woodi: We're not talking about every method/function, we're talking about the cases where the method can very usefully return something about the operation it just did, but that isn't always needed, and where it's tricky for the compiler to see it's pure. 14:51
Which isn't the common case.
harmil_wk m: my %items = a => 1, b => 2, Mu => 3; say %items.keys.map: {.defined} 14:55
camelia rakudo-moar c8c27e: OUTPUT«(True True True)␤»
harmil_wk There's a poem is "Mu is a key that's True"
Anyway, anyone know why that isn't True, True, False? 14:56
jnthn Because foo => ... is always taken as a literal key
harmil_wk Oh, duh! Thanks
jnthn Further, hashes coerce their keys to strings :)
So you'd need an object hash 14:57
my %items{Mu} = a => 1, b => 2, (Mu) => 3; say %items.keys.map: *.defined
m: my %items{Mu} = a => 1, b => 2, (Mu) => 3; say %items.keys.map: *.defined
camelia rakudo-moar c8c27e: OUTPUT«(True True False)␤»
harmil_wk Nifty. Thanks. I'm trying to unpeel an example someone who doesn't know Perl 6 found, and it's really hard to have a proxy conversation like that. 14:58
gregf_ m: 1.^mro 15:06
camelia ( no output )
gregf_ m: say 1.^mro
camelia rakudo-moar c8c27e: OUTPUT«((Int) (Cool) (Any) (Mu))␤»
dalek c: 3a68dbb | titsuki++ | doc/Language/operators.pod6:
Fix typo from assoc<none> to assoc<non>
15:13
c: 4553283 | (Itsuki Toyota)++ | doc/Language/operators.pod6:
Merge pull request #825 from titsuki/fix-typo

Fix typo from assoc<none> to assoc<non>
timotimo jnthn: is there a gotcha for nqp::issink()? like, do i have to make extra sure the voidness is actually spesh-time-known? because i don't see anything difficult and i could probably whip up a prototype tonight
timotimo .o( maybe we should call it nqp::insink() instead. or just go all the way and call it nqp::nsync() ) 15:16
perlpilot
.oO( nqp::sinking? )
15:22
harmil_wk timotimo: you take that back!
timotimo so tell me what to do now. cause i take that back! 15:23
cue intricate boyband dance routine
harmil_wk Is there a long-term plan for Rats being upgraded to FatRats on overflow? I can't recall the previous discussion. 15:33
timotimo i think Rats will only overflow into Num, but when you have one FatRat, it'll infect all arithmetic
harmil_wk If so, then this doesn't matter. But if not, I really think overflow should give a warning or outright fail.
m: say 1/10**308 == 0 15:34
camelia rakudo-moar a44a13: OUTPUT«True␤»
harmil_wk m: say 1/10**307 == 0 15:35
camelia rakudo-moar a44a13: OUTPUT«False␤»
TimToady m: say 1e0/10**308 == 0 15:43
camelia rakudo-moar a44a13: OUTPUT«False␤»
TimToady m: say 1e0/10**308 15:44
camelia rakudo-moar a44a13: OUTPUT«1e-308␤»
TimToady m: say 1e0/10**309 == 0
camelia rakudo-moar a44a13: OUTPUT«True␤»
gregf_ m: say 1/10**308 =~= 0 15:54
camelia rakudo-moar 44a90a: OUTPUT«True␤»
josred00 hello everyone ! 15:55
unmatched} \o
timotimo greetings 15:56
TimToady o/
josred00 TimToady: hellO !
\o/
TimToady uhoh :)
josred00 why this community is soooo much better than perl5 ?
TimToady smaller, mostly 15:57
josred00 TimToady: and relaaaxed...
unmatched} josred00: what's wrong with Perl 5's community? 15:59
josred00 unmatched}: they are soo arrogant...
josred00 and freedom of expression or ideas it not possible 16:00
a user just got banned by an admin which starts with "m" and finishes with "t"
unmatched} josred00: are you sure it's not just one or two individuals and not "the community"?
josred00 unmatched}: yeah you are right 16:01
josred00 but these indiviuals are the admins 16:01
and a user got banned
josred00 today and another one yesterday 16:01
TimToady well, sometimes people need to be banned, at least temporarily
josred00 TimToady: i was banned permanently 16:02
TimToady so of course you're an impartial observer :P
josred00 just for having a different point of view...
TimToady: yeah you are right
TimToady in general, it's not usually just for having a different point of view, but expressing it odiously, though of course sometime intentions are misread 16:03
unmatched} josred00: so you got banned by one admin, you feel it was done unfairly, and so you said entire Perl 5 community is arroangt? :P c'mon
josred00 unmatched}: yeah you are right... but it's not the first time 16:04
[Coke] not the first time you've been banned? I'm sensing a pattern. :) 16:06
unmatched} :D
TimToady ENOTHERE
[Coke] anyway, ranting about getting banned on p5 here isn't really a great intro for you to the community. Do you ahve some perl 6 questions we can help with?
mst he already quit
[Coke] ponders re-enabling the event notifications for join/quit 16:07
TimToady it's easy enough to ignore if it comes out a different color
mst I tempbanned him for calling all mac users stupid, his ban became permanent when his response was "rename the channel to #north-korea if you don't like opinions" followed by threatening to evade
then he evaded and I dropped a couple k-lines on him
unmatched} :} 16:08
[Coke]
TimToady oh no! [Coke] has quit and joined! 16:09
[Coke] has a hard time making sure his irssi options save properly, so he did it old school. 16:09
vcv well he wasnt lying. that is a "different point of view" and he was banned for it ;)
timotimo and it was by an admin starting with m and ending in t 16:11
TimToady Why are people who engage in cultural warfare always so surprised when culture shoots back?
mst TimToady: quotefiled :D 16:12
TimToady that's why I capitalized it :)
huf now is the time to capitalize on it
TimToady not if you're british 16:13
dj_goku is ?%hash{'key'} the correct way to say if key exists in hash?
unmatched} dj_goku: no, because that'll also give False for when the key is 0 or ''
*when value is
dj_goku: %hash<key>:exists
dj_goku m: my %hash = ('test', 1, 'test2', 2); say %hash<test3>:exists 16:14
camelia rakudo-moar 44a90a: OUTPUT«False␤»
dj_goku m: my %hash = ('test', 1, 'test2', 2); say %hash{'test3'}:exists 16:15
camelia rakudo-moar 44a90a: OUTPUT«False␤»
dj_goku unmatched}: thanks!
TimToady occasionally you'll have to put parens around it
if :exists attaches to the wrong verb 16:16
unmatched} m: my %hash = ('test', 1, 'test2', 2); say %hash<test test3 test2 test4>:v
camelia rakudo-moar 44a90a: OUTPUT«(1 2)␤»
TimToady that's another approach
m: my %hash = ('test', 1, 'test2', 2); say %hash<test test3 test2 test4>:k 16:17
camelia rakudo-moar 44a90a: OUTPUT«(test test2)␤»
mst oh, also, if he appears in here again then suddenly disappears, that'll be because he evaded him ban in #perl again, at which point I'll be dropping his IP address 16:21
timotimo but what if he has more than one IP address? 16:22
mst then we'll play the traditional game, known as "you're going to get bored before I run out of popcorn" 16:23
awwaiid timotimo: there's an algorithm for that
timotimo hehe.
dj_goku m: my %hash = ('test', 1, 'test2', 2); say %hash{'test3'}<test>:exists 16:28
camelia rakudo-moar 44a90a: OUTPUT«False␤»
dj_goku m: my %hash = ('test', 1, 'test2', 2); say %hash{'test3'}<test>:exists; %hash{'test'}<test> = 1; say %hash{'test3'}<test>:exists; 16:29
camelia rakudo-moar 44a90a: OUTPUT«False␤Type Int does not support associative indexing.␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
unmatched} m: my %hash = ('test', { foo => "bar }, 'test2', 2); say %hash{'test'}<foo>:exists; 16:30
camelia rakudo-moar 44a90a: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Unable to parse expression in double quotes; couldn't find final '"' ␤at <tmp>:1␤------> 3st2', 2); say %hash{'test'}<foo>:exists;7⏏5<EOL>␤ expecting any of:␤ postfix␤ statem…»
unmatched} m: my %hash = ('test', { foo => "bar" }, 'test2', 2); say %hash{'test'}<foo>:exists;
camelia rakudo-moar 44a90a: OUTPUT«True␤»
dj_goku m: my %hash = ('test', 1, 'test2', 2); say %hash{'test3'}<test>:exists; %hash{'test'}<test> = 1; 16:31
camelia rakudo-moar 44a90a: OUTPUT«False␤Type Int does not support associative indexing.␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
dj_goku oh 16:32
m: my %hash = ('test', 1, 'test2', 2); say %hash{'test3'}<test>:exists; %hash{'test3'}<test> = 1; say %hash{'test3'}<test>:exists;
camelia rakudo-moar 44a90a: OUTPUT«False␤True␤»
dj_goku :D
%hash{'test'} was already created and I was trying to switch it over to a nested hash to 1. 16:33
dalek c: d3d1bb6 | Altai-man++ | doc/Type/ (21 files):
Many changes were done. In particular:

  - Usage sections of Cool and Channel pages were replaced with examples.
  - Examples for the Cool documentation page were updated and expanded.
  - Type documentation files that start with a 'C' letter are compilable now.
16:38
sena_kun afk for an hour& 16:40
dalek c: 63c721b | titsuki++ | doc/Type/Hash.pod6:
Add a missing sharp symbol
16:58
c: b86422c | (Itsuki Toyota)++ | doc/Type/Hash.pod6:
Merge pull request #826 from titsuki/add-sharp

Add a missing sharp symbol
dalek c: 92840d9 | titsuki++ | doc/Type/Hash.pod6:
Add a missing semicolon
17:02
c: 5bc1a46 | (Itsuki Toyota)++ | doc/Type/Hash.pod6:
Merge pull request #827 from titsuki/add-semicolon

Add a missing semicolon
harmil_wk TimToady: it's true that using an explicit Num gets you consistency, but it also defeats the inherent Rattiness of Perl6 integer division. 17:08
I was just saying that if you're working with Rats e.g. 1/10 and you keep multiplying by 1/10 308 times, then you should probably get at least a warning that you've dropped down into a Num and thrown away your precision. 17:09
Nummy, Ratty Perl 6. Sounds like a good book title. 17:11
grondilu m: say +combinations(1e10, 1); 17:23
camelia rakudo-moar 44a90a: OUTPUT«First parameter out of range. Is: 10000000000, should be in 1..2147483647␤ in block <unit> at <tmp> line 1␤␤Actually thrown at:␤ in block <unit> at <tmp> line 1␤␤»
grondilu seems lta
I mean since we have a count-only method we should accept large values. 17:24
maybe the fail calls should be in the pull-one method of the Seq? 17:26
grondilu m: say 2147483647.base(2) 17:27
camelia rakudo-moar 44a90a: OUTPUT«1111111111111111111111111111111␤»
grondilu m: say 2147483647.log/log(2)
camelia rakudo-moar 44a90a: OUTPUT«30.9999999993282␤»
grondilu m: say 2147483647.base(16) 17:28
camelia rakudo-moar 44a90a: OUTPUT«7FFFFFFF␤»
TimToady m: say 2147483647.base(32) 17:29
camelia rakudo-moar 44a90a: OUTPUT«1VVVVVV␤»
grondilu also, shouldn't large literal integers in the code be noted in hexadecimal for readability?
m: say 2147483648.base(16) 17:31
camelia rakudo-moar 44a90a: OUTPUT«80000000␤»
TimToady I dunno, when I see hex I feel compelled to count 0s or Fs, but when I see 2147483647 I just assume it's 2**31-1 17:33
grondilu m: say 0x7F_FF_FF_FF 17:43
camelia rakudo-moar 44a90a: OUTPUT«2147483647␤»
grondilu m: say 0x7FFF_FFFF 17:44
camelia rakudo-moar 44a90a: OUTPUT«2147483647␤»
grondilu m: say 0b0100_0000_0000_0000 17:44
camelia rakudo-moar 44a90a: OUTPUT«16384␤»
grondilu oops
oh yeah
fine, decimal it is. 17:45
mst hrm. what's a good way to test my terminal + editor setup are able to handle the unicode stuff? 18:35
I think I need an idiot's guide to getting a sufficiently working setup to be able to take advantage of perl6 18:36
and I'm not sure where to look for one :/
mspo «can you see the arrow-quotes?»
unmatched} All of Perl 6's fancy pants Unicode stuff is on this page: docs.perl6.org/language/unicode_texas.html 18:37
mspo mst: docs.perl6.org/language/unicode_entry
masak since I switched to irc.p6c.org I haven't been able to see Unicode stuff :/
haven't bothered to figure out where the problem lies yet
my LANG envvar seems fine
Hotkeys Is that a web chat
Or an irc server
mst mspo: ooooo 18:38
masak Hotkeys: just an ssh server for people who don't want their `screen` to die so often
mspo mst: I'm using screen + vim and after a few hints from here it worked
masak oh, cool. that "Unix shell" entry works here in irssi! :D 18:39
except I can't see the result :P :/
mspo mst: defutf8 on
dalek c: cf3a79e | (Zoffix Znet)++ | doc/Language/unicode_texas.pod6:
Mention « and » are also fancy versions of regex word boundaries
18:40
mspo in .screenrc
also the -U option
set LANG=en_US.UTF-8 (or whatever for you)
mst: what kind of computer are you on?
I can help with osx
unmatched}
.oO( white one... )
mst unmatched}: actually, it's more a dark grey 18:41
I hear mauve has the most RAM, though
unmatched} :)
mst mspo: debian here
mst welp. I think I typed a lambda. 18:50
mst my terminal ... does not know how to display one 18:50
unmatched} weeeeeeeeeeeeeeeeeeeee 18:50
unmatched} .u lambda 18:50
yoleaux U+019B LATIN SMALL LETTER LAMBDA WITH STROKE [Ll] (ƛ)
U+039B GREEK CAPITAL LETTER LAMDA [Lu] (Λ)
U+03BB GREEK SMALL LETTER LAMDA [Ll] (λ)
TimToady ooh, it made the B optional 19:00
unmatched} TIL it's "lamda" and not "lambda" :o 19:02
[Coke] thinks lamda is a weird spelling.
unmatched} Oh, both exist...
dalek c: 8a2bc96 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
doc is required
19:13
dalek c: 84469b4 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
better example
19:20
c: 845097f | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
tell that BUILD don't got access to public accessors
lizmat And another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/08/08/...uiet-week/ 19:58
timotimo cool, lizmat++ :) 19:59
dalek c: d2b4042 | coke++ | doc/Language/typesystem.pod6:
whitespace
20:01
sena_kun lizmat++ 20:03
timotimo Writing heap snapshot to heap-snapshot-1470686645.4345 20:04
===SORRY!===
SC not yet resolved; lookup failed
jnthn: ^ this seems new? 20:05
timotimo i wonder when this b0rked? it's not really something i can use bisectable for ... 20:06
hmm. maybe ...
gfldex lizmat: the weekly link to YAPC::Europe seams to be broken 20:10
timotimo on my desktop at home the heap profiler seems to still work
lizmat gfldex++ # fixed 20:11
jnthn timotimo: Not seen that before, no. :S 20:25
timotimo This is Rakudo version 2016.07.1-126-g02fdcf9 built on MoarVM version 2016.07-16-g85b6537
^- good revision 20:26
This is Rakudo version 2016.07.1-141-gfb42520 built on MoarVM version 2016.07-16-g85b6537
^- bad revision
should make it bisectable enough
rightfold .botsnack 20:30
synopsebot6 om nom nom
yoleaux :D
timotimo greetings rightfold
nice to see you again :)
rightfold hola 20:31
thanks!
I should retry Perl 6 after all these months
oh still 6.c :v
lizmat rightfold: but significantly faster! 20:33
rightfold yay
lizmat the test-t canary (from Text::CSV) has gone from 12.5 seconds on Jan 1st, to 7.5 seconds today 20:35
of which only .5 seconds can be attributed to changes in Text::CSV itself 20:36
hmmm... actually, it was 7.3 today :-)
dalek c: d09b99c | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
remove extra indentation
20:53
sena_kun m: &(X::Does::TypeObject.new.type).signature; 20:55
camelia rakudo-moar fb4252: OUTPUT«Method 'signature' not found for invocant of class 'Mu'␤ in block <unit> at <tmp> line 1␤␤»
sena_kun Hmm...
sena_kun m: X::Does::TypeObject.new.^methods()[1].signature; 21:00
camelia ( no output )
timotimo you need to "say" it 21:03
sena_kun timotimo, yes, I know. I just showed that I found a way to do what I needed, so nobody should worry about this mysterious messages. (: 21:04
ZoffixMobile rightfold, 6.c is the language version and isn't going to be changing much. There's also the compiler version that increases every month. 21:05
timotimo ah, ok
rightfold oh I see
coolio
sena_kun How can I get X::TypeCheck::Splice exception? 21:38
m: use experimental :macros; macro a { 'foo' }; say a; 21:39
camelia rakudo-moar fb4252: OUTPUT«===SORRY!===␤Too few positionals passed; expected 3 arguments but got 2␤»
ZoffixMobile Other than throwing it directly?
sena_kun ZoffixMobile, other than.
ZoffixMobile m: X::TypeCheck::Splice.new.throw
camelia rakudo-moar fb4252: OUTPUT«Use of uninitialized value of type Any in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful. in block <unit> at <tmp> line 1␤Type check failed in ; expected Any but got Any␤ in block <unit> at…»
sena_kun It's an example for documentation, so it'd be strange to throw it directly. :) 21:40
ZoffixMobile Maybe grep rakudo's source to see where it's being thrown?
sena_kun Old example now throws another thing...
I'll try to do it now. Thanks, ZoffixMobile.
dalek c: 5cb96bd | coke++ | doc/Language/experimental.pod6:
slight reword; add explicit example; add macros
21:42
ZoffixMobile m: my @a of Int; try { @a.splice: 0, 1, 'a'; CATCH { default { warn .^name}}} 21:45
camelia rakudo-moar fb4252: OUTPUT«X::TypeCheck::Splice in block at <tmp> line 1␤»
ZoffixMobile sena_kun, seems to be when you try to splice a replacement that doesn't match the type of elems in array 21:46
sena_kun ZoffixMobile, it's strange. Judging by github.com/rakudo/rakudo/blob/8cbb...ore/AST.pm it definetely has connection to AST/quasi-quoting. 21:48
ZoffixMobile sena_kun, yeah there's that macro stuff too that I know nothing about 21:49
sena_kun ZoffixMobile, I'm checking docs.perl6.org/type/X$COLON$COLONT...OLONSplice currently(you can guess that, of course) and it seems to be quite outdated.
timotimo maybe we should have a $DBLCOLON 21:50
since $COLON$COLON is going to be in a lot of urls ...
sena_kun Probably, tomorrow it would be better to ask someone who knows better this type.
sena_kun timotimo, yep, we have such issue. See github.com/perl6/doc/issues/698 21:52
timotimo OK :) 21:53
ZoffixMobile
.oO( power the docs by a thin web app... )
21:55
timotimo hard drive with HTTPS ports
dalek c: f4127b8 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
explain undefined values
21:57
[Coke] dumb docker question - given hub.docker.com/_/rakudo-star/, how can I run a container that will stay up so I can connect to it and run multiple perl 6 commands in the shell inside, (rather than having it start a perl 6 interpreter on startup and then go away when the perl6 instance exits? 22:06
jnthn Maybe something like `docker run rakudo-star /bin/sh`? 22:07
timotimo start a tmux in it? :)
jnthn Or alternatively docker run -d rakudo-star 22:08
And then docker exec to run commands in it
You can docker run -d --name foo rakudo-start 22:09
[Coke] right, -d -t; danke.
see, it was a dumb question. :)
jnthn So that you've a convenient name to use with exec
[Coke] eventually putting a bailador app in there, but need something to play with momentarily. 22:10
jnthn Hmm, that reminds me I planned to implement a Docker::Client for Perl 6 at some point :)
That's a bit more work than my existing Docker::File though :)
jnthn And I've already got 2 started modules to finish :) 22:11
Talking of finishing things...time to finish the day. 'night o/ 22:12
timotimo you got 2 start modules? :P 22:13
dalek c: 73f71b8 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
add comma
22:26
RabidGravy 2 started modules? pah! I've got eight right now ;-) 22:27
timotimo hey mister gravy! 22:28
i'm going to be walking around now, so can't type, but i'd like to chat with you a bit again :)
RabidGravy rarr!
gfldex timotimo: the idea behind $COLON is that they are uninames for the chars in question. So one can translate them back automatically if there is need be. 22:36
gfldex timotimo: see github.com/perl6/doc/blob/master/l...fy.pm6#L17 22:37
timotimo oh ok 22:38
timotimo 2/me returns 23:12
timotimo returns 23:13
dalek c: f61a94d | Altai-man++ | doc/Type/X/ (80 files):
Make examples for all exception types compile.
23:25