»ö« 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:21 mcmillhj joined 00:22 Cabanossi left 00:23 mcmillhj left, Cabanossi joined 00:30 poohman2 left 00:34 labster left 00:35 bjz left 00:37 BenGoldberg joined
Geth doc: CurtTilmes++ created pull request #1293:
Add section on Pod rendering to Text
00:38
00:39 yqt left 00:40 labster joined, geekosaur left 00:42 geekosaur joined 01:07 Cabanossi left 01:08 Cabanossi joined 01:13 kurahaupo_ left 01:14 kurahaupo_ joined 01:15 kurahaupo_ left 01:16 kurahaupo__ joined, kurahaupo__ left 01:18 kurahaupo_ joined 01:19 kurahaupo` joined 01:21 kurahaupo left 01:22 kurahaupo joined 01:23 kurahaupo_ left 01:25 kurahaupo` left 01:27 kurahaupo left 01:31 raschipi joined 01:39 cdg joined, raschipi left, bjz joined 01:45 wamba left 01:46 ilbot3 left 01:49 cdg left, ilbot3 joined, ChanServ sets mode: +v ilbot3 01:51 Cabanossi left 01:53 Cabanossi joined 01:59 bjz left 02:07 alyptik left
Geth doc: 5ced9b13d0 | (Curt Tilmes)++ (committed by Zoffix Znet) | doc/Language/pod.pod6
Add section on Pod rendering to Text (#1293)

  * Add section on rendering Pod to Text
  * typo head => head2
02:07
02:08 alyptik joined
samcv this is not bad gist.github.com/samcv/5339208c44a4...8e02dd0cee 02:10
that md was generated from a script 02:11
02:14 kurahaupo joined 02:16 espadrine left 02:21 Cabanossi left 02:23 Cabanossi joined 02:38 aborazmeh joined, aborazmeh left, aborazmeh joined
Geth Swapped META.info → META6.json in 2 dists in github.com/perl6/ecosystem/commit/005317e258 02:44
02:47 noganex_ joined
ugexe github.com/ugexe/zef/issues/154#is...-298141904 # spdx expression grammar with a recursion problem :/ 02:48
02:50 noganex left 03:00 lucs left 03:06 Cabanossi left 03:08 Cabanossi joined 03:17 bjz joined
TreyHarris alphah: samcv ranguard huggable DrForr ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ilmari ugexe u68fiuk6sf 03:20
argh, cat
sorry
03:29 khw left 03:31 lucs joined 03:34 Cabanossi left 03:37 Cabanossi joined 03:39 aborazmeh left, TEttinger left 03:44 labster left
Geth Swapped META.info → META6.json in 2 dists in github.com/perl6/ecosystem/commit/e1b91980d6 03:44
ugexe samcv: github.com/ugexe/zef/compare/reporter can generate these testers.p6c.org/reports/145801.html in addition to your ecosystem-tests, but its not in master 03:56
04:03 Khisanth left
TreyHarris Design q: If you can write a typical object-construction passed-attribute sanity-check as a (simple) argument constraint, should you do the sanity-checking that way and not by throwing a custom exception in the BUILD/TWEAK body? Does your opinion change if most sanity checks can be done that way, but one argument can't? If not, should I throw an X::TypeCheck::Binding::Parameter myself, or throw a custom 04:03
exception for this single argument?
Since if I get into the body, the failure was not in binding, seems like I should throw something else. But that makes it feel more like I shouldn't use argument constraints for this purpose at all 04:05
it's an implementation detail that I sanitized my input in a way that made binding fail. (Can I customize the exception messages a named subset will throw?) 04:07
skids If we are talking about where clauses on a custom .new, I'd stop short of saying those should be "avoided", but they AFAIK they have speed penalties, and they definitely have side-affects on MMD if your .new may ever be multified. 04:12
Well, you can catch and throw something else I guess. 04:13
TreyHarris skids: I was talking where clauses or named subset parameters on BUILD, i.e. 04:16
m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod BUILD(Positive :$x = 0) { $!y = $x } }; Bar(x => 3).say
camelia Cannot coerce to Bar with named arguments
in block <unit> at <tmp> line 1
TreyHarris m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod BUILD(Positive :$x = 0) { $!y = $x } }; Bar(x => 3).perl.say
camelia Cannot coerce to Bar with named arguments
in block <unit> at <tmp> line 1
TreyHarris oh, this works in v6.c
04:17 kent\n left, sena_kun joined
TreyHarris m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod BUILD(Positive :$x = 0) { $!y = $x } }; Bar(x => -3) 04:17
camelia Cannot coerce to Bar with named arguments
in block <unit> at <tmp> line 1
04:18 kent\n joined
sena_kun 04:18
yoleaux 28 Apr 2017 23:54Z <samcv> sena_kun: new format for the module tests. json overview, and in a folder of the same name seperate log files for each module's installation run hack.p6c.org/~samcv/ecosystem-tests/
04:18 Khisanth joined
TreyHarris bisectable6: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod BUILD(Positive :$x = 0) { $!y = $x } }; Bar(x => 3).perl.say 04:19
bisectable6 TreyHarris, On both starting points (old=2015.12 new=5e74017) the exit code is 1 and the output is identical as well
TreyHarris, Output on both points: «Cannot coerce to Bar with named arguments␤ in block <unit> at /tmp/8j2PGqgXT3 line 1␤»
TreyHarris whuh? I just copy-pasted from the REPL
skids Why coerce and not .new?
04:20 TEttinger joined, Cabanossi left
TreyHarris skids: oh, that was my mistake, in closing the lines up for camelia I removed the new- 04:21
m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod BUILD(Positive :$x = 0) { $!y = $x } }; Bar.new(x => -3).perl.say
camelia Constraint type check failed in binding to parameter '$x'; expected Bar::Positive but got Int (-3)
in submethod BUILD at <tmp> line 1
in block <unit> at <tmp> line 1
TreyHarris m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod BUILD(Positive :$x = 0) { $!y = $x } }; Bar.new(x => 3).perl.say 04:22
camelia Bar.new(y => 3)
04:22 Cabanossi joined
TreyHarris skids: you would recommend writing a new and not a BUILD? why? it seems like a simple input-sanity check shouldn't be a heavy-lift operation 04:23
skids m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod BUILD(:$x = 0) { $!y = $x } }; Bar.new(x => -3).perl.say 04:24
camelia Type check failed in assignment to $!y; expected Bar::Positive but got Int (-3)
in submethod BUILD at <tmp> line 1
in block <unit> at <tmp> line 1
TreyHarris m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod TWEAK(Positive :$x = 0) { $!y = $x } }; Bar.new(x => 3).perl.say; Bar.new(x => -3).perl.say
camelia Bar.new(y => 3)
Constraint type check failed in binding to parameter '$x'; expected Bar::Positive but got Int (-3)
in submethod TWEAK at <tmp> line 1
in block <unit> at <tmp> line 1
TreyHarris even TWEAK works
skids Don't know which message I prefer, too tired.
No I was just assuming you were using new.
samcv o/ sena_kun
sena_kun samcv, o/ 04:25
samcv have a script i'll upload that generates this gist.github.com/samcv/5339208c44a4...8e02dd0cee
well not automatically. but i'll probably work it into the other script
skids I suppose the binding message at least says the name of the parameter.
anyway, sleep time. 04:27
sena_kun samcv, haven't you already done all the work? :o
samcv maybe. idk
04:27 skids left
samcv it's not automated yet and idk where to put it yet 04:27
or how to keep track of issues 04:28
but at least one point further i guess
TreyHarris m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod TWEAK(Positive :$x = 0) { $!y = $x } }; Bar.new(x => 3).perl.say; try { CATCH { default { say .WHAT.perl }; Bar.new(x => -3).perl.say }
camelia 5===SORRY!5=== Error while compiling <tmp>
Missing block
at <tmp>:1
------> 3WHAT.perl }; Bar.new(x => -3).perl.say }7⏏5<EOL>
sena_kun samcv, well, github.com/perl6/ecosystem/wiki/St...les-on-nom - this page was created, but haven't used since 2012(oh wow), so I think, we can use it now.
samcv hmm 04:29
and now the thing has stalled. i think. it's asking me for github password and username
TreyHarris m: class Bar { subset Positive of Int where * >= 0; has Positive $.y; submethod TWEAK(Positive :$x = 0) { $!y = $x } }; Bar.new(x => 3).perl.say; try { CATCH { default { say .WHAT.perl } }; Bar.new(x => -3) } 04:30
camelia Bar.new(y => 3)
X::TypeCheck::Binding::Parameter
ugexe exceeded your request limit?
samcv messed up my tty and now it's not responding anymore 04:31
TreyHarris samcv: are you using an OAuth token, or ssh?
samcv this is a server. it doesn't have git setup on my account
and it only happens for some module i'm not sure which 04:32
ugexe ah, a bad url usually
samcv but it should kill it.
idk why it ruins everything
TreyHarris samcv: I don't understand. It's doing things on your behalf on github, how can it not have your account?
samcv the tty is mostly frozen
it isn't doing anything on github 04:33
different than the one i've been submiting PR with
sena_kun afk for 5 mins
TreyHarris But in general, ssh and password-based https gets throttled after many fewer requests than a token does.
samcv so this one only does client side things on git
i have no setup. are you implying github is throttling clone's?
or whatever?
got to 528 modules or so
i don't think so because if i start it again. it'll work 04:34
ok good. `clear` fixed my tty
TreyHarris no; you said it's asking for your github username and password. No git-local operation can do that.
samcv it installs using zef
this is the last text on the screen gist.github.com/samcv/8aaa3b37bd3a...c9c104d0b8 04:35
ugexe its from `git clone github.com/xxx/xxx`
samcv though it was asking for github username and password
isn't that only for pushing 04:36
unless the module does something stupid?
ugexe not if the url is bad
TreyHarris oh. a clone is an operation that gets throttled by IP if you don't give credentials
samcv ah
yeah, though i will restart it and it'll work fine. it used to stall at the beginning of the build after like 100, but then i randomized module install order 04:37
so it's gotta be module
TreyHarris using any authenticated version will get you past that throttling threshold; using an OAuth token will get you even higher threshold.
ugexe something in the ecosystem declared their source-url wrong
04:38 japhdc joined
samcv but it might be Ncurses? that's the last thing it starts to test? 04:38
ugexe it fetched Ncurses, so no
unless Ncurses messed up your tty?
samcv possible 04:39
i can check the json for the last module it built
04:39 labster joined
samcv file::compare is the last one to have any json data, so it must have hung before that point 04:42
ugexe well it would happen during the fetch phase of some module or any of its dependencies
samcv wish i knew what it was doing at the time
yeah
i guess i'll make it output the json before testing completes then 04:43
and put status as pending or something
ugexe i would first do a check for invalid urls in the ecosystem 04:44
for source-url
samcv hm
yeah that could work too. but. it will be useful in the future to add it to my script as well 04:45
also i have it supposed to kill things if they take too long
but doesn't work in this case
maybe shuold try and kill all git processses if it has to kill things
sena_kun and you can also add a simple `say "Next module is: $name"`, to be able to see the exact place of hang 04:46
samcv well i want it to all be done by json sena_kun ideally
and not have to look at a log file.
except *permodule*
ugexe run with --debug
i think that will expose it
samcv run zef with --debug?
ugexe it should be happening during the fetch phase, and those messages dont show without --verbose or --debug 04:47
samcv ok i'll do that then ugexe
sena_kun I meant to catch a hang, but --debug option is better for sure. 04:48
04:50 poohman joined
samcv ok added those options, starting a new build now 04:52
yeah i understoon sena_kun. should put it in the json though, so will be helpful even if the output goes screwy due to Ncurses or something being tested
04:54 geekosaur left, geekosaur joined
sena_kun samcv, let's see then. With json and semi-automatical pretty modules list generation(it can be passed to the wiki page, I guess), my automatisation desires are satisfied. Is there something else I can do? 04:54
samcv uhm
yes. 04:55
figure out how i can keep track of issues i guess
so i have this on git now github.com/samcv/rakudo-appimage/b...ingmods.p6
has hardcoded files in atm, but should be good for testing. but we need some way to report issues and be able to find them. so idk. maybe we want to have them have a title with certain text? 04:56
what do you think
that will save a ton of work if it can automatically update the status of the ticket/pr
sena_kun also, I can give you an (almost) exact list of modules with missing dependencies(though some of them looks strange, for example, readline).
*look 04:57
samcv sena_kun, what's the best way to find if they're missing dependencies? maybe we should use the conglomerate json file that's made up of all the meta's in the eco
and make sure that they exist? hm
show me a gist sena_kun
04:57 japhdc left
sena_kun samcv, missing native dependencies, I meant. 04:58
samcv oh
sure show me it anyway
sena_kun and it can be found by grep|sort|uniq, so I'll be back quickly...
samcv ok :) 04:59
sena_kun, what's your github name? 05:01
sena_kun samcv, Altai-man. give me a sec... 05:04
samcv ok
sena_kun samcv, gist.github.com/Altai-man/64a8523a...246a1e949a 05:05
05:06 poohman left
samcv sena_kun, ok i invited you to the repo 05:06
05:07 quester joined
samcv just feel free to add as much stuff as you want github.com/samcv/rakudo-appimage-m...stallation 05:09
sena_kun samcv, okay. as I understand it, you want to automatically create issues about failing modules and gather fixed modules, but. if this build will be run everyday, then if module fixed, we can check it as "the module was nok, now it is ok", I am not sure that we really need to keep a watch over created issues(repo owner can easily close them after appropriate fixing). 05:10
samcv we are not to the creation stage yet
we are to automating updating status of existing tickets
but eventually that would be cool. but taking it one step at a time :)
atm need to find a way to use github's issue api to track the status, and identify them. so we can open a ticket, add something to the title or somewhere in the body idk yet (or maybe there's another way? idk) 05:11
and have the list automatically populate with the issue 05:12
without needing to copy and paste the issue/pr
but feel free to add any ideas to that page i linked you to
sena_kun okay, so the current problem is to create an issue(without double-posting) for every failing module repo, right? 05:15
samcv that would be the end point
sena_kun hmmm. The steps "update" and "create" is reversed in my mind.
samcv for now trying to have it automatically check if an issue we've opened has closed/is still open etc
yeah
sena_kun you meant existing tickets opened by hands? 05:16
samcv for now yes
but feel free to figure out how to open issues as well (well i know you *can* open issues, but a prerequisite for that is not duplicating them... which means identifying if a ticket is already there) 05:17
or also identify if a ticket is already open on the project for example. so. it all goes together. but opening tickets is what we should do after we've already gotten issue identification down 05:18
unless nobody cares about making duplicate issues and annoying people :X
for now could be as simple as putting [all-module-test] in the issue title or something and grepping for that. 05:19
ugexe <!--- jobtype=checkfoo --> in the issue, then check all issues for the identifier
samcv but that's under engineered for sure
what identifier?
oh 05:20
you mean literally a comment
sena_kun hmm, okay. I'll google some ways of indentifying, but some static title like `[Tests are failing]` seems quite good for me.
ugexe yeah, in the issue body
sena_kun or comment, right.
samcv hmm true
but yeah. that's the next stage :)
05:21 bjz left
samcv sena_kun, do you have the `hub` program? 05:21
it lets you do some things with github api from the command line. may be useful. though may be more sophisticated ways to do it for sure.
like using their api and curl or whatever and processing the json for the issue. but yeah 05:22
sena_kun samcv, nope, but I can install it easily.
samcv api.github.com/repos/rakudo/rakudo gives you json like for this is, info about the repo itself
yeah. it's cool. not *needed* for this. but i used it for making PR 05:23
probably easier to use github's api to process issue's though. than having to process text and not json, and dealing with parsing
sena_kun I thought about using perl6 module for this task(is our git wrappers ready? let's see). 05:24
samcv curl '-H' 'Authorization: token MYTOKENHERE' 'api.github.com/rate_limit' < for example that's how to use oauth tokens. if you read about that
yeah i'm not sure. that would be nice as well
one for checking issues especially would be useful for this case
sena_kun of course, raw github html parsing is not an option. :)
samcv issues and PR
hahaha
that would kill me
sena_kun okay, a script that uses api to look into the repo and checks it for a certain title/comment labeled issue. 05:26
05:31 bjz joined 05:35 Cabanossi left 05:37 Cabanossi joined 05:39 avalenn joined 05:47 BenGoldberg left 05:49 avalenn left
samcv yep :) be back in an hour or so 06:05
06:06 setty1 left 06:07 setty1 joined 06:11 roguelazer left 06:16 wamba joined 06:20 Cabanossi left 06:22 Cabanossi joined 06:43 geekosaur left 06:45 geekosaur joined 06:48 mr-foobar joined 07:00 winnie_ joined 07:02 winnie_ left, winnie_ joined, winnie_ left, poohman joined
poohman Hello all, when I pipe into Perl6 from Bash variable should I use? $0? Can someone help me with an example 07:04
07:09 dct joined
samcv poohman, pipe into perl6? or use command line args? 07:17
07:17 parv joined
poohman im trying something like this 07:17
samcv command line args are in @*ARGS array
poohman oh ok 07:18
let me try once
I tried earlier - find ~/ -name zef| perl6 -ne {'say $0'} 07:19
bear with me - noob here 07:20
find ~/ -name zef|perl6 -ne {'say @*ARGS'} 07:21
07:21 Cabanossi left
poohman shows empty arrays 07:21
07:22 Cabanossi joined 07:31 wamba left
parv just updated rakudo to 5e74017. make build dies during Configuration phase 07:41
07:42 rindolf joined
poohman samcv: find ~/ -name zef|xargs perl6 test1.p6 works 07:43
cant I directly pipe it in like in AWK??
07:44 wamba joined
poohman find ~/ -name zef|xargs perl6 -e {'say @*ARGS'} works 07:46
but not with -ne
samcv : thanks
shadowpaste "parv" at 217.168.150.38 pasted "rakudo updated to 5e74017d; make build dies while updating MoatVM" (12 lines) at fpaste.scsys.co.uk/559070 07:50
parv well, MoarVM update dives into the moat of despair 07:53
07:59 espadrine joined
parv trying again after removing nqp/MoarVM/ ... 08:00
shadowpaste "parv" at 217.168.150.38 pasted "FreeBSD 11, rakudo r5e74017d: fails t/04-nativecall/02-simple-args.t" (22 lines) at fpaste.scsys.co.uk/559071 08:07
sena_kun how can I calculate is file modifying DateTime is older than now for 1 day? I know I can subtract it to Duration and then calculate seconds in a day, then compare, but it is not an elegant way to deal with things.
ah, stop, I can just do .day and then compare. 08:09
08:09 CIAvash joined
sena_kun samcv, can I add new stuff to your repo freely? 08:11
parv i wonder if Apple clang -O3 exception would apply to FreeBSD clang 4.0.0 08:15
08:24 dct left 08:26 kurahaupo left 08:30 wamba left 08:32 wamba joined 08:36 dct joined, domidumont joined
parv sent the bug report: perl #131237 08:42
synopsebot6 Link: rt.perl.org/rt3/Public/Bug/Display...?id=131237
08:42 domidumont left 08:43 domidumont joined
u-ou moo 08:47
samcv yes sena_kun 08:48
also make sure to follow clone instructions in the README sena_kun or you'll be dling like a GB 08:49
of appimage builds for a month XD
git clone --single-branch
sena_kun sure
I've already clonned it
samcv single branch or the whole thing?
sena_kun single branch
samcv good :)
sena_kun I'm on 3g. :) 08:50
I wrote a script for checking that can be extended(to create issues, etc). Just pushed it.
08:50 domidumont left
samcv sweet :) 08:50
sena_kun samcv, github.com/samcv/rakudo-appimage-m...checker.p6 - here it is. 08:51
And the bad news is that we cannot access wiki pages from api to update it. :/
samcv hm
oh you can clone the wiki maybe? 08:52
sena_kun there is a way if we store wiki in another repo, but I do not like that workaround, to be honest.
samcv see answer here stackoverflow.com/questions/240241...github-api
sena_kun yep, I've seen it, google is my friend. :) 08:53
samcv kk :)
but. if i clone that repo
i get files
that are the same files in the wiki 08:54
and i just pushed to it
hm. are you able to clone and push to it sena_kun ?
sena_kun samcv, let's try... 08:55
samcv .o(suspects there are secret git repository url's to issues, that nobody can use) 08:56
wish they'd let you check that out or whatever. but then anybody could leave github. and they would be unhappy
sena_kun what is exact link you used to clone?
08:57 parv left
sena_kun ah, nm 08:57
yes, I've cloned the wiki
samcv ne [email@hidden.address]
timotimo huh, .wiki.git is a thing?
samcv apparently 08:58
timotimo cool
samcv i'll be back in like 30 mins then take a look at your script sena_kun before i go to sleep 08:59
have a headache
sena_kun samcv, push is successful, I will look into page updation work later. Sure, take your time and have a nice sleep! 09:00
09:07 parv joined, parv left 09:16 dct left, rub_ixCube joined
Geth Inline-Perl5/master: 4 commits pushed by (Brock Wilcox)++, (Stefan Seifert)++ 09:17
rub_ixCube hello, I just recently installed perl6 and I was wondering how I added `/opt/rakudo-star-2017.01/bin` and `/opt/rakudo-star-2017.01/share/site/bin` to PATH? 09:18
timotimo hi 09:19
to be honest, i don't know what the exact proper way is, but i think what you ought to do is open the file .profile in your home directory and see if there's already a line containing "PATH" in it 09:20
if so, you can add those two lines in there with the path separator, which is usually a : between them
rub_ixCube oh ok Ill Try! 09:21
timotimo if not, write something like "export PATH=/opt/rakudo-star-2017.01/bin:/opt/rakudo-star-2017.01/share/site/bin:$PATH" in there
rub_ixCube so like this? `export PATH="$HOME/.cargo/bin:$PATH":"/opt/rakudo-star-2017.01/bin":"/opt/rakudo-star-2017.01/share/perl6/site/bin"` 09:23
09:23 parv joined
nine rub_ixCube: looks good 09:23
09:24 parv left
timotimo oh, i never tried having "" in there 09:24
but if there's already something there and it's using that, it must be good 09:25
rub_ixCube doesn't work ;(
timotimo this will only take effect for new terminals you open, and other programs usually have to wait for a newly logged-in desktop-environment to give the new values to the programs
rub_ixCube i know, i do it in a new terminal every time 09:26
nine What does echo $PATH give you?
timotimo you're checking by running "echo $PATH"?
rub_ixCube or do all the terminals have to be closed?
09:27 labster left
rub_ixCube my PATH arguments are not there... 09:27
timotimo only newly opened terminals will have it, but you can "source ~/.profile" in your existing terminals to get the values
nine rub_ixCube: you could try to log out/log in. I'm not sure when exactly .profile will be sourced. I usually put my settings in .bashrc 09:28
rub_ixCube oh Ill Try There then, (not .bashrc though, .zshrc)
works now :) 09:29
09:29 rub_ixCube left 09:35 nadim joined, Cabanossi left 09:37 pierre_ joined, Cabanossi joined 09:40 alyptik left
moritz \o 09:42
jnthn, masak: this looks like a copy&paste artifact: github.com/jnthn/json-path/blob/ma...NSE.txt#L1 09:43
09:46 astj joined 09:48 domidumont joined 09:49 xfix left, geekosaur left 09:50 xfix joined, geekosaur joined 09:56 quester left 10:11 kurahaupo joined, pierre_ left 10:25 pierre_ joined 10:26 pierre_ left 10:29 poohman left, poohman joined 10:32 poohman left 10:35 poohman joined 10:37 pmurias joined 10:46 japhdc joined 10:47 TEttinger left 10:51 Cabanossi left 10:52 Cabanossi joined 10:57 geekosaur left
timotimo hack.p6c.org/~timo/forestfire_callgraph.svg 10:57
10:59 geekosaur joined, poohman left 11:00 poohman joined 11:10 bjz left 11:11 astj left 11:12 bjz joined
sena_kun timotimo, looks cool. What is it? inb4: forestfire callgraph. 11:16
MasterDuke_ timotimo: cool, i've wanted something like that for a while
11:22 bjz left
MasterDuke_ i'm going to blame the early hour and lack of coffee yet on taking forever to realize TSTRAP.nqp is actually BOOTSTRAP.nqp 11:22
DrForr I think something might have broken trailing backslashes in a recent update - "2 for 1\\n" was previously valid code even with nothing after the continuation backslash, my test case now seems to lock up. 11:41
Actually it seems to be an error now, ignore my previous statement. 11:42
11:45 stmuk joined 11:47 stmuk_ left 11:49 stmuk_ joined 11:51 stmuk left 11:56 nadim left, nadim joined 11:59 poohman left, poohman joined 12:05 Cabanossi left 12:07 Cabanossi joined 12:13 pierre_ joined 12:16 geekosaur left 12:17 geekosaur joined 12:20 domidumont left 12:21 espadrine left
Geth ecosystem: 1c57cc54b1 | (Jonathan Stowe)++ | META.list
Rename META for Net::AMQP
12:31
12:48 bjz joined 13:03 wamba left 13:06 skids joined 13:07 nadim left 13:10 pierre_ left 13:15 nadim joined 13:20 wamba joined 13:26 wamba left, wamba joined 13:27 kurahaupo left, kurahaupo joined 13:33 pat_js joined, pmurias left
Geth doc: 9a63dc4d19 | (Zoffix Znet)++ | doc/Type/IO/Path.pod6
[io grant] Document IO::Path.cleanup
13:35
13:51 Cabanossi left 13:52 Cabanossi joined 13:54 pierre_ joined
Geth doc: 40740060b8 | (Zoffix Znet)++ | doc/Type/IO/Path.pod6
Fix .gist output in example
14:00
doc: CurtTilmes++ created pull request #1294:
Added a note about run/shell exceptions due to non-zero exits
14:03
14:04 sammers left, pierre_ left 14:05 skids left 14:07 CIAvash left 14:08 geekosaur left, geekosaur joined 14:09 sammers joined 14:12 pierre_ joined
timotimo hack.p6c.org/~timo/forestfire_callgraph_2.svg - what do y'all think? 14:18
moritz nice 14:21
can you sort it vertically by time spent?
14:23 poohman left, poohman joined
grondilu TIL Microsoft Edge is terrible at displaying SVG 14:29
MasterDuke_ would it make it too busy to split the progress bar box and have an exclusive time progress bar below? 14:32
Geth doc: 2387ce3518 | (Zoffix Znet)++ | 2 files
[io grant] Re-write IO::Handle.close docs
14:39
timotimo MasterDuke_: i would have rather put an exclusive time box in the name-of-function-box instead 14:43
MasterDuke_ yeah, that'd be good too 14:44
timotimo then i'll need to inner-join on the calls table *again* :D
to get the children this time
Geth doc: 79a5fce84a | (Zoffix Znet)++ | doc/Language/phasers.pod6
Add note that LEAVE phasers do get run

