»ö« 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.
00:12 lichtkind__ left 00:16 Actualeyes left 00:31 colomon_ joined 00:32 colomon left, colomon_ is now known as colomon 00:34 dugword left
AlexDaniel notviki++ # cool answer 00:55
00:59 aborazmeh joined, aborazmeh left, aborazmeh joined 01:07 atta joined 01:13 Actualeyes joined 01:21 BenGoldberg joined 01:23 BenGoldberg left 01:24 BenGoldberg joined 01:32 cibs left 01:34 cibs joined 01:35 dugword joined
samcv anybody have any thoughts. we brackets mispaired 01:36
yoleaux 2 Jan 2017 22:25Z <AlexDaniel> samcv: perhaps you can take a look at #130419 ? I wonder what you think.
synopsebot6 Link: rt.perl.org/rt3//Public/Bug/Displa...?id=130419
samcv kk
AlexDaniel nevermind this ↑ 01:37
samcv ah
so we have in 6.c-errata a set of brackets matching the wrong one
correct is: (LEFT SQUARE BRACKET WITH TICK IN TOP CORNER, RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER) 01:38
we have the top one matching the bottom one and stuff
so that is kind of a problem bigger than the ornate parenthesis
samcv panics 01:39
AlexDaniel u: LEFT SQUARE BRACKET WITH TICK IN TOP CORNER
unicodable6 AlexDaniel, U+298D LEFT SQUARE BRACKET WITH TICK IN TOP CORNER [Ps] (⦍)
samcv Couldn't find terminator ⦐ (corresponding ⦍ was at line 33)
AlexDaniel u: RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER 01:40
unicodable6 AlexDaniel, U+2990 RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER [Pe] (⦐)
samcv with my nqp patch to check for the matching brackets
AlexDaniel u: SQUARE BRACKET WITH TICK
unicodable6 AlexDaniel, U+298F LEFT SQUARE BRACKET WITH TICK IN BOTTOM CORNER [Ps] (⦏)
AlexDaniel, U+298D LEFT SQUARE BRACKET WITH TICK IN TOP CORNER [Ps] (⦍)
AlexDaniel, U+298E RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER [Pe] (⦎)
AlexDaniel, U+2990 RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER [Pe] (⦐)
samcv but we test them reversed
so tick in bottom => tick top etc
01:40 dugword left
AlexDaniel ⦍⦎ ⦏⦐ instead of ⦍⦐ ⦏⦎, right? 01:41
samcv yep
top with top and bottom with bottom
AlexDaniel samcv: ok but what defines that it should be this way?
samcv unicode
AlexDaniel I may have missed some of that stuff during the last few days 01:42
samcv also look at them
increase text size
⦍⦎ ⦏⦐ instead of ⦍⦐ ⦏⦎
you can clearly see they don't match
the ones on the left are not matching brackets 01:43
also note that the matching bracket for 「 IS 」
AlexDaniel I'm not sure I can see it files.progarm.org/2017-01-03-03430..._scrot.png
samcv so if it was meant for where the tick would be
it would be that way
(as in bidi mirrored glyph does not ONLY take vertical axis flipping into account)
left is wrong 01:44
AlexDaniel samcv: alright, so… why not change it in errata then?
samcv that is fine with me. wanted to ask before making a change to 6.c-errata
AlexDaniel the thing is, most likely nobody is using this, so there's no reason for panic 01:45
samcv yeah
yeah and probably not using the incorrect ones either
AlexDaniel the question is, however, should we willy-nilly change the errata or wait for 6.d or something
samcv tho maybe ornate parens should be removed too idk. maybe can we warn on ornate?
well it's incorrect
TEttinger hehe those flippin' ornate parens 01:46
samcv it's one thing to allow additional delimiters. like < > are not technically brackets
and another thing to have it mapped to the wrong one
TEttinger and newline is not technically whitespace if you believe unicode all over
samcv it's not though TEttinger
TEttinger it's in one of the C categories, yeah
samcv it's a control character
TEttinger but in text it should absolutely be parsed as space
samcv yeah 01:47
AlexDaniel samcv: well, perhaps we should do it “right” and start giving a warning for them right now?
TEttinger also, tab is considered a control too, which is similarly silly
samcv it is though
it just renders as space
TEttinger :(
samcv wait. but it has semantic value
AlexDaniel personally I would've changed it right away without too much thinking, but this kinda breaks our promise to keep stuff compatible as we move on…
TEttinger anything can render as space
samcv in language. so idk
TEttinger that depends on your font
samcv render all text as space
yeah AlexDaniel 01:48
TEttinger it is semantically whitespace
samcv in nqp i can make like, depreciated brackets
the ornate and the mismatched ones?
ugh tho, really sucks to support incorrect things?
i mean it wasn't intentional we did that
they were meant to be matching parens, but we reversed them
i think that's a little different than the ornate ones 01:49
AlexDaniel u: 「
unicodable6 AlexDaniel, U+FF62 HALFWIDTH LEFT CORNER BRACKET [Ps] (「)
timotimo we acccidentally match the top-left and bottom-right? or top-left and top-right?
AlexDaniel u: corner bracket
unicodable6 AlexDaniel, U+23A3 LEFT SQUARE BRACKET LOWER CORNER [Sm] (⎣)
AlexDaniel, U+23A4 RIGHT SQUARE BRACKET UPPER CORNER [Sm] (⎤)
AlexDaniel, U+23A1 LEFT SQUARE BRACKET UPPER CORNER [Sm] (⎡)
AlexDaniel, gist.github.com/ba85380edefac8eba1...e77836e3d3
samcv yeah timotimo
timotimo which one is it? %)
samcv the top left and bottom right match and bottom left and top right match 01:50
but that's reversed
BenGoldberg m: '⦎'.uniprop('na').say;
camelia rakudo-moar a566ef: OUTPUT«RIGHT SQUARE BRACKET WITH TICK IN BOTTOM CORNER␤»
samcv and if they were meant to be flipped horizontal axis, it would. like 「 matches 」
^ that is a bracket pair
i think the tick ones are probably designed so they can be easily nested and be visually distinguishable 01:51
so should def not be matched the way they are 01:52
01:53 jast joined
samcv like we match these brackets ⦋' => '⦌', 01:55
m: "⦋' => '⦌'".uninames.say
camelia rakudo-moar a566ef: OUTPUT«(LEFT SQUARE BRACKET WITH UNDERBAR APOSTROPHE SPACE EQUALS SIGN GREATER-THAN SIGN SPACE APOSTROPHE RIGHT SQUARE BRACKET WITH UNDERBAR APOSTROPHE)␤»
samcv underbar and underbar match. 01:56
correctly. so it's totally an error
AlexDaniel u: underbar
unicodable6 AlexDaniel, U+22F8 ELEMENT OF WITH UNDERBAR [Sm] (⋸)
AlexDaniel, U+234A APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR [So] (⍊)
AlexDaniel, U+2358 APL FUNCTIONAL SYMBOL QUOTE UNDERBAR [So] (⍘)
AlexDaniel, gist.github.com/2bc6c5081d2b7eb780...c221cdd7a2
AlexDaniel samcv: but there's no overbar
or is there
samcv i said underbar
AlexDaniel u: square bracket bar 01:57
unicodable6 AlexDaniel, U+298C RIGHT SQUARE BRACKET WITH UNDERBAR [Pe] (⦌)
AlexDaniel, U+298B LEFT SQUARE BRACKET WITH UNDERBAR [Ps] (⦋)
samcv where did i say overbar
AlexDaniel samcv: I mean, there was no possibility to make it other way because there are no characters for this
samcv i suppose
or you could just say unicode haven't added it yet
and there are brackets without matches 01:58
at the present time
AlexDaniel hmmm en.wikipedia.org/wiki/Bracket 01:59
samcv how will that help AlexDaniel
AlexDaniel samcv: it lists them the way they are now
I'm just wondering why 02:00
samcv it lists them in codepoint order
AlexDaniel not saying that it's right, but at least we are not the only ones who made this mistake, right? :) 02:01
samcv yeah i suppose.
AlexDaniel the page has them grouped as well, not just listed
samcv For bidirectional processing, the brackets with ticks are paired on the basis of their left/right symmetric glyphs, rather than on the basis of an open/close pairing inferred from code point order. 02:02
very specific
though actually
need to think more
ack
samcv double checks some things
that doesn't really even mean anything. but it's not entirely clear 02:03
AlexDaniel “[…] are paired the same way their glyphs form mirror pairs, according to their bmg property values. They are not paired on the basis of a diagonal or antidiagonal matching of the corner ticks inferred from code point order.”
yea, same thing
samcv The brackets with ticks U+298D LEFT SQUARE BRACKET WITH TICK IN TOP CORNER 02:04
# through U+2990 RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER are paired the
# same way their glyphs form mirror pairs, according to their bmg property
# values. They are not paired on the basis of a diagonal or antidiagonal
# matching of the corner ticks inferred from code point order.
yeah
that's pretty clear
that they are 'paired'
not just "mirrored" for visual identification
BenGoldberg m: '⦎'.uniprop('bmg').say; 02:05
camelia rakudo-moar a566ef: OUTPUT«⦏␤»
samcv but there are pages on using bidi brackets to find matching brackets in a text. and i think it highly unlikely they would pair the wrong one
and then specifically say that they form a match
BenGoldberg m: '('.uniprop('bmg').say;
camelia rakudo-moar a566ef: OUTPUT«)␤»
BenGoldberg m: my $x = '⦋'; my $y = $x.uniprop('bmg'); say $x, $x.uniprop('na'), $y, $y.uniprop('na'); 02:07
camelia rakudo-moar a566ef: OUTPUT«⦋LEFT SQUARE BRACKET WITH UNDERBAR⦌RIGHT SQUARE BRACKET WITH UNDERBAR␤»
BenGoldberg m: my $x = '⦍'; my $y = $x.uniprop('bmg'); say $x, $x.uniprop('na'), $y, $y.uniprop('na');
camelia rakudo-moar a566ef: OUTPUT«⦍LEFT SQUARE BRACKET WITH TICK IN TOP CORNER⦐RIGHT SQUARE BRACKET WITH TICK IN TOP CORNER␤»
BenGoldberg m: my $x = '⏜'; my $y = $x.uniprop('bmg'); say $x, $x.uniprop('na'), $y, $y.uniprop('na'); 02:08
camelia rakudo-moar a566ef: OUTPUT«⏜TOP PARENTHESISNil␤»
BenGoldberg m: my $x = '〈'; my $y = $x.uniprop('bmg'); say $x, $x.uniprop('na'), $y, $y.uniprop('na'); 02:09
camelia rakudo-moar a566ef: OUTPUT«〈LEFT ANGLE BRACKET〉RIGHT ANGLE BRACKET␤»
BenGoldberg m: my $x = '〈'; my $y = $x.uniprop('Bidi_Mirroring_Glyph'); say $x, $x.uniprop('na'), $y, $y.uniprop('na'); 02:13
camelia rakudo-moar a566ef: OUTPUT«〈LEFT ANGLE BRACKET〉RIGHT ANGLE BRACKET␤»
samcv the main point is basically, it's easy enough to fall back to things unicode doesn't define as brackets and add our own, but basically really horrible if we have to switch two of them, we have to check those brackets before trying to find the _actual_ matching delimiter 02:15
are people ok with me matching the correct brackets in roast 6.c-errata?
i think we should only change 6.c-errata because a mistake was made with the writing of the test. and i think that is the case here 02:16
BenGoldberg How *did* we end up with the wrong brackets, anyway? 02:17
samcv by accident
idk whoever made this test file :)
the test file is aply named 'quoting-unicode.t' 02:18
so one would assume it had quoting using unicode brackets ;P
timotimo if you really want to find out, you can "git blame"
BenGoldberg m: my $x = '〈'; my $y = $x.uniprop('Bidi_Paired_Bracket'); say $x, $x.uniprop('na'), $y, $y.uniprop('na'); 02:19
camelia rakudo-moar a566ef: OUTPUT«〈LEFT ANGLE BRACKET0NULL␤»
timotimo or "git annotate" if you want the command name to be more neutral
samcv so if going by the title the ornate parens shouldn't be there either. but that's beside the point
wollmers seems to have added it 02:20
or at least edited that line
BenGoldberg m: my $x = '('; my $y = $x.uniprop('Bidi_Paired_Bracket'); say $x, $x.uniprop('na'), $y, $y.uniprop('na');
camelia rakudo-moar a566ef: OUTPUT«(LEFT PARENTHESIS0NULL␤»
timotimo "git gui blame" lets you right-click on individual lines and "blame parent commit" which helps you figure out the history of a line
BenGoldberg m: my $x = '('; my $y = $x.uniprop('bpb'); say $x, $x.uniprop('na'), $y, $y.uniprop('na');
camelia rakudo-moar a566ef: OUTPUT«(LEFT PARENTHESIS0NULL␤»
BenGoldberg Why don't Bidi_Paired_Bracket or bpb work here? 02:21
samcv for what?
we don't have bpb 02:22
only bmg
BenGoldberg Shouldn't the paired bracket of ( be )?
So we're ignoring www.unicode.org/Public/UNIDATA/BidiBrackets.txt ?
samcv bpb is nyi. but bpb is defined as Pi/Pf or Ps/Pe that are bmg and map to each other
02:22 shayan_ joined
samcv well there's not a dedicated bracket one. but ^ is the spec 02:23
and the stuff in that file is derived from bmg and the general categories
plus we support some things that aren't ""brackets"" but are bidi mirrored like < >
< and > are less than and greater than symbol 02:24
m: '<'.uniname.say
camelia rakudo-moar a566ef: OUTPUT«LESS-THAN SIGN␤»
timotimo right ... ugh
i'm glad my keyboard layout has ⟨⟩ somewhat easily available 02:26
samcv the main issue being we should never define anything that conflicts with unicode's brackets. but we can add additional ones if we really want to
but swapping them is just news for bad news
timotimo right 02:27
samcv contemplates what 'news for bad news' even means or what i meant
bad news. something something
timotimo we can have a long deprecation cycle for that
samcv ornate parens are easier to depreciate. but the ones with ticks
timotimo so if someone actually did use those brackets, they'll be getting warnings for a year or so before they get "mismatched brackets" problems
samcv hm 02:28
ok
i will do that
timotimo but also: we can have extra code in our parser that notices when the wrong one was found before running senselessly to the EOF
you think brackets with ticks are common? 02:29
samcv no
timotimo why are they harder to deprecate?
samcv i mean the compiler already shows you what glyph it was looking as a closing
because they're reversed
err swapped is more accurate 02:30
timotimo right, rakudo currently matches topleft with bottomright and vice versa you said
samcv yeah
timotimo i thought we had the same problem with the ornate brackets?
02:30 shayan_ left
samcv nope those aren't actual brackets per unicode 02:30
so depreciating them would be easy
to give a warning for that. since it doesn't conflict with the actual matching brackets. since we already define some of our own things not defined as brackets 02:31
timotimo oh
02:31 shayan_ joined, shayan_ left
BenGoldberg m: say q< foo [ bar >; 02:32
camelia rakudo-moar a566ef: OUTPUT« foo [ bar ␤»
samcv for my matching bracket code for nqp i'm just going on, is it bidi mirrored, find the matching mirroring glyph 02:34
which allows us to match < > as well
and any mirrored thing should never be used as an arbitrary delimiter, so it is good to catch that too
i mean the module thing broke some code right, but it fixed an existing bug 02:36
i think this is a bug, since they were specified with the wrong matches.
02:37 kalkin- left, kalkin-_ joined
samcv but i could i guess have code that would catch that case. idk i think a year is too long 02:37
can depreciate the ornate ones over much longer, but i think the ticked brackets should be depreciated quicker since it's an error 02:38
timotimo we can make it explode when the user uses 6.d (or uses v6 which always gives you the latest if i'm not mistaken) 02:39
samcv i'm ok with doing that for ornate. but not the ticked ones :( 02:40
it just seems bad to keep something incorrect in, that is 100% incompatible with 6.d 02:41
timotimo yeah
samcv if people write their code then use v6.d and then it tries to match a different delimiter. that's horrible 02:42
anybody else want to weigh in?
notviki If they're wrong, I don't see a problem with changing 6.c-errata.
02:42 grondilu left
samcv anybody else object to changing 6.c-errata? 02:43
02:45 grondilu joined 02:46 ilbot3 left 02:48 ilbot3 joined
timotimo aaargh! "fadd, fmul" "floating point operations, running time depends on the operands", "bypassing firefox's same origin policy via SVG filter timing attack" 02:49
side channel attacks are scary
(not relevant to perl6 ... yet!) 02:50
03:04 ufobat left 03:13 noganex_ joined 03:16 shayan_ joined, noganex left 03:19 dugword joined, Sgeo left 03:20 pyrimidine left 03:21 pyrimidine joined 03:24 Gasher joined 03:28 xtreak joined 03:29 rpburkholder left 03:30 Sgeo joined 03:34 Sgeo left, jast left, xtreak left, noganex_ left, ilbot3 left, colomon left, Actualeyes left, dugword left, kalkin-_ left, xtreak joined, noganex_ joined, Sgeo joined, jast joined 03:35 dugword joined, kalkin-_ joined, ilbot3 joined, colomon joined, Actualeyes joined, Actualeyes left 03:37 skids left 03:49 rburkholder joined
samcv m: say q⦍ test ⦎ 04:00
camelia rakudo-moar 76283f: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Couldn't find terminator ⦐ (corresponding ⦍ was at line 1)␤at <tmp>:1␤------> 3say q⦍ test ⦎7⏏5<EOL>␤ expecting any of:␤ ⦐␤»
samcv yey
luckily the error is pretty damn informative as to what it's looking for 04:01
samcv goes to edit wikipedia
timotimo has tea 04:03
04:05 rburkholder left 04:08 cooper_ joined 04:13 cooper_ is now known as cooper 04:19 shayan_ left 04:22 shayan_ joined 04:40 kaare_ left, aborazmeh left 04:41 kaare_ joined 04:42 xinming_ left 04:43 xinming joined
AlexDaniel samcv++ 04:43
04:43 shayan_ left 04:47 BenGoldberg left 04:51 BenGoldberg joined 04:52 pyrimidine left, shayan_ joined, pyrimidine joined 04:58 Ben_Goldberg joined, BenGoldberg left, Ben_Goldberg is now known as BenGoldberg 05:00 Actualeyes joined 05:19 Actualeyes left 05:23 khw left 05:24 Gasher left 05:26 labster left 05:38 AlexDaniel left 05:40 Actualeyes joined 05:44 bwisti left 05:45 kaare_ left 05:50 grumble left 05:51 labster joined 05:52 grumble joined 05:54 Cabanossi left 05:55 Cabanoss- joined 05:56 Cabanoss- is now known as Cabanossi 05:57 kaare_ joined 06:05 kaare_ left 06:11 shayan_ left, wamba joined 06:12 kaare_ joined 06:26 andrzeju joined
andrzeju hello perl! 06:26
06:46 wamba left 06:48 abraxxa joined 06:51 BenGoldberg left 06:52 RabidGravy joined 07:00 domidumont joined
samcv hi! 07:01
andrzeju samcv, :)
don't worry I am good
07:01 dugword left 07:03 FROGGS joined 07:04 domidumont left 07:05 domidumont joined 07:08 jonas2 joined
RabidGravy erp! 07:13
07:16 CIAvash joined
andrzeju guy what do you think about future of Perl6 on microcontrollers? 07:20
timotimo perl6 on microcontrollers is very unlikely. we require an operating system, and a memory management unit. microcontrollers usually don't have that 07:21
well, technically speaking SOCs are "microcontrollers", too
andrzeju: do you mean things like an STM32, arduino, ... or do you mean things like smartphones, intel galileo, ...? 07:22
andrzeju avr , arm 07:23
improve coding speed with perl
on C
timotimo you do realize that there are really tiny as well as really beefy ARMs, right?
andrzeju sure 07:24
avr is very tiny
timotimo but you mean the lower end where you wouldn't have a linux run on it
yeah, they are
andrzeju but arm should be okay
yep
my idea is static C code
with dynamic Perl6 parts 07:25
timotimo but yeah, at least rakudo/moar is not going to run without a linux or something similar below it
andrzeju timotimo, personally I don't believe in rakudo
and moar
timotimo i seem to remember you said something like that at some point 07:26
andrzeju yeah
these vm's it is temporary solution
while language specs are not ready 07:27
but in the future the code should be transported to native one
timotimo feel free to work on that. i don't think it's a good idea, though
andrzeju I am not vm expert :) 07:28
07:28 bjz joined 07:32 petrutrimbitas joined 07:34 bjz left 07:35 petrutrimbitas left
samcv define native 07:36
timotimo "superfast" 07:37
andrzeju exactly
07:38 bjz joined
timotimo well, that's a very useless answer 07:38
samcv yes
jast would JIT compilation qualify as "superfast"
samcv why can't vm's be as fast?
timotimo vms can be faster than compiled code
samcv it's just seperated componentwise
07:39 holli left
dalek osystem: f13a92c | (Alexey Melezhik)++ | META.list:
correct link to Meta6.json
07:39
osystem: 4bbbc1c | (Alexey Melezhik)++ | META.list:
Merge pull request #279 from melezhik/master

correct link to Meta6.json
andrzeju look at Swift implementation 07:40
it also JIT
working on all apple device
jast I'm not familiar with moar's internals specifically, but my impression is that the harder thing to make efficient with implementations of highly dynamic languages isn't CPU time but memory use
andrzeju superfast
we need copy Swift design to Perl6 07:41
jast though of course the two are very interrelated if you're carrying around lots of meta info
well, you could just use Swift then :}
andrzeju and start conquer the world
it is no matter what I want to use
stmuk I thought swift was AOT and based on LLVM rather than using a VM 07:42
timotimo the smallest google search seems to show there's some kind of jitting involved somehow 07:43
jast Swift programs need an objc-style runtime at least
stmuk oh it supports both AOT and JIT 07:44
arnsholt jast: There are probably several tricky things. But an important one is getting good enough optimizations (JIT, AOT, or both) so that you can sidestep the highly dynamic bits whenever possible 07:45
jast I don't really know Swift but at first glance it's not nearly as flexible as Perl5/6 and so copying Swift's design probably would be similar to copying a jet plane's design to a tank 07:46
or vice versa
arnsholt: yeah, that was my thinking... and it can be really tricky to figure out good places to do that for at least some practically relevant code :) 07:47
I'll refrain from speculating too much because I'm sure quite a few people here have a lot more practical experience with this kind of thing than I do 07:49
07:53 ChoHag left
timotimo bbl 07:54
07:55 darutoko joined, Wanderer68 joined, ChoHag joined 08:02 dugword joined
andrzeju do you think Perl can be rewritten to llvm? 08:03
I mean Perl6 llvm implementation
08:04 petrutrimbitas joined 08:06 pierre_ joined 08:07 dugword left, pierre_ left, pierre_ joined
jast I looked up past conversations. consensus seems to be that LLVM's IR and MoarVM don't align very well, and it wouldn't be a good fit. I guess nobody has thought that spending heaps of time on this would be worth the effort... and it probably wouldn't be as much of a magical speed-up as people have come to associate with LLVM 08:11
08:13 rindolf joined
stmuk I think new nqp backends would be welcomed (like the JS one) 08:13
08:14 petrutrimbitas left 08:16 zakharyas joined 08:17 petrutrimbitas joined 08:28 xtreak left
masak m: "abcdefg" ~~ /cd./; say $/.from 08:28
camelia rakudo-moar 76283f: OUTPUT«2␤»
masak what's an idiomatic Perl 5 analogue of the above? 08:29
length($`) ?
perldoc keeps neurotically bringing up global de-optimizations if I use $` et al.
jast $-[0] perhaps? 08:31
08:31 xtreak joined
samcv need a perl6 backend for my brain 08:33
jast with @- and @+ it's fairly easy to work around using $` and such 08:34
masak is it cheaper, too? 08:35
jast I believe so, it's missing the de-optimization warnings
DrForr $` and friends aren't as much of a problem with optimization these days, I believe.
jast but in this case $-[0] is actually more straightforward 08:36
DrForr There was a time when simply use'ing the English module was a performance penalty because it touched $`. But as jast says, $-[0] and $+[0] are better solutions.
lizmat clickbaits p6weekly.wordpress.com/2017/01/02/...rime-time/ 08:39
masak lizmat++ 08:40
El_Che morning
DrForr waves at El_Che. 08:43
lizmat wonders who would like to answer www.reddit.com/r/perl6/comments/5l...ernatives/ 08:45
timotimo i'll put down a few words, but by no means a complete answer 08:46
done 08:50
lizmat timotimo+ 08:51
08:53 pyrimidi_ joined, pyrimidine left 08:56 g4 joined, g4 left, g4 joined
petrutrimbitas Hi, I’m trying to match the content of a <td>. I’m getting no matches and also the regex looks ugly. Is there a way to fix it? ideone.com/diw83Y 08:58
timotimo for one you can write '</td>' instead of \<\/td\> 08:59
and '<td' instead of \<td 09:00
i'm not entirely sure that the space directly after the :s will also turn on sigspace for you
jast when I try it, both an unquoted < and an unquoted / are invalid 09:01
DrForr I'd definitely use '..' instead of backslashing. It might not hurt to break out '</td>' as a separate regex term as well. 09:02
timotimo well, yeah, that's why you put the ' around it
jast oh, I kind of didn't read that as literal quoting. whoops.
arnsholt Yeah, I think the space after :s would be leading space in sigspace, which is disregarded
09:02 girafe2 left
timotimo it's difficult to send that kind of thing over irc :P 09:02
arnsholt Try replacing the :s with <.ws> 09:03
petrutrimbitas I tried it like this if ($response.Str ~~ m/ '<td class="task">'(.*)'</td>' /) but now it behaves like an infinite loop
DrForr I must say I'm impressed that ideone.com picks up on Perl 6 and does syntax highlighting, although it's not *quite* there yet.
09:03 dugword joined
petrutrimbitas it worked, I think 09:04
dalek href="https://perl6.org:">perl6.org: a7dec0f | moritz++ | source/resources/index.html:
Clarify book section
09:08 dugword left 09:12 hartenfels joined, Tonik joined
lizmat wonders what would need to be done to get Rakudo Perl 6 listed on github.com/showcases/programming-languages 09:14
gfldex lizmat: there is a Contact GitHub link at the bottom of the page 09:17
lizmat that feels more like a newbie support page than anything pertaining specifically to the programming languages list 09:18
DrForr There's also a "Great for new contributors" link on github.com/showcases # although that might not be the smartest move :) 09:19
shadowpaste "kaare_" at 217.168.150.38 pasted "Native call" (35 lines) at fpaste.scsys.co.uk/540471
gfldex lizmat: sometimes ppl forward e-mails to where they need to go 09:20
09:21 brrt joined
samcv lizmat, isn't that list automated? 09:23
jast according to their blog it's curated from trending repos
samcv oh
are we trending though
jast from what I can see, /contact is the only official place to talk to them 09:24
samcv www.google.com/trends/explore?q=perl%206
seems to be holding pretty constant
lizmat sent them a message 09:25
timotimo apparently only muricans are interested in perl6 ... ?!
jast Google Trends related topics: "JSON - Programming Language"
timotimo also, clearly iPhone 6, JSON, and Nexus 6 are related to perl6
samcv though www.google.com/trends/explore?q=pe...rogramming
heh 09:26
jast they forgot IPv6
timotimo www.google.com/trends/explore?q=pe...%2F0j3djl7
julia pwns us still 09:27
samcv where do you get related queries that aren't related to perl 6
see this www.google.com/trends/explore?q=%2...rogramming
timotimo www.google.com/trends/explore?q=pe...m%2F0dbjtf - here's something that's closer to our niche
you're comparing "julia programming", i'm comparing vs "julia the programming language"
samcv help
DrForr opensource.com/article/16/12/yearb...rends-2016 is available as well. 09:28
timotimo coq and agda also both surpass us by far 09:29
samcv somebody should write a really fast C hex to integer converter for moar 09:30
so we can be faster until we actually don't have to always parse the hex digits in the unicode database for normalization ...
timotimo utf8_c8 has a hex2int function 09:31
brrt DrForr: that article is horrible, unfortunately :-( 09:32
samcv nice timotimo
brrt how is go something that system operations people should learn
samcv: if you want fast hex-to-integer conversion, you want to use SIMD 09:33
also, it's not really all that much work, is it
dalek c: e708888 | gfldex++ | doc/Language/typesystem.pod6:
fix typo
09:35
synopsebot6 Link: doc.perl6.org/language/typesystem
samcv converting from hex?
well it is how it does in now using strtol
idk it takes up like 14% of the cpu reading a string from a file
that seems slow to me 09:36
brrt well, 'conversion' means substracting the integer of '0' from '0'-'9' and 'a' + 10 from 'a'-'f'
samcv yeah something like that
brrt and then packing them more tightly together (nibbles to bytes)
it's a very simple operation reall
timotimo that'? what hex2int does 09:37
jast is that actually faster than using a lookup table? I know nothing anymore with modern computers
timotimo but it only works on a single codepoint
so it doesn't do the packing
brrt jast: it ought to be faster if you implement this as SIMD
09:37 bjz left
samcv idk whatever we do, would be nice to just be able to inline it 09:37
jast right
samcv until ucd2c.pl gets totally redone, that's what we're stuck with
brrt the thing with recent CPUs is that computation is basically free compared to memory access 09:38
caching helps with that, of course
samcv 16% isn't free though :P
brrt true enough 09:39
09:39 thayne joined
timotimo yes. 09:39
09:39 bjz joined 09:41 gregf_ joined 09:49 Gothmog_ left 09:50 Gothmog_ joined 09:52 ufobat joined 09:53 Actualeyes left 10:17 dalek left 10:18 dalek joined, ChanServ sets mode: +v dalek 10:21 xtreak left 10:25 xtreak joined 10:29 grondilu left
El_Che I am happy to seeing a nice mix of perl5 and 6 talks at fosdem. Schedule should be up very soonish 10:36
DrForr Reminds me, I need to book flight &c. 10:38
10:38 bjz left
El_Che DrForr: yeah, looking forward to your talk :) 10:38
DrForr It's basically going to be "Here's my git history, here's why I did X and Y." 10:39
El_Che I'll throw rotten fruit if I don't like it :)
DrForr As long as by "rotten" you mean properly brewed and I can catch the bottle :) 10:40
Especially it it's framboise :)
El_Che hehe
10:42 bjz joined 10:46 Tonik left 10:47 bjz_ joined 10:48 bjz left 10:51 pierre_ left, rafschi joined, pierre_ joined 10:53 cibs left 10:54 pyrimidi_ left, pyrimidine joined, cibs joined 11:05 dugword joined 11:09 buggable left, buggable joined, ChanServ sets mode: +v buggable, dugword left 11:12 xtreak left 11:14 TEttinger left 11:15 Actualeyes joined, hartenfels left, user9 joined 11:20 cooper_ joined 11:23 cooper left 11:24 Actualeyes left
tadzik is there a slurp() that gives me bytes back, instead of complaining about invalid utf8? 11:26
rafschi .read 11:28
psch m: say &slurp.candidates[0]
camelia rakudo-moar ee3872: OUTPUT«sub slurp (IO::ArgFiles:D $io = { ... }, :$bin, :$enc = "utf8", |c is raw) { #`(Sub|75010192) ... }␤»
psch m: slurp(:bin)[0].WHAT.say 11:29
camelia rakudo-moar ee3872: OUTPUT«(Int)␤»
tadzik .read requires arguments, C-style 11:36
ach, slurp:bin sounds good, thanks :)
11:41 labster left 11:43 petrutrimbitas left 11:44 iH2O joined 11:48 iH2O left 11:55 petrutrimbitas joined 11:57 Actualeyes joined 12:03 brrt left, brrt joined 12:07 pierre_ left 12:17 ilmari joined 12:19 tbrowder left, leego left, notviki left, unicodable6 left, notviki joined, leego joined 12:22 tbrowder joined 12:25 SmokeMachine joined 12:27 petrutrimbitas left 12:29 pierre_ joined 12:37 pmurias joined 12:38 petrutrimbitas joined
pmurias brrt: re why should system operations people should learn go, wasn't the idea that it will enable them to patch docker? 12:38
12:41 hartenfels joined
jast wait, docker is written in go? 12:42
it's funny how things I don't care for tend to cluster together 12:43
12:44 petrutrimbitas left
masak I would kind of expect that to happen, given how people's interests in general cluster together 12:45
jast sure. it definitely comes in handy often enough 12:46
makes it so much easier to apply my prejudice
12:47 brrt left
rafschi jast: yesterday someone was talking about an 'init system written in go'. Didn't deal withg SIGCHILD. 12:49
jast I'm sure one single signal can't be that important
12:50 cibs left
arnsholt What could possibly go wrong?! =D 12:50
jast and I mean it's not like it would get raised often
you can do some sort of polling I guess
should be close enough
12:51 cibs joined 12:53 rafasch joined 12:54 rafschi left 12:57 pyrimidine left, pyrimidine joined, rafasch is now known as raschip 13:03 teksteiner joined 13:06 dugword joined 13:11 brrt joined, dugword left 13:13 brrt left, brrt joined 13:21 bjz_ left, bjz joined 13:30 aries_liuxueyang left 13:31 AlexDaniel joined 13:32 telex left 13:33 telex joined 13:35 aborazmeh joined, aborazmeh left, aborazmeh joined, rumble joined 13:36 grumble is now known as Guest79268, rumble is now known as grumble 13:40 pierre_ left 13:43 aries_liuxueyang joined
notviki Is mt1957 here? 13:44
13:47 esh left, literal left, skaji_ joined, literal joined, felher joined, dalek left, cgfbee left, Guest79268 left, baest_ joined 13:48 xxpor joined, Wanderer68 left, CIAvash left, simcop2387 joined 13:49 esh joined 13:52 lizmat left 13:53 cgfbee joined
AlexDaniel b: use Test; subtest ‘description’, { say ‘hello’ } 13:55
bisectable6 AlexDaniel, Bisecting by exit code (old=2015.12 new=fb4f161). Old exit code: 1
AlexDaniel, bisect log: gist.github.com/6fb4814451435f2f28...8d8d18ba4f
AlexDaniel, (2016-05-16) github.com/rakudo/rakudo/commit/e2...dbdaeb9c75
13:58 aborazmeh left
AlexDaniel cool 13:59
14:02 bjz left
teksteiner Quick question on grep and its syntax, so taking Euler Problem 10 (summation of primes smaller than 2m), I know I can simply use `my @primes = (2...*).grep(*.is-prime)` to create a lazy list of primes, Im not sure if and how I can include the upper bound in there, `my @primes = (2...*).grep(*.is-prime, * < 2000000)` does not work, also will I have to explicitly make the resulting list strict if I want to sum it 14:04
afterwards?
14:05 holli joined
raschip m: say (2..20).grep(.is-prime) 14:05
camelia rakudo-moar fb4f16: OUTPUT«No such method 'is-prime' for invocant of type 'Any'␤ in block <unit> at <tmp> line 1␤␤»
notviki m: say [+] (2...* < 2000_000).grep: *.is-prime
camelia rakudo-moar fb4f16: OUTPUT«2␤»
psch m: (2..*).grep(*.is-prime).grep(* < 2000000).is-lazy.say
camelia rakudo-moar fb4f16: OUTPUT«True␤»
teksteiner Aaah I see 14:06
jnthn Using a .. Range is probably a lot faster than using ...
notviki
.oO( 2? )
psch m: (lazy 2..2000000).grep(*.is-prime).is-lazy.say
camelia rakudo-moar fb4f16: OUTPUT«True␤»
notviki m: say [+] (2..2000_000).grep: *.is-prime
AlexDaniel m: (2..2000_000).grep(*.is-prime).grep(*.is-prime).is-lazy.say
teksteiner Totally overlooked that the grep is used on a list already
AlexDaniel :|
camelia rakudo-moar fb4f16: OUTPUT«(timeout)»
rakudo-moar fb4f16: OUTPUT«False␤»
AlexDaniel m: (2..2000_000).grep(*.is-prime).grep(*.is-prime).is-lazy.say
camelia rakudo-moar fb4f16: OUTPUT«False␤»
AlexDaniel wait, False? 14:07
psch mhm, can't lazy infix:<..> with known bounds it seems
or the grep reifies, i'm not sure
AlexDaniel m: say (2..2000_000).grep(*.is-prime).grep(*.is-prime)[^20]
camelia rakudo-moar fb4f16: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71)␤»
AlexDaniel no it's totaly fine
m: say (2..2000_000).grep(*.is-prime).grep(*.is-prime)
camelia rakudo-moar fb4f16: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 …»
AlexDaniel m: say WHAT (2..2000_000).grep(*.is-prime).grep(*.is-prime)
camelia rakudo-moar fb4f16: OUTPUT«(Seq)␤»
14:07 blah joined
AlexDaniel oh, that's a Seq, ok 14:07
14:07 ChoHag left
psch ...what's with the two .is-prime greps ooc? 14:08
AlexDaniel ah sorry
xD
m: say WHAT (2..2000_000).grep(*.is-prime)
camelia rakudo-moar fb4f16: OUTPUT«(Seq)␤»
AlexDaniel doesn't change anything though :)
psch right
teksteiner :)
notviki m: say [+] (2... * > 2000_000).grep: *.is-prime
k
camelia rakudo-moar fb4f16: OUTPUT«(timeout)» 14:09
raschip m: say [+] (2... * > 1_000).grep: *.is-prime
camelia rakudo-moar fb4f16: OUTPUT«76127␤»
AlexDaniel but… why?
notviki Why what?
AlexDaniel why * > 42 when you can just do … 42 ? 14:10
or …^ 42 if that's what you mean
14:10 lizmat joined
raschip m: say [+] (2..1_000).grep: *.is-prime 14:10
camelia rakudo-moar fb4f16: OUTPUT«76127␤»
notviki Because reasons 14:11
raschip m: say (2..1_000).grep:( *.is-prime).is-lazy 14:12
camelia rakudo-moar fb4f16: OUTPUT«===SORRY!===␤Cannot find method 'has_compile_time_value' on object of type NQPMu␤»
raschip m: say (2..1_000).grep( *.is-prime).is-lazy
14:12 blah left
camelia rakudo-moar fb4f16: OUTPUT«False␤» 14:12
raschip m: say (2... * > 1_000).grep( *.is-prime).is-lazy
camelia rakudo-moar fb4f16: OUTPUT«False␤»
raschip teksteiner: do you really need it to be a lazy list? 14:14
teksteiner No, I was just curious about this 14:15
raschip m: say (2... * > 1_000).grep( *.is-prime)
camelia rakudo-moar fb4f16: OUTPUT«(2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 151 157 163 167 173 179 181 191 193 197 199 211 223 227 229 233 239 241 251 257 263 269 271 277 281 283 293 307 311 313 317 331 337 347 349 353 …»
notviki It is lazy, in a sense that only the values you need are produced 14:17
m: say (2... * > 1_0000000000000000).grep( *.is-prime)[^5]
camelia rakudo-moar fb4f16: OUTPUT«(2 3 5 7 11)␤»
raschip Noice 14:18
14:20 Xliff left
teksteiner but it seems like this way of solving it would take a while :) 14:20
14:20 Xliff joined
notviki That's prolly why it's a Euler problem 14:21
You need a fancy pants algo instead of brute force
14:21 aindilis left
teksteiner Yeah I know 14:21
notviki m: put [+] (2..2_000_000).race(:batch).grep(*.is-prime) 14:22
AlexDaniel do we explain the difference between seqs and lazy lists somewhere in the docs?
camelia rakudo-moar fb4f16: OUTPUT«(signal XCPU)»
notviki heh
AlexDaniel what's XCPU :o
e: put [+] (2..2_000_000).race(:batch).grep(*.is-prime)
evalable6 AlexDaniel, rakudo-moar fb4f161: OUTPUT«(signal SIGHUP) «timed out after 10 seconds, output»: »
notviki m: put [+] (2..2_000_000).race(:500000batch).grep(*.is-prime) 14:23
camelia rakudo-moar fb4f16: OUTPUT«0␤»
notviki Close enough!
AlexDaniel ok-ok, please no .race
notviki Why?
AlexDaniel I don't think it has ever been fixed 14:24
notviki XCPU is it hit the limit of CPU time it can use or something
If no one uses it, no one will fix it./
m: put [+] (2..2_000_000).race(:500000batch).grep(*.is-prime)
camelia rakudo-moar fb4f16: OUTPUT«0␤»
notviki tries a 24-core box
AlexDaniel notviki: if no one will fix it, no one will use it 14:25
notviki But if no one will use it, no reason to fix it :P 14:26
m: say 2_000_000 / 24
camelia rakudo-moar fb4f16: OUTPUT«83333.333333␤»
14:28 Khisanth left
notviki hm, interesting... 14:28
m: say gather { for (2..2_000_000).race(:83333batch, :24degree) { take $_ if .is-prime } }
camelia rakudo-moar fb4f16: OUTPUT«take without gather␤ in block at <tmp> line 1␤␤take without gather␤ in block at <tmp> line 1␤␤take without gather␤ in block at <tmp> line 1␤␤take without gather␤ in block at <tmp> line 1␤␤take without gather␤ in block at…»
notviki "take withotu gather"? 14:29
jnthn That's not going to work.
The code runs on a totally different thread
notviki awwww
jnthn Where the gather is not in dynamic scope
Vasyl Is there a way to easily set up an HTTP server using Crust? like "crustup -s somethingThatCanHTTPS --enable-ssl --ssl-key-file=... --ssl-cert-file=... /my/app.p6sgi"
notviki m: say do for (2..2_000_000).race(:83333batch, :24degree) { next unless .is-prime; $_ } 14:30
camelia rakudo-moar fb4f16: OUTPUT«(signal XCPU)»
14:31 awwaiid left, aries_liuxueyang left
notviki cpan@perlbuild2~$ time perl6 -e 'm: say [+] do for (2..2_000_000).race(:83333batch, :24degree) { next unless .is-prime; $_ }' 14:33
142913828922
real 1m1.550s
user 18m5.796s
pretty good!
AlexDaniel: it works after all :)
14:36 awwaiid joined 14:40 Actualeyes left 14:44 aries_liuxueyang joined 14:45 hartenfels left 14:54 cdg joined
masak sometimes I'm surprised by how much quality open content there is online 15:00
I'm coding up a simple recipe app (for a class). searched "open content recipes". found wikibooks Cookbook, with tons of recipes 15:01
all under cc:by-sa
AlexDaniel sure 15:07
15:08 dugword joined 15:11 acrussell joined
masak I've had the same thought at some point with all the libre math/physics/CS learning material online. there's just so much of it. 15:12
maybe it's time to collect it all into a list somewhere.
15:13 dugword left
jast you mean like DMOZ? ;) 15:13
masak not exactly like that, no 15:14
jast though I think they don't care about the 'open' bit that much
masak just a personal list of things I've found that are free and that I could read at some point
those Feynman physics books, for example
jast oh, right. I started making a list like that a few years ago and then stopped updating it because it only ever grows :) 15:15
15:19 lizmat_ joined 15:21 lizmat left
masak I think I've come to terms with the fact that list of good/worthwhile things only grow 15:21
still like that better than no lists
today's autopun spotting: twitter.com/iamdevloper/status/808...1669498881
oh! oh! and today's unexpect JS trivia quiz: 15:22
:P
what's the one operational difference between `undefined` and `null`? 15:23
(I only know of one -- there may be more)
psch i think one of them does methods?
masak decommute &
psch hm, i googled it, and i'm wrong :)
15:26 lizmat_ left, yoleaux joined, ChanServ sets mode: +v yoleaux, khw joined 15:27 wtw joined, pierre_ joined
brrt well, what is the difference? 15:30
15:30 AlexDaniel left
brrt still has a plan to convert those darn books to an ePub at some point 15:30
knowing well I could probably buy them or bittorrent them, but not bothering to figure out how 15:31
15:31 lizmat joined
psch brrt: undefined is a type object, null is an empty reference 15:32
that's what the googling says at least vOv
"empty reference" as our Nil that is, not like *(0x0) 15:33
ufobat i'd like to zip 2 arrays together, but if one is longer then the other i'd like to have something like Any,ElementOfLongerArray. is that possible?
15:33 dalek joined, ChanServ sets mode: +v dalek
psch m: my @a = 1,2,3; my @b = <a b c d e>; say @a[^(@a max @b)] Z @b[^(@a max @b)] 15:34
camelia rakudo-moar fb4f16: OUTPUT«((1 a) (2 b) (3 c) ((Any) d) ((Any) e))␤»
psch m: my @a = 1,2,3; my @b = <a b c d e>; say @a[^$_] Z @b[^$_] with @a max @b # cleaner i guess 15:35
camelia rakudo-moar fb4f16: OUTPUT«((1 a) (2 b) (3 c) ((Any) d) ((Any) e))␤»
geekosaur "you have a problem and you decide to use threads. nonw owy ou yoauv e hatwvo e ptrowbo plerombsle imns teinrtleearlveeda.ed."
ufobat geekosaur, :D
jast nice one
ufobat psch, thanks
15:35 pierre_ left, g4 left 15:36 lizmat left
ufobat what is @a max @b 15:39
psch m: say 2 max 3
camelia rakudo-moar fb4f16: OUTPUT«3␤»
ufobat its not the array with more elements :(
psch uh
15:39 bwisti joined
psch that'd be weird? 15:39
oh 15:40
ufobat m: my @a = 1..10; my @b = 99..100; say (@a max @b)
camelia rakudo-moar fb4f16: OUTPUT«[99 100]␤»
El_Che Fosdem will have a nice mix of Perl 5 and 6 talks. /me happy
ufobat is it summing all values, or what?
psch ohh
m: (1, 3, 5) max (5, 3, 1)
camelia rakudo-moar fb4f16: OUTPUT«WARNINGS for <tmp>:␤Useless use of "max" in expression "(1, 3, 5) max (5, 3, 1)" in sink context (line 1)␤»
psch m: say (1, 3, 5) max (5, 3, 1)
camelia rakudo-moar fb4f16: OUTPUT«(5 3 1)␤»
psch hm, not ohh actually
ufobat just considders the first value? 15:41
psch ufobat: you apparently need .elems (or prefix:<+>)
ufobat aye
notviki s: &infix:<max>, \([1,2], [1, 2, 3])
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/fb4f...s.pm#L1961
psch m: say (1,2) cmp (2,1)
camelia rakudo-moar fb4f16: OUTPUT«Less␤»
psch m: say (2,2) cmp (2,1)
camelia rakudo-moar fb4f16: OUTPUT«More␤»
notviki s: &infix:<cmp>, \([1,2], [1, 2, 3])
SourceBaby notviki, Sauce is at github.com/rakudo/rakudo/blob/fb4f...t.pm#L1460
psch oh geez, that probably has a good reason for why it is like that :) 15:42
notviki :S I don't see max documented :/ 15:43
psch docs.perl6.org/routine/max
notviki Doesn't show up in search
psch did show up here?
granted, i had to scroll 15:44
notviki Ah, I see. The border on title was visible just enough to look like end border of the popup... 15:45
psch &
15:47 awwaiid left
raschip m: say (1,1,1) cmp (1,1) 15:49
camelia rakudo-moar fb4f16: OUTPUT«More␤»
raschip m: say +((1,1,1) cmp (1,1)) 15:50
camelia rakudo-moar fb4f16: OUTPUT«1␤»
SmokeMachine m: use Test; pass Q[\] 15:51
camelia rakudo-moar fb4f16: OUTPUT«ok 1 - \␤»
raschip m: my @a=(1,1,1);my @b=(1,1); say @a max @b 15:52
camelia rakudo-moar fb4f16: OUTPUT«[1 1 1]␤»
raschip m: my @a=(1,1,1);my @b=(1,1); say +(@a max @b)
camelia rakudo-moar fb4f16: OUTPUT«3␤»
notviki You have the plus at the wrong place 15:53
m: my @a=(1,1,1);my @b=(9,9); say +@a max +@b
camelia rakudo-moar fb4f16: OUTPUT«3␤»
notviki m: my @a=(1,1,1);my @b=(9,9); say +(@a max @b)
camelia rakudo-moar fb4f16: OUTPUT«2␤»
raschip m: my @a=(1,1,1);my @b=(9,9); say @a max @b 15:54
camelia rakudo-moar fb4f16: OUTPUT«[9 9]␤»
15:55 brrt left
raschip Do the docs explain what cmp does with lists? Do I understand it correctly that it stringify them? 15:56
notviki raschip: it uses cmp to compare each element with the corresponding elemens of the other list. If they're all the same, then it compares the two lists by length 15:57
s/length/number of elements/; 15:58
using <=>
raschip In a few days I will send my first pull request, then. 15:59
notviki cool
16:05 dugword joined 16:06 dugword left
ufobat and as soon as one element is not equal then the corresponding other element it makes this list to be the "max"ed one 16:06
s/not equal/larger/
raschip Does anyone have a link to the Order:: doc?
16:07 xinming left
raschip Found it. 16:08
notviki docs.perl6.org/type/Order
16:09 domidumont left
raschip m: my Order $n =3; say $n 16:11
camelia rakudo-moar fb4f16: OUTPUT«Type check failed in assignment to $n; expected Order but got Int (3)␤ in block <unit> at <tmp> line 1␤␤»
raschip m: my Order $n =Less; say $n
camelia rakudo-moar fb4f16: OUTPUT«Less␤»
16:13 xinming joined 16:16 hartenfels joined
colomon nine: any hints on how to make python method calls with named arguments with the current Inline::Python? Don’t care if it’s ugly, but it would be very helpful to project if I could make it work somethow. 16:21
nine: I mean, I guess I can do it with run? 16:22
16:23 cschwenz joined, thayne left 16:25 shayan_ joined
notviki m: '$x'.EVAL.say; my $x = 42; 16:26
camelia rakudo-moar fb4f16: OUTPUT«(Any)␤»
notviki hehe :)
magic
colomon nine: have workaround going using run :eval 16:28
notviki m: '"x is $x"'.EVAL.say; constant $x = 42; 16:29
camelia rakudo-moar fb4f16: OUTPUT«x is 42␤»
notviki haha :) even moar magicks
raschip Sorcery!
notviki m: '"x is $x"'.EVAL.say; my $x = BEGIN 42;
camelia rakudo-moar fb4f16: OUTPUT«Use of uninitialized value $x of type Any in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤ in block <unit> at EVAL_0 line 1␤x is ␤»
notviki wonder why that one doesn't set the value tho
psch m: '"x is $x"'.EVAL.say; my $x = 10; sub term:<$x> { $x }; # *real* magic
camelia rakudo-moar fb4f16: OUTPUT«MoarVM panic: Memory allocation failed; could not allocate 325872 bytes␤»
psch :P 16:30
m: '"x is $x"'.EVAL.say; my @x = 10; sub term:<$x> { @x[0] };
camelia rakudo-moar fb4f16: OUTPUT«Use of uninitialized value of type Any in string context.␤Methods .^name, .perl, .gist, or .say can be used to stringify it to something meaningful.␤ in block <unit> at EVAL_0 line 1␤x is ␤»
notviki m: '"x is $x.perl()"'.EVAL.say; BEGIN my $x = 42;
camelia rakudo-moar fb4f16: OUTPUT«x is 42␤»
notviki ahhhh
psch i suppose "insert a HLL handler for mem alloc failures in moar" might be somewhat LHF-ish 16:31
notviki That one's not very magic because you can use subs even if they're postdeclared by you can't post-declare variables :)
psch ...well, FSDO "LHF"
notviki: eh, the fact that @x[0] is still Any is somewhat magic i think :)
(the mem alloc is purely $x-recursion, so yeah) 16:32
notviki m: '"x is $x.perl"'.EVAL.say; BEGIN my @x = 10; sub term:<$x> { @x[0] };
camelia rakudo-moar fb4f16: OUTPUT«x is 10.perl␤»
notviki m: '"x is $x.perl()"'.EVAL.say; my @x = 10; sub term:<$x> { @x.head };
camelia rakudo-moar fb4f16: OUTPUT«x is Nil␤»
notviki ah, right 16:33
the EVAL eval runs before @x is set
psch right 16:34
it is still the same magic, just hidden behind a term
raschip How does the value travel back in time?
psch raschip: in which example?
notviki raschip: there's compile time and run time
raschip "method CALL-ME". FFS 16:35
So, the asignement happens at compile time?
psch explicitly not 16:36
m: my $x = "foo"; say BEGIN $x
camelia rakudo-moar fb4f16: OUTPUT«(Any)␤»
psch as for "how does it travel back in time" the answer is either (1) it doesn't or (2) it only looks like it does
notviki Well, in my example, the magick is that I can use a variable before it's declared.. But in reality, it gets declared at compile time but my EVAL uses it during runtime, so even tho it's "before" declaration in the source, it's still after it's declared temporally
raschip Shouldn't the compiler emit a warning if that happens? 16:37
notviki And the rest of the magics above is just moving the assignment of value into compile time with either a constant or a BEGIN block so that it also happens prior to my use of it
Why a warning? 16:38
It usually just dies.
m: say $x; my $x = 42
camelia rakudo-moar fb4f16: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$x' is not declared␤at <tmp>:1␤------> 3say 7⏏5$x; my $x = 42␤»
notviki And you have to bend over backwards to bypass that :)
psch m: say ::('$x'); my $x = 42
camelia rakudo-moar fb4f16: OUTPUT«(Any)␤»
raschip m: say $x; my constant $x = 42
camelia rakudo-moar fb4f16: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$x' is not declared␤at <tmp>:1␤------> 3say 7⏏5$x; my constant $x = 42␤»
psch raschip: constant is a declarator
raschip m: say $x; constant $x = 42
camelia rakudo-moar fb4f16: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Variable '$x' is not declared␤at <tmp>:1␤------> 3say 7⏏5$x; constant $x = 42␤»
raschip typo 16:39
notviki m: say constant; constant constant = 42
camelia rakudo-moar fb4f16: OUTPUT«5===SORRY!5===␤Whitespace required after keyword 'constant'␤at <tmp>:1␤------> 3say constant7⏏5; constant constant = 42␤Missing initializer on constant declaration␤at <tmp>:1␤------> 3say constant7⏏5; constant constant = 42␤␤»
notviki m: 'say constant'.EVAL; constant constant = 42
camelia rakudo-moar fb4f16: OUTPUT«42␤» 16:40
notviki ^_^
raschip barewords
confuse everyone but the compiler 16:41
notviki m: sub infix:<say> { "$^a $^b say".say }; "you" say "don't" 16:42
camelia rakudo-moar fb4f16: OUTPUT«you don't say␤»
notviki m: sub infix:<+> { $^a - $^b }; say 2+2
camelia rakudo-moar fb4f16: OUTPUT«0␤»
notviki m: sub infix:<<⁤> { $^a - $^b }; say 2⁤2 16:43
camelia rakudo-moar fb4f16: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Placeholder variable $^a may not be used here because the surrounding block takes no signature␤at <tmp>:1␤------> 3sub infix:<<⁤> { $^a - $^b }7⏏5; say 2⁤2␤ expecting any of:␤ hor…»
notviki m: sub infix:<⁣> { $^a + $^b }; say 2⁣2; 16:44
camelia rakudo-moar fb4f16: OUTPUT«4␤»
raschip m: say 22
camelia rakudo-moar fb4f16: OUTPUT«22␤»
jnthn .u <⁣>
yoleaux U+003C LESS-THAN SIGN [Sm] (<)
U+003E GREATER-THAN SIGN [Sm] (>)
U+2063 INVISIBLE SEPARATOR [Cf] (<control>)
jnthn haha :)
notviki :)
jnthn I was like "huh, I thought we disallowed empty operators" :P 16:45
psch has seen this before :P
notviki wrote about this before: perl6.party/post/Anguish--Invisible...Data-Theft 16:46
raschip You guys introduced the same problem Python has, semantic whitespace.
psch waaay smallerin scope, and not much worse than e.g. C or Java have it though
raschip m: say 2⁣2 16:47
camelia rakudo-moar fb4f16: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Bogus postfix␤at <tmp>:1␤------> 3say 27⏏5⁣2␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modifier␤ state…»
psch ...people purposefully using wicked unicode aside :)
mspo I get dots in the browser for some of that stuff
notviki Yeah me too.
16:47 acrussell left
psch m: say "\x2063".uniprop("Space") 16:47
camelia rakudo-moar fb4f16: OUTPUT«AL␤»
mspo which looks nice
notviki Back when I wrote it I was using an older install and they were all blank
psch ...i don't actually understand that property 16:48
raschip There was someone talking about defining every symbol from Prolog in Perl6.
mspo and APL?
16:49 pyrimidine left
raschip APL looks more fun 16:50
16:55 darutoko left
stmuk hmm the only feedback I got from the R* blog post was a suggestion to abandon it :) 16:57
although they may be because blogs.perl.org is having its usual auth issues 16:58
moritz stmuk: my feedback: the problem with R* is that it lacks a clear vision 17:04
back when it started, we had hardly any modules, so we just took the ones that seemed useful
that doesn't scale 17:05
how do you even discuss which modules to include when the distribution lacks a vision or criteria for inclusion?
it wouldn't hurt to include zef; it wouldn't hurt to add other modules you mentioned 17:06
but what's the future of R*? who is the target audience?
we could morph it into a "dev tools" distribution: debugger, grammar tracer, module installer, readline, docs 17:07
raschip I think there should be a distribution that target newbs.
stmuk moritz: yes that's probably true about the vision (although I see it as a sort of std library - not necessarily a definative one)
moritz or into a minimal one: just oen or two module installers and their dependencies
raschip targets* 17:08
stmuk I have wondered about just a module installer and p6doc in a distro
moritz raschip: what does a newb needs?
raschip Whatever is used in intros to the language. 17:09
stmuk its useful I think even if there is no clear direction (isn't muddling along the perl way anyway?)
or organic growth
raschip There has to be a std lib, P5 suffered because it didn't have one.
17:09 girafe joined
stmuk raschip: the perl 6 vision is multiple R* type distros not just one 17:10
raschip I agree with 1 or more. It's a problem if the vision is 0 or more.
stmuk an obvious one might be a bioperl one 17:11
notviki
.oO( Rakudo with all the docs and entire ecosystem... Call it... FatRak )
moritz a web developer one 17:12
raschip Each framework will have it's own.
17:13 user9 left
notviki A little out of the box thinking: ship just rakudo and module installer with a build script that can fetch a preset of modules. And the presets could be for webdev, bioinformatics, whatever, and the same basic toolset would be shipped tested, with the only difference is maintainers of those module sets would test their sets 17:13
that's really just a META6.json file that can be given to zef 17:14
raschip notviki: not a bad idea, the only usecase I know where that would be a problem is with noobs. The language needs bateries included.
stmuk notviki: a good idea .. the hard bit is getting people to test their sets 17:15
moritz notviki: right; minimal distro + zef install Task::{Webdev,BioInformatics,DevTools}
stmuk there are corporates without git access so bundling the software in a tar ball is useful for many people 17:16
notviki raschip: Why would it be a problem? The batteries ARE included, they're just fetched off network on installation. The usecase where this would be a problem is offline installs
raschip Well, we need to give an indication of what to install by default to distros. 17:17
stmuk you can't even build the monthly releases without github access
notviki yeah
raschip They won't allow fetching from the network.
kalkin-_ btw perl6 is missing here github.com/showcases/programming-languages 17:18
moritz
.oO( point-and-click distro builder )
kalkin-_ Adding Perl6 to the list of programming languages developed @Github would get some attention
notviki kalkin-_: contact the authors of that page and add it? 17:19
I'd be kinda weird tho, 'cause our leading compiler isn't even part of /perl6/ org 17:21
17:21 lizmat joined
notviki And we'd be right below "dart-lang / sdk" and "FascinatedBox / lily" heh 17:22
CIAvash[m] irclog.perlgeek.de/perl6/2017-01-03#i_13844198 17:23
notviki Interesting that I get Perl 6 in the trending list: github.com/trending 17:24
wondering if the algo just looks at langs I write in and puts those higher
17:25 khw left
dogbert2 notviki: you around? 17:27
notviki heh, a Perl 6 script to scan for hackable IoT devices github.com/rapid7/IoTSeeker
diakopter whoa 17:28
notviki dogbert2: maybe, why?
"High parallelism. So that it can scan thousands of IoT's at the same time"
:D
diakopter wait what
notviki: how is that Perl 6
dogbert2 notviki: I'm about to write a spectest for RT 125135. jnthn says it should be in S12-meta. do you have any file suggestion=
?
notviki ah crap 17:29
diakopter: GitHub misled me
diakopter: I clicked on trending developers for Perl 6 and that script showed up as written in Perl 6 :(
diakopter oh :)
17:29 shayan_ left
profan notviki: i think you're right it picks langs you write in though 17:29
kalkin-_ notviki, will do 17:30
profan as examples D, Lua, OCaml show up on mine, but aren't actually super popular in general
diakopter I was gonna say, a cyberattack/protection script written in Perl 6, that's something
notviki profan: heh, my list is totally different. I have C++, JS, PLpgSQL, Perl, Perl 6, Python, Shell 17:31
profan ah yeah, Python, C, C++, JS on mine as well :p 17:32
raschip Shell?
notviki dogbert2: no idea
dogbert2 ok, I'll figure something out 17:34
17:35 Actualeyes joined 17:36 pierre_ joined 17:38 ChoHag joined 17:41 pierre_ left, girafe left
stmuk I hate that pause between a reboot and ping replying 17:42
kalkin-_ What should I submit to github? I would prefer to submit something like perl6/perl6. Submitting rakudo/rakudo is weird 17:44
Or maybe create a perl6/perl6 project which will be the starting point for new Perl6 users? 17:46
notviki But would people "star" it?
17:47 hartenfels left
mspo kalkin-_: you have a patch? 17:47
kalkin-_ notviki I don't think that starring it is important. It's more important to have heard about Perl6. I.e I just discovered a programming language called red. Currently I'm not interested in it at all, but it's stuck in my mind 17:48
mspo: what kind of patch? I really don't know what would be the best way to create a "patch" for that :)
notviki kalkin-_: well, the list is ordered by number of stars. And you'd have "perl6/perl6" listed at the very bottom, linking to a repo with a README instead of proper language :) 17:49
17:49 shayan_ joined
kalkin-_ ahh havent thought about it 17:50
mspo kalkin-_: sorry I'm out of context. What are you trying to do? :)
kalkin-_ Then I think it would make sense to link rakudo/rakudo, even if it's not directly obvious how rakudo and perl6 are connected 17:51
mspo: I want to add perl6 here github.com/showcases/programming-l...s=language
notviki +1. I think it kinda reinforces the "new language" idea
mspo ah ha 17:52
kalkin-_ Is there a reason why rakudo & star are developed in a different organization
?
raschip There's no language called "rosalyn", for exampe.
notviki kalkin-_: rakudo and star are both in /rakudo/ org
kalkin-_ notviki: right and what is the reason for that? 17:53
notviki oh
mspo so you want an "entry point" for perl6
kalkin-_ mspo: exactly
notviki kalkin-_: dunno. I guess it just started that way. The idea is it's just one of many possible Perl 6 compilers.
while /perl6/ org is about the language itself 17:54
mspo github.com/perl6/roast is probably the defining repo but.. you know
notviki MoarVM isn't in perl6 org either... 17:55
mspo github.com/MoarVM 17:56
yeah it's all over the place
17:58 RabidGravy left 17:59 espadrine joined
pmurias rakudo has a different commit bit policy then the perl6 organization 17:59
notviki Aye that too
pmurias because CLA are required
kalkin-_ I mean I get it that everything is interchangeable, but this doesn't simplify the marketing work.
pmurias there is only one viable Perl 6 compiler at the moment 18:01
18:01 perigrin joined
kalkin-_ Look at ruby there the original Ruby & JRUBY & Whatever, but the original interpreter is ruby/ruby 18:01
but still people know there're different ruby interpreters
for people who never heard about perl6 it's just complicated to search all over the place 18:02
pmurias kalkin-_: I'm not sure if we need to emphasize the rakudo/Perl 6 distinction in marketing work
notviki sees this discussion gradually slide into the Great Name Bikeshed™
kalkin-_ pmurias: yeah this is what I'm trying to say, but you guys do.
stmuk people will google and find perl6.org .. I don't see any of this is a real problem
kalkin-_ so which of the repos should be submitted to the Github team for adding it to the languages showcase? 18:03
notviki stmuk: hehe, well, the problem is above: kalkin-_ doesn't have a "perl6" repo to add to GitHub's list that has actual perl6 compiler in it :)
kalkin-_: rakudo/rakudo would be my choice. 18:04
It'll still say "Perl 6" just below it anyway 18:05
kalkin-_ ok
stmuk well the perl6 compiler is split up into 3 parts anyway
pmurias raschip: why do we need a "std library"?
kalkin-_: I would submit rakudo/rakudo to the languages showcase 18:06
raschip pmurias: xkcd.com/353/ 18:07
18:08 hankache joined
kalkin-_ pmurias & notviki will do 18:09
notviki kalkin-_++
hankache Good * #perl6 18:10
notviki \o\
18:10 mr_ron joined 18:14 RabidGravy joined
kalkin-_ I contacted Github via contact form. I hope this will work out 18:21
18:21 jonas2 left
tadzik do I recall correctly that there was a protobuf library somewhere in the ecosystem 18:23
?
I can't seem to find it
mr_ron I am trying to rakudobug a memory leak. Is it best tagged [BUG] or [PERF] or something else? Is there a list of those tags someplace? 18:24
kalkin-_ tadzik github.com/samuraisam/p6-pb
tadzik kalkin-_: thanks!
kalkin-_ tadzik: github search is sometimes very helpful github.com/search?utf8=%E2%9C%93&a...rchresults 18:25
notviki huggable: eco protobuf
huggable notviki, nothing found
notviki that was fast :o
huggable: eco pb
huggable notviki, nothing found
notviki huggable: eco test 18:26
huggable notviki, nothing found
notviki umm... OK
jnthn huggable: eco Test
huggable jnthn, nothing found
18:26 skids joined
jnthn heh 18:26
notviki Oh, wrong robot
pmurias raschip: having modules easily installable module is crucial, having a standard library full of obsolete things is crucial
notviki buggable: eco protobuf
buggable notviki, Nothing found
notviki buggable: eco pb
buggable notviki, Found 5 results: RPi, RPi::Device::SMBus, RPi::Device::PiGlow, RPi::Device::PiFace, RPi::Wiring::Pi. See modules.perl6.org/#q=pb
notviki \o/
kalkin-_ #perl6 has to many bots :)
18:26 kalkin-_ is now known as kalkin-
jnthn Maybe we should make a bot that routes your query to the bot you probably intended? ;) 18:27
notviki :D
dogbert2 notviki: want to take a look at github.com/perl6/roast/pull/213 ?
notviki not really :} 18:28
dogbert2 :), I can always merge it unseen
jnthn bah :P
dogbert2: I guess it fails before the fix and works fine after? :)
raschip RT 125135
jnthn Indentation in TestHOW.pm is a little funky but otherwise looks good 18:29
dogbert2 jnthn: yes, when I applied your changes the problem disappeared
jnthn \o/
dogbert2 I guess I'll merge then :) 18:32
DrForr .seen TimTowtdi 18:33
yoleaux I haven't seen TimTowtdi around.
tadzik kalkin-_: thanks, noted :)
DrForr Grumble.
psch .seen TimToady
yoleaux I saw TimToady 1 Jan 2017 08:04Z in #perl6: <TimToady> I should have showed Instant.now instead :)
grumble Grumble.
DrForr Dank u wel.
.tell TimToady private question for you when you have a few minutes. 18:35
yoleaux DrForr: I'll pass your message to TimToady.
notviki Way to get 323 people curious! 18:37
18:38 domidumont joined
DrForr Hee. 18:39
18:39 zakharyas left, domidumont left 18:40 domidumont joined
DrForr goes back to fixing the remaining 44 Perl6::Parser tests. 18:40
18:46 mr_ron left 18:48 cschwenz left 18:52 ufobat left 18:54 cdg left 18:57 domidumont left
lizmat wheee, Perl 6 listed in github.com/showcases/programming-languages 18:59
notviki \o/
I like how our activity graph is sloping upwards. 19:01
which seems to be a rarity on that list
raschip That was fast. kalkin-++ 19:02
19:02 acrussell joined
DrForr Very spiky as well. 19:05
19:05 notbenh left
notviki Few developers 19:05
19:05 notbenh joined
DrForr Well, of course, compared to Go or Swift. 19:05
timotimo the trend is, of course, just part of the story
DrForr Or .. well, if we're being honest, lots of entries on the list. 19:06
notviki What's the other part of the story?
19:07 notbenh left, sufrostico joined
timotimo how small we are in relation to everything else 19:07
i.e. one of our biggest spikes may be a day-to-day difference for another project
19:08 notbenh joined
DrForr Well, one nice thing about sparklines is there's no legend. 19:08
kalkin- Wow I didn't expect GitHub to respond so quickly 19:09
timotimo "nice"
DrForr While it does cut both ways, it also makes team size less of a visible factor. 19:10
kalkin- if every one here stars rakudo/rakudo we will overtake lily, dart harlan & ocaml probably
DrForr Done. 19:11
notviki And join the Delphi team in history of spiking shoddy ratings? :)
I already have it starred
masak too 19:12
19:13 labster joined
timotimo does it make sense for me to star it? 19:14
notviki Well, only if you like it :P
.seen dugword
yoleaux I saw dugword 2 Jan 2017 23:07Z in #perl6: <dugword> Did you have to agree to new terms or something? I've seen something similar with xcode
timotimo i already have starred it
19:15 Sqirrel joined, shayan_ left, labster left, labster joined 19:19 labster left, RabidGravy left, labster joined 19:20 petrutrimbitas joined 19:22 wamba joined
SmokeMachine m: sub infix:<op>(|c) {c.perl.say}; say 1 Rop 2 # this works 19:24
camelia rakudo-moar d48765: OUTPUT«\(2, 1)␤True␤»
SmokeMachine m: sub infix:<op>(|c) {c.perl.say}; say 1 Sop 2 # why not this one?
camelia rakudo-moar d48765: OUTPUT«\()␤No such method 'CALL-ME' for invocant of type 'Bool'␤ in block <unit> at <tmp> line 1␤␤»
notviki .tell dugword The test you added seems to hang on my VM. It prolly doesn't have IPv6 support. Do you know how to detect that and only run the test on boxes where it would not hang? I fudged it for now in github.com/perl6/roast/commit/b3d3a736ee 19:26
yoleaux notviki: I'll pass your message to dugword.
SmokeMachine Is the S "operator modifier" working? 19:27
notviki God this network is terrible....
I think in movie Martial they had less lag... 19:28
19:28 hankache left
SmokeMachine And that's a strange error message... 19:28
notviki m: sub infix:<op>(|c) {c.gist.say}; say 1 Sop 2 19:29
camelia rakudo-moar d48765: OUTPUT«\()␤No such method 'CALL-ME' for invocant of type 'Bool'␤ in block <unit> at <tmp> line 1␤␤»
notviki m: sub infix:<op>(|c) {c.gist.say; -> {say "hi"} }; say 1 Sop 2
camelia rakudo-moar d48765: OUTPUT«\()␤Too many positionals passed; expected 0 arguments but got 2␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine m: sub infix:<op>(|c) {c.perl.say; {$^a.say}}; say 1 op 2 19:30
camelia rakudo-moar d48765: OUTPUT«\(1, 2)␤Too few positionals passed; expected 1 argument but got 0␤ in sub infix:<op> at <tmp> line 1␤ in block <unit> at <tmp> line 1␤␤»
notviki m: sub infix:<op>(|c) {c.gist.say; -> ($a, $b) {say "$a, $b hi"} }; say 1 Sop 2
camelia rakudo-moar d48765: OUTPUT«\()␤Too few positionals passed; expected 2 arguments but got 0 in sub-signature␤ in block <unit> at <tmp> line 1␤␤»
notviki m: sub infix:<op>(|c) {c.gist.say; -> $a, $b {say "$a, $b hi"} }; say 1 Sop 2
camelia rakudo-moar d48765: OUTPUT«\()␤1, 2 hi␤True␤»
notviki SmokeMachine: looks like S expect its args thunked
not that I ever used it... 19:31
... or even know what it's for :P
SmokeMachine Serial...
Sorry, sequential
docs.perl6.org/language/operators#..._Operators
19:31 girafe joined
SmokeMachine notviki: ^^ 19:31
notviki SmokeMachine: yeah, that doesn't tell me much; especially with that example 19:33
19:34 RabidGravy joined, shayan_ joined
SmokeMachine Neither for me... that was what I was trying to discover... 19:34
notviki I guess it'll make more sense once we have autothreading
19:34 shayan_ left
RabidGravy Brr 19:35
19:35 geekosaur left
notviki SmokeMachine: my understanding of that doc is that Perl 6 compiler/optimizer may autothread or otherwise execute stuff non-serially and using that operator forbids it from doing so for that operation 19:35
SmokeMachine But for me it looks that it should act as the original operator but not in parallel...
19:35 leego left, notviki left, buggable left, kaare_ left, Cabanossi left, atta left, synopsebot6 left, effbiai left, Undercover left, timotimo left, Ulti left, hoelzro left, sammers left, NeuralAnomaly left, pierrot left, Ulti joined, hoelzro_ joined, atta_ joined, synopsebot6 joined 19:36 benchable6 joined, statisfiable6 joined, notviki joined, SourceBaby joined, Undercover joined, NeuralAnomaly joined, effbiai joined, buggable joined, timotimo joined, leego joined, kaare_ joined, grumble left, geekosaur joined, ChanServ sets mode: +v benchable6, ChanServ sets mode: +v SourceBaby, ChanServ sets mode: +v Undercover, effbiai left, effbiai joined, ChanServ sets mode: +v NeuralAnomaly, ChanServ sets mode: +v buggable, Cabanossi joined, sammers joined, sftp joined, k-man joined 19:37 pierrot joined, BuildTheRobots left
SmokeMachine So, if I really understood, it should work as the original operator... 19:38
19:38 pierre_ joined, dp[m] joined 19:39 Matthew[m] joined 19:42 pierre_ left 19:44 sufrostico left 19:48 grumble joined 19:49 lukaramu joined 19:50 bjz joined 19:52 BuildTheRobots joined
RabidGravy arnsholt, if you get a minute take a look at github.com/arnsholt/Net-ZMQ/pull/9 - may need a little more work but I wanted to get it to at least compile without warnings :) 20:01
20:07 kyan joined 20:08 FROGGS left
dalek c: 1df275d | (Zoffix Znet)++ | doc/Type/Mu.pod6:
Mention Mu.clone's tweedles only tweedle public attrs

