»ö« 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:08 evalable6 left, evalable6 joined, ChanServ sets mode: +v evalable6 00:15 margeas left
jdv79 what does "Unexplained error" actually mean? 00:16
guess i'll upgrade 00:17
i had a program that was working and then it seemed to just stop 00:18
gist.github.com/anonymous/23d027a8...20cafd2458 00:20
00:23 ACTPic joined 00:25 ACTPic left 00:26 APic joined 00:28 leah2 joined
MasterDuke jdv79: lizmat did some stuff with exceptions today i think, how new/old is your rakudo? 00:30
jdv79 it was a few days old and now its latest 00:31
both error the same
very strange. one minute it was fine and then seemingly inexplicably that odd error 00:32
00:32 troys is now known as troys_ 00:37 mcmillhj left
timotimo m: die X::AdHoc.new 00:40
camelia Unexplained error
in block <unit> at <tmp> line 1
timotimo the awaiter stuff is deep, deep magic 00:41
timotimo goes to bed 00:42
in the gist i'm kind of surprised it doesn't have the "original" stack trace 00:43
i don't think the stack trace should point at the rethrow method?
00:43 Cabanossi left 00:45 leah2 left, Cabanossi joined
jdv79 so it appears i can't get a proc::async or a qqx ot complete 00:56
they jut hang
*just
timotimo you're not fork()ing, right? 01:00
jdv79 truly bizarre
timotimo no, i really should go sleep 01:01
jdv79 if i strace the program with the block proc async or qqx then i get the Unexplained error
timotimo good luck!
jdv79 until i reboot
wth!
ok, thanks
some resource getting depleted or put into a bad state. dmesg doesn' treport anything 01:02
timotimo you could perhaps try if use v6.d.PREVIEW does anything, but i don't have high hopes
jdv79 i am not forking afaik
that's what i am using
timotimo OK
jdv79 nite 01:03
timotimo compiling moarvm with its configure.pl having --telemeh passed and then setting MVM_TELEMETRY_LOG to some filename will result in a file that has a bit of extra info about threads and locks and such
there's not yet a tool that makes it more easily digestible, though
jdv79 ok. i'll try to golf it tomorrow i guess
timotimo that would be helpful
'nite 01:04
01:05 evalable6 left, evalable6 joined, ChanServ sets mode: +v evalable6 01:13 Cabanossi left 01:15 Cabanossi joined 01:17 dj_goku joined, dj_goku left, dj_goku joined 01:24 leah2 joined 01:36 mcmillhj joined 01:39 eliasr left 01:43 mcmillhj left 01:44 Cabanossi left 01:45 Cabanossi joined 01:46 ilbot3 left 01:52 hoffentlichja joined 01:55 matiaslina joined 01:56 ilbot3 joined, ChanServ sets mode: +v ilbot3 02:03 lexinad joined 02:10 mcmillhj joined 02:17 lexinad left 02:19 zakharyas joined 02:20 leah2 left 02:36 leah2 joined 02:41 troys_ is now known as troys 02:42 kurahaupo joined 02:45 noganex joined 02:48 noganex_ left 02:54 leah2 left 02:58 Cabanossi left 03:00 Cabanossi joined 03:06 xinming_ left 03:07 xinming joined 03:12 matiaslina left 03:13 lexinad joined 03:14 lexinad left 03:19 lexinad joined, zakharyas left 03:27 mcmillhj left 03:29 mr-foobar left 03:32 mr-foobar joined 03:37 lexinad left 03:43 leah2 joined, Cabanossi left 03:45 Cabanossi joined 03:46 Pilu left 03:47 pilne joined 03:58 leah2 left, Cabanossi left 03:59 Cabanossi joined 04:00 mr-foobar left 04:02 troys is now known as troys_ 04:04 mr-foobar joined 04:05 skids left 04:15 BenGoldberg left 04:16 leah2 joined 04:26 leah2 left 04:27 wamba joined 04:33 wamba left 04:35 troys_ is now known as troys 04:38 cgfbee left 04:44 leah2 joined 04:46 aborazmeh joined, aborazmeh left, aborazmeh joined 04:50 aborazmeh left 04:57 Cabanossi left 04:59 Cabanossi joined
hoffentlichja m: subset MyStr of Str where 4 < *.chars < 10; my MyStr $s = 's'; 05:10
camelia ===SORRY!===
QAST::Block with cuid 1 has not appeared
hoffentlichja what's happening here, how can I set that constraint? 05:11
the error message is a bit cryptic 05:15
geekosaur it's an internal error that shouldn't happen
05:15 pilne left
hoffentlichja geekosaur: but the syntax is correct? it happens on my system as well 05:16
I thought it's because of incorrect syntax
geekosaur happens on mine as well. I'm not sure if it's supposed to work or not
'where' is known to be a bit finicky
05:17 HoboWithAShotgun joined
geekosaur but not this kind of finicky; that error means the compiler got confused about what it's parsing 05:17
hoffentlichja so how do I set that constraint then? 05:18
geekosaur have to do it with normal parameter syntax, looks like 05:19
m: my &s = 4 < *.chars < 10; say &s("sssss")
camelia ===SORRY!===
QAST::Block with cuid 1 has not appeared
geekosaur looks like WhateverCode parsing doesn't mix well with chained comparisons
m: subset MyStr of Str where {4 < $_.chars < 10}; my MyStr $s = "s"; 05:20
camelia Type check failed in assignment to $s; expected MyStr but got Str ("s")
in block <unit> at <tmp> line 1
hoffentlichja yea but isn't what type constraints are for? it gives the same error anyway
geekosaur: that's what I was looking for, it was because of the syntax after all 05:22
geekosaur it's not incorrect syntax; it's a bug in the compiler
I'm composing a ticket
hoffentlichja so it should work the way I wrote it initially as well? 05:23
geekosaur it should, yes.
hoffentlichja alright, good to know
geekosaur but it's not handling the combination of chained comparisons (4 < ... < 10) and WhateverCode (*.chars)
which is what I was testing with the &s thing, to make sure it wasn;t somehow related to it being in a 'where'
hoffentlichja I see 05:24
05:24 kyan left
geekosaur RT #132206 05:24
synopsebot RT#132206 [new]: rt.perl.org/Ticket/Display.html?id=132206 Compiler error on WhateverCode and chained comparisons 05:25
05:27 mempko joined
hoffentlichja I didn't think it was a bug because I thought someone would have surely noticed this way before me 05:28
05:30 FK04 left 05:31 FiendKing04 joined 05:37 AlexDaniel left 05:38 nadim joined 05:43 kurahaupo_ joined 05:46 kurahaupo left 05:47 leah2 left 05:49 kurahaupo_ left 05:50 kurahaupo joined 05:52 yht joined 05:58 yht left 06:01 troys left 06:05 cgfbee joined 06:15 yht joined 06:16 leah2 joined 06:21 domidumont joined 06:22 kerframil left, domidumont left 06:23 salva joined, darutoko joined 06:24 domidumont joined, leah2 left 06:26 mempko left 06:30 domidumont left 06:31 domidumont joined 06:41 leah2 joined 06:43 Cabanossi left 06:44 Cabanossi joined 06:53 shadoxx left 06:55 shadoxx joined 07:12 leah2 left 07:14 Aaronepower left 07:17 someuser joined
lizmat clickbaits p6weekly.wordpress.com/2017/10/02/...e-granted/ 07:19
07:28 leah2 joined 07:30 kurahaupo_ joined, kurahaupo_ left, kurahaupo_ joined 07:33 kurahaupo left, kurahaupo joined, tyilanmenyn joined 07:34 kurahaupo left, kurahaupo joined, kurahaupo left 07:35 kurahaupo_ left, tyil left, kurahaupo joined 07:42 dakkar joined 07:48 rba_ joined 07:50 leah2 left
rba_ Curious if there is any news from the Solaris build side. Would be interessted in Sparc and x86 build. Would assist if appreciated... 07:50
TEttinger solaris is still a thing? 07:52
I thought opensolaris was closed down at least
also that Oracle was trying to EOL solaris 07:53
maybe I'm thinking of new SPARC chips
rba_ Banks in CH still have plenty of Solaris system. Yet new projects run on Linux.
TEttinger I can't remember which country is CH. switzerland?
rba_ yes 07:54
TEttinger I should have guessed from "banks" :)
"do one thing, do it wel, then have really good chocolate for doing it so well. also make the chocolate" 07:55
what time is it in central europe right now... early-to-mid morning? 07:56
rba_ Having a build ready to install would make it more easy to convince people to try to use it...
07:56 eliasr joined
rba_ yes, mid morning 07:56
TEttinger I think the channel should be more active soon, it's the middle of the night here on the pacific coast of US 07:57
I think there's a decent-sized amount of european developers
rba_ Saw in irc backlog that El_Che is pushing in this area... 07:58
08:06 leah2 joined 08:10 kurahaupo_ joined, kurahaupo__ joined, kurahaupo__ left 08:11 Morfent left 08:12 kurahaupo__ joined, leont joined, rba__ joined
mspo rba_: joyent will be bulk building moarvm, nqp, and rakudo now 08:13
rba_: since they're all in pkgsrc
08:13 kurahaupo left
mspo which also works on solaris, btw 08:13
08:14 kurahaupo_ left
mspo but it failed to build :) 08:15
us-east.manta.joyent.com/pkgsrc/pub.../build.log
that's SmartOS x86_64 08:16
08:16 leah2 left, rba_ left, kurahaupo__ left 08:19 tyilanmenyn is now known as tyil 08:21 rba_ joined 08:23 rba__ left 08:29 rindolf joined, robertle_ joined 08:30 lowbro joined, lowbro left, lowbro joined
rba_ thanks mspo. 08:33
mspo rba_: not sure if there's sparc support at all? 08:36
08:42 yht left 08:43 yht joined, Cabanossi left 08:44 sproctor joined, Cabanossi joined 08:45 shadoxx left, shadoxx joined 08:46 dj_goku_ joined
El_Che rba_: libuv was the blocking factor last time I tried 08:48
08:49 rba_ left, dj_goku left 08:56 rba_ joined 08:58 rba__ joined, rba_ left 09:01 mr-foobar left 09:02 wamba joined, rba__ left, rba_ joined 09:03 mr-foobar joined 09:07 leont left 09:08 nowan left 09:11 nowan joined, ShalokShalom left 09:13 Cabanossi left 09:14 Cabanossi joined 09:16 yht left 09:18 ilbot3 left 09:22 piojo joined
piojo Hi 09:22
Rakudo crashed after running for a couple days--I have a backtrace, but it wasn't a debug build
starting with: 'bin/moar': double free or corruption (!prev): 0x00007fd13562e960 09:23
Eh, I can answer my own question--I'll run it as debug mode next time
09:23 ilbot3 joined, ChanServ sets mode: +v ilbot3
piojo Actually, how do I run rakudo with debugging symbols? 09:24
09:25 epony left
piojo Okay, looks like it should be perl6-debug-m 09:25
Zoffix hoffentlichja: the language is just 2 years old and compiler is pretty big. It's not super rare to discover a bug no one has seen before :) Also, any error that mentions QAST stuff is not something a user should see and is a bug that should be filed. In your case it was already known and can be worked around by rewriting the chained WhateverCode to be just a block: subset MyStr of Str where { 4 < .chars < 10 09:26
}; my MyStr $s = 's';
piojo: I'm not sure, but I think you also need a debug-enabled moar for it to spit out useful stuff
09:27 ilbot3 left 09:28 ilbot3 joined, ChanServ sets mode: +v ilbot3
hoffentlichja Zoffix: yes, now I know better 09:29
09:30 epony joined, TEttinger left 09:34 rba__ joined, rba_ left
Zoffix Actually in this case a thunk is sufficient: 09:35
m: subset MyStr of Str where 4 < .chars < 10; say "s" ~~ MyStr; say "foobar" ~~ MyStr
camelia False
True
09:35 pmurias joined
hoffentlichja Zoffix: so that * made all the difference, I thught I have to use it if it's not in a block 09:38
09:38 rba__ left 09:42 rba_ joined, lowbro left 09:43 lizmat left 09:46 mcmillhj joined
Zoffix hoffentlichja: yeah, the WhateverCode maker can't figure out that `4 < *.chars` is not the complete chunk and it to go further to get the `< 10` part too, hence the QAST error. Some places, like the `where` clause "thunk" (make a chunk of code that's executed later). The `where` clause smartmatches against the RHS stuff to figure out if the type constraint passes. The { 4 < .chars < 10 } or (the 4 < *.chars < 09:50
10 if it worked) cause the smartmatch to happen against Code, and if its return value is truthy, then the type constraint passes. The thunk in where clause, on the other hand, results in whatever value it returns to be smartmatched against (the value to be checked is also aliased to $_). So for example, `subset SimilarList of List where (1, **, 5, *, 9);` would make `(1, 5, 7, 9)` pass type constraint, but
`(1, 5, 7, 42, 9)` not. In the case of `4 < .chars < 10`, the value to be checked is alised to $_, .chars returns its length, and the `<` chain returns either True or False, and smartmatch with True is always True and with False always False, so this works out fine as type constaint. But in some cases there's a difference between a thunk and a block (or whatevercode). E.g. here: subset Broken where .chars; say
"" ~~ Broken; say " 3 " ~~ Broken; say "foo" ~~ Broken. The check was intended to subset strings that have some chars, but the chunk returns a number and smartmatch with a number does a numeric comparison, so the first two cases give True, because the number in the string matches the number of chars, but last one doesn't. To fix it you need to either use a block (`where {.chars}`) or whatevercode (`where 09:51
*.chars`) or to ensure the thunk returns a True/False value (`where .so`)
09:51 mcmillhj left 09:57 Cabanossi left, rba_ left, rba__ joined 09:59 Cabanossi joined 10:01 araujo left
hoffentlichja Zoffix: thanks for the long explanation. 10:05
10:09 abraxxa left 10:10 abraxxa joined, lizmat joined 10:13 lichtkind left 10:14 araujo joined, araujo left, araujo joined
Geth modules.perl6.org/cpan-support: 9ff343d23a | (Zoffix Znet)++ | 4 files
Make CPAN dist tree navigable

  - Serve files as static content; for now
10:17
10:17 ufobat joined
Zoffix \o/ 10:17
Light at the end of CPAN tunnel :) Can see content of CPAN dists already. 10:18
Zoffix &
10:21 lowbro joined, lowbro left, lowbro joined 10:25 lichtkind joined 10:28 margeas joined
ufobat nhi :) 10:30
10:38 araujo left 10:43 Cabanossi left 10:44 Cabanossi joined 10:46 rba__ left 10:49 leah2 joined 10:50 yht joined 10:55 araujo joined, araujo left, araujo joined 10:58 leah2 left 11:03 llfourn left
ufobat is there a way to quote inside a regex, i am looking for \Q \E from perl5 11:08
between \Q and \E anything is ment literaly 11:09
11:10 W4RL0RD joined
Juerd twitter.com/zoffix/status/912990653742747649 if the ↑↑ are supposed to indicate higher peaks, I'd suggest using ↑↑ instead (reverse video) 11:11
jnthn ufobat: Just use quotes ;) 11:12
ufobat mhm thats to easy ;-)
too
thanks 11:13
Juerd From a Perl 6 perspective, using \Q...\E instead of '...' looks kinda weird. :D
Most of my dayjob work is Perl 5, and I keep running into these weird looking things.
11:13 Cabanossi left
Juerd Haven't encountered the horrendous ->$#* yet :) 11:14
11:14 Cabanossi joined
ufobat i was googling for it and i found the \Q thingy in the design documents (perl6.org/archive/doc/design/exe/E05.html) somewhere a note that it is removed but.. yeah :) 11:14
11:20 domidumont left 11:21 domidumont joined
Zoffix Juerd: would you submit a PR? github.com/zoffixznet/perl6-buggab...ed.pm6#L64 11:21
Juerd Sorry, I have no time to clone and test the suggestion 11:22
Basically it would mean changing '↑' to "\cV↑\cO" 11:23
Zoffix Oh, it's an ANSI thing. I thought it were a different Unicode char
Juerd Not ANSI, but IRC
IRC has its own color codes 11:24
Zoffix Wonder if it'd show up broken in channel logs
Juerd Depends on whether those logs support IRC color codes :D
11:31 piojo left 11:32 mr-foobar left
Zoffix Looks duplucated: irclog.perlgeek.de/perl6/2017-10-03#i_15249840 11:32
Unless it's my IRC client showing a single one where two were supposed to be... 11:33
11:33 mr-foobar joined 11:43 Cabanossi left, AlexDaniel joined
AlexDaniel squashable6: next 11:43
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 2 days and ≈22 hours (2017-10-07 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
AlexDaniel \o/
moritz++ 11:44
11:44 Cabanossi joined 11:50 zakharyas joined 11:51 ShalokShalom joined 11:53 AlexDaniel left 11:58 rba_ joined
hoffentlichja I'm envisioning a world in which we have something like node's johnny-five for IoT written in perl6 12:01
timotimo rakudo's still a bit memory hungry for embedded situations 12:02
well, a step up from embedded
but still
hoffentlichja timotimo: teoretically node is not the best fit for that either
I think raspberry pi and the likes will be able to run rakudo without any problem 12:04
Zoffix 😺🌈😋😀📦 12:05
timotimo a raspi 3 definitely
Zoffix yey, Unicode's back in logs (whoever fixed it)++
timotimo are there multicore raspis? 12:06
hoffentlichja timotimo: yes, they are quad cores
timotimo even raspi 2? 12:07
hoffentlichja yes, I have one
timotimo that's nice
since one of rakudo's strengths is parallel stuff
Zoffix "In October, Hacktoberfest and SQUASHathon happen at the same time, so people participating in SQUASHathon are also hacktoberfesting." ... does that work if you make a PR to one of the repos you have a commit bit to tho?
timotimo hm, we'll just give a commit bit after the fourth merged pr or something? 12:08
hoffentlichja Zoffix: github says no
12:08 harrison joined
Zoffix .tell AlexDaniel looks like squashathon PRs won't count towards Hacktoberfest for many people: irclog.perlgeek.de/perl6/2017-10-03#i_15250088 12:09
yoleaux Zoffix: I'll pass your message to AlexDaniel.
Zoffix hoffentlichja: thanks.
buggable: tag lhf 12:10
buggable Zoffix, There are 3 tickets tagged with LHF; See fail.rakudo.party/t/LHF for details
12:10 tony-o left
abraxxa tyil: regarding tyil.nl/tutorials/6lang-creating-a...rvice.html if you use systemd your daemon doesn't have to fork to go into the background because systemd monitors the processes without a pidfile or any other old, obscure workaround 12:10
12:10 AlexDaniel joined 12:11 tony-o joined, epony left
tyil abraxxa: but I dont use systemd, and I wouldn't recommend systemd because I think its a pile of exploitable, breaking shit 12:12
abraxxa hm, modules.perl6.org shows a 4 besides DATABASE but lists 7 modules when I click it
tyil also, systemd is made to be incompatible with everything so it cant even work on bsd
abraxxa tyil: I like the service file concept and don't care about the rest very much as long as its stable
tyil if just the init part, its ok, but the entire systemd package is all but stable 12:13
abraxxa i don't like that it tries to replace everything but as init system i like it much more than sysv with the per-distro incompatible init scripts
tyil you can get the service file concept with runit as well anyway
abraxxa i guess the number difference comes from core modules 12:14
tyil someone worked on a perl 6 module to make that possible
abraxxa tyil: i don't know runit, which distro is using it by default?
tyil voidlinux
abraxxa never heared of that
tyil now you have :>
Geth ecosystem: patzim++ created pull request #370:
Add RPi::Device::ST7036 to ecosystem
12:15
tyil anyway, I dont like systemd, I dont intend to go out of my way to support it, if you feel something should be added to that article, you can make a PR on github.com/Tyil/website
12:17 scovit joined
scovit Hello, does somebody know how would you do this: sub await (blabla:D $s) is export { react { whenever $s.events { done; } }; }; 12:19
Geth ecosystem: dec40c113c | (Patrick Zimmermann)++ (committed using GitHub Web editor) | META.list
Add RPi::Device::ST7036 to ecosystem

See github.com/patzim/RPi-Device-ST7036
ecosystem: dd943f5b2a | (Zak B. Elep)++ (committed using GitHub Web editor) | META.list
Merge pull request #370 from patzim/patch-1

Add RPi::Device::ST7036 to ecosystem, thanks @patzim!
scovit in v6.d? Using Awaitable role? I know that it is still not finished buy I have checked the source code and it seems very complex
s/buy/but/ 12:20
I just worry that things which now seems simple are going to become overwhelming in v6.d 12:21
or maybe I can just keep that code and things will just work out 12:22
12:24 AlexDaniel left
timotimo scovit: your code up there looks like the equivalent of implementing blabla's get-await-handle by just calling self.events.get-await-handle 12:24
though actually ...
yeah i'm not sure about that 12:25
Geth modules.perl6.org: 3343674a40 | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Root.pm
Don't show core dists in tag view
Zoffix abraxxa: thanks. Fixed. 12:26
abraxxa Zoffix++ # thanks! 12:27
can we also unify serialiSation and serialiZation? 12:28
12:28 AlexDaniel joined
scovit timotimo events is a Supply, not a Promise, I am done at the first emit 12:29
timotimo ah 12:30
scovit it's awaiting for things for happening, opposed to being done
Geth modules.perl6.org: 03c4743e3f | (Zoffix Znet)++ | tag-aliases.json
[REBUILD] Normalize "serialization" tag
12:30 yht left
Zoffix abraxxa: done (will update on next db rebuild) 12:31
abraxxa Zoffix: awesome!
timotimo hm, so return the await-handle of a promise you'll keep when a message comes through the $s.events i guess
Zoffix & 12:32
scovit timotimo: ok, that seems not so complex, more understandable than creating my own await-handle at least 12:33
good idea :)
s/await-handle/Awaitable::Handle/ 12:34
timotimo oh yes 12:35
12:36 harrison left
timotimo no reason to try that for something that can more or less already be awaited 12:36
hm, probably can also $s.events.head(1).Promise.get-await-handle
m: my Supplier $s .= new; my $p = $s.Supply.head(1).Promise; $s.then({ say "oh yeah!" }); $s.emit("hi"); sleep 1; 12:37
camelia No such method 'then' for invocant of type 'Supplier'. Did you mean 'tree'?
in block <unit> at <tmp> line 1
timotimo m: my Supplier $s .= new; my $p = $s.Supply.head(1).Promise; $p.then({ say "oh yeah!" }); $s.emit("hi"); sleep 1;
camelia oh yeah!
timotimo kind of like this?
scovit very clear!
timotimo that'll also give you an exception in the await if the supply quits rather than done-ing 12:39
12:47 ShalokShalom left, ShalokShalom_ joined 12:52 mcmillhj joined 12:55 rba__ joined, rba_ left
Ulti just checking out this post www.reddit.com/r/perl/comments/73y...e_granted/ and found that collation example given in the docs doesn't appear to work as expected for me locally docs.perl6.org/language/experiment...ion_Levels 12:56
12:56 AlexDaniel left
Ulti 'a' coll 'A' in that situation reports More 12:56
this is with rakudo built about half an hour ago 12:57
12:59 wamba left
lizmat m: dd 'a' coll 'A' 13:01
camelia Order::Less
lizmat Ulti: what situation do you mean?
13:01 jonas1 joined
lizmat ah, I see: 13:01
m: $*COLLATION.set(:quaternary(False), :tertiary(False)); dd 'a' coll 'A' 13:02
camelia Use of the $*COLLATION dynamic variable is experimental; please 'use experimental :collation'
in block <unit> at <tmp> line 1
lizmat m: use experimental :collation; $*COLLATION.set(:quaternary(False), :tertiary(False)); dd 'a' coll 'A'
camelia Order::More
Ulti sorry, yeah you got it
lizmat m: use experimental :collation; $*COLLATION.set(:!tertiary); dd 'a' coll 'A' 13:03
camelia Order::More
lizmat looks like a rakudobug to me :-)
must be afk for a while, commute to Amsterdam& 13:04
13:04 lizmat left
Ulti safe journey 13:04
13:04 cdg joined 13:08 ufobat left 13:14 Cabanossi left, ShalokShalom_ is now known as ShalokShalom, Cabanossi joined 13:17 mr-fooba_ joined 13:20 mr-foobar left 13:23 leah2 joined 13:26 scovit left 13:29 leah2 left 13:37 epony joined 13:41 skids joined 13:43 cdg left 13:44 cdg joined 13:48 cdg left 13:50 zakharyas left 14:00 kurahaupo joined, kurahaupo left, kurahaupo_ joined 14:02 mr-fooba_ left 14:04 atroxaper joined
atroxaper o/ #perl6 14:05
m: sub s(&funk:(:$param)!) { &funk(:param(works)) }; s( {say $:param} );
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routine:
works used at line 1. Did you mean 'words', 'ords'?
atroxaper sub s(&funk:(:$param)!) { &funk(:param('works')) }; s( {say $:param} );
m: sub s(&funk:(:$param)!) { &funk(:param('sorry')) }; s( {say $:param} );
camelia sorry
atroxaper m: sub c(:&funk:(:$param)!) { &funk(:param('not work')) }; c( funk => {say $:param} ); 14:06
camelia Required named parameter 'funk:(:$param)' not passed
in sub c at <tmp> line 1
in block <unit> at <tmp> line 1
atroxaper Can't crack named subroutine as parameter of sub
HoboWithAShotgun so as it turns out, clone does not call BUILD on the cloned object
is there a proper copy constructor= 14:07
?
14:08 mr-foobar joined
Zoffix nope 14:08
HoboWithAShotgun that sucks because the class in question is immutable and private to some other namespace 14:09
14:10 epony left
jnthn clone is just a method 14:11
Zoffix m: sub c (:&funk (:(:$param))) { funk :42param }; c(funk => {say $:param})
camelia 42
Zoffix atroxaper: ^
jnthn method clone() { callsame().CLONE() }; method CLONE() { ...copy logic here... }
Zoffix atroxaper: looks like there's a parsing bug when `!` or `is required` is used as well. 14:12
HoboWithAShotgun sec
Zoffix m: sub c (:&funk:(:$param)) { funk :42param }; c(funk => {say $:param}) 14:13
camelia No such method 'signature' for invocant of type 'Callable'
in sub c at <tmp> line 1
in block <unit> at <tmp> line 1
Zoffix the plot moistens
atroxaper: oh, nevermind. That method isn't constraining by signature :( 14:14
atroxaper Zoffix: :))
14:14 piojo joined
Zoffix Filed the "no signature method" as rt.perl.org/Ticket/Display.html?id=132209 14:18
atroxaper m: sub c(:&funk is required (:(:$param))) { &funk(:param('finally. Zoffix++')) }; c( funk => {say $:param} ); 14:19
camelia finally. Zoffix++
atroxaper m: sub c(:&funk! (:(:$param))) { &funk(:param('finally. Zoffix++')) }; c( funk => {say $:param} ); 14:20
camelia finally. Zoffix++
Zoffix And thge RT for `is required`: rt.perl.org/Ticket/Display.html?id=132210
m: say {say $:param}.Capture 14:21
camelia \()
atroxaper I think signature of parameter have to be in 'where' part. After ! of 'is required'
Zoffix m: sub c(:&funk! (:(:$param))) { &funk(::parrrrrrrrrrrrrrrrrrrrrrrrrrrrram('finally. Zoffix++')) }; c( funk => {say $:parrrrrrrrrrrrrrrrrrrrrrrrrrrrram} );
camelia 5===SORRY!5=== Error while compiling <tmp>
No such symbol 'parrrrrrrrrrrrrrrrrrrrrrrrrrrrram'
at <tmp>:1
------> 3funk(::parrrrrrrrrrrrrrrrrrrrrrrrrrrrram7⏏5('finally. Zoffix++')) }; c( funk => {sa
Zoffix m: sub c(:&funk! (:(:$param))) { &funk(:parrrrrrrrrrrrrrrrrrrrrrrrrrrrram('finally. Zoffix++')) }; c( funk => {say $:parrrrrrrrrrrrrrrrrrrrrrrrrrrrram} );
camelia finally. Zoffix++
Zoffix atroxaper: it doesn't actually constrain it. You're unpacking the param, but .Capture returns an empty capture 14:22
m: sub c(:&funk! where .signature ~~ :(:$param)) { &funk(:param('finally. Zoffix++')) }; c( funk => {say $:param} );
camelia finally. Zoffix++
Zoffix m: sub c(:&funk! where .signature ~~ :(:$param)) { &funk(:parram('finally. Zoffix++')) }; c( funk => {say $:parram} );
camelia Constraint type check failed in binding to parameter '&funk'; expected anonymous constraint to be met but got -> :$parram! { #`(Blo...
in sub c at <tmp> line 1
in block <unit> at <tmp> line 1
Zoffix That works, but requires a `where` 14:23
atroxaper Best!
'where' would in 'library' code. I worry about users :) 14:24
That is ok then.
14:26 zakharyas joined
atroxaper Who knows, is that way a good way to constraint such 'callback'? 14:26
Zoffix Yeah. You could also use subset helpers to give a meaningful error 14:27
14:27 rba__ left
Zoffix buggable: eco Subset::Helper 14:27
buggable Zoffix, Subset::Helper 'create awesome subsets': github.com/zoffixznet/perl6-Subset-Helper
Zoffix .in 5d add `where-is` to subset helper, bruh
yoleaux Zoffix: I'll remind you on 8 Oct 2017 14:27Z
HoboWithAShotgun ok here's the thing: hastebin.com/binuwiheji.rb 14:28
i don't have access to the bar class, have i?
Zoffix HoboWithAShotgun: that submethod BUILD looks useless to me 14:29
HoboWithAShotgun this is a smalles self contained example
Zoffix m: class Foo { has $.x; has $.y = $!x + 1 }.new(:42x).y.say
camelia 43
atroxaper Nice subset!
Zoffix Ah, ok, then
atroxaper And one more question. when I call &come-code(|%all-possible-args) then is will crash if &come-code do not expect one or more possible-args. Now I grep %all-poosible-args for entries of signature. Is it a good way& 14:30
Zoffix atroxaper: an anon capture 14:32
m: sub foo (:$a, :$b, |) { say "$a and $b and the rest is ignored" }; my %meow = :42a, :72b, :50c; foo |%meow
camelia 42 and 72 and the rest is ignored
Zoffix m: sub foo (:$a, :$b, |c) { say "$a and $b and the rest was {c.perl}" }; my %meow = :42a, :72b, :50c; foo |%meow 14:33
camelia 42 and 72 and the rest was \(:c(50))
14:33 rba_ joined
Zoffix HoboWithAShotgun: I'm not quite following that code. The two tests the same item for two different values... 14:34
atroxaper But is works only when I control the foo method. But I expect that it will be written by user of lib... 14:35
Zoffix Ahj 14:36
atroxaper Ok then. It is not hard to grep, Just wanted to ensure that I found a good way. Thank you. 14:38
Zoffix Yeah, don't really see a short way 14:41
14:43 AlexDaniel joined
Zoffix m: sub foo (:$a, :$b) { say "$a and $b" }; my %meow = :42a, :72b, :50c; foo |(%meow{&foo.signature.params.grep(*.named)».usage-name}:p) 14:44
camelia Too many positionals passed; expected 0 arguments but got 2
in sub foo at <tmp> line 1
in block <unit> at <tmp> line 1
Zoffix Wonder why it doesn't wanna slip in those pairs :/
14:45 mcmillhj left
Zoffix m: sub foo (:$a, :$b) { say "$a and $b" }; my %meow = :42a, :72b, :50c; foo |((%meow{&foo.signature.params.grep(*.named)».usage-name}:p).Hash) 14:49
camelia 42 and 72
Zoffix m: sub foo (:$a, :$b) { say "$a and $b" }; my %meow = :42a, :72b, :50c; foo |%(%meow{&foo.signature.params.grep(*.named)».usage-name}:p)
camelia 42 and 72
Zoffix I guess I confused slipping and capturing... List.Capture shoves Pairs in it into named args... 14:50
14:52 kurahaupo_ is now known as kurahaupo
Zoffix (also, `.usage-name` is unspecced; don't use it :P) 14:52
atroxaper What is '.usage-name'?! 14:53
Zoffix It's used when generating the name for default USAGE message for sub MAIN
m: sub MAIN($x, $y, $x) {}
camelia 5===SORRY!5=== Error while compiling <tmp>
Redeclaration of symbol '$x'
at <tmp>:1
------> 3sub MAIN($x, $y, $x7⏏5) {}
expecting any of:
shape declaration
Zoffix m: sub MAIN($x, $y, $z) {}
camelia Usage:
<tmp> <x> <y> <z>
Zoffix ^ like her
*here
14:54 mcmillhj joined
atroxaper lol :) 14:54
Zoffix m: sub foo (:$a, :$b) { say "$a and $b" }; my %meow = :42a, :72b, :50c; say &foo.cando: \(:42a) 14:55
camelia (sub foo (:$a, :$b) { #`(Sub|76304600) ... })
Zoffix I'd say that's a bug in `cando`. The sub won't work if I call it with those args 14:56
Oh nevermind
it will :D
One day, I'll learn this language :) 14:57
atroxaper m: sub foo (:$a, :$b) { say "$a and $b" }; my %meow = :42a, :72b, :50c; foo |%(%meow{&foo.signature.params.grep(*.named).map: *.name.substr(1)}:p)
camelia 42 and 72
Zoffix m: sub foo (:$a, :$b) { say "$a and $b" }; my %meow = :42a, :72b, :50c; foo |(%(%meow{%meow.keys.combinations.grep({&foo.cando: \(|%(%meow{$_}:p))}).sort(-*).head}:p)) 14:59
camelia 42 and 72
Zoffix ehehehe
atroxaper Scary... 15:01
HoboWithAShotgun zofffix: the last line of that should of course read: ok $foo.bar[0].y == 7, "fails"; 15:03
hastebin.com/ikosabupuj.rb 15:04
Zoffix Well, that was embarassing... my quip on www.reddit.com/r/perl/comments/73y...e_granted/ exposed a bug in rakudo and it took me like an hour to notice the output was wrong :P
m: for <a b c> { $^v.uc andthen say $v orelse .say 15:05
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3b c> { $^v.uc andthen say $v orelse .say7⏏5<EOL>
expecting any of:
statement end
statement modifier
statement modifier loop
Zoffix m: for <a b c> { $^v.uc andthen say $v orelse .say }
camelia a
a
a
Zoffix ^ that bug :)
m: for <a b c> { $^v.uc andthen say $v } 15:06
camelia a
b
c
Zoffix Filed as rt.perl.org/Ticket/Display.html?id=132211 15:08
15:08 wamba joined
Zoffix daxim++ # made me find 1 rakudobug and 3 Inline::Perl5 bugs :D 15:08
daxim inline::* is cheating 15:09
Zoffix Why? 15:10
Unicode::Collate is cheating
daxim nope, that's a core module
inline is cheating because I could embed libperl into language Foo, but no one would say running that program is a Foo program 15:11
Zoffix daxim: but we have the spec mandating Inline::Perl5 support.
daxim that's orthogonal to what I just said
Zoffix It's part of the language that I can load up Unicode::Collate and use its features. 15:12
15:13 piojo left 15:20 mcsnolte joined 15:25 zakharyas left 15:28 Cabanossi left 15:29 Cabanossi joined 15:31 hoffentlichja left 15:34 cdg joined, cdg left, cdg joined 15:35 someuser left, cdg_ joined 15:37 brrt joined 15:39 cdg left, brrt left 15:48 ChoHag left
zostay m: my %s = <x a y b>; if <x y> ~~ %s { say 'found' } 15:50
camelia Type check failed in binding to parameter '&call'; expected Callable but got Method+{<anon|50258432>} (Method+{<anon|5025843...)
in block <unit> at <tmp> line 1
zostay i feel like that should work
Zoffix zostay: yeah, it's this annoying bug: rt.perl.org/Ticket/Display.html?id...et-history 15:51
zostay: also, that smartmatch would look for a List key, not for either x or y keys 15:53
Actually bypasses the first bug if you write it properly 15:54
m: my %s = <x a y b>; if <x y>.any ~~ %s { say 'found' }
camelia ( no output )
Zoffix oh :(
Yeah, it's hitting the Mu candidate that takes a Mu topic :\ 15:56
s: {}, 'ACCEPTS'
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/f946.../Mu.pm#L13
15:56 zakharyas joined
Zoffix s: {}, 'ACCEPTS', \(<x y>.any) 15:57
SourceBaby Zoffix, Sauce is at github.com/rakudo/rakudo/blob/f946...Any.pm#L18
Zoffix Ah that. OK.
zostay Sounds like this needs an update then, docs.perl6.org/type/Hash#(Map)_method_ACCEPTS
Zoffix hackety hacks
zostay: update for which part?
15:58 domidumont left
Zoffix Oh "If the topic is list-like (Positional), returns True if any of the list elements exist as a key in the Map." 15:58
zostay: ah, OK, I misread the code then
Sounds like I could be more productive if I don't continually give wrong answers on this channel :D 15:59
\o 16:00
16:00 Zoffix left, W4RL0RD left 16:01 AlexDaniel left 16:03 W4RL0RD joined 16:04 robertle_ left 16:05 cdg joined 16:06 cdg_ left 16:07 cdg_ joined 16:08 cdg left 16:12 lowbro left, Cabanossi left 16:14 Cabanossi joined 16:18 mempko joined 16:22 rba_ left 16:26 sproctor left 16:27 piojo joined 16:28 mempko left
Geth modules.perl6.org/cpan-support: a631a303e0 | (Zoffix Znet)++ | lib/ModulesPerl6/DbBuilder.pm
Exclude PSIXDISTS user from CPAN downloads

  - Lots of experimental uploads and it takes some time to download
   'em all on slow networks
  - We filtered their METAs anyway
16:30
16:33 cdg joined, cdg_ left, dakkar left
Geth modules.perl6.org/cpan-support: 24cc6f7efe | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Root.pm
Don't show core dists in tag view
16:34
modules.perl6.org/cpan-support: 2d9e73c851 | (Zoffix Znet)++ | tag-aliases.json
[REBUILD] Normalize "serialization" tag
16:36 traxex left 16:41 zakharyas left 16:43 troys joined 16:46 Pilu joined 16:49 mempko joined
tbrowder ugexe: why does zef show ":auth" for some modules but not others? does it look both in META6 and on the module definition line? 16:54
i should have said "when zef installs a module and its dependencies"
16:55 lizmat joined 17:12 W4RL0RD left 17:14 shadoxx left
[Coke] do you have a specific example of one with an :auth and one without? 17:15
17:17 shadoxx joined 17:18 atroxaper left 17:20 domidumont joined 17:22 ken joined 17:23 ken is now known as Guest54426 17:30 cdg left 17:31 leah2 joined 17:32 cdg joined, cdg left 17:33 piojo left, cdg joined 17:34 cdg left 17:36 shadoxx left 17:37 shadoxx joined 17:41 HoboWithAShotgun left 17:55 leah2 left 17:58 cdg joined 18:03 setty1 joined, epony joined 18:14 leah2 joined 18:15 Rawriful joined 18:20 AlexDaniel joined 18:26 Pilu left
Geth modules.perl6.org/cpan-support: 50e9dbf5cb | (Zoffix Znet)++ | 2 files
Add /raw/ route to cater raw files
18:27
18:27 Cabanossi left 18:29 Cabanossi joined 18:30 darutoko left 18:36 cdg left, domidumont left 18:38 mcmillhj left 18:39 leah2 left, mcmillhj joined, |oLa| joined 18:41 |oLa| left
Geth modules.perl6.org/cpan-support: dd986c6d0f | (Zoffix Znet)++ | 2 files
Implement rudimentary in-page file viewer
18:43
18:44 mcmillhj left 18:50 Morfent joined 18:51 mcmillhj joined 18:56 HoboWithAShotgun joined, mcmillhj left, leah2 joined 18:57 eliasr left 18:58 Cabanossi left 18:59 Cabanossi joined 19:03 mcmillhj joined
tbrowder [Coke]: after looking more closely, I see the listed modules have an "auth" key in their META6.json file! I hadn't seen that key listed before in other META6.json examples. As I've commented before, I think there is a disconnect between the very few required META6 keys and those that we need to enforce for a good ecosystem/CPAN. 19:06
Xliff m: my %s = <x a y b>; if <x y>.any ~~ %s.keys { say 'found' } 19:07
camelia ( no output )
Xliff m: my %s = <x a y b>; dd %s
camelia Hash %s = {:x("a"), :y("b")}
Xliff m: my %s = <x a y b>; if %s ~~ <x y>.any { say 'found' } 19:08
camelia ( no output )
Xliff m: my %s = <x a y b>; if %s eq <x y>.any { say 'found' }
camelia ( no output )
Xliff m: my %s = <x a y b>; if %s.keys eq <x y>.any { say 'found' }
camelia ( no output )
19:08 mcmillhj left 19:09 brrt joined 19:10 brrt left
timotimo interesting 19:12
bisectable6: if 3 * (1 + 2){ say "haha" }
bisectable6 timotimo, Bisecting by output (old=2015.12 new=2724a85) because on both starting points the exit code is 1
timotimo, bisect log: gist.github.com/08639d1baf78934c61...855d6f57ab
timotimo, (2016-08-03) github.com/rakudo/rakudo/commit/7e...452d870762
19:16 Guest54426 left 19:18 Guest54426 joined 19:20 mcmillhj joined 19:21 zakharyas joined 19:24 Rawriful left
Geth modules.perl6.org/cpan-support: d5fb0e0674 | (Zoffix Znet)++ | 8 files
Add Perl 6 code highligher

It's a lot less than ideal and breaks on some constructs. Will need to figure out how to use atom-language-perl6 highligher on web eventually.
19:26
19:27 Cabanossi left 19:29 Cabanossi joined 19:30 mempko left 19:33 troys is now known as troys_
Geth modules.perl6.org/cpan-support: 059d02a759 | (Zoffix Znet)++ | assets/js/main.js
Make line numbers clickable
19:35
19:37 ChoHag joined
AlexDaniel clickbaits code-golf.io/ 19:40
19:56 zakharyas left 19:59 Cabanossi left, mdef joined, Cabanossi joined
mdef hay?? 19:59
bagaimana cara kerja perl untuk web ? 20:00
20:01 mdef left, Guest54426 left 20:02 lizmat left 20:03 Guest54426 joined 20:04 leont_ joined 20:05 cdg joined 20:08 Zoffix joined
Zoffix marcusramberg: 20:09
oops... sorry, fat fingers ':)
20:10 leont_ left
Zoffix And Indenesian person's left already; was gonna say mi.cro.services/ 20:10
20:12 rba_ joined
Xliff Hmm.... parsing a 1.9meg hash definition takes ~135 to parse in current rakudo. Takes ~14 seconds to load once parsed. 20:15
s/to parse/seconds to parse/ 20:16
masak likes to perl untuk web
El_Che you little cara kerja! 20:17
20:17 Rawriful joined 20:19 Rawriful left
AlexDaniel Xliff: so put it into a pm6 file and let it get precompiled? 20:20
masak El_Che: I think you might have just called me a workflow. 20:26
El_Che masak: you're a piece of workflow, they say 20:31
20:32 kyan joined 20:40 lizmat joined
Xliff AlexDaniel: My apologies. Those tests were done in a pm6 file. 20:41
20:41 niceperl joined
AlexDaniel Xliff: ah, so it's 135s before precompilation and 14s after? 20:41
Xliff Yes.
AlexDaniel Xliff: I'm curious, have you tried to achieve the same with JSON::Fast? 20:42
Xliff So if there can be some serialization done to get those times down, it would be nice. However, I think this is one of the areas where the nature of rakudo actually prevents much in the way of speed increases.
20:42 mempko joined
Xliff AlexDaniel: I'd have to look into it. So, the answer is "no". 20:42
But my experiments with JSON::Fast say it should be faster. 20:43
AlexDaniel Xliff: I recall a ticket somewhere with thousands of “say” statements or something like that, and it was really slow
so maybe keeping that data as perl 6 code is the slowest approach, but maybe not 20:44
Xliff Yes.
That was the conclusion I had come up with, as well.
So the other way I am managing that is taking the relatively static data out of the text files, and putting them into an .sqlite3 20:45
And then just querying that.
AlexDaniel would first try dumping all that data into text files :D Current filesystems handle thousands of files in the same directory pretty well 20:46
AlexDaniel is not saying that it's the right solution :) 20:47
squashable6: next
squashable6 AlexDaniel, ⚠🍕 Next SQUASHathon in 2 days and ≈13 hours (2017-10-07 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
timotimo Xliff: what syntax were you using for the hash definition? do you have something to reproduce? i'd like to run it through a c-level profiler 20:50
Xliff timotimo: Standard Hash declaration. 20:53
For perl6
I can gist it if you want.
timotimo you mean like my %foo = a => 2, b => 3, c => 4?
that'd be nice
i don't want to come up with an example of my own %)
Xliff our %foo = { a=>1, b=>2, c=>3 }
OK. One sec.
timotimo that's not how you do that d) 20:54
:)
it used to give an error if you do it like that
bisectable6: my %foo = { a => 1, b => 2 }
bisectable6 timotimo, On both starting points (old=2015.12 new=fa8fe84) the exit code is 0 and the output is identical as well
timotimo, Output on both points: «Potential difficulties:␤ Useless use of hash composer on right side of hash assignment; did you mean := instead?␤ at /tmp/nhB0ZJLaoo:1␤ ------> 03my %foo = { a => 1, b => 2 }08⏏04<EOL>»
timotimo oh, it still does
Xliff Oh. Perens, not curly braces. LOL 20:55
m: our %foo = ( a=>1, b=>2, c=>3 )
camelia ( no output )
timotimo OK
Xliff except it was more like
timotimo now i know using our variables is excruciatingly slow, but i don't think it matters for the initializer a tall
Xliff m: our %foo = ( record_id => { a=>1, b=>2, c=>3 } ) 20:56
camelia ( no output )
timotimo OK, multi-level, that's more interesting
20:57 Cabanossi left 20:58 Aaronepower joined 20:59 Cabanossi joined 21:01 rindolf left
tyil is there any step-by-step tutorial for contributing perl 6 modules to CPAN? 21:03
Xliff timotimo: Here, but this was not what I intended. :/ 21:04
21:04 mcmillhj left
Xliff gist.github.com/Xliff/795c8dbef036...1a3877799' 21:04
gist.github.com/Xliff/795c8dbef036...11a3877799 <-- no quote at end 21:05
21:05 mcmillhj joined
timotimo that's only one file, right? 21:06
21:06 TEttinger joined
Xliff Yes. 21:06
21:07 skids left
timotimo k, because my browser didn't like it :) 21:09
Xliff Yeah. It's a large file.
timotimo takes like a gig of ram to compile, too
Xliff Yeppers.
So FWIW - File was autogenerated from a mysql database. 21:10
This was over a year ago when I was still new to rakudo.
timotimo okay, 93% time spent in a single function
Xliff Wow!
21:10 mcmillhj left
timotimo oh, that's spesh 21:10
without perf it finishes in under a second - loading the precompiled file, that is 21:11
i'll proflie the precomp process now 21:12
this time it's only 15% of time spent in that same function 21:15
looks like spesh is running into an extreme slowdown situation from the gigantic frame and keeps the compiling thread from doing GC for a long time 21:16
21:17 mcmillhj joined, jonas1 left 21:20 wamba left
AlexDaniel Zoffix: CPAN question? ↑ 21:21
! 21:22
:)
21:22 mcmillhj left, troys_ is now known as troys
timotimo incidentally the speshlog for loading the precomped thing is 85 megs big 21:22
Xliff timotimo: So 85 meg vs a gig? 21:25
I can see that. 21:26
21:26 MasterDuke left
Xliff Incidentally, that 132 second parse is 50% larger than what it takes to parse Perl6's core. 21:26
21:26 MasterDuke joined
timotimo hm? 21:27
21:27 mcmillhj joined
Xliff Takes me 95-96 for nqp to parse the perl6 core. 21:27
95-96 seconds
timotimo the 85 megs is the size of the text file that spesh spits out when you ask it
Xliff Oh!
OK, that's mostly human readable bloat. 21:28
timotimo well, yeah :)
i can give you a taste of the interesting bits, hold on
Xliff And the frame for parsing the large file would mean that it would output a lot more than a 1 gig logfile.
timotimo t.h8.lv/stats_for_mainline.txt
i'm not sure what you mean by that? 21:29
the "logged at offset" bit is the interesting bit here
not only because it makes up 99% of the whole file 21:30
you see, every time a frame that's being logged hits something interesting like an invocation, it'll take note of that in the log
it wants to share entries, of course
that's why it takes the bytecode offset of the interesting instruction, and searches for an already existing entry 21:31
sadly, that's implemented as a linear search
because that's fast enough for normal cases
Xliff ahhhh
21:32 mcmillhj left
timotimo the entry i copied into that text file is from very early on 21:33
Xliff OK. Off for a quick nap. Stomach isn't feeling right.
timotimo when not nearly all of the frame has been run
oh, hope you'll feel better soon
Xliff thx
21:33 zakharyas joined
MasterDuke timotimo: can it easily be made a binary search or something smarter than linear? 21:34
timotimo 16% into the log file and this stats entry goes up to bytecode index 1 million
yeah, it should be easy
hm, or maybe not, though
you think 1 million, that's already huge? 21:35
well, the last entry the file has lists offsets up to 6 million
MasterDuke bigger indeed 21:36
timotimo actually, no, it can't. it's not sorted
Zoffix tyil: check back in a week
tyil Zoffix: I can do that :>
if someone had a mediocre guide I was planning to make an easy one myself 21:37
Zoffix .in 5d link tyil to CPAN guide
yoleaux Zoffix: I'll remind you on 8 Oct 2017 21:37Z
tyil but if you do it its even less work :p
MasterDuke timotimo: ugh. second time that's been a problem
Zoffix tyil: Don't have anything ATM, but was planning to make a writeup after launching CPAN support on modules.perl6.org.
timotimo oh
tyil Zoffix: nice 21:38
timotimo it's probably totally feasible to just cache the last position in the array and the corresponding bytecode offset
tyil the cpan support on module.perl6.org made me interested in adding cpan support for my modules
Zoffix \o/
tyil but I couldnt find a lot of info on contributing p6 modules to cpan
timotimo let me see what the "access pattern" is like
by putting loads of printf in :D
tyil say is shorter
Zoffix put is shorter 21:39
tyil: the nutshell is the process is the same as for Perl 5 modules, except on PAUSE you select "Perl6" as the directory on the uploads page—or use App::Mi6 and its `mi6 upload` feature (though check the archive it makes is file by running `mi6 dist` first) 21:40
Zoffix &
(say => prints gist; put => prints string with a newline; so `put` is closer to `printf`) 21:41
jdv79 gist.github.com/anonymous/17e152e8...836df9cbb5 21:42
timotimo C doesn't have say or put :)
jdv79 that's a gist that seems related. my case that i haven't been able to golf is very similar but the qqx call blocks.
timotimo it does have puts, but i don't want to do my own formatting
geekosaur printf has shortcomings in any language with a richer type system than C's. I kinda prefer Python's % operator (not that we could call it that) 21:43
21:44 mcmillhj joined
timotimo MasterDuke: okay, so, the MVM_spesh_stats_update function goes through all log entries and scatters the individual pieces into the right places 21:44
MasterDuke: there's nothing preventing us from keeping those lists sorted by doing binary search and inserting into the middle or heck even keeping a heap or other sorted datastructure 21:45
MasterDuke: even having a "highest bytecode position so far" check could be a good improvement 21:47
so we can instantly just append to the end in that case
thing is, usually these "by offset" entries don't reach anywhere past 100 21:49
21:49 mcmillhj left
jdv79 swapping in proc::async for the qqx yields hte same results 21:50
timotimo MasterDuke: so perhaps once a "spesh by type" thing has more than 1k entries we just stop caring about that frame 21:51
actually, we already have an upper limit for bytecode size where we'll not spesh a frame at all. we should definitely copy that check into the logging perhaps
MasterDuke was wondering about that 21:52
timotimo could even skip putting data into the log if the bytecode offset is too high, but that'd probably make logging have more overhead, which we don't want
jnthn jdv79: Platform?
MasterDuke both things actually, might be nice to have some sorted array functions in moar, but also is it even worth it for something that large (in that particular case) 21:53
jnthn jdv79: hmm, though I can reproduce it.
jdv79: But wait, nothing awaits that start block? 21:54
jdv79 linux
jnthn So no wonder it exits :) 21:55
MasterDuke (the sorted data structure functionality would also be nice for that sc id situation)
jnthn Stick an await before the `start` and all is good
jdv79 i think its a golf failure
jnthn Ah
jdv79 i guess i'll just post the whole thing. the actual thing blocks on the proc call 21:56
jnthn Yeah, I'm not seeing anything surprising in it only doing "before" there
jdv79 ok, sorry. i'll get it in a bit.
jnthn Reason I asked about platform is I'm sure there was an RT about some interaction of run and...something... 21:57
I forget what
And it was only on OSX
timotimo good, with that skip in place loading that module is as fast as if i had disabled spesh
jnthn But that predated the re-working of run in terms of Proc::Async
lizmat calls it a night 21:58
21:58 lizmat left
MasterDuke timotimo: nice 21:59
21:59 setty1 left
timotimo pushed the fix 21:59
Xliff: now loading the precomped file is like a hundred times faster 22:00
22:03 kyan left, mcmillhj joined
timotimo Xliff: but parsing and compiling the file still takes 1:13m 22:04
not sure how long it took before, but the difference is probably small
okay, could be about 10 seconds faster 22:06
22:08 mcmillhj left, Guest54426 left
timotimo Xliff: and if you have "constant %systems = %( ... )" it'll load in under a third of a second on my machine 22:11
you have jnthn to thank for that one
22:13 pmurias left 22:19 Ven`` left 22:20 mcmillhj joined 22:25 mcmillhj left
jdv79 jnthn: its too big. i'll try to golf again tomorrow. 22:25
22:26 AlexDaniel left 22:27 Cabanossi left
Geth modules.perl6.org/cpan-support: 05fd06a5c6 | (Zoffix Znet)++ | 3 files
Add back button to files browser
22:28
jnthn jdv79: Alrighty. I'm heading for sleep soon anyways. 22:29
tyil no lizmat :(
22:29 Cabanossi joined
tyil .tell lizmat was this your doing? :p ghostbin.com/paste/t9opu 22:29
yoleaux tyil: I'll pass your message to lizmat.
timotimo nite jnthn :)
Geth modules.perl6.org/cpan-support: 38709db18e | (Zoffix Znet)++ | 3 files
Improve file browser's look
22:32
Zoffix tyil: you can view who committed by appending commit sha to github.com/rakudo/rakudo/commit/ so: github.com/rakudo/rakudo/commit/98fae3d 22:33
22:33 mcmillhj joined
tyil Zoffix: it was intended as a joke (hence the :p), since I saw her working with stuff that looked like that at the perl monger meetup 22:33
Zoffix tyil: tho "doing"… doing what? There's no error in that output 22:34
Ah. OK.
geekosaur ther eis, and it looks t o me like rakudobrew has horled itself yetagaian
*horked itself yet again
22:34 pecastro left
tyil sh: 1: /home/tyil/.local/var/rakudobrew/moar-nom/install/bin/nqp-m: not found looks wrong to me 22:34
Zoffix geekosaur: what is it? I see only four lines of standard output. Cuts off at "cloning nqp
tyil that said, it seems to compile Just Fine(tm) 22:35
Zoffix tyil: that's normal. It checks if you already have built nqp and if not it builds it for you (hence the "cloning" bit)
tyil hmm
Zoffix Maybe it shouldn't output it :)
tyil could be made prettier in that case
Zoffix tyil: you should join us during SQUASHathon this weekend and make it prettier. I think that stuff is controlled by the first two files here: github.com/rakudo/rakudo/tree/nom/tools/build 22:36
squashable6: status
squashable6 Zoffix, ⚠🍕 Next SQUASHathon in 2 days and ≈11 hours (2017-10-07 UTC-12⌁UTC+14). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day
Xliff timotimo++ && jnthn++ 22:37
tyil Zoffix: if I have time, I will, I'm still not entirely done moving into this new place and have something planned for sunday already
Zoffix \o/
tyil it shouldnt take too much time to fix
22:38 mempko left, mcmillhj left 22:39 epony left
timotimo Xliff: if it's autogenerated from mysql anyway, you can probably have a constant %systems = do { use DBIish; ... }; in your file and it'd probably be faster than parsing perl6 code 22:40
Zoffix :O :O :O searched for a Perl module to guess if a file is binary or or text; turns out it supports it out of the box with -B/-T file tests.
Zoffix gets jealous
22:40 bloatable6 left
Zoffix (we do have Data::TextOrBinary in ecosystem tho) 22:40
22:40 bloatable6 joined
jnthn Hm, that module sounds familiar...did I wrote it? 22:41
eco: Data::TextOrBinary
bah, how's that thing work
eco Data::TextOrBinary
Not like that :)
Zoffix Bucciarati: eco Data::TextOrBinary
oops
buggable: eco Data::TextOrBinary
buggable Zoffix, Data::TextOrBinary 'Heuristic detection of text vs. binary data.': github.com/jnthn/p6-data-textorbinary
jnthn yup :P
oh, right, now I remember :)
Zoffix :)
jnthn It uses a fairly simple heuristic, which I nabbed from git :P 22:42
22:43 pilne joined
Xliff jnthn: If more than 30% of the text is not a printable character, it's binary? 22:44
22:44 mcmillhj joined
Xliff Or 30% of a suitably large enough sample, even. 22:44
22:44 buggable left 22:45 zakharyas left
jnthn I can't remember, but it's something along those lines 22:45
Though I think there's some other twist
22:45 buggable joined
Zoffix eco: Meow 22:45
buggable Zoffix, Acme::Meow 'The kitty you always wanted, now in Perl 6': github.com/tadzik/perl6-Acme-Meow
Zoffix trigger works now
Xliff jnthn: Of course there's always a twist. 22:46
jnthn Yeah, it's got some extra smarts. Null byte always means binary, \r not followed by \n also
Line \n's don't count either way
Xliff Ah. NULL byte will shortcut everything.
jnthn Yeah, the lone \r too 22:47
Xliff And no computer uses just \r's
LOL! Jinx
Geth modules.perl6.org/cpan-support: 4076ead17e | (Zoffix Znet)++ | lib/ModulesPerl6/Controller/Dist.pm
Do not attempt to render binary files in-page
22:47 kurahaupo_ joined, kurahaupo_ left 22:48 kurahaupo_ joined
jnthn Other than that it's just a table lookup to see if it's printable or not 22:48
22:49 mcmillhj left, kurahaupo left 22:53 virtualsue left 22:56 arnsholt left 22:57 arnsholt joined 22:59 mcmillhj joined 23:02 dpk joined 23:04 mcmillhj left 23:12 cdg left 23:13 niceperl left 23:14 mcmillhj joined 23:15 HoboWithAShotgun left 23:20 mcmillhj left 23:27 Cabanossi left 23:29 Cabanossi joined 23:41 cdg joined 23:42 epony joined 23:45 cdg left 23:47 Morfent left 23:50 nadim left 23:55 skids joined