»ö« 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«hiWORLD» | ||
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.newWORLD» | ||
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.newC.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.newC.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 blockat <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 parameterat <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«startblock left42» | ||
AlexDaniel | m: sub foo { { LEAVE { say ‘block left’ }; return 42; }; say ‘end’ }; say foo | ||
camelia | rakudo-moar c8c27e: OUTPUT«block left0» | ||
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 leftBOOTInt» | ||
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 left42|«2016.06»: block left0 | ||
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«True140567058855160140567058855160» | ||
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«True139942761218216139942761218400» | ||
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 &fat <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«FalseType Int does not support associative indexing. in block <unit> at <tmp> line 1Actually 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«FalseType Int does not support associative indexing. in block <unit> at <tmp> line 1Actually 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«FalseTrue» | ||
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 1Actually 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 1Type 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
|