»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
00:10 j_p_r joined 00:11 j_p_r left
dalek c: a60d289 | (Wenzel P. P. Peppmeyer)++ | doc/Language/control.pod6:
- make examples compile

  - improve loop
00:11
00:20 Actualeyes left 00:22 johnchalekson left 00:42 zacts joined, PotatoGim left 00:44 PotatoGim joined 00:48 pierre_ joined 00:58 djbkd joined
AlexDaniel gfldex++ # I love your work on compilable examples 01:05
01:06 pierre_ left 01:08 labster left 01:09 itaipu left, yqt left, itaipu joined 01:11 sena_kun left, pierre_ joined, pierre_ left, PerlJam joined, mr-foobar left, pierre_ joined 01:15 labster joined
dalek ateverable: 0499e2c | (Daniel Green)++ | Committable.p6:
Add the total run time limit to the Perl 6 version of committable
01:17
01:26 benjikins joined
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
01:36 webstrand joined
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
01:45 zacts left 01:46 ilbot3 left
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
01:47 ilbot3 joined
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
01:59 mr-foobar joined
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]␤»
02:05 wamba joined
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
02:15 pierre_ left 02:16 itaipu left 02:17 benjikins left 02:19 _28_ria left 02:20 pierre_ joined 02:24 _28_ria joined 02:26 noganex joined
dalek ateverable: 5c8b82f | (Daniel Green)++ | / (2 files):
Fix %.additional_files and also rename to kebab case
02:27
02:28 _28_ria left 02:29 noganex_ left 02:47 cibs left 02:49 cibs joined 03:01 aborazmeh joined, aborazmeh left, aborazmeh joined 03:06 kid51 left
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
03:15 cpage_ joined 03:16 aborazmeh left 03:17 Actualeyes joined
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)␤»
03:24 pierre_ left
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.
03:26 pierre_ joined
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.
03:39 wamba left
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
04:04 canopus left 04:06 skids left
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")␤»
04:11 canopus joined
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␤»
04:14 rand12418093821 joined, khw left
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
04:31 Cabanossi left 04:34 Cabanossi joined
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
05:13 committable6 joined, committable6 left 05:18 Tonik joined, BenGoldberg left 05:22 movl left 05:26 movl joined 05:30 movl left 05:39 djbkd_ joined 05:41 djbkd left 05:43 rindolf joined 05:54 pierre_ left 06:00 movl joined, pierre_ joined 06:05 pierre_ left 06:08 avalenn joined, CIAvash joined 06:19 pierre_ joined
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
06:24 pierre_ left 06:25 firstdayonthejob joined 06:28 pierre_ joined 06:36 darutoko joined 06:40 danaj left 06:41 anaeem1_ joined 06:42 anaeem1_ left
dalek line-Perl5: fdeea91 | niner++ | p5helper.c:
Hopefully fix compilation on Windows by changing order of includes in p5herlper.c
06:43
06:44 firstdayonthejob left 06:46 bob777 left 06:49 bob777 joined, pierre_ left, pierre_ joined 06:58 RabidGravy joined 07:06 bjz joined 07:07 bjz left, movl left
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
07:09 Tonik left 07:10 sno left 07:12 mwal_atikon joined
dalek c: af96a4a | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
more links to Mu
07:13
07:13 bjz joined, rindolf left, mwal_atikon left, bjz left 07:15 rindolf joined 07:16 movl joined 07:24 zakharyas joined 07:27 Actualeyes left 07:32 TEttinger left
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
07:40 pdcawley joined 07:43 bob777 left, bob777 joined 07:53 Sgeo_ joined 07:56 Sgeo left 08:03 dakkar joined, jonas1 joined, bob777 left
dalek c: 31cd5ad | (Wenzel P. P. Peppmeyer)++ | doc/ (2 files):
tell about Rat literals
08:05
08:06 bob777 joined 08:09 bjz joined 08:12 jsimonet joined
AlexDaniel gfldex++ 08:14
dalek c: ac60df0 | (Wenzel P. P. Peppmeyer)++ | doc/Language/unicode_entry.pod6:
fix for #755
08:27
08:31 sno joined 08:32 bob777 left, vytas joined 08:33 pmurias joined 08:36 bob777 joined
dalek c: 8c1b577 | (Wenzel P. P. Peppmeyer)++ | doc/Type/Callable.pod6:
fix arity requirements for function combinator
08:46
08:47 trnh joined, trnh left, trnh joined 08:54 pmurias left, khw joined 08:58 labster left 08:59 labster joined 09:03 MorayJ joined
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
09:18 Actualeyes joined
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
09:23 Sgeo_ left
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
09:26 harrison_ joined
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.
09:32 w4and0er96 joined
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” ;)
09:36 inokenty left
DrForr Afternoon. 09:36
Hotkeys Morning
09:42 araujo_ left 09:43 araujo joined 09:44 araujo left, araujo joined 09:46 araujo left 09:47 araujo joined 09:48 araujo left 09:49 araujo joined 09:51 araujo left, araujo joined 09:53 araujo left 09:57 trnh left
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
10:08 labster left 10:21 itaipu joined 10:23 unmatched} left 10:30 kid51 joined 10:32 nebg joined
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
10:33 nebg left 10:36 kaare_ joined 10:40 inokenty joined
AlexDaniel you are welcome 10:53
11:11 itaipu left 11:22 pierre_ left 11:26 canopus left 11:30 canopus joined
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
11:34 sena_kun joined
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
11:52 bjz_ joined
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
11:53 bjz left
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?
11:55 itaipu joined
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
12:10 pierre_ joined 12:11 Sgeo_ joined 12:15 kid51 left
AlexDaniel ok: #128872 12:16
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=128872
12:18 kid51 joined
dalek c: 6e541f7 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
doc only method
12:18
12:20 izz_ joined
izz_ . 12:20
DrForr izz_: Hi, welcome to the more active channel :) 12:22
12:25 ggoebel left 12:27 ggoebel joined
dalek c: 93e61dd | (Zoffix Znet)++ | doc/Language/typesystem.pod6:
Fix typo/omission
12:30
12:31 unmatched} joined 12:32 trnh joined, trnh left, trnh joined
dalek c: 6ae400b | coke++ | doc/Language/typesystem.pod6:
whitespace
12:32
12:35 kurahaupo joined
sena_kun What is the most normal(i.e. not override) behavior of .ACCEPTS? 12:36
12:37 itaipu left
masak sena_kun: probably === 12:38
sena_kun masak, hm, okay. Thanks. 12:39
12:39 kurahaupo_ joined
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
12:42 kurahaupo left
jnthn Well, Int overrides it 12:42
To do == 12:43
12:43 Sgeo_ left
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
12:46 kurahaupo_ left 12:47 kurahaupo joined
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
12:50 sufrostico joined 12:54 izz_ left
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␤»
13:03 mcmillhj joined
lizmat . 13:11
13:13 wamba joined
unmatched} "Cannot locate symbol 'sqlite3_libversion_number' in native library '' in method setup" :/ 13:17
13:20 huggable joined
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
13:24 huggable left
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
13:29 huggable joined 13:30 cibs left 13:32 huggable left
w4and0er96 is there sth. in perl6 that support list-comprehension like [ x | x <- 1..10 if x % 2 eq 0] ? 13:32
13:33 cibs joined 13:34 huggable joined
jnthn [$_ if %_ %% 2 for 1..10] or so 13:34
13:34 huggable left
jnthn Though I'd probably just write that as 1..10 .grep(* %% 2) :) 13:35
13:36 huggable joined, huggable left
lizmat m: say 2,4...10 # or use magic :-) 13:36
camelia rakudo-moar c8c27e: OUTPUT«(2 4 6 8 10)␤»
13:37 unmatched} left, unmatched} joined, unmatched} left
w4and0er96 THX. I know a little about Perl(both 5 and 6) 13:37
13:37 unmatched} joined
tadzik I'm sure we can fix that :) 13:38
13:38 pmurias joined
pmurias jnthn: ping 13:38
13:38 huggable joined 13:39 huggable left
jnthn pmurias: pong 13:42
lizmat jnthn: do you have any opinions on adding around 30 Array.splice candidates ? 13:44
unmatched} :o
13:44 cpage_ left 13:45 MilkmanDan left
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?
13:46 MilkmanDan joined
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
13:48 skids joined 13:49 huggable joined, huggable left, trnh left
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?
13:56 cdg joined
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
14:01 freezerburnv_ joined
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 :)
14:05 gnull joined
sena_kun jnthn, ah, okay. 14:05
14:06 huggable joined, huggable left, kurahaupo left 14:07 kurahaupo joined, kurahaupo left 14:08 gnull left, gnull joined
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
14:13 gnull left
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
14:16 huggable joined
jnthn Well, we've also talked about "this is in sink context" being something we can propagate... 14:16
huggable jnthn, nothing found
14:16 huggable left
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
14:19 itaipu joined 14:20 huggable joined
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
14:23 xinming left 14:24 xinming joined, huggable left
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
14:25 huggable joined
unmatched} huggable: hug me 14:26
huggable unmatched}, nothing found
14:26 huggable left, huggable joined
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
14:27 bpmedley left
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
14:28 bpmedley joined
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
14:29 ptolemarch joined, danaj joined
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
14:37 mcmillhj left
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 :)
14:39 mcmillhj joined
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
14:48 nebg joined
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.
14:52 nebg left 14:54 harmil_wk joined
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
15:06 cdg left
gregf_ m: 1.^mro 15:06
camelia ( no output )
gregf_ m: say 1.^mro
camelia rakudo-moar c8c27e: OUTPUT«((Int) (Cool) (Any) (Mu))␤»
15:06 cdg joined, nebg joined, nebg left 15:09 Nex6 joined
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
15:15 bob777 left
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
15:23 freezerburnv_ left 15:27 zakharyas left 15:28 harrison_ left 15:29 cdg left 15:30 cdg joined
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␤»
15:34 zakharyas joined
harmil_wk m: say 1/10**307 == 0 15:35
camelia rakudo-moar a44a13: OUTPUT«False␤»
15:35 autarch left, cdg left
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␤»
15:47 zakharyas left, zacts joined 15:48 autarch joined 15:54 TEttinger joined
gregf_ m: say 1/10**308 =~= 0 15:54
camelia rakudo-moar 44a90a: OUTPUT«True␤»
15:55 josred00 joined
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...
15:58 buggable left
unmatched} josred00: what's wrong with Perl 5's community? 15:59
josred00 unmatched}: they are soo arrogant...
16:00 buggable joined
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
16:01 TEttinger left
josred00 but these indiviuals are the admins 16:01
and a user got banned
16:01 buggable left
josred00 today and another one yesterday 16:01
TimToady well, sometimes people need to be banned, at least temporarily
16:01 buggable joined
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
16:03 TEttinger joined 16:04 buggable left, pmurias left
josred00 unmatched}: yeah you are right... but it's not the first time 16:04
16:05 josred00 left
[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]
16:08 [Coke] joined
TimToady oh no! [Coke] has quit and joined! 16:09
16:09 zacts left
[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)␤»
16:19 gnull joined
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.
16:25 freezerburnv_ joined 16:26 kurahaupo joined
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␤␤»
16:29 pierre_ left 16:30 pierre_ joined, buggable joined
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␤»
16:31 smls joined, bob777 joined
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
16:35 MorayJ left
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
16:41 setty1 joined 16:46 pierre_ left 16:52 itaipu left, Actualeyes left 16:53 dakkar left
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
16:59 AlexDaniel left 17:02 sufrostico left
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
17:03 cibs left, sufrostico joined 17:05 cibs joined
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
17:14 sufrostico left 17:16 sufrostico joined 17:20 mcmillhj left
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
17:27 mcmillhj joined
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␤»
17:32 mcmillhj left
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
17:37 mcmillhj joined, spider-mario joined 17:38 spider-mario left 17:39 spider-mario joined
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␤»
17:44 firstdayonthejob joined
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
17:46 sno left 17:48 TEttinger left 17:53 pdcawley left, pdcawley joined 17:55 TEttinger joined 17:57 gnull left, gnull joined 18:09 silug joined 18:11 cpage_ joined 18:13 labster joined 18:16 itaipu joined 18:22 TEttinger left 18:25 TEttinger joined 18:26 Sqirrel joined, Sqirrel left 18:30 TEttinger left 18:33 TEttinger joined 18:34 itaipu left
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
18:37 smls left
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
18:45 cdg joined 18:50 jnthn_ joined, kshannon_ joined, mls_ joined, gypsydav15 joined, revdiablo joined, broquain1 joined
mst welp. I think I typed a lambda. 18:50
18:50 Kaffe_ joined, sjohnsen- joined, ChoHag_ joined, ponbiki_ joined
mst my terminal ... does not know how to display one 18:50
18:50 sivoais_ joined, woodruffw left, jnap_ left, vike left, sivoais left, ChoHag left, jnthn left, kshannon left, emdashcomma left, yossarian joined, yossarian left, kst` joined
unmatched} weeeeeeeeeeeeeeeeeeeee 18:50
18:50 Psy-Q_ joined, sjohnson joined
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] (λ)
18:50 emdashcomma joined, woodruffw joined 18:51 vike joined 18:52 jnap_ joined, protium joined, itaipu joined, [ptc] joined 18:59 sufrostico left, skids left
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...
19:08 darutoko left 19:10 webstrand left 19:11 harovali joined 19:12 webstrand joined
dalek c: 8a2bc96 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
doc is required
19:13
19:17 ponbiki_ is now known as ponbiki, ovibos is now known as fake_tsundere
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
19:22 fake_tsundere is now known as ovibos 19:32 rindolf left, chienjo joined 19:34 michiamodiego joined 19:35 michiamodiego left, sno joined 19:36 rindolf joined 19:39 SmokeMachine____ joined, jnthn_ is now known as jnthn 19:42 kaare_ left 19:43 chienjo left 19:46 cdg left, cdg joined 19:47 mls_ left, mls_ joined, jnap_ left, jnap_ joined, SmokeMachine____ left, SmokeMachine____ joined 19:50 cdg left 19:57 canopus left
lizmat And another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2016/08/08/...uiet-week/ 19:58
timotimo cool, lizmat++ :) 19:59
20:00 freezerburnv_ left, Nex6 left
dalek c: d2b4042 | coke++ | doc/Language/typesystem.pod6:
whitespace
20:01
sena_kun lizmat++ 20:03
20:04 canopus joined
timotimo Writing heap snapshot to heap-snapshot-1470686645.4345 20:04
===SORRY!===
SC not yet resolved; lookup failed
jnthn: ^ this seems new? 20:05
20:05 skids joined, freezerburnv_ joined
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
20:11 freezerburnv_ left 20:19 awwaiid left 20:21 japanoise left, awwaiid joined
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
20:27 awwaiid left 20:28 awwaiid joined 20:30 rightfold joined
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 :-)
20:38 CIAvash left 20:39 acrussell joined 20:40 japanoise joined, perlpilot left 20:42 wamba left 20:44 acrussell left 20:50 kid51 left 20:52 ptolemarch left
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...
20:57 kid51 joined 20:59 hankache joined
sena_kun m: X::Does::TypeObject.new.^methods()[1].signature; 21:00
camelia ( no output )
timotimo you need to "say" it 21:03
21:03 lichtkind_ joined, ZoffixMobile joined
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
21:06 skids left, lichtkind__ left 21:10 hankache left 21:15 mcmillhj left 21:16 rindolf left 21:18 trnh joined 21:21 sivoais_ is now known as sivoais, sivoais left, sivoais joined, itaipu left 21:30 mcmillhj joined
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
21:42 japanoise left 21:44 freezerburnv_ joined
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.
21:51 mcmillhj left 21:52 mcmillhj joined
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
21:56 freezerburnv_ left 21:57 mcmillhj left
dalek c: f4127b8 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
explain undefined values
21:57
21:57 LegalResale left 22:01 rightfold left 22:03 ribasushi left 22:04 mcmillhj joined
[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 :)
22:11 mcmillhj left
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
22:16 ZoffixMobile left 22:20 Sgeo_ joined 22:24 setty1 left, mcmillhj joined
dalek c: 73f71b8 | (Wenzel P. P. Peppmeyer)++ | doc/Language/typesystem.pod6:
add comma
22:26
22:27 ribasushi joined
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!
22:29 mcmillhj left 22:34 spider-mario left, bjz_ left 22:35 firstdayonthejob left 22:36 trnh left
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
22:37 mcmillhj joined
gfldex timotimo: see github.com/perl6/doc/blob/master/l...fy.pm6#L17 22:37
timotimo oh ok 22:38
22:41 mcmillhj left 22:50 japanoise joined 22:56 mcmillhj joined 23:01 mcmillhj left 23:06 _28_ria joined, freezerburnv_ joined 23:09 mcmillhj joined
timotimo 2/me returns 23:12
timotimo returns 23:13
23:14 mcmillhj left 23:22 mcmillhj joined 23:24 RabidGravy left 23:25 pierre_ joined
dalek c: f61a94d | Altai-man++ | doc/Type/X/ (80 files):
Make examples for all exception types compile.
23:25
23:27 mcmillhj left 23:31 MilkmanDan left 23:42 mcmillhj joined 23:47 mcmillhj left 23:52 kurahaupo left 23:54 freezerburnv_ left 23:57 zacts joined 23:58 mcmillhj joined