»ö« 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: █; :$label, :$item, *%_) (HyperIterable:D $: █; :$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 |