»ö« 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:00 skids joined 00:05 mcmillhj joined, goofy joined 00:09 mcmillhj left 00:10 mcmillhj joined 00:13 b2gills joined 00:14 mcmillhj left 00:18 bpmedley joined 00:19 bpmedley left 00:20 mcmillhj joined
Geth doc: 75658435b2 | (Will "Coke" Coleda)++ | xt/space-after-comma.t
Another file causing trouble

Part of #1414
00:21
doc: ac744523f8 | (Will "Coke" Coleda)++ | doc/Language/traps.pod6
no trailing whitespace
00:25 mcmillhj left 00:29 cdg joined 00:31 mcmillhj joined 00:34 cdg left 00:36 mcmillhj left 00:43 mcmillhj joined 00:46 BenGoldberg joined, deep-book-gk_ joined 00:47 deep-book-gk_ left, mcmillhj left 00:54 mcmillhj joined, mspo joined 00:58 mcmillhj left 01:02 wamba left 01:04 mcmillhj joined 01:09 mcmillhj left, mcmillhj joined 01:10 Cabanossi left 01:12 Cabanossi joined, sufrosti1o left 01:14 mcmillhj left 01:20 mcmillhj joined 01:24 mcmillhj left 01:31 mcmillhj joined 01:35 mcmillhj left
Geth whateverable: d2cd30b0cb | (Aleks-Daniel Jakimenko-Aleksejev)++ | Unicodable.p6
Fix issues with )

It was an ugly hack and now it is an ugly hack that works.
Resolves issue #142
01:37
01:41 cdg joined 01:46 cdg left, ilbot3 left 01:48 ilbot3 joined, ChanServ sets mode: +v ilbot3 01:50 alexi5__ joined 01:54 alexi5_ left 01:57 mr-foobar left 02:06 noganex joined 02:09 noganex_ left
Geth whateverable: 1e3d0c8fe7 | (Aleks-Daniel Jakimenko-Aleksejev)++ | Unicodable.p6
Add unicodable limits

Resolves issue #139.
Ideally we want to have a global limit for gist size, but the thing with unicodable is that it *has* to bail out early.
02:09
02:14 raschipi left 02:15 eyck joined 02:16 mr-foobar joined 02:20 gdonald left 02:26 gdonald joined 02:33 rubio_terra left 02:40 Cabanossi left 02:42 Cabanossi joined 03:00 cdg joined 03:05 cdg left 03:06 AlexDaniel left 03:07 cdg joined 03:12 cdg left
goofy Hello, I'm having a problem install IO::Socket::SSL on Windows 10 Rakudo Star version 2017.04.3. 03:22
I've traced it to the OpenSSL package test 02-socket. It is trying to connect to google.com on port 443 using IO::Socket::INET.new(:$host, :port(443)).
From the REPL: IO::Socket::INET.new(host => 'www.google.com', port => 443) Failed to connect: connection timed out
However: IO::Socket::INET.new(host => 'stackoverflow.com', port => 443) connects just fine
More importantly, I was wanting to experiment with GTK and its build process gets the dll's from gtk-dlls.p6c.org/ which requires the above. 03:23
BTW... I'm very new to Perl so I may be doing something entirely wrong 03:24
MasterDuke goofy: are you using zef to install IO::S::SSL? 03:25
goofy Yes
MasterDuke i think you can pass --/test to the install command to skip tests
goofy I tried that and it does install. However, when I try to install GTK::Simple. GTK::Simple fails for the same reason. 03:26
And GTK::Simple will not build without downloading the dll files from gtk-dlls.p6c.org/
MasterDuke i haven't installed GTK::Simple, so take this with a grain of salt, but you may be able to just clone it manually, download the dlls manually, and the do a 'zef install .' from its directory 03:28
goofy I will give it a try. Thanks for the tip. 03:29
MasterDuke assuming it checks whether the dlls are already present or not before trying to download them
Zoffix goofy: and don't forget to report this problem on the appropriate repo so the author could fix it 03:31
buggable: eco IO::Socket::SSL
buggable Zoffix, IO::Socket::SSL 'IO::Socket::SSL for Perl 6 using OpenSSL': github.com/sergot/io-socket-ssl
Zoffix buggable: eco GTK::Simple
buggable Zoffix, GTK::Simple 'Simple GTK 3 binding using NativeCall': github.com/perl6/gtk-simple 2 other matching results: modules.perl6.org/#q=GTK%3A%3ASimple
goofy HA I've never reported a bug before... or even used github for that matter. This will be interesting. 03:36
Zoffix There's a first time for everything :) But if you don't report it, then likely the next person to try what you're trying will have the same problem 03:37
goofy From what I can tell, the issue is with IO::Socket::INET and not GTK::Simple. GTK::Simple just happens to use IO::Socket::INET which causes it to fail. So do I report this in both or just IO::Socket::INET? 03:39
03:39 Cabanossi left 03:40 Cabanossi joined
goofy MasterDuke: Downloading the dependant dlls manually worked. A quick test GTK app worked as expected! Thank you. 03:45
Zoffix goofy: IO::Socket::INET is a core class. If there's a failure with it you can report it like all the other Rakudo bugs, by emailing to [email@hidden.address]
And include what Rakudo version you got ( perl6 -v ) 03:46
goofy Zoffix: Thank you for the information. 03:47
Zoffix Any time. 03:49
03:54 cdg joined
Zoffix Check it out. The most expensive toilet on the planet :) www.google.com/maps/@29.5603465,-9...000!8i5000 03:58
.. or near it :)
03:59 cdg left 04:00 BenGoldberg left, mcmillhj joined
TEttinger Zoffix: I dunno, Trump Tower has solid gold ones 04:02
Zoffix According to Trump? :) 04:03
04:03 cdg joined
TEttinger is it something that would be out of character? 04:04
04:04 mcmillhj left
Zoffix According to a price for a solid-gold toilet in Chine, it's $5m, but the ISS toilet is evidently $19m, so it's still winning, by a lot 04:05
04:08 Cabanossi left
TEttinger haha indeed 04:09
too much winning
04:10 Cabanossi joined 04:11 mcmillhj joined
zengargoyle hythm: IIRC the buffer is used only at the end when it's faster to just linear search through the last N KB of data in memory rather than seeking back and forth to narrow it down. 04:12
goofy Zoffix: Just a quick follow up. I think it is IPv6 related. If I disable IPv6 on the ethernet adapter, it works just fine. If I re-enable it, it breaks. Possibly something on my end? although other software and dev environments work normally. 04:13
zengargoyle hythm: Search::Dict is pretty much a port of the p5 module of the same name (IIRC). when benchmarking i never found where the buffer-size helped vs p6 IO at the time.
04:16 mcmillhj left
zengargoyle hythm: so it does binary search for a while, seek and readline, then when it's down to less than buffer-size between low and high it just searches that last bit in one go. 04:16
Zoffix goofy: it might be a bug in IO::Socket::INET. It still needs a lot of love. I'd suggest reporting it; if it turns out to be not a bug, then no harm done, but if it is, then we can fix it.
Zoffix goes to bed 04:18
\o
zengargoyle hythm: i meant you could maybe use the binary search algo from Search::Dict to find your start-time. i don't see how you could actually use Search::Dict as-is. it only matches against *whole* lines. 04:20
(and probably only works on ascii data and would barf on unicode when it seeks into the middle of a character...) 04:21
04:21 mcmillhj joined 04:25 goofy left 04:26 mcmillhj left 04:46 khw left 04:52 skids left
ugexe /buffer 4 04:52
05:01 cdg left 05:10 cpage_ left 05:16 cdg joined 05:24 Cabanossi left, cdg left 05:25 Cabanossi joined 05:29 alexi5_ joined, alexi5__ left 05:31 Guest90987 joined 05:34 setty1 joined 05:35 cpage_ joined 05:55 zoll left 05:57 ufobat joined
moritz masak: metafluff.com/2017/07/21/i-am-a-tab-hoarder/ :-) 06:06
06:28 gdonald left 06:40 gdonald joined 06:56 domidumont joined 07:03 domidumont left, domidumont joined 07:11 wamba joined 07:46 araraloren_ joined 07:49 araraloren left 07:55 araraloren_ left 07:58 Cabanossi left 08:01 Cabanossi joined 08:03 darutoko joined 08:07 gfldex left 08:16 Actualeyes left 08:29 mcmillhj joined 08:33 mcmillhj left 08:40 Cabanossi left 08:41 Cabanossi joined 08:49 rindolf joined 08:51 parv joined 08:52 El_Che left 09:03 parvx joined 09:04 parv left 09:07 TimToady left 09:09 TimToady joined 09:26 nadim joined 09:27 AlexDaniel joined 09:36 pmurias joined 09:38 cgfbee joined 09:41 leah2 left 09:42 parvx left 09:43 TEttinger left 09:50 Miro_ joined 09:51 alexi5__ joined 09:53 alexi5_ left 09:56 leah2 joined 10:03 dct joined
AlexDaniel ∞×≤…«π✓✗ RT… 10:04
“Message body is not shown because it is too large.”
and so your only option is to download it as html 10:05
10:14 araraloren joined 10:17 hankache joined 10:18 gfldex joined 10:22 El_Che joined
moritz I've made some small progress regarding the IRC log encoding issues 10:37
if I retrieve the data without 'set names utf8' or similar, they come to Perl 5 land as encoded UTF-8 strings (bytes) 10:38
(at least for data written before the upgrade) 10:39
10:42 alexi5 joined 10:44 Cabanossi left, alexi5__ left 10:45 Cabanossi joined 10:46 alexi5_ joined 10:47 SCHAPiE left 10:49 alexi5 left 10:51 hankache_ joined, SCHAPiE joined 10:54 hankache left 11:03 gdonald left 11:15 gdonald joined 11:16 hankache_ left
tbrowder hi #perl6, is anyone else having travis failures before getting to one's own module? my jobs keep failing on test::deeply::relaxed 11:19
11:26 dct left 11:32 lizmat left 11:38 lizmat joined 11:43 Cabanossi left 11:46 Cabanossi joined
tbrowder can anyone please show me a .travis.yml file that works in the current environment? 11:49
11:50 mr-foobar left
moritz lol I blogged: perlgeek.de/blog-en/perl-6/2017-01...chase.html 11:52
11:52 araraloren left, araraloren joined
jnthn moritz++ # yay \o/ 12:04
araraloren tbrowder, you can try my travis config : github.com/araraloren/perl6-getopt...travis.yml
tbrowder araraloren: thanks! 12:12
12:14 Cabanossi left
lizmat moritz++ # cool blog post, quote and book! 12:14
12:16 Cabanossi joined 12:17 lizmat left 12:30 lizmat joined 12:32 alexi5 joined 12:34 alexi5_ left, lizmat left 12:38 lucasb joined
lucasb That Larry Wall quote from the foreword is inspiring! Very nice. 12:44
congratulations for your book, moritz
12:44 Miro_ left
moritz thanks jnthn, lucasb and lizmat! 12:55
12:56 ufobat left
araraloren What book ? 12:58
moritz araraloren: perlgeek.de/blog-en/perl-6/2017-01...chase.html 12:59
12:59 Cabanossi left
moritz please retweet twitter.com/nogoodnickleft/status/...1143956481 to spread the word 13:00
I've also updated perl6book.com/
13:01 Cabanossi joined
araraloren moritz, thanks 13:01
El_Che moritz: done. Cheers!
araraloren Hmm sorry, I have no twitter. 13:02
moritz El_Che: thanks
araraloren: no worries
on a completely unrelated topic, I remember that there was some pretty compact geo coding scheme, with just a few (maybe 5 or 6) alphanumerics for each location 13:03
does anybody know what I'm talking about, by chance, and know the name? 13:04
my goolge-fu is too weak for this one
13:05 nadim left
MasterDuke moritz: maybe www.movable-type.co.uk/scripts/geohash.html or mapcode.com ? 13:08
i think geohash is name of the concept 13:09
moritz MasterDuke: ah, thanks! 13:10
masak moritz: congrats on the book! <3 13:12
masak doesn't know why he wrote "<3" when Unicode Is Your Friend: "♥" 13:13
um... under what conditions is a lib/ directory with a .precomp/ directory created for me when I run a Perl 6 script? :/ 13:14
fortunately, I already have .precomp directories git-ignored, so it doesn't show up. but I was still surprised to find a lib/ that I hadn't myself created... 13:15
moritz masak: thanks
jnthn Odd, maybe it's a side-effect of `use lib` or -Ilib or some such? 13:16
moritz masak: re precomp, I think on first execution of a script that loads the module; maybe related to whether other locations are writable to you
jnthn moritz: Yeah, I think masak is saying there isn't a module and wasn't a lib directory at all before though
masak jnthn: the only thing I `use` in that script is Test.pm6 13:17
jnthn Hm, odd
masak but when I try to reproduce that in a script somewhere else, that's not enough. still looking. 13:18
jnthn And if you delete it and run the script again it comes back?
Do you have a PERL6LIB in your env?
masak oh! 13:19
I do!
good deduction
if I delete it and run again, it comes back, yes
it does not seem to be created in an env without PERL6LIB set
jnthn So, mystery solved-ish :) 13:20
masak ...and I had PERL6LIB set to 'lib', essentially a relative path 13:21
but in this case I was in a subdirectory, which did not have a lib/
13:21 ufobat joined, ufobat left
masak I guess it's debatable whether perl6 should ever create the PERL6LIB path if it's not there 13:21
I would prefer it didn't, even if that meant no caching ;) 13:22
jnthn I guess what it really wants is the .precomp folder there, and it creates it up-front, possibly because it avoids a bunch of existence checks down the road.
But I don't know the code's current form well enough to make a judgement on that :)
I've a slight preference for it not to create it also, though. And it's possible it's more accident than design. 13:24
13:30 nadim joined 13:34 lucasb left
nine I happen to know the author of that code somewhat well enough to claim that it's probably by accident 13:46
Well it just tries to create the .precomp directory but our mkdir is really an mkpath. 13:48
nine never was really a fan of that and would have liked to see an explicit mkpath method in addition instead 13:49
Geth whateverable: 2f65612f41 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Fix tests after 69cad472319a47943c712baa0cc5a500160f081e

