»ö« 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.
Geth doc: 7913c42fd7 | Coke++ | doc/Language/typesystem.pod6
whitespace
02:39
synopsebot Link: doc.perl6.org/language/typesystem
Xliff \o 05:59
If I wanted a command line switch to act like the traditional verbosity count, would I have to use @*ARGS? 06:00
So -v -> 1
And -vvvvv -> 5
for @*ARGS { when /^ '-v' / { $verbosity = $_.chars -1 } } 06:01
AlexDaniel (Bool :$v, Bool :$vv, Bool :$vvv, Bool :$vvvv) :S 06:09
Xliff: maybe one of the getopt modules can help 06:10
TimToady (*%rest) { my $verbosity = %rest.keys.grep(/^ v+ $/).chars; 06:12
Xliff TimToady++ 06:13
quester Xliff: the first thing that you should think of for parsing arguments is the sub MAIN feature, see stackoverflow.com/questions/297041...-in-perl-6 for an example and docs.perl6.org/routine/MAIN for details. But its convention is to use -v=5, rather than -vvvvv, so you may not want to use it for this particular problem. 06:23
TimToady quester: I just gave Xliff a solution for that
quester Hi TimToady. Sorry, I just thought casual readers would get the impression that command line arguments are usually parsed ad-hoc, rather than using built-in tools. 06:26
TimToady AlexDaniel & I were just being lazy and leaving out the 'sub MAIN' before the sig
but yes, it's good to think of the innocent bystanders :) 06:27
quester Oh, I see. 06:28
TimToady I suspect we both took "would I have to use @*ARGS?" to indicate a preference for using MAIN if possible 06:32
Xliff TimToady: Yes, that was the intention. Thanks for deciphering it with the meager scraps I left. 06:47
buggable New CPAN upload: Trait-Env-0.3.3.tar.gz by SCIMON modules.perl6.org/dist/Trait::Env:cpan:SCIMON 08:43
Geth doc: MorayJ self-assigned named capture using non-capturing group confusion github.com/perl6/doc/issues/1634
MorayJ++ created pull request #2286: Clarifies capturing properties of square brackets in regex
12:12
DrForr .tell bbkr Hi, I was looking at your JSONRPC server for implementing microsoft.github.io/language-serve...cification - It uses request names like 'textDocument/didOpen' which obviously don't map to Perl method names. Do you have any thoughts on how to implement these? I'm thinking either a separate Route argument or a forwarding method that picks off the last part of a route name, handing it off to another class. Or a way to de 12:34
yoleaux DrForr: I'll pass your message to bbkr.
DracoChartin i'm having some trouble with basic case insensitive matching "GTcGGCTCCG" ~~ m:i:global/CG/; returns (「cG」 「CG」) but "GTcGGCTCCG".match("CG",:i,:global); returns (「CG」). what am i missing? 13:02
timotimo oh, that's interesting
m: "GTcGGCTCCG".match("CG", :i, :global).say 13:03
camelia (「CG」)
timotimo m: "GTcGGCTCCG".match(/CG/, :i, :global).say
camelia (「CG」)
timotimo m: "GTcGGCTCCG".match(/:i CG/, :global).say
camelia (「cG」 「CG」)
timotimo let's have a look at the code
s: Str, "match", \("CG", :i, :global)
oh, bot's not here
oh, huh, method match doesn't seem to have support for :i 13:05
DracoChartin hmm yess the :i adverb is not listed for match in the docs: docs.perl6.org/routine/match - Do you know why match does not support :i 13:07
timotimo it should definitely be possible to implement it 13:10
jnthn It's because rules are compiled, and :i is a compilation option
timotimo jnthn: but if you supply a Str, it'll just make it / "$to-match" / anyway! 13:11
which ... we could do it faster for Str than that
jnthn timotimo: True, though it's probably more confusing to have .match accept :i only in some cases
timotimo mhh
tbrowder_ can someone please help with my git problem with perl6/roast? 13:18
timotimo what's happening? 13:19
tbrowder_ my setup for both roast and rakudo are the same as far as i can tell: git remote -v shows origin to my repo on github and upstream to perl6/roast and rakudo/rakudo. 13:21
timotimo OK 13:23
tbrowder_ i start a new branch on each with "git checkout master; git pull upstream master". update origin "git push origin master". "git checkout -b new-branch" 13:24
work...work... "git commit -a -m'msg'"; "git push origin new-branch". 13:25
got to github in browser and start the PR... on rakdo all looks fine, but on my last several roast pr's it looks like some of the commits are not getting merge or are getting merged twi\ce. 13:26
timotimo git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %Cblue<%an>%Creset' --abbrev-commit --date=relative --all 13:27
^- this is my alias for "git lg"
it shows stuff with nice lines that tell you how the commits relate
maybe that can tell you what's wrong
it could be that you have a merge commit in there that pulls master into your branch or something
tbrowder_ *twice. also, only with roast, i always get an automatic merge msg template when updating from upstream but not with rakudo. 13:27
timotimo ah, yes, that's when you've based your branch on a remote branch that has changed in the mean time, when your branch also had changes 13:29
tbrowder_ timotimo: your theory sounds likely, thanks for the git code!
timotimo since "git pull" is basically "git fetch + git merge"
(and "git pull --rebase" is "git fetch + git rebase")
tbrowder_ so, in general, should i alway be rebasing when i "update" from master? 13:31
timotimo not necessarily 13:32
it's basically personal preference 13:33
though the git history can become really weird when you have a really big amount of merges
well, only weird when looking at it with one of the graphical things like the git log command i had above or gitk
Geth doc: f596e218f4 | MorayJ++ | doc/Language/regexes.pod6
Clarifies capturing properties of square brackets in regex

Also clarifies how round brackets work in name capture.
Also take the mystery out of what we are going to see in subrules.
13:35
synopsebot Link: doc.perl6.org/language/regexes
doc: 198f0ac55e | MorayJ++ (committed using GitHub Web editor) | doc/Language/regexes.pod6
Merge pull request #2286 from MorayJ/regex-clarity

Clarifies capturing properties of square brackets in regex
Geth doc: 5954ab03db | (JJ Merelo)++ | doc/Language/syntax.pod6
Reflow and hashtag correction

Can't figure out what the TODO refers to, so it's just eliminated. Refs #2277
15:06
synopsebot Link: doc.perl6.org/language/syntax
AlexDaniel onehu 15:26
squashable6: help
AlexDaniel squashable6: help 15:26
squashable6 AlexDaniel, Available commands: status, log, quiet, loud # See wiki for more examples: github.com/perl6/whateverable/wiki/Squashable
AlexDaniel I mean… talking to yourself is not that fun…
p6bannerbot is gone for some reason
Geeky_Bear A fascinating blog where freenode staff member Matthew mst Trout recounts his experiences of eye-raping young children MattSTrout.com/ 15:28
I thought you guys might be interested in this blog by freenode staff member Bryan kloeri Ostergaard bryanostergaard.com/
With our IRC ad service you can reach a global audience of entrepreneurs and fentanyl addicts with extraordinary engagement rates! williampitcock.com/
AlexDaniel ooooooooooh crap
Geeky_Bear Read what IRC investigative journalists have uncovered on the freenode pedophilia scandal encyclopediadramatica.rs/Freenodegate
tadzik :D 15:30
leaving a gate to hell open for 3 seconds and immediately this happen
AlexDaniel OK for anyone wondering why am I doing all that – the bot is gone, and with +z you can be talking to yourself without realizing that the channel is +z +m
AlexDaniel so someone earlier said that the attack got quieter… 15:31
AlexDaniel and I assumed we can try it out while we're looking for the bot, but yeah, you see 15:31
AlexDaniel I'll fix it all in a minute 15:36
AlexDaniel SUCCESS 15:44
tadzik . o O ( the child doesn't want to swear! ) 15:44
AlexDaniel ok I think we're now back to normal 15:48
the only issue is that I'm running that bot from my own laptop, which is LTA 15:49
scimon So. Freenode has pissed some people off then? 15:52
El_Che the spammers are back 16:06
damn
Summertime hmm, a perl6bannerbotbannerbot is needed, who will watch the watchbots? 16:12
timotimo undersightable6
Summertime jeez AD really does have a bot for everything 16:14
TimToady suspects that some of the spam is just mainland hackers trying to score brownie points for infowarfare on a certain non-mainland area 16:16
Summertime I'm just dreading the day they start adding 1+ minute delays before each message, what then? captchas!? x-x 16:21
also guessing by the amount of ping timeouts and other issues, maybe DDoS too? 16:22
[Coke] makes me wonder if IRC is the right platform long term. 16:27
Altreus I'm getting a bit swamped in Promise hell 16:29
How do I know when to stop promising stuff and start awaiting? :s
I don't know whether I should continue the Promise paradigm in what I'm writing, or rely on the fact that, because the user is going to be in a tap, I can start blocking 16:30
timotimo it's definitely a question of API design 16:37
El_Che it seems they are attacking clients that use the pango rendering lib 16:38
timotimo fonts are always a very big problem
i don't remember where it was, but didn't something have font rendering in kernel space? 16:39
El_Che timotimo: Windows iirc 16:40
timotimo no way!
El_Che timotimo: googleprojectzero.blogspot.com/201...-1_27.html :) 16:41
timotimo randomascii.wordpress.com/2018/08/...-part-one/ - it has hardly anything to do with that, but i like this blog 16:43
El_Che timotimo: yes, I remember that post :) 16:43
timotimo the next post in that series just landed a few days ago
oh, yesterday 16:44
El_Che timotimo: not relared but it reminds me of the last problem I had 16:44
El_Che timotimo: word in a VM suddenly (after an update) started consuming 100% of the cpu of the VM. 16:45
timotimo does it already browse the internet?
El_Che timotimo: it tuns out, MS phones home even if it's disabled in the settings, and the domain was blocked by my pihole
timotimo: needed a group policy to really disable it and the machine was fine
grr
timotimo because my chrome gets to 100% of one core every now and then, and the chrome-internal task manager shows the "Browser" process taking the ~100% and the individual tasks below that add up to like 20% 16:46
timotimo hah, so it was trying to connect over and over without back-off? 16:46
El_Che indeed
every sec according to my dns logs
timotimo how did you find out? network dump?
ah, mhm
El_Che timotimo: yes 16:46
El_Che it was too weird, because I have a similar setup at work and there it was fine 16:47
that phoning home is getting really annyoing 16:48
must be worse for people running native windows 16:49
timotimo well, the market better vote with their wallets
El_Che lossing a cpu just to that
timotimo except if nobody actually cares enough about that to run away from microsoft office :) 16:49
El_Che timotimo: it's a captive market
timotimo i'm glad i don't have to do the kind of stuff you would use MS Office for very often 16:52
LibreOffice is ... also not terribly good
El_Che timotimo: I wrote a thesis on Star Office, it was okayish 16:54
El_Che timotimo: problem is when people need your document in word formats for commenting :( 16:55
El_Che timotimo: the word export is not good enough yet 16:55
when possible I send pdf and that's the end of it :)
Altreus it's almost like if you're in the tap you can await it and if you're not you want to promise it :s 16:58
hmm
this is going to require a lot of sleep since I'm not fluent in async yet :D
timotimo did you know LO lets you embed the ODT inside the PDF? 16:59
stmuk libreoffice isn't too bad for my purposes 17:21
I've done accounts on it for 7 years and edited the odd PDF using it 17:22
I'm sure it's not 100% compatible with modern office but modern office has such an awful UI I've never used it
timotimo well, microsoft was so nice as to open up the specification of their file formats!! 17:46
El_Che stmuk: you're are right. But the problems are with non-technical people. They don't know/care what you used, but wonder why your document is so badly formatted. 18:01
it sucks
libre office + pdf works fine most of the time
the problem arrives when you have to collective edit the same document
timotimo that's not easy in general 18:02
though with google docs it's not so difficult
El_Che my work laptop does not have word, it's a linux machine :)
but I have small windows laptop around in case when I really need it :)
not very often, I use it as a spotify player :)
though remote desktop :) 18:03
lichtkind i have question regarding the role Numeric 18:56
so funny here is another user calling himself licht king too :) 19:00
sena_kun lichtkind, please, ask your question, don't ask to ask. :) there are people who are here to help anyway, so with asking the question first you make it easier to help for a number of reasons. 19:02
lichtkind numeric is like mother of all numeric types calling (4.6).Numeric does not change the value only exception to rule is type boolean True.Numeric is 1 is this a design or fully intended? 19:07
lichtkind sena_kun, i know it just took a while to formulate the question 19:07
geekosaur lichtkind, that works for all Enums because they're all subclasses of Int 19:08
geekosaur m: say True^.mro 19:09
camelia No such method 'mro' for invocant of type 'Any'
in block <unit> at <tmp> line 1
lichtkind thanks i didn't know Boll is a enum
geekosaur m: say Bool^.mro
camelia No such method 'mro' for invocant of type 'Any'
in block <unit> at <tmp> line 1
geekosaur bah
geekosaur is a bit scerambled today :/ 19:09
sena_kun m: say True.^mro 19:10
camelia ((Bool) (Int) (Cool) (Any) (Mu))
lichtkind hanks a lot i asked to clarify how implement a feature in my module or if i just found a bug, still im not sure im satisfied with that behaviour 19:11
geekosaur oh, backwards. I did say scrambled : 19:12
AlexDaniel geekosaur: but why .Numeric does not return True? 19:15
lichtkind thanks geekosaur
AlexDaniel m: say True ~~ Numeric
camelia True
Summertime @AlexDaniel, did you update your IRC::Client? there was a change in there to allow for send-cmd to work with freenode's bugs
AlexDaniel Summertime: oh? Oh… I have no idea 19:16
Summertime: I guess I didn't
Summertime sorry for not mentioning earlier!
geekosaur AlexDaniel, not sure, may be related to the way method resolution has a tendency to use the type it knows instead of the one it's derived from, to avoid having to search for the right method? (see also complaints about overriding .gist in subclasses not always being effective because traversing a structure uses the type it knows instead of the actual type) 19:17
geekosaur doesn't recalld etails there except that it's an optimization that is prone to catch people by surpruse
AlexDaniel m: dd IntStr.new(42, ‘foo’).Numeric 19:18
camelia 42
pukku Out of curiosity, would there be an easy way to use the nqp JavaScript version to parse Perl6 and generate a syntax tree? 19:23
timotimo should be very easy
timotimo if you have access to Perl6::Grammar and Perl6::Compiler (which nqp::getcomp can give you) 19:23
all you need to do is run the eval method with a "target" option of either "parse" or "ast" or "optimize" depending on your needs
dant Can I install modules via zef in an alternate location? I'm trying to package something for distribution but it would be awkard to include a ~/.zef directory in my package 19:25
timotimo zef has a --to option
i don't know how you use it
i mean beyond passing a path to it
pukku OK, so now I just need to figure out which NPM package I should install. 19:27
timotimo you could check if there's a travis file or something
dant Thanks timo. I'll investigate zef's "--install-to" option. 19:37
AlexDaniel dant: IIRC something like --to=inst#some-path-here and then PERL6LIB=inst#some-path-here 19:47
AlexDaniel did it a few days ago but can't remember 🤦
pukku I wound up sending an email to P Murias, as suggested on the git repository, because I'm lost. 19:48
However, I also decided to take a look at what the parse target does in the perl6 binary, and it's taking minutes (so far, with no progress) to run over a program that usually executes in seconds. Do you know why this would be taking so long? 19:49
timotimo it's probably spending a whole lot of time constructing the string to print out 19:50
pukku Huh. OK, the moar process is now taking 5G of RAM, so I guess that makes sense. 19:51
That probably doesn't bode well for my plan of using NQP to create a syntax highlighter. That would blow browser memory entirely. 19:52
timotimo it does have a rather big blow-up factor
oh, especially since it indents with two spaces per level 19:53
i'd assume you'll end up with lines starting with multiple kilobytes of spaces at some point
the textual output isn't terribly helpful anyway, you'll want to inspect the match tree manually so that you also get the "from" and "to" values for every single match 19:54
pukku Another issue for my plan is that if I try to just parse a snippet of Perl 6, it won't do it if it can't find the definitions of various functions, so you can't parse it without the context.
timotimo the dumper for parse cuts out the piece of code every node matched, which can sometimes be a whole lot at once (i think it abbreviates?) but it's more difficult to turn that back into location info, especially when the code contains the same thing multiple times in a row, like 1, 1, 1
getting the output of the ast or optimize stages helps with that 19:55
you'll have QAST::WVal nodes where the .value is the object it's refering to, and you have symbol tables available for every QAST::Block as well
pukku If I try `perl6 --target=ast -- foo.pl6`, where foo.pl6 contains only some of my program, it still complains about undeclared routines, just like the `parse` target. Back to square 1. 19:59
timotimo yeah, that's a compile-time error
timotimo at the end of the ast stage, references like that are already resolved 19:59
hythm_ p6: my @a1 = 1, 2; my @a2 = 2, 1; say so all(@a1) == one(@a2); 21:28
camelia True
hythm_ Is using junctions to test one to one relation between two arrays effecient 21:28
timotimo i think it's quadratic 21:29
perhaps better to sort and compare elements from both lists at the same indices
hythm_ Thx timotimo, will try that 21:29
timotimo has to be the right sorting function, depending on what you have, of course 21:30
hythm_ Noted 21:30
timotimo if two elements are considered the same by the sorting function but not by the comparison function, you'd be in trouble :) 21:31
if your values have a WHICH with a ObjValueAt or what it's called, you can put them into a Set and WHICH them? 21:32
m: say set(1, 2).WHICH; say set(2, 1).WHICH
camelia Set|AEA2F4CA275C3FE01D5709F416F895F283302FA2
Set|AEA2F4CA275C3FE01D5709F416F895F283302FA2
timotimo iirc this also sorts
hythm__ My understanding is junctions execute in parallel, so would not that make it faster than sorting 21:38
timotimo they are not implemented to take advantage of parallel execution yet 21:38
and if the individual tasks are so small, like comparing two strings, the overhead from parallelization will be much more costly than what you can gain
hythm__ Makes sense 21:39
timotimo we do have .hyper and .race that parallelize, but they are used differently from junctions 21:40
hythm__ Will check these too, thanks for explaining 21:42
timotimo no prob! 21:43
vrurg Are there any way to get base type for typed Array/Hash/etc? Like .WHO which returns 'Hash[Typed]' but without []? I could stip the brackets off with a regex but looking for something more reliable. 23:09
SmokeMachine m: my Int @a; say @a.of 23:15
camelia (Int)
SmokeMachine vrurg: ^^ 23:15
SmokeMachine m: my Str %bla{Int}; say %bla.of; say %bla.keyof 23:16
camelia (Str)
(Int)
vrurg SmokeMachine: Sorry, I need 'Array' or 'Hash' for that.
SmokeMachine m: say %.^name 23:17
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable %.^name used where no 'self' is available
at <tmp>:1
------> 3say %.^name7⏏5<EOL>
expecting any of:
argument list
term
vrurg Not the element type. Sorry for not being clear. 23:17
SmokeMachine m: say m %a.^name
camelia 5===SORRY!5===
Regex not terminated.
at <tmp>:1
------> 3say m %a.^name7⏏5<EOL>
Couldn't find terminator % (corresponding % was at line 1)
at <tmp>:1
------> 3say m %a.^name7⏏5<EOL>
expecting any of:
%
SmokeMachine m: say my %a.^name
camelia Hash
vrurg m: say Array[Int].^namew
camelia No such method 'namew' for invocant of type 'Perl6::Metamodel::ClassHOW+{<anon>}+{<anon>}'. Did you mean any of these?
name
new