Also reword
20:09
synopsebot6 Link: doc.perl6.org/type/Mu
20:10 shayan_ joined 20:11 susmus left 20:12 domidumont joined
SmokeMachine m: say 1 S+ 1 20:13
camelia rakudo-moar f9ed73: OUTPUT«No such method 'CALL-ME' for invocant of type 'Int'␤ in block <unit> at <tmp> line 1␤␤»
mst notviki: oh! *twiddles* 20:14
SmokeMachine m: say True S& True
camelia rakudo-moar f9ed73: OUTPUT«all()␤»
mst notviki: your commit message is spelled wrong
20:16 raschip left
SmokeMachine Empty all? 20:16
notviki m: say True & True
camelia rakudo-moar f9ed73: OUTPUT«all(True, True)␤»
notviki heh
RabidGravy tweedle dum and tweedle dee
SmokeMachine m: say True S| True 20:18
camelia rakudo-moar f9ed73: OUTPUT«any()␤»
20:18 AlexDaniel joined
notviki mst: heh. And I went to change the variable name in rakudo source and the docs, but both of them have 'i'... 20:19
I need to get my eyesight checked :P
SmokeMachine notviki: the S& and the S| should be working? 20:20
notviki SmokeMachine: I don't know anything about that operators 20:21
20:21 shayan_ left
notviki SmokeMachine: junctions are meant to be autothreaded... so maybe there's a glitch with that aspect? 20:21
m: say 42 S| 45 20:22
camelia rakudo-moar f9ed73: OUTPUT«any()␤»
notviki m: say 42 S| 45 S| 55
camelia rakudo-moar f9ed73: OUTPUT«any()␤»
notviki yeah, looks wrong
AlexDaniel S doesn't work, yes
notviki k
AlexDaniel and I don't think that it ever worked even
SmokeMachine But it "auto created" operators to...
AlexDaniel c: all say 42 S| 45 S| 55
committable6 AlexDaniel, gist.github.com/9422d5f5ea2a794aa9...7da46c6b8f 20:23
AlexDaniel yea…
20:23 ufobat joined, shayan_ joined 20:24 susmus joined
SmokeMachine m: sub infix:<op>(|){say "worked"}; say 1 Sop 2 # I didn't create the Sop, only the op... 20:24
camelia rakudo-moar f9ed73: OUTPUT«worked␤No such method 'CALL-ME' for invocant of type 'Bool'␤ in block <unit> at <tmp> line 1␤␤»
SmokeMachine It created the Sop... 20:25
20:26 Tonik joined
SmokeMachine It gave an error, but ran the op first... 20:26
20:26 domidumont left
notviki hmmm 20:27
m: say [ZRZRZRZRZSRSZSRSZRSRSZRZSRSZRZSRZSRZSRSZSRZR] 5
camelia rakudo-moar f9ed73: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3RZRZSRSZSRSZRSRSZRZSRSZRZSRZSRZSRSZSRZR]7⏏5 5␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ …»
notviki m: say [ZRZRZRZRZSRSZSRSZRSRSZRZSRSZRZSRZSRZSRSZSRZRZ] 5
camelia rakudo-moar f9ed73: OUTPUT«No such method 'CALL-ME' for invocant of type 'Seq'␤ in block <unit> at <tmp> line 1␤␤»
notviki That TTIAR....
m: say [ZRZRZRZRZRZRZRZR] 5 20:28
camelia rakudo-moar f9ed73: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Two terms in a row␤at <tmp>:1␤------> 3say [ZRZRZRZRZRZRZRZR]7⏏5 5␤ expecting any of:␤ infix␤ infix stopper␤ postfix␤ statement end␤ statement modi…»
notviki m: say [ZRZRZRZRZRZRZRZRZ] 5
camelia rakudo-moar f9ed73: OUTPUT«((((((((((5))))))))))␤»
notviki werd
jnthn It's 'cus Z is a normal operator as well as a meta-op, but R ain't
timotimo right, Z is also Z,
notviki What does normal Z does?
jnthn zip
SmokeMachine R is the reverse, isn't it?
notviki Z,
jnthn Shortcut for Z,
notviki OK
jnthn shop &
notviki m: say("is") R say("it") R say("yes,") 20:29
camelia rakudo-moar f9ed73: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing infix inside R␤at <tmp>:1␤------> 3say("is") R7⏏5 say("it") R say("yes,")␤ expecting any of:␤ infix␤ infix stopper␤»
notviki m: say("is") R, say("it") R, say("yes,")
camelia rakudo-moar f9ed73: OUTPUT«Potential difficulties:␤ Useless use of R, in sink context␤ at <tmp>:1␤ ------> 3say("is") R, say("it") 7⏏5R, say("yes,")␤is␤it␤yes,␤»
SmokeMachine m: sub infix:<op>(|c){say c.perl}; say 1 Rop 2
camelia rakudo-moar f9ed73: OUTPUT«\(2, 1)␤True␤»
20:30 [particle] joined
notviki camelia: it wasn't useless! 20:30
oh yeah, it was 20:31
m: say "is" R, "it" R, "yes,"
camelia rakudo-moar f9ed73: OUTPUT«(yes, it is)␤»
notviki \o/
SmokeMachine m: say <1 2 3> RZ <a b c>
camelia rakudo-moar f9ed73: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing infix inside R␤at <tmp>:1␤------> 3say <1 2 3> RZ7⏏5 <a b c>␤ expecting any of:␤ infix␤ infix stopper␤»
SmokeMachine m: say <1 2 3> ZR <a b c> 20:32
camelia rakudo-moar f9ed73: OUTPUT«5===SORRY!5=== Error while compiling <tmp>␤Missing infix inside R␤at <tmp>:1␤------> 3say <1 2 3> ZR7⏏5 <a b c>␤ expecting any of:␤ infix␤ infix stopper␤»
SmokeMachine m: say <1 2 3> ZR, <a b c>
camelia rakudo-moar f9ed73: OUTPUT«((a 1) (b 2) (c 3))␤»
SmokeMachine Makes sense...
20:34 Sqirrel left
notviki neat 20:37
AlexDaniel “it wasn't useless! … oh yeah, it was” is exactly why I love our “useless use of” warnings
I write stupid things aaall the time 20:38
notviki :)
20:40 lizmat left 20:42 bjz left
notviki mc: dd [ $*PROGRAM, $*PROGRAM-NAME ] 20:50
committable6 notviki, ¦«2015.12»: ["/tmp/UhpqC0Mb53".IO(:SPEC(IO::Spec::Unix),:CWD("/home/bisectable/git/whateverable")), "/tmp/UhpqC0Mb53"]
notviki ehehe
It's possible to make committable6 ghost itself off freenode :P
20:54 kurahaupo__ joined
mspo a lot of perl (5) love on news.ycombinator.com/item?id=13310159 21:02
dalek line-Python: e45adf8 | niner++ | / (3 files):
Implement calling Python functions with named arguments
21:03
nine colomon: ^^^
colomon \o/ 21:04
AlexDaniel notviki: how? 21:05
nine Methods still to do but as the patch for functions shows this is fairly easy 21:06
colomon I think methods are what I need, but still like progress!
will try it out in a sec
AlexDaniel notviki: I mean which method do you have in mind exactly? For example, you can actually find the password for these bots and ask nickserv do do the job… 21:07
they're not running securely right now. Like, at all
dalek line-Python: 73adb59 | niner++ | / (3 files):
Implement calling static Python methods with named arguments
21:10
nine colomon: getting there ;)
Inline::Python could use so much love :/ 21:11
AlexDaniel like everything! 21:13
colomon nine: this is actually the second time I’ve used it. really handy for using Python libraries from the comfortable world of perl 6. 21:14
21:15 pierre_ joined
colomon just had his $work test suite “pass” despite what looked like serious errors flying by. argh. 21:17
timotimo oof 21:18
colomon and on reinstalling Inline::Python — pyhelper.c:1:20: fatal error: Python.h: No such file or directory
timotimo that's just your installation missing that header file 21:19
python-dev or python-devel or whatever
colomon wonders if it is too late to become a lumberjack
RabidGravy it's never too late 21:21
timotimo yup 21:22
colomon is now doing apt-get update 21:23
dalek line-Python: 7ecee5c | niner++ | / (3 files):
Implement calling Python object methods with named arguments
nine colomon: there ^^^ we go
dalek line-Python: fa0cb9d | niner++ | META.info:
Version 0.2
21:24
colomon installs python-dev and latest Inline::Python 21:28
dalek line-Python: 4222945 | niner++ | lib/Inline/Python.pm6:
OpaquePointer has been just Pointer for a year or two
21:29
notviki AlexDaniel: yeah, by using Async sock to connect to irc, logging in with the passowrd and asking nickserv to ghost the real wheneverablr :) 21:30
colomon nine++
before: $py.run(qq/client.get_tasks("%lists<Personal><id>", completed=True)/, :eval);
after: $client.get_tasks(%lists<Personal><id>, completed => "True");
notviki won't just :completed work? 21:31
colomon completed => True didn’t but let’s see
notviki aww
colomon nope
Seems to actually need the string “True” rather than a true value. 21:32
21:33 pierre_ left
colomon nine++ 21:34
nine Oh, seems like Inline::Python doesn't know how to translate Bools 21:35
colomon has no idea on what level the problem is 21:36
RabidGravy it's a load of old Bools 21:39
21:39 Tonik left
geekosaur guess that;s a new take on boolean blindness :p 21:41
21:46 bjz joined 21:49 petrutrimbitas left 21:55 rindolf left
AlexDaniel secretly hopes that RT #130494 is going to fix whateverable as well 21:56
22:00 rindolf joined
jnthn Note the code in that ticket is a bit dubious 22:01
It starts *1* process
And so is trying to tap the same output over and over
And never actually awaits $proc-prom 22:02
oh wait 22:04
we're feeding it input
OK, it does make sense :)
jnthn totally missed the all important line
22:04 colomon left 22:10 petrutrimbitas joined 22:12 skids left 22:17 bjz left 22:19 TEttinger joined 22:21 shayan_ left 22:23 RabidGravy left
jnthn Valgrind provides one lead. Will see if I've time to look into it tomorrow. 22:24
22:26 acrussell left 22:28 ufobat left 22:40 bjz joined 22:44 AlexDaniel left 22:47 Gasher joined, bjz left 22:50 bjz joined 22:56 solarbunny joined 22:59 thib left 23:00 bjz left, bstamour left
webstrand What is the nom branch of rakudo? Which version of moarvm and nqp is nom built against? 23:01
notviki webstrand: the "best latest" 23:02
not bleed but close to it
nom is the master
And you can find exact versions in rakudo/tools/build/NQP_VERSION and in nqp/tools/build/MOAR_VERSION
webstrand So development happens on nom and then gets moved to master? 23:03
notviki webstrand: no, there's no master. For historical reasons we named our master "nom" and development happens on it
23:04 espadrine left
notviki There are plans to create a "stable" branch and have a bot pull to it tested commits, but IMO that's a bad idea 23:04
23:05 kurahaupo_ joined, kurahaupo__ left 23:25 awwaiid joined
notviki heh... after fixing bugs, while waiting for spectests to finish, I play this game, "Letter Quest".... And I just found a bug in it. 23:25
a meta bug
23:34 lizmat joined 23:35 wamba left, MasterDukeLaptop left 23:39 kurahaupo__ joined 23:41 kurahaupo_ left, bwisti left, anon joined, anon is now known as Guest79293
Guest79293 p6: say '' ~~ /[\s*]+/ 23:42
camelia rakudo-moar f9ed73: OUTPUT«MoarVM panic: Memory allocation failed; could not allocate 2052030464 bytes␤» 23:43
Guest79293 Should the above regex work or not?
notviki Nope 23:44
You're asking for 1 or more nothings
And there's an infinite number available, so it keeps matching
There's this ticket that has some discussion that IIRC also goes into explaining why some other langs can figure out that the above should stop: rt.perl.org/Ticket/Display.html?id...et-history 23:45
Guest79293 Perl 5 can do it without any problem.
Thanks, will check out.
japhb Guest79293: perl5 (the interpreter) has extensive regex optimizations that look for accidents like that and try to avoid unending or otherwise worst-case behavior. 23:46
timotimo it's quite advanced
japhb Those don't exist in Rakudo yet. 23:47
Guest79293 So ideally, should a full-featured Perl 6 implementation be able to handle that? Or is that something not covered in the spec? 23:48
timotimo if we have tests for it, it should be handled 23:49
if we don't, they can land in a later language version, like v6.d
japhb Guest79293: I suspect that over time, more such checks will exist in the grammar engine. But that's not a matter of Perl 6 compliance (unless we decide to spectest it), that's a matter of being a smarter compiler.
notviki timotimo: japhb if you have a method that should work only for SetHash, BagHash, and MixHash, would you put it in each of those clases (impl. is identical) or put it in Setty (done by Set/SetHash) and Baggy (done by Bag/BagHash and Mix/MixHash) and add type check on whether the method is called on the immutable variant? 23:50
Feels like the former approach is saner, but I see we already done the latter for some of the methods... 23:51
lizmat notviki: do we? I thought I'd split all of them into separate Bag/BagHash classes ?
notviki lizmat: the two I changed today are that, isn't it? 23:52
23:53 kurahaupo__ left
notviki Or I guess one. the AT-KEY on QuantHash: github.com/rakudo/rakudo/commit/c1...21c9aac0e8 23:53
lizmat notviki: good point :-)
23:53 petrutrimbitas left
lizmat now, there was a reason for not splitting those 23:53
but I forget atm and am now tired after driving ~ 1:40 hour
so will look at it tomorrow in depth if still needed :-) 23:54
afk&
japhb Why aren't the common bits (shared not for semantic similarity but purely common implementation) just in a hidden role?
(Note: have not actually looked at that code to see if my question is nonsensical.) 23:55
notviki lizmat: ah, I remember the reason (or at least can think of). If we add it just to mutables, in immutables it'll autoviv to a Hash, but we want to die instead of autoviving
23:55 shayan_ joined
notviki japhb: dunno. I scrolled through code and nothing obviously similar jumps out 23:57
Except for the .clone method I'm adding. 23:58
You could say the fact that it's the same in all three versions is an accident: both Setty and Baggy name their elems attr '%!elems'