These tests were incorrect.
whateverable: 3326b57c1e | (Aleks-Daniel Jakimenko-Aleksejev)++ | Whateverable.pm6
Link files in “Original exception”

Some exceptions contain “Original exception:” part which is indented a little bit more. Maybe we should allow any amount of leading whitespace, but for now this will do.
whateverable: e8aac916cc | (Aleks-Daniel Jakimenko-Aleksejev)++ | 8 files
If you want to change the world…

  … stop changing your current directory.
Resolves issue #90.
I did not unchdirify build.p6 because I am so scared to break it.
moritz for more news about the IRC log encoding issues, please join #ilbot 13:51
13:53 andreoss joined, lizmat joined
andreoss m: sub use(Perl $p) { $p }; use $*PERL or die; 13:53
camelia ( no output )
andreoss m: sub use(Perl $p) { $p }; use Perl or die; 13:54
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
or used at line 1
nine I think the best fix would be to check the existence of FileSystem repositories and not even add them to the $*REPO chain if they don't exist. This way we'll use a different PrecompilationStore and would still get caching of precomp files.
And yes, that should be restricted to FileSystem repos, as you'd e.g. want the ~/.perl6 repo be created for you 14:01
andreoss m: sub use(Perl:U $p) { say $p.new }; use(Perl) or die; 14:02
camelia Perl 6 (6.c)
andreoss there's no way to lose the parentesis? 14:03
what is `use` essentialy?
Zoffix A sub
and also a module loading pragma 14:04
m: sub uze(Perl:U $p) { say $p.new }; uze Perl or die; 14:05
camelia Perl 6 (6.c)
Zoffix m: sub utilize(Perl:U $p) { say $p.new }; utilize Perl or die;
camelia Perl 6 (6.c)
Zoffix :)
AlexDaniel m: sub use(Perl:U $p) { say $p.new }; \use Perl or die
camelia Perl 6 (6.c)
Zoffix AlexDaniel++
buggable: eco if 14:06
buggable Zoffix, if 'conditionally use packages': github.com/FROGGS/p6-if 36 other matching results: modules.perl6.org/#q=if
Zoffix andreoss: if you want the `use` really really hard. You could use the unofficial and unsupported slang interface to modify what `use` module loading pragma does and do it a sub instead. ^ that module has an example of how to do that 14:07
14:07 lizmat left
andreoss m: sub use(Perl:U $p) { say $p.new }; use $*PERL.WHAT or die; 14:09
camelia Perl 6 (6.c)
andreoss so close
14:09 lizmat joined
Zoffix it sees '$' isn't part of module name and so goes for your sub 14:12
14:12 mr-foobar joined, domidumont left 14:14 domidumont joined, andreoss left
AlexDaniel m: sub üse(Perl:U $p) { say $p.new }; üse Perl or die; 14:15
camelia Perl 6 (6.c)
AlexDaniel m: sub verwenden(Perl:U $p) { say $p.new }; verwenden Perl or die; 14:21
camelia Perl 6 (6.c)
AlexDaniel I mean, I'd much rather use some other name than try to force “use” to work as a sub… 14:22
m: sub o:o { say ‘hello’ }; o:o 14:24
camelia hello
AlexDaniel hm, interesting. I thought it wasn't so easy to use : in sub names
tbrowder now i'm getting travis test errors with not finding module META6!! what am i doing wrong? 14:30
AlexDaniel I love this page: thelackthereof.org/Perl6_Colons 14:31
Zoffix hehe 14:36
Who runs it? 14:37
I'd have 2 contributions 14:38
Oh, spotted one. OK, 1 contribution
Oh, spotted one. OK, 0 contributions
Oh, spotted one. OK, -1 contributions
AlexDaniel Zoffix: awwaiid++ does 14:41
Zoffix: but you can edit the page yourself, it's a wiki
14:44 mr-fooba_ joined
Zoffix Ah 14:45
14:47 mr-foobar left 14:48 Aaronepower joined
AlexDaniel m: say (:?foo) # foo => False 14:48
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus statement
at <tmp>:1
------> 3say (:7⏏5?foo) # foo => False
expecting any of:
colon pair
AlexDaniel why is this not working? 14:49
Aaronepower Hello, what is the recommended way to share perl6 snippets here?
AlexDaniel Aaronepower: github gists work fine, but you can also use gitlab and bitbucket snippets if you want to 14:50
14:52 Skarsnik joined
AlexDaniel ok RT #131781 14:53
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131781
Aaronepower Can anyone explain to me this "expecting any of: colon pair" in a string error? gist.github.com/Aaronepower/8b6d7e...efe20994f3
AlexDaniel m: say "{25 + 5}" 14:54
camelia 30
Aaronepower I tried escaping the colon, but apparently that just made the compiler more confused.
AlexDaniel m: say qq[{25 + 5}]; 14:55
camelia 30
AlexDaniel m: say qq:!c[{25 + 5}];
camelia {25 + 5}
AlexDaniel Aaronepower: try qq:!c and see if it helps 14:56
Aaronepower What does that do?
AlexDaniel Aaronepower: {} in double quotes are understood as code blocks
Aaronepower AlexDaniel: Ah!
AlexDaniel: Yep, that worked thanks!
AlexDaniel Aaronepower: and :c tells it if this should happen or not. By default it's on it double quotes (or qq) 14:57
in*
14:58 Cabanossi left
AlexDaniel Aaronepower: here is the part of the docs that is relevant: docs.perl6.org/language/quoting#Li...strings:_Q 14:58
Aaronepower: there's also a documented trap that you might be interested in: docs.perl6.org/language/traps#Quot...erpolation 15:00
15:00 Cabanossi joined
Aaronepower AlexDaniel: Thank you. Also how do you remove all whitespace from a string? 15:01
AlexDaniel m: say ‘ hello world ’.trans(/\s/ => ‘’) 15:02
camelia helloworld
AlexDaniel Aaronepower: something like this? ↑
m: say ‘ hello world ’.subst(:g, /\s/, ‘’)
camelia helloworld
Aaronepower AlexDaniel: Why do you those style of quotes?
AlexDaniel Aaronepower: you don't have to. You can use '' or "" 15:03
Aaronepower: I prefer them because I can nest them, and I find them easier to read
m: say “hello “world””
camelia hello “world”
AlexDaniel m: say ‘also no need to escape ‘don't’ :)’
camelia also no need to escape ‘don't’ :)
Aaronepower AlexDaniel: I was just wondering they actually had different semantics than the standard. 15:04
AlexDaniel Aaronepower: relevant docs: docs.perl6.org/language/unicode_texas
Zoffix is -1 on :? 15:05
Pointlessly making an already complex feature more complex
AlexDaniel Zoffix: no, it's making it consistent
m: say ?25
camelia True
AlexDaniel m: say !25
camelia False
Zoffix But :! is not a colon followed by an operator. It's actual syntax
15:06 silug joined
AlexDaniel this doesn't really matter 15:06
Zoffix By that logic :+42foo should work too
AlexDaniel not really?
Zoffix And we might need an extra syntax in the future, so why waste it on something useless
AlexDaniel oh gosh…
Zoffix oh gosh what? 15:07
AlexDaniel :?foo will never be used for anything else because it is natural to assume that it gives you a * => True pair 15:08
in fact, I almost edited the page being completely sure that it does work
and then decided to try it, surprise-surprise!
Zoffix If you're going to suggest we need to lock in :?foo syntax for pointless feature because :!foo looks like a prefix ! op and we have ? prefix op too, I don't understand why you don't think :+42foo or :-42foo shouldn't work, since we have + and - prefix ops 15:09
AlexDaniel because ! gives me falsy things, and normally I can use ? to mean the opposite 15:10
it's not so much about “prefix”
ops*
Zoffix - gives me negative things, and normally I can use + to mean the opposite
AlexDaniel Zoffix: sure. Are there any places where + doesn't work like you expect when - does? 15:11
Zoffix AlexDaniel: nope. Just like ? works any place where I expect ! to work. 15:12
AlexDaniel except :?foo
unless you don't expect :!foo to work, but that's a whole different thing :) 15:13
Zoffix AlexDaniel: it's not a ! in :!foo. It's ":!". By your logic it should be possible to write ?? !! as !! ?? to mean the inverse
Colon pairs are probably the most complex syntax feature of the language. Expanding it even further for zero practical benefit is just stupid.
Zoffix &
AlexDaniel heh, that's an interesting take on !! ?? :) 15:14
15:16 sebk joined 15:18 BenGoldberg joined 15:22 zakharyas joined
AlexDaniel Zoffix: as masak++ has once put it: “"strangely consistent" is all about using loose connections people have in their brains, so that a feature feels syntactically vaguely right for various reasons. your proposal does the opposite.” 15:25
that's probably exactly what I wanted to say instead of the gibberish I produced :) 15:26
15:31 konsolebox left
SmokeMachine Is anyone having problem installing Test::META? 15:31
awwaiid Zoffix: I had one or two edits from my talk that I never made 15:33
But now I can't remember them offhand
AlexDaniel just watch the talk? :) It's like 5 minutes, isn't it? 15:34
SmokeMachine www.irccloud.com/pastebin/xksx5UIk 15:35
awwaiid yeah. technically I also have my slides :)
15:36 gdonald left
SmokeMachine m: travis-ci.org/FCO/6pm 15:37
camelia 5===SORRY!5=== Error while compiling <tmp>
Confused
at <tmp>:1
------> 3https:7⏏5//travis-ci.org/FCO/6pm
expecting any of:
colon pair
SmokeMachine travis-ci.org/FCO/6pm
15:38 konsolebox joined, konsolebox left 15:41 wamba left 15:42 konsolebox joined
Zoffix SmokeMachine: I think ugexe++ mentioned something failury about one of the JSON::* modules it depends on. 15:43
If Test::META is busted, then boy... I guess lots of ecosystem is busted too. 15:44
SmokeMachine: yeah, IIRC it's the :ver() thing that's busting it up. 15:45
SmokeMachine yes, but its META6:ver() required by Test::META 15:46
15:48 gdonald joined 15:49 wamba joined 15:51 ufobat joined
SmokeMachine www.irccloud.com/pastebin/lCSGWdCO/ 15:52
Zoffix SmokeMachine: yes, as I've said, the declared :ver() in the module is problematic 15:58
SmokeMachine: irclog.perlgeek.de/perl6-toolchain...i_14906393
ugexe he accepted PRs on two other modules, so feel free to send PRs for others 15:59
basically just s/"..*"/"+"/
m: say v1.0..*; say Version.new("1.0..*"); # otherwise who knows what you'll get 16:01
camelia v1.0..Inf
v1.0.*
ugexe m: say Version.new(v1.0..*) 16:02
camelia v1.0.*
awwaiid Colon page slightly updated, but turns out there were only clarifications no new colons
16:05 zakharyas left, zakharyas joined 16:08 lizmat left
eater hmmm, can I give my grammar state? I have a certain match that will decide the length of a different match, how do I do that? while still being able to stay inside the grammar 16:11
16:12 cdg joined, lizmat joined 16:14 gfldex left 16:15 gfldex joined
moritz eater: you can assign to dynamic variables within the grammar, for example 16:15
eater: and then use that in a <?{...}> assertion again 16:16
eater <?{ ... }> ? 16:17
moritz eater: search for ':my $*' in github.com/rakudo/rakudo/blob/nom/...rammar.nqp and then further occurrences of these variables
code assertions
eater moritz: those are not documentated afaik :o
moritz hey, that's a good topic I could talk about in my grammar book
eater \o/ 16:18
moritz leanpub.com/perl6regex talks about <?{ ... }> assertions already
16:20 zakharyas left
arnsholt In a nutshell <?{ CODE }> is a zero-width assertion that succeeds if CODE returns a true value, and fails if not 16:21
eater moritz: :') I am not allowed read that part w/o paying and I don't have the moeny, sorry :'))) 16:24
arnsholt: that's pretty cool 16:25
El_Che moritz: with that many books out and in the pipeline, you can set a moritz booth at yapc-eu 16:26
eater altho that means if I want to have it set a length limit that it needs to be executed as many times as the length is?
moritz El_Che: two books hardly justify a booth :-) 16:28
El_Che: and as I know lizmat++, she'll likely have a copy of my book at TPC if it ships early enough
lizmat yes, we'll order a bunch this weekend :-) 16:29
moritz \o/ 16:30
16:32 lizmat left 16:33 mr_ron joined 16:34 cdg left
eater oh damn 16:37
I found the solution :)
m: say "please dont cut me off" ~~ /. ** { say "I am being run."; 1..4 }/ 16:38
camelia I am being run.
「plea」
eater only executed once but control over length :)
thanks moritz and arnsholt
16:44 khw joined
El_Che moritz: you can have books and prospect leaflets for the future ones 16:45
:)
AlexDaniel eater: what do you mean by “once”? 16:53
16:53 Ven joined, Ven is now known as Guest13273, lizmat joined
eater AlexDaniel: moritz suggested using <?{ ... }> but would mean that would get executed over every character if I wanted to specify length, which is not optimal 16:54
with the code I just showed, I can immeditially give the wanted length
AlexDaniel right
well… I don't know… 16:55
eater AlexDaniel: how do you mean? 16:56
AlexDaniel eater: “once” is a very strong claim :) 16:57
m: say ‘ooo’ ~~ /‘o’? \w ** { say ‘hello’; 3..4 }/
camelia hello
hello
「ooo」
AlexDaniel m: say ‘ooo’ ~~ /‘o’? \w ** { say ‘once, right?’; 3..4 }/
camelia once, right?
once, right?
「ooo」
eater haha 16:58
AlexDaniel eater: in practice, it will be once most of the time, but not quite always :)
eater yeah, true, but it will still be less then 255+ times, which was more my point :) 16:59
16:59 Cabanossi left
AlexDaniel eater: okay then, sure. That being said, I remember myself doing crazy stuff assuming things are only done once, and then being proven wrong later :) 17:00
17:00 Cabanossi joined
AlexDaniel case in point: RT #130117 17:01
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130117
AlexDaniel m: say ‘abcz’ ~~ /:r [‘a’ || ‘abc’ ] {say ‘once?’} ‘z’ / 17:02
camelia once?
once?
「abcz」
AlexDaniel is no longer sure that it's a bug 17:03
17:03 mr_ron left
eater the docs say that :r forces LTM??? docs.perl6.org/language/regexes#Ratchet 17:06
zengargoyle totally re-jiggered my Time::Spec::at grammar to avoid having some grammar bits fire multiple times
AlexDaniel eater: no, simply tells it not to backtrack 17:07
eater: if you're using | then LTM is already implied
zengargoyle probably my fault for starting with the BNF? grammar in the .y file w/o trying to re-write it into more grammar-ish from the start. 17:08
17:08 ufobat left
AlexDaniel but it seems that backtracking is defined as something that happens across regexes/tokens, so inside one regex it is allowed even with :r 17:09
hm, or maybe not 17:10
m: say ‘oooo’ ~~ /:r ‘o’ ** 3..4 ‘o’/
camelia Nil
AlexDaniel okay, now I'm convinced again that it *is* a bug
(RT #130117 I mean)
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=130117
zengargoyle m: say ‘oooo’ ~~ /:r ‘o’ **? 3..4 ‘o’/ 17:11
camelia 「oooo」
zengargoyle AlexDaniel: ^^ greedyness 17:12
AlexDaniel m: say ‘oooo’ ~~ /:r ‘o’ **? 2..4 {say ‘once?’} ‘o’$/ 17:13
camelia once?
once?
「oooo」
AlexDaniel zengargoyle: ok, now I don't know again
zengargoyle :)
17:13 dotness joined
AlexDaniel m: say ‘oooo’ ~~ /:r ‘o’ **? 2..4 <?{say ‘once?’; True}> ‘o’$/ 17:14
camelia once?
once?
「oooo」
AlexDaniel it's very aggressive about it
zengargoyle but it's not backtracking, it's still going forward from the 'oo' first match.
it's only backtracking if it undoes the 'oo' match to try something else. i'm thinking... 17:15
isn't there a 'cut' like operator that actually means fail if you got this far and don't finish.... 17:16
17:21 dotness left
zengargoyle m: say ‘oooo’ ~~ /:r ‘o’ **: 2..4 <?{say ‘once?’; True}> ‘o’$/ 17:23
camelia once?
once?
once?
Nil
AlexDaniel zengargoyle: here it backtracks over <?{}> 17:24
zengargoyle: at least, that *was* my definition of backtracking… now I have no idea
eater maybe we can compare to diff langauges? 17:27
zengargoyle somehow i still think it's related to the candidate match only growing. things like <?{}> get fired twice because they're that sort of action thingy, but the actual match never shrinks in size. so yeah maybe definition of 'backtracking' 17:28
the .pos of the match never gets smaller.... 17:29
17:35 tharkun joined
zengargoyle m: say ‘boooo’ ~~ / ^ ['o'||'b'] 'o' **: 1..4 <?{say ‘once?’; True}> ‘o’$/ 17:37
camelia once?
Nil
eater I feel like it has to do with the greediness
zengargoyle m: say ‘boooo’ ~~ / ^ ['o'||'b'] 'o' ** 1..4 <?{say ‘once?’; True}> ‘o’$/ 17:38
camelia once?
once?
「boooo」
eater m: say 'help i like helps' ~~ / help \s* [ 'i' \s* [ .+ s ] || 'i' \s * 'like' ]/
camelia 「help i like helps」
eater m: say 'help i like helps' ~~ /:r help \s* [ 'i' \s* [ .+ s ] || 'i' \s * 'like' ]/
camelia 「help i like」
eater .+ will match as much as possible and not try to backtrack over it's selection to find a match for what follows up 17:39
m: say 'help i like helps' ~~ /:r help \s* [ 'i' \s* [ .+? s ] || 'i' \s * 'like' ]/ 17:40
camelia 「help i like helps」
eater but if you make it non-greedy, it works 17:41
hmmmm
zengargoyle i think <?{}> is zero-width so doesn't count for backtracking.
eater even if it did, backtracking is still being done over [ || ], even when they're 2 levels deep 17:42
which makes sense, otherwise your regex would never match in some cases 17:43
zengargoyle i left the :r out to test the : on **: 17:44
m: say ‘boooo’ ~~ /:r ^ ['o'||'b'] 'o' ** 1..4 <?{say ‘once?’; True}> ‘o’$/
camelia once?
Nil
zengargoyle sorta too confused 17:45
eater it's the qauntifier, im sure of it :') 17:46
m: say ‘boooo’ ~~ /:r ^ ['o'||'b'] 'o' **? 1..4 <?{say ‘once?’; True}> ‘o’$/
camelia once?
once?
once?
「boooo」
17:47 cdg joined
Zoffix If you don't need the value of code, you don't need to use `True` 17:48
17:48 itaipu joined
Zoffix m: say ‘boooo’ ~~ /:r ^ ['o'||'b'] 'o' **? 1..4 {say ‘once?’} ‘o’$/ 17:48
camelia once?
once?
once?
「boooo」
Zoffix m: "foomeow" ~~ /foo {say ‘once?’} bar {say ‘twice?’} meow/ 17:49
camelia once?
eater m: say ‘boooo’ ~~ /:r ^ ['o'||'b'] 'o' **? 1..4 <?{say $/.CURSOR.pos;}> ‘o’$/ 17:50
camelia 2
3
4
「boooo」
eater m: say ‘boooo’ ~~ / ^ ['o'||'b'] 'o' ** 1..4 <?{say $/.CURSOR.pos;}> ‘o’$/
camelia 5
4
「boooo」
eater m: say ‘boooo’ ~~ /:r ^ ['o'||'b'] 'o' ** 1..4 <?{say $/.CURSOR.pos;}> ‘o’$/
camelia 5
Nil
eater zengargoyle: ^
it does not backtrack over qauntified selections 17:51
zengargoyle m: say ‘boooo’ ~~ / ^ ['o'||'b'] 'o' ** 1..4 <?{say $/.CURSOR.pos;}> ‘o’$/ 18:19
camelia 5
4
「boooo」
zengargoyle backtrack
m: say ‘boooo’ ~~ / ^ ['o'||'b'] 'o' **? 1..4 <?{say $/.CURSOR.pos;}> ‘o’$/ 18:20
camelia 2
3
4
「boooo」
zengargoyle increasing
m: say ‘boooo’ ~~ /:r ^ ['o'||'b'] 'o' **? 1..4 <?{say $/.CURSOR.pos;}> ‘o’$/
camelia 2
3
4
「boooo」
zengargoyle m: say ‘boooo’ ~~ /:r ^ ['o'||'b'] 'o' **: 1..4 <?{say $/.CURSOR.pos;}> ‘o’$/ 18:21
camelia 5
Nil
Geth whateverable: 0301ef4bd2 | (Aleks-Daniel Jakimenko-Aleksejev)++ | 2 files
Show all characters if possible

