»ö« 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:01
netrino left
00:04
newbie75 joined,
newbie75 left
00:07
netrino joined
00:13
DarthGandalf joined
00:14
john_parr joined
00:33
syntaxma1 left,
syntaxman joined
00:40
netrino left
00:46
netrino joined
01:00
adu joined
01:03
kent\n left
01:04
kent\n joined
01:13
xiaoyafeng joined
01:18
atweiden-air joined,
Ven````` joined,
netrino left
01:20
Ven```` left
01:25
netrino joined
01:27
Kaiepi left
01:28
Kaiepi joined
01:37
eythian left
01:38
eythian joined,
eythian left,
eythian joined
01:39
molaf left
01:43
xiaoyafeng left
01:48
noisegul_ joined
01:50
xiaoyafeng joined,
qiqi joined
01:51
noisegul left
01:52
molaf joined
01:57
netrino left
|
|||
Xliff | Getting the following attempting to build rakudo; | 01:57 | |
Can't locate object method "make_option" via package "NQP::Config::Rakudo" at /home/cbwood/Projects/rakudobrew/moar-master/tools/lib/NQP/Config/Rakudo.pm line 429 | 01:58 | ||
01:58
holyghost left
02:00
cpan-p6 left
02:01
cpan-p6 joined,
cpan-p6 left,
cpan-p6 joined,
Manifest0 left
02:02
Manifest0 joined
|
|||
Xliff | After following suggestion in commit msg 0acd27f44e9495c78af02c986d5bb7a5124c7caf, I am now getting the following error: | 02:02 | |
Found /home/cbwood/Projects/rakudobrew/moar-master/install/bin/moar version 2019.03-110-g081823ffc, which is too old. Wanted at least 2019.05-11-g248e298 | |||
02:02
melezhik joined
|
|||
melezhik | How to wrire regexp for everything not '@' simbol apperaing more then once at least? | 02:03 | |
02:04
netrino joined
|
|||
Xliff | m: say $a = '@@ wadads'; say $a ~~ / (<-[@]>+)/ | 02:04 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Variable '$a' is not declared at <tmp>:1 ------> 3say 7⏏5$a = '@@ wadads'; say $a ~~ / (<-[@]>+)/ |
||
Xliff | m: my $a = '@@ wadads'; say $a ~~ / (<-[@]>+)/ | ||
camelia | 「 wadads」 0 => 「 wadads」 |
||
Xliff | m: my $a = '@@ wadads'; say $a ~~ / (<-[@]> ** 2..*)/ | 02:05 | |
camelia | 「 wadads」 0 => 「 wadads」 |
||
Xliff | m: my $a = '@@ w'; say $a ~~ / (<-[@]> ** 2..*)/ | ||
camelia | 「 w」 0 => 「 w」 |
||
Xliff | m: my $a = '@@w'; say $a ~~ / (<-[@]> ** 2..*)/ | ||
camelia | Nil | ||
Xliff | melezhik: ^^ Only one, so two or more is working | ||
m: my $a = '@@wbb'; say $a ~~ / (<-[@]> ** 2..*)/ | |||
camelia | 「wbb」 0 => 「wbb」 |
||
melezhik | thanks, Xliff: | ||
what about capturing? | |||
Xliff | That is capturing. | 02:06 | |
'wbb' in $/[0] aka $0 | |||
melezhik | m: my $a = qq{foo-@}; $a ~~ / (< - [ @ ] > ** 2..* ) / ; say $0 | 02:08 | |
camelia | 「-@」 | ||
Xliff | <-[@]> ... you can' split it out like that | ||
m: my $a = '@@wbb'; say $a ~~ / (<-[ @ ]> ** 2..*)/ | |||
camelia | 「wbb」 0 => 「wbb」 |
||
Xliff | ^ You can like that though | ||
melezhik | m: my $a = qq{foo-@}; $a ~~ / (<-[ @ ] > ** 1 ) / ; say $0 | 02:09 | |
camelia | 「f」 | ||
melezhik | thanks. Xliff: I get the idea | ||
m: my $a = qq{foo-@}; $a ~~ / (<-[ @ ] > ** 1..* ) / ; say $0 | 02:10 | ||
camelia | 「foo-」 | ||
melezhik | here we go ((=; | ||
Xliff | =) | ||
02:12
atweiden-air left
02:15
holyghost joined
|
|||
holyghost | good morning | 02:15 | |
I might take the day off, I just need to add tests to Bayes::Learn, after that I'll make docs for Game::QFG | 02:16 | ||
Geth | ecosystem: faa5c61765 | dmaestro++ (committed using GitHub Web editor) | META.list Add Seq::Bounded to ecosystem |
02:17 | |
02:36
Cabanossi left
|
|||
melezhik | I have a foo=1,bar=2 string, I want to convert it to Hash | 02:37 | |
02:37
netrino left
|
|||
melezhik | m: my $a = qq{foo@foo=1,j=1}; $a ~~ /"@" (\S+) $$/; say "$0".split(",").map({ $_.split("=") }).perl | 02:37 | |
camelia | (("foo", "1").Seq, ("j", "1").Seq).Seq | ||
melezhik | so I need somehow "flattern" seq to array | ||
and assign to hash | |||
not sure how to do that | |||
Xliff | m: my $a = "foo=1,bar=2"; for $a.split(/,/) { s/(<-[=]>+'= | 02:38 | |
camelia | 5===SORRY!5=== Unrecognized regex metacharacter , (must be quoted to match literally) at <tmp>:1 ------> 3my $a = "foo=1,bar=2"; for $a.split(/7⏏5,/) { s/(<-[=]>+'= Unable to parse expression in single quotes; couldn't find final "'"… |
||
Xliff | m: my %h; my $a = "foo=1,bar=2"; for $a.split(/,/) { s/(<-[=]>+)'='(.+)/; %h{$0] = $1; }; %h.gist.say | 02:39 | |
camelia | 5===SORRY!5=== Unrecognized regex metacharacter , (must be quoted to match literally) at <tmp>:1 ------> 3h; my $a = "foo=1,bar=2"; for $a.split(/7⏏5,/) { s/(<-[=]>+)'='(.+)/; %h{$0] = $1; Unable to parse expression in subscript; co… |
||
Xliff | m: my %h; my $a = "foo=1,bar=2"; for $a.split(/','/) { s/(<-[=]>+)'='(.+)/; %h{$0] = $1; }; %h.gist.say | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Unable to parse expression in subscript; couldn't find final '}' (corresponding starter was at line 1) at <tmp>:1 ------> 3plit(/','/) { s/(<-[=]>+)'='(.+)/; %h{$07⏏5] = $1; }; %h.gist.say … |
||
Xliff | m: my %h; my $a = "foo=1,bar=2"; for $a.split(/','/) { s/(<-[=]>+)'='(.+)/; %h{$0} = $1; }; %h.gist.say | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Malformed replacement part; couldn't find final / at <tmp>:1 ------> 3>+)'='(.+)/; %h{$0} = $1; }; %h.gist.say7⏏5<EOL> expecting any of: method arguments |
||
Xliff | m: my %h; my $a = "foo=1,bar=2"; for $a.split(/','/) { /(<-[=]>+)'='(.+)/; %h{$0} = $1; }; %h.gist.say | 02:40 | |
camelia | {bar => 「2」, foo => 「1」} | ||
Xliff | ^^ | ||
m: my %h; my $a = "foo=1,bar=2"; for $a.split(/','/) { /(<-[=]>+)'='(.+)/; %h{$0} = $1.Str; }; %h.gist.say | |||
camelia | {bar => 2, foo => 1} | ||
cpan-p6 | New module released to CPAN! Seq::Bounded (1.0) by 03DMAESTRO | ||
Xliff | m: my %h; my $a = "foo=1,bar=2,baz=3,name=Xliff"; for $a.split(/','/) { /(<-[=]>+)'='(.+)/; %h{$0} = $1.Str; }; %h.gist.say | ||
camelia | {bar => 2, baz => 3, foo => 1, name => Xliff} | ||
melezhik | I'd prefer the way where one assing resulting array to hash, letting Perl6 to do the rest of the job | ||
02:40
Cabanossi joined
|
|||
Xliff | melezhik: ?!? | 02:40 | |
That is perl6 doing the job. | 02:41 | ||
melezhik | not sure. does Perl6 forbid your to do like that | 02:42 | |
m: my %h = ("foo", "1", "bar", "baz"); say %h.perl | |||
camelia | {:bar("baz"), :foo("1")} | ||
02:43
netrino joined
|
|||
melezhik | Xliff, your solution works I see. Sorry I'm just a bit "picky" here ((=: | 02:43 | |
Xliff | :p | ||
melezhik | or perfectionist, whatever you call it ((=; | ||
Xliff | m: my %h; my $a = "foo=1,bar=2,baz=3,name=Xliff"; my %h = given for $a.split(/','/) { /(<-[=]>+)'='(.+)/; take $0; take $1.Str }; %h.gist.say | 02:44 | |
camelia | 5===SORRY!5=== Word 'given' interpreted as a listop; please use 'do given' to introduce the statement control word at <tmp>:1 ------> 031,bar=2,baz=3,name=Xliff"; my %h = given7⏏5 for $a.split(/','/) { /(<-[=]>+)'='(.+) Unexpected bl… |
||
Xliff | m: my %h; my $a = "foo=1,bar=2,baz=3,name=Xliff"; my %h = do given for $a.split(/','/) { /(<-[=]>+)'='(.+)/; take $0; take $1.Str }; %h.gist.say | ||
camelia | 5===SORRY!5=== Undeclared routine: for used at line 1 Other potential difficulties: Redeclaration of symbol '%h' at <tmp>:1 ------> 3 = "foo=1,bar=2,baz=3,name=Xliff"; my %h7⏏5 = do given for $a.split(/','/) { /… |
||
Xliff | m: my %h; my $a = "foo=1,bar=2,baz=3,name=Xliff"; %h = do given for $a.split(/','/) { /(<-[=]>+)'='(.+)/; take $0; take $1.Str }; %h.gist.say | ||
camelia | 5===SORRY!5=== Error while compiling <tmp> Undeclared routine: for used at line 1 |
||
melezhik | I just abit "obssesed" with the idea of coercing seqs to arrays | ||
it should be easy, huh? | |||
Xliff | m: my %h; my $a = "foo=1,bar=2,baz=3,name=Xliff"; %h = do gather for $a.split(/','/) { /(<-[=]>+)'='(.+)/; take $0; take $1.Str }; %h.gist.say | ||
camelia | {bar => 2, baz => 3, foo => 1, name => Xliff} | ||
Xliff | melezhik: ^^ | ||
melezhik | well, thanks, Xliff: let me find my the alternative, if any ... anyway thanks | 02:45 | |
Xliff | OK! Good luck! | 02:46 | |
melezhik | what about that Xliff: ? | 02:47 | |
m: my $a = qq{foo@foo=1,j=1}; $a ~~ /"@" (\S+) $$/; my %h = "$0".split(",").map({ $_.split("=") }).flat.flat; say %h.perl | |||
camelia | {:foo("1"), :j("1")} | ||
melezhik | flat.flat ... ha-ha ((=; | 02:48 | |
Xliff | Looks good. | ||
melezhik | m: my $a = qq{foo@foo=1,j=1}; $a ~~ /"@" (\S+) $$/; my %h = "$0".split(",").map({ $_.split("=").flat }).flat; say %h.perl | ||
camelia | {:foo("1"), :j("1")} | ||
melezhik | so for evert split, you just a flat | 02:49 | |
so for evert split, you just add a flat | |||
Xliff | Yep. | ||
melezhik | anyway, thanks for help ((=; Perl6 community is always so friendly ((=; | ||
Xliff | yw | 02:52 | |
elcaro | m: my $a = qq{foo@foo=1,j=1}; my %h = $a.substr($a.index('@')+1).split(',').map(|*.split: '='); say %h.perl; | ||
camelia | {:foo("1"), :j("1")} | ||
02:54
melezhik left
|
|||
elcaro | actually..y | 02:57 | |
m: my $a = qq{foo@foo=1,j=1}; my %h = $a.substr($a.index('@')+1).split(/<[,=]>/); say %h.perl; | |||
camelia | {:foo("1"), :j("1")} | ||
03:01
gregf_ left
03:16
netrino left
03:22
netrino joined
03:24
Cabanossi left
03:36
Cabanossi joined
03:37
DarthGandalf left
03:40
DarthGandalf joined
03:54
netrino left
04:01
netrino joined
|
|||
holyghost | I've put docs in Game::QFG, version 0.1.9 | 04:08 | |
cpan-p6 | New module released to CPAN! Game::QFG (0.1.9) by 03HOLYGHOST | 04:13 | |
04:13
squashable6 left
04:16
squashable6 joined
|
|||
holyghost | stupid bot | 04:16 | |
anyway, I'm going to the bar in a few hours, to get a coffee | 04:19 | ||
It's 6:20 am here | 04:20 | ||
I hope I can cope with the rule-based system in Game::QFG, I need to search for AI and learning and so on | 04:21 | ||
The meaning is to have rules for NPCs characters and features | 04:22 | ||
NPC == Non Player Character | |||
The storyline should also be rule based | |||
A semi-random story is e.g. in nethack | 04:23 | ||
04:23
Ven`````` joined
04:26
qiqi left,
Ven````` left,
kaare__ left
04:27
qiqi joined,
kaare__ joined
04:33
aborazmeh left
04:34
netrino left
04:40
netrino joined
04:42
curan joined
04:56
qiqi left
05:05
nadim left
05:08
satori__ joined,
reach_satori_ left
05:13
netrino left,
nadim joined
05:15
nadim_ joined
05:18
nadim left
05:19
netrino joined
05:21
sauvin joined
05:25
qiqi joined
05:27
hfjvjffju left
05:28
PavelB left
05:30
pnu__ left
05:34
PavelB joined,
pnu__ joined,
hfjvjffju joined
05:43
molaf left
05:48
jeromelanteri joined
05:52
netrino left
05:55
nadim_ left
05:58
netrino joined
05:59
qiqi left,
domidumont joined
06:01
nadim_ joined
06:05
qiqi joined
06:06
jmerelo joined
06:25
qiqi left
|
|||
jmerelo | releasable6: status | 06:28 | |
yoleaux | 20 May 2019 18:26Z <sena_kun> jmerelo: hi! please, ping me whenever you'll be comfortable | ||
20 May 2019 19:44Z <sena_kun> jmerelo: sorry, never mind me. | |||
releasable6 | jmerelo, Next release in ≈29 days and ≈12 hours. 1 blocker. 140 out of 422 commits logged (⚠ 2 warnings) | ||
jmerelo, Details: gist.github.com/334b346e9bc1b4eaee...6380cb6727 | |||
jmerelo | .tell sena_kun I'm back | ||
yoleaux | jmerelo: I'll pass your message to sena_kun. | ||
jmerelo | squashable6: status | ||
squashable6 | jmerelo, Next SQUASHathon in 8 days and ≈21 hours (2019-06-01 UTC-14⌁UTC+20). See github.com/rakudo/rakudo/wiki/Mont...Squash-Day | ||
06:30
netrino left
06:33
mowcat joined
06:36
netrino joined
06:38
antoniogamiz joined
06:39
netrino_ joined
06:41
netrino left
06:48
adu left
|
|||
Geth | doc/master: 4 commits pushed by (JJ Merelo)++ | 06:51 | |
06:51
satori__ left
06:58
qiqi joined,
abraxxa joined
|
|||
El_Che | morning | 07:01 | |
jmerelo | El_Che: Morning! | ||
holyghost | gm | 07:04 | |
07:04
ChoHag joined
07:05
Sgeo__ joined
|
|||
antoniogamiz | o/ | 07:07 | |
07:08
Sgeo_ left
07:24
kurahaupo left,
kurahaupo joined
07:29
xiaoyafeng left
07:30
satori__ joined,
Ven`````` left
07:31
xiaoyafeng joined,
qiqi left,
Sgeo_ joined
07:34
ufobat__ left
07:35
Sgeo__ left
07:38
Sgeo_ left,
Sgeo_ joined
07:41
rindolf joined
07:44
ijneb left
07:50
netrino_ left
07:51
qiqi joined
07:52
robertle joined
|
|||
antoniogamiz | cd .. | 07:53 | |
ups | |||
jmerelo | antoniogamiz: :-) | ||
07:53
rindolf left
08:03
zakharyas joined
08:10
qiqi left
08:12
dakkar joined
|
|||
chee | i notice node.js's http library can listen on a unix socket, does anyone know if there's any such module for perl 6? | 08:17 | |
jmerelo | chee: you mean, as part of the standard library? | ||
tadzik | Cro::HTTP is the cool thing these days and it can be an HTTP server | 08:18 | |
08:18
qiqi joined
|
|||
jmerelo | chee: there are many HTTP-listening modules in Perl 6, including, as tadzik says, Cro::HTTP | 08:18 | |
holyghost | a search for sockets and networking should get you to the docs of it | 08:19 | |
08:19
netrino_ joined
|
|||
holyghost | There's a CATCH based client-server system somewhere in the perl6 docs | 08:19 | |
08:20
Kaiepi left
|
|||
chee | jmerelo: i did check cro, but the only mention i saw of sockets was about websockets | 08:21 | |
08:21
DarthGandalf left
|
|||
chee | sorry, that was meant for holyghost | 08:21 | |
or everyone really | |||
tadzik | chee: doc.perl6.org/type/IO::Socket::INET those are the regular sockets | 08:22 | |
that's just raw TCP thoughu :) | |||
holyghost | chee : it's not cro, what I meant, but tadzik's link should help out | ||
use IO::Socket; etc | 08:23 | ||
chee | yeah ^.^, i'm wondering if there's an http module that will listen on an IO::Socket rather than an ip and port | ||
oh | |||
doc.perl6.org/type/IO::Socket::Async | |||
sorry, i was unclear earlier. i meant a socket file | 08:24 | ||
holyghost | in C, fileno(int socket) you mean ? | ||
*lol* I mean socket, int fileno(FILE *) | 08:25 | ||
tadzik | ooh, a unix socket, I missed that earlier in a conversatino | 08:27 | |
sorry, everything I said was wrong then :P | |||
I don't think there's anything for that, except for using NativeCall or maybe Inline::Perl5 | 08:28 | ||
chee | ahh, okay. is there no unix domain socket support at all in p6? | 08:31 | |
tadzik | not that I know of, no :( | ||
on the plus side, you're in a prime position to make history by implementing it ;) | 08:32 | ||
08:32
Kaiepi joined
|
|||
chee | :D | 08:35 | |
tadzik | (been there done that :P) | 08:36 | |
08:37
DarthGandalf joined
08:41
antoniogamiz left
08:42
Kaiepi left,
antoniogamiz joined,
Kaiepi joined
08:45
Kaiepi left
08:48
Kaiepi joined
08:49
rindolf joined
08:53
satori__ left,
satori__ joined,
netrino_ left
08:56
netrino_ joined
08:58
antoniogamiz left
08:59
antoniogamiz joined
|
|||
tobs | ++Kaiepi had unix socket support on their agenda last time I asked | 09:10 | |
Kaiepi | i still do | 09:11 | |
yoleaux | 21 May 2019 21:10Z <lizmat> Kaiepi: my latest version of the feed processor: gist.github.com/lizmat/cecd2801129...c9a8fe0ee7 | ||
21 May 2019 21:11Z <lizmat> Kaiepi: I think that combines the best of both worlds, please let me know if you need more info to integrate | |||
Kaiepi | it's the last thing i'm doing as part of my grant work though | 09:12 | |
i'll get started on it after i'm done with feed operators and after v6.e.PREVIEW is implemented since the first few things i need to do depend on it | |||
tobs | godspeed! | 09:14 | |
09:17
Sgeo_ left,
Sgeo_ joined
09:19
Sgeo__ joined
09:21
antoniogamiz left
09:23
Sgeo_ left
|
|||
Kaiepi | .tell lizmat your code looks pretty straightforward but what's the purpose of $!low-mark and $!high-mark? | 09:28 | |
yoleaux | Kaiepi: I'll pass your message to lizmat. | ||
lizmat | high-mark is an indication of the maximum number of values that will be buffered | 09:29 | |
yoleaux | 09:28Z <Kaiepi> lizmat: your code looks pretty straightforward but what's the purpose of $!low-mark and $!high-mark? | ||
09:29
netrino_ left
|
|||
lizmat | and low-mark is the number of elements in the buffer at which it will start filling again | 09:30 | |
the values are pretty arbitrary at the moment | |||
it possibly makes sense to increase the high-mark to 1000 | 09:31 | ||
to avoid small size lists to avoid the parallelization overhead | 09:32 | ||
Kaiepi | why are they needed? | ||
lizmat | well.. the high-mark tries to adapt itself to an optimum size | 09:33 | |
if the load on the mapping is too low, it will raise the high-mark | 09:34 | ||
if the load is too high, it will decrease the high-mark | 09:35 | ||
09:35
netrino_ joined
|
|||
lizmat | Kaiepi: in an earlier version, I found that the reader would be reading values faster from the buffer than the writer could add them | 09:39 | |
so that's why the initial buffer filling | |||
Kaiepi | ahhh | 09:41 | |
ok | |||
would using something like a semaphore work? | 09:45 | ||
jnthn | I think what we really miss is a way to make a Channel have a bound | 09:48 | |
09:48
mowcat left
|
|||
jnthn | So that pushing something into it can also block | 09:48 | |
Kaiepi | in go you can create channels with a buffer length | 09:53 | |
if the number of values on the queue is equal to the buffer length, pushing blocks | |||
jnthn | Yes, same in Java, C | 09:55 | |
*C#, etc. | |||
Something for us to have too, just nobody got around to it yet :) | |||
Well, they did, but in the ecosystem... :) | |||
And less efficiently than if we just support it "natively" | |||
Kaiepi | lizmat, there's one problem with your implementation | 10:02 | |
it assumes $source is a list of some sort when that's not always the case as used in the ecosystem | 10:03 | ||
m: sub base36(Int $num --> Str) { $num.base: 36 }; say do { 35 ==> base36() } | 10:04 | ||
camelia | Z | ||
10:04
domidumont left
|
|||
Kaiepi | maybe PROCESS-FEED would need to be a multi sub to handle those cases if we should keep that behaviour | 10:05 | |
10:07
jeromelanteri left
10:21
DarthGandalf left
10:44
satori__ left
10:52
DarthGandalf joined
10:54
kensanata joined
11:00
sena_kun joined
|
|||
chee | Kaiepi: oh this is great news, re: unix domain sockets | 11:01 | |
lizmat | Kaiepi: what are the cases where the source is not something that can provide an iterator? | 11:03 | |
Kaiepi: but indeed, making it a multi should cover that case | 11:04 | ||
11:07
qiqi left
11:12
xiaoyafeng left
11:13
gregf_ joined
11:14
DarthGandalf left
11:32
DarthGandalf joined
11:42
DarthGandalf left
11:46
netrino_ left
11:48
netrino_ joined
12:09
sdoo joined
12:14
zakharyas left
|
|||
timotimo | wakelift.de/p/f9314876-3251-461f-b6...0b3cc656b/ - i would appreciate proofreading <3 | 12:17 | |
12:22
netrino_ left
12:26
jeromelanteri joined
12:27
netrino_ joined
12:30
sdoo left
12:31
sdoo joined
|
|||
masak | timotimo: nice! | 12:38 | |
I skimmed it -- didn't find any nits to pick | |||
timotimo | yay | 12:39 | |
cpan-p6 | New module released to CPAN! Seq::Bounded (1.0.1) by 03DMAESTRO | 12:40 | |
sena_kun | timotimo, ignore me right now, but shouldn't it be "An obligatory photo..."? | 12:41 | |
yoleaux | 06:28Z <jmerelo> sena_kun: I'm back | ||
timotimo | sena_kun: maybe "The"? | 12:43 | |
sena_kun | ah, yes, or this one | ||
sena_kun tries to be better with articles, but has a long way ahead | 12:44 | ||
jast | I would keep it as it is | 12:46 | |
to keep with the standard form of the "obligatory X" meme | 12:47 | ||
timotimo | put in some extra stuff at the end | 12:48 | |
12:49
mowcat joined
|
|||
jast | "The request was actually just to allow configuring only [...]" is a bit of a bumpy read | 12:50 | |
same paragraph: "complicated" has a negative connotation, maybe "detailed" or "in-depth" | 12:51 | ||
timotimo | refresh for different colors at the end | ||
jast | "While deciding upon what exactly I should build" - not a complete sentence | 12:52 | |
timotimo | refresh, i reworded it | ||
ah, yes | |||
jast | yeah, I like that better now | ||
timotimo | have a look at the new start of that paragraph | 12:53 | |
jast | yeah, nice | 12:54 | |
structural thing: after the first example program, you describe frame vs sf. this is a little hard to follow because at that point you have seen sf but not frame in the example, yet you talk about frame first. if the syntax/meaning allows for it, I'd include both frame and sf in the example somehow, so that you can see both in action, making it easier to understand an explanation of how the two relate | 12:55 | ||
timotimo | sadly, frame can't go in this example | ||
jast | yeah, I had an inkling that it might not | 12:56 | |
you could either make it two examples, or skip over explaining 'frame' here and just focus on what 'static' means in this context | |||
I mean, once I finish reading the paragraph I understand it all, but in the middle I'm a bit "???" | 12:57 | ||
or you could explain the 'entry' line first, giving more context about this, before explaining frame vs sf | 12:58 | ||
timotimo | that's valuable input, i'll see if i can reword it | ||
the thing with putting entry first that made me want to put it at the end instead is the big list of possible entry points i have below | |||
jast | which would make it mostly about re-ordering a few paragraphs | ||
13:00
netrino_ left
|
|||
timotimo | something's wrong with the font in the examples at the bottom | 13:00 | |
things just don't line up ... | |||
jast | how about something roughly like this... the 'entry' decides which stage of profiling the program is applied to. in this case, the 'profiler_static' means we're seeing a routine for the first time, before we enter any specific frame, so [...]. [...] these are the other types of entry points: | ||
13:01
veesh left
|
|||
timotimo | perhaps the font it's using is missing a few of the glyphs and is falling back to another one for those | 13:01 | |
13:01
veesh joined
|
|||
timotimo | yeah i like that suggestion | 13:01 | |
I'll give it a try after i defeat the font rendering at the bottom | 13:02 | ||
jast | font woes, sounds like fun | ||
timotimo | haha, when i set the font-family to "serif" the lines line up just fine | ||
it just looks totally out-of-place | |||
same for -webkit-pictograph, which wouldn't be cross-browser anyway | 13:03 | ||
13:04
mowcat left
13:06
netrino_ joined
|
|||
jast | aside on eBPF for socket routing - the main use case I'm thinking of is virtual networks (but it's not something I've really looked into) | 13:07 | |
13:07
sdoo left
|
|||
jast | rest of the post looks good to me, and it's an interesting read, too | 13:09 | |
timotimo | TYVM | 13:10 | |
with virtual networks you mean vlan? | |||
jast | I was thinking communication between virtual machines | ||
timotimo | ah | 13:11 | |
jast | btw I would consider a different title maybe - it's a little vague right now | ||
potentially this might become very flexible, but for now it's about profiling for the most part, I guess... | |||
timotimo | true, i just wanted to have a pun on the cat picture | 13:12 | |
"a close look at" would be another possibility | |||
jast | that pun went right over my head ;P | ||
13:13
pamplemousse joined
|
|||
jast | either way "MoarVM features" doesn't really say much | 13:13 | |
timotimo | true | ||
"allowing close control over"? | 13:14 | ||
jast | right now it's all about the profiler, isn't it? | ||
timotimo | true | ||
jast | A close look at controlling the MoarVM profiler | 13:15 | |
timotimo | that should work | ||
13:20
pamplemousse left
|
|||
timotimo | refresh please, i rewrote it using mostly your suggested text | 13:21 | |
13:22
pamplemousse joined
|
|||
jast | okay, now you're explaining 'entry' twice, which is maybe not entirely necessary - but other than that, thumbs up ) | 13:29 | |
(I'm fairly picky btw :P) | |||
13:29
cpan-p6 left
|
|||
lizmat | jast++ | 13:29 | |
timotimo | ah, of course, the line before the list and perhaps the first entry in the list want change, too | 13:30 | |
13:30
cpan-p6 joined,
cpan-p6 left,
cpan-p6 joined
|
|||
timotimo | how's this? | 13:31 | |
also, i'm grateful for your pickyness :) | |||
also, i'm not sure how to progress with the terminal output at the bottom >_< | 13:32 | ||
13:32
skids joined
|
|||
lizmat | looks good to me now | 13:34 | |
13:34
vrurg joined
13:35
aborazmeh joined,
aborazmeh left,
aborazmeh joined
|
|||
timotimo | yes! i found a font that works | 13:35 | |
now my font-family is Consolas, Monaco, Monospace | |||
lizmat | even better | ||
wish I could DDT to work on my Mac: I can't get the Terminal::Print dependency to install :-( | |||
timotimo | oh damn. but perhaps it'd be enough to just add whatever TERM you have to the whitelist | 13:36 | |
lizmat | did that, didn't solve the problem | ||
timotimo | damnit | ||
wanna try figuring it out together? | 13:37 | ||
lizmat | sure | ||
I got a checkout of Terminal::Print locally | |||
perl6 lib/Terminal/Print/Commands.pm6 | |||
timotimo | when i run that i get a bunch of messages from 'tput: unknown terminal "xterm-kitty"' and the same for "rxvt-unicode-256color" | 13:38 | |
lizmat | gives me a long list of: gist.github.com/lizmat/a966bc3b1de...215359f3f7 | ||
indeed | |||
$ perl6 lib/Terminal/Print.pm6 | 13:39 | ||
===SORRY!=== | |||
Please update @valid-terminals with your desired TERM ('xterm-color', is it?) and submit a PR if it works | |||
set | grep TERM | |||
TERM=xterm-color | |||
timotimo | OK, when i add that it gives the exact same output, so it seems to find xterm-color just fine on my machine as well | 13:40 | |
lizmat | added that to @valid-terminals | ||
and get the ===SORRY!=== again on running lib/Terminal/Print.pm6 | 13:41 | ||
timotimo | cleared all precomps just in case? | ||
13:42
robertle left,
curan left
|
|||
lizmat | when I run it as "perl6 lib/Terminal/Print.pm6" there is no precomp involved ?? | 13:42 | |
timotimo | do you have a -I or something? perhaps it's using a precomp in an unexpected location, or something installed to the system | 13:43 | |
lizmat | nope, no -I | ||
timotimo | well it has to find the other module somehow, right? | ||
13:43
molaf joined
|
|||
lizmat | ok, turns out all of the "unknown terminal" crap was just a smoke screen | 13:45 | |
13:45
robertle joined
|
|||
lizmat | zef install . --force-install fails with: Tried to use an undefined capability 'civis' of the terminal type 'xterm-color' | 13:45 | |
timotimo | that's a lot more interesting already | 13:46 | |
civis makes the cursor invisible, cnorm makes the cursor normal | |||
13:46
xiaoyafeng joined
|
|||
lizmat | zef install . --force-install --/test did the trick (so far) | 13:47 | |
timotimo | there's also ve and vi | ||
if i understand correctly, ve is the same as cnorm and vi is the same as civis | |||
this document i have here says that BSD follows the ve and vi conventions | |||
which ... apple something something BSD something something darwin kernel something something | 13:48 | ||
lizmat | got it installed now,, timotimo++ for nudging me :-) | 13:49 | |
13:51
pamplemousse left,
nadim_ left,
pamplemousse joined
|
|||
timotimo | did you change civis and cnorm to the other thing? | 13:52 | |
lizmat | doesn't like ve as a synonum for civis | 13:53 | |
Tried to use an undefined capability 've' of the terminal type 'xterm-color' | 13:54 | ||
13:54
abraxxa left,
abraxxa joined
|
|||
timotimo | odd | 13:56 | |
so what does that terminal use to switch between invisible cursor, normal cursor, and block cursor? | |||
13:57
sdoo joined
|
|||
lizmat | I have no idea... | 13:57 | |
vrurg | Here is output from infocap for xterm-256color: | 14:01 | |
yoleaux | 21 May 2019 20:05Z <timotimo> vrurg: passing things it doesn't know about, Configure.pl just stays silent - we had --optimize=0 debug=3 in moarvm's Configure.pl and had a hard time figuring out why breakpoints weren't working/showing up in gdb; anything you can do? | ||
vrurg | bel=^G, blink=\E, bold=\E, cbt=\E[Z, civis=\E[?25l, | 14:02 | |
clear=\E[H\E[2J, cnorm=\E[?12l\E[?25h, cr=\r, | |||
Xliff | \o | ||
Did anyone get my messages about moar-master not compiling properly? | |||
vrurg | I see civis and cnorm. | ||
Xliff | colabti.org/irclogger/irclogger_lo...-05-22#l34 | 14:03 | |
lizmat | look for "submodule update" in the log | ||
14:03
aindilis left
|
|||
Xliff | colabti.org/irclogger/irclogger_lo...-05-22#l43 | 14:04 | |
lizmat: I ended up having to switch to moar-blead for the time being. | |||
lizmat | how is that different from master ? | 14:05 | |
14:05
dakkar left
|
|||
Xliff | Don't know. I just know that master kept dying when I tried to build it, and moar-blead went through clean. | 14:06 | |
14:06
netrino_ left
|
|||
lizmat | sounds weird :-) | 14:06 | |
vrurg | timotimo: did you pass --optimize and --debug=3 to rakudo's Configure.pl? It's not clear to me what happened and how it was expected to be. | ||
Xliff | lizmat: Yes. Yes it does. | ||
14:07
dakkar joined
14:08
netrino_ joined
|
|||
vrurg | Xliff: best is to try re-cloning from scratch, if you can. Sometimes things go out of sync. I sometimes just delete nqp directory and re-configure. | 14:10 | |
timotimo | vrurg: we passed "--optimize debug=3" and we didn't get debugging, but we also didn't get a warning or an error | ||
Xliff | vrurg++: Thanks. I will see about that. | ||
vrurg | timotimo: My rakudo Configure.pl complains about unknown option optimize. Would it be possible for you to open a ticket? | 14:13 | |
I'll be away for a while and it seems like more information would be needed for me to follow. | 14:14 | ||
timotimo | it's the moarvm configure that gets it | ||
OK | |||
vrurg | timotimo: Oh, I did nothing to MoarVM build. | 14:15 | |
timotimo | oh, i see! | 14:16 | |
sorry about the noise, then :) | |||
14:17
aindilis joined
|
|||
vrurg | NP. I'm not even sure if it makes sense to re-do moar's build. | 14:18 | |
kawaii | deployed our first production perl 6 app at $dayjob today :) | 14:23 | |
moritz | kawaii: that's awesome. What does it? | 14:25 | |
14:27
nadim_ joined
|
|||
kawaii | moritz: gist.githubusercontent.com/kawaii/...display.p6 | 14:27 | |
so, it's quite hacky, but we have a client who has a point-of-sale system, and when they scan a barcode their application sends a full HTML payload to a second screen that the customer sees (showing price, item photo etc), we needed a small listener app to basically rebuild the DOM with each new payload | |||
tadzik | cute :) | 14:28 | |
or should I say: kawaii? ;) | 14:29 | ||
14:29
xiaoyafeng left
|
|||
kawaii | ;) | 14:29 | |
moritz | kawaii: very nice | 14:32 | |
kawaii | nice is probably not the right word, a simple hack but it works very well :) | ||
14:32
DarthGandalf joined
14:35
cpup left,
cpup joined
14:36
robertle left
|
|||
moritz | "works very well" and "simple" together meets my definition of "nice", even if it's not very elegant | 14:37 | |
14:39
nadim_ left
14:40
satori__ joined
14:41
netrino_ left
|
|||
timotimo | lol i blogged: wakelift.de/2019/05/22/close-look-...-profiler/ | 14:41 | |
tadzik | lol! | 14:42 | |
14:44
feldspath joined
|
|||
lizmat | weekly: wakelift.de/2019/05/22/close-look-...-profiler/ | 14:46 | |
notable6 | lizmat, Noted! | ||
14:47
netrino_ joined
|
|||
jast | timotimo: the good news is you got my seal of approval now for the post :P | 14:48 | |
14:48
pamplemousse left
|
|||
timotimo | is there an image i can embed for that? :) | 14:49 | |
14:50
zakharyas joined
14:51
pamplemousse joined
14:52
sena_kun left
14:55
nadim_ joined
14:58
kurahaupo left,
sdoo left
14:59
kurahaupo joined,
kurahaupo left,
kurahaupo joined
15:11
aborazmeh left
15:14
jeromelanteri left
|
|||
nadim_ | hi, is it possible to get more info when one gets messages like "Cannot find method 'ann' on object of type NQPMu", a file and line? | 15:15 | |
jmerelo | nadim_ there's a DEBUG environment variable you can use. It might be a bit too verbose. | 15:16 | |
timotimo | huh? i haven't heard of that | 15:17 | |
nadim_ | hehe! | ||
just DEBUG=1 perl6 ...? | |||
timotimo | usually --ll-exception can get you a bit further, but that only works if you already get a stack trace, but it's too short | ||
nadim_ | that's what I got, nothing more | ||
jmerelo | nadim_: but that's an error that's deep down in NQP so it's better if you post the whole thing here or in StackOverflow... Or both | 15:18 | |
timotimo: export RAKUDO_MODULE_DEBUG=1 | |||
timotimo: it's for compilation but it could still be useful here | 15:19 | ||
lizmat | .ann points at something gone wrong in a grammar (there's a lot of \.ann() in src/Perl6 | ||
) | |||
timotimo | try --stagestats to see if it happens in, for example, the optimizer | ||
nadim_ | dumping a CallFrame has been challenging, between the Uninstantiable found it and that. not that | 15:20 | |
lizmat | so it looks like something did not get initialized, and then it gets annotated, and then boom | ||
nadim_ | hmm, let me try to reproduce it, I was trying to make it go so far | ||
timotimo | nadim_: maybe you already saw, but i gave ddt a shout-out in my latest blog post :) | 15:22 | |
15:24
sdoo joined
|
|||
nadim_ | here's the code that generates the error and the code that doesn't. nopaste.linux-dev.org/?1202183 | 15:27 | |
timotimo: cool! url? | |||
timotimo | wakelift.de/2019/05/22/close-look-...-profiler/ | 15:31 | |
get_attributes just calls get_attributes and that's not part of the paste :( | 15:32 | ||
well, not "just" | |||
but, you know | |||
15:32
AlexDaniel left
|
|||
nadim_ | output when run with RAKUDO_MODULE_DEBUG=1 nopaste.linux-dev.org/?1202184 | 15:35 | |
15:35
netrino_ left
15:37
robertle joined
|
|||
nadim_ | timotimo: github.com/nkh/P6-Data-Dump-Tree/b...ee.pm#L805 | 15:38 | |
that's the previous version but get_attributes is the same. unfortunatelly the old version will not dump a CallFrame, it breaks before it gets there. if if it is of interest I can make a branch but changing the code removed the error so I don't thnk it's in get_attributes | 15:40 | ||
jmerelo | nadim_: well, the last line is helpful... | ||
nadim_ | which one? | ||
15:40
Ven`` joined
|
|||
Ven`` | \o | 15:40 | |
15:41
netrino_ joined
|
|||
jmerelo | nadim_: line #91 in the pastebin. But I was actually kidding. It might have some info, but it's hidden in so much stuff that's it's difficult to say. | 15:41 | |
nadim_ | I kinda guessed you were joking ;) | 15:42 | |
15:44
Sgeo__ left
15:45
Sgeo__ joined
|
|||
nadim_ | timotimo: /me bows down ... | 15:45 | |
jmerelo | nadim_: that's so weird... timotimo found the solution? | 15:47 | |
timotimo | what? | ||
i don't think i did anything? | |||
i was just about to say i don't see anything obvious, and that i would splatter the code with debug prints, maybe a call to DUMP or two | |||
Ven`` | we'll bow to you anyway | ||
nadim_ | haha, jmerelo, no, I thanked for the thanks in the blog entry | ||
timotimo | thanks for the thanks for the thanks | ||
jmerelo bows too | 15:49 | ||
anyway | |||
nadim_: as timotimo says, get_attributes is calling a get_attributes sub? | |||
nadim_ | yes | ||
jmerelo | nadim_: which is right below... | ||
and there's another _get_attributes... There are a bit too many *get_attributes*... | 15:50 | ||
I don't see anything that might cause the error, which is probably a bug anyway. | 15:51 | ||
um, you're defining @a and using it withing a try statement... | |||
Can you define @a in 807 and then assign it a value in the next one? | 15:52 | ||
@a is not exactly defined when you try and use it, I think... | |||
timotimo | true, that's a little bit odd | 15:53 | |
but the assignment should return the assigned value, so it *should* be fine | |||
jmerelo | timotimo: but you can simply use some other variable. Or none. the try block should return its last value, right? | 15:54 | |
timotimo: so simply eliminate @a = inside the try statement | |||
nadim_ | yes, I probably needed it as a sub somewhere (my guess is filter, you want power you have to pay for it). and it got complex when I started supporting NativeCall, etc ... blogs.perl.org/users/nadim_khemir/2...-side.html | ||
15:55
pamplemousse left
|
|||
jmerelo | m: my @a = try { my @a = 3,7 } | 15:55 | |
camelia | ( no output ) | ||
jmerelo | m: my @a = try { my @a = 3,7 }; say @a | ||
camelia | [3 7] | ||
jmerelo | No, that's not it... | ||
15:56
pamplemousse joined
|
|||
jmerelo | m: my @a = try { @a = 3,7 }; say @a | 15:56 | |
camelia | [3 7] | ||
jmerelo | m: my @a = try { 3,7 }; say @a | ||
camelia | [3 7] | ||
nadim_ | jmerelo: yes it looks like the <2a in the try is not necessary | 15:57 | |
15:59
Ven`` left
|
|||
nadim_ | Mehhhhh! now nothing works anymore, I need to learn to commit faster! | 16:00 | |
jmerelo | m: say (('DDT exception', ': ', "message"),) | 16:09 | |
camelia | ((DDT exception : message)) | ||
jmerelo | nadim_: is that kind of thing what you want? A list inside a list? | 16:10 | |
16:10
robertle left
|
|||
jmerelo | nadim_: also, why don't you raise an exception if it's an exception? It might be better than detect some particularly formatted thing | 16:10 | |
16:11
pamplemousse left,
pamplemousse joined
|
|||
TreyHarris | Is there an at all well-known interlingual for programs that are run in "cmd [GLOBAL_OPTS] subcommand [SUBCOMMAND_OPTS] [args...]" style, like git, docker, etc.? In Perl I think they're most commonly called "App::Cmd-style", but that's obviously not an interlingual term | 16:13 | |
16:13
netrino_ left
|
|||
TreyHarris | I've heard "command suite", but I don't think that's common enough--it's certainly not distinctive enough to search on it. I'm hoping there's a term such that, if I were using a new language whose ecosystem I'm not that familiar with, how I'd find if there were utilities for this CLI style, and what they are | 16:15 | |
16:20
netrino_ joined
|
|||
nadim_ | jmerelo: yes a list inside a list, it gets rendered as an element in the dump | 16:20 | |
jmerelo: the last thing I want when debugging something is the debug tool raising an exception it can't handle | |||
16:21
abraxxa left
|
|||
nadim_ | jmerelo: and since it's just display I believe it is abetter way to handle it. otherwise you get nothing at all, this way you get a partial dump | 16:21 | |
16:21
abraxxa joined
|
|||
jmerelo | nadim_: OK :-) | 16:21 | |
TreyHarris | seems like "subcommand" is the word that frequently turns up what I'm looking for, but by no means 100% (it doesn't Google up the results I'd like to see in Perl 5 or 6, for instance, though it does turn up on-point results that might through concatenation get me what I want) | 16:22 | |
kawaii | has there been much thought to type safety in perl 6? | 16:23 | |
nadim_ | TreyHarris: No name I know of, I once wrote a module to handle this kind of interface, handling commands written indifferent languages, a wrapper of sort, I ended with App::Chained because I couldn't find a better name. | 16:24 | |
jmerelo | kawaii: as in? | ||
nadim_ | TreyHarris: with this description: Front end to sub applications in a Svn/Git fashion | 16:25 | |
TreyHarris | nadim_: *nod* | 16:26 | |
16:30
kensanata left,
pamplemousse left
16:35
dakkar left
|
|||
TreyHarris | I was looking at the various packages ecosystem knows about and I was thinking--shouldn't it be possible with the new(ish) &ARGS-TO-CAPTURE to create a suite such that bin/foo is the executable calling Foo::&MAIN, and then dispatching commands like `bin/foo bar` to Foo::Bar::&MAIN, such that you leave the Perl 6 built-in opt handling basically intact? Just, given the cmdline `foo {@global_opts} $subcmd | 16:37 | |
{@subcmd_opts} {@args}`, before Foo::&MAIN, strip out everything after @global_opts and hang on to it, then run Foo::&MAIN and gather its arguments in a dynamic variable, then do some housekeeping (like, if you used a "terminal" global option, like `--help` or `-V`, _and_ there was anything left squirreled away, fail with USAGE) and replace the @*ARGS with ($subcmd, @subcmd_opts), then call Foo::Bar::&MAIN and | |||
let it handle its arguments normally, too? | |||
jmerelo | TreyHarris: zef uses multiple dispatch for its subcommands, with the subcommand as first argument to MAIN. It's not possible to distinguish between flags for command and for subcommand, anyway | 16:38 | |
TreyHarris | (of course, in practice, you'd probably want some intervening namespace, like Foo::Commands::Bar, etc., but that's trivial.) | ||
nadim_ | you want to be abble to displatch to external programs too, git allows you to add your own commands, sleek | 16:40 | |
TreyHarris | jmerelo: Hmmm, yes, efficiently you may be right... but looking at &ARGS_TO_CAPTURE, I can see one way to do it: gather up all the known subcommands. Going right to left, look for a known subcommand. Grab the arguments beginning with that subcommand all the way to the right, squirrel them away, and try calling the top-level MAIN. If it fails, see if there's a known subcommand further left in the CLI, prepend | 16:42 | |
those args to the ones you squirreled away, and try calling MAIN again. If you never get a successful call, die with USAGE. But if you get a successful call, then you know the squirreled arguments are ones to the subcommand that occupies the head of the remaining args | |||
16:43
domidumont joined
16:44
zakharyas left
|
|||
TreyHarris | nadim_: Putting aside jmerelo's good critique, there's a way: use environment variables for the global options, and if no subcommands match, call an external "main-subcommand" and see if it works. That's how git does it. Marrying that with the solution I just proposed seems difficult, though. | 16:44 | |
If you specify that the top-level MAIN can't have freeform arguments (it necessarily has no position arguments), only constrained ones, you can do the dispatching more efficiently because there will never be a case where it's ambiguous whether an argument whose value is a string exactly matching a subcommand name is a subcommand or an argument to some prior subcommand or flag | 16:47 | ||
hrm, without monkey-patching augmenting, you can't do this in an importable package, though, can you? b/c the module has to mess with the commands' packages' namespaces | 16:55 | ||
it will always be the case that a single use of augmentation anywhere in a program will have a performance hit on the entire program, right? | 16:56 | ||
17:00
netrino_ left
17:03
sdoo left
17:04
netrino_ joined
|
|||
nadim_ | timotimo: you know that when you have a very long dump you can get a folding UI in terminal, right? or generate ahtmlthat does folding too. Both are a bit primitive (I don't likedoing UI stuff much) but can help if you have a long output | 17:06 | |
17:07
sena_kun joined
17:09
AlexDaniel joined
17:14
johnjohn101 joined
17:16
vrurg left
17:24
sdoo joined
17:28
domidumont left
17:30
ravenous_ joined
17:31
ravenous_ left
17:32
ravenous_ joined
17:37
zakharyas joined
17:40
vrurg joined
17:44
rindolf left
17:45
pecastro joined
17:48
domidumont joined,
robertle joined
17:50
ravenous_ left
17:53
japhb left,
rindolf joined,
netrino_ left
17:54
domidumont left
17:58
netrino_ joined
17:59
japhb joined
18:03
espadrine_ joined
18:08
sdoo left
18:13
holyghost left
18:32
sauvin left
18:35
netrino_ left
18:36
netrino_ joined
18:41
molaf left
18:46
kurahaupo left
18:47
kurahaupo joined
18:49
jmerelo left
|
|||
ugexe | you can only setup mainline once, so having multiple files with parts of the MAIN will not work | 18:53 | |
all MAINs must be in the same file | |||
you can still call Foo::MAIN, you just don't get &MAIN, nor the USAGE to show the stuff for Foo::MAIN (if it wasnt the first MAIN loaded) | 18:56 | ||
otherwise `bin/zef` would just be `require "bin/zef-fetch"; require "bin/zef-test"; ...`, where each command goes into its own bin/zef-command file | 18:57 | ||
(oversimplifying a bit, but still) | |||
19:02
ravenous_ joined
|
|||
timotimo | hm, but can't you "use" multi candidates of the same name together to form your scope? | 19:02 | |
ugexe | not mainline | 19:03 | |
mainline is setup once (the first time) | |||
timotimo | oh, huh | ||
i didn't read the discussion that came before this, sorry | |||
dogbert17 | .seen tadzik | 19:07 | |
yoleaux | I saw tadzik 14:42Z in #perl6: <tadzik> lol! | ||
tadzik | dogbert17: hi :) | 19:08 | |
dogbert17 | hi tadzik, can I ask a question wrt rakudobrew? | 19:09 | |
when trying to nuke an installed p6 version I get: Undefined subroutine &Rakudobrew::Build::match_and_run called at /home/dogbert/.rakudobrew/bin/../lib/Rakudobrew/Build.pm line 132 | |||
tadzik | dogbert17: shoot | ||
dogbert17 | already asked :) | 19:10 | |
tadzik | :) | ||
hm | |||
sounds like a bug in v2 | |||
dogbert17 | yeah; i'm using the new version | ||
tadzik | I guess go ahead and open a bug :) | 19:11 | |
I'm not very active in it these days, but patzim is on fire :) | |||
dogbert17 | consider it done, thanks for your time :) | ||
I like rakudobrew, I find it very useful | 19:12 | ||
19:16
molaf joined
19:34
zakharyas left
19:39
hythm_ joined
|
|||
hythm_ | m: my @a; my %h; %h<a> = @a; say %h<a>.perl; should not the out put be `[]` instead of `$[]` ? | 19:41 | |
camelia | 5===SORRY!5=== Error while compiling <tmp> Bogus term at <tmp>:1 ------> 3y %h<a>.perl; should not the out put be 7⏏5`[]` instead of `$[]` ? expecting any of: argument list infix infix stopper … |
||
hythm_ | m: my @a; my %h; %h<a> = @a; say %h<a>.perl; # should not the out put be `[]` instead of `$[]` ? | 19:42 | |
camelia | $[] | ||
ugexe | m: my @a; my %h; %h<a> = @a; say %h<a>.gist; | ||
camelia | [] | ||
hythm_ | m: my @a = 1, 2; my %h; %h<a> = @a; say %h<a>.elems | 19:46 | |
camelia | 2 | ||
hythm_ | aah, i was thinking $[] in .perl means array is itemized | 19:47 | |
19:59
oftl_ left
|
|||
xinming | Anyone here has hints on what is the best way to share data with python with json? | 20:00 | |
I'm thinking to write a socket server, and let python to connect, But I'm not sure wether this is the best way to do. | 20:01 | ||
I wrote a small bot with perl6, and I wish to write a query infos from the bot in perl6, exchange data with python. | 20:02 | ||
ugexe | you could also use a MQ | ||
xinming | rabbit mq? | ||
ugexe | i imagine any of them will do | ||
lizmat | is Inline::Python not an option ? | ||
xinming | ugexe: Thanks for the hint. | ||
lizmat: No, Since there will be a big framework using python. | 20:03 | ||
lizmat | too bad :-) | ||
xinming | I'll write a small plugin in python, to let python to query the data from perl6. | 20:04 | |
tobs | hythm_: I think it's exactly that, itemized. | ||
xinming | After I read python, I feel python is really a good programming language for practising typing.... | ||
ugexe | i'd like to see a pythonista out type me on symbols | 20:05 | |
tadzik | they may win on : ;) | 20:08 | |
20:12
discord6 left,
discord6 joined,
discord6 left,
discord6 joined
|
|||
hythm_ | tobs: yes right, so assigning an array to a hash key itemizes the array... | 20:12 | |
but why? | 20:13 | ||
lizmat | because a value in a Hash is an item | ||
tobs | the hash itemizes its contents | ||
hythm_ | ok. noted. | 20:14 | |
tobs | I like to think that an Array is just a List which achieves mutability by storing Scalar containers as elements. The same for Hash and Map. | 20:15 | |
I wonder if that's (even technically) a correct picture. lizmat? | |||
lizmat | tobs that is almost correct: it is true for Map vs Hash | 20:16 | |
tobs | cool, thanks | ||
lizmat | but in the case of List vs Array: a List *can* contain a container | ||
ugexe | note %h<foo> := @a is not the same as %h<foo> = @a | 20:17 | |
lizmat | m: my $a = (1,my $ = 42,3); dd $a; $a[1] = 666; dd $a # tobs | ||
camelia | List $a = $(1, 42, 3) List $a = $(1, 666, 3) |
||
tobs | m: my $a = %(a => 1, b => my $ = 42, c => 3); dd $a; $a<b> = 666; dd $a | 20:18 | |
camelia | Hash $a = ${:a(1), :b(42), :c(3)} Hash $a = ${:a(1), :b(666), :c(3)} |
||
tobs | ah, and in a hash, a Pair can contain a container value | ||
oh no, wait | 20:19 | ||
I meant to make a Map | |||
m: my $a = %(a => 1, b => my $ = 42, c => 3).Map; dd $a; $a<b> = 666; dd $a | |||
camelia | Map $a = $(Map.new((:a(1),:b(42),:c(3)))) Cannot change key 'b' in an immutable Map in block <unit> at <tmp> line 1 |
||
tobs | huh | ||
well, it matches what you said exactly. | 20:20 | ||
20:27
ravenous_ left
|
|||
lizmat | tobs: worked a lot on that part of the internals over the years :-) | 20:32 | |
20:48
espadrine_ left
20:51
espadrine_ joined
21:00
robertle left
21:15
skids left
|
|||
hythm_ | general question: lets say I want to connect to two package repositories, make a query for a package, combine the result from all repos and process it | 21:15 | |
what im thinking is to create an Array of Cro::HTTP:Client (with specific base-uri to each repo). and call @a>>.get. then process the result | 21:17 | ||
timotimo | Cro::HTTP::Client can't be used for multiple things at once? | ||
sena_kun | hythm_, what is the exact question? the approach you described is doable. | 21:19 | |
hythm_ | im not sure, ill check that | ||
jnthn | If you're not re-using it for multiple requests, there's not that much point making an instance | ||
hythm_ | the exact question is, is there a better way to do that? like the way described in "array based objects" advent post? | 21:20 | |
let me rephrase | 21:22 | ||
sena_kun | if you can afford it, you can run e.g. `zef info Foo::Bar` and then collect its output, as zef will collect and process metadata for you. if you don't want to rely on something external like this, using Cro::HTTP::Client will do. | ||
tbrowder | hi, p6 | 21:24 | |
timotimo | hi TB | ||
tbrowder | timotimo: hi! | ||
i'm looking at using win 10 (yuck) to intro folks to p6. can inline::perl5 work there? | 21:26 | ||
21:26
johnjohn101 left
|
|||
timotimo | as long as there's access to a compiler that can build the p5helper, probably. also it needs a perl5 built with "multiplicity", so you'll potentially have to build your own perl5 anyway | 21:26 | |
Xliff | jnthn: Any further thoughts on github.com/croservices/cro-http/pull/39 | 21:31 | |
jnthn | Xliff: Merged, thanks | 21:36 | |
21:36
Cabanossi left
|
|||
Xliff | \o/ | 21:36 | |
jnthn: You're welcome. | 21:37 | ||
21:41
rindolf left
|
|||
tbrowder | wouldn't a complete p5/p6 win 10 installable be a good thing for marketng | 21:45 | |
*marketing? for p5 and p6? | |||
probably | 21:46 | ||
21:46
ab6tract joined
|
|||
ab6tract | o/ | 21:46 | |
yoleaux | 24 Mar 2019 22:44Z <japhb> ab6tract: Saw the follow up email, thanks! SGTM, but can't work on it right now because of $day-job stuff. I'll keep it on my back burner for fun coding time though. :-) | ||
timotimo | could be, but isn't building a perl 5 distribution a bunch of work? | ||
i mean, if you're on win10, why not use the built-in linux compatibility stuff | 21:47 | ||
tbrowder | for one thing, i'm trying to deal with very restrictive win 10 networks like local county and city governments that don't like to change anything. for instance, our new senior center has no non-ms programs, and anything else has to be runnable in the edge browser. | 21:50 | |
timotimo | ah, i see | ||
21:50
lembark left
|
|||
hythm_ | apology for the delay, i have created SO questionstackoverflow.com/questions/562654...of-objects | 21:50 | |
21:51
Cabanossi joined
|
|||
tbrowder | timotimo: thnx | 21:51 | |
timotimo | sorry, i haven't a clue :( | 21:52 | |
hythm_: that's fine, but it's a bit wordy; personally, i would perhaps not even have OO in there at all | 21:54 | ||
21:55
ab6tract left
|
|||
timotimo | if you have an array-based object, you can't have attributes on top of the array storage | 21:55 | |
(because arrays are arrays, not general objects, and general objects have attributes) | 21:56 | ||
hythm_ | timotimo, the reason i started with OO is due to after making a request and getting result pack, i would follow that with other requests for every package dependencies , and so on. so i though OO would make it more managable | 21:57 | |
aah makes sense | |||
ugexe | github.com/ugexe/zef/blob/master/l...ory.pm6#L8 | 21:58 | |
hythm_ | thanks ugexe. checking the method... | 22:00 | |
timotimo | i suppose that makes sense. will it be fine to look up dependencies of a package first found in A in B? | ||
if you have p6c and cpan for example, would finding JSON::Fast in p6c mean that its dependency Make::Very::Fast would only be searched for on p6c? | 22:01 | ||
(because you're throwing out duplicates with the unique thing) | |||
if comparing the dists with eqv like that, then the dists can't actually have any data in it that says where it comes from, or else you'll never kick out packages that are "the same" from different ecosystems | |||
hythm_ | timotimo, yes it should be fine to get depenedencies from different repo, | 22:03 | |
for example if someone hosts a small local repo for a few packages, it would be nice to resolve deps from other repos as well | 22:04 | ||
timotimo | right-o | ||
don't forget we have not only a module's name, but also its authority, which has the ecosystem it comes from as part of the name | 22:05 | ||
i.e. there are packages with github:timo and cpan:TIMOTIMO | |||
hythm_ | aah right, i just tried to make something quickly, probably will end up changing the whole 'unique' part | 22:07 | |
also worth noting this is more for Linux packages, like deb and rpm, not for cpan or pip | 22:08 | ||
timotimo | OK | ||
do you know about the specs we have for "native" dependencies? to be put into META6.json? | 22:09 | ||
ugexe | race map race reduce | ||
hythm_ | i dont know about that, link? | 22:10 | |
timotimo | do we have race reduce? | 22:11 | |
actually i'm not sure where that document lives. is it on design.perl6.org? i think that page is down still? | |||
ugexe | m: say race reduce { $^a }, 1, 2, 3; | 22:12 | |
camelia | Too many positionals passed; expected 1 argument but got 2 in code at <tmp> line 1 in block <unit> at <tmp> line 1 |
||
22:12
feldspath left,
feldspath joined
|
|||
hythm_ | does load for me, but i know where to look now, thanks. | 22:14 | |
ugexe | one day we will sneak the dependency name parser into somewhere... CompUnit::DependencySpecification.from-string maybe github.com/ugexe/zef/blob/master/l...m6#L13-L22 | 22:16 | |
it will eventually be a requirement for emulates/supercedes/etc | |||
22:19
pecastro left
22:20
hythm_ left
|
|||
ugexe | if someone wants to write it in nqp they should totally do it | 22:21 | |
:auth<First Last [email@hidden.address] :) | 22:24 | ||
timotimo | do we want to have something like webfinger so there's like a bar.net/.well-known/perl6-module-a...ename.json | 22:27 | |
you know, for reasons | 22:28 | ||
a DNS entry :D | 22:29 | ||
22:35
discord6 left,
discord6 joined,
discord6 left,
discord6 joined
23:29
cpup left
23:31
netrino_ left
23:34
aborazmeh joined,
aborazmeh left,
aborazmeh joined
23:36
khisanth_ left
23:37
netrino_ joined
23:42
netrino_ left
23:46
ijneb joined
23:50
khisanth_ joined
|