»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or rakudo:, or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_logs/perl6 | UTF-8 is our friend!
Set by moritz on 22 December 2015.
DnAeillaxe except that it cannot gist the stuff because it breaks somewhere 00:00
IOninja lol
DnAeillaxe u: { so $_ > 0x000B and .chr ~~ /\n/ }
unicodable6 DnAeillaxe, U+000C <control-000C> [Cc] (control character)
DnAeillaxe, U+000D <control-000D> [Cc] (control character)
DnAeillaxe u: { so $_ > 0x000D and .chr ~~ /\n/ }
unicodable6 DnAeillaxe, U+0085 <control-0085> [Cc] (control character)
DnAeillaxe, U+2028 LINE SEPARATOR [Zl] (
)
DnAeillaxe, U+2029 PARAGRAPH SEPARATOR [Zp] (
)
DnAeillaxe u: { so $_ > 0x2029 and .chr ~~ /\n/ } 00:01
unicodable6 DnAeillaxe, Found nothing!
DnAeillaxe okay
e: say ‘hello
world’
evalable6 DnAeillaxe, Full output: gist.github.com/04a78a16e457c6a2be...a3c25e60fe
(exit code 1) 04===SORRY!04=== Error while compiling /tmp/FNiDpajJoH
Unable …
IOninja mc: say "\x[2029]" ~~ /\n/
committable6 IOninja, ¦2015.12: «「
」»
IOninja weird
DnAeillaxe so this one is broken as well
2028 and 2029
DnAeillaxe huggable: break my module :is: U+000A U+000B U+000C U+000D U+0085 U+2028 U+2029 00:02
huggable DnAeillaxe, Added break my module as U+000A U+000B U+000C U+000D U+0085 U+2028 U+2029
IOninja Are all these chars *supposed* to match \n or is it a bug? 00:04
IOninja .ask samcv Are all these chars *supposed* to match \n or is it a bug? U+000A U+000B U+000C U+000D U+0085 U+2028 U+2029 00:12
yoleaux IOninja: I'll pass your message to samcv.
TEttinger oh, this was a JSON thing? isn't that a known incompatibility between JSON and JS as their specs describe them, the handling of newlines?
samcv hmm 00:13
yoleaux 00:12Z <IOninja> samcv: Are all these chars *supposed* to match \n or is it a bug? U+000A U+000B U+000C U+000D U+0085 U+2028 U+2029
samcv hello all
m: say 0x2029.chr ~~ /\n/ 00:14
camelia 「
」
samcv m: say so 0x2029.chr ~~ /\n/
camelia True
samcv weird...
u: propdump U+2029
unicodable6 samcv, U+0070 LATIN SMALL LETTER P [Ll] (p)
samcv, U+0072 LATIN SMALL LETTER R [Ll] (r)
samcv, 15 characters in total: gist.github.com/4673bcd31beb2e334f...d26ab7e8d7
samcv ugh how do i do this DnAeillaxe
samcv unidump U+2029 00:15
unidump: U+2029 00:16
unicodable6 samcv, gist.github.com/a7bebca2f239625520...7c705e5288
samcv nope not what i watned
m: say so 0x2029.chr ~~ /"\n"/ 00:17
camelia False
samcv m: say so "\n" ~~ /"\n"/
camelia True
samcv IOninja,
peculiar 00:18
samcv wonders what the backslash n token is 00:19
IOninja :) 00:23
DnAeillaxe samcv: you don't do it yet! 00:33
samcv: the feature is experimental, so… :)
samcv OK
DnAeillaxe samcv: but, even if it worked, it wouldn't be able to gist it 00:33
samcv why?
DnAeillaxe JSON::Tiny fails somewhere
samcv well it worked up there 00:34
DnAeillaxe … where?
samcv <samcv> unidump: U+2029
<unicodable6> samcv, gist.github.com/a7bebca2f239625520...7c705e5288
<samcv> nope not what i watned
DnAeillaxe samcv: yes-yes, it works! Unless the gist itself has U+2029 character 00:35
samcv it worked, it just did it for each character i typed
only that character?
oh cause it matches \n huh lol
DnAeillaxe I think all of these should break it in one way or another
huggable: break my module
huggable DnAeillaxe, U+000A U+000B U+000C U+000D U+0085 U+2028 U+2029
DnAeillaxe u: U+2028 U+2028 U+2028 U+2028 00:36
unicodable6 DnAeillaxe, U+2028 LINE SEPARATOR [Zl] (
)
DnAeillaxe yep, doesn't work
samcv so i guess workaround is you could use $var ~~ /"\n"/ instead of /\n/
DnAeillaxe u: U+2085 U+2085 U+2085 U+2085
unicodable6 DnAeillaxe, U+2085 SUBSCRIPT FIVE [No] (₅)
samcv then it uses interpolation for the value instead of whatever the grammar rule for \n is
unicodable6 DnAeillaxe, U+2085 SUBSCRIPT FIVE [No] (₅)
DnAeillaxe, 4 characters in total: gist.github.com/377e30da740e85dc4d...fd1561daa8
DnAeillaxe u: U+0085 U+0085 U+0085 U+0085
unicodable6 DnAeillaxe, U+0085 <control-0085> [Cc] (control character)
DnAeillaxe, 4 characters in total: gist.github.com/425b46e927add786fa...98f26dd4db
DnAeillaxe hm 00:37
some of them are escaped I guess
DnAeillaxe but not U+2028 and U+2029 00:37
samcv ugh maybe this is the right spot? github.com/perl6/nqp/blob/master/s...s.nqp#L436 00:41
IOninja, is \n is regex special somehow? or should it only do the newline control code 00:42
IOninja No idea, sorry. 00:43
samcv well i guess i can find out if i break any spectests
Geth perl6-most-wanted: cc520a35af | (Tom Browder)++ | most-wanted/modules.md
remove module now in ecosystem
00:56
IOninja is amused by $*SPEC.catfile being just an alias for .catdir 01:33
That was a clue to not add it! :)
DnAeillaxe samcv: I guess it was supposed to be similar to \s (which is trappy as well) 01:36
that is, it matches any kind of newline, including whatever unicode has to offer 01:37
DnAeillaxe u: a
 01:39
