»ö« Welcome to Perl 6! | perl6.org/ | evalbot usage: 'p6: say 3;' or /msg camelia p6: ... | irclog: irc.perl6.org or colabti.org/irclogger/irclogger_log/perl6 | UTF-8 is our friend! 🦋 Set by Zoffix on 25 July 2018. |
|||
00:00
Manifest0 joined
00:17
Manifest0 left
00:22
Manifest0 joined
|
|||
nadim_ | evening! | 00:28 | |
a simple questio here nopaste.linux-dev.org/?1215439 | |||
I'd like to write the two line in the sort block as one line but didn't manage | 00:29 | ||
00:29
Manifest0 left
|
|||
nadim_ | hmm no more programming late for me, I am too old tofind even simple errors before I ask everyone and then find it :) | 00:33 | |
00:35
Manifest0 joined
00:42
Manifest0 left
00:49
Manifest0 joined
00:53
Manifest0 left
00:59
Manifest0 joined
01:06
Manifest0 left
01:10
Manifest0 joined,
MasterDuke left
01:12
MasterDuke joined
01:13
MasterDuke left,
MasterDuke joined
01:14
mniip left
|
|||
Xliff | nadim: LOL! I resemble that remark! | 01:14 | |
01:23
aborazmeh joined,
aborazmeh left,
aborazmeh joined,
Manifest0 left
01:27
Manifest0 joined
01:37
Xliff left
01:46
mniip joined
01:47
MasterDuke left
01:53
giraffe_ left
01:54
giraffe joined
02:01
Manifest0 left,
imcsk8 joined
02:06
Manifest0 joined
02:09
cpup left
02:14
Manifest0 left
02:20
Manifest0 joined
02:36
aborazmeh left
02:57
Manifest0 left
03:06
Manifest0 joined
03:07
Cabanossi left
03:17
Cabanossi joined
03:18
Manifest0 left,
moysL joined
|
|||
moysL | Where can I get nqp-2019.03.tar.gz? (rakudo.org/files/rakudo is 500) | 03:20 | |
03:23
Manifest0 joined
03:25
melezhik joined
03:30
aborazmeh joined
03:31
aborazmeh left,
aborazmeh joined
03:32
Manifest0 left
|
|||
moysL goes to bed. Please .tell if there is an answer. Thanks. | 03:34 | ||
03:34
moysL left
03:37
Manifest0 joined
03:39
veesh left
03:42
melezhik left
03:44
veesh joined
03:49
kaare__ left,
kaare__ joined
03:54
Manifest0 left
03:55
cpup joined
03:59
Manifest0 joined
04:06
Manifest0 left
04:11
Manifest0 joined
04:22
Manifest0 left
04:28
Manifest0 joined
|
|||
holyghost | Good morning | 04:40 | |
04:41
curan joined,
reach_satori left,
reach_satori joined
04:56
Manifest0 left
05:02
Manifest0 joined
05:04
molaf joined
05:06
Manifest0 left
05:11
Manifest0 joined
05:17
molaf left
05:19
Manifest0 left,
sauvin joined
05:24
Manifest0 joined
05:28
Manifest0 left
05:33
Manifest0 joined
05:36
aborazmeh left
|
|||
nadim_ | morning | 05:37 | |
05:44
Manifest0 left
|
|||
moritz | .tell moysL perlgeek.de/static/p6/nqp/nqp-2019.03.tar.gz | 05:48 | |
yoleaux | moritz: I'll pass your message to moysL. | ||
05:49
Manifest0 joined
05:58
Manifest0 left
06:03
Manifest0 joined
06:08
Manifest0 left
06:14
Manifest0 joined,
Kaypie joined
06:15
Kaiepi left
06:24
Manifest0 left
06:30
Manifest0 joined
06:36
kst left
06:40
Manifest0 left
06:47
Manifest0 joined
06:53
Manifest0 left
06:59
Manifest0 joined
07:04
rindolf joined
07:10
Manifest0 left
07:15
Manifest0 joined
07:20
Manifest0 left
07:24
Manifest0 joined
07:32
patrickb joined
07:33
Manifest0 left,
abraxxa joined
07:36
dakkar joined
07:38
Manifest0 joined
07:42
adu left
07:44
noisegul joined
07:47
zakharyas joined
07:48
Manifest0 left
07:51
reach_satori left
07:52
dolmen joined
07:54
Manifest0 joined,
arkaitz joined
08:00
arkaitz left
08:11
Manifest0 left
08:12
dolmen left
08:15
dolmen joined
08:17
Manifest0 joined
08:39
reach_satori joined
08:44
reach_satori_ joined
08:47
reach_satori left
08:49
Manifest0 left
08:53
Manifest0 joined
09:02
Manifest0 left
09:07
Manifest0 joined
09:16
AlexDani` is now known as AlexDaniel,
AlexDaniel left,
AlexDaniel joined
|
|||
nadim_ | I added an example of DDT filters, dumping json, for those that are want make their data look even nicer. github.com/nkh/P6-Data-Dump-Tree/b..._filter.pl | 09:24 | |
timotimo: ^ | |||
09:25
Manifest0 left
|
|||
patrickb | AlexDaniel: How did you thesis defending go? | 09:26 | |
AlexDaniel | patrickb: it was rescheduled :) | ||
patrickb: tomorrow will be the day | 09:27 | ||
jnthn | AlexDaniel: Best of luck! | 09:29 | |
AlexDaniel | thanks | ||
09:29
Manifest0 joined
09:36
arkaitz joined
09:37
Manifest0 left
09:40
zakharyas left
09:41
Manifest0 joined
|
|||
timotimo | nadim_: that's super slick! | 09:41 | |
nadim_ | in just a few lines | ||
I want to make you use filters ;) | 09:42 | ||
jq also displays json with nice colors but when one is inside perl ... | |||
moritz | AlexDaniel: good luck! | 09:43 | |
AlexDaniel | thanks :) | ||
timotimo | do as the perlans do? | 09:45 | |
nadim_ | always! I always smile when I write 3 lines of perl and people tell me "but write it inxx language", hrrrm it's done why shall I re-write it? | 09:48 | |
I thought I was going to wraap it in some little utility, Cannot modify an immutable List ... Arff, Perl 6 is great but it breaks my balls sometimes; evenn though I am the one who is wrong here. | 09:50 | ||
patrickb | AlexDaniel: Oh well. Hope it'll be good! | ||
rindolf | Hi all! for (2..36) -> $b {(+$_).base($b).lc.say} does not work in perl6 -n - why? | 09:51 | |
nadim_ | AlexDaniel: I won't say good luck, I am sure you don't need it but "success to you!" | ||
AlexDaniel | thank you :) | 09:52 | |
nadim_ | m: for (2..3) -> $b {(+$_).base($b).lc.say} | ||
camelia | Use of uninitialized value of type Any in numeric context 0 0 in block at <tmp> line 1 Use of uninitialized value of type Any in numeric context in block at <tmp> line 1 |
||
timotimo | i wish you the best of luck around the thing. like, gentle traffic on the way to the location etc :) | ||
nadim_ | or be there very early and beat the traffic | 09:53 | |
timotimo | m: $_ = "99"; for (2..3) -> $b {(+$_).base($b).lc.say} | ||
camelia | 1100011 10200 |
||
timotimo | interesting | ||
rindolf | m: $_="9999\n"; for (2..5) -> $b {(+$_).base($b).lc.say} | 09:55 | |
camelia | 10011100001111 111201100 2130033 304444 |
||
rindolf | hmmm | ||
09:56
cpan-p6_ left,
AlexDaniel left
|
|||
rindolf | nadim_: bonjour | 09:56 | |
09:56
AlexDaniel joined
|
|||
nadim_ | rindolf: shalom | 09:56 | |
rindolf | nadim_: oovrakhah | ||
09:57
cpan-p6 joined,
cpan-p6 left,
cpan-p6 joined
|
|||
rindolf | nadim_: sup? | 09:58 | |
perlbot: help basheval | 09:59 | ||
perlbot | rindolf: The eval plugin. Syntax, «eval: code». Prefixes: w=>warnings, s=>strict, m=>use Ojo. Suffixes: t=>threaded, pb=>pastebin it, nl=>turn \n to . languages: js, rk, r, pl, perl, deparse, rb, cp, bl, cobol, cb, bash, bleed, 1, 2, 3, 4, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5, tall, all, rall, 5.6, 5.8, 5.8.4, 5.8.8, 5.10, 5.10.0, 5.12, 5.14, 5.16, 5.18, 5.20, 5.22, 5.24, 5.26, 5.28, 5.30 | ||
10:00
arkaitz left
|
|||
rindolf | echo 99999 | perl6 -n -e 'for (2..5) -> $b {(+$_).base($b).lc.say}' | 10:01 | |
nadim_ | rindolf: national day, I was supposed to put tiles on a wall,did some Perl 6 instead. now I have to beserious about it :) afk | 10:02 | |
rindolf | timotimo: how do i convert this pesky Any to Real? | 10:06 | |
timotimo | the problem isn't that it's an any, the problem is that it's undefined | 10:07 | |
so even if you turn it to a Real, which your code already does successfully, it'll just end up as 0 | 10:08 | ||
the output you get is just a warning, you can suppress those | |||
won't make the code right | |||
on the other hand | |||
i don't know why it doesn't have the lines in the $_ | |||
that's quite possibly a bug in rakudo | |||
if you assign $_ in front of the for loop, it works properly, and that shouldn't be different from using -n i think | |||
10:10
zakharyas joined
|
|||
timotimo | like, if you just use "for lines() { ... }" around the code it works fine | 10:11 | |
10:13
atweiden-air joined
10:16
arkaitz joined
|
|||
holyghost | AlexDaniel : good luck with your Thesis Defence | 10:19 | |
AlexDaniel | thank you :) | 10:20 | |
10:21
Manifest0 left
|
|||
holyghost | If they take one day after, you have a good Ph.D I presume | 10:22 | |
timotimo | Thesis Defense sounds like a spin-off genre of Tower Defense games | 10:23 | |
rindolf | AlexDaniel: gl | 10:24 | |
holyghost | timotimo : It's Dutch for Thesis offload, but I will do my best on the Tower Defense Games | ||
10:26
Manifest0 joined
|
|||
holyghost | I just came back from the bar, drinking 2 Chimay Blues' so don't harras me :o| | 10:26 | |
I'm am going to hack in some good shit in PaganVisions2, if Xliff leads me on | 10:27 | ||
Today at 19h I mean | 10:28 | ||
GMT+2 :-) | 10:31 | ||
10:32
Manifest0 left
10:38
Manifest0 joined
10:43
Manifest0 left
10:49
Manifest0 joined
|
|||
rindolf | holyghost: www.gradschoolhub.com/faqs/what-is...s-defense/ | 10:51 | |
holyghost: it is in english too | |||
10:51
atweiden-air left
10:53
zakharyas left,
Xliff joined
|
|||
Xliff | \o | 10:53 | |
m: for <a b c> X <e f g> -> ($a, $b) { say $a; say $b } | 10:54 | ||
camelia | a e a f a g b e b f b g c e c f c g |
||
Xliff | m: for <a b c> Z <e f g> -> ($a, $b) { say $a; say $b } | ||
camelia | a e b f c g |
||
Xliff | m: Hash.^attributes.say | 10:55 | |
camelia | (Mu $!descriptor Mu $!storage) | ||
Xliff | m: Hash.^attributes.say | ||
camelia | (Mu $!descriptor Mu $!storage) | ||
Xliff | ^^ Is that order always guaranteed? | ||
m: Array.^attributes.say | |||
camelia | (Mu $!descriptor Mu $!reified Mu $!todo) | ||
Xliff | m: for Array.^attributes Z Hash.^attributes -> ($a, $b) { Sa.say; $b.say } | 10:56 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: Sa used at line 1 |
||
Xliff | m: for Array.^attributes Z Hash.^attributes -> ($a, $b) { $a.say; $b.say } | ||
camelia | Mu $!descriptor Mu $!descriptor Mu $!reified Mu $!storage |
||
Xliff | m: for Array.^attributes Z Hash.^attributes.reverse -> ($a, $b) { $a.say; $b.say } | ||
camelia | Mu $!descriptor Mu $!storage Mu $!reified Mu $!descriptor |
||
jnthn | Xliff: Do you mean does .^attributes return them in the declared order? Yes. | 10:58 | |
Xliff: If you mean "can I depend on the internal structure of Array/Hash", then no, not at all. | |||
Xliff | Thanks, jnthn | ||
m: for Array.^attributes «Z» Hash.^attributes.reverse -> ($a, $b) { $a.say; $b.say } | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing infix inside hyper at <tmp>:1 ------> 3for Array.^attributes «Z»7⏏5 Hash.^attributes.reverse -> ($a, $b) { expecting any of: infix infix stopper |
||
Xliff | m: say <a b> Z <1 2 3> | 10:59 | |
camelia | ((a 1) (b 2)) | ||
Xliff | m: say <a b> »Z« <1 2 3> | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing infix inside hyper at <tmp>:1 ------> 3say <a b> »Z«7⏏5 <1 2 3> expecting any of: infix infix stopper |
||
Xliff | m: say <a b> »zip« <1 2 3> | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Missing infix inside hyper at <tmp>:1 ------> 3say <a b> »7⏏5zip« <1 2 3> expecting any of: infix infix stopper |
||
Xliff | m: say <a b> »[Z]« <1 2 3> | ||
camelia | Lists on either side of non-dwimmy hyperop of infix:<Z> are not of the same length while recursing left: 2 elements, right: 3 elements in block <unit> at <tmp> line 1 |
||
Xliff | m: for roundrobin(Array.^attributes, Hash.^attributes.reverse) -> ($a, $b) { $a.say; $b.say } | 11:01 | |
camelia | Mu $!descriptor Too few positionals passed to '<anon>'; expected 2 arguments but got 1 in sub-signature in block <unit> at <tmp> line 1 Mu $!storage Mu $!reified Mu $!descriptor |
||
Xliff | m: say roundrobin(Array.^attributes, Hash.^attributes.reverse) | ||
camelia | ((Mu $!descriptor Mu $!storage) (Mu $!reified Mu $!descriptor) (Mu $!todo)) | ||
11:03
farcas82regreg joined
11:05
ravenousmoose left
11:06
ravenousmoose joined
|
|||
rindolf | my golf is down to 40bytes | 11:09 | |
my$x=+slurp;$x.base($_).lc.say for 2..36 | 11:10 | ||
11:10
ravenousmoose left
11:11
araraloren joined
11:13
dolmen left
11:14
reach_satori_ left
11:19
araraloren left,
araraloren joined
|
|||
holyghost | Xliff, there's a subfeatured Cairo gfx backend in PaganVisions2 | 11:27 | |
I hope that you can help out later on | 11:28 | ||
11:28
Manifest0 left
11:29
veesh left
11:30
namibj left
11:31
dolmen joined
11:32
namibj joined
11:33
Manifest0 joined
11:34
veesh joined
11:38
Kaypie left,
Kaypie joined
11:48
Manifest0 left
12:00
Manifest0 joined
12:04
moysL joined
|
|||
moysL | . | 12:04 | |
yoleaux | 05:48Z <moritz> moysL: perlgeek.de/static/p6/nqp/nqp-2019.03.tar.gz | ||
12:04
squashable6 left
|
|||
moysL | moritz: Thanks! | 12:05 | |
12:07
squashable6 joined
12:08
ravenousmoose joined
12:11
dakkar left,
dakkar joined
12:33
aborazmeh joined,
aborazmeh left,
aborazmeh joined
12:39
Manifest0 left
|
|||
cpan-p6 | New module released to CPAN! Term::Choose (1.5.8) by 03KUERBIS | 12:40 | |
12:40
scimon joined
12:43
Manifest0 joined
12:48
Manifest0 left
|
|||
Xliff | If I get a type like Positional[Int]... how can I determine the Int part? | 12:51 | |
m: Positional[Int].of.say | |||
camelia | (Int) | ||
Xliff | \o/ | ||
12:52
arkaitz left
12:53
Manifest0 joined
|
|||
cpan-p6 | New module released to CPAN! Term::Choose::Util (1.2.9) by 03KUERBIS | 12:55 | |
13:08
dolmen left
13:17
moysL left
13:18
dolmen joined
13:20
dolmen left
13:26
dolmen joined,
Kaypie left,
Kaypie joined
13:32
domidumont joined
13:33
domidumont1 joined
13:36
domidumont left
13:40
curan left
13:42
domidumont joined,
molaf joined,
aborazmeh left
13:44
domidumont1 left
13:49
Manifest0 left
13:58
Manifest0 joined
14:00
Kaypie is now known as Kaiepi
14:03
guifa left,
pmurias joined
|
|||
pmurias | www.npmjs.com/package/rakudo - are the instructions clear enough? (I'll more about using rakudo.js in the browser later on) | 14:04 | |
super hard for me to judge such things myself | 14:06 | ||
14:09
dolmen left
14:13
Manifest0 left
14:18
imcsk8 left,
Manifest0 joined
14:24
sena_kun joined
14:28
skids joined
|
|||
patrickb | pmurias: It's pretty much copy paste of the commands there. I think so far it can't be much clearer. Question is, how do you continue from there on? How would a sane project setup look like? | 14:30 | |
14:32
molaf left
|
|||
pmurias | patrickb: thanks for feedback, I'll think about what the answers to that questions are | 14:33 | |
14:39
aborazmeh joined,
aborazmeh left,
aborazmeh joined
14:55
aborazmeh left
15:05
Manifest0 left
15:06
cpup left
15:07
pmurias left
15:09
dolmen joined
15:10
domidumont left
15:13
Manifest0 joined
15:15
dolmen left
15:16
dolmen joined
15:26
cpup joined
15:29
reach_satori joined
15:30
abraxxa left,
Manifest0 left
15:31
johnjohn101 joined
15:36
Manifest0 joined
15:40
Manifest0 left
15:47
mtg joined,
Manifest0 joined
15:58
Manifest0 left
16:04
Manifest0 joined
16:06
patrickb left
16:11
mowcat joined,
mowcat left,
mowcat joined
16:17
khisanth_ left
16:18
scimon left
|
|||
moritz | as an npm user, I'd certainly want to know how to integrate my js and my perl 6 | 16:20 | |
16:23
dakkar left
16:30
khisanth_ joined,
Manifest0 left
|
|||
Geth | ecosystem: tmtvl++ created pull request #458: Add Neural::Net to ecosystem |
16:32 | |
16:34
dolmen left
16:36
Manifest0 joined
16:37
araraloren left
16:40
dolmen joined
|
|||
Geth | ecosystem: 958e99de9f | (Tim Van den Langenbergh)++ | META.list Add Neural::Net to ecosystem See github.com/tmtvl/neural-net |
16:51 | |
ecosystem: cf8f16018b | Altai-man++ (committed using GitHub Web editor) | META.list Merge pull request #458 from tmtvl/master Add Neural::Net to ecosystem |
|||
16:54
mowcat left
|
|||
jdv79 | vrurg: i still can't build on this box | 16:58 | |
is git pull --rebase && git clean -dfx && perl Configure.pl --gen-moar not enough anymore? | 16:59 | ||
vrurg | jdv79: what error do you get? If it's first run of Configure.pl in some time you might need `git submodule update` for once. | 17:00 | |
jdv79 | its not the first run - its a checkout that's existed for months | 17:13 | |
and this way of updating has always worked | 17:14 | ||
nopaste.xyz/?47b34ec1400105ad#5Ltu...nPPV4iI9E= | |||
vrurg | jdv79: "First in some time" – meaning that a while ago it's been done in a way that Configure.pl sets submodule.recurse in git config and git pull updates submodules alongside with the repo tree. | 17:19 | |
You could've not run Configure since then. | |||
And from the error message I conclude that this is the case. If you repeat `git pull` it'll now update everything and build will work. | 17:20 | ||
17:21
kurahaupo is now known as kurahaupo_
17:26
Manifest0 left
|
|||
nadim_ | is ther something that is like map but doesn't return anything, a loop of sort. I whant to apply a block on all the elements of a list. | 17:28 | |
ugexe | for loop | ||
jdv79 | vrurg: so that's a one time extra step? | ||
it seems to be chugging along now | |||
nadim_ | that is not a for loop :) | 17:29 | |
ugexe | how is it not a for loop? | ||
jdv79 | vrurg: i missed the "in some time" | ||
nadim_ | @l.apply: {..} | ||
vrurg | jdv79: yep, it is. Transition period of a kind. | ||
jdv79 | cool. thanks. | ||
vrurg | yw :) | ||
ugexe | {...} for @l | ||
nadim_ | ugexe: I mean I want somethingthat's not a for loop | ||
ugexe | why do you not want a for loop for something that applies side effects? | 17:30 | |
nadim_ | just curious id there is another way to write it | ||
17:31
Manifest0 joined
17:32
|oLa| joined
|
|||
timotimo | i think when you just sink the result of a map, nothing will be retained? | 17:33 | |
m: (^100_000_000).map(* + 1); say "done"; | |||
camelia | done | ||
timotimo | you can't tell from camelia, but increasing the number here doesn't increase the memory it takes | 17:34 | |
nadim_: you can try that on your machine | |||
nadim_ | it says "done" | 17:37 | |
m:(^100_000_000).map(* + 1); say "done"; | |||
evalable6 | done | ||
ugexe | void context map always grinds my gears | ||
nadim_ | it took 8 secs on my machine and I thought it was intantaneous here ;) | ||
ugexe: I agree | 17:38 | ||
17:42
dolmen left
17:48
noisegul left,
Manifest0 left
17:51
kurahaupo_ is now known as kurahaupo
17:53
Manifest0 joined
17:54
andrzejku_ joined
17:55
andrzejku_ left
17:59
molaf joined
|
|||
Kaiepi | the js backend is really messy | 18:03 | |
i'm gonna clean it up and throw in some minor optimizations here and there | 18:04 | ||
ugexe | nadim_: (1,2,3)>>.&{say $_}; # :P | 18:06 | |
m: (1,2,3)>>.&{say $_}; # :P | 18:07 | ||
camelia | 1 2 3 |
||
timotimo | ugexe: that returns something tho! | 18:08 | |
ugexe | ah right | ||
18:08
Manifest0 left
18:15
Manifest0 joined
18:19
kurahaupo left
18:22
dolmen joined
18:25
Manifest0 left
18:29
Manifest0 joined
|
|||
nadim_ | hehe | 18:33 | |
is there a way to tell dd to print where it was called? | |||
18:33
sauvin left
18:34
Manifest0 left
|
|||
AlexDaniel | m: say callframe | 18:36 | |
camelia | <tmp> at line 1 | ||
AlexDaniel | m: sub foo { say callframe }; foo | ||
camelia | <tmp> at line 1 | ||
AlexDaniel | m: sub foo { say Backtrace.new }; foo | ||
camelia | Backtrace(4 frames) | ||
AlexDaniel | m: sub foo { say Backtrace.new.Str }; foo | 18:37 | |
camelia | in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
AlexDaniel | nadim_: that? | ||
nadim_ | no, not that, that I can, because DDT can render call frames, what I meant is the rakudo built in "dd", it seems theres one in my code that I can't pin point :) | 18:38 | |
now don't laug, or do, but this happens quite often to me | |||
I put debug printouts and then I have to chase them around | 18:39 | ||
18:39
Manifest0 joined
|
|||
nadim_ | DDT has a mechanism to enable display of call site globally ... because I sometime lose the call site | 18:40 | |
18:40
dolmen left
18:41
Woodi left
|
|||
timotimo | m: dd | 18:43 | |
camelia | block <unit>() | ||
18:43
pecastro joined
|
|||
timotimo | nadim_: you mean like that? | 18:43 | |
it's not the best | 18:44 | ||
but it's a start | |||
nadim_ | I mean that if I have this code at line L of file F: dd @something ... then I'd like dd to tell me it was called at F:L | 18:45 | |
18:45
Manifest0 left
|
|||
ugexe | callframe.line(), callframe.file() ? | 18:48 | |
nadim_ | yes but I want dd to do that, not me. all dd calls, because I have lost where dd is in the code | 18:49 | |
ugexe | oh right, dd isn't your module | ||
nadim_ | dd is rakudo, not even Perl 6 | 18:50 | |
ugexe | i suppose you could &dd.wrap({ ... }) | ||
nadim_ | ah! that sounds interesting | 18:51 | |
ugexe | m: &dd.wrap({ say callframe.line; say callframe.file }); dd 1 | ||
camelia | 1 <tmp> |
||
18:51
Manifest0 joined
|
|||
ugexe | m: &dd.wrap({ say callframe.line; say callframe.file; callsame }); dd 42 | 18:53 | |
camelia | 1 42 <tmp> |
||
ugexe | stupid order | ||
nadim_ | and I get this error: Too many positionals passed; expected 0 or 1 arguments but got 2 | 18:55 | |
ugexe | you'll have to show your work | ||
nadim_ | I just put your code in the begining of my script and I got that error | 18:56 | |
ugexe | m: &dd.wrap({ say callframe.line; say callframe.file; callsame }); dd my %x = [42,1] | 18:57 | |
camelia | 1 Hash %x = {"42" => 1} <tmp> |
||
ugexe | you should probably check what values are tripping it up | ||
19:06
|oLa| left,
Manifest0 left
19:07
molaf left
19:11
ravenous_ joined
19:12
Manifest0 joined
|
|||
nadim_ | where is precompile code cached? it seems that it's not in lib anymore | 19:14 | |
19:16
andrzejku joined,
andrzejku left
|
|||
Kaiepi | nadim_, it depends | 19:22 | |
it can be in $installdir/precomp, $installdir/share/perl6/precomp, $installdir/share/perl6/site/precomp, or in lib if you use `use 'lib'` | 19:23 | ||
vrurg | m: my module A { role B[$x] is export { } }; say B.HOW.^name; | 19:25 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared name: B used at line 1 |
||
Kaiepi | i'm not sure if there's a way to grep where the precomp file for a specific module is | ||
vrurg | m: my module A { role B[$x] is export { } }; import A; say B.HOW.^name; | ||
camelia | Perl6::Metamodel::ParametricRoleHOW | ||
vrurg | ^ shouldn't it be ParametricRoleGroupHOW??? | ||
m: my module A { role B[$x] is export { }; role B is export { } }; import A; say B.HOW.^name; | 19:26 | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> A symbol 'B' has already been exported at <tmp>:1 |
||
vrurg | m: my module A { role B[$x] is export { }; role B { } }; import A; say B.HOW.^name; | ||
camelia | Perl6::Metamodel::ParametricRoleHOW | ||
nadim_ | Kaiepi: thanks, I want to remove everything | 19:27 | |
19:41
farcas82regreg left
19:48
dolmen joined
19:49
pmurias joined
19:50
bioevolgenec joined
|
|||
bioevolgenec | Hello! I am a longtime Perl 5 programmer, trying to learn Perl 6 with the Learning Perl 6 program. I am stuck at the very second exercise in the book (Exercise 0.2). | 19:52 | |
I am supposed to run some perl6 code provided by the author as "perl6 find_moth_genera.p6 Butterflies_and_Moths.txt". When I do that, nothing happens as if the program hangs. The top command doesn't show perl6 using the cpu. I tried reinstalling perl6 from source but it didn't help. | 19:53 | ||
*Learning Perl 6 book, not program | |||
nadim_ | bioevolgenec: did you try simple perl 6 programs like "hi".say | 19:55 | |
to see if P6 runs | |||
ugexe | well, they *are* on the second exercise | ||
bioevolgenec | nadim_: Yes, that works. | ||
nadim_ | is the code that you want to run long? | 19:56 | |
bioevolgenec | Well, it's available here: github.com/fluca1978/LearningPerl6..._genera.p6 | ||
nadim_ | nopaste it somewhere if you can't make it smaller | ||
ok, I look at it | 19:57 | ||
19:58
guifa joined
|
|||
nadim_ | it looks like it's reading from stdin | 20:02 | |
if you run it as perl6 program something_whatever (it doesn't matter it is not used) | 20:03 | ||
20:03
hythm_ joined
|
|||
nadim_ | then you can type a line that contains something that matches the regex | 20:04 | |
that line wil be output | |||
timotimo | hm. why does it suggest to put *@*ARGS in MAIN as its first argument? | ||
Xliff | .seen tadzik | ||
yoleaux | I saw tadzik 3 Jun 2019 20:03Z in #perl6: <tadzik> impeachment aside, hostility towards visitors was there long before anyone in particular became president | ||
bioevolgenec | Hmm, if I run it like 'perl6 find_moth_genera.p6 < Butterflies_and_Moths.txt', it complains that I haven't given it a file to read. | 20:05 | |
timotimo | yeah | ||
it's asking for at least one argument to be passed | |||
when you're just passing something to stdin, that's not a commandline argument | |||
the shell eats that up and perl6 doesn't get to see that it ever existed | |||
i don't have a copy of Learning Perl6 so i don't know what exactly it describes | 20:08 | ||
nadim_ | I think the code is supposed to run line P5 when you give multiple files and run a while(<>) loop | ||
but it doesn't | |||
timotimo | hm. wasn't the behaviour of lines() inside of MAIN changed a few months back | 20:09 | |
hm. | 20:10 | ||
perl6 -e 'sub MAIN($a, $b) { say $*ARGFILES.perl; .say for lines() }' 1 2 | |||
bioevolgenec | You can see exercise 0.2 here: books.google.co.uk/books?id=sbRqDw...mp;f=false | ||
timotimo | this outputs whatever i enter back at me | ||
hythm_ | hello, this grammar sometimes work and other times do not, gist.github.com/hythm7/7f45390cffa...8bac4d19d1 , can someone verify if its working consistently for them before i reopen issue | 20:11 | |
nadim_ | timotimo: that' it | ||
renaming the sub made it work | |||
timotimo | but once you are inside MAIN, you can't get it to take filenames from the commandline any more, it seems like | ||
hythm_: i'll have a look | |||
yeah, it's inconsistent all right | 20:12 | ||
nadim_ | bioevolgenec: are you following? | ||
timotimo | that was probably a bit much at once | ||
bioevolgenec | nadim_: I'm a bit confused but I'm here. | ||
nadim_ | that's why I ask, so I can explain | ||
bioevolgenec: that example worked till a few months ago | 20:13 | ||
timotimo | wow, what exactly is turning the google ui greek when following that link | ||
bioevolgenec | timotimo: Probably the "&hl=el" part. Sorry about that | ||
20:13
Actualeyes joined
|
|||
timotimo | what does "el" stand for in that? | 20:14 | |
hythm_ | thanks timo, its probably related to this issue i filed and closed, the only difference is that i changed role to grammar | ||
bioevolgenec | In greek, "greek" is written as "ellinika". | ||
hythm_ | github.com/rakudo/rakudo/issues/2933 | ||
timotimo | that explains it | ||
oh no, the "Constant width bold" title is before the page break before the explanation | 20:15 | ||
nadim_ | bioevolgenec: commentout out the sub MAIN ... line | 20:16 | |
bioevolgenec: replace it with sub execercise2 or whatever you please | |||
bioevolgenec: call the exercise2 sub | |||
bioevolgenec: you can at least continue from there | 20:17 | ||
timotimo | it'd sure be nice if all examples from LearningPerl6 were turned into a very-easy-to-run test suite | ||
that we maybe run regularly in CI | |||
bioevolgenec | nadim_: It worked, thanks so much! :D | ||
timotimo | oh btw | 20:18 | |
"use v6.c" will fix the problem, too | |||
the argfiles-inside-MAIN thing was changed as part of v6.d i believe | |||
nadim_ | even better | ||
timotimo | anybody want to send a pull request to bdf? | ||
bioevolgenec | timotimo: Good to know. I will try that before asking, next time. | ||
timotimo | ah there's already an issue | 20:19 | |
i assume tenther on github is bioevolgenec? | |||
bioevolgenec: don't hesitate to ask, though | |||
that way we'll also find out when things are wrong somewhere | |||
nadim_ | bioevolgenec: maybe you can send the pull request | ||
bioevolgenec | timotimo: Nope, I looked at all the forks to see if someone had modified the exercise and tenther's was the only one I had open at the time. | ||
20:20
molaf joined
|
|||
bioevolgenec | nadim:_ I can check if there is an issue already and, if not, I will open one. | 20:20 | |
timotimo | i added a comment on the issue in the LP6D repo | 20:21 | |
bioevolgenec | timotimo: Oh, great | ||
Kaiepi | how does the repl print (low level object x) for stuff from nqp land when there's no gist or perl method or anything on those low level objects usually? | 20:22 | |
timotimo | Kaiepi: look in HLL/Backend.nqp or HLL/Compiler.nqp or Perl6/Compiler.nql in nqp, nqp, and rakudo respectively | ||
Kaiepi | thanks | ||
i'm adding an eval-nqp command to my bot since i'm sick of typing use nqp; and forgetting about it half the time lol | 20:23 | ||
timotimo | m: use nqp; say "foo bar { nqp::add_i(1, 2) }"; | 20:24 | |
camelia | foo bar 3 | ||
20:24
kst joined
|
|||
ugexe | m: say %(a => 1).DUMP; # i forget if DUMP works for that | 20:25 | |
camelia | Hash<1>( :$!descriptor(ContainerDescriptor::Untyped<2>(...)), :$!storage(BOOTHash<3>(...)) ) |
||
timotimo | what the fuuuuuuuuu | ||
m: DOC INIT { say "hi" }; use nqp; say "foo bar w{ nqp::add_i(1, 2) }"; | |||
camelia | 5===SORRY!5=== Error while compiling <tmp> Could not find nqp::add_i, did you forget 'use nqp;' ? at <tmp>:1 ------> 3se nqp; say "foo bar w{ nqp::add_i(1, 2)7⏏5 }"; |
||
timotimo | m: DOC INIT { say "hi" }; use nqp; say nqp::add_i(1, 2) | ||
camelia | 3 | ||
timotimo | m: DOC INIT { say "hi" }; use nqp; say "{nqp::add_i(1, 2)}" | 20:26 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Could not find nqp::add_i, did you forget 'use nqp;' ? at <tmp>:1 ------> 3 "hi" }; use nqp; say "{nqp::add_i(1, 2)7⏏5}" |
||
timotimo | what the fffffffuuuuuuuuuuu?? | ||
that's super odd | |||
bisect: DOC INIT { say "hi" }; use nqp; say "{nqp::add_i(1, 2)}" | |||
bisectable6 | timotimo, Bisecting by exit code (old=2015.12 new=89f8f60). Old exit code: 0 | ||
20:26
sivoais left
|
|||
bisectable6 | timotimo, bisect log: gist.github.com/507346c1eae9afe2b8...e88c726df0 | 20:27 | |
timotimo, There are 25 candidates for the first “new” revision. See the log for more details | |||
20:27
sivoais joined
20:28
Exodist left,
Exodist joined,
bioevolgenec left
|
|||
timotimo | hythm_: sorry, i got a bit distracted :) | 20:29 | |
nadim_ | timotimo: there was alreadya pull request, the only one, of course I saw it after making one :) | 20:30 | |
timotimo | oh, for the example in LP6? | 20:31 | |
Kaiepi | m: use nqp; nqp::getcomp('nqp').eval('nqp::say("hi!")') | ||
camelia | Cannot call method 'eval' on a null object in block <unit> at <tmp> line 1 |
||
timotimo | nadim_: did i ever ask for a more convenient API to get a "ddt" that does the grammar dumping stuff? | ||
Kaiepi | m: use nqp; nqp::getcomp('nqp').compile('nqp::say("hi!")') | 20:32 | |
camelia | Cannot call method 'compile' on a null object in block <unit> at <tmp> line 1 |
||
Kaiepi | m: use nqp; nqp::getcomp('nqp') | ||
camelia | ( no output ) | ||
Kaiepi | m: use nqp; say nqp::getcomp('nqp') | ||
camelia | (Mu) | ||
Kaiepi | i guess it won't let me get nqp's compiler because it's restricted? | ||
nadim_ | timotimo: not that I remember | 20:33 | |
Kaiepi | it works on the repl | ||
nadim_ | what do you want? | ||
timotimo | Kaiepi: i got you, hold on a sec | ||
nadim_ | timotimo: think I said, derive a class but then we didn't talk much more about it | 20:34 | |
timotimo | nadim_: "ddt $parseresult, :grammardump" modulo naming | ||
yeah i know how to make it work | |||
nadim_ | I know you know ;) | ||
timotimo | i just don't want to have more than a single word to get it :) | ||
nadim_ | and what would that line do? | ||
timotimo | use Data::Dump::Tree::ExtraRoles ; Data::Dump::Tree.new: :does(DDTR::MatchDetails) ... | 20:35 | |
Kaiepi: getcomp only gets you compilers that have been registered; rakudo doesn't actually load the nqp compiler in normal operation | 20:36 | ||
Kaiepi: but i also wasn't able to get the nqp compiler pulled in easily | 20:37 | ||
Kaiepi | right, i keep forgetting the repl's weird | ||
timotimo | hm. | 20:38 | |
m: use nqp; use NQPHLL:from<NQP>; say ::<HLL> | |||
camelia | No such method 'gist' for invocant of type 'HLL' in block <unit> at <tmp> line 1 |
||
timotimo | something's in there, but it's a very picky low-level object | ||
it doesn't seem to have a single method on it | |||
it's a KnowHOW, which has all of its features built inside of MoarVM using some "manual" C calls | 20:40 | ||
hythm_ | timotimo: no worries, when you have time. ill also try from home laptop, i dont want to reopen the issue and turns out im running older version. | ||
timotimo | hythm_: it's also giving different output each time on my machine | 20:41 | |
hythm_ | I will reopen the issue then. thanks for testing | 20:43 | |
timotimo | i wonder if this is a problem with NFAs | 20:44 | |
20:44
ravenous_ left
|
|||
timotimo | Grammar::Tracer thinks this: in one instance it tries pkg:sym<name> and that fails. in the other instance it tries pkg:sym<build> and that succeeds | 20:44 | |
no, wrong | |||
the order in which it tries those is different every time | 20:45 | ||
hythm_ | just to add, if changed it from grammar to role, it works consistently | ||
timotimo | well, that's certainly weird | ||
nadim_ | timotimo: apropos Grammar::Tracer, i have another version, same thing more compact output with same amount of info | 20:46 | |
timotimo | i think i saw it once | ||
is it in a pull request to Grammar::Debugger? | 20:47 | ||
oh, also, your examples folder (or is it the test folder?) has "jumction" somewhere | |||
in a filename | |||
nadim_ | in the test directory, fixed that, thanks | 20:49 | |
timotimo: github.com/nkh/P6-Grammar-Tracer-Compact | |||
haven't touched it for a while ymmv | 20:50 | ||
timotimo | a screenshot directly in the readme would be swell | ||
hythm_: when turning on the NQP_NFA_DEB debug stuff, i can see that it's getting the "mergesubrule" calls for different methods of the grammar in a randomized order or something | 20:51 | ||
i'm not sure why that makes the difference between a parse fail and a parse success, though | |||
oh, nadim_, did you know that you can get a TTY (or PTY really) connected to a process via a socket by using the excelleng "socat" tool? | 20:55 | ||
i do not yet know all that implies | 20:57 | ||
but it's surely a thing worth investigating | |||
Xliff | Is there a perl6doc? | 20:58 | |
Nevermind. Found it. | 20:59 | ||
21:04
ejd joined
|
|||
nadim_ | timotimo: imgur.com/Fa0W0u4 the screenshot, I'll add one when there is a third user inthe world ;) | 21:08 | |
21:08
ejd left
|
|||
nadim_ | timotimo: I haven't used socat, netcat yes. I think they mean that you can share your TTY. you can do that with netcat, so your session is on a socket and if you rhave the address and port you get a remote shell | 21:11 | |
timotimo | netcat doesn't give you a full terminal | ||
i think it gives you line-oriented input? | |||
nadim_ | true | 21:12 | |
timotimo | with a pty input on one side of socat and tcp on the other, you can get at individual keystrokes | ||
so that's nice | |||
nadim_ | the socat man page is looong, everytime i look at It i postpone playing with it | 21:13 | |
timotimo | yeah, socat is immensely powerful with its billions of endpoint types | 21:14 | |
it really is a swiss army knife | |||
21:14
skids left
|
|||
timotimo | you'll usually only ever use like four of the hundreds for any given use case :D | 21:15 | |
21:16
Kaiepi left
|
|||
timotimo | nadim_: love how "question" and "answer" accidentally line up like that :) :) | 21:16 | |
21:18
ejd joined
|
|||
nadim_ | apropos the ddt interface, what about ddt $result, :does(YourSetup); So anyone can write a setup, I can call it after internal setup so you get the dumper and can do what you want with it | 21:19 | |
I writea little prototype and get back to you | 21:21 | ||
21:26
pmurias left
|
|||
kawaii | So tomorrow I have a job interview, there will be some paired programming | 21:49 | |
I have the advantage since I can choose the language, I'll be using Perl 6 :) | |||
21:50
hythm_ left
|
|||
sena_kun | kawaii, good luck! | 21:50 | |
kawaii | thank you sena_kun! | ||
this company use a lot of Rust and Go, I think this will be the first time they've seen P6 :) | 21:51 | ||
21:52
Summertime left,
pmurias joined
21:53
Kaiepi joined
|
|||
pmurias | Kaiepi: if you have questions about things feel free to ask | 21:54 | |
21:55
Summertime joined,
Kaiepi left,
Kaiepi joined
|
|||
Kaiepi | aight, thanks pmurias | 21:56 | |
21:58
Kaiepi left
|
|||
pmurias | .tell Kaiepi if things seem unclear it's highly possible they actually are and they need to be fixed | 21:59 | |
21:59
pecastro left
|
|||
yoleaux | pmurias: I'll pass your message to Kaiepi. | 21:59 | |
Xliff | What does this mean? | 22:05 | |
No appropriate parametric role variant available for 'Amazon::AWS::Roles::Eqv' | |||
m: role A[::T] { } | 22:08 | ||
camelia | ( no output ) | ||
Xliff | m: role A::B[::T] { } | ||
camelia | ( no output ) | ||
Xliff | m: role A::B::Eqv[::T] { } | ||
camelia | ( no output ) | ||
22:08
dolmen left
22:10
pmurias left
22:18
Manifest0 left
22:23
Manifest0 joined,
dolmen joined
22:29
cpan-p6 left,
cpan-p6 joined,
cpan-p6 left,
cpan-p6 joined,
Manifest0 left
22:35
Manifest0 joined
|
|||
kawaii | m: my %hash<value> = 7; | 22:38 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Shaped variable declarations not yet implemented. Sorry. at <tmp>:1 ------> 3my %hash<value>7⏏5 = 7; |
||
kawaii | oh, okay :( | ||
timotimo | that'd be for hashes that are limited to a very specific set of keys | 22:41 | |
you can do this tho: | |||
m: (my %hash)<value> = 7; say %hash.perl | |||
camelia | {:value(7)} | ||
Xliff | Oh! Parametric role requires a parameter! LOL! /o\ | 22:42 | |
22:45
Kaiepi joined
22:47
lotreck joined
|
|||
Xliff | How can I get the type of self if I can't use .^WHAT | 22:47 | |
lotreck | Hello, Are there any common perl6 web frameworks ? | ||
in use ? | |||
Xliff | m: class A { method a { say self.^WHAT.name }; }; A.a | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot use .^ on a non-identifier method call at <tmp>:1 ------> 3class A { method a { say self.^WHAT7⏏5.name }; }; A.a expecting any of: method arguments |
||
timotimo | .^WHAT is rwong | ||
you need .WHAT | |||
Xliff | lotreck: There's Baildor | 22:48 | |
timotimo++ | |||
m: class A { method a { say self.WHAT.name }; }; A.a | |||
camelia | No such method 'name' for invocant of type 'A'. Did you mean any of these? none note take in method a at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
Xliff | m: class A { method a { say self.WHAT }; }; A.a | ||
camelia | (A) | ||
timotimo | cro is more of a backend-oriented framework for webby stuff, but if you have a single-page-application it's great | ||
lotreck | Xliff, timotimo thanks | 22:50 | |
Xliff, timotimo, Is Catalyst still a thing ? or no? | 22:52 | ||
timotimo | that's a perl5 thing, no perl6 port exists at the moment | 22:53 | |
lotreck | should I be coding in 6? is it prod ready ? | ||
timotimo | cro does a lot of async i/o things, which is i think what catalyst is for? | ||
22:53
johnjohn101 left
|
|||
timotimo | i'm biased, i'm not allowed to answer that :) :) | 22:54 | |
22:55
kst left
|
|||
timotimo | there's that agriculture-related thing that recently-ish had a talk about it given at a perl workshop | 22:56 | |
that's a perl6 web app built with cro | 22:57 | ||
huh. i can't find it on youtube, but i'm sure i saw it in video form | |||
nadim_ | timotimo: what about something like this? gist.github.com/nkh/a33c213563534e...3a4c0853c9 | ||
timotimo | hmm. i've got a feeling that should be possible without EVAL | 22:59 | |
nadim_ | it is | 23:00 | |
23:00
Kaiepi left
|
|||
nadim_ | this is an example where the modules to use in the custom setup may not be present | 23:00 | |
timotimo | yeah, with require | 23:01 | |
nadim_ | no that wouldn't workif thefilters need something from the modules, like enums | ||
timotimo | it can't use indirect lookup? | 23:02 | |
23:02
kst joined
|
|||
nadim_ | what's that? | 23:02 | |
through the class? | |||
timotimo | what are these enums used for? is DDT_DISPLAY_NONE one? | 23:03 | |
nadim_ | yes | ||
23:03
dolmen left
|
|||
timotimo | if you've used require to get the module, you can get at the package that defines these enums and grab the one you want via its name as a string | 23:06 | |
Xliff | nadim: An indirect lookup ::("ThisSymbolMayNotYetExist") | ||
nadim_ | never used it, I need a big fat Perl 6 book in 5 tomes that's fun to read and 6 month off | ||
Xliff | nadim: So ...| require ::('Module::At::Runtime'); my $a = ::('ASymbolFromModule'); | 23:07 | |
23:07
skids joined
|
|||
Xliff | Note that require is lexical, so if you need those symbols elsewhere you will need to use globals. | 23:07 | |
Or at least assign them to a value available in the scope you want to use. | 23:08 | ||
timotimo | oh, that requires things in these modules to be declared "our" | ||
nadim_ | Am I wrong, that's only good as long there is nothing to compile that need the symboles, in that case only EVAL works | ||
timotimo | no, it's possible to do all that at run time | 23:09 | |
nadim_ | timotimo: declaring them our is not aproblem, it's an enum for external use | ||
timotimo | i thought that's how DDT reacts to whether or not Terminal::ANSIColor is installed? | ||
nadim_ | it does require | ||
timotimo | yeah | ||
i'm not entirely sure how you'd use CustomSetup if you don't already have Data::Dump::Tree installed and usable anyway | 23:10 | ||
nadim_ | indeed and that why EVAL is not needed, just use the modules | 23:11 | |
23:12
veesh left
|
|||
nadim_ | but using DDT without Terminal::ANSIColor is like eating English cheese while living in France, one is missing it all | 23:12 | |
timotimo | or eating american bread in france | 23:15 | |
23:15
Kaiepi joined
|
|||
nadim_ | lol | 23:16 | |
23:16
AlexDaniel left
|
|||
nadim_ | can I import symboles from required modules? | 23:16 | |
Xliff | Now THAT would be something. | 23:17 | |
Kaiepi | wdym? | ||
yoleaux | 21:59Z <pmurias> Kaiepi: if things seem unclear it's highly possible they actually are and they need to be fixed | ||
Kaiepi | .tell pmurias, you're gonna have to remind me of the context of that message you sent | 23:18 | |
yoleaux | Kaiepi: What kind of a name is "pmurias,"?! | ||
jnthn | Kaiepi: Presumably your comments on the JS backend :) | ||
nadim_ | I mean that "use" gets me the symboles from the module, "require" doesn't | ||
Kaiepi | ah | ||
timotimo | Xliff: but you can do that, right? with require Blerb <&foo &bar>; | ||
jnthn | pmurias++ has done nearly all the work on that :) | ||
timotimo | yes! and also increased the test coverage of nqp ops by a whole lot | 23:19 | |
which is highly appreciated | |||
jnthn | Indeed | ||
23:19
veesh joined
|
|||
nadim_ | timotimo: how does one get roles from required modules, that looked like subs | 23:19 | |
Kaiepi | unit module Foo; our role Bar {...}; require Foo::Bar? | 23:20 | |
23:21
rindolf left
|
|||
Xliff | timotimo: So... | require ::("ModuleThatMightNotBeInstalled") <&bar &baz>| will work? | 23:21 | |
nadim_ | with the role defined in another file? | ||
Xliff | Or even... | ||
timotimo | just leave out the & | ||
m: require ThisDoesntExist <Blerb>; say Blerb.WHAT | |||
camelia | Could not find ThisDoesntExist at line 0 in: inst#/home/camelia/.perl6 inst#/home/camelia/rakudo-m-inst-1/share/perl6/site inst#/home/camelia/rakudo-m-inst-1/share/perl6/vendor inst#/home/camelia/rakudo-m-inst-1/share/perl6 … |
||
timotimo | m: try require ThisDoesntExist <Blerb>; say Blerb.WHAT | 23:22 | |
camelia | (Any) | ||
timotimo | look, Blerb exists, it's just set to an undefined value | ||
m: try require ::("DoesNotExist") <Blerb>; say Blerb.WHAT | |||
camelia | (Any) | ||
timotimo | m: try require ::("Test") <Blerb>; say Blerb.WHAT | ||
camelia | (Any) | ||
Xliff | timotimo: require ::("ModuleThatMightNotBeInstalled") <DEFAULT> | ||
That imports into the current scope, right? | 23:23 | ||
nadim_ | I get No such method 'IO' for invocant of type 'Signature' for: require :('examples/CustomSetup')<CustomSetup> ; | ||
Xliff | nadim_: require ::('examples/CustomSetup') <CustomSetup> | 23:24 | |
Better yet... | |||
timotimo | Xliff: that just gives you a lexical symbol named DEFAULT | ||
Xliff | nadim_: require ::('CustomSetup') <CustomSetup>; # You may need to "use lib 'examples' | ||
timotimo | nadim_: you have one : too few | 23:25 | |
and there needs to be a space after the ) | |||
between ) and < | |||
ugexe | m: require ::("Test") <&ok>; | 23:26 | |
camelia | ( no output ) | ||
nadim_ | Could not find examples/CustomSetup ... | ||
code: require ::('examples/CustomSetup') <CustomSetup> ; | |||
Kaiepi | what's the purpose for `need`? | 23:27 | |
i've used require and use before, but never need | |||
ugexe | a file path doesnt need indirect name lookup | ||
timotimo | so it'd be just require 'examples/CustomSetup' <CustomSetup>; ? | 23:28 | |
nadim_ | no, I tried that before | ||
ugexe | something like that yes | 23:29 | |
nadim_ | but . is not in the seach path | ||
23:29
Kaiepi left
|
|||
nadim_ | must it be set with use lib? | 23:29 | |
ugexe | no | ||
require "$*CWD/lib/Foo.pm6" | 23:30 | ||
23:31
Kaiepi joined
|
|||
nadim_ | full path works | 23:32 | |
but importing symboles doesn't, can't get a role out of it | 23:33 | ||
Ah! role must be exported, of course! | 23:35 | ||
timotimo | depends on many, many factors | ||
hm, is it about exportation or about packages, i.e. "our" stuff? | |||
nadim_ | require "$*CWD/examples/CustomSetup.pm" <CustomSetup> ; # works fine if CustomSetup is export | 23:36 | |
timotimo | cool | ||
Xliff | \o/ | ||
nadim_ | indeed, very practical | ||
ugexe | dont use $*CWD in whatever you write | 23:37 | |
23:37
mtg left
|
|||
Xliff | ugexe: Why not? | 23:37 | |
timotimo | because that depends on where you're launching the program from | ||
not where the code lives | |||
nadim_ | ugexe: doesn't work without | ||
ugexe | $*PROGRAM.child(2).add("examples/CustomSetup.pm") is better (changed as appropriae) | 23:38 | |
Xliff | O_o | ||
Is that documented anywhere? | |||
m: $*PROGRAM.^name.say | |||
camelia | IO::Path | ||
nadim_ | in ugexe's head | ||
Xliff | m: $*PROGRAM.say | 23:39 | |
camelia | "<tmp>".IO | ||
Xliff | m: $*PROGRAM.child(1).say | ||
camelia | "<tmp>/1".IO | ||
Xliff | m: $*PROGRAM.child(2).say | ||
camelia | "<tmp>/2".IO | ||
timotimo | hm. we should probably have a bot (or just a command) to search the docs | ||
much like greppable and quotable | |||
ugexe | oops i didnt mean child :P | ||
nadim_ | the space after the string don't matter, zero, one, ten, all go | ||
ugexe | .parent(2), not .child(2) | ||
Xliff | m: $*PROGRAM.parent.say | ||
camelia | "/tmp".IO | ||
Xliff | m: $*PROGRAM.parent(2).say | 23:40 | |
camelia | "/".IO | ||
Xliff | Ahh! | ||
timotimo | m: say $*PROGRAM.absolute | 23:41 | |
camelia | <tmp> | ||
ugexe | m: say $*PROGRAM.Str eq $?FILE.Str | 23:43 | |
camelia | True | ||
ugexe | tho that is not always true since $?FILE appends the module names when precompiled, so they end up `/home/foo/bar (Foo::Bar)` | 23:44 | |
hence using $*PROGRAM | |||
timotimo | or site#sources/4226E6A3EC7B6F5B2601AD9B2A969FC07CED017E (Data::Dump::Tree) | 23:45 | |
^- these only depend on the source, right? like, it's a hash of the source file at the point of installation? | 23:46 | ||
ugexe | i don't think $?FILE ever contains anything but an absolute path | 23:47 | |
m: say CompUnit::RepositoryRegistry.repository-for-name("site").prefix; # but for brevity | |||
camelia | "/home/camelia/rakudo-m-inst-1/share/perl6/site".IO | ||
ugexe | m: say "/home/camelia/rakudo-m-inst-1/share/perl6/site".IO.dir | 23:48 | |
camelia | ("/home/camelia/rakudo-m-inst-1/share/perl6/site/short".IO "/home/camelia/rakudo-m-inst-1/share/perl6/site/precomp".IO "/home/camelia/rakudo-m-inst-1/share/perl6/site/sources".IO "/home/camelia/rakudo-m-inst-1/share/perl6/site/resources".IO "/home/cam… | ||
nadim_ | $*PROGRAM.absolute contains the name of the program, can't work | ||
ugexe | well, yes. hence .parent(2) or whatever | 23:49 | |
this is for a test? | |||
timotimo | ugexe: can i take a bloop#sources/(.*) and look up what it is with something like perl6-all-modules? | ||
like, it'd let me get the exact version, too | 23:50 | ||
ugexe | zef locate ... | ||
timotimo | ok, the file contents aren't what i get when i sha1sum it | 23:51 | |
ugexe | zef locate ... --sha1 | 23:52 | |
rather | |||
23:52
lotreck left
|
|||
nadim_ | this worked: require ($*PROGRAM.parent(1).absolute ~ "/CustomSetup/CustomSetup.pm") <CustomSetup> ; | 23:53 | |
timotimo | ugexe: sha1sum /home/timo/perl6/install/share/perl6/site/sources/4226E6A3EC7B6F5B2601AD9B2A969FC07CED017E | ||
944e62ef405d2df2779ff78deb57347753b073ed /home/timo/perl6/install/share/perl6/site/sources/4226E6A3EC7B6F5B2601AD9B2A969FC07CED017E | |||
zef locate 944e62ef405d2df2779ff78deb57347753b073ed --sha1 | |||
!!!> Nothing located | |||
ugexe | $*PROGRAM.parent.child('CustomSetup/CustomSetup.pm').absolute | ||
i dont know what the first thing you pasted means | 23:54 | ||
timotimo | that's the sha1sum of the file followed by the filename | 23:55 | |
and then i put the sha1sum of the file in "zef locate --sha1" and it fails to find it | |||
ugexe | for installs sha1 of files is only used for repo-id | ||
its something like sha1 of lib/Name/Path.pm6 ~ DistributionName | 23:56 | ||
timotimo | what i'm thinking about is adding that to the linkify userscript | 23:57 | |
i'd prefer not to have to put a whole perl6 + zef + all modules into LocalStorage or whatever to make that work | 23:58 | ||
nadim_ | before I leave, is there a PAR like application for perl 6 | ||
ugexe | you have to parse META6.json data to do it | ||
timotimo | it'd be fine to preprocess all meta6 json entries that exist up front | 23:59 | |
ugexe | you could create a rainbow table I think though |