»ö« 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
|