right…
IOninja S32-io/io-spec-win.t:is $win32.rootdir, '\\', 'rootdir is "\\"'; 01:54
.oO( why?? )
this grant is unfun :( 01:55
IOninja regrets signing up for it
\ works, so nevermind 01:57
DnAeillaxe m: say “\c[MAN SHRUGGING, WOMAN SHRUGGING]” 02:20
camelia 🤷‍♂️🤷‍♀️
BenGoldberg u: /\m/ 02:45
unicodable6 BenGoldberg, Regexes are not supported yet, sorry! Try code blocks instead
BenGoldberg u: { $_ ~~ /\n/ }
unicodable6 BenGoldberg, Found nothing! 02:46
DnAeillaxe BenGoldberg: it goes through integers 02:57
BenGoldberg: so that would be $_.chr ~~ instead of $_ ~~
BenGoldberg: but as already mentioned, it will fail with these weird characters… 02:58
BenGoldberg: github.com/zoffixznet/perl6-IRC-Cl.../issues/42 and github.com/perl6/whateverable/issues/115 , contributions welcome
samcv m: say 0x2028.uniprop('Line_Feed') 03:04
camelia BK
samcv BK, so unhelpful
m: say 0x2028.uniprop('Line_Break') 03:05
camelia BK
samcv Line_Break=Mandatory_Break
somehow BK = Mandatory_Break. weird 03:06
SmokeMachine Sorry, I don't know anything about Unicode... but this stuff like BK, Ll, etc... wouldn't make sense to be a enum? If wouldn't, why? 03:14
The properties too... 03:15
IOninja Why make it an enum? 03:18
SmokeMachine IOninja: the greatest motivation in my opinion would be to get all enumerated... (I don't know anything about that, I'm sorry if it's a idiot idea...) 03:20
IOninja SmokeMachine: why is that beneficial? 03:21
SmokeMachine And do not accept any Str on methods that receive it...
And get compile error on a typo 03:22
IOninja And use more memory. 03:22
SmokeMachine At least to make me know what are the possibilities...
IOninja And shit enough sigiless symbols into global namespace that you can forget about calling subs without parentheses
SmokeMachine Ok, sorry... 03:24
DnAeillaxe SmokeMachine: well, you're right that it is less than awesome 03:25
we just have to figure out what could possibly be more awesome…
for example, maybe an exception is better than nothing?
m: say 0x2028.uniprop('blaaargfooooooooot!')
camelia 0 03:26
SmokeMachine DnAeillaxe: yes! I think a exception would help... :)
DnAeillaxe or maybe a Nil, so that it blows up later… I don't know, but anything is probably better than 0 03:27
SmokeMachine Maybe a failure? 03:28
DnAeillaxe IOninja: interestingly, we already export signals 03:29
they all start with SIG, but still
SmokeMachine m: say SIGKILL 03:30
camelia SIGKILL
BenGoldberg u: { .chr ~~ /\n/ } 03:43
unicodable6 BenGoldberg, U+000A <control-000A> [Cc] (control character)
BenGoldberg, U+000B <control-000B> [Cc] (control character)
samcv u: { .uniprop('Line_Break') eq 'MB' } 03:48
unicodable6 samcv, Found nothing!
BenGoldberg u: { .chr.uniprop('Line_Break') eq 'MB' } 03:49
unicodable6 BenGoldberg, «timed out after 30 seconds» «exit signal = SIGHUP (1)» 03:49
BenGoldberg Huh
DnAeillaxe BenGoldberg: yea, it's really-really hot 03:50
a lil bit off the track and it takes forever to finish :)
samcv how hot
DnAeillaxe well, the whole thing is repeated 1114112 times, so… 03:51
BenGoldberg: but .uniprop works on integers also, so no need to .chr it 03:52
(and it's faster this way!) 03:53
faraco Hi guys, I made my own Perl 6 book list that I may gonna purchase in the future (when they are finished) at faracosite.wordpress.com/2017/03/1...-6-books/, is there any other book did I missed? 04:23
DnAeillaxe huggable: books 04:35
huggable DnAeillaxe, "Perl 6 At A Glance" deeptext.media/perl6-at-a-glance/ (print only for now); "Perl 6 By Example": leanpub.com/perl6 (can order preview digital copies) ; "Think Perl 6: How to Think Like a Computer Scientist": shop.oreilly.com/product/0636920065883.do
DnAeillaxe mmm
faraco: “Perl 6 at a Glance” seems to be missing 04:36
faraco: we keep a list here too: perl6.org/resources/
(“Books published or in work”) 04:37
faraco DnAeillaxe++ 04:37
TEttinger DnAeillaxe: how do you decide on the permutation of letters to use? 04:43
samcv oh speaking of books i was gonna read moritz book 04:57
DnAeillaxe m: say %ENV<ME>.comb.pick(*).join 05:02
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '%ENV' is not declared
at <tmp>:1
------> 3say 7⏏5%ENV<ME>.comb.pick(*).join
DnAeillaxe m: say %*ENV<ME>.comb.pick(*).join
camelia eDeniAxlal
DnAeillaxe TEttinger: I use this ↑
TEttinger cool, eDeniAxlal 05:09
DnAeillaxe ye let's fix it 05:15
samcv was asked to write a unicode chapter for moritz book. i might take that up. would probably be good to get something down on paper 05:22
ufobat good monring 07:06
faraco morning 07:16
moritz samcv: please do! 07:22
samcv uhm what would you recommend I read moritz
also what's `12-unicode-canary.md` for 07:23
faraco What is the advantage dealing with UTF8 and UTF9 when your code won't be mixed with non ASCII characters? 07:24
moritz samcv: I needed it to find characters that the leanpub toolchain would successfully render
samcv what is utf9
ah ok
what were your results?
faraco I read that 3 months ago, someone mentioned utf9, I'm not even sure if that even exist, haha. 07:25
samcv ascii is utf-8
but not all utf-8 is ascii
oh ok. lol
moritz samcv: I had to settle with Arabic-Indic digits, ,because Bengali wouldn't render
samcv moritz, did you tell them it made you sad :(
so you're publishing through leanpub? 07:26
moritz samcv: not yet
samcv: yes
samcv kk
moritz re recommendations, anything from chapter 3 onwards, to get some feeling for the style
I can also send you a PDF version if you prefer reading that over markdown 07:27
samcv yeah that would be nice
faraco Will there be a chapter on 'Packging your Perl 6 modules with examples'.
I know that, the doc covers it up pretty good.
samcv moritz, when are you scheduled to release? 07:29
moritz samcv: I want the manuscript to be complete in May, but I don't have any hard deadlines 07:30
samcv ok cool
if you give me commit access I will add some sections to the unicode chapter
moritz samcv: you should have commit access already 07:31
also, feel free to revamp it if you think there's a better approach
samcv oh ok 07:32
samcv moritz, you can have pictures right? 07:38
moritz samcv: yes 07:39
moritz included with ![description](images/path-to-image.extension) 07:40
samcv ok cool. That may be useful in describing graphemes 07:41
and showing the different components of a visible character
in at least two scripts
moritz +1
samcv i'm thinking latin and hangul
DrForr .tell spebern Sadly I have not had the time. Or rather, if I'm being honest, I've been focused on the perltidy/perl-parser stuff. I have something at home that's halfway rewritten to post-GLR where I've brute-forced the grammar actions to do what I want, but it's incomplete. 08:32
yoleaux DrForr: I'll pass your message to spebern.
DrForr .tell spebern And thank you *very* much for your enthusiasm for the project, it's really refreshing.
yoleaux DrForr: I'll pass your message to spebern.
cschwenz out of random curiosity is there a Perl6 version of WWW::Mechanize in any state of completeness? or is Selenium::WebDriver the current Perl6 way to do screen-scraping 11:48
?
DrForr cschwenz: Not that I've heard, at least not yet. 12:07
kaushal Hi 12:19
DrForr Afternoon, kaushal.
kaushal How perl6 is different from the earlier versions of perl?
I am new to perl. Do i need to know the older version of perl in order to learn perl6? 12:20
DrForr Very different. We like to say they're in the same family, but don't be confused by the differences.
kaushal DrForr: Hi 12:21
DrForr It helps to know perl5 to get the basic ideas, but they're really two different languages.
kaushal oh ok
DrForr: so in perl land there is only two different language perl5 and perl6? 12:22
DrForr Only? Well, yes, there's "just" the two. 12:23
kaushal ok
DrForr: so what are the key differences between perl5 and perl6?
when was perl6 officially launched?
DrForr December 2015.
kaushal So should i start learning perl5 or perl6? 12:24
DrForr What do you want to do with it?
kaushal system administration
DrForr: what are the key differences between perl5 and perl6? 12:25
is perl6 object oriented programming language?
Woodi_ kaushal: for personal scripts, statistics perl6 is ok, for extremal production perl5 12:26
DrForr It can be, but most of the objects can have functions called on them without needing OO syntax.
Woodi_ hi #perl6 :)
kaushal ok 12:26
DrForr Eeh, if you're doing sysadmin most of the tasks aren't going to require serious performance so I'd say that 6 would work just as well as 5.
kaushal so do i need to know perl5 first to understand perl6?
Woodi kaushal: no :) 12:27
kaushal Woodi: ok
DrForr No, in fact it can be a handicap.
kaushal Woodi: so any tutorial to start learning perl6?
is perl 6 addressed by Perl6 or perl6 or ....?
Woodi learnxinyminutes.com/docs/perl6/
moritz "Perl 6" 12:28
kaushal moritz: ok
moritz preferably with a non-breaking space :-)
DrForr Safari has at least two :) perl6.org has a list of online tutorials you can do as well.
kaushal moritz: so Perl6 or Perl 6?
moritz and I'm writing a book which should be quite helpful already: leanpub.com/perl6
kaushal: "Perl 6"
kaushal moritz: ok
moritz: Thank you so much 12:29
DrForr There are also some introductory talks on YouTube.
kaushal I am yet to know the differences between Perl 5 and Perl 6 12:30
Any key distinction between Perl 5 and Perl 6?
DrForr It's awfully hard to condense into a few lines of IRC.
kaushal DrForr: Please share me the YouTube talks
kaushal DrForr: ok 12:30
DrForr: Any webpage to explain it? 12:31
DrForr Yes, perl6.org has a bunch of tutorials and explanations.
The basic difference is that in Perl 6 everything is an object, you can't say that about 5.
kaushal DrForr: ok 12:32
moritz hasn't ever found a language where everything is an object
DrForr (but if you don't want to use $foo.do-stuff() form, you can usually still use non-OO references.
kaushal moritz: ok
moritz: so Perl 6 is a language where every stuff is referenced by a object? 12:33
moritz: not even JAVA?
DrForr Well, yes, I'm sure you could find some things in 6 that aren't "objects", but for the majority it works.
Java isn't an acronym AFAIK.
moritz kaushal: not even java
kaushal moritz: correct me if i am understanding it completely wrong
moritz: ok
moritz in most languages, variables aren't proper objects
function invocations aren't objects 12:34
and so on
kaushal moritz: DrForr i got inspired to learn Perl 6
DrForr Party on!
moritz "all" is *very* broad term, and seldomly warranted in that context
kaushal remains obliged to moritz and DrForr
moritz s/all/everything/
kaushal I really appreciate your help and guidance
DrForr www.youtube.com/results?search_que...+to+perl+6 # has a bunch of videos. 12:35
moritz no problem
DrForr www.youtube.com/watch?v=hR9UdvxMAbo
kaushal DrForr: so start referring to docs.perl6.org/
DrForr That's for documentation, intros are on the main page... 12:36
kaushal ok 12:36
kaushal so Perl 6 is a interpreter or compiler? 12:39
DrForr compiler.
kaushal DrForr: ok
DrForr: Perl 5 is interpreter?
perlpilot kaushal: you might want to make sure your definition of "compiler" matches everyone elses :)
DrForr It's also a compiler, it just doesn't save the compiled tree.
kaushal so what i thought is perl is a interpreted language 12:40
it executes line by line
kaushal Perl 6 compiler is written in C programming language? 12:41
DrForr No, perl 5 compiles into an optree, it's not like BASIC or shell.
moritz kaushal: both Perl 5 and Perl 6 compile into an intermediate format
kaushal: in Perl 5, there's then an interpreter for this binary op tree 12:42
kaushal: in Perl 6, there's an interpreter that can swap in a Just-in-time compiler
faraco praise to NQP
kaushal ok
[Coke] wonders how to make irssi not run out of backscroll, forcing him to go to the irc logs.
moritz most modern dynamic languages have some kind of hybrid model between compiler and interpreter
kaushal ok 12:43
DrForr [Coke]: You can enable log. 12:43
moritz and even static languages with a runtime such as C# and java go there
kaushal moritz: so Perl 6 compiler is written in C?
faraco The only feature I found is nice with irssi is Pg up button, heh :P
DrForr kaushal: One layer is written in C, the rest written in NQP standing for 'Not Quite Perl'. 12:44
kaushal DrForr: ok
binary op tree?
Does it stand for Binary Operations tree?
DrForr That's for perl5, and it's not binary, but it is a tree. 12:45
cschwenz think of it more as perl5's version of an AST
moritz kaushal: only a small part of the Perl 6 compiler is written in C
kaushal moritz: ok 12:46
moritz some of the runtime environment (which we call MoarVM)
the rest si written in a subset of Perl 6 called NQP
kaushal so NQP is a language to write Perl 6 compiler?
moritz yes 12:47
nine has found Perl 6 to be incredibly useful for system administration tasks 12:50
ZzZombo Am I doing this right? 12:52
m: say ?('ASD' ~~ *.match(<DOT COLON>.any))
camelia False
DrForr nine: Agreed, speed isn't quite as important as quick hacks, so perl6 works well.
ZzZombo m: say ?('DOT' ~~ *.match(<DOT COLON>.any))
camelia True
kaushal nine: ok 12:53
moritz m: say so 'DOT' eq ANY <DOT COLON>; 12:54
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared name:
ANY used at line 1. Did you mean 'Any'?
moritz m: say so 'DOT' eq anz <DOT COLON>;
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
anz used at line 1. Did you mean 'any'?
moritz m: say so 'DOT' eq any <DOT COLON>;
camelia True
kaushal nine: any specific tutorial of Perl 6 for system administration tasks?
nine At the very base of our IT infrastructure, there's a couple of Perl 6 scripts kicked off by puppet responsible for creating and provisioning all our server VMs.
ZzZombo moritz: great. 12:55
nine It was a real joy writing those.
moritz nine: sounds great. Please blog about it some day!
kaushal nine: I will appreciate if you can share me some docs or tutorials?
nine kaushal: that's the beauty :) You don't need much of those. The features I liked most are docs.perl6.org/language/functions#...entry-MAIN and docs.perl6.org/type/IO$COLON$COLONPath Also docs.perl6.org/type/Proc 12:57
nine MAIN subs give you fully automated usage messages and type checked command line parameters ("Do I have to write 4G or 4 for 4 GiB of RAM? Ah, just try and look at the error message..."). 12:59
DrForr nine: Yeah, I need to do that a bit more for Perl6::Tidy. 13:00
El_Che nine: the only problem it's that's not very UNIX like. Forced switches before params is bad
nine El_Che: that's only an issue if you think that the alternative is people taking loads of time to add proper argument parsing. In sysadmin reality the only alternative is having no checks at all and just explode at runtime... 13:02
El_Che: also the UNIX way actually _is_ to force switches before params. We are all spoiled by GNU software 13:03
El_Che nine: don't get me wrong, it's great to have it. But I like to have consistent cli interfaces (in my case Perl5, Perl6 and Go)
nine: gnu, indeed
Perl5: Getopt::Long, Go with docopt (a python port) 13:04
Go has the same problem, hence the lib
multi MAIN is so nice, that's why I mention it
Go flags are meh, so bringing an external library makes sense 13:05
tadzik plugs in Getopt::Type
El_Che Perl 6 Main is fantastic
tadzik marrying shell conventions to perl conventions is always kind of icky
and MAIN tries very hard to find a common ground 13:06
El_Che I don't think that allow to mix switches and params would break anything for those that like switches before params 13:07
DrForr took me a few minutes to figure out that Bool :$option was what I wanted though, I'll have to add that to docs proper later on.
mscha m: sub foo(int $n) { say 'bar' x $n }; foo(2); 13:44
camelia barbar
mscha m: multi foo(int $n) { say 'bar' x $n }; foo(2); # oops
camelia Cannot resolve caller foo(Int); none of these signatures match:
(int $n)
in block <unit> at <tmp> line 1
mscha multi foo(int $n) { say 'bar' x $n }; foo(2.int); # Oops again 13:45
m: multi foo(int $n) { say 'bar' x $n }; foo(2.int); # Oops again
camelia No such method 'int' for invocant of type 'Int'
in block <unit> at <tmp> line 1
mscha m: multi foo(int $n) { say 'bar' x $n }; my int $i = 2; foo($i); # This works, but is there no easier way?
camelia barbar
IOninja Would be cool to see comparison to Perl 6's regexes in this list: www.johndcook.com/blog/regex-perl-python-emacs/
IOninja m: multi foo(int $n) { say 'bar' x $n }; foo my int $ = 2; 13:46
camelia barbar
mscha OK, that's *slightly* better. 13:47
IOninja heh
mscha There is no syntax for int literals, is there? Or a (documented) way to cast an Int to an int? 13:47
moritz int/Int literals are allomorphs 13:48
which means you can use them for both
m: my int $x = 42;
camelia ( no output )
mscha Except in the above case.
Or is that a bug in multi?
IOninja Not a bug.
moritz doesn't understand allomorphs well enough to comment 13:50
IOninja I can rake for a ticket where jnthn++ explained why this is not a bug... 13:51
Ticket: rt.perl.org/Ticket/Display.html?id=129844 13:52
Explanation why not a bug: irclog.perlgeek.de/perl6-dev/2016-...i_13462673
moritz IOninja++, jnthn++ 13:55
mscha OK, so my options are: a) use temporary int variable; b) don't use multi; or c) just use Int instead of int 13:59
rashipi Perl 6 is also fantastic for sysadmin stuff because it's a very good glue language.
IOninja lolwut
mscha: yeah, pretty much 14:00
rashipi It calls C, Perl 5, Python and Shell easily. Can't do that in other languages. 14:01
perlpilot m: multi foo(int $n) { say 'bar' x $n }; foo(int $ = 42); 14:03
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in argument list; couldn't find final ')'
at <tmp>:1
------> 3 foo(int $n) { say 'bar' x $n }; foo(int7⏏5 $ = 42);
expecting any of:
infix
in…
perlpilot mscha: it is a shame you can't say foo(42::int) or something to indicate you want an int without a temp var.
IOninja heh 14:04
And what about 999999999999999999999999:int?
::int
perlpilot a compiler error to tell you that you're insane :) 14:05
(unless you happen to be running on platform where native ints support that number ;) 14:07
IOninja I don't understand why you invented a whole new syntax just for this one thing.
nine Our coercers are just plain methods, so it would be 99999999999999999999.int 14:09
jnthn The coercion syntax int(9999) may be the most natural
jnthn m: int(999) 14:09
camelia Cannot invoke this object (REPR: P6int; int)
in block <unit> at <tmp> line 1
14:10
jnthn Would have to teach the compiler to recognize it of course
rashipi jnthn: When are you writing a new 6guts post? I'm missing them. 14:23
IOninja And that would just call Int.int, wouldn't it? Can method calls be constant-folded?
jnthn No, which is why I suggested the coercer syntax 14:25
jnthn rashipi: Already started writing one on the non-blocking await changes; just needs getting around to finishing it 14:25
rashipi jnthn: Noice, I'm looking forward to it. 14:26
jnthn rashipi: Just that it competes for my attention with fixing stuff :)
IOninja m: m: multi foo(int $n) { say 'bar' x $n }; sub prefix:<n:> (Int:D $n --> int) { my int $z = $n; $z }; foo n:2 14:26
camelia Cannot resolve caller foo(Int); none of these signatures match:
(int $n)
in block <unit> at <tmp> line 1
IOninja Seems can't return an int?
jnthn Hm, I'd thought we could... 14:27
At VM level you certainly can :)
So if something's in the way of that it'll be in Rakudo
ranguard out of interest, any plans (or even if it's possible) for webassembly.org/ support :) ? 15:06
ranguard remembers someone talking about p6 in the browser?
rashipi ranguard: Here is the last update on rakudo-js: blogs.perl.org/users/pawel_murias/2...-test.html 15:09
ranguard rashipi: nice - thanks 15:10
rashipi np
mscha m: my int $i = 42; say $i ~~ int; say $i ~~ Int; 15:27
camelia False
True
rashipi Whedn there's an error in the REPL, it should say <REPL> in the error messages instead of <unknown file>. 16:53
IOninja Well volunteered! 16:56
[Coke] rashipi: most of the REPL code is in Perl 6 and implemented here: github.com/rakudo/rakudo/blob/0f37...re/REPL.pm 16:59
rashipi Where does it generate the error messages?
[Coke] would start at repl-eval and look in there. 17:00
IOninja rashipi: probably in src/core/Exception.pm there's a print-exception routine or something like that 17:02
oh 17:03
src/Perl6/Optimizer.nqp:343: (nqp::isnull($file) ?? '<unknown file>' !! $file),
src/Perl6/World.nqp:1098: $file := '<unknown file>';
[Coke] I imagine that's covering -e also, though. 17:04
rashipi How can it be determined we are running in the REPL?
Does the code set a flag?
IOninja probably something to do with $?FILE 17:05
Ulti anyone else having build issues on macOS?
been that way since before the weekend
I nuked to be in a different place of build woes so its possibly something changing in Mac 17:06
its on the gen moar stage
IOninja Well, what's the error? 17:07
[Coke] there was a "weird" change to the moarvm build recently. try blowing away your moar src and re-cloning.
Ulti its readline
and awk 17:08
o___O
IOninja hm, no idea.
rashipi Maybe setting $file to '<REPL>' in REPL.new?
Ulti its on a configure
like generating a Makefile is triggering this by the looks of it 17:09
[Coke] I found a new font for us to use on the doc site! (minimatype.com/)
Ulti could be something funky with my homebrew setup
[Coke] (... kidding)
Ulti: did you try removing the moar src directory yet?
IOninja m: "foo/bar/ber/bez/../../../foo".IO.resolve.say
camelia "/home/camelia/foo/bar/ber/bez/../../../foo".IO
IOninja Is it supposed to get rid of all the ../../..? 17:10
Ulti [Coke]: yeah assuming thats what rakudobrew nuke does 17:11
Ulti gawk is literally being changed with my brew --upgrade so fingers crossed its just my env thats lame 17:12
rashipi Is anyone testing the builds in MacOS?
Ulti me? ;3
IOninja :)
Ulti but yeah I am not a vanilla mac person 17:13
rashipi Ulti: From what i understood, the devs don't have the hardware to test it.
IOninja err
Ulti well I build near enough daily
against head
IOninja You understood wrong.
rashipi Sorry for that. 17:14
IOninja Ah, OK, it needn't remove it. "Note that this does *not* collapse x/../y sections into y. This is by design. If /foo on your system is a symlink to /bar/baz, then /foo/../quux is actually /bar/quux, not /quux as a naive ../-removal would give you" 17:15
rjbs++ # File::Spec I can mooch knowledge off of.
IOninja rashipi: I don't have Mac hardware (yet) so *compiler* releases aren't tested on it (yet), but lizmat++ develops on Mac and does several spectests almost daily and stmuk++ I believe also has a Mac and tests Rakudo Star releases on it. 17:16
rashipi Thanks for clearing the misconception. 17:17
timotimo travis-ci.org/search/rakudo 17:18
we build every commit with macs
IOninja oh, doh. Of course! There's travis :)
timotimo do we also have rakudo no appveyor for windows tests? or is that only moarvm? 17:19
IOninja We did, but there was some sort of glitch with perl
IOninja looks
timotimo can someone explain to me why searching for rakudo shows me rakudo/rakudo, but when i click on "rakudo" it'll tell me "this is not an active repository and you're not allowed to activate it"?
like, it was just there a second ago
why are you doing this to me 17:20
IOninja Looks like they were resolved.
timotimo: because we're not using master
timotimo oooooooh
IOninja Yeah, we got apvoyert: ci.appveyor.com/project/moritz/rakudo
timotimo it does have "default branch" set to "nom", though?
IOninja Hm, no idea then. 17:21
But it was that way for ages and I figured it was because of that...
timotimo but if the fix is just to use "Branches" or "Build History" instead of "Current" ... i can live with that
[Coke] yes, nom is default.
timotimo but it's still very annoying :)
maybe we should reach out to travis support?
[Coke] timotimo: what URL are you clicking on that is giving you an error?
timotimo travis-ci.org/rakudo/rakudo
[Coke] github.com/travis-ci/travis-ci/issues/5629 17:23
github.com/gratipay/gratipay.com/issues/3989 17:24
perhaps someone with admin rights on the rakudo/rakudo build on travis's site can click a button to fix it. 17:25
timotimo i don't have the rights, alas 17:26
but thanks for digging
[Coke] me either. :)
nor do I see how to add who has rights. (if they're pulling everything from github, hopefully any github admins have rights)
moritz I've clicked "activate repository" 17:33
timotimo omg it worked! 18:00
\o/
moritz feels like a monkey who managed to hit the right key on the keyboard 18:03
rashipi moritz: isn't that all we ever do? 18:09
moritz rashipi: sometimes, the monkeys are better trained 18:11
rashipi In the animated sitcom "The Jetsons", they pictured George Jetson working in the most bizarre ocuppation they could imagine: he would push a button all day. Little they know how correct they were.
timotimo imagine if the complete government would be replaced by something based on machine learning, but there'd still have to be people pushing a button all day every day (no screen, no read-outs, no nothing, just a button) because "machines can't be ethical" so "a human has to be part of the process"? :D 18:14
rashipi It seems the US is that way looking from the outside. The State acts on it's own, but there's got to be an ellected button pusher to give it legitimacy. 18:15
eDeniAxlal presses the button 18:16
DrForr Push the button, Frank. 18:16
timotimo it's time to galvanize! 18:17
RabidGravy boo! 19:02
rashipi 👻 19:05
[Coke] wonders how many sixers are going to be caught in this storm in the US 19:30
RabidGravy what storm is that? 19:31
timotimo uh oh, i hadn't heard of that yet
[Coke] weather channel calls it "Stella" 19:32
[Coke] is expecting up to about .6m of snow
DrForr No idea.
timotimo *shrug*, between 0.3m and 1.5m of snow it hardly makes a difference :P 19:36
RabidGravy it was actually a delightful spring day in London 19:40
[Coke] ... said no one ever!
[Coke] was going to follow that up with "having never been in London", but I actually was in Heathrow momentarily last year, so whoops. 19:41
RabidGravy shame I spent it in the office
RabidGravy the fun thing about STOMP is that the message exchange semantics are entirely absent from the spec so you have to implement all the things 19:43
rashipi Why not use HTTP instead? 19:45
timotimo you could say that for basically any high-level protocol 19:48
geekosaur trying to walk to store before it hits here
got a few hours yet
rashipi timotimo: Exactly! 19:49
timotimo ssh? why not http?
rashipi HTTP 2.0 is a good fit. 19:50
timotimo a little bit, yeah
RabidGravy I like forward to seeing someones implementation ;-p 19:51
look even 19:52
rashipi Even supports the same authentication method: tools.ietf.org/html/rfc6091
RabidGravy but you'd still have to define a Pub/Sub protocol and the messaging semantics 19:53
rashipi Yes, none of them go there. 19:54
moritz amqp is pretty detailed
moritz and yes, it's complicated compared to STOMP 19:55
rashipi amqp does have something going for it that can't be done with HTTP/REST 19:59
moritz and AMQP 0.9 has pretty detailed behavioral specs
which AMQP 1.0 tossed
[Coke] is there an easy way to compare the precedence of two operators? 20:02
lizmat starts on the Perl 6 Weekly
lizmat m: say &[+].prec<prec> cmp &[*].prec<prec> # Coke 20:04
camelia Less
lizmat [Coke] ^^^
[Coke] lizmat++ 20:07
so, 1==my $a =3; shows false, but == 's prec is higher than ='s 20:09
m: say 1==my $a=3;
camelia False
[Coke] m: say 1==my $a=1;
camelia True
[Coke] m: say &infix:<==>.prec<prec> cmp &infix:<=>.prec<prec>
camelia More
[Coke] (trying to compose a reply to Sean McAfee on perl6-users)
IOninja m: dd [&infix:<==>.prec<prec>, &infix:<=>.prec<prec> ] 20:10
camelia ["m=", "e="]
IOninja m: my $a = 1; say 1== $a =42;
camelia Cannot modify an immutable Bool
in block <unit> at <tmp> line 1
Geth doc: bca510bc51 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/unicode_texas.pod6
Remove duplicate mention of ∘

Once is enough.
20:12
[Coke] Anyone know what m= and e= mean? 20:13
timotimo these letters are just there because alphabet
lizmat [Coke]: afaik they have no meaning, just relative weights 20:14
[Coke] m: dd [&infix:<*>, &infix:<+>] 20:14
camelia [sub infix:<*> (Mu $?, Mu $?) { #`(Sub+{<anon|53374288>}+{Precedence}|55561456) ... }, sub infix:<+> (Mu $?, Mu $?) { #`(Sub+{<anon|53374288>}+{Precedence}|55561296) ... }]
[Coke] m: dd [&infix:<*>.prec<prec>, &infix:<+>.prec<prec>] 20:15
camelia ["u=", "t="]
[Coke] ah, so this all checks out.
liAealneDx [Coke]: github.com/rakudo/rakudo/blob/nom/...3878-L3908
[Coke] er, wait, if == is higher, is this really being parsed as (1==my $a) = 3 ? 20:17
m: (1==my $a) = 3; say $a;
camelia Use of uninitialized value of type Any in numeric context
in block <unit> at <tmp> line 1
Cannot modify an immutable Bool
in block <unit> at <tmp> line 1
[Coke] m: 1==my $a = 3; say $a;
camelia WARNINGS for <tmp>:
Useless use of "==" in expression "1==my $a = 3" in sink context (line 1)
3
RabidGravy moritz, I guess the thing with amqp is that brokers like RabbitMQ will retain the exchange semantic, whereas say ActiveMQ which have always been multi-protocol can have more flexible semantics easier 20:19
I keep meaning to get Net::AMQP to negotiate, but so many yaks 20:23
liAealneDx statisfiable6: libmoar 20:23
statisfiable6 liAealneDx, OK! Working on it…
liAealneDx, gist.github.com/9e9d11180e161bd421...9e97a02c11 20:24
liAealneDx oops, no data… 20:25
liAealneDx let's try again :P 20:25
liAealneDx statisfiable6: libmoar 20:25
statisfiable6 liAealneDx, OK! Working on it…
statisfiable6 liAealneDx, gist.github.com/bac10db61919a463cf...0181492fc5 20:26
liAealneDx maybe I shouldn't graph it over rakudo commits, but whatever. This was the fastest way to get it done :P 20:27
[Coke] that looks like a bigger change than it is since the x axis starts at 3-ish. 20:29
... y-axis. whoops
liAealneDx statisfiable6: libmoar0
statisfiable6 liAealneDx, OK! Working on it…
liAealneDx let's start it on y then 20:30
on 0*
statisfiable6 liAealneDx, gist.github.com/609cdca96c23662481...0a31bbb669
liAealneDx [Coke]: it is a significant change anyway 20:31
Geth whateverable: aa374ae6f3 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Statisfiable.p6
Slight reworking of Statisfiable

Now statisfiable won't ping out when it is busy. In addition, now it should be a bit easier to add new graphs.
Also, implement a graph requested in issue #94. It is needlesly using rakudo commits for X steps, but that's not a big deal.
20:35
liAealneDx uhh! Writing emails is hard! 21:11
liAealneDx m: sub infix:<±> { Range.new: $^a - $^b, $a + $b }; say 5 ± 2 21:13
camelia 3..7
liAealneDx m: sub infix:<±> { Range.new: $^a - $^b, $a + $b }; say 4 ~~ 5 ± 2 21:14
camelia True
liAealneDx m: sub infix:<±> { Range.new: $^a - $^b, $a + $b }; say 0 ~~ 5 ± 2
camelia False
grondilu is there a EOF constant and can I use it with a here-document to say everything up to the rest of the file? 21:22
I know I could do "say q:to/^EOF$/;" and end with a literal 'EOF' but that looks dumb
RabidGravy Hmm 21:24
jnthn Wasn't there some Pod-y solution for that, like =finish and then $=finish to access it? 21:26
Pretty sure there's not a way with heredocs, though
IOninja yeah, =finish 21:28
lizmat concurs
IOninja
.oO( concurrent lizmat... )
21:30
lizmat hehe, multi-processing I'm afraid :-)
RabidGravy m: class Foo { }; say Foo.new.WHICH.Str.ords.join("").Int.base(16) 21:35
camelia 243F20D7F906232F367A16E
RabidGravy is that too dumb for getting a fairly amonymous unique id? 21:36
jnthn For what lifetime? 21:37
Or what usage?
RabidGravy for the lifetime of the program
jnthn Will the object's lifetime be shorter?
The .WHICH contains a memory address, and we allocate memory in pools 21:38
Fixed size buckets, essentially
RabidGravy well, it's actually a cheating-arse way of creating outbound stomp messages message-id
moritz m: say (class { }).WHERE
camelia 140004429043048
jnthn So there's a reasonable chance it'll get re-used for a future message
If they just need to be unique within the process, then can you not just use Concurrent::Iterator? 21:39
perlpilot RabidGravy: github.com/retupmoca/P6-UUID ;-)
RabidGravy well Ideally it would be universally unique
jnthn And my $id-source = concurrent-iterator(100000..*); $id-source.pull-one to get another one
Oh
Then maybe use a UUID moudle :)
*module 21:40
RabidGravy yeah, I was just being lazy :)
maybe add it to the inbound message 21:41
IOninja RabidGravy: FWIW .join("") is same as .join
RabidGravy jnthn, anyhow I may imminently in a position to make Stomp::Server actually be y'know a server :) 21:50
it's a bit meh at the moment but nothing a good refactor can't sort out 21:51
jnthn :-) 21:54
Cool
Meanwhile I've a new little module to add to the ecosystem tomorrow
But for now, time to rest :)
moritz good idea 21:57
lizmat and another Perl 6 Weekly hits the Net: p6weekly.wordpress.com/2017/03/13/...y-da-tags/ 21:59
IOninja lizmat++ good weekly 22:05
liAealneDx NeuralAnomaly: status 22:10
NeuralAnomaly liAealneDx, [✘] Next release will be in 4 days and 6 hours. Since last release, there are 57 new still-open tickets (19 unreviewed and 0 blockers) and 76 unreviewed commits. See perl6.fail/release/stats for details
tramdas how to use a suspend statement in perl6? 22:11
liAealneDx lizmat++ 22:12
tramdas: suspend?
tramdas yes...i want suspend the current task 22:13
liAealneDx tramdas: I guess someone smarter than me will be able to answer your question (eventually) :) That being said, I can give you some ideas, but for that I'd have to know what problem you're trying to solve. 22:18
huggable: xy
huggable liAealneDx, nothing found
liAealneDx huggable: xy problem
huggable liAealneDx, You want to do X, but don't know how. You think you can solve it using Y, but don't know how to do that, either. So, you ask about Y in order to solve X, which doesn't make sense. You should ask about X.
geekosaur what is a task, here? 22:23
geekosaur also is this actually suspend as in yield the cpu, or suspend as in produce a partial result? 22:24
tramdas suspend as in partial result...say a condition is not matched then i need to suspend the current task 22:29
Todd Hi All. Question on matching. Can I preassign variable names like I can in "for" loops? something like 22:34
perl6 -e 'my $x="ab12cd"; $x -> $a, $b, $c ~~ m/(ab)(12)(cd)/; say "$x\n\$0=<$0>\t\$1=<$1>\t\$2=<$2>\n";'
liAealneDx $<x>=ab 22:36
IOninja $x ~~ /$<a>=(ab) $<b>=(12) $<c>=(cd)/; say "$x\n$<a>\n$<b>\n$<c>"
liAealneDx ummm… you probably want [] in this case ↑
rindolf Todd: hi! Are you ToddAndMargo from the perl6-users list? 22:37
Todd The very same! 22:39
samcv hello Todd
Todd I am putting together a note on the various ways to use matching. The last part is using different variable names other than $0, $1 etc.. 22:40
IOninja don't matter. It doesn't set $0
liAealneDx m: "ab12cd" ~~ m/$<a>=[ab] $<b>=[12] $<c>=[cd]/; say $<a>; say $<c>
camelia 「ab」
「cd」
IOninja m: 'abc' ~~ /$<foo>=(.+)/; say $/[0]; say $<foo> 22:41
camelia Nil
「abc」
liAealneDx hm
IOninja tramdas: whyyyy are you messaging me?
tramdas is there something like a 'suspend' statement in perl6 so i can stop the current task 22:42
IOninja jesus
liAealneDx :S
rindolf Todd: ah, I see - I am Shlomi Fish
IOninja tramdas: no one knows what you're talking about. Try using words other than "suspend statement" instead of messaging people and repeating yourself. 22:43
m: "ab12cd" ~~ m/$<a>=ab $<b>=12 $<c>=cd/; say $<a>; say $<c>
camelia 「a」
「c」
IOninja Don't need anything really ^
liAealneDx ouch
no
IOninja :)
tramdas need an unconditional release
liAealneDx well, unless you really meant just ‘a’ to be captured 22:44
liAealneDx IOninja: interesting… I remember there was some case where you had to use [] instead of (), but cannot remember now 22:44
(or otherwise it would capture it in $0 unnecessarily)
tramdas now u get it? 22:45
liAealneDx hmm this one is interesting
m: "abab12cd" ~~ m/$<a>=[ab]+ $<b>=(12) $<c>=(cd)/; say $/
camelia 「abab12cd」
a => 「abab」
b => 「12」
c => 「cd」
IOninja tramdas: no
liAealneDx m: "abab12cd" ~~ m/$<a>=(ab)+ $<b>=(12) $<c>=(cd)/; say $/
camelia 「abab12cd」
a => 「ab」
a => 「ab」
b => 「12」
c => 「cd」
liAealneDx IOninja: ↑ weird, right? 22:46
IOninja nope.
liAealneDx okay :D
IOninja In the second case the + is outside the capture, while in the first case it's part of it
liAealneDx :O 22:47
well, that's far from being obvious… but okay
Todd perl6 -e 'my $x="ab12cd"; $x ~~ m/$<a>=(ab)+ $<b>=(12)+ $<c>=(cd)/; say "$x\n\$0=<$0>\t\$1=<$1>\t\$2=<$2>\n";'
I am missing something
IOninja lol, and he copied the one with the issue
liAealneDx Todd: no + 22:48
Todd perl6 -e 'my $x="ab12cd"; $x ~~ m/$<a>=(ab) $<b>=(12) $<c>=(cd)/; say "$x\n\$0=<$0>\t\$1=<$1>\t\$2=<$2>\n";'
IOninja Todd: you're using wrong variables
Todd no joy
IOninja Where do you see <$0> in my answer to you? 22:49
Todd mumble, mumble (copy and paste!)
Variable '$a' is not declared where do I put the "my"? 22:50
IOninja You can't be serious, Todd. 22:52
night all. \o 22:53
BenGoldberg Hello, good evening ;)
Todd Yes I am. In loop "for @Array -> $line" there is no "my"
BenGoldberg m: for ^3 -> my $line { .say } 22:54
camelia 5===SORRY!5=== Error while compiling <tmp>
Invalid typename 'my' in parameter declaration.
at <tmp>:1
------> 3for ^3 -> my7⏏5 $line { .say }
liAealneDx Todd: just using $<a>=(ab) will declare it, kind of
Todd changed to 22:55
perl6 -e 'my $a; my $b; my $c; my $x="ab12cd"; $x ~~ m/$<a>=(ab) $<b>=(12) $<c>=(cd)/; say "$x\n\$a=<$a>\t\$b=<$b>\t\$c=<$c>\n";'
and am getting "Use of uninitialized value $a of type Any in string context."
geekosaur because it's $<a> etc,
which expands to $/<a> same as $0 expands to $/[0] 22:56
Todd what do you mean?
geekosaur you have <$a> and friends in your say
they need to be <$<a>> etc.
it is $<a> NOT $a
liAealneDx look…
m: my $x="ab12cd"; $x ~~ m/$<a>=(ab) $<b>=(12) $<c>=(cd)/; say "$x\n\$a=$<a>\t\$b=$<b>\t\$c=$<c>"
camelia ab12cd
$a=ab $b=12 $c=cd
liAealneDx Todd: here ↑ 22:57
Todd perl6 -e 'my $a; my $b; my $c; my $x="ab12cd"; $x ~~ m/$<a>=(ab) $<b>=(12) $<c>=(cd)/; say "$x\n\$a=<$<a>>\t\$b=<$<b>>\t\$c=<$<c>>\n";' ab12cd $a=<ab>$b=<12>$c=<cd> 22:57
that worked
liAealneDx :-| 22:58
Todd Is there a way to get "$a" without the "<>"?
geekosaur not without reaassigning it
liAealneDx Todd: you don't need “my $a; my $b; my $c;” there…
Todd I just noticed
geekosaur match results always go into $/
BenGoldberg m: 'av12cd' ~~ m/$<a>=(ab) $<b>=(12) $<c>=(cd)/; say $<a>; 22:59
camelia Nil
geekosaur (although I think you can capture the result instead, it's still *shaped* like $/)
BenGoldberg m: 'ab12cd' ~~ m/$<a>=(ab) $<b>=(12) $<c>=(cd)/; say $<a>;
camelia 「ab」
geekosaur and $<a> is a reference into $/
BenGoldberg m: my $result = 'ab12cd' ~~ m/$<a>=(ab) $<b>=(12) $<c>=(cd)/; say $result<a>; 22:59
camelia 「ab」
geekosaur this is necessary because you can match multiple times etc. $/ will keep those multiple matches straight. what happens if you were to somehow assign into an external variable $a? 23:00
Todd Inquiring minds want to know! 23:01
geekosaur in otherr worse, you expect us to solve that one for you? I can think of several alternatives, none of which is sufficient for all cases 23:02
geekosaur $/ handles all such cases in a rational way 23:02
it doesn't require reading the mind of the user
Todd I am not sue what you are getting at. I was curious how to assign to an external variable. I already wrote down the $<a> method in my note 23:04
sure not sue 23:05
geekosaur and my answser was "you don't" and an example of why
geekosaur your response seems to be "of course you do, so how?" 23:05
Todd Well, that solves it. And don't forget I think you guys know all and see all. 23:06
Thank you guys for the help! I will post my notes over on the mailing list. (I do come up with some weird one, don't I!) 23:07
Todd bye bye, till I hit my head on a wall again 23:09
geekosaur and I should probably stop trying to answer questions; dopamine storm = no patience to speak of :( 23:11
b2gills $<a> is short for $/{ qw' a ' }
lucs I've had some success with the following, not quite sure how to understand it though:
geekosaur (among other things)
lucs m: my ($a, $b) = @('as12df 345' ~~ / (\d+) .*? (\d+) /); print "$a $b"
camelia 12 345
geekosaur you're deconstructing the $/ - shaped thing that a smartmatch produces 23:12
b2gills m: $/ = { a => 1, b =>2 }; say $< a b >
camelia (1 2)
geekosaur there's should be some documentation for it somewhere
samcv this is an insane patent www.google.com/patents/US20040230959 in 2004... 23:52
how can you even patent that
geekosaur uspto doesn't even care these days 23:53
samcv quick guys lets patent all our operatorssss
geekosaur you can patent anything and it's up to everyone else to challenge it in court
samcv then sue MS if they decode to steal them!
s/decode/try
geekosaur which basically enables barefaced theft by corporations