»ö« 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 |