even when routine param binding fails
14:45
MasterDuke_ luckily they are fast queries on tables this small 14:46
timotimo right
hm. i might actually need a subquery here
Geth Swapped META.info → META6.json in 1 dists in github.com/perl6/ecosystem/commit/5c6f4ad301 14:48
14:49 pierre_ left, Cabanossi left 14:52 Cabanossi joined 14:56 mxco86 left
timotimo can't get it to not syntax error 14:57
Geth doc: 0def0d131a | (Zoffix Znet)++ | doc/Type/IO/Handle.pod6
[io grant] Amend IO::Handle.close docs

  - Be explicit written data may be lost if handle isn't closed,
   since GC isn't guaranteed to be run.
  - This isn't the case ATM since we don't seem to be buffering stuff,
   but we might do eventually.
14:59 raiph left, raiph joined 15:07 raiph left, raiph joined 15:08 lauct_ joined, espadrine joined 15:10 lauct left, lauct_ is now known as lauct 15:14 raiph left 15:15 raiph joined, zakharyas joined, bjz_ joined 15:16 bjz left
timotimo hack.p6c.org/~timo/forestfire_callgraph_3.svg now also has the contribution of each node in the node itself 15:17
i.e. the bar inside a node will give 100% when summed with the bars coming out of that node
15:33 jdv79 left, jdv79 joined
timotimo F5 for straighter lines and entry counts 15:34
15:35 Cabanossi left 15:37 Cabanossi joined 15:41 mtj_ joined, mtj_ left, mtj_ joined
timotimo moritz: i sort it by time now, here's how that looks like: hack.p6c.org/~timo/forestfire_callgraph_4.svg 15:43
i think i want to have the entries divided by the parent's entries
15:50 raiph left, raiph joined
timotimo well, maybe later 15:51
15:52 cdg joined 15:56 bjz_ left, bjz joined, khw joined
Geth Inline-Perl5: dfeea1b626 | (Stefan Seifert)++ | 6 files
Move the remaining roles into separate files
16:05
TreyHarris I think my failure to understand this reflect a deep misunderstanding of whatevers:
m: my @g = (<a b c>, 1..3).flat; say @g.map({.WHAT})
camelia ((Str) (Str) (Str) (Int) (Int) (Int))
TreyHarris m: my @g = (<a b c>, 1..3).flat; say @g.map(*.WHAT)
camelia Cannot resolve caller map(Array: Whatever); none of these signatures match:
($: Hash \h, *%_)
(\SELF: &block;; :$label, :$item, *%_)
(HyperIterable:D $: &block;; :$label, *%_)
in block <unit> at <tmp> line 1
geekosaur I think that's more because .WHAT is magic
TreyHarris m: my @g = (<a b c>, 1..3).flat; say @g.map(&WHAT) 16:07
camelia ((Str) (Str) (Str) (Int) (Int) (Int))
geekosaur basically .WHAT is actually a macro somewhere in the compiler, and here it's misexpanding and leading to odd calls
(probably being invoked on the Whatever itself instead of waiting for the Whatever to be applied to a parameter) 16:08
TreyHarris okay... then my gut that this transformation of .map({ .method-on-item }) -> .map( *.method-on-item) should pretty much always work isn't invalid, it just has exceptions? 16:09
geekosaur it;s unreliable when the method is secretly a MOP call (so any of the uppercase ones are potentially tricky)
TreyHarris do we create MOP calls we might think are simple method calls via any of the normal language features (roles, traits, etc.)? 16:11
geekosaur I don't think so, just those special uppercase ones 16:12
also iirc .WHY and .HOW are safe (.HOW would pretty much have to be since the others expand to uses of it) 16:14
Geth Inline-Perl5: c1a8e24f81 | (Stefan Seifert)++ | 2 files
Move remaining Inline::Perl5::Object setup code to that class' file
16:16
Inline-Perl5: 13a06fe3e4 | (Stefan Seifert)++ | lib/Inline/Perl5.pm6
Move Perl 5 code to the =finish section

