»ö« 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
00:02 mcmillhj joined
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
00:04 bjz joined 00:07 mcmillhj left
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
00:15 cdg left
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
00:31 Possum left
DnAeillaxe samcv: you don't do it yet! 00:33
samcv: the feature is experimental, so… :)
samcv OK
00:33 mcmillhj joined
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
00:37 mcmillhj left
DnAeillaxe but not U+2028 and U+2029 00:37
00:40 Sound left
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
00:44 mcmillhj joined 00:46 Possum joined 00:48 mcmillhj left
Geth perl6-most-wanted: cc520a35af | (Tom Browder)++ | most-wanted/modules.md
remove module now in ecosystem
00:56
01:01 TEttinger left 01:03 mcmillhj joined 01:07 mcmillhj left 01:24 mcmillhj joined 01:28 mcmillhj left 01:29 bjz left 01:30 lukaramu_ left 01:31 girafe left
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
01:38 cdg joined
DnAeillaxe u: a
 01:39
right…
01:44 mcmillhj joined 01:48 mcmillhj left
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
02:03 mcmillhj joined 02:07 cdg left 02:08 mcmillhj left, cdg joined 02:19 bjz joined
DnAeillaxe m: say “\c[MAN SHRUGGING, WOMAN SHRUGGING]” 02:20
camelia 🤷‍♂️🤷‍♀️
02:22 mcmillhj joined 02:27 mcmillhj left 02:30 Guest45613 joined 02:31 statisfiable6 left, TEttinger joined 02:41 Guest45613 left 02:43 mcmillhj joined
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
02:48 mcmillhj left 02:54 Cabanossi left 02:55 Cabanossi joined
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
03:02 mcmillhj joined
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
03:08 mcmillhj left
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
03:22 mcmillhj joined
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... :)
03:26 mcmillhj left
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
03:41 noganex_ joined 03:42 mcmillhj joined
BenGoldberg u: { .chr ~~ /\n/ } 03:43
unicodable6 BenGoldberg, U+000A <control-000A> [Cc] (control character)
BenGoldberg, U+000B <control-000B> [Cc] (control character)
03:44 noganex left 03:47 mcmillhj left
samcv u: { .uniprop('Line_Break') eq 'MB' } 03:48
unicodable6 samcv, Found nothing!
BenGoldberg u: { .chr.uniprop('Line_Break') eq 'MB' } 03:49
03:49 mcmillhj joined
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
03:57 khw left 04:07 Cabanossi left 04:08 Cabanossi joined 04:22 wamba1 joined 04:23 faraco joined
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
04:37 Cabanossi left
faraco DnAeillaxe++ 04:37
04:38 Cabanossi joined
TEttinger DnAeillaxe: how do you decide on the permutation of letters to use? 04:43
04:44 cdg_ joined 04:47 mcmillhj left, wamba1 left 04:48 cdg left 04:49 cdg_ left
samcv oh speaking of books i was gonna read moritz book 04:57
04:59 BenGoldberg left 05:01 mcmillhj joined
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 ↑
05:03 wamba1 joined 05:06 mcmillhj left
TEttinger cool, eDeniAxlal 05:09
DnAeillaxe ye let's fix it 05:15
05:15 DnAeillaxe is now known as eDeniAxlal 05:17 matt_ left 05:21 mcmillhj joined
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
05:25 matt_ joined, matt_ is now known as Guest92771 05:26 rindolf joined 05:27 mcmillhj left 05:42 mcmillhj joined 05:43 eDeniAxlal left, bjz_ joined 05:45 bjz left 05:46 mcmillhj left 05:47 hcit joined, skids left 06:00 curan joined 06:07 firestarter left 06:13 mcmillhj joined 06:17 jraglin joined 06:18 mcmillhj left 06:19 eroux joined 06:20 CIAvash joined 06:33 mcmillhj joined 06:34 ufobat joined 06:38 mcmillhj left 06:45 wamba1 left 06:49 jraglin left 06:50 RabidGravy joined 06:51 jraglin joined 06:53 mcmillhj joined 06:54 jraglin left, domidumont joined 06:58 mcmillhj left 07:04 wamba1 joined
ufobat good monring 07:06
07:14 mcmillhj joined
faraco morning 07:16
07:19 mcmillhj left
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
07:31 jraglin joined
samcv oh ok 07:32
07:34 mcmillhj joined 07:37 Cabanossi left, jraglin left
samcv moritz, you can have pictures right? 07:38
07:39 Cabanossi joined
moritz samcv: yes 07:39
07:39 mcmillhj left
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
07:49 jraglin joined 07:54 mcmillhj joined 07:59 mcmillhj left 08:03 jraglin left 08:06 g4 joined 08:07 Cabanossi left 08:09 Cabanossi joined 08:15 mcmillhj joined 08:19 mcmillhj left 08:26 eroux left
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.
08:32 eroux joined 08:33 mcmillhj joined, kyan left 08:38 mcmillhj left 08:42 wamba1 left 08:52 dakkar joined 08:53 mcmillhj joined 08:55 girafe joined 08:58 Guest92771 is now known as matt_, mr-foobar joined, matt_ is now known as Guest7501, mcmillhj left, Guest7501 is now known as matt_ 09:03 bjz_ left 09:14 bjz joined, mcmillhj joined 09:17 mr-foobar left 09:19 mcmillhj left, faraco left 09:24 ZzZombo joined, ZzZombo left, ZzZombo joined 09:28 movl joined 09:29 wamba1 joined 09:33 mcmillhj joined 09:37 Cabanossi left, koki1 joined, mcmillhj left 09:38 Cabanossi joined 09:39 Sound joined, mr-foobar joined 09:47 girafe left 09:51 cdg joined 09:53 mcmillhj joined 09:54 cdg left, cdg joined 09:58 mcmillhj left 10:03 mxco86 joined 10:05 ufobat left 10:07 abraxxa joined 10:08 Cabanossi left, Cabanossi joined 10:14 mcmillhj joined 10:16 abraxxa left 10:19 mcmillhj left 10:22 astj left, astj joined, TEttinger left 10:23 astj left, astj joined 10:30 abraxxa joined 10:32 cdg_ joined 10:33 jonas1 joined 10:34 ufobat joined, mcmillhj joined, cdg left 10:36 jonas1 left, labster left, Cabanossi left 10:37 jonas1 joined 10:38 Cabanossi joined, mcmillhj left 10:55 mcmillhj joined 11:00 mcmillhj left, andrzejku joined 11:06 mcmillhj joined 11:07 Cabanossi left 11:08 Cabanossi joined 11:10 mcmillhj left 11:17 mcmillhj joined 11:22 mcmillhj left 11:26 wamba1 left 11:28 mcmillhj joined 11:31 cdg_ left 11:33 mcmillhj left, mniip left 11:37 mniip joined 11:40 wamba1 joined 11:45 cschwenz joined
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
?
11:51 mcmillhj joined 11:52 Cabanossi left 11:53 Cabanossi joined 11:56 mcmillhj left 12:04 lukaramu joined
DrForr cschwenz: Not that I've heard, at least not yet. 12:07
12:10 andrzejku left, andrzejku joined 12:11 mxco86 left, mxco86 joined 12:14 CIAvash left 12:17 mcmillhj joined 12:19 kaushal joined
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
12:22 mcmillhj left
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 :)
12:26 Woodi_ is now known as Woodi
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
12:30 mcmillhj joined
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.
12:32 eroux left
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
12:36 Cabanossi left
kaushal ok 12:36
12:37 mcmillhj left, faraco joined 12:38 Cabanossi joined
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
12:40 andrzejku left 12:41 andrzejku joined
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
12:42 andrzejku left
kaushal ok 12:43
12:43 andrzejku joined
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
12:44 itaipu joined
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?
12:45 Peter_R left
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
12:47 cschwenz left, Peter_R joined
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
12:59 mcmillhj joined
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
13:00 cog__ joined
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
13:01 cog left, cog_ left, cognominal left
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.
13:08 Peter_R left 13:09 Dunearhp_ is now known as Dunearhp 13:11 Peter_R joined 13:15 kaushal left 13:30 spebern left 13:33 itaipu left 13:34 aborazmeh joined, aborazmeh left, aborazmeh joined, lukaramu_ joined 13:37 xiaomiao is now known as DrEeevil, lukaramu left 13:39 eroux joined 13:41 kaushal joined 13:43 mscha joined
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/
13:45 itaipu joined 13:46 aborazmeh left
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
13:47 rashipi joined
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
13:53 andrzejku left 13:54 andrzejku joined
moritz IOninja++, jnthn++ 13:55
13:59 cdg joined
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
14:09 domidumont left
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
14:10 domidumont joined 14:13 kaushal left 14:19 movl left 14:21 araraloren joined
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
14:25 domidumont left
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 :)
14:26 domidumont joined
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
14:28 rjbs left 14:36 Cabanossi left 14:39 Cabanossi joined 14:41 sufrostico joined, sufrosti1o joined 14:42 eroux left 14:43 eroux joined 14:51 wamba1 left 14:52 araraloren left 14:53 araraloren joined 14:55 gdonald left, gdonald joined 14:56 wamba1 joined 15:01 araraloren left 15:02 skids joined 15:04 ZzZombo left
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?
15:08 sufrostico left
rashipi ranguard: Here is the last update on rakudo-js: blogs.perl.org/users/pawel_murias/2...-test.html 15:09
15:09 sufrosti1o left
ranguard rashipi: nice - thanks 15:10
rashipi np
15:15 sufrostico joined, rjbs joined 15:16 bdmatatu joined 15:22 sufrostico left 15:26 bdmatatu left
mscha m: my int $i = 42; say $i ~~ int; say $i ~~ Int; 15:27
camelia False
True
15:33 cdg left 15:34 cdg joined 15:37 Cabanossi left 15:39 Cabanossi joined 15:43 kyan joined 15:49 bdmatatu joined 15:51 bdmatatu left, curan left 16:05 wamba1 left 16:07 Cabanossi left, profan left, imcsk8 left 16:08 [particle] left 16:09 Cabanossi joined, imcsk8 joined, [particle] joined 16:10 eDeniAxlal joined 16:12 melezhik joined 16:16 eroux left 16:18 andrzejku left 16:19 andrzejku joined 16:20 domidumont left 16:23 melezhik left 16:24 itaipu left 16:29 eroux joined 16:31 itaipu joined 16:39 khw joined 16:42 profan joined 16:46 avuserow left
rashipi Whedn there's an error in the REPL, it should say <REPL> in the error messages instead of <unknown file>. 16:53
16:53 abraxxa left 16:56 agentzh left
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
17:11 faraco left
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.
17:16 wamba1 joined
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
17:35 dakkar left 17:37 Cabanossi left 17:38 Cabanossi joined 17:40 cdg_ joined 17:42 cdg left 17:44 robertle joined 17:45 eroux left 17:54 Ven joined 18:00 Ven left
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.
18:13 Ven joined
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
18:16 eDeniAxlal is now known as liAealneDx
DrForr Push the button, Frank. 18:16
timotimo it's time to galvanize! 18:17
18:19 cdg joined 18:23 cdg_ left 18:25 profan left, profan joined 18:32 Ven left 18:33 eroux joined 18:34 Ven joined 18:46 Ven left 18:47 mr-foobar left 18:48 mr-foobar joined 18:51 cdg left 18:53 Ven joined 19:02 Ven left
RabidGravy boo! 19:02
rashipi 👻 19:05
19:13 Ven joined 19:14 Ven left 19:24 labster joined, agentzh joined
[Coke] wonders how many sixers are going to be caught in this storm in the US 19:30
19:31 agentzh left
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.
19:33 Ven joined
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
19:41 labster left
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
19:45 sufrostico joined 19:46 Ven left
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
19:49 sufrosti1o joined
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
19:51 Cabanossi left
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
19:53 Ven joined, _kristia1 is now known as _kristian
RabidGravy but you'd still have to define a Pub/Sub protocol and the messaging semantics 19:53
19:53 Cabanossi joined
rashipi Yes, none of them go there. 19:54
moritz amqp is pretty detailed
19:54 bjz left
moritz and yes, it's complicated compared to STOMP 19:55
19:57 bjz_ joined 19:58 cdg joined
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
20:02 espadrine joined, Ven left
lizmat m: say &[+].prec<prec> cmp &[*].prec<prec> # Coke 20:04
camelia Less
lizmat [Coke] ^^^
20:07 TEttinger joined
[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)
20:09 sufrosti1o left
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
20:10 sufrostico left
Geth doc: bca510bc51 | (Aleks-Daniel Jakimenko-Aleksejev)++ | doc/Language/unicode_texas.pod6
Remove duplicate mention of ∘

