»ö« 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:02
sufrostico left
00:14
mcmillhj joined
00:16
cyphase joined
00:18
mcmillhj left
00:20
_28_ria left
00:21
_28_ria joined
00:24
Cabanossi left
00:28
Cabanossi joined
00:33
m0ltar joined
00:45
Ven joined,
Ven is now known as Guest48040
00:50
Guest48040 left
00:55
Cabanossi left
|
|||
timotimo | many modules in the ecosystem are using abspath ... | 00:56 | |
00:56
Cabanossi joined
|
|||
AlexDaniel | ^_^ | 01:01 | |
01:05
Actualeyes joined
01:06
titsuki left
01:45
ilbot3 left
01:47
ilbot3 joined,
ChanServ sets mode: +v ilbot3
01:57
leego left
02:00
_28_ria left,
leego joined
|
|||
samcv | i think i may have used it once myself | 02:02 | |
02:02
_28_ria joined
|
|||
samcv | not in an eco module though | 02:02 | |
AlexDaniel | I thought whateverable used abspath, but no, it is using .absolute method | 02:05 | |
and also only chdir sub, not method | |||
feels like I won't need to change any code because of IO grant work | 02:06 | ||
Zoffix++ | |||
02:15
mcmillhj joined
02:19
samcv joined,
mcmillhj left
02:25
Cabanossi left,
noganex_ joined
02:28
Cabanossi joined,
noganex left
02:35
geekosaur left
02:36
geekosaur joined
02:45
jmiven joined
03:08
xtreak joined
03:09
khw left
|
|||
samcv | i think i've almost gotten travis ci to make commits to my repo of appimage builds | 03:16 | |
crossing my fingers. it works the next time | |||
03:26
Cabanossi left,
Cabanossi joined
03:32
emdashcomma left
03:36
xtreak left
03:37
xtreak joined
03:38
Cabanossi left,
xtreak left
03:39
xtreak joined
03:41
Cabanossi joined
03:56
mcmillhj joined
04:02
xinming left,
jdmmmmm joined
04:03
xinming joined
04:10
AlexDaniel left
04:16
xtreak left
04:17
xtreak joined
04:21
xtreak left,
wamba joined
04:23
Cabanossi left,
xiaomiao left
04:25
jdmmmmm left,
Cabanossi joined
04:29
xiaomiao joined
04:31
Actualeyes left
04:33
xtreak joined
04:41
skids left
04:43
mcmillhj left,
Actualeyes joined
04:46
mcmillhj joined
04:48
BenGoldberg left
04:51
mcmillhj left
04:53
Cabanossi left
04:55
curan joined
04:56
Cabanossi joined
05:23
Cabanossi left
05:25
ufobat joined
|
|||
samcv | \o/ | 05:25 | |
05:25
Cabanossi joined
|
|||
samcv | i got it! | 05:25 | |
sweet github.com/samcv/rakudo-appimage/tree/gh-pages | 05:29 | ||
my matrix of 4 commited appimages for each one | 05:30 | ||
05:30
lowbro joined,
lowbro left,
lowbro joined
05:36
wamba left
05:37
domidumont joined
05:43
domidumont left
05:44
domidumont joined
05:52
RabidGravy joined
06:11
wamba joined
06:15
_28_ria left
06:17
_28_ria joined
06:24
domidumont left
06:27
kurahaupo joined
06:28
simcop2387 left
06:29
geekosaur left
06:31
geekosaur joined
06:32
simcop2387 joined
06:33
kurahaupo_ joined
06:34
kurahaupo_ left
06:35
kurahaupo left
06:39
Cabanossi left
06:41
Cabanossi joined
06:43
ChoHag joined
06:51
kyan left
06:58
Actualeyes left
07:01
avalenn left
07:02
curan left
07:08
Actualeyes joined,
Cabanossi left
07:10
Cabanossi joined
|
|||
lizmat | sjn++ # good catch, fixed | 07:10 | |
moritz | what's an appimage? something for macos? | 07:12 | |
samcv | no, linux | 07:15 | |
you download the binary, and run it. standalone | |||
moritz | so statically compiled? or some kind of package manager? | ||
samcv | uh. | ||
not a package manager | |||
moritz | or like an .exe installer for windows? | ||
samcv | no | 07:16 | |
moritz a thick today | |||
samcv | you +x it | ||
then run it | |||
and it starts perl6 prompt | |||
that's it. | |||
07:16
curan joined
|
|||
samcv | no install | 07:16 | |
and you can put it in whatever path you want | 07:17 | ||
moritz | wow, that's *way* cool | ||
samcv | yeah | ||
u-ou | is it like docker | ||
moritz | relocatable! | ||
samcv | dl github.com/samcv/rakudo-appimage/tree/gh-pages one of these | ||
the stable is uh. things work fine | |||
the testing you can give it relative paths and it will find things | |||
and that works mostly fine but there's some hackage of the command line args in the perl6 shell script | 07:18 | ||
not really u-ou | |||
it's like those linux iso's | |||
same format. like an executable tmp disk image | |||
thing... | |||
u-ou | ahh | ||
samcv | idk it's great. lots of hacks to get it to work though, including patching all the binaries | 07:19 | |
to have relative paths ;) | |||
it builds in /rsu folder. and then my build script i made patches the binaries into ././ | |||
and many other assorted things | |||
and i just an hour or so ago, got travis commiting to the repo with appimages that travis builds itself | 07:20 | ||
which is amazing | 07:21 | ||
i could put it on a cron and have it do nightly builds of rakudo blead | |||
07:22
parv joined
|
|||
samcv | heh nice. just pushed changes to the build script. and now a new appimage build is in the repo built | 07:23 | |
so sweet | |||
07:28
xtreak left
07:29
xtreak joined
07:30
xtreak left,
xtreak joined
07:34
robertle left
07:36
xtreak left,
dakkar joined
07:37
abraxxa joined
07:38
domidumont joined
07:39
jonas1 joined,
CIAvash joined
07:45
avalenn joined,
imcsk8 left,
wamba left
07:46
imcsk8 joined
07:52
rindolf joined
07:56
Ulti left
07:57
Ulti joined
07:58
Damianz joined,
Damianz left,
Damianz joined
08:00
spebern joined
|
|||
Geth | Inline-Python: 90cea00249 | (Stefan Seifert)++ | 4 files Fix "Representation must be composed before it can be serialized" Modules using Inline::Python may not be precompiled as the Python interpreter's state cannot be saved/restored. |
08:01 | |
nine | .tell AlexDaniel re irclog.perlgeek.de/perl6/2017-03-30#i_14348415 fixed in Inline-Python commit 90cea00249 | ||
yoleaux | nine: I'll pass your message to AlexDaniel. | ||
08:05
ufobat left
08:07
Cabanossi left
08:11
darutoko joined,
xtreak joined,
Cabanossi joined
08:12
_28_ria left,
spebern left,
spebern joined,
leont left
08:13
_28_ria joined
08:15
CIAvash left
08:17
xtreak left
08:20
ufobat joined
08:26
sven_123 joined,
sven_123 left
08:34
robertle joined
08:35
parv left
08:39
Cabanossi left
08:40
Cabanossi joined
|
|||
samcv | moritz, the appimages will be seamless if I can figure out a way to make perl 6 change directory on being run | 08:40 | |
if we had a command line argument or something to do that, would solve the last main issue with the appimages, with them starting out with $*CWD in the ramdisk/whaever it is | 08:41 | ||
mounted squash image | |||
08:42
wamba joined
08:44
g4 joined,
g4 left,
g4 joined,
bjz joined
08:45
bjz left
08:48
xtreak joined
08:54
bjz joined,
wamba left
09:08
Cabanossi left
09:09
leont joined
09:11
Cabanossi joined
09:25
xtreak left
09:28
lowbro left
09:31
bjz left
09:32
spebern left
09:34
bjz joined
09:35
xtreak joined
09:41
rindolf left
09:42
zakharyas joined
09:50
kent\n left
09:51
mcmillhj joined
09:52
kent\n joined
09:54
rindolf joined
09:56
mcmillhj left
10:04
TEttinger left
10:07
leont left
10:18
xtreak left
10:19
xtreak joined
10:20
Zoffix joined
|
|||
Zoffix | PSA: Merge your PRs: | 10:20 | |
huggable: IO kills | |||
huggable | Zoffix, [XXXXX XXXXX XXXXX XXX]: See gist.github.com/zoffixznet/0ea1f4d...3f8dd11cc1 | ||
10:21
stmuk joined
10:22
xtreak left,
xtreak joined
10:23
stmuk_ left
10:24
mcmillhj joined
10:25
xtreak left
10:28
mcmillhj left
10:31
Zoffix left
10:35
xtreak joined
10:39
Cabanossi left
10:40
Cabanossi joined
10:42
Cabanossi left
10:43
xtreak left,
Cabanossi joined
10:44
xtreak joined
10:45
Cabanossi left
|
|||
lizmat clickbaits p6weekly.wordpress.com/2017/04/10/...15-kaboom/ | 10:45 | ||
10:46
Cabanossi joined
10:48
xtreak left
|
|||
melezhik | Hi Perl6 gurus! | 10:50 | |
I am struggling with main sub , passing options as array | |||
perl6 -e 'sub MAIN ( Array :@a ){ }' -a=1 | |||
get this: usage: -e '...' [-a=<Positional[Array]>] | 10:51 | ||
and none zero exit code | |||
masak | yes, because that `1` you're passing is not an array | 10:52 | |
melezhik | so, how can I pass is as array? | ||
masak | I've never thought about it. not sure you can | ||
ilmari | perl6 -e 'sub MAIN (Int :@a){ say @a }' -a=1 # no worky either | 10:53 | |
Usage: -e '...' [-a=<Positional[Int]>] | |||
Array :@a asks for an array of arrays | 10:54 | ||
masak | oh, right. forgot to mention that. | ||
jnthn | I think the only place an array makes sense in MAIN is a slurpy one | ||
masak | that's an eternal gotcha for newcomers; the `@` already encodes Array/Positional | ||
melezhik | well, let me reshape , how can I pass a list of values to MAIN sub? is it possible? | 10:55 | |
jnthn | melezhik: I'm not aware of a way besides the slurpy | 10:56 | |
melezhik | ok | ||
jnthn | sub MAIN(*@foo) { } # if you run it as script foo bar baz, then @foo has 3 elements | ||
jnthn has used that somewhere | 10:57 | ||
lizmat | melezhik: perhaps -a=1,2,3 and then split on ',' ? | ||
melezhik | good, but I need to pass a named parameters | ||
jnthn | OK, then juist take a string and split it yourself | ||
As lizmat suggested | |||
melezhik | yeah, I already have a "split" version | ||
just looked more elegant way | |||
but that's ok | |||
lizmat | melezhik: or perhaps .words | ||
melezhik | will go with "split", not a big deal ... | 10:58 | |
jnthn | I don't think there is one... Also if there was then it might also mean that you could pass -a=1 -a=2 and so on and it should collect all of the a options into the array | ||
So it's not clear an auto-split semantic is what's wanted either | |||
melezhik | yeah, not still clear why "-a=1 -a=2 -a=3" is bad idea? | 10:59 | |
jnthn | melezhik: I didn't say it was a bad idea, just that it might be a more natural mapping for arrays in MAIN signatures | 11:00 | |
(Than splitting a single thing) | |||
It can't mean both things, so we'd have to pick | 11:01 | ||
11:01
kurahaupo joined
|
|||
melezhik | jnthn : Ok, I see | 11:01 | |
11:02
xtreak joined
|
|||
melezhik | as for me "-a=1 -a=2 -a-3" would be good )) | 11:02 | |
masak | $ perl6 -e 'sub MAIN(:@a) { say @a }' -a=1 -a=2 | 11:05 | |
[1 2] | |||
seems to work | |||
jnthn | Oh... | ||
jnthn had no idea :) | |||
ilmari | oh, I had an ancient rakudo, so my test was probably invalid | 11:06 | |
ilmari brews a new one | |||
jnthn | I note usage is like | ||
[-a=<Positional>] | |||
Which is a bit LTA | |||
masak | aye | ||
m: sub foo(:$a) { say $a }; foo(a => 1, a => 2) | |||
camelia | 2 | ||
jnthn | That's what I was going on when I figured it didn't know how to handle it. | ||
masak | some time in the distant past, this used to be spec'd to also make an array | 11:07 | |
but I think moritz and I killed off that bit, mebbe | |||
semi-funnily, the "make an array" semantics makes some sense now that I consider it in light of MAIN, which I'm sure I didn't way back when | |||
11:08
Cabanossi left,
xtreak left,
xfix_ joined
11:09
perlawhirl joined
11:10
xfix left,
zakharyas left
|
|||
ilmari | masak: ah, it works without the type constraint on the array parameter | 11:11 | |
but only if you pass more than one -a | |||
masak | yes, type constraints on arrays are more or less useless in Perl 6 | ||
11:11
Cabanossi joined
|
|||
masak | yes, you need to pass more than one -a for it to *become* an array | 11:11 | |
heh. my several-years-down-the-line impression of Perl 6's efforts at being DWIMmy with types is... "don't" :P | 11:12 | ||
I'd rather be explicit about what's an array/list/sequence than suffer the WATs of Perl 6 trying to figure it out | 11:13 | ||
m: sub foo(:$x) { say $x.^name }; foo(<oh>); foo(<oh hai>) | |||
camelia | Too many positionals passed; expected 0 arguments but got 1 in sub foo at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
melezhik | masak: good to know! thanks will try | 11:14 | |
masak | m: sub foo(:$x) { say $x.^name }; foo(:x<oh>); foo(:x<oh hai>) | ||
camelia | Str List |
||
11:17
kurahaupo left,
kurahaupo joined
11:20
stmuk_ joined
11:22
stmuk left
11:28
nadim_ joined
11:30
stmuk joined
11:31
mcmillhj joined
11:33
stmuk_ left
11:36
mcmillhj left
11:38
Cabanossi left
11:40
Cabanossi joined
11:41
Damianz left,
mcmillhj joined
11:43
perlawhirl left
|
|||
timotimo | we can totally use the appimages to speed up all the travis builds. don't have to first compile moar, nqp, and rakudo. just download the appimage and go | 11:44 | |
11:46
mcmillhj left
|
|||
melezhik | masak: looks like :@a approach is limited | 11:57 | |
ahh, sorry, probably I am wrong ... | |||
let me try another tests on this ... | 11:58 | ||
12:01
rindolf left
12:03
perlawhirl joined
|
|||
melezhik | masak: your example works for me, thanks! | 12:06 | |
12:08
Cabanossi left
12:10
mcmillhj joined
12:11
Cabanossi joined,
lowbro joined,
lowbro left,
lowbro joined
12:13
nadim_ left
12:15
mcmillhj left
12:25
mcmillhj joined
12:27
raschipi joined,
sufrostico joined
12:30
mcmillhj left
12:52
Sound joined
12:53
mcmillhj joined,
Sound is now known as Guest82682,
Guest82682 left,
Sound_ joined
12:54
Sound_ left
13:07
labster left
13:26
curan left
13:33
skids joined,
sufrostico left
13:34
sufrostico joined
13:38
Cabanossi left
13:41
Cabanossi joined
13:57
Grauwolf left
14:03
Grauwolf joined
|
|||
perlawhirl | hi perlers | 14:03 | |
clickbaits: www.0racle.info/articles/matplotlib_in_p6_part7 | |||
last part of this series | 14:04 | ||
masak | perlawhirl++ | ||
14:04
spebern joined
|
|||
perlpilot | perlawhirl++ indeed. | 14:04 | |
timotimo | oh cool | 14:05 | |
14:08
Cabanossi left
14:11
Cabanossi joined
14:12
wamba joined
|
|||
perlpilot | perlawhirl: Did you add Matplotlib to the ecosystem? If not, you should :) | 14:12 | |
timotimo | "Taking a scene the from Part 6 script" has two words swapped | ||
perlawhirl | timotimo: fixed, thanks | 14:13 | |
timotimo | perlawhirl: you could have also written "matplotlib.pyplot.cm.$name\($idx)" | ||
14:13
spebern left
|
|||
timotimo | or "matplotlib.pyplot.cm.{$name}($idx)" should also work | 14:14 | |
perlawhirl | perlpilot: I kind of don't wanna be in a position where people are asking me to fix issues, but I may throw the whole thing up in a gist. | ||
timotimo: interesting... i might add a note mentioning that | 14:15 | ||
14:15
alimon joined
|
|||
timotimo | m: my ($name, $index) = <foo 1>; say q:v"a.b.c$name($index)" | 14:15 | |
camelia | a.b.c$name($index) | ||
timotimo | m: my ($name, $index) = <foo 1>; say q:s"a.b.c$name($index)" | ||
camelia | No such method 'CALL-ME' for invocant of type 'Str' in block <unit> at <tmp> line 1 |
||
timotimo | m: q:s"hi" | 14:16 | |
camelia | WARNINGS for <tmp>: Useless use of constant string "hi" in sink context (line 1) |
||
timotimo | ah, ok | ||
so we have :s for scalar which "interpolates $ vars", but we don't have a way to turn off the method call detection? | 14:19 | ||
14:19
khw joined
14:24
cog_ joined
|
|||
robertle | anyone got a tip for a url-en/decoding and splitting module? | 14:25 | |
http that is of course | |||
14:26
stmuk_ joined,
stmuk left
14:27
cognominal left
|
|||
Ulti | robertle: github.com/perl6-community-modules/uri looks like the main one | 14:27 | |
robertle: modules.perl6.org/ for finding them | 14:28 | ||
perlawhirl | perlpilot: gist is up... i'll add a note at the end of the blog post too: gist.github.com/0racle/db70e910a3e...f1b561e8d7 | 14:29 | |
feel free to throw it on the ecosystem if you like :D | 14:30 | ||
14:30
stmuk joined
14:31
jdmmmmm joined
|
|||
robertle | Ulti: thanks! I was aware of modules.p.o but was too stupid (URL vs URI...) | 14:31 | |
14:32
stmuk_ left
|
|||
Ulti | yeah URI is the generalisation | 14:32 | |
file:///root/ etc. | |||
14:36
Khisanth left,
rindolf joined
14:40
sufrostico left,
stmuk_ joined
14:42
stmuk left
14:43
stmuk joined
14:45
perlawhirl left,
stmuk_ left
|
|||
raschipi | URI is a bigger generalization than that. file:/// for example, is a URL too. | 14:46 | |
14:46
jonas1 left
|
|||
raschipi | URI is the union between URLs and URNs. | 14:47 | |
URNs of course, were abandoned. | |||
ilmari | ISBNs are examples of URNs | ||
raschipi | Yeah, they are. But I haven't seen them used in the internet. There's DOI, but there's not much use too. | 14:49 | |
14:49
Khisanth joined,
cdg joined
14:50
Geth left,
Geth joined,
ChanServ sets mode: +v Geth,
Geth left
|
|||
raschipi | There's only 5,000 DOI users in total, tiny. | 14:50 | |
14:51
Geth joined,
ChanServ sets mode: +v Geth,
Geth left
|
|||
melezhik | masak: universal way is perl6 -e 'sub MAIN( :$a) { say $a }' -a=1 -a=2 | 14:51 | |
14:51
Geth joined,
ChanServ sets mode: +v Geth
|
|||
melezhik | as it works for both -a=1 (scalar) and -a=1 -a=2 (array) | 14:51 | |
14:51
Geth left
14:52
Geth joined,
ChanServ sets mode: +v Geth
|
|||
moritz | raschipi: how did you count that? | 14:53 | |
14:53
stmuk_ joined
|
|||
raschipi | DOI foundation numbers. | 14:53 | |
moritz | I used DOIs when I was still in academia, but probably not in any way you could have counted | 14:54 | |
raschipi: those are probably just the institutions that generate new DOIs; many more users actually use them | |||
raschipi | It's the number of entities that can register them. Of course they're all big and register a lot of them for their affiliates. | ||
moritz: Yes, I agree. | |||
moritz | much like there is a small number of institutions that allocate ISBNs, but everybody who buys or cites a book uses them | 14:55 | |
14:55
stmuk left
|
|||
raschipi | Well, it is growing. They recently creted a registration authority system, similar to what ICANN does for domain names. | 14:57 | |
timotimo | or like domain names | ||
raschipi | Anyone can get a domain name, some people buy them for fun, like Zoffix with his perl6.party and perl6.vip | 14:58 | |
14:59
stmuk joined
|
|||
timotimo | yeah, but only few can issue them | 14:59 | |
15:00
stmuk_ left
|
|||
raschipi | Yeah, it's the same on both systems now that the foundation has accreditated companies. The difference is that few can buy DOI names. | 15:00 | |
15:02
raschipi left,
stmuk_ joined
15:04
stmuk left
15:08
bjz left
15:12
g4 left
15:24
Cabanossi left
15:25
Cabanossi joined
15:32
abraxxa left
15:42
bjz joined
15:48
ChoHag left
15:49
TreyHarris joined
15:50
ChoHag joined
15:53
cdg_ joined
15:55
cdg left
16:00
domidumont left
16:01
cdg_ left,
cdg joined
16:02
lowbro left
|
|||
robertle | or my own exceptions, do I really want to put them into X::MyApp rather then have MyApp as the top-level namespace? | 16:02 | |
16:02
ChoHag left
16:05
alimon left
16:06
mcmillhj left
16:07
mcmillhj joined
16:10
ChoHag joined
16:12
mcmillhj left
16:18
DarthGandalf left,
setty1 joined
16:20
alimon joined
16:25
mcmillhj joined
16:26
alimon left,
cdg left
16:27
cdg joined
16:30
mcmillhj left
16:31
mcmillhj joined
|
|||
Geth | specs: 9d446a48af | (Zoffix Znet)++ (committed by GitHub) | v6d.pod Add reminder to deprecate IO::Handle.slurp-rest in 6.d |
16:31 | |
16:35
ilmari left,
ilmari joined
16:36
mcmillhj left
16:38
ChoHag left
16:40
alimon joined
16:41
labster joined
16:43
drrho_ left
16:44
drrho_ joined
|
|||
moritz | DrForr: please merge github.com/drforr/perl6-Inline-Sch...ile/pull/6 soon | 16:49 | |
16:50
robertle left,
mcmillhj joined
16:52
ufobat left
16:53
jdmmmmm left
|
|||
Geth | ecosystem: f07cf965cd | (Zoffix Znet)++ (committed by GitHub) | META.list s/META.info/META6.json/ for drforr/perl6-ANTLR4 |
16:53 | |
16:53
jdmmmmm joined
16:56
leont joined
16:58
dakkar left
|
|||
TreyHarris | Isn't there a 'use Very::Long::Name :as<Short>;' feature? I thought there was, but I can't find it | 17:00 | |
geekosaur | no, in perl a module is always in its specified namespace. in perl 5 there's a glob-alias hack; dunno offhand how you'd translate it to perl 6 | 17:02 | |
17:02
Geth left
|
|||
TreyHarris | And related question: how can I create a class named the same as one that's already been used and still refer to the old class? In this case, I want to use a native Perl 6 class that's named the same as a class that I got using Inline::Perl5 | 17:02 | |
geekosaur | (you may be thinking of haskell's import ... as ?) | ||
17:03
Geth joined,
ChanServ sets mode: +v Geth
|
|||
TreyHarris | geekosaur: I definitely am, but I thought Perl 6 had similar. | 17:03 | |
geekosaur | problem being that perl has an actual gobal namespace | ||
*global | |||
so the module space you see is the module space everything sees | |||
17:04
Geth left
|
|||
TreyHarris | Right. Can I do some lexical tricks to solve either problem? Make A::Very::Very::Long::And::Unwieldy::Module something I can refer to with a shorter variable, or to refer to the :from<Perl5> variant separately from the Perl 6 variant? | 17:04 | |
17:04
Geth joined,
ChanServ sets mode: +v Geth
|
|||
Geth | ecosystem: f07cf965cd | (Zoffix Znet)++ (using GitHub Web editor) | META.list s/META.info/META6.json/ for drforr/perl6-ANTLR4 |
17:05 | |
17:06
stmuk joined
17:08
stmuk_ left,
rindolf left
|
|||
TreyHarris | (To put into context: as part of my project, I will need to port a Perl 5 module, because using it directly via Inline::Perl5 is unwieldy and misses some very obvious features because it isn't Perl 6. Porting the module is going to be slightly painful, and for my POC I wanted to just write a bridge. I can do that--*have* done that--by slapping ::P6:: into the namespace of the Perl 6 bridge. But I _keep_ making | 17:09 | |
the mistake of referring to the Perl 5 name instead of the ...::P6::... name, and because it works 90% of the time, it ends up being a really annoying bug to squash. So just naming my bridge exactly the same as the Perl5 module would fix it, but it appears that is just not possible?) | |||
17:12
rindolf joined
|
|||
geekosaur | no, you'd have to inject the p6 stuff into the p5 module's namespace... which might be difficult given it lives in perl 5 | 17:13 | |
17:15
bjz left
|
|||
TreyHarris | Sigh. Maybe my best bet then is to rename my bridge into something very different from the P5 version and very short (instead of Proc::ProcessTable:from<Perl5> and Proc::ProcessTable::P6, maybe XBridge::ProcTable), then I can do a grep-replace once I've ported Proc::ProcessTable. | 17:16 | |
17:18
domidumont joined
|
|||
TreyHarris | Different subject: I'm finding in writing Inline::Perl5 bridges in general (which I do frequently for one-offs and POCs), there's a frequent need for something like this for "static methods": multi method foo (Klass:U $:) { self.new.foo } multi method foo (Klass:D $:) { ... } | 17:24 | |
Is there a shorter/idiomatic way for that? | |||
b2gills | constant AVVLAUM = A::Very::Very::Long::And::Unwieldy::Module; | 17:25 | |
17:30
ChoHag joined,
domidumont left
|
|||
TreyHarris | b2gills: yes! Looking at my WIPs, I tried that, but when I had a different bug going on at the same time masking the issue. though I did binding to the const.... is there any reason to prefer "constant XYZ = X::Y::Z" over "constant XYZ := X::Y::Z"? | 17:33 | |
17:33
grondilu_ joined
|
|||
TreyHarris | they both seem to work interchangeably from quick REPL noodling | 17:33 | |
17:34
ufobat joined
17:36
grondilu left
|
|||
MasterDuke | TreyHarris: if you look at the --target=ast for both they're identical (except the places where it prints the input line), so seems to be interchangeable | 17:36 | |
17:37
ChoHag left
17:38
Cabanossi left
|
|||
TreyHarris | MasterDuke: yup, thanks | 17:38 | |
17:42
Cabanossi joined
17:46
raschipi joined
17:48
espadrine joined
17:54
ChoHag joined,
raschipi left
17:57
AlexDaniel joined
18:02
cdg left,
cdg joined,
AlexDaniel left
18:03
AlexDaniel joined
18:11
leont left
|
|||
AlexDaniel | . | 18:15 | |
yoleaux | 08:01Z <nine> AlexDaniel: re irclog.perlgeek.de/perl6/2017-03-30#i_14348415 fixed in Inline-Python commit 90cea00249 | ||
AlexDaniel | nine: thanks! | ||
18:19
mattp__ joined
18:20
mattp_ left
18:25
cdg left
18:27
alimon left
18:33
gdonald left
18:34
gdonald joined
18:35
wictory[m] left
18:38
Guest64639 joined
18:41
geekosaur left
|
|||
unclechu | what would be native equvalent to `run(Q:w <tput cuu 1>, :out).out.get` (i use it to get char that i can print to move cursor one line up)? | 18:41 | |
like `chr(8)` to get char to move cursor one column left | |||
moritz | qx/tput cuu 1/ | 18:42 | |
what do you mean by "native"? | |||
18:42
geekosaur joined
|
|||
unclechu | moritz: like special char code for `chr` function | 18:43 | |
18:43
ChoHag left
|
|||
moritz | unclechu: you can reference characters by name, if that's what you're looking for | 18:43 | |
"\c[BACKSPACE]" | 18:44 | ||
unclechu | moritz: i'm not looking for backspace, i already have it (`chr(8)`), but for char that `tput cuu 1` command prints | 18:45 | |
if anyone know this char name | |||
18:46
leont joined
|
|||
MasterDuke | unclechu: i added `.uniname.say` to your example and it reports `<control-001B>` | 18:47 | |
moritz | $ perl6 -e 'say qx/tput cuu 1/.uninames.join: ","' | ||
ESCAPE,LEFT SQUARE BRACKET,DIGIT ONE,LATIN CAPITAL LETTER A | |||
unclechu | or a code | ||
MasterDuke | unclechu: for `.ords.say` i get `(27 91 49 65)` | 18:50 | |
unclechu | so, i guess it is sequence of symbols, i'll try | ||
18:51
alimon joined
|
|||
moritz | "\c[ESCAPE][1A" | 18:51 | |
perlpilot | unclechu: you could always do "tput cuu 1 | xxd" from the command line to see what it outputs. | 18:52 | |
unclechu: change xxd for your favorite hex dumper :) | |||
moritz | hexdump -C is also nice | 18:53 | |
18:54
AlexDaniel left,
Cabanossi left
|
|||
unclechu | thanks a lot to all of you, that solved my issue and i got more useful ways to debug stuff | 18:55 | |
[Coke] | perl6 -MApp::Uni -e 'say uni-gist $_ for qx/tput cuu 1/.comb' # should be able to make this awesomer. | ||
18:55
Cabanossi joined
|
|||
[Coke] | uni -c $(tput cuu 1) # awesomer. | 18:56 | |
perlpilot | [Coke]++ (Why isn't uni-gist built-in yet?) | 18:58 | |
[Coke] | u: • | 19:00 | |
unicodable6 | [Coke], U+2022 BULLET [Po] (•) | ||
perlpilot | [Coke]: I get test failures trying to install that module via zef. Looks like it's because bin/uni can't find App::Uni (i.e. when I "zef look App::Uni" and "export PERL6LIB=lib" the tests run fine) | 19:05 | |
unclechu | am i only one person who have this issue: github.com/perl6/perl6-lwp-simple/issues/12 ? | 19:07 | |
[Coke] | perlpilot: I think it's the same bug that ugexe pointed out to me, I have to make the tests smarter because it's exec'ing p6 | ||
unclechu | it's sad because i can't install gtk::simple that depends on lwp::simple | 19:08 | |
can i ignore failing tests while install package using `zef`? | 19:09 | ||
gfldex | unclechu: run `zef install --force LWP::Simple` | ||
if you use Perl 6 sometimes the force needs to be with you | 19:10 | ||
19:15
andrzejku joined
19:19
darutoko left
19:23
AlexDaniel joined
|
|||
alphah | Does "_" has special meaning here or just key name: %hash<_> = $<toplevel>.ast.hash | 19:24 | |
gfldex | no special meaning | ||
alphah | Thanks | 19:25 | |
unclechu | gfldex: thanks, it helps | ||
what does `c` in `use v6.c;` mean? | 19:26 | ||
`ceil`? | |||
alphah | christmas! | ||
gfldex | from the standpoint of the compiler, it doens't have special meaning beyond 'b'.succ | 19:27 | |
m: dd (v6.c).succ | |||
camelia | No such method 'succ' for invocant of type 'Version' in block <unit> at <tmp> line 1 |
||
TreyHarris | Is there an idiom or something that will help with creating "static methods" that can be called on instances, or, when called on classes, call the method on a throwaway object? See gist.github.com/treyharris/9199028...b504d246bd | 19:30 | |
gfldex | TreyHarris: you could use $?CLASS | 19:36 | |
El_Che | don't you just want a sub for that? | ||
gfldex | m: class C { our sub s(){ dd $?CLASS::new } }; C::s | 19:39 | |
camelia | Any $v = Any | ||
gfldex | m: class C { our sub s(){ dd $?CLASS.new } }; C::s | ||
camelia | C.new | ||
TreyHarris | gfldex: As in 'multi method hrm($?CLASS:U $: Int $n)' ? | 19:40 | |
jnthn | Would need to be ::?CLASS:U | ||
And the $ ain't needed | |||
gfldex | yes, that can help if you copypasta from methods between classes | ||
TreyHarris | That gives me en error: In signature parameter $?CLASS, it is illegal to use the ? twigil | ||
jnthn | Though this is optional; any method that doesn't access attributes can be called on the type object | ||
So unless for some reason you want to *force* the user to only ever call it on the type object, and never on an instance, there's no particular need to mark it | 19:41 | ||
TreyHarris | yes, ::?CLASS:U works. | ||
jnthn | m: class C { method m() { say "look I'm static!" } }; C.m; | ||
camelia | look I'm static! | ||
TreyHarris | jnthn: but then I can't call it as a class method | 19:42 | |
gfldex | m: class C { method m() { say "look I'm static!"; dd self } }; C.m; | ||
camelia | look I'm static! C |
||
gfldex | please note that self in this case points to the type object, not an instance of C | ||
TreyHarris | jnthn: Your example isn't relevant because it doesn't use an instance attribute. The compiler catches that and complains. | ||
My gist does that | |||
Are you saying in my gist I can remove the multi from the ":D" version and remove the ":U" version completely and get the same behavior? Because I'm not... | 19:43 | ||
jnthn | Ah, no | ||
You want more than just a static method, I see | |||
So yeah, multi over :D and :U is the way to go | 19:44 | ||
TreyHarris | So ::?CLASS is my first fix. Can I avoid repeating "hrm"? | ||
gfldex | m: class C { method m() { self := self // C.new } }; C.m; | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Cannot use bind operator with this left-hand side at <tmp>:1 ------> 3 C { method m() { self := self // C.new 7⏏5} }; C.m; |
||
19:44
Guest64639 left
|
|||
jnthn | An alternative idiom for this might be | 19:44 | |
TreyHarris | (Reload the gist for the ::?CLASS version.) | 19:45 | |
jnthn | m: class C { has $.x = 0; method m($self is copy:) { .= new without $self; say $self.x } }; C.m | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Preceding context expects a term, but found infix .= instead at <tmp>:1 ------> 3s $.x = 0; method m($self is copy:) { .=7⏏5 new without $self; say $self.x } }; C.m |
||
gfldex | callwith should work if you provide the invocant by hand | ||
jnthn | m: class C { has $.x = 0; method m($self is copy:) { .=new without $self; say $self.x } }; C.m | 19:46 | |
camelia | 0 | ||
jnthn | Though that'll only work if youuse the . forms, not the ! forms, of attributes | ||
TreyHarris | what's the correct callwith syntax then? | ||
jnthn | An alternative is to just to meta-programming and write a MOP module that wraps everything :) | 19:47 | |
*just go | |||
gfldex | TreyHarris: i wrote 'should' not 'will' to indicate a guess on my side | 19:49 | |
TreyHarris | jnthn, this is not the correct syntax, can you tell me what is? callwith(self.new(): $n); | 19:51 | |
jnthn | callwith iterates an existing candidate list, rather than re-dispatching | ||
So that isn't useful in this case | |||
19:51
TEttinger joined
|
|||
jnthn | I *think* samewith - which does redispatch - also latches onto the original invocant | 19:53 | |
19:54
ChoHag joined,
AlexDaniel left
|
|||
TreyHarris | jnthn: I'd dealing with a whole mess of Perl5 modules that all have this issue where all methods must be called on a blessed reference even though that's only in order to get defaults. (Specifically, they all have "->fields" methods which tell you what fields are available for the given class, which is surely not something you need an instance for, but the way it was done in Perl 5 requires it.) I was trying | 19:55 | |
to write bridges to fix this behavior along with methods that used directly via Inline::Perl5 results in broken list-return behavior. | |||
jnthn: samewith has exactly the same behavior as nextwith and callwith I wrote in my comment notes. | 19:57 | ||
jnthn | *nod* | ||
So, MOP-y stuff is likely the best way | 19:58 | ||
m: multi trait_mod:<is>(Method:D $m, :$auto-new!) { $m.wrap: -> \obj, |c { callwith(obj.DEFINITE ?? obj !! obj.new, |c) } }; class C { has $.x = 0; method m() is auto-new { say $!x } }; C.m; C.new.m | |||
camelia | 0 0 |
||
jnthn | That's probably the minimal way | ||
With a little more effort you can make it into a class trait | |||
So you only have to put "is auto-new" on the class, not on each method | 19:59 | ||
Though maybe that's too sweeping | |||
But it gets away from having to to :U/:D stuff and re-mention the method name | |||
m: multi trait_mod:<is>(Method:D $m, :$auto-new!) { $m.wrap: -> \obj, |c { callwith(obj.DEFINITE ?? obj !! obj.new, |c) } }; class C { has $.x = 0; method m() is auto-new { say $!x } }; C.m; C.new(x => 42).m # just checking :) | |||
camelia | 0 42 |
20:00 | |
jnthn | phew :) | ||
TreyHarris | but with that I'd write: use Whatever:from<Perl5>; class P6::Whatever is Whatever { method fields is auto-new { nextsame; } } | ||
nine | TreyHarris: feel free to ping me if there's anything I can do on the Inline::Perl5 side. | ||
jnthn | Do you need it to be a subclass? | ||
And to respond correctly to .can? | 20:01 | ||
If those don't matter than there's just wrapping it up and using FALLBACK | |||
TreyHarris | jnthn: "need"? Perl5 objects don't respond correctly to .can. But I would like to avoid rewriting the names of methods whose behavior I don't need to change | 20:02 | |
nine: my biggest issue has been with methods that return lists... the container they return is very odd. comparing 'my $t = FromP5.new.listy(); my @t = FromP5.new.listy();' is strange. Neither is directly iterable, but $t.elems is correct and $t can be indexed, while @t.elems is 1 and the single element is another list. I've dealt with this by wrapping such methods in 'method listy (--> Slip(Any)) { return | 20:04 | ||
FromP5.new.listy(); }' | |||
Also, oddly, 'my $obj = FromP5.new; $obj.listy() === $obj.listy() or die' dies, as does eqv and =:= | 20:05 | ||
Oh! Sorry, only when something within the overall object is in XS. Hope you weren't writing your own test for this. (Proc::ProcessTable is a very simple thing to see this behavior.) | 20:08 | ||
Proc::ProcessTable.new.table shows this behavior for instance. | 20:09 | ||
Pure Perl5 seems to get translated okay. | 20:10 | ||
nine | TreyHarris: that sounds odd. Perl 5 arrays get wrapped in a Perl5Array object which does Iterable and Positional | ||
20:11
cdg joined
|
|||
TreyHarris | nine: gist.github.com/69bac1c14bfd033de4...2830630288 | 20:16 | |
(must go for ~1hr, sorry) | 20:17 | ||
nine | TreyHarris: if those wrappers misbehave, you can also just .list them | 20:19 | |
TreyHarris | nine oops sorry on phone so briefly: yes positional and iterable but the @version only has single element, @var[0] is actual list. Is why I used a Slip(Annie) return type | 20:22 | |
*Any | 20:23 | ||
nine | my @t = Proc::ProcessTable.new.table.list | ||
^^^ does what you need | |||
Aaaand I may have a patch that fixes the issue altogether | 20:26 | ||
Just have to sprinkle some "is raw" to avoid containerization of the Perl5Array return object. | |||
Geth | Inline-Perl5: 2b5d854575 | (Stefan Seifert)++ | 2 files Support .can on Perl5Objects |
20:29 | |
20:30
_28_ria left,
AlexDaniel joined
|
|||
TreyHarris | nine: I see. .fields does not exhibit this behavior because its structure is pure Perl. But I can do a trait that just puts ".list" at the end of everything; I do enough maps and greps and such in code that having to put .list in each place it should go will be annoying. Got to write an override either way; not sure if "method table (--> Slip(Any)) { $p5obj.table }" or "method table() { $p5obj.table.list }" is | 20:30 | |
better. First is a few chars shorter, so it wins? :-) | |||
20:31
perlpilot left,
_28_ria joined
|
|||
nine | TreyHarris: I already have a patch for making my @t = Proc::ProcessTable.new.table; do what you need. Just need to write a test for it. | 20:31 | |
Writing a test seems to be the harder part actually... | 20:33 | ||
TreyHarris | nine: Always is the case innit | 20:34 | |
20:40
andrzejku left
20:45
bjz joined
20:50
alimon left
20:53
gdonald left,
Cabanossi left
|
|||
nine | Can't get the darned thing to fail :) And I also don't see why it should make a difference if a sub is in XS or pure Perl. They all just push onto the stack and Inline::Perl5 doesn't even know what exactly it is. | 20:53 | |
20:53
gdonald joined
20:56
Cabanossi joined
20:59
skids left
|
|||
nine | Ooooh...of course! Proc::ProcessTable::table returns an array ref, not just an array. | 20:59 | |
TreyHarris: I wonder if Inline::Perl5 is actually correct there. A Perl 5 array reference sounds like it's closer to an itemized Perl 6 array than a flat one. | 21:00 | ||
21:09
RabidGravy left
|
|||
TreyHarris | nine: It's arguably "closer" but it's far, far more unwieldy (unless you know to just never use it until you use .list). In Perl5, the most you need do is add an @-sign to get it to work with built-ins, for, etc. In Perl 6, I was tearing my hair out trying to figure out if there was any way to assign it to an @array. Even '@a = ...table; @a = @a[0]; @a = @a[0]; say @a.elems' still gave you the same darn thing. | 21:11 | |
21:12
ufobat left
21:16
jdmmmmm left
|
|||
TreyHarris | nine: In fact, you can't delay the '.list'. "my @a = ...table; say @a.list.elems # 1" is just as unusable. You have to do ".list" at call-time or wrap it in a Slip(Any). Otherwise, you're stuck with something that's uniterable and un-flat()-enable and only indexable through @a[0][$n], though @a[0] itself isn't iterable. It really, really confused me for a long time | 21:18 | |
21:18
AlexDaniel left
21:20
raiph joined,
kurahaupo left,
kurahaupo joined
21:28
bjz left
21:32
mcmillhj left
21:35
bjz joined
21:37
AlexDaniel joined
21:38
Cabanossi left
21:40
Cabanossi joined
21:41
bjz left
21:51
bjz joined
21:58
raiph left
21:59
mcmillhj joined
22:04
setty1 left
|
|||
Geth | doc: a30fae6896 | (Zoffix Znet)++ | doc/Type/IO/Path.pod6 [io grant] Avoid potential confusion with use of word "object" Where it does not refer to an OOP object |
22:05 | |
22:08
bjz left
22:09
bjz joined
|
|||
unclechu | can i mark an argument of subroutine to copy that i can mutate? | 22:17 | |
sammers | "is copy"? | ||
sub foo($i is copy) {...} | 22:18 | ||
22:21
mcmillhj left
22:22
cpage_ left
22:24
rindolf left
|
|||
unclechu | sammers: thanks, that's it | 22:26 | |
sammers | np | 22:27 | |
22:29
bjz left
22:31
Sgeo left,
DarthGandalf joined
22:33
mcmillhj joined
22:36
DarthGandalf left
22:41
skids joined,
mcmillhj left,
bjz joined,
Sgeo joined
22:42
Sgeo left,
Sgeo joined
22:43
DarthGandalf joined
22:45
Geth left,
Geth joined,
ChanServ sets mode: +v Geth
22:46
Geth left,
Geth joined,
ChanServ sets mode: +v Geth
22:47
mcmillhj joined
22:49
jdmmmmm joined
22:51
bjz left
22:54
Cabanossi left
22:55
cpage_ joined,
mcmillhj left
22:56
Cabanossi joined
23:01
khw left,
jdmmmmm left
23:02
mcmillhj joined
23:07
mcmillhj left
23:11
mcmillhj joined,
cdg left
23:12
DarthGandalf left
23:15
mcmillhj left
23:17
mcmillhj joined
23:22
mcmillhj left
23:24
ChoHag left
|
|||
Geth | doc: 2aa3c9f609 | (Zoffix Znet)++ | doc/Type/IO/Handle.pod6 [io grant] Document new behaviour of IO::Handle.Supply - Expand description - Add examples |
23:25 | |
23:28
mcmillhj joined
23:33
mcmillhj left
23:34
mcmillhj joined
23:35
mcmillhj left
23:37
mcmillhj joined
23:42
wamba left
23:56
kyan joined
23:57
mcmillhj left
23:58
mcmillhj joined
|