Confuses the syntax highlighter way less and reduces the init_callbacks methods' size considerably.
16:29 japhdc left 16:30 zakharyas left 16:33 cdg left 16:35 Cabanossi left 16:37 Cabanossi joined 16:39 cdg joined 16:44 cdg left 16:59 lauct left 17:00 lauct joined, Sound joined, Sound left, Sound joined 17:05 labster joined
poohman Hello, what is the difference between the following, 17:07
my $a= point.new(x=>0.2,y=>0.24,z=>0.55);
my point $a.new(x=>0.2,y=>0.24,z=>0.55); 17:08
17:08 khw left
jnthn Did you mean `my point $a .= new(...);` ? 17:08
geekosaur I don't think that second one is legal. did you mean: ... that
and the difference is the type of $a is Any in the first one, so you could assign a non-"point" to it later 17:09
jnthn I suspect the second one may be legal syntax, but it sure won't end up with a point object in $a :)
poohman the 2nd one didnt give an error 17:10
but it said that it cannot look up attributes in a type object 17:11
jnthn Yeah, it'll parse the same as (my point $a).new(x=>0.2,y=>0.24,z=>0.55) 17:12
So, $a contains the point type object; .new is called on that, but the result is never stored anywhere, so the object is discarded. 17:13
And $a is left containing the point type object
poohman ah ok
thanks 17:14
jnthn The correct way to write `my point $a = point.new(...)` without repeating point is the .= operator, which means "make a method call and assign the result"
my point $a .= new(...);
poohman got it
jnthn .= is actually a bit more general
You can use it to turn any immutable method into a mutating one 17:15
m: my $a = "food"; say $a.uc; say $a; $a .= uc; say $a;
camelia FOOD
food
FOOD
jnthn There, `$a .= uc` is short for `$a = $a.uc`
jnthn wanders off for dinner 17:16
poohman thanks 17:17
17:18 labster left
poohman Another question - right now I have overloaded the say method for a class but can use it only as $a.say to get the overloaded function 17:22
if I use it as say $a; 17:23
i get the default method - can I overload it and still use it as say $a;??
Geth ecosystem: fbe1641bad | (Zoffix Znet)++ (committed using GitHub Web editor) | META.list
Add Trait::IO to ecosystem

