»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋
Set by Zoffix on 25 July 2018.
00:01 rindolf left 00:05 mowcat joined
sena_kun hythm, do you need only pretty printing or something more to manipulate matrices nicely? 00:06
m: role Array::Matrix[:$col] { method gist { self.Str.split(' ').rotor($col) } }; my $a = (1, 2, 3, 4, 5, 6, 7); $a does Array::Matrix[col => 3]; say $a.gist; 00:07
camelia ((1 2 3) (4 5 6))
sena_kun if only pretty printing is necesary, I'd go with this.
hythm sena_kun I need to do a lot of transformation, like flip, rotate, transpose, swap rows with columns,... 00:08
sena_kun If you want to actually inject arrays to operate on those on matrices level, I'd go with a custom class.
s/inject/hack/
:)
just in case, did you see Math::Matrix? 00:09
hythm yes I did, but it only works on Numeric, not strings
and it's using a class, I can do the same thing as a class,,, but I think it's a little nicer, if I can apply a role as "my @a does Array::Matrix" 00:11
sena_kun I wonder if a patch can help. Work on strings as "1 2 3" or "a b c" with alphabet order or something like that?
hythm "a b c" 00:12
sena_kun it's your time, of course, just guessing if patching can be less workload.
m: 'a' > 'z'
camelia WARNINGS for <tmp>:
Useless use of ">" in expression "'a' > 'z'" in sink context (line 1)
Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏)
in block <unit> at <tmp> line 1
sena_kun m: say 'a' > 'z'
camelia Cannot convert string to number: base-10 number must begin with valid digits or '.' in '3⏏5a' (indicated by ⏏)
in block <unit> at <tmp> line 1
sena_kun m: say 'a' lt 'z'
camelia True
sena_kun m: say 'b' le 'a'
camelia False
sena_kun I wonder if one can factor out exact ops and types to operate on. 00:13
hythm Math::Matrix has many (Numeric) operation, and a little different than what I need. I basically want to implement these methods here as role, so the code gets more cleaner: github.com/hythm7/Z/blob/master/li...er.pm#L109 00:17
and instead of creating an object and access the array from within, I like the idea of applying a role to the an array, and then the array it self will behave accordingly 00:19
sena_kun hmm. I am by no means an experienced coder, but I'd see it as anti-pattern... Also, about values getting: 00:20
m: role A { method a { self.values } }; my @a does A = 1, 2, 3, 4; @a.a.say; 00:21
camelia (1 2 3 4)
sena_kun ^ combining this and a named arg to a role you likely can move logic as you want, I hope. :)
TreyHarris Interesting. Specifically for moritz/perl6-all-modules, and no other repos I can find, I get very weird behavior from git-clone, and hub seems to complicate it (but bypassing hub doesn't totally fix the behavior). gist.github.com/treyharris/49ab080...8866672f63 00:22
hythm that opened my mind a little, I will give that a try. thanks for the help sena_kun :)
00:28 dct_ left
MasterDuke TreyHarris: i just tried a `git clone [email@hidden.address] and it worked fine for me with git 2.19.1 on kubuntu 18.10 00:30
TreyHarris Hmm... 2.17.1 here. 00:31
MasterDuke: oh, but ssh always worked unless I misread one of my own outputs in that doc I pasted? 00:32
It seems to just be https and/or git protocol that messes up sometimes 00:33
MasterDuke odd
00:37 hythm left 00:40 jargan joined, jargan is now known as jast 00:41 jme` joined, zachk left
TreyHarris Oh, man... I missed the 'rotor' in those matrix role examples above, and I was _VERY_ bewildered at where the dwimmyness was coming from. rofl 00:45
timotimo ACME::Rofl - adds a .rofl method on list-likes that acts the same as .rotor 00:48
00:55 leont left 01:01 kurahaupo left 01:02 kurahaupo joined 01:24 Cabanossi left 01:36 Cabanossi joined 01:37 markoong left, markoong joined 01:38 zacts joined 01:42 markoong left 01:43 dominix joined 01:46 zacts left 01:49 schwaa joined 01:55 sena_kun left 02:01 schwaa left 02:04 aborazmeh left 02:13 aborazmeh joined, aborazmeh left, aborazmeh joined 02:20 sauvin_ joined 02:21 sauvin left 02:38 MasterDuke left 03:11 Kaypie left 03:20 zacts joined 03:27 cpan-p6 left, cpan-p6 joined 03:29 zacts left 03:45 sauvin_ is now known as Sauvin 03:50 _isomorphismes left 03:52 isomorphismes left 03:53 RaycatWhoDat joined
RaycatWhoDat Hello. 03:53
So long. 03:55
03:55 RaycatWhoDat left 04:04 isomorphismes joined 04:22 molaf joined 04:41 isomorphismes left 04:46 veesh joined 04:49 veesh left 05:07 Kaypie joined 05:17 molaf left 05:21 mowcat left 05:22 kurahaupo left, kurahaupo joined 05:28 aborazmeh left 05:45 Anonymus joined 05:47 Anonymus left 05:53 calyx joined 06:07 jeek joined 06:10 dct_ joined 06:44 schwaa joined 06:46 tomato_ joined 06:48 domidumont joined 06:52 lizmat left 06:56 random_yanek left 06:57 jmerelo joined
schwaa Hi, here is a question about trait: Do all user defined traits start with "is"? Can I define a trait like "capi" rather than "is capi"? 06:57
tyil `is` is a keyword to associate the trait with a class, no? 06:58
the trait is called "capi", and you associate it to a class with something like `class Foo is capi` 06:59
07:00 dct_ left
schwaa Here is an example: multi trait_mod:<is>(Routine $r, :$capi) { ... }. Why I need to write `is` in this definition??? 07:01
Since it's not a part of the trait 07:03
tyil oh
I was thinking of something else
moritz you can use a different trait than "is", but I don't think you can make up your own category
07:04 w17t joined
schwaa yeah, I just want a shorter form of the "is native(.....)" 07:04
I wote "multi trait_mod:<capi>(Routine $r)" in my code. the compiler said: Missing block --> sub py_none_check(PyRef --> int32)⏏ capi {} 07:06
07:08 random_yanek joined 07:11 robertle joined 07:12 tomato_ left 07:13 domidumont1 joined
jmerelo schwaa: that's weird. Some Python thing? 07:14
schwaa: there are several trait_mod in the source, other than is: does, handles... 07:15
07:16 domidumont left
jmerelo schwaa: apparently, "is" is dealt with in a special way by the compiler. If what you want to define is a trait, it's better if you use that. If it's something else, use whatever. 07:16
schwaa ok 07:18
07:36 jmerelo left 07:39 schwaa left 07:46 lizmat joined 08:03 aindilis` joined 08:04 aindilis left 08:15 ravenousmoose joined 08:18 reach_satori left 08:19 reach_satori joined 08:20 dct_ joined 08:31 reach_satori left 08:46 dct_ left 08:48 ravenousmoose left 09:05 rindolf joined 09:07 ravenous_ joined 09:12 zakharyas joined 09:21 ravenous_ left 09:22 ravenousmoose joined 09:26 calyx left 09:29 calyx joined 09:42 robertle left 09:45 ufobat joined
ufobat tyil: gist.github.com/ufobat/a3e56834226...bf1898b4d7 09:45
09:49 ufobat left 10:10 llfourn_ left 10:14 ravenousmoose left 10:17 llfourn joined 10:22 lizmat_ joined 10:23 woolfy1 joined 10:24 woolfy left, lizmat left 10:31 scimon joined 11:13 sena_kun joined 11:15 ravenousmoose joined 11:21 ravenous_ joined 11:22 leont joined 11:24 ravenousmoose left 11:25 lizmat_ is now known as lizmat
daxim m: sub multi-retval (--> Bool, Int) { return True, 42 } 11:29
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed return value (return constraints only allowed at the end of the signature)
at <tmp>:1
------> 3sub multi-retval (--> Bool7⏏5, Int) { return True, 42 }
daxim do I really have to make up named types?
11:29 ravenousmoose joined 11:32 ravenous_ left
daxim m: subset Some::Multi::Retval of List where 2 == $_.elems && $_[0] ~~ Bool && $_[1] ~~ Int; sub multi-retval (--> Some::Multi::Retval) { return True, 42 }; dd multi-retval; 11:33
camelia (Bool::True, 42)
11:34 ravenous_ joined 11:36 ravenous_ left 11:38 ravenousmoose left 11:46 ravenousmoose joined 11:48 drolax joined 11:49 pecastro joined 11:52 drolax left 11:59 ravenousmoose left 12:02 ravenousmoose[aw joined, ravenousmoose[aw left 12:04 zakharyas left 12:06 saki joined, saki left
leont We don't really have tuple types, I fear 12:07
Though I guess one could make such a thing
Apparently not 12:08
m: subset Foo where (Bool, Int); sub multi-retval (--> Foo) { return True, 42 }; 12:09
camelia ( no output )
daxim that's shorter at least, good job 12:10
lizmat perhaps modules.perl6.org/dist/Tuple:cpan:ELIZABETH can be of service, daxim ? 12:15
daxim nope, I want anonymous types for retvals 12:16
cpan-p6 New module released to CPAN! DB (0.2) by 03CTILMES
12:16 saki joined
lizmat daxim: too bad 12:17
daxim m: sub multi-retval (--> List where (Bool, Int)) { return True, 42 }; 12:24
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot do non-typename cases of type_constraint yet
at <tmp>:1
------> 3multi-retval (--> List where (Bool, Int)7⏏5) { return True, 42 };
daxim I hope that has a corresponding TODO test somewhere 12:25
tbrowder hi, #perl6 ! 12:27
can anyone give a good use case for $*ARGFILES vs @*ARGS 12:29
i can see its use iff it only contained cli args that are exiting files 12:30
otherwise, i have
moritz if you want to implement a simple tool like `wc` or `cat` or so without options, that's not a bad assumption
12:31 markoong joined
leont @*ARGS will contain options, $*ARGFILES only non-options 12:31
fo $*ARGFILES won't try to open your --foo 12:32
s/fo/so/
tbrowder yes, but that still sounds like, in your favorite expression, sugar for @*ARGS
leont Actually, what I said seems not quite accurate 12:33
tbrowder leont: ok, that’s a plus, but i didn’t see that in the docs
leont But $*ARGFILES is a file handle, and @*ARGS isn't 12:34
tbrowder actually, when i create scripts i often don’t use - in front of options anyway
ok, si 12:35
leont What I observed what a side-effect of v6.d that I had forgotten about despite having had to code around it before -_-
tbrowder can $*ARGFILES save some code in this example: 12:36
for @*ARGS { next if !$_.IO.f } 12:38
leont Think of it as: for $*ARGFILES.lines(:chomp) { .say if /foo/ } 12:39
It's the handle to do the equivalent of p5's <>
tbrowder hm, looks like i thought, so far i’m not convinced of its utility, but that’s the joy of p6, use what what works for you until someone t 12:41
*someone shows you a better way!
thanks, folks! 12:42
leont TBH, I've never needed it either 12:44
12:48 lizmat_ joined 12:51 lizmat left 12:52 domidumont joined 12:55 RubioTerra joined, domidumont1 left
tbrowder well, i think i see the use case (he says with the possibility of finding egg on his face), back in a while... 13:09
13:10 saki left 13:12 andrzejku joined 13:13 w17t left 13:17 w17t joined 13:22 zacts joined
leont For a moment I was like "why does «$file.r == $expected» give me an exception when the file doesn't exist, turns out it's the numification. 13:25
Using === does DWIM 13:26
13:26 isomorphismes joined
El_Che cough*JS*cough 13:26
13:28 rindolf left 13:35 rindolf joined
leont Failure objects are a bit dangerous like that :-/ 13:36
tbrowder well, no egg, thank goodness. turns out i just had to quit the @*ARGS processing loop when i detected my option requiring processing the rest of the CLI as possible input files. i did then have to loop through @*ARGS again, testing each for an existing file, but i don’t think using $*ARGFILES would have saved anything EXCEPT skipping suspected option args. that would 13:38
13:39 domidumont1 joined
tbrowder be useful in normal CLI practice, so i retract all my whining. however, i’ll look at the docs closer to see if that 13:40
option-skipping is explained.
leont I was mistaken, I think that's not happening. 13:42
13:43 domidumont left 13:48 smallick joined
leont Why is a failure to open a file (in this particular case) an X::AdHoc, and not a properly typed exception? 13:50
tbrowder ref $*ARGFILES: i’m very impressed, looks like it *does* pick only existing files out of the CLI args! 13:52
so it is a definite improvement over @*ARGS for detecting real files by not duplicating file tests. 13:54
13:54 zakharyas joined, ufobat joined, w17t left
tbrowder if you don’t learn someting every day, you’re not paying attention (even though you may have known it before and forgotten it :-D ) 13:56
13:56 shlomif joined 13:58 rindolf left, shlomif is now known as rindolf
ufobat hi 14:00
:)
.tell tyil was my link of any use to you?
yoleaux ufobat: I'll pass your message to tyil.
14:05 RubioTerra left
woolfy1 and lizmat are going to FOSDEM in 15 minutes or so and set up the Perl-booth and tomorrow we're going to promote Perl like crazy woohoo 14:10
woolfy1 knows she is tiresome... sorry...
moritz woolfy1: you two are the biggest resalers of my books, so thanks for doing all that crazy stuff :) 14:11
leont is totally unorganized wrt FOSDEM, but will surely be around at least one day 14:14
woolfy1 moritz : really? And we didn't even sell that many, maybe a bit more than 150 in total for the two books 14:15
leont Nice if you show up anyway!
tbrowder arg, $*ARGFILES throws an error unless at least one real file exists. seems like it ought to be empty unless real files are found, since it obviously test for it. i guess i can use a try block but sounds like a bad design so far. 14:16
why would we set $ARGFILES to $*IN if there are no files in @*ARGS? 14:18
(er, $*ARGFILES) 14:19
leont Because <>
14:20 zacts left
leont Because that's a unix convention. Read from stdin if given no arguments 14:20
in v6.d $*ARGFILES is always $*IN equivalent inside MAIN 14:22
I haven't been able to find the reasoning for that. I guess the magic didn't work well with subcommands.
moritz woolfy1: yes, really. They are not really NYT bestsellers :D 14:24
14:26 rurban joined, rurban left
woolfy1 moritz I know. But all the Perl 6 I sell are selling better than the Perl 5 books. The only good-selling Perl 5 book I had was Beginning Perl by ovid 14:27
leont People already have Perl 5 books, and they're sold elsewhere as well 14:29
woolfy1 Leaving... going to Brussels... bye 14:30
14:30 woolfy1 left
leont 84d45f07fb4a6b08f0acb8ac15e0e4da80b7f3f3 lists a short reason, but doesn't like to an actual discussion 14:30
14:30 lizmat_ left
leont *link 14:31
tbrowder i 14:33
14:33 molaf joined, rindolf left
tbrowder what is the state of $*IN if the user doesn’t modify it? 14:34
i’ll try to test it...
14:38 scimon left, rindolf joined 14:42 zacts joined 14:46 clarkema joined
leont I'm seriously considering making $*ARGFILES do something else in Getopt::Long, because the v6.d behavior doesn't make sense. 14:47
14:47 reach_satori joined 14:48 skids joined 15:00 scimon joined
leont Looking for a reason that isn't "because zoffix" 15:04
AlexDaniel leont: what's the current behavior exactly and how do you want to change it? 15:05
cpan-p6 New module released to CPAN! DB (0.3) by 03CTILMES 15:06
leont when v6.d, $*ARGFILES only contains $*IN inside MAIN
15:06 pmurias joined
pmurias what's a good terminal font that can display all the weird unicode characters Perl 6 uses? 15:07
leont I would like it to contain the appropriate positional arguments instead
timotimo leont: you can totally create a new IO::CatHandle and expose it as $*ARGFILES
15:07 ufobat left
leont Yeah that's my plan 15:07
timotimo SGTM 15:08
15:15 dylanwh left 15:16 reach_satori left
jkramer pmurias: I like terminus and it seems to support a good portion of unicode, at least I didn't need a character yet that it didn't support 15:18
Also great for coding IMO
terminus-font.sourceforge.net/img/10x20n.gif
15:19 dylanwh joined 15:20 Sgeo_ joined
clarkema Anyone going to be at FOSDEM? 15:20
yoleaux 26 Jan 2019 22:04Z <leont> clarkema: I split up App::Prove6 from TAP::Harness, so the former should also be added to Rakudo Star
15:21 jme` left
leont lizmat and woolfy are already on their way to FOSDEM. I'm probably also going. 15:21
clarkema leont: Yup, just caught up with the ticket for that
15:23 Sgeo left
clarkema Been distracted by the whole 'work' think recently, but will catch up with release stuff soon 15:23
s/think/thing
leont Trying to create an overloaded hash 15:33
I think I have to override AT-POS to return a container that can store the thing, but that's about as far as I got 15:34
Erm, AT-KEY 15:35
Ow, there is an ASSIGN-KEY, but it's not mentioned in the documentation of Hash… 15:36
timotimo i think liz made a module to make creating your own hashes easier? 15:37
modules.perl6.org/dist/Hash::Agnos...:ELIZABETH
leont Right 15:38
timotimo but yeah, ASSIGN-KEY should be in the docs
leont For now, inheriting from Hash seems to do what I want #famouslastwords #notestsyet 15:39
15:42 smallick left
tbrowder ok, i give up on ARGFILES, need a good doc example for using with a list of one or more umopenable file names. i’ll keep trying later...bye. 15:47
15:53 zacts left
tbrowder i filed a doc issue requesting a good example of $*ARGFILES use with non-existent files. 15:54
15:59 ravenousmoose[aw joined 16:00 ravenousmoose[aw left 16:03 scimon_ joined
b2gills my $*ARGFILES = IO::CatHandle.new('foo.txt','bar.txt'); .say for lines 16:05
16:05 scimon left
b2gills The point of $*ARGFILES being $*IN inside of MAIN makes sense. MAIN handles @*ARGS, and $*ARGFILES handles @*ARGS. Handling @*ARGS twice doesn't make much sense. 16:09
tbrowder i don’t argue, but i don’t often use main. so docs also need a good example of use inside MAIN. 16:11
leont The main handler could handle the arguments of MAIN and also handle $*ARGFILES, who said anything about handling it twice?
AlexDaniel pmurias: depends on how much unicode you want… Like if you want emojis and stuff, then probably you just have to make sure that it can fallback to other fonts that have more characters 16:13
leont: sorry was away for a bit 16:14
leont: here's the corresponding entry in 6.d-prep github.com/perl6/6.d-prep/blob/mas...nside-main 16:15
leont It makes sense given the current argument handling. I'm not sure it makes sense given my argument handling. 16:21
16:22 isomorphismes left
AlexDaniel c: 2018.05,2018.12 run <perl6 -e>, 「sub MAIN($foo, $bar, *@files) { dd $foo; dd $bar; dd @files; dd $*ARGFILES }」, ‘f’, ‘b’, ‘f1’, ‘f2’ 16:22
committable6 AlexDaniel, gist.github.com/f40d379e7f995e6b8d...4d82b9797e
AlexDaniel leont: ↑ I think it's an improvement
b2gills If a MAIN sub doesn't handle everything in @*ARGS it doesn't get called. Which means there would be nothing left in @*ARGS for $*ARGFILES to handle
timotimo how about "sub MAIN($arg1, $arg2, :$named1, :$named2, *@rest is main-argfiles) { }' 16:23
leont yeah, what timotimo says
b2gills Actually `sub MAIN($arg1, $arg2, :$named1, :$named2, *@*ARGS) { }` would work if the way $*ARGFILES in MAIN is dealt with is by making @*ARGS empty. 16:24
timotimo alternatively '%*MAIN-OPTIONS<slurpy-is-files> = True'
leont I don't think @*ARGS is touched 16:25
tbrowder i still don’t see an argument for $*ARGFILES current behavior outside MAIN. using unix behavior i don’t think is correct. why does the user have to manually check args for fileness when p6 could automatically provide it? at least provide an adverb or something.
b2gills m: .say for lines().grep(/^ foo/) 16:27
camelia ( no output )
tbrowder got to go...bye 16:28
b2gills The way $*ARGFILES works outside of MAIN is for one-liners, and programs that work like one-liners
16:30 jmerelo joined 16:31 zacts joined 16:34 marmor joined 16:39 zakharyas left
daxim the inconsistent output type of `cross(@input<>)` annoys the everlasting fuck out of me. it's supposed to be Seq[List[something]], except when 1 == @input.elems, then it becomes Seq[something] 16:42
m: my @input; @input = 1, (2,3), 4; cross(@input<>).map(-> $i { dd $i.^name }); @input = 1, (2,3); cross(@input<>).map(-> $i { dd $i.^name }); @input = 1; cross(@input<>).map(-> $i { dd $i.^name });
camelia "List"
"List"
"Int"
AlexDaniel daxim: yes 16:47
timotimo indeed :(
AlexDaniel daxim: R#2016 16:48
synopsebot R#2016 [open]: github.com/rakudo/rakudo/issues/2016 [detrap] Inconsistent behaviour of `zip` and friends
AlexDaniel I added 6.e label in a hope that we fix it somehow for the next language release
“annoys …” description is very accurate for me too 16:49
16:52 scimon_ left, mowcat joined
tbrowder how about a pragma so $*ARGFILES is generated at same time as @*ARGS but it only has openable file names? 16:56
sounds like my Proc::More module needs another recipe! 16:57
bye again... 16:58
17:00 yqt joined
leont openable files is hard to define 17:04
17:06 RubioTerra joined, ravenousmoose joined 17:14 marmor left
jmerelo tbrowder: Hum. Could be an idea... 17:18
17:19 molaf left 17:26 melezhik joined
melezhik Hi! How do I import modules function to "main" names space without direct "use" of the module? 17:27
unit module main? 17:28
timotimo you mean re-export from another module?
17:28 ravenousmoose left 17:29 zacts left
timotimo like, module B has "foo" and "bar", main.p6 has "use A" but main.p6 also gets "foo" and "bar"? 17:29
melezhik yes
kinda "transition" export 17:30
in Perl5 I just can "package main {}"
or directly hack with glob
Geth ecosystem: 0612d3e959 | Altai-man++ (committed using GitHub Web editor) | META.list
Add ASN::Grammar
17:31
melezhik basically yes, reexport should be fine as well
timotimo github.com/perl6/roast/blob/master...Module.pm6
pmurias AlexDaniel: I want all things that are commonly encountered in Perl 6
timotimo apparently like this?
melezhik not sure if I understand the OuterModule conception ... 17:32
timotimo well
just "use B :ALL, :EXPORT" in my example
put that in the A from my example
melezhik ahh 17:33
let me try
thanks
pmurias timotimo: I though about the SDL2 in rakudo.js thing, and it seems doable but crazy
timotimo aaw 17:34
in that case, i'll just have to play around with canvas from rakudo.js
kybr yes, please. that sounds awesome
pmurias timotimo: what we would need to do is to have the NativeCall layer generate and compile a C wrapper
melezhik Error while importing from 'Sparrow6::DSL::Common': no such tag 'EXPORT' 17:35
when I try to
use Sparrow6::DSL::Common :ALL, :EXPORT;
17:35 domidumont1 left
pmurias timotimo: using a canvas directly would remove a layer of craziness ;) 17:35
melezhik should I change module itself as well? 17:36
timotimo oh, hmm
maybe without the ,
let me have a look
github.com/perl6/roast/blob/master...Module.pm6 - that's InnerModule 17:37
so it doesn't have anything special really
pmurias timotimo: I have been neglecting the user facing parts of rakudo.js while hunting down weird bugs but there only a couple of those remaining for my targeted subset so I should on that in the remotely near futre
melezhik ok it compiles now, let me see if helps with my purpose 17:38
timotimo hunting down weird bugs is very important!
17:42 ravenousmoose joined
melezhik it's compiles now, but still does not do reexport 17:45
use Sparrow6::DSL::Common :DEFAULT :EXPORT;
unit module Sparrowdo::DSL::Common; our sub task-run($desc, $plugin, %parameters = %()) is export(:DEFAULT) {} 17:46
when I
timotimo sorry about that :|
melezhik let me write down simple example 17:47
timotimo i'll be afk for a bit first
17:53 ravenousmoose left 17:59 lucasb joined
melezhik gist.github.com/melezhik/186eb92bd...23723e8545 18:00
timotimo melezhik: it seems like your perl6 -I line will also have to pass :ALL to the use statement (not sure if you can do that with -M) 18:03
18:04 reach_satori joined
leont I think you forgot a comma between your pairs 18:04
timotimo putting the comma there led to a compilation error i think? 18:05
melezhik yes
perl6 -I /tmp/ -e 'use Foo :ALL :EXPORT; say bar()' 18:09
Error while importing from 'Foo': no such tag 'ALL'
18:09 domidumont joined, RubioTerra left
timotimo :| 18:09
is that re-export test file maybe not run by rakudo or something? 18:10
because that's supposed to work
d'oh
Too late to switch language version. Must be used as the very first statement.
that test doesn't actually work, so it most likely doesn't get run
timotimo puts a pin in it
sorry for setting you off on this wild goose-chase 18:11
until then ... www.nntp.perl.org/group/perl.perl6...g3120.html ?
melezhik sigh 18:14
)-;
what about defining functions directly in "main" namespace, if it's possible? 18:15
18:16 PaddyF joined
jmerelo releasable6: status 18:26
releasable6 jmerelo, Next release in ≈15 days and ≈0 hours. 5 blockers. 162 out of 274 commits logged
jmerelo, Details: gist.github.com/9e759215a92e0c807a...489a4f0a59
kybr is that referring to 6d release? 18:29
jmerelo kybr: 6.d was done already.
AlexDaniel a few months ago :)
jmerelo That was 2019.01, and is now 2019.02
leont There's not rakudo star with 6.d yet though 18:30
s/not/no/
jmerelo AlexDaniel: sorry to hear that we're skipping a release, but I understand it perfectly.
18:31 ravenousmoose[aw joined 18:32 ravenousmoose[aw left
kybr i saw the 6.d language release. i'm wondering when an implementation will be released. 18:32
jmerelo kybr: it's implemented already in the monthly releases. Star releases are just bundles of particular releases, plus goodies. 18:33
AlexDaniel jmerelo: I see nothing bad about it. It's a combination of a bunch of new commits + effort to find all possible regressions. Plus lately we cared a bit more about weird architectures because of packaging
jmerelo AlexDaniel: of course. That's great.
AlexDaniel c: 2018.08 say $*PERL
committable6 AlexDaniel, ¦2018.08: «Perl 6 (6.c)␤»
AlexDaniel c: 2018.09 say $*PERL
committable6 AlexDaniel, ¦2018.09: «Perl 6 (6.c)␤»
AlexDaniel c: 2018.10 say $*PERL
committable6 AlexDaniel, ¦2018.10: «Perl 6 (6.c)␤»
AlexDaniel c: 2018.11 say $*PERL
committable6 AlexDaniel, ¦2018.11: «Perl 6 (6.d)␤»
AlexDaniel kybr: so 2018.11 and 2018.12 were rakudo releases that defaulted to 6.d 18:34
18:34 ufobat_ joined 18:35 grayrider joined
AlexDaniel it was planned that the next rakudo star will be based on 2019.01, but now that 2019.01 is skipped it will have to wait until rakudo 2019.02 is released :) 18:37
18:38 robertle joined 18:39 PaddyF left
sena_kun I probably have a bit complicated issue... I have a class generated with MOP, one of its field is typed with `Positional[Str]`. And I can do... 18:44
> my $payload = Array[Str].new('A'); say $payload ~~ Positional[Str]; # <- obviously, True 18:45
> say Rocket.^attributes[4].type ~~ Positional[Str]; # Rocket is my type, fourth attr is correct one, it evaluates to True, so it has to be matched
but
when I am trying to create an instance with foo => $payload, I am getting `Type check failed in assignment to $!payload; expected Positional[Str] but got Array[Str] (Array[Str].new("A"))`. 18:46
which is pretty odd.
Geth doc: 6a08f01617 | (JJ Merelo)++ | doc/Language/variables.pod6
Two definitions of ARGFILES linked. Refs #96
synopsebot Link: doc.perl6.org/language/variables
doc: 89cf65bc5b | (JJ Merelo)++ | doc/Type/IO/CatHandle.pod6
Some review, deleting sentences, refs #2600
synopsebot Link: doc.perl6.org/type/IO::CatHandle
sena_kun any ideas where to dig?
jmerelo sena_kun: I'm not sure parametrizations work through the inheritance chain... 18:47
timotimo but doesn't Array[Str] implement the Positional[Str] role, too?
jmerelo m: say Positional[Str].^mro
sena_kun it dues
*does
that's why it's odd. :)
I am suspecting a bug either in rakudo or my code.
just not sure where exactly. 18:48
I can show full module code, a test to run.
jmerelo sena_kun: I filed this issue some time ago: github.com/rakudo/rakudo/issues/2656 18:49
sena_kun: I'm afraid it's the same issue...
timotimo but that's about isa-ok, this is about smartmatch/type constraint? 18:50
sena_kun jmerelo, are you sure check of isa-ok relates to how attributes are type matched.
melezhik timotimo: www.nntp.perl.org/group/perl.perl6...g3120.html helped me, thank you
timotimo glad to hear it 18:51
melezhik not ideal, but it works ((=;
timotimo i'd expect there's a better way out there
jmerelo sena_kun: I'm not sure. Only parametrized types don't work well with ~~
sena_kun jmerelo, that's sad, thanks.
melezhik maybe reexport is not that common, but I find it extremely useful for my purposes at least
sena_kun I wonder how to workaround this...
jmerelo sena_kun: for instance, say Buf[uint64] ~~ Blob[uint64] returns False. 18:52
sena_kun having a type generation for PositionalStr, PositionalFoo and so on would be ouch.
jmerelo sena_kun: I'm not sure if it's the same for all parametrized types, or only for parametrized roles. But that's the thing. 18:53
sena_kun m: class A { has Positional[Str] $.a }; A.new(a => Array[Str].new('a', 'b')).say;
evalable6 A.new(a => Array[Str].new("a", "b"))
sena_kun so I don't think it's Perl 6 restriction.
because of ^
but sounds like generated class is somewhere broken and I don't know where to dig for exact place, because `Rocket.^attributes[4].type === Positional[Str];`. 18:54
18:54 grayrider left 18:55 grayrider joined
sena_kun I'll probably try to golf it including MOP code that is executed. 18:55
as it's likely nearly impossible to guess just from my description, sorry.
18:55 pyrimidine joined 19:00 grayrider left 19:04 ravenousmoose joined, ravenousmoose is now known as ravenousmoose[aw 19:05 ravenousmoose[aw left 19:11 mniip joined 19:12 Kaiepi left 19:13 Kaypie left
sena_kun the bug was in my code. \o/ 19:16
jmerelo sena_kun++
I've just submitted a talk to J on the Beach: www.papercall.io/jotb19 19:17
It's a (mostly) functional languages event, but in includes all kind of stuff. Plus it's really on the beach. Maybe you'd want to send more Perl 6 stuff (or whatever) there... 19:18
sena_kun great!
good luck with the talk. :) 19:19
19:19 jme` joined
jmerelo sena_kun: thanks! 19:19
SmokeMachine m: class CX::A does X::Control {}; CONTROL { when CX::A { say .resume.^name } }; CX::A.new.throw 19:23
evalable6 (exit code 1) Cannot find method 'sink': no method cache and no .^find_method
in block <unit> at /tmp/uHNGiDbkGh line 1
19:23 Sauvin left
SmokeMachine m: class CX::A does X::Control {}; CONTROL { when CX::A { .resume } }; CX::A.new.throw 19:26
evalable6 (exit code 1) Cannot find method 'sink': no method cache and no .^find_method
in block <unit> at /tmp/RYg932ZupQ line 1
SmokeMachine m: class X::A is Exception {}; CATCH { when X::A { .resume } }; X::A.new.throw 19:27
evalable6 (exit code 1) Cannot find method 'sink': no method cache and no .^find_method
in block <unit> at /tmp/rDar6orwzJ line 1
sena_kun oh, I golfed it 19:29
m: class A { has Positional["Failure oh-huh"] $.a }; A.new(a => Array[Str].new('a', 'b'));
evalable6 (exit code 1) Type check failed in assignment to $!a; expected Positional[Str] but got Array[Str] (Array[Str].new("a", "b"))
in block <unit> at /tmp/ESefEe8lVk line 1
19:33 jmerelo left, ufobat_ is now known as ufobat
ufobat hi :) 19:34
Geth doc: 4f0be52b94 | Coke++ | doc/Language/variables.pod6
whitespace
19:35
synopsebot Link: doc.perl6.org/language/variables
19:39 natrys joined
leont m: dd (* || 2) 19:43
evalable6 *
leont is surprised || isn't curried
It makes sense when you think about it a bit more, given shortcutting logical operators aren't operators like any of the others, but it's still surprising on first sight 19:47
19:49 rindolf left 19:54 ravenousmoose[aw joined
Geth doc: cf3ee72678 | Coke++ | doc/Language/modules.pod6
Pass links test

  (L<> has to be on a single line for the test to work)
19:54
synopsebot Link: doc.perl6.org/language/modules
19:55 ravenousmoose[aw left 19:57 domidumont left 19:59 xinming_ joined
Geth doc: 9757de3ad5 | Coke++ | doc/Language/hashmap.pod6
allow example to compile
20:00
synopsebot Link: doc.perl6.org/language/hashmap
20:01 xinming left 20:11 MasterDuke joined
leont ??!! does the same, but so * doesn't 20:12
20:12 reach_satori_ joined
leont So I guess it is the shortcutting 20:12
20:15 reach_satori left 20:16 MasterDuke left, MasterDuke joined
Geth ecosystem: 3cfd3d8abf | Altai-man++ (committed using GitHub Web editor) | META.list
Add ASN::META
20:19
tyil ufobat: I've checked it out, it looks good, but I haven't started on implementing it yet
yoleaux 14:00Z <ufobat> tyil: was my link of any use to you?
20:20 melezhik_ joined
melezhik_ how do I define class methods? 20:20
El_Che melezhik_: use a sub?
tyil melezhik_: class Foo { method bar() { ... } }
melezhik_ I mean not instance methods, static ones 20:21
timotimo methods that don't access $!foo will be class methods
you may want to constrain them for an undefined invocant
melezhik_ ah, ok, so there is no dedicated syntax
?
timotimo m: class Foo { method staticmeth(Foo:U:) { say "i'm static!" } }; Foo.staticmeth
evalable6 i'm static!
20:22 melezhik left
melezhik_ how do I define static attributes/data then? 20:24
leont You don't have to declare a method as being static 20:25
melezhik_ I see; Say I'd like to set class attributes through method, how do I do that?
I now know how to define method, what about data? 20:26
20:26 rindolf joined
timotimo melezhik_: you'd just use "my" 20:26
(classes aren't closures, just a head's up)
melezhik_ ok, sure
should I declare my $a inside class?
should it be scoped to class then? 20:27
20:27 ravenousmoose[aw joined, ravenousmoose[aw left 20:29 lucasb left 20:31 vrurg left, pmurias left, pmurias joined
sena_kun m: c lass A { my $foo = 5; method foo { $foo }; method set-foo($v) { $foo = $v } }; say A.foo; A.set-foo(10); say A.foo; 20:36
evalable6 (exit code 1) 04===SORRY!04===
Undeclared name:
A used at line 1
Undecla…
sena_kun, Full output: gist.github.com/04ee0c9db365a47048...42aa05c158
sena_kun oops
m: class A { my $foo = 5; method foo { $foo }; method set-foo($v) { $foo = $v } }; say A.foo; A.set-foo(10); say A.foo;
evalable6 5
10
sena_kun melezhik_, ^
b2gills m: class A { my $.foo = 5 }; say Foo.foo; Foo.foo = 3; say Foo.foo 20:40
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/ikkIeA1u38
Undeclared name:
Foo used at line 1
b2gills m: class Foo { my $.foo = 5 }; say Foo.foo; Foo.foo = 3; say Foo.foo
evalable6 5
3
sena_kun oh, that's even better! b2gills++ 20:41
b2gills It's better only if you always want it rw 20:42
sena_kun well, s/better/shorter/ indeed 20:43
MasterDuke leont: how were you trying to open a file that you got an X::AdHoc? 20:52
20:54 lizmat joined
MasterDuke m: say Buf ~~ Blob; say Buf[int] ~~ Blob[int]; say Buf ~~ Blob[int]; say Buf[int] ~~ Blob 20:55
evalable6 True
False
False
True
leont m: "foo".IO.slurp; CATCH { dd $_ }
evalable6 (exit code 1) X::AdHoc.new(payload => "Failed to open file /home/bisectable/git/whateverab…
leont, Full output: gist.github.com/2709c2d33a75e1fb99...137993698a
leont MasterDuke: though other ways of opening also seem to give me an X::AdHoc 20:57
melezhik_ Cannot look up attributes in a Sparrow6::Runner::Api type object 20:58
20:58 jme` left
melezhik_ unit module Sparrow6::Runner; class Api { my $sudo } 20:58
MasterDuke leont: ugh, --ll-exception doesn't even help, doesn't show where the failure came from 20:59
melezhik_ perl6 -MSparrow6::Runner -e 'Sparrow6::Runner::Api.sudo = True' 21:00
Cannot look up attributes in a Sparrow6::Runner::Api type objec
oh, it should be my $.sudo 21:01
(((;
21:03 zachk joined
melezhik_ it works, thank you b2gills: sena_kun: ((=; 21:03
21:06 pmurias left, pmurias joined
clarkema /quit 21:07
21:07 clarkema left
MasterDuke leont: fwiw, it's coming from here github.com/rakudo/rakudo/blob/mast...e.pm6#L156 21:08
21:08 Kaiepi joined 21:10 rindolf left 21:21 rindolf joined
melezhik_ say I have both static and instance attribute : class Foo { my $.foo; has $.foo }; which one does "win"? 21:21
looks like static one
21:24 mowcat left, Kaypie joined
melezhik_ m: class Foo { my $.foo = True; has $.foo = False }; say Foo.new(foo=>False).foo 21:25
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/Lw8ch0q34R
Type check failed in binding to parameter '<anon>'; expected Any but got NQPMu (?)
at /tmp/Lw8ch0q34R:1
kawaii Any Net::XMPP port yet or being worked on? :)
Oh, looks like I just found it actually 21:26
melezhik_ m: class Foo { my $.foo = 1; has Int $.foo }; say Foo.new(foo=>2).foo
evalable6 Potential difficulties:
Redeclaration of symbol '$.foo'
at /tmp/Armrbt_VSD:1
------> 03lass Foo { my $.foo = 1; has Int $.foo 08⏏04}; say Foo.new(foo=>2).foo
1
melezhik_ m: class Foo { my $.foo = 1; has Int $!foo }; say Foo.new(foo=>2).foo 21:29
evalable6 1
melezhik_ m: class Foo { my $.foo = 1; has Int $!foo; method get-foo {self.foo} }; say Foo.new(foo=>2).get-foo 21:30
evalable6 1
21:34 melezhik_ left
MasterDuke oh, looks like camelia is down 21:35
b2gills `.new( foo => 2 )` only works (by default) if it has a public attribute named `$.foo` 21:39
lizmat weekly: blogs.perl.org/users/dmitri/2019/02...brary.html 21:42
notable6 lizmat, Noted!
21:43 yqt left 21:44 pochi_ left, pochi joined 21:51 ravenousmoose joined, ravenousmoose is now known as ravenousmoose[aw 21:52 ravenousmoose[aw left
MasterDuke does anyone remember how to request glot.io to update its version of perl 6? it's currently using 2018.04 21:53
21:57 Kaiepi left, Kaiepi joined
moritz MasterDuke: I'd guess github.com/prasmussen/glot/issues 22:05
MasterDuke moritz: github.com/prasmussen/glot/issues/24 22:08
22:23 drolax joined 22:28 drolax left, irced joined
irced p6: say what?; 22:29
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/ArEvl0wJS5
Bogus p…
irced, Full output: gist.github.com/e54664a7906c9b7772...1ef5f45c24
irced p6: say 'what?';
evalable6 what?
22:29 skids left 22:30 pmurias left
irced p6: say 'I am an eval bot and I have no personality, no really. Are you thick in the head or something?' 22:30
evalable6 I am an eval bot and I have no personality, no really. Are you thick in the head or something?
22:33 gregf_ left
irced snores loudly. 22:37
22:38 pmurias joined
timotimo m: say .WHAT 22:38
evalable6 (Any)
irced m: say .CHICKENBUTT 22:39
evalable6 (exit code 1) No such method 'CHICKENBUTT' for invocant of type 'Any'
in block <unit> at /tmp/yY5BCPx1Wh line 1
irced m: say grammar.WHAT; 22:40
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/CCX_mcuP_t
Whitespace required after keyword 'grammar'
at /tmp/CCX_mcuP_t:1
------> 03say grammar08⏏04.WHAT;
irced m: say camelia.WTF!; 22:41
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/JwwXGiCHfc
Negatio…
irced, Full output: gist.github.com/1d17f53efd0f769df8...74cbf435eb
irced m: say 'Lex Luther'; 22:43
evalable6 Lex Luther
22:44 melezhik joined
irced m: say $epsilon 22:44
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/ewchgShwx9
Variable '$epsilon' is not declared
at /tmp/ewchgShwx9:1
------> 03say 08⏏04$epsilon
irced m: my $ε=0.000000000000000000000000000000000000000000001; 22:46
evalable6
irced m: say $ε;
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/QGB6u9Uh8J
Variable '$ε' is not declared
at /tmp/QGB6u9Uh8J:1
------> 03say 08⏏04$ε;
irced m: my $ε=0.000000000000000000000000000000000000000000001; say $ε; 22:47
evalable6 0.000000000000000000000000000000000000000000001
irced can anyone show how to use exponential notation??
timotimo exponential notation will always give you a regular floating point number, which is at most 64bit big 22:48
m: say FatRat.new(1, 1) * 10 ** 100000;
evalable6 100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000…
timotimo, Full output: gist.github.com/4cfcf5a0fd38b1e5d6...23041b38d5
22:48 tyilanmenyn joined
irced m: say FatRat.new(1,1) * -10 ** 100; 22:48
evalable6 -10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
timotimo oh, needs to be negative for yours
two more to the right 22:49
irced claps lightly.
ok, how to output in exponential?
timotimo m: FatRat.new(1,10 ** 1000).fmt("%e").say
evalable6 0.000000e+00
timotimo wow, that is useless 22:50
irced looks closely.
thanks timotimo. it all looks Greek to me! Good thing I'm giving myself PerlGreek lessons. 22:51
timotimo Greerl 22:52
irced m: say Rat.new(10,1 ** 1000).fmt("%e").say
evalable6 1.000000e+01
True
irced m: say Rat.new(10,1 ** 1000).fmt("%e")
evalable6 1.000000e+01
timotimo well, 1 ** 1000 is just 1
irced slaps himself on the forhead.
m: say Rat.new(10,2 * 1000).fmt("%e"); 22:53
evalable6 5.000000e-03
irced scratches his forehead.
m: print {Hello "universe"'!'}; 22:54
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/TAeLSqvakP
Two ter…
irced, Full output: gist.github.com/c35626935385b93302...34449652c7
irced m: print q{Hello "universe"'!'};
evalable6 Hello "universe"'!'
irced m: say q{Goodbye "other universe!"'!'}; 22:55
evalable6 Goodbye "other universe!"'!'
irced m: say q{Goodbye "other universe"'!'};
evalable6 Goodbye "other universe"'!'
timotimo m: .say for ("Hello", "Goodbye" X~ " World", "Universe")
evalable6 Hello World
HelloUniverse
Goodbye World
GoodbyeUniverse
timotimo m: .say for ("Hello", "Goodbye" X~ " World", " Universe") 22:56
evalable6 Hello World
Hello Universe
Goodbye World
Goodbye Universe
timotimo m: .say for ("Hello", "Goodbye" X "World", "Universe")
evalable6 (Hello World)
(Hello Universe)
(Goodbye World)
(Goodbye Universe)
22:56 Khisanth left
irced opens his eyes. 22:56
irced throws away the feminist propaganda he found himself holding, and drops his jaw. 22:57
nice cross product!
timotimo yeah, it's a meta operator that you can combine with any operator you like!
(well, only infix operators)
irced let me try it with chi
timotimo m: .say for (1, 2, 3 X* 10, 100, 1000)
evalable6 10
100
1000
20
200
2000
30
300
3000
irced m: .say for ("Hello", "Goodbye" χ~ " World", "Universe"); 22:58
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/OTj93sCS5_
Two ter…
irced, Full output: gist.github.com/55598ea4b9a16b80e7...61938b322c
timotimo ah, you mean that chi
irced anyway, chi is not used as a cross product symbol
but it looks like it could have been
timotimo well, there isn't really more than this chi
irced say q{Not the One} 22:59
evalable6 Not the One
irced puts his hand over his mouth.
say 2+2; 23:00
evalable6 4
irced say 1..3
evalable6 1..3
timotimo if you find yourself needing it, you can modify your perl6 grammar to have chi for cross product metaoperator
irced .say for 1..3
evalable6 1
2
3
timotimo m: say (1..3).list
evalable6 (1 2 3)
irced say (1..4).array
irced waits for something to happen. 23:01
irced grabs the ouji board.
timotimo the eval bot will only react to perl6 code without a "m:" in front if it guesses that it's perl6 code
irced aha
timotimo i think if it throws an exception it won't output it unless a "m:" exists
irced good observation 23:02
timotimo have you read a little about our horde of irc bots?
irced when I saw the list I had to wipe my eyes, and screen.
timotimo they're good bots, brent 23:03
irced <timotimo> if you find yourself needing it, you can modify your perl6 grammar to have chi for cross product ......... gtk thanks 23:06
timotimo it's that feature called "slangs"
irced no fucking way
irced apologizes to the ladies. 23:07
timotimo here's an irc bot that greps through all perl6 modules in the ecosystem:
greppable6: chicken
greppable6 timotimo, 14 lines, 4 modules: gist.github.com/5a190d3de19d789fef...ca7aa2e7e1
irced greppable6: chickenalaking 23:08
greppable6 irced, Found nothing!
irced greppable6: lexer
greppable6 irced, 1631 lines, 7 modules: gist.github.com/140b3a24fc8bd83fb9...dde6956658
irced greppable6: ssh 23:09
timotimo greppable6: PRIVATE KEY
greppable6 irced, 663 lines, 44 modules: gist.github.com/ec450456c67f742083...aa86b673cb
timotimo, 38 lines, 12 modules: gist.github.com/d0dcea74e5d0030f25...92d65d69fe
irced greppable6: blake 23:10
greppable6 irced, 114 lines, 2 modules: gist.github.com/dcce1c6d08ed255c0d...a136b5eaee
23:10 natrys left
irced greppable6: zaphod 23:11
greppable6 irced, Found nothing!
timotimo haha, i unleashed you upon the bots 23:12
irced is there one named zaphod?
timotimo not yet
irced winks without innuendo.
that's great. bots are useless except here. 23:13
anyway, I already knew a bot named zaphod. looking for Jarvis. :-) 23:14
23:14 Khisanth joined
irced J.A.R.V.I.S. 23:15
timotimo m: await IO::Socket::Async.connect("irc.freenode.net", 6667).then: -> $p { if $p.status { given $p.result { .print: "NICK Perl6Zaphod\nUSER z z z z\nJOIN #perl6\nPRIVMSG #perl6 :Hello there, I have a second head below my head!\n"; react { whenever .Supply { .say } } } } }
23:15 Perl6Zaphod joined
Perl6Zaphod Hello there, I have a second head below my head! 23:15
timotimo oh
well, how's that
irced ain't that something?
23:15 Perl6Zaphod left
evalable6 (signal SIGHUP) :rajaniemi.freenode.net NOTICE * :*** Looking up your hostname...␦
:rajan…
23:15
timotimo, Full output: gist.github.com/14be1b452d79917262...1c7978d6fe 23:16
irced throws his thumb back facing the lifeless attendees.
that's some fancy typework there. thanks for that demonstration! 23:17
timotimo i stole it from someone in the irclog :)
irced don't you mean, a bot stole it and gave it to you as a gift?
i'm trying to help you here. the irs is listening.
timotimo how silly of me, of course i did!
it's a common typo to make with the kind of keyboard i'm using 23:18
irced of course.
irced observes a suit quietly disappear in the midst sneaker wearing attendees.
23:21 woolfy joined 23:22 melezhik left, dominix left
irced m: await IO::Socket::Async.connect("irc.freenode.net", 6667).then: -> $p { if $p.status { given $p.result { .print: "NICK JARVIS\nUSER z z z z\nJOIN #perl6\nPRIVMSG #perl6 :Hello there, I am ready to help you dominate the world.\n"; react { whenever .Supply { .say } } } } } 23:23
23:23 JARVIS joined
JARVIS Hello there, I am ready to help you dominate the world. 23:23
irced .say what?
that's awesome JARVIS!
23:23 JARVIS left
evalable6 (signal SIGHUP) :rajaniemi.freenode.net NOTICE * :*** Looking up your hostname...␦
:rajan…
23:23
irced, Full output: gist.github.com/5f9731cad3f44d66b2...acf5bd8fbf
irced where'd he go?
crap
timotimo well, the eval bot will kill processes that take too long 23:24
longer than 15 seconds or something?
irced no wonder it has that name
irced chuckles knowingly.
23:25 reach_satori_ left, reach_satori joined
irced .say for 1..10 "repeat"; 23:28
.say "repeat"**10
say "repeat";
evalable6 repeat
irced say "repeat"**10;
any1?
timotimo, show us how it's done 23:29
tobs m: say "repeat"**10 # to see the error, address the bot with "m: "
evalable6 (exit code 1) Cannot convert string to number: base-10 number must begin with valid digits or '.' in '03⏏04repeat' (indicated by ⏏)
in block <unit> at /tmp/AMsisia2gO line 1
irced tobs!
you threw an error, you idiot!
timotimo m: say "repeat" x 10
irced sorry.
evalable6 repeatrepeatrepeatrepeatrepeatrepeatrepeatrepeatrepeatrepeat
irced i didn't mean that.
nice
say "I am repeating myself! " x 10; 23:30
evalable6 I am repeating myself! I am repeating myself! I am repeating myself! I am repeating myself…
irced, Full output: gist.github.com/1747dd67bda7e78e57...7b7d42147f
irced say "I irced won't namecall. " x 1000;
evalable6 I irced won't namecall. I irced won't namecall. I irced won't namecall. I irced won't name… 23:31
irced, Full output: gist.github.com/1c0d9c40b7cf3d280c...694512adbf
irced I needed a bot in grade school to write on the chalk board for me, yeeeeuh
23:31 ravenousmoose[aw joined 23:32 ravenousmoose[aw left, woolfy left 23:33 lizmat left
irced sorry. 23:34
m: await IO::Socket::Async.connect("irc.freenode.net", 6667).then: -> $p { if $p.status { given $p.result { .print: "NICK CAMELIA\nUSER z z z z\nJOIN #perl6\nPRIVMSG #perl6 :Hello there, I am worried I will be replaced by something meaner and more cool like a bee.\n"; react { whenever .Supply { .say } } } } }
23:35 CAMELIA joined
CAMELIA Hello there, I am worried I will be replaced by something meaner and more cool like a bee. 23:35
irced aww, camelia, this is a family
it's okay we don't liek you
23:35 CAMELIA left
evalable6 (signal SIGHUP) :rajaniemi.freenode.net NOTICE * :*** Looking up your hostname...␦
:rajan…
23:35
irced, Full output: gist.github.com/bb97381a3901a15a7f...3393ce1b5e
irced camelia?
hope she doesn't hang herself.
23:35 rindolf left
irced grins evilly to himself. 23:35
zachk :( 23:36
irced grins evily to himself.
you and camelia, huh?
allright, i take the joke back.
tobs u: ␦ 23:37
unicodable6 tobs, U+2426 SYMBOL FOR SUBSTITUTE FORM TWO [So] (␦)
irced claps.
m: my Str $a = $*IN.get;
evalable6
irced u: u+2020 23:38
unicodable6 irced, U+2020 DAGGER [Po] (†)
irced dozes off and falls unto the stack of other bodies. 23:48
23:48 pecastro left 23:51 dct_ joined 23:52 rgrau joined
irced sleeps with a † under his back. 23:57
irced brandishes a † blindly while acting up in his slumber.
23:58 SyrupThinker left
irced barely nicks you with. 23:58
irced barely cuts you with his †. 23:59