Unicodable will now print all characters in its last message (only if it makes sense to do so).
Resolves issue #104.
... (11 more lines)
zengargoyle i'm probably missing someting. 'tis often the case. :) 18:22
eater zengargoyle: what part are you missing? 18:23
18:38 Guest13273 left 18:39 lizmat left 18:45 ilbot3 left 18:47 sebk left 18:49 ilbot3 joined, ChanServ sets mode: +v ilbot3
moritz Unicode test: ä² 18:52
\o/
18:54 Anopperl6 joined
Anopperl6 How to use translation or tr in perl6 18:54
moritz m: say "this is magic".trans("aeiou" => "AEIOU") 18:56
camelia thIs Is mAgIc
moritz Anopperl6: ^^
18:56 Ven joined
moritz Anopperl6: see docs.perl6.org/type/Str#method_trans 18:57
18:57 Ven is now known as Guest6808
sjn m: my $f = "foo"; $f ~~ tr/ <a..z> / <m..za..n> /; say $f 18:58
camelia raa
18:59 Cabanossi left, Anopperl6 left 19:00 Cabanossi joined 19:07 cdg_ joined, cdg left 19:12 TEttinger joined
zengargoyle eater: if i knew what i was missing i wouldn't be missing it. :) 19:20
eater zengargoyle: or would you?
19:20 darutoko left
eater if you dont know what you're missing, you're not missing anything right? :p 19:21
zengargoyle m: say "this is magic".trans(a => 'A', c => 'C')
camelia this is magic
zengargoyle always wanted ^^ to work.
moritz m: say "this is magic".trans("a" => 'A', "c" => 'C')
camelia this is mAgiC
moritz m: say "this is magic".trans(["a", "c"] => ["A", "C"]) 19:22
camelia this is mAgiC
zengargoyle lol, never occured to me to use "" around key.
19:24 ufobat joined 19:25 rindolf left
zengargoyle m: say (a=>'A'); say ('a'=>'A'); 19:28
camelia a => A
a => A
zengargoyle m: say (a=>'A'),perl; say ('a'=>'A').perl;
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
perl used at line 1
zengargoyle wha? 19:29
m: say (a=>'A').perl; say ('a'=>'A').perl;
doh.
19:29 lizmat joined
camelia Resource temporarily unavailable 19:29
zengargoyle m: say (a=>'A').perl; say ('a'=>'A').perl; 19:30
camelia :a("A")
:a("A")
zengargoyle so why is "a" => "A" different from a => "A"?
m: dd (a=>'A'); dd ('a'=>'A'); 19:31
camelia :a("A")
:a("A")
zengargoyle m: dd (a=>'A'); dd ("a"=>'A');
camelia :a("A")
:a("A")
19:32 itaipu left
moritz both construct a pair; the difference is named vs. positional in an argument list 19:32
zengargoyle is it all in the named ....
19:32 rindolf joined
BenGoldberg m: srand 42; say "h6eta,pJarrc euoklhrtn se ".comb.pick(*) 19:32
zengargoyle *nods*
camelia (J u s t a n o t h e r p e r l 6 h a c k e r ,)
zengargoyle i don't think i grokked the argument thing when i first ran into my confusion. 19:33
eater m: say "this is magic".trans({a => 'A', c => 'C'}) 19:34
camelia this is mAgiC
eater :D
SmokeMachine m: Version.new: “v0.0.4+”
camelia ( no output )
BenGoldberg m: dd Version.new: "v0.0.4+"
SmokeMachine m: say Version.new: “v0.0.4+”
camelia Version.new('v.0.0.4+')
vv.0.0.4+
zengargoyle BenGoldberg: ++
BenGoldberg m: say Version.new("v0.0.4+").perl 19:35
camelia Version.new('v.0.0.4+')
zengargoyle BenGoldberg++
BenGoldberg :)
SmokeMachine m: use META6:ver(v0.0.4+) 19:36
camelia ===SORRY!===
Could not find META6:ver<0.0.4+> at line 1 in:
/home/camelia/.perl6
/home/camelia/rakudo-m-inst-1/share/perl6/site
/home/camelia/rakudo-m-inst-1/share/perl6/vendor
/home/camelia/rakudo-m-inst-1/share/perl6
Com…
19:37 PerlJam joined
pmurias AlexDaniel: re strangely consistent wasn't Zoffix just proposing not adding something we don't need? 19:42
AlexDaniel pmurias: yes, but what do you mean? 19:43
pmurias AlexDaniel: I don't think we should add something just for strange consistency 19:46
AlexDaniel pmurias: well, what we have now is strange inconsistency 19:47
19:49 itaipu joined
AlexDaniel pmurias: but I'm not against discussing the topic properly. Maybe indeed it's not that good of an idea, just please no irrelevant nonsense 19:50
fwiw, the change itself is a tiny 2 line patch 19:52
pmurias what would :?foo do? 19:54
AlexDaniel the opposite of :!foo 19:56
I would have expected :foo to be a shortcut for :?foo, but you know :) Got them other way round
pmurias :?foo would be just a worse form of :foo 19:57
I don't see ? as an opposite of ! 19:58
AlexDaniel m: say ?42
camelia True
AlexDaniel too bad we have this then
pmurias I see ? as the "is this true?" operator not as a double negation 19:59
AlexDaniel that's an interesting point, I've never thought about it this way 20:00
like, to me ? was the commonly missing counterpart for !
timotimo no, ! is the opposite of ?
:P
Skarsnik :?foo is not like optionnal parameter foo? xD 20:01
20:01 BenGoldberg left
Skarsnik *confuzzled* 20:02
AlexDaniel Skarsnik: huh?
Skarsnik hm I am confusing with :?$foo is sub declaration maybe?
AlexDaniel Zoffix: Oh! 20:03
m: sub foo($bar!) { say $bar }; foo()
camelia 5===SORRY!5=== Error while compiling <tmp>
Calling foo() will never work with declared signature ($bar)
at <tmp>:1
------> 3sub foo($bar!) { say $bar }; 7⏏5foo()
AlexDaniel m: sub foo($bar!) { say $bar }; foo(42)
camelia 42
AlexDaniel so now we have two 20:05
20:05 dwarring joined
AlexDaniel on the other hand, we don't have ! in regexes 20:08
20:09 cdg_ left
pmurias AlexDaniel: anyway I feel that just being strangely consistent is not a reason to add something, in programming languages there are always things that you can imagine how they would work and are not allowed 20:09
AlexDaniel pmurias: true, but why not allow them if it's so easy? 20:10
pmurias because they are useless
geekosaur maintenance costs down the road, for one
20:11 emeric joined
geekosaur sounds YAGNI to me 20:11
pmurias and strange consistentcy is subjective
AlexDaniel /o\ come on, that's not a feature that requires hundreds lines of code
we've just spent more time discussing it than we'd have to spend to maintain the damn thing
pmurias why would anyone ever use :?foo? 20:14
AlexDaniel Interestingly, ?/! in signatures is probably the side effect of having positional parameters required by default and named parameters not required. With both ?/! you can switch back and forth 20:15
Skarsnik Did you discuss some defined operator? like to replace stuff like if $foo.defined and $foo < 6 ?
AlexDaniel Skarsnik: no, pairs 20:16
m: say (:!foo) 20:17
camelia foo => False
AlexDaniel therefore…
m: say (:!foo) # ?
camelia foo => False
AlexDaniel m: say (:?foo) # ?
camelia 5===SORRY!5=== Error while compiling <tmp>
Bogus statement
at <tmp>:1
------> 3say (:7⏏5?foo) # ?
expecting any of:
colon pair
Skarsnik Ok, carry on
AlexDaniel pmurias: one could be aligning the code vertically, but then you could say that a space or an unspace will do :) 20:18
oh, unspace won't…
for me the learning itself makes a good point. Like, once you understand that ? is used somewhere like this, then you immediatelly know about prefix:<?> and ! for required named args 20:20
20 minutes ago I didn't really know about required named args (I should've seen them somewhere, but it never really crossed my mind), now I do :) 20:22
or maybe I did, I don't know now… given that I was assuming that you can switch from ? to ! and other way round, I guess I knew?
pmurias AlexDaniel: you assume that everyone views ? as an opposite of ! (double negation) 20:25
AlexDaniel well, I view it as non-negation, but I understand it in a weird way 20:26
I assume people view ? and ! as two opposite things though, yes
especially when this pattern is established by two precendents 20:27
20:32 alexi5_ joined
Zoffix AlexDaniel: have two what? 20:33
AlexDaniel Zoffix: well, two cases when ? does the opposite of ! 20:34
or other way round, doesn't really matter
Zoffix "that's not a feature that requires hundreds lines of code "
Maintenance isn't about writing initial code.
It's everything that happens after. Like some conflict in interaction of features. 20:35
AlexDaniel we've talked for way more than what the maintenance would take /o\
Zoffix m: say [<foo>]
camelia [foo]
20:35 alexi5 left
Zoffix m: say [[<foo>],] 20:35
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in bracketed infix; couldn't find final ']'
at <tmp>:1
------> 3say [[<7⏏5foo>],]
Zoffix AlexDaniel: ^ there is a formal ambiguity in that code. How can you guarantee you're not introducing the same shit elsewhere with your proposal? 20:36
Stop adding features just because you can. There's a word for it: featuritis.
AlexDaniel well, given enough effort you can reject any feature also 20:37
Zoffix AlexDaniel: as for "now we have two". There's a big difference: $foo! actually does something useful. :?foo doesn't
AlexDaniel blargh 20:38
like talking to a wall
does $foo actually do something useful?
Zoffix As for wasting time talking instead of writing features we don't need. We could instead use that time fix existing bugs.
You were the proponent of adding ≤ and ≥. How about you fix their bugs first instead of adding more stuff? 20:39
AlexDaniel I mean, :$foo! is, but $foo …
you mean the PERF one? 20:40
Zoffix Yes.
AlexDaniel oops, I seem to have missed the ! in both messages :) 20:41
Zoffix As for talking to the wall: you haven't responded to the critique of your proposal: how do you guarantee it will be a bening consistency-enhansing quirky code that works instead of creating ambiguity in some construct that will require workaround, like the ambiguity in <> arrays and reduce ops 20:42
20:42 domidumont left
AlexDaniel well, I also haven't seen any ambiguity yet 20:43
mainly because I've *just* submitted the ticket…
Zoffix You want to alter a feature used all over the entire language by adding functionality that will be documented as "but there's no reason to do this"
AlexDaniel and also “how do you guarantee there are no bugs”, well, you know the technically correct answer to that /o\
Zoffix Design flaw isn't a technical bug. It's a flaw in design. 20:44
AlexDaniel well there's no reason to do $bar? also
ok enough
Zoffix You can't fix a design flaw by replacing broken code. You often have to continue to support. 20:45
is-deeply is a case in point
Or even better case in point: &is Its design was taken from Perl 5, but in Perl 6 it's nearly useless and almost always a wrong routine to use for testing. 20:47
Zoffix &
20:50 ufobat left 20:51 eyck left
zengargoyle 13:36 < Zoffix> Stop adding features just because you can. There's a word for it: featuritis. -- lol ²² :P 20:51
pmurias remembers fixing a bug in the ²² feature 20:52
AlexDaniel pmurias: what was the bug?
pmurias when the exponent was bigger than 64bitss 20:53
zengargoyle m: say so ²² == 4 20:54
camelia True
zengargoyle can't be worse than :?foo 20:55
logic be damned....
zengargoyle tilts at windmills.
pmurias zengargoyle: the fact that we have some silly things doesn't mean we need to add more ;) 20:56
20:56 BenGoldberg joined
AlexDaniel pmurias: it looks like the bug was for both ** and unicode exponents, no? 20:58
zengargoyle: not sure what you mean by what you've just said
zengargoyle: there was a PR to resolve ²² issue, but it was rejected because featuritis or something
zengargoyle: ah, it was because “let's not introduce edge cases to common rules” or something like that, because we're designing for the parser and not for a human of course 21:00
21:03 rindolf left 21:04 dugword joined 21:09 cdg joined 21:11 alexi5__ joined 21:14 cdg left 21:15 alexi5_ left
zengargoyle AlexDaniel: yeah, it's a decent idea maybe (IMHO) where actual Unicode isn't up to the task to determine whether a thing is a number or a 'special type' of number. 21:17
dugword Hey all, I noticed some odd behavior in my perl6 program 21:18
I have an array and I am trying to flatten it so I can pass it into a sub.
However, when I use the pipe "|" prefix operator to flatten it one of my values gets changed from (Any) to (Mu) like this:
my $op = [Any, "NULL", "null", Any, Any, Any]
say |$op
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/3rg2WU8jnM
Variable '$op' is not declared
at /tmp/3rg2WU8jnM:1
------> 03say |08⏏04$op
dugword # (Any)NULLnull(Mu)(Any)(Any)
say $op.values
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/EDW96S_5NE
Variable '$op' is not declared
at /tmp/EDW96S_5NE:1
------> 03say 08⏏04$op.values
dugword # ((Any) NULL null (Any) (Any) (Any))
I cannot replicate this quirk outside of my very large program (2428 lines of code in a single file translated from an archaic perl5 program), so I'm sure theres some weird state I have created.
But should this ever be possible? And are there any ways I can inspect the values of the $op array to see if I have something odd going on?
I have a work around to get my program working, but it seems goofy I would get different results from using "|" and I am curious if this might be a perl6 bug.
zengargoyle so ² is first a Number and parses as such, then there is a *special* case that /^¹²³.../ are operators and also multiple Nu's get turned into an actual Int power. go figure. 21:19
AlexDaniel dugword: so you get only one Mu? 21:20
dugword Yeah
Skarsnik that prety weird lol
zengargoyle i'd also think :?$foo would boolify into foo=>True or foo=>False.
dugword Right, lol
zengargoyle if say $foo were "hello"
AlexDaniel zengargoyle: well, that's a whole different question. Right now :!$foo doesn't work
zengargoyle yeah, just extending the map of things in my head.... :) 21:21
Skarsnik m: my $op = [Any, "NULL", "null", Any, Any, Any]; say |$op
camelia (Any)NULLnull(Any)(Any)(Any)
AlexDaniel dugword: well, I don't mind looking at 2428 line file :) 21:22
dugword If you are that brave I'm happy to send it somewhere
AlexDaniel because I can reproduce this easily
m: my $op = [Any, "NULL", "null", Any, Any, Any]; $op[3] = Mu; say $op
camelia [(Any) NULL null (Mu) (Any) (Any)]
AlexDaniel look! a Mu!
Skarsnik xD
AlexDaniel dugword: well, if you don't mind others looking, then gist.github.com perhaps 21:23
dugword: if you do, then we can try [email@hidden.address]
dugword Yes.. github... where I already have it hosted
zengargoyle thinks just like other languages real and concieved, sometimes symmmetry just isn't there, which to me raises more questions than it answers. 21:24
AlexDaniel Skarsnik: by the way, any news regarding the segfault of Gumbo? 21:26
Skarsnik I don't have it
It does not happen in my 32 bits vm and my 64bits vps
AlexDaniel hmmm let me try it again 21:27
maybe it disappeared
Skarsnik but I did not updated gumbo, but it does not happend too in travis 21:28
21:28 jameslenz left
AlexDaniel Skarsnik: :O IT WORKS! 21:29
yess
Skarsnik ^^
21:30 emeric left
AlexDaniel Skarsnik: should we add it as a stress test in Gumbo repo? 21:30
BenGoldberg m: print 'Look, a μ';
camelia Look, a μ
Skarsnik hm 21:31
AlexDaniel Skarsnik: ah wait, it didn't go away
just reproduced it…
Skarsnik Oo
AlexDaniel Skarsnik: ok, if I give you ssh access to a machine where this happens, will you be able to take a look?
pmurias AlexDaniel: I looked it up, the unicode exponents had a bug of their own
dugword github.com/dugword/perl-Convert-AS....pm6#L1100 That's where I am seeing the oddness
Skarsnik I don't think I can do something about it, the perl6 code is pretty simple 21:32
and I quite sleepy now x)
dugword If you clone the repo and run `perl6 t/00prim.t` you'll see the output where the quirk is right near the end 21:33
AlexDaniel pmurias: well, I guess you fixed both bugs then at the same time gist.github.com/c91a1cb511e2e1424c...4e9459b4fc gist.github.com/a49301c13e12991d28...c8572976c5
Skarsnik But yeah, feel free to add it to the gumbo rep and travis
AlexDaniel pmurias: wrong gist, this one: gist.github.com/6e47f7aaf6803e6d8c...a5a62098bd
damn, not this one also :) 21:34
this and this gist.github.com/Whateverable/6e47f...a5a62098bd gist.github.com/Whateverable/3c398...c6c04185bc 21:35
Skarsnik AlexDaniel, maybe you can paste your gumbo version in the issue? 21:38
AlexDaniel Skarsnik: hm, zef says just “Gumbo:auth('Sylvain Colinet')” 21:40
Skarsnik: right, because the version is just "*"
Skarsnik I mean the C lib 21:41
AlexDaniel Skarsnik: 0.10.1+dfsg-2.1
from the debian package 21:42
Skarsnik is that testing?
AlexDaniel yes
there's no newer version than that 21:43
dugword: ok, reproduced 21:44
dugword Woo!
Skarsnik I only installed the lib from source 21:45
since it's not in stable :(
AlexDaniel dugword: interesting. “say” shows no Mu-s, “.perl” also 21:48
but if you flatten, then there are Mu-s :)
MasterDuke @$op doesn't have Mus, but |$op does 21:49
AlexDaniel yup, even dd gives no Mus
Skarsnik root@debian:/home/skarsnik/perl6# rakudo/install/bin/perl6 -I perl6-gumbo/lib/ -I exemel/lib/ crashgumbo.p6
should've crashed before reaching this
dugword Yeah it took a while to find where the Mu was coming from when I saw it later in the program 21:50
AlexDaniel Skarsnik: you think I should try compiling it from source? 21:51
Skarsnik I am just testing with the same version from debian than you
Linux debian 4.3.0-1-686 #1 SMP Debian 4.3.3-2 (2015-12-17) i686 GNU/Linux 21:52
AlexDaniel Skarsnik: Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.43-2+deb8u2 (2017-06-26) x86_64 GNU/Linux 21:53
but I don't think it should matter much
Skarsnik This is Rakudo version 2017.06-133-ga7b2304 built on MoarVM version 2017.06-29-ga51ba62
this is confusing
AlexDaniel This is Rakudo version 2017.07-11-g91be8bc1c built on MoarVM version 2017.07 21:54
but I've been having this issue for several months now
like, since I reported it, and probably even earlier
Skarsnik: you sure you don't want ssh access? :) 21:55
Skarsnik I just realised something 21:58
it does not show something
.say for parse-html($response).root.elements(:TAG<a>, :RECURSE); 21:59
show nothing on my 32 bit vm
AlexDaniel Skarsnik: I see a lot of output 22:01
dugword: this is a very interesting issue. Maybe you should start deleting code until you golf it down?
samcv i found a decent way to seed srand if you want a more random seed 22:02
srand (qx{od -An -N4 -i /dev/random}.trim + qx{od -An -N4 -i /dev/random}.trim +< 32);
will read a 64 bit integer from /dev/random and set that as the seed
Skarsnik Hoo no curl on this
AlexDaniel samcv: this can hang for quite a bit if you exhaust it, I think
samcv it's only getting a 64 bit integer. it only reads 8 bytes 22:03
AlexDaniel samcv: this doesn't mean that there are 8 bytes readily available :)
samcv too bad :P
AlexDaniel but the chances are good, yes
Skarsnik aaah 22:04
skarsnik@vps300582:~/perl6/benchmark$ rakudo-2017.07/install/bin/perl6 -I exemel/lib/ -I perl6-gumbo/lib crashgumbo.p6 > /dev/null
MoarVM panic: Internal error: zeroed target thread ID in work pass
AlexDaniel yaaaaaaaaaaay!
yes, that's what I'm seeing
dugword AlexDaniel: I'll try that
Skarsnik 06 give me the heap corruption 22:05
testing with 2016.01.1 22:07
so slow xD
AlexDaniel Skarsnik: yeah, I've noticed that it is much faster now
22:09 epony joined 22:10 lizmat left 22:11 cdg joined
AlexDaniel dugword: o! I think I see something 22:12
Skarsnik I get a new one lol
MoarVM panic: Internal error: invalid thread ID 152231488 in GC work pass
ok 2016.01.01 did not crash 22:13
22:15 cdg left
AlexDaniel Skarsnik: are you sure? 22:15
Skarsnik: because if so, then I can bisect it
Skarsnik I am doing that 22:16
well bisecting only with release
since I have them all compiled
samcv hmm maybe i should do that
is there some way i can automate that tho
AlexDaniel well, this particular one I can do with bisectable 22:17
samcv how much space does bisectable need
AlexDaniel 60 GiB or so
samcv hm
well i don't have that much
AlexDaniel but most of the time you don't need to bisect as much 22:18
so maybe under 15 GiB
Skarsnik gist.github.com/Skarsnik/9e66ab5fc...f34bd92d22
I have a texte file with rakudo release listed x)
probably could ask github to get them
samcv i wish i had a texte file. i only have text files :( 22:19
AlexDaniel a better question is why would you need this if there's bisectable :)
samcv because it could be down
or i want to run more extended tests
and i like being self sufficient 22:20
Skarsnik, can i get your rakudoversion.txt?
AlexDaniel samcv: there this thing also: github.com/perl6/whateverable/issues/174
22:21 itaipu left
AlexDaniel samcv: in theory, I can write a script tha would bisect locally, but pull builds that are already available 22:21
if not, it can always downgrade to building rakudo locally, right? :)
samcv appimages of all releases would be nice too
AlexDaniel oh, or that
samcv but i'm lazy and don't have time to do that atm 22:22
Skarsnik gist.github.com/Skarsnik/9e66ab5fc...f34bd92d22
should have the rakudoversion.txt file
2016.06 crash too
running old version of rakudo is so slow lol 22:23
samcv your file has a syntax errror 22:24
AlexDaniel samcv: in theory, appimages are not strictly required in this particular case, I think 22:25
it's built somewhere in /tmp, so sure enough should be installable on most systems :)
unless you have different architecture or something
22:26 setty1 left
Skarsnik I should have removed the 500 instead of 100 that I put for the loop xD 22:27
samcv i guess i'm now compiling all the rakudos 22:28
Skarsnik 16.02 is fine too
04 crash 22:30
22:30 lizmat joined
dugword AlexDaniel: What did you find? 22:35
22:35 Guest6808 left
Skarsnik AlexDaniel, ok so 2016.03 is fine, 2016.04 crash that give you a starting point to bisect probably 22:37
skarsnik@vps300582:~/perl6/benchmark$ rakudo-2016.04/install/bin/perl6 -I exemel/lib/ -I perl6-gumbo/lib crashgumbo.p6 > /dev/null
Internal error: zeroed target thread ID in work pass
skarsnik@vps300582:~/perl6/benchmark$ rakudo-2016.03/install/bin/perl6 -I exemel/lib/ -I perl6-gumbo/lib crashgumbo.p6 > /dev/null
skarsnik@vps300582:~/perl6/benchmark$
AlexDaniel Skarsnik: the real problem of bisecting like this is modules and dependencies 22:38
and also precomp files :)
Skarsnik I think they get redone when you give a path like this? 22:39
AlexDaniel hm, maybe. I should make it easier for sure
22:40 Guest90987 left
Skarsnik and if I remember correctly pre comp is... something around these releases 22:40
ugexe if you pass callbacks into a native lib you might want to try HEAD 22:44
github.com/MoarVM/MoarVM/commit/49...81c9eefc5c
AlexDaniel dugword: I'm not sure… got sidetracked with this stuff :) 22:45
Skarsnik hm
AlexDaniel Skarsnik: oh gosh it's so slow :) 22:48
Skarsnik pre comp is very slow around that
that does not help too x)
AlexDaniel well, it's crunching something, so I'll just let it run… 22:49
22:52 pmurias left 22:53 deep-book-gk_ joined, pmurias joined 22:54 deep-book-gk_ left 22:55 alexi5 joined, lizmat left 22:57 Morfent joined, alexi5__ left 23:00 cdg joined, lizmat joined, Ptolemarch joined
nadim given a string "aaabbbabbababab", where b can be matched by a regex, I'd like to get a kist of tuple like: ('a', 3), ('b', 3), ('a', 1), ('b',2) ...) what's the best contruct to use? 23:06
jnthn m: "aaabbbabbababab".match(/(.)$0*/, :g).map({ ~.[0], .chars }).say 23:12
camelia ((a 3) (b 3) (a 1) (b 2) (a 1) (b 1) (a 1) (b 1) (a 1) (b 1))
23:12 cpage_ left
nadim can I get a quick explanation of the regex? specialy $0* 23:14
zengargoyle m: say ("aaabbbabbababab" ~~ m:g/(.)$0*/).map({~$_ => $_.chars});
camelia (aaa => 3 bbb => 3 a => 1 bb => 2 a => 1 b => 1 a => 1 b => 1 a => 1 b => 1)
zengargoyle darn..
AlexDaniel Skarsnik: it crashes on this commit: github.com/rakudo/rakudo/commit/40a953f
Skarsnik: and does not crash on its parent
nadim m: "baaabbbabbababab".match(/(.)$0*/, :g).map({ ~.[0], .chars }).say 23:15
camelia ((b 1) (a 3) (b 3) (a 1) (b 2) (a 1) (b 1) (a 1) (b 1) (a 1) (b 1))
Skarsnik what
it's just a revision bump
AlexDaniel, wait it's probably a bug in Moar?
AlexDaniel Skarsnik: well, I only bisected rakudo, yes
jnthn nadim: $0 is a backreference 23:16
AlexDaniel buggable: help
buggable AlexDaniel, tags | tag SOMETAG | eco | eco Some search term | author github username | speed | testers CPANTesters report ID
nadim jnthn: thank you, I just got it, it's like p5
jnthn Yeah, except numbers from 0 not 1 :)
nadim right! and right. :)
Skarsnik good luck bisecting Moar :(
nadim I guess split would have worked too 23:17
AlexDaniel Geth: ver github.com/rakudo/rakudo/commit/40a953f
zengargoyle needs to remember .match() exists.
Geth AlexDaniel, version bump brought in these changes: github.com/perl6/nqp/compare/2016....7-gbdb13a2
AlexDaniel Geth: ver github.com/perl6/nqp/commit/bdb13a...9fc25a411d
Geth AlexDaniel, version bump brought in these changes: github.com/MoarVM/MoarVM/compare/2...4-g10d3971
MasterDuke timotimo, jnthn, Zoffix: have you seen dugword's problem above? both AlexDaniel and i have reproduced it
nadim m: "baaabbbabbababab".split(/b+/) 23:18
camelia ( no output )
AlexDaniel MasterDuke: well, it's hard to do something about it until it's golfed down
MasterDuke: I have like half of what was provided, but I can't say that it is enough :)
nadim m: "baaabbbabbababab".split(/b+/).say
camelia ( aaa a a a a )
nadim m: "baaabbbabbababab".split((/b+/)).say 23:19
camelia ( aaa a a a a )
AlexDaniel Skarsnik: well, we only have these nqp and moar commits ↑
MasterDuke yeah, but maybe they know where to start trying to golf
nadim m: "baaabbbabbababab".split((/b+/), :v).say
camelia ( 「b」 aaa 「bbb」 a 「bb」 a 「b」 a 「b」 a 「b」 )
jnthn MasterDuke: No, just found it in the backlog but no initial guesses
nadim m: "baaabbbabbababab".split((/b+/), :p).say 23:20
camelia ( 0 => 「b」 aaa 0 => 「bbb」 a 0 => 「bb」 a 0 => 「b」 a 0 => 「b」 a 0 => 「b」 )
jnthn MasterDuke: Though the usual things to try when getting odd behaviors (like run without JIT or spesh to rule those out) hold :)
23:21 luxio joined
MasterDuke | or .Slip does it 23:21
luxio o/
MasterDuke ah, haven't tried those yet
AlexDaniel Skarsnik: I don't know… now what? 23:22
nadim m: "baaabbbabbababab".match(/(b)$0*/, :g).map({ ~.[0], .chars }).say
camelia ((b 1) (b 3) (b 2) (b 1) (b 1) (b 1))
MasterDuke but did get same behavior with 2016.12
Skarsnik Look like there was lot of work on these commit
I don't think there are lot of people that understand MoarVM code x) 23:23
AlexDaniel Skarsnik: well, I'm pretty sure we can ignore nqp changes
MasterDuke still there after disabling spesh and jit
nadim jnthn: match example does not work, it needs to match b specifically not just any character. in my case b is an ansi color code matched by regex color { \[ \d+ [\;\d+]* <?before [\;\d+]* > m }
m: "baaabbbabbababab".split((/b+/), :v).say 23:24
camelia ( 「b」 aaa 「bbb」 a 「bb」 a 「b」 a 「b」 a 「b」 )
23:25 luxio left
Skarsnik AlexDaniel, dunno add these commit info to the ticket on RT and ping someone that more knowlegeable? 23:26
AlexDaniel Skarsnik: well, the first part is already done… 23:30
Skarsnik It's funny because I ran a script that did 40 parse and it never crash (but it leaked in the XML module code) 23:31
AlexDaniel, for funsie call parse-html once and call elements() lot of time and watch the memory usage of the script 23:34
(on a sizeable html page)
I stopped my VM
AlexDaniel Skarsnik: is it so on the most recent rakudo also?
Skarsnik I dunno, I wanted to try but realise I closed the VM xD 23:35
AlexDaniel Skarsnik: well, I don't know… Some of the commits touched garbage collection 23:36
Skarsnik: so there's a chance that the answer is no there at all
Skarsnik gist.github.com/Skarsnik/03b970d2a4b827ba1e1d let see 23:37
jnthn iirc the commits in question fixed a bug where some objects were not collected that should have been, leading to a leak
This could have hidden bugs in NativeCall-using code that was not keeping hold of objects for the duration that C code that was passed them needed them
AlexDaniel jnthn: any chance that it collects things that should not be collected? 23:38
jnthn Very low
Well, in the "becuase MoarVM bug" sense
However, if you allocate an object instance of CStruct REPR and pass that to C land, and the C code stashes it away somewhere, then you don't keep hold of the object you passed so long as the C code needs it, then the GC will nom it and free the memory the C code would like to have. 23:39
23:40 dj_goku joined, dj_goku left, dj_goku joined
AlexDaniel (if anybody is wondering, this is about RT #131003) 23:40
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131003
Skarsnik holy fuck 23:41
After parsing :460.164 kb
Afterlookfor :461.552 kb
Afterlookfor :462.592 kb
400 Mo
this is crazy xD
the leak is weird with this one 23:42
23:43 Cabanossi left
Skarsnik gist.github.com/Skarsnik/69bb87516...ffd846c9fa 23:44
jnthn Hmm, those gdb backtaces since I last looked at the RT are intresting
23:44 luxio joined
luxio Does strawberry perl support perl 6? 23:44
My installation is only running 5.26 23:45
Skarsnik Probably not
23:45 Cabanossi joined
Skarsnik This leak confuse me 23:46
why it gains 60MB like that
It grows slowy and do 2Mb more sometime now after a while 23:47
AlexDaniel Skarsnik: wait, 60MB? am I reading this correctly? 23:48
MasterDuke Skarsnik: do you know heaptrack? it's useful for memory stuff
Skarsnik Look the gist xD
jnthn luxio: No; you can get an MSI for Perl 6 though perl6.org/downloads/ 23:49
Rest time here; 'night all o/ 23:50
Skarsnik good night jnap_
*jnthn
luxio jnthn: Thanks, seems to be what I'm looking for.
23:54 wamba left