Helper IO trait to auto-close filehandles on scope leave:
  github.com/zoffixznet/perl6-Trait-IO/
17:25
17:26 Zoffix joined, aindilis left
Zoffix poohman: just for `say`? What about `put` or "foo $your-object bar"? 17:27
m: class Foo { method gist { "teh gist" }; method Str { "teh Str" } }; my $o = Foo.new; say $o; put $o; say "foo $o bar"
camelia teh gist
teh Str
foo teh Str bar
Zoffix m: class Foo { method Str { "teh Str" } }; my $o = Foo.new; say $o; put $o; say "foo $o bar" # .gist fallsback to .Str 17:28
camelia Foo.new
teh Str
foo teh Str bar
Zoffix oh, never mind.
Ah 17:29
m: class Foo { method Str { "teh Str" }; method perl { "teh perl" } }; my $o = Foo.new; say $o; put $o; say "foo $o bar" # .gist fallsback to .perl
camelia teh perl
teh Str
foo teh Str bar
Zoffix This won't work for Str subclasses tho
17:29 Zoffix left 17:35 petercommand joined 17:37 domidumont joined
poohman sorry was away 17:37
17:37 pat_js left 17:39 espadrine left
poohman m: class Foo { method gist { "teh gist" }; method Str { "teh Str" } }; my $o = Foo.new; 17:42
camelia ( no output )
poohman m: class Foo { method gist { "teh gist" }; method Str { "teh Str" } }; my $o = Foo.new; say $o
camelia teh gist
poohman m: class Foo { method gist { "teh gist" }; method Str { "teh Str" } }; my $o = Foo.new; put $o; 17:43
camelia teh Str
poohman m: class Foo { method gist { "teh gist" }; method Str { "teh Str" } }; my $o = Foo.new; say "foo $o bar" 17:44
camelia foo teh Str bar
poohman hmmm
17:45 imcsk8 left, imcsk8 joined
gfldex poohman: say would need to be a macro to make that work 17:46
poohman im still trying to figure out what Zoffix did 17:47
17:48 Zoffix joined
geekosaur what is confusing there? 17:48
Zoffix poohman: it's very simple: `say` uses object's .gist method's output. `put` and stringification uses object's .Str method's output. You don't need to provide a .say or .put methods, it works just the same as routines 17:49
geekosaur say uses .gitst, put uses .Str, string interpolation uses .Str
er .gist
gfldex m: my &say = sub(|c){ put c.gist };
camelia 5===SORRY!5=== Error while compiling <tmp>
Undeclared routines:
c used at line 1
sub used at line 1. Did you mean 'sum'?
gfldex m: my &say = sub(**@c){ put @c».gist.join(' ') }; # actually 17:50
camelia 5===SORRY!5=== Error while compiling <tmp>
Unable to parse expression in argument list; couldn't find final ')'
at <tmp>:1
------> 3my &say = sub(**7⏏5@c){ put @c».gist.join(' ') }; # actuall
expecting any of:
infix
Zoffix poohman: and I don't know what gfldex is talking about. You don't need any macros or messing with `&say`
poohman ok - moment - let me try that here and have a look 17:51
gfldex say "foo $o bar" <-- to have say get a concatanation of .gist, one would need a macro that takes the literal apart 17:52
evalable6 (exit code 1) 04===SORRY!04=== Error while compiling /tmp/IkiSvmKVUi
Variable '$o' is not declared
at /tmp/IkiSvmKVUi:1
------> 03say "foo 08⏏04$o bar" <-- to have say get a concatanat
Zoffix That's interpolation of $o in a string (so .Str method). `say` then receives a Str
gfldex i know what it is, that's why I wrote „would“ 17:53
Zoffix doesn't see poohman asking about... taking literals apart to concatenate .gist 17:55
poohman had interchanged gist and Str here - almost there - its printing but afterwards it says
This type cannot unbox to a native string: P6opaque, Bool
in block <unit> at core.p6 line 13
Zoffix poohman: you got `say` inside your gist/Str methods? 17:56
Remove it. Just return the Str
poohman ok moment 17:57
gfldex /save
poohman need to look up concatenation - moment 17:59
Zoffix poohman: "foo" ~ "bar"
poohman: ("foo", "bar").join: 'some-separator'
m: say [~] 'a'..'z'
camelia abcdefghijklmnopqrstuvwxyz
Zoffix m: my $foo = 'foo'; my $bar = 'bar'; say "$foo $bar"; # another way 18:00
camelia foo bar
poohman perfecto
thansk
Zoffix Cool 18:02
18:02 Zoffix left 18:17 poohman left, poohman joined
samcv morning :) 18:20
18:21 poohman left 18:22 poohman joined
samcv 49.939099% of eco modules have licenses. 18:24
omg. so close
well have license tags in the META file. so... close
gfldex samcv: what kind of quest reward are you going to get? :-> 18:25
samcv uh. you get more internet points
if 1 more module adds it we will be at 50.06% 18:26
18:31 lauct left 18:38 ZofBot left 18:39 ZofBot joined, ChanServ sets mode: +v ZofBot 18:41 cdg joined
poohman If I use the Rat type - and the variable is assigned a 0 - what happens then? Cant a Rat be assigned a 0 value? 18:45
18:46 cdg left, pierre_ joined
poohman m: my Rat $a=0; 18:51
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot assign a literal of type Int (0) to a variable of type Rat. You can declare the variable to be of type Real, or try to coerce the value with 0.Rat or Rat(0), or just write the value as 0.0
at <tmp…
18:51 pierre_ left
poohman m: my Rat $a=0.0; 18:51
camelia ( no output )
poohman m: my Rat $a=1.212; 18:52
camelia ( no output )
poohman m: my Rat $a=1.22; say $a;
camelia 1.22
poohman m: my Rat $a=0; say $a;
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot assign a literal of type Int (0) to a variable of type Rat. You can declare the variable to be of type Real, or try to coerce the value with 0.Rat or Rat(0), or just write the value as 0.0
at <tmp…
poohman m: my Rat $a=0.0; say $a; 18:53
camelia 0
18:54 spider-mario joined
poohman m: my Rat $a=1.5; my Rat $b=1.5; my Rat $c=$a-$b; 18:54
camelia ( no output )
poohman m: my Rat $a=1.5; my Rat $b=1.5; my Rat $c=$a-$b; say $c;
camelia 0
poohman m: my Rat $a=1.5; my Rat $b=1.5; my Rat $c=sqrt(($a-$b)); say $c; 18:55
camelia Type check failed in assignment to $c; expected Rat but got Num (0e0)
in block <unit> at <tmp> line 1
poohman m: say sqrt(0); 18:56
camelia 0
poohman m: my Rat $a=1.5; my Rat $b=1.5; my Rat $c=sqrt($a-$b); say $c;
camelia Type check failed in assignment to $c; expected Rat but got Num (0e0)
in block <unit> at <tmp> line 1
poohman m: say sqrt(0.0); 18:58
camelia 0
samcv weeird.
m: my Rat $var = 0/0;
camelia ( no output )
samcv m: my Rat $var = 0
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot assign a literal of type Int (0) to a variable of type Rat. You can declare the variable to be of type Real, or try to coerce the value with 0.Rat or Rat(0), or just write the value as 0.0
at <tmp…
samcv m: my Rat $var = -0; 19:00
camelia Type check failed in assignment to $var; expected Rat but got Int (0)
in block <unit> at <tmp> line 1
poohman m: my Rat $a=1.5; my Rat $b=1.5; my Rat $c=(sqrt($a-$b)).Rat; say $c;
camelia 0
samcv that's less than awesome
though technically 0 isn't a Rat. but still. heh
m: my Rat $a = 0/1; 19:01
camelia ( no output )
samcv m: my Rat $a = 0/1; say $a
camelia 0
samcv m: my Rat $a = 40;
camelia 5===SORRY!5=== Error while compiling <tmp>
Cannot assign a literal of type Int (40) to a variable of type Rat. You can declare the variable to be of type Real, or try to coerce the value with 40.Rat or Rat(40), or just write the value as 40.0
at …
samcv yeah seems it doesn't let you do it for anything.
poohman, i'd just put the number over 1 19:02
poohman oh ok
samcv since Rat's hold fractions aka rational numbers
they have numerator and denominator component.
poohman Curtis Ovid Poes presentation made me do it :) 19:03
TreyHarris Is there a design reason that "has Numeric $.x, $.y, $.z is rw;" isn't supported? Every time I define several attributes with the same type and accessor traits I wonder about this. 19:05
samcv TreyHarris, does this work lass foo { has Numeric ($.a, $.b) is rw }
class foo { has Numeric ($.a, $.b) is rw }
poohman Math which works - so I thought might as well use Rat for all numeric variables I use 19:06
19:06 espadrine joined
DrForr has Numeric ($.x,$.y) is rw; # works for me. 19:06
samcv poohman, well if you divide ints then it becomes a rat
TreyHarris, use parens so it's clear that the numeric and rw is for the things in the parens and not the other ones
poohman ja i get that - its just that I thought it was a silver bullet - ill coerce it for now 19:07
TreyHarris samcv: I see. Yes, parens do work, they just feel weird to me in this context. I understand why from how 'has Type' and 'is rw' are implemented. 19:09
That's why I asked if there was a "design reason".
samcv TreyHarris, and declaring multiple variables other places `my ($a, $b)` for example
DrForr TreyHarris: It's analogous to 'my Int ($a, $b);'
TreyHarris DrForr, samcv: that makes sense. thanks
samcv well the traits apply to everything in parens
i mean sure maybe it'd be cool if it let you just do whatever you wanted. but the parens make it clear and easy to tell it's for all things inside it 19:10
while `my $a, $b` is like sayig my $a comma $b
and then $b hasn't been defined yet.
but if you have $b defined
m: my $b = 10; say my $a, $b 19:11
camelia (Any)10
samcv that probably proves why it is how it is
DrForr Precedence takes over, and it parses like (my $a), $b
samcv yep
and commas in perl form lists or seperate arguments
poohman, you could use `Real` 19:14
TreyHarris nods
samcv Real can store Rats and int's
er. i think. argh
trying to look at this type graph
DrForr samcv: Not to derail things, but I'm starting on a Dist:Zilla-alike with the specific goal of having a dist-upgrade option to help authors update metadata and boilerplate. 19:15
TreyHarris Why is Numeric the wrong choice for poohman's example?
samcv m: my Real $a = 1/9; say $a.WHAT
camelia (Rat)
samcv numeric migth work
docs.perl6.org/images/type-graph-Real.svg
so you could do Numeric too. but don't do Num because that allows floats 19:16
TreyHarris m: class Point { has Numeric ($.x, $.y, $.z) is rw; }; my Point $p .= new(x => Rat(1), y => Int(2), z => Num(3.5)); $p.say 19:19
camelia Point.new(x => 1.0, y => 2, z => 3.5e0)
TreyHarris Numeric allows floats 19:20
I forget, how do you parameterize it so that Point's $!x, $!y, and $!z are all Numeric but also are all the same type? So an <Int, Int, Int> is okay as is a <Rat, Rat, Rat>, but an <Int, Rat, Int> is disallowed? 19:22
can you only do that with roles?
19:23 sena_kun left
TreyHarris (for extra credit, how to allow any three arguments that can be coerced into the same type?) 19:23
DrForr IIRC Int is a subset of Rat? 19:24
samcv no not by the type graph 19:25
TreyHarris DrForr: good point. so all Int or all Num but not a mix of Int and Num
samcv well yo ucould mix them sure... depends what you store in the variables... 19:26
DrForr He's trying to constrain the types, not allow the mixture, I think.
samcv hm
but.. Ints can be converted to rats 19:27
m: 5.Rat.say
camelia 5
19:27 mxco86 joined
samcv but not the other way around (without losing info) 19:27
19:27 geekosaur left
TreyHarris just check it however makes sense in TWEAK and throw? 19:28
DrForr Any particuar reason you're looking to do this, other than just beecause you mgith be able to?
samcv m: my Int $number-of-times-to-loop = 5; my Int $days = 7; my Numeric $foo = $number-of-times-to-loop / $days; dd $foo
camelia Rat $foo = <5/7>
19:28 geekosaur joined
samcv if you need to store integers, then cal them Int's, if you don't know then use Rational which allows it to be a Rat or a FatRat 19:29
or contstrain as Rat idk i don't care. but FatRat can store bigger numbers or whatever 19:30
TreyHarris DrForr: there are uses for this in Haskell, so you have a way to describe a type as "foo :: Numeric t => (t,t,t) -> Point" or "foo :: Numeric t1, t2, t3 => (t1,t2,t3) -> Point" and they each have their uses
an inversion rotation, for instance, is a slot-swapping operation when all three components of the point are the same type, but if they're different conforming types you need to do math 19:34
DrForr Yeah, but Perl6 lets you do multimethod dispatch, which can be thought of as a different way of accomplishing the same thing. 19:35
19:35 domidumont left
DrForr Like ou could add multi invert(Int,Rat,Int) {} multi invert(Int,Rat,Rat) {} 19:35
TreyHarris DrForr: *nod*. This is the thing I pointed out last week when if you use a mix of types as Hash keys the key becomes unrepresentable by .gist or .perl because there's no cmp for two Anys 19:36
and .gist and .perl on hashes tries to sort them first
DrForr You can tell Perl6 to use object types for hash keys explicitly, are you doing that? 19:37
(I forget the syntax)
TreyHarris no, i didn't know there was syntax for that. let me check the docs.
It's :{ ... } apparently 19:41
DrForr Thought that wa it, but didn't want to confuse matters.
19:42 poohman left, poohman joined 19:43 pmurias joined
pmurias m: my token foo { :7ignorecase }; 19:44
camelia ( no output )
TreyHarris m: my %h{Cool}; %h<3> = 1; %h<a> = 2; %h<2.0> = 3; for %h.kv -> $k, $v { say "$k: $v" }; dd %h
camelia 3: 1
2.0: 3
a: 2
Ambiguous call to 'infix:<cmp>'; these signatures all match:
:(Int:D \a, Rational:D \b)
:(Str:D \a, Str:D \b --> Order:D)
in block <unit> at <tmp> line 1
pmurias why is :7ignorecase allowed?
geekosaur because Bool is an Enum, and therefore compatible with Int 19:45
SmokeMachine m: class A {has $.s = 42}; class B is A {has $.s = 13}; say B.new
camelia B.new(s => 13, s => 42)
SmokeMachine is that expected?
m: class A {has $.s}; class B is A {has $.s = 13}; say B.new 19:46
camelia B.new(s => 13, s => Any)
TreyHarris m: %h{Cool} = :{3 => 1, a => 2, 2.0 => 3};for %h.kv -> $k, $v { say "$k: $v" }; dd %h
camelia 5===SORRY!5=== Error while compiling <tmp>
Variable '%h' is not declared
at <tmp>:1
------> 3<BOL>7⏏5%h{Cool} = :{3 => 1, a => 2, 2.0 => 3};f
19:46 poohman left
TreyHarris m: my %h{Cool} = :{3 => 1, a => 2, 2.0 => 3};for %h.kv -> $k, $v { say "$k: $v" }; dd %h 19:46
camelia Potential difficulties:
Useless use of hash composer on right side of hash assignment; did you mean := instead?
at <tmp>:1
------> 3y %h{Cool} = :{3 => 1, a => 2, 2.0 => 3}7⏏5;for %h.kv -> $k, $v { say "$k: $v" }; d
a: 2
2: 3…
19:46 poohman joined
TreyHarris m: my %h{Cool} := :{3 => 1, a => 2, 2.0 => 3};for %h.kv -> $k, $v { say "$k: $v" }; dd %h 19:47
camelia Type check failed in binding; expected Associative[Any,Cool] but got Hash[Mu,Any] (:{2.0 => 3, 3 => 1, :...)
in block <unit> at <tmp> line 1
19:49 Cabanossi left
pmurias geekosaur: is there a modifier where passing a number makes sense? 19:50
geekosaur I doubt it but I also doubt anything can sensibly catch this
at most there could be a runtime check on the range, which would slow a lot of stuff down
TreyHarris m: class A { has $.s = 42; }; class B is A { has $.s = 13; }; B.new.perl; B.new(s => 13, s => 42).perl 19:51
camelia ( no output )
TreyHarris m: class A { has $.s = 42; }; class B is A { has $.s = 13; }; B.new.perl.say; B.new(s => 13, s => 42).perl.say
camelia B.new(s => 13, s => 42)
B.new(s => 42, s => 42)
pmurias geekosaur: we can just remove the grammar rules that allows passing a 7 there
s/rules/rule 19:52
19:52 Cabanossi joined
geekosaur so that now has different parsing rules than pairs in general? 19:52
pmurias yes, it's parsed by a different rule 19:53
SmokeMachine m: class A { has $.s = 42; }; class B is A { has $.s = 13; }; B.new.perl.say; B.new(s => "a").perl.say 19:54
camelia B.new(s => 13, s => 42)
B.new(s => "a", s => "a")
pmurias m: my token foo { :highlyillegal };
camelia 5===SORRY!5=== Error while compiling <tmp>
Unrecognized regex modifier :highlyillegal
at <tmp>:1
------> 3my token foo { :7⏏5highlyillegal };
19:55 TEttinger joined 19:58 AlexDaniel joined, kaare__ joined 19:59 kaare_ left 20:02 skink joined
SmokeMachine m: class A {has $.s = 42}; class B is A {submethod BUILD(|) {$!s=13}}; say B.new 20:03
camelia 5===SORRY!5=== Error while compiling <tmp>
Attribute $!s not declared in class B
at <tmp>:1
------> 3ass B is A {submethod BUILD(|) {$!s=13}}7⏏5; say B.new
expecting any of:
horizontal whitespace
postfix
20:07 mr-foobar left 20:08 TEttinger left 20:14 Sound left 20:21 Cabanossi left 20:22 Cabanossi joined 20:28 nadim left 20:47 TEttinger joined
grondilu notices that rakudo/docs/ROADMAP has not been updated since 2015 20:52
timotimo as you do :) 20:53
grondilu ? 20:54
timotimo leave roadmaps unattended 20:55
20:58 cdg joined 21:00 nowan left
geekosaur mv ROADMAP GPS :p 21:02
21:03 cdg left
geekosaur actually discussed that the other day, with someone who'd stopped to ask for directions at the gas station + convenience store across the street... 21:03
21:05 Cabanossi left, nowan joined
geekosaur (online map/route stuff starts to become worthless south of here, there's rarely better than GPRS coverage until you approach Akron, unless you stay on one of the interstates) 21:06
21:07 Cabanossi joined
skink I'll probably be refactoring Crypt::Random in the near future, and I kinda wanna change its API as well 21:18
Input appreciated
21:22 setty1 left 21:24 khw joined, labster joined
TEttinger skink: do you have thoughts on ISAAC as a secure PRNG? 21:31
( www.burtleburtle.net/bob/rand/isaacafa.html ) 21:32
skink TEttinger, The lib just uses /dev/urandom and the Windows Cryptographic API
TEttinger oh ha
so not PRNG
the name is accurate :)
actually random
skink Right now it uses the above to get Bufs and turns them into Ints in a really slow way 21:36
And the API mimics arc4random() on the BSDs / OS X, which makes it look pretty out of place amongst other libs, I think 21:37
In terms of the function naming and usage
21:46 BenGoldberg joined 21:50 Cabanossi left 21:52 Cabanossi joined 21:54 geekosaur left 21:56 geekosaur joined 22:02 labster left
samcv yay ok. so finally i got basically all modules build statuses! 22:17
improved my script gist.github.com/samcv/5339208c44a4...8e02dd0cee
22:17 raschipi joined
samcv so 873 (that's all modules prolly?) with links to logs of the module install. 227 failing :) 22:17
though some maybe not building due to not having Native dependencies. hm. has anybody figured out how we should denote those in META6.info if at all? 22:18
22:21 rindolf left
jnthn Could try them on Windows too, since in many cases we do binary bundling there. 22:23
22:24 wamba left
jnthn discovered today that IO::Socket::Async::SSL somehow ends up not quite working out on Windows :( 22:24
May be an SSL lib versioning issues 22:25
timotimo :o
jnthn Since it was a particular symbol it couldn't find
But yeah, it's kinda funny that we've ended up with a better install experience on Windows in terms of deps for various native libraries. :)
*native bindings
Or maybe not so surprising, in that culturally it's OK (encouraged, even) to bundle all your dependencies to avoid "DLL hell" :) 22:26
22:26 dct joined
jnthn Maybe that "install the binary" option could be factored into something that knows how to delegate to package managers across a bunch of systems 22:27
Since the Windows bundling solution is already copy-paste across a bunch of repos by now 22:29
I guess this ties into the Build.pm escape hatch still being "unofficial" too 22:31
In that to install certain modules with Zef you actually also need a dependency on Panda in order to have a Build.pm
22:31 labster joined
jnthn Anyway, I'd suggest trying to solve this in Build.pm teritory where we can have multiple solutions in this space, rather than trying to go straight to having something in META6.json, since it feels like a really gnarly area. 22:34
skink Speaking of which, the libs bundled with the openssl bindings need to be updated 22:35
skink coughs
Woodi samcv++ # internet points :)
samcv oh?
samcv checks
or you just commenting on it and not saying that somebody gets points yet XD 22:36
nope. still at 49.8%
skink jnthn, Which symbol was it? 22:37
jnthn skink: SSL_CTX_set_default_verify_paths 22:38
skink: Are you in a position to do that update? :) 22:39
jnthn is...uh...not entirely keen to do an OpenSSL build :P
skink It's actually really easy to cross-compile
jnthn The libssh one was enough "fun" for me ;) 22:40
skink I just dunno if updated said libs will actually resolve that issue
updating*
So I'm looking into that atm
jnthn OK, cool, thanks :)
skink The bundle is 1.0.2j and latest of that series is 1.0.2k 22:41
jnthn I implemented/tested the thing on Ubuntu 16.04
22:42 pierre_ joined
jnthn Ideally the various native calls I added would end up back in the OpenSSL module though 22:42
Though I'm not quite happy with how things are structure there
The native symbols are all in packages so end up being package lookups
Which is a good bit slower if they were exported and then imported as lexicals 22:43
*than if
22:43 dct left 22:44 pmurias left
BenGoldberg wonders whether methods are slower than package lookups or vice versa. 22:46
22:46 pierre_ left
jnthn Methods range from faster to waaay faster 22:48
skink jnthn, I'm building atm, but for your purposes if you need it, cross-compile instructions are: github.com/sergot/openssl/pull/23
timotimo m: printf "%20s", "hello there"; 22:49
camelia hello there
timotimo why is it right-aligned? :(
jnthn skink: oh wow, that's waaay easier than I expected :)
skink Only because those dudes had the foresight to include everything needed in the configure script
timotimo sounds like i need Inline::JavaScript and import left-pad
jnthn timotimo: .ident? :) 22:50
22:50 ZofBot left 22:51 ZofBot joined, ChanServ sets mode: +v ZofBot
skink jnthn, And once built it's just a question of copying the two relevant dlls 22:51
jnthn timotimo: uh, .indent I meant :)
grondilu Tcl now targets webassembly :( fossil.e-lehmann.de/wacl/index
22:52 poohman left
timotimo jnthn: that doesn't put spaces at the end, though 22:52
22:52 poohman joined
go|dfish %-20s 22:52
timotimo m: printf "%-20s", "hello there";
camelia hello there
timotimo huh, fair i guess
grondilu "I'm a Perl fan and as such it saddens me to see other languages targeting wasm. I've been convinced for a while that webassembly is the next big thing in computing and so far the Perl community as far as I know has shown close to no interest whatsoever." 22:55
news.ycombinator.com/item?id=14229217
(just saying)
22:56 poohman left, poohman joined
timotimo that's not quite true 22:57
22:57 AlexDani` joined
timotimo pmurias has mentioned wasm a few times 22:57
22:58 AlexDaniel left, SHODAN left
timotimo okay, so i have a %f, right? 22:59
22:59 cgfbee left
timotimo it'll be between 0 and 100, but it can be 100, too 22:59
i'd like it to have a constant width
23:00 SHODAN joined
[Coke] . 23:00
23:00 musca joined
timotimo i'm not having much success with %06.3f 23:00
it'd be good if the . would line up
23:04 cgfbee joined 23:05 quester joined
timotimo imgur.com/a/tHklM - what does #perl6 think? 23:14
raschipi The problem with trying to represent dependencies in linux is that each distro packages them in a different manner. For example, if one needs ncurses development symbols to compile something, it will have a different name on each distro. In debian, it's called "libncurses5-dev", in fedora it's called "ncurses-devel", in Arch and Gentoo it's called "ncurses", etc. 23:15
skink timotimo, neat 23:16
raschipi Each one also divides things an a different way, so you never can be quite sure what package one might actually want. 23:17
23:20 Cabanossi left 23:22 Cabanossi joined
raschipi Packagekit tries to solve this issue, but I don't know how succesful it is: www.freedesktop.org/software/Packa...on-methods 23:24
gfldex samcv: luckily I implmenented `meta6 --issues` today, so I could learn about the issue you filed.
timotimo (now sorted by percentage) 23:25
raschipi If the dependency provides AppStream data, that can be used to locate software in a cross-distro manner too. 23:32
23:48 bjz left
samcv nice gfldex 23:48
ugexe samcv: you may or may not want to use zef with `--/cached` - on google i see a failure for HTTP::Server::Tiny while testing Crust, but I fixed the failing test 23:57
so because its version *, you might have a cached version * from before the fix 23:58
timotimo keyboard input, am i right? damn it.
23:59 imcsk8 left
timotimo somehow i'm getting things with a delay of one ... sometimes 23:59