Once is enough.
20:12
20:13 Ven joined
[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
20:14 Ven left
[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
20:16 pecastro joined
[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
20:23 statisfiable6 joined, ChanServ sets mode: +v statisfiable6
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
20:25 statisfiable6 left
liAealneDx let's try again :P 20:25
20:25 statisfiable6 joined
liAealneDx statisfiable6: libmoar 20:25
statisfiable6 liAealneDx, OK! Working on it…
20:25 ChanServ sets mode: +v statisfiable6
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
20:33 Ven joined
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
20:36 pecastro left 20:42 sufrostico joined 20:46 Ven left, sufrosti1o joined 20:47 sufrostico left, gdonald left, gdonald joined 20:49 sufrostico joined 20:51 Cabanossi left, labster joined 20:53 Ven joined 20:54 Cabanossi joined 20:55 sufrostico left 20:56 sufrosti1o left 21:02 Ven left 21:03 pecastro joined 21:04 rashipi left 21:05 Ven joined
liAealneDx uhh! Writing emails is hard! 21:11
21:12 eroux left
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
21:18 mcmillhj left, itaipu left 21:20 Ven left 21:21 itaipu joined
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
21:27 mcmillhj joined
IOninja yeah, =finish 21:28
lizmat concurs
IOninja
.oO( concurrent lizmat... )
21:30
lizmat hehe, multi-processing I'm afraid :-)
21:32 mcmillhj left 21:33 bjz_ left
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
21:42 dct joined, wamba1 left 21:46 adu joined 21:49 adu left 21:50 adu joined, kyan left
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 :)
21:57 zakharyas joined
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
22:04 kyan joined
IOninja lizmat++ good weekly 22:05
22:06 LeCamarade left, LeCamarade joined
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
22:11 tramdas joined
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
22:15 mcmillhj joined
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.
22:19 RabidGravy left 22:20 mcmillhj left 22:22 sufrostico joined 22:23 sufrosti1o joined
geekosaur what is a task, here? 22:23
22:24 mcmillhj joined
geekosaur also is this actually suspend as in yield the cpu, or suspend as in produce a partial result? 22:24
22:24 mcmillhj left 22:28 kyan left
tramdas suspend as in partial result...say a condition is not matched then i need to suspend the current task 22:29
22:30 hobbified is now known as hobbs, hobbs left, hobbs joined 22:33 Todd joined
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
22:38 Cabanossi left 22:39 Cabanossi joined
Todd The very same! 22:39
samcv hello Todd
22:40 Voldenet left
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?
22:42 sufrosti1o left, sufrostico left
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
22:44 sufrostico joined, sufrosti1o joined
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」
22:45 Voldenet joined, Voldenet left, Voldenet joined 22:46 tramdas left
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
22:52 BenGoldberg joined
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
22:57 espadrine left
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 $/
22:59 labster left
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
23:01 labster joined
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
23:02 grondilu_ joined
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
23:05 grondilu left
geekosaur your response seems to be "of course you do, so how?" 23:05
23:06 Cabanossi left
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
23:08 Cabanossi joined
Todd bye bye, till I hit my head on a wall again 23:09
23:10 robertle left
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
23:12 cdg left 23:15 Todd left 23:42 adu left 23:44 adu joined 23:45 mscha left 23:51 Cabanossi left
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
23:53 Cabanossi joined