in block <unit> at <tmp> line 1
vrurg say Array[Int].^name
m: say Array[Int].^name
camelia Array[Int]
vrurg m: my Str @a; say @a.^name 23:18
camelia Array[Str]
SmokeMachine m: say Array[Int] ~~ Array 23:18
camelia True
SmokeMachine isnt that enougth?
Xliff Is there a way to do something like this: "^3 + (2 xx 3)" and have the result be (2, 3, 4)
m: (^3 + 2 xx 3).say 23:19
camelia (2..^5 2..^5 2..^5)
Xliff m: ((^3) + 2 xx 3).say 23:19
camelia (2..^5 2..^5 2..^5)
vrurg SmokeMachine: No. I need to manually simulate Perl's type coercion via calling type methods on values.
Xliff m: ((0, 1, 2) + 2 xx 3).say
camelia (5 5 5)
Xliff m: ((0, 1, 2) + |(2 xx 3)).say
camelia 6
vrurg Works fine for simple arrays/hashes but fails for typed.
TimToady m: say ^3 Z+ 2 xx 3
camelia (2 3 4)
Xliff TimToady++ ! 23:20
Saving my but again.
TimToady m: say ^3 »+« 2 xx 3
camelia Lists on either side of non-dwimmy hyperop of infix:<+> are not of the same length
left: 3 elements, right: 1 elements
in block <unit> at <tmp> line 1
TimToady m: say ^3 »+« (2 xx 3)
camelia (2 3 4)
Xliff m: say (1, 2, 3) »+&« (0xffff xx 3) 23:21
camelia (1 2 3)
Xliff \o/
SmokeMachine m: say Array[Int].^mro[1]
camelia (Array)
SmokeMachine m: say Hash[Int].^mro[1]
camelia (Hash)
vrurg Alternatively, is there a method in the core which would do coercing any value in any type? The same which is (presumably) used for =
SmokeMachine: Oh! Exactly! Still a workaround, but that's faster than regexing! Thanks! 23:22
SmokeMachine :)
TimToady m: say ^3 Z+ 2 xx * 23:23
camelia (2 3 4)
TimToady with Z you can just make the right side "whatever" big and it'll shorten to the left side
SmokeMachine m: say Hash[Int].^mro.first: Array | Hash | List 23:24
camelia (Hash[Int])
TimToady alternatively, you can use a dwimmy hyper to replicate the right side:
m: say ^3 »+» 2
camelia (2 3 4)
SmokeMachine m: say Hash[Int].^mro.first: { $_ !~~ Hash[Int] && $_ ~~ Array | Hash | List }
camelia (Hash)
SmokeMachine m: say Hash[Int].^mro.first: * === Array | Hash | List 23:25
camelia (Hash)
SmokeMachine vrurg: ^^ 23:25
vrurg SmokeMachine: Thanks, but I wouldn't limit myself to these three only. That could be a custom typed class, for example. 23:26
SmokeMachine m: say Hash[Int].^parents.head 23:35
camelia (Hash)
SmokeMachine m: say Hash[Int].^parents: :local # vrurg 23:37
camelia ((Hash))
vrurg SmokeMachine: didn't know parents has this param. That's the most elegant one, my biggest thanks! 23:40
SmokeMachine :) 23:40
SmokeMachine m: say class :: is Hash is Array {}.^parents: :local # vrurg but depending on what you want, this can be a problem... 23:41
camelia ((Hash) (Array))
vrurg SmokeMachine: coercion isn't possible for an anonymous class anyway. So, this is not a problem. 23:42
vrurg I only coerce values if $value.^can($type-name) 23:43
SmokeMachine m: say class IfIAddAName is Hash is Array {}.^parents: :local
camelia ((Hash) (Array))
SmokeMachine m: say class IfIAddAName is Hash is Array {method Array{[]}; method Hash {{}}}.^parents: :local 23:44
camelia ((Hash) (Array))
vrurg Understandable. Then there is no IfIAddAName on Cool by default. Or it is there and then I get the class name as $type-name and the rest is not my responsibility.
vrurg I mean, how would Perl resolve: my IfIAddAName $v = Str; ? 23:44
Str is "something" 23:45
SmokeMachine I dont think it would...
vrurg Only if "something".^can('IfIAddAName') - i.e. the class developer took care of this coercion. 23:45
vrurg So, generally, shouldn't be an issue. 23:46
SmokeMachine m: class IfIAddAName is Hash is Array {method Array{[]}; method Hash {{}}}; my IfIAddAName $v = Str
camelia Type check failed in assignment to $v; expected IfIAddAName but got Str (Str)
in block <unit> at <tmp> line 1
vrurg m: class IfIAddAName is Hash is Array {method Array{[]}; method Hash {{}}}; my IfIAddAName $v = "a string";
camelia Type check failed in assignment to $v; expected IfIAddAName but got Str ("a string")
in block <unit> at <tmp> line 1
vrurg But you helped me to avoid a bug because before getting local parents I would have to check if .of() is not Mu. 23:48
m: say Array.^parents: :local
camelia ((List))
SmokeMachine m: class IfIAddAName is Hash is Array {method Array{[]}; method Hash {{}}}; use MONKEY-TYPING; augment class Str {method IfIAddAName { IfIAddAName.new }}; my IfIAddAName $v = Str
camelia Type check failed in assignment to $v; expected IfIAddAName but got Str (Str)
in block <unit> at <tmp> line 1
SmokeMachine m: class IfIAddAName is Hash is Array {method Array{[]}; method Hash {{}}}; use MONKEY-TYPING; augment class Str {method IfIAddAName { IfIAddAName.new }}; my IfIAddAName() $v = Str
camelia 5===SORRY!5=== Error while compiling <tmp>
Coercion IfIAddAName(Any) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3 IfIAddAName.new }}; my IfIAddAName() $v7⏏5 = Str
expecting any of:
constraint
vrurg Try with a string, not type. 23:49
m: class IfIAddAName is Hash is Array {method Array{[]}; method Hash {{}}}; use MONKEY-TYPING; augment class Str {method IfIAddAName { IfIAddAName.new }}; my IfIAddAName() $v ="a" 23:50
camelia 5===SORRY!5=== Error while compiling <tmp>
Coercion IfIAddAName(Any) is insufficiently type-like to qualify a variable
at <tmp>:1
------> 3 IfIAddAName.new }}; my IfIAddAName() $v7⏏5 ="a"
expecting any of:
constraint
vrurg m: class IfIAddAName is Hash is Array {method Array{[]}; method Hash {{}}}; use MONKEY-TYPING; augment class Str {method IfIAddAName { IfIAddAName.new }}; my IfIAddAName $v = 23:50
camelia 5===SORRY!5=== Error while compiling <tmp>
Malformed initializer
at <tmp>:1
------> 3 IfIAddAName.new }}; my IfIAddAName $v =7⏏5<EOL>
expecting any of:
prefix
term
vrurg m: class IfIAddAName is Hash is Array {method Array{[]}; method Hash {{}}}; use MONKEY-TYPING; augment class Str {method IfIAddAName { IfIAddAName.new }}; my IfIAddAName $v = "a"
camelia Type check failed in assignment to $v; expected IfIAddAName but got Str ("a")
in block <unit> at <tmp> line 1
vrurg Ok, whatever...